program Transito;
uses crt;
const
zona1=80;
zona2=90;
zona3=100;
base=100;
somb : char = char(176);
var
Resp:char;
suma1,suma2,suma3,promedioMulta1,promedioMulta2,promedioMulta3,suma:real;
multa1,multa2,multa3,adicional,multa,vd,cedula:real;
tecla,nombre,placa:string;
zona,i,Cmulta1,Cmulta2,Cmulta3:integer;
sonido:word;
numezona:boolean;
procedure ventana;
begin
HighVideo;
textcolor(8+blink);
gotoxy (1,1);write(chr(31));
for i:= 2 to 77 do
begin
gotoxy (i,1);write(chr(206));
end;
gotoxy(78,1);write(chr(31));
for i:= 2 to 21 do
begin
gotoxy(1,i);write(chr(177));
gotoxy(77,i);write(chr(32),char(177));
end;
gotoxy(1,22);write(chr(30));
for i := 2 to 77 do
begin
gotoxy(i,22);write(chr(206));
end;
gotoxy(78,22);writeln(chr(30));
textcolor(0);
for i:= 4 to 79 do
begin
TextBackground(7);
gotoxy(i,23);writeln(' ');
end;
TextBackground(0);
for i:= 3 to 22 do
begin
TextBackground(7);
gotoxy(79,i);writeln(' ');
end;
TextBackground(0);
window(2,2,77,21);
end;
begin
clrscr;
ventana;
Resp:='s';
while(resp='s')or(resp='S')do
begin
textcolor(4);
sound(820);
delay(200);
nosound;
numezona := false;
zona := 0;
write('Ingrese codigo de zona de 1 a 3: ');
readln(zona);
delay(200);
if (zona < 1) or (zona > 3) then
begin
writeln('Numero de zona incorrecta');
numezona := false;
end
else
begin
numezona := true;
end;
if numezona = true then
begin
textcolor (7);
sound(890);
delay(200);
nosound;
write('Ingrese numero de placa: ');
readln(placa);
delay(200);
textcolor(4);
sound(820);
delay(200);
nosound;
write('Ingrese velocidad: ');
readln(vd);
delay(200);
textcolor(7);
sound(890);
delay(200);
nosound;
write('Ingrese nombre: ');
readln(nombre);
delay(200);
textcolor(4);
sound(820);
delay(200);
nosound;
write('Ingrese cedula: ');
readln(cedula);
delay(200);
clrscr;
if (zona = 1) and (vd <= zona1) then
begin
textcolor(2 + blink);
sound(900);
delay(600);
nosound;
writeln('No es infractor');
delay(200);
end;
if(zona = 1) and (vd > zona1) then
begin
Cmulta1 := Cmulta1 + 1;
adicional := (vd - zona1) * 50;
multa1 := base + adicional;
sound(300);
delay(600);
nosound;
writeln('placa:',placa);
writeln('multa:',multa1:3:2);
delay(200);
suma1 := suma1 + multa1;
end;
if(zona=2) and (vd <= zona2)then
begin
textcolor(7+blink);
sound(900);
delay(600);
nosound;
writeln('No es infractor');
delay(200);
end;
if(zona=2)and(vd > zona2)then
begin
Cmulta2:=Cmulta2+1;
adicional:=(vd-zona2)*50;
multa2:=base+adicional;
sound(300);
delay(600);
nosound;
writeln('placa:',placa);
writeln('multa:',multa2:3:2);
delay(200);
suma2:=suma2+multa2;
end;
if (zona=3)and(vd <= zona3)then
begin
textcolor(2+blink);
sound(900);
delay(600);
nosound;
writeln('No es infractor');
delay(200);
end;
if(zona=3)and(vd > zona3)then
begin
Cmulta3:=Cmulta3+1;
adicional:=(vd-zona3)*50;
multa3:=base+adicional;
sound(300);
delay(600);
nosound;
writeln('placa:',placa);
writeln('multa:',multa3:3:2);
delay(200);
suma3:=suma3+multa3;
end;
end;
textcolor(4);
sound(1200);
delay(600);
nosound;
gotoxy(1,3);write('Desea introducir otro conductor (s/n) : ');
readln(resp);
delay(100);
clrscr;
end;
clrscr;
textcolor(7);
sound(2000);
delay(700);
nosound;
gotoxy(2,2);writeln('Numero de infracciones Zona1 : ',Cmulta1 :3);
gotoxy(2,4);writeln('Numero de infracciones Zona2 : ',Cmulta2 :3);
gotoxy(2,6);writeln('Numero de infracciones Zona3 : ',Cmulta3 :3);
delay(1000);
sound(3000);
delay(900);
nosound;
if (multa1 > 0) then
begin
promedioMulta1 := suma1 / Cmulta1;
textcolor(8+blink);
gotoxy(2,8);writeln('Promedio de multas en Zona 1 : ',promedioMulta1:3:2);
end;
if (multa2 > 0) then
begin
promedioMulta2 := suma2 / Cmulta2;
textcolor(4+blink);
gotoxy(2,10);writeln('Promedio de multas en Zona 2 : ',promedioMulta2 :3:2);
end;
if (multa3 > 0) then
begin
promedioMulta3 := suma3 / Cmulta3;
textcolor(9+blink);
gotoxy(2,12);writeln('Promedio de multas en Zona 3:',promedioMulta3 :3:2);
end;
delay(1000);
textcolor(2);
begin
gotoxy(27,16);writeln('*---Pulse una tecla---*');
readln(tecla);
end;
begin
clrscr;
textcolor(7);
gotoxy(36,4);write('E');delay(500);write('s');delay(500);write('t');write(':');delay(500);
gotoxy(36,6);Write('L');delay(500);write('u'); delay(500);write('i');delay(500);write('s');delay(500);
gotoxy(38,8);write('C');delay(500);
gotoxy(38,9);write('a');delay(500);
gotoxy(38,10);write('r');delay(500);
gotoxy(38,11);write('a');delay(500);
gotoxy(38,12);write('b');delay(500);
gotoxy(38,13);write('a');delay(500);
gotoxy(38,14);write('l');delay(500);
gotoxy(38,15);write('l');delay(500);
gotoxy(38,16);write('o');delay(2500);
window(0,0,80,24);
end;
end.