Estructuras de Datos Aun en problemas muy simples surge la necesidad de agrupar valores elementales de alguna manera. Cuando representamos una caja de.

Slides:



Advertisements
Presentaciones similares
Abstracción de Datos La abstracción es un recurso fundamental en la programación orientada a objetos y está además fuertemente ligado a reusabilidad.
Advertisements

Aun en problemas muy simples surge la necesidad de agrupar valores elementales de alguna manera. Cuando representamos una caja de ahorro bancaria definimos.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Caso.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Arreglo.
Tratamientos secuenciales I Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Unidad Didáctica 8 Versión
AYUDANTÍA 2 Lenguaje Imperativo y Java. Punteros Dirección a memoria (puede apuntar a NULL). Permite trabajar con memoria (variables dinámicas de heap).
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Abstracción.
PROGRAMACIÓN I CENTRO DE ESTUDIOS INTEGRADOS EL MARISCAL - CEIM Ing. Luisa Fernanda Arenas Castañeda Feb 6 de 2016.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Arreglo.
2015-BM5A. ¿Qué estructuras de Programación conocemos? Condicional: If … { } … Else …{ } Condicional por Casos: Switch (opcion) { } Repetitiva exacta:
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Encapsulamiento.
Introducción a la Programación Orientada a Objetos Sonia Rueda Encapsulamiento y Abstracción Departamento de Ciencias e Ingeniería de la Computación UNIVERSIDAD.
Lenguaje de Programacio Python Presentado por Jubel Crispán Materia Informatica Educativa.
PROGRAMACIÓN ORIENTADA A OBJETOS SEGUNDA UNIDAD: “CLASES, OBJETOS Y MÉTODOS” IRVING YAIR SALAS CHÁVEZ ING. EN SISTEMAS COMPUTACIONALES - ITSLP.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS
Internet Protocols (IPs)
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS
Taller de Java Universidad de los Andes
Estructuras de Control.
Introducción al lenguaje C Instrucción IF – ELSE y el bucle WHILE
IPOO 2 cuatrimestre 2015 Departamento de Ciencias e Ingeniería
ROBERTO PINEDA FLORES. ALEXIS JULIAN VELAZQUEZ NAVA.
Olimpiadas Chilenas de Informática - Formación
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS
Programación Avanzada
Métodos y parámetros.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS
Conceptos básicos de programación
Algunas Características de C++ no presentes en C
Arreglos. en Lenguaje C n
IPOO 2 cuatrimestre 2017 Departamento de Ciencias e Ingeniería
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS
IPOO 2 cuatrimestre 2017 Departamento de Ciencias e Ingeniería
IPOO 2 cuatrimestre 2015 Departamento de Ciencias e Ingeniería
LISTAS..
IPOO 2 cuatrimestre 2017 Departamento de Ciencias e Ingeniería
Tema 4 Elementos para el Desarrollo de Algoritmos
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS
Algunas Características de C++ no presentes en C
Certificado de Hacking Ético Experto(Chee)
Vectores Unidad II A Z L D Comenzar.
LENGUAJE DE PROGRAMACION III Estructuras Estáticas de Datos
IPOO 2 cuatrimestre 2016 Departamento de Ciencias e Ingeniería
IPOO 2 cuatrimestre 2017 Departamento de Ciencias e Ingeniería
Fundamentos de programación
Fundamentos de programación
Fundamentos de Programación
Tema 9. Estructuras de repetición. Clase 2
Metodología de la Programación
IPOO 2 cuatrimestre Departamento de Ciencias e Ingeniería
Programación I MC José Andrés Vázquez Flores
COMPONENTES WEB TEMA: variables.
Conferencia 2 TDA Lista lineal.
Tema 3: Operadores Antonio J. Sierra.
INTRODUCCION Hasta ahora solo hemos tenido que trabajar con algunas variables en cada uno de los programas que hemos realizado. Sin embargo, en más de.
Estructuras de Datos Dinámicas
IPOO 2 cuatrimestre 2018 Departamento de Ciencias e Ingeniería
PROGRAMACIÓN (2).
Tema 8 Arreglos Parte 4.
Arreglos en Java.
Estructuras de Datos Aun en problemas muy simples surge la necesidad de agrupar valores elementales de alguna manera. Cuando representamos una caja de.
Curso de Programación Estructurada
Informática Ingeniería en Electrónica y Automática Industrial
JAVA: elementos básicos
Informática Ingeniería en Electrónica y Automática Industrial
IPOO 2 cuatrimestre 2018 Departamento de Ciencias e Ingeniería
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS
Tema 8. Estructuras de decisión. Clases 1 y 2.
IPOO 2 cuatrimestre Departamento de Ciencias e Ingeniería
Transcripción de la presentación:

