lenguaje de prgramacion pascal

43
Lenguaje de programación Pascal Presentación de la unidad: El lenguaje de programación Pascal tiene una amplia difusión, particularmente en las Universidades. Fácil de aprender y de enseñar, este lenguaje fue concebido para ser un instrumento en la enseñanza de los conceptos de la programación y también facilitar el desarrollo de aplicaciones científicas y de negocios. El objetivo principal del curso es enseñar a resolver problemas a través de la técnica de desarrollo de algoritmos, lo que se logra en tres etapas: el análisis del problema, la especificación del algoritmo y, finalmente, la ejecución del programa en lenguaje Pascal. Estructura del texto: Este texto se ha diseñado para ser utilizado como material de estudio en cursos de introducción a la programación de computadoras, con duración de 36 horas pedagógicas. Su contenido aporta la habilidad de adquirir hábitos en la resolución de problemas y en la programación. Dichos hábitos son incalculables mediante el uso de ejemplos, la práctica frecuente y la interacción entre instructor y estudiante. Así mismo, se anima a los estudiantes a hacer un esbozo de la resolución de los problemas; describiendo primero cada paso del algoritmo y, después refinando cuidadosa y completamente cada uno de los pasos de manera individual. El texto está diseñado del tal manera que los alumnos puedan empezar a programar tan rápidamente como sea posible. Cada nuevo elemento del lenguaje Pascal se utiliza en la resolución de problemas de ejemplo a medida que van apareciendo. El uso de varios elementos del lenguaje Pascal estándar, es explicado detalladamente. Al final del texto, el estudiante encontrará una lista de problemas de programación. Aparecen también las soluciones de algunos de ellos. Presentación del libro Los temas que aborda este texto son: Diseños de algoritmos y lenguaje de programación Pascal. Los contenidos tratados en la primera Unidad son técnicas de desarrollo de algoritmos. La segunda Unidad nos muestra el editor del turbo Pascal 7.0. La tercera Unidad contienen las estructuras básicas para construir un programa en lenguaje Pascal y la última, la unidad IV contiene la estructura de datos necesarios para poder guardar datos y convertirlos en información útil para el usuario del programa y además subprogramas: funciones y procedimientos.

Upload: matt-cristo-vive-morales

Post on 23-Jun-2015

1.153 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Lenguaje de Prgramacion Pascal

Lenguaje de programación Pascal Presentación de la unidad: El lenguaje de programación Pascal tiene una amplia difusión, particularmente en las Universidades. Fácil de aprender y de enseñar, este lenguaje fue concebido para ser un instrumento en la enseñanza de los conceptos de la programación y también facilitar el desarrollo de aplicaciones científicas y de negocios. El objetivo principal del curso es enseñar a resolver problemas a través de la técnica de desarrollo de algoritmos, lo que se logra en tres etapas: el análisis del problema, la especificación del algoritmo y, finalmente, la ejecución del programa en lenguaje Pascal. Estructura del texto: Este texto se ha diseñado para ser utilizado como material de estudio en cursos de introducción a la programación de computadoras, con duración de 36 horas pedagógicas. Su contenido aporta la habilidad de adquirir hábitos en la resolución de problemas y en la programación. Dichos hábitos son incalculables mediante el uso de ejemplos, la práctica frecuente y la interacción entre instructor y estudiante. Así mismo, se anima a los estudiantes a hacer un esbozo de la resolución de los problemas; describiendo primero cada paso del algoritmo y, después refinando cuidadosa y completamente cada uno de los pasos de manera individual. El texto está diseñado del tal manera que los alumnos puedan empezar a programar tan rápidamente como sea posible. Cada nuevo elemento del lenguaje Pascal se utiliza en la resolución de problemas de ejemplo a medida que van apareciendo. El uso de varios elementos del lenguaje Pascal estándar, es explicado detalladamente. Al final del texto, el estudiante encontrará una lista de problemas de programación. Aparecen también las soluciones de algunos de ellos. Presentación del libro Los temas que aborda este texto son: Diseños de algoritmos y lenguaje de programación Pascal. Los contenidos tratados en la primera Unidad son técnicas de desarrollo de algoritmos. La segunda Unidad nos muestra el editor del turbo Pascal 7.0. La tercera Unidad contienen las estructuras básicas para construir un programa en lenguaje Pascal y la última, la unidad IV contiene la estructura de datos necesarios para poder guardar datos y convertirlos en información útil para el usuario del programa y además subprogramas: funciones y procedimientos.

Page 2: Lenguaje de Prgramacion Pascal

Unidad I

Lenguaje Pascal

Técnicas de desarrollo de algoritmos

Introducción El diseño de un algoritmo es el primer paso, a seguir por toda persona que desee aprender un lenguaje de programación. El presente módulo entrega las instrucciones básicas para la construcción de un algoritmo a través del Pseudo lenguaje (lenguaje materno). Objetivos Al término de la presente unidad usted estará en condiciones de: • Conocer los conceptos asociados al diseño de un algoritmo. • Analizar un problema. • Diseñar un algoritmo que permita resolver problemas computacionales.

Page 3: Lenguaje de Prgramacion Pascal

Programas La computadora es una herramienta poderosa. Los datos de entrada pueden almacenarse en la memoria y manejarse a velocidades excepcionalmente altas para producir resultados (información; salidas del programa). Podemos describirle a la computadora ciertas tareas para manejar los datos, presentándole una lista de instrucciones (llamada programa) que deben ser realizadas. Una vez que esta lista le ha sido proporcionada a la computadora, ésta puede llevar a cabo (ejecutar) dichas instrucciones. Al proceso de elaborar una lista de instrucciones (escribir un programa) se le llama programación. Escribir un programa computacional es similar a describir las reglas de un juego a personas que nunca lo han jugado, para que las apliquen. Para esto se requiere de un lenguaje de descripción entendible por todas las partes involucradas en la comunicación. Suele utilizarse como primera etapa el lenguaje propio del programador (pseudo lenguaje) y luego transcribir las instrucciones a un lenguaje de Programación, es decir, el que comunica a la computadora con el usuario. El primer paso en el diseño de un programa es escribir un algoritmo. Un algoritmo es una secuencia de instrucciones o pasos lógicos, bien definidos que ejecutados en un número finito de veces, permite resolver un problema computacional. Una instrucción: corresponde a un conjunto de caracteres que especifican una operación a realizar. En todo proceso en que nos enfrentamos a un problema que debe ser resuelto, es conveniente para optimizar nuestro trabajo, seguir una secuencia o en otras palabras resolver el problema por etapas. Cada una de estas etapas tiene un objetivo específico, pero todas ellas en conjunto nos permiten resolver el problema. Para aprender a programar se tendrá que hacer conciencia de alguna de las estrategias subyacentes de resolución del problema. Algunas de estas etapas son las siguientes: diseño, construcción, codificación, verificación y documentación. Las etapas anteriores deben ser realizadas en el mismo orden. Diseño: En esta etapa el programador se debe plantear un modelo que le permita dar solución al problema en cuestión. El modelo que se plantea no se debe expresar en términos de un lenguaje específico, refiriéndonos a un lenguaje de programación, sino a través de un Pseudo código. El diseño para su mejor elaboración se subdivide en los siguientes puntos: • Entender el problema: significa que el programador debe distinguir en forma clara y

precisa los datos que se dan, la información que se pide y además verificar o determinar

Page 4: Lenguaje de Prgramacion Pascal

si la información que se está pidiendo es posible obtenerla con los datos que han sido entregados, también debe considerar algunos supuestos.

• Estrategia de solución: una vez alcanzado el punto anterior el programador debe buscar

la forma de resolver el problema para lo cuál verificará si ha resuelto un problema similar anteriormente, de ser efectivo lo anterior debe ver la forma de cómo adecuar el problema que ya existe para resolver la nueva circunstancia. Si jamás ha resuelto un problema similar debe buscar la forma de resolverlo.

• Desarrollo de un modelo: cuando se habla de un modelo se hace referencia a una

