Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

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




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

Goto метка;

В качестве меток в языке Паскаль разрешается использовать целые числа из диапазона 0…9999 или идентификаторами. Метка может предшествовать любому оператору и отделяться от него двоеточием

Пример:

………….

Goto 99;

……………

99:writeln(‘выполнен оператор’);

…………….

Все метки, прежде чем они используются в программе, должны быть описаны в разделе описания меток. Напомним еще раз одно из основных правил языка программирования Паскаль: в се объекты, используемые в программе, должны быть описаны. Метки в этом смысле не представляют собой исключения. Раздел описания меток начинается со слова LABEL, за которым через запятую перечисляются используемые в программе метки, например: LABEL 5, 99, 100, start, error;

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

Пример. Пусть производится последовательное чтение и суммирование какого-то ряда положительных чисел, причем их количество неизвестно. Концом последовательности служит первое же отрицательное число.

Program summa;

Label 99;

Var number,sigma: real;

Begin

Sigma:=0;

While sigma>=0 do

Begin

Read(number);

If number <0 them goto 99;

Sigma:=sigma+number;

End;

99: write(‘summa chisel=’,sigma);

end.

В данной программе с помощью заголовка цикла While sigma>=0 do моделируется бесконечный цикл (сумма положительных чисел всегда положительна), и выход из цикла осуществляется с помощью оператора перехода.

Организация циклов

Большинство задач, решаемых на ЭВМ, невозможно представить в виде последовательности простых вычислений; часто приходится организовывать повторяемость одних и тех же вычислений.

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

1) Искусственно вводим счетчик числа шагов цикла

2) Проверяем условие окончания циклических расчетов

3) Если надо продолжить, увеличиваем значение счетчика

Задача. Вычислить таблицу квадратов и корней целых чисел от 1 до 100.

Здесь счетчиком чисел может служить само число. Дадим ему имя N.

Использовать операторы условного перехода в программе крайне не желательно!

Цикл с параметром

Если число повторений цикла известно, используется цикл FOR, для которого нет необходимости принудительно увеличивать значение параметра цикла. Такое увеличение производится автоматически.

Общий вид оператора цикла с параметром:

А) Если начальное значение параметра меньше конечного, то используется форма вида:

FOR I: = M TO N DO оператор;

Б) Если начальное значение параметра цикла больше конечного, то используется форма вида:

FOR I: = N DOWNTO M DO оператор;

M и N- выражения задающие начальное и конечное значения

параметра I,

А- простой или составной оператор.

Если после слова DO необходимо записать несколько операторов, то следует воспользоваться составным оператором BEGIN оператор1;

оператор2;

оператор3

END;

Параметр цикла не может быть вещественным(действительным), а только целым или другим типом, который можно пронумеровать и сосчитать. Шаг всегда равен 1 или –1. Задать другой шаг нельзя!

Пример (тот же).

For n:=1 to 100 do

Writeln(‘n=’,n,’sqr(n)=’,sqr(n),’sqrt(n)=’,sqrt(n));

С помощью этого цикла процедура WRITELN будет последовательно выполняться для следующих значений переменной N: 1,2,…,100.

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

Ограничения.

1) Значения параметра цикла, начального и конечного значений параметра цикла изменять внутри цикла нельзя.

2) Войти в цикл можно только через его начало, а выйти- либо при исчерпании значений параметра цикла, либо при выполнении оператора перехода GOTOпо метке, расположенной вне данного цикла. При нормальном выходе из цикла значение его параметра равно конечному значению.

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

Поделиться:





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





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...