Vous êtes sur la page 1sur 23

Sesin 05: Arrays

Curso: Algoritmos y Estructura de Datos Docente: I.S. Mara de los ngeles Guzmn Valle Escuela Profesional de Ingeniera de Sistemas Universidad Nacional Pedro Ruiz Gallo

Vectores y Matrices

Vectores: Introduccin
Con

lo aprendido hasta ahora resolvamos los siguientes problemas:


Dados 50 nmeros enteros, obtener el promedio de ellos. Mostrar por pantalla dicho promedio y los nmeros ingresados que sean mayores que l. Dados n nmeros, obtener e imprimir la suma de todos ellos. A continuacin mostrar por pantalla todos los sumandos.
I.S. Mara de los A. Guzmn Valle 2

Vectores y Matrices

Es posible resolver estos problemas? Por qu? Una de las principales dificultades que se observan con estos problemas es que para la resolucin de ambos es necesario almacenar la totalidad de los datos a procesar. No sera eficiente crear n cantidad de variables para guardar estos datos. Para realizar programas y/o algoritmos que nos permitan resolver los problemas planteados, usaremos una nueva estructura de datos denominada vectores.
I.S. Mara de los A. Guzmn Valle 3

Vectores y Matrices

Una estructura de datos es un conjunto de datos con un cierto orden. Las estructuras de datos pueden ser dinmicas o estticas. Estticas: aquellas a las que se le asigna una cantidad fija de memoria de acuerdo a lo definidio en la declaracin de la variable. Dinmicas: son aquellas cuyo tamao en memoria aumenta o disminuye en tiempo de ejecucin de acuerdo a las necesidades del programa.
I.S. Mara de los A. Guzmn Valle 4

Vectores y Matrices
Simples Tipos de Estructuras Reales Enteros Char Boolean Enumerados String arrays set record file
5

Estticas

Complejas Dinmicas (punteros)


I.S. Mara de los A. Guzmn Valle

Vectores

Qu es un vector? Un vector (o arreglo unidimensional) es una estructura de datos en la cual se almacena un conjunto de datos de un mismo tipo. Es decir que un arreglo es una lista de n elementos que posee las siguientes caractersticas: se identifica por un nico nombre de variable sus elementos se almacenan en posiciones contiguas de memoria se accede a cada uno de sus elementos en forma aleatoria
I.S. Mara de los A. Guzmn Valle 6

Vectores
Elementos

Mi_vector
Nombre de la variable

9 5 6 2 4 8 3

Posicin : 0 Contenido : Mi_vector[0] = 9

I.S. Mara de los A. Guzmn Valle

Vectores

Ejemplos: Ejemplo 1. Resolvamos este primer ejemplo: Cargar 10 elementos en un vector, sumarlos y mostrar el resultado por pantalla. Pasos para resolver este problema: Leer un vector de 10 elementos Sumar los elementos Mostrar el resultado de la suma por pantalla

I.S. Mara de los A. Guzmn Valle

Vectores

Ejemplo 1 - Diagrama de Jackson


Ejemplo 1

Lectura del arreglo

Suma de los elementos

Muestra resultados

I.S. Mara de los A. Guzmn Valle

Vectores - Ejemplo1
Import java.io.*; Public class Ejemplo1{ public static void main(String[] args) throws IOException{ Declaracin de la variable arreglo double num[]; int x; double suma; BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); x=0; suma=0; Lectura de los elementos del arreglo num=new double[10]; for(x=0;x<=9;x++) { System.out.print("num["+(x+1)+"]:"); num[x]=Double.parseDouble(br.readLine()); Suma de los elementos } for(x=0;x<=9;x++) { suma=suma+num[x]; Mostrar Resultado } System.out.println("La suma de los numeros es: "+suma); } } 10 I.S. Mara de los A. Guzmn Valle

Vectores - Ejemplo1 v2
Import java.io.*; Public class Ejemplo1{ public static void main(String[] args) throws IOException{ double num[]; int x; double suma; BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); x=0; suma=0; num=new double[10]; for(x=0;x<=9;x++) { System.out.print("num["+(x+1)+"]:"); num[x]=Double.parseDouble(br.readLine()); suma=suma+num[x]; } System.out.println("La suma de los numeros es: "+suma); } }

