end;
(*Рисует контуры здания*)
Procedure Draw_build(z:mas_1;color_bk,color_zd:word);
var
i:byte;
begin
Draw_help;
setbkcolor(color_bk);
setcolor(color_zd);
for i:=1 to 4 do
rectangle(z[i,1], z[i,2], z[i,3], z[i,4]);
end;
(*Результат*)
Procedure Raschet(z:mas_1; c:mas_2);
var
i:byte;
f3:text;
sum,sum_t:real;
begin
setbkcolor(7);
setcolor(5);
tov[1].name:='Optovolokno';
tov[1].kol:=(z[2,2]-z[1,4])+(z[3,1]-z[2,3])+round(sqrt(sqr(z[4,1]-z[2,3])+
sqr(z[4,2]-z[2,2])));
tov[2].name:='10 Base 2';
tov[2].kol:=(c[8,3]-c[7,3])+(c[7,4]-c[6,4])+(c[6,4]-c[5,4])+(c[5,3]-c[6,3])+
(c[17,3]-c[7,3])+(c[7,4]-c[17,4])+(c[8,3]-c[7,3])+2*etazh;
tov[3].name:='100 Base 5';
tov[3].kol:=(c[3,4]-c[2,4])+(c[3,4]-c[1,4])+(c[1,3]-c[2,3])+c[13,3]-c[14,3]+
2*(c[12,4]-c[10,4])+(c[9,3]-c[10,3])+(c[9,3]-z[3,1])+(z[3,4]-17-
c[12,4])+2*(c[11,4]-c[12,4])+(c[11,3]-c[10,3])+c[3,3]-c[2,3]+c[4,3]-
c[2,3]+2*(c[15,4]-c[14,4])+c[15,3]-c[14,3]+c[16,3]-c[14,3]+c[12,3]-
c[10,3]+c[11,4]-c[12,4]+8*etazh;
tov[9].name:='NetsCart FastEthernet';
tov[10].name:='NetsCart Ethernet';
for i:=1 to 16 do
if c[i,1]=c[17,1] then inc(tov[10].kol)
else inc(tov[9].kol);
inc(tov[10].kol);
tov[12].name:='Repeater'; tov[12].kol:=5;
tov[11].name:='Transiver'; tov[11].kol:=6;
tov[4].name:='RJ_45'; tov[4].kol:=12{1}+14{3}+12{4};
tov[5].name:='BNC Terminator'; tov[5].kol:=1;
tov[6].name:='BNC T-Connector'; tov[6].kol:=5;
tov[7].name:='BNC Connector'; tov[7].kol:=10;
tov[8].name:='Switch 8upt';tov[8].kol:=4;
outtextxy(50, 10, 'Расчет количества необходимого оборудования:');
for i:=1 to 12 do
if i<=3 then outtextxy(50, 20+i*10,tov[i].name+' = '+IntToStr(tov[i].kol)+'м')
else outtextxy(50, 20+i*10,tov[i].name+' = '+IntToStr(tov[i].kol)+'шт');
assign(f3,'pice.txt');
reset(f3);
i:=1;
while not eof(f3) do
begin
readln(f3,pice[i].name);
readln(f3,pice[i].cena);
inc(i);
end;
close(f3);
assign(f3,'report.txt');
rewrite(f3);
writeln(f3,'Расчет стоимости и количества товара');
sum:=0;
for i:=1 to 12 do
begin
sum_t:=pice[i].cena*tov[i].kol;
sum:=sum+sum_t;
write(f3,tov[i].name); write(f3,': '); write(f3,pice[i].name);
write(f3,'='); write(f3,tov[i].kol); write(f3,'*');
write(f3,pice[i].cena:5:2); write(f3, '='); write(f3,sum_t:5:2);
writeln(f3,' грн');
end;
write(f3,'Общая стоимость составляет '); write(f3,sum:7:2); writeln(f3,' грн');
close(f3);
end;
procedure menu;
begin
SetFillStyle(blue,4);
bar(0,460,640,480);
setcolor(5);
outtextxy(10,470,'1- 1этаж 2- 2этаж 3- 3этаж 4-все здание 5-расчет (файл raport.txt) ESC-выход');
{ setbkcolor(white);}
end;
(*Главная программа*)
begin
Init_graph(gm,gd);
Init_koord(zd,comp);
menu;
repeat
cc:=readkey;
case cc of
'1':begin cleardevice; Draw_build(zd,7,4);Draw_1_etazh(zd,comp);menu; end;
'2':begin cleardevice; Draw_build(zd,7,4);Draw_2_etazh(zd,comp);menu; end;
'3':begin cleardevice; Draw_build(zd,7,4);Draw_3_etazh(zd,comp);menu; end;
'4':begin cleardevice; Draw_build(zd,7,4);Draw_1_etazh(zd,comp);
Draw_2_etazh(zd,comp);
Draw_3_etazh(zd,comp);menu; end;
'5':begin cleardevice; Raschet(zd, comp);menu;; end;
end;
until cc=#27;
closegraph;
end.
Файл pice.txt
Оптоволокно ММ
27
Кабель RG-58 С/О Taiwan коаксиальный
1.40
Кабель UTP 5 кат. AMP
1.20
RJ - 45 UTP
0.80
BNC терминатор (50 Ом)
4
BNC T-Connector
3
BNC Connector
6
Switch 8UPT 100Mbps Canyon, Surecom
143
Сетевая плата PCI FastEthernet 100Mbps
35
Сетевая плата BNC+UTP, NIC-C1, PCI
48
Трансивер EP-816X Surecom
387
Повторитель Complex RE10TX/WOL
116
Файл koord_zd.txt
100 0 180 100
0 140 100 280
290 80 360 160
230 220 270 290
Файл koord_pk.txt
1 3 140 2
1 3 102 50
1 2 140 98
1 2 178 98
2 3 50 142
2 3 2 210
2 1 2 278
2 3 98 278
3 3 358 82
3 2 292 82
3 1 325 158
3 2 358 120
4 3 268 222
4 2 232 222
4 2 250 288
4 2 268 288
2 1 98 142
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.