Добавил:
2016-2020 химическая технология Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

матмод1

.docx
Скачиваний:
0
Добавлен:
19.10.2023
Размер:
165.87 Кб
Скачать

Рисунок 1. Главное окно программы.

Вывод:

  • В данной лабораторной работe произошел процесс ознакомления с процессом компаундирования товарных бензинов;

  • С помощью правила аддитивности и исходных данных с помошью программы было рассчитано октановое число каждого из потоков;

  • Выполнили расчет доли каждого из потоков при заданном ОЧ смеси на основе определенных ОЧ потоков смешения с помощью программыPascal.

  • Разработали приложение всреде Lazarus для расчета тех же самых параметров.

Приложение А

Программа расчета в среде программирования PascalABC

programMain_blending;

uses

Lab1;

const

flow_count = 6;

comp_count = 64;

var

comp_RON: TarrOfDouble;

flow_composition: TarrOfArrOfDouble;

mix_composition: TarrOfDouble;

RONc: double;

treb_RON: double;

i: integer;

procedureget_data (varRON: TarrOfDouble; flow_composition: TarrOfArrOfDouble);

var

f1, f2:text;

i,j:integer;

begin

assign (f1,'RON.txt');

assign (f2,'flow_comp.txt');

reset(f1);

reset(f2);

fori :=0 to comp_count-1 do

begin

readln(f1,RON[i]);

forj :=0 to flow_count-1 do

read(f2,flow_composition[i,j]);

readln (f2);

end;

close(f1);

close (f2);

end;

procedureget_result (mix_composition: TarrOfdouble;RONc: double);

var

f:text;

i:integer;

begin

assign(f,'result.txt');

rewrite(f);

fori:= 0 to flow_count-1 do

writeln (f,'Дляпотока',i+1,'=',mix_composition[i]*100:8:2);

writeln(f);

writeln(f,'ОЧсмешения=',RONc:8:2);

close(f);

end;

begin

SetLength(comp_RON,comp_count);

SetLength(flow_composition,comp_count);

fori := 0 to comp_count-1 do

SetLength(flow_composition[i],flow_count);

SetLength(mix_composition,flow_count);

write('Введите требуемое ОЧ:');

readln(treb_RON);

get_data(comp_RON,flow_composition);

blending (comp_count, flow_count, comp_RON, flow_composition, treb_RON, 5e-2, 5e-6, mix_composition,RONc);

get_result (mix_composition, RONc);

end.

Приложение Б

Программа расчета в среде программирования Delphi

unit Unit2;

interface

uses

Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,

Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Grids, Vcl.OleServer,

Excel2000, Vcl.Menus, lab1;

type

TForm1 = class(TForm)

GroupBox1: TGroupBox;

StringGrid1: TStringGrid;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

GroupBox2: TGroupBox;

StringGrid2: TStringGrid;

Button1: TButton;

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

ExcelApplication1: TExcelApplication;

procedure N2Click(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedureget_data(comp_RON:TArrOfDouble; flow_composition:TArrOfArrOfDouble; vartreb_RON, h, eps: Double);

procedureget_result(mix_composition:TArrOfDouble; RONc: Double);

private

{ Private declarations }

public

{ Public declarations }

end;

const

flow_count = 6;

comp_count = 64;

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

var

comp_RON: TArrOfDouble;

flow_composition: TArrOfArrOfDouble;

mix_composition: TArrOfDouble;

RONc: double;

treb_RON: double;

i: integer;

h: double;

eps: double;

begin

SetLength(comp_RON, comp_count);

SetLength(flow_composition, comp_count);

fori := 0 to comp_count-1 do

SetLength(flow_composition[i], flow_count);

SetLength(mix_composition, flow_count);

get_data (comp_RON,flow_composition, treb_RON, h, eps);

blending (comp_count, flow_count, comp_RON,flow_composition, treb_RON, eps, h, mix_composition, RONc);

get_result (mix_composition, RONc);

end;

procedure TForm1.N2Click(Sender: TObject);

vari,j:integer;

begin

ExcelApplication1.Connect;

ExcelApplication1.Visible[0]:= False;

ExcelApplication1.DisplayAlerts[0]:= False;

ExcelApplication1.Workbooks.Open(ExtractFilePath(Application.ExeName)+ 'Исходныеданные.xlsx',

EmptyParam, EmptyParam, EmptyParam,

EmptyParam, EmptyParam, EmptyParam,

EmptyParam, EmptyParam, EmptyParam,

EmptyParam, EmptyParam, EmptyParam, 0);

fori := 0 to comp_count+1 do

for j := 0 to flow_count+2 do

StringGrid1.Cells[j,i] := ExcelApplication1.Cells.Item[i+1, j+1];

ExcelApplication1.Quit;

ExcelApplication1.Disconnect;

end;

procedure TForm1.get_data(comp_RON:TArrOfDouble; flow_composition:TArrOfArrOfDouble; vartreb_RON, h, eps: Double);

vari,j:integer;

begin

with StringGrid1 do

begin

fori := 0 to comp_count-1 do

begin

comp_RON[i] := StrToFloat(Cells[1, i+1]);

for j := 0 to flow_count-1 do

flow_composition[i,j] :=StrToFloat(Cells[j+2, i+1]);

end;

end;

treb_RON := StrToFloat(Edit1.Text);

h:= StrToFloat(Edit2.Text);

eps:= StrToFloat(Edit3.Text);

end;

procedure TForm1.get_result(mix_composition:TArrOfDouble; RONc: Double);

var

i: integer;

begin

with StringGrid2 do

begin

Cells[0,0] := 'Номер потока';

Cells[1,0] := 'Доля потока, %';

Cells[0,7] := 'ОЧсмешения';

fori := 1 to RowCount-2 do

begin

Cells[0,i] := IntToStr(i);

Cells[1,i] := FloatToStrF(mix_composition[i-1]*100, fffixed, 8, 2);

end;

Cells[1,7] := FloatToStrF(RONc, fffixed, 8, 2)

end;

end;

end.

Соседние файлы в предмете Системный анализ процессов химической технологии