U9 Estructuras: Agrupación de elementos de distinto tipo 1 Barajar complejidad.

Slides:



Advertisements
Presentaciones similares
Capítulo 2 Algoritmos.
Advertisements

Estrella 0 - Fundamentos de la Programación
Lenguaje PHP Capítulo 4.
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.
Unidad 5 Listas Enlazadas Bibliografía: Algoritmos y Estructuras de datos de Aguilar y Martinez. Unidad 9 Autor: Ing Rolando Simon Titiosky.
Te presento a Python Qué es Python? Lenguaje interpretado
Metodología de la Programación
Representación De La Información. Solo para principiantes.
Programación, Algoritmos y Estructuras de Datos
Desarrollo de Aplicaciones para Internet
Tema 2: Lenguaje PHP básico
JSP Copyright ISIPE – Instituto de Servicios Informáticos para Empresas – Universidad Siglo 21 – Cualquier copia u otro uso debe ser autorizado expresamente.
Módulo 5: Estructuras de Decisión y Bucles
1.2 Sintaxis del lenguaje Java.
1.3 Programación modular. Subprogramas.
PROGRAMACION DE ESTRUCTURAS DE DATOS
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
Implementación de Listas
El plano cartesiano.
2.1 Recursividad El hecho de que una función pueda llamarse a sí misma.
CI TEORIA semana 8 Subprogramas o funciones Definición de funciones.
1 Procedimientos Es un conjunto de sentencias incluidas entre las declaraciones Sub o Function y End Sub/Function VB utiliza varios tipos de procedimientos:
TRAMPAS EN EL DISEÑO DE LENGUAJES CON RELACIÓN A LOS NOMBRES - REGLAS DE ALCANCE - COMPILACIÓN POR SEPARADO CONTROL DE FLUJO - EVALUACIÓN DE EXPRESIONES.
Java Orientado a Objetos CLASES,OBJETOS Y MÉTODOS
Tema 4: Sentencias de control
Tema 9 Estructuras.
Semana 5 Subprogramas..
Clase Teórica No. 4 Programación IV
Departamento de Informática Universidad Técnica Federico Santa María Capítulo 2 “Subprogramas/Funciones - Arreglos” Arreglos-Arrays.
PROCEDIMIENTOS FUNCIONES
Matrices Es una estructura homogénea, compuesta por varios elementos, todos del mismo tipo y almacenados consecutivamente en memoria A cada elemento se.
UNIDAD V Arreglos y Cadenas
Algoritmos.
Microsoft© Visual Basic . Net.
Programación en Pascal
ELO3201 Contenedores Biblioteca Estándar de Templates Agustín J. González ELO320 Contenido Contenedores: Vector, List, Deque, Stack, Queue, Priority Queue,
Aplicación de estructuras de datos
Informática Ingeniería en Electrónica y Automática Industrial
El Lenguaje C++. Creación de programas simples de C++ Builder como ejercicios en C++. Los elementos de control fundamentales en C++, incluyendo operadores.
Recurrencia Programación II de enero de 2009.
EXPRESIONES Y SENTENCIAS
Estructura general de un programa en el servidor de Bases de Datos.
Agenda Clase 6 Iteradores. Enumeración sin iteradores. Loops lógicos. Recursión vs. Iteración. Recursión de Cola. Orden de Evaluación Normal y Aplicativo.
1 Algunas ideas básicas en C++ Agustín J. González ELO-329.
© Manuel ColladoAWK-1 Herramientas Grep y AWK Grep: Globally search for Reg. Expr. and Print (UNIX - editor “ed” - g/re/ p) AWK: Aho, Weinberger.
Arreglos y comunicación Usuario
Objetivo Mostrar los fundamentos de la programación a través de ejemplos y prácticas utilizadas cotidianamente en el desarrollo de aplicaciones.
ELEMENTOS DE COMPUTACIÓN Profesor: Guillermo Figueroa
PEDRO ALBERTO ARIAS QUINTERO. El shell es un intérprete de órdenes, los intérpretes de órdenes de Linux son auténticos lenguajes de programación. Como.
Capítulo 2 “Subprogramas/Funciones - Arreglos”
Otrogar el prestamo si El pedido es menor que 100 Para importes mayores de 100 se necesita que el cliente sea mayor de 18 y tenga trabajo Para importes.
RECTAS Para comprender un poco mas el tema necesitamos recordar:
Fundamentos de Programación
Ing. Esp. Ricardo Cujar.  Lenguaje de programación orientado a objetos.  Desarrollado por Sun MicroSystems.  Independiente del Sistema Operativo gracias.
Yeray Caballero López Juan Pablo Quesada Nieves
PROGRAMACIÓN Grupo de Modelamiento de Sistemas
U6 Ejercicios ¡¡¡¡PREPARANDO LA PEC1!!!!. ERRORES FRECUENTES EN test de 8/10/2015 Nombre de la función no muy bueno : debe ser ImprimeNombreMes o ImprimeMesEnLetra.
U11: Recursividad Otra manera de hacer bucles Dicen algunos pedagogos que conceptualmente mas sencilla.
U8 Repetición controlada por expresión lógica y cadenas 1 Flexibilidad.
Resolución de problemas con Python
U2 Tipos de datos, referenciación y errores 1. Datos problema simple enteroreal carácter booleano Ingeniero = Oreja+catalejo modelo ordenador solución.
U3 Subprogramación 1 Probablemente el tema mas importante del curso ¡¡¡A por el reuso!!!
U10 ¡¡¡¡YA TENEMOS TODOS LOS RECURSOS!!!! ¡¡A JUGAR!!
U5 tipos de datos secuencias y bucle definido 1 ¡¡¡¡Abstracción!!!!
Algorítmica y Programación
1 ListaUna Lista se define como una serie de N elementos E 1, E 2,..., E N, ordenados de manera consecutiva, es decir, el elemento E k (que se denomina.
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) IV. IMPLANTACION DE ALGORITMOS.
Paso de parámetros Diseño de programas iterativos Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Unidad Didáctica 7 Versión.
Transcripción de la presentación:

