понедельник, 20 января 2014 г.

Повторюшки или Циклы

Операторы цикла используются для реализации многократного выполнения одной или нескольких команд. Различают 3 типа циклов:
  • цикл с параметром;
  • цикл с предусловием;
  • цикл с постусловием.
Все 3 типа реализованы операторами языка Pascal.

Цикл с параметром
Цикл с параметром используется тогда, когда заранее известно количество повторений и шаг постоянен. Этот тип цикла реализуется в языке Pascal оператором For, который имеет 2 варианта записи:
1) For параметр цикла:=начальное значение to конечное значение do тело цикла
2) For параметр цикла:=начальное значение downto конечное значение do тело цикла
Параметр цикла – переменная целого типа;
начальное и конечное значения – выражения того же типа;
тело цикла – простой или составной оператор.
- Цикл повторяется, пока значение параметра лежит в интервале между начальным и конечным значениями
- При каждом повторении цикла значение параметра автоматически изменяется: в первом варианте увеличивается, а во втором уменьшается на 1.
- Значение параметра цикла можно использовать, но нельзя изменять внутри цикла.

Примеры:
1. Программа выводит на экран числа от 1 до 7
Program prog1;
var i:integer;
begin
  for i:=1 to 7 do writeln(i);
end.

2. Программа выводит на экран числа от 7 до 1
Program prog2;
var i:integer;
begin
  for i:=7 downto 1 do writeln(i);
end.

3. Программа вычисляет S=1+2+…+N, где N - введенное целое число
Program sum1;
var i,n,s:integer;
begin
  write('n=');
  readln(n);
  s:=0;
  for i:=1 to n do s:=s+i;
  writeln('s=',s);
end.

Цикл с предусловием (цикл – пока)
Цикл с предусловием – наиболее универсальная циклическая структура (с его помощью можно представить любой цикл). В языке Pascal этот вид цикла реализован оператором While:
While условие do begin тело цикла end
Оператор While выполняется следующим образом:
1. проверяется условие
2. если условие выполнено, выполняется тело цикла и происходит переход к п. 1
3. если условие не выполнено, то происходит переход к следующей команде (выход из цикла)
Особенности:
- Цикл повторяется, пока условие выполнено
- Если изначально условие не выполнено, то тело цикла не выполняется ни разу
- Оператор While может зациклиться: если изначально условие выполнено, а в теле цикла его значение не изменяется, то выхода из цикла не происходит

Примеры:
1. Программа вычисляет S=1+2+…+N, где N - введенное целое число
Program sum1;
var i,n,s:integer;
begin
  write('n=');
  readln(n);
  s:=0; i:=1
  While i<=n do
      begin
      s:=s+i; i:=i+1;
      end;
  writeln('s=',s);
end.

2. Написать программу решения уравнения ax + b = 0, если a = 1, 2, 3, 4, 5
Program ur_e;
var a:integer; b,x:real;
begin
  write('введите коэффициент b');
  readln(b);
  a:=1;
 While a <=5 do
  begin
  x:=-b/a;
  writeln(’При a= ’, a, ’x=’, x:5:2);
  a:=a+1;
  end;
end.

Цикл с постусловием (цикл – до)
Цикл с постусловием реализован в языке Pascal оператором Repeat:
Repeat тело цикла until условие
Оператор Repeat выполняется следующим образом:
1. выполняется тело цикла
2. проверяется условие
3. если условие не выполнено, то происходит переход к п. 1
4. если условие выполнено, то происходит переход к следующей команде (выход из цикла)

Особенности:
- Цикл повторяется, пока условие не выполнено (до момента, когда условие выполниться)
- Тело цикла выполняется по крайней мере 1 раз
- Оператор Repeat может зациклиться: если изначально условие не выполнено, а в теле цикла его значение не изменяется, то выхода из цикла не происходит
- Если тело цикла Repeat – составной оператор, то операторные скобки не обязательны (тело цикла в этом операторе всегда ограничено ключевыми словами Repeat и Until)

Пример:
Написать программу решения уравнения ax + b = 0, если a = 1, 2, 3, 4, 5
Program ur_e;
var a:integer; b,x:real;
begin
  write('введите коэффициент b');
  readln(b);
  a:=1;
 repeat
  begin
  x:=-b/a;
  writeln(’При a= ’, a, ’x=’, x:5:2);
  a:=a+1;
  end;
end.

Задание 14. Выбрать 2 функции из трех и написать программу с использованием другого (не рассмотренного на уроке) вида цикла.

Комментариев нет:

Отправить комментарий