Как отделяется оператор в программе

Текст любой программы можно записать многими разными способами.

Пример. Определить длину стороны треугольника по двум другим и углу между ними.

Var side1,side2,side3,angle: real;

Write (‘third side=’,side3)

Второй вариант. Все то же записано в строчку: Var side1,side2,side3,angle: real; Begin Read(side1,side2,side3,angle); Side3:=sqrt(sqr(side1)+sqr(side2)-2*side1*side2*cos(angle)); Write (‘third side=’,side3) End.

Большинство программистов предпочтет 1-ый вариант, поскольку он нагляднее выражает структуру программы. Такую программу легче читать и понимать. Наконец, она красивее.

С точки зрения. ЭВМ совершенно безразлично, как записана программа, важно лишь, чтобы она была правильной. Если принять эту точку зрения, то говорить о стиле программирования становится просто бессмысленно. Но программы пишутся все-таки и для людей. Да, они выполняются на вычислительной машине, но разбираться в них, использовать, модифицировать должны программисты.

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

Рабочее место оператора

1. Составной оператор

BEGIN здесь S1, S2,…,Sn — операторы

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

else S2; В- логическое выражение(условие); S1,S2- операторы

Если S1,S2 — составные операторы, то надо использовать такое расположение:

3. Операторы цикла

Если один из операторов S1 есть снова оператор цикла WHILE, то рекомендуется расположение:

Оператор REPEAT располагается так:

Оператор FOR располагается следующим образом:

For i:=A1 to A2 DO A1,A2- выражения

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

5. Оператор WITH

S1; k — идентификатор поля

6. Служебные (зарезервированные) слова PROGRAM, LABEL, CONST, TYPE, VAR, PROCEDURE,FUNCTION записываются в самой левой позиции. При использовании вложенных процедур и функций соответствующие им слова PROCEDURE, FUNCTION записываются правее. Соответственно сдвигаются вправо и тела вложенных процедур и функций. Итак, при написании программ вложенную конструкцию рекомендуется располагать правее на 3-5 позиций объемлющей ее конструкции.

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

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

Оператор where

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

Источник: studopedia.su

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

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

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

5.1. Простые операторы

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

Обращение к процедуре будет рассмотрено в п. 10.1, остальные — в данном разделе.

5.1.1. Оператор присваивания

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

Читайте также:
Что выполняет программа компилятор

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