representación apropiada al problema planteado. Por lo general los modelos que se aplican son de tipo matemático.

• Construcción: la etapa de construcción consiste en desarrollar un algoritmo que de

solución al problema, orientado a la estructura que debe poseer el programa.

Un algoritmo puede ser representado de varias formas: narrativa, diagrama de flujo, pseudo lenguaje. Está última tiene la ventaja de ser muy parecido a programar en algún lenguaje.

En este nivel se aplican transformaciones en forma sucesiva al algoritmo de tal forma de obtener niveles más refinados para lo cual existen algunas técnicas.

Codificación: consiste en transcribir las instrucciones escritas en Pseudo lenguaje a un determinado lenguaje de programación. Verificación: una vez escrito el programa en un editor del lenguaje de programación, se procede a ejecutar el programa y así verificar si se obtienen o no las salidas requeridas. Documentación: cuando un programa cumple con el objetivo planteado, es decir los resultados que se deseaban, el programador puede escribir un texto, que explique el desarrollo del programa y/o el modelo matemático, para poder ser entendido por terceras personas o para en el futuro ser modificado. También el programa se puede documentar a través de comentarios, mensajes que no serán ejecutados por la computadora. A continuación definiremos algunos términos que se utilizan en la construcción de un algoritmo. Datos: materia prima en bruto; las entradas del programa. Variable: es una unidad de memoria, que permite guardar en ella un valor. Existen variables de distintos tipos: entero, real, carácter, palabra, arreglo, matriz, etc. El identificador de una variable describe su nombre y su tipo.

Page 5: Lenguaje de Prgramacion Pascal

Estructuras básicas en la construcción de un algoritmo Dividiremos en tres tipos las estructuras a utilizar. I Estructuras de secuencia Son aquellas instrucciones que no involucran ninguna decisión, sino que indican tareas específicas y deben ser ejecutadas de acuerdo al orden en que son escritas. Lectura leer x permite ingresar desde teclado un valor, el cual será guardado en una

variable llamada "x". leer a, b permite leer en este caso dos valores, que serán guardadas en las variables

llamadas "a" y "b". Se separan con comas las variables a leer. Nota: Se utilizará la palabra inicio para comenzar un algoritmo y fin para terminarlo. Ejemplo: El siguiente es un algoritmo sin enunciado, luego no soluciona un problema específico. inicio leer a leer b,c,d leer h fin Explicación Este algoritmo permite ingresar cuatro variables, de distintas formas: la primera instrucción solo lee una variable; la segunda instrucción lee tres instrucciones y la última solo una instrucción. Asignación a = 2 asigna a la variable "a" el valor 2. b = a asigna a la variable llamada "b" el valor que contiene la variable "a". Nota: se puede asignar a una variable el resultado de una operación matemática. A

continuación describiremos las cuatro operaciones.

Page 6: Lenguaje de Prgramacion Pascal

Variables operación explicación a b a + b suma x y x - y resta p q p * q multiplica c d c/d divide

Escritura escribir a escribe en pantalla el contenido de la variable llamada

"a". escribir 'hola' escribe en pantalla el mensaje escrito entre comillas. escribir 'el resultado es', a escribe el mensaje entre comillas seguido del valor de la

variable "a". Por ejemplo: sí a=120, el mensaje de la instrucción escribir "El número final es", a Aparecerá en pantalla: El número final es 120 Ejemplo Nº 1 (Estructuras de secuencias) Problema: se desea calcular el promedio de las tres notas de un alumno. Desarrollo: en este punto se debe tener una comprensión profunda de lo que se requiere para la resolución del problema. Se debe proceder a organizar la formulación del problema mediante la construcción cuidadosa de una lista de pasos - el algoritmo - que describirá la secuencia de operaciones que deben ser llevada a cabo para la resolución del problema. Solución: Tabla de datos

• Variable de entrada: nota1, nota2 y nota3. • Variables del programa: suma. • Variable de salida: promedio.

Estrategia de solución. El propósito de la formulación de los pasos a seguir es proporcionar una descripción detallada y precisa de los pasos individuales que debe ejecutar la computadora para la resolución del problema.

Page 7: Lenguaje de Prgramacion Pascal

• Paso 1: leer las tres notas guardándolas en las variables "nota1", "nota2" y "nota3". • Paso 2: calcular la suma de los datos de las variables "nota1", "nota2", "nota3" y

almacenar el resultado en la variable llamada "suma". • Paso 3: calcular el promedio de los datos dividiendo la variable suma por 3 y

guardándola en la variable "promedio". • Paso 4: escribir el valor de la variable "promedio".

Construcción: leer nota1, nota2, nota3 suma = nota1 + nota2 + nota3 promedio = suma / 3 escribir "El promedio de las notas del alumno es", promedio Salida Mediante la siguiente tabla se registrarán los datos de entrada y las asignaciones del programa. Supongamos que las notas ingresadas son: 5, 4.8 y 6.4.

Variable nota1 5 nota2 4.8 nota3 6.4 suma 16.2 promedio 5.4 Ejemplo Nº 2 (Estructuras de secuencias) Problema: se desea calcular el salario líquido de un empleado. Dados su sueldo base, % descuentos legales y % bonificación. Desarrollo: en este punto se debe tener una comprensión profunda de lo que se requiere para la resolución del problema. Se debe proceder a organizar la formulación del problema mediante la construcción cuidadosa de una lista de pasos - el algoritmo - que describirá la secuencia de operaciones que deben ser llevada a cabo para la resolución del problema. Solución: Tabla de datos

• Variables de entrada: salario del empleado (salario), % descuentos (descuentos), % bonificación (bonificación)

Page 8: Lenguaje de Prgramacion Pascal

• Variables del programa: calculodescuentos y calculobonificación. • Variable de salida: sueldofinal.

Estrategia de solución. El propósito de la formulación de los pasos a seguir es proporcionar una descripción detallada y precisa de los pasos individuales que debe ejecutar la computadora para la resolución del problema.

• Paso 1: Leer los datos guardándolos en las variables salario, descuentos y bonificación.

• Paso 2: Calcular los porcentajes de los datos descuentos y bonificación,

almacenando los resultados en las variables llamadas calculodescuentos y calculobonificación.

• Paso 3: Calcular el sueldo final, sumando los datos guardados en salario y

calculobonificación y finalmente restando a este resultado el valor de calculodescuentos. Los cálculos serán guardados en sueldofinal.

• Paso 4: escribir el valor de la variable "sueldofinal".

Construcción: leer salario, descuentos, bonificacion calculodescuentos= (descuentos * salario)/100 calculobonificacion=(bonificacion * salario)/100 sueldofinal = (salario + calculobonificacion ) - calculodescuentos escribir "El sueldo líquido del empleado es “,sueldofinal Salida Mediante la siguiente tabla se registrarán los datos de entrada y las asignaciones del programa. Supongamos los datos iniciales registrados:

Variable salario 100.000 descuentos % 12 bonificación % 15 calculobonificacion 15000 calculodescuentos 12000 sueldofinal 103000 Ejemplo Nº 3 (Estructuras de secuencias)

Page 9: Lenguaje de Prgramacion Pascal

Problema: Dado el mes de nacimiento de un bebé de menos de 1 año de vida y que nació en el año en curso. Calcule su edad en días. Suponga meses de 30 días. Desarrollo: en este punto se debe tener una comprensión profunda de lo que se requiere para la resolución del problema. Se debe proceder a organizar la formulación del problema mediante la construcción cuidadosa de una lista de pasos - el algoritmo - que describirá la secuencia de operaciones que deben ser llevada a cabo para la resolución del problema. Solución: Tabla de datos

• Variable de entrada: mesactual, mesdenacimiento. • Variables del programa: calculomeses, calculodias. • Variable de salida: calculodias.

Estrategia de solución. El propósito de la formulación de los pasos a seguir es proporcionar una descripción detallada y precisa de los pasos individuales que debe ejecutar la computadora para la resolución del problema.

