2 урок Условный оператор.ppt
- Количество слайдов: 16
Условный оператор
Проводится соревнование по поеданию пирожков. За 10 минут Вася съел a пирожков, а Коля b пирожков. На командном первенстве они составили одну команду. За сколько минут эта команда съест с пирожков? program edoki; var a, b, c, t, vv, vk, v: real; begin write(’Сколько пирожков съел Вася? ’); readln(a); write(’Сколько пирожков съел Коля? ’); readln(b); write(’Сколько пирожков должна съесть команда? ’); readln(с); vv: =a/10; {скорость Васи} vk: =b/10; {скорость Коли} v: =vv+vk; {общая скорость} t: =c/v; writeln(’Команда справится за ’, t: 3: 1, ’ минут’); end. начало Ввод а, в, с vv: =a/10 vk: =b/10 v: =vv+vk t: =c/v Вывод t конец
Программы, в которых каждое следующее действие выполняется после предыдущего, называются линейными. Однако часто встречаются нелинейные программы, в которых порядок действия отличается от порядка расположения команд. Ветвление – участок программы, позволяющий выбрать для исполнения, в зависимости от истинности условия, одну из двух групп команд.
Так выглядит ветвление на схеме а так – на Паскале if x > y then begin z: =x-y; writeln(’x = ’, x); end else begin z: =y-x; writeln(’y = ’, y); end; По-английски: if – если then – то (тогда) else - иначе
Существует две формы условного оператора: полная и краткая Полная форма условного оператора в общем виде: If условие then оператор1 else оператор2; Краткая форма условного оператора в общем виде: If условие then оператор1;
Решить квадратное уравнение вида ax 2+bx+c=0 program zadacha; uses crt; var a, b, c, d, x, x 1, x 2: real; begin cls; writeln('введите коэффициенты а, b, с'); readln(a, b, c); d: =sqr(b)-4*a*c; if d>0 then begin x 1: =(-b+sqrt(d))/(2*a); x 2: =(-b-sqrt(d))/(2*a); writeln('x 1=', x 1, ' x 2=', x 2) end else if d=0 then begin x: =-b/(2*a); writeln('x=', x) end else writeln('уравнение не имеет корней'); end.
Пример задачи с составным условием: Ввести температуру морской воды и определить, можно ли купаться. Благоприятная для купания температура – от 19 до 26 градусов. program water; var t: real; begin write(’Введите температуру воды у пляжа ’); readln(t); if (t>=19) and (t<=26) then writeln(’Можно купаться’) else writeln(’Купаться нельзя’); end.
1. Определить, лежит ли точка (x, y) внутри круга с центром в начале координат и радиусом 5. 2. Определить, является ли введённое число чётным. 3. Из банка на выплату зарплаты привезли a рублей. Хватит ли этой суммы, если на предприятии n работников, их средняя зарплата s рублей, а в кассе ещё имеется остаток k рублей?
Оператор выбора (варианта)
Вложенное ветвление – очень удобная программная структура. Но при большой глубине вложенности множественное ветвление становится громоздким. В некоторых случаях его можно значительно сократить, заменив конструкцией выбора варианта. Для этого должны выполняться такие условия: • все ветвления вкладываются в ветвь «нет» ; • все они проверяют значения одной и той же переменной (или выражения); • проверяемое значение должно быть целого типа.
Оператор выбора (варианта) используется в тех случаях, когда в зависимости от значения некоторого выражения выполняется один из последовательности операторов. Общий вид записи оператора выбора: CASE выражение OF константа 1: оператор 1; константа 2: оператор 2; --------; константа n: оператор n; END;
Задача: Программа-консультант в магазине обуви сообщает, какая обувь находится на той или иной полке, номер которой вводят с клавиатуры. program money; var p: integer; begin write(’Какая полка Вас интересует? ’); readln(p); if p=1 then writeln(’Сапоги’) else if (p=2) or (p=4) then writeln(’Мужские туфли’) else if (p>=5) and (p<=8) then writeln(’Женские туфли’) else if (p=3) or (p>=9) and (p<=12) then writeln(’Кроссовки’) else writeln(’Полки с таким номером у нас нет’); end.
То же, с применением новой команды: program money; var p: integer; begin write(’Какая полка Вас интересует? ’); readln(p); case p of 1: writeln(’Сапоги’); 2, 4: writeln(’Мужские туфли’); 5. . 8: writeln(’Женские туфли’); 3, 9. . 12: writeln(’Кроссовки’) else writeln(’Полки с таким номером у нас нет’); end. Обувной магазин. pas
Если в каком-либо из вариантов нужно выполнить не одно, а два и более действия, их заключают в операторные скобки begin и end: case p of 1: writeln(’Сапоги’); 2, 4: writeln(’Мужские туфли’); 5. . 8: begin writeln(’Женские туфли’); writeln(’Но там ничего нет: всё продано!’); end; 3, 9. . 12: writeln(’Кроссовки’) else writeln(’Полки с таким номером у нас нет’); end;
Задача: С клавиатуры вводят число летящих ворон. Напечатать это число со словом «ворон» , взятом с нужным окончанием. program vorony; var v, p, pp: integer; begin write(’Сколько летит ворон? ’); readln(v); p: =v mod 10; {находим последнюю цифру} pp: =v mod 100 div 10; {находим предпоследнюю цифру} if pp=1 then writeln(’Летит ’, v, ’ ворон’) else case p of 1: writeln(’Летит ’, v, ’ ворона’); 2. . 4: writeln(’Летит ’, v, ’ вороны’); else writeln(’Летит ’, v, ’ ворон’); end; readln; end. Вороны. pas
1. 2. 3. Задачи на выбор варианта Колдун должен сделать очередной ход. По нажатию на любую клавишу генерируется случайное число от 1 до 10, и программа печатает, какое заклинание произнёс колдун. Например, 1 - удар молнии; 2 – огненный шар … Микки-Маус подходит к стене с отверстиями. Над каждым отверстием стоит номер. Некоторые ходы ведут в ловушку, некоторые – к запасам зерна, сыра, муки и т. д. Нужна программа, которая по введённому номеру сообщает, куда попадёт Микки-Маус. Перечислить названия животных, имеющихся в зоопарке. При вводе номера животного программа сообщает кличку животного, чем его кормят служащие зоопарка, и что ему могут давать посетители.


