Introduccin a la Programacin versin Orientada a Objetos - PowerPoint PPT Presentation

1 / 9
About This Presentation
Title:

Introduccin a la Programacin versin Orientada a Objetos

Description:

La simulaci n mediante programas de computador permite el estudio detallado de ... for(int i=0; i 10; i ) cola.Enqueue(rn.Next(1,10) ... – PowerPoint PPT presentation

Number of Views:46
Avg rating:3.0/5.0
Slides: 10
Provided by: www2I2
Category:

less

Transcript and Presenter's Notes

Title: Introduccin a la Programacin versin Orientada a Objetos


1
Introducción a la Programaciónversión Orientada
a Objetos
  • Capítulo 10 Simulación

2
Simulación
  • La simulación mediante programas de computador
    permite el estudio detallado de sistemas
    complejos, sobre los que resulta costoso, difícil
    o peligroso llevar a cabo estudios reales.
  • Un modelo de simulación intenta recrear de la
    mejor manera posible las características del
    sistema modelado y se comporta de manera similar
    a como lo haría en la realidad. La idea es que la
    ejecución de la simulación produzca resultados en
    la forma de valores estadísticos, o simplemente
    permita monitorear el desenvolvimiento del
    sistema durante su funcionamiento.
  • En estos modelos es de mucha utilidad el uso de
    parámetros, que permitan de manera simple cambiar
    las características del ambiente o del sistema
    mismo, de modo que sea posible observar los
    cambios que se producen en su operación. A partir
    de los resultados obtenidos en la simulación será
    posible determinar la viabilidad, mejor
    configuración e incluso potencial peligrosidad
    del sistema modelado.

3
Simulación
  • Uno de los aspectos más importantes en una
    simulación es el manejo del tiempo, pues los
    sistemas normalmente se desenvuelven de acuerdo a
    una componente temporal. En este punto, la
    alternativa más simple es emplear una componente
    de tiempo discreto. Según este enfoque, el
    funcionamiento del sistema se puede predecir
    dentro de unidades discretas de tiempo (por
    ejemplo, segundos o minutos). La elección de esta
    unidad resulta fundamental, pues introducirá
    cierto margen de error en la simulación.
  • Otro aspecto fundamental es la alimentación de la
    simulación con datos de entrada reales. Las
    simulaciones usualmente llevan consigo una gran
    cantidad de trabajo de campo recogiendo valores
    de entrada. Por ejemplo, para simular los tacos
    que se forman en una intersección será necesario
    tomar datos sobre la afluencia de vehículos por
    cada calle que concurre a la intersección.
  • Existen bases teóricas que pueden aplicarse a
    distintos modelos de simulación, tal es el caso
    de la Teoría de Colas para la simulación de filas
    en las que usuarios esperan ser atendidos, o
    Dinámica para la simulación de cuerpos en
    movimiento. En general, una simulación requerirá
    de algún sustento teórico que guiará el
    funcionamiento del sistema, y por consiguiente
    dependerá de cada caso en particular.

4
Simulación Objetos C
  • DATOS DE ENTRADA
  • Archivos (StreamReader)
  • Generación de Números Aleatorios (Random)
  • Manejo del Tiempo (DateTime y TimeSpan)
  • Manejo de Colas (Queue)

5
Simulación Random
  • using System
  •  
  • class MainApp
  • static void Main()
  • Random rn new Random(DateTime.Now.Millisecond
    )
  • for(int n0 nlt10 n)
  • Console.WriteLine(Número 0,
    rn.Next(1,11)) Console.ReadLine()
  • -          La instanciación de un nuevo generador
    de números aleatorios Random rn new
    Random(...)
  • -          Le generación de un nuevo número
    rn.Next(1,11)
  • La primera línea se refiere a la creación de un
    nuevo generador de números aleatorios,
    instanciado como rn. Como argumento al
    constructor, se entrega la semilla de generación,
    que en este caso es un número de 0 a 999
    (correspondiente a los milisegundos de la hora
    actual). Este número, que según el instante en
    que se ejecute la línea, tendrá uno de 1.000
    valores posibles, inicializará el punto de
    partida de la serie de generación de números
    aleatorios, asegurando que la posibilidad de que
    se repita una secuencia de números generados, sea
    una en mil.
  • La segunda línea relevante de conocer es la que
    entrega un nuevo número rn.Next(1,11), indicando
    que los valores posibles van entre el 1 y el 10
    (11-1).

6
Simulación DateTime
  • using System
  • // Crea una nueva instancia de DateTime
    conteniendo la fecha
  • // 09 del 11 de 2004 a las 091005 AM.
  • DateTime dt new DateTime(2004, // Año
  • 11, // Mes
  • 9, // Día
  • 9, // Hora
  • 10, // Minutos
  • 5, // Segundos
  • 15) // Milisegundos
  • Console.WriteLine("0F", dt)
  • // Escribe la fecha por partes
  • Console.WriteLine("0 1 2 3 4", dt.Year,
    dt.Month, dt.Day,
  • dt.Hour, dt.Minute)
  • _________
  • DateTime ahora DateTime.Now
  • Console.WriteLine("0 1 2 3 4",
    ahora.Year, ahora.Month,
  • ahora.Day, ahora.Hour, ahora.Minute)

7
Simulación TimeSpan
  • using System
  • // Se tiene DateTime dt ? 09/11/2004 091005
  • DateTime dt new DateTime(...)
  • // Declara un Lapso de Tiempo (TimeSpan)
  • TimeSpan ts new TimeSpan(0, 10, 0) // 0 horas,
    10 min, 0 seg
  • DateTime dt2 dt ts
  • if(dt2gtdt) Console.WriteLine(dt2 es posterior)
  • ______________________
  • // Declara un Lapso de Tiempo (TimeSpan) de 1
    Tick de simulación
  • TimeSpan tick new TimeSpan(0, 1, 0) // 1 min
  • while( dt lt dt2 )
  • Console.WriteLine(Simulando instante 0, dt)
  • dt tick

8
Simulación Queue
  • using System.Collections
  • class MainApp
  • static void Main()
  • Random rn new Random(DateTime.Now.Millisecond)
  • Queue cola new Queue() // Instancia la cola
  • // Llena la cola con 10 números aleatorios
  • for(int i0 ilt10 i) cola.Enqueue(rn.Next(1,1
    0))
  • // Muestra el primer elemento de la cola y el
    largo
  • Console.WriteLine(0 1, (int) cola.Peek(),
    cola.Count)
  • // Muestra todos los elementos de la cola
  • Console.WriteLine(TODOS)
  • while(cola.Countgt0)
  • Console.Write(0 , (int) cola.Dequeue())
  • Console.ReadLine()

9
Simulación Ejercicio
  • Caja de banco
  • 30 minutos de simulación desde 1330
  • Cada lapso 1 minuto
  • En cada minuto entran entre 0 y 2 clientes.
  • La única caja atiende 1 cliente/min
  • Interesa saber
  • Cantidad clientes atendidos
  • Espera máxima en minutos
Write a Comment
User Comments (0)
About PowerShow.com