Sei sulla pagina 1di 42

Aporte de Yanire Taborda para www.admycontuna.mforos.

com

UNIVERSIDAD NACIONAL
N
ABIERTA
A
RE
EA DE INGEN
NIERA
CAR
RRERA DE IN
NGENIERA DE SISTEMA
AS

TARE
EA
TRAB
BAJO PRACTIICO: X
ASIGN
NATURA: CO
OMPUTACI
N I
CODIGO: 323
FECH
HA DE ENTRE
EGA AL ESTU
UDIANTE: 28//09/2013

co
m

Adjun
nto a la primeraa prueba parciaal

s.

FECH
HA DE DEVOL
LUCIN: 31/0
01/2014

ro

Adjun
nto a la prueba integral

.m
fo

NOMB
BRE DEL EST
TUDIANTE: YANIRE
Y
TAB
BORDA

na

CEDU
ULA DE IDEN
NTIDAD:

tu

CORR
REO:

CENT
TRO LOCAL: ZULIA
Z
CARR
RERA: 280

dm
yc
on

TELFONO:

.a

NUME
ERO DE ORIG
GINALES:

LAPSO: 2013/2

FIRMA DEL ESTUD


DIANTE:

RESU
ULTADOSDECORRECCI
N:
OBJ.NO

0:NL 1:L

10

11
1

12

13
3

Esp
pecialista:Sole
edadCentenoIngen
nieradeSistem
masEEvaluador:San
ndraSnchez

Aporte de Yanire Taborda para www.admycontuna.mforos.com

Aporte de Yanire Taborda para www.admycontuna.mforos.com

TABORDA YANIR, CI: 16.188220 Computacin I - 323

CONTENIDO
Pg.
3

B- Objetivo 5. Desarrollo de la Metodologa MAPS.


Etapa I: El Dilogo
Etapa II: Las Especificaciones
Etapa III: La Particin
Etapa IV: Definicin de Abstraccin
Etapa V: Codificacin
Etapa VI: Prueba y Verificacin
Etapa VII: Presentacin

5
5
10
14
15
15
15
15

s.

co
m

A- Solucin Analtica del problema planteado.


A.1 Planteamiento del problema
A.2 Solucin Analtica

16

Objetivo 7. Probar un Algoritmo con el Concepto de Robustez.

24

dm
yc
on

tu

na

.m
fo

ro

Objetivo 6. Desarrollo de un Algoritmo en Programacin


Modular o Estructurada.

Objetivo 8. Presentar el Algoritmo en Lenguaje Pascal

27

.a

Aporte de Yanire Taborda para www.admycontuna.mforos.com

Aporte de Yanire Taborda para www.admycontuna.mforos.com

TABORDA YANIR, CI: 16.188220 Computacin I - 323

A- Solucin Analtica del problema planteado.


A.1 Planteamiento del problema
El problema consiste en elaborar un programa que ser utilizado por la
Coordinacin de Trnsito Nacional en el periodo vacacional, el cual debe generar un
listado de estadsticas de movimiento vehicular. Para esto el programa debe presentar en
pantalla un men con los datos a solicitar por el mismo que sern dados por la
Coordinacin de Trnsito, los cuales permitirn al programa arrojar los resultados
requeridos, tomando en cuenta las siguientes consideraciones:

co
m

Datos de entrada:
Placa

Nmero de pasajeros

Alcabala

Fecha

Tipo de Vehculo: 1- Particulares

na

.m
fo

ro

s.

tu

2- Puesto

dm
yc
on

3- Taxi

4- Transporte Pblico

.a

Datos de Salida:

Alcabala y ordenado por fecha de menor a mayor


Placa del vehculo
Alcabala y tipo de vehculo

El listado debe contener las estadsticas siguientes:

A.2 Solucin Analtica


Los datos ingresados sern almacenados en un array de registros de vehculos,
contiene 50 campos para los datos de entrada.

Aporte de Yanire Taborda para www.admycontuna.mforos.com

Aporte de Yanire Taborda para www.admycontuna.mforos.com

TABORDA YANIR, CI: 16.188220 Computacin I - 323

Posteriormente se deben realizar los siguientes procesos:


A- El mantenimiento de la informacin referente a los prestamos (incluir,
consultar, modificar, eliminar reportes de estadsticas, salida).
B- Generar un listado por pantalla:
- Ordenar el registro por fecha y placa del vehculo.
- Muestre la consulta de un vehculo registrado.
- Genere por la opcin Reporte las siguientes estadsticas:

co
m

Una pgina por alcabala y ordenado por fecha de menos a mayor


Ordenado por la Placa del vehculo
Una pgina por Alcabala y ordenado por tipo de vehculo de menor a
mayor

ro

s.

.m
fo

C- Para la gestin de todas estas operaciones se mostrar un men en pantalla


donde el usuario selecciona la opcin de proceso que desea realizar.

na

Descripcin de procesos:

Se crear un arreglo de 50 registros donde cada uno representa un vehculo que


transita por la alcabala. Los campos correspondientes para cada vehculo son los
datos de entrada: placa, nmero de pasajeros alcabala, fecha,... etc.

Todas las entradas deben ser validadas antes de ingresar al arreglo segn la
naturaleza que le corresponda.

Para incluir vehculos en el arreglo se leen las entradas del teclado y se van
almacenando en el arreglo.

Para modificar se ingresa por teclado la placa, se realiza una bsqueda en el


arreglo y luego se pregunta cul campo quiere modificar. Si no existe la placa que
se quiere modificar se repite el proceso de lectura hasta conseguir la placa
existente.

El mtodo de bsqueda de placa en el arreglo consiste en un recorrido total del


mismo hasta conseguir un valor coincidente, en caso contrario indicar con una
variable booleana que no se ha encontrado.

.a

dm
yc
on

tu

Aporte de Yanire Taborda para www.admycontuna.mforos.com

Aporte de Yanire Taborda para www.admycontuna.mforos.com

TABORDA YANIR, CI: 16.188220 Computacin I - 323

Tanto al ingresar como al modificar un vehculo deben validarse los datos


"entrados" para mantener la consistencia de los mismos.

Para eliminar un vehculo se lee por teclado la placa, se realiza una bsqueda y si
no existe la placa en el arreglo se repite el proceso de lectura (de placa a eliminar)
hasta conseguir una placa existente. Luego se elimina el registro del arreglo.

El algoritmo de ordenamiento ser: cabecera del programa, seccin de


declaraciones y cuerpo del programa.

co
m

B- Objetivo 5. Desarrollo de la Metodologa MAPS.

ro

s.

Etapa I: Dialogo
A continuacin se plantean y responden una serie de preguntas para una
definicin clara y precisa del problema:

.m
fo

La Coordinacin de Trnsito Nacional necesita implantar un programa que genere


estadstica de movimiento vehicular en el periodo vacacional.

.a

dm
yc
on

tu

na

Cules son los procesos para verificar la informacin?


1-. Operaciones de mantenimiento: Incluir, consultar, modificar, eliminar estadstica.
2-. Por media la opcin Reporte se obtendrn las siguientes estadsticas:
*Listado estadstico por alcabala ordenado por fecha de menor a mayor. La misma
contiene:
- Fecha
- Cantidad de vehculos que salen
- Cantidad de vehculos que entran
- Porcentaje de vehculos que salen
- Porcentaje de vehculos que entran

*Listado estadstico por placa del vehculo.


- Placa
- Nmero de alcabalas transitadas
- Das transitados
- Promedio de pasajeros
*Listado estadstico por alcabala y tipo de vehculo ordenado de menor a mayor.
- Tipo de vehculos
- Cantidad de vehculos segn su tipo y por alcabalas
- Porcentaje de vehculos segn su tipo y por alcabalas
- Cantidad de pasajeros contabilizados
Para la automatizacin del proceso de control de los datos por:
Alcabala y fecha
5

Aporte de Yanire Taborda para www.admycontuna.mforos.com

Aporte de Yanire Taborda para www.admycontuna.mforos.com

TABORDA YANIR, CI: 16.188220 Computacin I - 323

Placa del vehculo


Alcabala y tipo de vehiculo, donde se detalla el registro con las caractersticas de
cada vehculo, la longitud y descripcin de sus campos, a continuacin en la
siguiente tabla: Tabla de especificaciones de los datos.

Tabla N1 ESPECIFICACIONES DE LOS DATOS


LONGITUD

Alcabala

Fecha

10

Tipo de Vehiculo

DESCRIPCIN

5 enteros
6 enteros (xxx.xxx)
(DD/MM/AAAA)
A = Particulares
B = Puesto
C = Taxi
D = Transporte Pblico

10
5
5
4
4

(DD/MM/AAAA)
5 enteros (xx.xxx)
5 enteros (xx.xxx)
(2 Enteros, 2 Decimal) (xx,xx%)
(2 Enteros, 2 Decimal) (xx,xx%)

5
3
5
4

5 enteros
3 enteros
5 enteros (xx.xxx)
2 Enteros, 2 Decimal (xx,xx)

5
3

3 enteros

2 Enteros, 2 Decimal (xx,xx%)

6 enteros (xxx.xxx)

.a

dm
yc
on

tu

na

Estadsticas por alcabalas


Fecha
Cantidad de vehculos que salen
Cantidad de vehculos que entran
Porcentaje de vehculos que salen
Porcentaje de vehculos que entran
Estadsticas por vehculos
Placa
Nmero de alcabalas transitadas
Das transitados
Promedio de pasajeros
Estadsticas por tipo de vehculos
Tipo de vehculos
Cantidad de vehculos segn su tipo y
por alcabalas
Porcentaje de vehculos segn su tipo y
por alcabalas
Cantidad de pasajeros contabilizados

