Subir arriba

miércoles, 15 de julio de 2015

Unidad 4

Unidad de Competencia IV

Utiliza Funciones y Procedimientos




Al terminar la semana, el estudiante estará en capacidad de aplicar procedimientos y funciones en el desarrollo de cualquier algoritmo.

implementar las listas y tablas en un algoritmo.
utilizar operaciones y tratamiento de cadenas en los algoritmos.


Temas a Tratar




Pascal ofrece dos herramientas básicas para realizar programación descendente: los procedimientos (procedure) y las funciones (function), a los que nos referiremos genéricamente con el término de subprogramas. Turbo pascal incorpora además el concepto de unidad (unit), que permite aprovechar módulos independientes ya compilados.

Los parámetros

Los parámetros son canales de comunicación para pasar datos ente programas y subprogramas en ambos sentidos. Los parámetros van asociados a variables. constantes, expresiones, etc., y por tanto, se indican mediante los correspondientes identificadores o expresiones. Los parámetros que se utilizan en la llamada o invocación al subprograma se denominan parámetros actuales, reales o argumentos, y son los que entregan la información al subprograma. Los parámetros que la reciben en el subprograma se denominan parámetros formales o ficticios y se declaran en la cabecera del subprograma.

En una llamada a un subprograma tiene que verificarse que:
1. El número de parámetros formales debe ser igual al de actuales.
2. Los parámetros que ocupen el mismo orden en cada una de las Listas deben ser compatibles en tipo.


Estructura, declaración y empleo de un procedimiento

Se declaran inmediatamente después de las variables del programa principal, teniendo la precaución de que si un subprograma referencia o llama a otro, el referenciado debe declararse primero.

Declaración de procedimientos.

Cabecera: procedure nombreproced (lista de parámetros);
Declaraciones 
Locales
const
Type...
Var...
<declaración de otros procedimientos y funciones>

Cuerpo: 
begin
end; (*obseiwar; final de procedimiento*)


Declaración de parámetros formales.



Se declaran encerrados entre paréntesis, indicando el identificador y el tipo correspondiente asociado a cada uno, separados por ':', y terminando en ';'. La palabra reservada VAR precediendo a un identificador de parámetro formal indica al compilador que el paso del parámetro es pro VARiable. Su ausencia u omisión indica que el paso de parámetro se realiza por VALOR.

Ejem.Procedure Identificador (PF1:tipol; PF2:típo2; var PW:tipo3);
PFl y PF2 se pasan por valor.
PF3 se pasa por variable.


Llamada a un procedimiento.


Se realiza desde el programa principal indicando el identificador del procedimiento seguido de la lista de parámetros actuales encerrados entre paréntesis y separados por comas.
Ejem.Identificador (PAl, PA2, PA3)
Ejemplo.
Procedimiento para intercambiar los valores de dos variables.
Procedure intercambio (var pfl, p12: integer);
Var
Aux:integer; (variable local uso exclusivo en procedimiento}
Begin
Aux:=pfl;
Pfl:pf2;
Pfl: aux
End;
{La llamada a este procedimiento se haría ...}
{... por ejemplo desde el siguiente programa:}

Program Uno;
Uses crt;
Var
Entero 1 ,entero2 : integer;
Procedure intercambio (var pfl, p12:integer);
...
begin
clrscr; {*borrado de pantalla*}
Write ('introduzca 2 variables enteras: ');
Readln(entero1, entero2);
Writeln ('valores de las variables antes de la llamada');
Writeln ('Entero 1 = ', enterol, 'entero 2 = ', entero2);
intercambio (enterol, entero2); {llamada al procedimiento}
Writeln ('Valor de las variables después de la llamada');
Writeln ('entero 1 = ', enterol, 'entero 2 = ', entero2);
end;

Deben utilizarse funciones cuando solo tenga que devolverse un solo valor simple al programa llamador. En todos los demás casos utilizaremos: procedimietos.



LISTAS Y TABLAS (Arrays).


