49591

Компьютерные информационные технологии. Методические указания

Книга

Информатика, кибернетика и программирование

Развитие навыков при выборе представления исходных данных использовании объектно-ориентированного подхода при написании программ на языке Object Pscl в среде Delphi тестировании и отладки программы оформлении документации на программную разработку. Провести отладку и тестирование программы. Оформить документацию программы. Предусмотреть возможность просмотра этого файла из программы калькулятора.

Русский

2014-01-03

826.9 KB

19 чел.

1

Методические  указания  к  курсовой  работе  

по  дисциплине

«Компьютерные информационные технологии»

Введение

Курсовая работа предназначена для отработки навыков программирования задач средней сложности у студентов в рамках дисциплины«Компьютерные информационные технологии»».

Целью курсовой работы является закрепление и углубление знаний, полученных студентами в курсе «Компьютерные информационные технологии»»., развитие навыков при выборе представления исходных данных, использовании объектно-ориентированного подхода при написании программ на языке Object Pascal в среде Delphi, тестировании и отладки программы, оформлении документации на программную разработку.

1. Порядок выполнения курсовой работы

Курсовая работа по курсу«Алгоритмы и структуры данных»  выполняется индивидуально каждым студентом в соответствии с выданным преподавателем вариантом. Курсовая работа выполняется в среде Delphi на языке Object Pascal.

В процессе работы студент должен:

  1. Освоить методику и визуальную среду проектирования приложений.
  2. Выбрать форму представления исходных данных и результатов.
  3. Разработать и обосновать алгоритмы, используемые при решении задачи.
  4. Разработать пользовательский интерфейс для ввода и получения информации.
  5. Провести отладку и тестирование программы.
  6. Оформить документацию программы.

Все этапы работы должны быть отражены в пояснительной записке.

2. Варианты заданий

2.1.  Калькуляторы

1) Разработать приложение «Калькулятор», выполняющее указанные в варианте операции для заданных исходных данных (см. табл. 2.1). Программа должна выполнять: ввод данных, проверку правильности введенных данных, выдачу соответствующих сообщений в случае возникновения ошибок.

2) Протокол работы калькулятора записать в файл. Протокол должен включать:

  1. исходные данные, введенные пользователем;
  2. выполняемые операции и результаты их выполнения;
  3. в случае возникновения ошибки в файл записывается соответствующее сообщение.

3) Предусмотреть возможность просмотра этого файла из программы калькулятора.

В варианте указаны вид данных, обрабатываемых калькулятором, и операции, выполняемые калькулятором.

Таблица 2.1

Варианты заданий на курсовую работу

Вариант

Вид  данных

Операции

1

Целые числа в различных системах счисления (СС). Основания систем счисления взять следующие:

2, 8, 10, 16.

Перевод чисел из одной системы счисления в любую другую.

Образец программы – системный калькулятор.

2 – 5*

Вещественные числа в различных системах счисления (СС).

Перевод чисел из одной системы счисления в другую:

2      из    2СС  в 10СС, 8СС, 16СС

3      из    8СС  в 16СС, 10СС, 2СС

4      из    10СС в   2СС, 8СС, 16СС

5      из    16СС  в 10СС, 8СС, 2СС

6 – 14*

Вещественные числа в различных системах счисления (СС).

Перевод чисел из одной системы счисления в другую с пояснением порядка перевода целой и дробной части числа в отдельном окне:

6      из    10СС в   2СС

7      из    10СС в  8СС

8      из    10СС в   16СС

9      из     2СС  в   8СС

10     из     2СС  в   10СС

11     из     2СС  в   16СС

12     из    16СС   в  2СС

13      из    16СС  в 8 СС

14      из    16СС  в 10СС

15*

Вещественные числа в различных системах счисления (СС).

Калькулятор систем счисления (двоичная, восьмиричная, десятичная, шестнадцатиричная), который переводит из одной системы счисления в другую и может производить операции сложения, вычитания, умножения.

16

Двоичные  числа в форме с фиксированной точкой в двухбайтном формате.

Представление чисел в прямом, обратном, дополнительном и модифицированном коде..

Сложение, вычитание, умножение, деление двоичных чисел

17

Двоичные  числа в форме с плавающей точкой в двухбайтном формате.

Представление чисел в обычном и нормализованном виде.

Сложение, вычитание, умножение, деление чисел вещественных двоичных чисел

18

Выражение, состоящее из вещественных чисел  и операторов сложения, вычитание, умножение, деление, возведение в степень

Строковый калькулятор. Выполняются действия сложения, вычитание, умножение, деление, возведение в степень. Распознаются скобки. . Суть программы сводится к тому, что пользователь вводит выражение, состоящее из чисел и перечисленных выше операторов, программа обрабатывает это выражение, учитывая приоритеты операций, приоритеты скобок и т.д. и выдает результат.

19

Курсы валют Нацбанка Украины

(не менее 30 валют)

Калькулятор валют должен обеспечивать пересчет в гривневый эквивалент любой валюты.

Кроме того, калькулятор валют должен обеспечивать пересчет выбранной валюты в эквивалент любой другой.

20

Числовая форма денежной единицы

(грн, рубль, доллар, евро)

Преобразование денежной единицы из числовой в словесную форму

В прграмме вводится денежную сумма, а выводится та же сумма, но прописью.

Например:

Ввод: 22650.50 грн

Результат: Двадцать две тысячи шестьсот пятьдесят гривен пятьдесят копеек

21,22

Диаграмма Вейча

12. Минимизация Булевых функций с использованием диаграмм Вейча для 3 переменных

13. Минимизация Булевых функций с использованием диаграмм Вейча для 4 переменных

23

Арифметическое выражение

Графический калькулятор произвольных арифметических выражений.

Построение графика вводимых пользователем функций  Y = F(X)  в заданных пределах.

В выражении могут использоваться все арифметические операции и функции abs(x), cos(x), arccos(x), arcctg(x), exp(x), ln(x),sqrt(x), sin(x), tg(x)

24*

Векторы заданной размерности

Операции с векторами (модуль вектора, сложение, вычитание, скалярное умножение векторов, косинус угла между двумя векторами).

25*

Матрицы заданной размерности

Операции с матрицами ( сложение, вычитание, умножение, умножение матрицы на число, умножение матрицы на вектор).

26*

Матрицы заданной размерности

Операции с матрицами (сложение, вычитание,  транспонирование, вычисление определителя, обратная матрица).

27*

А- квадратная матрица

размера n

Х-вектор неизвестных

В- вектор правых частей уравнений

Решение систем линейных уравнений  вида А*Х=В с помощью обратной матрицы  Х = А-1 * В

28

Вещественное число

Число задается в окне

Инженерный калькулятор

Калькулятор должен обеспечивать выполнение всех арифметических операций и кроме того, вычислять функции abs(x), cos(x), arccos(x), arcctg(x), exp(x), ln(x), sqrt(x), sin(x), tg(x).

29

Вещественное число

Числа заданного диапазона задаются с помощью ползунка

Инженерный калькулятор

Калькулятор должен обеспечивать выполнение всех арифметических операций и кроме того, вычислять функции abs(x), cos(x), arcos(x), arcctg(x), exp(x), ln(x), sqrt(x), sin(x), tg(x).

30*

Произвольный текст

Строковій калькулятор

Выполняет заданные  строковые операции с произвольным текстом

Образец интерфейса смотри в прмечании.


*Примечание.

Варианты2-5

Вариант 6

Вариант 7

Вариант 8

Вариант 9

Вариант 10

Вариант 11

Вариант 12

Вариант 13

Вариант 14

Вариант 15


Вариант 24 (Вектор)


Вариант 25-26  (матрицы)


Вариант 27


3. Методические указания

Курсовая работа выполняется в среде Delphi как Windows-приложение.

При выполнении курсовой работы обязательным является использование методов и средств объектно-ориентированного программирования.

Схема алгоритма решения задачи выполняется с использованием программы Microsoft Visio. Методика применения этой программы приведена в Приложении  1.

Методика работы в системе Delphi на примере создания конкретного приложения рассмотрена в Приложении 2.

4. Структура  и  содержание пояснительной  записки

Структура, содержание  и рекомендации по оформлению пояснительной  записки приведены  в  Приложениях 3,  4.

К пояснительной записке прилагается дискета с файлами разработанного проекта.

5. Рекомендуемая  литература

  1.  Вирт Н. Алгоритмы + структуры данных = программы. – М.: Мир, 1985.
  2.  Буч Г. Объектно-ориентированное проектирование с примерами применения. 1992.
  3.  Дантеманн Д., Мишел Д., Тейлор Д. Программирование в среде Delphi. – К.: НИПФ «ДиаСофт Лтд.», 1995.
  4.  Немнюгин С.А. Turbo Pascal. – СПб.: Изд-во «Питер», 2000.
  5.  Гофман В.Э., Хомоненко А.Д. Работа с базами данных в Delphi. – СПб.: БХВ – Санкт-Петербург, 2000.
  6.  Гофман В.Э., Хомоненко А.Д. Delphi 6. – СПб.: БХВ – Санкт-Петербург, 2001.
  7.  Фаронов В.В. Delphi 6: Учебный курс. – М.:, 2001.
  8.  Культин Н.Б. Delphi 6. Программирование на Object Pascal.
  9.  Ставровский А.Б. Первые шаги в программировании. Самоучитель. – М.: Издательский дом «Вильямс», 2003.
  10.  Галисеев Г.В. Программирование в среде Delphi 7. Самоучитель. – М.: Издательский дом «Вильямс», 2004.
  11.  32 урока по Delphi. http://books.kulichki.net/data/delphi/del2/.
  12. Флёнов М.Е. Библия  Delphi.  СПб.: БХВ-Петербург, 2005.