.m
fo

ro

s.

5
6

co
m

DATOS

Placa
Numero de pasajeros

*Datos de Entrada:
-

Introduccin de los datos correspondientes del Vehculo.(ver A.1)

Validar los datos en forma directa.

Aporte de Yanire Taborda para www.admycontuna.mforos.com

Aporte de Yanire Taborda para www.admycontuna.mforos.com

TABORDA YANIR, CI: 16.188220 Computacin I - 323

Ingresar por pantalla los datos correspondientes a los vehculos registrados en la


Coordinacin de Trnsito Nacional, todos menos cantidades y porcentajes de
vehculos; cantidades y porcentajes de pasajeros; nmero de alcabalas y das
transitados.

La pantalla del programa debe mostrar as:

**** TRNSITO VEHICULAR****

co
m

*MEN PRINCIPAL*
1. Incluir

ro

s.

2. Consultar

.m
fo

3. Modificar

6. Reporte por vehculo

dm
yc
on

7. Reporte por tipo de vehculo

tu

5. Reporte por alcabala

na

4. Eliminar

8. Salida

.a

Opcin: _

Presentar un men de mantenimiento con las opciones siguientes: Incluir,

*Datos de Proceso:

Consultar, Modificar, Eliminar, Reporte de estadstica y Salida.


-

Registrar con la opcin incluir, los siguientes datos:


Placa del vehculo
Nmero de pasajeros
Alcabala
Fecha
Tipo de vehculo (1 para particulares, 2 para por puesto, 3 para taxi, 4 para

transporte
-

pblicos)

Ordenar el registro por fecha y placa del vehculo.


7

Aporte de Yanire Taborda para www.admycontuna.mforos.com

Aporte de Yanire Taborda para www.admycontuna.mforos.com

TABORDA YANIR, CI: 16.188220 Computacin I - 323

Mostrar por pantalla, cuando realice una Consulta de un vehculo los datos de
registrados por grupo.

Con la opcin n1 INCLUIR, mostrara lo siguiente:

COORDINACIN DE TRNSITO NACIONAL

Numero de pasajeros:

Alcabala:

Fecha:

Tipo de Vehiculo: Opcin: ____

s.

Placa:

ro

co
m

DATOS DEL VEHICULO

.m
fo

1- Particulares
2- Puesto

na

3- Taxi

dm
yc
on

tu

4- Transporte Pblico
Datos de Salida:
-

Generar el listado en una pgina por alcabala (Estadstica 1 y 3)

Genere por medio de la opcin Reporte las siguientes estadsticas:


Estadsticas por alcabalas

Estadsticas por vehculos

Estadsticas por tipo de vehculos:

.a

Generar un reporte impreso que muestre la informacin correspondiente a los


vehculos con un total de:

Fechas Procesadas

Vehculos Procesados

El listado a generar deber contener los siguientes datos:


-

Fecha

Cantidad de vehculos que salen

Cantidad de vehculos que entran


8

Aporte de Yanire Taborda para www.admycontuna.mforos.com

Aporte de Yanire Taborda para www.admycontuna.mforos.com

TABORDA YANIR, CI: 16.188220 Computacin I - 323

Porcentaje de vehculos que salen

Porcentaje de vehculos que entran

Placa

Nmero de alcabalas transitadas

Das transitados

Promedio de pasajeros

Tipo de vehculos

Cantidad de vehculos segn su tipo y por alcabalas

Porcentaje de vehculos segn su tipo y por alcabalas

Cantidad de pasajeros contabilizados

co
m

s.

El listado deber ser ordenado por:

Fecha en orden creciente

Placa del Vehculo

Tipo de Vehculo en orden creciente

na

.m
fo

ro

tu

El diseo del reporte es el siguiente:

dm
yc
on

**COORDINACION DE TRANSITO NACIONAL**


** Estadstica por Alcabala **

.a

Pg. X
Alcabala: xxxxxxxx

CANTIDAD DE VEHCULOS PORCENTAJE DE VEHCULOS


SALEN
ENTRAN
SALEN
ENTRAN
==============================================================
DD/MM/AAAA
XX.XXX
XX.XXX
XX,XX%
XX,XX%
DD/MM/AAAA
XX.XXX
XX.XXX
XX,XX%
XX,XX%
DD/MM/AAAA
XX.XXX
XX.XXX
XX,XX%
XX,XX%
DD/MM/AAAA
XX.XXX
XX.XXX
XX,XX%
XX,XX%
==============================================================
TOTAL DE FECHAS PROCESADAS: XX

FECHA

Aporte de Yanire Taborda para www.admycontuna.mforos.com

Aporte de Yanire Taborda para www.admycontuna.mforos.com

TABORDA YANIR, CI: 16.188220 Computacin I - 323

Diseo del reporte (cont)

**COORDINACION DE TRANSITO NACIONAL**


** Estadstica por Vehculo**
Pg. X
NMERO DE
DAS
PROMEDIO DE
ALCABALAS
TRANSITADOS
PASAJEROS
====================================================
XXXXX
XXX
XX.XXX
XX,XX
XXXXX
XXX
XX.XXX
XX,XX
XXXXX
XXX
XX.XXX
XX,XX
XXXXX
XXX
XX.XXX
XX,XX
XXXXX
XXX
XX.XXX
XX,XX
XXXXX
XXX
XX.XXX
XX,XX
====================================================
TOTAL DE VEHCULOS PROCESADOS: XX.XXX

co
m

PLACA

ro

s.

.m
fo

**COORDINACION DE TRANSITO NACIONAL**

tu

Pg. X
Alcabala: xxxxxxxx

na

** Estadstica por Tipo de Vehculo **

w
w

.a

dm
yc
on

TIPO DE
VEHCULOS
PASAJEROS
VEHCULO
CANTIDAD PORCENTAJE
CONTABILIZADOS
====================================================
XXXXX
XXX
XX.XX%
XXX.XXX
XXXXX
XXX
XX.XX%
XXX.XXX
XXXXX
XXX
XX.XX%
XXX.XXX
XXXXX
XXX
XX.XX%
XXX.XXX
XXXXX
XXX
XX.XX%
XXX.XXX
====================================================
TOTAL DE VEHCULOS PROCESADOS: XX.XXX

Etapa II: Las Especificaciones


En esta parte se especifican los datos de entrada y los de salida del algoritmo, a los
que llamaremos respectivamente: PRE CONDICIONES y POST CONDICIONES.

Tabla N2 Pre y Post Condiciones


10

Aporte de Yanire Taborda para www.admycontuna.mforos.com

Aporte de Yanire Taborda para www.admycontuna.mforos.com

TABORDA YANIR, CI: 16.188220 Computacin I - 323

ENTRADAS

.m
fo

ro

Fecha
Cantidad de vehculos que salen
Cantidad de vehculos que entran
Porcentaje de vehculos que salen
Porcentaje de vehculos que entran
Placa
Nmero de alcabalas transitadas
Das transitados
Promedio de pasajeros
Tipo de vehculos
Cantidad de vehculos segn su tipo y por
alcabalas
Porcentaje de vehculos segn su tipo y por
alcabalas
Cantidad de pasajeros contabilizados

co
m

Placa
Nmero
de
pasajeros
Alcabala
Fecha
Tipo de Vehculo

s.

SALIDAS

Tabla N3 Pre condiciones: Datos de Entrada

TIPO
String [5]
Entero
(Integer)

Variable

Alcab

String [8]

Variable

Fecha

Variable

TipoVehic

Entero
(Integer)
Char

na

VARIABLE
Placa
NumPasaj

dm
yc
on

de

ESTRUCTURA
Variable
Variable

tu

DATOS
Placa
Nmero
pasajeros
Alcabala
Fecha

.a

Tipo de Vehiculo

Pre condiciones:

(Placa1, Placa2,, Placan) ^ n>0 ^ i {1,..., n}: Placai { secuencia de


caracteres c1... cn }

(NumPasaj1, NumPasaj2,, NumPasajn) ^ n>0 ^ i {1,..., n}: NumPasaji


{1,,999.999}

(Alcab1, Alcab2,, Alcabn) ^ n>0 ^ i {1,..., n}: Alcabi { de caracteres c1...


cn }

(Fecha1,

Fecha2,,

Fechan)

n>0

{1,...,

n}:

Fechai

{1,,31;1,,12;2000,,9999}
11

Aporte de Yanire Taborda para www.admycontuna.mforos.com

Aporte de Yanire Taborda para www.admycontuna.mforos.com

TABORDA YANIR, CI: 16.188220 Computacin I - 323

(TipoVehic1, TipoVehic2,, TipoVehicn) ^ n>0 ^ i {1,..., n}: TipoVehici


{secuencia de caracteres c1... cn}

Tabla N4 Post condiciones: Datos de Entrada

ESTRUCTURA
Variable

VARIABLE
Fecha

Cantidad de vehculos
que salen
Cantidad de vehculos
que entran
Porcentaje de vehculos
que salen
Porcentaje de vehculos
que entran
Placa
Nmero de alcabalas
transitadas
Das transitados

Variable

CantVehicSal

Variable

CantVehicEnt

Variable

PorctjVehicSal

TIPO
Entero
(Integer)
Entero
(Integer)
Entero
(Integer)
Real

Variable

PorctjVehicEnt

Real

Variable
Variable

Placa
NumAlcabTranst

Promedio de pasajeros
Tipo de vehculos
Cantidad de vehculos
segn su tipo y por
alcabalas
Porcentaje de vehculos
segn su tipo y por
alcabalas
Cantidad de pasajeros
contabilizados

