9. Collecciones en C++ .NET

Slides:



Advertisements
Presentaciones similares
Arreglos.
Advertisements

10. Modelación de un Videojuego. BALLOON ATTACK. El planeta está siendo invadido por extraños extraterrestres en forma de globos, y ningún arma existente.
Curso de java básico (scjp)
CJ02 – Técnicas avanzadas en java 1.4 y 5.0
11. Control de Flujo 2: Iteraciones.. Sirve para tomar decisiones de todo tipo. Sirve para evaluar condiciones, ej: extremos de la pantalla. En videojuegos.
Programación Gráfica 8. Clases y objetos.
ESTRUCTURA DE DATOS Unidad 01 MATRICES.
Definición de Clases y Variables de referencia.
Desarrollo de Aplicaciones para Internet
Capitulo 3 Java util.
Informática II Prof. Dr. Gustavo Patiño MJ
CS1101X Programming Methodology
ESTRUCTURAS DE SECUENCIA
Marzo 2007 Lenguajes Visuales Clase III.
Estructuras de Datos Manipulación de la Especificación de la Lista en C++
Análisis y programación 13051A. * Como se había comentado anteriormente, un vector es un arreglo o colección de datos donde los datos se almacenan de.
Algoritmo y Estructura de Datos I I Facultad de Ingeniería y Arquitectura Ing. Juan José Montero Román. Sesión 3.
Vectores en java.
Arreglos: Vectores en JAVA
JAVA 1.5 Fernando Almeida Octubre Introducción Java Specification Request (JSR) 14Java Specification Request (JSR) 14 propone introducir tipos y.
Métodos Algoritmos y Desarrollo de Programas I. Cuando utilizar métodos  Los métodos se utilizan para romper un problema en pedazos de forma que este.
Estructuras de Control
Modificadores.
TÉCNICO EN PROGRAMACIÓN DE SOFTWARE Instructor: Ingeniero Adrián Guerrero Taborda
1 Herencia en Java Agustín J. González Diseño y Programación Orientados a Objetos.
Public class MiClase { public static int tmp = 123; // miembro variable public static final double PI = ;// miembro constante public float.
Técnicas avanzadas de programación Interfaces
Colecciones.
Arreglos.
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SEMANA TRES ASIGNACION.
Curso Programación en Java
JAVA J.A.C..
ESTRUCTURAS DO-WHILE Y FOR.
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.
ESTRUCTURA DE DATOS EN JAVA
Clase 10: Estructuras de datos y arreglos.
Computación II Repaso de java Karina Figueroa Mora.
1 Asignación Dinámica de Memoria Agustín J. González Versión original de Kip Irvine ELO 329.
Resumen Fundamentos de Programación/ Programación I
Programación Orientada Objetos
Computación I Primer Semestre 2006 Capítulo IV Ciclos y Colecciones (con un sabor a algoritmos)
COMP 250.  Ejemplo:  Suponer que se necesita codificar un programa donde se muestre como resultado el string “Bienvenidos al mundo de JAVA!!!” cien.
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.
1 Herencia en Java Agustín J. González Diseño y Programación Orientados a Objetos.
1 Definición y Conversión de datos Agustín J. González ELO-329.
Herencia. Introducción La idea básica es poder crear clases basadas en clases ya existentes. Cuando heredamos de una clase existente, estamos re-usando.
Arreglos de Objetos.
1 Asignación Dinámica de Memoria Agustín J. González ELO 329.
Fundamentos de Programación
ARREGLOS (arrays).
Fundamentos de Programación
:: Prof. Yeniffer Peña Programación I Programación Orientada a Objetos Presentación.
Algoritmo.
ARREGLOS. La sintaxis para declarar e inicializar un array será: Tipo_de_variable[ ] Nombre_del_array = new Tipo_de_variable[dimensión]; También podemos.
MEMORIA DINÁMICA.
ARRAYS Y COLECCIONES DE DATOS. ARRAYS Arrays – Matriz – Vector Elemento del lenguaje que nos permite agrupar un conjunto de valores del mismo tipo, y.
1 Definición y Conversión de datos Agustín J. González ELO-329.
Clases “ Es una Abstracción de un elemento del mundo real ”
ESTRUCTURAS DE DATOS “Conceptualización de estructuras de datos” Por: Eduardo Robayo.
Factorías e Iterables Introducción del concepto de patrón de diseño Construcción de tipos para recorridos con for extendido Fundamentos de 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.
Lenguaje de Programación II Prof. Rafael Montenegro B. Carrera: T.S.U en Informática Periodo: 2014-I.
ESTRUCTURA DE UN PROGRAMA EN
ArreglosUnidimensionales enjava. Existenarreglosdeunadimensión (unidimensionales),dedosdimensiones Losarreglossonvariablesquealmacenanvarios valores del.
Programación Orientada Objetos Vectores de Objetos.
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.
Taller de Java Universidad de los Andes
Transcripción de la presentación:

9. Collecciones en C++ .NET Programación Gráfica 9. Collecciones en C++ .NET

9.1 Arreglos

Arreglos Colección ordenada de elementos de un mismo tipo. Ordenada significa que cada elemento tiene una ubicación determinada dentro del arreglo y debemos conocerla para accederlo. 1 2 3 4 1 3 4 6 2

Arreglos 1 Dimensión Declaración <tipo>* nombre_variable; Inicialización nombre_variable = new <tipo>[<tamaño>]; Ejemplo int* vector; vector = new int[3];

Arreglos 2 Dimensiones Declaración <tipo>** nombre_variable; Inicialización *nombre_variable = new <tipo>[<tamaño_dim1>]; for(int i= 0; i< <tamaño_dim1>; i++) nombre_variable[i] = new <tipo>[<tamaño_dim2>];

Arreglos 2 Dimensiones Declaración char** tablero; Inicialización *tablero = new char[3]; for(int i= 0; i<3; i++) tablero[i] = new char[3];

9.1 Collecciones

Colecciones Las colecciones son estructuras de datos que nos permiten almacenar y administrar diversos tipos de datos y objetos. Para esto usamos el namespace System::Collections;

Colecciones Las más utilizadas son: ArrayList HashTable Queue Stack SortedList

Funcionalidades Adherir un nuevo elemento. Determinar si existe un elemento. Acceder a un elemento. Remover un elemento. Limpiar la estructura. Obtener el número de elementos insertados.

ArrayList Representa una lista de datos, la cual es dinámica; es decir, puede aumentar o disminuir en su tamaño. Declaración: ArrayList^ list; Inicialización: list = gcnew ArrayList();

ArrayList 1 2 3 4 1 3 4 6 2

ArrayList Adherir un nuevo elemento. Determinar si existe un elemento. int Add(System::Object^ value); void Insert(int index, System::Object^ value); Determinar si existe un elemento. bool Contains(System::Object^ value); Acceder a un elemento. <nombre_array>[ <index> ];

ArrayList Remover un elemento. Limpiar la estructura. void Remove(System::Object^ value); Limpiar la estructura. void Clear(); Obtener el número de elementos insertados. int Count;

ArrayList – Ejemplo PROBLEMA! Ej: Insertamos datos te tipo double y queremos acceder a ellos. list->Add(4.5); list->Add(5.4); list->Add(3.2); double dato = list[0]; PROBLEMA! En collections, todos los datos que manejan las estructuras de datos son de tipo Object^. Se debe hacer alguna conversión.

Casting Estático Para realizar un casting entre tipos de datos básicos, utilizamos static_cast. Se utiliza de la siguiente manera: static_cast < tipo_dato > ( dato_a_convertir ); double dato = static_cast< double >( list[0] );

Casting Dinámico Para realizar un casting entre objetos, utilizamos dynamic_cast. Se utiliza de la siguiente manera: dynamic_cast < tipo_objeto > ( objeto_a_convertir ); Sprite^ sp = dynamic_cast< Sprite^ >( list[0] );

Recorrer elementos Para recorrer elementos de una estructura podemos utilizar for. for(int i=0; i < list->Count; i++) { suma += static_cast < double >( list[i] ); }

Recorrer elementos Usando un enumerador, el cual no es más que una clase especializada que recorre todos los elementos, optimizando recursos. IEnumerator^ e = list->GetEnumerator(); while(e->MoveNext()) { suma += static_cast < double >(e->Current)); }

