Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Práctica de Laboratorio
Estructuras de Control en Pascal
1. Requerimientos
- Tener EclipseGavab instalado, junto con la librería PFC señalada en el anterior
laboratorio.
- En caso de usar dispositivos móviles, descargar e instalar aplicaciones donde se use
lenguaje Pascal.
2. Marco Teórico
2.1. Acerca de Pascal y Pascal-FC
El lenguaje de programación Pascal es un lenguaje de alto nivel para el aprendizaje de
programación estructurada e iniciación de las estructuras de datos de todo tipo, desde
programas secuenciales como ordenar arreglos y archivos secuenciales, hasta procesos basados
en algoritmos recursivos, estructuras dinámicas de información y compiladores.
Por otra parte, el lenguaje Pascal-FC es una extensión de Pascal orientado al aprendizaje de
programación de procesos concurrentes que internamente contempla programa secuencial y
procesos hechos en lenguaje Pascal:
Durante la ejecución entre dos o más procesos concurrentes, la primera instrucción de uno de
ellos se ejecuta entre la primera y última instrucción del otro, donde cada instrucción son un
conjunto de programas secuenciales de un sistema informático, similar a la arquitectura de
procesamiento de bus de sistema de un ordenador de un solo procesador, o de un servidor de
varios procesadores, donde sus procesos pueden acceder a una memoria en común.
Suma +
Resta -
Multiplicación *
División /
div División de Enteros (21 div 10 = 2 )
Mod El resto de la división (21 Mod 10 = 1)
Operadores de Relación
Para el presente laboratorio se van a declarar primero variables, se emplea la expresión “:=” para
asignar a la variable un valor.
Para la entrada de datos, se van a utilizar los procedimientos read y readln, siendo este último
igual al primero, con la diferencia de generar un salto de línea, siendo la sintaxis:
read(a, b, c, …);
Cuando se va leyendo, se ingresa cada valor en una línea separada por al menos un espacio,
terminando con la presión de la tecla ENTER.
Para la salida de datos se van a utilizar los procedimientos write y writeln, siendo este último
igual al primero, con la diferencia de generar un salto de línea, siendo la sintaxis:
write(a, b, c, ….);
Todos los elementos que aparezcan en un solo write o writeln se escriben en una misma línea.
Su sintaxis es “If… else… then”, donde nunca se escribe “;” antes del “else” porque eso indicaría
el final de la sentencia “if”
Se recomienda que si se escriben dos “if”, no generara el mismo comportamiento que escribir
“If... else… then”, ya que al usar dos “if” analizara siempre la segunda condición, incluso en caso
de que se haya cumplido la primera.
Como se puede observar, las líneas que "dependen" de la anterior (como la orden que sigue a
un "if" o a un "else") están un poco más a la derecha, se aconseja no usar el símbolo de
tabulación delante del texto cuando se añade una “sangría” adicional, sino espacios en blanco,
y la cantidad de espacios que se suele emplear es 4.
Para intentar que el programa resulte más legible: los pasos que forman parte de cada "sentencia
compuesta" están tabulados una posición más a la derecha, para que sea fácil ver dónde
empieza y dónde termina el bloque.
También se pueden enlazar varias condiciones usando los operadores “and”, “or” y el “not”.
Seguidamente ingresar las sentencias por cada opción con la noción de que se cumplirá la
primera de ellas, en caso de que no coincida ninguna opción, se le añade la cláusula “else”.
Se aconseja que la "expresión" debe pertenecer a un tipo de datos con un número finito de
elementos, como "integer" o "char", pero no "real",
Por cada lista de instrucciones ejecutadas se le denomina iteración o bucle, y existen tres tipos
de sentencias repetitivas: ciclo “Desde… Hasta”, ciclo “Mientras” y ciclo “Repetir… Hasta”.
Donde el valor inicial debe ser menor al valor final, debido a que su valor aumentara en una
unidad.
Existen casos donde los bucles “for” pueden enlazar uno dentro de otros.
Si se requiere repetir más de una orden, también deberán de ser encerradas con las
instrucciones “begin” y “end”, convirtiendo las órdenes en una sentencia compuesta.
Como ejecuta un grupo de sentencias, no necesita de un “begin” y “end”, siendo una condición
opuesta al ciclo “While”.
No hace falta terminar con punto y coma la sentencia que va justo antes de "until", al igual que
3. Casos Prácticos
3.1. Caso 1:
De un vehículo que trabaja en una empresa de transportes, se necesita saber: Los litros de
gasolina consumidos en un viaje, la distancia en km. recorridos en todo el viaje, el dinero
que ha costado los litros de gasolina y el dinero gastado en mantenimiento.
Los resultados que se esperan obtener son: KM. recorridos por litro de combustible, el coste
total del viaje y el coste por KM. recorrido.
Se recuerda que la distancia total entre litros equivale a los kilómetros recorridos, y el costo
total entre la distancia total equivale al costo por kilómetro recorrido.
La impresión de resultados debe ser de hasta 2 o 4 decimales.
3.2. Caso 2:
Ingresar 3 números enteros e imprimir como mensaje que el número mayor es nivel 1, el
número en el medio es nivel 2 y el número menor es nivel 3.
Si existen números iguales, también deberá de emitir un mensaje indicando cuales números
son iguales.
3.3. Caso 3:
Generar un programa que escriba un rectángulo hueco, con la anchura y altura que
escoja el usuario, que tendrá asteriscos en el borde (primera y última fila, primera y
última columna) y espacios en blanco en el interior.
4. Bibliografía
- Teresa González de Lena Alonso, Isidoro Hernán Losada, Raquel Martínez Unanue,
Francisco Javier Nava García, Juan José Pantrigo Fernández, Maximiliano Paredes
Velasco, Antonio Sanz Montemayor, Introducción a la programación: problemas
resueltos en Pascal