
- •Основы алгоритмизации Понятие алгоритма и его свойства. Способы записи алгоритмов.
- •Общая форма Записи алгоритма на псевдокоде
- •Общая форма Записи алгоритма на алгоритмическом языке:
- •Классификация алгоритмов
- •Создание и выполнение программ Трансляция программ и сопутствующие процессы. Компиляторы и интерпретаторы.
- •Средства создания программ
- •Основные этапы компьютерного решения задач
- •Языки программирования Классификация языков программирования
- •Уровни языков программирования
- •Поколения языков программирования
Основные этапы компьютерного решения задач
-
Постановка задачи. Основное требование к постановке задачи – достаточное количество информации для решения задачи. Очень часто постановка задачи выполняется не программистом, а некоторым Заказчиком. Программист является Исполнителем заказа. От него требуется добиться от Заказчика полной информации о решаемой задаче.
-
Моделирование и формализация задачи.
Формализация — это замена реального объекта или процесса его формальным описанием, т. е. его информационной моделью.
Информационная модель — это описание объекта моделирования.
Как правило, в результате формализации создается математическая модель предметной области.
Модель — упрощенное подобие реального объекта или процесса, который отражает существенные особенности изучаемого реального объекта, явления или процесса.
Моделирование – исследование объектов познания (предметов, процессов или явлений) путем построения и изучения их моделей.
-
Разработка алгоритма - представляет собой реализацию идеи решения задачи.
Основные принципы разработки алгоритма:
-
Принцип поэтапной детализации алгоритма (другое название — "проектирование сверху-вниз"). Этот принцип предполагает первоначальную разработку алгоритма в виде укрупненных блоков (разбиение задачи на подзадачи) и их постепенную детализацию.
-
Принцип "от главного к второстепенному", предполагающий составление алгоритма, начиная с главной конструкции.
-
Принцип структурирования, т.е. использования только типовых алгоритмических структур при построении алгоритма.
-
Программирование алгоритма. Программирование является формальной записью алгоритма средствами языка программирования. Программа — это детальное и законченное описание алгоритма средствами языка программирования. Процесс выполнения программы называется вычислительным процессом.
-
Тестирование программы – процесс поиска ошибок в программе. Для этого либо используют специальные средства отладки программ, имеющиеся в интегрированной среде языка программирования, либо временно добавляют в программу команды вывода промежуточных значений.
-
Отладка программы – процесс устранения ошибок
-
Документирование программы – подготовка документов, сопровождающих программный продукт. Эти документы описывают то, как работает программа и/или то, как её использовать.
-
Эксплуатация программы, интерпретация и анализ результатов. В сложных программах может быть недостаточно тестирования для устранения всех ошибок. Очень час-то они обнаруживаются на стадии эксплуатации заказчиком.
Языки программирования Классификация языков программирования
В современной информатике существуют два основных направления развития языков программирования: процедурное и непроцедурное.
Рис. 1. Общая классификация языков программирования
Процедурные (алгоритмические) языки предназначены для однозначного описания алгоритмов; для задачи процедурные языки требуют в той или иной форме явно записать процедуру ее решения.
Среди процедурных языков выделяют в свою очередь структурные и операционные языки. В структурных языках одним оператором записываются целые алгоритмические структуры: ветвления, циклы и т.д. В операционных языках для этого используются несколько операций.
Широко распространены следующие структурные языки: Паскаль, Си, Ада, ПЛ/1.
Среди операционных известны Фортран, Бейсик, Фокал.
2. Непроцедурные (декларативные) языки программирования ориентированы не на разработку алгоритма решения задачи, а на систематическое и формализованное описание задачи с тем, чтобы решение следовало из составленного описания.
К непроцедурному программированию относятся функциональные и логические языки.
В функциональных языках программа описывает вычисление некоторой функции. Один из основных элементов функциональных языков - рекурсия. Присваивания и циклов в классических функциональных языках нет.
Примеры функциональных языков: Haskell –чистый функциональный, LISP (Джон МакКарти), APL — язык программирования, оптимизированный для работы с массивами.
В логических языках программа вообще не описывает действий. Она задает данные и соотношения между ними. После этого системе можно задавать вопросы. Машина перебирает известные и заданные в программе данные и находит ответ на вопрос. Порядок перебора не описывается в программе, а неявно задается самим языком.
Классическим языком логического программирования считается Пролог. Построение логической программы вообще не требует алгоритмического мышления, программа описывает статические отношения объектов, а динамика находится в механизме перебора и скрыта от программиста.
Языки логического программирования, в особенности Пролог, широко используются в системах искусственного интеллекта.
-
Можно выделить еще один класс языков программирования - объектно-ориентированные языки высокого уровня. На таких языках не описывают подробной последовательности действий для решения задачи, хотя они содержат элементы процедурного программирования. Объектно-ориентированные языки, благодаря богатому пользовательскому интерфейсу, предлагают человеку решить задачу в удобной для него форме.
В основе которых лежит понятие объекта, сочетающего в себе данные и действия над нами. Программа на объектно-ориентированном языке, решая некоторую задачу, по сути описывает часть мира, относящуюся к этой задаче. Описание действительности в форме системы взаимодействующих объектов естественнее, чем в форме взаимодействующих процедур
Примером такого языка может служить язык программирования визуального общения Object Pascal. К наиболее современным объектно-ориентированным языкам программирования относятся C++ и Java.
Всякий язык программирования имеет три основные составляющие: алфавит, синтаксис и семантику.
Алфавит языка программирования – совокупность допустимых символов (включает буквы, символы и спец. знаки).
Синтаксис языка программирования – это набор правил построения конструкций языка (совокупность правил записи, которым должна удовлетворять любая программа).
Семантика языка программирования – это совокупность значений (смысл) всех конструкций языка.
Во всяком языке программирования определены способы организации данных и способы организации действий над данными.