Variable
Variable
Variable

PromPasaj
TipoVehic
CantVehic

Variable

PorctjVehic

Real

Variable

CantPasajContab

Entero
(Integer)

s.

ro

.m
fo

DiasTranst

String [5]
Entero
(Integer)
Entero
(Integer)
Real
String [5]
Entero
(Integer)

.a

dm
yc
on

tu

na

Variable

co
m

DATOS
Fecha

Post condiciones: Datos de Salida


-

(Fecha1,

Fecha2,,

Fechan)

n>0

{1,...,

n}:

Fechai

{1,,31;1,,12;2000,,9999}
-

(CantVehicSal1, CantVehicSal2,, CantVehicSaln) ^ n>0 ^ i {1,..., n}:


CantVehicSali {1,,99.999}

(CantVehicEnt1, CantVehicEnt2,, CantVehicEntn) ^ n>0 ^ i {1,..., n}:


CantVehicEnti {1,,99.999}

(PorctjVehicSal1, PorctjVehicSal2,, PorctjVehicSaln) ^ n>0 ^ i {1,..., n}:


PorctjVehicSali {1%,,99,99%}
12

Aporte de Yanire Taborda para www.admycontuna.mforos.com

Aporte de Yanire Taborda para www.admycontuna.mforos.com

TABORDA YANIR, CI: 16.188220 Computacin I - 323

(PorctjVehicEnt1, PorctjVehicEnt2,, PorctjVehicEntn) ^ n>0 ^ i {1,..., n}:


PorctjVehicEnti {1%,,99,99%}}

(Placa1, Placa2,, Placan) ^ n>0 ^ i {1,..., n}: Placa i {secuencia de


caracteres c1... cn}

(NumAlcabTranst1, NumAlcabTranst2,, NumAlcabTranstn) ^ n>0 ^ i {1,...,


n}: NumAlcabTransti {1,,999}

(DiasTranst1, DiasTranst2,, DiasTranstn) ^ n>0 ^ i {1,..., n}: DiasTransti


{1,,99.999}

(PromPasaj1, PromPasaj2,, PromPasajn) ^ n>0 ^ i {1,..., n}: PromPasaji


(TipoVehic1, TipoVehic2,, TipoVehicn) ^ n>0 ^ i {1,..., n}: TipoVehici {

s.

co
m

{1,,99,99}

(CantVehic1, CantVehic2,, CantVehicn) ^ n>0 ^ i {1,..., n}: CantVehici

.m
fo

ro

secuencia de caracteres c1... cn }


{1,,999}

(PorctjVehic1, PorctjVehic2,, PorctjVehicn) ^

i {1,..., n}:

(CantPasajContab1, CantPasajContab2,, CantPasajContabn) ^ n>0 ^ i {1,...,

dm
yc
on

n>0 ^

tu

PorctjVehici {1%,,99,99%}}

na

.a

n}: Placa i {1,,999.999}

13

Aporte de Yanire Taborda para www.admycontuna.mforos.com

Aporte de Yanire Taborda para www.admycontuna.mforos.com

TABORDA YANIR, CI: 16.188220 Computacin I - 323

Etapa III: La Particin


Dividimos el proceso en rutinas principales y subprocesos:

Operaciones
Trnsito Vehicular

Bsqueda por
fecha y
alcabala

Bsqueda por
placa del
vehculo

Bsqueda por
alcabala y tipo
de vehculo

co
m

Mantenimiento

s.

Incluir

.m
fo

ro

Consultar
Reporte Impreso
Estadstica

na

Modificar

dm
yc
on

tu

Eliminar

Descripcin:

.a

Mantenimiento
Declaracindevariablesyestructurasdedatos
Inicializacindelasvariablesyestructurasdedatos
Presentacindeopcionesenunmen

1.
2.
3.
4.

*Incluir placa/nmero de pasajeros/alcabala/fecha.


Leer placa/numero de pasajeros/alcabala/fecha.
Validar placa/numero de pasajeros/alcabala/fecha.
Buscar placa/numero de pasajeros/alcabala/fecha - no existe.
*Consultar placa/nmero de pasajeros/alcabala/fecha.
Leer placa/nmero de pasajeros/alcabala/fecha.
Validar placa/nmero de pasajeros/alcabala/fecha.
Buscar placa/nmero de pasajeros/alcabala/fecha - no existe
* Modificar placa/nmero de pasajeros/alcabala/fecha.
Leer placa/nmero de pasajeros/alcabala/fecha.
Buscar placa/nmero de pasajeros/alcabala/fecha.

Leer placa/nmero de pasajeros/alcabala/fecha - no existe.


14

Aporte de Yanire Taborda para www.admycontuna.mforos.com

Aporte de Yanire Taborda para www.admycontuna.mforos.com

TABORDA YANIR, CI: 16.188220 Computacin I - 323

Validar placa/nmero de pasajeros/alcabala/fecha


*Eliminar placa/nmero de pasajeros/alcabala/fecha.
Leer placa/nmero de pasajeros/alcabala/fecha.
Buscar placa/nmero de pasajeros/alcabala/fecha - si existe.
Bsqueda por fecha y alcabala:
Leer fecha o alcabala. Comparar fecha o alcabala con todas las fechas o alcabalas
del arreglo.
Mostrar resultado.

ro

s.

co
m

Reportes:
Leer datos.
Mostrar en pantalla. Ordenamiento de los datos de los vehculos por fecha y
placa
- Presentacin en pantalla de un listado en resumen de todos los vehculos

.m
fo

Etapa IV: Definicin de Abstraccin

na

En esta etapa se desarrollo solamente una rutina

que permite el procedimiento

tu

de lectura de campos por pantalla; la misma es utilizada tanto para incluir datos nuevos

dm
yc
on

como para modificar datos ya existentes de tal forma que facilita su mantenimiento.

Etapa V: Codificacin

.a

As mismo; el algoritmo fue trasladado a un lenguaje de programacin en este


caso Turbo Pascal, se compilo y se depuro. Esta etapa es similar al Obj 8, ver pg. 31

Etapa VI: Prueba y Verificacin


Se realizaron las pruebas y verificaciones del programa a fin de que sea un
programa robusto y amigable. La prueba se realiza para el conjunto de entradas que
permite explorar todo el rango de valores permitidos por las pre-condiciones, en cada
ejecucin y comprobar que las salidas satisfacen las post-condiciones.
Etapa VII: Presentacin
Esta etapa consiste en aadir los comentarios adecuados para aclarar su propsito,
se identifico con fecha, nombre de autor y la utilizacin de rutina desarrollada
15

Aporte de Yanire Taborda para www.admycontuna.mforos.com

Aporte de Yanire Taborda para www.admycontuna.mforos.com

TABORDA YANIR, CI: 16.188220 Computacin I - 323

Objetivo 6. Desarrollo de un Algoritmo en Programacin Modular o Estructurada.


PROGRAMACIN ESTRUCTURADA:
Antes de utilizar el Pseudocdigo y estructura de datos suele ser til utilizar una plantilla
como la siguiente:

.a

dm
yc
on

tu

na

.m
fo

ro

s.

co
m

Program TransitoNacional;
Uses;
<Declaracin de Variables identificadas en el proceso de particin>
Begin
{pre:<Pre-condicin del problema>}
{Paso 1: <Mantenimiento / Administracin Coordinacin de Trnsito Nacional>}
- Procedimiento de Incluir Vehculos:
- Procedimiento de Lectura de Placa y Validacin
- Procedimiento de Bsqueda de Placa
- Procedimiento de Lectura de Datos de Vehculo y Validacin
- Procedimiento de Consultar Vehculos:
- Procedimiento de Lectura de Placa y Validacin
- Procedimiento de Bsqueda de Placa
- Procedimiento de Lectura de Datos de Vehculo
- Procedimiento de Modificar Vehculos:
- Procedimiento de Lectura de Placa y Validacin
- Procedimiento de Bsqueda de Placa
- Procedimiento de Lectura de Datos de Vehculo, Modificacin y Validacin
- Procedimiento de Eliminar Vehculos:
- Procedimiento de Lectura de Placa y Validacin
- Procedimiento de Bsqueda de Placa
- Procedimiento de Lectura de Datos de Vehculo y Eliminacin
{Paso 2: <Bsqueda de nmero de Placa>}
- Procedimiento de Bsqueda de Placa, Encontrado o no
- Procedimiento de Lectura de Placa y Validacin
{Paso 3: <Ordenamiento de Vehculos por Placa>}
- Procedimiento de Ordenamiento en el sistema
{Paso 4: <Reporte de Vehculos>}
- Procedimiento de Reportes
- Procedimiento de Ordenamiento de Arreglo:
- Por Fecha de manera ascendente
- Por nmero de Placa de manera ascendente
- Por Tipo de Vehculo de manera ascendente
- Procedimiento de Listado de Vehculos con Resultados
{post:<Pos-condiciones del problema>}
End.
***********************************************************************************
PROGRAMA EN PSEUDOCDIGO Y ESTRUCTURA DE DATOS:
Programa Transito_Nacional;
Uses;
<Declaracin de Variables identificadas en el proceso de particin>
Inicio
{pre:<Pre-condicin del problema>}

16

Aporte de Yanire Taborda para www.admycontuna.mforos.com

Aporte de Yanire Taborda para www.admycontuna.mforos.com

TABORDA YANIR, CI: 16.188220 Computacin I - 323

.m
fo

ro

s.

{Procedimiento Dibujar campos vacos en pantalla }


