- •1.Интегрированная среда разработки Delphi
- •2.Структура программы и типы в языке Delphi
- •3.Линейные структуры
- •4.Структуры с ветвлениями
- •5.Циклы с неизвестным числом повторений
- •6.Циклы с заданным числом повторений
- •Задание к работе
- •7.Массивы
- •8.Файлы
- •9.Подпрограммы
- •10.Динамическая память Подготовка к работе
- •Контрольные вопросы
- •Задание к работе
- •Задание 1
- •Задание 2
- •11.Исключения
6.Циклы с заданным числом повторений
Подготовка к работе
1. По указанной литературе изучить:
организацию циклов с известным числом повторений;
возможности языка для организации таких циклов с помощью операторов с параметром for...to...do и for...downto...do.
2. Разработать алгоритм решения задач.
3. Составить программы решения задач.
Контрольные вопросы
Преимущества использования операторов циклов в программе.
Оператор цикла for...to...do.
Оператор цикла for...downto...do.
Разница между операторами for...to...do и for...downto...do.
Требования к переменной цикла в операторах for...to...do и for...downto...do.
Организация вычисления суммы.
Организация вычисления произведения.
Задание к работе
Вычислить значения функции с использованием оператора цикла for...to...do. Проект – консольное приложение.
Вычислить значения функции с использованием вложенных операторов цикла for...to...do. Проект – консольное приложение.
Варианты заданий даны в табл. 6 .5.
табл. 6.5. Варианты заданий
№ |
Задача 1 |
Задача 2 |
|
a = 2.8; x = 5.1; c = 1.8; b = 0.81 |
|
1 |
|
|
2 |
|
|
3 |
|
|
4 |
|
|
5 |
|
|
6 |
|
|
7 |
|
|
8 |
|
|
9 |
|
|
10 |
|
|
11 |
|
|
12 |
|
|
13 |
|
|
14 |
|
|
15 |
|
|
Пример выполнения
Задание 1
Вычислить
Блок-схема алгоритма задания представлена на рис. 6 .12.
рис. 6.12. Блок-схема алгоритма задания 1
В блоке 1 вводится значение переменной х. Блок 2, задающий начальное значение суммы, стоит перед циклом, в котором она накапливается. Блок 3 - цикл с известным числом повторений. В его теле блок 4 вычисляет значение слагаемого x2/i и накапливает сумму. Результат представляет собой одно число, которое выводится блоком вывода 5. В блоке 6 организуется пауза, чтобы пользователь увидел результат.
Листинг программы:
program Prg_6_1;
{$APPTYPE CONSOLE} // Директива компилятора
uses
SysUtils, RusTrans; // Ссылка на модули
var
x,z: real;
i: integer;
begin
writeln(Rus('Введите х:')); // Ввод x
readln(x);
z:=0; // Обнуление суммы
for i:=1 to 20 do z:=z+(sqr(x)/i); // Накопление суммы
writeln;
writeln(Rus(‘Результат’)); // Заголовок результата
writeln('x=', x:8:3, ' z=', z); // Вывод результата
readln; // Ожидание клавиши Enter
end.
Задание 2
Вычислить
Блок-схема алгоритма задачи представлена на рис. 6 .13.
В блоке 2 присваивается начальное значение 1 произведению t. Блок 3 открывает цикл по переменной n для формирования произведения. В теле цикла готовится очередной сомножитель в виде суммы. Блок 4 обнуляет значение переменной s, в которой происходит накапливание суммы. Блок 5 открывает цикл для вычисления очередной суммы. Формирование произведения осуществляет блок 7. Блок 8 выводит итоговое значение произведения. В алгоритме для разнообразия один цикл реализован оператором for...to...do, а другой - оператором for...downto...do.
Листинг программы:
program Prg_6_2;
{$APPTYPE CONSOLE} // Директива компилятора
uses
SysUtils, RusTrans; // Ссылка на модули
var
x,s,t: real;
I,j: integer;
begin
writeln(Rus('Введите х:')); // Ввод x
readln(x);
t:=1; // Инициализация произведения
for i:=1 to 10 do // Цикл произведения
begin
s:=0; // Обнуление суммы
for j:=10 downto 1 do s:=s+Cos(i*j*x); // Цикл
t:=t*s;
end;
writeln;
writeln(Rus(‘Результат’)); // Заголовок результата
writeln('x=', x:8:3, ' t=', t); // Вывод результата
readln; // Ожидание клавиши Enter
end.
рис. 6.13. Блок-схема алгоритма задания 2
Выводы
Для организации циклов с известным числом повторений применяются операторы:
Инкрементный: for i:=<начальное значение> to <конечное значение> do <оператор>. В нем переменная индекса цикла I увеличивается с шагом 1.
Декрементный: for i:=<начальное значение> downto <конечное значение> do <оператор>. В нем переменная индекса цикла I уменьшается с шагом 1.
Переменная индекса цикла должна быть порядкового типа (например, Integer).
Если в теле цикла используется много операций, то их нужно оформить, как составной оператор, с помощью операторных скобок begin…end.