- •Введение в конструирование программ
- •Пенза 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. Приложение «Калькулятор»
3.2. Строки
Строка – это последовательность символов.
В программе на языке Object Pascal можно определить некоторую максимальную длину строки (таблица 3.1), а фактически строки могут содержать меньшее количество символов или не содержать их совсем (пустая строка). При выполнении программы длина строки может изменяться.
Таблица 3.1 Строковые типы в языке Object Pascal
-
Тип
Максимальная длина
ShortString
AnsiString
String
String[<Длина>]
WideString
255 (символы ASCII)
~231 (~2 Гб, символы ASCII)
255 или ~2 Гб ( {$H- } – ShortString,
{$H+} – AnsiString )
ShortString, максимальная длина = Длина
~230 (~1 Гб, символы Unicode)
Строковые типы AnsiString, WideString физически представляют последовательность символов, ограниченную в конце нулевым символов (так как это принято в языках C/C++).
Физическое представление типа ShortString приведено на рисунке 3.1.
Рисунок 3.1 – Физическое представление строки ShortString
Вы можете использовать индексирование для получения значения символа строки. Например, S[i] – значение i-го символа строки S.
Существует множество операций над строками, наиболее важные их них следующие:
Операция конкатенации (+) применяется для объединения двух строк в одну результирующую строку
Операции отношения ( =, <>, >, <, >=, <= ) используются для сравнения двух строк. При сравнении строк используется понятие лексикографического (алфавитного) порядка. Результат выполнения операций отношения над строками имеет логический тип
Выбор подстроки при помощи позиционного индекса. Это операция выделяет подстроку (непрерывную последовательность символов) по позиции ее первого символа в исходной строке и указанной длине подстроки
Выбор подстроки на основе сопоставления с образом. Операция поиска в строке подстроки, соответствующей заданному образцу (символу или последовательности символов)
Форматирование ввода-вывода. Использование строк для облегчения форматирования данных при выводе или вводе.
В языке Object Pascal реализованы многие из этих операций.
На рисунке 3.2 приведены некоторые из них:
Процедуры:
Delete(St, Poz, N) – удаление N символов строки St, начиная с позиции Poz.
Insert(St1, St2, Poz) – вставка строки St1 в строку St2, начиная с позиции Poz.
Функции:
Copy(St, Poz, N) – возвращает подстроку из строки St, начиная с символа в позиции Poz и длиной N символов
Length(St) – возвращает длину строки St.
Pos(St1, St2) – поиск первого появление подстроки St1 в строке St2. Результат – позиция символа, начиная с которого подстрока St1 расположена в строке St2; в противном случае – 0 .
IntToStr(n) – преобразование целого числа n в строку.
StrToInt(St) – преобразование строки St в целое число.
Рисунок 3.2 – Примеры работы со строками