Departamento de Informática Universidad Técnica Federico Santa María Capítulo 2 “Subprogramas/Funciones - Arreglos” Arreglos-Arrays.

Slides:



Advertisements
Presentaciones similares
Arreglos Unidimensionales y Bidimensionales ESTRUCTURAS DE DATOS I
Advertisements

Complejidad Computacional
Curso de Java Capitulo 6: Cadenas y Arrays Profesor:
Abstracción de Datos Arrays.
ALGORITMOS DE ORDENAMIENTO
Estructuras de Datos (ARRAYS)
Programación I Teoría III
Las estructuras de arreglos fueron usadas en las primeras computadoras digitales, cuando la programación se hacía todavía en lenguaje máquina, para tablas.
MANEJO DE ARRAYS EN C.
Tema 1. Introducción a la programación (Lenguaje java).
Arreglos Ing. Nahiby Castillo.
Algoritmo y Estructura de Datos I I Facultad de Ingeniería y Arquitectura Ing. Juan José Montero Román. Sesión 3.
Unidad 3 Punteros.
Vectores en java.
Arreglos: Vectores en JAVA
Semana 5 Subprogramas..
Departamento de Informática Universidad Técnica Federico Santa María Capítulo 2 “Subprogramas/Funciones - Arreglos” Arreglos-Arrays.
Matrices Es una estructura homogénea, compuesta por varios elementos, todos del mismo tipo y almacenados consecutivamente en memoria A cada elemento se.
Arreglos.
UNIDAD V Arreglos y Cadenas
ESTRUCTURAS DE DATOS I Conocer, comprender y analizar algunos de los principales tipos de estructuras de datos.
Manejo de Vectores y Matirces
Universidad Domingo Savio Facultad de Ciencias y Tecnología de la Información Carrera Ingeniería en Redes y Telecomunicaciones Materia : Programación I.
Capítulo 1 “Elementos de Programación”
ESTRUCTURA DE DATOS EN JAVA
Estructuras de Datos Arreglos.
Clase 10: Estructuras de datos y arreglos.
Programación IMC José Andrés Vázquez Flores. Definición Un arreglo es un conjunto finito e indexado de elementos homogéneos, que se referencian por un.
METODOLOGÍA DE LA PROGRAMACIÓN
Resolución de Problemas y Algoritmos Uso de iteración con secuencias
Aplicación de estructuras de datos
75.40 Algoritmos y Programación I
Fundamentos de Programación
Estructuras de Control.
Definir un vector Forma general Variable=[tipo]*tamaño Tipo: es el valor inicial con el cual quedarán llenas todas las posiciones creadas del vector. Tamaño:
Tema 8: Tipos de Datos Estructurados I
Matrices Departamento de Computación Escuela de Ingeniería de Sistemas
Vectores y matrices Curso de Computación.
Un arreglo es un grupo de variables, llamadas elementos, que contienen valores del mismo tipo. Una representación lógica de un arreglo se muestra de la.
Vectores y Matrices.
CAPITULO V ARREGLOS Y CADENAS.
1 1 1.
Introducción a la Programación “Conceptos Básicos” Manuel Crisosto M., Claudio Gutiérrez S., Christian Vidal C.
Matrices Prof. Flor Narciso Departamento de Computación
Aun en problemas muy simples surge la necesidad de agrupar valores elementales de alguna manera. Cuando representamos una caja de ahorro bancaria definimos.
Unidad II Aplicaciones con Arreglos en Java y C++
Objetivo Mostrar los fundamentos de la programación a través de ejemplos y prácticas utilizadas cotidianamente en el desarrollo de aplicaciones.
ELEMENTOS DE COMPUTACIÓN Profesor: Guillermo Figueroa
Estructura de datos I CIS - UABJB.
Capitulo 4 Arreglos o Arrays Unidimensionales Bidimensionales Strings
Fundamentos de Programación
Arrays multidimensionales en JAVA
Capítulo 2 “Subprogramas/Funciones - Arreglos”
Arreglos unidimensionales
Al finalizar el curso el alumno será capaz de: Diseñar algoritmos utilizando estructuras estáticas de datos y programación modular.
Universidad Domingo Savio Facultad de Ciencias y Tecnología de la Información Carrera Ingeniería en Redes y Telecomunicaciones Materia : Programación I.
Lic. Carla Aguirre Montalvo
Arreglos: Vectores Prof. Flor Narciso Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes.
ARRAYS Y COLECCIONES DE DATOS. ARRAYS Arrays – Matriz – Vector Elemento del lenguaje que nos permite agrupar un conjunto de valores del mismo tipo, y.
LENGUAJE DE PROGRAMACIÓN
ESTRUCTURAS DE DATOS “Conceptualización de estructuras de datos” Por: Eduardo Robayo.
OBJETIVOS DEFINIR LA ESTRUCTURA DE ARREGLOS. DECLARAR ARREGLOS EN C.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Arreglo.
1 Clase 4: primeros programas (2ª parte) iic1102 – introducción a la programación.
PROF. RAFAEL MONTENEGRO B. UNELLEZ-APURE Introducci Ó n a los Arreglos (“arrays”) en C++
UNIVERSIDAD TECNOLÓGICA DE PANAMÁ Facultad de Ingeniería de Sistemas Computacionales Programa de Lic. en Informática Educativa Computación.
ArreglosBidimensionales enjava. Sonestructurasdetamañofijoorganizadasporfilasy columnas. Estas estructuras almacenan valores del MISMO TIPO de dato. Cada.
ArreglosUnidimensionales enjava. Existenarreglosdeunadimensión (unidimensionales),dedosdimensiones Losarreglossonvariablesquealmacenanvarios valores del.
Paso de parámetros Diseño de programas iterativos Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Unidad Didáctica 7 Versión.
UNIVERSIDAD AUTÓNOMA DEL ESTADO DE MÉXICO FACULTAD DE INGENIERÍA COORDINACIÓN DE MATERIAS PROPEDÉUTICAS INGENIERÍA EN SISTEMAS ENERGÉTICOS SUSTENTABLES.
Transcripción de la presentación:

Departamento de Informática Universidad Técnica Federico Santa María Capítulo 2 “Subprogramas/Funciones - Arreglos” Arreglos-Arrays.

Departamento de Informática Programación de Computadores IWI-131 Arreglos - Arrays Supongamos que tenemos 10 variables: a; b; c; d; e; f; g; h; i; j Si se desea manipular las variables debemos poner sus nombres cada vez que se requiera Un enfoque más general es utilizar las variables con el mismo nombre, pero diferenciándolas con un nuúmero Semejante a como los libros de matemáticas utilizan los vectores y las tuplas a1; a2; a3; a4; a5; a6; a7; a8; a9; a10

Departamento de Informática Programación de Computadores IWI-131 Arreglos - Arrays Ahora sumar las variables, es mucho más fácil:

Departamento de Informática Programación de Computadores IWI-131 Arreglos - Arrays Suponga que se quieren leer 5000 enteros y hacer algún tipo de operación con ellos Con los contenidos que conocemos(¿?) hasta ahora necesitamos utilizar 5000 variables Problemas: –De comprensión en la codificación –De utilización de memoria La solución es utilizar ARREGLOS ó ARRAYS

Departamento de Informática Programación de Computadores IWI-131 Arreglos - Arrays Los arreglos son conjuntos de variables que comparten un mismo nombre, son capaces de almacenar una colección de datos del mismo tipo. Pueden ser referenciadas de manera individual con ayuda de uno o más índices Tenemos según su dimensionalidad: –Unidimensionales (Ej. Vector Matemático) –Bidimensionales (Ej. Matriz) –Tridimensional (Ej. Cubo) –Multidimensionales

Departamento de Informática Programación de Computadores IWI-131 Ejemplos UNIDIMENSIONAL BIDIMENSIONAL TRIDIMENSIONAL

Departamento de Informática Programación de Computadores IWI-131 Ejemplos // Enteros tamaño int[] unidimensional={2,0,0,7}; //Arreglo bidimensional de enteros int[][] bidimensional={ {0,0,0},{1,1,1}};

Departamento de Informática Programación de Computadores IWI-131 Arreglos - Arrays Como las variables, al utilizar un arreglo primero que se debe hacer es declararlo. Al igual que otras variables, la declaración de un arreglo tiene dos componentes primarios: tipoArreglo[] nombre; Un tipo de arreglo incluye el tipo de dato de los elementos que va contener el arreglo. 8

Departamento de Informática Programación de Computadores IWI-131 Arreglos - Arrays Por ejemplo, el tipo de dato para un arreglo que sólo va a contener elementos enteros es un arreglo de enteros. int[] arrayDeEnteros; 9

