![](/user_photo/2706_HbeT2.jpg)
- •Введение в конструирование программ
- •Пенза 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.2.3. Константы и переменные
Константы – это данные, значения которых не изменяется при выполнении программы. Константа в языке программирования характеризуется следующими атрибутами:
наименование;
значение.
Синтаксис:
<имя константы> = <значение>;
Пример:
N = 10; {N – имя константы, 10 – значение}
Переменные – это данные, значения которых изменяются при выполнении программы. Переменная в языке программирования характеризуется следующими атрибутами:
наименование;
тип;
текущее значение.
Синтаксис:
<имя переменной> : <тип>;
Пример:
X: byte; {X – имя переменной, byte – тип}
Описание переменной подразумевает выделение памяти для хранения ее значения, но не определяет само значение переменной!
Поэтому в программе все начальные значения переменных должны быть инициализированы (заданы) до первого «использования» переменных. Инициализировать переменные можно, например, с помощью операторов присваивания или ввода.
Советы профессионала
Как правильно использовать типы переменных?
Избегайте сравнения переменных разных типов
Например, для переменных x:real; i:integer; сравнение x = i почти гарантированно не работает, так как преобразование одного типа к другому всегда связано с округление и получить точное равенство (с точностью до двоичного разряда) нельзя!
Избегайте сравнения на равенство переменных вещественных типов
Если десять раз сложить 0.1, то значение 1.0 получится очень редко: почти всегда – 0.99999... Поэтому для вещественных переменных x1, x2 вместо сравнения x1 = x2 следует сравнить абсолютное значение их разности с заданной точностью, например: abs(x1 - x2) <= 0.00001
Используйте функции и процедуры Object Pascal для преобразования типов
Ord(x) – возвращает порядковый номер значения x в
перечисляемом типе. Например, Ord(True) = 1
Chr(N) – возвращает символ, соответствующий порядковому
номеру N в таблице символов. Например, Chr(65) = 'A'
Trunc(x) – округляет значение вещественного x до целого,
отбрасывая дробную часть
Round(x) – округляет значение вещественного x до ближайшего
целого
Int(x) – возвращает целую часть вещественного x
Frac(x) – возвращает дробную часть вещественного x
Val(S, I, Code) – процедура преобразует строку S в число I.
Code = 0 – нет ошибки, иначе – ошибка
Str(I, S) – процедура преобразует число I в строку S.
Как правильно использовать константы?
Избегайте «магических» чисел
Используйте в программе в качестве числовых констант только значения 0 или 1. Все другие значения («магические» числа) должны быть описаны, как именованные константы. Например, Const N = 10; и везде в коде программы вместо числа 10 используйте наименование N.
Используйте символьные константы, а не их порядковый номер
Вместо Chr(65) напишите в коде программы просто 'A'.
Как правильно задать имя переменной?
Самый важный принцип – имя должно полно и точно описывать сущность, представляемую переменной
Имена переменных должны облегчать чтение кода программы
Выбирайте длину наименования исходя из времени жизни переменной
Считается, что отладка программы требует меньше усилий при использовании имен переменных, состоящих от 8 до 20 символов.
Короткие имена – значит переменные второстепенные с коротким временем жизни
Добавляйте Спецификаторы вычисляемых значений
Спецификаторы вычисляемых значений – Count (количество), Max (максимум), Average (среднее), Total (общее число) и другие – добавляются в конце имени переменной. Например, customerCount, customerTotal – общее число заказчиков
Используете i, j, k для показателей циклов
Как правило, наименование показателей циклов – i, j, k. Если Вы используете эти наименования для показателей циклов, то не используйте их для других целей в программе!
Используете общепринятые наименования для логических переменных
Done – признак завершения цикла. Присвойте false до цикла и true – после завершения
Error – признак ошибки: false – нет ошибки, true – ошибка
Found – признак обнаружения некоторого значение. Например, поиск значения в массиве. Присвойте false до начала поиска и true – как только значение найдено
Success или ОК – признак успешного завершения операции. Присвойте false, если операция завершилась неудачно, и true, если операция завершилась успешно
НЕ используете похожие символы в наименовании
Например: G или 6, 1 или l, Q или 0, 2 или Z, S или 5 и другие
Начинайте наименование переменной со строчной буквы, а наименования типов – с прописной.