где в качестве выражения-условия могут быть использованы арифметическое выражение, отношение и логическое выражение.
Оператор, включенный в условный, выполняется только в случае истинности (т.е. при ненулевом значении) выражения_условия, то есть, когда выражение_ условие верно.
Примеры:
1). If (у<0) x=у+1;
Здесь оператором If дается следующая команда машине: «Если у<0 то x нужно присвоить значение у+1.
2). If (a <b+c || b<a+c || c< b+a) s=sqrt(p(p-a)*(p-b)*(p-c));
Эту строку можно перевести так: «Если a меньше суммы b и с, а b меньше суммы а и с, с меньше суммы b и а, то выполнять действие, стоящее за скобками.
3). if(x<0 && x>-10) x=-x; Здесь написано: «Если 0<х<-10, то присвоить х значение –х (то есть поменять знак у величины х)
Блок-схема этого оператора имеет вид (рис. 8.1).
Рис. 8.1. Блок-схема сокращенной формы оператора if.
Полная форма оператора условного перехода имеет вид:
if (выражение-условие)
{
оператор_A1;
оператор_A2; /*здесь A1, A2,..., AN показывают, что при */
…………… /*истинности выражения_условия ,*/ оператор_AN; /* должны быть выполнены соответствующие */
/* N операторов, где N= 1, 2, 3,… */
/*обратите внимание, что если N>1, то */
} /*все операторы заключаются в фигурные скобки*/
else
{ оператор_B1;
оператор_B2; /*здесь B1, B2,..., BM показывают, что при */
…………… /*ложности выражения_условия , */ оператор_BM; /* должны быть выполнены соответствующие */
/* M операторов, где M= 1, 2, 3,… */
/*обратите внимание, что если M>1, то */
} /*все операторы заключаются в фигурные скобки*/
Обратите внимание, что после выражения_условия и ключевого слова else никогда не ставится запятая или точка с запятой.
Пример:
if(x>0)
b=x;
else
b=-x;
Блок-схема этого примера на рис. 8.2.
Рис. 8.2. Блок-схема оператора if - else.
1. Напишите алгоритм вычисления корней квадратного уравнения, применяя сокращенную и полную форму оператора условного перехода.
2. Найдите ошибки в следующих фрагментах программ.
а) if(x>0 && x<= 7)
b=sqrt(x*x-2);
d=sin(b);
else
b=-x;
b) if(i==0 || k>8);
{b=ln(x*x-2);
d=sin(b);}
printf(“/nsin(b)=%7.3”,d);
else(a<0)
a=a+a;
summa=a+d;
Метка – это идентификатор, помещаемый слева от оператора и отделенный от него двоеточием. Например,
label: x=-a;
dom: z=i+1;
Чтобы было можно поставить метку в любом месте программы, был введен пустой оператор, изображаемый символом точка с запятой ‘;’. Например:
metka: ;
Этот оператор имеет следующий вид goto идентификатор_метки;
Пример:
goto label;
goto dom;
goto metka;
Для реализации алгоритмов циклической структуры в языке Си используются три различных оператора, обозначаемых следующими служебными словами while, for, do, образующие cсоответственно циклы с предусловием, постусловием и параметрический цикл.
Он имеет следующий вид:
while (выражение_условие)
{
тело_цикла
}
Данную конструкцию можно интерпретировать следующим образом. Пока (while) верно выражение_условие выполнять операторы заключенные в фигурные скобки
Например
while (x<0)
{
x++
printf(“x=%5.2f”,x);
}
В переводе это звучит так. Пока x<0 увеличивать x на единицу и выводить данные на печать с точностью до второго знак после запятой.
Цикл с постусловием имеет следующий вид:
do
{ тело_цикла;
}
while (выражение_условие);
Данную конструкцию можно интерпретировать следующим образом. Выполнять (делать) (do) операторы, входящие в цикл (требующие повторения), до тех пор пока (while) верно выражение_условие.
Пример
do
{x++;
printf(“x=%5.2f”,x);}
while (x<0)
Что означает: «Увеличивать x на единицу и выводить результат на печать до тех пор, пока x остается меньше нуля».
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.