Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Лабораторная работа № 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.

Задание на лабораторное исследование:

  1. Изучить возможности текстового редактора среды программирования Delphi 7;
  2. Используя средства отладки среды программирования Delphi 7, составить протокол прохождения контрольных примеров.

Инструкция по выполнению

  1. Средствами Windows создайте свою рабочую папку, в которой будете хранить результаты выполнения задания на программирования. Назовите ее, например, Lab_1
  2. Запустите среду программирования Delphi 7.
  3. Создайте новое консольное приложение, обратившись к пункту меню « File\New\Ather\Console Application ».
  4. В появившемся окне редактирования 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.

  1. Сохраните исходный файл проекта в своей рабочей папке. Для этого однократно щелкните левой клавишей мыши по кнопке « Save (Ctrl+S) ». Назовите файл, например, Lab_1.
  2. Выполните отладку и запуск программы. Для этого однократно щелкните по кнопке « Run (F9) ».
  3. Если компилятор Delphi обнаружил ошибки, исправьте их. Повторяйте п.п. 6, 7 до тех пор, пока не будут исправлены все синтаксические ошибки.
  4. На экране должно появиться окно с запросом коэффициентов « A, B, C –? ». введите через пробел данные первого контрольного примера: « 1 0 -1 ». Нажмите клавишу « Enter ».
  5. Сравните полученный результат выполнения контрольного примера с ожидаемым. Если результаты совпали, делается вывод о работоспособности программы при выполнении первого контрольного примера.
  6. Повторяя последовательно действия 6, 8, 9 проверьте работоспособность программы при выполнении второго и третьего контрольных примеров.
  7. Сохраните исходный файл проекта в своей рабочей папке. Для этого однократно щелкните левой клавишей мыши по кнопке « Save (Ctrl+S) ».
  8. Выполните трассировку (пошаговое выполнение программы). Для этого однократно щелкните левой клавишей мыши по кнопке « Trace into (F7) » на панели инструментов. В окне редактора выделится строка begin. Это означает, что на очередном шаге будет выполняться выделенная строка.
  9. Однократно щелкните левой клавишей мыши по кнопке « Trace into (F7) » - команда begin выполнилась, программа приступила к работе. В окне редактора выделится строка Write('A, B, C=? ');. Это означает, что на следующем шаге будет выполняться команда печати сообщения « A, B, C=? »
  10. Подведите курсор мыши к переменной A в любом месте программы. На экране должен появиться всплывающий комментарий « A=0 ». Это означает, что в настоящий момент значение переменной A не определено и по умолчанию принимается равным 0. Повторите это действие для всех переменных, используемых в программе. Результаты выполнения первого шага трассировки отразите в протоколе работы программы. Протокол составляется в произвольной форме, основное внимание в нем должно быть уделено работе программы, а не вашим действиям.
  11. Повторяя действия 12 – 14 выполните трассировку для первого контрольного примера, составьте протокол его выполнения.
  12. Аналогично составьте протоколы работы программы для второго и третьего контрольного примеров.
  13. Сохраните исходный файл проекта в своей рабочей папке. Для этого однократно щелкните левой клавишей мыши по кнопке « Save (Ctrl+S) ».
  14. Выйдите из среды программирования Delphi с помощью меню File\Exit.
  15. Подготовьте отчет о выполнении лабораторной работы. Состав отчета:
    1. Титульный лист
    2. Задание на программирование
    3. Описание контрольных примеров
    4. Задание на лабораторное исследование
    5. Протоколы прохождения контрольных примеров.

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

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.

Задание на лабораторное исследование:

  1. Изучить основные компоненты, предназначенные для разработки оконных интерфейсов, их свойства, порядок создания методов;
  2. Ознакомиться с принципами визуального программирования;
  3. Используя средства отладки среды программирования Delphi 7 составить протокол прохождения контрольных примеров;
  4. Освоить на практике принципы событийно-ориентированного программирования

Инструкция по выполнению

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

Задание на лабораторное исследование:

  1. Изучить основные компоненты, предназначенные для разработки оконных интерфейсов, их свойства, порядок создания методов;
  2. Ознакомиться с принципами обработки исключительных ситуаций;
  3. Ознакомиться с принципами событийно-ориентированного программирования;
  4. Используя средства отладки среды программирования Delphi 7 составить протокол прохождения контрольных примеров.

