Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Curso de Nivelación de Algoritmos - Clase 2

1,710 views

Published on

  • Be the first to comment

  • Be the first to like this

Curso de Nivelación de Algoritmos - Clase 2

  1. 1. Programación Procedural Tipos de Datos Abstractos fundamentales Curso de Nivelación de Algoritmos Clase 2 Lic. Ernesto Mislej emislej@dc.uba.arMaestría y Carrera de Especialización en Explotación de Datos y Descubrimiento de Conocimiento 26 de marzo de 2008 Lic. Ernesto Mislej Curso de Nivelación de Algoritmos
  2. 2. Programación Procedural Tipos de Datos Abstractos fundamentalesProgramación Procedural Lic. Ernesto Mislej Curso de Nivelación de Algoritmos
  3. 3. Programación Procedural Tipos de Datos Abstractos fundamentalesProgramación Procedural Lic. Ernesto Mislej Curso de Nivelación de Algoritmos
  4. 4. Programación Procedural Tipos de Datos Abstractos fundamentalesProgramación Procedural Lic. Ernesto Mislej Curso de Nivelación de Algoritmos
  5. 5. Programación Procedural Tipos de Datos Abstractos fundamentalesProgramación Procedural >>> # Números enteros >>> 2+2 4 >>> (50-5*6)/4 5 >>> 7/3 2 >>> 7/-3 -3 Lic. Ernesto Mislej Curso de Nivelación de Algoritmos
  6. 6. Programación Procedural Tipos de Datos Abstractos fundamentalesProgramación Procedural >>> # Números reales >>> 3 * 3.75 / 1.5 7.5 >>> 7.0 / 2 3.5 Lic. Ernesto Mislej Curso de Nivelación de Algoritmos
  7. 7. Programación Procedural Tipos de Datos Abstractos fundamentalesProgramación Procedural Memoria ¿Dónde residen los datos? Variable ¿Es posible modificar los valores? Codificación Unos y ceros. Tipo de datos. Enteros, reales, caracteres . . . Lic. Ernesto Mislej Curso de Nivelación de Algoritmos
  8. 8. Programación Procedural Tipos de Datos Abstractos fundamentalesProgramación Procedural >>> # El signo = se usa para la asignación de un valor a una variable >>> width = 20 >>> height = 5*9 >>> width * height 900 Lic. Ernesto Mislej Curso de Nivelación de Algoritmos
  9. 9. Programación Procedural Tipos de Datos Abstractos fundamentalesProgramación Procedural >>> # Strings >>> print "Hola mundo" Hola mundo >>> mensaje = "Tengo sueño" >>> print mensaje Tengo sueño Lic. Ernesto Mislej Curso de Nivelación de Algoritmos
  10. 10. Programación Procedural Tipos de Datos Abstractos fundamentalesProgramación Procedural >>> # Condiciones >>> a = 1 # Ojo!, Asignación! >>> b = 2 >>> a < b True >>> a <= b # Menor o igual True >>> a == b False >>> a < b and a > b False Lic. Ernesto Mislej Curso de Nivelación de Algoritmos
  11. 11. Programación Procedural Tipos de Datos Abstractos fundamentalesProgramación Procedural >>> # Ciclos: >>> i = 0 >>> while i < 5: ... print i ... i = i + 1 #Ojo con los ciclos infinitos! ... 0 1 2 3 4 Lic. Ernesto Mislej Curso de Nivelación de Algoritmos
  12. 12. Programación Procedural Tipos de Datos Abstractos fundamentalesEjercicios Imprimir los objetos de una lista Imprimir el primer elemento de una lista Imprimir el último elemento de una lista Imprimir los índices pares de una lista Imprimir los objetos de una lista de manera reversa Imprimir la sumatoria de una lista de números Lic. Ernesto Mislej Curso de Nivelación de Algoritmos
  13. 13. Programación Procedural Tipos de Datos Abstractos fundamentalesEjercicios Imprimir la tabla del 7 Imprimir la mayor potencia de 2 de 3 dígitos Imprimir el número menor una lista Imprimir la representación binaria de un número Decir si una palabra es capicúa Dado 2 palabras distintas, imprimir la palabra anterior en el diccionario Lic. Ernesto Mislej Curso de Nivelación de Algoritmos
  14. 14. Programación Procedural Tipos de Datos Abstractos fundamentalesProgramación Procedural >>> a = "aburrido" >>> b = "aburrición" >>> i = 0 >>> while a[i] == b[i]: >>> i = i + 1 >>> if a[i] < b[i]: >>> print a >>> else: >>> print b # y si pueden ser iguales? Lic. Ernesto Mislej Curso de Nivelación de Algoritmos
  15. 15. Programación Procedural Tipos de Datos Abstractos fundamentalesProgramación Procedural >>> # funciones >>> def func1 (a): >>> return a + 1 >>> func1 (4) 5 Lic. Ernesto Mislej Curso de Nivelación de Algoritmos
  16. 16. Programación Procedural Tipos de Datos Abstractos fundamentalesProgramación Procedural >>> # funciones >>> def func2 (a,b): >>> return a + b >>> func2 (10, 5) 15 Lic. Ernesto Mislej Curso de Nivelación de Algoritmos
  17. 17. Programación Procedural Tipos de Datos Abstractos fundamentalesEjercicios Escribir una función que devuelva la distancia (x,y) al (0,0) Dado 2 listas, lat y long, imprimir cuál coordenada está más cerca del (0,0) Dada esas listas imprimir el par de coordenadas más cercanas Intercalar 2 listas ordenadas para formar otra lista ordenada Sumar 2 polinomios Multiplicar 2 polinomios Lic. Ernesto Mislej Curso de Nivelación de Algoritmos
  18. 18. Programación Procedural Tipos de Datos Abstractos fundamentalesTipos de Datos Abstractos fundamentales Listas Acceso a los elementos aleatoriamente, por un índice Secuencias Acceso secuencial a los elementos Pilas Acceso únicamente al Tope Colas Acceso únicamente a la Cola Conjuntos Sin orden y ni repetición! Acceso mediante cuantificadores: ∃, ∀ . . . Diccionarios Acceso por clave Lic. Ernesto Mislej Curso de Nivelación de Algoritmos
  19. 19. Programación Procedural Tipos de Datos Abstractos fundamentalesTDA fundamentales - Pilas >>> stack = [3, 4, 5] >>> stack.append(6) >>> stack.append(7) >>> stack [3, 4, 5, 6, 7] >>> stack.pop() 7 >>> stack [3, 4, 5, 6] >>> stack.pop() 6 >>> stack.pop() 5 >>> stack [3, 4] Lic. Ernesto Mislej Curso de Nivelación de Algoritmos
  20. 20. Programación Procedural Tipos de Datos Abstractos fundamentalesTDA fundamentales - Colas >>> queue = ["Eric", "John", "Michael"] >>> queue.append("Terry") # Terry arrives >>> queue.append("Graham") # Graham arrives >>> queue.pop(0) ’Eric’ >>> queue.pop(0) ’John’ >>> queue [’Michael’, ’Terry’, ’Graham’] Lic. Ernesto Mislej Curso de Nivelación de Algoritmos
  21. 21. Programación Procedural Tipos de Datos Abstractos fundamentalesTDA fundamentales - Conjuntos >>> basket = [’apple’, ’orange’, ’apple’, ’pear’, ’orange’, ’banana’] >>> fruit = set(basket) >>> fruit set([’orange’, ’pear’, ’apple’, ’banana’]) >>> ’orange’ in fruit True >>> ’crabgrass’ in fruit False Lic. Ernesto Mislej Curso de Nivelación de Algoritmos
  22. 22. Programación Procedural Tipos de Datos Abstractos fundamentalesTDA fundamentales - Conjuntos >>> a = set(’abracadabra’) >>> b = set(’alacazam’) >>> a set([’a’, ’r’, ’b’, ’c’, ’d’]) >>> a - b set([’r’, ’d’, ’b’]) >>> a | b set([’a’, ’c’, ’r’, ’d’, ’b’, ’m’, ’z’, ’l’]) >>> a & b set([’a’, ’c’]) >>> a ^ b #o exclusivo set([’r’, ’d’, ’b’, ’m’, ’z’, ’l’]) Lic. Ernesto Mislej Curso de Nivelación de Algoritmos
  23. 23. Programación Procedural Tipos de Datos Abstractos fundamentalesTDA fundamentales - Diccionarios >>> tel = {’jack’: 4098, ’sape’: 4139} >>> tel[’guido’] = 4127 >>> tel {’sape’: 4139, ’guido’: 4127, ’jack’: 4098} >>> tel[’jack’] 4098 >>> del tel[’sape’] >>> tel[’irv’] = 4127 >>> tel {’guido’: 4127, ’irv’: 4127, ’jack’: 4098} >>> tel.keys() [’guido’, ’irv’, ’jack’] >>> tel.has_key(’guido’) True >>> ’guido’ in tel True Lic. Ernesto Mislej Curso de Nivelación de Algoritmos

×