- •Ф.Ф. Павлов языки программирования
- •Санкт-Петербург
- •230201 - Информационные системы и технологии
- •Тема 2 посвящена изучению жизненного цикла программы и основным этапам решения задач на эвм.
- •Тема 4 изучает типы пользовательских интерфейсов, классификацию диалогов и основные компоненты графических пользовательских интерфейсов.
- •Тема 8 посвящена структурам данных фиксированного размера (массивы), а также типам данных, определяемых пользователем (структуры, объединения, перечисления).
- •Тема 10 изучает динамические структуры данных: виды и способы реализации списков, динамическое выделение памяти.
- •Тема 12 затрагивает вопросы обработки файлов данных: понятия записи, файла данных и способы доступа, операции и средства обработки файлов, контроль операций обработки файлов.
- •Тема 14 вводит в технологию объектно-ориентированного программирования.
- •Раздел I Принципы программирования на языках высокого уровня
- •Тема 1. Эволюция языков программирования
- •1.1. Неструктурированное, «стихийное» программирование
- •1.2. Процедурное (модульное) программирование
- •1.3. Объектно-ориентированное программирование
- •1.4. Компонентные технологии программирования
- •Тема 2. Жизненный цикл программы и основные
- •2.1. Дружественность, жизненный цикл программы
- •2.2. Постановка задачи и спецификация программы
- •2.3. Проектирование и реализация программы
- •2.4. Способы записи алгоритма
- •2.5. Критерии качества программы
- •3.1. Классификация программных продуктов
- •3.3. Модели программирования в ms-dos и Windows
- •Тема 4. Диалоговые программы
- •4.1. Типы пользовательских интерфейсов
- •4.2. Классификация диалогов и их реализация
- •4.3. Основные компоненты графических
- •Тема 5. Программа на языке высокого уровня
- •5.1. Структура программы и функции
- •5.2. Стандартные типы данных и операции над ними
- •5.3. Адресные типы данных: указатели и ссылки
- •5.4. Стандартные библиотеки языка
- •5.5. Классы памяти
- •Раздел 2 Управляющие структуры и структуры данных
- •Тема 6. Представление управляющих структур
- •6.1. Структура следования
- •6.2. Структуры ветвления
- •6.3. Структуры повторения
- •Int kol, //счетчик введенных оценок
- •Int god; //число лет
- •Тема 7. Адресные типы данных
- •7.1. Указатели
- •7.2. Ссылки
- •Тема 8. Структуры данных фиксированного размера
- •8.1. Массивы
- •8.2. Типы данных, определяемые пользователем
- •Тема 9. Функции (процедуры)
- •9.1. Определение, прототип и вызов функции
- •9.2. Передача параметров
- •9.3. Программирование рекурсивных алгоритмов
- •Тема 10. Динамические структуры данных
- •10.1. Списки: основные виды и способы реализации
- •10.2. Динамическое выделение памяти
- •Раздел 3 Процедурное программирование
- •Тема 11. Ввод/вывод данных
- •11.1. Видеофункции библиотеки conio.H
- •11.2. Функции библиотеки потокового ввода/вывода
- •Тема 12. Обработка файлов данных
- •12.1. Записи и файлы данных
- •12.2. Операции и средства обработки файлов
- •12.3. Контроль операций обработки файлов
- •Тема 13 Технология процедурного программирования
- •13.1. Способы конструирования программ
- •13.2. Проектирование программы: методы декомпозиции и и модульного программирования
- •13.3. Реализация программы: методы структурного
- •Тема 14. Введение в технологию объектно-
- •14.1. Основные понятия объектно-ориентированного
- •14.2. Проектирование программы
- •14.3. Реализация программы
- •Утверждаю
- •Рабочая программа
- •Технология программирования
- •Санкт-Петербург
- •Тема 1. Технология программирования и этапы ее
- •Тема 2. Жизненный цикл программы и основные этапы
1.2. Процедурное (модульное) программирование
В результате исследовательских работ 60-70-ых годов XX века была разработана технология процедурного (говорят еще структурного, модульного программирования), внесшая ясность в написание программ, простоту тестирования и отладки, легкость модификации. Технология процедурного программирования – это дисциплинированный подход к написанию программ по сравнению с неструктурированными программами. Процедурное программирование основано на модели построения программы как иерархии подпрограмм (процедур), отсюда и название метода.
Для изучения процедурного программирования в 1971 году Н. Виртом был создан язык программирования Pascal, нашедший большое применение в университетах. На протяжении 70-ых годов создавался язык С на базе концепции предшествующих двух языков – BCPL и B, разработанных для написания компиляторов и операционных систем. Язык C получил широкую популярность в результате его использования в разработке операционной системы UNIX. В конце 70-ых был создан «классический» язык Кернигана и Ритчи. На этом языке были написаны фактически все новые операционные системы и системные программные продукты.
Технология процедурного программирования основана на использовании следующих методов (приёмов) программирования:
Метод декомпозиции (нисходящего проектирования), т.е. разделение программы на подпрограммы простейшей структуры и представление программы в виде иерархии подпрограмм.
Метод модульной организации, т.е. группировка подпрограмм и обрабатываемых ими данных в модули, которые программируются и компилируются отдельно. Преимущества данного метода заключаются в параллельной и независимой работе программистов, удобстве программирования, возможности создания библиотек.
Метод структурного программирования подпрограмм.
Метод структурного программирования заключается в следующем:
разделение подпрограммы на вложенные блоки, что позволяет локализовать переменные и операторы их обработки, структурировать подпрограмму;
использование операторов ветвления и циклов, осуществляющих передачу управления только сверху - вниз, что приводит к ясности алгоритма, к облегчению программирования и сопровождения программ; операторы безусловной передачи управления использовать не рекомендуется;
форматирование текста подпрограммы, т.е. использование отступов для отображения вложенности блоков, применение идентификаторов, несущих смысл, и использование комментариев, что приводит к повышению читабельности программ и к облегчению их сопровождения.
Наиболее известными процедурными языками программирования являются PL1, ALGOL-68, Pascal, C, C++.
Проектирование и реализация информационных систем в экономике и управлении привело к появлению больших по объему программ и к необходимости использования различных собственных типов данных пользователя, например, структур данных, представляющих собой совокупность реквизитов документов.
В связи с этим, проявились недостатки технологии процедурного программирования:
Программы не всегда объективно отражают объекты реального мира, и поэтому не могут быть повторно используемыми. Поэтому в каждом новом проекте приходится программировать все сначала и получать похожие программы, т.е. каждый новый проект трактуется как новая задача. А хотелось бы считать новый проект как расширение чего-то созданного.
Обнаружились сложности сопровождения и модификации больших программ, когда 80% стоимости программного обеспечения приходится на эти этапы. Появилось стремление к созданию программ, которые лучше организованы, более понятны, и которые легче сопровождать и модифицировать.
Процедурное программирование не обеспечивает в достаточной степени абстракции данных. Потребовался основной принцип абстрактного типа данных: никакие другие подпрограммы, кроме специальных, не должны иметь доступа к этим данным. Для реализации абстрактного типа данных был предложен новый тип - класс, как совокупность данных и подпрограмм.