Инструкция по выполнению

  1. Средствами Windows создайте свою рабочую папку, в которой будете хранить результаты выполнения задания на программирования. Назовите ее, например, Lab_3.
  2. Запустите среду программирования Delphi 7.
  3. Создайте новое приложение, сохраните его в рабочей папке. Для этого однократно щелкните левой клавишей мыши по кнопке « 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;

 

  1. Нажмите клавишу F12 для того, чтобы выйти из режима редактирования текста программы.
  2. Одинарным щелчком мыши по объекту Edit2 на форме Form1 Сортировка ») или в окне ObjectTreeView выберите объект Edit2 (строка редактирования значения B ).
  3. В строке выбора метода для события onChange в закладке Events окна Object Inspector выберите метод Edit1Change.
  4. Одинарным щелчком мыши по объекту Edit3 на форме Form1 Сортировка ») или в окне ObjectTreeView выберите объект Edit3 (строка редактирования значения С ).
  5. В строке выбора метода для события onChange в закладке Events окна Object Inspector выберите метод Edit1Change.
  6. Выполните отладку и запуск программы. Для этого однократно щелкните по кнопке « Run (F9) ».
  7. Если компилятор Delphi обнаружил ошибки, исправьте их. Повторяйте п.п. 26 – 27 до тех пор, пока не будут исправлены все синтаксические ошибки.
  8. Сохраните исходный файл проекта в своей рабочей папке. Для этого однократно щелкните левой клавишей мыши по кнопке « Save (Ctrl+S) ».
  9. Установите курсор на первом операторе begin в процедуре Edit1Change и с помощью меню Run\Add Breakpoint\Source Breakpoint обратитесь к форме установки точки начала трассировки. На экране появится форма Add Source Brekpoint.
  10. Щелкните один раз левой клавишей мыши по кнопке . Выполнив действия 29 – 30, вы установили на операторе begin точку начала трассировки. Теперь всякий раз, когда выполнение программы будет доходить до помеченного оператора begin, программа будет переключаться в режим пошагового исполнения.
  11. Выполните запуск программы. Для этого однократно щелкните по кнопке « Run (F9) ».
  12. В строки ввода введите данные первого контрольного примера. Обратите внимание: программа автоматически переходит в режим трассировки каждый раз, когда обращается к процедуре Edit1Change.
  13. Выполните трассировку (пошаговое выполнение) процедуры Edit1Change подобно тому, как вы это делали в Лабораторной работе № 1, используя кнопку « Trace into (F7) » на панели инструментов Delphi. В процессе трассировки отследите, как меняются значения переменных A, B, C, составьте протокол работы процедуры Edit1Change для первого контрольного примера. Трассировку следует прекратить в момент выхода из процедуры Edit1Change (оператор « end; »). Для этого на последнем шаге процедуры следует однократно щелкнуть по кнопке « Run (F9) ». Для составления протокола используйте результаты трассировки при первом (введено только одно значение) и последнем обращении к процедуре Edit1Change (исходные данные введены полностью). В протоколе следует отразить причины возникновения исключительной ситуации и условия, необходимые для того, чтобы она не возникла.
  14. Повторяя действия 32 – 33 выполните трассировку процедуры Edit1Change для 2-го, 3-го и 4-го контрольных примеров.
  15. Снимите точку начала трассировки однократным щелчком по красной отметке слева от оператора begin.
  16. Сохраните исходный файл проекта в своей рабочей папке. Для этого однократно щелкните левой клавишей мыши по кнопке « Save (Ctrl+S) ».
  17. Выйдите из среды программирования Delphi с помощью меню File\Exit.
  18. Подготовьте отчет о выполнении лабораторной работы. Состав отчета:
    1. Титульный лист
    2. Задание на программирование
    3. Описание контрольных примеров
    4. Задание на лабораторное исследование
    5. Заполненные таблицы со свойствами объектов, использованных в программе и их описанием
    6. Протоколы прохождения контрольных примеров.

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

N=3, M=4,

, .

Ожидаемый результат

Контрольный пример 2

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

N=3, M=4,

, .

Ожидаемый результат

Исходные данные не корректны

Контрольный пример 3

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

N=4, M=3,

,

Ожидаемый результат

Задание на лабораторное исследование:

  1. Изучить основные компоненты, предназначенные для разработки оконных интерфейсов, их свойства, порядок создания методов.
  2. Ознакомиться с принципами событийно-ориентированного программирования.

Инструкция по выполнению

  1. Средствами Windows создайте свою рабочую папку, в которой будете хранить результаты выполнения задания на программирования. Назовите ее, например, Lab_4.
  2. Запустите среду программирования Delphi 7.
  3. Создайте новое приложение, сохраните его в рабочей папке. Для этого однократно щелкните левой клавишей мыши по кнопке « 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;

 

  1. Последовательно добавьте соответствующим объектам перечисленные ниже методы, определяющие реакцию приложения на различные события (см. п. 64 – 80 инструкции по выполнению лабораторной работы № 2). По мере добавления методов регулярно выполняйте запуск программы, исправляйте допущенные ошибки. Немного поработайте с приложением, чтобы разобраться с особенностями его работы. Попробуйте, перетаскивая границы изменить размеры окна, сменить его положение, свернуть, максимизировать, развернуть до нормальных размеров, понажимать на кнопки, ввести в редактируемые элементы произвольную текстовую, числовую информацию, нажать клавиши Alt+N, Alt+M и т.д.

 

    1. Метод Button1Сlick – реакция на событие onClick, нажатие кнопки TButton1 ( «Выход» ):

procedure TForm1.Button1Click(Sender: TObject);

begin

Close;

end;

    1. Метод 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;

    1. Метод 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;

    1. Метод 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;

 

    1. Метод StringGrid1KeyUp – реакция на события onKeyUp, редактирование матрицы A ( StringGrid1 )и матрицы B ( StringGrid2 ):

 

