La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Recorridos Iterativos y Recursivos Introducción a la Programación Orientada a Objetos Números L [] enteros > Numeros(cant:entero) > establecerNum(i:entero,num:entero)

Presentaciones similares


Presentación del tema: "Recorridos Iterativos y Recursivos Introducción a la Programación Orientada a Objetos Números L [] enteros > Numeros(cant:entero) > establecerNum(i:entero,num:entero)"— Transcripción de la presentación:

1 Recorridos Iterativos y Recursivos Introducción a la Programación Orientada a Objetos Números L [] enteros > Numeros(cant:entero) > establecerNum(i:entero,num:entero) ordenar() > obtenerNum(i:entero):entero estaNumero(num:entero):boolean particionado(pos:entero):boolean mayorNumero():entero ordenado(): booleano Asume que i es una posición válida

2 Recorridos Iterativos y Recursivos Introducción a la Programación Orientada a Objetos estaNumero(num) retorna verdadero si y solo sí L[i]=num para algún i tal que 0<=i=L[j] para 0<=i

3 Recorridos Iterativos y Recursivos Introducción a la Programación Orientada a Objetos Planteo Iterativo Comparar cada elemento L i con num Condición de corte La comparación es verdadera o se agota la estructura Algoritmo Iterativo para 0 <= i < n y mientras no encuentre si num = L i encontro el elemento n es la cantidad de elementos Dado un arreglo L con n elementos L 0,L 1, …, L n-1 estaNumero(num) retorna verdadero si uno de los elementos de L es num.

