Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
RT.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
672 Кб
Скачать
☆

Тема 12: Циклические структуры

Цикл – это такая структура, которая позволяет многократно повторять одни и те же действия

Тело цикла – последовательность повторяемых операторов.

Параметр цикла (счётчик цикла) – переменная.

Тема 12.1: Цикл с параметром используется, когда известно число повторений тела цикла и параметр цикла изменяется с шагом +1 или –1

Если шаг +1:

F OR <параметр>:=<начальное зн.> TO <конечное зн> DO

B EGIN

<тело цикла>

END;

Если шаг -1:

FOR <параметр>:=<начальное зн.> DOWNTO <конечное зн> DO

BEGIN

<тело цикла>

END;

<параметр> - имя переменной целого типа;

<нач.зн.>,<кон.зн.> - константы, переменные, арифметические выражения целого типа.

Пример: Напечатать таблицу квадратов для чисел от 1 до 10.

PROGRAM PRIMFOR;

VAR K,I:INTEGER;

BEGIN

FOR I:=1 TO 10 DO

BEGIN

K:=I*I;

WRITELN(I:15, K:15);

END;

END.

Тема 12.2: Цикл с предварительным условием и цикл с последующим условием используются, когда неизвестно число повторений тела цикла или параметр цикла изменяется не с единичным шагом.

Цикл с предварительным условием (Цикл ПОКА)

WHILE <условие>DO

BEGIN

<тело цикла>

END;

Пока выполняется условие, повторять тело цикла.

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

Условие продолжения цикла Цикл с последующим условием (Цикл до)

R EPEAT

<тело цикла>

UNTIL <условие>;

Повторять тело цикла до тех пор, пока НЕвыполнится условие.

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

Условие выхода из цикла

Пример: Выдать на экран таблицу значений функции у = х, для х, изменяющегося от 0 до 10 с шагом 0.1

PROGRAM PRIMWHILE;

VAR X,Y:REAL;

BEGIN

X:=0;

WHILE X<=10 DO

BEGIN

Y:=SQRT(X);

WRITELN(X:15:1, Y:15:1);

X:=X+0.1;

END;

END.

PROGRAM PRIMUNTIL;

VAR X,Y:REAL;

BEGIN

X:=0;

REPEAT

Y:=SQRT(X);

WRITELN(X:15:1, Y:15:1);

X:=X+0.1;

UNTIL X>10;

END.

Задания

Задание 1

Определить значение переменной S после выполнения следующих операторов:

S:=1;

For I:=2 to 4 do

S:=S+I;

S _____________

S:=1;

I:=1;

For I:=2 to -5 do

S:=S+I;

S _____________

S:=1;

For I:=2 downto 1 do

S:=S+I;

S _____________

Задание 2

Запишите заголовки цикла For для изменения параметра из диапазонов:

от -10 до +10_______________________________________________

от 100 до 1_________________________________________________

от 15 до 25_______________________________________________

от -10 до -20_______________________________________________

Задание 3

Запишите оператор цикла For, который бы выводил все числа в диапазоне от 100 до 10 включительно:

_____________________________________________________

_____________________________________________________

Задание 4

Выполните трассировку (пошаговое выполнение алгоритма вручную на бумаге). Определите значение переменной Х после выполнения фрагмента программы.

X:=10;

For I:=1 to 5 do

Begin

Writeln (I,X);

X:=X-2;

End;

X _____________

I

X

Экран

результата

Задание 5

Сколько раз будет выполняться тело следующих операторов цикла:

K:=0;

For I:=1 to K+3 do

K:=K+1;

K:=0;

For I:=1 to 9 do

K:=K+sqr(I);

K:=0;

For I:=9 to 1 do

K:=K+1;

K:=0;

For I:=1 to 1 do

K:=K+1;

Задание 6

Выполните трассировку и определите значение переменной S после выполнения фрагмента программы.

S:=0;

I:=0;

While I< 5 do

I:=I+1;

S:=S+I*I;

S _____________

I

S

I<5?

Задание 7

Выполните трассировку и определите значение переменной S после выполнения фрагмента программы.

S:=0;

I:=0;

While I<=3 do

Begin

I:=I+1;

S:=S+I*I;

End;

S _____________

I

S

I<=3?

Задание 8

Составьте блок-схему по готовой программе.

PROGRAM summa;

VAR A,S:REAL;

BEGIN

S:=0;

A:=0.2;

WHILE A<=2 DO

BEGIN

S:=S+A;

A:=A+0.1;

END;

WRITELN(‘Сумма=’, S:15:2);

END.

Задание 9

Выполните трассировку и определите значение переменной S и I после выполнения фрагмента программы.

S:=0;

I:=0;

Repeat

I:=I+5;

Until I<=5;

S:=S+I*I;

S _____________

I _____________

Тело цикла выполняется____раз

I

S

I<=5?

Задание 10

Определите сколько раз будет выполняться тело цикла:

S:=0;

I:=0;

Repeat

I:=I-1;

S:=S+1/I;

Until I<=1;

S:=0;

I:=1;

Repeat

I:=I+1;

Until I>2;

S:=S+1/I;

S:=0;

I:=1;

Repeat

S:=S+1/I;

I:=I+1;

Until I<1;

Задание 11

Напишите программу, используя цикл Repeat для следующей задачи.

Вычислите сумму чисел. Числа вводятся в цикле. Суммирование продолжается до тех пор, пока не будет введено значение 999.

PROGRAM sum999;

VAR S:Real;

X:Integer;

BEGIN

S:=0;

WHILE X<>999 DO

BEGIN

WRITE(‘Значение Х=’);

READLN(X);

S:=S+X;

END;

WRITELN(‘Сумма =’,S:6:1);

END.

Задание 12

Составьте программы для следующих задач:

Задачи

Отметка

  1. Выведите на экран 10 раз имя и фамилию

  1. Выведите таблицу степеней двойки (от нулевой до десятой).

  1. Выведите на экран таблицу умножения

    1. на 4;

    2. на заданное число.

(Используйте модуль CRT)

1*4=4

2*4=8

3*4=12

…

  1. Выведите таблицу перевода температуры из градусов по школе Цельсия (С) в градусы шкалы Фаренгейта (F) для значений от 150С до 300С с шагом 10С (F=1.8C+32)

  1. Выведите все чётные числа в диапазоне от 2 до 100 двумя разными способами: с использованием цикла FOR и с использованием цикла WHILE.

  1. Одноклеточная амёба каждые 3 часа делится на 2 клетки. Определить, сколько клеток будет через 3,6,9,12,…24 часа.

Приложение 1

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]