Descargar

Vectores y matrices (página 2)

Enviado por Pablo Turmero


Partes: 1, 2
edu.red

9 Vectores – Ejemplo1 Program Ejemplo1; {Version 1} type sumandos = array[1..10] of integer; var suma, i : integer; vec_sumandos : sumandos; begin suma := 0; for i:= 1 to 10 do read(vec_sumandos[i] ) for i := 1 to 10 do suma:= suma +vec_sumandos[i]; writeln (´La suma de los números es´, suma); end.

Declaración de la variable arreglo Declaración del tipo del arreglo Lectura de los elementos del arreglo Suma de los elementos

edu.red

10 Vectores – Ejemplo1 Program Ejemplo1; {Version 2} type sumandos = array[1..10] of integer; var suma, i : integer; vec_sumandos : sumandos; begin suma := 0; for i:= 1 to 10 do begin read(vec_sumandos[i] ) suma:= suma +vec_sumandos[i]; end; writeln (´La suma de los números es´, suma); end.

edu.red

11 Vectores – Declaración Como ya dijimos anteriormente, los arreglos son estructuras de datos, por lo tanto las mismas deben ser declaradas. Esta operación se realiza en la seccción “Type” de un programa en Pascal. (como puede verse en el ejemplo1) formato type nombre_del_tipo = array[tipo_subindice * ] of tipo;

* debe ser de tipo ordinal: boolean, char, enumerado o subrango

edu.red

12 Vectores – Declaración Luego de la declaración del tipo, se declara la variable. formato var nombre_variable: nombre_del_tipo;

edu.red

13 Vectores – Declaración Ejemplos de declaraciones: Ej1: type Valores = array[ -10..10 ] of real; var precios: valores;

edu.red

14 Vectores – Declaración Ejemplos de declaraciones: Ej2: const Max= 500; type T_Texto = array[ 1..Max ] of char; var Texto: T_Texto;

edu.red

15 Vectores – Manejo de índices Asignación de valores Texto[3] := ´a´; Precios[0] := 23.50;

Como ya dijimos, los índices de un arreglo pueden ser: entero, lógico, caracter, enumerado o subrango.

edu.red

16 Vectores – Manejo de índices Ej3: const longitud = 40; altura = 30; type horizontal = 1..Longitud; T_Línea = Array [ horizontal ] of char; var Linea: T_Linea

edu.red

17 Vectores – Manejo de índices Ej4: type DiasSemana = (Lunes, Martes, Miercoles,Jueves, Viernes, Sabado, Domingo ); T_Dias = array [DiasSemana] of integer; var Dias: T_Dias;

edu.red

18 Vectores – Operaciones Con la siguiente declaración: type T_Notas = array [1..30] of integer; var Notas: T_Notas; Lectura de un vector for i:= 1 to 30 do read(Notas[i] )

edu.red

19 Vectores – Operaciones Escritura de un vector for i:= 1 to 30 do writeln(Notas[i] )

edu.red

20 Vectores – Operaciones Con la siguiente declaración: type T_Notas = array [1..30] of integer; var Notas, Aux_Notas: T_Notas; Copia de vectores for i:= 1 to 30 do Aux_Notas[i]:= Notas[i];

o bien: Aux_Notas:=Notas;

edu.red

21 Vectores – Ejemplos resueltos Ej2- Dados 50 números enteros, obtener el promedio de ellos. Mostrar por pantalla dicho promedio y los números ingresados que sean mayores que el mismo. Ej3 – Dados n números, obtener e imprimir la suma de todos ellos. A continuación mostrar por pantalla todos los sumandos.

edu.red

22 Vectores – Ejemplos resueltos Program Ej2; const max = 50; type t_numeros = array[1.. max] of integer; var suma, i : integer; promedio: real; numeros : t_numeros; begin suma := 0;

edu.red

23 Vectores – Ejemplos resueltos for i:= 1 to max do begin read(numeros[i] ) suma:= suma +numeros[i]; end; Promedio:= suma/max; writeln (´El promedio es ´,Promedio´); for i := 1 to 50 do if numeros[i] > promedio then writeln (´El número´, numeros[i], ´es mayor al promedio´); end.

edu.red

