Логические и символьные константы.

В данном уроке будет рассмотрено применение логических и символных констант. Логическая константа может принимать только 2 значения, либо True, либо False. В качестве значения символьной константы могут использоваться любые символы, которые есть в ...

Строки в Паскаль.

Тип данных String (строковый тип) используется в Паскаль для обработки текстов. Если в одну переменную типа Char можно записать лишь один символ, то в переменную типа String можно записать до 255 символов.

Функции Copy, Pos, процедуры Delete, Insert.

Функция Copy позволяет копировать из строки часть символов. Функция имеет 3 параметра. Copy (st, index, count). St-строка из которой копируют, Index-номер символа, с которого начинается копирование, Count-количество символов, которое будет ...

Циклы и массивы

Использование оператора WITH ... DO.

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

Подпрограммы, определенные пользователем.

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

Цикл — это последовательность операторов, которая может выполняться более одного раза. В языке Паскаль разработано три механизма для конструирования циклов, использующих операторы FOR, WHILE, REPEAT.

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

Иногда его называют просто оператором перехода. Он имеет вид GOTO <Метка>, где метка это идентификатор, описанный в разделе LABEL. Метка ставится перед оператором, на выполнение которого нужно передать управление и отделяется от него двоеточием. Использование оператора GOTO в Паскале сильно ограничено и не рекомендуется. Так, нельзя входить извне в такие сложные операторы как IF, CASE, FOR, WHILE, REPEAT, BEGIN... END, процедуры, функции и другие, хотя транслятор может и не обнаружить ошибки. Переходы рекомендуется осуществлять внутри одного уровня или при выходе на более высокий уровень.
Областью действия метки является тот блок, где она описана, и переходы по этой метке возможны только в этом блоке. С помощью операторов IF и GOTO можно организовать циклический процесс. Поскольку операторы в теле программы выполняются последовательно друг за другом, то необходимо один из операторов пометить меткой, а затем с помощью оператора GOTO повторно вернуться на выполнение помеченного оператора. Чтобы этот возврат был управляемым, то есть для избегания бесконечных циклов, необходим анализ определенных условий, именно для этого и нужен условный оператор IF.
Пример 14. Вычислить:

Operator bezuslovnogo perekhoda

Вычисления закончить при выполнении условия |Y - 0,5|<EPS.
Алгоритм программы, в которой предполагается использование операторов безусловного перехода GOTO, с помощью структурограмм представить невозможно. Для графического отображения таких программ используют только блок-схемы. В блок-схеме оператору GOTO <метка> соответствует графический объект - стрелка. Эта стрелка передает управление блоку, который помечен в верхнем левом углу меткой.Вы можете выбрать самый лучший принтер по многим параметрам, взвесив все за и против. В нашем случае идентификатором метки является цифра 1.
Циклический алгоритм программы приведен на рисунке 8. На рисунке 8 видно, что блок 1 повторяется до тех пор, пока условие имеет значение TRUE. Как только условие станет равным FALSE, искомая величина Y и номер текущей итерации I будут выведены на экран монитора.

Operator bezuslovnogo perekhoda.

PROGRAM PR14;
LABEL 1;
VAR
Y, EPS: REAL;
I: INTEGER;
BEGIN
WRITELN(,BBEДИTE EPS');
READLN(EPS);
Y := 0;
I := 0;
1: I:=I + 1;
Y:=Y + 1/(2*I- 1)/(2*I+ 1);
IF ABS(Y - 0.5) >= EPS THEN GOTO 1;
WRITELN('I = ',  I,',  Y = ', Y:6:4)
END.
Следует отметить, что организация циклов с помощью операторов GOTO не рекомендуется. Причина кроется в том, что именно использование этого оператора приводит к основной доле ошибок, которые допускает программист. Но эти ошибки, к тому же, самые трудные в диагностике и отладке программы. Именно для борьбы с этими ошибками использовали такую трудоемкую процедуру, как трассировка программы. Для борьбы с использованием оператора GOTO идеологами структурного программирования были предложены так называемые структурированные операторы циклов FOR, WHILE и REPEAT.


Предыдущая статья: Оператор варианта CASE.
Оглавление: Лекции по Pascal.
Следующая статья: Циклы с параметром. Оператор FOR.


Комментарии  

 
0 # все неправильно 15.01.2015 08:02
:D :D :D
Ответить
 

Добавить комментарий

Защитный код
Обновить

   ГлавнаяПаскальЛекции по ПаскальВложенные итерационные циклы.