Контрольная работа
по дисциплине "Информатика"
Создание приложений VCL Form Application в среде Delphi. Линейные и разветвляющиеся алгоритмы.
Вариант индивидуального задания: 14
Выполнил
_________________________ инициалы, фамилия
(дата, подпись)
Принял
_________________________ Н.В. Калинин
(дата, подпись)
Минск 2017
Задание 1
Найти значения выражения: . Необходимо ввести значения x, a, b и c, d (при наличии). Затем должен быть посчитан y и выведено его значение.
Блок схема алгоритма:
Рисунок 1 – Блок схема алгоритма
Форма в режиме проектирования:
Рисунок 2 – Форма проекта
Используется компоненты:
Label – поясняющие надписи;
Image – вывод изображения формулы;
Edit – 4 поля ввода, одно для вывода;
BitBtn – командные кнопки, одна – выход из приложения, вторая – выполнение расчета.
Текст программы:
unit Lalg;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Buttons;
type
TForm1 = class(TForm)
Image1: TImage;
Label1: TLabel;
Label2: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Label3: TLabel;
Edit3: TEdit;
Label4: TLabel;
Edit4: TEdit;
Label5: TLabel;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
Label6: TLabel;
Edit5: TEdit;
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
var m: set of char;
begin
m:= ['0'..'9',',','-',#8]; //перечень разрешенных символов
if not (key in m) then key:= chr(0);
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
var a,b,c,x,y:real;
begin
if not((Edit1.Text='')or (Edit2.Text='')or(Edit3.Text='')or(Edit4.Text=''))then
begin
a:=strtofloat(Edit1.Text);
b:=strtofloat(Edit2.Text);
c:=strtofloat(Edit3.Text);
x:=strtofloat(Edit4.Text);
if b+c<>0 then
begin
y:=a*sqr(x)/sqr(b+c);
Edit5.Text:=floattostr(y)
end
else showmessage('Вычислить невозможно!')
end
else showmessage('Не заполнено поле(я)!');
end;
end.
Работа программы:
Рисунок 3 – Программа в режиме выполнения
Задание 2
Разветвляющийся алгоритм
Вычислить:
Рекомендуется использовать оператор условия if. Дополнительные переключатели (Radiogroup, CheckBox) не нужны.
Блок схема алгоритма:
Рисунок 2 – Блок схема алгоритма
Форма в режиме проектирования:
Рисунок 2 – Форма проекта
Используется компоненты:
Label – поясняющие надписи;
Image – вывод изображения формулы;
Edit – 4 поля ввода, одно для вывода;
BitBtn – командные кнопки, одна – выход из приложения, вторая – выполнение расчета.
Текст программы:
unit Razvalg;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Buttons;
type
TForm1 = class(TForm)
Image1: TImage;
Label1: TLabel;
Label2: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Label3: TLabel;
Edit3: TEdit;
Label4: TLabel;
Edit4: TEdit;
Label5: TLabel;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
Label6: TLabel;
Edit5: TEdit;
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
var m: set of char;
begin
m:= ['0'..'9',',','-',#8]; //перечень разрешенных символов
if not (key in m) then key:= chr(0);
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
var a,b,c,x,y:real;
begin
if not((Edit1.Text='')or (Edit2.Text='')or(Edit3.Text='')or(Edit4.Text=''))then
begin
a:=strtofloat(Edit1.Text);
b:=strtofloat(Edit2.Text);
c:=strtofloat(Edit3.Text);
x:=strtofloat(Edit4.Text);
if x<=0 then y:=(x+a-b-c)/sqr(1-x)
else
if x<17 then y:=(a*x+b+c)/(sqr(x)+1)
else y:=(a*x)/(sqr(b+c)+sqr(a));
Edit5.Text:=floattostr(y)
end
else showmessage('Не заполнено поле(я)!');
end;
end.
Работа программы:
Рисунок 3 – Программа в режиме выполнения