Estructuras de Datos Aun en problemas muy simples surge la necesidad de agrupar valores elementales de alguna manera. Cuando representamos una caja de ahorro bancaria definimos una clase CuentaBancaria agrupando el codigo y el saldo. Un objeto de clase CuentaBancaria es una estructura de datos formada por componentes de tipo elemental. Una variable de tipo clase CuentaBancaria va a referenciar a una estructura de datos que mantiene dos valores numéricos. Introducción a la Programación Orientada a Objetos

Estructuras de Datos Cuando representamos un círculo definimos una clase Circulo agrupando componentes de diferentes tipos. Un objeto de clase Circulo es una estructura de datos formada por una componente de tipo elemental y una de tipo clase. Una variable de tipo clase Circulo referencia a una estructura de datos. Introducción a la Programación Orientada a Objetos

Arreglos Un arreglo es una estructura de datos homogénea y lineal. Es una estructura de datos porque agrupa a varios valores, que pueden ser accedidos individualmente. Es homogénea porque todos los valores son del mismo tipo. El lineal porque todos los valor ocupan posiciones contínuas, de modo que cada uno tiene un que le sigue, excepto el último y todos tienen uno anterior, excepto el primero. Introducción a la Programación Orientada a Objetos

Arreglos Un arreglo queda asociado a una única variable. Cada valor es un elemento o componente del arreglo y puede accederse a través de un subíndice. El subíndice representa la posición relativa del elemento dentro del arreglo. Un lenguaje que soporte arreglos debe brindar operaciones para: Declarar una variable Crear la estructura Acceder a sus componentes Introducción a la Programación Orientada a Objetos

Arreglos Hallar una representación adecuada para las temperaturas mínimas registradas durante un período en una estación meteorológica. Declarar la variable <TipoBase> [ ] <Identificador>; float [] tMin; Introducción a la Programación Orientada a Objetos

Arreglos Hallar una representación adecuada para las temperaturas mínimas registradas durante un período en una estación meteorológica. Crear la estructura <Identificador> = new <TipoBase> [<Exp>]; tMin = new float [7]; Introducción a la Programación Orientada a Objetos

Arreglos Hallar una representación adecuada para las temperaturas mínimas registradas durante un período en una estación meteorológica. Acceder a sus componentes <Identificador> [<Exp>] tMin[3] 0 1 2 3 4 5 6 Introducción a la Programación Orientada a Objetos

es una variable subindicada de tipo float Arreglos tMin[3] = 5.2; x = tMin[3]; tMin[3] es una variable subindicada de tipo float 5.2 0 1 2 3 4 5 6 Introducción a la Programación Orientada a Objetos

Arreglos i = 0; tMin[i] = -2; tMin[i+1] = ES.leerFloat(); max = tMin[i]; tMin[i+1] = tMin[i]; System.out.prinln(tMin[i]); La expresión que computa el subíndice tiene que producir un valor dentro del rango (0,6). En ejecución, si el cómputo produce un valor que está fuera del rango establecido, Java produce una excepción y el programa termina anormalmente. Introducción a la Programación Orientada a Objetos

Arreglos Un arreglo tiene una longitud que queda fija en el momento de la creación y se almacena en una variable llamada length. tMin.length 0 1 2 3 4 5 6 Introducción a la Programación Orientada a Objetos

Arreglos Leer las temperaturas mínimas y almacenarlas en el arreglo tMin[0] = ES.leerFloat(); tMin[1] = ES.leerFloat(); tMin[2] = ES.leerFloat(); tMin[3] = ES.leerFloat(); tMin[4] = ES.leerFloat(); tMin[5] = ES.leerFloat(); tMin[6] = ES.leerFloat(); for (int i=0; i<tMin.length; i++) { tMin[i]=ES.leerFloat(); } Introducción a la Programación Orientada a Objetos

Arreglos Mostrar las temperaturas mínimas almacenadas en un arreglo for (int i=0;i<tMin.length;i++) { System.out.println(tMin[i]); } Introducción a la Programación Orientada a Objetos

Arreglos Calcular en cuántas días hubo heladas Corresponde a un patrón conocido valor  0 para i tomando valores entre 1 y n leer s si s cumple la propiedad p valor  valor + 1 contador  0 n  cantidad de elementos para i tomando valores entre 0 y n-1 si tMin[i] cumple la propiedad p contador  contador + 1 Introducción a la Programación Orientada a Objetos

Arreglos Calcular en cuántas días hubo heladas int cantHeladas = 0; for (int i=0;i<tMin.length;i++) if (tMin[i]<0) cantHeladas++; Es un recorrido exhaustivo Introducción a la Programación Orientada a Objetos

Arreglos Decidir si algún día heló Analizar la eficiencia int cantHeladas = 0; for (int i=0;i<tMin.length;i++) if (tMin[i]<0) cantHeladas++; boolean huboHeladas = cantHeladas > 0; Analizar la eficiencia Introducción a la Programación Orientada a Objetos

