



































Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Apuntes de Metodología y Tecnología de la Programación sobre el lenguaje de programación PASCAL, Estructura de un programa Pascal, Identificadores, Entrada de datos.
Tipo: Apuntes
1 / 43
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!




































Introducción El lenguaje de programación PASCAL, fué diseñado por Niklaus Wirth en Zurich entre 1970 y 1971, con la finalidad de ser utilizado para la enseñanza de los conceptos de programación y para facilitar el desarrollo de aplicaciones comerciales y científicas. El Pascal es un lenguaje estructurado y permite realizar una programación modular. El Pascal se usa en un ambiente Pascal estructurado, en un ambiente de objetos como el Object Pascal ó en un ambiente visual como el DELPHI 2. En el curso usaremos el Object Pascal en el ambiente del Delphi 2. Para trabajar con el Pascal en el ambiente del Delphi 2, debemos realizar lo siguiente: 1.− Ingresar al Delphi 2 2.− Elija Project/Options del menú principal. 3.− Elija Linker 4.− Marcar `Generate Console Application' 5.− Elija Projec, View Source. Puede trabajar su programa en la ventana del Project1. Para ejecutar un programa, presione la tecla F9. Para salvar su programa elija la opción File del menú Principal y luego la opción Save As. Para compilar el programa, elija Project/Compile ó presione Ctrl−F9. Estructura de un programa Pascal Program Nombre programa; Uses Identificadores; Const {Definición de constantes;} Type {Declaración de tipos de datos definidos por el usuario;} Var {Declaración de variables;}
Procedure Definición de procedimiento Function Definición de funcion Begin {Inicio del cuerpo del programa principal} Sentencias End {Fin del programa principal} Ejemplo de un programa en Pascal Program Ejemplo1; Uses Forms; Const A=2; Var B:Integer; C:Integer; Begin Writeln(ingrese un numero'); readln(B); C:=b*a; Writeln(El doble del numero es = ,c); Readln; End. **Program** .− Indica el nombre del programa. En Delphi no podemos cambiar el nombre directamente, sino a través del **Save As.** Si cambiamos directamente, al momento de salvarlo nos da un error. Este nombre no puede tener espacios en blanco intermedio. Ejemplo de nombres : Programa, Serie_01, Calcular_area, etc. **Uses** .− Identifica todas las unidades utilizadas en el programa. Ejemplo: Forms, Wincrt, etc. **Const** .− Permite definir nombres de constantes que tienen un valor único, que no puede ser modificado mientras se ejecuta el programa. Ejemplo Const A=20; B= A*10; C=Curso'; D= 20*5;
Word.− Representa solo valores positivos que están dentro del rango de 0 a 65535. Ocupa 2 bytes de memoria. Tipo Bytes Rango Signo Byte 1 0 a 255 No Integer 2 −32768 a +32767 Si Longint 4 −2147483648 a Si
Word 2 0 a 65535 No Real .− Permite almacenar números que tiene decimales. Cualquier número se puede representar como real. Tipo Bytes Rango Real 6 2.9 x 10−39 a 1.7 x 10+ Single 4 1.5 x 10−45 a 3.4 x 10+ Double 8 5 x 10−324 a 1.7 x 10+ Extended 10 3.4x10−4951 a 1.1x10+ Los enteros ocupan menos memoria que los reales. Las operaciones con enteros son siempre precisas. Normalmente las operaciones con enteros son mas rápidas que con números reales. Char .− Es un tipo de dato que puede contener un solo carácter ASCII, es decir puede almacenar una letra, un dígito ó un carácter especial. Ejemplo A', 'X', '*', ', '1'. Ejemplo de programa: Program Ejemplo01; Uses Forms; Var letra : char; Begin letra:='S'; Writeln(`El carácter es',letra); letra:='5';
Writeln(El carácter es',letra); Readln; End. **String** .− Representa cadenas de caracteres que tienen 0 ó mas caracteres tipo ASCII y están encerradas entre apóstrofes ( ). Una cadena nula ó vacía, no tiene nada entre los apóstrofes. La longitud de una cadena es el número de caracteres encerrados entre apóstrofes. Ejemplo : Program Ejemplo02; Uses Forms; Var letras1: String[20]; letras2: String[25]; Begin letras1:='Colegio'; letras2:='Colegio Peruano Británico'; Writeln(Nombre : ',letras1,letras2); Readln; End. Variant .− Este tipo permite representar valores que cambian dinámicamente, es decir una variable de este tipo puede asumir valores de diferentes tipos en tiempo de ejecución, tales como valores integer, reales, string, boolean, etc. Una variable tipo variant puede ser combinado con otros valores variant, integer, reales, string y boolean. Este tipo de dato consume mayor memoria que los otros tipos de datos, además las operaciones son mas lentas. Ejemplo : Program Ejemplo03; Uses Forms; Var numero1:integer;
La sentencia de asignación se usa para almacenar valores a las variables. Tiene el sgte. Formato: variable := expresión Donde variable recibe el valor de la expresión. El operador de asignación es := expresión es un valor constante, una variable ó una operación. La expresión y la variable deben de ser del mismo tipo de datos. Ejemplo: A1:= 16; {A1 recibe el valor de 16} A2:= A1*5 {A2 recibe el valor del producto} N1:='USIL'; {N1 recibe el valor de USIL} Una sentencia de asignación es una operación destructiva porque el valor almacenado en la variable se pierde ó se sustituye por el valor de la expresión. Ejemplo: A1 := 10; {A1 guarda el valor de 10} A1 := 20; {A1 reemplaza el 10 por el 20 Contador.− Es una operación de asignación que al ser ejecutada incrementa el valor de una variable en una unidad ó en una cantidad constante. Tiene el siguiente formato : contador := contador + 1; Ejemplo: numero := 21; numero := numero + 1; El nuevo valor de la variable número es 22, si ejecutamos varias veces la segunda sentencia del ejemplo, la variable número se incrementa en una unidad cada vez. Acumulador.− Es una operación de asignación que al ser ejecutada incrementa el valor de una variable en una cantidad variable. Tiene el siguiente formato : acumulador := acumulador + n ; n es una variable que puede tener diferentes valores. Ejemplo : B:= 10; suma:=0; suma := suma + b ;
b := 15; suma := suma + b ; El valor de la variable suma es de 25 al finalizar el ejemplo. Los acumuladores se usan para realizar la suma de diferentes valores. Comentarios .− Son textos explicativos que ayudan a la comprensión de un programa. Pueden ir en cualquier parte del programa, puede ocupar varias líneas. Los comentarios van encerrados entre llaves { } ó entre (* ). Ejemplo: A1:= 16; (A1 recibe el valor de 16) A2:= A15; {A2 recibe el valor del producto} N1:='USIL'; {N1 recibe el valor de USIL} Expresiones .− Una expresión es un conjunto de datos ó funciones unidos por operadores aritméticos. En Pascal podemos trabajar con diferentes tipos de operadores, tales como: operadores aritméticos, operadores de relación, operadores lógicos. Operadores Aritméticos.− Permiten realizar operaciones aritméticas, tales como suma, resta, etc. Operador Significado Ejemplo
que este programa se ejecute debemos definir var1 como real ó variant. Operaciones de Entrada y Salida Las operaciones de entrada y salida permiten ingresar datos a la computadora desde diferentes dispositivos, tales como el teclado, un archivo de disco, etc. y mostrar datos ó resultados. La lectura se realiza por medio de la sentencia Read ó Readln. La salida se realiza por medio de la sentencia Write ó Writeln. Entrada de datos Permite ingresar datos durante la ejecución de un programa. El formato es el siguiente: Read (var1, var2, .. varN); Readln(var1, var2, .varN); Var1, varN son las variables que van a almacenar los valores a ingresar. Una sentencia Read ó Readln es posible que no tenga ninguna variable, que tenga solo una variable ó que tenga muchas variables. Cuando se ejecuta la sentencia Read ó Readln, el proceso se detiene hasta ingresar un valor y presionar la tecla Enter ó hasta presionar solo la tecla Enter. Ejemplo: Program Ejemplo06; Uses Forms; Var nombre : string[20]; edad : integer; Begin Readln(nombre); Readln(edad); Readln; End. Salida de datos Permite mostrar datos durante la ejecución de un programa.
El formato es el siguiente: Write (item1, item2, itemN); Writeln(item1, item2, ...itemN); ítem representa al objeto a visualizar, puede ser una constante literal, una variable, una llamada a una función ó una combinación de ellos. Al ejecutar la sentencia Writeln, el cursor salta a la siguiente línea, en cambio con Write el cursor se queda al final del último elemento en la misma línea. Writeln sin ningún item proporciona saltos ó avances de línea. Formatos de Salida Permiten definir la longitud de los items de salida, es decir especifican el número de posiciones del campo de escritura y para los números reales es posible precisar además el número de decimales deseados. Tiene el siguiente formato: Writeln ( ítem :longitud,); Writeln (ítem : longitud: dígitos, ..); Anchura, especifica la cantidad de caracteres del campo en que se escribe el ítem. Dígitos, indica la cantidad de decimales de un número real. Si no vienen dígitos significa que el ítem no es real. Ejemplo: X := 12.345 ; Y := 67 ; Writeln (X:7:4); da 12. Writeln (X:7:1); da 12. Writeln (Y:4); da 67 Writeln(`USIL':5); da USIL Funciones Matemáticas Standard Función Descripción Abs(X) Da el valor absoluto de X Sqr(x) Da el cuadrado de X Sqrt(X) Devuelve la raíz cuadrada de X
1.− Se evalúa la expresión lógica 2.− Si la expresión lógica es verdadera ejecuta la sentencia A y luego el control pasa a la siguiente sentencia después del IF THEN ELSE. 3.− Si la expresión es falsa ejecuta la sentencia B y el control pasa a la sgte. Sentencia después del IF THEN ELSE. 4.− La sentencia Else es opcional. Para evaluar la expresión lógica es necesario utilizar operadores de relación tales como : operador significado
mayor que < menor que = igual a = mayor ó igual que < = menor ó igual que < > diferente a Además podemos usar operadores lógicos como: operador significado And Conjunción Or Disyunción Xor Disyunción exclusiva Not Negación Ejemplo : Begin Readln (número) ; If número > 0 Then Writeln (
Número positivo') Else Writeln (Número negativo') ; End.
El punto y coma separa dos sentencias. La sentencia If del ejemplo, termina con la sentencia del ELSE. En vez de una sola sentencia, el Then y/o el Else pueden tener sentencias compuestas (son conjunto de sentencias separadas por puntos y comas que van entre un Begin y un end End). Ejemplo: Begin Readln (número) ; If número > 0 Then Begin Writeln (Número positivo') ; Writeln (Número mayor que 0') ; End Else Begin Writeln (Número negativo') ; Writeln (Número menor que 0') ; End ; Readln ; End. Consideración: Si la expresión lógica contiene mas de una comparación, estas tienen que ir encerradas entre paréntesis, sino da error. Ejemplo : If (a > 0) and (b < 15) Esta expresión es verdadera si a es mayor que 0 y b es menor que 15. If (a > 0) or (b < 15) Esta expresión es verdadera si a es mayor que 0 o b es menor que 15.
Case operación Of *' : Writeln(Ud. va a multiplicar') ; /' : Writeln(Ud. va a dividir') ; +' : Writeln(Ud. va a sumar') ; −' : Writeln(Ud. va a restar') ; End; Readln; End. Program Case02; Uses Forms; Var caracter : char; Begin Write(Ingrese un caracter) ; Readln(caracter) ; Case caracter Of 0'..9' : Writeln(es una cifra') ;a'.. z' : Writeln(es una letra minuscula') ; A'. .'Z': Writeln(es una letra mayuscula') ; *','/','−,'+' : Writeln(es un simbolo') ; End; Readln; End. Los dos puntos seguidos que aparece en0' y `9', indican que el valor de la variable se va a evaluar entre el rango de valores comprendidos entre esas dos constantes (0 y 9). Estructuras de Control Repetitivas , son aquellas que permiten repetir varias veces una sentencia ó un grupo de sentencias. A este grupo de sentencias se le denomina ciclo, lazo ó bucle (loop). Las sentencias que tienen esta estructura son :
While do, Repeat Until, For to do, For downto do. Sentencia WHILE.− Permite repetir un grupo de sentencias mientras se cumple una condición Formato : a.− WHILE expresión lógica DO Sentencia A; b.− WHILE expresión lógica DO Begin Sentencia 1 ;
..... Sentencia N ; End; En el caso (a), el bucle es la sentencia A. En el caso (b), el bucle son las sentencias que están entre el Begin y el End. Modo de ejecución : 1.− Se evalúa la expresión lógica. 2.− Si es verdadera se ejecuta el bucle, si es falso, el control del programa pasa a la siguiente sentencia del bucle. 3.− Cada vez que ejecuta el bucle, regresa al While y vuelve a evaluar la expresión lógica. Consideraciones: 1.− Antes de cada iteración se evalúa la condición. 2.− Si en la primera evaluación, la expresión lógica es falsa, el bucle no se ejecuta ninguna vez. 3.− Si la expresión lógica siempre es verdadera, la ejecución del bucle es infinita. Ejemplo : Sumar los n primeros números enteros. Program While01; Uses Forms; Var n,i : integer; acum : integer;
Consideraciones : 1.− Después de cada iteración se evalúa la condición. 2.− El bucle se ejecuta por lo menos una vez. 3.− El bucle no necesita de un Begin y de un End. Ejemplo : Sumar los n primeros números enteros. Program Repeat01; Uses Forms; Var n,i : integer; acum : integer; Begin Write(Ingrese un numero'); Readln(n) ; i := 0 ; acum := 0 ; Repeat i := i + 1; acum := acum + i ; Until i > = n ; Writeln(La suma es `,acum:5); Readln; End. En este ejemplo, se repiten dos sentencias (i:=i+1 y acum:=acum+1) hasta que el valor de i sea mayor ó igual que el valor de n. Analice las diferencias entre el While y el Repeat. Sentencia FOR .− Permite ejecutar una ó un grupo de sentencias un número determinado de veces. Esta sentencia se utiliza cuando se conoce el número de iteraciones. Formato :
(a) FOR variable:= valor inicial TO valor final DO Sentencia A; (b) FOR variable:= valor inicial TO valor final DO Begin Sentencia 1;
...... Sentencia n; End; En el caso (a), el bucle es la sentencia A. En el caso (b), el bucle son las sentencias que están entre el Begin y el End. Modo de ejecución : 1.− La primera vez la variable toma el valor inicial 2.− Se ejecuta el bucle. 3.− Se incrementa el valor de la variable en una unidad. 4.− Vuelve a la linea del For y evalúa si el valor de la variable es menor ó igual al valor final. 5.− Si es verdadero, ejecuta otra vez el bucle, si es falso termina con el For. Consideraciones : 1.− La variable,el valor inicial y el valor final deben ser del mismo tipo. 2.− El tipo real no es permitido. 3.− El valor inicial y/o el valor final, pueden ser variables ó constantes. 4.− No es posible modificar el valor de la variable. 5.− El valor inicial debe ser menor que el valor final. 6.− En cada iteración se incrementa en una unidad el valor de la variable. 7.− Si desea decrementar el valor de la variable, use en vez del TO el DOWNTO y el valor inicial debe ser mayor que el valor final. 8.− La variable debe ser de tipo ordinal.