procedure TForm1.StringGrid1KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);

begin

ReCalculation; {Здесь надо будет установить точку начала трассировки}

end; {Здесь надо будет прекратить трассировку}

 

  1. Сохраните исходный файл проекта в своей рабочей папке.
  2. Выполните расчет 1-го, 2-го и 3-го контрольных примеров.
  3. Установите точку начала трассировки (см. п.п. 85 – 86 инструкции по выполнению лабораторной работы № 2) на операторе вызова процедуры ReCalculation в процедуре StringGrid1KeyUp.
  4. Выполните запуск программы. Для этого однократно щелкните по кнопке « Run (F9) ».
  5. В строки ввода введите данные первого контрольного примера. Обратите внимание: программа автоматически переходит в режим трассировки каждый раз, когда обращается к процедуре StringGrid1KeyUp.
  6. Выполните трассировку (пошаговое выполнение) процедур StringGrid1KeyUp и ReCalculation подобно тому, как вы это делали в Лабораторной работе № 3, используя кнопку « Trace into (F7) » на панели инструментов Delphi. В процессе трассировки отследите, как в какие моменты меняются значения переменных I, J, составьте протокол работы процедуры Recalculation для первого контрольного примера. Трассировку следует прекратить в момент выхода из процедуры StringGrid1KeyUp (оператор « end; »). Для этого на последнем шаге процедуры следует однократно щелкнуть по кнопке « Run (F9) ». Для составления протокола используйте результаты трассировки при первом (введено только одно значение) и последнем обращении к процедуре StringGrid1KeyUp (исходные данные введены полностью). В протоколе следует отразить причины возникновения исключительной ситуации и условия, необходимые для того, чтобы она не возникла.
  7. Повторяя действия 14 – 15– выполните трассировку процедур StringGrid1KeyUp и ReCalculation для 2-го, 3-го и 4-го контрольных примеров.
  8. Снимите точку начала трассировки однократным щелчком по красной отметке слева от оператора begin.
  9. Сохраните исходный файл проекта в своей рабочей папке. Для этого однократно щелкните левой клавишей мыши по кнопке « Save (Ctrl+S) ».
  10. Выйдите из среды программирования Delphi с помощью меню File\Exit.
  11. Подготовьте отчет о выполнении лабораторной работы. Состав отчета:
    1. Титульный лист
    2. Задание на программирование
    3. Описание контрольных примеров
    4. Задание на лабораторное исследование
    5. Заполненные таблицы со свойствами объектов, использованных в программе и их описанием
    6. Протоколы прохождения контрольных примеров.

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

Количество видов товара N=3

№ п.п. Название товара Цена товара Количество
Мундир английский
Погон российский
Табак японский

Ожидаемый результат

№ п.п. Название товара Стоимость продажи товара Процентная доля в общей стоимости
Мундир английский 19.61%
Погон российский 11.76%
Табак японский 68.63%

Задание на лабораторное исследование:

  1. Изучить основные компоненты, предназначенные для разработки графиков и диаграмм, их свойства, порядок создания методов.
  2. Ознакомиться с принципами событийно-ориентированного программирования.

Инструкция по выполнению

  1. Средствами Windows создайте свою рабочую папку, в которой будете хранить результаты выполнения задания на программирования. Назовите ее, например, Lab_5.
  2. Запустите среду программирования Delphi 7.
  3. Создайте новое приложение, сохраните его в рабочей папке. Для этого однократно щелкните левой клавишей мыши по кнопке « 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;

 

  1. Последовательно добавьте соответствующим объектам перечисленные ниже методы, определяющие реакцию приложения на различные события (см. п. 64 – 80 инструкции по выполнению лабораторной работы № 2). По мере добавления методов регулярно выполняйте запуск программы, исправляйте допущенные ошибки. Немного поработайте с приложением, чтобы разобраться с особенностями его работы. Попробуйте, перетаскивая границы изменить размеры окна, сменить его положение, свернуть, максимизировать, развернуть до нормальных размеров, понажимать на кнопки, ввести в редактируемые элементы произвольную текстовую, числовую информацию и т.д.

 

    1. Метод Button1Сlick – реакция на событие onClick, нажатие кнопки TButton1 Выход »):

 

procedure TForm1.Button1Click(Sender: TObject);

begin

Close;

end;

 

    1. Метод 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; {Здесь надо будет прекратить трассировку}

 

    1. Метод 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; {Здесь надо будет прекратить трассировку}

 

    1. Метод EditStringGrid1KeyUp – реакция на событие onKeyUp, редактирование строковой таблицы StringGrid1 Данные о продажах ») с помощью клавиатуры:

 

procedure TForm1.StringGrid1KeyUp(

Sender: TObject; var Key: Word; Shift: TShiftState);

begin {Здесь надо будет установить точку начала трассировки}

ReCalculation;

end; {Здесь надо будет прекратить трассировку}

 


Поделиться:



Популярное:

Последнее изменение этой страницы: 2016-07-14; Просмотров: 1280; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.251 с.)
Главная | Случайная страница | Обратная связь