Тема 15. Этапы подготовки и решения задач на ЭВМ

advertisement
Тема 15. Этапы подготовки и
решения задач на ЭВМ
В процессе подготовки и решения на ЭВМ научно инженерных задач можно выделить следующие
этапы:







постановка задачи;
математическое описание задачи;
выбор и обоснование метода решения;
алгоритмизация вычислительного
процесса;
составление программы;
отладка программы;
решение задачи на ЭВМ и анализ
результатов.
Постановка задачи



На данном этапе формулируется цель
решения задачи и подробно описывается
ее содержание.
Анализируются характер и сущность всех
величин, используемых в задаче, и
определяются условия, при которых она
решается.
Корректность постановки задачи
является важным моментом, так как от
нее в значительной степени зависят
другие этапы.
Математическое описание
задачи


Настоящий этап характеризуется
математической формализацией задачи,
при которой существующие соотношения
между величинами, определяющими
результат, выражаются посредством
математических формул.
Так формируется математическая модель
явления с определенной точностью,
допущениями и ограничениями.
Математическая модель должна удовлетворять по
двум требованиям:
реалистичности
 реализуемости.
 Под реалистичностью понимается
правильное отражение моделью наиболее
существенных черт исследуемого явления.
 Реализуемость достигается разумной
абстракцией, отвлечением от
второстепенных деталей, чтобы свести
задачу к проблеме с известным решением.

Алгоритмизация
вычислительного процесса
На данном этапе составляется алгоритм
решения задачи согласно действиям,
задаваемым выбранным методом
решения.
 Процесс обработки данных разбивается
на отдельные относительно
самостоятельные блоки, и
устанавливается последовательность
выполнения блоков. Разрабатывается
блок-схема алгоритма.

Составление программы
При составлении программы алгоритм
решения задачи переводится на
конкретный язык программирования.
 Для программирования обычно
используются языки высокого уровня,
поэтому составленная программа
требует перевода ее на машинный язык
ЭВМ.
 После такого перевода выполняется уже
соответствующая машинная программа.

Решение задачи на ЭВМ и
анализ результатов



После отладки программы ее можно
использовать для решения прикладной
задачи.
При этом обычно выполняется
многократное решение задачи на ЭВМ
для различных наборов исходных
данных.
Получаемые результаты
интерпретируются и анализируются
специалистом или пользователем,
поставившим задачу.
Интерпретатор — это программа, которая
получает исходную программу и по мере
распознавания конструкций входного языка
реализует действия, описываемые этими
конструкциями.
Транслятор — это программа, которая
принимает исходную программу и
порождает на своем выходе программу,
записываемую на объектном языке
программирования (объектную
программу).
Стили программирования
Процедурное программирование
 Функциональное программирование
 Объектно-ориентированное
программирование
 Логическое программирование

Процедурное (императивное)
программирование является отражением
архитектуры традиционных ЭВМ, которая
была предложена фон Нейманом в 40-х годах.
Теоретической моделью процедурного
программирования служит алгоритмическая
система под названием «машина Тьюринга».
Программа на процедурном языке программирования
состоит из последовательности операторов
(инструкций), задающих процедуру решения задачи.
Основным является оператор присваивания,
служащий для изменения содержимого областей
памяти. Концепция памяти как хранилища значений,
содержимое которого может обновляться
операторами программы, является фундаментальной
в императивном программировании.
Сущность функционального (аппликативного)
программирования определена А. П. Ершовым
как «... способ составления программ, в
которых единственным действием является
вызов функции, единственным способом
расчленения программы на части является
введение имени для функции, а единственным
правилом композиции — оператор
суперпозиции функции. Никаких ячеек памяти,
ни операторов присваивания, ни циклов, ни,
тем более, блок-схем, ни передачи
управления».
Программа представляет собой совокупность
описаний функций и выражения, которые
необходимо вычислить. Данное выражение
вычисляется посредством редукции, то есть
серии упрощений, до тех пор, пока это
возможно по следующим правилам: вызовы
базовых функций заменяются
соответствующими значениями; вызовы не
базовых функций заменяются их телами, в
которых параметры замещены аргументами.
Объектно-ориентированное
программирование представляет собой метод
программирования, который весьма близко
напоминает наше поведение. Оно является
естественной эволюцией более ранних
нововведений в разработке языков
программирования.
В основе объектноориентированного стиля
программирования лежит
понятие объекта, а суть его
выражается формулой: «объект данные + процедуры».
Для описания объектов служат классы.
Класс определяет свойства и методы
объекта, принадлежащего этому классу.
Соответственно, любой объект можно
определить как экземпляр класса.
Объектно-ориентированный язык программирования
характеризуется тремя основными свойствами:



Инкапсуляция. Комбинирование записей с процедурами и
функциями, манипулирующими полями этих записей,
формирует новый тип данных - объект.
Наследование. Определение объекта и его дальнейшее
использование для построения иерархии порожденных
объектов с возможностью для каждого порожденного
объекта, относящегося к иерархии, доступа к коду и данным
всех порождающих объектов.
Полиморфизм. Присваивание действию одного имени,
которое затем совместно используется вниз и вверх по
иерархии объектов, причем каждый объект иерархии
выполняет это действие способом, именно ему подходящим.
К наиболее современным
объектно-ориентированным
языкам программирования
относятся C++ и Java.
Новую область — логическое, или
реляционное программирование, — открыло
появление языка PROLOG (Пролог)
(PROgramming in LOGic — программирование
в терминах логики). Этот язык был создан
французским ученым А. Кольмероэ в 1973 году.
В настоящее время известны и другие языки,
однако наиболее развитым и
распространенным языком логического
программирования является именно Пролог.
Так, имеется свыше 15 различных его
реализаций на ПЭВМ.
Языки логического программирования
характеризуются:




высоким уровнем;
строгой ориентацией на символьные
вычисления;
возможностью инверсных вычислений, то
есть переменные в процедурах не
делятся на входные и выходные;
возможной логической неполнотой,
поскольку зачастую невозможно
выразить в программе определенные
логические соотношения, а также
невозможно получить из программы все
выводы правильные.
Самостоятельная работа № 7
1.
2.
3.
Для каких целей и как используется
условное форматирование?
Какими способами можно выполнять
сортировку списка?
Как отменить фильтрацию списка?
Download