X := Y;
Z :=А + В;
Res := (I>0) and (I

5.1.2. Оператор безусловного перехода GOTO. Использование меток

  • целым числом в пределах от 0 до 9999;
  • обычным идентификатором.

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

label 1, 2, Metka;

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

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

Пример. Найти частное от деления целых чисел.

program EXAMPLE4;
label
Out;
var
X, Y, Res: Integer;
begin
Write(‘Введите делимое: ‘);
ReadLn(X);
Write(‘Введите делитель: ‘);
ReadLn(Y);
if Y = 0 then
begin
WriteLn(‘Деление на ноль!’);
goto Out;
end;
Res:=X div Y;
WriteLn(‘Частное равно: ‘,Res);
Out:
end.

5.1.3. Пустой оператор

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

Источник: 5byte.ru

Структура программы на Турбо Паскаль

Описания могут включать в себя:

· раздел подключаемых библиотек (модулей);

· раздел описания меток;

· раздел описания констант;

· раздел описания типов;

· раздел описания переменных;

· раздел описания процедур и функций.

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

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

label 3, 471, 29, Quit;

Описание констант позволяет использовать имена как синонимы констант, их необходимо определить в разделе описания констант:

const K= 1024; MAX= 16384;

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

var P, Q, R: Integer; A, B: Char; F1, F2: Boolean;

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

Раздел операторов представляет собой составной оператор, который содержит между служебными словами

последовательность операторов. Операторы отделяются друг от друга символом;. Текст программы заканчивается символом точка.

Читайте также:
Кто сидит на моем Wi-Fi программа

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

program Primer; var x, y, s: integer; begin WriteLn(‘Введите через пробел два числа ‘); ReadLn(x, y); s: = x + y; WriteLn(‘Сумма чисел равна ‘, s); end.

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

program Primer; uses Crt; var x, y, s: integer; begin ClrScr; WriteLn(‘Введите через пробел два числа ‘); ReadLn(x, y); s: = x + y; WriteLn(‘Сумма чисел равна ‘, s); ReadKey; end.

Текст Паскаль — программы может содержать ключи компиляции, которые позволяют управлять режимом компиляции. Синтаксически ключи компиляции записываются как комментарии. Ключ компиляции содержит символ $ и букву-ключ с последующим знаком + (включить режим) или — (выключить режим). Например:

— эмулировать математический сопроцессор;

— формировать дальний тип вызова процедур и функций;

— использовать математический сопроцессор;

— проверять выход за границы диапазонов.

Некоторые ключи компиляции могут содержать параметр, например:

— включить в текст компилируемой программы названный файл.

Организция ветвлений в программе.

В языке Паскаль используется два оператора для реализации условных переходов — IF и CASE, а также оператор безусловного перехода GOTO. Они позволяют нарушить последовательный порядок выполнения инструкций программы.

Оператор условного перехода

Оператор условного перехода в Турбо Паскаль имеет вид:

if условие then оператор 1 else оператор 2;

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

Необходимо помнить, что перед ключевым словом else точка с запятой никогда не ставится!

else — часть в операторе if может отсутствовать:

if условие then оператор 1;

Тогда в случае невыполнения логического условия управление сразу передается оператору, стоящему в программе после конструкции if.

Следует помнить, что синтаксис языка допускает запись только одного оператора после ключевых слов then и else, поэтому группу инструкций обязательно надо объединять в составной оператор (окаймлять операторными скобками begin. end). В противном случае возникает чаще всего логическая ошибка программы, когда компилятор языка ошибок не выдает, но программа тем не менее работает неправильно.

if x > 0 then modul: = x else modul: = -x; if k > 0 then WriteLn(‘k — число положительное’); if min > max then begin t: = min; min: = max; max: = t; end;

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

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

case выражение of вариант: оператор; . вариант: оператор; end;

case выражение of вариант: оператор; . вариант: оператор; else операторend;

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

Читайте также:
Отметьте что произойдет в результате выполнения следующей программы program pr var а b с integer

case ch of ‘A’..’Z’, ‘a’..’z’: WriteLn(‘Буква’); ‘0’..’9′: WriteLn(‘Цифра’); ‘+’, ‘-‘, ‘*’, ‘/’: WriteLn(‘Оператор’); else WriteLn(‘Специальный символ’)end;

Оператор безусловного перехода

Помимо операторов условного перехода существует также оператор безусловного перехода goto. Формат:

goto метка

Оператор goto переходит при выполнении программы к определенному оператору программы, перед которым находится метка. Метка должна быть описана в разделе описания меток той программы (процедуры или функции), в которой она используется. Нельзя перейти из одной процедуры или функции в другую.

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

label 1; begin. goto 1; . 1: WriteLn(‘Переход к метке 1’); end.

Учтите! Само понятие структурного программирования и общепринятый стиль программирования на структурных языках НЕ ПРИВЕТСТВУЕТ применение меток и операторов перехода в программах. Это затрудняет понимание программы как автором, так и потребителями, кроме того, применение меток отрицательно сказывается на эффективности генерируемого кода.

Циклы

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

Если заранее известно количество необходимых повторений, то цикл называется арифметическим. Если же количество повторений заранее неизвестно, то говорят об итерационном цикле.

В итерационных циклах производится проверка некоторого условия, и в зависимости от результата этой проверки происходит либо выход из цикла, либо повторение выполнения тела цикла. Если проверка условия производится перед выполнением блока операторов, то такой итерационный цикл называется циклом с предусловием (цикл » пока» ), а если проверка производится после выполнения тела цикла, то это цикл с постусловием (цикл » до» ).

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

Арифметические циклы

for переменная: = значение 1 to значение 2 do оператор

for переменная: = значение 1 downto значение 2 do оператор

Оператор for вызывает оператор, находящийся после слова do, по одному разу для каждого значения в диапазоне от значения 1 до значения 2.

Переменная цикла, начальное и конечное значения должны иметь порядковый тип. Со словом to, значение переменной цикла увеличивается на 1 при каждой итерации цикла. Со словом downto, значение переменной цикла уменьшается на 1 при каждой итерации цикла. Не следует самостоятельно изменять значение управляющей переменной внутри цикла.

Как и в случае использования оператора условного прехода, следует помнить, что синтаксис языка допускает запись только одного оператора после ключевого слова do, поэтому, если вы хотите в цикле выполнить группу операторов, обязательно надо объединить их в составной оператор (окаймить операторными скобками begin. end). В противном случае будет сделана логическая ошибка программы.

Пример 1. Квадраты чисел от 2-х до 10-и.

for x: =2 to 10 do WriteLn(x*x);

Пример 2. Латинский алфавит.

for ch: =’A’ to ‘Z’ do Writeln(ch);

Пример 3. Использование цикла с downto.

for i: =10 downto 1 do WriteLn(i);

Пример 4. Использование составного оператора.

Источник: lektsia.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru