Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LYeKTsIYa_15_2.doc
Скачиваний:
13
Добавлен:
20.04.2019
Размер:
199.68 Кб
Скачать

Вопросы

  1. Сколько раз будут выполнены инструкции между begin и end?

а) for i:=j to j+1 do

begin

end;

б) k:=0;

for i:=2 downto k do

begin

end;

  1. Чему будет равно значение переменной x после выполнения инструкций?

x:=0;

for i:=-5 to 0 do

n:=i*i;

x:=x+n;

  1. Что будет выведено на экран в результате выполнения инструкций?

а) n:=5;

x:=0;

for i:=1 to n do x:=i;

writeln(x);

б) for i:=1 to 5 do

for j:=1 to 5 do write(‘*’);

  1. Сколько звездочек будет выведено на экран в результате выполнения инструкций?

for i:=1 to 5 do

for j:=i to 5 do write(‘*’);

  1. Что нужно изменить в последовательности инструкций из вопроса 3(б), чтобы на экран были выведены 5 строк по 5 звездочек?

3. Вложенные операторы цикла.

Если телом цикла является циклическая структура, то такие циклы называют вложенными. Цикл, содержащий в себе другой цикл, называют внешним, а цикл, содержащийся в теле другого цикла, называют внутренним. Внешний и внутренний циклы могут быть трех видов: циклами с предусловием while, циклами с постусловием repeat или циклами с параметром for.

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

Пример 9.

Вычислить значение суммы .

Решение:

program pr4;

var s,a,x:real;

k,n:integer;

begin

readln(a,x);

s:=0;

for k:=1 to 15 do

for n:=1 to 10 do

s:=s+exp(k*ln(a))+exp(n*ln(x));

writeln(‘s=’,s:8:2)

end.

4. Процедуры передачи управления.

В Паскале есть несколько стандартных процедур, изменяющих последовательность выполнения операторов:

  • Break – завершает выполнение цикла, внутри которого записана;

  • Continue – выполняет переход к следующей итерации цикла;

  • Exit – выполняет выход из программы или подпрограммы, внутри которой записана;

  • Halt – немедленно завершает выполнение программы.

Кроме того, для передачи управления используется оператор перехода goto.

Этот оператор имеет вид:

GOTO N;

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

Использование оператора безусловного перехода оправданно, как правило, в двух случаях:

  • принудительный выход вниз по тексту программы из нескольких вложенных циклов или операторов выбора;

  • переход из нескольких мест программы в одно (например, если перед выходом из программы необходимо всегда выполнять какие-либо действия).

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]