Arreglos Decidir si algún día heló Es un recorrido NO exhaustivo boolean huboHeladas = false; int i = 0; while ((i<tMin.length)&&(!huboHeladas)){ if (tMin[i]<0) huboHeladas=true; i++; } Es un recorrido NO exhaustivo Introducción a la Programación Orientada a Objetos

Arreglos Decidir si algún día heló boolean huboHeladas = false; for (int i=0; (i<tMin.length&&(!huboHeladas));i++) if (tMin[i]<0) huboHeladas=true; Es un recorrido NO exhaustivo Introducción a la Programación Orientada a Objetos

Arreglos Calcular el promedio de las temperaturas mínimas float suma=0; float promedio; for (int i=0;i<tMin.length;i++) suma += tMin[i]; promedio = suma/tMin.length; Introducción a la Programación Orientada a Objetos

Arreglos Calcular la temperatura máxima entre las mínimas float max = tMin[0]; for (int i=1;i<tMin.length;i++) if (tMin[i]>max) max = tMin[i]; Introducción a la Programación Orientada a Objetos

Arreglos Calcular la temperatura máxima entre las mínimas float max; for (int i=0;i<tMin.length;i++) if (i == 0) max = tMin[i]; else if (tMin[i]>max) No es una buena estrategia utilizar un condicional que solo se verifica en la primera iteración (o en la última) Introducción a la Programación Orientada a Objetos

Arreglos Calcular el primer día que se produjo la temperatura máxima entre las mínimas int dia = 0; for (int i=1;i<tMin.length;i++) if (tMin[i]>tMin[dia]) dia= i; Introducción a la Programación Orientada a Objetos

Arreglos Calcular el último día que se produjo la temperatura máxima entre las mínimas int dia = 0; for (int i=1;i<tMin.length;i++) if (tMin[i]>=tMin[dia]) dia= i; Introducción a la Programación Orientada a Objetos

Arreglos Calcular la primera temperatura registrada mayor a una temperatura t. Si no existe, devolver t ¿exhaustivo o NO exhaustivo? Introducción a la Programación Orientada a Objetos

Arreglos Calcular la primera temperatura registrada mayor a una temperatura t. Si no existe, devolver t boolean encontre = false; int i = 0; float temp_mayor = t; while ((i<tMin.length) && (!encontre)) if (tMin[i]> t){ encontre=true; temp_mayor = tMin[i];} else i++; Introducción a la Programación Orientada a Objetos

Arreglos Calcular la última temperatura registrada mayor a una temperatura t. Si no existe, devolver t ¿exhaustivo o NO exhaustivo? Introducción a la Programación Orientada a Objetos

Arreglos Calcular la última temperatura registrada mayor a una temperatura t. Si no existe, devolver t boolean encontre = false; int i = tMin.length-1; float temp_mayor = t; while ((i>=0) && (!encontre)) if (tMin[i]> t){ encontre=true; temp_mayor = tMin[i];} else i--; Introducción a la Programación Orientada a Objetos

Arreglos Calcular a qué día corresponde la primera temperatura registrada mayor a una dada. Si no existe, devolver -1 boolean encontre = false; int i = 0; int dia = -1; while ((i<tMin.length) && (!encontre)) if (tMin[i]> t){ encontre=true; dia = i;} else i++; Introducción a la Programación Orientada a Objetos

Arreglos Calcular en cuántos días se produjeron temperaturas mínimas mayores a t. int cont = 0; for (int i=0;i<tMin.length;i++) if (tMin[i]>t) cont++; Sigue el mismo patrón que contar la cantidad de heladas Introducción a la Programación Orientada a Objetos

Arreglos Decidir si hubo al menos n días con temperaturas mínimas mayores a t int i = 0; int cont= 0; while ((i<tMin.length) && cont < n) if (tMin[i]> t) cont++; i++; } boolean hubo = cont == n; Introducción a la Programación Orientada a Objetos

Arreglos Decidir si hubo exactamente n días con temperaturas mínimas mayores a t int i = 0; int cont= 0; while ((i<tMin.length)&& (cont<=n)) if (tMin[i]> t) cont++; i++; } boolean hubo = cont == n; Introducción a la Programación Orientada a Objetos

Administración de Memoria tMin length 7 float [] tMin; tMin = new float[7]; Se crea un objeto y se asigna la referencia a la variable. La variable mantiene una referencia asociada a un arreglo Introducción a la Programación Orientada a Objetos

Administración de Memoria v w length 7 float [] v,w; v = new float[5]; w = v; Una operación de asignación copia la dirección de memoria, no el contenido del arreglo El operador relacional == compara referencias Introducción a la Programación Orientada a Objetos