Файл: Основы алгоритмизации.doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 10.01.2024

Просмотров: 40

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.


Исполнимый код — это законченная программа, которую можно запустить на любом компьютере, где установлена операционная система, для которой эта программа создавалась. Как правило, итоговый файл имеет расширение .ЕХЕ или .СОМ.

4. Библиотеки функций — для подключения стандартных функций к программе. Такие функции содержатся в библиотеках - файлах со стандартным расширением .LIB или .TPL, которые поставляются вместе с компилятором

5. Отладчик (DEBUGGER) – инструментальное средство для поиска и исправления ошибок.

Позволяет анализировать работу программы во время ее выполнения, дает возможность выполнить отдельные операторы по шагам.
Для автоматизации процесса создания программ используются системы программирования. Системой программирования называется совокупность языковых и программных средств, предназначенных для написания, тестирования и отладки программ для ЭВМ.

Современные системы программирования включают в себя все указанные компоненты и называются интегрированными системами.

Исходный текст программы можно получить без записи его вручную в текстовом редакторе. Существуют системы визуального программирования — RAD-среды (Rapid Application Development), которые, не исключая возможности записи программы вручную, позволяют создавать текст программы автоматически, путем манипуляций со стандартными элементами управления, включенными в RAD-среду. Поэтому для RAD-среды понятие «программирование» часто заменяют понятием «проектирование».

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





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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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

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

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



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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


Уровни языков программирования

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

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

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

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

Языки программирования высокого уровня значительно ближе и понятнее человеку, нежели компьютеру. Языки программирования высокого уровня (ЯПВУ) являются машинно-независимыми языками.

Особенности компьютерных архитектур не учитываются, поэтому программы, написанные на языках высокого
уровня легко переносятся на другие платформы, для которых создан транслятор этого языка.

Поколения языков программирования

1-поколение: языки, созданные в нач. 50-х годов (первый язык ассемблера: одна инструкция – одна строка)

2-е поколение: кон.50-нач 60-х гг. – разработан символический ассемблер, появилось понятие переменной (полноценный язык программирования).

3-е поколение: 60-е гг. – появились универсальные языки высокого уровня, которые применяются и по сей день. (Фортран, Алгол, COBOL).

4-е поколение: с нач.70-х гг. – по сей день: языки высокого уровня, ориентированные на специализированные области применения и предназначенные для реализации крупных проектов (Pascal, C++, Perl)

5-е поколение: сер. 90-х гг.: системы автоматич. создания прикладных программ с помощью визуальных средств разработки, без знания программирования. (Си Шарп, XML)