Etiqueta: fundamentos programacion

fundamentos de programación con Python.

  • s1Eva_IIT2002_T1a Crea tablas de multiplicar con strings del 1 a n

    Ejercicio: 1Eva_IIT2002_T1 Crea tablas de multiplicar con strings del 1 a n

    Para crear la tabla del multiplicar mostrada en la pantalla, se requiere usar una cadena de caracteres para cada operación.

    El ejemplo resuelto para suma muestra el concepto a usar.
    Tarea: realizar para multiplicación

     1. Mostrar una tabla de sumar
     2. Mostrar una tabla de multiplicar
     3. Salir
      --- ¿Cuál opción?: 1
     **** menú opción 1. sumar ****
     tabla del número: 3
     tabla hasta n: 12
    
    3 + 1 = 4
    3 + 2 = 5
    3 + 3 = 6
    3 + 4 = 7
    3 + 5 = 8
    3 + 6 = 9
    3 + 7 = 10
    3 + 8 = 11
    3 + 9 = 12
    3 + 10 = 13
    3 + 11 = 14
    3 + 12 = 15
    
     1. Mostrar una tabla de sumar
     2. Mostrar una tabla de multiplicar
     3. Salir
      --- ¿Cuál opción?:  
    

    Para formar la cadena, se requiere usar el mismo tipo de datos convirtiendo cada variable numérica como numero en texto luego añadiendo (concatenando) con el símbolo suma '  + ' y así sucesivamente:

    cadena = str(numero) + ' + ' +str(i) + ' = '
    

    Al final se completa con el resultado de la operación numérica

     cadena = cadena + str(resultado)
    

    se muestra en pantalla la cadena, cambiando el valor de la variable 'i' como un contador en un bucle/lazo.

    ReferenciaMenú en Python – Condicionales «elif» semejante a «case»

    Algoritmo en Python: condicionales elif

    # 1Eva_IIT2002_T1a Tablas de multiplicar
    # Ejemplo de un menu
    # las opciones se proponen por caracteres
    # menu
    opcion = '0'
    while not(opcion=='3'):
        print(' 1. Mostrar una tabla de sumar')
        print(' 2. Mostrar una tabla de multiplicar')
        print(' 3. Salir')
    
        opcion=input('  --- ¿Cuál opcion?: ')
        
        if (opcion=='1'):
            print(' **** menú opción 1. sumar ****')
            numero = int(input(' tabla del número: '))
            n = int(input(' tabla hasta n: ' ))
    
            # PROCEDIMIENTO
            i = 1
            while i<=n:
                resultado = numero + i
                cadena = str(numero) + ' + ' +str(i) + ' = '
                cadena = cadena + str(resultado)
                print(cadena)
                i = i+1
            
        elif (opcion=='2'):
            print(' **** menú opción 2. multiplicar ****')
            print('desarrolle como tarea')
            
        elif (opcion=='3'):
            print(' **** menú opción 3. Salir ****')
            print(' **** Saliendo del menú  ****')
            print(' **** Ejemplo de un menú ****')
    
        else:
            print('No existe la opción en el menú')
    
    
  • s2Eva_IIT2002_T1 Verificar si es "Número perfecto"

    Ejercicio: 2Eva_IIT2002_T1 Número perfecto

    Un número perfecto es aquel que es igual a la suma de todos sus divisores, con excepción del mismo.

    Ejemplo:
     6 es perfecto porque, 
       sus divisores son: 1, 2, 3 (6 no se considera).
       1+2+3=6

    literal a. verificar mediante una función perfecto(n)

    Se busca entre todos los números enteros i entre 1 y n, revisando el residuo entre n%i. Si el residuo es cero, es divisible y se acumula en suma para verificar el número perfecto. Al final de la búsqueda si n==suma se considera el número como perfecto.

    Algoritmo en Python

    # ICM00794-Fundamentos de Computación - FCNM-ESPOL
    # 2Eva_IIT2002_T1 Número perfecto
    # Propuesta de solución: edelros@espol.edu.ec
    
    import numpy as np
    
    # literal a. funcion
    def perfecto(n):
        suma = 0
        i = 1
        while (i<n):
            residuo = n%i
            # Acumula solo si i es divisor
            if residuo == 0:
                suma = suma + i
            i = i + 1
        if n == suma:
            esperfecto = 1
        else:
            esperfecto = 0
        return (esperfecto)
    
    
    # literal b. PROGRAMA ----------
    # Nota, busca numeros perfectos entre [1,m]
    
    # INGRESO
    m = int(input('¿rango m? : '))
    
    # PROCEDIMIENTO
    encontrado = np.zeros(m+1,dtype=int)
    k = 0
    i = 1
    while (i<=m):
        encontrado[i] = perfecto(i)
        i = i+1
    
    # SALIDA
    i = 1
    while (i<=m):
        if encontrado[i]==1:
            print(i)
        i=i+1
    

    literal b. Listar números perfectos entre [1,m], consiste en crear una lista con todos los números que se verifican con la función creada en el literal a.

    resultado del algoritmo
    Nota: cambiando el enunciado, se busca números perfectos en el rango [1,m]

    ¿rango m? : 50
    6
    28
    >>> 
    ¿rango m? : 1000
    6
    28
    496
    >>> 
    ¿rango m? : 10000
    6
    28
    496
    8128
    >>> 
    

    Propuesta de solución en Python: py_pdf, también en versión matlab: m_pdf

    ejercicios resueltos Python final_iit2002_t1 pdf

    ejercicios resueltos Matlab final_iit2002_t1 pdf

  • s2Eva_IIT2001_T4 Control de habitaciones en una clínica

    Ejercicio: 2Eva_IIT2001_T4 Control de habitaciones en una clínica

    Propuesta de solución en Python:

    Se plantea usar una lista para los datos de paciente y un arreglo para la ocupación de las habitaciones.

    Paciente
    cédula nombre código
    1234 Juan 2
    456 Maria 8

    La lista de pacientes empieza vacia paciente=[] y se añaden datos con cada ingreso de paciente a la clínica. paciente.append()

    Habitación
    código 1 2 7 8
    ocupada 0 1 0 1

     

    El arreglo de habitaciones se inicializa en la opción=1 con el número de habitaciones disponibles en el edificio. Como el edificio tiene un número de habitaciones fija, se inicializa como un arreglo de tamaño n, con valores ceros al iniciar con todas las habitaciones vacias.

    Algoritmo en Python

    # ICM00794-Fundamentos de Computación - FCNM-ESPOL
    # 2Eva_IIT2001_T4 Control de habitaciones en una clínica
    # Tarea: abrir archivo de datos
    
    import numpy as np
    
    paciente=[]
    
    # menu
    opcion = '0'
    while not(opcion=='6'):
        print(' 1. Ingresar habitaciones')
        print(' 2. Ingresar paciente y asignar habitación')
        print(' 3. Dar de alta a paciente, habitacion libre')
        print(' 4. Guardar datos de paciente')
        print(' 5. Abrir datos de pacientes')
        print(' 6. Salir')
    
        opcion = input('cual opcion: ')
        
        if (opcion=='1'):
            print(' **** 1. Ingresar habitaciones ****')
            n = int(input('cuantas:'))
            habitacion = np.zeros(n,dtype=int)
            print(habitacion)
            
        if (opcion=='2'):
            print(' **** 2. Ingresar paciente y asignar habitación ****')
            cedula = input('cedula: ')
            nombre = input('nombre: ')
            codigo = int(input('cual habitación: '))
            while (habitacion[codigo]==1):
                print(' la habitacion está ocupada,..')
                codigo = int(input('cual habitación: '))
                
            registro = [cedula,nombre,codigo]
            paciente.append(registro)
    
            habitacion[codigo] = 1
    
            print(paciente)
            
        if (opcion=='3'):
            print(' **** 3. Dar de alta a paciente, habitacion libre ****')
            print(paciente)
            cualpaciente=int(input(' numero paciente:'))
            donde=paciente[cualpaciente][2]
                    
            if (habitacion[donde]==1):
                habitacion[donde] = 0
                paciente[cualpaciente][2] = 0
            else:
                print(' la habitacion no tiene paciente')
            print(habitacion)
    
        if (opcion=='4'):
            
            print(' **** 4. Guardar archivo ****')
            # trabajar con un archivo
            archivo = open('pacientes.txt','w')
    
            n = len(paciente)
            fila = 0
            while not(fila>=n):
    
                # Crea linea de texto con datos
                # para un registro, separada por comas
                registro = paciente[fila][0]+',' + paciente[fila][1] +','
                registro = registro +',' +str(paciente[fila][2]) +'\n'
    
                # Escribe registro en una línea del archivo
                archivo.write(registro)
                fila = fila+1
                
            archivo.close()     # Cierra el archivo 
    
        if (opcion=='5'):
            print(' 5. **** Abrir archivo ****')
            print(' # TAREA, COMPLETAR EL PROCESO')
                    
        if (opcion=='6'):
            print(' 6. **** Salir ****')
    
    

    completar la tarea.

    resultado del algoritmo

     1. Ingresar habitaciones
     2. Ingresar paciente y asignar habitación
     3. Dar de alta a paciente, habitacion libre
     4. Guardar datos de paciente
     5. Abrir datos de pacientes
     6. Salir
    cual opcion: 1
     **** 1. Ingresar habitaciones ****
    cuantas:10
    [0 0 0 0 0 0 0 0 0 0]
     1. Ingresar habitaciones
     2. Ingresar paciente y asignar habitación
     3. Dar de alta a paciente, habitacion libre
     4. Guardar datos de paciente
     5. Abrir datos de pacientes
     6. Salir
    cual opcion: 1
     **** 1. Ingresar habitaciones ****
    cuantas:10
    [0 0 0 0 0 0 0 0 0 0]
     1. Ingresar habitaciones
     2. Ingresar paciente y asignar habitación
     3. Dar de alta a paciente, habitacion libre
     4. Guardar datos de paciente
     5. Abrir datos de pacientes
     6. Salir
    cual opcion: 2
     **** 2. Ingresar paciente y asignar habitación ****
    cedula: 123
    nombre: Juan
    cual habitación: 8
    [['123', 'Juan', 8]]
     1. Ingresar habitaciones
     2. Ingresar paciente y asignar habitación
     3. Dar de alta a paciente, habitacion libre
     4. Guardar datos de paciente
     5. Abrir datos de pacientes
     6. Salir
    cual opcion: 2
     **** 2. Ingresar paciente y asignar habitación ****
    cedula: 234
    nombre: Maria
    cual habitación: 8
     la habitacion está ocupada,..
    cual habitación: 7
    [['123', 'Juan', 8], ['234', 'Maria', 7]]
     1. Ingresar habitaciones
     2. Ingresar paciente y asignar habitación
     3. Dar de alta a paciente, habitacion libre
     4. Guardar datos de paciente
     5. Abrir datos de pacientes
     6. Salir
    cual opcion: 3
     **** 3. Dar de alta a paciente, habitacion libre ****
    [['123', 'Juan', 8], ['234', 'Maria', 7]]
     numero paciente:0
    [0 0 0 0 0 0 0 1 0 0]
     1. Ingresar habitaciones
     2. Ingresar paciente y asignar habitación
     3. Dar de alta a paciente, habitacion libre
     4. Guardar datos de paciente
     5. Abrir datos de pacientes
     6. Salir
    cual opcion: 4
     **** 4. Guardar archivo ****
     1. Ingresar habitaciones
     2. Ingresar paciente y asignar habitación
     3. Dar de alta a paciente, habitacion libre
     4. Guardar datos de paciente
     5. Abrir datos de pacientes
     6. Salir
    cual opcion: 5
     5. **** Abrir archivo ****
     # TAREA, COMPLETAR EL PROCESO
     1. Ingresar habitaciones
     2. Ingresar paciente y asignar habitación
     3. Dar de alta a paciente, habitacion libre
     4. Guardar datos de paciente
     5. Abrir datos de pacientes
     6. Salir
    cual opcion: 6
     6. **** Salir ****
    >>> 
    
  • s2Eva_IIT2001_T3 Flujo de ahorro para n años

    Ejercicio: 2Eva_IIT2001_T3 Flujo de ahorro para n años

    Propuesta de solución en Python:

    Se crea una funcion para evaluar el flujo de efectivo del periodo usando los valores anteriores. Con lo que se puede aplicar a cada valor de capital Ck de la tabla ingresada en el bloque de inicio.

    Flujo de efectivo usando arreglos

    Algoritmo en Python

    # ICM00794-Fundamentos de Computación - FCNM-ESPOL
    # 2Eva_IIT2001_T3 Flujo de ahorro para n años
    # TAREA: continuar para otros valores k
    import numpy as np
    
    # literal a. función recursiva
    
    def flujo(k,i1,i2,c):
    
        if (k>0):
            if (flujo(k-1,i1,i2,c)>=0):
                resultado = (1+i1)*flujo(k-1,i1,i2,c)+c[k]
            else:
                resultado = (1+i2)*flujo(k-1,i1,i2,c)+c[k]
    
        if (k==0):
            resultado = 0
        return(resultado)
    
    
    # literal b. PROGRAMA
    
    # INGRESO
    k  = int(input('cual año: '))
    i1 = float(input('tasa i1: '))
    i2 = float(input('tasa i2: '))
    
    c = np.array([-500, 300, 600, -200,
                  300, -200, -300, 350])
    
    # valores de c[k]
    ##n = int(input(' cuantos años: '))
    ##c = np.zeros(n,dtype=float)
    ##for anio in range(0,n,1):
    ##    c[anio] = float(input('c['+str(anio)+']: '))
    
    # PROCEDIMIENTO
    valor = flujo(k,i1,i2,c)
    # TAREA: continuar para otros valores k
    
    #SALIDA
    print('valor: ', valor)
    

    Resultado del algoritmo

    Tomando como punto de partida los saldos "c" del enunciado

    • en el año 1, como el saldo del año anterior fué negativo, no se pagan intereses, por lo que el saldo es el mismo del año, 300 dólares
    • en el año 2, como el saldo del año anterior fué positivo, se reciben intereses del saldo, que corresponden a 18 dólares.
    cual año: 0
    tasa i1: 0.05
    tasa i2: 0.10
    valor:  0
    >>> 
    cual año: 1
    tasa i1: 0.06
    tasa i2: 0.10
    valor:  300.0
    >>> 
    cual año: 2
    tasa i1: 0.06
    tasa i2: 0.10
    valor:  918.0
    >>> 
    cual año: 3
    tasa i1: 0.06
    tasa i2: 0.10
    valor:  773.08
    >>> 
    
  • s2Eva_IIT2001_T2 Contar puntos aleatorios en un triángulo

    Ejercicio: 2Eva_IIT2001_T2 Contar puntos aleatorios en un triángulo

    Se cuentan los puntos que caen el el área marcada en verde que se encuentra debajo de:

    f(x)= -x+10

    siendo el intervalo [a,b] con valores de a = 0 y b=10, la mitad corresponde a  (a+b)/2

    Como las áreas consideradas corresponden a dos sectores, considere usar x entre[a,mitad] y entre [mitad, b], limitados en y por la línea f(x)

    Un resultado gráfico, no requerido para el ejercicio, tan solo para mejor comprensión:

    de n puntos:  100
     dentro estaban:  25
    >>> 
    

    Algoritmo en Python

    # 2Eva_IIT2001_T2 Contar puntos aleatorios 
    # dentro de área triángular
    import random as rnd
    import numpy as np
    import matplotlib.pyplot as plt
    
    # INGRESO
    n = 100
    a = 0
    b = 10
    
    # función a evaluar
    f = lambda x: -x+10
    
    # PROCEDIMIENTO
    mitad = (a+b)/2
    X = []
    Y =[]
    dentro = 0
    i = 0
    while not(i>=n):
        xi = rnd.random()*(b-a)+0
        yi = rnd.random()*(b-a)+0
        limite = f(xi)
        if xi>mitad and yi<=limite:
            dentro = dentro +1
        if xi<=mitad and yi<=limite and yi>=mitad:
            dentro = dentro +1
        X.append(xi)
        Y.append(yi)
        i = i+1
    
    # SALIDA
    print(' de n puntos: ', n)
    print(' dentro estaban: ', dentro)
    
    
    # Grafica
    plt.scatter(X,Y)
    xi = np.linspace(a,b,n+1)
    plt.plot(xi,f(xi))
    plt.axhline(mitad)
    plt.axvline(mitad)
    plt.xlim(a,b)
    plt.ylim(a,b)
    plt.xlabel('xi')
    plt.ylabel('yi')
    plt.show()
    
  • s1Eva_IT2001_T5 Verificar divisibilidad para 9

    Ejercicio: 1Eva_IT2001_T5 Verificar divisibilidad para 9

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

    Para la separación de los dígitos de un número entero se usa el residuo de la división para 10.

    Por ejemplo:

    para el número 15,
    el residuo para 10 es 5
    y el cociente es 1

    La instrucción en Python que obtiene el residuo es

    digito = numero%10

    y la que obtiene el cociente

    numero = numero//10

    Una respuesta simplificada es un valor de verdad 1 o 0 para verdadero y falso, que es la que se usa en éste ejemplo.

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


    Algoritmo en Python: mientras-repita

    # ICM00794-Fundamentos de Computación - FCNM-ESPOL
    # 1Eva_IT2001_T5 Verificar divisibilidad para 9
    # Propuesta de solución. edelros@espol.edu.ec
    
    # INGRESO
    numero = int(input('Número a verificar divisibilidad 9: '))
    
    # PROCEDIMIENTO
    sumacifra = 0
    # Extrae las cifras
    while (numero>0):
        digito    = numero%10
        sumacifra = sumacifra+digito
        numero    = numero//10
    
    if (sumacifra>9):
        numero = sumacifra
        sumacifra = 0
        while (numero>0):
            digito    = numero%10
            sumacifra = sumacifra+digito
            numero    = numero//10
    
    if (sumacifra==9):
        respuesta = 1
    else:
        respuesta = 0
    
    # SALIDA
    print(respuesta)
    

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


    Algoritmo en Python: repita-hasta

    # ICM00794-Fundamentos de Computación - FCNM-ESPOL
    # ICM00794-Fundamentos de Computación - FCNM-ESPOL
    # 1Eva_IT2001_T5 Verificar divisibilidad para 9
    # Propuesta de solución. edelros@espol.edu.ec
    
    # INGRESO
    numero=int(input('Numero a verificar divisibilidad 9: '))
    
    # PROCEDIMIENTO
    sumacifra=0
    # Extrae las cifras
    while not(numero==0):
        digito=numero%10
        sumacifra=sumacifra+digito
        numero=numero//10
    
    if (sumacifra>9):
        numero=sumacifra
        sumacifra=0
        while not(numero==0):
            digito=numero%10
            sumacifra=sumacifra+digito
            numero=numero//10
    
    if (sumacifra==9):
        respuesta=1
    else:
        respuesta=0
    
    # SALIDA
    print(respuesta)
    

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


    Diagrama de Flujo: Mientras-Repita

    Diagrama de Flujo 1. Ejercicio Verificar divisibilidad para 9 con Mientras-repita

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


    Diagrama de flujo: Repita-Hasta

    Diagrama de Flujo 2 - Ejercicio Verificar divisibilidad para 9 con Repita-Hasta

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


    Propuesta de solución con diagrama de flujo:

    ejercicios resueltos Python Parc_IIT2001_T5 pdf

    ejercicios resueltos Matlab parc_iit2001_t5 pdf

  • s2Eva_IIT2013_T2 Verificar secuencia ADN

    Ejercicio: 2Eva_IIT2013_T2 Verificar secuencia ADN

    Algoritmo en Python

    # ICM00794-Fundamentos de Computación - FCNM-ESPOL
    # 2Eva_IIT2013_T2 Verificar secuencia ADN
    # propuesta: edelros@espol.edu.ec
    
    def ordenados(cadena):
        n = len(cadena)
        cadena  = cadena.upper()
        validos = 'ACGT'
        pares   = 0
    
        # solo hasta penúltimo
        i = 0
        while not(i>=(n-1)): 
            elemento  = cadena[i]
            elemento2 = cadena[i+1]
            if (elemento<=elemento2):
                pares = pares + 1
            i = i + 1
            
        # validar elementos en cadena
        noADN = 0
        i = 0
        while not(i>=n):
            elemento = cadena[i]
            if not(elemento in validos):
                noADN = noADN - 1
            i = i + 1
    
        # corrige de ser necesario
        if (noADN<0): 
            pares = noADN
            
        return(pares)
    

    Ejemplo

    >>> cadena='CCGAATCGTA'
    >>> ordenados(cadena)
    6
    >>> cadena='CBGAATCGWA'
    >>> ordenados(cadena)
    -2
  • s1Eva_IIT2013_T3 Juego Semillero

    Ejercicios: 1Eva_IIT2013_T3 Juego Semillero

    Propuesta de solución en Python, realizada solo para dos jugadores.

    Observe que al lanzar dos dados, el intervalo de valores posibles es [2,12].

    dado1 = int(rnd.random()*6)+1
    dado2 = int(rnd.random()*6)+1
    suma  = dado1 + dado2
    

    La variable quien determina el turno del jugador.

    Se lanzan los dados como números aleatorios, se acumula los puntos para cada jugador y se resta la cantidad de fichas del semillero.

    if (suma<=semillero):
        A = A + suma
        semillero = semillero -suma
    else:
        A = A +semillero
        semillero = 0
    

    Se cambia el turno del jugador y se repite el proceso.

        # cambia jugador
        if (quien==1):
            quien = 2
        else:
            quien = 1
    

    TAREA: Implementar con arreglos para n jugadores.


    Algoritmo en Python

    # ICM00794-Fundamentos de Computación - FCNM-ESPOL
    # 1Eva_IIT2013_T3 Juego Semillero
    # usando solo dos jugadores
    import random as rnd
    
    # INGRESO
    apuesta = int(input('cuantas canicas: '))
    while not(apuesta>=20):
        apuesta = int(input('mas de 20 canicas: '))
    
    # PROCEDIMIENTO
    semillero = 2*apuesta
    A = 0
    B = 0
    quien = 1
    while not(semillero<=0):
    
        # Juega A
        if (quien==1):
            dado1 = int(rnd.random()*6)+1
            dado2 = int(rnd.random()*6)+1
            suma  = dado1 + dado2
            if (suma<=semillero):
                A = A + suma
                semillero = semillero -suma
            else:
                A = A +semillero
                semillero = 0
    
        # Juega B
        if (quien==2):
            suma = int(rnd.random()*11)+2
            if (suma<=semillero):
                B = B + suma
                semillero = semillero - suma
            else:
                B = B + semillero
                semillero = 0
                
        # cambia jugador
        if (quien==1):
            quien = 2
        else:
            quien = 1
    
    # Determina ganador
    gana = 1
    if (A < B):
        gana = 2
    if (B==A):
        gana = 0
        
    # SALIDA
    print('canicas de A: ', A)
    print('canicas de B: ', B)
    print('estado semillero: ', semillero)
    print('jugador ganador: ', gana)
    

    Ejecución del algoritmo

    cuantas canicas: 20
    canicas de A:  25
    canicas de B:  15
    estado semillero:  0
    jugador ganador:  1
    >>> 
    cuantas canicas: 20
    canicas de A:  20
    canicas de B:  20
    estado semillero:  0
    jugador ganador:  0
    >>> 
    cuantas canicas: 20
    canicas de A:  22
    canicas de B:  18
    estado semillero:  0
    jugador ganador:  1
    >>> 
    
  • s1Eva_IIT2013_T2 Números palíndromo con Python

    Ejercicios: 1Eva_IIT2013_T2 Números palíndromo con Python

    Literal a. Para invertir los dígitos de un número, se usan residuo y el cociente para extraer cada dígito y rearmarlo en otro número con posiciones invertidas.

    Sec compara el número de forma inversa para verificar si el igual al número original, siendo solamente así un número palíndromo.

    Tarea: implementar el literal b a partir de la solución del literal a.

    Para iniciar la búsqueda de los números palíndromos se inicia con dos dígitos es decir numero=10. Se aplica el algoritmo al número y se repite el proceso con un lazo hasta llegar al millón-1

    Algoritmo en Python

    # ICM00794-Fundamentos de Computación - FCNM-ESPOL
    # 1Eva_IIT2013_T2 Números palíndromo
    
    # INGRESO
    numero = int(input('numero a revisar: '))
    
    # PROCEDIMIENTO
    numcopia = numero
    cociente = numero
    
    # invierte dígitos del número
    invertido = 0
    while not(cociente<=0):
        numcopia = cociente
        cociente = numcopia//10
        residuo  = numcopia%10
        invertido = invertido*10 + residuo
    
    # revisa si el número es igual a invertido
    if (invertido == numero):
        palindromo = 1
    else:
        palindromo = 0
    
    # SALIDA
    print('numero invertido: ', invertido)
    print('Palindromo:', palindromo)
    

    Ejecución del algoritmo

    numero a revisar: 1991
    numero invertido:  1991
    Palindromo: 1
    >>> 
    numero a revisar: 2112
    numero invertido:  2112
    Palindromo: 1
    >>> 
    numero a revisar: 2020
    numero invertido:  202
    Palindromo: 0
    >>>