SlideShare una empresa de Scribd logo
1 de 23
Descargar para leer sin conexión
Programación Procedural
   Tipos de Datos Abstractos fundamentales




            Curso de Nivelación de Algoritmos
                                        Clase 2


                              Lic. Ernesto Mislej
                             emislej@dc.uba.ar

Maestrí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
Programación Procedural
       Tipos de Datos Abstractos fundamentales


Programación Procedural




                            Lic. Ernesto Mislej   Curso de Nivelación de Algoritmos
Programación Procedural
       Tipos de Datos Abstractos fundamentales


Programación Procedural




                            Lic. Ernesto Mislej   Curso de Nivelación de Algoritmos
Programación Procedural
       Tipos de Datos Abstractos fundamentales


Programación Procedural




                            Lic. Ernesto Mislej   Curso de Nivelación de Algoritmos
Programación Procedural
         Tipos de Datos Abstractos fundamentales


Programació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
Programación Procedural
       Tipos de Datos Abstractos fundamentales


Programació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
Programación Procedural
       Tipos de Datos Abstractos fundamentales


Programació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
Programación Procedural
       Tipos de Datos Abstractos fundamentales


Programació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
Programación Procedural
       Tipos de Datos Abstractos fundamentales


Programació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
Programación Procedural
       Tipos de Datos Abstractos fundamentales


Programació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
Programación Procedural
       Tipos de Datos Abstractos fundamentales


Programació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
Programación Procedural
        Tipos de Datos Abstractos fundamentales


Ejercicios



       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
Programación Procedural
        Tipos de Datos Abstractos fundamentales


Ejercicios



       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
Programación Procedural
         Tipos de Datos Abstractos fundamentales


Programació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
Programación Procedural
       Tipos de Datos Abstractos fundamentales


Programación Procedural



   >>> # funciones

   >>> def func1 (a):
   >>>     return a + 1

   >>> func1 (4)
   5




                            Lic. Ernesto Mislej   Curso de Nivelación de Algoritmos
Programación Procedural
       Tipos de Datos Abstractos fundamentales


Programación Procedural



   >>> # funciones

   >>> def func2 (a,b):
   >>>     return a + b

   >>> func2 (10, 5)
   15




                            Lic. Ernesto Mislej   Curso de Nivelación de Algoritmos
Programación Procedural
        Tipos de Datos Abstractos fundamentales


Ejercicios



       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
Programación Procedural
       Tipos de Datos Abstractos fundamentales


Tipos 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
Programación Procedural
         Tipos de Datos Abstractos fundamentales


TDA 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
Programación Procedural
       Tipos de Datos Abstractos fundamentales


TDA 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
Programación Procedural
       Tipos de Datos Abstractos fundamentales


TDA 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
Programación Procedural
       Tipos de Datos Abstractos fundamentales


TDA 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
Programación Procedural
         Tipos de Datos Abstractos fundamentales


TDA 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

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

preguntas de algoritmos
preguntas de algoritmospreguntas de algoritmos
preguntas de algoritmos
 
Qué es un algoritmo 10
Qué es un algoritmo 10Qué es un algoritmo 10
Qué es un algoritmo 10
 
Logica de la Programación Problemas y Soluciones
Logica de la  Programación  Problemas y SolucionesLogica de la  Programación  Problemas y Soluciones
Logica de la Programación Problemas y Soluciones
 
Sosa info 04
Sosa info 04Sosa info 04
Sosa info 04
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
Cuestionario de algoritmos
Cuestionario de algoritmosCuestionario de algoritmos
Cuestionario de algoritmos
 
Topicos i
Topicos iTopicos i
Topicos i
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Unidad 2 introducción a los algoritmos
Unidad 2 introducción a los algoritmosUnidad 2 introducción a los algoritmos
Unidad 2 introducción a los algoritmos
 
Logica de programacion de algoritmos
Logica de programacion de algoritmosLogica de programacion de algoritmos
Logica de programacion de algoritmos
 
Unidad 1, 2 y_3_algoritmos
Unidad 1, 2 y_3_algoritmosUnidad 1, 2 y_3_algoritmos
Unidad 1, 2 y_3_algoritmos
 
Algoritmia
AlgoritmiaAlgoritmia
Algoritmia
 
Variables
VariablesVariables
Variables
 
Mod 2 algoritmos
Mod 2 algoritmosMod 2 algoritmos
Mod 2 algoritmos
 
Conceptos basicos algoritmos
Conceptos basicos algoritmosConceptos basicos algoritmos
Conceptos basicos algoritmos
 