Приложение  1

Алгоритмы  и  их  графическое  представление  

1. Основные  понятия  и  определения

1.1. Понятие  алгоритма  и  его  свойства

Алгоритм – точно определенное правило действий, для которого задано указание, как и в какой последовательности это правило необходимо применять к исходным данным задачи, чтобы получить ее решение за конечное число шагов.

Свойства  алгоритмов:

1. Детерминированность (определенность) — однозначность результата процесса при заданных исходных данных.

2. Дискретность (прерывность) — алгоритм должен представлять процесс решения задачи как последовательное выполнение элементарных шагов, возможность выполнения которых человеком или машиной не вызывает сомнения.

3. Массовость — алгоритм решения задачи pазpабатывается в общем виде, т.е. он должен быть применим для некоторого класса задач, различающихся лишь исходными данными. При этом исходные данные могут выбираться из некоторой области, называемой областью применимости алгоритма.

4. Результативность — за конечное число шагов алгоритм либо должен приводить к решению задачи, либо после конечного числа шагов останавливаться из-за невозможности получить решение с выдачей соответствующего сообщения, либо неограниченно продолжаться в течение времени, отведенного для исполнения алгоритма, с выдачей промежуточных результатов.

1.2. Формы  представления  алгоритмов

На практике наиболее распространены следующие формы  представления  алгоритмов:

  1.  словесная – запись алгоритма на естественном языке;
  2.  графическая – изображение алгоритма в виде схемы, состоящей из графических символов;
  3.  аналитическая – запись алгоритма в виде последовательности формул;
  4.  псевдокодом – полуформализованное описание алгоритма на условном алгоритмическом языке, включающем как элементы языка программирования, так и фразы естественного языка, общепринятые математические обозначения и др.;
  5.  программная – запись алгоритма в виде текста на одном из языков программирования.

При графическом представлении алгоритм изображается в виде последовательности связанных между собой функциональных блоков, отображаемых в виде графических фигур, каждая из которых соответствует выполнению одного или нескольких действий.

Такое представление называется схемой алгоритма (иногда называют блок-схемой).

Схема алгоритма – графическое изображение его структуры, в котором каждый этап процесса обработки данных представляется в виде различных геометрических фигур (примитивов).

В таблице П1.1 приведены часто употребляемые графические примитивы в схемах алгоритмов.

Таблица П1.1

Графические  примитивы  схем  алгоритмов

Название

примитива

Обозначение и пример заполнения

Пояснение

Процесс

a

b

x = (cd)*e

Вычислительное действие или последовательность действий

Решение

a < b

Да

Нет

Выбор направления выполнения алгоритма или программы в зависимости от некоторых изменяемых условий

Модификация

i = 1,50,2

Начало циклического процесса

Предопределенный процесс

Расчет параметров

Вычисления по подпрограмме, стандартной подпрограмме

Ввод-вывод

Ввод

A, B, C

Преобразование данных в форму, пригодную для обработки (ввод) или отображения полученных результатов (вывод)

Пуск-останов

Начало

Начало, конец алгоритма, вход и выход в подпрограмму

Документ

Печать

а, с

Вывод результатов на печать

Комментарий 

Связь между элементом схемы и пояснением

Узел

5

Указание связи между прерванными линиями потока, связывающего символы

Ссылка на другую страницу

Обозначение связи между различными частями схемы алгоритма, размещенных на разных страницах

Линия потока

Обозначение последовательности связей между символами

1.3. Правила  составления  схем  алгоритмов

Составление схем алгоритмов регламентируется ГОСТами:

  1.  ГОСТ 19.002-80 соответствует международному стандарту ИСО 2636-73 и определяет правила составления схем алгоритмов;
  2.  ГОСТ 19.003-80 соответствует международному стандарту ИСО 1028-73 и регламентирует использование графических примитивов.

В соответствии с этими документами при составлении схем алгоритмов необходимо соблюдать следующие основные правила:

  1.  Графические примитивы соединяются между собой линиями потока, которые для каждого шага алгоритма указывают возможных преемников.
  2.  Внутри примитива дается краткое описание соответствующего шага.
  3.  Любой шаг или поток можно сопроводить пояснением с помощью примитива «Комментарий».
  4.  Примитивам присваиваются порядковые номера, проставляемые в разрыве линии контура в левом верхнем углу изображения.
  5.  Линии потока проводятся параллельно линиям внешней рамки схемы. Направление линии потока сверху вниз и слева направо принято за основной. Если они не имеют изломов, их можно не помечать стрелками. В остальных случаях их направление обязательно помечается стрелкой. Линию потока, как правило, подводят к середине символа.
  6.  Расстояние между параллельными линиями потока должно быть не менее 3 мм, а между другими символами – не менее 5 мм.
  7.  Линию потока можно обрывать, используя на месте обрыва примитив «Узел» в пределах одной страницы или примитив «Ссылка на другую страницу», если надо указать переход на другую страницу.
  8.  Размеры примитивов фиксированы. Если через b обозначить ширину элемента, а через а его высоту, то размер b = 1,5а, причем а должно принимать значения 10, 15, 20 мм. Допускается увеличивать размер а на величину, кратную 5.

Пример. Составить алгоритм вычисления суммы элементов вектора , т.е. .

Для определения суммы применим алгоритм ее накопления, используя рекуррентное соотношение

Si := Si-1 + ai; S0 = 0; i := 1, 2, ..., n,

Рис. П1.1. Схема алгоритма вычисления суммы элементов вектора а

где Si — текущее значение суммы;

Si-1 — предыдущее ее значение;

S0 — начальное значение суммы;

ai — значение текущего элемента вектора.

Сначала значение суммы равняется нулю, потом последовательно к ней добавляются значения первого, второго и остальных элементов вектора.

Схема алгоритма приведена на рис. П1.1. Поясним ее.

1. Схема начинается с символа «Пуск-останов». Каждый вычислительный процесс имеет начало, и это отображается на схеме.

2. Начальные данные вводятся в память компьютера. Для обозначение этой операции используется символ «Ввода-вывода», внутри которого указываются, какие элементы вводятся.

3. Сумме присваивается начальное значение, равное нулю (S:=0). Это означает пересылку 0 в область памяти, предназначенную для накопления суммы. Операция на схеме отображается символом «Процесс». Принятое обозначение суммы S расшифровывается символом «Комментарий».

4. Индексу i, определяющему порядковый номер элемента, присваивается значение 1. При i = 1 происходит обращение к первому элемента вектора, т.е. а1.

5. К сумме S (на первом шаге i = 1, S = 0 и ai = а1) прибавляется значение элемента вектора ai (S := S + ai). В области памяти S записывается новое значение суммы.

6. С увеличением значения i на 1 (i = i + 1) определяется порядковый номер следующего элемента вектора.

7. Количество элементов вектора равно n. Отсюда, операция суммирования S := S + ai должна повторяться n раз, для чего осуществляется проверка: продолжать вычисление суммы или нет. Для выбора направления вычислений применяется символ «Решение». Внутри него указывается проверка условия i <= n. Если значение i не превысило своего максимального значения n, то операция вычисления суммы повторяется (переход к шагу 5), в противном случае осуществляется переход к шагу 8.

8. Осуществляется вывод полученной суммы S. Эта операция отображается на схеме символом «Ввода-вывода», внутри которой указывается, что именно выводится.

9. Схема заканчивается символом «Пуск-останов».


2. Базовые  структуры  алгоритмов

Логическая структура любого алгоритма может быть представлена комбинацией трех базовых структур: следование, ветвление и цикл.

Характерной особенностью базовых структур является наличие в них одного входа и одного выхода.

2.1. Базовая  структура  «следование»

Образуется последовательностью действий, следующих одно за другим:

Запись псевдокодом

Графическое изображение

действие 1

действие 2

..........

действие n

В линейном вычислительном процессе все операции выполняются последовательно в порядке их записи. Типовым примером такого процесса является стандартная вычислительная схема, состоящая из трех этапов:

  1.  ввод исходных данных;
  2.  вычисление по формулам;
  3.  вывод результата.

2.2. Базовая  структура  «ветвление»

Обеспечивает в зависимости от результата проверки условия (да или нет) выбор одного из альтернативных путей работы алгоритма. Каждый из путей ведет к общему выходу, так что работа алгоритма будет продолжаться независимо от того, какой путь будет выбран. Структура ветвление существует в четырех основных вариантах:

  1.  Если-То;
  2.  Если-То-Иначе;
  3.  Выбор;
  4.  Выбор-Иначе.

Запись псевдокодом

Графическое изображение

1. Если-то

если условие

  то действия

 все

2. Если-то-иначе

если условие

  то действия 1

  иначе действия 2

 все

3. Выбор

выбор

  при условие 1: действия 1

  при условие 2: действия 2

...........................

  при условие N: действия N

 все

4. Выбор-иначе

выбор

  при условие 1: действия 1

  при условие 2: действия 2

...........................

  при условие N: действия N

  иначе действия N+1

 все

2.3. Базовая  структура  «цикл»

