Descargar la presentación
La descarga está en progreso. Por favor, espere
1
Programación de Computadores
Lenguaje Pascal Tipos de datos Estruturados Prof:Eridan Otto
2
Programación de Computadores Lenguaje Pascal
Sesión 11: Tipos de datos Estruturados TEMARIO Tipos de datos Estruturados Arreglos unidimensionales Arreglos bidimensionales
3
Programación de Computadores Lenguaje Pascal
Sesión 11: Tipos de datos Estruturados: Arreglos unidimensionales Introducción: Se puede visualizar un arreglo como un conjunto de celdas contiguas, en cada una de ellas se almacena un dato simple. Cada dato está identificado por la posición que ocupa en la tabla. posiciones 1 2 3 n-1 n Arreglo: notas 55 60 45 80 40 Índice = 2 En el ejemplo, el valor de la celda 2 del arreglo notas se obtiene referenciando el nombre del arreglo y la posición por medio de un índice notas[2] contiene el valor 60 Ejemplo: WRITELN(notas[2]), desplegará 60 en pantalla.
4
Programación de Computadores Lenguaje Pascal
Sesión 11: Tipos de datos Estruturados: Arreglos unidimensionales Definición: Para definir el tipo de dato arreglo se usa la siguiente sintaxis : TYPE <identificador tipo unidimensional> = ARRAY [ <rango>] OF <tipo> ; Donde, <rango>: define las posiciones que tendrá un arreglo, y por ende los valores válidos que puede tomar el índice. Este rango se define especificando el primer y último índice separados por dos puntos, <indice inferior>..<indice superior> Normalmente : 1..N, aunque no es obligatorio. Partir de 1. <tipo>: por el momento serán tipos estándares o definidos por el usuario vistos en clases. Ejemplo, CONST N = 30; arrnotas: ARRAY [1..50] OF REAL; VAR notascurso1,notascurso2:arrnotas; asistencia: ARRAY[1..N] OF BOOLEAN; {definición directa}
5
Programación de Computadores Lenguaje Pascal
Sesión 11: Tipos de datos Estruturados: Arreglos unidimensionales Ejemplo1: Hacer un programa pascal que dado 10 números. Llene un arreglo con los 10 números Calcule el promedio de los 10 números Determine el número mayor y menor de los diez así como su posición en el arreglo Calcule la cantidad bajo/sobre el promedio. Rutee para
6
Programación de Computadores Lenguaje Pascal
Sesión 11: Tipos de datos Estruturados: Arreglos unidimensionales Solución1: PROGRAM arreglo; VAR lista:ARRAY[1..10] OF REAL; i,posmayor,posmenor,sobremedia,bajomedia:INTEGER; media,mayor,menor:REAL; BEGIN FOR i := 1 TO 10 DO READLN(lista[i]); media:=0; FOR i:= 1 TO 10 DO media := media + lista[i]; media:=media/10; mayor:= lista[1];posmayor:=1; menor:= lista[1];posmenor:=1; sobremedia:=0;bajomedia:=0; IF lista[i] >= media THEN sobremedia := sobremedia +1 ELSE bajomedia := bajomedia +1; IF mayor <lista[i] THEN BEGIN mayor:=lista[i]; posmayor:=i; END; IF menor > lista[i] THEN BEGIN menor :=lista[i]; posmenor :=i; END END; END.
7
Programación de Computadores Lenguaje Pascal
Sesión 11: Tipos de datos Estruturados: Arreglos unidimensionales Media i lista 3 1 13 2 18 3 25 4 28 5 38 6 42 7 43 8 45 9 50 10 Lista[i] Mayor menor posmayor posmenor sobremedia bajomedia Media i 3 3 1 1 5 10 2 1 1 3 1 2 10 2 3 5 3 4 7 2 5 3 4 3 6 10 1 8 7 4 4 8 1 5 9 2 5 10 5
8
Programación de Computadores Lenguaje Pascal
Sesión 11: Tipos de datos Estruturados: Arreglos bidimensionales Definición: También se les llama matrices, para acceder a un elemento, o celda ser requiere de dos índices : TYPE <identificador tipo bidimensional = ARRAY [ <rango1>,<rango2>] OF <tipo> ; Donde, <rango 1>: define las filas que tendrá una matriz, cuyo índice indicará la fila activa <fila inferior>..<fila superior> <rango 2>: define las columnas que tendrá una matriz, cuyo índice indicará la columna activa <columna inferior>..<columna superior> Ejemplo, CONST N = 3;M =4 furgon: ARRAY [1..N,1..M] OF REAL; VAR asientos:furgon; Ejemplo: si asientos[2,3] contiene el valor 22.5 WRITELN(asiento[2,3]), desplegará 22.5 en pantalla columnas 1 2 3 4 1 22.5 filas 2 3 Cantidad elementos: cant.filas* cant.columnas
9
Programación de Computadores Lenguaje Pascal
Sesión 11: Subprogramas Ejercicio2: Realice un programa que lea dos matrices cuadradas de hasta 20 x 20, llame a un procedimiento para multiplicar matrices y llame a un procedimiento que escriba el resultado. PROGRAM matrices ; CONST maxdim = 20; TYPE matriz : ARRAY [1..maxdim,1..maxdim] OF REAL; PROCEDURE multiplica(d:INTEGER;m1,m2:matriz; VAR mf:matriz); PROCEDURE imprime(d:INTEGER; mf:matriz); {se definirán a continuación} VAR matriz1,matriz2,mfinal:matriz; dim,i,j:INTEGER; BEGIN WRITE(‘Ingrese dimensión matrices:’);READLN(dim); FOR i :=1 TO dim DO FOR j := 1 TO dim DO WRITE(‘Elemento ‘, i ,’ ’,j,’ matriz 1:’); READLN(matriz1[i,j]); WRITE(‘Elemento ‘, i ,’ ’,j,’ matriz 2:’); READLN(matriz2[i,j]) END; multiplica(dim, matriz1, matriz2,mfinal); imprime(dim,mfinal);
10
Programación de Computadores Lenguaje Pascal
Sesión 11: Subprogramas Ejercicio2: PROCEDURE multiplica(d:INTEGER;m1,m2:matriz; VAR mf:matriz); VAR sum:REAL; i,j,k:INTEGER; BEGIN FOR i :=1 TO dim DO FOR j := 1 TO dim DO sum :=0; FOR k := 1 TO dim DO sum := sum + m1[i,k]*m2[k, ,j]; mf[i, j] := sum END; PROCEDURE imprime(d:INTEGER; mf:matriz); VAR i,j:INTEGER; WRITELN; WRITE (‘ ‘,mf[i,j], ‘ ‘); END
11
Fin Clase 11
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.