- •Федеральное агентство по образованию
- •Тульский государственный университет
- •Тема 1. Создание простых приложений в среде delphi
- •1.1 Среда Delphi
- •1.1.1 Понятия «проект», «форма», «компонент»
- •1.1.2 Краткое описание интегрированной среды разработки Delphi
- •Использование модулей
- •1.2 Начало работы
- •1.3. Пример написания программы
- •1.3.1. Изменение заголовка формы
- •1.3.2. Размещение строки ввода (tEdit)
- •1.3.3. Размещение надписей (tLabel)
- •1.3.4. Размещение многострочного окна вывода (tMemo)
- •1.3.5. Написание программы обработки события создания формы (FormCreate)
- •1.3.6. Написание программы обработки события нажатия кнопки (ButtonClick)
- •1.3.7. Запуск и работа с программой
- •1.4. Выполнение индивидуального задания
- •Индивидуальные задания
- •Контрольные вопросы
- •Тема 2. Программирование с использованием переключателей. Отладка программы
- •2.1 Операторы ветвления и циклов языка Паскаль
- •2.1.1 Операторы if и case
- •2.1.2 Операторы repeat, whyle, for
- •2.2 Кнопки-переключатели в Delphi
- •2.3. Компонент tMaskEdit
- •2.3. Средства отладки программ в Delphi
- •2.4.4. Создание обработчиков событий FormСreate и BottomClick
- •2.5. Выполнение индивидуального задания
- •Контрольные вопросы
- •Тема 3. Программирование с использованием массивов. Обработка исключительных ситуаций
- •3.1. Работа с массивами
- •3.2. Обработка исключительных ситуаций
- •3.3. Порядок выполнения задания
- •Компонент tStringGrid и его настройка
- •3.4. Индивидуальные задания
- •Контрольные вопросы
- •4.4. Компонент tBitBtn
- •4.5. Обработка событий
- •4.6. Порядок выполнения индивидуального задания
- •4 .7. Индивидуальные задания
- •Контрольные вопросы
- •ПРиложение 1. Команды основного меню
- •ПРиЛожение 2. Свойства компонентов п2.1. Общие свойства компонентов
- •Свойство Align
- •Свойство Color
- •П2.3. Компоненты страницы additional
- •П2.4. Компоненты страницы dialogs п2.4.1.Правила использования диалоговых панелей
- •Приложение 3. Простые типы данных языка object Pascal п3.1.Целые типы
- •П3.2.Логические типы
- •П3.3.Символьный тип
- •П3.4. Перечисляемый тип
- •П3.5. Вещественные типы
- •Пз.6. Тип дата-время
- •Приложение 4. Процедуры и функции для работы со строками
- •Приложение 5. Математические формулы
- •Литература
Контрольные вопросы
Компоненты TCheckBox и TRadioGroup, их свойства и события. Управление компонентами – программное и на этапе проектирования. Сходство и отличие этих компонентов.
Придумайте осмысленные примеры, когда удобнее применять компонент TCheckBox и когда - TRadioGroup.
Операторы языка Delphi: if, case, for, while, repeat.
Ошибки первого уровня. Средства среды Delphi для их обнаружения.
Ошибки второго уровня. Средства среды Delphi для их обнаружения.
Трассировка программы. Способы трассировки.
Использование точек останова и просмотр значений переменных.
Компонент TMaskEdit и его использование для защиты от некорректного ввода данных.
Тема 3. Программирование с использованием массивов. Обработка исключительных ситуаций
Цель лабораторной работы: изучить свойства компонента TStringGrid. Написать программу с использованием массивов.
3.1. Работа с массивами
Массив есть упорядоченный набор однотипных элементов, объединенных под одним именем. Каждый элемент массива обозначается именем, за которым в квадратных скобках следует один или несколько индексов, разделенных запятыми, например: a[1], bb[I], c12[I,j*2], q[1,1,I*j-1].. В качестве индекса можно использовать любые порядковые типы за исключением LongInt.
Тип массива или сам массив определяются соответственно в разделе типов (Type) или переменных (Var) с помощью ключевого слова Array следующим образом:
Array [описание индексов] of <тип элемента массива>
Примеры описания массивов:
Const N=20; // Задание максимального значения индекса;
Type TVector=array[1..N] of real; // Описание типа одномерного массива;
Var a:TVector; // А – массив типа Tvector;
Ss:array[1..10] of integer; // Ss – массив из десяти целых чисел;
Y:array[1..5,1..10] of char; // Y – двумерный массив символьного типа.
Элементы массивов могут использоваться в выражениях так же, как и обычные переменные, например:
F:=2*a[3]+a[ss[I]+1]*3;
A[n]:=1+sqrt(abs(a[n-1]));
Уже начиная с 4-й версии в Delphi появился новый удобный инструмент работы с динамическими массивами.
Работу с такими массивами иллюстрирует следующий пример:
var A: array of Integer; {динамический массив объявляется без
указания диапазона индексов}
. . .
SetLength(A,10); {перед использованием надо задать длину мас-
сива в логических элементах при помощи процедуры SetLength}
A[0] := 10; //индексы начинаются с нуля
A[9] := -100;
A := nil; //память, занимаемая массивом, освобождается
Следует отметить, что после первого использования процедуры SetLength все элементы созданного массива обнуляются. Если вызвать SetLength для уже созданного массива с целью увеличения его размера (SetLength(A,20)), то старые значения элементов в массиве сохранятся.
Имеется возможность создавать многомерные динамические массивы:
var B: array of array of integer;
. . .
SetLength(B, 2);
SetLength(B[0], 3);
SetLength(B[1], 2);
B[0,0] := 10;
B[1,1] := -100;
Для массивов можно использовать следующие функции: Low(A) и High(A) –
возвращают значения нижней и верхней границы индекса массива A, Length(A) – возвращает количество элементов массива. Для динамических массивов функция Low всегда возвращает значение 0. Если для динамического массива не вызывалась процедура SetLength, то значение функции High будет равно -1. Функция Copy(A, Start, Count) возвращает динамический массив, являющийся частью динамического массива A. Так как переменные динамических массивов фактически являются указателями, то присваивание вида A := B (A, B – динамические массивы одного типа) приведет к тому, что обе переменные будут ссылаться на один участок памяти, и память для A не будет выделена. Внутри функции Copy создается динамический массив и возвращается ссылка на него, так что после оператора A := Copy(B, 0, 10) длина массива A будет равна 10, даже если она предварительно была установлена равной 100.