Departamento de Informática Programación de Computadores IWI-131 Arreglos - Arrays int[] arrayDeEnteros; La parte int de la declaración indica que arrayDeEnteros es un arreglo de enteros. []: indica que su dimensionalidad es uno La declaración NO ha asignado memoria para contener los elementos del arreglo. 10

Departamento de Informática Programación de Computadores IWI-131 Arreglos - Arrays Para asignar memoria se utiliza el operador new. La siguiente sentencia asigna la suficiente memoria para que arrayDeEnteros pueda contener diez enteros. int[] arrayDeEnteros = new int[10]; 11

Departamento de Informática Programación de Computadores IWI-131 Arreglos - Arrays En general, cuando se crea un arreglo, se utiliza el operador new, más el tipo de dato de los elementos del arreglo, más el número de elementos deseados encerrado entre corchetes cuadrados ('[' y ']'). TipoElemento[] nombreArray = new TipoElementos[tamano]; 12

Departamento de Informática Programación de Computadores IWI-131 Arreglos - Arrays Ahora que se ha asignado memoria para un arreglo ya se pueden asignar valores a los elementos y recuperar esos valores. for (int j = 0; j < arrayDeEnteros.length; j++) { arrayDeEnteros[j] = j; StdOut.println("[j] = " + arrayDeEnteros[j]); } 13

Departamento de Informática Programación de Computadores IWI-131 Arreglos - Arrays Como se puede ver en el ejemplo anterior, para referirse a un elemento del arreglo, se añade corchetes cuadrados al nombre del array. Entre los corchetes cuadrados se indica (bien con una variable o con una expresión) el índice del elemento al que se quiere acceder. El índice del array empieza en 0 y termina en la longitud del array menos uno. 14

Departamento de Informática Programación de Computadores IWI-131 Accediendo los elementos Un índice describe la posición de un elemento dentro de un arreglo. Recordar en Java el primer elemento tiene el índice cero!

Departamento de Informática Programación de Computadores IWI-131 Arreglos - Arrays Hay otro elemento interesante en el pequeño ejemplo anterior. –El bucle for itera sobre cada elemento de arrayDeEnteros asignándole valores e imprimiendo esos valores. –Se usa arrayDeEnteros.length para obtener el tamaño real del arreglo, length es una propiedad proporcionada para todos los arreglos de Java. 16

Departamento de Informática Programación de Computadores IWI-131 Ejemplos 1.- Realizar un programa en el que se ingresen 10 enteros, y luego muestre la suma de ellos y su promedio 2.- Encontrar el máximo de una lista de 10 elementos 3.- Desarrolle un programa que calcule el promedio de las notas de un curso