• Paso 1: Ingresar el mes de nacimiento y el mes actual y guardarlas en las variables " "mesdenacimiento” y “mesactual".

• Paso 2: calcular la diferencia de los datos de las variables "mesactual " y

"mesdenacimiento " y almacenar el resultado en la variable llamada "calculomeses”. • Paso 3: calcular el número de días multiplicando la variable calculomeses por 30 y

guardándola en la variable "calculodias ". • Paso 4: escribir el valor de la variable "calculodias".

Construcción: leer mesdenacimiento, mesactual calculomeses = mesactual - mesdenacimiento calculodias = calculomeses * 30 escribir "La edad en días del bebé es ", calculodias Salida Mediante la siguiente tabla se registrarán los datos de entrada y las asignaciones del programa. Supongamos que los meses ingresados son: 2 mes de nacimiento y 10 mes actual.

Page 10: Lenguaje de Prgramacion Pascal

Variable

mesdenacimiento 2 mesactual 10 calculomeses 8 calculodias 240 Actividad Nº 1 Escriba un algoritmo para cada uno de los siguientes enunciados. 1) Encuentre el valor de "z" si z= ( a + b ) / ( a - c ) 2) Calcule la edad de una persona, dados el año de nacimiento y el año actual. 3) Calcule el puntaje de ingreso a la Universidad de un alumno, sí:

PI = 25% NEM + 25% PAC + 25% PAM + 25% PE

Donde: PI = puntaje de ingreso. NEM = notas de enseñanza media. PAC = prueba de aptitud verbal. PAM = prueba de aptitud matemáticas. PE = prueba especial.

II Estructura de decisión Normalmente, los pasos de un algoritmo se ejecutan en el orden en que fueron escritos. Sin embargo, en muchos algoritmos la secuencia de los pasos que se van a ejecutar depende de los datos de entrada. En estos casos, con base en los valores de ciertas variables, se debe tomar decisión sobre qué secuencia de pasos va a ser ejecutada. Tales decisiones requieren la evaluación de una condición que está expresada en término de las variables relevantes. El resultado de la evaluación determina qué pasos del algoritmo van a ser ejecutadas a continuación. El paso del algoritmo que describe la condición se llama paso de decisión. Cada paso de decisión involucra la evaluación de una expresión lógica, esto es, una expresión que puede tener el valor de verdadero o falso. Una condición describe normalmente una relación (mediante un operador relacional) particular entre dos variables o entre una variable y una constante). En la siguiente tabla se muestra un ejemplo:

Variable a Variable b Variable c condición valor 2 3 5 a > c Falso 1 4 2 a = 2 Falso

Page 11: Lenguaje de Prgramacion Pascal

9 2 3 b < a Verdadero 7 1 5 a > b y b < c Verdadero

120 200 3 a * c > b Verdadero 12 15 16 a > b o a > c Falso 17 19 21 a < b o a > c Verdadero

La Sintaxis de la estructura de decisión es: Sí condición lógica entonces Instrucciones Sino Instrucciones Fin sí

• Si condición lógica es verdadera se ejecutan la o las instrucciones entre sí y sino. • Si condición lógica es falsa se ejecutan la o las instrucciones entre sino y fin sí.

Ilustraremos la estructura de decisión modificando el problema del ejemplo Nº 1. Ejemplo Nº 4 (Estructuras de secuencia y decisión) Problema: se desea calcular el promedio de las tres notas obtenidas en el semestre por un

alumno y determinar si el alumno está o no. La nota mínima de aprobación es un 4.

Desarrollo: los pasos 1, 2, 3 y 4 del ejemplo Nº 1 se conservan y se agrega:

• Paso 5: si variable "promedio" es menor que 4 (es decir, es verdadera esta condición) escribir reprobado. Sino, es decir si la variable promedio no es menor que 4 (falso) escribir aprobado.

Construcción: leer nota1, nota2, nota3 suma = nota1 + nota2 + nota3 promedio = suma / 3 escribir "El promedio es", promedio si promedio < 4 entonces escribir "Reprobado" sino escribir "Aprobado" fin sí

Page 12: Lenguaje de Prgramacion Pascal

Ejemplo Nº 5 (Estructuras de secuencia y decisión) Problema: se desea calcular el promedio de las dos notas obtenidas en el semestre por un

alumno, la nota mínima de cada prueba para aprobar la asignatura es un 4, de no ser así el alumno está reprobado.

Desarrollo: el paso 1 del ejemplo anterior se conserva y se agrega:

• Paso 2: si variable "nota1" es menor que 4 (es decir, es verdadera esta condición) escribir reprobado. Si variable "nota2" es menor que 4 (es decir, es verdadera esta condición) escribir reprobado. Sino, es decir si las dos variables nota1 y nota2 no son menores que 4 (falso) escribir aprobado.

Construcción: leer nota1, nota2 si nota1<4 entonces escribir "Reprobado" sino

si nota2 < 4 entonces escribir "Reprobado" sino escribir "Aprobado" fin si fin sí Ejemplo Nº 6 (Estructuras de secuencia y decisión) Problema: Lea el salario de un empleado y calcule el aguinaldo que se le asignará. Si el

salario es menor a $ 100.000 se le pagará un 30% del sueldo, como aguinaldo, en caso contrario se le pagará un 20% del sueldo, como aguinaldo.

Solución Tabla de datos:

• Constantes : porcentaje1= 0.30, porcentaje2 = 0.20 • Variables de entrada : salario (salario del empleado). • Variable de salida : aguinaldo.

Estrategia de solución:

• Paso 1: leer salario.

Page 13: Lenguaje de Prgramacion Pascal

• Paso 2: Decidir si salario es menor o mayor a $100.000. • Paso 3: calcular aguinaldo de acuerdo al grado de verdad de la condición del paso

anterior. • Paso 4: escribir el aguinaldo que le corresponde al empleado.

Construcción: leer salario sí salario < 100.000 entonces aguinaldo = salario * 0.30 sino aguinaldo = salario * 0.20 fin si escribir " Su aguinaldo es ", aguinaldo Actividad Nº 2 Escriba un algoritmo para cada uno de los siguientes enunciados: 1) Si el valor de una variable leída no es igual a 0, entonces multiplicarla por 50. De lo

contrario pasar por alto este cálculo. En cualquier caso escribir el valor. 2) Encontrar el mayor de dos valores. Considerar si son iguales. 3) Calcule la diferencia absoluta entre dos números. Sí x es mayor que y, la diferencia

absoluta es x - y; si y es mayor que x, la diferencia absoluta es y - x. III Estructura de ciclos. En la primera estructura, desarrollamos un algoritmo que calcula el promedio de tres notas. Supongamos ahora que debemos calcular la suma de 100 notas. Luego tenemos: Problema: calcular la suma de 100 notas Solución: si extendemos la solución del problema 1, podríamos llegar a los pasos que siguen.

• Paso 1 leer nota1 • Paso 2 leer nota2 • ... leer nota... • Paso 100 leer nota100 • Paso 101 promedio = suma/100

Evidentemente, este algoritmo no es práctico y necesita una alternativa mejor. La esencia del problema es encontrar la manera de ingresar los datos e ir sumándolos sin utilizar instrucciones separadas para cada uno de ellos.

Page 14: Lenguaje de Prgramacion Pascal

Sería ideal escribir un paso para la lectura y acumulación de todos los datos. Esto es posible si hacemos referencia a cada una de las notas utilizando el mismo nombre de variable. La solución del problema es el siguiente: Una vez que una nota ha sido almacenada en la memoria de la computadora y ha sido añadida a la suma, ya no se necesita. Así, cada nota se puede almacenar en la misma variable llamada "nota". Después de añadir el valor de "nota" a la suma, se almacena la siguiente nota. Esto, por supuesto, destruye el valor previo de la nota, pero ya no es necesaria para los cálculos. Para ver como trabaja este proceso, veamos que pasaría si intentamos ejecutar el algoritmo, solamente con la repetición de los pasos.

