Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
отчёт 4.doc
Скачиваний:
2
Добавлен:
17.09.2019
Размер:
158.21 Кб
Скачать

Государственное образовательное учреждение высшего профессионального образования

«Санкт-Петербургский государственный политехнический университет»

Кафедра

информационных машиностроительных технологий

Отчёт

о лабораторной работе

Дисциплина: Информатика

Тема: Подпрограммы

Студент гр. 10410/1 Новиков.Д.Ю.

Преподаватель Петров.И.П.

« » ______________ 2010 г.

Сантк-Петербург

2010год

Задание

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

2) Используя полученную функцию, вычислить три значения, начиная с X0 и приращением dX.

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

4) Протестировать программу.

Схемы нелинейных процедур

Контроль ввода данных при нажатии кнопки Raschet

procedure TForm1.RaschetClick(Sender: TObject);

Листинг основного модуля

unit Unit1Novikov_PR4;

interface

uses

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

Dialogs, StdCtrls, ExtCtrls, Unit2NovikovPR4;

// в список введен модуль Unit2NovikovPR4 с процедурами арифметических вычислений, преобразования в текст результата

type

TForm1 = class(TForm)

Zagolovok: TLabel; // заголовок в форме

Ed_A: TLabeledEdit; // для ввода А

Ed_X: TLabeledEdit; // X

Ed_dX: TLabeledEdit; // dX

Ed_n: TLabeledEdit; // n

Raschet: TButton; // для запуска проверки данных и расчета

Label_Y: TLabel; // для вывода значений Y

procedure FormActivate(Sender: TObject); // вывод заголовка в 2 строки

procedure Ed_AKeyPress(Sender: TObject; var Key: Char); // запуск проверки при нажатии клавиши в поле Ed_A

procedure Ed_XKeyPress(Sender: TObject; var Key: Char); // тоже для X

procedure Ed_nKeyPress(Sender: TObject; var Key: Char); // n

procedure Ed_dXKeyPress(Sender: TObject; var Key: Char); // dX

procedure RaschetClick(Sender: TObject); // проверка данных и расчет

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormActivate(Sender: TObject); // вывод заголовка в 2 строки

const Z = 'Вычисление' + #13#10 + 'Y=(A^n-X^n)^(1/2)';

begin Zagolovok.Caption := Z;

end;

procedure TForm1.Ed_AKeyPress(Sender: TObject; var Key: Char); // при нажатии клавиши в поле Ed_A

begin RealKey(Ed_A.Text, Key); // запускается процедура RealKey

end;

procedure TForm1.Ed_XKeyPress(Sender: TObject; var Key: Char); // тоже для Ed_X

begin RealKey(Ed_X.Text, Key);

end;

procedure TForm1.Ed_dXKeyPress(Sender: TObject; var Key: Char); // тоже для Ed_dX

begin RealKey(Ed_dX.Text, Key);

end;

procedure TForm1.Ed_nKeyPress(Sender: TObject; var Key: Char); // при нажатии клавиши в поле Ed_n

begin IntKey(Key); // запускается процедура IntKey записи натурального числа

end;

procedure TForm1.RaschetClick(Sender: TObject); // при щелчке по кнопке запускается проверка и расчет

var A, X, dX: Real; // исходные данные

n: Integer; // исходные данные, показатель степени

begin

if Ed_A.Text = '' // проверка поля Ed_A на заполненность

then begin ShowMessage('Введите А');

Ed_A.SetFocus;

exit;

end

else A := StrToFloat(Ed_A.Text); // в случае заполненности присваивание переменной A преобразованного в число текста поля Ed_A

if Ed_X.Text = '' // тоже для поля Ed_Х и переменной X

then begin ShowMessage('Введите X');

Ed_X.SetFocus;

exit;

end

else X := StrToFloat(Ed_X.Text);

if Ed_dX.Text = '' // тоже для поля Ed_dХ и переменной dX

then begin ShowMessage('Введите dX');

Ed_X.SetFocus;

exit;

end

else dX := StrToFloat(Ed_dX.Text);

if Ed_n.Text = '' // тоже для поля Ed_n и натуральной переменной n

then begin ShowMessage('Введите n');

Ed_n.SetFocus;

exit;

end

else n := StrToInt(Ed_n.Text);

Label_Y.Caption := 'Y' + #13#10 + Vyvod(X,A,dX,n); // вывод значения функции проверки, расчета и преобразования данных

end; // завершение процедуры щелчка по кнопке

end.