Departamento de Informática Programación de Computadores IWI-131 Ejemplo notas alumno public class Notas { public static void main(String[]args) { int Nota[] = new int[7]; int i; float suma=0; for(i=0; i<7; i++) do { StdOut.println("Ingrese la nota "+(i+1)+ " de su quiz"); Nota[i]=StdIn.readInt(); } while(Nota[i]<=0); for(i=0;i<7;i++) suma = suma + Nota[i]; StdOut.println(suma); StdOut.println("El promedio de sus quices es de "+ (float)(suma/7)); }

Departamento de Informática Programación de Computadores IWI-131 Arreglos Bidimensionales Un arreglo bidimensional es una lista de arreglos unidimensional Para declarar un arreglo bidimensional de enteros int [][] matriz = new int[3][4];

Departamento de Informática Programación de Computadores IWI-131 Ejemplo int fila=3,col=4; for(fila=0;fila<3;fila++) for(col=0;col<4;col++) matriz[fila][col]=fila*col; //más fácil for(fila=0;fila<matriz.length;fila++) for(col=0;col<matriz[0].length;col++) StdOut.print(matriz[fila][col]);

Departamento de Informática Programación de Computadores IWI-131 Arreglos Bidimensionales Por ejemplo: Cada alumno tiene tres notas, una por cada certamen. Entonces las notas de un alumno pueden contenerse en un arreglo de tamaño tres, Ahora si queremos mantener las notas de un curso de 52 alumnos. Podemos mantener las notas en un arreglo de 52 arreglos de tamaño 3

Departamento de Informática Programación de Computadores IWI-131 Notas del curso int alumnos=52; int notas=3; int curso[][] = new int[alumnos][notas]; int fila,col; for(fila=0;fila<alumnos;fila++) for(col=0;col<notas;col++) curso[fila][col]=StdIn.readInt(); Con lo cual curso[10][2] representa la nota del tercer certamen del alumno identificado como 10 (que realmente será el 11 ingresado dado que el arreglo comienza en 0)

Departamento de Informática Programación de Computadores IWI-131 Ejemplo Desarrolle un programa que reciba como entrada las notas de cada pregunta del certamen 1 de programación, para todos los alumnos, y muestre como salida un resumen con las notas finales de todos los alumnos

Departamento de Informática Programación de Computadores IWI-131 Ejemplo notas curso public class Curso { public static void main(String[] args) { int C[][] = new int[3][4]; int i, j, suma; for(i=0; i<3;i++) for(j=0;j<4;j++) { do { StdOut.println("Ingrese la nota "+(j+1)+" del curso "+(i+1)); C[i][j]=StdIn.readInt(); }while(C[i][j]<=0); } for(i=0; i<3;i++) { suma=0; for(j=0;j<4;j++) suma = suma + C[i][j]; StdOut.println("El promedio de notas del curso "+(i+1)+ " es de: "+ (suma/4)); }

Departamento de Informática Programación de Computadores IWI-131 Multidimensionales No existe un limite lógico definido para la cantidad de dimensiones que puede tener un arreglo, físico sí, la memoria reservada. Java permite arreglos con mas de dos dimensiones,La forma general de una declaración de arreglo es: tipo[][]…[] nombre_var; nombre_var= new tipo[tamaño1][tamaño2]…[tamañoN]; int a=3,b=4,c=5,i,j,k; int[][][] arr= new int[a][b][c]; for(i=0; i<a; i++) for(j=0; j<b; j++) for(k=0; k<c; k++) arr[i][j][k]=i+j+k;

Departamento de Informática Programación de Computadores IWI-131 Nota máxima, curso y alumno public class Nota_Max { public static void main(String[] args) { int a, b, i, j, max, posi, posj; do { StdOut.println("Ingrese la cantidad de Cursos"); a = StdIn.readInt(); } while(a<=0); do { StdOut.println("Ingrese la cantidad de Alumnos"); b = StdIn.readInt(); } while(a<=0); int C[][] = new int[a][b]; for(i=0;i<a;i++) { for(j=0;j<b;j++) { do { StdOut.println("Ingrese la nota "+(j+1)+" del curso "+(i+1)); C[i][j]=StdIn.readInt(); }while((C[i][j] 100)); } max=C[0][0]; posi=0; posj=0; for(i=0;i<a;i++) for(j=0;j<b;j++) { if(max<=C[i][j]) { max = C[i][j]; posi = i; posj = j; } StdOut.println("La nota maxima fue de "+ max+" y la saco el alumno "+(posj+1)+" en el curso "+(posi+1)); }

Departamento de Informática Programación de Computadores IWI-131 Ordenamiento Burbuja Existen numerosos algoritmos para ordenar. A continuación se verá Ordenamiento Burbuja (bublesort). Idea: vamos comparando elementos adyacentes y empujamos los valores más livianos hacia arriba (los más pesados van quedando abajo). Idea de la burbuja que asciende, por lo liviana que es.

Departamento de Informática Programación de Computadores IWI-131 Ordenamiento Burbuja Código for (int i = 0; i < arreglo.length; i++) for (int j = 0; j < arreglo.length - 1; j++) if (arreglo[j] > arreglo[j + 1]) { aux = arreglo[j]; arreglo[j] = arreglo[j + 1]; arreglo[j + 1] = aux; } 28

Departamento de Informática Programación de Computadores IWI-131 Ordenamiento Burbuja Aplicado import java.util.Random; public class Burbuja { public static void main(String args[]) { Random numeroAleatorio = new Random(); int arreglo[] = new int[10]; // Generamos numeros for (int i = 0; i < arreglo.length; i++) { arreglo[i] = numeroAleatorio.nextInt(9) + 1; System.out.print(arreglo[i]); } System.out.println(); // Los ordenamos con ordenamiento burbuja int aux; for (int i = 0; i < arreglo.length; i++) { for (int j = 0; j < arreglo.length - 1; j++) { if (arreglo[j] > arreglo[j + 1]) { aux = arreglo[j]; arreglo[j] = arreglo[j + 1]; arreglo[j + 1] = aux; } 29

Departamento de Informática Universidad Técnica Federico Santa María Fin Preparando la revancha …