• Paso 1 leer nota • Paso 2 añadir a suma el valor de nota

Para que el algoritmo repita estos dos pasos cien veces se necesita una instrucción de ciclo llamada mientras, la cual debe ser seguida de una condición lógica, que mientras sea verdadera, ejecutará las instrucciones escritas inmediatamente después de ella. Finalmente es necesario que la computadora sepa, cuáles instrucciones pertenecen al ciclo y cuáles no. Para esto, se termina el ciclo con la palabra fin mientras. La sintaxis de la estructura de ciclo es: mientras condición lógica

instrucciones fin mientras Para nuestro problema el algoritmo sería: suma = 0 contador = 1 mientras contador <= 100 leer nota suma = suma + nota contador = contador + 1 fin mientras promedio = suma / 100 escribir " El promedio de las 100 notas es", promedio Explicación: Asignamos el valor uno, a la nueva variable contador. Que es aquella que se incrementará en un número cada vez hasta llegar, en este caso a 100. También inicializamos la variable

Page 15: Lenguaje de Prgramacion Pascal

suma en cero y a medida que sean ingresadas las notas, ella incrementará su valor, sumándose a sí misma una nueva cantidad. Supongamos que las primeras notas son: 5.0, 3.0 y 6.4 los valores de nota, suma y contador serían:

Contador nota suma

1 5.0 5.0

2 3.0 8.0

3 6.4 14.4

Ejemplo Nº 7 (Estructuras de secuencia, decisión y ciclo) Problema: se desea sumar los primeros 500 números impares. Solución: Tabla de datos

• Variables del programa: Contador: para contar los primeros 500 números impares. Impar: variable que partirá en uno y se incrementara en dos unidades para ir generando el impar siguiente. Suma: la variable, que parte de cero y se incrementará al sumársele el impar siguiente y así sucesivamente.

Estrategia de solución:

• Paso 1: inicializar variable contador, variable suma y variable impar. • Paso 2: condicionar ciclo. • Paso 3: sumar número impar e incrementar variable contador y generar impar

siguiente. • Paso 4: cerrar ciclo. • Paso 5: mostrar resultado.

Construcción: contador = 0 impar = 1 suma = 0 mientras contador <= 500 suma = suma + impar impar = impar + 2 contador = contador + 1 fin mientras

Page 16: Lenguaje de Prgramacion Pascal

escribir "La suma de los primeros 500 números impares es ", suma Observación: Para resolver un problema computacional, se utilizan las distintas estructuras descritas anteriormente, de secuencia, de decisión y de ciclo. Pudiendo, depender del enunciado, usarse todas o solo algunas de estas instrucciones. Ejemplo Nº 8 (Estructuras de secuencia, decisión y ciclo) Problema: se desea encontrar todos los divisores de un número. Tabla de datos

• Variables de entrada: número al que se le encontrarán los divisores (num), • Variables del programa: contador del ciclo (I), resultado de la división del número

por cada valor del contador (divisor). • Variable de salida: divisor.

Estrategia de solución. El propósito de la formulación de los pasos a seguir es proporcionar una descripción detallada y precisa de los pasos individuales que debe ejecutar la computadora para la resolución del problema.

• Paso 1: Leer el número guardándolo en la variable num. • Paso 2: Validar que num sea mayor que cero. • Paso 3: Iniciar un ciclo con la variable I desde uno hasta el valor de num. • Paso 4: dividir num por el valor de I y guardarlo en la variable llamada divisor. • Paso 5: comparar divisor con cero, si es igual a cero imprimir el valor de divisor

Construcción Escribir “Ingrese un número positivo” Leer num mientras num<0 Escribir “Ingrese un número positivo”

Leer num fin mientras i=1 mientras i<=num si (resto (num dividido i))=0 entonces escribir i, “es divisor de “,num fin si i=i+1 fin mientras

Page 17: Lenguaje de Prgramacion Pascal

Salida Mediante la siguiente tabla se registrarán los datos de entrada y las asignaciones del programa. Supongamos que el número ingresado es: 6.

Variable num 6 6 6 6 6 6 6 i 1 2 3 4 5 6 7 divisor 0 0 0 2 1 0 Luego la salida será: Ingrese un número positivo 1 es divisor de 6 2 es divisor de 6 3 es divisor de 6 6 es divisor de 6 Actividad Nº 3 Escriba un algoritmo para cada uno de los siguientes enunciados: 1) Calcule el promedio de los primeros 70 números pares. 2) Sume las edades de los alumnos de un curso de 57 alumnos. 3) Encuentre el promedio de las temperaturas máximas de un mes. Resumen Esta Unidad ha estado destinada a presentar además de las instrucciones básicas para desarrollar un algoritmo, unas cuantas sugerencias para resolver problemas con la computadora. Resumidas son: 1) Entender qué es lo que se pide. 2) Identificar todos los datos de entrada y salida y listarlo en una tabla de datos. 3) Formular una proposición precisa del problema en término de los datos de entrada y

salida y asegurarse de que hay suficientes elementos de entrada para efectuar los cálculos que nos llevarán a la solución.

4) Plantear claramente la secuencia de pasos necesarios para producir la salida deseada del problema a través del manejo de los datos de entrada.

5) Construir el algoritmo, para posteriormente ser transcrito al lenguaje de programación que va a ser utilizado.

EJERCICIO DE AUTOEVALUACIÓN Responda las siguientes preguntas:

Page 18: Lenguaje de Prgramacion Pascal

¿ Qué es una variable ? ¿ Qué diferencia hay entre datos e información ? ¿ Cuál es el primer paso a seguir en la resolución de un problema ? ¿ Qué sentido tiene escribir primero el algoritmo y luego el programa en un lenguaje determinado ? Escriba un algoritmo para cada una de los siguientes enunciados: 1) Lea un precio desde teclado y sumele el valor del IVA (IVA = precio * 0.18). 2) Lea un Nº por teclado y determine si es positivo, negativo o cero. 3) Encuentre el menor y el mayor valor de 300 números ingresados por teclado. Respuestas a los ejercicios de autoevaluación. Responda las siguientes preguntas: ¿ Qué es una variable ? Es la referencia a un dato que se halla almacenado en la memoria a través de un nombre simbólico descriptivo llamado nombre de variable. ¿ Qué diferencia hay entre datos e información ? Los datos son la materia prima en bruto, es decir las entradas que el programa necesita para trabajar. La información es la salida que se obtiene el ejecutar el programa. ¿ Cuál es el primer paso a seguir en la resolución de un problema ? El primer y más importante paso, es entender el problema. Es vital que se lea varias veces el enunciado, para no escribir un algoritmo que no corresponda al problema propiamente tal. ¿ Qué sentido tiene escribir primero el algoritmo y luego el programa en un lenguaje determinado ? Al escribir el algoritmo, se analiza de tal manera que se busca estrategias de solución y luego se construye la solución. El siguiente paso, luego de haber resuelto el problema es escribir el programa en algún lenguaje de programación. Escriba un algoritmo para cada una de los siguientes casos.

Page 19: Lenguaje de Prgramacion Pascal

1) Lea un precio desde teclado y sumele el valor del IVA (IVA = precio * 0.18). leer precio IVA = 0.18 nuevo precio = precio * IVA + precio Escribir "El precio más IVA es", nuevo precio

2) Lea un Nº por teclado y determine si es positivo, negativo o cero.

leer numero si numero = 0 entonces escribir "número es igual a cero" sino si numero < 0 entonces escribir "número es negativo" sino escribir "número es positivo" fin si fin si

3) Encuentre el menor y el mayor valor de 300 números ingresados por teclado. contador = 1 leer numero menor = numero mayor = numero mientras contador <= 300 leer numero

si menor > numero menor = numero fin si si mayor < numero mayor = numero fin si contador = contador + 1 fin mientras

Page 20: Lenguaje de Prgramacion Pascal

UNIDAD III

Lenguaje Pascal

