Как сделать оператор в паскале

Обновлено: 12.07.2024

В данной секции располагаются определенные пользователем константы. Синтаксис объявления констант выглядит так:

Данная секция предназначена для переменных и массивов. Переменные объявляются так:

Тип строка - это тип переменных, который позволяет хранить в переменной любой текст. Объявление строковой переменной:

Операция Описание
s1 + s2 Объединение строк
s1*n Дублирование строки n раз

Операция Описание
a + b Сложение чисел
a - b Разность чисел
a * b Произведение чисел
a div b Целочисленное деление
a mod b Остаток от деления

Декларация переменной типа real:

Пример присваивания переменной данного типа:

Операция Описание
a + b Сложение чисел
a - b Разность чисел
a * b Произведение чисел
a / b Частное чисел

Данный раздел программы содержит все команды, выполняемые при ее запуске. Данная секция программы выглядит так:

Комментарий - это часть кода, которую игнорирует компилятор. Он создается следующим образом:

Массивы - это именованный список элементов одного типа.

P. S. Для работы с массивами существует учебный модуль Arrays.

Статические массивы имеют фиксированный размер. Общий синтаксис объявления данных массивов выглядит так:

, где N - длина массива.

Матрица - это n-мерный список значений, имеющий свой тип и ограниченный некоторыми значениями. Пока будем рассматривать только статические двухмерные и трехмерные матрицы. Перед тем, как перейти к их изучению вспомни таблицы в Excel. Каждая таблица имеет свой размер - ширину и длину. Возьмем за правило ассоциировать двухмерные матрицы с таблицами. Объявление матрицы:

, где N, M количество строчек и столбцов соответственно.

Трехмерный матрицы обладают третьим измерением:

Декларация N-мерной матрицы:

, где A..Z означают количество элементов в соответствующем измерении.

Динамические массивы позволяют управлять количеством элементом в каждом из их измерений во время выполнения программы.

Индекс массива - это номер элемента массива. Индекс может принимать значения [0, N - 1], где N - количество элементов некоторой размерности. Обращение к элементу одномерного массива с некоторым индексом:

Составим таблицу, которую следует запомнить:

Где i, j, k - индексы.

Индексом может быть значение элемента массива:

Вывести текст - это значит отобразить текст на экране. Общий синтаксис для вывода текста выглядит так:

Вывод значений произвольного количества переменных:

Для перехода на новую строку после вывода последнего значения используйте Writeln вместо Write.

Чтение с клавиатуры - это процесс ввода данных с клавиатуры и запись в соответствующий элемент программы этих данных. Элементами программы являются как переменные, так и элементы массивов. Тип данных, вводимых с клавиатуры, должен соответствовать типу элемента, в который записываются данные с клавиатуры. Использование Readln для чтения с клавиатуры и перехода на новую строку:

Общий синтаксис условного оператора if:

Команды . будут выполнены только при истинности условия.

Условные обозначения в программировании операций сравнения приведены в таблице:

Операция Эквивалент в Паскале
≤ (меньше или равно)
≥ (больше или равно) >=
> (больше) >
= (равно) =
≠ (не равно) <>

Общий синтаксис сравнения двух величин:

Оператор case используется для сопоставления значения некоторого выражения с константными значениями:

Если некоторое i-тое константное выражение совпадает с значением выражения, то i-ая группа операторов будет выполнена. Группа операторов после else будет выполнена, если значение выражения не совпало ни с одной из констант. begin - end не нужны, если после двоеточия только один оператор.

Оператор цикла позволяет выполнять группу операторов (или один) циклически пока условие является истинным.

Если второе значение меньше первого - используйте downto вместо to.

Для выхода из цикла можно использовать break:

Для завершения текущей итерации цикла и начала другой используйте оператор continue.

Общий синтаксис описания функции:

Можно устанавливать значение переменной Result для указания возвращаемого значения.

Первая строка называется заголовком программы и не является обязательной.
Раздел подключения модулей начинается со служебного слова uses, за которым следует список имен модулей, перечисляемых через запятую.
Раздел описаний может включать разделы описания переменных, констант, типов, процедур и функций, которые следуют друг за другом в произвольном порядке.
Раздел подключения модулей и раздел описаний могут отсутствовать.

Модуль CRT предназначен для работы с текстовым окном.
ClrScr - очистка текстового окна (заливка цветом фона)

После выполнения в ОП (оперативной памяти) выделяются ячейки, которые помечаются как переменные x , y , z .

После выполнения на экран выводиться мигающий курсор и ожидается ввод данных с клавиатуры, после ввода в ОП переменной с именем x присваивается введенной значение.

Условный оператор if
if then оператор 1 else оператор 2;
Операторы сравнения:
> больше
= больше или равно
не равно
and – и
or – или
not – не
xor – без

Оператор цикла for
for := to do оператор;
Используется для выполнения однотипных действий с известным числом их повторений. Количество повторений может быть указанно в условии задачи или должно вводиться как параметр с клавиатуры.

Оператор цикла while
while do оператор;
Выполняет действие или действия пока истинно условие. После каждого прохождения тела цикла, условие проверяется и если условие ложно, осуществляется выход из цикла.
Если условие истинно всегда, то происходит зацикливание. Чтобы прервать зациклившуюся программу, следует использовать комбинацию клавиш Ctrl-F2.
Условие - логическое выражение, записанное с помощью логических операторов сравнения.

x:=5;
while x<>0 do
begin
writeln ('привет') ;
x:=x-1;
end;
На экране будет печататься слово "привет" пока x не равен 0, это произойдет на 6 шаге цикла, т.е. слово "привет" будет напечатано 5 раз.

В этом уроке мы познакомимся с основными определениями и операторами в Turbo Pascal.

Идентификаторы (имена). Идентификаторы вводятся для обозначения в программе переменных, констант, типов, меток, процедур, функций, самой программы. При построении идентификаторов необходимо учитывать следующие правила:

  • а) идентификатор может состоять только из букв, включая символ подчеркивания, и цифр (пп.1-3 алфавита языка). Использование пробела недопустимо;
  • б) первым символом должна быть буква;
  • в) строчные и прописные буквы считаются компилятором эквивалентными;
  • г) максимальная длина идентификатора - 126 символов. Однако компилятор различает только первые 63 символа.

1.1 Типы данных в Turbo Pascal

Вам будет интересно: 1.1 Типы данных в Turbo Pascal

Примеры идентификаторов: a, x1, alpha, ALPHA, Mass_of_Sun, speed

Служебные (зарезервированные слова). Это ограниченная группа слов (чуть более 50-ти), построенных из букв. Смысл каждого служебного слова четко фиксирован в языке. Служебные слова НЕЛЬЗЯ использовать в качетве идентификаторов вводимых программистом.

Примеры служебных слов: begin, end, for, to, if, else, array, in, mod, var, unit и т.д.

Неименованные константы (изображения). Группа лексем обозначающая числа, символы, строки и некоторые другие значения. Например, 'a' - символ "а"; 'Турбо Паскаль' - текстовая строка, 123 - целое число, 123.5 или 1.235Е2 - вещественное число.

1. Turbo Pascal Введение теория и основы.

Вам будет интересно: 1. Turbo Pascal Введение теория и основы.

Знаки операций. Формируются из одного или нескольких специальных символов и предназначены для задания действий по преобразованию данных и вычислению значений. Коментарии - произвольная последовательность символов заключенная в фигурные скобки < >или в разделители вида (* *). Коментарии используются для размещения в программе фрагментов пояснительного характера. Например, < Это строка коментария >

Кроме этого с помощью символов < >можно верменно исключить из программы определенную группу операторов, поскольку все, что является текстом коментария полностью игнорируется компилятором.

