Вы находитесь на странице: 1из 39

Repblica Bolivariana De Venezuela

Ministerio Del Poder Popular Para La Educacin


Universidad Nacional Abierta
UNA
Centro Local Maturn- Edo Monagas

Profesor(a): Anabel Larez

Bachiller: Jinneth Dominguez


C.I: 18.273.080

Maturn, 2016

ndice
Introduccin.................................................................................................. 3
Planteamiento del problema.............................................................................4
CONTENIDO................................................................................................. 6
Programacin en pascal del caso planteado....................................................28
Conclusin.................................................................................................. 28
Bibliografas................................................................................................ 40

Introduccin
Pascal es un lenguaje de programacin desarrollado por el profesor suizo
Niklaus Wirth entre los aos 1968 y 1969 y publicado en 1970. Su objetivo era
2

crear un lenguaje que facilitara el aprendizaje de programacin a sus alumnos,


utilizando la programacin estructurada y estructuracin de datos. Sin embargo
con el tiempo su utilizacin excedi el mbito acadmico para convertirse en una
herramienta para la creacin de aplicaciones de todo tipo.
Pascal se caracteriza por ser un lenguaje de programacin estructurado
fuertemente tipado. Esto implica que:

1. El cdigo est dividido en porciones fcilmente legibles llamadas funciones


o procedimientos. De esta forma Pascal facilita la utilizacin de la
programacin estructurada en oposicin al antiguo estilo de programacin
monoltica.
2. El tipo de dato de todas las variables debe ser declarado previamente para
que su uso quede habilitado.

Otra diferencia importante es que en Pascal, el tipo de una variable se fija en


su definicin; la asignacin a variables de valores de tipo incompatible no estn
autorizadas (en C, en cambio, el compilador hace el mejor esfuerzo para dar una
interpretacin a casi todo tipo de asignaciones). Esto previene errores comunes
donde variables son usadas incorrectamente porque el tipo es desconocido; y
tambin evita la necesidad de notacin hngara, que vienen a ser prefijos que se
aaden a los nombres de las variables y que indican su tipo.

Planteamiento del problema.

La coordinacin de trnsito nacional implantar un programa que genere


estadsticas de movimiento vehicular. En tal sentido se cuenta con lo siguiente:
1. Se registrar la siguiente informacin por cada vehculo: placa, nmero de
pasajeros, alcabala, fecha, tipo de vehculo (1: particular, 2: por puesto, 3:taxi, 4:
transporte pblico).
2. 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.
Con base en lo planteado, disee un algoritmo en pseudocdigo donde se
muestre el uso correcto de las tcnicas de programacin estructurada o
subprogramas y realice lo siguiente:
Presente un men de mantenimiento con las opciones siguientes:
Incluir, Consultar, Modificar, Eliminar, Reporte de estadstica y Salida.
Registre, con la opcin incluir, los siguientes datos:
Placa del vehculo. (Formato vigente XXNNNXX)
Tipo de vehculo (1: particular, 2: por puesto, 3: taxi, 4:transporte pblico) Nmero
de pasajeros (Validar segn tipo de vehculo)
Alcabala
Vehculo Entrante o Saliente (E/S)
Fecha
Nombre de la entidad federal
4

Ordene el registro por fecha y placa del vehculo.


Genere por medio de la opcin Reporte las siguientes estadsticas:
NOTA: En las alternativas Modificar, Eliminar y Consultar haga uso de los datos
registrados con la opcin Incluir.

CONTENIDO
Objetivo 5 Metodologa para la resolucin de problemas algortmicos.
Metodologa MAPS
La metodologa MAPS (Methodology for Algorithmic Problem Solving) es un
procedimiento estructurado que permite construir algoritmos para la solucin de
problemas. Presenta una serie de etapas que al ser seguidas con detalle, permite
un diseo adecuado.las etapas son las siguientes:

Dialogo: en el primer paso en el proceso de solucin a un problema se debe


determinar de forma clara y concisa la siguiente informacin:
1. Los objetos conocidos, es decir, aquellos objetos de las cuales
poseemos informacin total o parcial til en la bsqueda de los objetos
desconocidos.
2. Las condiciones, aquellas relaciones establecidas entre los objetos
conocidos y los desconocidos.
3. Los valores posibles que pueden tomar los objetos desconocidos.

Especificaciones: despus de entender totalmente el problema a resolver


(lo cual se consigue con la etapa del dialogo), se debe realizar una
especificacin del algoritmo que permita encontrar su solucin. Un
algoritmo que no este claramente especificado puede ser interpretado de
diferentes maneras y al disearlo se puede terminar con un algoritmo que
no sirve para solucionar el problema.
La especificacin de un algoritmo se hace mediante la descripcin calara y
precisa de:
1. Las entradas que algoritmo recibir.
2. Las salidas que algoritmo proporcionara.
3. La dependencia que mantendr las salidas obtenidas con la entrada

recibida.
Divisin: en el que a partir de la especificacin del algoritmo se divide el
proceso (algoritmo en abstracto) en varios subprocesos hasta llegar al nivel
de instruccin. Durante el proceso de divisin se determina la estructura de
6

control adecuada, ya sea secuencia, seleccin, repeticin, asignacin,


lectura o escritura, que se puede asociar con cada subproceso obtenido.

Definicin de abstraccin: es en el que se revisa que porciones del


algoritmo se repiten o son muy utilizadas y con las cuales se construye
funciones y procedimientos.

Codificacin: cuando ya se ha diseado completamente el algoritmo y se


tiene escrito en algn esquema de representacin (pseudocdigo o
diagrama de flujo), el siguiente paso es codificarlo en el lenguaje de
programacin definido para tal fin.

Prueba y verificacin: la prueba de escritorio es una herramienta til para


entender que hace un determinado algoritmo, o para verificar que un
algoritmo cumple con la especificacin sin necesidad de ejecutarlo.

Presentacin: detallan la solucin, el proceso que siguieron para lograrla,


sus caractersticas tcnicas (especificaciones, rendimientos, etc) y justifican
las ventajas que presenta.