Обеспечивает многократное выполнение некоторой совокупности действий, называемых телом цикла. Управление повторением цикла осуществляется с помощью переменной, называемой параметром цикла. Сначала этому параметру присваивается некоторое начальное значение, затем цикл выполняется с изменением параметра при каждом повторении от начального к конечному значению на величину, называемую шагом цикла.

Шаг цикла может быть положительным или отрицательным. В зависимости от этого параметр цикла возрастает или уменьшается. Цикл прекращается, если параметр цикла принимает значение, которое лежит вне границ диапазона между начальным и конечным значениями.

Различают три вида циклов:

  1.  с предусловием;
  2.  с постусловием;
  3.  с параметром.

Циклы с предусловием и постусловием используются тогда, когда предварительно неизвестное количество повторений.

В цикле с предусловием сначала проверяется условие и, если оно выполняется, то осуществляются действия, указанные в теле цикла. Выполнение цикла прекращается, когда условие не выполняется. Для этого необходимо, чтоб действия в теле цикла влияли на изменение условия. В противном случае наступит «зацикливание» — бесконечное выполнение цикла. Оно является типовой ошибкой в случае использования циклов.

Запись псевдокодом

Графическое изображение

1. Цикл с предусловием (Цикл-Пока). Предписывает выполнять тело цикла до тех пор, пока выполняется условие, записанное после слова «пока».

нц пока условие

 тело цикла

 (последовательность действий)

 кц

2. Цикл с постусловием (Цикл-До). Предписывает выполнять тело цикла до тех пор, пока не выполняется условие, записанное после слова «до».

нц

 повторять

 тело цикла

 (последовательность действий)

 до условие

 Кц

 3. Цикл с параметром (Цикл-Для). Предписывает выполнять тело цикла для всех значений некоторой переменной (параметра цикла) в заданном диапазоне

нц для i от i1 до i2 шаг i3

 тело цикла

 (последовательность действий)

 кц

Цикл с постусловием выполняется аналогично, но условие проверяется после выполнения действий в теле цикла. Повторение действий тела цикла происходит тогда, когда условие не выполняется.

Действия в теле цикла с постусловием выполняются всегда хотя бы один раз, а с предусловием могут не выполняться ни одного раза, если в самом начале условие не выполняется.

В цикле с параметром последовательно выполняются следующие типовые операции:

1. Задание начального значения используемого параметра цикла (например, если переменной цикла является i, то ей присваивается значение i1, т.е. i:=i1).

2. Выполнение действий, предусмотренных в теле цикла.

3. Изменение параметра цикла, который обеспечивает вычисление результата с новыми начальными данными (например, если параметр цикла i изменяется с шагом i3, i:=i i3) и переход к следующему шагу.

4. Проверка текущего значения параметра цикла с заданным конечным значением (i<=i2).

5. Переход к повторению тела цикла, если параметр цикла не превысил конечного значения, иначе — выполнение следующих действий или вывод результата.

3. Составление схемы алгоритма  в программе Microsoft Visio  

Microsoft Visio 2003 – программный продукт, предназначенный для создания технических и деловых диаграмм.

3.1. Запуск Microsoft Visio  и  интерфейс  пользователя

Для запуска программы выполните команды Главного меню Пуск  Программы  Microsoft Office  Microsoft Office Visio 2003 или выполните двойной щелчок на значке ярлыка этой программы, расположенном на Рабочем столе.

Откроется окно программы, в котором предлагается выбрать Шаблон (набор графических примитивов). Для построения схем алгоритмов в списке Разделы выберите Flowchart, а в списке Шаблоны выполните двойной щелчок мышью по значку Basic Flowchart (рис. П1.2).

После этого откроется главное окно программы (рис. П1.3), имеющее стандартный для Microsoft Office вид:

  1.  строка заголовка, содержащая название программы, имя открытого файла, а также стандартные кнопки управления окном;
  2.  строка меню, содержащая названия групп команд, сгруппированных по функциональному признаку. Щелчок мышью по названию открывает меню следующего уровня;
  3.  панели инструментов, включающие кнопки часто используемых команд. Добавление или удаление панелей с экрана осуществляется командами меню Вид  Инструментальные панели;
  4.  левое окно, в котором отображаются графические примитивы выбранного шаблона. При необходимости можно выбрать другие шаблоны, выполнив команды меню Файл  Объекты  Разделы  Шаблоны;
  5.  рабочее поле, в котором создается графическое изображение, в частности здесь можно создавать схемы алгоритмов;
  6.  строка состояния, в которой отображается справочная информация.

Основную часть интерфейса занимают два окна: Шаблоны (Stencils) – слева, с зеленым фоном) и Рисунок (Drawing).

3.2. Рисование  схемы  алгоритма

  1.  Выполните команды меню Файл  Новый  Flowchart  Basic Flowchat. При этом откроется новое окно документа.
  2.  Перетащите мышью необходимые графические объекты из окна Шаблоны на рабочее поле.
  3.  Для выделения графического примитива на рабочем поле следует щелкнуть по нему левой кнопкой мыши. При этом появляются специальные маркеры, позволяющие изменять размеры и ориентацию фигуры (рис. П1.4).
  4.  Для перемещения фигуры по рабочему полю следует навести указатель мыши на нее, нажать левую кнопку мыши и, не отпуская ее, перетащить фигуру в новое место, после чего отпустить кнопку мыши.
  5.   Чтобы вставить нужный текст внутри фигуры следует выполнить двойной щелчок мыши на фигуре. При этом появляется окно ввода текста с маркером ввода (вертикальная черная линия) (рис. П1.5). Кнопками Шрифт , Размер шрифта , Полужирный, Курсив или Подчеркивание , Выравнивание  и т.д. выбирается необходимое форматирование шрифта.

Щелчком мыши откройте этот раздел

Двойным щелчком мыши выберите этот шаблон

Рис. П1.2. Первое окно программы Microsoft Visio 2003, в котором выбирается шаблон

Строка заголовка

Меню

Панели инструментов

Окно шаблонов (графических примитивов) построения схем алгоритмов

Рабочее поле, в котором строится схема алгоритма

Рис. П1.3. Главное окно программы Microsoft Visio 2003

После набора текста следует щелкнуть мышью вне фигуры.

  1.  Для соединения графических примитивов между собой можно воспользоваться либо примитивом Dynamic Connector , либо кнопкой Соединитель . При этом с помощью последней кнопки можно установить режим автоматического связывания объектов.
  2.  Если необходимо поместить какой либо текст вне графических примитивов, то следует воспользоваться кнопкой Текст . После щелчка по этой кнопке в рабочем поле с помощью перетягивания указателя мыши выделяется область пространства (прямоугольник), внутри которого можно ввести текст. Кроме того, можно воспользоваться кнопками панели инструментов Рисование .
  3.  

Рис. П1.6. Выделение объектов всего рисунка

Перетаскивая эти маркеры можно менять размеры фигуры

Перетаскивая этот маркер можно менять ориентацию фигуры

Рис. П1.4. Изменение размеров и ориентации графического примитива

Рис. П1.5. Ввод текста внутри графического примитива

Любой объект рисунка на рабочем поле можно вырезать, скопировать или вставить, воспользовавшись кнопками , либо командами контекстного меню.

  1.  После того, как изображение схемы алгоритма будет полностью построено, все элементы следует сгруппировать. Для этого надо щелкнуть по кнопке Указатель  и с помощью мыши обвести прямоугольной областью все фигуры рисунка (рис. П1.6). После этого следует выполнить команды меню Форма  Группирование  Сгруппировать или щелкнуть правой кнопкой мыши и в контекстном меню выбрать команды Форма  Сгруппировать.
  2.  Полученный рисунок можно сохранить, выполнив команды меню Файл  Сохранить или щелкнув по кнопке Сохранить . При этом сохранять рисунок можно не только в формате .VSD, но и в файлах других типов, в том числе HTML.


Приложение  2

Основы  работы  в  среде  Delphi

1. Запуск Delphi  и  интерфейс  пользователя

Среда программирования Delphi — это комплекс программ, разработанных для того, чтобы создать удобное окружение для реализации концепции быстрой разработки приложений RAD (Rapid Application Development). 

Среда программирования включает:

  1.  главный графический интерфейс пользователя, или главное окно (рис. П2.1), которое появляется сразу же после запуска Delphi;
  2.  графический интерфейс справочной системы (On-line help);
  3.  

Меню

Панели инструментов

Палитра компонентов

Дерево объектов

Инспектор объектов

Окно формы

Окно редактора кода

Рис. П2.1. Главное окно программы Delphi

набор необходимых компонентов.

В среду программирования входят дополнительные окна:

  1.  Object Inspector (Инспектор объектов);
  2.  Object TreView (Дерево объектов);
  3.  Form Designer (Дизайнер форм);
  4.  Editor Window (Окно редактора кода);
  5.  Component Palette (Палитра Компонент) и др.

Для того чтобы начать работу в Delphi, дважды щелкните кнопкой мыши на ее пиктограмме на рабочем столе Windows или выполните команды главного меню Пуск  Программы  Borland Delphi 7  Delphi 7. По умолчанию на переднем плане будет отображаться Окно формы с именем Form1, а за ним будет располагаться Окно редактора кодов с именем Unit1. Все необходимые процедуры и функции нужно будет добавить в процессе разработки нового приложения.

В главном окне находится меню команд, панели инструментов и палитра компонентов.

Имя объекта

Свойства объекта

Значения свойств

