Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курс лекций по информатике Ч.2.doc
Скачиваний:
21
Добавлен:
03.05.2019
Размер:
3.42 Mб
Скачать

Контрольные вопросы

  1. Что такое системы программирования и к какому классу программ они относятся?

  2. Что входит в состав систем программирования?

  3. На каком языке программирования создавались первые программы?

  4. На какие языки подразделяются процедурные языки?

  5. Охарактеризуйте языки низкого уровня.

  6. Какой язык относится к языку низкого уровня?

  7. Достоинства языков низкого уровня.

  8. Охарактеризуйте языки высокого уровня.

  9. Достоинства языков высокого уровня.

  10. Приведите примеры языков высокого уровня.

  11. Для чего предназначены трансляторы?

  12. Чем отличается компилятор от интерпретатора?

  13. Недостатки интерпретации (как вид транслятора).

  14. Что представляет собой процесс компиляции программы?

  15. Какие действия выполняются при компиляции?

  16. Чем отличается загрузочный модуль от объектного?

  17. Чем отличается процедурное программирование от непроцедурного?

  18. Какие виды программирования относятся к непроцедурному программированию?

  19. Особенность декларативных языков.

  20. Охарактеризуйте кратко языки программирования: Фортран, Бейсик, Паскаль, Кобол.

  21. Охарактеризуйте кратко языки программирования: Ада, Си, Си++, Delphi, Java.

  22. Приведите примеры объектно-ориентированных языков.

  23. К какому классу языков относится язык Лисп?

  24. К какому классу языков относится язык Пролог?

Тема 5. Методологии программирования

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

В эпоху 1-го и 2-го поколений программы составлялись из команд (машинный язык), непосредственно или почти непосредственно исполнявшихся компьютером (процессором). Такой подход в программировании, ориентированный на непосредственно выполняемые компьютером операции, можно назвать операциональным.

Структурное программирование

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

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

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

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

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

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

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

Эта структура называется также «ЕСЛИ – ТО – ИНАЧЕ», или «развилка». Каждый из путей (ТО или ИНАЧЕ) ведет к общей точке слияния, так что выполнение программы продолжается независимо от того, какой путь был выбран.

Может оказаться, что для одного из результатов проверки ничего предпринимать не надо. В этом случае можно применять только один обрабатывающий блок (рис. 5.3).

Цикл (или повторение) предусматривает повторное выполнение некоторого набора команд программы. Если бы циклы не существовали, вряд ли занятие программированием было бы оправданным: циклы позволяют записать длинные последовательности операций обработки данных с помощью небольшого числа повторяющихся команд. Разновидности цикла изображены на рис. 5.4 и 5.5.

Цикл «Пока» начинается с проверки логического выражения. Если оно истинно, то выполняется «Выполнить а», затем все повторяется снова, пока логическое выражение сохраняет значение «истина». Как только оно становится ложным, управление передается по программе дальше (см. рис. 5.4).

В цикле «До» проверка условия выполняется после операторов цикла («Выполнить а»). Цикл повторяется, если условие ложно. Как только оно становится истинным, управление передается по программе дальше (см. рис. 5.5).

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

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

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