Лабораторная работа № 1. Создание консольных приложений
Содержание
Содержание. 1
Лабораторная работа № 1. Создание консольных приложений. 3
Задание на программирование: 3
Контрольный пример 1. 3
Контрольный пример 2. 3
Контрольный пример 3. 3
Задание на лабораторное исследование: 3
Инструкция по выполнению.. 3
Лабораторная работа № 2. Создание оконных диалоговых приложений. 6
Задание на программирование: 6
Контрольный пример 1. 6
Контрольный пример 2. 6
Контрольный пример 3. 6
Контрольный пример 4. 6
Задание на лабораторное исследование: 6
Инструкция по выполнению.. 7
Лабораторная работа № 3. Создание оконных интерактивных приложений. 16
Задание на программирование: 16
Контрольный пример 1. 16
Контрольный пример 2. 16
Контрольный пример 3. 16
Контрольный пример 4. 16
Задание на лабораторное исследование: 16
Инструкция по выполнению.. 17
Лабораторная работа № 4. Создание оконных интерактивных приложений. Динамические массивы 23
Задание на программирование: 23
Контрольный пример 1. 23
Контрольный пример 2. 23
Контрольный пример 3. 23
Задание на лабораторное исследование: 24
Инструкция по выполнению.. 24
Лабораторная работа № 5. Создание оконных интерактивных приложений. Построение диаграмм 31
Задание на программирование: 31
Контрольный пример 1. 31
Задание на лабораторное исследование: 32
Инструкция по выполнению.. 32
Лабораторная работа № 6. Создание графических приложений. 38
Задание на программирование: 38
Задание на лабораторное исследование: 38
Инструкция по выполнению.. 38
Лабораторная работа № 7. Создание многооконных модальных приложений. 44
Задание на программирование: 44
Контрольный пример 1. 44
Контрольный пример 2. 45
Контрольный пример 3. 45
Контрольный пример 4. 45
Задание на лабораторное исследование: 46
Инструкция по выполнению.. 46
Лабораторная работа № 1. Создание консольных приложений
Задание на программирование:
Дано: A, B, C – коэффициенты квадратного уравнения Ax2+Bx+C=0. Написать программу нахождения его действительных корней, работающую в консольном режиме.
Контрольный пример 1
Исходные данные
A=2, B=0, C=–2.
Ожидаемый результат
X1=–1; X2=1.
Контрольный пример 2
Исходные данные
A=2, B=0, C=1.
Ожидаемый результат
Действительных корней нет
Контрольный пример 3
Исходные данные
A=1, B=–2, C=1.
Ожидаемый результат
X=1.
Задание на лабораторное исследование:
- Изучить возможности текстового редактора среды программирования Delphi 7;
- Используя средства отладки среды программирования Delphi 7, составить протокол прохождения контрольных примеров.
Инструкция по выполнению
- Средствами Windows создайте свою рабочую папку, в которой будете хранить результаты выполнения задания на программирования. Назовите ее, например, Lab_1
- Запустите среду программирования Delphi 7.
- Создайте новое консольное приложение, обратившись к пункту меню « File\New\Ather\Console Application ».
- В появившемся окне редактирования Project1 наберите приведенный ниже текст исходной программы[1].
program Lab1;
uses
SysUtils;
var
A, B, C, D, X, X1, X2: real;
{$APPTYPE CONSOLE}
begin
Write('A, B, C=? ');
ReadLn(A, B, C);
D: =Sqr(B)-4*A*C;
if D< 0
Then
WriteLn(' No solutions')
Else
if D=0
Then
Begin
X: =-B/(2*A);
WriteLn('X=', X: 10: 3)
End
Else
Begin
X1: =(-B-Sqrt(D))/(2*A);
X2: =(-B+Sqrt(D))/(2*A);
WriteLn('X1=', X1: 10: 3, ' X2=', X2: 10: 3)
end;
ReadLn;
end.
- Сохраните исходный файл проекта в своей рабочей папке. Для этого однократно щелкните левой клавишей мыши по кнопке
« Save (Ctrl+S) ». Назовите файл, например, Lab_1. - Выполните отладку и запуск программы. Для этого однократно щелкните по кнопке
« Run (F9) ». - Если компилятор Delphi обнаружил ошибки, исправьте их. Повторяйте п.п. 6, 7 до тех пор, пока не будут исправлены все синтаксические ошибки.
- На экране должно появиться окно с запросом коэффициентов « A, B, C –? ». введите через пробел данные первого контрольного примера: « 1 0 -1 ». Нажмите клавишу « Enter ».
- Сравните полученный результат выполнения контрольного примера с ожидаемым. Если результаты совпали, делается вывод о работоспособности программы при выполнении первого контрольного примера.
- Повторяя последовательно действия 6, 8, 9 проверьте работоспособность программы при выполнении второго и третьего контрольных примеров.
- Сохраните исходный файл проекта в своей рабочей папке. Для этого однократно щелкните левой клавишей мыши по кнопке
« Save (Ctrl+S) ». - Выполните трассировку (пошаговое выполнение программы). Для этого однократно щелкните левой клавишей мыши по кнопке
« Trace into (F7) » на панели инструментов. В окне редактора выделится строка begin. Это означает, что на очередном шаге будет выполняться выделенная строка. - Однократно щелкните левой клавишей мыши по кнопке
« Trace into (F7) » - команда begin выполнилась, программа приступила к работе. В окне редактора выделится строка Write('A, B, C=? ');. Это означает, что на следующем шаге будет выполняться команда печати сообщения « A, B, C=? » - Подведите курсор мыши к переменной A в любом месте программы. На экране должен появиться всплывающий комментарий « A=0 ». Это означает, что в настоящий момент значение переменной A не определено и по умолчанию принимается равным 0. Повторите это действие для всех переменных, используемых в программе. Результаты выполнения первого шага трассировки отразите в протоколе работы программы. Протокол составляется в произвольной форме, основное внимание в нем должно быть уделено работе программы, а не вашим действиям.
- Повторяя действия 12 – 14 выполните трассировку для первого контрольного примера, составьте протокол его выполнения.
- Аналогично составьте протоколы работы программы для второго и третьего контрольного примеров.
- Сохраните исходный файл проекта в своей рабочей папке. Для этого однократно щелкните левой клавишей мыши по кнопке
« Save (Ctrl+S) ». - Выйдите из среды программирования Delphi с помощью меню File\Exit.
- Подготовьте отчет о выполнении лабораторной работы. Состав отчета:
- Титульный лист
- Задание на программирование
- Описание контрольных примеров
- Задание на лабораторное исследование
- Протоколы прохождения контрольных примеров.
Исходные данные
A=один, B=ноль, C=минус два.
Ожидаемый результат
Исходные данные
A=2, B=0, C=–2.
Ожидаемый результат
X1=–1; X2=1.
Контрольный пример 3
Исходные данные
A=2, B=0, C=1.
Ожидаемый результат
Действительных корней нет.
Контрольный пример 4
Исходные данные
A=1, B=–2, C=1.
Ожидаемый результат
X=1.
Задание на лабораторное исследование:
- Изучить основные компоненты, предназначенные для разработки оконных интерфейсов, их свойства, порядок создания методов;
- Ознакомиться с принципами визуального программирования;
- Используя средства отладки среды программирования Delphi 7 составить протокол прохождения контрольных примеров;
- Освоить на практике принципы событийно-ориентированного программирования
Инструкция по выполнению
1. Средствами Windows создайте свою рабочую папку, в которой будете хранить результаты выполнения задания на программирования. Назовите ее, например, Lab_2.
2. Запустите среду программирования Delphi 7.
3. Создайте новое приложение, обратившись к пункту меню « File\New\ Application ». На экране появится изображение объекта Form1 класса TForm1. В окне Object Inspector вы увидите свойства и методы объекта Form1. В окне ObjectTreeView вы можете увидеть все объекты, с которыми объект Form1 связан непосредственно и может обмениваться сообщениями. Пока в окне ObjectTreeView имеется только один объект Form1. По мере разработки приложения количество их будет увеличиваться. Клавишей F12 вы можете переключаться от изображения формы Form1 к соответствующему ей модулю Unit1. Изображение формы предназначено для визуального программирования приложений, модуль – для программирования методов, сообщений, отвечающих за поведение формы, ее реакцию на происходящие события.
4. Выполните запуск программы. Для этого однократно щелкните по кнопке
« Run (F9) ». Немного поработайте с приложением, чтобы разобраться с особенностями его работы. Попробуйте, перетаскивая границы изменить его размеры, сменить положение окна, свернуть его, максимизировать, развернуть до нормальных размеров и т.д. Закройте приложение.
5. Сохраните исходный файл проекта в своей рабочей папке. Для этого однократно щелкните левой клавишей мыши по кнопке
« Save (Ctrl+S) » на панели инструментов Delphi. Назовите файл, например, Lab_2.
Var
A, B, C, D, X, X1, X2: Real;
begin {Здесь надо будет установить точку начала трассировки}
Try
A: =StrToFloat(Edit1.Text);
B: =StrToFloat(Edit2.Text);
C: =StrToFloat(Edit3.Text);
D: = Sqr(B)-4*A*C;
if D< 0
Then
Memo1.Lines.Add(
'A='+Edit1.Text+
', B='+Edit2.Text+
', C='+Edit3.Text+
' – Действительных корней нет')
Else
if D=0
Then
Begin
X: =-B/(2*A);
Memo1.Lines.Add(
'A='+Edit1.Text+
', B='+Edit2.Text+
', C='+Edit3.Text+
' - X='+FloatToStr(X));
End
Else
Begin
X1: =(-B-Sqrt(D))/(2*A);
X2: =(-B+Sqrt(D))/(2*A);
Memo1.Lines.Add(
'A='+Edit1.Text+
', B='+Edit2.Text+
', C='+Edit3.Text+
': X1='+FloatToStr(X1)+
', X2='+FloatToStr(X2));
End
Except
Memo1.Lines.Add(
'A='+Edit1.Text+
', B='+Edit2.Text+
', C='+Edit3.Text+
': Введены некорректные данные');
end;
end; {Здесь надо будет прекратить трассировку}
81. Выполните отладку и запуск программы. Для этого однократно щелкните по кнопке
« Run (F9) ».
82. Если компилятор Delphi обнаружил ошибки, исправьте их. Повторяйте п.п. 81 – 82 до тех пор, пока не будут исправлены все синтаксические ошибки.
83. Выполните расчет последовательно для всех контрольных примеров и сравните полученные результаты с ожидаемыми. Если результаты совпали, делается вывод о работоспособности программы.
84. Сохраните исходный файл проекта в своей рабочей папке. Для этого однократно щелкните левой клавишей мыши по кнопке
« Save (Ctrl+S) ».
85. Установите курсор на первом операторе begin в процедуре Button1Click и с помощью меню Run\Add Breakpoint\Source Breakpoint обратитесь к форме установки точки начала трассировки. На экране появится форма Add Source Brekpoint.
86. Щелкните один раз левой клавишей мыши по кнопке
. Выполнив действия 85 – 86, вы установили на операторе begin точку начала трассировки. Теперь всякий раз, когда выполнение программы будет доходить до помеченного оператора begin, программа будет останавливаться и переключаться в режим пошагового исполнения.
87. Выполните запуск программы. Для этого однократно щелкните по кнопке
« Run (F9) ».
88. В строки ввода введите данные первого контрольного примера.
89. Нажмите кнопку
. При выполнении расчета программа обращается к процедуре Button1Click и останавливается в точке начала трассировки.
90. Выполните трассировку (пошаговое выполнение) процедуры Button1Click подобно тому, как вы это делали в Лабораторной работе № 1, используя кнопку
« Trace into (F7) » на панели инструментов Delphi. В процессе трассировки следите, как меняются значения переменных A, B, C, D, X, X1, X2, Edit1.Text, Edit2.Text, Edit3.Text, Memo1.Lines. Составьте протокол работы процедуры Button1Click для первого контрольного примера. Трассировку следует прекратить в момент выхода из процедуры Button1Click (оператор « end; »). Для этого на последнем шаге процедуры следует однократно щелкнуть по кнопке
« Run (F9) ».
91. Повторяя действия 88 – 90 выполните трассировку процедуры Button1Click для 2-го, 3-го и 4-го контрольных примеров.
92. Снимите точку начала трассировки однократным щелчком по красной отметке слева от оператора begin.
93. Выйдите из среды программирования Delphi с помощью меню File\Exit.
94. Подготовьте отчет о выполнении лабораторной работы. Состав отчета:
a. Титульный лист
b. Задание на программирование
c. Описание контрольных примеров
d. Задание на лабораторное исследование
e. Заполненные таблицы со свойствами объектов, использованных в программе и их описанием.
f. Протоколы прохождения контрольных примеров.
Исходные данные
A=один, B=ноль, C=два.
Ожидаемый результат
Исходные данные
A=1, B=2, C=3.
Ожидаемый результат
A=2, B=3, C=1
Контрольный пример 3
Исходные данные
A=2, B=3, C=1
Ожидаемый результат
B=3, A=2, C=1
Контрольный пример 4
Исходные данные
A=2, B=1, C=3
Ожидаемый результат
C=3, A=2, B=1
Задание на лабораторное исследование:
- Изучить основные компоненты, предназначенные для разработки оконных интерфейсов, их свойства, порядок создания методов;
- Ознакомиться с принципами обработки исключительных ситуаций;
- Ознакомиться с принципами событийно-ориентированного программирования;
- Используя средства отладки среды программирования Delphi 7 составить протокол прохождения контрольных примеров.
Инструкция по выполнению
- Средствами Windows создайте свою рабочую папку, в которой будете хранить результаты выполнения задания на программирования. Назовите ее, например, Lab_3.
- Запустите среду программирования Delphi 7.
- Создайте новое приложение, сохраните его в рабочей папке. Для этого однократно щелкните левой клавишей мыши по кнопке
« Save (Ctrl+S) ». Назовите файл, например, Lab_3.
Var
A, B, C, D, X, X1, X2: Real;
begin
Try {Здесь надо будет установить точку начала трассировки}
Memo1.Clear;
A: =StrToFloat(Edit1.Text);
B: =StrToFloat(Edit2.Text);
C: =StrToFloat(Edit3.Text);
if A> =B
Then
if B> =C
Then
Memo1.Lines.Add(
'A= '+Edit1.Text+
' B= '+Edit2.Text+
' C= '+Edit3.Text)
Else
if A> =C
Then
Memo1.Lines.Add(
'A= '+Edit1.Text+
' C= '+Edit3.Text+
' B= '+Edit2.Text)
Else
Memo1.Lines.Add(
'C= '+Edit3.Text+
' A= '+Edit1.Text+
' B= '+Edit2.Text)
Else
if B< C
Then
Memo1.Lines.Add(
'C= '+Edit3.Text+
' B= '+Edit2.Text+
' A= '+Edit1.Text)
Else
if A< C
Then
Memo1.Lines.Add(
'B= '+Edit2.Text+
' C= '+Edit3.Text+
' A= '+Edit1.Text)
Else
Memo1.Lines.Add(
'B= '+Edit2.Text+
' A= '+Edit1.Text+
' C= '+Edit3.Text)
Except
Memo1.Lines.Add(
' – Исходные данные не корректны или не полны')
end; {Здесь надо будет прекратить трассировку}
end;
- Нажмите клавишу F12 для того, чтобы выйти из режима редактирования текста программы.
- Одинарным щелчком мыши по объекту Edit2 на форме Form1 (« Сортировка ») или в окне ObjectTreeView выберите объект Edit2 (строка редактирования значения B ).
- В строке выбора метода для события onChange в закладке Events окна Object Inspector выберите метод Edit1Change.
- Одинарным щелчком мыши по объекту Edit3 на форме Form1 (« Сортировка ») или в окне ObjectTreeView выберите объект Edit3 (строка редактирования значения С ).
- В строке выбора метода для события onChange в закладке Events окна Object Inspector выберите метод Edit1Change.
- Выполните отладку и запуск программы. Для этого однократно щелкните по кнопке
« Run (F9) ». - Если компилятор Delphi обнаружил ошибки, исправьте их. Повторяйте п.п. 26 – 27 до тех пор, пока не будут исправлены все синтаксические ошибки.
- Сохраните исходный файл проекта в своей рабочей папке. Для этого однократно щелкните левой клавишей мыши по кнопке
« Save (Ctrl+S) ». - Установите курсор на первом операторе begin в процедуре Edit1Change и с помощью меню Run\Add Breakpoint\Source Breakpoint обратитесь к форме установки точки начала трассировки. На экране появится форма Add Source Brekpoint.
- Щелкните один раз левой клавишей мыши по кнопке
. Выполнив действия 29 – 30, вы установили на операторе begin точку начала трассировки. Теперь всякий раз, когда выполнение программы будет доходить до помеченного оператора begin, программа будет переключаться в режим пошагового исполнения. - Выполните запуск программы. Для этого однократно щелкните по кнопке
« Run (F9) ». - В строки ввода введите данные первого контрольного примера. Обратите внимание: программа автоматически переходит в режим трассировки каждый раз, когда обращается к процедуре Edit1Change.
- Выполните трассировку (пошаговое выполнение) процедуры Edit1Change подобно тому, как вы это делали в Лабораторной работе № 1, используя кнопку
« Trace into (F7) » на панели инструментов Delphi. В процессе трассировки отследите, как меняются значения переменных A, B, C, составьте протокол работы процедуры Edit1Change для первого контрольного примера. Трассировку следует прекратить в момент выхода из процедуры Edit1Change (оператор « end; »). Для этого на последнем шаге процедуры следует однократно щелкнуть по кнопке
« Run (F9) ». Для составления протокола используйте результаты трассировки при первом (введено только одно значение) и последнем обращении к процедуре Edit1Change (исходные данные введены полностью). В протоколе следует отразить причины возникновения исключительной ситуации и условия, необходимые для того, чтобы она не возникла. - Повторяя действия 32 – 33 выполните трассировку процедуры Edit1Change для 2-го, 3-го и 4-го контрольных примеров.
- Снимите точку начала трассировки однократным щелчком по красной отметке слева от оператора begin.
- Сохраните исходный файл проекта в своей рабочей папке. Для этого однократно щелкните левой клавишей мыши по кнопке
« Save (Ctrl+S) ». - Выйдите из среды программирования Delphi с помощью меню File\Exit.
- Подготовьте отчет о выполнении лабораторной работы. Состав отчета:
- Титульный лист
- Задание на программирование
- Описание контрольных примеров
- Задание на лабораторное исследование
- Заполненные таблицы со свойствами объектов, использованных в программе и их описанием
- Протоколы прохождения контрольных примеров.
Исходные данные
N=3, M=4,
,
.
Ожидаемый результат
Контрольный пример 2
Исходные данные
N=3, M=4,
,
.
Ожидаемый результат
Исходные данные не корректны
Контрольный пример 3
Исходные данные
N=4, M=3,
,
Ожидаемый результат
Задание на лабораторное исследование:
- Изучить основные компоненты, предназначенные для разработки оконных интерфейсов, их свойства, порядок создания методов.
- Ознакомиться с принципами событийно-ориентированного программирования.
Инструкция по выполнению
- Средствами Windows создайте свою рабочую папку, в которой будете хранить результаты выполнения задания на программирования. Назовите ее, например, Lab_4.
- Запустите среду программирования Delphi 7.
- Создайте новое приложение, сохраните его в рабочей папке. Для этого однократно щелкните левой клавишей мыши по кнопке
« Save (Ctrl+S) ». Назовите файл, например, Lab_4.
Var
I, J, N, M, A, B, C: Integer;
Begin
N: =StrToInt(Edit1.Text);
M: =StrToInt(Edit2.Text);
for I: =1 To N do
for J: =1 To M Do
Try
A: = StrToInt(StringGrid1.Cells[J, I]);
B: = StrToInt(StringGrid2.Cells[J, I]);
C: =A+B;
StringGrid3.Cells[J, I]: =IntToStr(C)
Except
beep;
StringGrid3.Cells[J, I]: ='? ';
End;
end;
- Последовательно добавьте соответствующим объектам перечисленные ниже методы, определяющие реакцию приложения на различные события (см. п. 64 – 80 инструкции по выполнению лабораторной работы № 2). По мере добавления методов регулярно выполняйте запуск программы, исправляйте допущенные ошибки. Немного поработайте с приложением, чтобы разобраться с особенностями его работы. Попробуйте, перетаскивая границы изменить размеры окна, сменить его положение, свернуть, максимизировать, развернуть до нормальных размеров, понажимать на кнопки, ввести в редактируемые элементы произвольную текстовую, числовую информацию, нажать клавиши Alt+N, Alt+M и т.д.
- Метод Button1Сlick – реакция на событие onClick, нажатие кнопки TButton1 ( «Выход» ):
procedure TForm1.Button1Click(Sender: TObject);
begin
Close;
end;
- Метод FormCreate – реакция на событие onCreate, создание формы Form1 ( «Сложение матриц» ) при запуске приложения:
procedure TForm1.FormCreate(Sender: TObject);
begin
StringGrid1.Cells[0, 1]: ='1';
StringGrid1.Cells[1, 0]: ='1';
StringGrid1.Cells[1, 1]: ='0';
StringGrid2.Cells[0, 1]: ='1';
StringGrid2.Cells[1, 0]: ='1';
StringGrid2.Cells[1, 1]: ='0';
StringGrid3.Cells[0, 1]: ='1';
StringGrid3.Cells[1, 0]: ='1';
StringGrid3.Cells[1, 1]: ='0'
end;
- Метод Edit1Change – реакция на события onChange, изменение Edit1 (количества строк N ):
procedure TForm1.Edit1Change(Sender: TObject);
Var
J, N, M: Integer;
Begin
M: =StrToInt(Edit2.Text);
N: =StrToInt(Edit1.Text);
StringGrid1.RowCount: =N+1;
StringGrid2.RowCount: =N+1;
StringGrid3.RowCount: =N+1;
StringGrid1.Cells[0, N]: =Edit1.Text;
StringGrid2.Cells[0, N]: =Edit1.Text;
StringGrid3.Cells[0, N]: =Edit1.Text;
for J: =1 to M do
Begin
If StringGrid1.Cells[J, N]=''
then StringGrid1.Cells[J, N]: ='0';
If StringGrid2.Cells[J, N]=''
then StringGrid2.Cells[J, N]: ='0';
end;
ReCalculation
end;
- Метод Edit2Change – реакция на события onChange, изменение Edit2 (количества столбцов M ):
procedure TForm1.Edit2Change(Sender: TObject);
Var
I, N, M: Integer;
begin
M: = StrToInt(Edit2.Text);
N: =StrToInt(Edit1.Text);
StringGrid1.ColCount: =M+1;
StringGrid2.ColCount: =M+1;
StringGrid3.ColCount: =M+1;
StringGrid1.Cells[M, 0]: =Edit2.Text;
StringGrid2.Cells[M, 0]: =Edit2.Text;
StringGrid3.Cells[M, 0]: =Edit2.Text;
for I: =1 to N do
Begin
If StringGrid1.Cells[M, I]=''
then StringGrid1.Cells[M, I]: ='0';
If StringGrid2.Cells[M, I]=''
then StringGrid2.Cells[M, I]: ='0';
end;
ReCalculation
end;
- Метод StringGrid1KeyUp – реакция на события onKeyUp, редактирование матрицы A ( StringGrid1 )и матрицы B ( StringGrid2 ):
procedure TForm1.StringGrid1KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
ReCalculation; {Здесь надо будет установить точку начала трассировки}
end; {Здесь надо будет прекратить трассировку}
- Сохраните исходный файл проекта в своей рабочей папке.
- Выполните расчет 1-го, 2-го и 3-го контрольных примеров.
- Установите точку начала трассировки (см. п.п. 85 – 86 инструкции по выполнению лабораторной работы № 2) на операторе вызова процедуры ReCalculation в процедуре StringGrid1KeyUp.
- Выполните запуск программы. Для этого однократно щелкните по кнопке
« Run (F9) ». - В строки ввода введите данные первого контрольного примера. Обратите внимание: программа автоматически переходит в режим трассировки каждый раз, когда обращается к процедуре StringGrid1KeyUp.
- Выполните трассировку (пошаговое выполнение) процедур StringGrid1KeyUp и ReCalculation подобно тому, как вы это делали в Лабораторной работе № 3, используя кнопку
« Trace into (F7) » на панели инструментов Delphi. В процессе трассировки отследите, как в какие моменты меняются значения переменных I, J, составьте протокол работы процедуры Recalculation для первого контрольного примера. Трассировку следует прекратить в момент выхода из процедуры StringGrid1KeyUp (оператор « end; »). Для этого на последнем шаге процедуры следует однократно щелкнуть по кнопке
« Run (F9) ». Для составления протокола используйте результаты трассировки при первом (введено только одно значение) и последнем обращении к процедуре StringGrid1KeyUp (исходные данные введены полностью). В протоколе следует отразить причины возникновения исключительной ситуации и условия, необходимые для того, чтобы она не возникла. - Повторяя действия 14 – 15– выполните трассировку процедур StringGrid1KeyUp и ReCalculation для 2-го, 3-го и 4-го контрольных примеров.
- Снимите точку начала трассировки однократным щелчком по красной отметке слева от оператора begin.
- Сохраните исходный файл проекта в своей рабочей папке. Для этого однократно щелкните левой клавишей мыши по кнопке
« Save (Ctrl+S) ». - Выйдите из среды программирования Delphi с помощью меню File\Exit.
- Подготовьте отчет о выполнении лабораторной работы. Состав отчета:
- Титульный лист
- Задание на программирование
- Описание контрольных примеров
- Задание на лабораторное исследование
- Заполненные таблицы со свойствами объектов, использованных в программе и их описанием
- Протоколы прохождения контрольных примеров.
Исходные данные
Количество видов товара N=3
| № п.п.
| Название товара
| Цена товара
| Количество
|
|
| Мундир английский
|
|
|
|
| Погон российский
|
|
|
|
| Табак японский
|
|
|
Ожидаемый результат
| № п.п.
| Название товара
| Стоимость продажи товара
| Процентная доля в общей стоимости
|
|
| Мундир английский
|
| 19.61%
|
|
| Погон российский
|
| 11.76%
|
|
| Табак японский
|
| 68.63%
|
Задание на лабораторное исследование:
- Изучить основные компоненты, предназначенные для разработки графиков и диаграмм, их свойства, порядок создания методов.
- Ознакомиться с принципами событийно-ориентированного программирования.
Инструкция по выполнению
- Средствами Windows создайте свою рабочую папку, в которой будете хранить результаты выполнения задания на программирования. Назовите ее, например, Lab_5.
- Запустите среду программирования Delphi 7.
- Создайте новое приложение, сохраните его в рабочей папке. Для этого однократно щелкните левой клавишей мыши по кнопке
« Save (Ctrl+S) ». Назовите файл, например, Lab_5.
Var
I: Integer;
Begin
Chart1.Series[0].Clear;
For i: =1 to StringGrid1.ColCount-1 Do
Begin
Try
StringGrid1.Cells[i, 4]: =
FloatToStr(
Round(
100*StrToFloat(StringGrid1.Cells[i, 3])*
StrToFloat(StringGrid1.Cells[i, 2]))/100);
Chart1.Series[0].Add(
StrToFloat(StringGrid1.Cells[I, 4]),
StringGrid1.Cells[i, 1]);
Except
StringGrid1.Cells[i, 4]: ='? ';
beep;
end;
end;
end;
- Последовательно добавьте соответствующим объектам перечисленные ниже методы, определяющие реакцию приложения на различные события (см. п. 64 – 80 инструкции по выполнению лабораторной работы № 2). По мере добавления методов регулярно выполняйте запуск программы, исправляйте допущенные ошибки. Немного поработайте с приложением, чтобы разобраться с особенностями его работы. Попробуйте, перетаскивая границы изменить размеры окна, сменить его положение, свернуть, максимизировать, развернуть до нормальных размеров, понажимать на кнопки, ввести в редактируемые элементы произвольную текстовую, числовую информацию и т.д.
- Метод Button1Сlick – реакция на событие onClick, нажатие кнопки TButton1 (« Выход »):
procedure TForm1.Button1Click(Sender: TObject);
begin
Close;
end;
- Метод FormCreate – реакция на событие onCreate, создание формы Form1 (« Построение диаграммы ») при запуске приложения:
procedure TForm1.FormCreate(Sender: TObject);
begin {Здесь надо будет установить точку начала трассировки}
StringGrid1.Cells[0, 0]: ='№ п.п.';
StringGrid1.Cells[0, 1]: ='Товар';
StringGrid1.Cells[0, 2]: ='Цена';
StringGrid1.Cells[0, 3]: ='Количество';
StringGrid1.Cells[0, 4]: ='Стоимость';
StringGrid1.Cells[1, 0]: ='1';
StringGrid1.Cells[1, 2]: ='0, 0';
StringGrid1.Cells[1, 3]: ='0, 0';
ReCalculation;
end; {Здесь надо будет прекратить трассировку}
- Метод Edit1Change – реакция на событие onChange, изменение содержимого строки редактирования Edit1 (« Количество товаров ») при запуске приложения:
procedure TForm1.Edit1Change(Sender: TObject);
begin {Здесь надо будет установить точку начала трассировки}
StringGrid1.ColCount: =StrToInt(Edit1.Text)+1;
StringGrid1.Cells[StrToInt(Edit1.Text), 0]: = Edit1.Text;
If StringGrid1.Cells[StrToInt(Edit1.Text), 2]=''
then StringGrid1.Cells[StrToInt(Edit1.Text), 2]: ='0, 0';
If StringGrid1.Cells[StrToInt(Edit1.Text), 3]=''
then StringGrid1.Cells[StrToInt(Edit1.Text), 3]: ='0, 0';
ReCalculation;
end; {Здесь надо будет прекратить трассировку}
- Метод EditStringGrid1KeyUp – реакция на событие onKeyUp, редактирование строковой таблицы StringGrid1 (« Данные о продажах ») с помощью клавиатуры:
procedure TForm1.StringGrid1KeyUp(
Sender: TObject; var Key: Word; Shift: TShiftState);
begin {Здесь надо будет установить точку начала трассировки}
ReCalculation;
end; {Здесь надо будет прекратить трассировку}
Популярное: