Sei sulla pagina 1di 15

Program TransitoNacional;

Uses crt,dos;
Var
MENU: integer;
{VARIABLES PARA OBTENER EL DIA, MES Y ANYO}
dia: word;
mes: word;
anyo: word;
diasem: word;
{Declaracion de
PlaVeh: array
NumPas: array
Alcaba: array
TipTra: array
FechaF: array
TipVeh: array
EntFed: array

los arreglos o vectores}


[1..100] Of string[7];
[1..100] Of integer;
[1..100] Of string[20];
[1..100] Of string[1];
[1..100] Of string[8];
[1..100] Of string[1];
[1..100] Of string[15];

{Variables auxiliares para la inclusion y modificacion}


AuxPlaVeh: string[7];
AuxNumPas: integer;
AuxAlcaba: string[20];
AuxTipTra: string[1];
AuxFechaF: string[8];
AuxTipVeh: string[1];
AuxEntFed: string[15];
N,I,K: integer;
A: STRING[1];
SWITCH: boolean;
{SWITCH QUE INDICA EXISTENCIA DE UN REGISTRO}
{PROCEDIMIENTO PARA INCLUIR REGISTROS}
Procedure INCLUIR;
Begin
clrscr;
N := N+1;
If N<1 Then N := 1;
If N>100 Then N := 1;
clrscr;
writeln(' REGISTRO: ',N);
writeln;
Repeat
AuxPlaVeh := '';
write(' PLACA DE VEHICULO (forma XXNNNXX) : ');
readln(AuxPlaVeh);
Until AuxPlaVeh <> '';
WRITELN;
Repeat
write(' NUMERO DE PASAJEROS (1 A 100)
: ');
readln(AuxNumPas);
Until (AuxNumPas > 0) And (AuxNumPas < 100);
WRITELN;
Repeat
write(' NOMBRE ALCABALA (hasta 20 digitos) : ');

readln(AuxAlcaba);
Until AuxAlcaba <> '';
WRITELN;
Repeat
write(' TIPO TRANSITO (E=ENTRADA S=SALIDA)
readln(AuxTipTra);
Until (AuxTipTra = 'E') Or (AuxTipTra = 'S')
a = 's');
WRITELN;
Repeat
WRITE(' FECHA (DDMMAAAA) (8 digitos)
readln(AuxFechaF);
Until length(AuxFechaF) = 8;
WRITELN;
Repeat
WRITE(' TIPO (1=part 2=pues 3=taxi 4=publ)
readln(AuxTipVeh);
Until (AuxTipVeh = '1') Or (AuxTipVeh = '2')
h = '4');
WRITELN;
Repeat
write(' NOMBRE ENTIDAD FEDERAL (estado)
readln(AuxEntFed);
Until AuxEntFed <> '';
WRITELN;
PlaVeh[N]
NumPas[N]
Alcaba[N]
TipTra[N]
FechaF[N]
TipVeh[N]
EntFed[N]
End;

: ');
Or (AuxTipTra = 'e') Or (AuxTipTr

: ');

: ');
Or (AuxTipVeh = '3') Or (AuxTipVe

: ');

{GUARDA EL REGISTRO EN LOS VECTORES}


:= AuxPlaVeh;
:= AuxNumPas;
:= AuxAlcaba;
:= AuxTipTra;
:= AuxFechaF;
:= AuxTipVeh;
:= AuxEntFed;

{PROCEDIMIENTO PARA HACER LA CONSULTA DE REGISTROS POR PLACA DEL VEHICULO}


Procedure CONSULTAR;
Begin
CLRSCR;
WRITELN;
write('PLACA DEL VEHICULO: ');
readln(AuxPlaVeh);
SWITCH := false;
K := 0;
While (K<N+1) And (SWITCH<>true) Do
Begin
K := K+1;
If (PlaVeh[K]=AuxPlaVeh) And (PlaVeh[K]<>'ELIM') Then
Begin
SWITCH := true;
GOTOXY(1,5);
writeln('---------------------------------------------------');
writeln('REGISTRO NO.
: ',k);
writeln('No. PASAJEROS
: ',NumPas[K]);
writeln('ALCABALA
: ',Alcaba[K]);
writeln('ENTRADA O SALIDA
: ',TipTra[K]);
writeln('FECHA
: ',FechaF[K]);
writeln('TIPO DE VEHICULO
: ',TipVeh[K]);

If TipVeh[k]='1' Then writeln('Para Particulares');


If TipVeh[k]='2' Then writeln('Para Por Puesto');
If TipVeh[k]='3' Then writeln('Para Taxi');
If TipVeh[k]='4' Then writeln('Para Transporte Publico');
writeln('ENTIDAD FEDERAL
: ',EntFed[K]);
writeln('---------------------------------------------------');
writeln('Cualquier tecla para continuar');
readln(a);
End;
End;
End;
{PROCEDIMIENTO PARA HACER MODIFICACIONES DE DATOS}
Procedure MODIFICAR;
Begin
CLRSCR;
WRITELN;
write('PLACA DEL VEHICULO: ');
readln(AuxPlaVeh);
SWITCH := false;
K := 0;
While (K<N+1) And (SWITCH<>true) Do
Begin
K := K+1;
If (PlaVeh[K]=AuxPlaVeh) And (PlaVeh[K]<>'ELIM') Then
Begin
SWITCH := true;
GOTOXY(1,5);
writeln('---------------------------------------------------');
writeln('REGISTRO NO.
: ',k);
writeln('No. PASAJEROS
: ',NumPas[K]);
writeln('ALCABALA
: ',Alcaba[K]);
writeln('ENTRADA O SALIDA
: ',TipTra[K]);
writeln('FECHA
: ',FechaF[K]);
writeln('TIPO DE VEHICULO
: ',TipVeh[K]);
If TipVeh[k]='1' Then writeln('Para Particulares');
If TipVeh[k]='2' Then writeln('Para Por Puesto');
If TipVeh[k]='3' Then writeln('Para Taxi');
If TipVeh[k]='4' Then writeln('Para Transporte Publico');
writeln('ENTIDAD FEDERAL
: ',EntFed[K]);
writeln('---------------------------------------------------');
AuxNumPas := 0;
AuxAlcaba := '';
AuxTipTra := '';
AuxFechaF := '';
AuxTipVeh := '';
AuxEntFed := '';
GOTOXY(50,7);
readln(AuxNumPas);
GOTOXY(50,8);
readln(AuxAlcaba);
GOTOXY(50,9);
readln(AuxTipTra);
GOTOXY(50,10);
readln(AuxFechaF);
GOTOXY(50,11);
readln(AuxTipVeh);
GOTOXY(50,12);

readln(AuxEntFed);
If AuxNumPas<>0 Then NumPas[K] := AuxNumPas;
If AuxAlcaba<>'' Then Alcaba[K] := AuxAlcaba;
If AuxTipTra<>'' Then TipTra[K] := AuxTipTra;
If AuxFechaF<>'' Then FechaF[K] := AuxFechaF;
If AuxTipVeh<>'' Then TipVeh[K] := AuxTipVeh;
If AuxEntFed<>'' Then EntFed[K] := AuxEntFed;
writeln('Cualquier tecla para continuar');
readln(a);
End;
End;
End;
{PROCEDIMIENTO PARA ELIMINAR REGISTROS}
Procedure ELIMINAR;
Begin
CLRSCR;
WRITELN;
write('PLACA DEL VEHICULO: ');
readln(AuxPlaVeh);
SWITCH := false;
K := 0;
While (K<N+1) And (SWITCH<>true) Do
Begin
K := K+1;
If (PlaVeh[K]=AuxPlaVeh) And (PlaVeh[K]<>'ELIM') Then
Begin
SWITCH := true;
GOTOXY(1,5);
writeln('---------------------------------------------------');
writeln('REGISTRO NO.
: ',k);
writeln('No. PASAJEROS
: ',NumPas[K]);
writeln('ALCABALA
: ',Alcaba[K]);
writeln('ENTRADA O SALIDA
: ',TipTra[K]);
writeln('FECHA
: ',FechaF[K]);
writeln('TIPO DE VEHICULO
: ',TipVeh[K]);
If TipVeh[k]='1' Then writeln('Para Particulares');
If TipVeh[k]='2' Then writeln('Para Por Puesto');
If TipVeh[k]='3' Then writeln('Para Taxi');
If TipVeh[k]='4' Then writeln('Para Transporte Publico');
writeln('ENTIDAD FEDERAL
: ',EntFed[K]);
writeln('---------------------------------------------------');
write('DESEA ELIMINAR ESTE REGISTRO? (S/N)');
readln(A);
{ELIMINACION LOGICA MARCANDO EL REGISTRO CON LA PALABRA ELIM}
If (A='S') Or (A='s') Then PlaVeh[K] := 'ELIM';
End;
End;
End;
{PROCEDIMIENTO PARA HACER EL ORDENAMIENTO POR ALCABALA Y FECHA}
Procedure ORDEN1;
Var
I,J: INTEGER;
AUX1,AUX2: STRING[28]; {VARIABLES PARA DATO COMPUESTO DE ALCABALA Y FECHA}

Begin
For I:=N Downto 1 Do
Begin
For J:= 1 To I-1 Do
Begin
AUX1 := Alcaba[J]+COPY(FechaF[J],5,4)+COPY(FechaF[J],3,2)+COPY(FechaF[
J],1,2);
AUX2 := Alcaba[J+1]+COPY(FechaF[J+1],5,4)+COPY(FechaF[J+1],3,2)+COPY(F
echaF[J+1],1,2);
If AUX1 > AUX2 Then
Begin
{INTERCAMBIO DE DATOS ENTRE UN REGISTRO Y EL SIGUIENTE}
AuxPlaVeh := PlaVeh[J];
PlaVeh[J] := PlaVeh[J+1];
PlaVeh[J+1] := AuxPlaVeh;
AuxNumPas := NumPas[J];
NumPas[J] := NumPas[J+1];
NumPas[J+1] := AuxNumPas;
AuxAlcaba := Alcaba[J];
Alcaba[J] := Alcaba[J+1];
Alcaba[J+1] := AuxAlcaba;
AuxTipTra := TipTra[J];
TipTra[J] := TipTra[J+1];
TipTra[J+1] := AuxTipTra;
AuxFechaF := FechaF[J];
FechaF[J] := FechaF[J+1];
FechaF[J+1] := AuxFechaF;
AuxTipVeh := TipVeh[J];
TipVeh[J] := TipVeh[J+1];
TipVeh[J+1] := AuxTipVeh;
End;
End;
End;
End;
{PROCEDIMIENTO PARA HACER EL ORDENAMIENTO POR PLACA DE VEHICULO}
Procedure ORDEN2;
Var
I,J: INTEGER;
Begin
For I:=N Downto 1 Do
Begin
For J:= 1 To I-1 Do
Begin
If PlaVeh[J] > PlaVeh[J+1] Then
Begin
{INTERCAMBIO DE DATOS ENTRE UN REGISTRO Y EL SIGUIENTE}
AuxPlaVeh := PlaVeh[J];
PlaVeh[J] := PlaVeh[J+1];
PlaVeh[J+1] := AuxPlaVeh;
AuxNumPas := NumPas[J];
NumPas[J] := NumPas[J+1];
NumPas[J+1] := AuxNumPas;
AuxAlcaba := Alcaba[J];
Alcaba[J] := Alcaba[J+1];
Alcaba[J+1] := AuxAlcaba;
AuxTipTra := TipTra[J];
TipTra[J] := TipTra[J+1];

TipTra[J+1] := AuxTipTra;
AuxFechaF := FechaF[J];
FechaF[J] := FechaF[J+1];
FechaF[J+1] := AuxFechaF;
AuxTipVeh := TipVeh[J];
TipVeh[J] := TipVeh[J+1];
TipVeh[J+1] := AuxTipVeh;
End;
End;
End;
End;
{PROCEDIMIENTO PARA HACER EL ORDENAMIENTO POR ENTIDAD FEDERAL Y TIPO DE VEHICULO
}
Procedure ORDEN3;
Var
I,J: INTEGER;
AUX1,AUX2: STRING[21]; {VARIABLES PARA DATO COMPUESTO DE ENTIDAD FEDERAL Y TIP
O DE VEHICULO}
Begin
For I:=N Downto 1 Do
Begin
For J:= 1 To I-1 Do
Begin
AUX1 := EntFed[J]+TipVeh[J];
AUX2 := EntFed[J+1]+TipVeh[J+1];
If AUX1 > AUX2 Then
Begin
{INTERCAMBIO DE DATOS ENTRE UN REGISTRO Y EL SIGUIENTE}
AuxPlaVeh := PlaVeh[J];
PlaVeh[J] := PlaVeh[J+1];
PlaVeh[J+1] := AuxPlaVeh;
AuxNumPas := NumPas[J];
NumPas[J] := NumPas[J+1];
NumPas[J+1] := AuxNumPas;
AuxEntFed := EntFed[J];
EntFed[J] := EntFed[J+1];
EntFed[J+1] := AuxEntFed;
AuxTipTra := TipTra[J];
TipTra[J] := TipTra[J+1];
TipTra[J+1] := AuxTipTra;
AuxFechaF := FechaF[J];
FechaF[J] := FechaF[J+1];
FechaF[J+1] := AuxFechaF;
AuxTipVeh := TipVeh[J];
TipVeh[J] := TipVeh[J+1];
TipVeh[J+1] := AuxTipVeh;
End;
End;
End;
End;
Procedure REPORTE;
Var
T,Z,pag,DIA,MES,AYO: integer;
X: string;

Entran,Salen,TotEntran,TotSalen,PorEntran,PorSalen: integer;
ToTFechas: integer;
FechaP: string[8];
FechaT: string[10];
AlcabaP: string[20];
EntFedP: string[15];
ToTVehiculos: integer;
PlaVehP: string[7];
Fecha1,Fecha2: string[8];
NumAlc,DiaTra,TotPas,Dias1,Dias2,ProPas: integer;
TipVehP: string[1];
TipVehT: string[20];
CanVeh,PorVeh,PasCon: integer;
Begin
{INICIO REPORTE 1: ALCABALA Y FECHA}
ORDEN1;
k := 1;
pag := 1;
T := 0;
Entran := 0;
Salen := 0;
TotEntran := 0;
TotSalen := 0;
TotFechas := 0;
While (K<N+1) And (N>0) Do {Ciclo de lectura de los registros}
Begin
If PlaVeh[K]<>'ELIM' Then {Omitir los marcados como eliminados}
Begin
T := T+1;
If (T>1) And (FechaP<>FechaF[k]) Then {Viene otra fecha, debe imprimi
r}
Begin
FechaT := COPY(FechaP,1,2)+'/'+COPY(FechaP,3,2)+'/'+COPY(FechaP,5,
4);
PorEntran := Round(Entran*100/(Entran+Salen));
PorSalen := Round(Salen*100/(Entran+Salen));
i := i+1;
gotoxy(2,i);
writeln(FechaT);
gotoxy(20,i);
writeln(Salen:5);
gotoxy(30,i);
writeln(Entran:5);
gotoxy(50,i);
writeln(PorSalen:5);
gotoxy(60,i);
writeln(PorEntran:5);
TotFechas := TotFechas+1;
TotEntran := TotEntran+Entran;
TotSalen := TotSalen+Salen;
Entran := 0;
Salen := 0;
End;
If (T>1) And (AlcabaP<>Alcaba[k]) Then

{Viene otra alcabala, debe im

primir totales}
Begin
writeln(
'************************************************************
*******************'
);
writeln(' Total de Fechas Procesadas: ',TotFechas:5);
readln(a);
TotFechas := 0;
T := 0;
pag := pag+1;
End;
If T<2 Then
{Encabezado con cada alcabala}
Begin
clrscr;
i := 2;
gotoxy(1,i);
writeln('Coordinacion de Transito Nacional
Pag.',pag)
;
writeln('
** ESTADISTICA POR ALCABALA **');
writeln('ALCABALA: ',Alcaba[k]);
writeln(' Fecha
Cantidad de vehiculos
Porcentaj
e de vehiculos');
writeln('
Salen
Entran
Salen
Entran');
writeln(
'************************************************************
*******************'
);
i := 7;
End;
FechaP := FechaF[k];
AlcabaP := Alcaba[k];
{Contadores}
If (TipTra[k]='E') Or (TipTra[k]='e') Then Entran := Entran+1;
If (TipTra[k]='S') Or (TipTra[k]='s') Then Salen := Salen+1;
End;
K := K+1;
End;
writeln;
{FINAL DE LECTURA DE LOS VECTORES}
If T<2 Then
{Encabezado con cada alcabala}
Begin
clrscr;
i := 2;
gotoxy(1,i);
writeln('Coordinacion de Transito Nacional
Pag.',pag);
writeln('
** ESTADISTICA POR ALCABALA **');
writeln('ALCABALA: ',AlcabaP);
writeln(' Fecha
Cantidad de vehiculos
Porcentaje de veh
iculos');
writeln('
Salen
Entran
Salen
Entra
n');
writeln('*****************************************************************
**************');
i := 7;

End;
FechaT := COPY(FechaP,1,2)+'/'+COPY(FechaP,3,2)+'/'+COPY(FechaP,5,4);
PorEntran := Round(Entran*100/(Entran+Salen));
PorSalen := Round(Salen*100/(Entran+Salen));
i := i+1;
gotoxy(2,i);
writeln(FechaT);
gotoxy(20,i);
writeln(Salen:5);
gotoxy(30,i);
writeln(Entran:5);
gotoxy(50,i);
writeln(PorSalen:5);
gotoxy(60,i);
writeln(PorEntran:5);
TotFechas := TotFechas+1;
TotEntran := TotEntran+Entran;
TotSalen := TotSalen+Salen;
Entran := 0;
Salen := 0;
writeln('*********************************************************************
**********');
writeln(' Total de Fechas Procesadas: ',TotFechas:5);
readln(a);
{FIN REPORTE 1: ALCABALA Y FECHA}
{INICIO REPORTE 2: PLACA DE VEHICULO}
ORDEN2;
k := 1;
pag := 1;
T := 0;
Fecha1 := '31121999';
Fecha2 := '31121999';
NumAlc := 0;
TotPas := 0;
ToTVehiculos := 0;
While (K<N+1) And (N>0) Do {Ciclo de lectura de los registros}
Begin
If PlaVeh[K]<>'ELIM' Then {Omitir los marcados como eliminados}
Begin
T := T+1;
If (T>1) And (PlaVehP<>PlaVeh[k]) Then {Viene otra placa de vehiculo,
debe imprimir}
Begin
ProPas := Round(TotPas/NumAlc);
Z := 1;
X := Fecha1[1]+Fecha1[2];
VAL(X,DIA,Z);
X := Fecha1[3]+Fecha1[4];
VAL(X,MES,Z);
X := Fecha1[5]+Fecha1[6]+Fecha1[7]+Fecha1[8];
VAL(X,AYO,Z);
Dias1 := DIA+MES*30+AYO*360;
X := Fecha2[1]+Fecha2[2];
VAL(X,DIA,Z);
X := Fecha2[3]+Fecha2[4];
VAL(X,MES,Z);
X := Fecha2[5]+Fecha2[6]+Fecha2[7]+Fecha2[8];

VAL(X,AYO,Z);
Dias2 := DIA+MES*30+AYO*360;
DiaTra := Dias2-Dias1;
If DiaTra<0 Then DiaTra := 0;
i := i+1;
gotoxy(3,i);
writeln(PlaVehP);
gotoxy(20,i);
writeln(NumAlc:5);
gotoxy(40,i);
writeln(DiaTra:5);
gotoxy(60,i);
writeln(ProPas:5);
ToTVehiculos := ToTVehiculos+1;
NumAlc := 0;
TotPas := 0;
End;
If T<2 Then {Encabezado con cada placa de vechiculo}
Begin
clrscr;
i := 2;
gotoxy(1,i);
writeln('Coordinacion de Transito Nacional
Pag.',pag);
writeln('
** ESTADISTICA POR VEHICULO **');
writeln;
writeln(' Placa
NUMERO DE
DIAS
PROMEDIO DE');
writeln('
ALCABALAS
TRANSITADOS
PASAJEROS');
writeln(
'************************************************************
*******************'
);
i := 7;
End;
PlaVehP := PlaVeh[k];
{Contadores}
NumAlc := NumAlc+1;
TotPas := TotPas+NumPas[k];
If (TipTra[k]='E') Or (TipTra[k]='e') Then

{Calculos para entrada a

alcabala}
Begin
If Fecha1='31121999' Then Fecha1 := FechaF[k];
Z := 1;
X := Fecha1[1]+Fecha1[2];
VAL(X,DIA,Z);
X := Fecha1[3]+Fecha1[4];
VAL(X,MES,Z);
X := Fecha1[5]+Fecha1[6]+Fecha1[7]+Fecha1[8];
VAL(X,AYO,Z);
Dias1 := DIA+MES*30+AYO*360;
X := FechaF[K,1]+FechaF[K,2];
VAL(X,DIA,Z);
X := FechaF[K,3]+FechaF[K,4];
VAL(X,MES,Z);
X := FechaF[K,5]+FechaF[K,6]+FechaF[K,7]+FechaF[K,8];
VAL(X,AYO,Z);

Dias2 := DIA+MES*30+AYO*360;
If Dias2<Dias1 Then Fecha1 := FechaF[k];
End;
If (TipTra[k]='S') Or (TipTra[k]='s') Then {Calculos para salida de
alcabala}
Begin
If Fecha2='31121999' Then Fecha2 := FechaF[k];
Z := 1;
X := Fecha2[1]+Fecha2[2];
VAL(X,DIA,Z);
X := Fecha2[3]+Fecha2[4];
VAL(X,MES,Z);
X := Fecha2[5]+Fecha2[6]+Fecha2[7]+Fecha2[8];
VAL(X,AYO,Z);
Dias1 := DIA+MES*30+AYO*360;
X := FechaF[K,1]+FechaF[K,2];
VAL(X,DIA,Z);
X := FechaF[K,3]+FechaF[K,4];
VAL(X,MES,Z);
X := FechaF[K,5]+FechaF[K,6]+FechaF[K,7]+FechaF[K,8];
VAL(X,AYO,Z);
Dias2 := DIA+MES*30+AYO*360;
If Dias2>Dias1 Then Fecha2 := FechaF[k];
End;
End;
K := K+1;
End;
writeln;
{FINAL DE LECTURA DE LOS VECTORES}
If T<2 Then {Encabezado con cada placa de vechiculo}
Begin
clrscr;
i := 2;
gotoxy(1,i);
writeln('Coordinacion de Transito Nacional
P
ag.',pag);
writeln('
** ESTADISTICA POR VEHICULO **');
writeln;
writeln(' Placa
NUMERO DE
DIAS
PROMED
IO DE');
writeln('
ALCABALAS
TRANSITADOS
PASAJ
EROS');
writeln('*****************************************************************
**************');
i := 7;
End;
ProPas := Round(TotPas/NumAlc);
Z := 1;
X := Fecha1[1]+Fecha1[2];
VAL(X,DIA,Z);
X := Fecha1[3]+Fecha1[4];
VAL(X,MES,Z);
X := Fecha1[5]+Fecha1[6]+Fecha1[7]+Fecha1[8];
VAL(X,AYO,Z);
Dias1 := DIA+MES*30+AYO*360;
X := Fecha2[1]+Fecha2[2];
VAL(X,DIA,Z);
X := Fecha2[3]+Fecha2[4];
VAL(X,MES,Z);
X := Fecha2[5]+Fecha2[6]+Fecha2[7]+Fecha2[8];

VAL(X,AYO,Z);
Dias2 := DIA+MES*30+AYO*360;
DiaTra := Dias2-Dias1;
If DiaTra<0 Then DiaTra := 0;
i := i+1;
gotoxy(3,i);
writeln(PlaVehP);
gotoxy(20,i);
writeln(NumAlc:5);
gotoxy(40,i);
writeln(DiaTra:5);
gotoxy(60,i);
writeln(ProPas:5);
ToTVehiculos := ToTVehiculos+1;
writeln('*********************************************************************
**********');
writeln(' Total de Vehiculos Procesados: ',TotVehiculos:5);
readln(a);
{FIN REPORTE 2: PLACA DE VEHICULO}
{INICIO REPORTE 3: ENTIDAD FEDERAL Y TIPO DE VEHICULO}
ORDEN3;
k := 1;
pag := 1;
T := 0;
TotVehiculos := 0;
CanVeh := 0;
PorVeh := 0;
PasCon := 0;
ProPas := 0;
While (K<N+1) And (N>0) Do {Ciclo de lectura de los registros}
Begin
If PlaVeh[K]<>'ELIM' Then {Omitir los marcados como eliminados}
Begin
T := T+1;
If (T>1) And (TipVehP<>TipVeh[k]) Then {Viene otro tipo de vehiculo,
debe imprimir}
Begin
If TipVehP='1' Then TipVehT := 'Particulares';
If TipVehP='2' Then TipVehT := 'Por Puesto';
If TipVehP='3' Then TipVehT := 'Taxi';
If TipVehP='4' Then TipVehT := 'Transporte Publico';
PorVeh := Round(CanVeh*100/N);
ProPas := Round(PasCon/CanVeh);
i := i+1;
gotoxy(2,i);
writeln(TipVehT);
gotoxy(30,i);
writeln(CanVeh:5);
gotoxy(40,i);
writeln(PorVeh:5);
gotoxy(60,i);
writeln(ProPas:5);
CanVeh := 0;
PasCon := 0;
End;

If (T>1) And (EntFedP<>EntFed[k]) Then {Viene otra entidad federal,


debe imprimir totales}
Begin
writeln(
'************************************************************
*******************'
);
writeln(' Total de Vehiculos Procesados: ',TotVehiculos:5);
readln(a);
TotVehiculos := 0;
T := 0;
pag := pag+1;
End;
If T<2 Then {Encabezado con cada entidad federal}
Begin
clrscr;
i := 2;
gotoxy(1,i);
writeln('Coordinacion de Transito Nacional
Pag.',pag);
writeln('
** ESTADISTICA POR ENTIDAD FEDERAL **');
writeln('ENTIDAD FEDERAL: ',EntFed[k]);
writeln(' TIPO DE
VEHICULOS
PASAJEROS');
writeln(' VEHICULO
CANTIDAD PORCENTAJE
CONTABILIZADOS');
writeln(
'************************************************************
*******************'
);
i := 7;
End;
TipVehP := TipVeh[k];
EntFedP := EntFed[k];
{Contadores}
CanVeh := Canveh+1;
PasCon := PasCon+NumPas[k];
TotVehiculos := TotVehiculos+1;
End;
K := K+1;
End;
writeln;
{FINAL DE LECTURA DE LOS VECTORES}
If T<2 Then {Encabezado con cada entidad federal}
Begin
clrscr;
i := 2;
gotoxy(1,i);
writeln('Coordinacion de Transito Nacional
Pag.',pag);
writeln('
** ESTADISTICA POR ENTIDAD FEDERAL **');
writeln('ENTIDAD FEDERAL: ',EntFedP);
writeln(' TIPO DE
VEHICULOS
PASAJE
ROS');
writeln(' VEHICULO
CANTIDAD PORCENTAJE
CONTABIL
IZADOS');
writeln('*****************************************************************
**************');

i := 7;
End;
If TipVehP='1' Then TipVehT := 'Particulares';
If TipVehP='2' Then TipVehT := 'Por Puesto';
If TipVehP='3' Then TipVehT := 'Taxi';
If TipVehP='4' Then TipVehT := 'Transporte Publico';
PorVeh := Round(CanVeh*100/N);
ProPas := Round(PasCon/CanVeh);
i := i+1;
gotoxy(2,i);
writeln(TipVehT);
gotoxy(30,i);
writeln(CanVeh:5);
gotoxy(40,i);
writeln(PorVeh:5);
gotoxy(60,i);
writeln(ProPas:5);
writeln('*********************************************************************
**********');
writeln(' Total de Vehiculos Procesados: ',TotVehiculos:5);
readln(a);
{FIN REPORTE 3: ENTIDAD FEDERAL Y TIPO DE VEHICULO}
End;

Begin
(* PRINCIPAL *)
textcolor(white);
textbackground(lightblue);
GetDate(anyo, mes, dia, diasem);
Repeat
Repeat
clrscr;
WRITELN;
writeln('
COORDINACION DE TRANSITO NACIONAL');
writeln('
---------------------------------');
WRITELN('
',dia,'/',mes,'/',anyo);
writeln('
MENU DE OPCIONES');
writeln('
----------------');
writeln('
TRABAJO PRACTICO 323 - MIGUEL GOMEZ 25012617');
writeln('
--------------------------------------------');
WRITELN;
writeln('
1 Incluir');
WRITELN;
writeln('
2 Consultar');
WRITELN;
writeln('
3 Modificar');
WRITELN;
writeln('
4 Eliminar');
WRITELN;
writeln('
5 Reportes');
WRITELN;
writeln('
6 Salida');
WRITELN;
writeln;
write('Ingrese Opcion : ');
readLN(MENU);

Until (MENU>0) And (MENU<7);


Case MENU Of
1: INCLUIR;
2: CONSULTAR;
3: MODIFICAR;
4: ELIMINAR;
5: REPORTE;
End;
Until MENU=6;
End.

Potrebbero piacerti anche