Сложное свойство обозначается символом «»

Раскрытое сложное свойство

Командная кнопка, раскрывающая диалоговое окно выбора значений

Поле имени процедуры обработки события

а) Вкладка Properties (Свойства)

б) Вкладка Events (События)

Рис. П2.2. Вкладки окна Инспектора объектов

Окно Object Inspector (рис. П2.2) — окно редактора свойств объектов предназначено для редактирования значений свойств объектов. В терминологии визуального проектирования объекты — это диалоговые окна и элементы управления (поля ввода и вывода, командные кнопки, переключатели и др.). Свойства объекта — это характеристики, определяющие вид, положение и поведение объекта. Например, свойства Width и Height задают размер (ширину и высоту) объекта, свойства Тор и Left — положение объекта на экране, свойство Caption — текст заголовка.

Рис. П2.3. Окно Редактора кода с двумя вкладками и состыкованным с ним окном исследования кодов

Для каждого вновь созданного объекта в окне Инспектора объектов создается относящаяся к нему страница, к которой можно обратиться, если выбрать в поле выбора, находящегося в верхней части окна, имя объекта. Для этого необходимо щелкнуть на кнопке с изображением небольшой стрелки, указывающей вниз, и в появившемся списке имен выбрать нужный объект. Страница объекта включает две вкладки: Properties (Свойства) и Events (События).

Для создания нового проекта существует несколько способов:

1) Выберите последовательно пункты меню File  New  Application. Проект по умолчанию с формой и редактором кода будет создан.

2) Щелкните на пиктограмме проекта New items (), расположенной на панели Standart (Стандартная) и в появившемся диалоговом окне New Items раскройте вкладку New, а в ней щелкните на пиктограмме Application (Приложение).

3) Последовательно выберите пункты меню Project  Add New Project... Как и во втором случае, появится окно New Items, где выбирается пиктограмма Application из вкладки New.

Окно Редактора кода (рис. П2.3) представляет собой полнофункциональный текстовый редактор, с помощью которого можно просматривать и редактировать исходный код программы. Кроме того, редактор кода содержит многочисленные средства, облегчающие создание исходного кода на языке Object Pascal.

В окне Редактора кода каждый модуль кода выводится на отдельной вкладке. Чтобы открыть модуль в Редакторе кода, выберите команду View  Units (Просмотр  Модуль), или нажмите клавиши Ctrl+F12. Затем в окне View Unit (Просмотр модуля) выделите имя нужного модуля и щелкните на кнопке ОК.

По умолчанию с окном Редактора кодов состыковано окно Exploring (Исследователь кода), расположенное слева от редактора кодов. С помощью исследователя кода легко просматривать файлы модулей. На древовидной диаграмме исследователя кода показаны все типы, классы, свойства, методы, глобальные переменные и глобальные процедуры, определенные в модуле кода, загруженного в данный момент в редактор кода. В исследователе кода перечислены также все модули, используемые текущим модулем редактора кода. Чтобы открыть окно исследователя кода (если его не видно), необходимо последовательно выбрать пункты меню View  Code Explorer (Просмотр  Исследователь кода).

2. Постановка задачи

Для демонстрации возможностей Delphi и технологии визуального проектирования разработаем программу, вычисляющую скорость, с которой спортсмен пробежал дистанцию.

Постановка задачи:

Разработать Windows-приложение, позволяющее вычислить скорость бега спортсмена.

Исходные данные:

  1.  длина дистанции (в метрах);
  2.  затраченное время (в мин, сек).

Рис. П2.4. Окно программы вычисления скорости бега

Окно программы во время ее работы должно выглядеть так, как приведено на рис. П2.4.

3. Разработка формы приложения

Для начала работы над новой программой запустите Delphi. Работа над новым проектом начинается с создания стартовой формы.

Стартовая форма создается путем изменения значений свойств формы Form1 и добавления к форме необходимых компонентов (полей ввода и вывода текста, командных кнопок и т.п.).

Свойства формы (табл. П2.1) определяют ее внешний вид: размер, положение на экране, текст заголовка, вид рамки.

Для просмотра и изменения значений свойств формы и ее компонентов используется окно Инспектора объектов (Object Inspector) (см. рис. П2.2). B верхней части окна указывается имя объекта, значения свойств которого отображается в данный момент. В левой колонке вкладки Properties (Свойства) перечислены свойства объекта, а в правой — указаны их значения.

Таблица П2.1

Основные  свойства  формы

Свойство

Описание

Name

Имя формы. В программе имя формы используется для управления формой и доступа к компонентам формы.

Caption

Текст заголовка.

Width

Ширина формы.

Height

Высота формы.

Top

Расстояние от верхней границы формы до верхней границы экрана.

Left

Расстояние от левой границы формы до левой границы экрана.

BorderStyle

Вид границы. Граница может быть обычной (biZizeable), тонкой (biSingle) или отсутствовать (biNone). Если у окна обычная граница, то во время работы программы пользователь может при помощи мыши изменить размер окна. Изменить размер окна с тонкой границей нельзя. Если граница отсутствует, то на экран во время работы программы будет выведено окно без заголовка. Положение и размер такого окна во время работы программы изменить нельзя.

BorderIcons

Кнопки управления окном. Значение свойства определяет, какие кнопки управления окном будут доступны пользователю во время работы программы. Значение свойства задается путем присвоения значений уточняющим свойствам:

biSystemMenu - определяет доступность кнопки Свернуть и кнопки системного меню;

biMinimaze - определяет доступность кнопки Свернуть;

biMaximaze - определяет доступность кнопки Развернуть;

biHelp - определяет доступность кнопки вывода справочной информации.

Icon

Значок в заголовке диалогового окна, обозначающий кнопку вывода системного меню

Color

Цвет фона. Цвет можно задать, указав название цвета или привязку к текущей цветовой схеме OC. Во втором случае цвет определяется текущей цветовой схемой, выбранным компонентом привязки и меняется при изменении цветовой схемы OC.

Font

Шрифт. Шрифт, используемый "по умолчанию" компонентами, находящимися на поверхности формы. Изменение свойства Font формы приводит к автоматическому изменению свойства Font компонента, располагающегося на поверхности формы. То есть компоненты наследуют свойство Font от формы (имеется возможность запретить наследование)

При создании формы в первую очередь следует изменить значение свойства Caption (Заголовок). В задаче надо заменить текст Form1 на «Скорость бега». Чтобы это сделать, нужно в окне Инспектора объектов щелкнуть мышью в строке Caption, в результате чего будет выделено текущее значение свойства, в строке появится курсор, и можно будет ввести текст «Скорость бега».

Аналогичным образом можно установить значения свойств Height и Width, которые определяют высоту и ширину формы. Этим свойствам надо присвоить значения 250 и 330, соответственно. Размер формы можно изменять мышью, если навести ее указатель на одну из границ или угол формы, а затем нажать левую кнопку мыши и протянуть указатель в нужном направлении. Автоматически изменятся и значения свойств свойств Height и Width.

Замечание: размер формы и ее положение на экране, а также размер других элементов управления и их положение на поверхности формы, задают в пикселах, т.e. точках экрана.

Положение диалогового окна на экране после запуска программы соответствует положению формы во время ее разработки, которое определяется значением свойств Tор (отступ от верхней границы экрана) и Left (отступ от левой границы экрана). Значения этих свойств также можно задать путем перемещения окна формы при помощи мыши.

При выборе некоторых свойств, например, BorderStyle, справа от текущего значения свойства появляется значок раскрывающегося списка. Значение таких свойств можно задать путем выбора из списка.

Некоторые свойства являются сложными, т.e. их значение определяется совокупностью значений других (уточняющих) свойств. Перед именами сложных свойств стоит значок «+», при щелчке на котором раскрывается список уточняющих свойств. Например, свойство BorderIcons определяет, какие кнопки управления окном будут доступны во время работы программы. Так, если свойству biMaximize присвоить значение false, то во время работы программы кнопки Развернуть в заголовке окна не будет.

Рядом со значениями некоторых свойств отображается командная кнопка с тремя точками. Это значит, что для задания значения свойства можно воспользоваться дополнительным диалоговым окном. Например, значение сложного свойства Font можно задать путем непосредственного ввода значений уточняющих свойств, а можно воспользоваться стандартным диалоговым окном выбора шрифта.

В табл. П2.2 перечислены свойства формы разрабатываемой программы, которые следует изменить. Остальные свойства оставлены без изменения и в таблице не приведены.

Таблица П2.2

Значения  свойств  формы

Свойство

Значение

Caption

Скорость бега

Height

250

Width

330

BorderStyle

BsSingle

BorderIcons.biMinimize

False

Borderlcons.biMaximize

False

Font.Size

10

В приведенной таблице в именах некоторых свойств есть точка. Это значит, что надо задать значение уточняющего свойства.

Программа вычисления скорости бега должна получить от пользователя исходные данные — длину дистанции и время, за которое спортсмен пробежал дистанцию. В подобных программах данные с клавиатуры, как правило, вводят в поля редактирования. Поэтому в форму надо добавить компонент Edit — поле редактирования.

Рис. П2.5. Компоненты, расположенные на странице Standard

Используемые компоненты находятся на вкладке Standard Палитры компонентов (рис. П2.5).

Палитра компонентов (Component Palette) представляет собой панель с вкладками (страницами), обеспечивающими быстрый доступ к компонентам VCL (Visual Component Libraryбиблиотека визуальных компонентов) или CLX (Cross-platform Library). Компоненты библиотек организованы в иерархическую структуру. Они служат строительными блоками графического пользовательского интерфейса любого приложения Delphi. Во время выполнения приложения компоненты VCL появляются на экране как элементы управления — кнопки, флажки, списки, поля ввода и т.д. Элементы управления составляют подмножество компонентов VCL: каждый элемент управления является компонентом, но не каждый компонент является элементом управления.

К стандартным компонентам Delphi относятся:

 Курсор - не компонент, просто пиктограмма для быстрой отмены выбора какого-либо объекта;

 MainMenu позволяет поместить главное меню в программу. При помещении MainMenu на форму это выглядит, как просто иконка. Иконки данного типа называют "невидимыми компонентом", поскольку они невидимы во время выполнения программы. Создание меню включает три шага: (1) помещение MainMenu на форму, (2) вызов Дизайнера Меню через свойство Items в Инспекторе Объектов, (3) определение пунктов меню в Дизайнере Меню;

 PopupMenu позволяет создавать всплывающие меню. Этот тип меню появляется по щелчку правой кнопки мыши на объекте, к которому привязано данное меню. У всех видимых объектов имеется свойство PopupMenu, где и указывается нужное меню. Создается PopupMenu аналогично главному меню;

 Label служит для отображения текста на экране. Можно изменить шрифт и цвет метки, если дважды щелкнуть на свойство Font в Инспекторе Объектов;

 Edit - стандартный управляющий элемент Windows для ввода. Он может быть использован для отображения короткого фрагмента текста и позволяет пользователю вводить текст во время выполнения программы;

 Memo - иная форма Edit. Подразумевает работу с большими текстами. Memo может переносить слова, сохранять в Буфере обмена (ClipBoard) фрагменты текста и восстанавливать их, и другие основные функции редактора;

 Button позволяет выполнить какие-либо действия при нажатии кнопки во время выполнения программы. Поместив Button на форму, по двойному щелчку можно создать заготовку обработчика события нажатия кнопки. Далее нужно заполнить заготовку кодом (подчеркнуто то, что нужно написать вручную)::

procedure TForm1.Button1Click(Sender: TObject);

begin 

 MessageDlg('Are you there?',mtConfirmation,mbYesNoCancel,0);

end;

 CheckBox отображает строку текста с маленьким окошком рядом. В окошке можно поставить отметку (включить флажок), которая означает, что что-то выбрано;

 RadioButton позволяет выбрать только одну опцию из нескольких (включение-выключение переключателей);

 ListBox нужен для показа прокручиваемого списка;

 ComboBox во многом напоминает ListBox, за исключением того, что позволяет водить информацию в маленьком поле ввода сверху ListBox. Есть несколько типов ComboBox, но наиболее популярен спадающий вниз (drop-down combo box);

 Scrollbar – полоса прокрутки, появляется автоматически в объектах редактирования, ListBox’ах при необходимости прокрутки текста для просмотра;

 GroupBox используется для визуальных целей и для указания Windows, каков порядок перемещения по компонентам на форме (при нажатии клавиши TAB);

 RadioGroup используется аналогично TGroupBox для группировки объектов radioButton;

 Panel – управляющий элемент, похожий на GroupBox, используется в декоративных целях. Чтобы использовать Panel, следует поместить его на форму и затем «положить» другие компоненты на него. Теперь при перемещении Panel будут передвигаться и эти компоненты. Panel используется также для создания линейки инструментов и окна статуса.

Для того чтобы добавить в форму компонент, необходимо в палитре компонентов выбрать этот компонент, щелкнув левой кнопкой мыши на его пиктограмме, далее установить курсор в ту точку формы, в которой должен быть левый верхний угол компонента и еще раз щелкнуть левой кнопкой мыши. В результате в форме появляется компонент стандартного размера.

Размер компонента можно задать в процессе его добавления к форме. Для этого надо после выбора компонента из палитры поместить курсор мыши в ту точку формы, где должен находиться левый верхний угол компонента, нажать левую кнопку мыши и, удерживая ее нажатой, переместить курсор в точку, где должен находиться правый нижний угол компонента, и отпустить кнопку мыши. На форме появится компонент нужного размера.

Каждому компоненту Delphi присваивает имя, которое состоит из названия компонента и его порядкового номера. Например, если к форме добавить два компонента Edit (), то их имена будут Edit1 и Edit2. Программист, путем изменения значения свойства Name, может изменить имя компонента.

Редактирование свойств компонента осуществляется в Инспекторе объектов. Для редактирования необходимо выделить компонент щелчком мыши. Если необходимо выделить несколько компонент, то щелчки мыши по выделяемым объектам выполняются при нажатой клавише Shift.

В табл. П2.3 перечислены основные свойства компонента Edit — поля редактирования.

Таблица П2.3

Свойства  компонента  Edit

Свойство

Описание

Name

Имя компонента. Используется в программе для доступа к компоненту и его свойствам, в частности — для доступа к тексту, введенному в поле редактирования

Text

Текст, находящийся в поле ввода и редактирования

Left

Расстояние от левой границы компонента до левой границы формы

Top

Расстояние от верхней границы компонента до верхней границы формы

Height

Высота поля

Width

Ширина поля

Font

Шрифт, используемый для отображения вводимого текста

ParentFont

Признак наследования компонентом характеристик шрифта формы, на которой находится компонент. Если значение свойства равно True, то при изменении свойства Font формы автоматически меняется значение свойства Font компонента

Delphi позволяет изменить размер и положение компонента при помощи мыши.

Для того чтобы изменить положение компонента, необходимо установить курсор мыши на его изображение, нажать левую кнопку мыши и, удерживая ее нажатой, переместить контур компонента в нужную точку формы, затем отпустить кнопку мыши. Во время перемещения компонента отображаются текущие значения координат левого верхнего угла компонента (значения свойств Left и Тор).

Для того чтобы изменить размер компонента, необходимо его выделить, установить указатель мыши на один из маркеров, помечающих границу компонента, нажать левую кнопку мыши и, удерживая ее нажатой, изменить положение границы компонента. Затем отпустить кнопку мыши. Во время изменения размера компонента отображаются текущие значения свойств Height и Width.

В табл. П2.4 приведены значения свойств полей редактирования Edit1 и Edit2. Компонент Edit1 предназначен для ввода длины дистанции, Edit2 — для ввода времени. Обратите внимание на то, что значением свойства Text обоих компонентов является пустая строка.

Таблица П2.4

Значения  свойств  компонент Edit

Name

Edit1

Edit2

Text

Top

56

88

Left

144

144

Height

24

24

Width

121

121

Помимо полей редактирования в окне программы должна находиться краткая информация о программе и назначении полей ввода. Для вывода текста в форму используют поля вывода текста. Поле вывода текста — это компонент Label ().

В форму разрабатываемого приложения надо добавить четыре компонента Label. Первое поле предназначено для вывода информационного сообщения, второе и третье — для вывода информации о назначении полей ввода, четвертое поле — для вывода результата расчета — скорости. Свойства компонента Label перечислены в табл. П2.5.

Таблица П2.5

 Свойства  компонента  Label

Свойство

Пояснение

Name

Имя компонента. Используется в программе для доступа к компоненту и его свойствам

Caption

Отображаемый текст

Font

Шрифт, используемый для отображения текста

ParentFont

Признак наследования компонентом характеристик шрифта формы, на которой находится компонент. Если значение свойства равно True, текст выводится шрифтом, установленным для формы

AutoSize

Признак того, что размер поля определяется его содержимым

Left

Расстояние от левой границы поля вывода до левой границы формы

Top

Расстояние от верхней границы поля вывода до верхней границы формы

Height

Высота поля вывода

Width

Ширина поля вывода

WordWrap

Признак того, что слова, которые не помещаются в текущей строке, автоматически переносятся на следующую строку

Следует обратить внимание на свойства AutoSize и WordWrap. Эти свойства нужно использовать, если поле вывода должно содержать несколько строк текста. После добавления к форме компонента Label значение свойства AutoSize равно True, т.е. размер поля определяется автоматически в процессе изменения значения свойства Caption. Если надо, чтобы находящийся в поле вывода текст занимал несколько строк, то необходимо сразу после добавления к форме компонента Label присвоить свойству AutoSize значение False, свойству WordWrap — значение True. Затем изменением значений свойств Width и Height нужно задать требуемый размер поля. Только после этого можно ввести в свойство Caption текст, который должен быть выведен в поле.

Значение свойства Caption вводится как одна строка. Расположение текста внутри поля вывода определяется размером поля, значением свойств AutoSize и WordWrap, a также зависит от характеристик используемого для вывода текста шрифта.

В соответствии с задачей в форму нужно ввести четыре компонента Label, для которых установить значения, перечисленные в табл. П2.6.

Таблица П2.6

 Значения  свойств  компонент  Label

Свойство

Компонент

Name

Labell

Label2

Label3

Label 4

AutoSize

False

True

True

False

WordWrap

True

False

False

True

Caption

Программа вычислит скорость, с которой спортсмен пробежал дистанцию

Дистанция (метров)

Время (мин, сек)

Top

8

56

88

128

Left

8

8

8

8

Height

41

16

16

73

Width

233

104

122

185

Последнее, что надо сделать на этапе создания формы — добавить в форму две командные кнопки: Вычислить и Завершить. Назначение этих кнопок очевидно.