Proposiciones y conceptos fundamentales e instrucciones de control de procedimiento. Introducción El lenguaje de programación Pascal tiene una amplia difusión, particularmente en las Universidades. Fácil de aprender y de enseñar, este lenguaje fue concebido para ser un instrumento en la enseñanza de los conceptos de la programación y también facilitar el desarrollo de aplicaciones científicas y de negocios. Objetivos Al término de la presente Unidad el alumno estará en condiciones de: - Describir las principales características de Pascal. - Escribir programas en lenguaje Pascal, que involucren conceptos básicos e

instrucciones de control de procesamiento. Características de Pascal Pascal es un lenguaje de alto nivel, esto significa que los programas escritos en él, no dependen de la computadora que los ejecuta. Sus principales características son: 1) Es de propósito general: el campo de aplicaciones de Pascal, puede ser considerado

completo ya que permite el tratamiento de problemas científicos, de gestión, procesamiento de texto, educación, etc. En otras palabras, es un lenguaje universal.

2) Es un lenguaje estructurado: Pascal tiene estructurados sus programas y sus datos 3) Es un lenguaje algorítmico: en efecto, un algoritmo específico puede ser escrito

directamente en Pascal para ser ejecutado en la computadora. Expresiones predefinidas en Pascal Pascal reconoce un conjunto de palabras especiales y símbolos que forman el vocabulario básico de este lenguaje de programación. Estas expresiones se denominan predefinidas y se refieren a instrucciones de ejecución y símbolos que el lenguaje emplea para distinguir las secciones de un programa, tipo de datos, etc. En este texto serán escritas las palabras propias del lenguaje Pascal en negrita y cursiva.

Page 21: Lenguaje de Prgramacion Pascal

Secciones de un programa El texto de un programa en Pascal se compone de secciones, las cuales deben ser escritas, si el programa lo requiere, en el siguiente orden: 1) Primera línea o encabezamiento (program) 2) Sección de declaración de constantes (const). 3) Sección de declaración de tipos (type). 4) Sección de declaración de variables (var). 5) Sección de procedimientos y funciones (procedure y function). 6) El cuerpo del programa, formado por instrucciones ejecutables encerradas entre las

palabras begin y end. Observación: solamente son obligatorias las secciones 1 y 6.

1) program nombre; 2) const ...; 3) type ...; 4) var ...; 5) procedure ...;

function ...; 6) begin...

... end

Se describirá cada sección en forma detallada en el desarrollo de la Unidad. Indicaciones a considerar en la escritura de un programa 1) La primera línea de un programa en Pascal, debe comenzar con la palabra reservada

program, seguida por un nombre, que se haya acordado darle. Enseguida y entre paréntesis las palabras input y/o output en el caso que el programa

necesite ingresar datos y/o escribir en pantalla respectivamente. 2) Cualquier grupo de instrucciones ejecutables que se encierren entre las palabras begin y

end constituye un bloque de ejecución, al que también se denomina instrucción compuesta. El procesamiento normal de las instrucciones de un bloque es el secuencial, es decir, de acuerdo al orden en que se escriben.

En particular, el cuerpo principal del programa debe empezar con la palabra begin y terminan con la palabra end, a la que hay que seguir con un punto (.) para indicar el final del programa.

3) Se emplea el signo punto y coma (;) para separar instrucciones, secciones, etc. Identificadores o nombres de Variables. 1. Puede contener combinaciones de letras (A - Z) y los dígitos (0 - 9).

Page 22: Lenguaje de Prgramacion Pascal

2. Deben empezar siempre con una letra. 3. No se deben colocar acentos. 4. Se puede escribir en minúsculas o mayúsculas. 5. Para separador de palabra se utiliza el símbolo de subrayado, no se debe dejar espacio

en blanco. Ejemplos: Sumadenumeros A1 Promedio TEMPERATURA_MAXIMA Instrucción de definición de constantes. const = valor nombre de la constante Interpretación: Para declarar una constante se debe anteponer la palabra reservada const luego se coloca el nombre de la constante seguido del símbolo igual (=) y luego el valor que se le asignará. Al ser declarada una constante, su valor no puede ser modificada por ninguna instrucción posterior durante la ejecución del programa. Ejemplos: const IVA = 0.18; UF del_día = 15800; Meses = 12; Tipos de datos. Existen tres tipos de datos: numérico, alfanumérico y lógico. Numéricos pueden ser de tipo: - Real (real) números decimales positivos, negativos o cero, estos se escriben en notación

exponencial o en base 10. Por ejemplo 3207,34 o 3.2073400000 + E03

- Entero (integer) números sin punto decimal, comprendidos entre 32.767 y 32.767. Alfanuméricos pueden ser de tipo: - Caracter (char) se compone de un solo carácter, pudiendo ser este cualquier simbolo del

teclado incluso numérico, con la salvedad de no poder ser operado matemáticamente.

Page 23: Lenguaje de Prgramacion Pascal

- Cadenas (string) colecciones ordenadas de caracteres, se asignan entre comillas (` ´). Lógicas pueden ser: - Lógicas o booleanas (boolean) admiten valores true (verdadero) o false (falso) Símbolo de asignación := nombre de variable := valor; Interpretación: a la izquierda debe ir el identificador o nombre de la variable, seguida de los símbolos := y a la derecha el valor, pudiendo ser éste también el resultado de una operación aritmética. Ejemplos: nota1 := 5.9: nota2 := 6.3; suma := nota1 + nota2; nombre := `Karina´; letra := `p´; Suma:=3.8; Porcentaje:=0.06; Letra:=`k`; Palabra:=`hola`; Nombres:=`Irene Diaz`; Dirección:=`Alameda 31`; Edad:=18; Dia:=5; Mes:=8;

Operadores aritméticos del lenguaje Pascal

Operación Símbolo Expresión Comentario

Multiplicación * X*Y El resultado es de tipo entero si ambos operadores son de tipo entero, en caso contrario es de tipo real.

División (real) / X/Y El resultado de esta operación es de tipo real.

Adición + X+Y El resultado es de tipo entero si ambos operadores son de tipo entero, en caso contrario es de tipo real.

Page 24: Lenguaje de Prgramacion Pascal

Sustracción - X-Y El resultado es de tipo entero si ambos operadores son de tipo entero, en caso contrario es de tipo real.

División entera

DIV X DIV Y Entrega el cuociente entero de la división entre X e Y.

Módulo o resto

MOD X MOD Y Entrega el resto de la división entre X e Y.

Ejemplos: 1) Si a:=17 ; b:=5;

a Mod b es igual a 2 pues es lo que sobra al dividir 12 por 5 a Div b es igual a 3 pues la parte entera de la división.

Operadores lógicos del lenguaje Pascal

Operación Símbolo Expresión Comentario

Negación NOT NOT x NOT cambia el grado de verdad de x, si es positivo lo deja negativo y viceversa.

Conjunción AND x AND y Esta expresión es verdadera solamente si las dos expresiones son verdaderas. En otro caso es siempre falsa.

Disyunción OR x OR y Esta expresión es falsa solamente si las dos expresiones son falsas. En otro caso es siempre verdadera.

Ejemplos: Si a:=true; b:=false; c:=6; h:=20; Not a es falso Not b es verdadero (c>h And h<100 es falso pues c es menor que h. (c=6 And c<h es verdadero, pues las dos condiciones son verdaderas. (c>0 And ((c Mod 2)=0) es verdadero porque c es mayor que cero y el resto de dividir

6 por 2 es cero, luego las dos condiciones son verdaderas. Relaciones de comparación

Relación símbolo Expresión lógica Comentario Igualdad = x = y Esta expresión es verdadera si x es igual a y, en

caso contrario es falsa. Desigualdad <> x <>y Esta expresión es verdadera si x es distinto de y,

Page 25: Lenguaje de Prgramacion Pascal

en caso contrario es falsa. Menor < x < y Esta expresión es verdadera si x es menor que y,

en caso contrario es falsa. Mayor > x > y Esta expresión es verdadera si x es mayor que y,

en caso contrario es falsa. Menor o

igual <= x <= y Esta expresión es verdadera si x es menor o

igual a y, en caso contrario es falsa. Mayor o

igual >= x >= y Esta expresión es verdadera si x es mayor o

igual a y, en caso contrario es falsa.

Funciones de Pascal

Función Descripción ABS(x) Da el valor absoluto de x. El resultado es del mismo tipo que x.

SQR(x) Da el cuadrado de x. El resultado es del mismo tipo que x.

SQRT(x) Entrega la raíz cuadrada de X>=0.

TRUNC(x) Es igual a la parte entera de x. El resultado es de tipo entero. ROUND(x) Es igual al entero más próximo a x. El resultado es de tipo entero. LN(x) Da el logaritmo natural de x>0. SIN(x) Da el valor del seno de x radianes. COX(x) Da el valor del coseno de x radianes. ARCTAN(x) Da el valor en radianes del arcotangente de x. EXP(x) Es el valor de la exponencial de x, es decir, el numero

e=2.71828….) elevado al exponente x. Introducción declaración de variables VAR Nombre_de_variable1:tipo1; Nombre_de_variable2:tipo2; ----------------------------------- Interpretación: A cada variable de la lista de variables se le asigna una celda de memoria y además se especifica de que tipo de datos (entero, real, carácter, palabra, etc.) es la variable después del signo dos puntos ( : ). Para separar variables que son del mismo tipo se utiliza una coma (,). Ejemplo de declaración de variables VAR Suma, porcentaje:real;

Page 26: Lenguaje de Prgramacion Pascal

Letra:char; Palabra, nombres, direcciones:string; Edad, dia, mes:integer; Instrucción read y readln Read (lista_de_variables_de_entrada); Interpretación: los datos son ingresados en cada variable especificada en la lista de variables de entrada. Para separar los nombres de las variables en la lista se usan comas. Readln Cumple el mismo objetivo que la instrucción read, pero luego de leer las variables, sitúa el cursor en la línea siguiente del programa, es decir, lee y salta línea. Ejemplos Read (nota1, nota2, nota3); Readln (nombre, dirección); Introducción write y writeln Write (`mensaje`); Write (valor); Write (`mensaje`,valor); Interpretación: la instrucción write permite mostrar en pantalla un mensaje escrito entre comillas simples y además el contenido de una variable, en este caso llamada valor. La instrucción writeln, además de mostrar por pantalla como write, permite escribir y colocar el cursor en la siguiente línea. Ejemplo: Write ( 'hola '); Write('cómo'); Writeln (éstás?´) Writeln(´muy´); Writeln(´bien´); En pantalla se verá: Hola ¿cómo estás? Muy Bien

Page 27: Lenguaje de Prgramacion Pascal

Comenzaremos nuestro estudio con un ejemplo de un programa en Pascal. Ejemplo 1 Problema: Escribir un programa en Pascal que muestra el siguiente mensaje: Curso de programación y el resultado de la operación 2+5. Solución: Program uno (output); Begin Writeln(´curso de computación`); Writeln (2+5); End. Explicación 1. La primera línea del programa se forma con la palabra reservada program, el nombre

