Учебное пособие_Алгоритмизация
.pdfЦикл с параметром
1. Формулировка задания
Разработать алгоритм программы, которая выводит таблицу квадратов первых десяти целых положительных чисел.
2. Псевдокод
1.ПОВТОРИТЬ 10 раз (для i=1,10,1)
1.1.Y=i*i.
1.2.Вывод i, Y.
2.Конец.
3.Блок-схема
Начало
i= 1, 10
Y=i*i
Вывод i, Y |
Конец |
|
4. Листинг программы program kvadrat;
uses crt ;
var Y, i: integer ;
begin
70
clrscr;
writeln ('Таблица квадратов');
for i:=1 to 10 do
|
begin |
|
|
|
|
Y:=i*i; |
|
|
|
|
writeln (i, ' |
',Y) |
|
|
|
end; |
|
|
|
readln; |
|
|
|
|
end. |
|
|
|
|
5. Тестирование |
|
|
|
|
|
|
|
||
Результат выполнения |
Ожидаемый результат |
|||
|
программы |
|
||
|
|
|
|
|
1 |
1 |
|
1 |
1 |
2 |
4 |
|
2 |
4 |
3 |
9 |
|
3 |
9 |
4 |
16 |
|
4 |
16 |
5 |
25 |
|
5 |
25 |
6 |
36 |
|
6 |
36 |
7 |
49 |
|
7 |
49 |
8 |
64 |
|
8 |
64 |
9 |
81 |
|
9 |
81 |
10 |
100 |
|
10 |
100 |
6. Результат выполнения программы
71
Цикл с предусловием
1. Формулировка задания
Найти значение всех Y = X3 - 5 при Х, изменяющемся от 1 до 10 с
шагом 2.
2. Псевдокод
1.Х = 1.
2.ПОКА Х<10, выполнять:
2.1.Y = X3 – 5.
2.2.Вывод Х, Y.
2.3.Х = Х+2.
3.Конец.
3. Блок-схема
Начало
Х = 1
Да
Х > 10
Нет
Y = X3 – 5
Вывод Х, Y
Х = Х + 2
Конец
72
4. Листинг программы
program d; uses crt ;
var
x, y: integer;
begin
clrscr;
x:=1;
while x<10 do
begin
y:=sqr(x)*x - 5;
writeln('x= ', x, ' y=', y); x:=x+2;
end;
end.
5. Тестирование
|
Результат выполнения |
Ожидаемый результат |
|
|
программы |
||
|
|
|
|
x=1 |
y=-4 |
x=1 |
y=-4 |
x=3 |
y=4 |
x=3 |
y=4 |
x=5 |
y=120 |
x=5 |
y=120 |
x=7 |
y=338 |
x=7 |
y=338 |
x=9 |
y=724 |
x=9 |
y=724 |
6. Результат выполнения программы
73
Цикл с постусловием
1. Формулировка задания
Написать программу, определяющую максимум в последовательности вводимых с клавиатуры положительных чисел. Как только введено отрицательное число или 0, программа завершается.
2.Псевдокод
1.Начальное значение max = 0.
2.Делать:
2.1.Ввод а
2.2.ЕСЛИ а > max, ТО
max = a.
3.ПОКА ложно a ≤ 0.
4.Вывод max.
5.Конец.
3. Блок-схема
Начало
max = 0
Ввод a
Нет
a > max
Да
max=a
Нет |
Да |
|
a 0 |
Вывод max
Конец
4. Листинг программы
program maximum; uses crt ;
var a, max: integer ;
74
begin
clrscr;
writeln ('Определение максимального числа'); writeln ('Вводите последовательность чисел');
writeln ('Программа завершается после ввода отрицательного числа
или 0');
max:=0;
repeat
readln (a);
if a > max then max:= a; until a <= 0;
writeln ('Максимальное число', max); readln;
|
end. |
|
|
|
|
|
|
|
5. |
Тестирование |
|
|
|||
|
|
|
|
|
|
|
|
№ |
|
Введенные числа |
Результат выполнения |
Ожидаемый |
|||
п/п |
|
программы |
результат |
||||
|
|
|
|
|
|||
1 |
2 |
3 |
9 |
1 |
10 0 |
Максимальное число = 10 |
10 |
|
|
|
|
|
|
|
|
2 |
1 |
8 4 2 |
99 |
5 0 |
Максимальное число = 99 |
99 |
|
|
|
|
|
|
|
||
3 |
3 |
45 |
9 48 -3 |
Максимальное число = 48 |
48 |
||
|
|
|
|
|
|||
|
6. |
Результат выполнения программы |
|
75
Одномерные массивы
1. Формулировка задания
Вычислить произведение элементов одномерного массива А(10).
2.Псевдокод
1.ПОВТОРИТЬ 10 раз (для i =1,10,1).
1.1.Ввод ai.
2.Начальное значение произведения P=1.
3.ПОВТОРИТЬ 10 раз (для i =1,10,1).
3.1.P = P*ai.
4.Вывод P.
5.Конец.
3.Блок-схема
Начало
i= 1, 10, 1
Ввод аi |
P = 1 |
|
|
|
|
i= 1, 10, 1 |
|
|
||
|
|
|
||||
|
|
|
|
|
||
|
|
Р = Р аi |
|
Вывод Р |
||
|
|
|
|
|
Конец |
|
|
|
|
|
|
||
|
|
|
|
|
4. Листинг программы program proizvedenie; uses crt ;
var a: array[1..20] of real; p: real; i: integer;
76
begin
writeln('Введите элементы массива'); for i:=1 to 10 do
begin
write ('a[', i, ']=');
readln (a[i]); {Ввод элементов массива}
end;
P:=1;
for i:=1 to 10 do
P:=P*a[i]; {Вычисление произведения} writeln ('Произведение элементов массива = ', P:6:2);
|
|
end. |
|
|
|
|
|
|
|
|
|
|
|
|
5. |
Тестирование |
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
№ |
|
|
|
Введенные числа |
|
|
Результат выполнения |
Ожидаемый |
||||
п/п |
|
|
|
|
|
программы |
результат |
|||||
|
|
|
|
|
|
|
|
|
|
|||
1 |
1 |
1 |
2 |
1 |
3 |
1 |
2 |
1 |
5 |
3 |
180.00 |
180.00 |
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
2 |
3 |
1 |
2 |
1 |
1 |
2 |
1 |
1 |
2 |
48 |
48 |
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
5 |
1 |
2 |
1 |
1 |
2 |
3 |
3 |
2 |
1 |
360 |
360 |
|
|
|
|
|
|
|||||||
|
|
6. |
Результат выполнения программы |
|
77
Двумерные массивы
1.Формулировка задания
Вдвумерном массиве А (4x4) заменить все 1 на 0. Вывести новый массив.
2.Псевдокод
1.Для i = 1,4,1 и j = 1,4,1:
1.1.Ввод aij.
2.Для i =1,4,1 и j =1,4,1 повторить:
2.1.ЕСЛИ aij = 1, ТО aij = 0
3.Для i = 1,4,1 и j = 1,4,1:
3.1.Вывод aij.
4.Конец.
3.Блок-схема
Начало
i= 1, 4
j= 1, 4
i= 1, 4
Ввод аij
|
j= 1, 4 |
|
||
Нет |
|
|
Да |
|
|
|
|||
аi j = 1 |
||||
|
|
аi j = 0
1
78
1
i= 1, 4
j= 1, 4
Вывод аij
Конец
4. Листинг программы
Program zamena;
uses crt ;
var a: array[1..10, 1..10] of integer;
i,j: integer;
begin
clrscr;
writeln('Введите элементы массива ');
for i:=1 to 4 do
for j:=1 to 4 do
begin
write ('a[', i, j, ']=');
readln (a[i,j]); {Ввод элементов массива}
end;
clrscr;
79