procedimiento mostrarCampos;
inicio
escribir(COORDINACION DE TRANSITO NACIONAL );
escribir (DATOS DEL VEHICULO );
escribir (1. Placa: );
escribir (
);
escribir (2. Numero de Pasajeros: );
escribir (
);
escribir (3. Alcabala: );
escribir (
);
escribir (4. Fecha: );
escribir (
);
escribir (5. Tipo de Vehiculo: );
escribir ('--------------------------------------------------------------------------');
fin;

co
m

{Paso 1: <Mantenimiento / Administracin Coordinacin de Trnsito Nacional>}


- Procedimiento de Incluir Vehculos:
- Procedimiento de Lectura de Placa y Validacin
- Procedimiento de Bsqueda de Placa
- Procedimiento de Lectura de Datos de Vehculo y Validacin

.a

dm
yc
on

tu

na

{Procedimiento de Mostrar Datos de Vehculo encontrado}


procedimiento mostrardatos;
inicio
{ escribir placa }
escribir(vehiculo[1]);
{ escribir numero de pasajeros }
escribir(vehiculo[2]);
{ escribir alcabala }
escribir (vehiculo[3]);
{ escribir fecha }
escribir (vehiculo[4]);
{ escribir tipo de vehiculo }
escribir (vehiculo[5]);
si vehiculo[5]= '1' entonces
inicio
escribir(Particulares);
fin;
si vehiculo[5]='2' entonces
inicio
escribir[5] (Puesto);
fin;
si vehiculo='3' entonces
inicio
escribir(Taxi);
fin;
si vehiculo[5]='4' entonces
inicio
escribir(Transporte Publico);
fin;
fin;
{Procedimientos de varios de Lectura y Validacin}
procedimiento leerplaca;

17

Aporte de Yanire Taborda para www.admycontuna.mforos.com

Aporte de Yanire Taborda para www.admycontuna.mforos.com

TABORDA YANIR, CI: 16.188220 Computacin I - 323


inicio
leer(placa);
validar(placa,valor,valido);
si valido=0 entonces buscarplaca;
fin;
procedimiento leernumpasajeros;
inicio
repetir
leer(vehiculo);
validar(vehiculo,valor,valido);
hasta (valor=int(valor)) y (valido=0) y (longitud de cadena(vehiculo)<=2) y (valor<>0);
fin;

s.

co
m

procedimiento leeralcabala;
inicio
repetir
leer(vehiculo);
hasta (longitud de cadena (vehiculo)>1) y (longitud de cadena (vehiculo)<=10) y (vehiculo<>' ');
fin;

.a

dm
yc
on

tu

na

.m
fo

ro

procedimiento leerfecha;
inicio
repetir
repetir
repetir
escribir (DDMMAAAA);
leer(vehiculo);
di<-copiar(vehiculo);
validar(di,valor,valido);
hasta (valido=0) y (valor entero(valor)) y (valor>0) y (valor<=31);
me<-copiar(vehiculo);
validar(me,valor,valido);
hasta (valido=0) y (valor entero(valor)) y (valor>0) y (valor<=12);
an<-copiar(vehiculo);
validar(an,valor,valido);
hasta (valido=0) y (valor entero(valor)) y (valor>=2000) y (valor<=2014) y (longitude de
cadena(vehiculo)<8);
end;
procedimiento leertipovehic;
inicio
repetir
repetir
escribir ('1 = Particulares / 2 = Puesto / 3 = Taxi / 4 = Transporte Publico');
leer(vehiculo);
hasta (longitud de cadena(vehiculo)=1);
vehiculo<- upcase(vehiculo);
hasta (vehiculo='1') o (vehiculo='2') o (vehiculo='3') o (vehiculo='4');
si vehiculo='1' entonces escribe('Particulares')
sino si vehiculo='2' entonces escribe ('Puesto')
sino si vehiculo='3' entonces escribe ('Taxi')
sino si vehiculo='4' entonces escribe ('Transporte Publico');
fin;
{ fin procedimientos lectura y validacin }

18

Aporte de Yanire Taborda para www.admycontuna.mforos.com

Aporte de Yanire Taborda para www.admycontuna.mforos.com

TABORDA YANIR, CI: 16.188220 Computacin I - 323

{Procedimiento de Incluir vehculo}


Procedimiento incluir;
inicio
mostrarCampos;
repetir
leerplaca;
hasta (valido=0) y (encontrado=0) y (longitud de cadena(placa)=7) ;
vehiculo<-placa;
leernumpasajeros;
leeralcabala;
leerfecha;
leertipovehic;
escribir(VEHICULO INGRESADO EXITOSAMENTE);
fin;

ro

s.

co
m

{-------------------------------------------------------------------------------------------------}
- Procedimiento de Consultar Vehculos:
- Procedimiento de Lectura de Placa y Validacin
- Procedimiento de Bsqueda de Placa
- Procedimiento de Lectura de Datos de Vehculo

.m
fo

{Procedimiento de Consultar Vehculo}


procedimiento consultar;

dm
yc
on

tu

na

inicio
mostrarCampos;
escribir(INTRODUZCA EL NUMERO DE PLACA A CONSULTAR: );
repetir
leerplaca;
hasta (valido=0) y (encontrado=1) y (longitud(placa)=7) y (valor<>0);
mostrardatos;
fin;

.a

{-------------------------------------------------------------------------------------------------}
- Procedimiento de Modificar Vehculos:
- Procedimiento de Lectura de Placa y Validacin
- Procedimiento de Bsqueda de Placa
- Procedimiento de Lectura de Datos de Vehculo, Modificacin y Validacin
{Procedimiento de Modificar vehculo}
procedimiento modificar;
inicio
seguir:='S';
inicio
mientras (seguir='S') o (seguir='s') hacer
inicio
mostrarCampos;
escribir(INTRODUZCA EL NUMERO DE PLACA A MODIFICAR: );
repetir
leerplaca;
hasta (valido=0) y (encontrado=1) y (longitud(placa)=7) y (valor<>0);
mostrardatos;
inicio
repetir

19

Aporte de Yanire Taborda para www.admycontuna.mforos.com

Aporte de Yanire Taborda para www.admycontuna.mforos.com

TABORDA YANIR, CI: 16.188220 Computacin I - 323


escribir(INTRODUZCA NUMERO DE ITEM QUE DESEA MODIFICAR: );
leer(item);
validar(item,itemMod,valido);
hasta (itemMod=int(itemMod)) y (valido=0) and (longitud de cadena(item)<=2) y (itemMod>0) y
(itemMod<=5) y (itemMod<>0);

co
m

