- •Часть 1
- •Тема 1: Структура программы
- •Тема 2: Типы данных
- •Тема 3: Запись выражений на языке pascal
- •Задания:
- •Задания
- •Тема 4: Оператор присваивания
- •Тема 5: Оператор ввода
- •Тема 6: Оператор вывода
- •Тема 7: Формат вывода данных
- •Тема 8: Разветвляющиеся структуры
- •Полная форма
- •Неполная форма
- •Тема 9: Составное условие
- •Тема 10: Вложенные ветвления
- •Тема 11: Оператор варианта
- •Задания
- •Тема 12: Циклические структуры
- •Условие продолжения цикла Цикл с последующим условием (Цикл до)
- •Условие выхода из цикла
- •Задания
- •Стандартные типы данных
- •Функции языка программирования Turbo Pascal
- •Модуль crt
- •Литература
Тема 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
Составьте программы для следующих задач:
Задачи |
Отметка |
|
|
|
|
(Используйте модуль CRT) 1*4=4 2*4=8 3*4=12 … |
|
|
|
|
|
|
|
Приложение 1