que le hemos asignado al programa: uno y encerrado entre paréntesis la palabra output pues se imprimen datos en pantalla. Finalmente se escribe un ; que es el símbolo de separador de instrucciones.

2. El cuerpo del programa, comprendido entre begin y end tiene dos instrucciones writeln

(significa escribir y luego saltar línea). Nótese que writeln es seguida inmediatamente por los datos que se desean imprimir encerrados entre paréntesis.

La salida de este programa es: Curso de computación 7 Ejemplo 2: Problema: escribir un programa en Pascal que permita ingresar dos valores enteros y

calcular los cuatro operaciones aritméticas. Mostrar los resultados en pantalla. Solución: Program operaciones_aritmeticas (input, output); Var a,b:integer; Begin

Write(´Ingrese dos números´); Readln (a,b); Writeln(´La suma de ¨,a,´y´,b,´es´a+b); Writeln(´la diferencia entre´,a,´y ´,b,´es´,a-b);

Page 28: Lenguaje de Prgramacion Pascal

Writeln(´la multiplicación entre´,a,´y ´,b,´es´,a*b); Writeln(´la división entre´,a,´y ´,b,´es´,a/b);

End. Explicación: 1 Se declaran dos variables de tipo entero 2 Se pide mediante un mensaje en pantalla ingresar dos valores 3 Se leen los valores por ejemplo 12 y 4. 4 Se escriben los mensajes y el resultado de las operaciones aritméticas. La salida del programa es: Ingrese dos números 12 4 La suma entre 12 y 4 es 16 La diferencia entre 12 y 4 es 8 La multiplicación entre 12 y 4 es 48 La división entre 12 y 4 es 3 Ejemplo 3 Problema: escribir un programa es Pascal que obtenga el promedio de tres valores enteros: Solución: Program promedio_de_datos (input, output); Const Total=3; Var Suma, n1, n2, n3: integer; Promedio: real; Begin Write (´Ingrese tres números´); Readln(n1, n2, n3); Suma:=n1 + n2 + n3; Promedio:=suma/total; Writeln(´El promedio de los valores es´, promedio); End Explicación 1 Se declara la constante total con el número de datos. 2 Se declaran cuatro variables de tipo enteras y una variable llamada promedio que debe

ser de tipo real, pues la operación de división siempre entrega un resultado real. 3 Se escribe un mensaje, luego se leen las variables involucradas. 4 Finalmente se realiza el cálculo del promedio y se muestra el resultado. Actividad Nº 1

Page 29: Lenguaje de Prgramacion Pascal

Escriba un programa en lenguaje Pascal para encontrar el área de un circulo según la formula: Area = ¶* r² En donde r es el radio del círculo y ¶= 3.14159 Instrucción de decisión If...then...else 1.1) IF condición lógica THEN instrucción1; Instrucción2; En este caso sólo la instrucción1, está condicionada, es decir, se ejecutará si

condición lógica es verdadera. Instrucción2 está fuera del IF Observaciones: cuando la instrucción If contiene más de una instrucción, esto deben ser

escrito entre begin y end. Lo mismo ocurre con else. Ejemplo Problema: Leer un número, sí es negativo convertirlo en positivo: Program si(input, output) Var a:integer ; begin write (`Ingrese un Nº́ ); readln (a); if a < 0 then a:=a*-1 writeln (´Nº positivo`,a); end. Explicación: solamente si el valor de la variable a es negativo se le cambia su valor, la instrucción siguiente, en este caso writeln siempre se ejecuta independiente del grado de verdad de la condición. Salida: Ingrese un Nº -12 Nª positivo 12 1.2) IF condición lógica THEN BEGIN Instrucción1; Instrucción2; -------------

Page 30: Lenguaje de Prgramacion Pascal

Instrucciónk; END; Ejemplo 2 Problema: ingresar un numero por teclado, si el número es mayor que 100, multiplicarlo por 20, sumarle 8 unidades y dividirlo por 4. Solución Program uso_del_si(input,output); Var A, b, c, d:integer; Begin Write (´Ingrese un Nº́ ); Readln (a) If a > 100 Begin b:=a*20; c:=b+8; d:=c/4; a:=d; End; Writeln (a) End. Explicación: Si el número ingresado es mayor que 100, es decir es verdadera la condición, se realizan las cuatro instrucciones entre begin y end. Salida: 1) Ingrese un Nº 120 602 2) Ingrese un Nº 36 36 1.3) IF condición lógica Then BEGIN Instrucciones; END { no debe ir un punto y coma antes de un ELSE} ELSE BEGIN Instrucciones; END;

Page 31: Lenguaje de Prgramacion Pascal

