Открыть Электронные книги
Категории
Открыть Аудиокниги
Категории
Открыть Журналы
Категории
Открыть Документы
Категории
АЛГОРИТМЫ И СТРУКТУРНОЕ
ПРОГРАММИРОВАНИЕ
Понятие и свойства алгоритма
Язык блок-схем
Структурное программирование
Основные структуры алгоритмов
Язык проектирования программ (псевдокод)
Рекурсивный алгоритм
Алгоритмы поиска
Алгоритмы сортировки
Объектно-ориентированное программирование
(принципы, внутренность объекта, иерархия классов)
ПОНЯТИЕ И СВОЙСТВА АЛГОРИТМА
Алгоритм - формальное описание последовательности действий, которое
необходимо выполнить для решения задачи.
Процесс – обработка
Z=X+5 Имя Предопределенный
данных (вычисление,
процесс – подпрограмма
пересылка и т.п.)
Терминатор – начало и
Начало конец вычислительного Комментарий
процесса
Бесконечный цикл
Простая программа
Недостижимый фрагмент
Гл. 4. Алгоритмы и структурное программирование 5
ОСНОВНЫЕ СТРУКТУРЫ АЛГОРИТМОВ И ИХ ПРОИЗВОДНЫЕ
Следование –
последовательное 2
выполнение
действий (блоков).
3
постусловием) – предусловием) –
тело цикла (блок 2) 2
пока не будет нару- Нет
выполняется до тех шено условие (блок 3
Да Нет Нет
3 3 I
Да I1 I2 Ii In
1 2 1
1 2 i n
первая операция
Следование. Записываются последовательно вторая операция
операции одна под другой. Для отделения do
части последовательности операторов третья операция
используются операторы do…end-do. end-do
do
Цикл-До. Операции структуры, включая do-часть
модификацию until-теста, выполняются один until
или более раз до тех пор, пока until-тест не until-тест
примет значение истина. end-do
while
Цикл-Пока. Do-часть выполняется, пока while- while-тест
тест имеет значение истина. Do-часть do
модифицирует условие while-теста для того, do-часть
чтобы окончить вычисления. end-do
if case
if-тест список 1
then case-часть 1
then-часть список 2
else case-часть 2
else-часть …
end-if список n
case-часть n
else
Разветвление.
else-часть
Если…то…иначе.
end-case
Множественный выбор.
Гл. 4. Алгоритмы и структурное программирование 10
ПРИМЕР АЛГОРИТМА
Вычисление суммы квадратов первых N целых чисел Начало
с использованием псевдокода и языка блок-схем
𝑁
Ввод N
𝑆 = 𝑖 2 = 12 + 22 + ⋯ + 𝑁 2
𝑖=1
S=0
i=1
Номер = 1
do i=i+1
Сумма = Сумма + Номер2
Увеличить Номер на единицу Нет
until i>N
Номер > Число слагаемых
Да
end-do
Напечатать Сумму Печать S
Конец
ТИПЫ ДАННЫХ
ПРОСТЫЕ СТРУКТУРИРОВАННЫЕ
(скалярные) (структуры)
Начало
Fact(I)
Вычисление Ввод N
факториала N с Да Нет
I>1
использованием
F = Fact(N)
рекурсивной
функции Fact = Fact = 1
Печать F I*Fact(I-1)
Конец Возврат
V
7.8 -6.3 5.8 1.2 8.4 4.5
K=2 J=6
Средняя вычислительная сложность – 1 7.8 -6.3 5.8 1.2 8.4 4.5
О(N log2N). Важное значение имеет
K=3 J=6
выбор значения порогового
2 7.8 -6.3 5.8 1.2 8.4 4.5
элемента. В частности, если исходный
массив близок к отсортированному, K=4 J=6
то при выборе пороговым элементом 3 7.8 -6.3 5.8 1.2 8.4 4.5
первого элемента (как в примере)
вычислительная сложность K=5 J=6
алгоритма будет О(N2). Желательно, 4 7.8 -6.3 5.8 1.2 8.4 4.5
чтобы пороговый элемент в
конечном итоге разделил массив J=5
K=5
приблизительно на две равные части.
7.8 -6.3 5.8 1.2 4.5 8.4
массив А(1..N), то его можно 1 7.8 -6.3 5.8 1.2 8.4 4.5
рассматривать как совокупность N
+ + +
отсортированных массивов, каждый из
которых состоит из одного элемента. 1 2 3
Первый шаг – слияние массивов попарно, 2 -6.3 7.8 1.2 5.8 4.5 8.4
затем объединение пар в четверки и т.д.
+
1 2
Средняя вычислительная сложность
алгоритма – О(N log2N). Требуется 3 -6.3 1.2 5.8 7.8 4.5 8.4
дополнительный массив, содержащий N
+
элементов.
1
Название Содержание
Конструктор Создает и инициализирует объект.
Деструктор Освобождает объект, т.е. разрушает его.
Модификатор Изменяет состояние объекта.
Селектор Считывает состояние объекта без изменения этого
состояния.
Итератор Организует доступ ко всем частям объекта в строго
определенной последовательности.
ОкружностьА Маркер
…
Поля Методы
• Позиция 15,20 • ПероВверх
• Размер 5 • ПероВниз
Методы • Черный
• Форма • Белый
- Маркер ПероВверх • СдвигК : X,Y
- Маркер СдвигК : Позиция • СдвигНа : Z
- Маркер СдвигНа : Размер • ЧертитьДугу : R,
- Маркер ПероВниз • ...
- Маркер ЧертитьДугу : Размер,360
• Высветить
- Маркер Черный
- Себе Форма Сообщения (операции)
• Стереть объекту ОкружностьА:
- Маркер Белый ОкружностьА.Высветить
- Себе Форма
ОкружностьА.Стереть
Класс: Объект
МногоугольникА
Класс: Многоугольник
Суперкласс: Дисплейный объект
Поля: Позиция
Стороны Класс: Прямоугольник
Углы Суперкласс: Многоугольник
Методы: Форма
Высветить Поля: Длинная сторона
Стереть Короткая сторона
Методы: Форма
Увеличение: Процент