
теория алгоритмы / алгоритмизация и программирование
.docАлгоритмизация и программирование
План:
-
Алгоритм и программа.
-
Свойства алгоритма.
-
Виды алгоритмов.
-
Способы представления алгоритмов.
-
Этапы решения задач на ЭВМ.
1. Алгоритм и программа.
Алгоритм - это последовательность действий, которые необходимо выполнить, чтобы решить поставленную задачу.
Программа же представляет собой набор команд на языке, понятном исполнителю, реализующий некоторый алгоритм.
К сожалению, любой язык высокого уровня удобен только человеку, пишущему или отлаживающему программу, но совершенно непонятен компьютеру.
Программирование (programming) - теоретическая и практическая деятельность, связанная с созданием программ.
Для перевода программы на язык низкого уровня, понятный исполнителю-компьютеру, существуют специальные программы-переводчики - компиляторы. Результатом работы компилятора (иными словами, результатом процесса компиляции) является исполняемый код, который записывается в файл с расширением .exe.
Компиляция, отладка и тестирование
Никто не станет спорить с тем, что неграмотно написанный текст очень сложно, а порой и вовсе невозможно правильно перевести на другой язык. Это верно для естественных языков, это верно и для языков программирования. Но если переводчик-человек иногда может как-то догадаться, что же именно хотел сказать автор неграмотного текста, то программе-переводчику такое не по силам. Любой компилятор требует, чтобы программа, подаваемая ему для перевода, была абсолютно правильно составлена.
В языке программирования, как и в любом другом языке, существуют синтаксис - правила записи его конструкций - и семантика - смысл его конструкций. Компилятор проверяет только синтаксис. Поиском же семантических ошибок занимается программист в процессе тестирования и отладки своей программы
Отладка - это поиск и исправление ошибок в программе.
Тестирование - это составление специальных наборов входных и выходных данных (тестов), а затем исполнение программы и проверка полученных результатов в поисках возможных семантических или логических ошибок.
Чтобы уменьшить затраты времени и сил на отладку, нужно писать синтаксически и логически правильные программы.
2. Свойства алгоритма:
-
массовость (алгоритм должен уметь решать не одну конкретную задачу, а целый класс однотипных задач);
-
результативность (алгоритм должен выдавать результат своей работы);
-
определенность - детерменированность (на каждом шаге выполнения алгоритма исполнитель должен точно знать, какой шаг будет следующим).
-
дискретность (алгоритм должен быть разделен на шаги)
3. Виды алгоритмов:
1. Линейный – все вычисления выполняются в естественном порядке и не зависят от промежуточного результата.
2. Условный (ветвление) – вычислительный процесс в котором в зависимости от данных, результатов, желанию пользователя вычисление идет по тому или иному пути
3. Циклический – алгоритм, многократно выполняющий одну и ту же последовательность операций. Циклический алгоритм повторяется до тех пор, пока не будет достигнуто некоторое условие (условие выхода из цикла)
4. Способы представления алгоритмов:
1. словесный
2. с помощью формулы
3. графический (блок-схема)
4. псевдокоды
5. операторные схемы (табличный)
6. язык программирования.
Блок-схемы:
Ввод, вывод данных
Блок расчета, присвоения переменным значения
да
нет
Блок условия
Отображает начало, конец алгоритма
Разрыв в записи
алгоритма
5. Этапы решения задачи на ЭВМ:
Решение задач на компьютере включает в себя следующие основные этапы, часть из которых осуществляется без участия компьютера.
1. Постановка задачи:
• сбор информации о задаче;
• формулировка условия задачи;
• определение конечных целей решения задачи;
• определение формы выдачи результатов;
• описание данных (их типов, диапазонов величин, структуры и т. п.).
2. Анализ и исследование задачи, модели:
• анализ существующих аналогов;
• анализ технических и программных средств;
• разработка математической модели;
• разработка структур данных.
3. Разработка алгоритма:
• выбор метода проектирования алгоритма;
• выбор формы записи алгоритма (блок-схемы, псевдокод и др.);
• выбор тестов и метода тестирования;
• проектирование алгоритма.
4. Программирование:
• выбор языка программирования;
• уточнение способов организации данных;
• запись алгоритма на выбранном языке
программирования.
5. Тестирование и отладка:
• синтаксическая отладка;
• отладка семантики и логической структуры;
• тестовые расчеты и анализ результатов тестирования;
• совершенствование программы.
6. Анализ результатов решения задачи и уточнение в случае необходимости математической модели с повторным выполнением этапов 2-5.
7. Сопровождение программы:
• доработка программы для решения конкретных задач;
• составление документации к решенной задаче, к математической модели, к алгоритму, к программе, к набору тестов, к использованию.