Открыть Электронные книги
Категории
Открыть Аудиокниги
Категории
Открыть Журналы
Категории
Открыть Документы
Категории
Алгоритмизация
и программирование
Г ла ва 2 – Час т ь 1
(версия от 05.09.2011)
Учебно-методическое пособие
по курсу «Информатика»
Новочеркасск
ЮРГТУ (НПИ)
2011
Алгоритмизация и программирование: Гл. 2 – Ч. 1 (05.09.2011) 2
Содержание
Глава 2. Алгоритмизация
2.1. Алгоритмы
2.1.1. Общие понятия об алгоритмах
Алгоритм – это точный набор инструкций, описывающих по-
рядок действий некоторого исполнителя для достижения необхо-
димого результата (решения некоторой задачи) за конечное время.
http://ru.wikipedia.org/wiki/Алгоритм
В общем случае исполнителем алгоритма может быть меха-
низм (машина, устройство) или человек. В контексте изучения про-
граммирования в качестве исполнителя алгоритма выступает ком-
пьютер, поэтому при решении задач будут использоваться следую-
щие ключевые понятия информатики.
1. Ввод исходных данных для решения задачи (с клавиатуры
или с помощью других устройств ввода, из файла, посред-
ством передачи данных по сети).
2. Вывод результатов решения задачи (вывод на экран, прин-
тер или в файл, передача данных по сети и т.д.).
3. Хранение данных в памяти (исходных данных – после вво-
да, результатов решения задачи – до вывода).
4. Анализ и обработка данных, необходимых для решения за-
дачи (в том числе – выполнение вычислений, получение но-
вых данных на основе имеющихся).
Под данными, используемыми в работе алгоритма, в общем
случае подразумеваются:
− исходные данные для решения задачи;
− результаты решения задачи (промежуточные или оконча-
тельные).
Таким образом, для составления алгоритма решения задачи
необходимо:
1. Выделить исходные данные.
2. Определить, что должно являться результатом.
3. Описать действия, приводящие к получению результата.
В зависимости от постановки задачи и исходные данные, и ре-
зультаты могут иметь разную форму, объём и содержание, хра-
ниться и передаваться разными способами. Часто результаты реше-
ния одной задачи являются исходными данными для решения дру-
Алгоритмизация и программирование: Гл. 2 – Ч. 1 (05.09.2011) 4
гой задачи. Поэтому при разработке алгоритмов необходимо обра-
щать внимание не только на смысловое значение данных, но и на
форму их представления при вводе или выводе.
k,b k,b
b
x := − k =0
k
b
x := −
x k
a) b)
Рис. 2.1. Схемы алгоритмов решения линейного уравнения
Алгоритмизация и программирование: Гл. 2 – Ч. 1 (05.09.2011) 10
Схема алгоритма – графическое представление метода реше-
ния задачи, в котором для отображения выполняемых операций ис-
пользуются определённые символы.
Для того чтобы унифицировать графическое представление
алгоритмов в виде схем и сделать его понятным для всех участни-
ков процесса разработки алгоритмов и программного обеспечения
существуют определённые стандарты.
Одним из таких стандартов, определяющих правила построе-
ния схем алгоритмов, является «ГОСТ 19.701-90 – Единая система
программной документации. Схемы алгоритмов, программ, данных
и систем. Обозначения условные и правила выполнения».
http://cert.obninsk.ru/gost/282/282.html
http://libt.ru/gost/download/gost-19.701-90.html
В учебной и научной литературе могут встречаться обозначе-
ния и термины, определяемые предыдущими версиями стандарта:
ГОСТ 19.002-80, ГОСТ 19.003-80.
http://fmi.asf.ru/library/book/Gost/19-002-80-82.html
http://fmi.asf.ru/library/book/Gost/19003-80-82.html
Для обозначения графических схем, описывающих алгоритмы,
исторически сформировалось и стало повсеместно использоваться
понятие «блок-схема». Так, например, в Wikipedia имеется следую-
щее определение блок-схемы.
Блок-схема – один из распространенных типов схем, описы-
вающих алгоритмы или процессы, в которых отдельные шаги изо-
бражаются в виде элементов (блоков) различной формы, соединен-
ных между собой линиями потока.
http://ru.wikipedia.org/wiki/Блок-схема
Однако необходимо отметить, что в указанных государствен-
ных стандартах для обозначения схем алгоритмов такое понятие не
определено. Строго говоря, в качестве обозначения схемы алгорит-
ма данный термин является неправильным, однако в силу его
большой распространённости будем далее понимать под «блок-
схемой» именно схему алгоритма.
Алгоритмизация и программирование: Гл. 2 – Ч. 1 (05.09.2011) 11
2.2.3. Использование языка программирования
Весьма часто алгоритмы описываются программой на некото-
ром языке программирования, который позволяет реализовать
стандартные алгоритмические структуры, работать с данными, вы-
полнять необходимые вычисления.
В качестве вводного примера рассмотрим описание на языке
программирования Паскаль уже знакомых по предыдущим разде-
лам алгоритмов решения линейного уравнения. Программы соот-
ветствуют схемам алгоритмов и словесно-формульным описаниям
алгоритмов из предыдущих разделов.
1,5 a
1 0
a) b) c)
Рис. 2.3. Схемы алгоритмов с линейной ( a ), разветвляющейся ( b ) и
циклической ( c ) структурой
Начало
Конец
Начало 1 2 3
1 0
1 2 3 Конец
Начало
Ввод
k,b исходных
данных
b Нахождение
x := − значения
k корня
Вывод
x результата
Конец
R=a
Алгоритмизация и программирование: Гл. 2 – Ч. 1 (05.09.2011) 18
№
Название Обозначение Функция
п/п
7. Решение Выбор направления
выполнения алгоритма
в зависимости от ис-
1 0
Условие тинности некоторого
условия («1» указывает
на направление выпол-
нения алгоритма, если
«Условие» истинно,
«0» – если «Условие»
ложно).
0
Условие
Начало
Ввод
R исходных
данных
Вычисление
S := πR 2 площади
круга
Вычисление
L := 2πR длины
окружности
Вывод
S, L результатов
Конец
Начало
Ввод
x0 , dx исходных
данных
Вычисление
y1 := f ( x0 ) значения функции f ( x)
в точке x0
y2 := Вычисление
значения функции f ( x)
f ( x0 + dx ) в точке x0 + dx
y2 − y1
dy :=
dx
Вывод
dy результатов
Конец
1 0
Условие
Инструк- Инструк-
ция № 1 ция № 2
0
Условие
Инструкция
f ( x) = 1
1
0 1 x
f ( x) = x +1
Начало
1 0
x<0
y := x + 1 y := 1
Конец
Начало
a, b, c
D := b2 − 4ac
1 0
D≥0
‘Действительные ‘Действительных
корни есть’ корней нет’
Конец
Начало
1 0
a≥0
m := a m := − a
Конец
Начало 1
0
a a<0
m := a m := − m
Конец
Начало
Определение
b := Bal ( ) текущего
баланса 1
Ввод номера
0
num вызываемого b < 100
абонента
1
Уменьшение
b := b − s баланса
Конец
0
Условие
1 Условие
продолжения
работы цикла
Тело
цикла
Цикл с постусловием
В отличие от цикла с предусловием, в цикле с постусловием
Условие в схеме алгоритма находится ниже тела цикла (рис. 2.18).
Следовательно, на первом шаге алгоритма Тело цикла обязатель-
но выполнится, прежде чем будет проверено Условие, независимо
от его истинности или ложности. То есть в цикле с предусловием
Тело цикла будет выполнено хотя бы один раз.
Алгоритмизация и программирование: Гл. 2 – Ч. 1 (05.09.2011) 35
Параметры
цикла
Начальное и конечное
значения счётчика
цикла
Тело
цикла
Например:
a) I := 1, N
b) J := 0, 9
c) K := N, M
N N
I := 1 I := 1
I≤N I
I I := I + 1
I := I + 1 I>N
a) b)
Рис. 2.20. Схемы алгоритмов решения задачи на вывод натуральных чисел в
диапазоне 1..N : с предусловием (а), с постусловием (б)
Алгоритмизация и программирование: Гл. 2 – Ч. 1 (05.09.2011) 40
Начало
I := 1, N
Конец