Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

теория алгоритмы / алгоритмизация и программирование

.doc
Скачиваний:
54
Добавлен:
16.03.2015
Размер:
45.57 Кб
Скачать

Алгоритмизация и программирование

План:

  1. Алгоритм и программа.

  2. Свойства алгоритма.

  3. Виды алгоритмов.

  4. Способы представления алгоритмов.

  5. Этапы решения задач на ЭВМ.

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. Сопровождение программы:

• доработка программы для решения конкретных задач;

• составление документации к решенной задаче, к математической модели, к алгоритму, к программе, к набору тестов, к использованию.

3