Название: Условный оператор. Блок. Оператор выбора
Вид работы: статья
Рубрика: Информатика
Размер файла: 15.37 Kb
Скачать файл: referat.me-130812.docx
Краткое описание работы: Условный оператор. Блок. Оператор выбора С.А. Григорьев Условный оператор в Паскале записывается в виде: IF логическое выражение THEN оператор/блок [ELSE оператор/блок] логическое выражение - это любое выражение, значение которого имеет тип Boolean, блок - это последовательность операторов, заключенная в логические скобки : BEGIN операторы END; .
Условный оператор. Блок. Оператор выбора
Условный оператор. Блок. Оператор выбора
С.А. Григорьев
Условный оператор в Паскале записывается в виде:
IF логическое выражение THEN оператор/блок [ELSE оператор/блок] логическое выражение - это любое выражение, значение которого имеет тип Boolean, блок - это последовательность операторов, заключенная в логические скобки : BEGIN операторы END; . Перед ELSE никогда не ставится ";" ! Перед END в большинстве случаев можно не ставить ";". Если значение логического выражения TRUE, то выполняется оператор или блок, стоящий после THEN, в противном случае - оператор или блок, стоящий после ELSE. Конструкция ELSE необязательна, условный оператор можно использовать и в усеченном виде, тогда при значении логического выражения FALSE не выполняется никаких действий. Операторы, входящие в условный оператор, сами могут быть условными, т.е. допускается любая вложенность условных операторов. Запишем теперь предыдущую задачу о четырех числах, используя оператор IF :
VAR a,b,c,d : Integer;
BEGIN WRITELN('Введите 4 целых числа, a,b,c и d, среди ',
'которых должно быть 2 и только 2 одинаковых!');
WRITE('a='); READ(a); WRITELN; WRITE('b='); READ(a); WRITELN;
WRITE('c='); READ(a); WRITELN; WRITE('d='); READ(a); WRITELN;
IF(a=b)AND(a<>c)AND(a<>d)AND(c<>d) OR(a=c)AND(a<>b)AND(a<>d)AND(b<>d)OR
(a=d)AND(a<>b)AND(a<>c)AND(b<>c)OR(b=c)AND(b<>a)AND(b<>d)AND(a<>d)OR
(b=d)AND(b<>a)AND(b<>c)AND(a<>c)OR(c=d)AND(c<>a)AND(c<>b)AND(a<>b)
THEN WRITELN('Вы довольно понятливы')
ELSE WRITELN('Вы ошиблись !!!');
READLN;
END.
Можно решить эту задачу и другим способом :
VAR a,b,c,d : Integer;
CONST num : Byte = 0;
BEGIN WRITELN('Введите 4 целых числа, a,b,c и d, среди ',
'которых должно быть 2 и только 2 одинаковых!');
WRITE('a='); READ(a); WRITELN; WRITE('b='); READ(a); WRITELN;
WRITE('c='); READ(a); WRITELN; WRITE('d='); READ(a); WRITELN;
IF a=b THEN Inc(num); IF a=c THEN Inc(num); IF a=d THEN Inc(num);
IF b=c THEN Inc(num); IF b=d THEN Inc(num); IF c=d THEN Inc(num);
IF num=1 THEN WRITELN('Вы довольно понятливы')
ELSE WRITELN('Вы ошиблись !!!');
READLN;
END.
Теперь попробуем записать условный оператор, реализующий более сложную логическую структуру. Пусть даны три числа d, m и y, содержащие число, месяц и год для некоторой даты; необходимо выяснить, правильна ли эта дата.
VAR d,m : Byte; y : Word; Valid : Boolean;
BEGIN WRITE('Введите дату '); READ(d,m,y);
IF (m=1)OR(m=3)OR(m=5)OR(m=7)
OR(m=8)OR(m=10)OR(m=12) THEN
IF (d>=1)AND(d<=31) THEN Valid:=TRUE
ELSE Valid:=FALSE
ELSE
IF (m=4)OR(m=6)OR(m=9)OR(m=11) THEN
IF (d>=1)AND(d<=30) THEN Valid:=TRUE
ELSE Valid:=FALSE
ELSE
IF m=2 THEN
IF (d>=1)AND(d<=28) THEN Valid:=TRUE
ELSE
IF d=29 THEN
IF (y MOD 4=0)AND(y MOD 100>0)
OR(y MOD 400=0) THEN Valid:=TRUE
ELSE Valid:=FALSE
ELSE Valid:=FALSE
ELSE Valid:=FALSE;
IF Valid THEN WRITELN('Дата верна')
ELSE WRITELN('Дата не верна');
END.
Оператор выбора во многих случаях удобнее, чем условный оператор,
он записывается в виде :
CASE выражение OF
список значений : оператор/блок
..................................
список значений : оператор/блок
[ELSE оператор/блок]
END;
Здесь выражение - это любое выражение порядкового типа, список значений - это список разделенных запятыми константных выражений или диапазонов, диапазон - это конструкция вида константное выражение .. константное выражение. Константным будем называть любое выражение, в которое входят только неименованные и нетипизированные константы (т.е. в константное выражение не могут входить имена переменных, функции и типизированные константы). На самом деле константные выражения - это выражения, которые могут быть вычислены до выполнения программы, а отсюда уже и вытекают ограничения на их вид. Выражение, стоящее после CASE, и все константные выражения должны быть одного типа либо все иметь целочисленные типы.
Оператор выбора выполняется следующим образом: вычисляется выражение, стоящее после CASE, затем просматриваются все списки значений, и если значение выражения попало в список значений, выполняется соответствующий оператор или блок, и выполнение оператора CASE заканчивается; если значение выражения не содержится ни в одном из списков, то выполняется оператор или блок, стоящий после ELSE. Конструкция ELSE может отсутствовать, в этом случае оператор CASE может не выполнить никаких действий. В качестве примера использования оператора выбора решим предыдущую задачу о правильной дате.
VAR d,m : Byte; y : Word; Valid : Boolean;
BEGIN WRITE('Введите дату '); READ(d,m,y);
CASE m OF
1,3,5,7,8,10,12 :
CASE d OF 1..31 : Valid:=TRUE
ELSE Valid:=FALSE
END;
4,6,9,11 :
CASE d OF 1..30 : Valid:=TRUE
ELSE Valid:=FALSE
END;
2 : CASE d OF 1..28 : Valid:=TRUE;
29 : Valid:=(y MOD 4=0)AND(y MOD 100>0);
ELSE Valid:=FALSE
END;
ELSE Valid:=FALSE;
END;
IF Valid THEN WRITELN('Дата верна')
ELSE WRITELN('Дата не верна');
END.
Вы можете видеть, что задачи такого типа решаются оператором CASE гораздо проще, чем оператором IF. Решим еще одну задачу: определить, какого рода символ введен - цифра, латинская буква, русская буква или ни то, ни другое и ни третье.
VAR c : Char;
BEGIN WRITE('Введите символ '); READ(c);
CASE c OF
'0'..'9' : WRITELN('Вы ввели цифру');
' a'..'z','A'..'Z' : WRITELN('Вы ввели латинскую букву');
'а'..'п','р'..'я','А'..'Я' : WRITELN('Вы ввели русскую букву');
ELSE WRITELN('Вы ввели неизвестно что !');
END;
END.
Похожие работы
-
Операторы Turbo Pascal 7
Операторы Turbo Pascal Содержание 1. Операторы ввода и вывода информации. 2. Операторы языка ТР.7. 2.1 Составной оператор Begin ... end. 2.2 Условный оператор If.
-
Оператор выбора case
Для программирования разветвлений в алгоритме чаще всего используется условный оператор if…then или if…then…else. Однако если путей выбора много, то запись алгоритма с помощью условного оператора становится сложной.
-
Паскаль для начинающих
Паскаль для начинающих Основы грамматики в таблицах и примерах Pascal (Паскаль) - язык программирования общего назначения. Создан в 1970 году специалистами Технического Университета в Цюрихе (ETH, Zurich) под руководством профессора Никлауса Вирта (Niklaus Wirth). После появления языка Pascal были созданы новые промышленные версии языка, а также языки-потомки, которые сохраняют основные синтаксические и семантические свойства языка Вирта: Modula, Turbo Pascal, Object Pascal (Delphi), Component Pascal (Oberon-2), TMT Pascal, Free Pascal, Zonnon, Ada.
-
Программирование Паскаль
Программирование на языке Паскаль Структура программы на Турбо Паскаль Программа на языке Паскаль состоит из заголовка, разделов описаний и раздела операторов. Заголовок программы содержит имя программы, например:
-
Условные и безусловные операторы в языке программирования Си
Лабораторная работа"++" Цель работы: познакомиться с работой условного оператора и оператора перехоlа. Изучить оператор выбора варианта. Научиться применять их при составлении программ.
-
Дополнительные команды Google
ополнительные команды поисковой машине Google позволяют добиться гораздо лучших результатов. С их помощью можно ограничить область поиска, а также указать поисковой машине, что не нужно просматривать все страницы.
-
Оператор условия if else
Лабораторная Работа На тему: " Оператор условия else " 1. Назначение и синтаксис Оператор условия if-else служит для выбора направления работы программы в зависимости от условий, сложившихся в данной точке программы на момент ее выполнения.
-
Метки. Оператор GOTO. Процедура Halt
С.А. Григорьев Операторы в Паскале могут быть помечены. Метки - это идентификаторы, или целые числа от 0 до 9999, они могут записываться перед любым выполняемым оператором и отделяются от него двоеточием. Оператор может иметь любое количество меток. Все метки, использованные в программе, должны быть описаны в разделе описаний с ключевым словом LABEL.
-
Вводный курс в PHP
Синтаксис языка РНР, его переменные и чувствительность их имен к регистру. Гибкость в отношении типов переменных, преобразование типов. Набор основных типов данных при работе с переменными. Методы передача переменных скрипту. Операторы цикла и выбора.
-
Программирование в MATLAB
Кафедра: Информационные технологии ПРОГРАММИРОВАНИЕ В MATLAB Операторы MATLAB Операторы цикла Цикл Синтаксис for count=start:step:final команды MATLAB