Ключи компиляции (дерективы компилятора) - спициальные конструкции позволяющие управлять режимом компиляции: включать или выключать контроль ошибок, производить или нет проверку диапазонов массивов, изменять распределение памяти и т.д. Ключ компиляции представояет собой специфический коментарий, содержащий символ "$" и букву-ключ с последующим знаком "+" (включить режим) или "-" (выключить). Например, - отключить проверку диапазонов индексов массивов; - включить обработку ошибок ввода-вывода и т.д.

Некоторые ключи задают не режим, а компоновку программы из внешних составных частей. Таков, например, ключ называемый командой включения в программу внешнего текстового файла. Эта команда заставляет компилятор считать заданный файл частью обрабатываемой программы.

Операторы языка в Turbo Pascal

Операторы языка описывают некоторые алгоритмические действия, которые необходимо выполнить для решения задачи. Тело программы можно представить как последовательность таких операторов. Идущие друг за другом операторы программы разделяются точкой с запятой.

Все операторы языка Паскаль можно разбить на две группы: простые и структурированные.

Простые операторы. Простыми являются те операторы, которые не содержат в себе других операторов. К ним относятся:

  • оператор присваивания;
  • обращение к процедуре;
  • оператор безусловного перехода GOTO;
  • пустой оператор.

Оператор присваивания С помощью этого оператора переменной или функции присваивается значение выражения. Для этого используется знак присваивания := , слева от которого записывается имя переменной или функции, которой присваивается значение, а справа - выражение, значение которого вычисляется перед присваиванием.