Objetivo 6 diseo de algoritmos usando tcnicas de programacin estructurada.


Tcnicas de programacin.
Para problemas complejos de diseo de algoritmos implica un aumento
considerable de la representacin grafica, una reduccin de la legibilidad del
algoritmo y un aumento de la memoria fsica de la computadora ocupada por el
programa.
La programacin estructurada es una tcnica para escribir programas
(programacin de computadora) de manera clara. Para ello se utilizan nicamente
tres estructuras: secuencia, seleccin e iteracin; siendo innecesario el uso de la
instruccin o instrucciones de transferencia incondicional (GOTO, EXIT
FUNCTION, EXIT SUB o mltiples RETURN).
7

Uno de los mtodos ms conocidos para resolver un problema es dividirlo


en problemas ms pequeos, llamados subproblemas. De esta manera, en lugar
de resolver una tarea compleja y tediosa, resolvemos otras ms sencillas y a partir
de ellas llegamos a la solucin. Esta tcnica se usa mucho en programacin ya
que programar no es ms que resolver problemas, y se le suele llamar diseo
descendente, metodologa del divide y vencers o programacin top-down.
Es evidente que si esta metodologa nos lleva a tratar con subproblemas,
entonces tambin tengamos la necesidad de poder crear y trabajar con
subprogramas para resolverlos. A estos subprogramas se les suele llamar
mdulos, de ah viene el nombre de programacin modular. En Pascal
disponemos de dos tipos de mdulos: los procedimientos y las funciones.

Un procedimiento es un subprograma que realiza una tarea especfica. Para


invocarlo, es decir, para hacer que se ejecute, basta con escribir su nombre en el
cuerpo de otro procedimiento o en el programa principal. Pero, hay que tener muy
en cuenta que su declaracin debe hacerse antes de que sea llamado por otro
mdulo.
Despus de estudiar los procedimientos de Pascal y las diferencias entre
parmetros por valor y por referencia, es hora de tratar otro aspecto clave en la
programacin modular: la distincin entre variables globales y locales.

Objetivo 7 robustez del algoritmo


Quiere decir que un algoritmo debe contemplar todas las posibles facetas
del problema que queremos resolver, al elaborar un algoritmo no se nos debe
escapar ningn detalle que provoque un funcionamiento malo nuestro algoritmo. Si

logramos construir un algoritmo robusto, cualquier giro inesperado del problema


ser controlado por el algoritmo, es decir, debe ser flexible a cambios.
Objetivo 8 estructura general de un programa pascal.
QUE ES PROGRAMACION EN PASCAL?

PASCAL: Es un lenguaje de Alto Nivel y propsito general desarrollado por


el profesor. suizo Niklaus WIRTH en 1968.

CARACTERSTICAS: Excelente herramienta para aprender programacin


Es un lenguaje de propsito general Lenguaje procedural (imperativo,
orientado a rdenes) Lenguaje estructurado (soporta while, for y repeat. No
necesita goto) Lenguaje recursivo Gran riqueza de tipos de datos
predefinidos y definidos por el usuario Cdigos ejecutables rpidos y
eficientes.

TURBO PASCAL: Lanzado en 1983 por BORLAND International.

CARACTERSTICAS ADICIONALES: Entorno integrado de desarrollo,


Editor de texto, Grficos, Gestin de archivos, Compilacin
independiente, Gestin de proyectos, Enteros de gran precisin,
Programacin orientada a objetos (Biblioteca de objetos).

LAS CINCO SECCIONES DE DECLARACIN -Label, Const, Type y


Procedure y/o Function, as como la clusula Uses y Program, no tiene que
estar presentes en todos los programas. Turbo Pascal es muy flexible al
momento de escribir las secciones de declaracin, ya que se pueden hacer
en cualquier orden (en Pascal estndar ISO si se requiere este orden). Sin
embargo es conveniente seguir el orden establecido, le evitar futuros
problemas.

IDENTIFICADORES

En la mayora de los programas de computador, es necesario manejar


datos de entrada o de salida, los cuales necesitan almacenarse en la
memoria principal del computador en el tiempo de ejecucin. Para poder
manipular dichos datos, necesitamos tener acceso a las localidades de
memoria donde se encuentran almacenados; esto se logra por medio de los
nombres de los datos o IDENTIFICADORES.

LAS REGLAS PARA FORMAR LOS IDENTIFICADORES EN PASCAL


SON LAS SIGUIENTES :
1. Pueden estar compuestos de caracteres alfabticos, numricos y el