Ejemplo Problema: Ingresar un Nº por teclado y determinar, si es o no par. Program paridad (input, output); Var Num: integer; Begin Write(´Ingrese un Nº́ ); Readln (num); If (num mod 2)=0 then Writeln(´número par´) Else Writeln (´número impar´); End. Explicación: la condición dice: si la variable num es dividida por 2 y el resto es 0 que el programa escriba numero par, en caso contrario que escriba numero impar. Salida 1) Ingrese un número par 6 número par Al dividir 6 por 2 el resto es 0 2) Ingrese un numero impar 5 número impar al dividir 5 por 2 el resto es 1 Otro ejemplo: Ingrese los coeficientes de una ecuación de segundo grado (a,b,c), si el determinante d=b²-4*a*c es positivo encontrar las raíces de la ecuación, en caso contrario escribir un mensaje. Program raices (input, output); Var A,b,c,d:integer; X1, x2: real; Begin Write ( 'Ingrese los coeficientes de la ecuación ') Readln(a,b,c); D:=b*b-4*a*c IF d<0 Then Writeln( ' Las raíces son imaginarias ');

Page 32: Lenguaje de Prgramacion Pascal

ELSE BEGIN X1:=(-b + sqrt(sqr(b)- 4*a*c))/2*a X2:=(-b - sqrt(sqr(b)- 4*a*c))/2*a Writeln( ' Las soluciones son ', x1:2:1, ' y ',x2:2:1); END; END. Explicación Primero se leen las variables y enseguida se calcula el determinante. Luego se evalúa si el determinante es negativo, de ser así, se da un mensaje. En este caso, el mensaje es "las raíces son imaginarias", pues no existe la raíz cuadrada de un número negativo en los números reales. Finalmente si la condición es falsa, es decir, es positivo o cero el valor de d, se extraen las raíces de la ecuación. Salida 1) Ingrese los coeficientes de la ecuación 1 -1 -2 Las soluciones son 2.0 y -1.0 3) Ingrese los coeficientes de la ecuación

Las soluciones son imaginarias

1.4) Instrucción IF compuesta

IF condición lógica1 THEN IF condición lógica2 THEN IF condición lógica3 THEN BEGIN instrucciones END ELSE BEGIN instrucciones END ELSE

IF condición logica3 THEN -------- Nota1: No existe un modelo de lo sí anidados. Ellos se van a anidar de acuerdo al

enunciado. Nota2: Cada IF... Then que tenga un ELSE se cierra a partir de la posición más interior. Nota3: Las instrucciones pueden ser a su vez, otros IF. Ejemplo

Page 33: Lenguaje de Prgramacion Pascal

Problema: ordenar de menor a mayor tres números distintos ingresados por teclado. program si_anidados (input, output); var a, b, c: integer; begin writeln(´Ingrese tres números´); readln (a, b, c); if a<b then if b<c then writeln (a, b, c) else if a<c then writeln (a, c, b) else else if b<c then if a<c then writeln (b, a, c) else writeln (b, c, a) else writeln (c, b, a) end. Explicación: se debía primero tener en cuenta la cantidad de soluciones en este enunciado. En este caso seis. Se emplearon solamente sí anidados para ejemplificar bien el punto 1.4. Se recomienda seguir el programa con datos que resulten en distinto orden y así poder entender mejor el problema. Actividad. Escribir un programa en Pascal que lea el salario de un empleado y calcule el nuevo sueldo de acuerdo a la siguiente tabla.

Sueldo reajuste % 0 - 100.000 15

101.000 - 200.000 12 201.000 - 250.000 10

Instrucción de decisión de alternativas múltiples CASE...OF CASE selector OF Etiqueta1:instrucción1; Etiqueta2:instrucción2;

Page 34: Lenguaje de Prgramacion Pascal

Etiqueta3:instrucción3; Etiqueta4:instrucción4; ---------------------------- Etiquetan:instrucciónn; END; Interpretación: El selector es un valor , el que se evalúa y se compara con cada uno de los caso etiquetados. Cada etiqueta es una lista de uno o más valores posibles del selector, separados por comas. Nota1: Si el valor del selector no coincide con ninguna etiqueta, no se ejecuta instrucción alguna. Nota2: El valor del selector, debe coincidir solamente con una de las etiquetas. Nota3: El selector y las etiquetas deben ser del mismo tipo de datos. Nota4: Los datos deben ser de tipos integer, boolean, y char, pero no real. Ejemplo: Problema: si un alumno obtiene un puntaje entre 10 y 39 su evaluación es insuficiente; entre 40 y 49 es suficiente; entre 50 y 59 es buena y entre 60 y 70 esmuy buena. Solución PROGRAM evaluacion (INPUT, OUTPUT); VAR Nota:integer ; BEGIN Write(' Ingrese su nota '); Readln(nota); CASE nota OF 10..39:writeln(' Insuficiente '); 40..49: writeln(' Suficiente' ); 50..59:writeln('Bueno '); 60..70:writeln('Muy bueno'); END; END. Explicación: El valor de nota es comparado con cada uno de los rangos, al coincidir con

uno de ellos , escribe el mensaje respectivo. Salida Ingrese su nota 57 Bueno Actividad

Page 35: Lenguaje de Prgramacion Pascal

Escriba un programa que exprese un número entero N, entre 1 y 3000, en números romanos. Por ejemplo: para 2125 se escribe MMCXXV

Instrucción de ciclo WHILE...DO WHILE condición lógica Cuerpo del ciclo Interpretación: Si la condición lógica es verdadera, se ejecuta el cuerpo del ciclo y se vuelve a preguntar por la condición. El cuerpo del ciclo se repite mientras la condición lógica sea verdadera. Cuando la condición lógica sea falsa, se sale del ciclo y se ejecuta la primera instrucción que sigue al cuerpo del ciclo. El cuerpo del ciclo puede ser una instrucción simple o compuesta (varias instrucciones entre BEGIN y END). NOTA: Si la condición evaluada resulta ser falsa, la primera vez que prueba, el cuerpo del ciclo es pasado por alto y no ejecutado. Ejemplo Problema: Calcular y mostrar todas las potencias del número dos que son menores de 100, comenzando con 20=1 Solución PROGRAM potencias_de_dos(INPUT,OUTPUT); CONST Base=2; VAR I,mul:integer; BEGIN I:=0;

Mul:=1; WHILE i<=100 DO BEGIN Writeln(mul);

Mul:=mul*base; I:=i+1;

END; END. Explicación 1) Se declara una constante para guardar el valor de la base, en este caso dos.

Page 36: Lenguaje de Prgramacion Pascal

2) Se declara una variable para contador del ciclo que parte en cero y una variable que generará el valor de cada potencia.

3) La instrucción While i<=100, indica que mientras la variable contador sea menor o igual a 100 mostrará el valor de mul, generará la potencia siguiente y se incrementará el contador.

Instrucción de ciclo FOR...TO...DO FOR variable contador:= inicial TO final DO Cuerpo del ciclo Interpretación: El cuerpo del ciclo se ejecuta para cada valor de la variable de control de ciclo: la variable contador, entre el valor inicial y final, inclusive. Inicial y final pueden ser constantes, variables o expresiones; sin embargo, variable contador, inicial y final deben ser del mismo tipo: integer, boolean, char. Nota1: El valor de variable contador no puede ser modificado dentro del ciclo. Nota2: Si inicial es mayor que final, el cuerpo del ciclo no será ejecutado. Nota3: La forma alternativa FOR variable contador:= final DOWNTO inicial DO Cuerpo del ciclo Se utiliza para implementar un ciclo que cuente hacia abajo desde un valor final mayor a un valor inicial menor. Ejemplo Se considerará el ejemplo anterior, pero ahora con la instrucción FOR. Problema: Calcular y mostrar todas las potencias del número dos que son menores de 100, comenzando con 20=1 Solución PROGRAM potencias_de_dos_con_for(INPUT,OUTPUT); CONST Base=2; VAR I,mul:integer; BEGIN Mul:=1; FOR i:=1 TO 100 DO BEGIN Writeln(mul); Mul:=mul*base;

Page 37: Lenguaje de Prgramacion Pascal

