Открыть Электронные книги
Категории
Открыть Аудиокниги
Категории
Открыть Журналы
Категории
Открыть Документы
Категории
Постановка задачи
Выбор метода решения поставленной задачи
Детализация модели - для каждой отдельной функции разрабатывается
последовательность выполняемых действий, т.е. алгоритмы.
Определение структуры данных
Разработка алгоритма
Кодирование алгоритма на каком-либо языке программирования
Отладка программы
Тестирование
Поддержка и развитие программы
Старение
Любой из этапов имеет важное значение для программы. Изучаемый курс посвящен
изучению алгоритмов и структур данных.
Виды данных
1
Алгоритмы и структуры данных Теоретические сведения
Простые Структурированные
Данное относят к простому типу, если в любой момент времени оно определяет
одно и только одно значение. Диапазон изменения возможных значений определяется типом
данных. Например, требуется вычислить площадь поверхности некоторого тела. Очевидно,
что для представления информации о вычисляемой площади поверхности некоторого тела
достаточно использовать данное простого числового типа. Простые данные определяют
такое отношение: одно имя - одно значение.
Структурированные данные отличаются от простых тем, что к ним применимо другое
отношение: одно имя - много значений. Если все элементы, входящие в такую структуру,
однотипны, то такая структура называется однородной, в противном случае - неоднородной.
Классическим примером однородной структуры является массив, являющийся
последовательностью однотипных значений, таких как, например, (2, 51, 3, 7, 88).
Неоднородная структура в отличие от однородной содержит значения различных типов,
относящихся к одному понятию или объекту, и, значит, такое структурированное данное
несет в себе больше информации. Для представления неоднородных структур используют
запись. Запись - это структура, предназначенная для представления данных различного типа.
Запись состоит из поименованных полей, каждое из которых должно содержать значение
определенного типа.
Понятие типа
2
Алгоритмы и структуры данных Теоретические сведения
3
Алгоритмы и структуры данных Теоретические сведения
Арифметические операции
Знак Название Программная запись
- 1) Указание операции отрицания (изменение - (х)
знака) х-у
2) Бинарная операция вычитания
+ Сложение Х+у
* Умножение Х*у
/ Деление, результат которого всегда вещественное Х/у 7 / 3=2,3333
число
Div Целочисленное деление, результат которого целое Х div у 7 div 3= 2
число, т.к. дробная часть отбрасывается
Mod Определение остатка от целочисленного деления X mod y 7 mod
(дробная часть) 3=0,333
^ Возведение в степень Х ^ 2 = х2
Операции сравнения
Знак Назначение Программная запись
операции
= равенство X = y x = 12
< меньше X < y x > 12
> больше X > y x > 12
<> неравенство Х у x <>y x><y
<= Меньше или равно X <=4 x 4
>= Больше или равно Y >= x yx
Результатом таких операций может быть одно из двух возможных логических
значений:
1.True = истина = да, внутри ЭВМ хранится как 1 (единица)
2.False = ложь = нет, о
Логические операторы
Знак Назначение Программная запись
Not Логическое отрицание Not (х = у)
Табл. Истинности
not (1) = 0
not (0) = 1
Or Логическое "или" (логическое сложение) (х < 0) or (x<>y)
Таблица истинности:
1 or 1=1
1 or 0=1
0 or 1=1
0 or 0=0
And Логические "и" (x<10) and (x>5)
Таблица истинности:
1 and 1=1
1 and 0=0
0 and 0=0
0 and 1=0
4
Алгоритмы и структуры данных Теоретические сведения
5
Алгоритмы и структуры данных Теоретические сведения
6
Алгоритмы и структуры данных Теоретические сведения
алгоритме
Разветвления
Конец
Разветвление предполагает оформление в алгоритме
нескольких альтернативных путей решения. Выбор пути решения зависит от проверки
некоторого условия. Различают следующие виды ветвлений:
Разветвления
Да
Усл.
2
7
Алгоритмы и структуры данных Теоретические сведения
Как видно из примера разветвленные алгоритмы в своем составе содержат блок условия.
Каждый блок условия характеризуется одним входом и двумя выходами:
Условие выполняется – «истина» – «да» – «+»
Условие не выполняется – «ложь» - «нет» - «-»
НАЧАЛО
Ввод A,B,C
+
A<=B и A<=C
Вывод A
+
С<=B
Вывод C
Вывод B
КОНЕЦ
Циклы
Циклы
i от нач. до
кон. с шагом С предусловием с постусловием
1
нет
Усл.
да
Да
Усл.
нет
9
Алгоритмы и структуры данных Теоретические сведения
10
Алгоритмы и структуры данных Теоретические сведения
11
Алгоритмы и структуры данных Теоретические сведения
НАЧАЛО
Ввод x, N
S:=0
Y:=x
K:=1
+
K<=N
Y:=Xk
S:=S+Y
Вывод S
K:=K+1
КОНЕЦ
12
Алгоритмы и структуры данных Теоретические сведения
13
Алгоритмы и структуры данных Теоретические сведения
Например:
1) одномерный массив: ряд чисел, записанный последовательно:
5 5 4 4 5 5 4 4 7
n1 n2 n3 n4 n5 n6 n7 n8 n9
14
Алгоритмы и структуры данных Теоретические сведения
Начало
I=1 до 20 с
шагом 1
Ввод
А(i)
конец
Очевидно, что вывод массива на экран можно производить таким же алгоритмом, что и в
предыдущем примере, но вместо ввода использовать блок вывода.
Начало
S: =Ø
I : = 1 to 30
S : = S + t (i)
Конец
15
Алгоритмы и структуры данных Теоретические сведения
Начало
Min = t (1)
I = 2 до 30
Да
t(i) > Min
Min: = t (i)
Min
Конец
16
Алгоритмы и структуры данных Теоретические сведения
17
Алгоритмы и структуры данных Теоретические сведения
18
Алгоритмы и структуры данных Теоретические сведения
19
Алгоритмы и структуры данных Теоретические сведения
Такой метод широко используется при игре в карты. Идея метода: по очереди из массива
извлекается один элемент и переставляется в нужное место массива. Очевидно, что
алгоритм сортировки в общем виде модно отобразить так:
20
Алгоритмы и структуры данных Теоретические сведения
В таблице красным цветом выделен элемент, для которого производится поиск места, а
серым цветом – передвигаемая часть массива.
Как видно из примера, при поиске места рассматривается только левая часть массива (от
текущего элемента).
Очевидно, что при построении алгоритма для сортировок по убыванию необходимо вместо
минимального элемента осуществлять поиск максимального и т.д.
21