[ домой ] [ следующий ] [ начало главы ] [ предыдущий ] [ содержание ]


Алгоритмы, реализуемые с помощью циклов типа ПОКА



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

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

Язык
Пример
Пояснения
 
Школьный АЯ
i:=1; Flag:="Нет"
нц пока (i<=N) и (Flag="Нет")
    если A[i]<0
        то Flag:="Да"; k:=i
        иначе i:=i+1
    все
кц
Решается задача:
определить номер первого отрицательного элемента массива A(N). Здесь Flag — "управляющая" переменная литерного типа (можно с успехом использовать также логический или целый типы)
 
Pascal
i:=1; Flag:=FALSE;
While (i<=N) and not Flag do
  If A[i]<0 
    then begin
           Flag:=TRUE; k:=i
         end
    else i:=i+1;
Здесь Flag — переменная логического типа, принимающая значение ТRUE (истина) или FALSE (ложь),  
and - операция 'и', not - операция 'не'
 
QВasic
i=1 : Flag=0
WHILE (i <= N) AND (Flag = 0)
  IF A(i)<0 THEN
      Flag=1 : k=i
    ELSE i=i+1
  END IF
WEND
Здесь Flag — переменная целого типа (в некоторых версиях QBasic можно использовать и логический тип, что предпочтительнее)

Цикл типа пока без прерывания

Язык
Пример
Пояснения
 
Школьный АЯ
        i:=1; S:=0
        нц пока i<=N
           S:=S+A[i]
           i:=i+2
        кц

 

Вычисляется сумма элементов массива A(N)  
с нечетными индексами. Число таких элементов заранее известно. Шаг параметра цикла равен двум

 
Pascal
        i:=1; S:=0;
        While i<=N do
          begin S:=S+A[i];
                i:=i+2
          end;
QВasic
 Лучше использовать цикл FOR: 
        S=0
        FOR I=1 TO N STEP 2
          S=S+A(I) 
        NEXT I
 
Для организации циклов типа пока можно также использовать:

Содержание:

[ домой ] [ следующий ] [ начало главы ] [ предыдущий ] [ содержание ]