Командная кнопка Button () добавляется в форму точно так же, как и другие компоненты. Свойства компонента приведены в табл. П2.7.

Таблица П2.7

 Свойства  компонента  Button

Свойство

Описание

Name

Имя компонента. Используется в программе для доступа к компоненту и его свойствам

Caption

Текст на кнопке

Enabled

Признак доступности кнопки. Кнопка доступна, если значение свойства равно True, и не доступна, если значение свойства равно False

Left

Расстояние от левой границы кнопки до левой границы формы

Top

Расстояние от верхней границы кнопки до верхней границы формы

Height

Высота кнопки

Width

Ширина кнопки

Label1

Label2

Label3

Label4

Edit1

Edit2

Button1

Button2

Form1

Рис. П2.6. Вид формы приложения Скорость бега

После добавления к форме двух командных кнопок нужно установить значения их свойств в соответствии с табл. П2.8.

Таблица П2.8

 Значения  свойств  компонент  Button

Name

Button1

Button2

Caption

Вычислить

Завершить

Top

128

168

Left

216

216

Height

25

25

Width

97

97

Окончательный вид формы разрабатываемого приложения приведен на рис. П2.6.

4. Разработка процедур обработки событий

Вид созданной формы подсказывает, как работает приложение. Пользователь должен ввести в поля редактирования исходные данные и щелкнуть мышью на кнопке Вычислить. Щелчок на изображении командной кнопки — это пример того, что в Windows называется событием.

Событие (Event) — это то, что происходит во время работы программы. В Delphi каждому событию присвоено имя. Например, щелчок кнопкой мыши — это событие OnClick, двойной щелчок мышью — событие OnDblclick.

В табл. П2.9 приведены некоторые события Windows.

Таблица П2.9

 События  Windows

Событие

Происходит

OnClick

При щелчке кнопкой мыши

OnDblClick

При двойном щелчке кнопкой мыши

OnMouseDown

При нажатии кнопки мыши

OnMouseUp

При отпускании кнопки мыши

OnMouseMove

При перемещении мыши

OnKeyPress

При нажатии клавиши клавиатуры

OnKeyDown

При нажатии клавиши клавиатуры. События OnKeyDown и OnKeyPress — это чередующиеся, повторяющиеся события, которые происходят до тех пор, пока не будет отпущена удерживаемая клавиша (в этот момент происходит событие OnKeyUp)

OnKeyUp

При отпускании нажатой клавиши клавиатуры

OnCreate

При создании объекта (формы, элемента управления). Процедура обработки этого события обычно используется для инициализации переменных, выполнения подготовительных действий

OnPaint

При появлении окна на экране в начале работы программы, после появления части окна, которая, например, была закрыта другим окном и в других случаях.

OnEnter

При получении элементом управления фокуса

OnExit

При потере элементом управления фокуса

Реакцией на событие должно быть какое-либо действие. В Delphi реакция на событие реализуется как процедура обработки события. Таким образом, для того, чтобы программа выполняла некоторую работу в ответ на действия пользователя, программист должен написать процедуру обработки соответствующего события. Следует обратить внимание, на то, что значительную часть обработки событий берет на себя компонент. Поэтому программист должен разрабатывать процедуру обработки события только в том случае, если реакция на событие отличается от стандартной или не определена. Например, если по условию задачи ограничений на символы, вводимые в поле Edit, нет, то процедуру обработки события onKeyPress писать не надо, т.к. во время работы программы будет использована стандартная (скрытая от программиста) процедура обработки этого события.

Методику создания процедур обработки событий рассмотрим на примере процедуры обработки события OnClick для командной кнопки Вычислить.

Чтобы приступить к созданию процедуры обработки события, надо сначала в окне Инспектора объектов выбрать компонент, для которого создается процедура обработки события. Затем, в этом же окне нужно раскрыть вкладку Events (События). В левой колонке вкладки Events (см. рис. П2.2б) перечислены имена событий, которые может воспринимать выбранный компонент (объект). Если для события определена (написана) процедура обработки события, то в правой колонке, рядом с именем события, выводится имя этой процедуры.

Для того чтобы создать функцию обработки события, нужно сделать двойной щелчок мышью в поле имени процедуры обработки соответствующего события. В результате этого откроется окно редактора кода, в которое будет добавлен шаблон функции обработки события, а в окне Инспектора объектов рядом с именем события, появится имя функции его обработки.

Delphi присваивает функции обработки события имя, которое состоит из двух частей. Первая часть имени идентифицирует форму, содержащую объект (компонент), для которого создана процедура обработки события. Вторая часть имени идентифицирует сам объект и событие. В рассматриваемом примере имя формы — Form1, имя командной кнопки— Button1, а имя события — Click.

В окне редактора кода между словами begin и end можно печатать инструкции, реализующие функцию обработки события.

В листинге 1 приведен текст функции обработки события OnClick для командной кнопки Вычислить.

Листинг 1. Процедура обработки события OnClick на кнопке Вычислить

// нажатие кнопки Вычислить

procedure TForm1.Button1Click(Sender: TObject);

var

 dist: integer;       // дистанция, метров

    t: real;          // время, как дробное число

  min: integer;       // время, минуты

  sek: integer;       // время, секунды

    v: real;          // скорость

begin

 // получить исходные данные из полей ввода

 dist:=strToInt(Edit1.Text);

    t:=StrToFloat(Edit2.Text);

 // предварительные преобразования

 min:=Trunc(t);       // количество минут — это целая часть числа t

 sek:=Trunc(t*100) mod 100;   // количество секунд — это дробная часть

                              // числа  t

 // вычисление

 v:=(dist/1000)/((min*60+sek)/3600);

 // вывод результата

 label4.Caption:='Дистанция: '+Edit1.Text+' м'+#13+

                 'Время: '+IntToStr(min)+ ' мин '+IntToStr(sek)+' сек '+#13+

                 'Скорость: '+FloatToStrF(v,ffFixed,4,2)+'км/час';

end;

Процедура Button1Click выполняет расчет скорости и выводит результат расчета в поле Label4. Исходные данные вводятся из полей редактирования Edit1 и Edit2 путем обращения к свойству Text. Свойство Text содержит строку символов, которую во время работы программы введет пользователь. Для правильной работы программы строка должна содержать только цифры. Для преобразования строки в числа в программе используются функции StrToInt и StrToFloat.

Функция StrToInt проверяет символы строки, переданной ей в качестве параметра (Edit1.Text — это содержимое поля Edit1), на допустимость, и, если все символы верные, возвращает соответствующее число. Это число записывается в переменную dist. Аналогичным образом работает функция StrToFloat, которая возвращает дробное число, соответствующее содержимому поля Edit2. Это число записывается в переменную t.

После того как исходные данные будут помещены в переменные dist и t, выполняются подготовительные действия и расчет. Первоначально с использованием функции Trunc, которая «отбрасывает» дробную часть числа, выделяется целая часть переменной t — это количество минут. Значением выражения Trunc(t*100) mod 100 является количество секунд. Вычисляется это выражение так. Сначала число t умножается на 100. Полученное значение передается функции Trunc, которая возвращает целую часть результата умножения t на 100. Полученное таким образом число делится по модулю на 100. Результат деления по модулю — это остаток от деления.

После того как все данные готовы, выполняется расчет. Так как скорость должна быть выражена в км/час, то значения дистанции и времени, выраженные в метрах и минутах, преобразуются в километры и часы.

Вычисленное значение скорости выводится в поле Labei4 путем присваивания значения свойству Caption. Для преобразования чисел в строки используются функции IntToStr и FloatToStr.

В результате нажатия кнопки Завершить программа должна завершить работу. Чтобы это произошло, надо закрыть, убрать с экрана, главное окно программы. Делается это при помощи метода Close. Процедура обработки события OnClick для кнопки Завершить приведена в листинге 2.

Листинг 2. Процедура обработки события OnClick на кнопке Завершить

// нажатие кнопки Завершить

procedure TForm1.Button2Click(Sender: TObject);

begin

 Form1.Close; // закрыть главное окно программы

end;

5. Структура проекта

Проект Delphi представляет собой набор программных единиц — модулей. Один из модулей — главный, содержит инструкции, с которых начинается выполнение программы. Главный модуль приложения полностью формируется Delphi.

Главный модуль представляет собой файл с расширением dpr. Для того чтобы увидеть текст главного модуля приложения, нужно из меню Project выбрать команду View Source.

В листинге 3 приведен текст главного модуля программы вычисления скорости бега.

Листинг 3. Главный модуль приложения Скорость бега

program vrun1;

uses

 Forms,

 vrun in 'vrun.pas' {Form1};

{$R *.res}

begin

 Application.Initialize;

 Application.CreateForm(TForm1, Form1);

 Application.Run;

end.

Начинается главный модуль словом program, за которым следует имя программы, совпадающее с именем проекта. Имя проекта задается в момент сохранения проекта, и оно определяет имя создаваемого компилятором исполняемого файла программы. Далее за словом uses следуют имена используемых модулей: библиотечного модуля Forms и модуля формы vrun1.pas.

Строка {$R*.RES} — это директива компилятору подключить файл ресурсов. Файл ресурсов содержит ресурсы приложения: пиктограммы, курсоры, битовые образы и др. Звездочка показывает, что имя файла ресурсов такое же, как и у файла проекта, но с расширением res.