Cuestionario de algoritmo
Cuestionario de algoritmoCuestionario de algoritmo
Cuestionario de algoritmo
 
Algoritmo00
Algoritmo00Algoritmo00
Algoritmo00
 
Introducción a los algoritmos y programación 1
Introducción a los algoritmos y programación   1Introducción a los algoritmos y programación   1
Introducción a los algoritmos y programación 1
 
Cuestionario de algoritmoss2
Cuestionario de algoritmoss2Cuestionario de algoritmoss2
Cuestionario de algoritmoss2
 
Fundamentos de algoritmia
Fundamentos de algoritmiaFundamentos de algoritmia
Fundamentos de algoritmia
 

Destacado

Tópicos de Big Data - Introducción
Tópicos de Big Data - IntroducciónTópicos de Big Data - Introducción
Tópicos de Big Data - IntroducciónErnesto Mislej
 
Tópicos de Big Data - Sistemas de Recomendación
Tópicos de Big Data - Sistemas de RecomendaciónTópicos de Big Data - Sistemas de Recomendación
Tópicos de Big Data - Sistemas de RecomendaciónErnesto Mislej
 
Tópicos de Big Data - Link Analysis
Tópicos de Big Data - Link AnalysisTópicos de Big Data - Link Analysis
Tópicos de Big Data - Link AnalysisErnesto Mislej
 
Tópicos de Big Data - Items Similares
Tópicos de Big Data - Items SimilaresTópicos de Big Data - Items Similares
Tópicos de Big Data - Items SimilaresErnesto Mislej
 
Innovación en Big Data
Innovación en Big DataInnovación en Big Data
Innovación en Big DataErnesto Mislej
 
Data Science & Big Data
Data Science & Big DataData Science & Big Data
Data Science & Big DataErnesto Mislej
 
A quienes les gustó esta charla también les gustó... Cómo los Sistemas de Rec...
A quienes les gustó esta charla también les gustó... Cómo los Sistemas de Rec...A quienes les gustó esta charla también les gustó... Cómo los Sistemas de Rec...
A quienes les gustó esta charla también les gustó... Cómo los Sistemas de Rec...Ernesto Mislej
 
Opinion Mining #datafestAr
Opinion Mining #datafestArOpinion Mining #datafestAr
Opinion Mining #datafestArErnesto Mislej
 
Algoritmos recursivos
Algoritmos recursivosAlgoritmos recursivos
Algoritmos recursivosfeytho
 
Inserción,borrado y búsqueda en Arboles Binarios(Java)
Inserción,borrado y búsqueda en Arboles Binarios(Java)Inserción,borrado y búsqueda en Arboles Binarios(Java)
Inserción,borrado y búsqueda en Arboles Binarios(Java)Stalin Eduardo Tusa Vitar
 
Análisis Inteligente de Textos
Análisis Inteligente de TextosAnálisis Inteligente de Textos
Análisis Inteligente de TextosErnesto Mislej
 
Arboles binarios
Arboles binariosArboles binarios
Arboles binariosfavi_hola
 
TEDx Manchester: AI & The Future of Work
TEDx Manchester: AI & The Future of WorkTEDx Manchester: AI & The Future of Work
TEDx Manchester: AI & The Future of WorkVolker Hirsch
 

Destacado (18)

Tópicos de Big Data - Introducción
Tópicos de Big Data - IntroducciónTópicos de Big Data - Introducción
Tópicos de Big Data - Introducción
 
Tópicos de Big Data - Sistemas de Recomendación
Tópicos de Big Data - Sistemas de RecomendaciónTópicos de Big Data - Sistemas de Recomendación
Tópicos de Big Data - Sistemas de Recomendación
 
Tópicos de Big Data - Link Analysis
Tópicos de Big Data - Link AnalysisTópicos de Big Data - Link Analysis
Tópicos de Big Data - Link Analysis
 
Tópicos de Big Data - Items Similares
Tópicos de Big Data - Items SimilaresTópicos de Big Data - Items Similares
Tópicos de Big Data - Items Similares
 
Innovación en Big Data
Innovación en Big DataInnovación en Big Data
Innovación en Big Data
 
Data Science & Big Data
Data Science & Big DataData Science & Big Data
Data Science & Big Data
 
Clase1
Clase1Clase1
Clase1
 
Opinion Mining
Opinion MiningOpinion Mining
Opinion Mining
 
