- •Лабораторная работа № 1 Среда программирования Delphi. Линейные алгоритмы
- •Краткие теоретические сведения
- •Графическая среда разработки Delphi
- •Компоненты
- •Обработка событий
- •Редактор кода
- •Компиляция
- •Отладка
- •Структура проекта
- •Сохранение проекта
- •Идентификаторы, операторы
- •Типы данных
- •Переменные
- •Константы
- •Выражение
- •Оператор присваивания
- •Комментарии
- •Стандартные функции
- •Ввод данных
- •Вывод результатов
- •Вывод в окно сообщения
- •Порядок выполнения работы
- •Содержание отчета
- •Варианты заданий
- •Контрольные вопросы
- •Лабораторная работа № 2 Программирование алгоритмов разветвляющейся структуры
- •Краткие теоретические сведения
- •Условие
- •Структура ветвления
- •Компонент Memo
- •Порядок выполнения работы
- •Содержание отчета
- •Варианты заданий
- •Контрольные вопросы
- •Лабораторная работа № 3 Операторы цикла. Создание изображений
- •Краткие теоретические сведения
- •Создание изображений
- •Класс tFont
- •Класс tPen
- •Класс tBrush
- •Компонент Image
- •Компонент Shape
- •Компонент Timer
- •Методы вычерчивания графических примитивов.
- •Порядок выполнения работы Пример1. Использования оператора цикла while
- •Пример2. Создание простейшего изображения.
- •Пример создания заставки
- •Пример 3. Создание приложения, содержащего круговую диаграмму.
- •Содержание отчета
- •Варианты заданий
- •Варианты заданий
- •Контрольные вопросы
- •Лабораторная работа № 4 Одномерные массивы. Цикл с параметром
- •Краткие теоретические сведения
- •Объявление массива
- •Цикл с параметром
- •Инициализация массива
- •Операции с массивами
- •Вывод массива
- •Ввод массива
- •Использование компонента StringGrid
- •Использование компонента Memo
- •Создание меню
- •Компонент tMainMenu
- •Диалоговые панели File Open и File Save
- •Вывод в файл
- •Открытие файла для записи
- •Закрытие файла
- •Ввод из файла
- •Открытие файла для чтения
- •Чтение чисел
- •Поиск минимального (максимального) элемента массива
- •Поиск в массиве заданного элемента
- •Сортировка массива
- •Порядок выполнения работы
- •Пример 2. Разработка диалоговой программы для работы с произвольным массивом вещественных чисел.
- •Содержание отчета
- •Варианты заданий
- •Контрольные вопросы
- •Лабораторная работа № 5 Двумерные массивы. Вложенные циклы.
- •Краткие теоретические сведения
- •Объявление матриц
- •Инициализация двумерного массива
- •Содержание отчета
- •Варианты заданий
- •Контрольные вопросы
- •Лабораторная работа № 6 Функциональная и интерфейсная эмуляция формы
- •Краткие теоретические сведения
- •Компонент Image
- •Многостраничный блокнот — компоненты tTabControl и tPageControl
- •Компоненты tTreeView w tListView
- •Задание к лабораторной работе
- •Варианты заданий
- •Контрольные вопросы
Цикл с параметром
Инструкция for используется в том случае, если некоторую последовательность действий (инструкций программы) надо выполнить несколько раз, причем число повторений заранее известно. В общем виде инструкция for записывается следующим образом:
for <счетчик> := <нач_знач> to <кон_знач> do
begin
// здесь операторы, которые надо выполнить несколько раз
end
где:
счетчик — переменная-счетчик числа повторений инструкций цикла;
нач_знач-- выражение, определяющее начальное значение счетчика циклов;
кон_знач — выражение, определяющее конечное значение счетчика циклов.
Переменная счетчик, выражения нач_знач и кон_знач должны быть целого типа. Обычно в качестве счетчика используется переменная типа byte. Количество повторений инструкций цикла можно вычислить по формуле:
(кон_знач — нач_знач + 1).
Примеры:
for i:=l to 10 do
begin
label1.caption:=label1.caption + '*';
end;
for i: =1 to n do s := s+i;
Если между begin и end находится только один оператор, то слова begin и end можно не писать.
Алгоритм, соответствующий инструкции for, представлен на рис. 4.1. Обратите внимание, что если начальное значение счетчика больше конечного значения, то последовательность операторов между begin и end не будет выполнена ни разу.
Кроме того, после каждого выполнения инструкций тела цикла счетчик циклов увеличивается автоматически.
Рис. 4.1.. Алгоритм инструкции for
Переменную-счетчик можно использовать внутри цикла (но ни в коем случае не изменять). Например:
tabl: = '' ;
for i:=1 to 5 do
tabl:=tabl+IntToStr(i)+' '+IntToStr(i*i)+chr(13);
Переменная tabl будет содержать изображения таблицы квадратов чисел.
Если в инструкции for вместо слова to записать downto, то после очередного выполнения инструкций тела цикла значение счетчика будет не увеличиваться, а уменьшаться.
Инициализация массива
Если массив не является локальным, т. е. объявлен не в процедуре обработки события, а в разделе переменных модуля, то одновременно с объявлением массива можно выполнить его инициализацию, т. е. присвоить начальные значения элементам массива. Инструкция объявления массива с одновременной его инициализацией в общем виде выглядит так:
Имя:array [нижний_индекс..верхний_индекс] of тип = (список);
где список — разделенные запятыми значения элементов массива.
Например:
a: array[10] of integer = (0,0,0,0,0,0,0,0,0,0);
Обратите внимание, что количество элементов списка инициализации должно соответствовать размерности массива. Если это будет не так, то компилятор выведет cообщение об ошибке:
Number of elements differs from declaration
(количество элементов не соответствует указанному в объявлении).
При попытке инициализировать локальный массив компилятор выводит сообщение об ошибке:
Cannot initialize local variables
(локальная переменная не может быть инициализирована).
Локальный массив можно инициализировать только во время работы программы, например, так:
for i := 1 to 10 do
a[i]:= 0;