Лекция: Общее знакомство
Вид материала | Лекция |
СодержаниеМножественный выбор Структурное программирование Цикл с предусловием Цикл while |
- Жизнь Клима Самгина (общее знакомство) утопия, 27.58kb.
- Лекция Общее знакомство с организмом человека Человек и окружающая среда, 81.53kb.
- Цель дисциплины, 24.29kb.
- Тема пояснения, 99.97kb.
- Общее знакомство с цветковыми растениями, 1421.63kb.
- Образовательные программы : дошкольное общее образование, начальное общее образование,, 549.09kb.
- План «курсы трейдинга» День 1 Вступительная лекция Знакомство. Базовые понятие о трейдинге., 56.64kb.
- Ю. Б. Введение в общую психологию. М., 2000. Лекция, 413.91kb.
- Урок литературы по рассказу саши черного "в лунную ночь", 85.66kb.
- Лекция со студентами асс, 33.36kb.
Множественный выбор
Когда в программе нужно осуществить выбор одного из нескольких вариантов, мы можем сделать это, используя конструкцию if-else if-else_...else Во многих случаях оказывается более удобным применять оператор switch.
Оператор switch (переключатель) используется для разветвления программы по нескольким направлениям. Он имеет следующую форму:
switch(e) {
сase c1: s1; break;
case c2: s2; break;
...
case ck: sk; break;
default: s(k+1);
}
где
- e - целое выражение (или выражение, которое может быть преобразовано в целое выражение);
- ci - целое выражение с постоянным значением (или выражение, которое может быть преобразовано к такому выражению);
- si обозначает операторы, число которых может быть больше или равно нулю.
Метки ci, обозначающие альтернативные case, должны быть уникальными; двух одинаковых меток быть не может. Только одна альтернатива может получить префикс default.
Результатом выполнения оператора switch является выбор альтернативы с меткой ci, которая равна значению выражения переключателя e; в этом случае выполняются операторы si. В случае, если выражение переключателя не равно ни одному из выражений альтернатив case, то выполняются операторы s(k+1); при отсутствии альтернативы default не выполняется ни одна из альтернатив оператора switch.
Пример:
/* Реализация работы калькулятора. Сначала задается
число - сколько раз нужно подсчитать. Вводятся
левый операнд, операция, правый операнд. Оператор
выбора определяет, какой оператор должен работать.
Результат выводится на экран. */
#include
#include
#include
main()
{
float a,b;
char opr;
float result=0;
int I,i=0;
clrscr();
printf("Сколько раз будете считать?:\n");
scanf("%I",&I);
printf("Введите операнд, операцию, операнд:\n");
while(i
i++;
scanf("%f%c%f",&a,&opr,&b);
switch(opr) {
case '+': result=a+b; break;
case '-': result=a-b; break;
case '*': result=a*b; break;
case '/': result=a/b; break;
default:
printf("Ошибка. Неверен знак операции ");
exit(1); /* функция берется
из заголовочного
файла process.h*/
}
textcolor (15); /* функция берется из
заголовочного файла conio.h*/
cprintf("Результат равен %g\n",result);
if (i
printf("Введите операнд, операцию, операнд\n");
else
{
textcolor(12);
/* функция берется из заголовочного файла
conio.h */
cprintf("Конец работы\n");
/* текст печатается красным цветом*/
}
}
getch () ;
exit(0);
/* функция берется из заголовочного файла
process.h */
}
8. Лекция: Циклы и другие управляющие средства. Структурное программирование
^ Структурное программированиеМетодология структурного программирования основана на предположении, что логичность и понятность программы обеспечивает надежность, облегчает модификацию и ускоряет разработку программы. Характерными чертами структурного программирования являются:
Цикл с предусловиемСуществует три вида циклов: while, for и do. Цикл while имеет следующую форму: while (e) s; Оператор s выполняется до тех пор, пока значение выражения e равно "истина". Значение e вычисляется перед каждым выполнением оператора s. В предшествующих лекциях мы пользовались этой формой цикла. Рассмотрим еще один пример его работы: /* угадывание числа */ # include main( ) { int i = 1; char res; printf("Задумайте целое число от 1 до 100. Компьютер попытается угадать его. \n"); printf ("Отвечайте y если догадка правильна и"); printf("\n n, если программа ошибается \n"); printf("И так, ваше число %d?\n",i); /*получение ответа */ while((res = getchar( )) !='y') if(res !='\n') /* пропуск символа новая строка */ printf("Ну тогда оно равно %d\n" ,++i); printf("Число угадано!\n"); }
В наших примерах до сих пор использовались условные выражения, но вообще говоря, это могут быть выражения произвольного типа. В качестве оператора можно использовать простой оператор с символом "точка с запятой" в конце или составной оператор, заключенный в фигурные скобки. Если выражение истинно (или в общем случае равно единице), то оператор, входящий в цикл while, выполняется один раз, а затем выражение проверяется снова. Эта последовательность действий, состоящая из проверки и выполнения оператора, периодически повторяется до тех пор, пока выражение не станет ложным (или в общем случае равным нулю). Каждый такой шаг называется итерация. Данная структура аналогична структуре оператора if. Основное отличие заключается в том, что в операторе if проверка условия и (возможное) выполнение оператора осуществляется только один раз, а в цикле while эти действия производятся, вообще говоря, неоднократно.
^ Цикл while является условным циклом, использующим предусловие, т.е. условие на входе. Он называется условным, потому что выполнение оператора зависит от истинности условия, описываемого с помощью выражения. Подобное выражение задает предусловие, поскольку выполнение этого условия должно быть проверено перед началом выполнения тела цикла.
Подведем итоги. Оператор while определяет операции, которые циклически выполняются до тех пор, пока проверяемое выражение не станет ложным, или равным нулю. Оператор while - это цикл с предусловием. Решение, выполнить ли в очередной раз тело цикла, принимается перед началом его прохождения. Поэтому вполне возможно, что тело цикла не будет выполнено ни разу. Оператор, образующий тело цикла, может быть либо простым, либо составным. Форма записи: while (выражение) оператор Выполнение оператора циклически повторяется до тех пор, пока выражение не станет ложным, или равным нулю. |