Similar presentations:
Блок-схемное программирование. (Тема 1)
1. Тема 1. Блок-схемное программирование
2. Вопросы темы
1.Понятие алгоритма. Его свойства.
2.
Этапы решения задач на ЭВМ.
3.
Основы составления блок-схем.
4.
Алгоритмизация линейных процессов.
5.
Алгоритмизация разветвляющихся процессов.
6.
Алгоритмизация циклических процессов
7.
Задачи на обработку массивов
3. Вопрос 1. Понятие алгоритма. Его свойства
1.1. Понятие алгоритмаАлгоритм – (от лат. algorithmi) латинской формы написания имени
великого математика IX в. Аль Хорезми, который сформулировал правила
выполнения арифметических действий.
Алгоритм – это точное предписание о выполнении в определенном порядке
некоторой системы операций для получения решения данной задачи.
Алгоритмизация – процесс разработки алгоритма (плана действий) для решения
задачи
СПОСОБЫ
СПОСОБЫ
ЗАДАНИЯАЛГОРИТМОВ
АЛГОРИТМОВ
ЗАДАНИЯ
Словесный
Словесный
(многословность,
(многословность,
неоднозначность)
неоднозначность)
Табличный
Табличный
(физика,химия,
химия,…)
…)
(физика,
Граничный
Граничный
(блок-схемы)
(блок-схемы)
4.
1.2. Свойства алгоритмаСвойстваалгоритма
алгоритма
Свойства
Однозначностьалгоритма
алгоритма- -единственность
единственностьтолкования
толкованияисполнителем
исполнителемправила
правилапостроения
построениядействий
действий
Однозначность
порядоких
ихвыполнения.
выполнения.
иипорядок
Конечностьалгоритма
алгоритма- -обязательность
обязательностьзавершения
завершениякаждого
каждогоиз
издействий,
действий,составляющих
составляющихалгоритм,
алгоритм,ии
Конечность
завершимостьвыполнения
выполненияалгоритма
алгоритмаввцелом.
целом.
завершимость
Результативность алгоритма
алгоритма - -предполагающая,
предполагающая, что
что выполнение
выполнение алгоритма
алгоритма должно
должно завершиться
завершиться
Результативность
получением
определённых
результатов.
получением определённых результатов.
Массовость - - т.т. е.е. возможность
возможность применения
применения данного
данного алгоритма
алгоритма для
для решения
решения целого
целого класса
класса задач,
задач,
Массовость
отвечающихобщей
общейпостановке
постановкезадачи.
задачи.
отвечающих
Правильность алгоритма
алгоритма - - под
под которой
которой понимается
понимается способность
способность алгоритма
алгоритма давать
давать правильные
правильные
Правильность
результаты
решения
поставленных
задач.
результаты решения поставленных задач.
Эффективность - - для
для решения
решения задачи
задачи должны
должны использоваться
использоваться ограниченные
ограниченные ресурсы
ресурсы компьютера
компьютера
Эффективность
(процессорноевремя,
время,объём
объёмоперативной
оперативнойпамяти
памятииит.т.д.).
д.).
(процессорное
5. Вопрос 2. Этапы решения задач на ЭВМ
Этап1.1.Этап
Математическаяпостановка
постановказадачи
задачи
Математическая
Этап2.2.
Этап
Алгоритмизацияииблок-схема
блок-схема
Алгоритмизация
Этап3.3.
Этап
Написаниепрограммы
программы
Написание
Этап4.4.
Этап
Отладкапрограммы
программы
Отладка
Этап5.5.
Этап
Проверкаправильности
правильностиполученных
полученныхрезультатов
результатов
Проверка
Этап6.6.
Этап
Проведениевычислений
вычислений
Проведение
6. Вопрос 3. Основы составления блок-схем
Блок-схема – графическое изображение алгоритма.Перечень основных графических блоков
0,5a
Блок начала, конца блок-схемы
b
a
Блок ввода/вывода
b
0.25
а
a
Блок вычислений
b
a
Логический блок
(блок разветвляющегося процесса)
b
a
Блок итераций
(блок циклического процесса с известным числом повторений)
b
7.
Вопрос 4. Алгоритмизация линейных процессовЛинейный процесс – процесс, действия в котором происходят
последовательно, друг за другом.
y 2
Пример 1. Составить блок-схему для вычисления величины:
начало
ввод a, b, c, x
y=2*(a*x+2*b)/(c*x+2*b)
вывод y
конец
ax 2b
cx 2b
8.
Пример 2. Вычислить Х, Y. Исходные данные: А = 557, B = 3, C = -20X
A C B
C 2 B2
2
A C
,
B A
Y B2 X
C3
A B
C
3
Вывести значения Х, Y.
начало
А = 557
В=3
С = -20
X = abs(A+C+B)/(C*C+B*B)+(A+C*C)/(A+B)
Y=B*B*X+abs(C*C*C)/(A+B)+abs(C)*abs(C)*abs(C)
вывод
X, Y
.
конец
9.
Вопрос 5. Алгоритмизация разветвляющихся процессовРазветвляющийся процесс – процесс, действия в котором происходят
по одной или другой ветви, в зависимости от условия.
Пример 3. Вычислить Z, если известно условие:
1 sin x , если x 0,5;
Z
1 x 3 , если x 0,5.
начало
Вывести значения в виде x, Z.
ввод x
+
x > 0,5
Z = abs(1 - sin(x))
–
Z = 1 + sqr(x*x*x)
вывод x, Z
конец
10.
1 sin x , если x 0,5;Z 1 x 3 , если x 0,5;
x
2, если x 0,5.
1 x
Пример 4. Вычислить Z, если известно условие:
Вывести значения в виде x, Z.
начало
ввод x
+
x > 0,5
–
+
Z = abs(1 - sin(x))
Z = 1 + sqr(x*x*x)
вывод x, Z
конец
x < 0,5
–
Z = x/(1+x) + 2
11.
Вопрос 6. Алгоритмизация циклических процессовЦиклический процесс – процесс, действия в котором многократно
повторяются с изменением или без изменения параметров цикла.
Видыпеременных
переменныхцикла
цикла
Виды
Простые,для
длякоторых
которых
Простые,
существуютрекуррентные
рекуррентные
существуют
формулы
формулы
Простые,для
длякоторых
которыхне
не
Простые,
существуютрекуррентные
рекуррентные
существуют
формулы
формулы
Индексированные
Индексированные
переменные––элементы
элементы
переменные
массива
массива
Видыциклических
циклическихпроцессов
процессов
Виды
Циклсспредусловием
предусловием
Цикл
Циклсспостусловием
постусловием
Цикл
Циклссизвестным
известнымчислом
числом
Цикл
повторений
повторений
12.
6.1. Цикл с предусловием1. Блок подготовки переменных цикла
–
2. Блок
конца
цикла
+
3. Арифметический блок
4. Блок изменения переменных цикла
13.
Пример 5. Вычислить:H
Y
8
A H i
, где A = 5, K = 15, H = 0,2
K
i 1
2
i 1
Ход решения
Вводим замену
A H i , тогда
S
2
K
i 1
i 1
Y
H
S
8
Переменные
цикла
Начальные
значения
переменных
Рекуррентные формулы
для вычисления
накопления
Рекуррентные
формулы для
вычисления счетчика
S
S=0
A H i
S S
-
i
i=1
-
i=i+1
-
блок 1
блок 3
блок 4
2
i 1
14.
Блок-схеманачало
A =5; K = 15; H = 0,2
S =0; i = 1
i <= K
блок 1
–
+
S = S + (A+H*H)*i/(i+1)
блок 3
i=i+1
блок 4
Y=H/8*S
вывод Y
конец
15.
6.2. Цикл с постусловием1. Блок подготовки переменных цикла
3. Арифметический блок
4. Блок изменения переменных цикла
2. Блок конца
цикла
–
+
16.
Пример 6. Вычислить Y, если известно условие:ln x A, если x 2;
Y
e x 2 , если x 2 .
Вывести значения в виде x, Y.
x 4;4 ;
x 0,5;
A 2.
17.
Блок-схеманачало
A =2; x = 0.5; x = -4
+
x >= 2
–
y = sqr(exp(x)+2)
y = sqr(ln(x)) +A
вывод x, y
x = x + x
x>4
–
конец
+
18.
6.2. Цикл с блоком итераций ( с заданным числом повторений)1. Блок подготовки переменных цикла
2. Блок итераций
3. Арифметический блок
19.
Пример 7. Вычислить W:2
a
z
j
5
6
gk
W k 1
y
j 2
g k , a j – известные, y = 5, z = 3
z
Ход решения
Водим замены
6
S gk
k 1
Тогда
и
5
P a j z2
j 2
.
S P
W
y z
20.
Блок-схеманачало
ввод
gk , aj
1
P=1
y =5; z = 3
j = 2,5
S=0
P = P * (aj + z*z)
k = 1,6
S = S + gk
W=S/y+P/z
вывод W
конец
1
21.
Вопрос 7. Задачи на обработку массивов7.1. Одномерные массивы
Массив – это пронумерованная последовательность величин одинакового
типа, обозначаемая одним именем, где каждый элемент имеет свой номер.
Например, задана массив А состоящий из 10 элементов.
A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10
1 элемент
массива А
7 элемент
массива А
Краткая запись элементов массива
Ai , i 1,10
i-ый элемент
массива А
22.
Пример 8. Задан массив Ai i 1,5 . Определить и распечатать среднееарифметическое
значение
всех
отрицательных
элементов.
Значения
элементов массива задать самостоятельно и вывести на печать.
Ход решения
Водим обозначения
S
C
K
S
5
Ai
i 1
Ai 0
K
5
1
i 1
Ai 0
где
С – среднее арифметическое всех отрицательных элементов;
S – сумма всех отрицательных элементов;
K – количество всех отрицательных элементов.
23.
Блок-схемаI. Ввод элементов массива А
II. Основная часть вычислений
начало
III. Вывод элементов массива А
i = 1,5
I
ввод Ai
1
S = 0, K = 0
C=S/K
i = 1,5
+
S = S + Ai
K=K+1
Ai <
0
вывод C
–
II
i = 1,5
вывод Ai
1
конец
III
24.
7.2. Многомерные массивыМатрица – двумерный массив.
A11 A12 A13 A14
A21 A22 A23 A24
A
A
A
A
32
33
34
31
Пример 9. Задан массив
Aij i 1,3, j 1,4
Aij i 1,5; j 1,6 . Определить и распечатать среднее
арифметическое значение всех отрицательных элементов. Значения элементов
массива задать самостоятельно и вывести на печать.
25.
Блок-схемаI. Ввод элементов массива А
II. Основная часть вычислений
начало
III. Вывод элементов массива А
i = 1,5
j = 1,6
I
ввод Aij
1
S = 0, K = 0
C=S/K
i = 1,5
вывод C
j = 1,6
+
Aij < 0
–
II
i = 1,5
j = 1,6
S = S + Aij
K=K+1
вывод Aij
1
конец
III
26.
Пример 9. Задан массивAij i 1,5; j 1,6
. Определить и распечатать
минимальный элемент массива и максимальный из положительных.
Значения элементов массива задать самостоятельно и вывести на печать.
Блок-схема
начало
i = 1,5
j = 1,6
ввод Aij
1
Ввод элементов
массива А
27.
Нахождение значенияминимального элемента
Нахождение значения
максимального элемента
из всех положительных
1
2
min = A1,1
max = A1,1
i = 1,5
i = 1,5
j = 1,6
j = 1,6
–
+
min > Ai,j
min = Ai,j
+
max < Ai,j
Ai,j>0
max = Ai,j
вывод min
2
вывод max
3
–
28.
3i = 1,5
j = 1,6
вывод Aij
конец
Вывод элементов
массива А