Содержание
-
Простые и составные операторы
Если ветвь условной конструкции или тело цикла содержит несколько операторов, то они объединяются в составной оператор при помощи “{“ и “}”. Begin в Паскале соответствует “{“ в Си, End - “}”.
-
Пример.Нахождение суммы первых 20 натуральных чисел и вывод сумм на экран.
#include #include using namespace std; int main() {int sum=0;//сумма int c=0;//счетчик while (c++
-
Условная конструкция.
Различают три формы условной конструкции : простейшая(в Паскале -if … then…); расширенная (в Паскале -if … then … else …); выбор(в Паскале -case … of…).
-
Простейшая условная конструкция.
Псевдокод : еслито все Си if () В отличие от Паскаля выражение может иметь любой тип. 0, ‘\0’ и NULL считаются ложью, остальные значения - истиной.
-
Расширенная условная конструкция
Псевдокод : еслито иначе все Си if() else
-
Примеры.
if(a>b&&b>c) f=x*x-1; else f=x+1; ‘;’ перед elseявляется частью оператора присваивания в ветви if. if(x>5||x
-
Отличия от Паскаля:
1. Выражение обязательно заключается в скобки. 2. ”;” ставится перед else, если только нет составного оператора. (“;”- часть ). 3. Другой приоритет вычисления логического выражения - сначала операции отношения - затем логические операции !, &&, || (не, и, или). Приоритет операций отношения меньше, чем у операций “+” и “-” и больше, чем у операции присваивания: х>у+2 то же, что и х>(у+2).
-
Допускается вложенность операторов if. Если нетсоставного оператора, elseотносится к ближайшему if.Рассмотрим пример.
if (number>6) if(number
-
Если необходимо, чтобы elseсоответствовал первому if,добавим {}.Рассмотрим пример.
if (number>6) { if (number
-
Операция условия -сокращённый способ записи if- else (тернарная).
В общем виде условное выражение записывается следующим образом: Например: x=(y b)?a:b; ()?:;
-
Множественный выбор: switch и break
switch()/*выражение может быть типаint илиchar*/ { case : //операторы могут отсутствовать case : //константы типаint или char … default: //ветвь не обязательна } Если значение выражения совпадает с одной из констант, выполняются операторы, расположенные после соответствующей константы. Если подходящей метки не найдется, то, если существует строка с меткой "default", будет выполняться оператор, помеченный этой меткой. В противном случае произойдет переход к оператору, расположенно-му за оператором switch.
-
В каждой последовательности операторов последним должен быть оператор break. Выполнение оператора break осуществляет выход из оператора switch и переход к следующему за ним оператору. При отсутствии оператора break будут выполнены все операторы, начиная с помеченного данной меткой и заканчивая оператором default. char ch='1'; switch (ch) { case '1': printf ("один\n"); case '2': printf ("два\n"); default : printf ("три \n"); } один два три
-
В качестве меток-констант используются выражения типа int или char. В качестве метки запрещается использовать переменную. Можно пометить оператор несколькими метками одновременно. Например, case 'E': case 'е': printf ("ель\n"); break;
-
Пример. Игра в города
#include #include using namespace std; intmain() {setlocale(LC_ALL, "RUS"); char ch; printf (“Введите букву а, б или в. \n"); printf ("Я назову город на эту букву\n"); scanf("%c", &ch); switch (ch) {case 'a': printf ("\n Ашхабад"); break; case ‘б': printf ("\n Белгород"); break; case 'в': printf ("\n Воронеж"); break; default: printf ("\n неизвестная буква"); break; } return 0; }
-
Правила выбора условных операторов
Выбор из двух возможностей - выполнить операторили пропустить его -оператор if. Выбор одного из двух вариантов - if...else. Выбор одного из нескольких - else-if, switch. Если выбор вариантов основывается на вычислении значения переменной или выражения типа float, то switchприменить нельзя. Если значения переменной попадают в некоторый диапазон, использовать switch неудобно. Лучше записать: if (i 2).
-
Циклы
Существует три базовых структуры цикла: цикл-пока (с предусловием) (в Паскале -while…do…); цикл-до (с постусловием) (в Паскале –repeat…until…); цикл от … до (со счетчиком) (в Паскале -for…to/downtodo…).
-
Цикл-пока(while)
Псевдокод цикл-пока кц Си while () , где -любого типа. Пока значение выражения отлично от 0 (т.е.истинно), повторяется выполнение операторов в теле цикла. Оператор может быть простым или составным. whileявляется циклом с предусловием, поэтому возможно, что он не выполнится ни разу.
-
Пример 1. Напечатать целые числа от 1 до 100 и их квадраты.
/*Здесь и в следующих примерах пропущены операторы #include #include using namespace std; */ intmain() { setlocale(LC_ALL,"RUS"); int n=0; printf("число квадрат"); while(n++
-
Пример 2. Сколько членов гармонического ряда S=1+1/2+1/3+...+1/n надо взять, чтобы получить сумму, большую числа dano?
int main() { int i=0; float dano, S=0.0; printf ("введитечисло"); scanf("%f",&dano); while (dano
-
Цикл for
Псевдокод циклотi:=до[шаг] кц Си for (; ; )
-
,где –инициализирующее: вычисляется один раз до начала цикла; –проверяемое: вычисляется перед каждым выполнением оператора. Тело цикла выполняется, если значение проверяемого выражения истина (или не равно нулю); –корректирующее: вычисляется после каждого выполнения тела цикла. Перед первым выполнением цикла проверяется , т.е. тело цикла может не выполниться ни разу! Любое выражение, а также оператор может отсутствовать, но точка с запятой сохраняется.
-
Оператор forэквивалентен следующей последовательности операторов: ; while() { ; }
-
Пример 1. Найти сумму n членов гармонического ряда S=1+1/2+1/3+...+1/n.
Операция «запятая» связывает два выражения в одно и гарантирует, что самое левое будет вычисляться первым. Обычно используется для включения дополнительной информации в спецификацию цикла for, например: , Значением всего выражения является значение . a) s=0.0; for(i=1;i
-
Пример 2. Найти минимальное n, при котором S=1+1/2+1/3+...+1/n > dano. for (n=0, S=0.0; S
-
Пример 3.Счет в порядке убывания
for(n=10;n>0;n--) printf ("%d секунд !\n", n); printf("пуск!\n"); Можно использовать любое значение шага цикла, например: for(n=2; n
-
Пример 4.Переменная цикла может быть не только числом, но и символом. for(ch='a';ch
-
Следующие записи эквивалентны: while () и for (; ;) Применение операторов forили while-дело вкуса. Цикл forпредпочтительнее, когда в цикле используется инициализация и коррекция переменной, в остальных случаях лучше использовать while. Возможно изменение параметров, входящих в проверяемое и корректирующее выражения, в теле цикла.
-
Пример 6. Вложенные циклы.
Вычислить все совершенные числа, меньшие или равные заданному числу smax. Совершенное число равно сумме своих делителей, исключая делитель, равный самому числу. 6=1+2+3.
-
int main() {int n, sum, del, smax; printf ("введите предел"); scanf ("%d", &smax); printf ("совершенное число\n"); for(n=6; n
-
Цикл с постусловием do…while
Псевдокод цикл до кц Си do while() Тело цикла всегда выполняется хотя бы один раз. Выполнение цикла продолжается до тех пор, пока выражение не станет ложным (равным 0). В Паскале - наоборот, цикл продолжается пока выражение не станет истинным.
-
Пример.Найти минимальное число членов гармонического ряда с S > dano
i = 0; S=0.0; do S+=1.0/(float)++i; while (S
-
Управляющие операторыbreak, continue, goto
По возможности следует избегать их использования. Все эти операторы предназначены для безусловного перехода. Частое применение этих операторов - признак низкой квалификациипрограммиста и слабого владения структурным программированием.
-
break - выход из ближайшего цикла любого вида или switch и переход к следующему оператору программы.
do {… for(...) {… while( … ) { … if (…)break; /*выход из цикла while*/ … } if(…)break; /*выход из цикла for*/ … } ; if (…)break; /*выход из цикла do while*/ … } while(…);
-
continue - окончание текущей итерации данного цикла.
В циклах whileи do … while происходит переход к проверке условия продолжения цикла. В цикле for – переход к вычислению корректирующего выражения, а затем к проверке. for (; ; ) { while(…) {… continue; … } … continue; }
-
Оператор goto
goto метка; Метка должна быть идентификатором, например: goto m1; Допускается использовать в одном случае - выход из вложенного набора циклов при обнаружении каких-либо ошибок. for (…) for (…) for (…) { if () goto Code; } … Code:
Нет комментариев для данной презентации
Помогите другим пользователям — будьте первым, кто поделится своим мнением об этой презентации.