I.S. Mara de los A. Guzmn Valle

11

Vectores - Ejemplos
Ej2- Dados 50 nmeros enteros, obtener el promedio de ellos. Mostrar por pantalla dicho promedio y los nmeros ingresados que sean mayores que el mismo. Ej3 - Dados n nmeros, obtener e imprimir la suma de todos ellos. A continuacin mostrar por pantalla todos los sumandos.

I.S. Mara de los A. Guzmn Valle

12

Vectores - Ejemplos resueltos


import java.io.*; public class Ejemplo2{ public static void main(String[] args) throws IOException{ double num[]; int x; double promedio,suma; BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); x=0; suma=promedio=0; num=new double[50]; for(x=0;x<=49;x++) { System.out.print("num["+(x+1)+"]:"); num[x]=Double.parseDouble(br.readLine()); suma=suma+num[x]; }

I.S. Mara de los A. Guzmn Valle

13

Vectores - Ejemplos resueltos


promedio=suma/5; System.out.println("El promedio de los numeros es: "+promedio); System.out.println("Los numeros mayores al promedio son:"); for(x=0;x<=49;x++) { if(num[x]>promedio){ System.out.println(num[x]); } }

} }

I.S. Mara de los A. Guzmn Valle

14

Vectores - Vectores Paralelos

Dos o ms arreglos que utilizan el mismo subndice para acceder a elementos de distintos arreglos, se denominan arreglos paralelos. Estos arreglos pueden procesarse simultneamente. 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 ffemenino 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

I.S. Mara de los A. Guzmn Valle

15

Matrices

Resolvamos el siguiente problema: Un instituto desea controlar los resultados de los alumnos en las distintas asignaturas de la facultad de Ingeniera. 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 estn codificadas de 1 a 6 y hay 30 alumnos.

I.S. Mara de los A. Guzmn Valle

16

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)

I.S. Mara de los A. Guzmn Valle

17

Matrices
Mi_Matriz
Nombre de la variable

9 5 6 2 4 8 3

9 5 6 2 4 8 3 9 5 6 2 4 8 3

Posicin : 2,0 Contenido : Mi_vector[2,0] = 9

I.S. Mara de los A. Guzmn Valle

18

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.

I.S. Mara de los A. Guzmn Valle

19

Matrices - Ejemplos resueltos


Ej4. Un instituto desea controlar los resultados de los alumnos en las distintas asignaturas de la facultad de Ingeniera. 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 estn codificadas de 1 a 6 y hay 30 alumnos.

I.S. Mara de los A. Guzmn Valle

20

Matrices - Ejemplos resueltos


import java.io.*; public class EI12 { public static void main(String[ ] args) throws IOException{ double notas[ ][ ]; int x,y; double promedioAlumno,sumaAlumno,SumaTotal,PromedioTotal; BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); x=0; y=0; notas=new double[6][30]; SumaTotal=PromedioTotal=0;

I.S. Mara de los A. Guzmn Valle

21

Matrices - Ejemplos resueltos


for(x=0;x<=29;x++) { sumaAlumno=promedioAlumno=0; System.out.println("Notas del Alumno "+(x+1)+":"); for(y=0;y<=5;y++) { System.out.print("Nota["+(y+1)+"]:"); notas[x][y]=Double.parseDouble(br.readLine()); sumaAlumno=sumaAlumno+notas[x][y]; } promedioAlumno=sumaAlumno/6; SumaTotal=SumaTotal+promedioAlumno; System.out.println("El promedio del Alumno es "+promedioAlumno); } PromedioTotal=SumaTotal/30; System.out.println("El promedio de todos los alumnos es: "+PromedioTotal); } }
I.S. Mara de los A. Guzmn Valle 22

Arreglos multidimesionales
As como hemos trabajado con vectores (arreglos unidemsionales) y matrices (arreglos unideimesionales), es posible trabajar con arreglos de ms de dos dimensiones, los que son denominados arreglos multidimensionales. Ejemplos de problemas de aplicacin de arreglos multidimesionales Se desea escribir un programa que permita manejar la informacin 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
I.S. Mara de los A. Guzmn Valle 23

Vous aimerez peut-être aussi