- •15. Реализация циклических алгоритмов
- •15.4. Правила использования операторов цикла пока и цикла до
- •15.5. Алгоритм вычисления таблицы значений функции с одним аргументом Математическая модель
- •Метод решения
- •Обобщенная информационная модель
- •Программная модель с циклом повторять до
- •Формальное исполнение программы sin_while
- •15.6. Правила перебора всех значений переменной в заданном диапазоне с заданным шагом изменения
- •IV.2.10. Оператор цикла с параметром Назначение
- •Синтаксис
- •Семантика
- •Цикл с параметром в схемах алгоритма
- •15.8. Алгоритм вычисления таблицы умножения
- •Вариант с циклом пока Метод решения
- •Алгоритмическая модель
- •Программная модель
- •Вариант с циклом повторять
- •Задача вычисления суммы первых n натуральных чисел
- •Задача с использованием вывода большого количества значений Постановка задачи
- •Метод решения
- •Информационная модель
- •Программная модель
15.8. Алгоритм вычисления таблицы умножения
Математическая модель
i=1(1)10:
j=1(1)10: y=i*j
Метод решения
Задача сводится к вычислению таблицы значений функции от двух аргументов. Причем в данной задаче значения аргументов принадлежат диапазону значений от 1 по 10, то есть для перебора аргументов можно использовать циклы с параметром:
i=1..10:
j=1..10: y=i*j
Информационная модель
Входные данные - отсутствуют;
выходные данные - последовательно все значения y;
промежуточные переменные - значения аргументов вычисляемой функции i, j , которые изменяются в диапазоне 1..10.
Алгоритмическая модель
Схема алгоритма вычисления таблицы умножения приведена на рис. 15.12.
Программная модель
program tabumn;
var i,j,y:integer;
begin
for i:=1 to 10 do
begin
{вычисление одного столбца - при фиксированном значении i}
for j:= 1 to 10 do
Рис. 15.12. – Схема алгоритма вычисления таблицы умножения
begin
y:=i*j;
writeln (i,'*',j,'=',y)
end; {for j}
{"остановка" при просмотре результатов - до тех пор, пока не будет нажата клавиша ввод, программа будет находится в приостановленном состоянии}
writeln(' Для продолжения нажмитеEnter')
readln
end {for i}
end.
Два других варианта решения этой задачи (с циклами пока и повторять до):
Вариант с циклом пока Метод решения
i:=1
пока i10:
Алгоритмическая модель
Рис. 15.13. – Схема алгоритма с циклом с предусловием
Программная модель
program tabumn;
var i,j,y:integer;
begin
i:=1;
while i<= 10 do
begin
{вычисление одного столбца - при фиксированном значении i}
j:= 1;
while j<=10 do
begin
y:=i*j;
writeln (i,'*',j,'=',y);
j:=j+1
end; {while j}
{"остановка" при просмотре результатов - до тех пор, пока не будет нажата клавиша ввод, программа будет находится в приостановленном состоянии}
writeln(' Для продолжения нажмитеEnter')
readln;
i:=i+1
end {while i}
end.
Вариант с циклом повторять
Метод решения
i:=1
повторять
до i>10
Программная модель
program tabumn;
var i,j,y:integer;
begin
i:=1;
repeat
{вычисление одного столбца - при фиксированном значении i}
j:= 1;
repeat
y:=i*j;
writeln (i,'*',j,'=',y);
j:=j+1
until j>10;
Алгоритмическая модель
Рис. 15.14. – Схема алгоритма с циклом с постусловием
{"остановка" при просмотре результатов - до тех пор, пока не будет нажата клавиша ввод, программа будет находится в приостановленном состоянии}
writeln(' Для продолжения нажмитеEnter')
readln;
i:=i+1
until i>10
end.
15.9. Алгоритм накопления суммы
Такой алгоритм часто встречается в нашей повседневной жизни, например, подсчет продавцом стоимости товаров. Технология подсчета сумму стоимости заключается в том, что в начале устройство, с помощью которого ведется подсчет стоимости должно находиться в исходном состоянии (если подсчет ведется с помощью счет, то они должны быть "сброшены"; если с помощью калькулятора, то он должен быть "обнулен" - на индикаторе должен быть 0). В вычислительной технике устройство, в котором накапливается сумма, называется сумматором. Поэтому в алгоритме должна быть переменная - сумматор, которая в начале алгоритма должна быть обнулена. Затем последовательно к сумматору добавляются значения суммируемых величин - происходит процесс суммирования или накопления суммы. После выполнения этих действий в сумматоре находится общая сумма.