Разветвляющийся алгоритм




Контрольная работа

по дисциплине "Информатика"

 

Создание приложений 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 – Программа в режиме выполнения

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-04-30 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: