Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
VICERRECTORADO ACADMICO
REA: INGENIERA
CARRERA: INGENIERA INDUSTRIAL
TRABAJO PRCTICO
ASIGNATURA: Computacin I
CDIGO: 323
ASESOR: Ing. Anabell Lares
NOMBRE DEL ESTUDIANTE:
CDULA DE IDENTIDAD:
CORREO ELECTRNICO:
CENTRO LOCAL: Monagas 14
CARRERA: 280
FIRMA DEL ESTUDIANTE: _________________________________
FECHA DE ENTREGA:
LAPSO: 2016-1
RESULTADOS DE CORRECCIN
OBJ. N
5
6
7
8
0:NL 1:L
TRABAJO PRCTICO
Placa
Nmero de pasajeros
Nmero de la alcabala transitada
Fecha
Tipo de vehculo (1: particular, 2: por puesto, 3: taxi, 4: transporte pblico)
2
6. Nmero de alcabala
7. Nombre de la entidad federal
8. Entrada o salida del vehculo (E: entrada, S: salida)
Las estadsticas se clasifican de la siguiente manera:
1. Estadsticas por alcabalas: vehculos que salen, vehculos que entran por
fechas. En cantidades y porcentajes.
2. Estadsticas por vehculos: nmero de alcabalas transitadas, das transitados,
promedio de pasajeros.
3. Estadsticas por tipo de vehculo: cantidad y porcentaje de vehculos segn su
tipo y por alcabala, cantidad de pasajeros contabilizados por tipo de vehculo.
Para la solucin del problema planteado se realizar un programa en pascal
haciendo uso de arreglos de registro que permitir lo siguiente:
1. Disear un men de mantenimiento con las opciones siguientes: Incluir,
Consultar, Modificar, Eliminar, Reportes y estadstica y Salida.
2. Registrar, con la opcin incluir, los siguientes datos:
3. Para las opciones de consulta, modificacin y eliminacin se har uso de los
datos registrado en el mdulo anterior.
4. Se generara reportes generales y estadsticas.
OBJETIVO 5
Aplicacin de la Metodologa MAPS
Las entradas al sistema sern las siguientes:
1.
2.
3.
4.
5.
6.
7.
8.
Placa
Nmero de pasajeros
Nmero de la alcabala transitada
Fecha
Tipo de vehculo (1: particular, 2: por puesto, 3: taxi, 4: transporte pblico)
Nmero de alcabala
Nombre de la entidad federal
Entrada o salida del vehculo (E: entrada, S: salida)
Post-Condiciones:
1. Registro de vehculo transitado y alcabala por nmero placa y nmero de
alcabala respectivamente.
2. Emisin de Reportes y estadsticas
OBJETIVO 6
Diseo del algoritmo en pseudocdigo
Programa alcabala;
Tipo arreglo1 = array[1..5] of string[12];
Arreglo2 = array[1..5] of entero largo;
Arreglo3 = array[1..5] of entero;
Arreglo4 = array[1..5] of caracter;
Variable
Estado, placa : arreglo1;
De, me, ae, tipov, alc, num : arreglo3;
Entrada : arreglo4;
Tecla, ent: caracter;
Tecla1 : entero;
N, m, t: entero;
Np : string;
Procedimiento incluir_vehiculo;
Variable i, j, sw, d, m, a : entero;
Op : caracter;
Np : string[12];
Inicio
Limpiar pantalla;
Posicin(10,10); escribir('indique la cantidad de vehiculos a ingresar: ');
Leer(n);
Hacer i:=1 hasta n
inicio
limpiar pantalla;
posicin(5,5); escribir('
registro de vehiculos');
posicin(5,6);
escribir('_______________________________________________________');
posicin(5,8); escribir('placa: ');
leer(np);
Hacer i:=1 hasta n
si (np=placa[j]) entonces
inicio
limpiar pantalla;
posicin(15,13); escribir('erro, ya existe esa placa');
posicin(15,14); escribir('pulse una tecla para continuar');
sw:=1;
tecla:=readkey;
fin
por el contrario
sw:=0;
placa[i]:=np;
si (sw=0) entonces
inicio
posicin(5,10); escribir('tipo de vehiculo [1: particular / 2: po puesto / 3: taxi / 4:
transpote publico]: ');
leer(t);
si (t=1) o (t=2) o (t=3) o (t=4) entonces
tipov[i]:=t
por el contrario
inicio
limpiar pantalla;
posicin(15,13); escribir('erro, solo puede ser 1, 2, 3 o 4');
posicin(15,14); escribir('pulse cualquier tecla pasa continuar');
tecla:=readkey;
fin;
posicin(5,12); escribir('fecha');
posicin(5,13); escribir('dia: ');
leer(d);
si (d<1) o (d>31) entonces
inicio
limpiar pantalla;
posicin(15,13); escribir('erro, el dia debe estar entre 1 y 31');
posicin(15,14); escribir('pulse cualquier tecla pasa continuar');
tecla:=readkey;
fin
por el contrario
de[i]:=d;
posicin(13,13); escribir('mes: ');
leer(m);
si (m<1) o (m>12) entonces
inicio
limpiar pantalla;
posicin(15,13); escribir('erro, el mes debe estar entre 1 y 12');
posicin(15,14); escribir('pulse cualquier tecla pasa continuar');
tecla:=readkey;
fin
por el contrario
me[i]:=m;
posicin(21,13); escribir('ao: ');
leer(a);
si (a<2015) o (a>2030) entonces
inicio
limpiar pantalla;
6
posicin(5,12); escribir('fecha');
posicin(5,13); escribir('dia: ');
leer(d);
si (d<1) o (d>31) entonces
inicio
limpiar pantalla;
posicin(15,13); escribir('erro, el dia debe estar entre 1 y 31');
posicin(15,14); escribir('pulse cualquier tecla pasa continuar');
tecla:=readkey;
fin
por el contrario
de[i]:=d;
posicin(13,13); escribir('mes: ');
leer(m);
si (m<1) o (m>12) entonces
inicio
limpiar pantalla;
posicin(15,13); escribir('erro, el mes debe estar entre 1 y 12');
posicin(15,14); escribir('pulse cualquier tecla pasa continuar');
tecla:=readkey;
fin
por el contrario
me[i]:=m;
posicin(21,13); escribir('ao: ');
leer(a);
si (a<2015) o (a>2030) entonces
inicio
limpiar pantalla;
posicin(15,13); escribir('erro, el ao debe estar entre 1990 y 2010');
posicin(15,14); escribir('pulse cualquier tecla pasa continuar');
tecla:=readkey;
fin
por el contrario
ae[i]:=a;
posicin(5,15); escribir('numero de pasajeros: ');
leer(num[i]);
posicin(5,17); escribir('entrada o salida [e/s]: ');
leer(ent);
si (ent='e') o (ent='s') entonces
inicio
entrada[i]:=ent;
fin
por el contrario
inicio
limpiar pantalla;
9
estado[i]:=estado[i+1];
de[i]:=de[i+1]; me[i]:=me[i+1]; ae[i]:=ae[i+1];
num[i]:=num[i+1];
alc[i]:=alc[i+1];
tipov[i]:=tipov[i+1];
fin;
fin;
fin;
fin;
Fin;
Procedimiento reporte_vehiculo;
Variable i : entero;
Inicio
Limpiar pantalla;
Posicin(10,5); escribir('reporte de vehiculos');
Fo i:=1 to n do
inicio
limpiar pantalla;
posicin(10,9); escribir('no. Placa: ',placa[i]);
posicin(10,10); escribir('entidad: ',estado[i]);
posicin(10,11); escribir('fecha: ',de[i],'/',me[i],'/',ae[i]);
posicin(10,12); escribir('no. Pasajeros: ', num[i]);
posicin(10,13); escribir('alcabala: ',alc[i]);
posicin(10,14); escribir('tipo de vehiculo: ',tipov[i]);
tecla:=readkey;
fin;
Fin;
Procedimiento por_alcabala;
Variable i, al : entero;
Inicio
Limpiar pantalla;
Posicin(10,5); escribir('
reporte de vehiculos por alcabala');
Posicin(10,8);
escribir('_______________________________________________________');
Posicin(10,10);
Escribir('indique la alcabala a buscar: ');
Leer(al);
Hacer i:=1 hasta n
inicio
si (al=alc[i]) entonces
inicio
limpiar pantalla;
posicin(10,9); escribir('no. Placa: ',placa[i]);
11
Procedimiento por_entidad;
Variable i : entero;
E : string[12];
Inicio
Limpiar pantalla;
Posicin(10,5); escribir('
reporte de vehiculos po entidad');
Posicin(10,8);
escribir('_______________________________________________________');
Posicin(10,10);
Escribir('indique la entidad a buscar: ');
Leer(e);
Hacer i:=1 hasta n
inicio
si (e=estado[i]) entonces
inicio
limpiar pantalla;
posicin(10,9); escribir('no. Placa: ',placa[i]);
posicin(10,10); escribir('alcabala: ',alc[i]);
posicin(10,11); escribir('fecha: ',de[i],'/',me[i],'/',ae[i]);
posicin(10,12); escribir('no. Pasajeros: ', num[i]);
posicin(10,14); escribir('tipo de vehiculo: ',tipov[i]);
tecla:=readkey;
fin
por el contrario
inicio
limpiar pantalla;
12
posicin(10,10);
escribir('no existe vehiculos en esa entidad');
tecla:=readkey;
fin;
fin;
Fin;
Procedimiento por_pasajero;
Variable i, pas : entero;
Inicio
Limpiar pantalla;
Posicin(10,5); escribir('
reporte de vehiculos por pasajeros');
Posicin(10,8);
escribir('_______________________________________________________');
Posicin(10,10);
Escribir('indique la cantidad de pasajeros a buscar: ');
Leer(pas);
Hacer i:=1 hasta n
inicio
si (pas=num[i]) entonces
inicio
limpiar pantalla;
posicin(10,9); escribir('no. Placa: ',placa[i]);
posicin(10,10); escribir('alcabala: ',alc[i]);
posicin(10,11); escribir('fecha: ',de[i],'/',me[i],'/',ae[i]);
posicin(10,12); escribir('entidad: ', estado[i]);
posicin(10,14); escribir('tipo de vehiculo: ',tipov[i]);
tecla:=readkey;
fin
por el contrario
inicio
limpiar pantalla;
posicin(10,10);
escribir('no existe vehiculos en esa entidad');
tecla:=readkey;
fin;
fin;
Fin;
Procedimiento por_es;
Variable i : entero;
Es : caracter;
Inicio
Limpiar pantalla;
13
Posicin(10,5); escribir('
reporte de vehiculos entrantes/salientes');
Posicin(10,8);
escribir('_______________________________________________________');
Posicin(10,10);
Escribir('indique la opcion a buscar: ');
Leer(es);
Hacer i:=1 hasta n
inicio
si (es=entrada[i]) entonces
inicio
limpiar pantalla;
posicin(10,9); escribir('no. Placa: ',placa[i]);
posicin(10,10); escribir('alcabala: ',alc[i]);
posicin(10,11); escribir('fecha: ',de[i],'/',me[i],'/',ae[i]);
posicin(10,12); escribir('entidad: ', estado[i]);
posicin(10,14); escribir('tipo de vehiculo: ',tipov[i]);
tecla:=readkey;
fin
por el contrario
inicio
limpiar pantalla;
posicin(10,10);
escribir('no existe vehiculos en esa entidad');
tecla:=readkey;
fin;
fin;
Fin;
Procedimiento estadistica;
Variable tecla4 : entero;
Inicio
Repetir
Limpiar pantalla;
Posicin(10,5); escribir('
estadisticas de vehiculos');
Posicin(10,8);
escribir('_______________________________________________________');
Posicin(10,10); escribir('1. Po alcabala');
Posicin(10,12); escribir('2. Po entidad');
Posicin(10,14); escribir('3. Po pasajeros');
Posicin(10,16); escribir('4. Po e/s');
Posicin(10,18); escribir('5. Regresar al menu principal');
Posicin(10,22); escribir('indique la operacin a ejecutar: ');
Leer(tecla4);
Caso tecla4 of
1 : por_alcabala;
14
2 : por_entidad;
3 : por_pasajero;
4 : por_es;
5:;
Por el contrario
inicio
posicin(10,24); escribir('opcion fuera de rango 1..5');
tecla:=readkey;
fin;
Fin;
Hasta (tecla4=5);
Fin;
Inicio
Repetir
Limpiar pantalla;
Posicin(10,5); escribir('
registro de vehiculos');
Posicin(10,8);
escribir('_______________________________________________________');
Posicin(10,10); escribir('1. Incluir datos');
Posicin(10,12); escribir('2. Modificar datos');
Posicin(10,14); escribir('3. Eliminar datos');
Posicin(10,16); escribir('4. Repotte de datos');
Posicin(10,18); escribir('5. Estadisticas');
Posicin(10,20); escribir('6. Salida del sistema');
Posicin(10,22); escribir('indique la operacin a ejecutar: ');
Leer(tecla1);
Caso tecla1 de
1 : incluir_vehiculo;
2 : modificar_vehiculo;
3 : eliminar_vehiculo;
4 : repote_vehiculo;
5 : estadistica;
6:;
Por el contrario
inicio
posicin(10,24); escribir('opcion fuera de rango 1..6');
tecla:=readkey;
fin;
Fin;
Hasta (tecla1=6);
Fin.
15
OBJETIVO 7
Aplicar el concepto de robustez
Validacin de la existencia de la placa del vehculo
Si (np=placa[j]) entonces
inicio
limpiar pantalla;
posicin(15,13); escribir('erro, ya existe esa placa');
posicin(15,14); escribir('pulse una tecla para continuar');
sw:=1;
tecla:=readkey;
fin
Validacin del tipo de vehculo
Si (t=1) o (t=2) o (t=3) o (t=4) entonces
tipov[i]:=t
por el contrario
inicio
limpiar pantalla;
posicin(15,13); escribir('erro, solo puede ser 1, 2, 3 o 4');
posicin(15,14); escribir('pulse cualquier tecla pasa continuar');
tecla:=readkey;
fin;
Validacin del da
Si (d<1) o (d>31) entonces
inicio
limpiar pantalla;
posicin(15,13); escribir('erro, el dia debe estar entre 1 y 31');
posicin(15,14); escribir('pulse cualquier tecla pasa continuar');
tecla:=readkey;
fin
por el contrario
de[i]:=d;
Validacin del mes
Si (m<1) o (m>12) entonces
inicio
limpiar pantalla;
16
Clrscr;
Gotoxy(10,10); write('indique la cantidad de vehiculos a ingresar: ');
Readln(n);
For i:=1 to n do
begin
clrscr;
gotoxy(5,5); write('
registro de vehiculos');
gotoxy(5,6);
write('_______________________________________________________');
gotoxy(5,8); write('placa: ');
readln(np);
for j:=1 to n do
if (np=placa[j]) then
begin
clrscr;
gotoxy(15,13); write('error, ya existe esa placa');
gotoxy(15,14); write('pulse una tecla para continuar');
sw:=1;
tecla:=readkey;
end
else
sw:=0;
placa[i]:=np;
if (sw=0) then
begin
gotoxy(5,10); write('tipo de vehiculo [1: particular / 2: por puesto / 3: taxi / 4:
transporte publico]: ');
readln(t);
if (t=1) or (t=2) or (t=3) or (t=4) then
tipov[i]:=t
else
begin
clrscr;
gotoxy(15,13); write('error, solo puede ser 1, 2, 3 o 4');
gotoxy(15,14); write('pulse cualquier tecla pasa continuar');
tecla:=readkey;
end;
gotoxy(5,12); write('fecha');
gotoxy(5,13); write('dia: ');
readln(d);
if (d<1) or (d>31) then
begin
clrscr;
gotoxy(15,13); write('error, el dia debe estar entre 1 y 31');
gotoxy(15,14); write('pulse cualquier tecla pasa continuar');
18
tecla:=readkey;
end
else
de[i]:=d;
gotoxy(13,13); write('mes: ');
readln(m);
if (m<1) or (m>12) then
begin
clrscr;
gotoxy(15,13); write('error, el mes debe estar entre 1 y 12');
gotoxy(15,14); write('pulse cualquier tecla pasa continuar');
tecla:=readkey;
end
else
me[i]:=m;
gotoxy(21,13); write('ao: ');
readln(a);
if (a<2015) or (a>2030) then
begin
clrscr;
gotoxy(15,13); write('error, el ao debe estar entre 1990 y 2010');
gotoxy(15,14); write('pulse cualquier tecla pasa continuar');
tecla:=readkey;
end
else
ae[i]:=a;
gotoxy(5,15); write('numero de pasajeros: ');
readln(num[i]);
gotoxy(5,17); write('entrada o salida [e/s]: ');
readln(ent);
if (ent='e') or (ent='s') then
entrada[i]:=ent
else
begin
clrscr;
gotoxy(15,13); write('error, debe ser e o s');
gotoxy(15,14); write('pulse cualquier tecla pasa continuar');
tecla:=readkey;
end;
gotoxy(5,19); write('numero de alcabala: ');
readln(alc[i]);
gotoxy(5,21); write('entidad federal: ');
readln(estado[i]);
end;
end;
19
End;
Procedure modificar_vehiculo;
Var i, sw, j, d, m, a : integer;
Op : char;
Pla : string[12];
Begin
Sw:=0;
Clrscr;
Gotoxy(10,5); write('indique el no. De placa a modificar: ');
Readln(pla);
For i:=1 to n do
begin
if (pla=placa[i]) then
begin
gotoxy(10,9); write('no. Placa: ',placa[i]);
gotoxy(10,10); write('entidad: ',estado[i]);
gotoxy(10,11); write('fecha: ',de[i],'/',me[i],'/',ae[i]);
gotoxy(10,12); write('no. Pasajeros: ', num[i]);
gotoxy(10,13); write('alcabala: ',alc[i]);
gotoxy(10,14); write('tipo de vehiculo: ',tipov[i]);
tecla:=readkey;
sw:=1;
end
else
begin
clrscr;
gotoxy(15,13); write('error, no existe el no. De placa ingresada');
gotoxy(15,14); write('pulse cualquier tecla pasa continuar');
tecla:=readkey;
sw:=0;
end;
if (sw=1) then
begin
clrscr;
gotoxy(10,5);
write('modifique los datos del vehiculo');
for j:=1 to n do
begin
if (np=placa[j]) then
begin
clrscr;
gotoxy(15,13); write('error, ya existe esa placa');
20
if (pla=placa[i]) then
begin
gotoxy(10,9); write('no. Placa: ',placa[i]);
gotoxy(10,10); write('entidad: ',estado[i]);
gotoxy(10,11); write('fecha: ',de[i],'/',me[i],'/',ae[i]);
gotoxy(10,12); write('no. Pasajeros: ', num[i]);
gotoxy(10,13); write('alcabala: ',alc[i]);
gotoxy(10,14); write('tipo de vehiculo: ',tipov[i]);
tecla:=readkey;
end;
gotoxy(10,18);
write('esta seguro que quiere eliminar el vehiculo s/n?');
readln(op1);
if (op1='s') or (op1='s') then
begin
for j:=1 to n do
begin
if (pla=placa[i]) then
begin
placa[i]:=placa[i+1];
estado[i]:=estado[i+1];
de[i]:=de[i+1]; me[i]:=me[i+1]; ae[i]:=ae[i+1];
num[i]:=num[i+1];
alc[i]:=alc[i+1];
tipov[i]:=tipov[i+1];
end;
end;
end;
end;
End;
Procedure reporte_vehiculo;
Var i : integer;
Begin
Clrscr;
Gotoxy(10,5); write('reporte de vehiculos');
For i:=1 to n do
begin
clrscr;
gotoxy(10,9); write('no. Placa: ',placa[i]);
gotoxy(10,10); write('entidad: ',estado[i]);
gotoxy(10,11); write('fecha: ',de[i],'/',me[i],'/',ae[i]);
gotoxy(10,12); write('no. Pasajeros: ', num[i]);
gotoxy(10,13); write('alcabala: ',alc[i]);
gotoxy(10,14); write('tipo de vehiculo: ',tipov[i]);
23
tecla:=readkey;
end;
End;
Procedure por_alcabala;
Var i, al : integer;
Begin
Clrscr;
Gotoxy(10,5); write('
reporte de vehiculos por alcabala');
Gotoxy(10,8);
write('_______________________________________________________');
Gotoxy(10,10);
Write('indique la alcabala a buscar: ');
Readln(al);
For i:=1 to n do
begin
if (al=alc[i]) then
begin
clrscr;
gotoxy(10,9); write('no. Placa: ',placa[i]);
gotoxy(10,10); write('entidad: ',estado[i]);
gotoxy(10,11); write('fecha: ',de[i],'/',me[i],'/',ae[i]);
gotoxy(10,12); write('no. Pasajeros: ', num[i]);
gotoxy(10,13); write('alcabala: ',alc[i]);
gotoxy(10,14); write('tipo de vehiculo: ',tipov[i]);
tecla:=readkey;
end
else
begin
clrscr;
gotoxy(10,10);
write('no existe vehiculos en esa alcabala');
tecla:=readkey;
end;
end;
End;
Procedure por_entidad;
Var i : integer;
E : string[12];
Begin
Clrscr;
Gotoxy(10,5); write('
Gotoxy(10,8);
write('_______________________________________________________');
Gotoxy(10,10);
Write('indique la entidad a buscar: ');
Readln(e);
For i:=1 to n do
begin
if (e=estado[i]) then
begin
clrscr;
gotoxy(10,9); write('no. Placa: ',placa[i]);
gotoxy(10,10); write('alcabala: ',alc[i]);
gotoxy(10,11); write('fecha: ',de[i],'/',me[i],'/',ae[i]);
gotoxy(10,12); write('no. Pasajeros: ', num[i]);
gotoxy(10,14); write('tipo de vehiculo: ',tipov[i]);
tecla:=readkey;
end
else
begin
clrscr;
gotoxy(10,10);
write('no existe vehiculos en esa entidad');
tecla:=readkey;
end;
end;
End;
Procedure por_pasajero;
Var i, pas : integer;
Begin
Clrscr;
Gotoxy(10,5); write('
reporte de vehiculos por pasajeros');
Gotoxy(10,8);
write('_______________________________________________________');
Gotoxy(10,10);
Write('indique la cantidad de pasajeros a buscar: ');
Readln(pas);
For i:=1 to n do
begin
if (pas=num[i]) then
begin
clrscr;
gotoxy(10,9); write('no. Placa: ',placa[i]);
gotoxy(10,10); write('alcabala: ',alc[i]);
25
end;
End;
Procedure estadistica;
Var tecla4 : integer;
Begin
Repeat
Clrscr;
Gotoxy(10,5); write('
estadisticas de vehiculos');
Gotoxy(10,8);
write('_______________________________________________________');
Gotoxy(10,10); write('1. Por alcabala');
Gotoxy(10,12); write('2. Por entidad');
Gotoxy(10,14); write('3. Por pasajeros');
Gotoxy(10,16); write('4. Por e/s');
Gotoxy(10,18); write('5. Regresar al menu principal');
Gotoxy(10,22); write('indique la operacin a ejecutar: ');
Readln(tecla4);
Case tecla4 of
1 : por_alcabala;
2 : por_entidad;
3 : por_pasajero;
4 : por_es;
5:;
Else
begin
gotoxy(10,24); write('opcion fuera de rango 1..5');
tecla:=readkey;
end;
End;
Until (tecla4=5);
End;
Begin
Repeat
Clrscr;
Gotoxy(10,5); write('
registro de vehiculos');
Gotoxy(10,8);
write('_______________________________________________________');
Gotoxy(10,10); write('1. Incluir datos');
Gotoxy(10,12); write('2. Modificar datos');
Gotoxy(10,14); write('3. Eliminar datos');
27
28
BIBLIOGRAFA
29