Другие языки программирования и технологии
Помогите с 1 командой
я написала цикл: (1) while ...do begin ... end; ... ... (2) и когда програма доходит до положения 2 мне нужно, чтобы она возвращалась в положение 1. Какой командой это задать в turbo pascal?
Оператор безусловного перехода 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, программа будет выдавать сообщение об ошибочном вводе и снова просить ввести цифру.
В языке принят естественный порядок выполнения программы: последовательный. Рассмотренные выше операторы 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, программа будет выдавать сообщение об ошибочном вводе и снова просить ввести цифру.
ставь метки, например:
label da;
label da;
Сергей Шокуров
а зачем тебе запускать цикл второй раз??
Похожие вопросы
- Народ, помогите, по вопросу языка СИ, команды fgets!
- MS DOS. Ввожу команду чтоб копировать все найденные файлы на локальном диске - находит синтаксическую ошибку. Помогите..
- BAT/CMD Подскажите, какой символ или команду использовать? С командой else у меня ни чего не выходит...
- Какие есть виды команд в PascalABC
- Подскажите команду для перемещения файлов и папок с помощью батника!
- Данные входят в состав команд компьютера в виде... Варианты ответов: 1. предикатов2. функций3. инструкций4. операндов
- MS-DOS Команда для создания *.txt файла с вложенным в него текстом
- Выполнение команд ассемблера в МП
- Помогите пожалуйста описать код, что означает каждая команда?
- Ассемблер. Команда условного перехода, если результат равен 1???