ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 10.07.2024
Просмотров: 18
Скачиваний: 0
Тема 3 «Понятие и свойства алгоритма»
Понятие алгоритма |
|
Алгоритм – это четкое, ясное, законченное |
предписание (инструкции) |
исполнителю совершать те или иные действия направленные на решение поставленной задачи. Алгоритм – есть описание способа решения задачи.
Свойства алгоритма:
Дискретность- вся совокупность инструкций может быть разбита на некоторое число системных блоков (шаги).
Определенность - различные пользователи находящихся в разных местах но с
одинаковым набором начальных данных следуя одному и тому же алгоритму получат один и тот же результат.
Конечность- совокупность инструкций должна быть конечной (конечное число шагов).
Понятность- алгоритм должен быть записан так, чтобы исполнитель его понял.
Массовость- алгоритм должен быть успешно применим некому набору начальных данных.
Эффективность – алгоритм должен быть выполнен за конечное (разумное)
время
Тема 3 «Понятие и свойства алгоритма»
Типы алгоритмов
Линейный алгоритм - совокупность всех инструкций выполняющихся последовательно одна за одной; инструкции выполняются в том порядке как записаны.
Алгоритмы с ветвлением - характерно наличие этапа или этапов, на котором пользователь должен выбирать ход дальнейших действий.
Циклические алгоритмы - характерно наличие этапов, которые в процессе выполнения алгоритма повторяются.
На практике в чистом виде они не встречаются. Обычно они комбинируются в различных последовательностях.
Тема 3 «Понятие и свойства алгоритма»
Методы проектирования алгоритмов и программ
|
методы |
Степень автоматизации |
Методология процесса |
Неавтоматизированное проектирование |
Структурное проектирование |
Автоматизированное проектирование |
Информационное моделирование |
(CASE –технология) |
предметной области |
|
Объектно-ориентированное проектирование |
Тема 3 «Понятие и свойства алгоритма»
Структурное проектирование
Его основу составляет последовательная декомпозиция, целенаправленное
структурирование алгоритма на отдельные составляющие
Типичными методами структурного проектирования являются:
•Нисходящее проектирование, кодирование и тестирование программ;
•Модульное программирование;
•Структурное программирование
Основано на модульной структуре программного продукта и типовых управляющих структурах алгоритмов обработки данных
(«Последовательность», «Альтернатива», «Цикл»)
Предполагает компоновку решения задачи из модулей – логически взаимосвязанной совокупности функциональных элементов,
оформленных в виде самостоятельных программных объектов
Предполагает последовательное разложение общей задачи на простые функциональные элементы («сверху – вниз»)
Тема 3 «Понятие и свойства алгоритма»
Структурное проектирование
Косновным принципам структурного проектирования относят:
•разработка алгоритмов (программ) методом «сверху-вниз»;
•пошаговая детализация;
•отказ от применения оператора безусловного перехода GOTO («программирование без GOTO»)
•детальная логика обработки данных программных модулей
•определение структуры и декомпозиции целей, функций управления и приложений
Тема 3 «Понятие и свойства алгоритма»
Информационное моделирование предметной области
Его основу составляет положение об определяющей роли данных при проектировании алгоритмов и программ.
•Информационный анализ предметных областей («бизнес-областей»);
•Информационное моделирование (построение взаимосвязанных моделей данных);
•Системное проектирование функций обработки данных;
•Детальное конструирование процедур обработки данных.
Тема 3 «Понятие и свойства алгоритма»
Объектно - ориентированное проектирование
Подход основан на использовании следующих базовых понятий:
•Объект (совокупность свойств определенных сущностей и методов их обработки)
•Свойство объекта (характеристики объекта и его параметров);
•Метод обработки (программа действий над объектом или его свойствами);
•Событие (характеристика изменения состояния объекта);
•Класс объектов (совокупность объектов, характеризующихся общностью применяемых
методов обработки или свойств).
Тема 3 «Понятие и свойства алгоритма»
Объектно - ориентированное проектирование
Важнейшие принципы объектно – ориентированного проектирования:
•инкапсуляция (замыкание) свойств данных и программ в объекте
•наследование
•полиморфизм
Подразумевает способность объекта реагировать на запрос сообразно своему типу, при этом одно и то же имя метода может использоваться
для различных классов объектов
Подразумевает наследование данных и методов обработки объектов исходного класса при образовании на его основе подклассов, позволяя
создавать иерархию классов
Скрытие полей объекта с целью обеспечения доступа к ним только посредством методов класса (т.е. скрытие деталей, несущественных для использования объекта)
Тема 3 «Понятие и свойства алгоритма»
Способы задания алгоритмов
Словесный способ (человеческий язык) – не воспринимается ЭВМ;
Машинный язык (единственный способ понятный машине) – представляет собой запись в виде совокупности двоичных кодов;
Словесно-формульный способ (с помощью алгоритмического языка
или языка программирования);
С помощью блок – схем (гибкий и наглядный способ описания алгоритма с помощью специальных значков);
Тема 3 «Понятие и свойства алгоритма»
Пример Составить блок-схему алгоритма расчета площади трапеции
Тема 3 «Понятие и свойства алгоритма»
Составить блок-схему алгоритма расчета функции y(x) при заданном значении х, если
ìx + 5 , |
x > 10 |
||
ï |
2 |
, |
5 < x £ 10 |
y = í x |
|
||
ï |
|
|
x £ 5 |
îSin x, |
Тема 3 «Понятие и свойства алгоритма»
Языки программирования
Относятся к искусственным языкам. Обладают фиксированным набором «слов», характеризуются «жесткими» правилами построения конструкций языка и их использования.
Тема 3 «Понятие и свойства алгоритма»
Языки программирования высокого уровня
|
|
Исходный текст |
|
|
|
|
|
двоичный |
|
|
|
алгоритма |
|
|
|
|
|
(«машинный») код» |
|
Program TASK (input, output); |
|
|||
|
|
(«исходный код» |
|
|
Var x,y: real; |
|
|
||
|
|
Begin |
|
|
|
|
01010100100100101 |
Clrscr: |
|
|
|
|
00100100010001001 |
|
|
|
|
11010101010010100 |
|
Writeln(’Программа расчета функции); |
|
|
|
|
|
|
|
|
|
01101010010010001 |
|
Writeln(’Укажите значение аргумента’); |
|
|
|
Транслятор |
|
|
|
|
00010010101011100 |
||
Write(’x = ’); read(x); |
|
|
|
|
10101010101010101 |
If x > 10 then y:=x + 5 else |
|
|
|
|
10101010101010100 |
If x > 5 then y:=x * x else y:= sin(x); |
|
|
|
|
01001001000101001 |
Writeln(’Функция равна, y = ’,y:6:4); |
|
|
01000010000100011 |
||
|
|
|
|||
Repeat Until Keypressed; |
|
|
|
||
End. |
|
|
|