
- •Введение в конструирование программ
- •Пенза 2006 г.
- •Предисловие
- •1 Обработка информации на компьютере
- •1.1 Модель обработки информации на компьютере
- •1.2 Основные объекты языка программирования
- •1.2.1 Синтаксические элементы языка программирования
- •1.2.2. Значения и типы
- •1.2.3. Константы и переменные
- •1.2.4. Выражения
- •1.2.5. Операторы
- •1.3 Лабораторные задания
- •1.3.1 Логическая разминка
- •1.3.2 Реализовать схемы программ на языке Object Pascal
- •2 Структурное конструирование программ
- •2.1 Простая программа
- •2.2 Консольное приложение
- •2.2.1 Создание, сохранение и загрузка программы
- •2.2.2 Компиляция и выполнение программы
- •2.3 Лабораторные задания
- •2.3.1 Составление простых программ
- •2.3.2 Выполните трассировку и определите результаты работы программы
- •2.3.3 Программирование с использованием управляющих структур
- •2.4 Подпрограммы
- •2.4.1 Глобальные данные
- •2.4.2 Способы передачи параметров
- •2.4.3 Функции
- •2.4.4 Процедуры
- •2.4.5 Значения параметров по умолчанию
- •2.4.6 Перегрузка функций
- •2.4.7. Рекурсивные подпрограммы
- •2.4.8. Передача наименования подпрограммы как параметра
- •2.5 Отладка программ
- •2.6 Лабораторные задания. Подпрограммы
- •2.6.1 Конструирование подпрограмм
- •2.6.2 Разработка рекурсивных подпрограмм
- •2.7. Модули
- •Interface {интерфейс модуля}
- •Implementation {реализация}
- •Initialization {инициализация}
- •3. Структуры данных
- •3.1. Массивы
- •3.1.1. Действия над массивами
- •I, j : byte; { индексы элементов массивов }
- •3.1.2 Передача массивов в качестве параметров
- •3.1.2.1. Формальные параметры как массивы с фиксированными размерами
- •3.1.2.2. Формальные параметры как массивы со «свободными» размерами
- •3.1.2.3. Определение наименьшего/наибольшего значения массива
- •3.1.3 Лабораторные задания
- •3.1.3.1 Одномерные массивы
- •3.1.3.2. Двумерные массивы
- •3.2. Строки
- •3.2.1 Лабораторные задания
- •3.3. Записи
- •3.3.1 Лабораторные задания
- •3.4 Файлы.
- •3.4.1 Основные понятия и операции
- •3.4.2 Типизированные файлы
- •3.4.3 Текстовые файлы
- •3.4.4 Лабораторные задания
- •3.5 Динамические структуры данных. Указатели
- •3.5.1 Основные понятия и определения
- •3.5.2 Процедуры выделения и освобождения памяти
- •3.5.3 Односвязный список
- •3.5.4 Лабораторные задания. Указатели, список
- •3.5.5 Динамические массивы
- •4. Введение в объектно-ориентированное конструирование программ
- •4.1 Основные понятия и определения
- •4.2 Классы и объекты
- •4.2.1 Структура класса
- •4.2.2 Создание и уничтожение объектов
- •4.2.3 Пример. Класс – динамический массив
- •4.2.5 Операции с объектами
- •4.2.5.1 Оператор is
- •4.2.5.2 Оператор as
- •4.2.5.3 Копирование объектов одного класса
- •4.2.6 Свойства
- •4.2.7 Наследование и полиморфизм
- •4.2.8 События
- •4.2.9 Исключительные ситуации
- •4.2.9.1 Операторы try…except
- •4.2.9.2 Операторы try…finally
- •5. Визуальная разработка программ в delphi
- •5.1. Интегрированная среда разработки программ
- •5.1.1 Проект
- •5.2 Конструирование простого приложения
- •5.2.1 Интерфейс Пользователя
- •5.2.2 Визуальное конструирование
- •5.2.3 Реализация методов
- •5.2.4 Обработка исключительных ситуаций
- •5.2.5 Файлы приложения Калькулятор
- •5.3 Компоненты ввода/вывода данных StringGrid и Memo
- •5.3.1 Компонент StringGrid – таблица строк
- •5.3.1 Ввод массива. Компонент StringGrid
- •5.3.3 Компонент Memo – многострочное окно редактирования
- •5.3.4 Ввод массива. Компонент Memo
- •5.4 Немного о графике
- •5.4.1 Свойство Canvas. Построение графика функции
- •5.4.2 Событие OnPaint
- •Список литературы
- •Приложение а. Кратко о Delphi а.1 Свойства проекта
- •А.2 Программный код пустой формы
- •А.3 Главная форма
- •А.3.1 Свойства главной формы
- •А.3.2 События главной формы
- •А.4 Компоненты Delphi
- •Приложение b. Приложение «Калькулятор»
Предисловие
Конструирование – это главный этап создания программного обеспечения.
Рисунок 1 – Этапы разработки программного обеспечения
Создание программного продукта включает тщательный анализ требований, проектирование архитектуры, конструирование программного кода и его тестирование (рисунок 1). Уровень сложности программного проекта, технология его разработки в значительной степени определяют время и затраты на каждом из этих этапов. Однако какой бы сложности ни был программный продукт, какую бы современную технологию ни применяли для его создания, этап конструирования программного кода выполняется всегда и занимает от 30 до 80 процентов времени разработки.
Конструирование – это реализация на языке программирования требований и архитектуры программного проекта. Качество выполнения конструирования во многом определяет качество программного продукта.
Сложность конструирования программ связана не столько с изучением какого-нибудь языка программирования, сколько с освоением весьма специфического, абстрактного способа мышления. Этот способ основан на представлении действий по обработке информации в виде таких абстракций, как типы и структуры данных, операторы, управляющие структуры, классы, объекты и многие другие.
Чтобы научиться конструировать программы, предлагается использовать язык Object Pascal – простой, но в тоже время обладающий достаточной мощью, современный объектно-ориентированный язык программирования.
1 Обработка информации на компьютере
1.1 Модель обработки информации на компьютере
Обработка информации – это практическая реализация некоторой функции F, которая отображает множество данных D во множество возможных результатов R.
F – произвольная функция, которую надо «вычислить»: перевод текста с русского на английский, нахождение максимума, расчет траектории ракеты, построение оптимального плана и так далее.
Чтобы выполнить обработку информации на компьютере необходимо располагать тремя «физическими» представлениями (рисунок 1.1):
D' – физическое представление данных D;
R' – физическое представление результатов R;
F' – физическое представление функции обработки F.
Рисунок 1.1 – Модель обработки информации на компьютере
Таким образом, обработка информации на компьютере включает в себя следующие процессы:
Ввод данных – чтение данных с устройства ввода (например, клавиатура) в оперативную память компьютера. При этом данные из «внешнего» представления кодируются в представление на уровне компьютера
Вычисление – выполнение последовательности действий, которые необходимы для преобразования данных в результаты. Данная последовательность должна быть описана таким образом, чтобы ее мог выполнить процессор компьютера
Вывод данных – отображение (запись) полученных результатов на устройстве вывода (например, дисплей). При этом результаты из представления на уровне компьютера преобразуются к виду понятному человеку.
Введем несколько ключевых понятий.
Программа – это совокупность данных, результатов и автоматизированного преобразования такого, что каждому x из множества данных D ставится в соответствие результат y, принадлежащий множеству результатов R.
В зависимости от уровня представления данных и функции автоматизированного преобразования информации говорят об исходной программе (данные D, R и функция F) и машинной программе (данные D', R' и функция F'). Описание исходной программы выполняется на языке программирования высокого уровня (например, Object Pascal, C++ ), описание машинной программы – на языке низкого уровня (например, Assembler).
Язык программирования – это система описания программ, достаточно близкая к человеку, чтобы программу можно было легко написать, понять и изменить, но в то же время достаточно строго определенная, чтобы ее мог выполнить компьютер.
Что делает язык программирования высокого уровня? Он освобождает программу от значительной доли необязательной сложности. Исходная (абстрактная) программа состоит из концептуальных конструкций: операций, типов данных, последовательностей и других абстрактных компонентов. Машинная программа связана с битами, регистрами, условиями, переходами, каналами, дисками и прочим.
Компилятор – это специальная программа, которая переводит текст исходной программы, написанной на языке программирования, в последовательность команд процессора. Компилятор создает машинную программу на языке процессора, эквивалентную исходной программе.