Операторы выполняются последовательно в том порядке, в котором они записаны в программе. Операторы разделяются точкой с запятой. Все операторы Паскаля подразделяются на три группы: простые (присваивания, безусловного перехода, вызова процедуры, пустой), ввода-вывода, структурные (составные, условные, повтора).
Простые операторы не содержат в себе никаких других операторов. К ним относятся:
1) Оператор присваивания (:=) предписывает выполнить выражение в его правой части, и присвоить результат переменной, идентификатор которой расположен в левой части:
идентификатор:= выражение;
Переменная и выражение должны иметь один и тот же тип.
2) Оператор безусловного перехода (GOTO) означает «перейти к» и имеет формат:
GOTO_ метка;
Метка, на которую передается управление, должна быть описана в разделе меток, областью действия метки является тот блок, в котором она описана.
3) Оператор вызова процедуры (подпрограммы) служит для активации предварительно определенной пользователем или стандартной процедуры:
Паскаль с нуля [ч4]. Условные операторы
имя процедуры [(список параметров)];
Параметры в списке перечисляются через запятую. Подробнее процедуры рассмотрены далее.
4) Пустой оператор не содержит никаких символов и не выполняет никаких функций. Он может быть расположен в любом месте программы, где допускается наличие оператора.
Структурные операторы представляют собой структуры, построенные из других операторов по строго определенным правилам. К ним относятся:
1) Составной оператор представляет собой группу из произвольного числа операторов, отделенных друг от друга точкой с запятой, и ограниченную операторными скобками:
Составной оператор воспринимается как единое целое и может находиться в любом месте программы, где синтаксис языка допускает наличие оператора.
2) Условные операторы обеспечивают выполнение или невыполнение некоторого оператора, группы операторов или блока в зависимости от заданных условий.
Оператор условия может принимать одну из следующих форм:
1. IF_ условие _THEN_ оператор1 _ELSE_ оператор2;
2. IF_ условие _THEN_ оператор;
Условие – выражение булевского типа, при его записи могут использоваться все возможные операции отношения. Если значение выражения истинно, то выполняется оператор1, если ложно – оператор2. Во втором варианте, если выражение ложно, то выполняется оператор, следующий в программе сразу за оператором IF. Один оператор IF может входить в состав другого оператора IF, т.е. этот оператор может быть вложенным. При вложенности операторов каждое ELSE соответствует тому THEN, которое ему непосредственно предшествует.
Пример 7. 1) Программа определения принадлежности точки с координатами X,Y окружности радиусом R с центром в начале координат.
WRITELN(‘введите значения X,Y и R’);
ELSE WRITELN (‘точка находится вне круга’);
2) поиск в массиве элементов, равных заданному значению, определение их количества, формирование из индексов этих элементов массива и его печать.
Программирование на языке Pascal. Урок 8. Процедуры и функции.
FOR I:=1 TO N DO IF A[I]=J THEN BEGIN
IF S=0 THEN WRITELN(‘в массиве элем. равных заданному нет’)
ELSE BEGIN WRITELN(‘в массиве ‘,s:3,’ элем. равных’,J);
WRITELN(‘ номера элементов, равных заданному: ‘,)
FOR K:=1 TO S DO WRITE(‘ ‘,C[K]);
3) Оператор выбора позволяет сделать выбор из произвольного числа имеющихся вариантов и имеет формат:
CASE_ выражение-селектор _OF
список1: оператор1;
список2: оператор2;
списокN: операторN;
ELSE [ оператор ]
Сначала вычисляется значение выражения-селектора, затем обеспечивается реализация того оператора, константа выбора которого равна текущему значению селектора. Если ни одна из констант не равна текущему значению селектора, то выполняется оператор, стоящий после ELSE.
Пример 8. Определение диапазона, в котором находится вводимое с клавиатуры число.
1..10: WRITELN(‘число I=’,I:3,’лежит в диапазоне от 1 до 10’);
11..20: WRITELN(‘число I=’,I:3,’лежит в диапазоне от 11 до 20’);
21..30: WRITELN(‘число I=’,I:3,’лежит в диапазоне от 21 до 30’);
ELSE WRITELN(‘число I=’,I:3,’находится вне диапазона 1 — 30’);
4) Операторы повтора используются при организации циклов.
Оператор повтора FOR состоит из заголовка и тела цикла и может иметь два формата:
1. FOR_ параметр-цикла:=S1_TO_S2_DO_ оператор;
2. FOR_ параметр-цикла:=S1_DOWNTO_S2_DO_ оператор;
S1 и S2 – выражения, определяющие начальное и конечное значение параметра цикла. FOR…DO – заголовок цикла, оператор – тело цикла. Тело цикла может быть простым или составным оператором. Оператор FOR обеспечивает выполнение тела цикла с увеличением параметра цикла (TO) или с уменьшением параметра цикла (DOWNTO) на единицу.
В операторе повтора FOR Паскаль не допускает изменения параметра цикла на величину, отличную от единицы. В составе оператора запрещены операторы, меняющие значение параметра цикла.
Пример 9. 1)Вычисление переменных А и В, значения которых зависят от переменной цикла, и их печать.
2) Перевод угла в градусах в радианы.
WRITELN(‘угол в градусах угол в радианах’);
FOR I:=0 TO 18 DO BEGIN
WRITELN(‘ ‘,GRAD:12:2,’ ‘,RAD:12:4);
Оператор повтора repeat имеет формат:
UNTIL_у словие;
Условие – выражение булевского типа, при его написании допустимы булевские операции и операции отношения. Тело цикла – простой или составной оператор. Вначале выполняется тело цикла, затем проверяется условие выхода из цикла. Если условие не выполняется, то операторы тела цикла выполняются еще раз, если выполняется – происходит выход из цикла.
Оператор REPEAT имеет следующие характерные особенности: выполняется по крайней мере один раз, тело цикла выполняется, пока условие равно FALSE, в теле цикла может находиться произвольное число операторов без операторных скобок, по крайней мере один из операторов тела цикла должен влиять на значение условия, иначе цикл будет выполняться бесконечно.
Пример 10. Вычисление y=x 2 при x=8, 6, 4, 2.
Оператор повтора WHILE аналогичен оператору REPEAT, но проверка условия выполнения тела цикла производится в начале цикла. Оператор имеет формат:
WHILE_ условие _DO_ тело цикла;
Условие – булевское выражение, тело цикла – простой или составной оператор. Перед каждым выполнением тела цикла вычисляется условие, если условие выполняется, то тело цикла выполняется и снова вычисляется значение условия. Если условие не выполняется, то происходит выход из цикла и переход к первому после WHILE оператору. В этом операторе программист сам должен позаботиться об изменении переменных, определяющих выход из цикла.
Все операторы повтора могут быть вложенными.
Пример 11. 1)Увеличение переменной I на 2 до тех пор, пока она меньше 30.
2) Вычисление переменных А и N по заданным формулам до тех пор, пока 2*A не станет меньше или равно 3*N+1.
BEGIN A:=A*2; N:=N+1; ND;
3) Перевод угла в радианах в градусы.
WRITELN(‘угол в радианах угол в градусах’);
GRAD:=RAD*180/PI; WRITELN(‘ ‘,RAD:12:4,’ ‘,GRAD:12:2);
Источник: studopedia.org
Операторы управления
Аннотация: В этой главе изложена методика составления алгоритмов с помощью блок-схем и описаны основные операторы языка: условный оператор if, оператор выбора case, операторы цикла while..do, repeat..until, for..do. Приводится большое количество примеров составления программ различной сложности.
3.1 Основные конструкции алгоритма
Как правило, созданию программы предшествует разработка алгоритма 1 Алгоритм — от algorithmi, algorismus, первоначально латинская транслитерация имени математика аль-Хорезми. . Алгоритм — это чёткое описание последовательности действий, которые необходимо выполнить для того, чтобы при соответствующих исходных данных получить требуемый результат. Одним из способов представления алгоритма является блок-схема . При составлении блок-схемы все этапы решения задачи изображаются с помощью различных геометрических фигур. Эти фигуры называют блоками и, как правило, сопровождают текстом. Последовательность выполнения этапов указывают при помощи стрелок, соединяющих эти блоки. Типичные этапы решения задачи изображаются следующими геометрическими фигурами:
- блок начала (конца ) (рис. 3.1). Текст внутри блока: «начало» («конец»);
Рис. 3.1. Блок начала (конца) алгоритма
- блок ввода (вывода ) данных (рис. 3.2). Текст внутри блока: «ввод» («вывод» или «печать») и список вводимых (выводимых) переменных;
Рис. 3.2. Блок ввода (вывода)
- блок решения, или арифметический (рис. 3.3). Внутри блока записывается действие, вычислительная операция или группа операций;
Рис. 3.3. Арифметический блок
- условный блок (рис. 3.4). Логическое условие записывается внутри блока. В результате проверки условия осуществляется выбор одного из возможных путей (ветвей) вычислительного процесса.
Рис. 3.4. Условный блок
Рассмотренные блоки позволяют описать три основные конструкции алгоритма : линейный процесс, разветвляющийся процесс и циклический процесс.
Линейный процесс — это конструкция, представляющая собой последовательное выполнение двух или более блоков (рис. 3.5).
Разветвляющийся процесс задаёт выполнение одного или другого оператора в зависимости от выполнения условия (рис. 3.6).
Циклический процесс задаёт многократное выполнение оператора или группы операторов (рис. 3.7).
Рис. 3.5. Линейный процесс
Рис. 3.6. Разветвляющийся процесс
Рис. 3.7. Циклический процесс
Нетрудно заметить, что каждая из основных конструкций алгоритма имеет один вход и один выход . Это позволяет вкладывать конструкции друг в друга произвольным образом и составлять алгоритмы для решения задач любой сложности.
Рассмотрим операторы языка программирования Free Pascal , реализующие основные конструкции алгоритма.
3.2 Оператор присваивания
Оператор присваивания в языке Free Pascal состоит из двух символов: двоеточия и знака равенства. Символы := всегда пишут слитно. Пробелы допускаются перед символом двоеточия и после символа равенства.
В общем случае оператор присваивания имеет вид:
где значение — это выражение , переменная , константа или функция . Выполняется оператор так. Сначала вычисляется значение выражения, указанного в правой части оператора, а затем его результат записывается в область памяти (переменную), имя которой указано слева. Например, запись a:=b означает, что переменной а присваивается значение выражения b .
Типы переменной a и выражения b должны совпадать или быть совместимыми для присваивания, то есть тип, к которому принадлежит b , должен находиться в границах типа переменной а .
Оператор присваивания , как и любой другой оператор в языке Free Pascal , отделяется от других точкой с запятой.
3.3 Составной оператор
Составной оператор — группа операторов, отделённых друг от друга точкой с запятой, начинающихся со служебного слова begin и заканчивающихся служебным словом end :
begin оператор_1; . оператор_n end;
Транслятор воспринимает составной оператор как один оператор.
3.4 Условные операторы
В языке Free Pascal одна из основных конструкций алгоритма, разветвляющийся процесс, реализована двумя условными операторами: if и case . Рассмотрим каждый из них.
3.4.1 Условный оператор if..then..else
При решении большинства задач порядок вычислений зависит от определённых условий, например от исходных данных или от промежуточных результатов, полученных на предыдущих шагах программы. Для организации вычислений в зависимости от какого-либо условия в языке Free Pascal используется условный оператор if..then..else , который в общем виде записывается так:
Рис. 3.8. Алгоритм условного оператора if..then..else
if условие then оператор_1 else оператор_2;
где if..then..else — зарезервированные слова, условие — выражение логического типа 2 Логическое выражение может принимать одно из двух значений: истина или ложь. , оператор_1 и оператор_2 — любые операторы языка Free Pascal.
Работа условного оператора организована следующим образом. Сначала вычисляется выражение, записанное в условии . Если оно имеет значение истина ( True ), то выполняется оператор_1 . В противном случае, когда выражение имеет значение ложь ( False ), оператор_1 игнорируется и управление передаётся оператору_2 .
Алгоритм, который реализован в условном операторе if..then..else , представлен на рис. 3.8.
Например, чтобы сравнить значения переменных и
, нужно создать следующий программный код:
write ( ’ x= ’ ); readln ( x ); write ( ’ y= ’ ); readln ( y ); if x=y then writeln ( ’значение x равно значению y ’ ) else writeln ( ’значение x не равно значению y ’ );
Если в задаче требуется, чтобы в зависимости от значения условия выполнялся не один оператор, а несколько, необходимо использовать составной оператор:
if условие then begin оператор_1; оператор_2; . оператор_n; end else begin оператор_1; оператор_2; . оператор_n; end;
Альтернативная ветвь else в условном операторе может отсутствовать, если в ней нет необходимости:
if условие then оператор; или if условие then begin оператор_1; оператор_2; . оператор_n; end;
В таком «усечённом» виде условный оператор работает так: оператор (группа операторов) либо выполняется, либо пропускается в зависимости от значения выражения, представляющего условие. Алгоритм этого условного процесса представлен на рис. 3.9.
Пример применения условного оператора, без альтернативной ветви else может быть таким:
write ( ’ x= ’ ); readln ( x ); write ( ’ y= ’ ); readln ( y ); c : = 0; if ( x<>y ) then c :=x+y; writeln ( ’Значение переменной с= ’, c );
Условные операторы могут быть вложены друг в друга. При вложениях условных операторов всегда действует правило: альтернатива else считается принадлежащей ближайшему if , имеющему ветвь else . Например, в записи он принадлежит оператору if с условием_1 .
Рис. 3.9. Алгоритм условного оператора if без альтернативной ветви else
if условие_1 then if условие_2 then оператор_А else оператор_Б;
оператор_Б относится к условию_2 , а в конструкции
if условие_1 then begin if условие_2 then оператор_А; end else оператор_Б;
Для сравнения переменных в условных выражениях применяют операции отношения : =, <>, , = . Условные выражения составляют с использованием логических операций and, or и not. В языке Free Pascal приоритет операций отношения меньше, чем у логических операций, поэтому составные части сложного логического выражения заключают в скобки.
Допустим, нужно проверить, принадлежит ли переменная интервалу
. Условный оператор будет иметь вид:
if ( x>=a ) and ( xthen.
Источник: intuit.ru
1. Служебное слово VAR в программе на языке Pascal фиксирует начало раздела программы, содержащего:
4. Оператор организации ввода данных с клавиатуры в системе программирования Turbo Pascal записывается с использованием служебного слова:
А) WRITE; Б) INPUT;
В) READ; Г) DEFFN; Д) RESET.
5. Комментарий к тексту программы на языке Pascal заключается:
А) в фигурные скобки;
Б) в круглые скобки;
В) в квадратные скобки;
Д) между служебными словами Begin, End.
6. Служебное слово CONST в программе на языке Pascal фиксирует начало раздела программы, содержащего:
А) перечень констант;
В) описание переменных;
Д) описание сложных типов данных.
7. При записи оператора вывода на языке Pascal используется служебное слово:
А) WRITE; Б) RESET;
В) READ; Г) BEGIN; Д) WHILE
8. В качестве имени в языке Pascal нельзя использовать:
А) BR; Б) ИЕ; В) WR; Г) AR; Д) DR.
9. Операторы в программе на языке Pascal отделяются друг от друга:
А) апострофом; Б) двоеточием;
В) пробелом; Г) запятой; Д) точкой с запятой.
10. Дана программа:
Program T21; Var X: Integer;
If X MOD 2=0 Then Writeln(‘ДА’)
Else Writeln(‘НЕТ’) End.
При каком значении X будет получен ответ “ДА”?
Контрольный проверочный тест по теме
1. В каком из условных операторов допущена синтаксическая ошибка?
а) if B = 0 then Writeln(‘Деление на нуль невозможно.’);
б) if a > b then m:= a else m:= b;
в) if a>b then c:=a+b;
2. Чему будет равно значение переменной Х после выполнения команды Х:=Х+2, если до ее выполнения оно было равно 3?
а) 1; б) 2; в) 3; г) 5.
3. При каких исходных значениях переменных Х и У в результате выполнения команды Х:=Х^Y – Y значение переменной Х станет равным двум?
а) 4, 1; б) 3, 2; в) 2,2; г) 5, 1.
4. Операторы в языке Pascal отделяются друг от друга:
б) точкой с запятой;
5. Что из ниже перечисленного не входит в набор основных символов Турбо Паскаля ?
а) латинские строчные и прописные буквы
б) служебные слова
г) русские строчные и прописные буквым
6. В алфавит языка Pascal входит следующее слово:
7. Комментарий к тексту программы на языке Pascal заключается:
а) в круглые скобки;
б) в фигурные скобки;
в) в квадратные скобки;
г) между служебными словами begin и end.
8. Служебное слово const в программе на языке Pascal фиксирует начало раздела программы, содержащего:
а) описание переменных;
б) описание меток;
в) описание констант;
г) описание сложных типов данных.
9. Служебное слово var в программе на языке Pascal фиксирует начало раздела программы, содержащего:
а) описание переменных;
б) описание меток;
в) описание констант;
г) описание сложных типов данных.
10. При записи оператора вывода на языке Pascal используется служебное слово:
А) WRITE; Б) RESET;
В) READ; Г) BEGIN; Д) WHILE.
Источник: znanija.site