Что такое оператор цикла в информатике. Операторы языка паскаль

Что такое оператор цикла в информатике. Операторы языка паскаль

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

Оборудование: Персональный компьютер, компилятор языка С#.

Цель работы: Ознакомиться с операторами цикла и научиться применять их в С#-программах.

Циклическая управляющая структура применяется для организации многократного выполнения некоторого оператора. Оператор цикла включает и . Заголовок определяет количество повторений цикла, а тело — повторяемые операторы.

В C реализовано три вида оператора цикла.

(1) Цикл while

While

Условие — это логическое выражение булевского типа.

Тело цикла — это оператор, или последовательность операторов, заключенная в операторные скобки { }. Алгоритм выполнения цикла while

1. Вычисляется значение условия.

2. Если условие истинно, то выполняются операторы тела цикла и повторяется шаг 1.

3. Если условие ложно, то цикл завершается и происходит переход к следующему за while оператору.

(2) Цикл do while

while ();

Условие — это выражение булевского типа.

Тело цикла — это оператор, или последовательность операторов, разделенная символом «;».

Алгоритм выполнения цикла do while

1. Выполняются операторы тела цикла.

2. Вычисляется значение условия.

3. Если условие ложно, то повторяется шаг 1.

4. Если условие ложно, то цикл завершается и происходит переход к следующему за do оператору.

Замечания.

1. Оператор do while , в отличии от оператора while, обязательно выполнится по крайней мере один раз.

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

3. Если операторы тела цикла не влияют на значение условия и условие истинно перед выполнением цикла while и после выполнения цикла do while, то цикл будет выполняться бесконечно (эффект «зацикливания»).

(3) Оператор for

Оператор for — это наиболее общий способ организации цикла. Он имеет следующий формат:

for (выражение 1 ; выражение 2 ; выражение 3) тело

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

Схема выполнения оператора for:

1. Вычисляется выражение 1.

2. Вычисляется выражение 2.

3. Если значения выражения 2 отлично от нуля (истина), выполняется тело цикла, вычисляется выражение 3 и осуществляется переход к пункту 2, если выражение 2 равно нулю (ложь), то управление передается на оператор, следующий за оператором for.

Существенно то, что проверка условия всегда выполняется в начале цикла. Это значит, что тело цикла может ни разу не выполниться, если условие выполнения сразу будет ложным.

for (i=1; i I Div 2 + 1) Or Log_Per;

If Not(Log_Per) Then WriteLn(I) {Если число I простое, печатаем его}

If Priznak Then WriteLn(N)

Предлагаем читателю самостоятельно разобраться с представленным решением.

Список литературы

Для подготовки данной работы были использованы материалы с сайта http://comp-science.narod.ru

С.А. Григорьев

Для реализации циклических алгоритмов, т.е. алгоритмов, содержащих многократно повторяющиеся одинаковые операции, применяются специальные операторы цикла. В Паскале есть три вида циклов: FOR, WHILE и REPEAT. Оператор цикла FOR записывается в виде:

FOR переменная:=начальное значение TO конечное значение DO

оператор/блок

FOR переменная:=начальное значение DOWNTO конечное значение DO

оператор/блок.

Здесь переменная — любая переменная порядкового типа, называемая в таком контексте переменной цикла, начальное значение и конечное значение — выражения того же типа (исключение, как всегда делается для разнотипных целочисленных переменных). Цикл FOR выполняется следующим образом: переменной цикла присваивается начальное значение, после чего выполняется тело цикла (оператор или блок, стоящий после DO). Два этих действия вместе составляют один шаг цикла. Затем переменной цикла присваивается следующее (в цикле FOR … TO) или предыдущее (в цикле FOR … DOWNTO) значение (вспомним функции Succ и Pred) и выполняется следующий шаг цикла. Так происходит до тех пор, пока значение переменной цикла не станет больше (FOR…TO) или меньше (FOR…DOWNTO) конечного значения. Цикл FOR может не выполниться ни разу, если начальное значение больше конечного в цикле FOR…TO или меньше конечного в цикле FOR…DOWNTO. Запишем два примера использования цикла FOR: вычислим сумму квадратов натуральных чисел от 1 до N.

CONST s: Real = 0; N = 22;

BEGIN FOR i:=1 TO N DO s:=s+SQR(i); WRITELN(«сумма=»,s); END.

и выведем на экран символы с номерами от 32 до 255

BEGIN FOR c:=» » TO #255 DO WRITE(c); WRITELN; END.

Второй тип цикла — цикл WHILE — записывается в виде:

WHILE логическое выражение DO оператор/блок

Здесь логическое выражение — любое выражение типа Boolean. Цикл выполняется следующим образом: вычисляется логическое выражение и, если оно истинно, выполняется тело цикла, в противном случае цикл заканчивается. Очевидно, что цикл WHILE может как не выполниться ни разу, так и выполняться бесконечное количество раз (в последнем случае говорят, что программа зациклилась). Запишем две предыдущие задачи, используя цикл WHILE:

BEGIN WHILE i=»А»)AND(c=»а»)AND(c=»р»)AND(c=»А»)AND(c=»а»)AND(c=»р»)AND(cB (IB (или A Sum_Max Then Begin Sum_Max:= Sum; Ch:= I End;

WriteLn(«Максимальную сумму делителей «, Sum_Max, » имеет число «,Ch)

Задача 4. Дано натуральное число n. Получить все простые делители этого числа.

{Программа отыскания простых делителей данного числа}

Var N, I, Vsp: Integer;

Log_Per, Priznak: Boolean;

Write(«Введите натуральное число: «);

Priznak:= True; {Признак того, не является ли введенное число простым}

{Пока параметр цикла не превысил квадратного корня из данного числа,

продолжаем поиск простых делителей}

For I:= 2 To Round(Sqrt(N)) Do

If N Mod I = 0 Then

Priznak:= False; {Введенное число не является простым}

Log_Per:= False; {Логическая переменная, принимающая значение True,

если нашлись делители I, отличные от 1 и I}

If (I Mod Vsp = 0) And (I Vsp) Then Log_Per:= True;

Until (Vsp > I Div 2 + 1) Or Log_Per;

If Not(Log_Per) Then WriteLn(I) {Если число I простое, печатаем его}

If Priznak Then WriteLn(N)

Предлагаем читателю самостоятельно разобраться с представленным решением.

Опубликовано
В рубрике apdao_ru

Добавить комментарий