MANUAL PASCAL
Trabajo realizado por:
- Paco Bermejo Vaquera
- Carlos Giménez Hervás
-
Eric Sepulveda Piera
1
ÍNDICE 1.-Introducción a la programación ‘Pascal’................................................................................................2 1.1.-¿Qué es programar? ......................................................................................................................................2 1.2.-¿Qué es el Pascal? ..........................................................................................................................................2
2.-Sentencias en Pascal.................................................................................................................................3 2.1.-Sentencias básicas de Pascal..........................................................................................................................3 2.2.-Sentencias ‘Avanzadas’..................................................................................................................................4
3.-Algoritmia .................................................................................................................................................5 4.-Ejemplos y Ejercicios realizados...............................................................................................................8
1.-Introducción a la programación ‘Pascal’.
1.1.-¿Qué es programar? Programar es el proceso de diseñar, escribir, probar, depurar y mantener el código fuente de programas computacionales. El código fuente es escrito en un lenguaje de programación. El propósito de programar es crear programas que exhiban un comportamiento deseado. El proceso de escribir código requiere frecuentemente conocimientos en varias áreas distintas, además del dominio del lenguaje a utilizar, algoritmos especializados y lógica formal. Programar no involucra necesáriamente otras tareas tales como el análisis y diseño de la aplicación (pero si el diseño del código), aunque si suelen estar fusionadas en el desarrollo de pequeñas aplicaciones.
1.2.-¿Qué es el Pascal? Es un lenguaje de programación desarrollado por el profesor suizo Niklaus Wirth entre los años 1968 y 1969 y publicado en 1970. Su objetivo era crear un lenguaje que facilitara el aprendizaje de programación a sus alumnos, utilizando la programación estructurada y estructuración de datos. Sin embargo con el tiempo su utilización excedió el ámbito académico para convertirse en una herramienta para la creación de aplicaciones de todo tipo. Pascal se caracteriza por ser un lenguaje de programación estructurado fuertemente tipificado. Esto implica que:
1.-El código está dividido en porciones fácilmente legibles llamadas funciones o procedimientos. De esta forma Pascal facilita la utilización de la programación estructurada en oposición al antiguo estilo de programación monolítica. 2
2.-El tipo de dato de todas las variables debe ser declarado previamente para que su uso quede habilitado. El nombre de Pascal fue escogido en honor al matemático Blaise Pascal.
2.-Sentencias en Pascal. 2.1.-Sentencias básicas de Pascal. -Program: Va en la primera linea del programa y seguido de esto hay que poner el nombre del programa. Por ejemplo: Si es un programa de sumar, en la primera linea de programa nos quedaría mas o menos así: Program suma; -Uses: Nos indica la biblioteca que vamos a usar, normalmente sera la crt. Y se coloca después de program y antes del primer begin. Y nos quedaría así: uses crt; -Const: Añadimos esto bajo la biblioteca (uses) y arriba de las variables (var) para introducir constantes, por ejemplo cuando usemos la función delay habrá que poner una constante para el tiempo, y necesitarémos usar esto.
-Var: Nos sirve para añadir las variables que tendremos que usar para cualquier tipo de operación. Hay varios tipos de variables: real[números reales], ansistring[letras], char[caracteres], integer[numeros enteros] y array[para vectores].
-Begin: Indica el inicio del programa o inicio de progresos. Para hacer varios procesos en el mismo programa hay que poner varios begins y sus respectivos ends.
-Clrscr: En ingles (clearscreen), en español (limpiar pantalla) y lo usamos para borrar la pantalla y seguir con el proceso.
3
-Readkey: Para pausar el programa hasta que lo reanudes pulsando una tecla.
-End: Sirve para finalizar los programas o procesos que hallamos empezado con el begin.
-Write/Writeln: Sirve para introducir texto en pantalla. Si usamos el writeln, cuando acaba de escribir lo que quieras, pasa a la siguiente linea, pero en cambio si usamos el write escribe y cuando acaba sigue en esa linea. -Read/Readln: Sirve para que el programa identifique como variable , lo que has escrito antes.
2.2.-Sentencias ‘Avanzadas’.
-If-then-else: El if es para iniciar una condición y de ahí salen dos partes: la verdadera y la falsa. Cuando sea falsa, es decir que no se cumpla esa condición, hay que poner el else al final de la condición.
-While-do: Mientras se cumpla la condición se repite el proceso, pero cuando no se cumple finaliza el programa.
-For-to/downto-do: Sirve para que se repita el proceso hasta antes de la comprobación de la condición.
-Repeat-until: Sirve para repetir (al igual que el while y el for) pero la estructura es distinta. Y el until es para finalizar el bucle, al que hay que sumarle la condición para que se acabe.
4
3.-Algoritmia -Writeln:
-Readln:
5
-If/then/else:
- For: 6
-Repeat:
-While:
7
4.-Ejemplos y Ejercicios realizados. · Ejercicio 1: Hay que llamarlo program Saludo. Para poner notas usaremos (**) y pondremos entre los dos asteriscos aquello que queramos que no aparezca al iniciarse el programa sino que sea solo para recordar algunos comandos. Ctrl+F9 para ejecutar F9 para compilar Alt+F5 para cambiar de modo (del modo editor al programa y del programa al modo editor Normalmente usaremos la biblioteca crt, y para ello, debajo de program ...; hay que poner uses crt. Debajo de begin pondremos Clrscr; (Clearscreen , para borrar la pantalla) Y también usaremos Readkey, (con esto puesto, no pasara de linea a menos que presionemos un botón). Nuestro programa tendrá que saludar.
· Ejercicio 2: Tenemos que llamar program Suma; Este programa nos pide dos números enteros y nos da el resultado de la suma. 8
Hemos empezado a usar variables y a definir los números enteros. Para definir variables, tenemos que poner (var) debajo de la bibloteca (uses), y en una linea por debajo de var damos dos espacios, y introducimos las variables, pondríamos una variable por ejemplo n y para poner otra variable por ejemplo m, ponemos una coma y la siguiente variable, en la ultima variable en vez de poner ‘’, ‘’o’’ ;’’ hay que poner ‘’:’’ y después de ‘’:’’ hay que poner el tipo de variable, como en este caso queremos decir números enteros, hay que poner integer. Read sirve para leer el dato introducido como variable, y readln es para que después de leer pase a la siguiente linea. Para hacer operaciones, antes de poner el write con el resultado, hay que introducir el nombre de la variable ‘’:=’’ la operación (en este caso n+m).
· Ejercicio 3: lo hemos llamado program rectángulo; En este ejercicio no hemos hecho nada nuevo, es decir, tenemos que introducir la base y la altura del rectángulo y el programa nos calculara la altura. Este es practicaménte como el anterior pero en vez de usar la suma tenemos que calcular el producto.
·Ejercicio 4: lo hemos llamado program Circulo. Consiste en introducir el radio y que nos de la longitud de la circunferencia y el área del circulo. Para introducir constantes, Tenemos que poner lo siguiente entre la biblioteca (uses) y las variables (var): const (luego el nombre de la variable)=valor; Para introducir números reales, tenemos que poner después de las variables ^ : real;^. Y para ponerle los decimales limitados tienes que poner después escribir la variable ^:0:(numero de decimales que queremos tener)^. El resto es como antes. 9
· Ejercicio 5: lo hemos llamado program óptica, en este tenemos que introducir la distancia objeto (So) y el foco (f), y nos tiene que dar la distancia imagen (Si), el aumento lateral (Al) y la potencia (p). En este programa lo que hemos añadido luego es el delay, que sirve para que espere un determinado tiempo para que pase a la siguiente linea. Para usar el Delay hay que introducir una constante, por ejemplo t, y el valor de la constante, que tienes que ponerlo en milisegundo. Nos quedaría así: const t=1000 y luego poner delay (la constante que habías introducido) antes de la linea que quieres que espere t milisegundos para aparecer.
· Ejercicio 6: lo hemos llamado program Grados, en el que tenemos que introducir los grados, pasarlos a la primera vuelta y que nos diga cuantos radianes son. En este no ha habido cosas nueva, es simplemente escribir en pantalla 'introduce los grado ...', poner la formula de grados a radianes y luego escribir en pantalla 'Tantos grados son x radianes'.
10
· Ejercicio 7: Hay que llamarlo program salu2, consiste en introducir tu nombre, te dice Hola y tu nombre, luego le introduces la edad y te dice cuantos años tienes. En este trabajo hemos aprendido a introducir variables con caracteres (letra, ...), y a escribir dentro de un mismo write, texto en pantalla, variable y más texto en pantalla. Para introducir variables con caracteres hay que poner después de la variable ^: ansistring;^ nos quedaría así: var nombre: ansistring; Y para introducir en un mismo write texto,variable y texto, hay que poner 'el primer texto' (entre comillas) , variable, 'el segundo texto' Nos quedaría así write ('Tienes', edad, 'años'); Todo lo demás ya lo habíamos aprendido en otros ejercicios.
· Ejercicio 8: hay que llamarlo program azar, consiste en introducirle tu nombre y que te diga 6 números premiados al azar desde el 1 hasta el 49. Lo nuevo de este ejercicio es la función randomize (sirve para que introduzca números al azar), el resto seria igual.Para introducir números aleatorios, hay que poner randomize; antes de empezar a escribir el primer numero al azar, y antes de escribir la variable, hay que poner la operación: ejemplo:=random (100) [El numero que va entre paréntesis, sirve para que escriba un numero aleatorio
11
que va desde el 0 al 100][ejemplo es la variable]
· Ejercicio 9: lo hemos llamado program REALES, que consta de varias partes, en la primera hay que introducir un numero real y nos dan el valor original, con formato, redondeado y truncado. En la segunda parte se borra la pantalla y nos pide un numero real y dos enteros, luego nos da la suma de los reales, el producto de los reales, la división de los reales, la resta de el segundo entero menos el primer entero, la división de los enteros, la división entera de los enteros, el resto de la división de los enteros y finalmente el opuesto de un entero. Lo nuevo de este ejercicio es: Para redondear tienes que poner , round(variable) dentro del paréntesis del write. Para truncar tienes que poner , trunc(variable) dentro del paréntesis del write. Para hacer la división entera de a y b, se pone , a div b , dentro del paréntesis del write. Para hacer el resto de la division entera de a y b, se pone , a mod b, dentro del parentesis del write. Para hacer el opuesto de a tienes que poner -a, al escribirlo en pantalla.
12
· Ejercicio 10: se llama program cadenas; consiste en introducir tu nombre completo y el programa te dice cuantas letras tiene tu nombre entero contando los espacios. Lo nuevo de aqui es cambiarle el color al texto y contar los caracteres que tiene el texto, todo lo demas es lo de siempre. Para cambiar de color al texto hay que poner antes del texto que quieras que se escriba de otro color, lo siguiente: textcolor (el color o numero que quieras), por ejemplo: textcolor(yellow); o text color(7); Y para que cuente los caracteres tienes que poner length (variable del texto que quieras contar) dentro del write.
13
· Ejercicio 11: hay que llamarlo program concatenar, consiste en introducir dos textos, y el programa los junta y los pone en unas coordenadas determinadas. Lo nuevo de este trabajo es lo de sumar textos y lo de las coordenadas. En verdad, lo de sumar textos es igual que la suma de variables, solo que hay que cambiar el tipo a ansistring. Pero lo de las coordenadas se hace poniendo gotoxy (x,y) antes de la linea que quieres mover; x>posicion horizontal y->pos. Vertical.
· Ejercicio 12: lo hemos llamado program mediadelvector; que consiste en introducirle x numeros de elementos al vector, y nos hace la suma y la media. Para eso tenemos que introducir como variable: Vector: array[1..x(Tantos elementos desees introducir)] of real; Luego lo demas es igual, hay que hacer que nos pida tantos elementos como queramos usando el write, luego que haga la suma, y luego que lo divida entre tantos numeros como hallamos puesto.
14
· Ejercicio 13: Lo hemos llamado program positivo; consiste en introducir un numero entero y el programa te dice si es positivo o negativo. Lo nuevo de este trabajo es el uso de las condiciones, es decir a usar el if. Para eso hay que poner If variable>0 then write ('positivo'); else (*Esto es para cuando no se cumpla la condicion haga otra cosa*) write ('negativo');
15
· Ejercicio 14: lo hemos llamado program mayordeedad; consiste en introducir tu nombre y la edad, y si le has puedto 18 años o mas, te pondra que eres mayor, pero si introduces un numero menor de 18 te dira que eres menor. Hemos aprendido a poner dos colores en el mismo if. Para poner dos colores dentro del mismo if hay que introducir un begin y un end.
· Ejercicio 15: Lo hemos llamado program password; El programa te pide el nombre de usuario, si es Juan te pide la contraseña pero si no es Juan te dice que el usuario es incorrecto.Luego al pedirte la contraseña si has puesto 1234; te da la bienvenida, pero si has puesto otra te dice que la contraseña es erronea. Aqui no hemos visto nada nuevo simplemente lo que hay que hacer es usar los IF encadenados (es decir, poner un if para cada una de las condiciones anteriores, uno para si el nombre de usuario es correcto, otro para si la contraseña es correcta …, y asi con todas las condiciones).
16
· Ejercicio 16:lo hemos llamado program adivinar; y consiste en Introducir un numero del 1 al 5 y la maquina te dice si has elegido el mismo numero que ella o no. Para ello hay que usar la funcion random. Bueno pues lo que ay que hacer es poner para si el numero introducido es igual al numero aleatorio premiado que te de la enhorabuena, si el numero no es el mismo te dice el numero premiado, y si le introduces un numero mayor de 5 que te recuerde que es del 1 al 5 y para eso hay que usar varios if.
· Ejercio 17: tambien llamado program sentenciafor: consiste en que el programa te diga los numeros que van del 1 al 10 y luego del 10 al uno, y para ello vamos a usar la sentencia for(que sirve para repetir un proceso). Para que nos diga los numeros del 1 al 10 tendremos que poner For a:=1 to 10 do … Y para poner los numeros del 10 al uno seria de esta manera For a:=10 downto 1 do …
17
· Ejercicio 18: tambien llamado program letra: Consiste en que introduzca a cada numero una letra. Y luego que ponga de la z a la a y su valor numeral. Para ello vamos a usar varios for, en el primero tenemos que poner que desde la constante a a la b, escriba la letra y el valor de las constantes. Y lo hariamos poniendo un entero y chr(entero) en pantalla. Y para la segunda parte habria que poner desde la letra z hasta la a y después que escriba la letra y su numero correspondiente. Y lo hariamos poniendo en pantalla lo siguiente, letra y ord(letra).
· Ejercicio 19: tambien llamado program multiplicar, consiste en introducir un numero y que nos diga la tabla de multiplicar de ese numero. Es mas sencillo de lo que parece, lo hemos hecho con un for desde el 1 al 10 y luego una operación que multiplique al numero dado por todos los numeros hasta que llegue a 10 y pare. Vamos a poner un repeat para que repetir el proceso todo lo que quieras, pero esto es opcional.
18
· Ejercicio 20: tambien llamado program mientras, consiste en contar del 1 al 10 y para ello vamos a usar un while y un delay. De modo que mientras que el numero (que inicialmente es 1) sea menor o igual que 10 siga escribiendo el numero que sera siempre el numero mas 1. Y el delay se lo ponemos antes de escribir el numero para que tarde 1 segundo exacto en sacar el numero siguiente.
· Ejercicio 21: tambien llamado program repetir, y consiste en contar los numeros del 1 al 10, este es como el anterior pero para este vamos a usar la sentencia repeat. Tenemos que poner el repeat después de haberle asociado a la variable el numero 1 y el until después de asociarle a la variable, la variable mas uno. Se repetirá hasta que la variable sea mayor que 10.
· Ejercicio 22: tambien llamado program adivinar2, y consiste en introducir un numero del 0 al 9 y acertar el numero que ha ‘pensado’ el ordenador, y para ello tienes tres oportunidades. Para hacer esto hemos usado un repeat y varios if. Te tiene que preguntar el numero de intentos que vas a usar, entonces haz que reconozca esa variable y luego haz que el ordenador genere un numero aleatorio del 0 al 9. Ahora es cuando se inicia el repeat y te pide el numero, si el numero es el correcto te dice que lo has adivinado, pero si no es el mismo te dira que has fallado y el numero de oportunidades que te quedan y para eso tienes que haberle asignado un poco antes de esto a la variable de las oportunidades 19
la variable de las oportunidades menos 1. Y luego va el until en el que decimos que cuando no nos queden oportunidades acabe el programa, es decir que cuando la variable de los intentos sea igual a 0 ya no se repita.
· Ejercicio 23: tambien llamado program cuadrados. Consiste en introducir un numero y que te de el cuadrado de ese numero. Para ello intoducimos el numero, y luego nos tiene que responder el cuadrado de este numero es a*a.
· Ejercicio 24: tambien llamado program adivinarnumeros. Consiste en adivinar el numero del 0 al 9 que ha generado aleatoriamente el ordenador usando la funcion randomize, y luego cuenta los intentos que has usado para adivinarlo. Para ello hemos usado tres variables y lo mas importante un repeat. Una variable es para el numero generado aleatoriamente, otra variable es para el numero que introduces, y 20
la otra es para el numero de intentos que estas realizando, y por eso hay que decir que la variable inicialmente sea 0 y luego dentro del repeat hay que asociarle la variable de los intentos mas 1.
· Ejercicio 25: tambien llamado program vectores01. Consiste en introducir 5 elementos del verctor y que te lo de diciendo te el contenido de cada uno de los elementos por separado. Para trabajar con vectores hay que poner el tipo de variable array of. En este caso se colocaria así: El nombre de la variable: array [1..5] of integer. Lo que va dentro del corchete son los elementos que quieres que tenga el vector. Luego tambien usaremos una variable entera para contar los elementos del vector. Lo mas importante es la colocacion de los for, para que solo te pida las componentes que tiene el vector, y no lo repita mas veces, por eso la condicion seria desde la variable(que es igual a 1) hasta 5.
21
· Ejercicio 26: tambien llamado program escalar. Consiste en introducir los tres elementos de dos vectores y calcular su suma y su producto vectorial. La suma te la debe de dar en coordenadas de vector, es decir de esta forma, (u1+v1, u2+v2, u3+v3). Y su producto escalar es un numero, cuyo su calculo es este : (u1*v1) + (u2*v2) + (u3*v3).
· Ejercicio 27: tambien llamado Arearectangulo, este ejercicio es igual que el ejercicio 3, porque simplemente hay que hacer el area del rectangulo.
· Ejercicio 28: tambien llamado program paroimpar, consiste en introducir un numero y te dice si el numero introducido es par o impar. Para ello vamos a usar en repeat-until y un if-then-else. El repeat lo usamos para que repita este proceso amenos que respondas negativamente a la pregunta de si quieres repetir el proceso. Y el if lo usaremos para establecer la condición de que si el numero es par que diga que es par y que no lo es, que diga el numero es impar. Para saber si es par tenemos que comprobar que la division entre ese numero y 2, tiene como resto 0, si su resto no es 0 será impar. Y eso se hace mediante la función mod, por ejemplo: Var mod 2=0. 22
· Ejercicio 29: tambien llamado ecuacion2grado. Consiste en calcular una ecuación de segundo grado introduciendo el termino indepente, y los coeficientes de la x y la x al cuadrado. Te tiene que pedir las tres variables de la ecuación de segundo grado, y luego a la hora de hacer las operaciones tienes que tener en cuenta las excepciones, por ejemplo cuando el coeficiente de la x al cuadrado es 0, tenemos que marcar que no es una ecuación de segundo grado; o tambien si el coeficiente de la x es 0, las operaciones a seguir son +Sqrt(c/a) [El Sqrt es para hacer raices cuadradas] y –Sqrt(c/a). Para poner las distintas condiciones tenemos que usar if, y el else lo pondremos para cuando no se cumplan dichas condiciones, y que haga la formula por definición [((-b+Sqrt(b^2-4*a*c))/2*a) y ((-b-Sqrt(b^2-4*a*c))/2*a)]. Luego tambien hay que usar un repeat y que te pregunte si quieres repetir, entonces repetira el proceso a menos que escribas ‘n’ o ‘N’; para ello ponemos el repeat al principio y despues de la pregunta tenemos que asignarle a la variable ‘char’ el readkey; y por ultimo poner si esa variable empieza por ‘n’ se cierre el programa.
23
· Ejercicio 30: tambien llamado program factorial. Consiste en introducir un numero y que el programa nos calcule el factorial de ese numero. Para calcular el factorial es necesario introducir un repeat-until. Antes de el repeat ya deberiamos haber introducido la variable y haberle asignado el valor 1 a una variable entera, por ejemplo ‘f’; después dentro del repeat hay que asignar f-1 a la variable f, y al numero que introducimos le asignamos la misma variable-1. Esta condicion se repetira hasta que la variable del numero introducido sea igual a 1, entonces cuando sea 1 escribe el factorial del numero introducido es la variable ‘f’.
· Ejercicio 31: tambien denominado contando.Consiste en ir sumando numeros hasta poner el 0 que se acaba el programa. En este programa utilizamos 2 variables reales, la constante del delay, y char para introducir la letra.Comenzaremos introduciendo numeros para que los vaya sumando utilizando el repeat ,hasta introducir el 0 que se acaba el programa y te pregunta si quieres volver a empezar para ello se utiliza otro repeat.
24
· Ejercicio 32: tambien llamdo Megraprograma. Consiste en introducir las notas de bachiller y la pau y que te calcule la nota para el acceso a la universidad. El programa te va pidiendo todas las notas de todas las asignaturas, con las de bachiller se hace la media aritmetica pero cuando llega a las notas de la pau, las generales ponderan una cosa y las especificas otras, antes de nada al comienzo del programa te pregunta si eres de ciencias. Para este programa hemos utilizado 31 variables que constan de las asignaturas que hay, las notas medias, etc. Las funciones que hemos utilizado son el IFTHEN(para responder a la pregunta de que si eres de ciencias), DELAY(poner intervalos de tiempo entre preguntas). Otra cosa que se puede utilizar es el textcolor, textbackground, el primero sirve para cambiar el color del texto, y el segundo para cambiar el color de del fondo de pantalla del programa. Para sacar la nota de acceso hemos de sumar las diferentes notas medias para ello haremos la media de bachiller (se halla sumando las diferentes notas y dividiéndolo entre el número de notas correspondientes) y la multiplicaremos por 0,6. Para la nota de la Pau, primero hay que calcular la nota general, hemos de las diferentes notas obtenidas, dividirlas entre 5 y multiplicar por 0,4. Una vez hallada la nota general falta calcular la específica, introducir las dos notas de modalidad y multiplicar por su ponderación (0,2 o 0,1), lo haremos sumando el resultado de las multiplicaciones de la ponderacion y la nota obtenida en las pruebas especificas.Por ultimo para obtener la nota de acceso a la universidad se suma todas las medias. En el programa hemos utilizado el TEXTCOLOR para cambiar el color del texto.El TEXTBACKGROUND para cambiar el color del fondo de pantalla.
25
26