Файл ресурсов не является текстовым файлом, поэтому просмотреть его с помощью редактора текста нельзя. Для работы с файлами ресурсов используют специальные программы, например, Resource Workshop. Можно также применять входящую в состав Delphi утилиту Image Editor, доступ к которой можно получить выбором из меню Tools команды Image Editor.

Исполняемая часть главного модуля находится между инструкциями begin и end. Инструкции исполняемой части обеспечивают инициализацию приложения и вывод на экран стартового окна.

Помимо главного модуля каждая программа включает в себя еще как минимум один модуль формы, который содержит описание стартовой формы приложения и поддерживающих ее работу процедур. В Delphi каждой форме соответствует свой модуль.

В листинге 4 приведен текст модуля программы вычисления скорости бега.

Листинг 4. Модуль программы Скорость бега

unit vrun;

interface

uses

 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

 Dialogs, StdCtrls;

type

 TForm1 = class(TForm)

   Edit1: TEdit;

   Edit2: TEdit;

   Label1: TLabel;

   Label2: TLabel;

   Label3: TLabel;

   Label4: TLabel;

   Button1: TButton;

   Button2: TButton;

   procedure Button1Click(Sender: TObject);

   procedure Button2Click(Sender: TObject);

 private

   { Private declarations }

 public

   { Public declarations }

 end;

var

 Form1: TForm1;

implementation

{$R *.dfm}

// нажатие кнопки Вычислить

procedure TForm1.Button1Click(Sender: TObject);

var

 dist: integer;       // дистанция, метров

    t: real;          // время, как дробное число

  min: integer;       // время, минуты

  sek: integer;       // время, секунды

    v: real;          // скорость

begin

 // получить исходные данные из полей ввода

 dist:=strToInt(Edit1.Text);

    t:=StrToFloat(Edit2.Text);

 // предварительные преобразования

 min:=Trunc(t);       // количество минут — это целая часть числа t

 sek:=Trunc(t*100) mod 100;   // количество секунд — это дробная часть

                              // числа  t

 // вычисление

 v:=(dist/1000)/((min*60+sek)/3600);

 // вывод результата

 label4.Caption:='Дистанция: '+Edit1.Text+' м'+#13+

                 'Время: '+IntToStr(min)+ ' мин '+IntToStr(sek)+' сек '+#13+

                 'Скорость: '+FloatToStrF(v,ffFixed,4,2)+'км/час';

end;

// нажатие кнопки Завершить

procedure TForm1.Button2Click(Sender: TObject);

begin

 Form1.Close; // закрыть главное окно программы

end;

end.

Начинается модуль словом unit, за которым следует имя модуля. Именно это имя упоминается в списке используемых модулей в инструкции uses главного модуля приложения, текст которого приведен в листинге 3.

Модуль состоит из следующих разделов:

  1.  интерфейса;
  2.  реализации;
  3.  инициализации.

Раздел интерфейса (начинается словом interface) сообщает компилятору, какая часть модуля является доступной для других модулей программы. В этом разделе перечислены (после слова uses) библиотечные модули, используемые данным модулем. Также здесь находится сформированное Delphi описание формы, которое следует за словом type.

Раздел реализации открывается словом implementation и содержит объявления локальных переменных, процедур и функций, поддерживающих работу формы. Начинается раздел реализации директивой {$R *.DFM}, указывающей компилятору, что в процессе генерации выполняемого файла надо использовать описание формы. Описание формы находится в файле с расширением dfm, имя которого совпадает с именем модуля. Файл описания формы генерируется средой Delphi на основе внешнего вида формы.

За директивой {$R *.DFM} следуют процедуры обработки событий для формы и ее компонентов. Сюда же программист может поместить другие процедуры и функции.

Раздел инициализации позволяет выполнить инициализацию переменных модуля. Инструкции раздела инициализации располагаются после раздела реализации (описания всех процедур и функций) между begin и end. Если раздел инициализации не содержит инструкций, то слово begin не указывается.

Следует отметить, что значительное количество инструкций модуля формирует Delphi. Например, Delphi, анализируя действия программиста по созданию формы, генерирует описание класса формы (после слова type).

6. Сохранение  проекта  и  компиляция

Проект — это набор файлов, используя которые компилятор создает исполняемый файл программы (ехе-файл). В простейшем случае проект состоит из файла описания проекта (dpr-файл), файла главного модуля (pas-файл), файла ресурсов (res-файл), файла описания формы (dfm-файл), файла описания функций (срр-файл) и некоторых других файлов.

Чтобы сохранить проект, нужно из меню File выбрать команду Save Project As. Если проект еще ни разу не был сохранен, то Delphi сначала предложит сохранить модуль (содержимое окна редактора кода), поэтому на экране появится окно Save Unit1 As. B этом окне надо выбрать папку, предназначенную для файлов проекта, и ввести имя модуля. После нажатия кнопки Сохранить, появляется следующее окно, в котором необходимо ввести имя файла проекта.

Имена файлов модуля (pas-файл) и проекта (dpr-файл) должны быть разными. Имя генерируемого компилятором исполняемого файла совпадает с именем проекта. Поэтому файлу проекта следует присвоить такое имя, которое должен иметь исполняемый файл программы, а файлу модуля — какое-либо другое имя, например, полученное путем добавления к имени файла проекта порядкового номера модуля.

Компиляция — это процесс преобразования исходной программы в исполняемую. Процесс компиляции состоит из двух этапов. На первом этапе выполняется проверка текста программы на отсутствие ошибок, на втором — генерируется исполняемая программа — ехе-файл.

После ввода текста функции обработки события и сохранения проекта можно из меню Project выбрать команду Compile и выполнить компиляцию. Процесс и результат компиляции отражаются в диалоговом окне Compiling. В это окно компилятор выводит количество ошибок (Errors), предупреждений (Warnings) и подсказок (Hints). Сами сообщения об ошибках, предупреждения и подсказки находятся в нижней части окна редактора кода.

Если во время компиляции окна Compiling на экране нет, то выберите из меню Tools команду Environment options и на вкладке Preferences установите во включенное состояние переключатель Show compiler progress.

Компилятор генерирует исполняемую программу лишь в том случае, если исходный текст не содержит синтаксических ошибок. В большинстве случаев в только что набранной программе есть ошибки. Программист должен их устранить.

Чтобы перейти к фрагменту кода, который содержит ошибку, надо установить курсор в строку с сообщением об ошибке и из контекстного меню выбрать команду Edit source.

Процесс устранения ошибок носит итерационный характер. Обычно сначала устраняются наиболее очевидные ошибки, например, декларируются не объявленные переменные. После очередного внесения изменений в текст программы выполняется повторная компиляция. Следует учитывать тот факт, что компилятор не всегда может точно локализовать ошибку. Поэтому, анализируя фрагмент программы, который, по мнению компилятора, содержит ошибку, нужно обращать внимание не только на тот фрагмент кода, на который компилятор установил курсор, но и на тот, который находится в предыдущей строке.

В табл. П2.10 перечислены типичные ошибки и соответствующие им сообщения компилятора.

Таблица П2.10

Типовые  ошибки,  обнаруживаемые  при  компиляции

Сообщение компилятора

Вероятная причина

Undeclared identifier

(Необъявленный идентификатор)

а) Используется переменная, не объявленная в разделе var.

б) Ошибка при написании имени объявленной переменной. Например, объявлена переменная Summa, а в тексте программы написано: Suma := 0.

в) Ошибка при написании имени инструкции. Например, вместо repeat написано repet

Unterminated string

(Незавершенная строка)

При записи строковой константы, например сообщения, не поставлена завершающая кавычка

Incompatible types ... and ...

(Несовместимые типы)

В инструкции присваивания тип выражения не соответствует или не может быть приведен к типу переменной, получающей значение выражения

Missing operator or semicolon

(Отсутствует оператор или точка с запятой)

После инструкции не поставлена точка с запятой

Если в программе нет синтаксических ошибок, компилятор создает исполняемый файл программы. Имя исполняемого файла такое же, как и у файла проекта, а расширение — exe. Delphi помещает исполняемый файл в тот же каталог, где находится файл проекта.

При обнаружении в программе неточностей, которые не являются ошибками, компилятор выводит подсказки (Hints) и предупреждения (Warnings). Например, наиболее часто выводимой подсказкой является сообщение об объявленной, но не используемой переменной:

Variable ... is declared but never used in ...

В табл. П2.11 приведены предупреждения, наиболее часто выводимые компилятором.

Таблица П2.11

Типовые  предупреждения  компилятора

Предупреждение

Вероятная причина

Variable ... is declared but never used in ...

Переменная не используется

Variable ... might not have been initialized.

(вероятно, используется не инициализированная переменная)

В программе нет инструкции, которая присваивает переменной начальное значение

Пробный запуск программы можно выполнить непосредственно из Delphi, не завершая работу со средой разработки. Для этого нужно из меню Run выбрать команду Run или щелкнуть на соответствующей кнопке панели инструментов , либо нажать клавишу F9.

Во время работы приложения могут возникать ошибки, которые называются ошибками времени выполнения (run-time errors) или исключениями (exceptions). B большинстве случаев причинами исключений являются неверные исходные данные. Например, если во время работы программы вычисления скорости бега в поле Время ввести 3.20, т.е. для отделения дробной части числа от целой использовать точку, то в результате нажатия кнопки Вычислить на экране появится окно с сообщением об ошибке.

