Главная/Раздел 2

 

 

Главная

 

 Раздел 1

 

Раздел 2

 

Раздел 3

 

Раздел 4

 

Раздел 5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Циклические конструкции.
Оператор цикла с параметром

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

Оператор цикла с параметром организует выполнение одного оператора заранее известное количество раз.

Структура оператора

Существует два варианта оператора.

Вариант первый:
~~~~~~~~~~~~~~~
     FOR i := start TO finish DO <оператор>

Вариант второй:
~~~~~~~~~~~~~~~
     FOR i := start DOWNTO finish DO <оператор>

     В этих структурах:
     i - параметр цикла;
     start - начальное значение параметра;
     finish - конечное значение параметра;
     <оператор> - тело цикла.

Тип переменной цикла i и значений start и finish должен быть порядковым !

Порядок выполнения оператора:

  1. Вычисляются и запоминаются начальное - start, и конечное - finish, значения параметра цикла. Start и finish могут быть представлены в виде конкретного значения (в этом случае нет необходимости в вычислениях) или в виде выражения, значение которого вычисляется в начале выполнения цикла.
  2. Параметру цикла i присваивается значение start.
  3. Значение параметра цикла i сравнивается со значением finish. Оператор "тело цикла" будет выполнен при выполнении следующего условия: первый вариант оператора: i <= finish; второй вариант оператора: i >= finish. В противном случае происходит прекращение выполнения циклического оператора.
  4. Параметру цикла присваивается: первый вариант оператора: следующее большее значение; второй вариант оператора: следующее меньшее значение.
  5. Выполняется пункт 3 данной схемы.

Часто говорят, что первый вариант оператора цикла с параметром, - цикл с возрастающим параметром; второй вариант, - с убывающим параметром.

Если при первой же проверке, параметр цикла не будет удовлетворять условий пункта 3, тело цикла не выполнится ни разу.

Телом цикла может быть только один оператор. Для того, чтобы в теле цикла с параметром выполнить несколько операторов, их необходимо объединить операторными скобками BEGIN END.

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

Break

Процедура Break может использоваться во всех циклических операторах. Эта процедура позволяет досрочно выйти из цикла, не дожидаясь выполнения условия выхода.

Continue

Процедура Continue может использоваться во всех циклических операторах. Она позволяет перейти к "началу" цикла, или к следующему выполнению тела цикла, даже если выполнение тела цикла не завершено. Другими словами, эта процедура позволяет прекратить выполнение тела цикла. При этом выполнение самого циклического оператора не прекращается.

     Примеры применения
     ------------------
     П р и м е р 1. Вычислить сумму 
S = 1 + 1/2 + 1/3 + ... + 1/50,
     
PROGRAM ex_1;
VAR
    i:integer;
    s:real;
BEGIN
    s:=0;
    for i:=1 to 50 do s:=s + 1/i;
    Writeln('Cумма равна: ',s);
END.

     П р и м е р 2. Вычислить сумму синусов чисел от 1 до 1000. 
Суммировать и выводить на экран только 
положительные значения синусов.

PROGRAM ex_2;
VAR
     i: integer;
     s: real;
BEGIN
     s := 0;
     FOR i:=1 TO 1000 DO
      Begin
       If sin(i) < 0 then continue;
       s := s + sin(i);
       writeln('sin(',i,')=',sin(i));
      End;
      Writeln('Сумма равна: ',s);
     Readln;
END.

Контрольные вопросы.

  1. Сколько раз выполняется оператор цикла с параметром?
  2. Сколько существует вариантов цикла с параметром?
  3. Что называют параметром цикла, начальным и конечным значением параметра цикла?
  4. Что называют телом цикла с параметром?
  5. Объясните порядок выполнения цикла с параметром.
  6. Объясните блок-схемы цикла с параметром.
  7. Объясните назначение и применение процедур Break и Continue.
  8. Приведите примеры применения цикла с параметром.

Задания для самостоятельного выполнения.

  1. Вычислите сумму ряда S = 1 + 1/x + 1/2x + 1/3x + ... 1/nx, для n введённого с клавиатуры.
  2. Определите значения функции y=0,4x^2-1/x для x изменяющегося от 2 до 10 с шагом 0,5.
  3. Вычислить значение n! для n введённого с клавиатуры.
  4. Вычислить сумму ряда Y = 1! + 2! + 3! + ... n!, для n введённого с клавиатуры.
  5. Вычислить сумму первых n слагаемых ряда
          1      2     3      4     5      6
          -  +  -  +  -  +  -  +  -  +  -
          2      3     4      5     6      7       
       для n введённого с клавиатуры.
  6. Вычислить A(A+1)(A+2)...(A+N), для A и N введённых с клавиатуры.
  7. Нарисовать "сетку" размером 10x10, состоящую из кругов одного размера, заполненных разным орнаментом разного цвета.
  8. Нарисовать "наклонённую сетку" размером 10x10, состоящую из паралелепипедов одного размера, заполненных разным орнаментом, разного цвета.
  9. Нарисовать "пирамиду" сложенную из прямоугольников одинакового размера, заполненных разным орнаментом, разного цвета. В основании пирамиды 20 прямоугольников.
  10. Нарисовать "сетку" размером 15x15, состоящую из одинаковых по размеру ромбов, заполненных разным орнаментом, разного цвета.

назад                    

 

 

 

 

 

 

 

 :::

 

 :::

 

 

 

 

 

 

 

Сайт создан в системе uCoz