en caso itemMod de
1: leerplaca;
2: leernumpasajeros;
3: leeralcabala;
4: leerfecha;
5: leertipovehic;
fin;
escribir(ITEM MODIFICADO EXITOSAMENTE');
escribir('DESEA SEGUIR MODIFICANDO ITEMS (S/N):);
fin;
fin;

.m
fo

ro

Procedimiento de Eliminar Vehculos:


Procedimiento de Lectura de Placa y Validacin
Procedimiento de Bsqueda de Placa
Procedimiento de Lectura de Datos de Vehculo y Eliminacin

na

s.

{-------------------------------------------------------------------------------------------------}

.a

dm
yc
on

tu

{Procedimiento de Eliminar Vehculo}


procedimiento eliminar;
inicio
seguir:='S';
inicio
mientras (seguir='S') o (seguir='s') hacer
inicio
mostrarCampos;
escribir(INTRODUZCA EL NUMERO DE PLACA A ELIMINAR: );
repetir
leerplaca;
hasta (valido=0) y (encontrado=1) y (longitud(placa)=7) y (valor<>0);
mostrardatos;
escribir(ESTA SEGURO QUE DESEA ELIMINAR? (S/N): ');
escribir(seguir);
mientras (seguir='S') o (seguir='s') o (seguir='N') o (seguir='n');
si (seguir='S') o (seguir='s') entonces
inicio
para j<-1 hasta 17 hacer vehiculo[posicion,j]<1'..';
escribir(ELIMINADO EXITOSAMETE);
fin;
inicio
escribir('DESEA ELIMINAR OTRO (S/N): );
repetir
leer(seguir);
hasta (seguir='S') o (seguir='s') o (seguir='N') o (seguir='n');
fin
sino

20

Aporte de Yanire Taborda para www.admycontuna.mforos.com

Aporte de Yanire Taborda para www.admycontuna.mforos.com

TABORDA YANIR, CI: 16.188220 Computacin I - 323


inicio
seguir:='N';
escribir(LISTA DE VEHICULOS VACIA, PRESIONE ENTER ');
leer;
fin;
fin;
fin;

s.
ro
.m
fo
na
tu

dm
yc
on

{Funcin de Buscar placa}


Funcion buscarplaca:integer;
inicio
posicion<-0;
encontrado<-0;
para contador<-1 hasta 20 hacer
inicio
si vehiculo[contador,1]=placa entonces
inicio
encontrado<-1;
posicion<-contador;
fin;
fin;
fin;

co
m

{------------------------------------------------------------------------------------------------{Paso 2: <Bsqueda de nmero de Placa>}


- Procedimiento de Bsqueda de Placa, Encontrado o no
- Procedimiento de Lectura de Placa y Validacin

{-------------------------------------------------------------------------------------------------}
{Paso 3: <Ordenamiento de Vehculos por Placa>}
- Procedimiento de Ordenamiento en el sistema

.a

{Procedimiento de Ordenar el arreglo por placa de manera ascendente}


procedimiento ordenararreglo;
inicio
para i<-1 hasta 20 hacer
inicio
para j<-1 hasta 21 hacer
inicio
si (vehiculo[j,i]<>'..') y (vehiculo[j+1,i]<>'..') entonces
inicio
validar(vehiculo[j,1],valor,valido);
validar(vehiculo[j+1,1],valor2,valido2);
si valor>valor2 entonces
inicio
para contador<-1 hasta 17 hacer arrayauxiliar[contador]<-vehiculo[j,contador];
para contador<-1 hasta 17 hacer vehiculo[j,contador]<-vehiculo[j+1,contador];
para contador<-1 hasta 17 hacer vehiculo[j+1,contador]<-arrayauxiliar[contador];
fin;
fin;
fin;
fin;
fin;

21

Aporte de Yanire Taborda para www.admycontuna.mforos.com

Aporte de Yanire Taborda para www.admycontuna.mforos.com

TABORDA YANIR, CI: 16.188220 Computacin I - 323


{-------------------------------------------------------------------------------------------------}
{Paso 4: <Reporte de Vehculos>}
- Procedimiento de Reportes
- Procedimiento de Ordenamiento de Arreglo:
- Por Fecha de manera ascendente
- Por nmero de Placa de manera ascendente
- Por Tipo de Vehculo de manera ascendente
- Procedimiento de Listado de Vehculos con Resultados

na

.m
fo

ro

s.

co
m

{Procedimiento de dibujar pantalla de reporte alcabala}


procedimiento dibujareporte_alcabala;
inicio
escribir(**COORDINACION DE TRANSITO NACIONAL**);
escribir (**Estadstica por Alcabala**);
escribir (Alcabala: );
escribir (FECHA);
escribir (CANTIDAD DE VEHICULOS);
escribir (SALEN);
escribir (ENTRAN);
escribir (PORCENTAJE DE VEHICULOS);
escribir (SALEN);
escribir (ENTRAN);
escribir (-----------------------------------------------------------------------------);
escribir (-----------------------------------------------------------------------------);
escribir (TOTAL DE FECHAS PROCESADAS: );
fin;

.a

dm
yc
on

tu

{Procedimiento de Reporte de Alcabala}


inicio
dibujareporte_alcabala;
escribir('INTRODUZCA EL NOMBRE DE ALCABALA: ');
repetir
leer(Alcabala);
validar(Alcabala,valor,valido);
hasta (longitud de cadena(vehiculo[j,3])>1) y (longitud de cadena(vehiculo[j,3])<=40) y (vehiculo[j,3]<>'
');
ordenararreglo;
para j<-1 hasta 20 hacer
inicio
si (vehiculo[j,1]<>'..') entonces
inicio
si i>17 entonces
{cambiar la fecha DDMMAAA a DD-MM-AAAA}
escribir(copiar(vehiculo[j,4],1,2),'-',copiar(vehiculo[j,4],3,2),'-',copiar(vehiculo[j,4],5,4));
escribir(vehiculo[j,1],' ');
escribir(vehiculo[j,1],' ');
escribir(vehiculo[j,1],' ');
escribir(vehiculo[j,1],' ');
fin;
fin;
escribir('PULSE ENTER PARA SALIR );
'
reaadkey;
fin;
fin;

22

Aporte de Yanire Taborda para www.admycontuna.mforos.com

Aporte de Yanire Taborda para www.admycontuna.mforos.com

TABORDA YANIR, CI: 16.188220 Computacin I - 323

co
m

{Procedimiento de dibujar pantalla de reporte vehculo}


procedimiento dibujareporte_vehiculo;
inicio
escribir (**COORDINACION DE TRANSITO NACIONAL**);
escribir (**Estadstica por Vehiculo**);
escribir (PLACA);
escribir (NUMERO DE);
escribir (ALCABALAS);
escribir (DIAS);
escribir (TRANSITADOS);
escribir (PROMEDIO DE);
escribir (PASAJEROS);
escribir (-----------------------------------------------------------------------------);
escribir (-----------------------------------------------------------------------------);
escribir (TOTAL DE VEHICULOS PROCESADOS: );
fin;

.a

dm
yc
on

tu

na

.m
fo

ro

s.

{Procedimiento de Reporte de Vehculo}


inicio
dibujareporte_vehiculo;
ordenararreglo;
para j<-1 hasta 20 hacer
inicio
si (vehiculo[j,1]<>'..') entonces
inicio
si i>17 entonces
escribir(vehiculo[j,1],' ');
escribir(vehiculo[j,3],' ');
{cambiar la fecha DDMMAAA a DD-MM-AAAA}
escribir(copiar(vehiculo[j,4],1,2),'-',copiar(vehiculo[j,4],3,2),'-',copiar(vehiculo[j,4],5,4));
escribir(vehiculo[j,2],' ');
fin;
fin;
escribir('PULSE ENTER PARA SALIR
');
reaadkey;
fin;
fin;

{Procedimiento de dibujar pantalla de reporte tipo de vehiculo}


procedimiento dibujareporte_TipoVehiculo;
inicio
escribir (**COORDINACION DE TRANSITO NACIONAL**);
escribir (**Estadistica por Tipo de Vehiculo**);
escribir (Alcabala: );
escribir (TIPO);
escribir (DE VEHICULO);
escribir (VEHICULOS);
escribir (CANTIDAD);
escribir (PORCENTAJE);
escribir (PASAJEROS);
escribir (CONTABILIZADOS);
escribir (-----------------------------------------------------------------------------);
escribir (-----------------------------------------------------------------------------);
escribir (TOTAL DE VEHICULOS PROCESADOS: );
escribir (INTRODUZCA EL NOMBRE DE ALCABALA: );
fin;

23

Aporte de Yanire Taborda para www.admycontuna.mforos.com

Aporte de Yanire Taborda para www.admycontuna.mforos.com

TABORDA YANIR, CI: 16.188220 Computacin I - 323

dm
yc
on

tu

na

.m
fo

ro

s.

co
m

{Procedimiento de Reporte de tipo de vehculo}


inicio
dibujareporte_TipoVehiculo;
escribir('INTRODUZCA EL NOMBRE DE ALCABALA: );
'
repetir
leer(Alcabala);
validar(Alcabala,valor,valido);
hasta (longitude de cadena(vehiculo[j,3])>1) y (longitud de cadena(vehiculo[j,3])<=40) y
(vehiculo[j,3]<>' ');
ordenararreglo;
para j<-1 hasta 20 hacer
inicio
si (vehiculo[j,1]<>'..') entonces
inicio
si i>17 entonces
si vehiculo[j,5]='1' entonces escribir('Particulares');
si vehiculo[j,5]='2' entonces escribir ('Puesto');
si vehiculo[j,5]='3' entonces escribir ('Taxi');
si vehiculo[j,5]='4' entonces escribir ('Transporte Pblico');
escribir(vehiculo[j,1],' ');
escribir(vehiculo[j,1],' ');
escribir(vehiculo[j,2],' ');
fin;
fin;
escribir('PULSE ENTER PARA SALIR );
'
reaadkey;
fin;
fin;
{post:<Pos-condiciones del problema>}
End.

.a

Objetivo7.ProbarAlgoritmoutilizandoelConceptodeRobustez

En cuanto a la robustez el algoritmo se debe validad en los datos de entrada; es

decir, al momento de ingresar cualquier dato se indica el formato en el que debe


ingresarlo y en caso que no se cumpla con los parmetros preestablecidos en el
pseudocdigo debe haber un rechazo del dato que no cumple con las condiciones y
repetir la peticin de entrada. Por Ejemplo:
En este sentido para que el algoritmo se ejecute, el usuario no debe cometer
errores, por ejemplo: introduce un carcter en un dato que debe ser numrico o introduce
una fecha de formato DDMMAAAA de manera DD-MM-AAAA, etc., primero hay que
leer el dato como una cadena y luego segn sea el caso:
24

Aporte de Yanire Taborda para www.admycontuna.mforos.com

Aporte de Yanire Taborda para www.admycontuna.mforos.com

TABORDA YANIR, CI: 16.188220 Computacin I - 323

Nmeros:
1- Convertirlo en nmero y validarlo.
2- Longitud del nmero, no nulo, entero o no entero, cantidad de dgitos, cantidad de
decimales.
Cadenas:
1. Longitud de cadena determinada, no vaca.
2. Si es un carcter, revisar longitud de cadena = 1, cuales caracteres especficos acepta.
Ejemplos:

co
m

PLACA DE VEHICULO:

s.

En este caso debe ser 7 alfanumricos

ro

Validacin para Placa de Vehculo:

.m
fo

var
placa: cadena

na

inicio
repetir

dm
yc
on

val(placa, valor, valido)

tu

leer (placa)

hasta(valido = 0) y (valor = valor entero(valor)) y (valor > 0) y (valor <= 7)


fin

.a

NUMERO DE PASAJEROS:

Nmero real de 2 dgitos, no nulo, desde 1 hasta 99:

Validacin para Nmero de Pasajeros:


var
NumPasaj: cadena
inicio
repetir
leer (NumPasaj)
validar(NumPasaj, valor, valido)
hasta(valido = 0) y (valor > 0) y (valor <=99)
fin

FECHA:

25

Aporte de Yanire Taborda para www.admycontuna.mforos.com

Aporte de Yanire Taborda para www.admycontuna.mforos.com

TABORDA YANIR, CI: 16.188220 Computacin I - 323


El caso de las fechas es el mismo para todas, un valor que sea numrico, entero, de 8 dgitos, de formato
DDMMAAAA estableciendo el ao desde 2000.

Validacin para Fecha:


var
fecha: cadena
inicio
repetir
repetir
repetir

co
m

leer (fecha)
di <- copiar(fecha, 1 , 2)
validar (di , valor , valido)

s.

hasta (valido=0) y (valor=valor entero(valor)) y (valor > 0) y (valor <= 31)

ro

me <- copiar(fecha, 3 , 2)

.m
fo

validar (me, valor, valido)

hasta (valido=0) y (valor=valor entero(valor)) y (valor > 0) y (valor <= 12)

na

an:=copiar(fecha, 5 , 4)

tu

validar (an, valor, valido)

dm
yc
on

hasta (valido=0) y (valor=valor entero(valor)) y (valor >=2000) y (valor<= 2014)


y (longitud(fecha<9))
fin

.a

TIPO DE VEHICULO:

Debe ser un solo carcter, no vaco, con slo 4 valores posibles: '1' o '2' o '3' o '4',

Validacin para Tipo de Vehiculo:


var

TipoVehic:cadena;
inicio
repetir
repetir
leer(TipoVehic)
convertir en mayusculas la cadena (TipoVehic)
hasta (longitud_cadena (TipoVehic) =1)
hasta (TipoVehic = '1' ) o (TipoVehic = '2' ) o (TipoVehic = '3' ) o (TipoVehic = '4' )
fin

26

Aporte de Yanire Taborda para www.admycontuna.mforos.com

Aporte de Yanire Taborda para www.admycontuna.mforos.com

TABORDA YANIR, CI: 16.188220 Computacin I - 323

EL ARREGLO:
Otro caso a tomar en cuenta para la robustez del programa consiste en considerar cuatro estados posibles
del arreglo: vaco, con un solo elemento, con algunos registros con datos y totalmente lleno.
1- VACIO:
1.1-

No permitir la opcin de "consultar", "modificar", "eliminar" o "reporte".

1.2-

No existe Vehculo a consultar o modificar o eliminar y crear un bucle infinito.

1.3-

El reporte saldr en blanco.

2- UN VEHICULO:
No ordenar el arreglo.

2.2-

Al eliminar el ltimo vehculo del arreglo no permitir la opcin recursiva:

co
m

2.1-

Desea seguir eliminando vehculos?, sino escribir: No existen vehculos en

s.

para regresar al men principal.

sistema, presione intro

ro

3- VARIOS REGISTROS:

.m
fo

3.1- Al ingresar un vehculo nuevo, utilizar lugares vacos ms cerca del inicio del
Arreglo para mejorar el desempeo del programa.
4- TOTALMENTE LLENO:

dm
yc
on

4.1- No permitir el ingreso de ms vehculos.

na

Al hacer el reporte no hay que tomar en cuenta los registros vacos.

tu

3.2-

.a

Objetivo 8. Codificar Algoritmo en Lenguaje Pascal, aplicando tipos de datos y/o


procedimientosyfuncionesy/omtodosdearchivos.

Type

uses crt;

PROGRAM TRANSITO_NACIONAL;

Dvehiculos=Record
Placa: String[5]
Numpasaj: Integer
Alcab: String[8]
Fecha:string[10]
Tipovehic: string[20]
Cantvehicsalen: Integer
Cantvehient: Integer
Porctvehicsale:real
Porctvehicentr:real
Numalcabtrans:integer
Diastrans:integer

27

Aporte de Yanire Taborda para www.admycontuna.mforos.com

Aporte de Yanire Taborda para www.admycontuna.mforos.com

TABORDA YANIR, CI: 16.188220 Computacin I - 323


Prompasaj:real
Cantvehic:integer
Porcentvehic:real
Cantpasajcont:integer
End;
{-------------------------------------------------------------------------------------------------------------------------------}
{Declaracion de variable globales}
Registrovehiculos=array[1..50] of dvehiculos;
Var
Placav: registrovehiculo; {cada placa}
I: integer
Num;resp: integer

co
m

Cantidad: integer
Buscar:string
Lugar,exito:integer

ro

s.

Alcabalreport: string

.m
fo

procedure Buscplaca;
begin
lugar:=0

na

exito:=0
f or :=1 to 50 do

tu

begin

dm
yc
on

for contad:=1 to 17 do
begin

vehiculo[contador,contad]:='..';
end;
for contad:=1 to 17 do

.a

begin
arrayauxiliar[contador]:='..';

end;

end;

end;

{-------------------------------------------------------------------------------------------------------------------------------}
{Dibujar campos vacios en pantalla}
procedure mostrarCampos;
begin
gotoxy(25,2);
writeln(' COORDINACION DE TRANSITO NACIONAL ');
gotoxy(4,4);
writeln('DATOS DEL VEHICULO ');
gotoxy(1,7);
writeln(' 1. Placa: ');
writeln('
writeln('
writeln('

');
2. Numero de Pasajeros: ');
');

28

Aporte de Yanire Taborda para www.admycontuna.mforos.com

Aporte de Yanire Taborda para www.admycontuna.mforos.com

TABORDA YANIR, CI: 16.188220 Computacin I - 323


writeln('

3. Alcabala: ');

writeln('

');

writeln(' 4. Fecha: ' );


writeln('
writeln('

');
5. Tipo de Vehiculo: ');

gotoxy(4,21);
writeln('--------------------------------------------------------------------------');
end;
{-------------------------------------------------------------------------------------------------------------------------------}
{ Mostrar datos de vehiculo encontrado }
procedure mostrardatos;
begin
{ escribir placa }

co
m

gotoxy(15,7);
write(vehiculo[tt,1]);
{ escribir numero de pasajeros }

s.

gotoxy(29,9);

ro

write(vehiculo[tt,2]);

.m
fo

{ escribir alcabala }
gotoxy(18,11);
write(vehiculo[tt,3]);

na

{ escribir fecha }
gotoxy(15,13);

tu

write(vehiculo[tt,4]);
gotoxy(26,15);
write(vehiculo[tt,5]);
if vehiculo[tt,5][26]='1' then
begin

.a

gotoxy(26,15);
write('Particulares ');

end;

dm
yc
on

{ escribir tipo de vehiculo }

begin

if vehiculo[tt,5]='2' then
gotoxy(26,15);

write('Puesto );

'

end;
if vehiculo[tt,5]='3' then
begin
gotoxy(26,15);
write('Taxi );

'

end;
if vehiculo[tt,5]='4' then
begin
gotoxy(26,15);
write('Transporte Publico); '
end;

29

Aporte de Yanire Taborda para www.admycontuna.mforos.com

Aporte de Yanire Taborda para www.admycontuna.mforos.com

TABORDA YANIR, CI: 16.188220 Computacin I - 323


end;
{-------------------------------------------------------------------------------------------------------------------------------}
{Buscar placa}
function buscarplaca:integer;
begin
posicion:=0;
encontrado:=0;
for contador:=1 to 50 do
begin
if vehiculo[contador,1]=placa then
begin
encontrado:=1;
posicion:=contador;

co
m

end;
end;
end;

ro

s.

{-------------------------------------------------------------------------------------------------------------------------------}

.m
fo

{---------inicio procedimientos varios de lectura y validacion---------}


procedure leerplaca;
begin
write('Ingrese el numero de Placa (7 numeros)

');

tu

gotoxy(15,7);

na

gotoxy(4,22);

dm
yc
on

readln(placa);
val(placa,valor,valido);
if valido=0 then buscarplaca;
end;

.a

procedure leernumpasajeros;
begin

repeat

gotoxy(4,22);

write('Ingrese el Numero de Pasajeros ');


gotoxy (29,9);

readln(vehiculo[tt,2]);
val(vehiculo[tt,2],valor,valido);
until (valor=int(valor)) and (valido=0) and (length(vehiculo[tt,2])<=2) and (valor<>0);
end;
procedure leeralcabala;
begin
repeat
gotoxy(4,22);
write('Escribe el nombre de Alcabala ');
gotoxy(18,11);
readln(vehiculo[tt,3]);

30

Aporte de Yanire Taborda para www.admycontuna.mforos.com

Aporte de Yanire Taborda para www.admycontuna.mforos.com

TABORDA YANIR, CI: 16.188220 Computacin I - 323


until (length(vehiculo[tt,3])>1) and (length(vehiculo[tt,3])<=10) and (vehiculo[tt,3]<>' ');
end;
procedure leerfecha;
begin
repeat
repeat
repeat
gotoxy(4,22);
write('DDMMAAAA );

'

gotoxy (15,13);
readln(vehiculo[tt,4]);
di:=copy(vehiculo[tt,4],1,2);

co
m

val(di,valor,valido);
until (valido=0) and (valor=int(valor)) and (valor>0) and (valor<=31);

.m
fo

an:=copy(vehiculo[tt,4],5,4);

ro

until (valido=0) and (valor=int(valor)) and (valor>0) and (valor<=12);

s.

me:=copy(vehiculo[tt,4],3,2);
val(me,valor,valido);

val(an,valor,valido);

until (valido=0) and (valor=int(valor)) and (valor>=2000) and (valor<=2014) and (length(vehiculo[tt,4])<9);

na

end;

tu

procedure leertipovehic;

dm
yc
on

begin
repeat
repeat
gotoxy(4,22);
gotoxy(26,15);

readln(vehiculo[tt,5]);

.a

write('1 = Particulares / 2 = Puesto / 3 = Taxi / 4 = Transporte Publico');

until (length(vehiculo[tt,5])=1);

vehiculo[tt,5]:= upcase(vehiculo[tt,5][1]);
until (vehiculo[tt,5]='1') or (vehiculo[tt,5]='2') or (vehiculo[tt,5]='3') or (vehiculo[tt,5]='4');
gotoxy(26,15);
if vehiculo[tt,5]='1' then write('Particulares')
else if vehiculo[tt,5]='2' then write('Puesto')
else if vehiculo[tt,5]='3' then write('Taxi')
else if vehiculo[tt,5]='4' then write('Transporte Publico');
end;
{ fin procedimientos lectura y validacion }
{ Verificar si el arreglo esta vacio. }
function arrayvacio:integer;
begin
arrayvacio:=0;

31

Aporte de Yanire Taborda para www.admycontuna.mforos.com

Aporte de Yanire Taborda para www.admycontuna.mforos.com

TABORDA YANIR, CI: 16.188220 Computacin I - 323


contad:=0;
for contador:=1 to 20 do
begin
if vehiculo[contador,1]='..' then contad:=contad+1;
end;
if (contad=20) then arrayvacio:=1;
end;
{ encontrar una posicion vacia en el arreglo }
function posvacia:integer;
begin
j:=1;
exito:=0;

co
m

while (j<=20) and (exito=0) do


begin
if vehiculo[j,1]='..' then

s.

begin

ro

exito:=1;

.m
fo

posvacia:=j;
end;
j:=j+1;

na

end;

tu

end;

dm
yc
on

{-------------------------------------------------------------------------------------------------------------------------------}
{Incluir vehiculo}
procedure incluir;
begin

.a

seguir:='S';

while (seguir='S') or (seguir='s') do

begin

ClrScr;

tt:=posvacia;
mostrarCampos;
repeat
leerplaca;

until (valido=0) and(encontrado=0) and (length(placa)=7) and (valor<>0);


vehiculo[tt,1]:=placa;
leernumpasajeros;
leeralcabala;
leerfecha;
leertipovehic;
gotoxy(4,22);
write('VEHICULO INGRESADO EXITOSAMENTE

');

32

Aporte de Yanire Taborda para www.admycontuna.mforos.com

Aporte de Yanire Taborda para www.admycontuna.mforos.com

TABORDA YANIR, CI: 16.188220 Computacin I - 323


gotoxy(4,24);
write('INCLUIR OTRO VEHICULO (S) / PARA TERMINAR (N): ');
repeat
gotoxy(55,24);
write('

');

gotoxy(55,24);
readln(seguir);
until (seguir='S') or (seguir='s') or (seguir='N') or (seguir='n');
end;
end;
{-------------------------------------------------------------------------------------------------------------------------------}

co
m

{ Consultar Vehiculo }
procedure consultar;

s.

begin

ro

seguir:='S';

.m
fo

while (seguir='S') or (seguir='s') do


if arrayvacio=0 then
begin

na

ClrScr;
mostrarCampos;

tu

gotoxy(4,22);

dm
yc
on

write('INTRODUZCA EL NUMERO DE PLACA A CONSULTAR: ');


repeat
leerplaca;

until (valido=0) and (encontrado=1) and (length(placa)=7) and (valor<>0);


tt:=posicion;

.a

mostrardatos;

gotoxy(4,22);

begin

repeat

write('CONSULTAR OTRO ITEM (S) / PARA TERMINAR (N): ');


gotoxy(55,22);
write('

');

gotoxy(55,22);
readln(seguir);
until (seguir='S') or (seguir='s') or (seguir='N') or (seguir='n');
end;
end;
end;
{-------------------------------------------------------------------------------------------------------------------------------}
{Modificar vehiculo}

33

Aporte de Yanire Taborda para www.admycontuna.mforos.com

Aporte de Yanire Taborda para www.admycontuna.mforos.com

TABORDA YANIR, CI: 16.188220 Computacin I - 323


procedure modificar;
begin
if arrayvacio=0 then
begin
ClrScr;
mostrarCampos;
gotoxy(4,22);
write('INTRODUZCA EL NUMERO DE PLACA A MODIFICAR: ');
repeat
leerplaca;
until (valido=0) and (encontrado=1) and (length(placa)=7) and (valor<>0);
tt:=posicion;

co
m

mostrardatos;
seguir:='S';
while (seguir='S') or (seguir='s') do

s.

begin

ro

repeat

.m
fo

gotoxy(4,22);

write('INTRODUZCA NUMERO DE ITEM QUE DESEA MODIFICAR: ');


gotoxy(55,22);
');

na

write('
gotoxy(55,22);

tu

readln(item);

dm
yc
on

val(item,itemMod,valido);

until (itemMod=int(itemMod)) and (valido=0) and (length(item)<=2) and (itemMod>0) and (itemMod<=5) and (itemMod<>0);
case itemMod of
1: leerplaca;

.a

2: leernumpasajeros;
4: leerfecha;

5: leertipovehic;
end;

3: leeralcabala;

gotoxy(4,22);

writeln('ITEM MODIFICADO EXITOSAMENTE

');

gotoxy(4,24);
write('DESEA SEGUIR MODIFICANDO ITEMS (S/N):

');

repeat
gotoxy(45,24);
gotoxy(45,24);
readln(seguir);
until (seguir='S') or (seguir='s') or (seguir='N') or (seguir='n');
end;
end;
end;

34

Aporte de Yanire Taborda para www.admycontuna.mforos.com

Aporte de Yanire Taborda para www.admycontuna.mforos.com

TABORDA YANIR, CI: 16.188220 Computacin I - 323

{-------------------------------------------------------------------------------------------------------------------------------}
{ Eliminar prestamo }
procedure eliminar;
begin
seguir:='S';
if arrayvacio=0 then
begin
while (seguir='S') or (seguir='s') do
begin
ClrScr;
mostrarCampos;

co
m

gotoxy(4,22);
write('INTRODUZCA EL NUMERO DE PLACA A ELIMINAR: ');

until (valido=0) and (encontrado=1) and (length(placa)=7) and (valor<>0);

.m
fo

tt:=posicion;
mostrardatos;
gotoxy(4,23);

write('

');

dm
yc
on

repeat

na

');

gotoxy(4,24);

tu

write('

gotoxy(4,22);
write('

ro

leerplaca;

s.

repeat

');

gotoxy(4,22);

write('ESTA SEGURO QUE DESEA ELIMINAR? (S/N):

');

.a

gotoxy(44,24);
write('

');

readln(seguir);

gotoxy(44,22);

until (seguir='S') or (seguir='s') or (seguir='N') or (seguir='n');


if (seguir='S') or (seguir='s') then
begin
for j:=1 to 17 do vehiculo[posicion,j]:='..';
gotoxy(4,22);
write('ELIMINADO EXITOSAMETE

');

end;
gotoxy(4,24);
if arrayvacio=0 then
begin
write('DESEA ELIMINAR OTRO (S/N):

');

repeat
gotoxy(33,24);
write('

');

35

Aporte de Yanire Taborda para www.admycontuna.mforos.com

Aporte de Yanire Taborda para www.admycontuna.mforos.com

TABORDA YANIR, CI: 16.188220 Computacin I - 323


gotoxy(33,24);
readln(seguir);
until (seguir='S') or (seguir='s') or (seguir='N') or (seguir='n');
end
else
begin
seguir:='N';
gotoxy(33,24);
write('

');

gotoxy(4,24);
write('LISTA DE VEHICULOS VACIA, PRESIONE ENTER

');

readln;
end;

co
m

end;
end;

s.

end;

.m
fo

ro

{-------------------------------------------------------------------------------------------------------------------------------}
{ Ordena el arreglo por placa de manera ascendente }
procedure ordenararreglo;

na

begin
for i:=1 to 20 do

tu

begin

dm
yc
on

for j:=1 to 21 do
begin

if (vehiculo[j,i]<>'..') and (vehiculo[j+1,i]<>'..') then


begin

val(vehiculo[j,1],valor,valido);
if valor>valor2 then

begin

.a

val(vehiculo[j+1,1],valor2,valido2);

for contador:=1 to 17 do arrayauxiliar[contador]:=vehiculo[j,contador];

for contador:=1 to 17 do vehiculo[j,contador]:=vehiculo[j+1,contador];


for contador:=1 to 17 do vehiculo[j+1,contador]:=arrayauxiliar[contador];
end;
end;
end;
end;
end;

{Buscar placa}
function buscaralcabala:integer;
begin
posicion:=0;
encontrado:=0;

36

Aporte de Yanire Taborda para www.admycontuna.mforos.com

Aporte de Yanire Taborda para www.admycontuna.mforos.com

TABORDA YANIR, CI: 16.188220 Computacin I - 323


for contador:=1 to 20 do
begin
if vehiculo[contador,1]=alcabala then
begin
encontrado:=1;
posicion:=contador;
end;
end;
end;
{ dibuja pantalla reporte alcabala }
procedure dibujareporte_alcabala;
begin

co
m

ClrScr;
gotoxy(21,2);
writeln('**COORDINACION DE TRANSITO NACIONAL**');

s.

gotoxy(25,4);

ro

writeln('**Estadistica por Alcabala**');

.m
fo

gotoxy(2,6);
writeln('Alcabala: ');
gotoxy(8,8);

na

writeln('FECHA');
gotoxy(18,8);

tu

writeln('CANTIDAD DE VEHICULOS');

dm
yc
on

gotoxy(20,9);
writeln('SALEN');
gotoxy(32,9);
writeln('ENTRAN');
gotoxy(46,8);

.a

writeln('PORCENTAJE DE VEHICULOS');
gotoxy(49,9);

gotoxy(60,9);

writeln('SALEN');

gotoxy(2,10);

writeln('ENTRAN');

writeln('-----------------------------------------------------------------------------');
gotoxy(2,21);
write('-----------------------------------------------------------------------------');
gotoxy(2,22);
write('TOTAL DE FECHAS PROCESADAS:

');

end;
{-------------------------------------------------------------------------------------------------------------------------------}
{ Reporte de alcabala }
procedure reporte_alcabala;
var

37

Aporte de Yanire Taborda para www.admycontuna.mforos.com

Aporte de Yanire Taborda para www.admycontuna.mforos.com

TABORDA YANIR, CI: 16.188220 Computacin I - 323


fila:integer;
begin
if arrayvacio=0 then
begin
dibujareporte_alcabala;
gotoxy(2,24);
write('INTRODUZCA EL NOMBRE DE ALCABALA:

');

gotoxy(13,6);
repeat
gotoxy(54,22);
write('

');

gotoxy(13,6);
readln(Alcabala);
until (length(vehiculo[j,3])>1) and (length(vehiculo[j,3])<=40) and (vehiculo[j,3]<>' ');
ordenararreglo;

s.

fila:=8;

co
m

val(Alcabala,valor,valido);

ro

for j:=1 to 20 do

.m
fo

begin
if (vehiculo[j,1]<>'..') then
begin

na

fila:=fila+1;
if i>17 then

tu

begin

dm
yc
on

fila:=fila+1;
end;
gotoxy(5,fila+1);

{cambiar la fecha DDMMAAA a DD-MM-AAAA}

write(copy(vehiculo[j,4],1,2),'-',copy(vehiculo[j,4],3,2),'-',copy(vehiculo[j,4],5,4));

gotoxy(32,fila+1);

write(vehiculo[j,1],' ');

.a

gotoxy(20,fila+1);

write(vehiculo[j,1],' ');

gotoxy(49,fila+1);

write(vehiculo[j,1],' ');
gotoxy(60,fila+1);
write(vehiculo[j,1],' ');
end;
end;
gotoxy(2,24);

write('PULSE ENTER PARA SALIR

');

readln;
end;
end;
{-------------------------------------------------------------------------------------------------------------------------------}

38

Aporte de Yanire Taborda para www.admycontuna.mforos.com

Aporte de Yanire Taborda para www.admycontuna.mforos.com

TABORDA YANIR, CI: 16.188220 Computacin I - 323


{ dibujar pantalla reporte vehiculo}
procedure dibujareporte_vehiculo;
begin
ClrScr;
gotoxy(21,2);
writeln('**COORDINACION DE TRANSITO NACIONAL**');
gotoxy(25,4);
writeln('**Estadistica por Vehiculo**');
gotoxy(8,8);
writeln('PLACA');
gotoxy(20,8);

co
m

writeln('NUMERO DE');
gotoxy(20,9);
writeln('ALCABALAS');

s.

gotoxy(42,8);

ro

writeln('DIAS');

.m
fo

gotoxy(39,9);
writeln('TRANSITADOS');
gotoxy(60,8);

na

writeln('PROMEDIO DE');
gotoxy(61,9);

tu

writeln('PASAJEROS');

dm
yc
on

gotoxy(2,10);

writeln('-----------------------------------------------------------------------------');
gotoxy(2,21);

write('-----------------------------------------------------------------------------');
gotoxy(2,22);

');

.a

write('TOTAL DE VEHICULOS PROCESADOS:

end;

{-------------------------------------------------------------------------------------------------------------------------------}
{ Reporte de vehiculo }

procedure reporte_vehiculo;
var
fila:integer;
begin
if arrayvacio=0 then
begin
dibujareporte_vehiculo;
ordenararreglo;
fila:=8;
for j:=1 to 20 do
begin
if (vehiculo[j,1]<>'..') then

39

Aporte de Yanire Taborda para www.admycontuna.mforos.com

Aporte de Yanire Taborda para www.admycontuna.mforos.com

TABORDA YANIR, CI: 16.188220 Computacin I - 323


begin
fila:=fila+1;
if i>17 then
begin
fila:=fila+1;
end;
gotoxy(7,fila+1);
write(vehiculo[j,1],' ');
gotoxy(23,fila+1);
write(vehiculo[j,3],' ');
gotoxy(40,fila+1);
{cambiar la fecha DDMMAAA a DD-MM-AAAA}
write(copy(vehiculo[j,4],1,2),'-',copy(vehiculo[j,4],3,2),'-',copy(vehiculo[j,4],5,4));

co
m

gotoxy(65,fila+1);
write(vehiculo[j,2],' ');
end;

s.

end;
');

.m
fo

write('PULSE ENTER PARA SALIR

ro

gotoxy(2,24);
readln;
end;

na

end;

dm
yc
on

tu

{-------------------------------------------------------------------------------------------------------------------------------}
{dibuja pantalla reporte tipo de vehiculo}
procedure dibujareporte_TipoVehiculo;
begin
ClrScr;

.a

gotoxy(21,2);

writeln('**COORDINACION DE TRANSITO NACIONAL**');

gotoxy(22,4);

gotoxy(2,6);

writeln('**Estadistica por Tipo de Vehiculo**');


writeln('Alcabala: ');
gotoxy(8,8);
writeln('TIPO');
gotoxy(5,9);
writeln('DE VEHICULO');
gotoxy(26,8);
writeln('VEHICULOS');
gotoxy(20,9);
writeln('CANTIDAD');
gotoxy(32,9);
writeln('PORCENTAJE');
gotoxy(51,8);
writeln('PASAJEROS');

40

Aporte de Yanire Taborda para www.admycontuna.mforos.com

Aporte de Yanire Taborda para www.admycontuna.mforos.com

TABORDA YANIR, CI: 16.188220 Computacin I - 323

.a

dm
yc
on

tu

na

.m
fo

ro

s.

co
m

gotoxy(49,9);
writeln('CONTABILIZADOS');
gotoxy(2,10);
writeln('-----------------------------------------------------------------------------');
gotoxy(2,21);
write('-----------------------------------------------------------------------------');
gotoxy(2,22);
write('TOTAL DE VEHICULOS PROCESADOS:
');
gotoxy(2,24);
write('INTRODUZCA EL NOMBRE DE ALCABALA:
');
gotoxy(13,6);
end;
{-------------------------------------------------------------------------------------------------------------------------------}
{ Reporte de tipo de vehiculo }
procedure reporte_TipoVehiculo;
var
fila:integer;
begin
if arrayvacio=0 then
begin
dibujareporte_TipoVehiculo;
gotoxy(2,24);
write('INTRODUZCA EL NOMBRE DE ALCABALA:
');
gotoxy(13,6);
repeat
gotoxy(54,22);
write('
');
gotoxy(13,6);
readln(Alcabala);
val(Alcabala,valor,valido);
until (length(vehiculo[tt,3])>1) and (length(vehiculo[tt,3])<=40) and (vehiculo[tt,3]<>' ');
ordenararreglo;
fila:=8;
for j:=1 to 20 do
begin
if (vehiculo[j,1]<>'..') then
begin
fila:=fila+1;
if i>17 then
begin
fila:=fila+1;
end;
gotoxy(5,fila+1);
if vehiculo[j,5]='1' then write('Particulares');
if vehiculo[j,5]='2' then write('Puesto');
if vehiculo[j,5]='3' then write('Taxi');
if vehiculo[j,5]='4' then write('Transporte Publico');
gotoxy(20,fila+1);
write(vehiculo[j,1],' ');
gotoxy(34,fila+1);
write(vehiculo[j,1],' ');
gotoxy(54,fila+1);
write(vehiculo[j,2],' ');
end;
end;
gotoxy(2,24);
write('PULSE ENTER PARA SALIR
');
readln;
end;
end;
{-------------------------------------------------------------------------------------------------------------------------------}
{ Dibujar Menu Principal en pantalla y pedir opcion }
procedure MostrarMenu;
var
Op integer;
begin
repeat
ClrScr;
Gotoxy(1,1)dibujarRectan;
gotoxy(3,08);

41

Aporte de Yanire Taborda para www.admycontuna.mforos.com

Aporte de Yanire Taborda para www.admycontuna.mforos.com

TABORDA YANIR, CI: 16.188220 Computacin I - 323

dm
yc
on

tu

na

.m
fo

ro

s.

co
m

write (*****TRANSITO VEHICULAR****)


gotoxy(8,10)
write(*MENU PRINCIPAL*);
gotoxy(7,12);
write('1. INCLUIR');
gotoxy(7,13);
Write('2. CONSULTAR');
gotoxy(7,14);
Write('3. MODIFICAR');
gotoxy(7,15);
Write('4. ELIMINAR');
gotoxy(7,16);
Write('4. REPORTE POR ALCABALA');
gotoxy(7,17);
Write('4. REPORTE POR VEHICULO');
gotoxy(7,18);
Write('4. REPORTE POR TIPO DE VEHICULO');
gotoxy(7,19);
Write('5. SALIDA');
gotoxy(11,20);
Writeln('
OPCION:__ __');
Gotoxy (46,24)
Write(realizado por: YANIRE TABORDA);
gotoxy(18,20);
{-------------------------------------------------------------------------------------------------------------------------------}
Readln(op);
case op of
1: incluir;
2: consultar;
3: modificar;
4: eliminar;
5: reporte_alcabala;
6: reporte_vehiculo;
7: reporte_TipoVehiculo;
8: exit;
end;
until (op=8);
end;(Menu principal)

.a

{ Programa principal }
begin
cantidad:=0;
men;
end.(fin del programa)

42

Aporte de Yanire Taborda para www.admycontuna.mforos.com

Potrebbero piacerti anche