U9 Estructuras: Agrupación de elementos de distinto tipo 1 Barajar complejidad

Datos problema simple enteroreal carácter booleano Ingeniero = Oreja+catalejo modelo ordenador solución asignación/ referencia Llamada procedimiento while for Do while if c: bloque1 [ else: bloque2] n bucles 0 o 1 alternativas 1 o n 0 o n iterativo n conocido recursivo n desconocido case gestión excepciones Subprogramación procedimiento barajar complejidad Proceso hacer función 2 Disponible en todos los lenguajes Frecuente en otros lenguajes y no disponible en Python Disponible en Python, no frecuente en otros lenguajes compuesto arreglo Lista/tupla Estructura tuplaNombre /record/clase fichero cadena 1 secuencias

STRUCT/STRUCTURE/RECORD Elementos todos del mismo tipo  acceso por orden: ARRAY ¿sin orden?  acceso por nombre: Tipos definidos por el usuario: Constructores de tipo. Listas y tuplas son tipos en Python. Pero ahora tengo que dar nombres. Necesito un constructor Alternativas en Python  namedTuple, la clase Record, “clases pobres” Nuestro interés diseño de la solución más que la forma de implementación en un lenguaje concreto 3

NamedTuples from collections import namedtuple La sintaxis de la declaración: nombreDelTipo= namedtuple(externo, [campo 1,…,campo n ]) Ejemplo: tPunto = namedtuple('Punto',['x','y']) Creación objeto y acceso a elementos : namedtuple especialización de tipo tupla ( vale todo lo que hacía con tuplas ) Convenio: Tipos creados x programador empiezan por t: tFecha, tAlumno 4 >>> p1 = tPunto(2.0,3.0) >>> p1.x #acceso notación punto 2.0 >>>p1[1] #acceso por posición 3.0

Recorrido de los elementos Modificación de elementos : Los elementos pueden ser de cualquier tipo 5 >>> p = tPunto(11.0,22.0) >>> p = tPunto(p.x,33.0) #mantengo el valor de x, cambio el de y >>> p Punto(x=11.0, y=33.0) >>>p = tPunto(33.0,44.0) >>>p = p._replace(x=2.0,y=3.0) # devuelve copia con valores cambiados >>>p Punto(x=2.0, y=3.0) NamedTuples for coordenada in p: print(coordenada) tSegmento = namedtuple('Segmento','pIni, pFin')

6 Haz un subprograma que calcule la distancia entre dos puntos. Calcula con el tamaño de un segmento pasándole los puntos que lo definen. En el lenguaje ordinario hablamos del tamaño de un segmento, no de la distancia entre sus extremos. Haz un subprograma que calcule el tamaño de un segmento. Apoyándote en el módulo punto, haz un programa que aproxime Π por el m étodo de Montecarlo, areaArco=Πr 2 /4 areaCuadrado=r*r puntos dentro/puntos totales= Πr2/4r2 ; despejando Π=4 *puntos dentro/puntos totales Incluye en el módulo punto una función que calcule si un punto (x,y) está inscrito en una circunferencia de radio r, con centro en el eje de coordenadas. Pista: teorema de Pitágoras. def puntoAleatorio(): """ nada --> tPunto OBJ: crea un punto aleatorio 0<=x,y<=1 """ from random import random x = random() y = random() return tPunto(x,y)

7