Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Учебное пособие_Алгоритмизация

.pdf
Скачиваний:
43
Добавлен:
23.02.2015
Размер:
1.26 Mб
Скачать

Цикл с параметром

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