Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Лабораторная работа № 1. Создание консольных приложенийСтр 1 из 2Следующая ⇒
Содержание Содержание. 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. Задание на лабораторное исследование:
Инструкция по выполнению
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.
Исходные данные 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. Средствами 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 Задание на лабораторное исследование:
Инструкция по выполнению
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;
Исходные данные N=3, M=4, , . Ожидаемый результат
Контрольный пример 2 Исходные данные N=3, M=4, , . Ожидаемый результат Исходные данные не корректны Контрольный пример 3 Исходные данные N=4, M=3, , Ожидаемый результат
Задание на лабораторное исследование:
Инструкция по выполнению
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;
procedure TForm1.Button1Click(Sender: TObject); begin Close; end;
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;
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;
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;
procedure TForm1.StringGrid1KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); begin ReCalculation; {Здесь надо будет установить точку начала трассировки} end; {Здесь надо будет прекратить трассировку}
Исходные данные Количество видов товара N=3
Ожидаемый результат
Задание на лабораторное исследование:
Инструкция по выполнению
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;
procedure TForm1.Button1Click(Sender: TObject); begin Close; end;
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; {Здесь надо будет прекратить трассировку}
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; {Здесь надо будет прекратить трассировку}
procedure TForm1.StringGrid1KeyUp( Sender: TObject; var Key: Word; Shift: TShiftState); begin {Здесь надо будет установить точку начала трассировки} ReCalculation; end; {Здесь надо будет прекратить трассировку}
Популярное:
|
Последнее изменение этой страницы: 2016-07-14; Просмотров: 1333; Нарушение авторского права страницы