uses graph, crt, dos; {$I graafika.pas} function tostr(w : word):string; var s : string; begin str(w,s); tostr:=s; end; const Linnukala = 'hinnad.hhh'; days : array [0..6] of String = ('Phap„ev','Esmasp„ev','Teisip„ev', 'Kolmap„ev','Neljap„ev','Reede', 'Laup„ev'); var y, m, d, dow : Word; procedure joonistataht(x,y : integer); begin line(x+170, y+130, x+180,y+135); line(x+ 170,y+ 130,x+175,y+135); line(x+175, y+135, x+170,y+ 140); line(x+ 180,y+ 135,x+ 170,y+ 140); line(x+180, y+135, x+190, y+140); line(x+ 190,y+ 140,x+ 185,y+ 135); line(x+190, y+130, x+180,y+135); line(x+190, y+130, x+185, y+135); end; function keskele(nimi : string) : word; begin keskele:=(250-TextWidth(nimi)) div 2; end; type inimene = (kylastaja,klient); hinnad = array[1..7,inimene]of word; procedure muuda; var f : file of hinnad; hind : hinnad; i : byte; begin writeln; for i:=0 to 6 do begin writeln(days[i]); write('Uus klastaja hind: '); readln(hind[i+1,kylastaja]); write('Uus kliendi hind: '); readln(hind[i+1,klient]); end; assign(f,Linnukala); {$i-} rewrite(f); {$i+} if ioresult<>0 then begin writeln('Proge katki. Ei saanud faili ',Linnukala,' muutmisega hakkama.'); halt(1); end; write(f,hind); close(f); end; function lz(s : string) : string; var i : byte; begin for i:=length(s) to 3 do s:='0'+s; lz:=s; end; var ch : char; nimi : string; hind : hinnad; piletihind,piletinumber,kylastajaid,kliente : word; summa : longint; esinejahind : array[inimene]of word; f : file of hinnad; esineja : boolean; i : byte; begin clrscr; write('Kas muuta n„dala hinnakirja [J/E]?'); repeat ch:=upcase(readkey); until ch in ['J','E']; if ch = 'J' then muuda; writeln; write('Kas t„na esineja on [J/E]? '); repeat ch:=upcase(readkey); until ch in ['J','E']; esineja:=ch='J'; writeln; nimi:=''; if esineja then begin write('Kes on esineja? '); repeat ch:=readkey; case ch of #8:begin nimi:=copy(nimi,1,length(nimi)-1); gotoxy(wherex-1,wherey); write(' '); gotoxy(wherex-1,wherey); end; #13:break; else if length(nimi)<17 then begin nimi:=nimi+ch; write(ch); end; end; until false; writeln; write('Kliendi pileti hind ? '); readln(esinejahind[klient]); write('Klastaja pileti hind ? '); readln(esinejahind[kylastaja]); end else begin assign(f,Linnukala); {$i-} reset(f); {$i+} if ioresult<>0 then begin writeln('Proge katki. Ei leidnud faili ',Linnukala); halt(1); end; read(f,hind); close(f); end; piletinumber:=0; kylastajaid:=0; kliente:=0; summa:=0; randomize; repeat piletinumber:=piletinumber+1; write('Kas klient v“i klastaja [L/Y]?'); GetDate(y,m,d,dow); repeat ch:=upcase(readkey); until ch in ['L','Y']; if ch = 'L' then begin if esineja then piletihind:=esinejahind[klient] else piletihind:=hind[dow,klient]; kliente:=kliente+1; end else begin if esineja then piletihind:=esinejahind[kylastaja] else piletihind:=hind[dow,kylastaja]; kylastajaid:=kylastajaid+1; end; summa:=summa+piletihind; kaivitagraafika; rectangle(400,100,150,200); setcolor(8); joonistataht(0,0); joonistataht(100,-10); for i:=1 to 8 do joonistataht(random(225)-15,random(90)-30); settextstyle(5,0,1); setcolor(10); outtextxy(160, 110, 'Club Hollywood'); settextstyle(0,0,1); setcolor(15); outtextxy(365,105,lz(tostr(piletinumber))); outtextxy(300,175,days[dow]); outtextxy(300,165,tostr(d)+'.'+tostr(m)+'.'+tostr(y)); outtextxy(280,185,'HIND: '+tostr(piletihind)+' EEK'); settextstyle(1,0,2); outtextxy(150+keskele(nimi),140,nimi); readkey; closegraph; restorecrtmode; write('J„rgmine [J/E]'); repeat ch:=upcase(readkey); until ch in ['J','E']; writeln; until ch='E'; writeln('Klastajaid oli ',kylastajaid); writeln('Kliente oli ',kliente); writeln('Kokku oli ',kylastajaid+kliente); writeln('Raha sai ',summa,' EEKi'); writeln('Vajuta enterit.'); readkey; end.