Допустимо присваивание значений переменным и функциям любого типа, за исключением типа файл. Тип выражения и тип переменной (или функции) должны быть совместимы для присваивания Пример. X := Y; Z :=А + В; Res := (I>0) and (I begin ; ; . . . end; Он может потребоваться в тех случаях, когда в соответствии с правилам! построения конструкций языка можно использовать один оператор, а выполнить нужно несколько действий. В такой составной оператор входит ряд операторов выполняющих требуемые действия.

В дальнейшем везде, где будет указываться, что можно использовать один оператор, им может быть и составной оператор.

Отдельные операторы внутри составного оператора отделяются друг от друга точкой с запятой. Так как завершающее составной оператор слово end не является отдельным предложением, то перед ним точку с запятой можно не ставить, в противном случае компилятор будет считать, что перед словом end стоит пустой оператор.

Можно считать, что и само тело программы, т. к. оно заключено в операторные скобки begin и end, тоже является составным оператором.

Условный оператор IF

Оператор IF реализует алгоритмическую конструкцию РАЗВИЛКА и изменяет порядок выполнения операторов в зависимости от истинности или ложности некоторого условия. Существует два варианта оператора:

if S then A else В; и if S then А;

В этих операторах:

  • S - некоторое логическое выражение, истинность которого проверяется;
  • А - оператор, который выполняется, если выражение S истинно;
  • В - оператор, который выполняется, если выражение S ложно.

Так как условный оператор IF является единым предложением, ни перед then, ни перед else точку с запятой ставить нельзя. Примеры использования оператора:

Условный оператор CASE С помощью этого оператора можно выбрать вариант из любого количества вариантов. Структура этого оператора в Turbo Pascal: case S of C1:Instruction1; C2:Instruction2; CN: InstructionN; else Instruction end;

В этой структуре: S - выражение порядкового типа, значение которого вычисляется; C1, C2, . CN - константы, с которыми сравнивается значение выражения S; Instruction1, Instruction2, . InstructionN - операторы, из которых выполняется ТОТ, с константой которого совпадает значение выражения S; Instruction - оператор, который выполняется, если значение выражения S не совпадает ни с одной из констант С1, . CN. Ветвь оператора else является необязательной. Если она отсутствует и значение выражения S не совпадет ни с одной из перечисленных констант, весь оператор рассматривается как пустой. В отличие от оператора IF перед словом else точку с запятой можно ставить.

Если для нескольких констант нужно выполнять один и тот же оператор, их можно перечислить через запятую (или даже указать диапазон, если возможно), сопроводив их одним оператором.

Оператор цикла REPEAT Оператор цикла REPEAT организует выполнение цикла, состоящего из любого числа операторов, с неизвестным заранее числом повторений. Тело цикла выполняется хотя бы один раз. Выход из цикла осуществляется при истинности некоторого логического выражения. Структура этого оператора: repeat Instruction1; Instruction2; . . . InstructionN until S;

В этой структуре: Instruction1, Instruction2, . InstructionN - выполняемые операторы, составляющие тело цикла; S - логическое выражение, истинность которого проверяется в конце каждой итерации. Так как слова repeat и until являются своеобразными операторными скобками, точку с запятой перед словом until ставить не обязательно. Оператор цикла REPEAT Оператор цикла REPEAT организует выполнение цикла, состоящего из любого числа операторов, с неизвестным заранее числом повторений. Тело цикла выполняется хотя бы один раз. Выход из цикла осуществляется при истинности некоторого логического выражения. Структура этого оператора: repeat Instruction1; Instruction2; . . . InstructionN until S;

В этой структуре: Instruction1, Instruction2, . InstructionN - выполняемые операторы, составляющие тело цикла; S - логическое выражение, истинность которого проверяется в конце каждой итерации. Так как слова repeat и until являются своеобразными операторными скобками, точку с запятой перед словом until ставить не обязательно.

Оператор цикла WHILE Оператор цикла WHILE организует выполнение одного оператора неизвестное заранее число раз. Выход из цикла осуществляется, если некоторое логическое выражение окажется ложным. Так как истинность логического выражения проверяется в начале каждой итерации, тело цикла может не выполняться ни разу. Структура оператора цикла имеет вид: while S do Instruction;

В этой структуре: S - логическое выражение, истинность которого проверяется в начале каждой итерации; Instruction - выполняемый оператор цикла.

Оператор цикла FOR Оператор цикла FOR организует выполнение одного оператора заранее известное число раз. Существует два варианта оператора: For Param:=Start to Finish do Instruction; For Param:=Start downto Finish do Instruction; В этих операторах:

  • Param - параметр цикла, являющийся переменной порядкового типа;
  • Start - выражение, определяющее начальное значение параметра цикла;
  • Finish - выражение, определяющее конечное значение параметра цикла;
  • Instruction - выполняемый оператор.

Start и Finish должны быть совместимы для присваивания с параметром цикла (см. п. 9.3). Цикл действует таким образом. Сначала вычисляются и запоминаются начальное - Start и конечное - Finish значения параметра цикла. Далее параметру цикла Param присваивается начальное значение Start. Затем значение параметра цикла сравнивается со значением Finish. Далее, пока параметр цикла меньше или равен конечному значению (в первом варианте оператора) или больше или равен конечному значению (во втором варианте), выполняется очередная итерация цикла; в противном случае происходит выход из цикла. Выполнение очередной итерации включает в себя сначала выполнение оператора Instruction, а затем присваивание параметру цикла следующего большего значения (в первом варианте оператора) или следующего меньшего значения (во втором варианте).

Естественно, что, если в первом варианте значение Start больше Finish или во втором варианте меньше Finish, оператор не выполняется ни разу.

После выхода из цикла параметр цикла становится неопределенным, за исключением случая, когда выход из цикла был осуществлен с помощью оператора GOTO или стандартной процедуры Break.

Использование стандартных процедур Break и Continue в операторах циклов REPEAT, WHILE и FOR В циклах REPEAT, WHILE и FOR можно использовать две новые стандартные процедуры - Break и Continue. Процедура Break позволяет досрочно выйти из цикла, не дожидаясь выполнения условия выхода. Процедура Continue позволяет начать новую итерацию цикла, даже если предыдущая не завершена.

Операторы ввода – вывода

Оператор WriteLn можно применить и без параметров. В этом случае курсор просто будет переведен в начало следующей строки. Это иногда нам нужно для лучшего восприятия ввода данных.

Операторы Read и ReadLn. Этими операторами вводится информация с клавиатуры. Общий вид: Read(переменная, переменная. ) ReadLn(переменная, переменная. )

При выполнении процедуры Read ожидается ввод перечисленных в скобках значений. Вводимые данные нужно отделить друг от друга пробелами. Присваивание значений идет по очереди. Например, если вводятся значения 53 и Х, то при выполнении оператора Read(a,b) переменной а будет присвоено число 53, а переменной b - буква Х. Причем, отметим, чтобы не было аварийной ситуации, нужно правильно определить тип данных в разделе Var; в нашем случае а:integer, а b:char.

Особых различий при чтении и записи в использовании операторов Read и ReadLn нет. Часто процедуру ReadLn без параметров применяют в конце программы для задержки: до нажатия на клавишу результат выполнения программы остается на экране. Это очень полезно делать для анализа результатов.

Операция "И" (логическое умножение)


Операция "ИЛИ" (логическое сложение)


Операция "исключающее ИЛИ"

Операция NOT применима к одному логическому выражению (является унарной). Ее результат равен true , если выражение ложно и наоборот.

Например, выражение NOT ( sin ( x )>1) всегда даст значение true .

Операция AND связывает не менее двух логических выражения (является бинарной). Ее результат равен true , если все выражения истинны или false , если хотя бы одно из выражений ложно.

В качестве примера распишем выражение . Т. к. операции принадлежности в Паскале нет, используем операцию AND и операции отношения: ( x >= a ) and ( x b ) .

Математическое выражение a , b , c >0 (одновременно) будет иметь вид ( a >0) and ( b >0) and ( c >0) .

Операция OR также связывает не менее двух логических выражений. Ее результат равен true , если хотя бы одно выражение истинно и false , если все выражения ложны.

Распишем выражение . На Паскале оно будет иметь вид ( x a ) or ( x > b ) . Другой способ связан с применением операции NOT : not (( x >= a ) and ( x b )) .

Условие "хотя бы одно из значений a , b , c положительно" может быть записано в виде ( a >0) or ( b >0) or ( c >0) .

Условие "только одно из значений a , b , c положительно" потребует объединения возможностей операций AND и OR :

( a and ( b and ( c >0) .

Операция XOR , в отличие от OR , возвращает значение "ложь" ( false ) и в том случае, когда все связанные ей логические выражения истинны. Чтобы лучше уяснить это отличие, составим так называемую таблицу истинности двух логических операций (табл. 7.2). Для краткости значение false обозначим нулем, а true -- единицей. Для двух логических аргументов возможно всего 4 комбинации значений 0 и 1.

Табл. 7.2. Таблица истинности операций OR и XOR

В качестве примера использования операции XOR запишем условие "только одно из значений a,b положительно":

К сожалению, записать условие "только одно из значений a,b,c положительно" в напрашивающемся виде ( a >0) xor ( b >0) xor ( c >0) нельзя -- результат этого выражения будет равен true и в случае, когда все три значения положительны. Связано это с тем, что при последовательном расчете логических выражений слева направо (1 xor 1) xor 1 будет равно 0 xor 1 = 1 .

С помощью xor удобно организовывать различного рода переключатели, которые последовательно должны принимать одно из двух состояний:

x := x xor true; writeln ('x=', x);

x := x xor true; writeln ('x=', x);

Независимо от начального значения логической переменной x , второе выведенное на экран значение будет логическим отрицанием первого. В реальной практике конструкции подобные x := x xor true ; не дублируются в коде многократно, а применяются внутри цикла (см. гл. 9).

Приоритет логических операций следующий: самая старшая операция -- not , затем and , следующие по приоритету -- or и xor (равноправны между собой), самый низкий приоритет имеют операции отношения. Последнее служит причиной того, что в составных условиях отдельные отношения необходимо заключать в круглые скобки, как и сделано во всех примерах раздела.

7.4. Короткий условный оператор

Это первый вид условного оператора, позволяющий программе выполнить или пропустить некоторый блок вычислений. Общий вид короткого условного оператора следующий:

if логическое_выражение then оператор1;

Сначала вычисляется логическое выражение, если оно имеет значение true , то выполняется оператор1 , иначе оператор1 игнорируется. Блок-схема соответствующего вычислительного процесса представлена на рис. 7.1.


Рис. 7.1. Блок-схема короткого условного оператора

Если по условию требуется выполнить несколько операторов, их необходимо заключить в операторные скобки begin . end ; , образуя единый составной оператор:

if d>0 then begin

Здесь по условию d >0 выполняется 3 оператора, первые два из которых вычисляют корни x 1 и x 2 квадратного уравнения, а последний выводит на экран найденные значения корней.

Следующий пример иллюстрирует поиск значения y = max ( a , b , c ). Поскольку стандартной функции для нахождения максимума в Паскале нет, применим 2 коротких условных оператора:

Вообще, для условной обработки N значений требуется N-1 короткий условный оператор.

7.5. Полный условный оператор

Эта форма условного оператора позволяет запрограммировать 2 ветви вычислений. Общий вид полного условного оператора следующий:

if логическое_выражение then оператор1

Оператор работает следующим образом: если логическое выражение имеет значение true , то выполняется оператор1 , иначе выполняется оператор2 . Всегда выполняется только один из двух операторов. Перед ключевым словом else ("иначе") точка с запятой не ставится, т.к. if - then - else -- единый оператор.

Вычислим значение m = min ( x , y ) с помощью полного условного оператора:

В следующем примере выполним обработку двух переменных: если значения a и b одного знака, найти их произведение, иначе заменить нулями.

if a*b>0 then c:=a*b

Из примера видно, что к ветви алгоритма после ключевого слова else , состоящей более чем из одного оператора, также применяются операторные скобки.

7.6. Составной условный оператор

Эта форма условного оператора применяется, когда есть более 2 вариантов расчета. Общий вид составного оператора может включать произвольное число условий и ветвей расчета:

if логическое_выражение1 then оператор1

else if логическое_выражение2 then оператор2

else if логическое_выражение N then оператор N

При использовании оператора последовательно проверяются логические выражения 1 , 2 , . , N , если некоторое выражение истинно, то выполняется соответствующий оператор и управление передается на оператор, следующий за условным. Если все условия ложны, выполняется оператор0 (если он задан). Число ветвей N неограниченно, ветви else оператор0; может и не быть.

Существенно то, что если выполняется более одного условия из N , обработано все равно будет только первое истинное условие. В показанной ниже программе составной условный оператор неверен, если ее разработчик хотел отдельно учесть значения x , меньшие единицы по модулю:

write (' Введите x:'); readln (x);

if x Отрицательный ')

else if x=0 then writeln (' Ноль ')

writeln (' По модулю меньше 1')

else writeln (' Больше 1');

Условие x сработает, например, для значения x =-0.5 , что не позволит программе проверить условие abs(x) .

Еще одну распространенную ошибку работы с составным условным оператором показывает произведенный ниже расчет знака n переменной a :

Применение одного короткого и одного полного условных операторов является здесь грубой ошибкой -- ведь после завершения короткого условного оператора для всех ненулевых значений a будет выполнено присваивание n :=1 . Правильных вариантов этого расчета, по меньше мере, два:

- с помощью 3 коротких условных операторов, вариант не очень хорош тем, что проверяет лишние условия даже тогда, когда знак уже найден.

else if a>0 then n:=1;

- с помощью составного условного оператора, этот вариант лучше. На практике следует помнить, что для вещественных значений сравнение с нулем может быть проблематично.

Можно сделать вывод, что при программировании многовариантных расчетов следует соблюдать осторожность, чтобы не допустить "потерянных" или неверно срабатывающих ветвей алгоритма.

В качестве еще одного примера рассчитаем значение функции, заданной графически (рис. 7.2).


Рис. 7.2. Функция, заданная графически

Перепишем функцию в аналитическом виде:

Одним из вариантов запрограммировать вычисление y ( x ) мог бы быть следующий:

if abs(x)>1 then y:=0

Возможна и последовательная проверка условий слева направо, которая породит немного избыточный, но легче воспринимающийся код:

7.7. Вложенные условные операторы

Когда после ключевых слов then или else вновь используются условные операторы, они называются вложенными. Число вложений может быть произвольно, при этом действует правило: else всегда относится к ближайшему оператору if , для которого ветка else еще не указана. Часто вложением условных операторов можно заменить использование составного.

В качестве примера рассмотрим программу для определения номера координатной четверти p , в которой находится точка с координатами ( x , y ) . Для простоты примем, что точка не лежит на осях координат. Без использования вложений основная часть программы может иметь следующий вид:

if (x>0) and (y>0) then p:=1

else if (x 0) then p:=2

Однако использование такого количества условий представляется явно избыточным. Перепишем программу, используя тот факт, что по каждое из условий x >0 , x оставляет в качестве значения p только по 2 возможных четверти из 4:

if x>0 then begin

В первом фрагменте программе проверяется от 2 до 6 условий, во втором -- всегда только 2 условия. Здесь использование вложений дало существенный выигрыш в производительности.

Рассмотренный в п. 7.6 пример с определением знака числа может быть переписан и с использованием вложения:

Однако, как эти операторы, так и составной условный оператор из п. 7.6 проверяют не более 2 условий, так что способы примерно равноценны.

7.8. Оператор выбора

Для случаев, когда требуется выбор одного значения из конечного набора вариантов, оператор if удобнее заменять оператором выбора (переключателем) case :

case выражение of

список N : оператор N ;

Оператор выполняется так же, как составной условный оператор.

Выражение должно иметь порядковый тип (целый или символьный). Элементы списка перечисляются через запятую, ими могут быть константы и диапазоны значений того же типа, что тип выражения. Диапазоны указываются в виде:

Оператор диапазона записывается как два рядом стоящих символа точки. В диапазон входят все значения от минимального до максимального включительно.

В качестве примера по номеру месяца m определим число дней d в нем:

Следующий оператор по заданному символу c определяет, к какой группе символов он относится:

writeln (' Латинская буква ');

writeln ('Русская буква');

else writeln ('Другой символ');

Здесь отдельные диапазоны для русских букв от "а" до "п" и от "р" до "я" связаны с тем, что между "п" и "р" в кодовой таблице DOS находится ряд не-буквенных символов (см. Приложение 1).

Если по ветви оператора case нужно выполнить несколько операторов, действует то же правило, что для оператора if , т. е. ветвь алгоритма заключается в операторные скобки begin . end ; .

7.9. Примеры программ с условным оператором

Приведем несколько примеров законченных программ, использующих РВП.

1. Проверить, может ли быть построен прямоугольный треугольник по длинам сторон a , b , c .

Проблема с решением этой задачи -- не в проверке условия теоремы Пифагора, а в том, что в условии не сказано, какая из сторон может быть гипотенузой. Подходов возможно несколько -- запрашивать у пользователя ввод данных по возрастанию длины сторон, проверять все три возможных условия теоремы Пифагора и т. п. Используем наиболее естественное решение -- перед проверкой условия теоремы Пифагора упорядочим величины a , b , c так, чтобы выполнялись соотношения a ≤ b ≤ c . Для этого применим прием с обменом значений переменных из п. 4.1.

Читайте также: