GotoXY в Pascal.

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

Функции Pred, Succ в Pascal.

В данном уроке мы рассмотрим функции, применяемые к типу CHAR. Функция Pred возвращает в качестве значения предшествующий символ, а функция Succ возвращает последующий символ.

Операции умножения и сложения в Pascal.

В данном уроке мы рассмотрим операции умножения и сложения в Pascal. Умножение в Pascal обозначается знаком «*», а сложение - знаком «+».

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

Многомерные массивы.

Индексы имеют еще одно свойство — чем больше объем массива, тем менее эффективна с ним работа, поэтому часто используют массивы массивов, то есть с двумя, тремя и более индексами для идентификации ...

Арифметический цикл с рекуррентной зависимостью.

Многие циклические вычислительные процессы используют рекуррентные зависимости при решении различных математических задач.

Цикл — это последовательность операторов, которая может выполняться более одного раза. В языке Паскаль разработано три механизма для конструирования циклов, использующих операторы 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
Ответить
 

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

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

   ГлавнаяПаскальЛекции по ПаскальПоиск минимального и максимального элементов массива.