A quienes les gustó esta charla también les gustó... Cómo los Sistemas de Rec...
A quienes les gustó esta charla también les gustó... Cómo los Sistemas de Rec...A quienes les gustó esta charla también les gustó... Cómo los Sistemas de Rec...
A quienes les gustó esta charla también les gustó... Cómo los Sistemas de Rec...
 
Opinion Mining #datafestAr
Opinion Mining #datafestArOpinion Mining #datafestAr
Opinion Mining #datafestAr
 
Algoritmos recursivos
Algoritmos recursivosAlgoritmos recursivos
Algoritmos recursivos
 
Data Mining
Data MiningData Mining
Data Mining
 
Heap sort
Heap sortHeap sort
Heap sort
 
Inserción,borrado y búsqueda en Arboles Binarios(Java)
Inserción,borrado y búsqueda en Arboles Binarios(Java)Inserción,borrado y búsqueda en Arboles Binarios(Java)
Inserción,borrado y búsqueda en Arboles Binarios(Java)
 
Técnicas de análisis
Técnicas de análisisTécnicas de análisis
Técnicas de análisis
 
Análisis Inteligente de Textos
Análisis Inteligente de TextosAnálisis Inteligente de Textos
Análisis Inteligente de Textos
 
Arboles binarios
Arboles binariosArboles binarios
Arboles binarios
 
TEDx Manchester: AI & The Future of Work
TEDx Manchester: AI & The Future of WorkTEDx Manchester: AI & The Future of Work
TEDx Manchester: AI & The Future of Work
 

Similar a Curso de Nivelación de Algoritmos - Clase 2

Introduccion a la programación
Introduccion a la programaciónIntroduccion a la programación
Introduccion a la programaciónfpcanizaresg
 
IC - Estructuras de Secuencia - Ejercicios
IC - Estructuras de Secuencia - EjerciciosIC - Estructuras de Secuencia - Ejercicios
IC - Estructuras de Secuencia - Ejercicioscbertolotti
 
Lo básico para programar
Lo básico para programarLo básico para programar
Lo básico para programarCelestino Duran
 
IC estructuras de secuencia
IC estructuras de secuenciaIC estructuras de secuencia
IC estructuras de secuenciacbertolotti
 
Introduccion a la programacion
Introduccion a la programacionIntroduccion a la programacion
Introduccion a la programacionBETTYLLANOS
 
Lo básico para programar
Lo básico para programarLo básico para programar
Lo básico para programarCelestino Duran
 
Sesion1_Ciencia_de_Datos-Introduccion a Pithon.pdf
Sesion1_Ciencia_de_Datos-Introduccion a Pithon.pdfSesion1_Ciencia_de_Datos-Introduccion a Pithon.pdf
Sesion1_Ciencia_de_Datos-Introduccion a Pithon.pdfMarxx4
 
9. listas y for-in
9.  listas y for-in9.  listas y for-in
9. listas y for-inFaby Ignacio
 
Programacion en python_1
Programacion en python_1Programacion en python_1
Programacion en python_1wozgeass
 
Algoritmos y clase
Algoritmos y claseAlgoritmos y clase
Algoritmos y clasedaosma
 
Video Primer Bimestre Metodologia Abierta
Video Primer Bimestre Metodologia AbiertaVideo Primer Bimestre Metodologia Abierta
Video Primer Bimestre Metodologia AbiertaDanilo Jaramillo
 
Informatica para economistas
Informatica para economistasInformatica para economistas
Informatica para economistasBreyson Meza
 
Clase I Informatica basica IUTE - Merida
Clase I Informatica basica IUTE - MeridaClase I Informatica basica IUTE - Merida
Clase I Informatica basica IUTE - Meridaguestc906c2
 
Utp pdiva_lab2 mat_lab basico
 Utp pdiva_lab2 mat_lab basico Utp pdiva_lab2 mat_lab basico
Utp pdiva_lab2 mat_lab basicojcbenitezp
 

Similar a Curso de Nivelación de Algoritmos - Clase 2 (20)

Introduccion a la programación
Introduccion a la programaciónIntroduccion a la programación
Introduccion a la programación
 
1 unidad metodos numericos
1 unidad metodos numericos1 unidad metodos numericos
1 unidad metodos numericos
 
Logica
LogicaLogica
Logica
 
IC - Estructuras de Secuencia - Ejercicios
IC - Estructuras de Secuencia - EjerciciosIC - Estructuras de Secuencia - Ejercicios
IC - Estructuras de Secuencia - Ejercicios
 
Prog est 1
Prog est 1Prog est 1
Prog est 1
 