Concepto y clasificación de estructuras
Las estructuras se clasifican de acuerdo a varios criterios.
  • •Respecto al número de componentes, las estructuras se clasifican en estáticas (el número de componentes es fijo) y dinámicas (el número de componentes varía durante la ejecución del programa ya que se pueden crear y destruir las variables durante el desarrollo del mismo.
  • •Respecto al tipo de componentes las estructuras suelen formarse o bien por combinación de datos de distinto tipo (registros) o bien por la repetición de datos del mismo tipo (arrays,conjuntos archivos, listas, árboles, etc.). Dentro de éstas el acceso puede hacerse por posicion, ya sea de forma secuencial o bien directa, o bien por contenido o clave.
La estructura Array.

Es una estructura homogénea de datos de tamaño constante accediendo a cada uno de sus elementos mediante un identificador comun y uno o varios índices.
  • •Todos los elementos del array son del mismo tipo.
  • El número de ellos no varía durante la ejecución del programa.
  • Accedemos a un elemento de la estructura mediante un identificador común, el nombre del array, y con el valor que toman uno o varios indices. Al número de indices necesarios para designar un elemento del array se le denomina dimensión del array.
  • El número máximo de valores posibles que puede tomar cada indice se denomina rango de esa dimensión o indice. Los valores han de ser consecutivos, por lo que el indice ha de ser de un tipo ordinal.
Declaración de tipos y variables array

La declaración más general de un array es la siguiente:
Type
Rango1 = tipoordinal1;
Rango2 = tipoordinal2;
...
rangon = tipoordinaln;
tipobase = (*cualquier predefinido o definido por el usuario*)
tipoarray = array [rango1,rango2,...,rangon] of tipobase,

Ejemplo: Array para almacenar las notas correspondiente a todos los alumnos de un colegio.
Suponiendo lo siguiente:
Numero de cursos 5
Grupos por curso 3
Numero de evaluaciones 3
Numero de asignaturas 6
Numero de alumnos por curso 20

Const
Numcurso=5;
Numasig=6;
Numalum=20;
Type
Cursos=1.. nurneurso;
Grupos='A'..'C';
Eval=(primera,segunda,tercera);
Asign=1.. numasin;
Alum=1. .numalum;
Tiponotas=array[cursos,grupos,eval,asign,alum] of real;
Var
Notas:tiponotas;
Curso:cursos;
Grupo:grupos;
Evaluacion:eval;
Materia:asign;
Alumno:alum;

Con los elementos de un array podemos realizar las mismas operaciones que el tipo base al que pertenecen.

STRING: Cadenas de caracteres

Las cadenas de caracteres son arrays especiales.
Una cadena de caracteres (string) consiste en una serie o secuencia de caracteres cuyo número (longitud) puede estar entre 0 y 255.
Se puede definir la longitud de la cadena poniendo string [n] donde n está entre 0 y 255.
  • Longitud fisica: corresponde al maximo numero de caracteres que puede almacenar.
  • Longitud lógica: corresponde al numero de caracteres que tiene en un instante determinado.






 OPERACIONES Y TRATAMIENTO DE CADENAS


Operaciones con cadenas.
Las dos operaciones basicas son comparación y concatenación.
Operador de concatenación (+)
Se utiliza para reunir varias cadenas en una sola
Ejemplo
Cad1:='esto es un ejemplo';
Cad2:='de concatenacion de cadenas';
Cadr:=cad1+cad2;
Write (cadr);

Se visualizaría esto es un ejemplo de concatenacion de cadenas
La funcion concat realiza la misma funcion que el operador de concatenacion. La sintáxis es:
Function concat (cad1,cad2,...:string): string;

La cadena vacia o nula se representa con dos caracteres apóstrofes seguidos ' '. El acceso a loselementos de una cadena individualmente se hace como si fuera un array.
Ejemplo.
Cad1:='ejemplo';
Para referirnos al primer elemento pondriamos cad1[1] que seria la letra e.
La funcion Length proporciona la longitud logica de una cadena de caracteres.
Ejemplo.
Longitud:=length(cad1);

La variable longitud tomaría el valor 7.

Funciones de Tratamiento de cadenas




No hay comentarios.:

Publicar un comentario