- •Ответственный за выпуск: Бивойно п.Г. , декан факультета электронных и информационных технологий, канд. Техн. Наук, доцент
- •Содержание
- •4.1.4 Разработка интерфейса проекта 66
- •5.1.7 Разработка интерфейса проекта 81
- •Введение
- •Лабораторная работа № 1. Знакомство с интегрированой средой разработки (иср)“Delphi 7”
- •Краткие теоретические сведения о иср “Delphi 7”
- •Конструктор стартовой формы
- •Главное окно иср “Delphi 7”
- •Главное меню
- •Панели инструментов
- •Палитра компонентов
- •Окно просмотра дерева объектов
- •Окно редактора кода
- •Закладка редактора кода модуля
- •Закладка редактора кода файла проекта
- •Окно Object Inspector
- •Закладка описания свойств объекта
- •События и процедуры обработки событий
- •Создание простейшего проекта
- •Разработка интерфейса проекта
- •Создание процедуры инициализации приложения
- •Создание процедуры вычисления результата
- •Улучшение проекта
- •Сохранение проекта
- •Продолжение работы с проектом на другом компьютере
- •Содержание отчета
- •Контрольные вопросы и задания
- •Рекомендованая литература
- •Лабораторная работа № 2. Вещественный тип данных. Расчеты по формулам
- •Краткие теоретические сведения
- •Язык программирования Object Pascal
- •Объекты, переменные и константы
- •Классы и типы
- •Объявление объектов и переменных
- •Вещественный тип данных
- •Выражение
- •Стандартные функции для данных вещественного типа
- •Инструкция присваивания
- •Форматирование результатов расчетов
- •Создание проекта «Расчет по формуле»
- •Создание интерфейса
- •Компонент ole-контейнер
- •Компонент Group Box
- •Компонент Memo
- •Завершение работы над интерфейсом
- •Создание процедур обработки событий Процедура очистки протокола
- •Процедура инициализации формы
- •Процедура выполнения расчета по формуле
- •Контольный пример
- •Трассировка процедуры
- •Содержание отчета
- •Контрольные вопросы
- •Рекомендованая литература
- •Лабораторная работа № 3. Подпрограммы Краткие теоретические сведения
- •Правила написания подпрограмм
- •Описание процедуры
- •Вызов процедуры
- •Описание функции
- •Вызов функции
- •Способы передачи параметров в подпрограммы
- •Передача параметров по значению
- •Передача параметров по наименованию
- •Расположение подпрограмм
- •Подпрограммы обработки событий класса формы
- •Другие подпрограммы класса формы
- •Размещение подпрограмм в модуле
- •Размещение подпрограмм в других модулях
- •Размещение подпрограмм внутри других подпрограмм
- •Область действия имен
- •Реализация проекта «Процедуры и функции»
- •Создание процедур и функций Процедуры инициализации
- •Процедура считывания коэффициентов уравнения
- •Функция для расчета по формуле
- •Использование дополнительного модуля
- •Завершение работы над проектом
- •Исследование созданного приложения
- •Анализ передачи параметров по наименованию
- •Анализ передачи параметров по значению
- •Содержание отчета
- •Контрольные вопросы
- •Операции над логическими данными
- •Логические выражения
- •Разветвляющиеся алгоритмы
- •Программирование разветвлений Условный оператор if…then…else
- •Оператор варианта case
- •Реализация проекта «Организация разветвлений»
- •Разработка интерфейса проекта
- •Компоненты для работы со списками
- •Процедуры обработки событий выбора из списка
- •Процедуры обработки событий onKeyPress
- •Решение квадратного уравнения
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа № 5. Построение циклов с инструкциями „while” и „repeat”
- •Краткие теоретические сведения
- •Циклические алгоритмы
- •Инструкция while…do
- •Инструкция repeat…until
- •Прерывание цикла
- •Итерационные алгоритмы
- •Пример итерационного алгоритма для вычисления кубического корня
- •Задание для самостоятельной работы
- •Алгоритмы вычисления сумм бесконечных рядов
- •Задание для самостоятельной работы
- •Создание проекта WhileRepeat
- •Разработка интерфейса проекта
- •Компоненты PageControl и TabSheet
- •Компонент CheckBox
- •Создание закладки для вычисления корня
- •Создание закладки для вычисления синуса
- •Создание процедур и функций Процедура для контроля ввода данных
- •Процедура вычисления кубического корня
- •Процедура вычисления синуса
- •Задания для расчетно-графической работы № 2
- •Содержание отчета
- •Контрольные вопросы
- •Целые типы данных
- •Символьные типы данных
- •Ограниченный тип данных.
- •Применение инструкции цикла for
- •Табулирование значений функций
- •Форматирование результатов при выводе таблиц
- •Строки символов
- •Операции над строками
- •Процедура Delete
- •Процедура Insert
- •Функция Pos
- •Функции Trim, TrimLeft, TrimRight
- •Создание проекта «Применение цикла for»
- •Разработка формы «Табулирование функции» Разработка интерфейса
- •Создание вспомогательных процедур и функций
- •Создание процедуры табулирования функции
- •Разработка формы «Таблица “символ-код”» Разработка интерфейса
- •Создание процедуры вывода таблицы символ-код
- •Разработка формы «Обработка последовательностей целых чисел»
- •Разработка интерфейса
- •Создание процедуры обработки последовательности целых чисел
- •Создание многодокументной (mdi)формы
- •Задание для самостоятельной работы
- •Содержание отчета
- •Контрольные вопросы
- •Рекомендованая литература
Ограниченный тип данных.
Для порядковых типов можно задать поддиапазон их возможных значений – это и будет ограниченный тип.
Диапазон значений ограниченного типа задается выражением вида: <минимальное значение>..<максимальное значение>.
Например:
type TCaps = ‘A’..‘Z’;
var bigLetter : TCaps; month : 1..12;
В этих примерах переменная bigLetter может принимать только символы латинских букв в верхнем регистре, а переменная month значения от 1 до 12.
Ограниченные типы используются, например, при объявлении массивов.
В компиляторе Object Pascal имеется опция, позволяющая включить проверку диапазона при присваивании значения переменной ограниченного типа – {$R+}. Её можно включить в том месте вашей программы, где нужно начать проверку диапазона, и выключить в любом месте опцией {$R-}. При попытке присвоить переменной ограниченного типа значение, выходящее за пределы заданного поддиапазона, сгенерируется исключение с сообщением “Range check error”.
Интервальный тип можно использовать для задания множества данных этого типа путем заключения интервала в квадратные скобки. Например, множество сточных русских букв можно задать таким образом ['а'..'я']. Для определения принадлежности некоторого символа к определенному таким образом множеству можно использовать операцию in, которая возвращает true, если символ принадлежит множеству и false – если не принадлежит. Например, результатом вычисления выражения ‘5’ in [‘0’..’9’], будет true.
-
Применение инструкции цикла for
Инструкция for…to…do позволяет последовательно перебирать значения некоторой переменной порядкового типа в заданном диапазоне, либо от начального значения до конечного значения, либо наоборот. С помощью этой инструкции легко организовать цикл. Особенность таких циклов в том, что число повторений заранее известно.
В общем виде инструкция for…to…do записывается так.
Рисунок 6.1– Синтаксис инструкции for…to…do
На этом рисунке <параметр цикла> - переменная порядкового типа; <начальное значение> - выражение, определяющее начальное значение <параметра цикла>; <конечное значение> - выражение, определяющее конечное значение <параметра цикла>.
Следует отметить, что если между словами begin и end находится только одна инструкция, то операторные скобки: begin и end можно не писать.
Инструкция цикла for…to…do выполняется следующим образом:
-
Вычисляются <начальное значение> и <конечное значение >.
-
Переменной <параметр цикла> присваивается <начальное значение>.
-
Если значение <параметра цикла> превышает <конечное значение>, то цикл заканчивается.
-
Выполняется тело цикла.
-
Переменной <параметр цикла> присваивается следующее значение.
-
Выполнение продолжается с пункта 3.
Количество повторений тела цикла можно вычислить по формуле:
Ord(<конечное значение>) – ord(<начальное значение>)+1;
Если <начальное значение> больше чем <конечное значение>, то тело цикла не будет выполнено ни разу.
Если <начальное значение> и <конечное значение> одинаковы, то тело цикла выполняется один раз.
Переменную <параметр цикла> можно использовать внутри цикла (но не изменять).
Если в инструкции for…to…do вместо слова to записать downto, то после очередного выполнения инструкций тела цикла, значение <параметра цикла> будет не увеличиваться, а уменьшаться. Начальное значение в этом случае должно быть больше чем <конечное значение>.
В рассмотренном ниже примере цикл for…to..do используется для того, чтобы добавить 10 символов ‘*’ к тексту в компоненте Label1.
for i:=1 to 10 do
begin
label1.caption:=label1.caption + ‘*’;
end;
В следующем примере все прописные буквы текстового компонента Edit1 заменяются соответствующими строчными буквами. Для определения длины строки здесь используется функция length().
const rus=['А'..'Я']; lat=['A'..'Z'] ;
var ch: char; i:integer; s:string;
begin
s:= Edit1.Text; // Запоминаем текст компонента в переменной типа String
for i:=1 to length(s) do // Цикл по символам строки
begin
ch:= s[i]; // Очередной символ
if (ch in rus) or (ch in lat) then s[i]:= chr(ord(ch) +32);
Edit1.Text := s; // Вывод результата
end;
end;