Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основы алгоритмизации и программирования.doc
Скачиваний:
93
Добавлен:
25.12.2018
Размер:
170.5 Кб
Скачать

Основные этапы компьютерного решения задач

  1. Постановка задачи. Основное требование к постановке задачи – достаточное количество информации для решения задачи. Очень часто постановка задачи выполняется не программистом, а некоторым Заказчиком. Программист является Исполнителем заказа. От него требуется добиться от Заказчика полной информации о решаемой задаче.

  2. Моделирование и формализация задачи.

Формализация — это замена реального объекта или процесса его формальным описанием, т. е. его информационной моделью.

Информационная модель — это описание объекта моделирования.

Как правило, в результате формализации создается математическая модель предметной области.

Модель — упрощенное подобие реального объекта или процесса, который отражает существенные особенности изучаемого реального объекта, явления или процесса.

Моделирование исследование объектов познания (предметов, процессов или явлений) путем построения и изучения их моделей.

  1. Разработка алгоритма - представляет собой реализацию идеи решения задачи.

Основные принципы разработки алгоритма:

  • Принцип поэтапной детализации алгоритма (другое название — "проектирование сверху-вниз"). Этот принцип предполагает первоначальную разработку алгоритма в виде укрупненных блоков (разбиение задачи на подзадачи) и их постепенную детализацию.

  • Принцип "от главного к второстепенному", предполагающий составление алгоритма, начиная с главной конструкции.

  • Принцип структурирования, т.е. использования только типовых алгоритмических структур при построении алгоритма.

  1. Программирование алгоритма. Программирование является формальной записью алгоритма средствами языка программирования. Программа — это детальное и законченное описание алгоритма средствами языка программирования. Процесс выполнения программы называется вычислительным процессом.

  1. Тестирование программы – процесс поиска ошибок в программе. Для этого либо используют специальные средства отладки программ, имеющиеся в интегрированной среде языка программирования, либо временно добавляют в программу команды вывода промежуточных значений.

  2. Отладка программы – процесс устранения ошибок

  3. Документирование программы – подготовка документов, сопровождающих программный продукт. Эти документы описывают то, как работает программа и/или то, как её использовать.

  4. Эксплуатация программы, интерпретация и анализ результатов. В сложных программах может быть недостаточно тестирования для устранения всех ошибок. Очень час-то они обнаруживаются на стадии эксплуатации заказчиком. 

Языки программирования Классификация языков программирования

В современной информатике существуют два основных направления развития языков программирования: процедурное и непроцедурное.

Рис. 1. Общая классификация языков программирования

Процедурные (алгоритмические) языки предназначены для однозначного описания алгоритмов; для задачи процедурные языки требуют в той или иной форме явно записать процедуру ее решения.

Среди процедурных языков выделяют в свою очередь структурные и операционные языки. В структурных языках одним оператором записываются целые алгоритмические структуры: ветвления, циклы и т.д. В операционных языках для этого используются несколько операций.

Широко распространены следующие структурные языки: Паскаль, Си, Ада, ПЛ/1.

Среди операционных известны Фортран, Бейсик, Фокал.

2. Непроцедурные (декларативные) языки программирования ориентированы не на разработку алгоритма решения задачи, а на систематическое и формализованное описание задачи с тем, чтобы решение следовало из составленного описания.

К непроцедурному программированию относятся функциональные и логические языки.

В функциональных языках программа описывает вычисление некоторой функции. Один из основных элементов функциональных языков - рекурсия. Присваивания и циклов в классических функциональных языках нет.

Примеры функциональных языков: Haskell –чистый функциональный, LISP (Джон МакКарти), APL — язык программирования, оптимизированный для работы с массивами.

В логических языках программа вообще не описывает действий. Она задает данные и соотношения между ними. После этого системе можно задавать вопросы. Машина перебирает известные и заданные в программе данные и находит ответ на вопрос. Порядок перебора не описывается в программе, а неявно задается самим языком.

Классическим языком логического программирования считается Пролог. Построение логической программы вообще не требует алгоритмического мышления, программа описывает статические отношения объектов, а динамика находится в механизме перебора и скрыта от программиста.

Языки логического программирования, в особенности Пролог, широко используются в системах искусственного интеллекта.

  1. Можно выделить еще один класс языков программирования - объектно-ориентированные языки высокого уровня. На таких языках не описывают подробной последовательности действий для решения задачи, хотя они содержат элементы процедурного программирования. Объектно-ориентированные языки, благодаря богатому пользовательскому интерфейсу, предлагают человеку решить задачу в удобной для него форме.

В основе которых лежит понятие объекта, сочетающего в себе данные и действия над нами. Программа на объектно-ориентированном языке, решая некоторую задачу, по сути описывает часть мира, относящуюся к этой задаче. Описание действительности в форме системы взаимодействующих объектов естественнее, чем в форме взаимодействующих процедур

Примером такого языка может служить язык программирования визуального общения Object Pascal. К наиболее современным объектно-ориентированным языкам программирования относятся C++ и Java.

Всякий язык программирования имеет три основные составляющие: алфавит, синтаксис и семантику.

Алфавит языка программирования – совокупность допустимых символов (включает буквы, символы и спец. знаки).

Синтаксис языка программирования – это набор правил построения конструкций языка (совокупность правил записи, которым должна удовлетворять любая программа).

Семантика языка программирования – это совокупность значений (смысл) всех конструкций языка.

Во всяком языке программирования определены способы организации данных и способы организации действий над данными.