La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Sesión 17 Tipos de datos Estruturados Arreglos de Registros Prof:Eridan Otto Programación de Computadores Lenguaje Pascal.

Presentaciones similares


Presentación del tema: "Sesión 17 Tipos de datos Estruturados Arreglos de Registros Prof:Eridan Otto Programación de Computadores Lenguaje Pascal."— Transcripción de la presentación:

1 Sesión 17 Tipos de datos Estruturados Arreglos de Registros Prof:Eridan Otto Programación de Computadores Lenguaje Pascal

2 Sesión 17: Tipos de datos Estruturados Programación de Computadores Lenguaje Pascal TEMARIO Tipos de datos Estruturados Arreglos de Registros Ejercicios

3 Introducción: Toda la utilidad de manejar registros se aplica cuando se puede acceder a una gran cantidad de ellos. Una forma de hacerlo es creando arreglos de registros. Ejemplo: Una empresa puede querer manejar la información de todos sus empleados (N): Ficha_empleado RUT Nombre Edad SueldoBruto Como ya se vio en la clase anterior, es necesario definir el tipo de dato ficha_empleado que será un registro: CONST N=100; TYPE Ficha_empleado = RECORD RUT_e: INTEGER; RUT_dv:CHAR; nombre:String[60]; edad :INTEGER; sueldoBruto :REAL; END; Sesión 17: Tipos de datos Estruturados: Arreglo de Registros Programación de Computadores Lenguaje Pascal

4 {Se puede definir un tipo de dato para el arreglo} Lista_empleados= ARRAY [1..N] OF Ficha_empleado; VAR lista1: Lista_empleados; lista2: ARRAY [1..N] OF Ficha_empleado; {las dos definiciones son válidas, pero la primera puede ahorrar digitación, si se usan procedimientos y funciones} Los arreglos definidos así significan que lista 1 o lista 2 contienen hasta 100 elementos con la estructura de registro del empleado. Para acceder a un campo de un elemento del arreglo hay que usar índices como en todos los arreglos. [indice]. Para el ejemplo anterior, Se asigna el campo nombre y sueldo al primer elemento del arreglo:.... Lista1[1].nombre:=‘Juan Perez’ ; writeln(Lista1[1].nombre); {despliega Juan Perez en pantalla} Lista1[1].sueldoBruto := 500000; Sesión 17: Tipos de datos Estruturados: Arreglo de Registros Programación de Computadores Lenguaje Pascal

5 Ejercicio 1. Diseñe programa principal y sus definiciones considerando un arreglo de registros de tipo Ficha_empleado para luego desarrollar: Función que calcule el promedio de los sueldos Procedimiento que reajuste un porcentaje ingresado por el usuario a los sueldos bajo el promedio. Procedimiento que liste todos los datos de los empleados, una línea por empleado. Suponer el arreglo de 100 empleados ha sido ingresado. PROGRAM reajuste; CONST N=100; TYPE Ficha_empleado = RECORD RUT_e: INTEGER; RUT_dv:CHAR; nombre:String[60]; edad :INTEGER; sueldoBruto :REAL; END; Lista_empleados= ARRAY [1..N] OF Ficha_empleado; VAR lista: Lista_empleados; reajuste,promedio:REAL; {aquí van los procedimientos y funciones} BEGIN promedio:=promedioempresa(lista); reajuste:=leereajuste(); calculareajuste(lista,reajuste,promedio); listaempleados(lista); END; Sesión 17: Tipos de datos Estruturados: Arreglo de Registros Programación de Computadores Lenguaje Pascal

6 FUNCTION promedioempresa(lis: Lista_empleados):REAL; VAR acum:REAL; i :INTEGER; BEGIN acum:=0; FOR i:= 1 TO N DO acum:=acum+lis[i]. sueldoBruto; promedioempresa := acum/N; END; FUNCTION leereajuste():REAL; VAR aux:REAL; REPEAT WRITELN(‘Ingrece porcetaje reajuste <=10%); READLN(aux); UNTIL aux <= 10; leereajuste := aux/100; END; Sesión 17: Tipos de datos Estruturados: Arreglo de Registros Programación de Computadores Lenguaje Pascal

7 PROCEDURE calculareajuste(VAR lis: Lista_empleados; reajuste,promedio:REAL); VAR aux :REAL; i :INTEGER; BEGIN FOR i:= 1 TO N DO BEGIN aux :=0; IF (lis[i]. sueldoBruto < promedio) THEN aux:= lis[i]. sueldoBruto*reajuste; lis[i]. sueldoBruto := lis[i]. sueldoBruto + aux END END; PROCEDURE listaempleados(lis: Lista_empleados); VAR i :INTEGER; BEGIN WRITELN(‘RUT’:12,’Nombre’:60,’Edad’,’Sueldo’:15); FOR i:= 1 TO N DO BEGIN WRITE (lis[i].RUT_e); WRITE (lis[i].RUT_dv); WRITE (lis[i].nombre); WRITE (lis[i].edad); WRITE (lis[i].sueldoBruto) END END; Sesión 17: Tipos de datos Estruturados: Arreglo de Registros Programación de Computadores Lenguaje Pascal

8 Ejercicio 2. Rutee el siguiente programa, dado los siguientes datos de entrada:1,2,3,7,5,4,7,1,2,6 PROGRAM rutear; CONST max=5; TYPE coor = ARRAY[1..max] OF INTEGER; p = RECORD x,y: coor; END; VAR i: m: INTEGER; aux:p; BEGIN FOR i:= 1 TO max DO READ (aux.x[i], aux.y[i]); FOR i:= 1 TO max DO IF (i MOD 2 <> 0) AND (i<>max) THEN BEGIN m := aux.x[i]; aux.x[i] := aux.y[i+1]; aux.y[i+1] :=m; m := aux.y[i]; aux.y[i] := aux.x[i+1]; aux.x[i+1] :=m; END; FOR i:= 1 TO max DO WRITELN (aux.x[i], aux.y[i]); END. Sesión 17: Tipos de datos Estruturados: Arreglo de Registros Programación de Computadores Lenguaje Pascal

9 Ejercicio 3. Con el objeto de manejar información de impuesto a la renta que paga un grupo de personas se han definido los siguientes registros: TYPE persona = RECORD RUT : String[10]; nombre:String[45]; categoria :CHAR; sueldo :REAL; END; impuesto = RECORD categoria :CHAR; tasa :REAL; END; Desarrolle un programa pascal que permita realizar las siguientes operaciones: Ingresar los datos de 50 contribuyentes en un arreglo de registros de tipo persona denominado contribuyentes. Ingresar los datos de 10 categorías de impuesto en un arreglo de registros de tipo impuesto denominado escala. Generar el arreglo tributos, que contenga registros con la siguiente información de cada persona: Rut,nombre y monto de los impuestos a la renta que debe cancelar. Desplegar datos de mayor y menor contribuyente. Sesión 17: Tipos de datos Estruturados: Arreglo de Registros Programación de Computadores Lenguaje Pascal

10 Fin Clase 17


Descargar ppt "Sesión 17 Tipos de datos Estruturados Arreglos de Registros Prof:Eridan Otto Programación de Computadores Lenguaje Pascal."

Presentaciones similares


Anuncios Google