Вложенные циклы

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

Использование операторов цикла с условиями

В языке Pascal существуют два оператора цикла с условиями. С их помощью можно запрограммировать повторяющиеся фрагменты программы. Операторы цикла с условиями проверяют условия выполнения или повторения цикла.

Oператор цикла с предусловием

While <условие> do <тело цикла>;

здесь while, do – зарезервированные слова;

<условие> – выражение логического типа;

<тело цикла> – произвольный оператор, в том числе и составной.

Логическое выражение <условие> определяет, будет ли цикл выполняться или завершит свою работу. Если выражение <условие> имеет значение true, то выполняется <тело цикла>, после чего вычисление выражения <условие> и его проверка повторяются. Если <условие> имеет значение false, оператор while прекращает свою работу, т. е. цикл заканчивается. В качестве <тело цикла> может быть либо оператор, либо составной оператор, т. е. последовательность операторов, заключенная в операторные скобки begin ... end.

Пример. Найти минимальное значение функции на отрезке с шагом 0,1.

program minimum; const h:real=0.1; var y,b,x,min:real; begin x:=1; b:=10; min:=sin(x); writeln('Минимальное значение функции у=sin(x) '); writeln(' на отрезке [1,10] шагом 0,1'); while x< =b do begin y:=sin(x); writeln(y:4:2); if y< min then min:=y; x:=x+h; end; writeln('min=', min:2:1); end.

Пример. Составить программу возведения чисел от 1 до 10 в третью степень.

program ctep; {возведение в степень} const h:byte=1; var a,b:integer; x:real; k:integer; begin writeln('Возведение в третью степень чисел от 1 до 10'); a:=1; b:=10; k:=3; while a< =b do begin x:=exp(k*ln(a)); writeln(a,'^3=',x:4:0); a:=a+h; end; end.

Пример. Табулирование функции на отрезке [1; 5] с шагом 0.5.

program tab; const h:real=0.5; var y,x,a,b:real; begin writeln('Табулирование функции y=sin(x) на отрезке [1,5] с шагом 0.5'); a:=1; b:=5; x:=a; while x<=b do begin y:=sin(x); writeln('y=', y:2:1); x:=x+h; end; end.

Оператор цикла с постусловием

Repeat <тело цикла> until <условие>;

здесь repeat, until – зарезервированные слова (повторять до тех пор, [пока не будет выполнено условие]);

<тело цикла> – произвольная последовательность операторов;

<условие> – выражение логического типа.

Операторы <тело цикла> выполняются хотя бы один раз, после чего вычисляется выражение <условие>: если его значение есть false, операторы <тело цикла> повторяются, в противном случае оператор repeat...until завершает свою работу.

Пример. Вычислить максимальное значение функции на отрезке с шагом 0.5.

program maximum; const h: real=0.5; var y, b, x, max: real; begin writeln('Максимальное значение функции y=sin(x) на отрезке [1,10] Шаг=0.5'); x:=1; b:=10; max:=-1; { начальное значение максимума } repeat y:=sin(x); writeln(y:5:3); if y>max then max:=y; x:=x+h; until x>b; writeln('Максимальное значение функции y=sin(x) на отрезке max= ',max:2:9); end.

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

Если число повторений тела цикла заранее известно, то чаще всего применяется оператор цикла с параметром.

Общий вид оператора:

for <параметр цикла>:=<начальное значение> to <конечное значение > do <оператор>;

или

for <параметр цикла>:=<конечное значение> downto <начальное значение> do <оператор >;

где <параметр цикла> – параметр цикла, переменная любого порядкового типа;

<начальное значение> – начальное значение – выражение, задающее начальное значение параметра цикла;

<конечное значение> – конечное значение – выражение, задающее конечное значение параметра цикла.

Например:

for I:=m to n do <тело цикла>

Оператор присваивает переменной I значение переменной m и увеличивает на единицу до тех пор, пока переменная I не станет равна значению переменной n.

for I :=n downto m do <тело цикла>

Оператор присваивает переменной I значение переменной n и уменьшает на единицу до тех пор, пока переменная I не станет равна значению переменной m.

а) For i:=1 to 10 do

a:= a+1 ;

б) For i:=1 to 20 do

begin

a:= c+b ;

writeln (a,b,c) ;

c:= c+1 ;

end ;

в) For k:=20 downto 1 do

writeln (k*k);

Выход из цикла

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

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

Эта процедура используется также для досрочного выхода из цикла в случае получения результата до конца выполнения цикла. Процедура continue используется для досрочного перехода к следующей операции цикла.

Пример. Составить программу для возведения числа в степень.

program P4; var k,i:integer; n,y:longint; begin writeln(' Возведение числа в степень '); writeln; y:=1; write('Введите число, возводимое в степень (число должно быть меньше 20) k = '); readln(k); write('Введите целую степень { меньше 5 } n = '); readln(n); for i:=1 to n do y:=y*k; writeln; writeln('Число ',k,' в степени ',n, ' = ',y); writeln; writeln('Для окончания работы нажмите ENTER'); readln; end.

Тест.Блок-схема


    Инструкция
  1. Что такое Блок-схема
    Это определенный набор блоков и стандартных способов их соединения для выполнения типичных последовательностей действий.
    Формула
    Это определенным образом организованная последовательность действий, за конечное число шагов приводящая к решению задачи.
    Графический способ представления алгоритма, каждое действие при этом осуществляется рисованием последовательности геометрических фигур, каждая из которых подразумевает выполнение определенного действия алгоритма. Порядок выполнения действий указывается стрелками.

  2. Что НЕ является основным элементом блок-схемы
    Блок вычислений
    Логический блок
    Разделитель
    Соединитель

  3. Базовые структуры алгоритмов - ...
    Это определенный набор блоков и стандартных способов их соединения для выполнения типичных последовательностей действий
    Выборка определенных действий
    Алгоритм предназначенный для записи других алгоритмов
    Сложный код

  4. Как называется цикл с предусловием
    Цикл «Пока»
    Цикл «До»
    Цикл «После»
    Цикл «От»

  5. Какое правила НЕ нужно использовать для создания циклов с параметром
    Параметр цикла, его начальное и конечное значения и шаг должны быть одного типа
    Запрещено изменять в теле цикла значения начальное, текущее и конечное для параметра
    Запрещено входить в цикл, минуя блок модификации
    Запрещено выходить из цикла

    

Назад Далее
Наверх