Autor: Edison Del Rosario

  • s1Eva_IT2009_T1 Suma de serie con signo alternado

    Ejercicio: 1Eva_IT2009_T1 Suma de serie con signo alternado

    mientras-repita: [ algoritmo ] [ diagrama flujo ]
    repita-hasta: [ algoritmo ] [ diagrama flujo ]

    Solicitar el número n, calcular cada término i-ésimos y acumularlos en una variable s.

    1-\frac{1}{2}+\frac{1}{3}-\frac{1}{4}+\frac{1}{5}+\text{...}+\frac{1}{n}

    El signo se puede alternar multiplicando una variable signo por -1. También se puede usar (-1)i+1 para alternar el signo.

    observe:

    (-1)^{(1+1)}1+(-1)^{(2+1)}\frac{1}{2}+(-1)^{(3+1)}\frac{1}{3}+ ...

    mientras-repita: [ algoritmo ] [ diagrama flujo ]
    repita-hasta: [ algoritmo ] [ diagrama flujo ]

    ..


    Algoritmo en Python: mientras-repita

    La primera solución se presenta usando el lazo “Mientras-Repita”

    # ICM00794-Fundamentos de Computación - FCNM-ESPOL
    # 1Eva_IT2009_T1 Suma de serie con signo alternado
    # Propuesta de solución. edelros@espol.edu.ec
    
    # INGRESO
    n = int(input('¿Cuántos términos?: '))
    
    # PROCEDIMIENTO
    i = 1
    s = 0
    signo = 1
    while (i<=n):
        s = s + signo*(1/i)
        i = i + 1
        signo = (-1)*signo
    
    # SALIDA
    print(s)
    

    resultado del algoritmo

    ¿Cuántos términos?: 5
    0.7833333333333332
    >>> 
    == RESTART: D:\MATG1052Ejemplos\unprograma.py ==
    ¿Cuántos términos?: 10
    0.6456349206349207
    >>> 
    

    mientras-repita: [ algoritmo ] [ diagrama flujo ]
    repita-hasta: [ algoritmo ] [ diagrama flujo ]
    ..


    Diagrama de Flujo: Mientras-Repita

    Suma de serie con signo alternado 01
    mientras-repita: [ algoritmo ] [ diagrama flujo ]
    repita-hasta: [ algoritmo ] [ diagrama flujo ]
    ..


    Algoritmo en Python: repita-hasta:

    # ICM00794-Fundamentos de Computación - FCNM-ESPOL
    # 1Eva_IT2009_T1 Suma de serie con signo alternado
    # Propuesta de solución. edelros@espol.edu.ec
    
    # INGRESO
    n = int(input('¿Cuántos términos?: '))
    
    # PROCEDIMIENTO
    i = 1
    s = 0
    signo = 1
    while not(i>n):
        s = s + signo*(1/i)
        i = i + 1
        signo = (-1)*signo
    
    # SALIDA
    print(s)
    

    mientras-repita: [ algoritmo ] [ diagrama flujo ]
    repita-hasta: [ algoritmo ] [ diagrama flujo ]
    ..


    Diagrama de Flujo Repita-Hasta

    Suma de serie con signo alternado 02

    mientras-repita: [ algoritmo ] [ diagrama flujo ]
    repita-hasta: [ algoritmo ] [ diagrama flujo ]


    Propuesta de solución con diagrama de flujo, Python y otra versión con Matlab

    ejercicios resueltos Python 1Eva_IT2009_T1 pdf

    ejercicios resueltos Matlab 1eva_it2009_t1 pdf

  • s1Eva_IIT2008_T1 Odómetro OCTAL

    Ejercicio: 1Eva_IIT2008_T1 Odómetro OCTAL

    [ algoritmo ] [ diagrama flujo ]

    Se usa el concepto para cambio de base numérica, se extrae cada dígito para acumular el valor ponderando por cada posición referenciada con la variable i.

    Si se usa residuo de la división para 10, el primer dígito a extraer es el menos significativo (unidades).

        r = octal%10

    Se acumulan los valores de acuerdo a la ponderación o peso por posición y se repite hasta que no queden dígitos que ponderar.

        octal = octal//10
        decimal = decimal+r*(8**i)

    Para repasar: Bases Numéricas Introducción

    Tarea: validar que el número es octal (rango de dígitos entre 0-7)

    [ algoritmo ] [ diagrama flujo ]

    ..


    Algoritmo en Python

    # ICM00794-Fundamentos de Computación - FCNM-ESPOL
    # 1Eva_IIT2008_T1 Odometro OCTAL
    # Propuesta de solución. edelros@espol.edu.ec
    # Tarea: Validar que el ingreso sea en octal.
    
    # INGRESO
    octal = int(input('¿numero en octal?: '))
    
    # PROCEDIMIENTO
    i = 0
    decimal = 0
    while (octal>0):
        r = octal%10
        octal = octal//10
        decimal = decimal+r*(8**i)
        i = i + 1
    
    # SALIDA
    print('valor en decimal: ')
    print(decimal)
    

    Resultado del algoritmo

    Observación: Tener en cuenta que no se ha validado que el número octal solo debe tener dígitos entre 0 y 7.

    ¿numero en octal?: 27
    valor en decimal: 
    23
    >>> 
    ¿numero en octal?: 14
    valor en decimal: 
    12
    >>> 
    

    [ algoritmo ] [ diagrama flujo ]
    ..


    Diagrama de Flujo

    [ algoritmo ] [ diagrama flujo ]


    Propuesta de solución con diagrama de flujo, Python y otra versión con Matlab

    ejercicios resueltos Python 1eva_iit2008_t1 pdf

    ejercicios resueltos Matlab 1eva_iit2008_t1 pdf

  • s1Eva_IT2008_T3 Simular Precio del Petróleo

    Ejercicio: 1Eva_IT2008_T3 Simular Precio del Petróleo

    [ algoritmo ] [algoritmo con vector ] [ diagrama flujo ]

    Se ingresa la cantidad de días del mes, promedio valores grafico
    o se puede considerar directamente 30.

    También es opcional ingresar el rango de precio mínimo y precio máximo, que son los límites del número aleatorio.

    Para la pregunta a) se calcula el promedio como el acumulado de precios de cada día dividido para los n días.

    En la pregunta b) se usa el algoritmo del menor, con la hipótesis que el díamenor es el primero, y que el precio menor es el máximo posible, a fin que se reemplace con el primer menor encontrado.

    Se deja la pregunta c) como tarea a fin de que se desarrolle el problema usando un arreglo.

    [ algoritmo ] [algoritmo con vector ] [ diagrama flujo ]
    ..


    Algoritmo en Python

    # ICM00794-Fundamentos de Computación - FCNM-ESPOL
    # 1Eva_IT2008_T3 Simular Precio del Petróleo
    # Propuesta: edelros@espol.edu.ec
    # Tarea: Realizar el literal c)
    
    import random as rnd
    
    # INGRESO
    n = int(input('días del mes: '))
    
    # PROCEDIMIENTO
    prcmax = 150
    prcmin = 130
    rango  = prcmax-prcmin+1
    diamenor = 1
    pmenor = prcmax
    
    dia = 1
    total = 0
    while (dia<=n):
        precio = int(rnd.random()*rango)+prcmin
        total  = total+precio
    
        if (precio<pmenor):
            diamenor = dia
            pmenor   = precio
    
        dia = dia+1
    
    promedio = total/n
    
    # SALIDA
    print('promedio: ')
    print(promedio)
    print('día de menor precio:')
    print(diamenor)
    

    [ algoritmo ] [algoritmo con vector ] [ diagrama flujo ]
    ..


    Algoritmo en Python: usando arreglos

    # ICM00794-Fundamentos de Computación - FCNM-ESPOL
    # 1Eva_IT2008_T3 Simular Precio del Petróleo
    # Tema 3. Precio petroleo-Arreglo
    # Propuesta: edelros@espol.edu.ec
    
    import random as rnd
    import numpy as np
    
    # INGRESO
    n = int(input('días del mes: '))
    
    # PROCEDIMIENTO
    prcmax = 150
    prcmin = 130
    rango  = prcmax-prcmin+1
    precio = np.zeros((n+1),dtype=int)
    
    # algoritmo del promedio
    total = 0
    dia   = 1
    while (dia<=n):
        precio[dia] = int(rnd.random()*rango)+prcmin
        total = total + precio[dia]
        dia   = dia + 1
    
    promedio = total/n
    
    # algoritmo del menor
    diamenor = 1
    dia = 1
    while (dia<=n):
        if precio[dia]<precio[diamenor]:
            diamenor = dia
        dia = dia + 1
    
    # algoritmo precio superior al promedio
    superior = 0
    dia = 1
    while (dia<=n):
        if precio[dia]>promedio:
            superior = superior + 1
        dia = dia + 1
    
    # SALIDA
    print('promedio: ')
    print(promedio)
    print('día de menor precio:')
    print(diamenor)
    print('días con precio sobre promedio:')
    print(superior)
    

    Resultado del algoritmo

    días del mes: 30
    promedio: 
    140.06666666666666
    día de menor precio:
    14
    días con precio sobre promedio:
    16
    >>> 
    

    [ algoritmo ] [algoritmo con vector ] [ diagrama flujo ]
    ..


    Diagrama de Flujo

    Simular Precio del Petróleo 02 Simular Precio del Petróleo 03

    [ algoritmo ] [algoritmo con vector ] [ diagrama flujo ]


    Propuesta de solución con diagrama de flujo, Python y otra versión con Matlab

    ejercicios resueltos Python 1eva_it2008_t3 pdf

    ejercicios resueltos Python 1eva_it2008_t3_flujo pdf

    ejercicios resueltos Matlab 1eva_it2008_t3 pdf

  • s1Eva_IT2008_T2 Criba de Eratóstenes con Python

    Ejercicio: 1Eva_IT2008_T2 Criba de Eratóstenes

    [ algoritmo ] [ diagrama flujo ]

    - Se forma un vector con todos los números naturales entre 2 y n.

    i 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
    criba[i] 1 1 0 1 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0

    Llenar un arreglo de marcas o tachado con la hipótesis que todos son primos(1).

    # PROCEDIMIENTO
    marcado = np.zeros((n+1),dtype=int)
    # hipotesis: todos son primos
    criba = 2
    while (criba<=n):
        marcado[criba] = 1
        criba = criba+1
    

    La prueba de hipótesis consiste en usar un indicador para el número de criba, y otro indicador i para anular marcando con cero (0) las posiciones de los múltiplos.

    - Se tachan todos los múltiplos de 2 que son menores que n,

    Inicie eliminando los múltiplos de 2, para luego cambiar a los múltiplos de 3, etc.

    # no son primos los múltiplos 
    criba = 2
    while (criba<=n):
    
        # revisa el primer múltiplo
        i = criba * 2
        while (i<=n):
            marcado[i] = 0
            i = i + criba
        criba = criba+1

    Mostrar como resultado solo aquellos números mantienen en marcas válidas (1).

    Tarea: Analizar si es necesario hacer funcionar el algoritmo de la prueba de hipótesis hasta n o un número menor. Realizar la validación que n sea mayor que 1.

    [ algoritmo ] [ diagrama flujo ]
    ..


    Algoritmo en Python

    # ICM00794-Fundamentos de Computación - FCNM-ESPOL
    # 1Eva_IT2008_T2 Criba de Eratóstenes
    # Propuesta: edelros@espol.edu.ec
    
    import numpy as np
    
    # INGRESO
    n = int(input('primos menores que: '))
    
    # PROCEDIMIENTO
    marcado = np.zeros((n+1),dtype=int)
    
    # hipotesis: todos son primos
    criba = 2
    while (criba<=n):
        marcado[criba] = 1
        criba = criba+1
    
    # no son primos los múltiplos 
    criba = 2
    while (criba<=n):
    
        # revisa el primer múltiplo
        i = criba * 2
        while (i<=n):
            marcado[i] = 0
            i = i + criba
        criba = criba+1
    
    # SALIDA
    criba = 2
    while (criba<=n):
        if marcado[criba]==1:
            print(criba)
        criba = criba+1
    

    resultado del algoritmo

    primos menores que: 30
    2
    3
    5
    7
    11
    13
    17
    19
    23
    29
    >>> 
    

    [ algoritmo ] [ diagrama flujo ]
    ..


    Diagrama de Flujo

    diagrama de flujo Criba de Eratóstenes 01

    diagrama de flujo Criba de Eratóstenes 02

    diagrama de flujo Criba de Eratóstenes 03

    [ algoritmo ] [ diagrama flujo ]


    Otra forma de plantear el algoritmo

    # 1ra Evaluación I Término 2008
    # Tema 2. Criba de Eratóstenes
    import numpy as np
    
    # INGRESO
    n = int(input('cuantos numeros analiza: '))
    
    # PROCEDIMIENTO
    # vector de números naturales
    natural = np.zeros(n, dtype=int)
    posicion =  0
    while not(posicion>=n):
        natural[posicion] = posicion
        posicion = posicion +1
    
    # hipotesis todos cumplen
    cumple = np.ones(n,dtype = int)
    
    # Tarea: analiza cada posición
    posicion = 2
    # elimina multiplos / no cumplen
    contador = 2
    tacha  = posicion *contador
    while not(tacha>(n-1)):
        tacha  = posicion *contador
        if tacha<(n-1):
            cumple[tacha] = 0
        contador = contador +1
    
    # SALIDA
    # solo valores de la posicion 2 en adelante
    print(natural[2:])
    print(cumple[2:])
    
    

    mostrando el siguiente resultado:

    cuantos numeros analiza: 50
    [ 2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19
     20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
     38 39 40 41 42 43 44 45 46 47 48 49]
    [1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
     1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1]
    >>> 
    

    [ algoritmo ] [ diagrama flujo ]


    Propuesta de solución con diagrama de flujo, Python y otra versión con Matlab

    ejercicios resueltos Python 1eva_it2008_t2 pdf

    ejercicios resueltos Matlab 1eva_it2008_t2 pdf

  • s1Eva_IT2008_T1 Teorema de Wilson

    Ejercicio1Eva_IT2008_T1 Teorema de Wilson

    “Un número p es primo si y solo si el factorial (p-1)! + 1 es divisible por p”.

    El ejercicio se divide en dos partes principales:
    - determinar si un número es primo
    - Si es primo, validar lo que indica Wilson

    Para la primera parte, se usa el concepto de residuo de la división para determinar si el número es primo.

    # revisa esprimo 
    esprimo = 1
    divisor = 2
    while not(divisor>=n or esprimo==0):
        r = n%divisor
        if (r == 0):
            esprimo = 0
        divisor = divisor + 1

    La bandera usada es "esprimo" que inicia con el supuesto de ser verdadero ó 1.

    Solo si el número resulta ser primo, se aplican las operaciones de Wilson. Primero determinando el valor del factorial,

    wilson = -1
    if esprimo == 1:
        
        # factorial
        factor = 1
        i = 1
        while not(i>=n):
            factor = factor*i
            i = i + 1

    y luego revisar Wilson

        # revisa Wilson 
        residuo = (factor + 1) % n
        if residuo == 0:
            wilson = 1
        else:
            wilson = 0

    Se añaden los bloques de ingreso y salida para completar el algoritmo


    Algoritmo en Python

    # ICM00794-Fundamentos de Computación - FCNM-ESPOL
    # 1Eva_IT2008_T1 Teorema de Wilson
    
    # INGRESO
    n = int(input('ingrese numero primo: '))
    while not(n>0):
        n = int(input('ingrese numero positivo: '))
    
    # PROCEDIMIENTO
    
    # revisa esprimo 
    esprimo = 1
    divisor = 2
    while not(divisor>=n or esprimo==0):
        r = n%divisor
        if (r == 0):
            esprimo = 0
        divisor = divisor + 1
    
    wilson = -1
    if esprimo == 1:
        
        # factorial
        factor = 1
        i = 1
        while not(i>=n):
            factor = factor*i
            i = i + 1
        
        # revisa Wilson 
        residuo = (factor + 1) % n
        if residuo == 0:
            wilson = 1
        else:
            wilson = 0
    
    # SALIDA
    print('cumple Wilson: ', wilson)
    

    resultado del algoritmo

    ingrese numero primo: 7
    cumple Wilson:  1
    >>> 
    == RESTART: D:\Ejemplos\unprograma.py ==
    ingrese numero primo: 13
    cumple Wilson:  1
    >>> 
    == RESTART: D:\Ejemplos\unprograma.py ==
    ingrese numero primo: 8
    cumple Wilson:  -1
    >>> 
    
  • 1Eva_IT2013_T4 Tabular atención al cliente

    1ra Evaluación I Término 2013-2014, Julio 2, 2013 /ICM00794

    Tema 4. (30 puntos) En un "Centro de Servicio",  el cliente luego de ser atendido evalúa la atención recibida presionando un botón entre las 5 opciones mostradas.

    Opciones:
     5. Excelente
     4. Muy Buena
     3. Buena
     2. Regular
     1. No satisfactoria

    Realice un algoritmo que registre en un arreglo la evaluación para n clientes atendidos, luego deberá tabular las respuestas para mostrar:

    a) Total de respuestas por tipo
    b) La respuesta más frecuente
    c) ¿Cuáles clientes respondieron con valores menores al promedio?

    Ejemplo: n=50
    Cliente  1  2 3  4 5  ... n
    Atención  5  2 4  5  3  ...  4
    Respuestas
    a) Excelente: 10
     Muy Buena: 20
     Buena: 15
     Regular: 3
     No satisfactoria: 2
    b) Más frecuente: 4
    c) Promedio: 3.66
    menor al prom.:
    2,5,…etc

    Rúbrica: Ingreso y validación (5 puntos),  literal a (10 puntos) literal b (10 puntos). Algoritmo estructurado (5 puntos)

  • 1Eva_IIT2013_T4 Sorteo series mundial de fútbol

    1ra Evaluación II Término 2013-2014. Diciembre 3, 2013 /ICM00794

    Tema 4. (30 puntos) Una vez conocidas las 32 selecciones que participarán del próximo mundial de fútbol se necesita realizar el sorteo entre las 8 series o grupos de competencia.

    Las selecciones se encuentran numeradas del 1 al 32, las mejores han sido pre asignadas como “cabeza de serie”; una por cada grupo y no se sorteará su ubicación en la serie.

    Las selecciones restantes se sortearán la ubicación en cada serie (grupo) para completar los cuatro participantes por serie.

    grupo 1 2 3 4 5 6 7 8
    cabeza [grupo] 3 7 9 12 22 25 26 30

    El sorteo de serie (luego de copiar los cabezas de grupo) ser realizará en un vector como el mostrado:

    selección 1 2 3 4 5 6 7 8 9 ... 32
    serie [selección] 0 0 1 0 0 0 2 0 3 ... 0

    Elabore un algoritmo que solicite cuáles son los 8 equipos que serán cabezas de serie, asigne aleatoriamente (y sin repeticiones) los 24 equipos restantes, al final muestre el listado de las series resultantes.

    Rúbrica: Ingreso (5 puntos), definir pre-asignados (5 puntos), sorteos no repetidos (15 puntos), presentación de resultados (5 puntos).

  • 1Eva_IT2013_T3 Generar tarjetas pre pago

    1ra Evaluación I Término 2013-2014, Julio 2, 2013 /ICM00794

    Tema 3. (20 puntos) Una tarjeta prepago que se activa y valida por llamada telefónica o internet utiliza dos números: tarjeta prepago dibujo

    • la serie y
    • una clave

    ambos números hacen única a la tarjeta y se usan como método de registro y seguridad.

    La serie  se compone de 8 dígitos que corresponden a la identificación de la tarjeta dentro de un rango de producción, la clave es un número de 6 dígitos generados de forma aleatoria [100000, 999999];

    Elabore un algoritmo que permita
    a) generar n tarjetas prepago dentro de un rango de serie con su correspondiente clave de validación.
    b) Muestre cuántas tarjetas tienen claves impares y cuántas pares.
    c) Muestre la tabla de las series y sus claves

    Ejemplo:
    ¿Cuántas tarjetas?: 1000
    ¿Serie Inicial?:  2531 1001
    Tarjeta Serie Clave
    1 2531 1001 725 673
    2 2531 1002 428 095
    ... ... ...
    1000 2531 2000 152 652

    Rúbrica: Ingreso (5 puntos), literal b (10 puntos), literal c (5 puntos).

     

  • 1Eva_IIT2013_T3 Juego Semillero

    1ra Evaluación II Término 2013-2014. Diciembre 3, 2013 /ICM00794

    Tema 3. (30 puntos) Semillero es un juego con n jugadores que buscan obtener al final más fichas de las que aportan para jugar. semillero juego fichas

    Todos los jugadores participan con m fichas, depositándolas en un recipiente común en el juego.enteros aleatorios dados

    En cada turno, el jugador lanzará dos dados y obtendrá fichas del recipiente común equivalente a la suma de las caras superiores de los dados.

    El juego termina cuando no quedan más fichas en el recipiente, mostrando: el jugador con más fichas, el jugador que vació el recipiente y las fichas obtenidas por jugador.

    Realice un algoritmo que simule el juego descrito, considerando lo siguiente:

    • El número de fichas por participante m es igual para todos los participantes, mínimo 20 (validar)
    • Los turnos son rotativos: jugador 1, jugador 2, …, jugador n, jugador 1,  jugador 2, …, jugador n, …
    • El juego finaliza en cualquier turno, cuando se acaban las fichas.
    • Al final se extraen solo las fichas restantes en el recipiente, pues el total de fichas restantes solo puede llegar a 0.
    • Para encontrar al ganador, debe describir el algoritmo, NO use funciones de matlab.

    Rúbrica: Ingreso y validación (5 puntos), control de turnos (5 puntos). Control de fichas (10 puntos). Busca ganador (5 puntos), resultados (5 puntos).

  • s1Eva_IIT2007_T3 Garantías de prestamos IESS

    Ejercicio: 1Eva_IIT2007_T3 Garantías de prestamos IESS

    [ algoritmo ] [ diagrama flujo ]

    Para el ejemplo, por simplicidad se usan cédulas de 3 dígitos; también se supone que no existen elementos repetidos dentro de cada arreglo.

    i reserva(i)
    1 987
    2 876
    3 765
    4 654
    ... ...
    n
    j cesantia(j)
    1 876
    2 765
    3
    ..
    m

    En la nota se indica que las listas de las cédulas de los afiliados tienen tamaño diferente, además el ingreso de datos es separado por tener origen de datos diferentes.

    # INGRESO
    
    # datos de afiliados con fondo de reserva
    n = int(input('Afiliados con Fondo de Reserva: '))
    freserva = np.zeros(n+1,dtype=int)
    i = 1
    while not(i>n):
        print(i)
        freserva[i] = input('ingrese cedula:')
        i = i + 1
    

    Al inicio del algoritmo, se supondrá que ningún afiliado cumple con los requisitos, por lo que se usa un arreglo de banderas de cumple o no cumple  (1 ó 0).

    # Hipotesis: Ninguno cumple requisito
    cumple = np.zeros(n+1,dtype=int)

    Realizar una búsqueda ordenada de números de cédula:
    - para cada cédula de reserva[i] con n elementos
    - realizar una búsqueda en el arreglo de cesantía[j] para los m elementos.

    # Revisa listado buscando iguales
    total = 0
    i = 1
    while not(i>n):
        j = 1
        while not(j>m or cumple[i]==1):
            if freserva[i]==cesantia[j]:
                cumple[i] = 1
                total = total + 1
            j = j + 1
        i = i + 1
    

    Repetir el proceso, marcando el arreglo de banderas, cumple, cada vez que se encuentra un valor repetido entre ambas listas.

    Tarea: Realizar el ejercicio, construyendo un tercer arreglo con solamente los elementos que cumplen con la condición.

    [ algoritmo ] [ diagrama flujo ]
    ..


    Algoritmo en Python

    # ICM00794-Fundamentos de Computación - FCNM-ESPOL
    # 1Eva_IIT2007_T3 Garantías de prestamos IESS
    # propuesta: edelros@espol.edu.ec
    
    import numpy as np
    
    # INGRESO
    
    # datos de afiliados con fondo de reserva
    n = int(input('Afiliados con Fondo de Reserva: '))
    freserva = np.zeros(n+1,dtype=int)
    i = 1
    while not(i>n):
        print(i)
        freserva[i] = input('ingrese cedula:')
        i = i + 1
    
    # datos de afiliados con cesantía
    m = int(input('Afiliados con Cesantia: '))
    cesantia = np.zeros(m+1,dtype=int)
    j = 1
    while not(j>m):
        print(j)
        cesantia[j] = input('ingrese cedula:')
        j = j + 1
    
    # PROCEDIMIENTO
    
    # Hipotesis: Ninguno cumple requisito
    cumple = np.zeros(n+1,dtype=int)
    
    # Revisa listado buscando iguales
    total = 0
    i = 1
    while not(i>n):
        j = 1
        while not(j>m or cumple[i]==1):
            if freserva[i]==cesantia[j]:
                cumple[i] = 1
                total = total + 1
            j = j + 1
        i = i + 1
    
    # SALIDA: Muestra cedulas de los que cumplen requisito
    print('Cumplen requisitos:')
    print(total)
    print('listado: ')
    i = 1
    while not(i>n):
        if (cumple[i]==1):
            print(freserva[i])
        i = i + 1
    

    ejemplo de resultado del algoritmo

    Afiliados con Fondo de Reserva: 3
    1
    ingrese cedula:123
    2
    ingrese cedula:234
    3
    ingrese cedula:345
    Afiliados con Cesantia: 2
    1
    ingrese cedula:123
    2
    ingrese cedula:345
    Cumplen requisitos:
    2
    listado: 
    123
    345
    >>> 
    

    [ algoritmo ] [ diagrama flujo ]
    ..


    Diagrama de Flujo

    [ algoritmo ] [ diagrama flujo ]


    Propuesta de solución con diagrama de flujo, Python y otra versión con Matlab

    ejercicios resueltos Python 1eva_iit2007_t3 pdf

    ejercicios resueltos Matlab 1eva_iit2007_t3 pdf