24 Vectores – Ejemplos resueltos Program Ej3; const max = 100; type t_numeros = array[1.. max] of integer; var suma, i, n : integer; promedio: real; numeros : t_numeros; begin suma := 0; write (´Ingrese la cantidad de números a sumar. (Como máximo, 100 números´); readln(n);

edu.red

25 Vectores – Ejemplos resueltos for i:= 1 to n do begin read(numeros[i] ) suma:= suma +numeros[i]; end; writeln (´La suma es ´,suma´); for i := 1 to n do writeln (´El sumando´, i, ´es´, numeros[i]); end.

edu.red

26 Vectores – Vectores Paralelos Dos o más arreglos que utilizan el mismo subíndice para acceder a elementos de distintos arreglos, se denominan arreglos paralelos. Estos arreglos pueden procesarse simultáneamente. Ejercicio: Se tienen dos arreglos. El primero contiene nombres de personas y el segundo contiene los sexos de las personas del primer arreglo, codificados como ´f´femenino y ´m´ masculino. Obtener a partir de estos otros dos arreglos, el primero de los cuales debe contener todos los nombres de los varones y el segundo, el nombre de todas las mujeres

edu.red

27 Matrices Resolvamos el siguiente problema: Un instituto desea controlar los resultados de los alumnos en las distintas asignaturas de la facultad de Ingeniería. El programa debe ingresar las calificaciones de los alumnos y visualizar en pantalla la media de notas por alumno y la media de notas por asignatura. Las asignaturas están codificadas de 1 a 6 y hay 30 alumnos.

edu.red

28 Matrices Es posible resolver este problema con lo visto hasta ahora? Para realizar el anterior programa , debemos trabajar con una tabla (o matriz o arreglo bidimensional)

edu.red

29 Matrices (Gp:) 9 (Gp:) 3 (Gp:) 5 (Gp:) 4 (Gp:) 8 (Gp:) 2 (Gp:) 6

(Gp:) 9 (Gp:) 3 (Gp:) 5 (Gp:) 4 (Gp:) 8 (Gp:) 2 (Gp:) 6

(Gp:) 9 (Gp:) 3 (Gp:) 5 (Gp:) 4 (Gp:) 8 (Gp:) 2 (Gp:) 6

Mi_Matriz Nombre de la variable Posición : 3,1 Contenido : Mi_vector[3,1] = 9

edu.red

30 Matrices – Declaraciones Ejemplos de declaraciones: Ej1: type T_matriz = array[ 1..10, 1..10 ] of real; var Matriz: valores;

edu.red

31 Matrices – Declaraciones Ejemplos de declaraciones: Ej2: type T_matriz = array[ 1..10 ] of array [ 1..10 ] of real; var Matriz: valores;

edu.red

32 Matrices – Declaraciones Ejemplos de declaraciones: Ej3: type T_filas = array[ 1..10 ] of of real; T_Matriz = array[ 1..10 ] of of T_filas; var Matriz: valores;

edu.red

33 Matrices – Operaciones Con la siguiente declaración: type T_matriz = array[ 1..10 ] of array [ 1..10 ] of real; var Matriz: valores; Lectura de una matriz for i:= 1 to 10 do for j:= 1 to 10 do readln(Matriz[i,j] )

edu.red

34 Matrices – Operaciones Escritura de una matriz for i:= 1 to 10 do for j:= 1 to 10 do writeln(Matriz[i,j] )

El recorrido de las matrices puede realizarse tanto por filas como por columnas, de acuerdo al problema a resolver.

edu.red

35 Matrices – Ejemplos resueltos Ej4. Un instituto desea controlar los resultados de los alumnos en las distintas asignaturas de la facultad de Ingeniería. El programa debe ingresar las calificaciones de los alumnos y visualizar en pantalla la media de notas por alumno y la media de notas por asignatura. Las asignaturas están codificadas de 1 a 6 y hay 30 alumnos.

edu.red

36 Matrices – Ejemplos resueltos Program Ej4; const max_fila = 6 ; max_col = 30; type t_tabla = array[1.. max_fila,max_col ] of char; var i, j: integer; tabla: t_tabla; suma: integer; prom_al, prom_mat:real; begin for i:= 1 to max_fila do for j:= 1 to max_fila do writeln(´Ingrese la nota para la materia´, i, ´del alumno´, j);

edu.red

37 Matrices – Ejemplos resueltos for i:= 1 to max_fila do begin suma:=0; for j:= 1 to max_col do suma:= suma + tabla[i,j]; prom_mat [i] : =suma /i; end; for i:= 1 to max_col do begin suma:=0; for j:= 1 to max_fila do suma:= suma + tabla[i,j]; prom_al [i] : =suma /i; end;

edu.red

38 Matrices – Ejemplos resueltos writeln (´La suma es ´,suma´); for i := 1 to max_fila do writeln (´El promedio de calificaciones para la asignatura´, i, ´es´, prom_mat[i]); end. for j := 1 to max_col do writeln (´El promedio de calificaciones para el alumno´, j, ´es´, prom_al[j]); end.

edu.red

39 Arreglos multidimesionales Así como hemos trabajado con vectores (arreglos unidemsionales) y matrices (arreglos unideimesionales), es posible trabajar con arreglos de más de dos dimensiones, los que son denominados arreglos multidimensionales. Ejemplos de problemas de aplicación de arreglos multidimesionales Se desea escribir un programa que permita manejar la información de habitantes de un complejo habitacional. El mismo posee 7 torres; a su vez cada torre posee 20 pisos y cada piso 6 departamentos. Se desea saber: a) Cantidad total de habitantes del complejo b) Cantidad promedio de habitantes por piso de cada torre c) Cantidad promedio de habitantes por torre

Partes: 1, 2
 Página anterior Volver al principio del trabajoPágina siguiente