Remover elementos Se desea remover un elemento, al recorrer una estructura. while(e->MoveNext()) { double dato = static_cast < double >(e->Current)); if(dato < 4.0) list->Remove(e->Current); } PROBLEMA !!!

Remover elementos Solución Terminar el for una vez que se cumple una condición. while(e->MoveNext()) { double dato = static_cast < double >(e->Current)); if(dato < 4.0) list->Remove(e->Current); break; }

9.1 Collecciones Genéricas

Colecciones Genéricas Son colecciones con la misma funcionalidad que las colecciones no genéricas, con la diferencia que éstas están orientadas a trabajar con datos específicos. Pertenecen al namespace System::Collections::Generics; La clase ArrayList idéntica en gererics es List.

List List<int>^ listaNumeros = gcnew List<int>(); List<Sprite^> enemigos = gcnew List<Sprite^>(); Para los siguientes ejemplos utilizaremos una lista de balas y una de globos: List<Bala^>^ listaBalas = gcnew List<Bala^>(); List<Globo^>^ listaGlobos = gcnew List<Globo^>();

List List<int>^ listaNumeros = gcnew List<int>(); List<Sprite^> enemigos = gcnew List<Sprite^>();

List Para los siguientes ejemplos utilizaremos una lista de balas y otra de globos: List<Globo^> listaGlobos = gcnew List<Globo^>(); List<Bala^> listaBalas = gcnew List<Bala^>();

Recorrer listas Para recorrer una lista utilizamos nuevamente la clase IEnumerator. En el ejemplo se muestra cómo se mueven todas los globos de una lista a la vez.

Recorrer listas

Eliminar elementos Para eliminar elementos, podemos iterar nuevamente y hacer un break una vez se cumpla una condición. En el siguiente ejemplo se muestra cómo se elimina del SceneManager y de la lista de globos una vez éste haya atravesado la pantalla (de arriba abajo).

Eliminar elementos

Recorrer y eliminar elementos La idea no es recorrer la lista primero para mover globos y luego para eliminar los globos si atravesaron la pantalla, ya que estamos recorriendo 2 veces la lista. Veamos cómo podemos recorrer la lista y eliminar al mismo momento.

Recorrer y eliminar elementos Opción 1: Utilizando una lista temporal. Ejemplo: tenemos una lista de balas y una de globos y queremos ver si una bala a impactado un globo. Para esto el globo lo eliminamos normalmente, pero la bala la adherimos a una lista de balas.

Recorrer y eliminar elementos

Recorrer y eliminar elementos

Recorrer y eliminar elementos Opción 2: Inicializando el iterador cada vez que se desee remover un elemento.

Colecciones http://developmania.wordpress.com/2008/08/23/colecciones-de-datos-en-cnet-parte-ii-arraylist/

Preguntas ¿? 37