Lo básico para programar
Lo básico para programarLo básico para programar
Lo básico para programar
 
IC estructuras de secuencia
IC estructuras de secuenciaIC estructuras de secuencia
IC estructuras de secuencia
 
Introduccion a la programacion
Introduccion a la programacionIntroduccion a la programacion
Introduccion a la programacion
 
Lo básico para programar
Lo básico para programarLo básico para programar
Lo básico para programar
 
Sesion1_Ciencia_de_Datos-Introduccion a Pithon.pdf
Sesion1_Ciencia_de_Datos-Introduccion a Pithon.pdfSesion1_Ciencia_de_Datos-Introduccion a Pithon.pdf
Sesion1_Ciencia_de_Datos-Introduccion a Pithon.pdf
 
9. listas y for-in
9.  listas y for-in9.  listas y for-in
9. listas y for-in
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Manual de practicas
Manual de practicasManual de practicas
Manual de practicas
 
Programacion en python_1
Programacion en python_1Programacion en python_1
Programacion en python_1
 
Algoritmos y clase
Algoritmos y claseAlgoritmos y clase
Algoritmos y clase
 
Video Primer Bimestre Metodologia Abierta
Video Primer Bimestre Metodologia AbiertaVideo Primer Bimestre Metodologia Abierta
Video Primer Bimestre Metodologia Abierta
 
Informatica para economistas
Informatica para economistasInformatica para economistas
Informatica para economistas
 
Informatica
InformaticaInformatica
Informatica
 
Clase I Informatica basica IUTE - Merida
Clase I Informatica basica IUTE - MeridaClase I Informatica basica IUTE - Merida
Clase I Informatica basica IUTE - Merida
 
Utp pdiva_lab2 mat_lab basico
 Utp pdiva_lab2 mat_lab basico Utp pdiva_lab2 mat_lab basico
Utp pdiva_lab2 mat_lab basico
 

Curso de Nivelación de Algoritmos - Clase 2

  • 1. Programación Procedural Tipos de Datos Abstractos fundamentales Curso de Nivelación de Algoritmos Clase 2 Lic. Ernesto Mislej emislej@dc.uba.ar Maestrí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. Programación Procedural Tipos de Datos Abstractos fundamentales Programación Procedural Lic. Ernesto Mislej Curso de Nivelación de Algoritmos
  • 3. Programación Procedural Tipos de Datos Abstractos fundamentales Programación Procedural Lic. Ernesto Mislej Curso de Nivelación de Algoritmos
  • 4. Programación Procedural Tipos de Datos Abstractos fundamentales Programación Procedural Lic. Ernesto Mislej Curso de Nivelación de Algoritmos
  • 5. Programación Procedural Tipos de Datos Abstractos fundamentales Programació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. Programación Procedural Tipos de Datos Abstractos fundamentales Programació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. Programación Procedural Tipos de Datos Abstractos fundamentales Programació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. Programación Procedural Tipos de Datos Abstractos fundamentales Programació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. Programación Procedural Tipos de Datos Abstractos fundamentales Programació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. Programación Procedural Tipos de Datos Abstractos fundamentales Programació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. Programación Procedural Tipos de Datos Abstractos fundamentales Programació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. Programación Procedural Tipos de Datos Abstractos fundamentales Ejercicios 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. Programación Procedural Tipos de Datos Abstractos fundamentales Ejercicios 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. Programación Procedural Tipos de Datos Abstractos fundamentales Programació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. Programación Procedural Tipos de Datos Abstractos fundamentales Programación Procedural >>> # funciones >>> def func1 (a): >>> return a + 1 >>> func1 (4) 5 Lic. Ernesto Mislej Curso de Nivelación de Algoritmos
  • 16. Programación Procedural Tipos de Datos Abstractos fundamentales Programación Procedural >>> # funciones >>> def func2 (a,b): >>> return a + b >>> func2 (10, 5) 15 Lic. Ernesto Mislej Curso de Nivelación de Algoritmos
  • 17. Programación Procedural Tipos de Datos Abstractos fundamentales Ejercicios 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. Programación Procedural Tipos de Datos Abstractos fundamentales Tipos 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. Programación Procedural Tipos de Datos Abstractos fundamentales TDA 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. Programación Procedural Tipos de Datos Abstractos fundamentales TDA 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. Programación Procedural Tipos de Datos Abstractos fundamentales TDA 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. Programación Procedural Tipos de Datos Abstractos fundamentales TDA 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. Programación Procedural Tipos de Datos Abstractos fundamentales TDA 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