Причина возникновения ошибки заключается в следующем. В тексте программы дробная часть числа от целой отделяется точкой. При вводе исходных данных в поле редактирования пользователь может (если не предпринять никаких дополнительных усилий) отделить дробную часть числа от целой точкой или запятой. Какой из этих двух символов является допустимым, зависит от настройки Windows.

Если в настройке Windows указано, что разделитель целой и дробной частей числа — запятая (для Украины — это стандартная установка), а пользователь во время работы программы введет в поле редактирования, например, строку 3.20, то при выполнении инструкции

t = StrToFloat(Edit2.Text)

возникнет исключение, т.к. при стандартной для Украины настройке Windows содержимое поля Edit2 и, следовательно, аргумент функции StrToFloat не является изображением дробного числа.

Если программа запущена из среды разработки, то при возникновении исключения выполнение программы приостанавливается и на экране появляется окно с сообщением об ошибке и ее типе.

После нажатия кнопки OK в окне редактора кода будет выделена строка программы, содержащая инструкцию, выполнение которой вызвало исключение. Программист может продолжить выполнение программы (для этого надо из меню Run выбрать команду Step Over) или прервать ее выполнение. В последнем случае нужно из меню Run выбрать команду Program Reset.

При разработке программы программист должен постараться предусмотреть все возможные варианты некорректных действий пользователя, которые могут привести к возникновению ошибок времени выполнения (исключения), и обеспечить способы защиты от них.

После внесения изменений проект следует сохранить. Для этого нужно из меню File выбрать команду Save all.

Приложение  3

СТРУКТУРА  ТА  ЗМІСТ

ПОЯСНЮВАЛЬНОЇ  ЗАПИСКИ  ДО  КУРСОВОЇ  РОБОТИ

Курсові проекти та курсові роботи потрібно виконувати й оформляти у відповідності до державних стандартів, пояснювальну записку за ДСТУ 3008-95. Державний стандарт України. Документація. Звіти в сфері науки і техніки.

Пояснювальна записка є науково-технічним документом, який вміщує повні систематизовані відомості про виконану роботу.

1. Загальні  вимоги  до  пояснювальної  записки:

  1.  Чітка та логічна послідовність викладення матеріалу;
  2.  Переконливість аргументації;
  3.  Стислість і точність формулювань, які виключають можливість

неоднозначного тлумачення;

  1.  Конкретність викладення результатів роботи;
  2.  Обґрунтованість рекомендацій та пропозицій.

2. Структура  пояснювальної  записки

Пояснювальна записка складається з таких розділів:

  1.  Титульний аркуш (додаток  4);
  2.  Завдання на виконання курсового проекту (роботи);
  3.  Реферат;
  4.  Зміст;
  5.  Перелік умовних позначень, символів, одиниць, скорочень і термінів;
  6.  Вступ;
  7.  Основна частина, в розділах якої розкривається зміст

курсового проекту (роботи);

  1.  Висновки та рекомендації;
  2.  Список використаної літератури;
  3.  Додатки.

3. Вимоги до змісту пояснювальної записки

1.  Реферат повинен вміщувати відомості про обсяг пояснювальної записки,  кількість ілюстрацій,  таблиць та використаних джерел.

У тексті реферату необхідно відобразити об'єкт дослідження, мету роботи, одержані результати, їх новизну та область використання.

Оптимальний обсяг тексту реферату 1...2 с.

2. Вступ. У вступі до пояснювальної записки необхідно показати переваги використання системи Delphi для проектування прикладних програм. Виділити та пояснити метод об′єктно-орієнтованого проектування програмних продуктів.

3. Основна частина. Текст основної  частини  ділять на розділи, підрозділи, пункти. Рекомендований перелік розділів даної курсової роботи:

  1.  Постановка задачи, включая выбор формы представления исходных данных

      и результатов;

  1.  Математическое описание (формализация) задачи.
  2. Разработка интерфейса пользователя: 

        а)   Экранная форма (окно приложения).

        б)   Описание используемых компонент (их назначение, свойства, события).

  1. Алгоритмизация и программирование решения  задачи:

        а)  Схема алгоритма решения задачи.

        б)  Листинг программы.

  1. Отладка и тестирование программы:

        а)  Отладочный вариант (выбор исходных данных, расчет результатов).

б) Пример результатов работы программы (для отладочного варианта).

  1.  Инструкция пользователю программы.

4. Висновки та рекомендації. У цьому розділі подають короткі висновки за результатами виконаної курсової роботи, формулюють пропозиції щодо удосконалення розробленої програми.

4. Оформлення пояснювальної записки

  1.   Пояснювальну записку каліграфічно пишуть або печатають  (шрифт Times New Roman, розмір 12 пт., заголовки розділів та підрозділів – 14 пт.) з одного боку аркуша білого  паперу формату А4  з розмірами полів: ліве — 30 мм, праве —10 мм, верхнє — 20 мм, нижнє — 20 мм. Номери сторінок – внизу, праворуч.
  2.   Текст основної  частини  ділять на розділи, підрозділи, пункти.  Заголовки   розділів та підрозділів печатають напівжирним шрифтом (пишуть)  з абзацу рядковими літерами (крім  першої  великої). Крапку  в кінці заголовка не ставлять.
  3.   Кожний розділ необхідно починати з нової сторінки.
  4.   Листи пояснювальної записки бажано вкласти в файли, які помістити в папку.

Додаток  4

Державний  університет  інформаційно-комунікаційних  технологій

Інститут  інформаційних технології

Кафедра  Комп’ютерних  систем  та  мереж

КУРСОВА  РОБОТА

(пояснювальна записка)

з дисципліни

Компютерни інформаційні технології

Тема

"Калькулятор"  

Варіант  №  7   

Спеціальність:   КСМ

Виконав: студент  групи  КСМ-11   Петренко  Павло  Петрович

Перевірив:  .

Київ 2010


 

А также другие работы, которые могут Вас заинтересовать

38464. Организация оперативно-тактических действий подразделений по чрезвычайным ситуациям Хойникского гарнизона при ликвидации ЧС на аммиачно-холодильном участке Хойникского РайПО, расположенного по ул. Колесника 61, г. Хойники 460.5 KB
  Свойства аммиака. Прогнозирование масштабов заражения. Действия подразделений по чрезвычайным ситуациям. Экономическое обоснование затрат на ликвидацию ЧС выброс разлив аммиака. Основные формулы и справочные данные для расчета экономического обоснования затрат на ликвидацию ЧС выброс разлив аммиака. Расчет затрат на ликвидацию ЧС выброс разлив аммиака Мероприятия по охране труда.
38468. Производство РЭС на безвыводных ЧИП-ЭРЭ и миниатюрных ЭРЭ с применением поверхностного монтажа 1.52 MB
  Для обеспечения механической прочности изделия нужно выбрать материал печатной платы с достаточной прочностью стеклотекстолит. Габариты изделия должны быть не более 125x70x30 мм.2 Расчет надежности изделия Исходные данные вносим в таблицу 1 в которой содержится перечень тип и количество используемых компонентов и произведем их анализ. Надёжность – свойство изделия выполнять заданные функции в определенных условиях эксплуатации при сохранении значений основных параметров в заранее установленных пределах.
38469. Программы производственной преддипломной практики, итогового междисциплинарного экзамена и методические указания по выполнению выпускных квалификационных работ 372 KB
  Цель прохождения студентами производственной преддипломной практики – закрепить и расширить теоретические знания, полученные в университете по дисциплинам: «Бухгалтерский финансовый учет», «Бухгалтерский управленческий учет», «Комплексный экономический анализ хозяйственной деятельности», «Контроль и ревизия», «Бухгалтерская финансовая отчетность» и других дисциплин.
38470. Перспективи підвищення ефективності функціонування та ролі фінансового ринку в Україні 3.86 MB
  Фінансовий ринок - це складова частина інфраструктури фінансової системи, яка забезпечує територіальне (місце, віртуальне місце), часове і функціональне здійснення трансакцій субєктів національної та міжнародної економіки, встановлення рівноважної ціни за відповідних обсягів купівлі-продажу фінансових активів, інструментів, технологій, а також надання фінансових послуг, необхідних для здійснення господарської та фінансової діяльності.
38471. МЕНЕДЖМЕНТ ОРГАНИЗАЦИИ 1.18 MB
  Анализируется структура дипломного проекта устанавливается последовательность работ выполняемых при его подготовке. Определяются требования к оформлению дипломного проекта и правила проведения его защиты.4 Отчет по практике [4] 2 МЕСТО И НАЗНАЧЕНИЕ ДИПЛОМНОГО ПРОЕКТИРОВАНИЯ В УЧЕБНОМ ПРОЦЕССЕ [5] 3 ЦЕЛИ ДИПЛОМНОГО ПРОЕКТИРОВАНИЯ [6] 4 ВЫБОР ТЕМЫ ДИПЛОМНОГО ПРОЕКТА [7] 5 СРОКИ РАЗРАБОТКИ ДИПЛОМНОГО ПРОЕКТА [8] 6 МЕТОДИЧЕСКАЯ ОСНОВА ФОРМИРОВАНИЯ ДИПЛОМНОГО ПРОЕКТА [8. Эта часть проекта особо важная для дипломного проекта.
38472. Менеджмент организации. Методические рекомендации к производственной практике 235 KB
  Производственная практика студентов проводится на предприятиях производственной и финансово-банковской сфер, в научно-исследовательских учреждениях, государственных организациях и структурах, а также в компаниях и фирмах различных форм собственности.