
Лаба5 Вар1 Отчет
.docxСанкт-Петербургский Политехнический университет Петра Великого
Институт машиностроения, материалов и транспорта
Высшая школа машиностроения
ОТЧЕТ
по лабораторной работе №5
Дисциплина: Цифровой практикум
Тема: Алгоритмы ветвления
(Вариант 1)
Студент группы 3331505/10001 Гричачина А.А.
Преподаватель
Санкт-Петербург
2021 г.
Цель работы - приобретение умений разработки и программной реализации разветвляющихся алгоритмов.
Задание
Р
азработать алгоритм вычисления значения функции, представить его в виде блок-схемы и реализовать, создав проект.
Р
азработать алгоритм определения отношения точки к выделенной области и реализовать его, создав проект.
Разработать справочную систему для информирования пользователя о стоимости проезда в соответствии с заданием:
Значения функции
А
лгоритм:
Текст модуля:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
Label2: TLabel;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var x,y:real;
begin
x:=StrToFloat(Edit1.Text);
if x<=0 then y:=Abs(x)
else if x>=1 then y:=x
else y:=(-1)*sin(2*Pi*x)/2/Pi;
Label2.Caption:=FloatToStrF(y,ffGeneral,5,5);
end;
end.
Пример работы:
Label1
Label2
Edit1
Button1
Определения отношения точки к выделенной области
А
1

Вывод y
a = (y<=-x) и (y>=-3) и(x>=0)
b= (y>=x) и (y<=3) и (x<=0)
1
Текст модуля:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
Label2: TLabel;
Edit2: TEdit;
Label3: TLabel;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var x, y:real;
a, b:boolean;
begin
x:= StrToFloat(Edit1.Text);
y:= StrToFloat(Edit2.Text);
a:=(y<=-x)and(y>=-3)and(x>=0);
b:=(y>=-x)and(y<=3)and(x<=0);
if a or b then Label3.Caption:='point belongs to area'
else Label3.Caption:='point does not belong to area';
end;
end.
Пример работы:
Label1
Label2
Edit1
Edit2
Label3
Button1
Справочная система для информирования пользователя о стоимости проезда
А
n=№ выбранного города
Да
Стоимость
st = 3000
Нет
n=4,5
Да
Стоимость
st = 6000
Нет
n=6
Да
Стоимость
st = 26000
Нет
Стоимость
St = 0

Город не выбран
1
Текст модуля:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
ListBox1: TListBox;
Button1: TButton;
Label1: TLabel;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
RadioButton3: TRadioButton;
CheckBox1: TCheckBox;
Label2: TLabel;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var st:real; n:byte;
begin
n:=ListBox1.ItemIndex;
case n of
1,2: st:=3000;
4,5: st:=6000;
0,3: st:=12000;
6: st:=26000; else
begin
st:=0;
ShowMessage('Не выбран город');
end;
end;
if RadioButton1.Checked then st:=st*1.5 else
if RadioButton2.Checked then st:=st*1.3 else
st:=st*0.75;
if CheckBox1.Checked then st:=st*0.75;
Label2.Caption:='в кассу '+FloatToStr(st)+' руб.';
end; end.
Пример работы:
Label1
CheckBox1
ListBox1
RadioButton1
Label2
Button1
RadioButton1
RadioButton1
Вывод: С помощью разветвляющихся алгоритмов программа может выполнять то или иное действие в результате анализа заданного условия. Условие же может состоять из логических переменных, операций сравнения, логических и арифметических операций.