Главная страница

Примеры блок-схем для конкретных задач. Программа описание структуры алгоритма на языке программирования. Программа на языке Паскаль имеет следующую структуру program


Скачать 0.81 Mb.
НазваниеПрограмма описание структуры алгоритма на языке программирования. Программа на языке Паскаль имеет следующую структуру program
АнкорПримеры блок-схем для конкретных задач.pdf
Дата19.04.2018
Размер0.81 Mb.
Формат файлаpdf
Имя файлаПримеры блок-схем для конкретных задач.pdf
ТипПрограмма
#18262

1
Основные определения. Алгоритмические конструкции
Алгоритм – упорядоченная совокупность системы правил, определяющая содержание и порядок действий над некоторыми объектами, строгое выполнение которых приводит к решению любой задачи из рассматриваемого класса задач за конечное число шагов.
Блок-схема – это наглядное графическое представление алгоритма с помощью геометрических фигур, соединенных линиями-связями, показывающими порядок выполнения инструкций.
Основные элементы блок-схем представлены в Приложении 2.
Программа – описание структуры алгоритма на языке программирования.
Программа на языке Паскаль имеет следующую структуру:
program <имя программы>;
uses <подключаемые библиотеки>;
const <описания констант>;
var <описания переменных>;
type <описания типов>;
begin
<операторы языка>
end.
Тестирование - этап разработки компьютерной программы, в процессе которого проверяется работоспособность программы, наличие ошибок.
Существует три типа алгоритмических конструкций: линейная
(последовательная), разветвляющаяся и циклическая. Рассмотрим каждую из них на примерах.

2
Линейная алгоритмическая конструкция
Линейный алгоритм это описание последовательности действий, которые выполняются однократно в заданном порядке (рис. 1).
Рис. 1 Размещение блоков в линейном алгоритме
      
Начало
Конец

3
ПРИМЕР 1. Разработайте алгоритм решения линейного уравнения: составьте блок-схему, листинг программы на языке Паскаль. Выполните тестирование программы.
Начало
Конец
Вывод x
Ввод k, b
k
b
Х



4
2. Листинг программы
program uravnenie ;
uses crt; var x, k, b: real ;
begin
writeln ('Введите коэффициент k') ; readln (k) ; writeln ('Введите b') ; readln (b) ;
clrscr; {Очистка экрана после ввода данных} x:=-b/k ; writeln ('Корнем линейного уравнения ',k:3:2,'*x+',b:3:2, '=0 является x =', x:3:2) ;
end.
3. Тестирование
№ п/п
Значение k
Значение b
Результат выполнения программы
Ожидаемый результат
1 2
5
-2.5
-2.5 2
10
-20 2
2 3
5
-5 1
1
4. Результат выполнения программы

5
Разветвляющаяся алгоритмическая конструкция
Разветвляющийся алгоритм – такой алгоритм, в котором выполняется либо одна, либо другая последовательность действий, в зависимости от условия.
Различают две формы разветвляющейся алгоритмической структуры: полное ветвление (ЕСЛИ – ТО – ИНАЧЕ) и неполное ветвление (ЕСЛИ – ТО).
Полное ветвление (рис. 2) позволяет организовать в алгоритме две ветви
(ТО или ИНАЧЕ). Неполное (рис. 3) предполагает наличие действий только на одной ветви (ТО), вторая ветвь отсутствует.
Рис. 2 Полное ветвление
Рис. 3 Неполное ветвление
Условие
Действия
Да
Нет
Условие
Действия 2
Действия 1
Да
Нет

6
ПРИМЕР 2.Разработайте алгоритм вычисления значения функции










0
,
5 2
0
,
1
)
(
x
x
x
a
X
Y
, где а – произвольное целое число, введенное с клавиатуры.
Составьте псевдокод, напишите программу на языке Паскаль. Проверьте программу на наличие ошибок.
2. Листинг программы
program functia;
uses crt ; var a: integer ; x, Y: real;
begin
clrscr; writeln ('Вычисление значения функции'); writeln ('Введите X и а'); readln (x, a) ;
if x > 0
then Y:=a – 1
else Y:= sqr(x)+5; writeln ('При а =' , а, 'Y =',Y:5:2); readln;
end.
1. Блок-схема
3. Тестирование
№ п/п
Значение a
Значение x
Результат выполнения программы
Ожидаемый результат
1 2
1 1
1 2
10
-4 21 21 3
1
-5 30 30
Конец
Вывод Y
X>0
Y(X)=а–1
Y(X)=X
2
+5
Да
Нет
Начало
Ввод x, a

7
4. Результат выполнения программы

8
Команда «Выбор»
Для выбора из нескольких альтернативных действий используется команда «выбор». Перед выполнением команды «выбор» вычисляется значение некоторого выражения Х, а затем, исходя из значения Х, выполняется определенное действие (Рис. 4).
Рис. 4 Команда «Выбор»
Структура оператора выбора имеет вид:
case <управляющая переменная> of
<список значений 1>:<оператор 1>;
………
<список значений n>:<оператор n>;
else
<оператор k>
end.
В качестве управляющей переменной можно использовать переменную целого или символьного типа.
Хn
Х2
Х1

Х
Действие1
Действие2
Действие n

9
Циклическая алгоритмическая конструкция
Циклической называют алгоритмическую конструкцию, в которой действие выполняется указанное число раз, или, пока не выполнится условие.
Группа повторяющихся действий цикла называется телом цикла.
Существует три типа циклов: цикл с параметром (арифметический), цикл
с предусловием и цикл с постусловием.
Цикл с параметром
В цикле с параметром число повторений цикла однозначно определено и задается с помощью начального, конечного значений параметра и шагом его изменения.
Рис. 5 Цикл с параметром
Тело цикла i= 1, N, 1

10
ПРИМЕР 3. Разработать алгоритм программы, которая выводит таблицу квадратов первых десяти целых положительных чисел.
2. Листинг программы
program kvadrat;
uses crt ; var Y, i: integer ;
begin
clrscr; writeln ('Таблица квадратов');
for i:=1 to 10 do
begin
Y:=i*i; writeln (i, ' ',Y)
end; readln;
end.
1. Блок-схема
3. Тестирование
Результат выполнения программы
Ожидаемый результат
1 1 2 4 3 9 4 16 5 25 6 36 7 49 8 64 9 81 10 100 1 1 2 4 3 9 4 16 5 25 6 36 7 49 8 64 9 81 10 100
Y=i*i
Начало
Конец
Вывод K i= 1, 10
Вывод i,
Y

11
4. Результат выполнения программы
Цикл с предусловием
Действия внутри этого цикла повторяются, пока выполняется условие в блоке ветвления, причем сначала проверяется условие, а затем выполняется действие.
Рис. 6 Цикл с предусловием
Условие
Тело цикла
Нет
Да

12
ПРИМЕР 4.
Найти значение всех Y = X
3
- 5 при Х, изменяющемся от 1 до 10 с шагом 2.
2. Листинг программы
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; readln;
end.
1. Блок-схема
3. Тестирование
Результат выполнения программы
Ожидаемый результат x=1 y=-4 x=3 y=4 x=5 y=120 x=7 y=338 x=9 y=724 x=1 y=-4 x=3 y=4 x=5 y=120 x=7 y=338 x=9 y=724
Начало
Х = 1
Конец
Вывод
Х, Y
Х > 10
Y = X
3
– 5
Да
Нет
Х = Х + 2

13
4. Результат выполнения программы
Цикл с постусловием
Тело цикла с постусловием всегда будет выполнено хотя бы один раз.
Оно будет выполняться до тех пор, пока значение условного выражения
ЛОЖНО. Как только условное выражение принимает значение ИСТИНА, цикл завершается.
Рис. 7 Цикл с постусловием
Условие
Тело цикла
Нет
Да

14
ПРИМЕР
5.
Написать программу, определяющую максимум в последовательности вводимых с клавиатуры положительных чисел. Как только введено отрицательное число или 0, программа завершается.
2. Листинг программы
program maximum;
uses crt ; var a, max: integer ;
begin
clrscr; writeln ('Определение максимального числа'); writeln ('Вводите последовательность чисел'); writeln ('Программа завершается после ввода отрицательного числа или 0'); max:=0;
repeat readln (a);
if a>max thenmax:=a;
until a<=0; writeln ('Максимальное число', max); readln;
end.
1. Блок-схема
3. Тестирование
Введенные числа
Результат выполнения программы
Ожидаемый результат
2 3 9 1 10 0
Максимальное число 10 10
Вывод max
Начало max = 0
Конец
Ввод a a  0
Нет max=a
Да a > max
Нет
Да

15
4. Результат выполнения программы

16
Структурированные типы данных
Одномерный массив
Одномерный массив – это массив, элементы которого имеют только один индекс.
Ввод элементов массива осуществляется поэлементно, обычно в порядке возрастания индексов. Алгоритм ввода элементов одномерного массива представлен на блок-схеме (рис. 2.1).
Рис. 8 Ввод элементов одномерного массива
При обработке элементов массива доступ к ним осуществляется также в цикле, как и ввод.
Ввод а
i i= 1, N, 1

17
ПРИМЕР 6. Вычислить произведение элементов одномерного массива А(10).
1. Блок-схема
2. Листинг программы
program proizvedenie;
uses crt ; var a: array[1..20] of real; p: real; i: integer;
begin
clrscr; 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); readln;
end.
Ввод а
i i= 1, 10, 1
Начало
P = 1 i= 1, 10, 1
Вывод Р
Р = Р

а i
Конец

18
3. Тестирование
Введенные числа
Результат выполнения программы
Ожидаемый результат
2 3 1 1 1 2 1 1 1 2
Произведение элементов массива 24 24
4. Результат выполнения программы

ПРИЛОЖЕНИЕ
Основные элементы блок-схем
Вид графического объекта
Название блока
Начало алгоритма
Конец алгоритма
Процесс. Внутри блока записывается действие, вычислительная операция или группа
Ввод/вывод данных с неопределенного носителя. Надпись внутри блока: ввод
(вывод) и список вводимых (выводимых) переменных
Ввод с клавиатуры
Вывод на монитор
Вывод на печатающее устройство
Условный блок. Условие записывается внутри блока. В результате проверки условия осуществляется выбор одного из возможных путей вычислительного процесса
Цикл с параметром
Нет
Условие
Нет
Да
Условие
Ввод /
Вывод
<Действие>
Конец
Начало
Тело цикла

20
Вид графического объекта
Название блока
Границы цикла. Описывает циклические процессы: «цикл с предусловием» и «цикл с постусловием»
Соединительный блок
Тело цикла


написать администратору сайта