Aun en problemas muy simples surge la necesidad de agrupar valores elementales de alguna manera. Cuando representamos una caja de ahorro bancaria definimos.

Slides:



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

Pippy (Python para niños)‏ 1.
Iteración La iteración permite modelar problemas en los cuales una secuencia de instrucciones debe ejecutarse varias veces. La cantidad de iteraciones.
ALGORITMOS DE ORDENAMIENTO
Defina una clase TempMinEstacion que encapsule la representación de las temperaturas mínimas registradas en una estación meteorológica en un período y.
El proceso de desarrollo de software
Abstracciones y Modelos
Reusabilidad La productividad está basada en reusabilidad y extensibilidad El reusabilidad permite desarrollar nuevas aplicaciones a partir de componentes.
El proceso de desarrollo de software
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.
Tema 1. Introducción a la programación (Lenguaje java).
1.2 Sintaxis del lenguaje Java.
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
Estructuras de control
VECTORES.
Encapsulamiento y Abstracción
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.
Unidad 3 Punteros.
Java Java es un lenguaje de programación presentado en 1995 enfocado a: soportar los fundamentos de la programación orientada a objetos. generar código.
El concepto de clase Con frecuencia un término puede definirse de diferentes maneras según el enfoque. Desde el punto de vista del análisis y el diseño.
Genericidad Los datos de aplicaciones muy diferentes puede modelarse con frecuencia a partir de tipos de datos cuyas operaciones no dependen del tipo de.
Tema 3. Optimización de Código
Vectores en java.
Arreglos: Vectores en JAVA
Tema 6: Clases Antonio J. Sierra.
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.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Objetos.
UNIDAD V Arreglos y Cadenas
TIPOS Y ESTRUCTURAS BÁSICAS DE DATOS
ESTRUCTURAS DE DATOS I Conocer, comprender y analizar algunos de los principales tipos de estructuras de datos.
Índice. Revisando conceptos acerca de la memoria.
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.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Encapsulamiento.
Aplicación de estructuras de datos
El Lenguaje C++. Creación de programas simples de C++ Builder como ejercicios en C++. Los elementos de control fundamentales en C++, incluyendo operadores.
Programación en C para electrónicos
Vectores y Matrices.
Vectores y Matrices.
Unidad II Aplicaciones con Arreglos en Java y C++
Introducción a la Programación Orientada a Objetos Una clase que modela los atributos y el comportamiento de una colección de objetos, define un tipo de.
Estructura de datos I CIS - UABJB.
Fundamentos de Programación
Arrays multidimensionales en JAVA
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Caso.
Arreglos unidimensionales
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Arreglo.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Abstracción.
Introducción a la Programación Orientada a Objetos Arreglos de 2 dimensiones TDA Matriz Implementar un TDA Matriz que brinde operaciones para calcular.
Abstracción El concepto de abstracción es esencial en ciencias de la computación. Un programa es en sí mismo una abstracción, un modelo de la resolución.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Caso.

INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Tipo.
Java Java es un lenguaje de programación presentado en 1995 enfocado a: soportar los fundamentos de la programación orientada a objetos. generar código.
Lenguaje de Programación Computación y Programación
U2 Tipos de datos, referenciación y errores 1. Datos problema simple enteroreal carácter booleano Ingeniero = Oreja+catalejo modelo ordenador solución.
ESTRUCTURAS DE DATOS “Conceptualización de estructuras de datos” Por: Eduardo Robayo.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Arreglo.
Introducción al Lenguaje C (I) Tipos básicos, arrays y punteros Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión
UNIVERSIDAD TECNOLÓGICA DE PANAMÁ Facultad de Ingeniería de Sistemas Computacionales Programa de Lic. en Informática Educativa Computación.
Lenguaje de Programación II Prof. Rafael Montenegro B. Carrera: T.S.U en Informática Periodo: 2014-I.
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.
Estructuras de Datos Aun en problemas muy simples surge la necesidad de agrupar valores elementales de alguna manera. Cuando representamos una caja de.
Estructuras de Datos Aun en problemas muy simples surge la necesidad de agrupar valores elementales de alguna manera. Cuando representamos una caja de.
Transcripción de la presentación:

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 Estructuras de Datos

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. Introducción a la Programación Orientada a Objetos Un lenguaje que soporte arreglos debe brindar operaciones para: Declarar una variable Crear la estructura Acceder a sus componentes

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 [ ] ; 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 = new [ ]; 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 [ ] Introducción a la Programación Orientada a Objetos tMin[3]

Arreglos tMin[3] = 5.2; x = tMin[3]; tMin[3] es una variable subindicada de tipo float 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]); Introducción a la Programación Orientada a Objetos 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.

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 Introducción a la Programación Orientada a Objetos

Leer las temperaturas mínimas y almacenarlas en el arreglo Arreglos 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

Mostrar las temperaturas mínimas almacenadas en un arreglo Arreglos 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 Introducción a la Programación Orientada a Objetos 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

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

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

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

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

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

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

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

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

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

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

Arreglos 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 Calcular la primera temperatura registrada mayor a una temperatura t. Si no existe, devolver t

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

Arreglos 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 Calcular la última temperatura registrada mayor a una temperatura t. Si no existe, devolver t

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. Introducción a la Programación Orientada a Objetos int cont = 0; for (int i=1;i<tMin.length;i++) if (tMin[i]>t) cont++; Sigue el mismo patrón que contar la cantidad de heladas

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 n) if (tMin[i]> t) cont++; i++; } boolean hubo = cont == n; Introducción a la Programación Orientada a Objetos

Administración de Memoria /≡ float [] tMin; Se declara una variable tMin que referenciará a un arreglo con componentes de tipo float. v En Java una variable declarada como un arreglo mantiene una referencia.

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

Introducción a la Programación Orientada a Objetos Administración de Memoria 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 v w 7 length