- •Введение в конструирование программ
- •Пенза 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 Основные объекты языка программирования
1.2.1 Синтаксические элементы языка программирования
Синтаксис языка программирования – это совокупность правил, которые определяют правильные последовательности синтаксических элементов программы.
Синтаксическое правило может быть записано как в текстовом представлении (например, нормальная форма Бэкуса – НФБ), так и в графическом (например, синтаксический граф). И в том и в другом случае для задания правила используются терминальные символы, определенные в языке программирования, и нетерминальные, вспомогательные символы (заключаются в угловые скобки – < >).
Пример НФБ:
<цифра>::= 0 1 2 3 4 5 6 7 8 9
Это правило читается: "Цифра по определению есть 0 или 1 или 2 или … или 9". Символы этого правила:
<цифра> – нетерминальный символ;
::= – операция "по определению есть";
0, 1, 2, 3, 4, 5, 6, 7, 8, 9 – терминальные символы;
– операция "или".
Данное правило определяет, что в языке допустимыми – правильными – являются только десять арабских цифр (от 0 до 9).
К синтаксическим элементам языка программирования обычно относят следующие:
Набор символов – буквы и цифры (например, символы ASCII, американского стандарта обмена информацией), а также ряд специальных символов
Идентификаторы – имена объектов языка (типов, констант, переменных и других). Идентификатор состоит из последовательности букв и цифр, которая начинается с буквы
Символы (знаки) операций, ограничители и скобки – например, символы арифметических и логических операций (+, -, /, *, not, and, or и другие); символы операций отношения (<>, =, >= и другие); круглые скобки () и операторные скобки begin … end – парные ограничители; ограничитель операторов – символ ;
Ключевые слова – идентификаторы, используемые в качестве фиксированной части синтаксиса какой-либо конструкции языка (например, слово if служит началом условного оператора)
Выражения – конструкции языка для вычисления и изменения значений. Выражения включают символы операций и операнды (константы, переменные и другие объекты языка)
Операторы – конструкции языка, необходимые для управления порядком действий по обработке информации. Самые важные синтаксические компоненты языка
Комментарии – пояснения, включаемые в текст программы, но не обрабатываемые компилятором.
Комментарии заключаются в фигурные скобки:
{ текст в фигурных скобках – это комментарии }
Если комментарии располагаются только на одной строке, то их можно обозначать так:
// – комментарии на одной строке
1.2.2. Значения и типы
Цель программы состоит в вычислении значений.
Значение данных может представлять собой число, символ или указатель на другой объект данных.
Компьютер оперирует с физическими представлениями значений, которыми являются совокупности битов, байтов или слов оперативной памяти (множества D' и R'на рисунке 1.1).
В программе для определения и вычисления значений используют типы, константы, переменные, выражения, операторы.
Одной из главных характеристик данных является тип.
Тип определяет физическое представление данных, а также множество допустимых значений и операций над ними.
Например, тип Word (слово) определяет целые значения без знака, которые занимают в памяти 2 байта. Допустимые значения такого типа лежат в диапазоне от 0 до 65535.
Тип в языке Object Pascal может определяться программистом:
type
<имя типа> = <описание типа>
Пример:
type
Boolean = (false, true); {данные этого типа могут принимать только
два значения: false – 0 и true – 1}
Простые типы языка Object Pascal приведены в таблице 1.1.
Таблица 1.1 Простые типы языка Object Pascal
-
Тип
данных
Интервал
допустимых значений
Целый:
Byte
Word
Cardinal
ShortInt
SmallInt
Integer
Int64
0 .. 255
0 .. 65535
0 .. 4294967295
– 128 .. 127
– 32768 .. 32767
– 2147483648 .. 2147483647
– 263.. 263 – 1
Вещественный:
Real48
Real
Single
Extended
±2.9*10-39 .. ±1.7*1038
±5.0*10-324 .. ±3.4*10308
±1.5*10-45 .. ±3.4*1038
±3.6*10-4932 .. ±1.1*104392
Логический:
Boolean
false, true
Символьный:
Char
ANSIChar
WideChar
Эквивалентен ANSIChar
Символ ASCII (1 байт)
Символ Unicode (2 байта)