ТОР 5 статей: Методические подходы к анализу финансового состояния предприятия Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века Характеристика шлифовальных кругов и ее маркировка Служебные части речи. Предлог. Союз. Частицы КАТЕГОРИИ:
|
Занятие 5. Оператор безусловного перехода Goto. Решение задач.
В языке принят естественный порядок выполнения программы: последовательный. Рассмотренные выше операторы if и case осуществляют переход к выполнению соответствующего оператора в зависимости от выполнения условия или предложенного выбора. Однако в практике программирования задач возникает необходимость безусловного перехода для выполнения нужной последовательности операторов. Например, необходимо обойти участок программы, а вернуться к нему позже. Для этого предназначен оператор безусловного перехода, который имеет следующую форму записи: goto метка; Метка представляет собою число без знака в диапазоне 1-9999 либо последовательность латинских букв и цифр. Перед использованием метка должна быть объявлена в разделе описания меток, который срузу следует за разделом описания используемых модулей: Uses Crt, Graph; Label Metka1, Metka2; Const P=3.14; Var x: integer; После описания метки ее можно использовать в программе. Метка записывается перед помечаемым оператором и отделяется от него двоеточием. А оператор goto должен помещен в то место программы, откуда выполняется переход. Оператор goto передает управление на оператор с заданной меткой. Оператор goto можно вставлять в любое место программы, где могут располагаться операторы языка. Например, Begin ... if Alpha = 360 then Goto Metka1 else writeln (‘Эта фигура – не окружность‘); ... Metka1: Arc(X,Y,0,Alpha,R); ... End. Приведём пример уже знакомой Вам программы, применив в ней оператор безусловного перехода. Program Number2; Label Metka; Var a, b, c: integer; Begin Metka: writeln(‘Введите цифру ‘); readln(a); case a of 0: writeln (‘ноль‘); 1: writeln (‘один‘); 2: writeln (‘два‘); 3: writeln (‘три‘); 4: writeln (‘четыре‘); 5: writeln (‘пять‘); 6: writeln (‘шесть‘); 7: writeln (‘семь‘); 8: writeln (‘восемь‘); 9: writeln (‘девять‘) else begin writeln (‘Это число не является цифрой‘); goto Metka; end; end; readln; End. Теперь в этой программе мы заставляем пользователя правильно ввести цифру. Сколько бы раз пользователь ни вводил числа не из промежутка 0..9, программа будет выдавать сообщение об ошибочном вводе и снова просить ввести цифру. Задание. Наберите программу и протестируйте ее.
В простых программах этот оператор не вызывает затруднений. При написании сложных и объёмных программ могут быть затруднения, поэтому программисты стараются не использовать этот оператор. Возникает вопрос: где должен использоваться безусловный переход? На этот вопрос следует ответить – “нигде”. Любая программа, написанная с goto, может быть запрограммирована без этого оператора. Следует ли вообще использовать оператор перехода? Ответить трудно. В основном применение оператора безусловного перехода оправдано в двух случаях: при преждевременном завершении цикла или программы. Но даже в этих случаях можно обойтись некоторой стандартной управляющей структурой. Не будет ничего удивительного в том, что в Ваших программах не будет применяться безусловный переход. В общем случае рекомендуется избегать использования этого оператора для обеспечения лучшего понимания работы программы. Бесконтрольное применение оператора goto может усложнить программу настолько, что разобраться в ней будет невозможно. Поэтому программисты считают применение оператора безусловного перехода плохим стилем программирования. Задание. Выберите произвольно из решенных Вами задач две и дополните их решение использованием оператора безусловного перехода goto. Не нашли, что искали? Воспользуйтесь поиском:
|