END; END. Otro ejemplo Problema: escribir la tabla de conversión de grados Celsius a grados Fahrenheit para temperaturas que comienzan en 5º C y terminan en -5º C. La fórmula de conversión es F=1,8 * C +32 Solución PROGRAM conversión(OUTPUT); Const Valor1=1.8; maximo =5 Valor2=32; minimo=-5; Var Fahrenhirt, contador: integer; Begin Writeln (´celsius fahrenhirt´); For contador:=maximo downto minimo do Begin Fahenhirt:=valor1*contador + valor2: Writeln (contador:3, fahrenheit:12:1); End; End. Explicación 1) Se declaran como constantes los datos del problema. 2) Se declara como variable el contador del ciclo y el valor que calcula la conversión. 3) El ciclo for downto decrementa la variable contador en una unidad cada vez. Instrucción de ciclo repeat ... until Repeat Instrucciones Until condición lógica Explicación: la instrucción repeat repite las instrucciones escritas después de ellas hasta que la condición lógica sea verdadera. Nota: este ciclo se ejecuta al menos una vez, debido a que la condición se encuentra al final del ciclo. Ejemplo: Problema: escribir un programa que muestre los primeros 200 números pares.

Page 38: Lenguaje de Prgramacion Pascal

Solución PROGRAM pares(input,output); CONST N=2; VAR Pares,contador:integer; BEGIN Contador:=1; REPEAT Writeln('par ',n*contador); Contador:=contador+1 UNTIL contador=201; END. Explicación El ciclo REPEAT ejecutará las dos instrucciones que contiene hasta que la variable contador sea igual a 201. Salida Par 2 Par 4 Par 6 ------ etc.

Actividades 1) Escriba un programa en Pascal que calcule la suma de los números 1, 2, ...., N. N es

ingresado por teclado. 2) Escriba un programa que muestre los cubos de todos los números comprendidos

entre dos enteros a y b inclusive. 3) Escriba un programa que muestre el nombre del mes correspondiente a los números

1, 2, 3,....., 12 4) Escriba un programa que lea un entero N y que efectúe los siguientes cálculos: si N

termina en 0, 3, 7, u 8, se cambie por el doble; si termina en 1, o 9, por la décima parte (entera); de otra manera, mantiene su valor.

Resumen En la presente Unidad se han presentado los conceptos básicos del lenguaje Pascal y las estructuras de control de procesamiento: las instrucciones if case, while, for, repeat. Se han mostrado las principales instrucciones de Pascal, mediante su sintaxis y ejemplos de aplicación.

Page 39: Lenguaje de Prgramacion Pascal

Ejercicios de autoevaluación. ¿ Qué es un programa ? Es un conjunto de instrucciones que ejecutan una tarea específica. ¿ En que se diferencia un algoritmo de un programa ? El algoritmo se representa en un lenguaje informal parecido a Pascal, pero que, no sigue las reglas sintaxis escritas. ¿ Por qué Pascal es un lenguaje de alto nivel ? porque un programa en Pascal escrito para un computador puede ser ejecutado en cualquier otro computador. Menciones al menos cinco palabras predefinidas o propias de Pascal. Program, var, const , if, while Escriba un programa para cada uno de los siguientes enunciados: 1) Encuentre el área de un círculo de radio r, según la fórmula: A=¶*r2 Solución PROGRAM area_circulo(Input,Output); CONST Pi=3.14159; VAR Area,radio:ral; BEGIN Write('(ingrese el radio del círculo'); Readln(r); Area:=pi*r*r; Writeln('El area del circulo de radio ',r,' es ',area:3:2); END. 2) Calcule el nuevo sueldo de un empleado, de acuerdo a la siguiente tabla:

Años de servicio % reajuste 1-4 5 5-9 9

Page 40: Lenguaje de Prgramacion Pascal

10-15 12 Solución Program uno(input,output); VAR Sueldo,nuevosueldo:real; Antigüedad:integer ; BEGIN Write('Ingrese su sueldo'); Readln(sueldo); Write ('Ingrese años de antigüedad en la empresa'); Readln (antigüedad); IF (antigüedad>=1) and (antigüedad<=4) Then Sueldo:=sueldo+sueldo*0.05 ELSE IF (antigüedad >=5) and (antigüedad <=9) Then Sueldo:=sueldo+sueldo*0.09

ELSE Sueldo:=sueldo+sueldo*0.12 END. 3) Transforme un dato de entrada de 1 a 7, en el día de la semana que le

correspondería. Por ejemplo: si ingresa 3 debe escribir miércoles. PROGRAM dia_de_la_semana(Input,output); Var Dia:integer ; BEGIN REPEAT Write('Ingrese un número entre 1 y 7 , inclusive'); Readln(dia); UNTIL (dia>=1) and (dia<=7); CASE dia OF 1:writeln('Lunes '); 2:writeln('Martes '); 3:writeln(' Miércoles'); 4:writeln('Jueves'); 5:writeln('Viernes'); 6:writeln('Sábado'); 7:writeln('Domingo'); END; END. 4) Encuentre todos los divisores de un número entero y positivo. Solución

Page 41: Lenguaje de Prgramacion Pascal

PROGRAM divisores_de_un_numero(Input,output); VAR Num,divisores,contador:integer; BEGIN REPEAT Write('Ingrese un número entero y positivo '); Readln( num); UNTIL (num>0); FOR contador:= 1 TO num DO IF (num MOD contador)=0 Then Writeln(contador, ' es divisor de ',num); END.

Page 42: Lenguaje de Prgramacion Pascal

Unidad IV

Lenguaje Pascal

Estructura de Datos y Subprogramas

Introducción En muchas ocasiones, nos encontramos con el problema de almacenar grandes cantidades de datos en la memoria. Hasta el momento, hemos podido procesar cantidades relativamente grandes de datos, utilizando únicamente unas cuantas celdas de memoria para resolver nuestros problemas. Hemos procesado cada dato individualmente y hemos vuelto a usar la celda de memoria en la cual estaba almacenado ese dato. Hay muchas aplicaciones en las cuales es necesario conservar los datos para poder procesarlos después. Por ejemplo, podríamos necesitar un programa que calcule e imprima el promedio de un conjunto de calificaciones en un test y que después imprima el promedio del conjunto de las calificaciones y además compare cada calificación con el promedio. En este caso, es necesario poder contar dos veces con los mismos datos, una vez para calcular su promedio y otra vez para hacer la comparación respectiva. Al introducir cada dato, sería tedioso leer con la instrucción read muchas veces, por ejemplo 100 veces, a la vez que necesitaríamos 100 instrucciones de comparación con cada dato. En esta unidad aprenderemos a utilizar otro elemento del lenguaje PASCAL, llamado arreglo, que sirve para almacenar un conjunto de datos relacionados entre sí. El uso de arreglos facilitará la tarea de nombrar y referenciar a cada uno de los términos de un conjunto de elementos. Utilizando un arreglo, podremos introducir un conjunto de datos completo empleando solamente una instrucción de lectura dentro de un ciclo. Una vez que el conjunto se ha almacenado en la memoria, podemos hacer referencia a cualquiera de estos términos cuantas veces queramos sin que tengamos que volver a introducir estos datos en la memoria. Además en esta unidad veremos como definir nuestros propios tipos de datos y declarar registros. Un registro al igual que un arreglo, es un conjunto de dos o más datos relacionados entre sí. Sin embargo, a diferencia de un arreglo, los componenets individuales de un registro pueden contener datos de tipos diferentes. Podemos utilizar un registro para almacenar una gran variedad de clases de información sobre una persona (nombre, oficio, sueldo, edad, etc), un libro (titulo, autor, año, editorial, numero de páginas, etc.) Objetivos: Al término de la presente unidad, usted estará en condiciones de:

Page 43: Lenguaje de Prgramacion Pascal

• Definir sus propios tipos de datos. • Utilizar arreglos y matrices para manejar un conjunto de datos. • Definir registros. • Utilizar registros para facilitar el manejo de los datos organizándolos de forma

adecuada. • Definir sus propias funciones. • Utilizar procedimientos con y sin parámetros para programar.