4 Recorridos Iterativos y Recursivos Introducción a la Programación Orientada a Objetos Implementación public boolean estaNumero(int num){ int i=0; esta=false; int n=L.length; while ((i

5 Recorridos Iterativos y Recursivos Introducción a la Programación Orientada a Objetos Dado un arreglo L con n elementos L 0,L 1, …, L n-1 estaNumero(num) retorna verdadero si uno de los elementos de L es num. Retorna verdadero si el último elemento es num o num está en L 0,L 1, …, L n-2 L n-1 =num o num está en L 0, …, L n-2 Una alternativa de solución es generar un nuevo arreglo sin el elemento L n-1 Es una alternativa natural pero muy ineficiente.

6 Recorridos Iterativos y Recursivos Introducción a la Programación Orientada a Objetos Dado un arreglo L con n elementos L 0,L 1, …, L n-1 estaNumero(num) retorna verdadero si uno de los elementos de L es num estaNum(num,n) false n<=0 true L n-1 =num estaNum(num,n-1) en otro caso Definimos estaNum agregando un argumento que la cantidad de elementos considerados

7 Recorridos Iterativos y Recursivos Introducción a la Programación Orientada a Objetos Solución Recursiva private boolean estaNum (int num, int n){ boolean esta; if (n<=0) esta=false; else if (L[n-1]==num) esta = true; else esta = estaNum(num,n-1); return esta; }

8 Recorridos Iterativos y Recursivos Introducción a la Programación Orientada a Objetos Solución Recursiva private boolean estaNum (int num, int n){ boolean esta; … return esta; } public boolean estaNumero (int num){ return estaNum (num,L.length); }

9 Recorridos Iterativos y Recursivos Introducción a la Programación Orientada a Objetos Planteo Iterativo Comenzando con el segundo comparar cada elemento del arreglo con el mayor encontrado entre los anteriores, para la primera comparación asumir que el primero es el mayor. Algoritmo Iterativo mayor = L 0 para i=1,2,…,n-1 si L i > mayor mayor = L i mayorNumero() retorna el mayor elemento del arreglo

10 Recorridos Iterativos y Recursivos Introducción a la Programación Orientada a Objetos Planteo Recursivo Caso trivial: El arreglo tiene un único elemento que es el mayor Caso recursivo: El mayor elemento del L 0,L 1, …, L n-1 es el mayor entre el último y el mayor elemento de L 0,L 1, …, L n-2. mayorNumero() retorna el mayor elemento del arreglo

11 Recorridos Iterativos y Recursivos Introducción a la Programación Orientada a Objetos mayorNumero() retorna el mayor elemento del arreglo Algoritmo MayorNum DE n si n = 1 mayor = L 0 sino mayor = mayorNum(n-1) si L n-1 > mayor mayor=L n-1

12 Recorridos Iterativos y Recursivos Introducción a la Programación Orientada a Objetos Solución Recursiva Private int mayorNum ( int n){ int mayor; … return mayor; } Public int mayorNumero (){ return mayorNum (L.length); } mayorNumero() retorna el mayor valor almacenado en el arreglo

13 Recorridos Iterativos y Recursivos Introducción a la Programación Orientada a Objetos particionado(pos:entero) decide si L[i] L [pos] para pos pos y L[i] < L[pos]) verifica false

14 Recorridos Iterativos y Recursivos Introducción a la Programación Orientada a Objetos particionado(pos:entero) decide si L[i] L [pos] para pos L[pos]) verifica false para i=pos+1,…,L.length-1 y mientras verifica si (L[i] < L[pos]) verifica false

15 Recorridos Iterativos y Recursivos Introducción a la Programación Orientada a Objetos Método de ordenamiento Ubicar el menor elemento en la primera posición, el menor elemento entre los restantes en la segunda posición y así siguiendo Más adelante vamos a proponer otros métodos de ordenamiento ordenar() reacomoda los elementos de modo que queden ordenados en forma creciente.

16 Recorridos Iterativos y Recursivos Introducción a la Programación Orientada a Objetos Buscar el menor elemento Ubicarlo en la primera posición Buscar el menor elemento a partir de la segunda posición Ubicarlo en la segunda posición … ordenar() reacomoda los elementos de modo que queden ordenados en forma creciente.

17 Recorridos Iterativos y Recursivos Introducción a la Programación Orientada a Objetos Algoritmo iterativo para i=0,1,…,n-1 Buscar el menor elemento a partir de la posición i Ubicarlo en la posición i ordenar() reacomoda los elementos de modo que queden ordenados en forma creciente.

18 Recorridos Iterativos y Recursivos Introducción a la Programación Orientada a Objetos Algoritmo iterativo para i=n-1,n-2,…,1 m= posicion del mayor elemento (i) intercambiarElementos (i,m) ordenar() reacomoda los elementos de modo que queden ordenados en forma creciente.

19 Recorridos Iterativos y Recursivos Introducción a la Programación Orientada a Objetos ordenar() reacomoda los elementos de modo que queden ordenados en forma creciente. Algoritmo Recursivo si el arreglo tiene un elemento está ordenado sino Buscar el mayor elemento Ubicarlo en la última posición Ordenar el arreglo sin considerar el último elemento

20 Recorridos Iterativos y Recursivos Introducción a la Programación Orientada a Objetos Palabra pal [] char > Palabra(s:String) > establecerLetra(i:entero,l:char) > obtenerLetra(i:entero):char esPrefijo(p:Palabra):boolean esSufijo(p:Palabra):boolean estaContenida(p:Palabra):boolean esPalindrome():boolean histograma():Numeros Crea una palabra con el mismo contenido y longitud que la cadena recibida

21 Recorridos Iterativos y Recursivos Introducción a la Programación Orientada a Objetos histograma():Numeros retorna un objeto de clase Números que mantiene la cantidad de apariciones de cada letra en la palabra. El subíndice en el arreglo representa una letra (el subíndice 0 representa los caracteres a y A). El contenido en el arreglo representa la cantidad de apariciones de la letra en la palabra.


Descargar ppt "Recorridos Iterativos y Recursivos Introducción a la Programación Orientada a Objetos Números L [] enteros > Numeros(cant:entero) > establecerNum(i:entero,num:entero)"

Presentaciones similares


Anuncios Google