- •Ф.Ф. Павлов языки программирования
- •Санкт-Петербург
- •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. Жизненный цикл программы и основные этапы
2.4. Способы записи алгоритма
Термин «алгоритм» идет от имени узбекского математика Аль-Хорезми (825 г.), который дал правила выполнения четырех арифметических операций в десятичной системе программирования. С 1747 г. использовался термин «алгорисмус», к 1950 г. появился термин «алгорифм» (смысл – алгорифм Евклида). Большой вклад в теорию алгоритмов в связи с эволюцией ЭВМ внесли математики Гильберт, Гедель, Черч, Клин, Тьюринг, Марков.
Перечислим основные свойства алгоритмов:
определенность (детерминированность) – точность и понятность, обеспечивающие однозначность результата;
результативность – получение искомого результата через конечное число этапов (шагов);
дискретность – расчлененность алгоритма на отдельные этапы (шаги);
массовость – пригодность алгоритма для решения всех задач данного типа.
Основными требованиями к алгоритму (как и к программе) являются компактность и минимальное время реализации.
Существуют следующие способы записи алгоритмов:
формульно-словесный – содержание последовательных этапов вычислений задаются с нумерацией в произвольной форме на естественном языке;
блок - схемный – изображение структуры алгоритма в виде графического представления этапов процесса обработки данных с помощью специальных геометрических символов (блоков);
алгоритмические языки – непосредственная запись алгоритма решения задачи с помощью операторов языка.
Программы не имеют заранее строго регламентированного набора качественных характеристик, и поэтому, перечислим основные характеристики программ:
алгоритмическая сложность (логика алгоритмов обработки информации);
глубина проработки, полнота и системность реализованных функций программы;
требования к операционной системе и техническим средствам со стороны программы;
удобство освоения и эксплуатации программы;
2.5. Критерии качества программы
Критериями качества программы являются:
мобильность - независимость программы от программных и технических средств обработки данных;
надежность – устойчивость в работе программы, точность выполнения функций обработки;
эффективность – оценка расходов вычислительных ресурсов (объемов памяти для эксплуатации программы и т.п.);
дружественность – обеспечение дружественного интерфейса для работы пользователя;
модифицируемость – способность к внесению изменений и расширений функций обработки;
коммуникативность – возможность интеграции с другими программами.
На качество программы влияют следующие операции:
маркетинг рынка и спецификация требований к программе – определение состава функций обработки данных программы, выбор пользовательского интерфейса, требования к комплексу технических и программных средств;
проектирование структурной схемы программы - алгоритмизация процессов обработки данных, разработка структуры программы и базы данных, выбор метода и средств создания программы – технологии программирования;
программирование (алгоритмизация, тестирование и отладка) – техническая реализация проекта программы, выполняемая с помощью выбранного инструментария технологии программирования (алгоритмические языки и системы программирования);
эксплуатация и сопровождение программы – важный этап, связанный с устранением обнаруженных ошибок;
распространение программы и завершение жизненного цикла – этап, связанный с постоянной программой маркетинговых мероприятий, и заканчивающийся либо отсутствиемом спроса, либо изменением технической политики разработчика.
Этапы жизненного цикла программ соответствуют регламентированному содержанию работ по созданию программ: техническое задание, технический проект, рабочий проект.
Для поддержки всех технологических этапов разработки программ имеется инструментарий технологии программирования – специализированные программные продукты.
Инструментарий технологии программирования - совокупность средств для создания программ, обеспечивающих технологию проектирования, программирования, отладки и тестирования создаваемых программ.
Локальные средства для создания программ - языки и системы программирования, а также программные комплексы для поддержки создаваемых программ. Язык программирования – формализованный язык для написания алгоритма решения задачи. В настоящее время имеются сотни языков программирования, которые можно условно разделить на три класса по синтаксису образования конструкций и по эволюции использования языков:
машинные языки (computer language) – языки программирования, содержащие команды компъютеру определенного типа на выполнение операций; это машинно-зависимые языки, не применяемые для создания программ;
машинно-ориентированные языки (computer-oriented language) – это языки ассемблера, использующие похожие на английский язык аббревиатуры для представления компъютерных операций; транслятор (ассемблер) преобразует программу на языке ассемблера в машинный язык; в настоящее время применяются редко для создания программ;
языки высокого уровня - алгоритмические языки (algorithmic language), использующие для написания структуры алгоритма задачи специальные типовые операторы, напоминающие повседневный английский и общепринятую математическую нотацию; компилятор преобразует программу на алгоритмическом языке в машинный язык; это основные локальные средства для создания программ.
Системы программирования (programming system) – это совокупность следующих частей: интегрированной среды программирования, языка, компилятора, редактора связей, различных библиотек и т.д. Рассмотрим этапы выполнения программы:
редактирование файла: создается программа редактором программ и сохраняется на диске;
компиляция программы: компилятор переводит программу в машинный код, создает объектный код и сохраняет его на диске;
компоновка программы: компоновщик связывает объектный код с библиотеками, создает исполняемый загрузочный модуль и сохраняет его на диске;
загрузка программы: загрузчик считывает исполняемый загрузочный модуль с диска и перемещает его в оперативную память для выполнения;
поочередное выполнение команд программы.
Контрольные вопросы
Объясните основные этапы решения задач на ЭВМ.
Что такое жизненный цикл программного обеспечения?
Объясните эволюцию моделей жизненного цикла программного обеспечения.
Каковы основные результаты постановки задачи и спецификации программы?
Каковы основные результаты проектирования и реализации программы?
Расскажите о способах записи алгоритма.
Приведите критерии качества программы.
Охарактеризуйте этапы технологии процедурного программирования.
Охарактеризуйте этапы технологии объектно– ориентированного программирования.
Тем3. Среды разработки программ