carcter de subrayado ( _ ).
2. Deben comenzar con un carcter alfabtico o el carcter de
subrayado.
3. Puede ser de cualquier longitud (slo los 63 primeros caracteres son
significativos
4. No se hace distincin entre maysculas y minsculas.
5. No se permite el uso de los IDENTIFICADORES RESERVADOS en los
nombres de variables, constantes, programas o sub-programas.

IDENTIFICADORES VLIDOS

Nombre

Cadena

Edad_ Mxima

X_Y_Z

Etiqueta2

IDENTIFICADORES NO VLIDOS
10

Num&Dias : carcter & no vlido

X nombre : contiene un blanco

begin : es una palabra reservada

eje@s : carcter @ no vlido

ELECCIN DE IDENTIFICADORES
La eleccin de identificadores permite una mejor lectura y
comprensin de un programa. No es aconsejable utilizar identificadores que
no sugieran ningn significado.

DECLARACIN DE ETIQUETAS
En el caso de que sea necesaria la utilizacin de la instruccin Goto,
deber marcarse con una etiqueta la lnea a donde desea enviarse el
control de flujo del programa. La declaracin deber encabezarse con el
identificador reservado Label, seguido por la lista de etiquetas separadas
por comas y terminada por un punto y coma.
Pascal estndar slo permite etiquetas formadas por nmeros de 1 a
4 dgitos.
Turbo-Pascal permite la utilizacin de nmeros y/o cualquier
identificador, excepto los identificadores reservados. Su uso no est
recomendado y en este tutorial no se emplear nunca.

DEFINICIN DE CONSTANTES
En la definicin de constantes se introducen identificadores que sirven
como sinnimos de valores fijos.
El identificador reservado Const debe encabezar la instruccin,
seguido por una lista de asignaciones de constantes.

11

Cada asignacin de constante debe consistir de un identificador


seguido por un signo de igual y un valor constante, como se muestra a
continuacin:
Const

valor_maximo =255;

precision

palabra_clave='Tutankamen';

=0.0001;

encabezado ='NOMBRE DIRECCION TELEFONO


Un valor constante puede consistir de un nmero (entero o real), o de una
constante de caracteres. La constante de caracteres consiste de una secuencia de
caracteres encerrada entre apstrofes ( ' ), y, en Turbo-Pascal, tambin puede
formarse concatenndola con caracteres de control ( sin separadores ), por
ejemplo :
'Teclee su opcin ==>'^G^G^G
Esta constante sirve para desplegar el mensaje :
Teclee su opcin ==>
Y a continuacin suena el timbre tres veces. Las constantes de caracteres
pueden estar formadas por un solo carcter de control, p.ejm:
hoja nueva = ^L
Existen dos notaciones para los caracteres de control en Turbo Pascal, a
saber:
1. El smbolo # seguido de un nmero entero entre 0 y
255 representa el carcter al que corresponde dicho valor
decimal en el cdigo ASCII.
12

2. El smbolo ^ seguido por una letra, representa el


correspondiente carcter de control.
Ejemplos:

#12 representa el valor decimal 12 (hoja nueva o


alimentacin de forma).

#$1B representa el valor hexadecimal 1B (escape).

^G representa el carcter del timbre o campana.

^M representa el carcter de retorno de carro.

Adems de las constantes literales para los tipos integer y real


con representacin decimal y hexadecimal, y las constantes literales
para el conjunto de caracteres ASCII, ms los caracteres especiales
(no incluidos en el conjunto estndar del ASCII)

Aparte de de identificadores, los datos deben tener asignado


algn tipo que indique el espacio de memoria en que se almacenarn
y que al mismo tiempo evita el error de tratar de guardar un dato en un
espacio insuficiente de memoria. Un tipo de dato en Pascal puede ser
cualquiera de los tipos predefinidos ( integer, real, byte, boolean,
char ), o algn otro definido por el programador en la parte de
definicin de tipos.
Los tipos definidos por el programador deben basarse en los tipos
estndar predefinidos, para lo cual, debe iniciar con el identificador reservado
Type, seguido de una o ms asignaciones de tipo separadas por punto y coma.
Cada asignacin de tipo debe consistir de un identificador de tipo, seguido por un
signo de igual y un identificador de tipo previamente definido.
La asignacin de tipos a los datos tiene dos objetivos principales:
13

1. Detectar errores de operaciones en programas.


2. Determinar cmo ejecutar las operaciones.

Pascal se conoce como un lenguaje "fuertemente tipificado" (strongly-typed)


o de tipos fuertes. Esto significa que todos los datos utilizados deben tener sus
tipos declarados explcitamente y el lenguaje limita la mezcla de tipos en las
expresiones
PROCEDIMIENTOS Y FUNCIONES DE CADENA
PROCEDIMIENTO FUNCION
Delete
Concat
Insert
Copy
Str
Length
Val
Pos
Delete (s, posicin, nmero)
Insert (cad1, s, posicin) cad1: Cadena a insertar.
s: Cadena donde se inserta.
Posicin carcter a partir del cual se inserta
Str (valor, s)
Valor expresin numrica
S cadena
Val (S, variable, cdigo)
S cadena
Variable: variable de tipo entero o real
CDIGO: Si la conversin ha podido ser efectuada, toma el valor cero; en
caso contrario contiene la primera posicin del primer carcter de la cadena S que
impide la conversin y en ese caso la variable no queda definida.
ALGORITMO: PASOS PRECISOS, DEFINIDOS Y FINITOS.
HERRAMIENTAS PARA DISEO DE ALGORITMOS:
DIAGRAMA DE FLUJO: Representacin grfica.
PSEUDOCODIGO: Escritura en un lenguaje cercano al lenguaje natural.
NASSI-SCHNEIDERMAN
Concat (S1, S2,..,Sn)
Copy (s, posicin, nmero)
S cadena (fuente)
Posicin: Primer carcter a extraer (tipo entero)
Nmero: Total de caracteres a extraer (tipo entero)

14

Funcin Lenght: Proporciona la longitud lgica de una cadena de caracteres


y devuelve un valor entero.
FORMATO:
Length (s)
S expresin tipo cadena
Pos (cadena buscada, cadena fuente)
ALGORITMO SUMA
VARIABLE A, B, C; ENREROS
INICIO
LEER A
LEER B
C=A+B
ESCRIBIR C
FIN
ESTRUCTURA DE UN PROGRAMA PASCAL
PROGRAM IDENTIFICAOR; { cabecera opcional
en Turbo Pascal}
USES. IDENTIFICADORES
LABEL.. LISTA DE ETIQUETAS; {seccin de
etiquetas}
CONST. DEFINICIONES DE CONSTANTES
TYPE. DECLARACION DE TIPOS DE
DATOS DEFINIDOS POR EL
USUARIO
VAR DECLARACION DE VARIABLES
-------------------------------------------------------------------------PROCEDURE.DEFINICIONES DE PROCEDIMIENTOS
FUNETION DEFINICIONES DE FUNCIONES
-------------------------------------------------------------------------BEGIN. {CUERPO DEL PROGRAMA}
SENTENCIAS
END.
Usar punto y coma al final de cada sentencia. Se omite punto y coma si va
seguido de la palabra until o end. Se debe omitir el punto y coma si sigue de la
palabra else excepto en caso de
"CASE OF"
USAR INDENTACION
15

BEGIN
LEER B;
A:=B;
ESCRIBIR A;
END.
Colocar comentarios para la documentacin. Para ello pascal le
ofrece el uso de "{"

"} y asteriscos " ( * " " *) ".

PALABRAS RESERVADAS: BEGIN, END, READ, IF, UNTIL,


ELSE, REPEAT, UNTIL, WITH, WHILE, THEN
IDENTIFICADORES: PALABRAS QUE REPRESENTAN
OBJETOS, DEFINIR SI SON VALIDOS O NO:
DATOS PERSONALES
SALARIO 1
1 PEDIR
ELECTA ABRIL
BEDA @ GAMIL
TOTALVENTA
INTEGER
CARACTERES ESPECIALES: COMA, PUNTO Y COMA,
APOSTROFE, SIGNO IGUAL, MENOR QUE, MAYOR QUE
CONSTANTES: VALOR QUE NO CAMBIA DURANTE LA
EJECUCION DE UN PROGRAMA.
VARIABLES: DATOS QUE SI CAMBIAN DE VALOR DURANTE
LA EJECUCION DEL PROGRAMA.
ETIQUETAS.
EXPRESIONES: UNO O MAS OPERANDOS CONBINADOS
CON OPERADORES.. EJEM: A+5, VALE< FRIO, SEXO:= "F" ,
(3*5)**2
PRECEDENCIA DE OPERADORES:
1.-LOGICOS 2.- ARITMETICOS (**, *, +, -)

3.-

RELACIONAL.
DATOS: expresin general que describe los objetos con los
cuales trabaja una computadora.
DATOS SIMPLES:

NUMERICOS:

16

ENTEROS: INTEGER, WORD, LOGINT, SHORTINT,


BYTE
REALES: REAL, SIMPLE, DOUBLE, EXTENDED,
COMP
LOGICOS: BOOLEAN
CARCTER (CHAR, STRING)
DEPURACION DOCUMENTACION Y MANTENIMIENTO
DEPURACION
1. ERRORES DE COMPILACION
2. ERRORES DE EJECUCION
3. ERRODES DE LOGICA
DOCUMENTACION
1. DOCUMENTACION INTERNA
2. DOCUMENTACION EXTERNA
MANTENIMIENTO
1. TIEMPO DE VIDA UTIL
Errores en turbo pascal.
Mensaje de error de compilacin.
Si tiene lugar un error de compilacin mientras se est compilando dentro del
IDE, Turbo Pascal hace activa la ventana de edicin y sita el cursor en el punto
del cdigo fuente donde se produjo el error.
Si el error tiene lugar mientras se usa el compilador de lnea de comandos,
Turbo Pascal muestra el mensaje de error y el nmero de la lnea de cdigo
fuente; un circunflejo (^) en la lnea mostrada indica la localizacin del error.

Mensajes de Error en Tiempo de Ejecucin:


Si el programa genera un error en tiempo de ejecucin, se parar y aparecer este
mensaje:
Run-time error at
donde nnn es el nmero del error en tiempo de ejecucin
xxxx:yyyy es la direccin del error en tiempo de ejecucin.

17

Mensajes de Error de Compilacin.


1 Out of memory significa Memoria Agotada
2 Identifier expected significa Se esperaba un identificador
3 Unknown identifier significa Identificador desconocido
4 Duplicate identifier significa Identificador duplicado
5 Syntax error significa Error de sintaxis
6 Error in real constant significa Error en constante real
7 Error in integer constant significa Error en constante entera
8 String constant exceeds line significa Constante de cadena excede la lnea
10 Unexpected end of file significa Fin de archivo no esperado
11 Line too long significa Lnea demasiado larga
12 Type identifier expected significa Se esperaba identificador de tipo
13 Too many open files significa Demasiados archivos abiertos
14 Invalid file name significa Nombre de archivo no vlido
15 File not found significa Archivo no encontrado
16 Disk full significa Disco lleno
17 Invalid compiler directive significa Directiva de compilacin no vlida
18 Too many files significa Demasiados archivos
19 Undefined type in pointer def significa Tipo no identificado en definicin de
puntero
20 Variable identifier expected significa Se esperaba identificador de variable
21 Error in type significa Error en tipo
22 Structure too large significa Estructura demasiado grande
23 Set base type out of range significa Tipo base del conjunto fuera de rango
24 File components may not be files or objects significa Componentes de archivos
no deben ser archivos u objetos
25 Invalid string length significa Largo de cadena no vlido
26 Type mismatch significa Tipos no coinciden
27 Invalid subrange base type significa Tipo subrango base no vlido
28 Lower bound greater than upper bound significa Lmite inferior es ms grande
18

que el lmite superior


29 Ordinal type expected significa Se esperaba tipo ordinal
30 Integer constant expected significa Se esperaba constante entera
31 Constant expected significa Se esperaba una constante
32 Integer or real constant expected significa Se esperaba una constante entera o
real
33 Pointer Type identifier expected significa Se esperaba identificador de tipo de
puntero
34 Invalid function result type significa Tipo de resultado para la funcin no vlido
35 Label identifier expected significa Se esperaba identificador de etiqueta
36 BEGIN expected significa Se esperaba BEGIN
37 END expected significa Se esperaba END
38 Integer expression expected significa Se esperaba una expresin entera
39 Ordinal expression expected significa Se esperaba una expresin ordinal
40 Boolean expression expected significa Se esperaba una expresin booleana
41 Operand types do not match significa Tipos de operadores no coinciden
42 Error in expression significa Error en la expresin
43 Illegal assignment significa Asignacin ilegal
44 Field identifier expected significa Se esperaba identificador de campo
45 Object file too large significa Archivo de objeto demasiado grande
46 Undefined external significa External no definido
47 Invalid object file record significa Registro de archivo en objeto no vlido
48 Code segment too large significa Segmento de cdigo demasiado grande
49 Data segment too large significa Segmento de datos demasiado grande
50 DO expected significa Se esperaba DO
51 Invalid PUBLIC definition significa Definicin PUBLIC no vlida
52 Invalid EXTRN definition significa Definicin EXTRN no vlida
53 Too many EXTRN definitions significa Demasiadas definiciones EXTRN
54 OF expected significa Se esperaba OF
55 INTERFACE expected significa Se esperaba INTERFACE
56 Invalid relocatable reference significa Referencia relocalizable no vlida
19

57 THEN expected significa Se esperaba THEN


58 TO or DOWNTO expected significa Se esperaba TO o DOWNTO
59 Undefined forwarrd significa Forward no definido
61 Invalid typecast significa Cambio de tipo invlido
62 Division by zero significa Divisin por cero
63 Invalid file type significa Tipo de archivo no vlido
64 Cannot read or write variables of this type significa No se pueden leer o escribir
este tipo de variables
65 Pointer variable expected significa Se esperaba una variable de puntero
(pointer)
66 String variable expected significa Se esperaba una variable de cadena (string)
67 String expression expected significa Se esperaba una expresin de cadena
68 Circular unit reference significa Referencia circular entre unidades
69 Unit name mismatch significa El nombre de la unidad no coincide
70 Unit version mismatch significa La versin de la unidad no coincide
71 Internal stack overflow significa Desbordamiento interno de la pila
72 Unit file format error significa Error en el formato de la unidad
73 IMPLEMENTATION expected significa Se esperaba IMPLEMENTATION
74 Constant and case types do not match significa El tipo en el CASE y la
constante no coinciden
75 Record or object variable expected significa Se esperaba una variable objeto o
registro
76 Constant out of range significa Constante fuera de rango
77 File variable expected significa Se esperaba una variable de archivo
78 Pointer expression expected significa Se esperaba una expresin de punteros
79 Integer or real expression expected significa Se esperaba una expresin entera
o real
80 Label not within current block significa Etiqueta no est dentro del bloque actual
81 Label already defined significa Etiqueta ya definida
82 Undefined label in peeding statement part significa Etiqueta no definida en la
parte de la sentencia anterior
20

83 Invalid @ argument significa Argumento para @ invlido


84 UNIT expected significa Se esperaba UNIT
85 "; " expected significa Se esperaba ";"
86 ":" expected significa Se esperaba ":"
87 "," expected significa Se esperaba ","
88 "(" expected significa Se esperaba "("
89 ")" expected significa Se esperaba ")"
90 "=" expected significa Se esperaba "="
91 ":=" expected significa Se esperaba ":="
92 "[" or "(." expected significa Se esperaba "[" o "(."
93 "]" or ".)" expected significa Se esperaba "]" o ".)"
94 "." expected significa Se esperaba "."
95 ".." expected significa Se esperaba ".."
96 Too many variables significa Demasiadas variables
97 Invalid FOR control variable significa Variable de control en el FOR no vlida
98 Integer variable expected significa Se esperaba una variable entera
99 Files and procedure types are not allowed here significa Tipos archivos o
procedimientos no se permiten aqu
100 String length mismatch significa Tamao de la cadena no coincide
101 Invalid ordering of fields significa Orden de los campos invlido
102 String constant expected significa Se esperaba constante de cadena
103 Integer or real variable expected significa Se esperaba una variable entera o
real
104 Ordinal variable expected significa Se esperaba una variable ordinal
105 INLINE error significa Error en INLINE
106 Character expression expected significa Se esperaba expresin de caracteres
107 Too many relocation items significa Demasiados items de relocalizacin
108 Overflow in arithmetic operation significa Desbordamiento en operacin
aritmtica
109 No enclosing FOR, WHILE or REPEAT statement significa Sentencias FOR,
WHILE o REPEAT no cerradas
21

110 Debug information table overflow significa Desbordamiento en la tabla de


informacin de depuracin
112 CASE constant out of range significa Constante CASE fuera de rango
113 Error in statement significa Error en la sentencia
114 Cannot call an interrupt procedure significa No se puede llamar a un
procedimiento de interrupcin
116 Must be in 8087 mode to compile this significa Debe estar en modo 8087 para
compilar esto
117 Target address not found significa Direccin de destino no encontrada
118 Include files are not allowed here significa Archivos incluidos no se premiten
aqu
119 No inherited methods are accessible here significa Ningn mtodo heredado
se permite aqu
121 Invalid qualifier significa Calificador no vlido
122 Invalid variable referentence significa Referencia a variable no vlida
123 Too many symbols significa Demasiados smbolos
124 Statement part too large significa Parte ejecutable demasiado grande
126 Files must be var parameters significa Archivos deben ser parmetros var
127 Too many conditional symbols significa Demasiados smbolos condicionales
128 Misplaced conditional directive significa Directiva condicional fuera de lugar
129 ENDIF directive missing significa No se encontr la directiva ENDIF
130 Error in initial conditional defines significa Error en el defines condicional inicial
131 Header does not match previous definition significa Cabecera no coincide con
la definicin previa
133 Cannot evaluate this expression significa No se puede evaluar esta expresin
134 Expression incorrectly terminated significa Expresin incorrectamente
terminada
135 Invalid format specifier significa Especificador de formato no vlido
136 Invalid indirect reference significa Referencia indirecta no vlida
137 Structured variables are not allowed here significa Variables de estructura no
se permiten aqu
22

138 Cannot evaluate without System unit significa No se puede evaluar sin la
unidad System
139 Cannot access this symbol significa No se puede acceder a este smbolo
140 Invalid floating point operation significa Operacin de punto flotante no vlida
141 Cannot compile overlays to memory significa No se pueden compilar overlays
en memoria
142 Pointer or procedural variable expected significa Se esperaba una variable de
puntero o procedimiento
143 Invalid procedure or function reference significa Referencia a procedimiento o
funcin no valida
144 Cannot overlay this unit significa No se puede convertir en overlay esta unidad
145 Too many nested scopes significa Demasiados mbitos de anidacin
146 File access denied significa Acceso a archivo denegado
147 Object type expected significa Se esperaba un tipo objeto
148 Local object types are not allowed significa Tipos de objetos locales no se
permiten aqu
149 VIRTUAL expected significa Se esperaba VIRTUAL
150 Method identifier expected significa Se esperaba identificador de mtodo
151 Virtual constructors are not allowed significa Constructores virtuales no se
permiten aqu
152 Constructor identifier expected significa Se esperaba identificador de
contructor
153 Destructor identifier expected significa Se esperaba identificador de destructor
154 Fail only allowed within constructors significa Fail solo se permite dentro de los
constructores
155 Invalid combination of opcode and operands significa Combinacin de opcode
y operandos no vlida
156 Memory reference expected significa Se esperaba referencia a memoria
157 Cannot add or subtract relocatable symbols significa No se pueden sumar o
restar smbolos relocalizables
23

158 Invalid register combination significa Combinacin de registros no vlida


159 286/287 instructions are not enabled significa No estn habilitadas las
intrucciones 286/287
160 Invalid symbol reference significa Referencia a smbolo no vlida
161 Code generation error significa Error de generacin de cdigo
162 ASM expected significa Se esperaba ASM
163 Duplicate dynamic method index significa ndice a mtodo dinmico duplicado
164 Duplicate resource identifier significa Identificador de recurso duplicado
165 Duplicate or invalid export index significa ndice de exportacin duplicado o no
vlido
166 Procedure or function identifier expected significa Se esperaba identificador de
funcin o procedimiento
167 Cannot export this symbol significa No se puede exportar este smbolo
168 Duplicate export name significa Nombre de exportacin duplicado
169 Executable file header too large significa Encabezado del archivo ejecutable
demasiado grande
170 Too many segments significa Demasiados segmentos

Mensajes de Error en Tiempo de Ejecucin


1 Invalid function number significa Nmero de funcin invlido
2 File not found significa Archivo no encontrado
3 Path not found significa Camino no encontrado
4 Too many open files significa Demasiados archivos abiertos
5 File access denied significa Acceso al archivo denegado
6 Invalid file handle significa Manejador de archivo invlido
12 Invalid file access code significa Cdigo de acceso al archivo invlido
15 Invalid drive number significa Nmero de dispositivo invlido
16 Cannot remove current directory significa No se puede eliminar el directorio
actual
24

17 Cannot rename across drives significa No se puede renombrar en diferentes


dispositivos
18 No more files significa No ms archivos
100 Disk read error significa Error de lectura en disco
101 Disk write error significa Error de escritura en disco
102 File not assigned significa Archivo no asignado
103 File not open significa El archivo no est abierto
104 File not open for input significa El archivo no est abierto en modo lectura
105 File not open for output significa El archivo no est abierto en modo escritura
106 Invalid numeric format significa Formato numrico invlido
150 Disk is write- protected significa El disco est protegido contra escritura
151 Bad drive request struct length significa Tamao erroneo en la estructura de
peticin al dispositivo
152 Drive not ready significa Dispositivo no est preparado
154 CRC error in data significa Error de CRC en los datos
156 Disk seek error significa Error de bsqueda en disco
157 Unknown media type significa Tipo de medio desconocido
158 Sector Not Found significa Sector no encontrado
159 Printer out of paper significa Impresora sin papel
160 Device write fault significa Fallo de escritura en dispositivo
161 Device read fault significa Fallo de lectura en dispositivo
162 Hardware failure significa Fallo de hardware
200 Division by zero significa Divisin por cero
201 Range check error significa Error en la comprobacin de rango
202 Stack overflow error significa Desbordamiento de pila
203 Heap overflow error significa Desbordamiento de montculo
204 Invalid pointer operation significa Operacin de puntero invlida
205 Floating point overflow significa Desbordamiento de punto flotante
206 Floating point underflow significa Subdesbordamiento de punto flotante
207 Invalid floating point operation significa Operacin de punto flotante invlida
208 Overlay manager not installed significa Administrador de overlay no instalado
25

209 Overlay file read error significa Error de lectura en archivo overlay
210 Object not initialized significa Objeto no inicializado
211 Call to abstract method significa Llamada a mtodo abstracto
212 Stream registration error significa Error de registracin de stream
213 Collection index out of range significa ndice de coleccin fuera de rango
214 Collection overflow error significa Error de desbordamiento en coleccin
215 Arithmetic overflow error significa Error de desbordamiento aritmtico
216 General Protection fault significa Fallo de proteccin general

Programacin en pascal del caso planteado.

program TransitoNacional;
uses crt,dos;
const
type

max = 1; {Cantidad Maxima de Registros}


{Tipo de registro para los Vehiculos}
transito
=
record
placa
:
string; {Matricula del Vehiculo}
numpax
:
integer; {Numero de Pasajeros}
alcabala
:
string[20]; {Alcabala}
tipoveh
:
integer; {Tipo de Vehiculo}
dia,mes
:
integer; {dia y mes}
ano
:
integer; {ano}
vehiculoes
:
string; {Vehiculo entrada o Salida}
entidad
:
string; {Entidad}

end;
{tipo de array de registro}
tarray = array[1..max] of transito;
var
matricula: tarray;
26

i,d,c: integer;
procedure cargar;
var
opc : integer;
i,d : integer;
mat,op: char;
begin
clrscr;
for i:= 1 to max do
begin
clrscr;
writeln('Sistema de Registro de Vehiculos');
writeln;
writeln('Fecha
:');
repeat
writeln('Dia
:');
gotoxy(19,4);
read(d);
if (d>0) and (d<32) then
begin
matricula[i].Dia:=d
end
else
begin
writeln ('***** El dia debe estar entre 1 y 31*****');
op:=readkey;
end;
until ((d>0) and (d<32));
repeat
writeln('Mes
:');
gotoxy(19,8);
readln(d);
if (d>0) and (d<13) then
begin
matricula[i].Mes:=d
end
else
begin
writeln('***** El Mes debe estar entre 1 y 12*****');
op:=readkey;
end;
until ((d>0) and (d<13));
repeat
writeln('Ano
:');
gotoxy(19,12);
readln (d);
if (d>2015) and (d<2020) then
begin
matricula[i].Ano:=d
end
else
27

begin
writeln('***** El Ano debe estar entre 2015 and 2019*****');
op:=readkey;
end;
until ((d>2015) and (d<2020));
repeat
writeln('1: Particular / 2: Por Puesto / 3: Taxi / 4: Transporte
Publico');
writeln('Tipo de Vehiculo
:');
gotoxy(25,17);
readln(d);
if (d>0) and (d<5) then
begin
matricula[i].tipoveh:=d
end
else
begin
writeln('*****El Tipo De Vehiculo debe estar entre 1 y 4*****');
op:=readkey;
end;
until ((d>0) and (d<5));
writeln('Placa del Vehiculo (XXNNNXX)
:');
gotoxy(35,22);
readln(matricula[i].placa);
repeat
writeln('Numero de Pasajeros
: ');
gotoxy(35,23);
readln(d);
if (d>0) and (d<55) then
begin
matricula[i].numpax:=d
end
else
begin
writeln('***** El numero de pasajeros debe estar entre 1 y 54');
op:=readkey;
end;
until ((d>0) and (d<55));
writeln('Alcabala
: ');
gotoxy(48,27);
readln(matricula[i].alcabala);
writeln('Vehiculo Entrante o Saliente "E" "S" : ');
gotoxy(47,28);
readln(matricula[i].vehiculoes);
writeln('Entidad Federal
: ');
gotoxy(48,29);
readln(matricula[i].entidad);
end;
readkey;
end;
28

procedure buscar (len : integer);


var
Registro : string;
begin
clrscr;
writeln('Consulta por Placa de Vehiculos ');
writeln('Indique Matricula
:');
gotoxy(35,2);
readln(Registro);
for i:= 1 to max do
begin
if Registro = matricula[i].placa then
begin
clrscr;
writeln ('Sistema de Consulta de Vehiculos');
writeln ('Fecha :');
writeln('Dia
:');
gotoxy(11,3);
writeln(matricula[i].dia);
writeln('Mes
:');
gotoxy(12,4);
writeln(matricula[i].mes);
writeln('Ano
:');
gotoxy(12,5);
writeln(matricula[i].ano);
writeln('Tipo de Vehiculo:');
if matricula[i].tipoveh = 1 then
begin
gotoxy(18,6);
writeln('Particular');
end;
if matricula[i].tipoveh = 2 then
begin
gotoxy(18,6);
writeln('Por Puesto');
end;
if matricula[i].tipoveh = 3 then
begin
gotoxy(18,6);
writeln('Taxi');
end;
if matricula[i].tipoveh = 4 then
begin
gotoxy(18,6);
writeln('Transporte Publico');
end;
writeln('Placa del Vehiculo (XXNNNXX)
gotoxy(36,7);
writeln(matricula[i].placa);
29

:');

writeln('Numero de Pasajeros:');
gotoxy(23,8);
writeln(matricula[i].numpax);
writeln('Alcabala: ');
gotoxy(15,9);
writeln(matricula[i].alcabala);
writeln('Vehiculo Entrante o Saliente "E" "S"
gotoxy(42,10);
writeln(matricula[i].vehiculoes);
writeln('Entidad Federal : ');
gotoxy(25,11);
writeln(matricula[i].entidad);
writeln('presione una tecla para salir');
end;
if Registro <> matricula[i].placa then
begin
clrscr;
writeln('Matricula No encontrada');
writeln('presione una tecla para salir');
end;

end;

readkey;
end;
procedure eliminar;
var
Registro : string;
validar : string;
begin
clrscr;
writeln('Eliminar Registro de Vehiculos ');
writeln('Indique Matricula: (
) ');
readln(Registro);
for i:= 1 to max do
begin
if Registro = matricula[i].placa then
begin
clrscr;
writeln('Mantenimiento de Sistema');
matricula[i].placa := '';
writeln('presione una tecla para salir');
end;
if Registro <> matricula[i].placa then
begin
clrscr;
writeln('Matricula No encontrada');
writeln('presione una tecla para salir');
end;
end;
readkey;
30

:');

end;
procedure modificar;
var
Registro : string;
op: char;
begin
clrscr;
writeln('Modificacion de Datos Por Vehiculo ');
writeln('Indique Matricula:
');
gotoxy(22,2);
readln(Registro);
for i:= 1 to max do
begin
if Registro = matricula[i].placa then
begin
clrscr;
writeln('Fecha :');
repeat
writeln('Dia
:');
gotoxy(9,2);
readln(d);
if (d>0) and (d<33) then
begin
matricula[i].dia:=d
end
else
begin
writeln('*****El Dia debe estar entre 1 y 31*****');
op:=readkey;
end;
until ((d>0) and (d<33));
repeat
writeln('Mes
:');
gotoxy(10,6);
readln(d);
if (d>0) and (d<13) then
begin
matricula[i].mes:=d
end
else
begin
writeln('***** El mes debe estar entre 1 y 12*****');
op:=readkey;
end;
until ((d>0) and (d<13));
repeat
writeln('Ano
:');
gotoxy(11,10);
read(d);
if (d>2015) and (d<2020) then
begin
31

matricula[i].Ano:=d
end
else
begin
writeln ('*****El Ano debe estar entre 2015 y
2019*****');
op:=readkey;
end;
until ((d>2015) and (d<2020));
writeln('1: Particular / 2: Por Puesto / 3: Taxi / 4:
Transporte Publico');
writeln('Tipo de Vehiculo
:');
gotoxy(23,15);
readln(matricula[i].tipoveh);
writeln('Placa del Vehiculo (XXNNNXX)
: ');
gotoxy(37,16);
readln(matricula[i].placa);
repeat
writeln('Numero de pasajeros
: ');
gotoxy(34,17);
readln(d);
if (d>0) and (d<55) then
begin
matricula[i].numpax:=d
end
else
begin
writeln('***** El Numero de pasajeros debe estar entre 1
y 54*****');
op:=readkey;
end;
until ((d>0) and (d<55));
writeln('Alcabala
: ');
gotoxy(38,21);
readln(matricula[i].alcabala);
writeln('Vehiculo Entrante o Saliente "E" "S"
: ');
gotoxy(45,22);
readln(matricula[i].vehiculoes);
writeln('Entidad Federal
:');
gotoxy(40,23);
readln(matricula[i].entidad);
writeln('presione una tecla para salir');
end;
if Registro <> matricula[i].placa then
begin
clrscr;
writeln('Matricula No encontrada');
writeln('presione una tecla para salir');
end;
end;
Readkey;
end;
32

procedure reporteplaca;
var
i,d:integer;
registro, p:string;
begin
clrscr;
gotoxy(10,10);
write('Indique la placa a buscar:
readln(p);
for i:= 1 to max do
if (matricula[i].placa=p) then
begin
clrscr;
write('*******matricula
Entidad*******');
gotoxy(12,3+i);
write(matricula[i].placa);

');

pasajeros

alcabala

gotoxy(26,3+1);
write(matricula[i].numpax);
gotoxy(38,3+1);
write(matricula[i].alcabala);
gotoxy(48,3+i);
write(matricula[i].vehiculoes);
gotoxy(55, 3+i);
write(matricula[i].entidad);
gotoxy(10,18);
write('***** Presione una tecla para salir*****');
readkey;
clrscr;
end;
end;

procedure reportealcabala;
var
i,d:integer;
registro,p:string;
begin
clrscr;
gotoxy(10,10);
write('Indique la alcabala a buscar:
readln(p);
for i:= 1 to max do
if (matricula[i].alcabala=p) then
begin
33

');

E/S

clrscr;
write('*******alcabala
pasajeros
Entidad*******');
gotoxy(12,3+i);
write(matricula[i].alcabala);

matricula

E/S

gotoxy(26,3+1);
write(matricula[i].numpax);
gotoxy(38,3+1);
write(matricula[i].placa);
gotoxy(48,3+i);
write(matricula[i].vehiculoes);
gotoxy(55, 3+i);
write(matricula[i].entidad);
gotoxy(10,18);
write('***** Presione una tecla para salir*****');
readkey;
clrscr;
end;
end;
procedure reporteentidad;
var
i,d:integer;
registro,p:string;
begin
clrscr;
gotoxy(10,10);
write('Indique la Entidad a buscar:
readln(p);
for i:= 1 to max do
if (matricula[i].entidad=p) then
begin
clrscr;
write('*******Entidad
pasajeros
matricula*******');
gotoxy(8,3+i);
write(matricula[i].entidad);
gotoxy(24,3+1);
write(matricula[i].numpax);
gotoxy(35,3+1);
write(matricula[i].alcabala);
gotoxy(45,3+i);
write(matricula[i].vehiculoes);
34

');

alcabala

E/S

gotoxy(55, 3+i);
write(matricula[i].placa);
gotoxy(10,18);
write('***** Presione una tecla para salir*****');
readkey;
clrscr;
end;
end;
procedure menureporte;
var
tecla
:
char;
sal
:
boolean;
nnm
:
longint;
len
:
integer;
begin
sal
:= false;
repeat
clrscr;
writeln('
***** Reporte de Estadisticas *****');
writeln;
writeln('
A = Por Alcabala');
writeln('
P = Por Placa');
writeln('
E = Por Entidad');
writeln('
V = Volver');
writeln;
writeln('
<<< Elija Opcion >>>');
repeat
tecla := upcase(readkey);
until tecla in['A','P','E','V'];
clrscr;
case tecla of
'A' : reportealcabala;
'P' : reporteplaca;
'E' : reporteentidad;

'V' : sal := true;


end;
until sal = true;
end;

procedure menu;
var
tecla
:
char;
sal
:
boolean;
nnm
:
longint;
35

len
begin
sal
repeat

integer;

:=

false;

clrscr;
writeln('
***** Menu *****');
writeln;
writeln('
I = Incluir');
writeln('
C = Consultar');
writeln('
M = Modificar');
writeln('
E = Eliminar');
writeln('
R = Reporte de Estadisticas ');
writeln('
S = Salir');
writeln;
writeln('
<<< Elija Opcion >>>');
repeat
tecla := upcase(readkey);
until tecla in['I','C','M','E','R','S'];
clrscr;
case tecla of
'I' : cargar;
'C' : buscar(len);
'E' : Eliminar;
'M' : modificar;
'R' : menureporte;
{'M' : begin
write('
Entre Num. modificar: ');
readln(nnm);
modificadatos(nnm);
end;
'E' : begin
write('
Entre Num. eliminar : ');
readln(nnm);
eliminapaciente(nnm);
end;
'R' : begin
write('
Entre Num. reporte : ');
readln(nnm);
reporte(nnm);
end;
}
'S' : sal := true;
end;
until sal = true;
end;
begin

end.

clrscr;
i:= 1;
menu;

36

Conclusin

El mejor de los propsitos de programacin en Pascal es que ensea buenas


formas de programacin, con lo cual se utiliza mucho en el aprendizaje, por todos
los motivos nominados anteriormente, por su sencillez, su estructuracin y su
facilidad de lectura y entendimiento.
Existen varios dialectos locales de programacin en Pascal, entre ellas el
Turbo Pascal, el cual acepta instrucciones de Pascal.
Este programa permite al estudiante conocer de una forma ligera y sencilla la
programacin, este permite corregir errores que pueda contener el algoritmo

37

desarrollado, llevando la programacin de cualquier problema a la exactitud y a


logro del mismo.
El Pascal ofrece muchas ms posibilidades, como por ejemplo la definicin
de tipos por el usuario, o el tipo Set (conjunto), de gran inters dado que no
aparecen en la mayora de los lenguajes. Otro tipo a destacar es el denominado
puntero.
Es un lenguaje que se utiliza y se va modernizando conforme al tiempo.
Es un lenguaje que se utiliza y se va modernizando conforme al tiempo, es
una herramienta, para crear programas de ayuda para comprender algunos signos
diferentes a los que estamos acostumbrados.

Bibliografas

Universidad Nacional Abierta, Computacin


Pablo Grech, Carlos Lameda, Caracas UNA, 1997
Estudios profesionales I

38

39

Вам также может понравиться