УСЛОВНЫЕ ОПЕРАТОРЫ

advertisement
УСЛОВНЫЕ ОПЕРАТОРЫ
Условные операторы предназначены для выбора к исполнению одного из
возможных действий (операторов) в зависимости от некоторого условия (при этом
одно из действий может быть пустым, т.е. отсутствовать). В качестве условий
выбора используется значение логического выражения. В Турбо Паскале имеются
два условных оператора: if и case.
ОПЕРАТОР УСЛОВИЯ IF является одним из самых популярных средств,
изменяющих естественный порядок выполнения операторов программы.
Блок-схема оператора:
Нет
Да
оператор 1
Нет
Да
выражение
выражение
оператор 2
оператор
Форма записи:
а) if <условие> then <оператор1> else <оператор2>;
б) if <условие> then <оператор>;
Оператор условия if выполняется следующим образом. Сначала вычисляется
выражение, записанное в условии. В результате его вычисления получается
значение булевского типа. В первом случае, если значение выражения есть TRUE
(истина), выполняется <оператор1>, указанный после слова THEN (то). Если
результат вычисления выражения в условии есть FALSE (ложь), то выполняется
<оператор2>. Во втором - если результат выражения TRUE, выполняется
<оператор>, если FALSE - оператор, следующий сразу за оператором if. Операторы
if могут быть вложенными.
Задача. Вывести на экран большее из двух данных целых чисел.
Дано: х – первое число
у – второе число
Найти: какое число больше.
Решение:
Если х>у, то первое число большее
иначе второе число большее.
Program bolshee;
Var X, Y : Integer;
Begin
Write(’Введите первое число ’);
Readln(X);
Write(’Введите второе число ’);
Readln(Y);
If X>Y Then Writeln(X , ’ > ’, Y) Else Writeln(Y , ’ > ’, X)
End.
Тестирование:
Дано
Экран
1) X=5 Y=3
5>3
2) X=1 Y=4
4>1
1
ОПЕРАТОР CASE
1. Часто в ходе работы программы возникает необходимость выбора одного
из большого числа вариантов. Это можно сделать двумя способами:
1) с помощью многократного повторения оператора условия IF;
2) используя оператор CASE.
2. Блок-схема оператора CASE:
полная
краткая
S
S
S1
оператор
1
S1
S2
оператор 2
S2
S3
оператор 3
оператор 1
оператор 2
оператор 3
S3
оператор
3. Форма записи оператора CASE:
Полная
CASE <выражение> OF
<константа 1>:<оператор 1>;
<константа 2>:<оператор 2>;
...
<константа N>:<оператор N>;
ELSE <оператор N+1>
END;
Краткая
CASE <выражение> OF
<константа 1>:<оператор 1>;
<константа 2>:<оператор 2>;
...
<константа N>:<оператор N>
END;
4. Замечания:
1) При выполнении оператора CASE всегда выполняется либо один, либо ни
одного оператора.
2) Значение выражения обязательно должно принадлежать одному из
порядковых типов.
3) Тип константы должен совпадать с типом выражения.
4) Можно задавать не только константы, но и список и диапазон констант.
5) Ветвь ELSE в операторе выбора CASE необязательна.
6) В качестве операторов используются и составные операторы.
2
5. Пример:
Напишите программу, которая по номеру дня недели (1– понедельник, 2–
вторник и т.д.) определяла бы рабочий это день или выходной.
Дано: Х - натуральное число.
Найти: является ли это число Х номером дня недели и, если является, выяснить
рабочий это день или выходной.
Решение:
Если данное число равно 1, 2, 3, 4 или 5, то день недели рабочий, если 6 или 7,
то выходной. В противном случае мы должны вывести сообщение, что дня
недели с таким номером нет.
Типы переменных:
х – целочисленное, byte.
Программа:
Program work;
Var X: Byte;
Begin
Write(’Введите номер дня недели: ’);
Readln(X);
Case X of
1 .. 5 : Writeln(’Это рабочий день ’);
6, 7 : Writeln(’Это выходной! ’);
Else Writeln(’Нет такого дня недели ’)
End.
Дано
1. х=1
2. х=3
3. х=6
4. х=10
Результат
3
Задачи
1.
Даны два различных числа. Определить какое из них больше.
2.
Если целое число M делится нацело на целое число N, то вывести на
экран частное от деления, в противном случае вывести сообщение «M на
N нацело не делится».
3.
Определить, является ли число А делителем числа В.
4.
Дано целое число. Определить: а) является ли оно четным;
б) оканчивается ли оно цифрой 7; в) оканчивается ли оно четной цифрой.
5.
Даны радиус круга и сторона квадрата. Определить уместится ли круг в
квадрате.
6.
Дано двузначное число. Определить: а) какая из его цифр больше: первая
или вторая; б) одинаковы ли его цифры.
7.
Дано двузначное число. Определить: а) кратна ли трем сумма его цифр;
б) кратна ли сумма его цифр равна А.
8.
Дано двузначное число. Определить: а) является ли сумма его цифр
двузначным числом; б) больше ли числа А сумма его цифр.
9.
Дано трехзначное число. Определить, какая из его цифр больше:
а) первая или последняя; б) первая или вторая; в) вторая или последняя.
10.
Дано трехзначное число. Выяснить, является ли оно палиндромом, т.е.
таким числом, десятичная запись которого читается одинаково слева
направо и справа налево.
11.
Определить, является ли число А делителем числа В? А наоборот?
12.
Вывести на экран название любой вводимой цифры по-русски и поанглийски.
13.
Вывести на экран название n-го дня недели по-русски и по-английски.
14.
По номеру дня недели вывести на экран рабочий это день или выходной,
считая выходными субботу и воскресенье.
15.
По номеру страны из некоторого списка напечатать название ее столицы.
16.
По номеру месяца указать, к какому времени года он относится.
17.
Вывести на экран название n-го месяца года.
18.
По номеру государства из некоторого списка указать континент, на
котором оно находится.
19.
Вывести значение вводимого числа от 1 до 10 римскими цифрами.
20.
По названию буквы указать, какая она: гласная или согласная.
21.
По номеру животного из некоторого списка указать, дикое оно или
домашнее.
22.
По номеру имени из некоторого списка указать его полный вариант.
23.
Составить программу - меню, печатающую ваши оценки по математике,
физике, информатике за последний месяц. Признак предмета вводится.
24.
Составить алгоритм - меню, печатающий расписание уроков в вашем
классе в определенный день недели.
25.
Составить алгоритм - меню печати названий фильмов в трех - четырех
кинотеатрах вашего района.
4
Download