Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка КОС часть 2.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2 Мб
Скачать
☆

If ( выражение ) оператор

If ( выражение ) оператор else оператор

switch ( выражение ) оператор

В C++ нет отдельного булевского типа.

Операции сравнения

== != < <= > >=

возвращают целое 1, если сравнение истинно, иначе возвращают 0. В операторе if первый (или единственный) оператор выполняется в том случае, если выражение ненулевое, иначе выполняется второй оператор (если он задан). Отсюда следует, что в качестве условия может использоваться любое целое выражение. В частности, если a целое, то

if (a) // ...

эквивалентно

if (a != 0) // ...

Логические операции

&& || !

наиболее часто используются в условиях. Операции && и || не будут вычислять второй аргумент, если это ненужно. Например:

if (p && cou) // ...

вначале проверяет, является ли p не нулем, и только если это так, то проверяет cou.

Скобки вокруг условия необязательны, но когда они используются, программу легче читать.

Некоторые простые операторы switch можно по-другому записать в виде набора операторов if. Например:

switch (val) {

case 1:

f();

break;

case 2;

g();

break;

default:

h();

break;

}

иначе можно было бы записать так:

if (val == 1)

f();

if (val == 2)

g();

else

h();

Смысл тот же, однако первый вариант (switch) предпочтительнее, поскольку в этом случае явно выражается сущность действия (сопоставление значения с рядом констант). Поэтому в нетривиальных случаях оператор switch читается легче.

Заботьтесь о том, что switch должен как-то завершаться. Самый обычный способ завершить случай - это break, иногда можно даже использовать goto. Например:

switch (val) {

case 0:

cout << "case 0";

case 1:

cout << "case 1";

return;

case 2:

cout << "case 2";

goto case1;

default:

cout << "default: case не найден";

return;

}

При обращении к нему с val =2 выдаст

case 2

case 1

Заметьте, что метка case не подходит как метка для употребления в операторе goto:

goto case 1; // синтаксическая ошибка

4. Оператор goto

goto идентификатор;

идентификатор: оператор

В программировании высокого уровня goto имеет очень мало применений, но он может быть очень полезен, когда C++ программа генерируется программой, а не пишется непосредственно человеком. Например, операторы goto можно использовать в синтаксическом анализаторе, порождаемом генератором синтаксических анализаторов.

Оператор goto может быть также важен в тех редких случаях, когда важна наилучшая эффективность, например, во внутреннем цикле какой-нибудь программы, работающей в реальном времени.

Одно из немногих разумных применений состоит в выходе из вложенного цикла или переключателя (break лишь прекращает выполнение самого внутреннего охватывающего его цикла или переключателя).

Пример 5. Написать программу решения квадратного уравнения. Проверять действительно ли уравнение квадратное (коэффициент при старшей степени не равен нулю).

#include <stdio.h>

#include <conio.h>

#include <math.h>

void main()

{

float a,b,c;

float d;

float x1,x2;

clrscr();

printf("Vvedi koefficienti uravnenia\n");

printf("a=");scanf("%f",&a);

printf("b=");scanf("%f",&b);

printf("c=");scanf("%f",&c);

printf("Rezultat: \n");

if(a!=0)

{

d=pow(b,2)-4*a*c;

if(d<0)

printf("Korney net");

else

if(d>0)

{

x1=((-b+sqrt(d))/(2*a));

x2=((-b-sqrt(d))/(2*a));

printf("x1=%.2f\n",x1);

printf("x2=%.2f\n",x2);

}

else

{

x1=-b/(2*a);

printf("x=%.2f\n",x1);

}

}

else

printf("Uravnenie ne kvadratnoe");

getch();

}

Пример 6. Выяснить, принадлежит ли точка с координатами (x, y) кругу радиуса r с центром в начале координат.

#include <stdio.h>

#include <conio.h>

#include <math.h>

void main()

{

float x,y;

float r;

float l;

clrscr();

printf("VVedite koordinati tochki:\n");

printf("x=");scanf("%f",&x);

printf("y=");scanf("%f",&y);

printf("Vvedite radius kruga :\n");

printf("r=");scanf("%f",&r);

if(r<=0)

printf("Ne moget bit r< 0");

else

{

l=sqrt(pow(x,2)+pow(y,2));

if(l<=r)

printf("Tochka prinadlegit krugu");

else

printf("Tochka ne prinadlegit krugu");

}

getch();

}

Методические рекомендации к выполнению лабораторной работы

Отчет к лабораторной работе оформляется в текстовом редакторе MS Word в формате А4 и должна содержать:

1. Цель работы.

2. Задание (2 задачи – на использование операторов if и case).

3. Графические схемы алгоритмов с учетом требований ГОСТ 19.701-90 (в редакторе Visio).

4. Программы на Тuгbо Раscаl и Си/С++.

5. Результаты выполнения работы.