unidad 4. estructura de datos en funciones y

Anuncio
UNIDAD 4. ESTRUCTURA DE DATOS EN FUNCIONES Y
PROCEDIMIENTOS.
INTRODUCCIÓN AL TURBO PASCAL.
El lenguaje Turbo Pascal se caracteriza por ser un lenguaje de propósito general (puede
usarse en un gran número de diversas aplicaciones), es un lenguaje procedimental, es
estructurado (usa las estructuras repeat, for, while y no necesita go to) y recursivo, y
posee una gran riqueza de tipos de datos.
Un programa en PASCAL es un conjunto de instrucciones o sentencias, escritas según
ciertas reglas, para realizar operaciones sobre entidades de datos conocidas como
constantes, variables y resultados de funciones.
Estructura de un programa haciendo uso del lenguaje Turbo Pascal:
PROGRAM identificador
USES
Encabezamiento
asocia una serie de rutinas
de control de pantalla
LABEL
declaración de etiquetas
CONST
definición de constantes
Sección de declaraciones y
TYPE
declaración de tipos de datos
definiciones
definidos por el usuario
VAR
declaración de variables
FUNCTION
>PROCEDURE Declaraciones y cuerpo
Sección de subprogramas
de los subprogramas
BEGIN
Sentencias
o
instrucciones
Cuerpo del programa o
Sección Ejecutable
END.
Ing. N ahiby Castillo
11
El encabezamiento
Un programa escrito en PASCAL empieza siempre con un encabezamiento que consiste
en:
• La palabra reservada PROGRAM.
• El nombre del programa.
• Los nombres de los ficheros externos que se usan para entrada y salida. Se escriben
separados por comas y entre paréntesis.
• El delimitador punto y coma.
La sección de las declaraciones
Todas las entidades definidas por el usuario que se usan en un programa deben ser
declaradas en esta sección, indicando un identificador y lo que representa.
ETIQUETAS
(LABEL)
CONSTANTES
(CONST)
TIPOS
(TYPE)
VARIABLES
(VAR)
PROCEDIMIENTOS
(PROCEDURE)
FUNCIONES
(FUNCTION)
• No es necesario que un programa contenga declaraciones de todas esas categorías.
• Las declaraciones pueden escribirse en un orden cualquiera.
• Una misma clase de declaración puede aparecer más de una vez. Pero una
declaración particular no se puede repetir en un bloque.
• Las etiquetas son enteros decimales que pueden usarse para señalar alguna sentencia
y hacerla accesible mediante la sentencia GOTO.
Ejemplo:
TYPE estaciones = (primavera, verano, otoño, invierno) ;
VAR letra : CHAR;
CONST pi = 3.1416 ;
LABEL 100, 200, 300 ;
Ing. N ahiby Castillo
12
La sección ejecutable
Contiene a las sentencias que, cuando se ejecutan, realizan las acciones del programa.
La sección ejecutable sigue a la de las declaraciones y está delimitada por BEGIN y END,
terminando en un punto.
Entre BEGIN y END puede haber sentencias condicionales, repetitivas, sentencias de
asignación, sentencias que controlan el flujo de la ejecución.
OBJETOS DE UN PROGRAMA EN TURBO PASCAL.
IDENTIFICADORES: un identificador es un nombre dado a un elemento de programa, tal
como una constante, una variable, un procedimiento, un programa, una función, una
unidad, un campo de registro, etc.
CARACTERÍSTICAS DE LOS IDENTIFICADORES:
• Secuencia de caracteres de cualquier longitud, sólo los 63 primeros son significativos.
• Debe comenzar por una letra (A Z) y no puede contener blancos.
• Después del primer carácter se aceptan letras, dígitos y subrayado ( _ ).
• No se pueden usar palabras reservadas.
Ejemplos válidos: N OMBRE_APELLIDO, IMPUESTO, NOTA2, H346
Ejemplos no válidos: NOMBRE APELLIDO, EJ?AB, 23ALX, 4NOM, &NOM
NOTA: El Turbo Pascal no distingue las letras mayúsculas de las minúsculas en los
identificadores. Ejemplo: EDAD edad Edad son identificadores válidos e idénticos.
PALABRAS RESERVADAS: son palabras que tienen un significado especial y que no se
pueden utilizar para otros propósitos. Las palabras reservadas no se pueden usar como
identificador.
Ejemplo de palabras reservadas: ABSOLUTE, AND, ARRAY, BEGIN, CONST, DIV, DO,
DOWNTO, ELSE, END, EXTERNAL, FILE, FOR, FORWARD, FUNCTION, GOTO, IF,
IMPLEMENTATION, IN INLINE, INTERFASE, INTERRUPT, LABEL, MOD, NIL, NOT, OF,
Ing. N ahiby Castillo
13
OR, PAKED, PROCEDURE, PROGRAM, RECORD, REPEAT, SET, SHL, SHR, STRING,
THEN, TO, TYPE, UNIT, UNTIL, USES, VAR, WHILE, WITH, XOR, etc.
DATOS: es una representación simbólica (numérica, alfabética, algorítmica etc. Cifras
originales que por si solas tienen poco significado. Son los conceptos básicos o
elementales como el nombre de las cosas o personas, las cantidades, etc.
TIPOS DE DATOS:
DATOS NUMÉRICOS: conformados por dígitos, puede incluir un signo (+,-), un punto
decimal ( . ) y un exponente. No pueden contener comas ( , ) o espacios en blanco.
DATOS NUMÉRICOS ENTEROS (INTEGER): No contienen ni punto decimal, ni
exponente.
Ejemplo: 5 +5 -6 7343
Rango de valores posibles entre: -32768 ....32767
Enteros largos (LOGINT), su rango de valores: -2147483648 .....2147483647
DATOS NUMÉRICOS REALES (REAL): Deben contener punto decimal ( . ) o un
exponente o ambos.
Ejemplo: 0.0 -0.2 -314.63 0.000078 +32.45 32.45
En forma exponencial la base 10 se reemplaza por la letra E, manteniendo la forma
siguiente: nE+-dd donde n = número decimal y dd = exponente entero (+,- o cero) .
Ejemplo: 5.2x10-4 5.2E-4 5.2e-4 -6.784E-12 7.0E5 7.0E+5
DATOS CARACTER (CHAR): sólo pueden contener un caracter y deben estar encerrados
entre apóstrofes. Pueden ser una letra (A Z), un dígito ( 0 9) o un caracter especial ($,*, &,
etc.).
Ejemplo: ‘A’ ‘*’ ‘6’ ‘ ‘ ‘X’
NOTA: No se pueden utilizar apóstrofes cuando se introducen caracteres desde el
terminal.
Ing. N ahiby Castillo
14
DATOS CADENA (STRING): es una secuencia de caracteres (letras, dígitos o caracteres
especiales) escritos en una línea sobre el programa y encerrados entre apóstrofes,
generalmente no mayor de 255 caracteres.
Ejemplo: ‘DIOS SI EXISTE’ ‘¿COMO ESTAS?’ ‘EDO. MERIDA’
‘6457-AL3’ ‘2X(3+D)-J’
DATOS LÓGICOS (BOOLEAN): pueden tomar sólo dos valores:
true significa verdadero
false significa falso donde false < trae
CONSTANTES: son datos que no varían durante la ejecución o vida del programa. El dato
simple se asocia a menudo a un IDENTIFICADOR que le proporciona un nombre al dato.
El identificador se dice que es una constante si se le asigna un dato permanente.
Las constantes deben ser declaradas antes de su utilización.
Forma de definición de constantes:
CONST
nombre = valor;
nombre1, nombre2, …. nombren = valor;
Donde:
CONST es la palabra reservada para la declaración de constantes
nombre es un identificador que representa el nombre de la constante
valor es el dato efectivo que se asigna al nombre, el cual puede ser entero,
real, carácter, cadena, lógico, ..., conjuntos o arreglos,.. o una expresión que se
evalúa en tiempo de compilación.
; punto y coma es el elemento separador de sentencias.
Ejemplos:
CONST
Pi = 3.141592; Constante real
CUENTA = 632; Constante entera
Min = 0; Constante entera
SUMA = (2.5+40)/(3.5-4); Constante real
COLOR = ’AZUL’; Constante cadena (string)
ANCHO,ALTO,LONG = 25; Constantes enteras
SEC = ‘X’; Constante caracter
Ing. N ahiby Castillo
15
NOTA: El tipo del valor asociado a la constante define el tipo de la constante. Los valores
de las constantes tipo cadena o caracter deben ser asignados entre apóstrofes.
VARIABLES: Es un identificador cuyo valor puede cambiar durante la ejecución del
programa. Cada variable debe ser declarada (definida) individualmente en la sección de
declaración del programa antes de ser utilizadas.
Forma de definición de variables:
VAR nombre: tipo;
Donde:
o
VAR nombre1, nombre2, ...nombren: tipo;
VAR: es la palabra reservada para la declaración de variables.
nombre: es el identificador que representa el nombre de la variable.
tipo: se refiere al tipo de dato contenido en la variable. Existen tantos tipos de
variables como tipos de datos diferentes.
; punto y coma es el elemento separador de sentencias.
Ejemplos:
VAR
EDAD: INTEGER;
SALARIO: REAL;
NOMB: STRING[30];
LETRA: CHAR;
NACIONALIDAD: CHAR;
CONDICION: BOOLEAN;
NOTA: Las definiciones de constantes deben preceder a las declaraciones de variables.
Ejemplo: CONST TITULO = ‘LA CASA DE LA CULTURA’;
FRAC = 0.18453;
VAR FILA, COLUMNA: INTEGER;
SB: REAL;
COMENTARIOS: es cualquier frase encerrada entre llaves { } o entre los signos (* *) que
puede acompañar a las instrucciones de un programa, sean estas de declaraciones o
pertenecientes al cuerpo del mismo.
Ejemplo:
VAR EDAD: INTEGER; {Edad del estudiante}
Ing. N ahiby Castillo
16
Expresiones:
Las expresiones son combinaciones de constantes, variables, símbolos de operación
(matemáticos, lógicos y relacionales) y nombres de funciones que se utilizan en el cuerpo
del algoritmo. Las expresiones pueden ser simples o compuestas.
Las expresiones simples, son asignaciones directas a una variable o constante de un
valor numérico o carácter, véase el siguiente ejemplo:
Nombre de la Expresión
Valor asignado
Explicación o análisis
A
B
FECHA
DÓLAR
=6
= ‘DEFINITIVO’
= dd/mm/aa
=2120
PAIS
=’VENEZUELA’
A la variable A se le asigna el valor de 6
A la variable B se le asigna el valor ‘DEFINITIVO’
A la variable FECHA se le asigna una fecha dada
A la constante DOLAR se le asigna el valor 2120
A la constante PAIS se le asigna el valor
‘VENEZUELA’
Una expresión compuesta es la asignación a una variable o constante que surge de la
unión de valores numéricos, operadores aritméticos, de comparación o lógicos. Por
ejemplo:
Nombre de la
Expresión
Valor asignado
A
=6*2
C
=A+B
EDAD
=AÑOACTUAL - ANONAC
SUELDO
=DIASTRAB*SDIARIO
Explicación o análisis
A la variable A se le asigna el valor 12, que resulta de
multiplicar 6 por 2
A la variable C se le asigna el valor de sumar A + B
La variable EDAD obtendrá el resultado de restarle a la
constante ANÑOACTUAL el valor de la variable ANOÑAC
La variable SUELDO tomará el valor de multiplicar los días
trabajados contenidos en la variable DIASTRAB por el
valor de salario diario contenido en SDIARIO
Expresiones Aritméticas
Son utilizadas para construir formulas matemáticas. Las variables y constantes utilizadas
son de naturaleza numérica, es decir números enteros o reales, y las operaciones a
efectuar son de orden aritmético.
Operadores Aritméticos
Operadores
+
*
**
/
Significado
Sumar
Restar
Multiplicar
Exponenciación
División
Ejemplo
Interpretación
SI A=10 y B=13
A-B
A*B
A**B
A/B
Resultado es: 23
-3
130
100.000.000.000.000
0,76
Ing. N ahiby Castillo
17
REGLAS PARA EVALUAR EXPRESIONES ARITMÉTICAS:
1. Todas las subexpresiones entre paréntesis se evalúan primero. Las subexpresiones con
paréntesis anidados se evalúan de dentro hacia fuera. El paréntesis más interno se
evalúa primero.
2. Prioridad de operadores aritméticos:
* / div mod se evalúan primero
+ - se evalúan de último
Ejemplos:
4+2*5
4+10
23*2div5
14
46div5
3+5*(10-(2+4))
9
3+5*(10-6)
(9+3)*5div4mod7+1
12*5div4mod7+1
3+5*4 3+20
23
60div4mod7+1
15mod7+1
1+1
2
Expresiones Relacionales
Se construyen a partir de los operadores relacionales (de relación o comparación, = , > , <
, >=, <=, <>. Los operadores relacionales sirven para expresar las condiciones en los
algoritmos. Si A=10 y B=13
Operadores
>
<
>=
<=
=
<>
Significado
Mayor que
Menor que
Mayor igual
Menor igual
Igual
Diferente
Ejemplo
Interpretación
A>B
A<B
A >= B
A <= B
A=B
A <> B
Resultado: FALSO
VERDADERO
FALSO
VERDADERO
FALSO
VERDADERO
Orden de Evaluación
Al incluir estos operadores con los operadores aritméticos, obtenemos este nuevo orden
de evaluación:
Prioridad
1
2
3
4
Operador
Contenido de paréntesis ()
*,/,div,mod
+,=, <, >, <=, >=, distinto a
Ing. N ahiby Castillo
18
Contador: Un contador es una variable cuyo valor se incrementa o decrementa en una
cantidad constante, cada vez que se produce un determinado suceso, acción o iteración.
Para incluir un contador en un proceso deberá seguirse
los siguientes pasos:
Inicializar antes del ciclo
Ejemplo: Se requiere obtener cuantos números primos
existen del número 1 hasta el 100.
Inicio
Cuentaprimo= 0
Numero = 1
Incrementar dentro del ciclo
Si se requiere puede imprimirse el valor con el cual
finaliza el contador.
Un contador se construye colocando el nombre del contador
= nombre del contador + el valor del incremento.
Se lee de la siguiente manera: A la variable Cuentaprimo (el
contador en este caso) se le asigna el valor que trae y se
incrementa en uno, en la primera iteración o lectura de
datos, el valor que trae, es 0, al ejecutarse la instrucción del
contador se incrementa en uno, y así sucesivamente hasta
que se finalice el ciclo. Este contador se incrementará cada
vez que la formula determine que el número en proceso es
primo
Leer Numero
Mientras Número <= 100
Aplicar fórmula primo
Si es primo Entonces
Cuentaprimo = Cuentaprimo + 1
Imprimir Número
Fin Si
Numero = Numero + 1
Fin Mientras
Imprimir Cuentaprimo
Fin
Acumulador: Un acumulador es una variable que suma sobre sí misma un conjunto de
valores, al finalizar con el ciclo contendrá, en una sola variable, la sumatoria de todos los
valores, que cumplen una determinada condición.
Para incluir un acumulador en un proceso se deben seguir los siguientes
pasos:
Ejemplo: Se requiere obtener cuantos números
primos existen del 1 hasta el 100, pero además se
requiere su sumatoria.
Inicializar antes del ciclo
Inicio
Cuentaprimo= 0, Sumaprimo = 0
Numero = 1
Incrementar dentro del ciclo
Por lo general se requiere la impresión de su valor.
Leer Numero
Un acumulador se construye colocando el nombre del acumulador
= nombre del acumulador + el valor variable. Ej: Sumaprimo
Mientras Número <= 100
Aplicar fórmula primo
Se lee de la siguiente manera: A la variable Sumaprimo se le asigna el
valor que trae, que en su inicio es cero, más el valor que contiene la
variable Número. De esta manera Sumaprimo contiene el valor del
primer número. Cuando ocurre el encuentro del siguiente número primo
y deba incrementarse el acumulador Sumaprimo, la instrucción dice que
Sumaprimo, es igual al valor que trae o tiene actualmente, que en esta
segunda iteración corresponde al primer número primo, más el valor del
siguiente número primo encontrado, este proceso se realizará cada vez
Si es primo Entonces
Cuentaprimo = Cuentaprimo + 1
Sumaprimo = Sumaprimo + Número
Fin Si
Imprimir Numero
Numero = Numero + 1
Fin Mientras
Imprimir Cuentaprimo, Sumaprimo
Fin
que se encuentre un número primo, acumulando la sumatoria de todos
los números primos hasta llegar al número 100.
Ing. N ahiby Castillo
19
UNIDADES TURBO PASCAL
UNIDAD SYSTEM
Contiene los procedimientos y funciones estándar de Turbo Pascal relativas a la
entrada/salida, cadenas de caracteres, calculo en coma flotante, gestión de memoria,
entre otras funciones.
UNIDAD CRT
Esta unidad proporciona un conjunto de declaraciones que permiten el acceso al control
de los modos de pantalla, de teclado, posicionamiento del cursor, entre otros.
Algunos de sus procedimientos son:
• clrscr: borra la pantalla.
• keypressed: detecta la pulsación de una tecla.
• Sound: hace sonar el altavoz interno
• window: define una ventana de texto en la pantalla.
UNIDAD DOS
Esta unidad contiene declaraciones, constantes, tipos variables, procedimientos y
funciones relacionadas con el sistema operativo DOS y la gestión de archivos.
Algunos de sus procedimientos son:
• gettime: proporciona la hora a través del reloj interno
• getdate: proporciona fecha registrada en el ordenador.
• Disksize: proporciona el tamaño de la unidad de almacenamiento señalada.
UNIDAD PRINTER
Esta unidad facilita la tarea del programador cuando utiliza la impresora como dispositivo
de salida. Permite enviar la salida estándar de Pascal a la impresora utilizando para ello
los procedimientos “write” y “writeln.”
LA DECLARACIÓN USES
Para declarar una unidad, o lo que es lo mismo, dejarla lista para ser utilizada, se utiliza la
palabra reservada USES que debe ir inmediatamente después de la sentencia
PROGRAM, después se escriben los nombres de las unidades que se utilizarán.
Ing. N ahiby Castillo
20
Reglas sintácticas
• El punto y coma ( ; ) y el punto ( . ) son DELIMITADORES en PASCAL.
El punto y coma separa sentencias consecutivas. También se usa para terminar el
encabezamiento del programa y las declaraciones de los datos. No es necesario
escribir punto y coma después de la palabra BEGIN ni antes de la palabra END porque
BEGIN y END no son sentencias.
El punto indica el final del programa.
• Las palabras BEGIN y END también son delimitadores, no son sentencias. Se usan
para separar las partes funcionales de un programa. Con ellas se indica el principio y el
final de la sección ejecutable. También sirven para delimitar una sentencia compuesta.
Cada BEGIN debe estar asociado con un END, excepto en dos casos: la sentencia
CASE y la declaración de RECORD.
• El PASCAL permite formato libre en la escritura del texto que compone el programa. Se
pueden colocar las sentencias en cualquier lugar de una línea, escribir una sentencia
en más de una línea y colocar varias sentencias en una misma línea. Pero no se puede
dividir un nombre y un número entre varias líneas o con un espacio en blanco.
• Un programa puede contener comentarios en cualquier lugar. Los comentarios se
delimitan encerrándolos entre llaves ( { } ). También es posible comenzar un
comentario con " ( * " y acabarlo con " * ) ".
• El comando readln: carga un valor en una variable y salta una línea. El comando
writeln: muestra información por pantalla y salta una línea. Si no se escribe (ln) no
saltará la línea
• Para dejar una línea en blanco: writeln, o readln.
• El readkey sirve para que la pantalla muestre el resultado del programa hasta que el
usuario presione una tecla.
Ing. N ahiby Castillo
21
Descargar