s1Eva_IT2001_T5 Verificar divisibilidad para 9

Ejercicio: 1Eva_IT2001_T5 Verificar divisibilidad para 9

Propuesta de solución en Python: python.pdf, también en versión matlab.pdf

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 se obtiene las unidades del número.

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

Lazo mientras-repita

# 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)

lazo repita-hasta

# 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)

s1Eva_IIT2002_T4 cociente de fibonacci

Ejercicio: 1Eva_IIT2002_T4 cociente de fibonacci

Propuesta de solución en Python:

El ejercicio es una extensión del Algoritmo – Secuencia de Fibonacci, añadiendo la operación del cociente.

Se requiere guardar valores consecutivos del cociente para comparar su diferencia hasta cumplir con la precisión requerida.

Ejemplo de ejecución de algoritmo

>>> 
precision decimal: 0.001
cociente: 0.6181818181818182
con diferencia de:  0.0005347593582887278

Se añade al algoritmo de Fibonacci el cálculo del cociente.

# 1Eva_IIT2002_T4 Cociente de fibonacci
# propuesta: edelros@espol.edu.ec

# INGRESO
precision=float(input('precision decimal: '))

# PROCEDIMIENTO
a=1 # Primer cociente
b=1
c=a+b
cociente1=a/b

a=b # Segundo cociente
b=c
c=a+b
cociente2=a/b

diferencia=abs(cociente2-cociente1)
while not(diferencia<=precision):
    cociente1=cociente2
    a=b
    b=c
    c=a+b
    cociente2=a/b
    diferencia=abs(cociente2-cociente1)

# SALIDA
print('cociente:', cociente2)
print('con diferencia de: ', diferencia)

s1Eva_IT2010_T1 Bono para televisores en Uruguay

Ejercicio: 1Eva_IT2010_T1 Bono para televisores en Uruguay

Propuesta de solución en Python:

Para el bloque de ingreso de piden la cantidad de modelos, con l que se puede crear la matriz con columnas cantidad y precio. Se usa una tercera columna para calcular el valor a devolver por cada modelo.

Se suman los valores a devolver para presentar el resultado.

>>> 
¿cuántos modelos?: 3
modelo num: 0
cantidad:250
precio: 400
modelo num: 1
cantidad:120
precio: 1000
modelo num: 2
cantidad:80
precio: 3000
[[   250    400  50000      0]
 [   120   1000  60000      0]
 [    80   3000 120000      0]]
total a devolver:  230000
# 1Eva_IT2010_T1 Bono para televisores en Uruguay
# Tarea: convertir a listas
# Tarea: ingresar los nombres de los modelos

import numpy as np

# INGRESO
n = int(input('¿cuántos modelos?: '))
tabla = np.zeros(shape=(n,3), dtype=int)
modelo = 0
while (modelo<n):
    print('modelo num:',modelo)
    tabla[modelo,0] = int(input('cantidad:' ))
    tabla[modelo,1] = int(input('precio: ' ))
    modelo = modelo+1

# PROCEDIMIENTO
devolver = 0
modelo = 0
while (modelo<n):
    tabla[modelo,2] = tabla[modelo,0]*tabla[modelo,1]/2
    devolver = devolver+tabla[modelo,2]
    modelo = modelo+1

# SALIDA
print(tabla)
print('total a devolver: ',devolver)

s1Eva_IT2005_T3 Arreglo aleatorio binario a decimal

Ejercicio: 1Eva_IT2005_T3 Arreglo aleatorio binario a decimal

Propuesta de solución en Python

Use un vector de n casillas, las casillas pueden inciar en cero para luego llenarlas de números aleatorios una por una mientras realiza las operaciones requeridas en el enunciado.

# 1Eva_IT2005_T3 Arreglo aleatorio binario a decimal
# Tarea: contar los 1's, literal a)

import numpy as np
import random as rnd

# INGRESO
n = int(input('cuantos componentes n: '))

# PROCEDIMIENTO
B = np.zeros(n,dtype=int)
decimal = 0
i = 0
while (i<n):
    B[i] = int(rnd.random()*2)+0
    # orden de binarios es izquierda a derecha
    posicion = n-1-i  
    decimal = decimal+B[i]*(2**posicion)
    i = i+1

# SALIDA
print('Arreglo de binarios B[i]:')
print(B)
print('equivale en decimal:',decimal)

s1Eva_IIT2003_T1 Cambiar Decimal a Octal

Ejercicio: 1Eva_IIT2003_T1 Cambiar Decimal a Octal

Propuesta de solución en Python

Empiece con los conceptos expuestos en el tema de Bases Numéricas Introducción, el ejercicio es una aplicación del tema.

Propuesta con elementos principales, quedan partes por desarrollar:

  • validar octal de 4 dígitos
  • validar en procedimiento,
  • que los dígitos sean octales [0,7]
# 1Eva_IIT2003_T1 Cambiar Decimal a Octal
# propuesta: edelros@espol.edu.ec

#INGRESO
octal = int(input('número octal: '))

# PROCEDIMIENTO
decimal = 0
i = 0
while (octal>0):
    digito = octal%10 # residuo
    octal = octal//10 # cociente
    decimal = decimal+digito*(8**i)
    i = i+1

# SALIDA
print('número en decimal: ', decimal)

s1Eva_IIT2014_T3 Parasailing sin sobrecarga, parejas

Ejercicios: 1Eva_IIT2014_T3 Parasailing sin sobrecarga, parejas

Propuesta de solución en Python, también el diagrama en pdf

# 1Eva_IIT2014_T3 Parasailing sin sobrecarga, parejas
# propuesta solucion: edelros@espol.edu.ec

import numpy

# INGRESO
capacidad = int(input("capacidad del dispositivo:"))
n = int(input("Personas en cola: "))
peso = numpy.zeros((n+1),dtype=int)
i = 1
while (i<=n):
    peso[i] = int(input("Peso[ "+str(i)+"]:"))
    i = i+1

# PROCEDIMIENTO
# busca parejas
parejas = 0
i = 1
while (i<n):
    j = i+1
    while (j<=n):
        s = peso[i]+peso[j]
        if (s<=capacidad):
            parejas = parejas+1
        j = j+1
    i = i+1

# SALIDA
print("La cantidad de parejas encontradas es: ")
print(parejas)

s1Eva_IT2014_T1 Cuadrado de Cinco

Ejercicio: 1Eva_IT2014_T1 Cuadrado de Cinco

Propuesta de solución en Python

# 1ra Evaluación I Término 2014
# Tema 1. cuadrado de 5
# propuesta: edelros@espol.edu.ec
# Tarea: validar que la unidad del número sea 5

m = int(input('rango [5,m]: '))

# PROCEDIMIENTO
numero = 5 # inicial
funciona = True # si funciona
while (numero<=m and funciona==True):
    # terminados en 5 desde el 15
    numero = numero+10
    # algoritmo cuadrado de 5
    unidad = numero%10    #residuo
    decena = numero//10   #cociente
    a = decena*(decena+1)
    propuesto = a*100+25
    # calcula cuadrado
    calculado = numero*numero
    #compara resultado
    if (calculado!=propuesto):
        funciona = False

# SALIDA
print ('Algoritmo funciona:',funciona)
if (funciona==0):
    print(numero)

s1Eva_IIT2014_T2 Triángulos aleatorios en rectángulo

Ejercicios: 1Eva_IIT2014_T2 Triángulos aleatorios en rectángulo

Propuesta de solución en Python, también se adjunta el diagrama en pdf

# ICM00794-Fundamentos de Computación - FCNM-ESPOL
# 1ra Evaluación I Término 2014 - FCNM-ESPOL
# Tema 2. generar triangulos aleatorios
# Propuesta de solución: edelros@espol.edu.ec

import math
import random
import matplotlib.pyplot

n = int(input(" cuántos triángulos: "))
maxa = int(input(" rango lado a: "))
maxb = int(input(" rango lado b: "))

equilatero = 0
isosceles = 0
escaleno = 0
colineal = 0

i = 1
while (i<=n):
    x1 = int(random.random()*maxa)+0
    y1 = int(random.random()*maxb)+0
    x2 = int(random.random()*maxa)+0
    y2 = int(random.random()*maxb)+0
    x3 = int(random.random()*maxa)+0
    y3=int(random.random()*maxb)+0

    a = math.sqrt((x2-x1)**2+(y2-y1)**2)
    b = math.sqrt((x3-x2)**2+(y3-y2)**2)
    c = math.sqrt((x1-x3)**2+(y1-y3)**2)

    matplotlib.pyplot.plot([x1, x2], [y1, y2])
    matplotlib.pyplot.plot([x2, x3], [y2, y3])
    matplotlib.pyplot.plot([x1, x3], [y1, y3])

    s1 = a+b
    s2 = b+c
    s3 = c+a
    if (s1==c or s2==a or s3==b):
        colineal = colineal+1
    else:
        if (a==b and b==c):
            equilatero = equilatero+1
        else:
            if (a!=b and b!=c and c!=a):
                escaleno = escaleno+1
            else:
                isosceles = isosceles+1
    i=i+1

print("equilateros: ")
print(equilatero)
print("escalenos: ")
print(escaleno)
print("isosceles: ")
print(isosceles)
print("colineales: ")
print(colineal)

matplotlib.pyplot.show()

s1Eva_IIT2014_T1 Números amigos

Ejercicios: 1Eva_IIT2014_T1 Números amigos

Propuesta de solución en Python, también se adjunta diagrama en pdf

# ICM00794-Fundamentos de Computación - FCNM-ESPOL
# 1ra Evaluación II Término 2014 - FCNM-ESPOL
# Tema 1. Números amigos
# Propuesta de solucion: edelros@espol.edu.ec

a = int(input("número a: "))
b = int(input("número b: "))

atotal = 1
i = 2
while (i<a):
      r = a%i
      if (r==0):
          atotal = atotal+i
      i = i+1

btotal = 1
j = 2
while (j<b):
      r = b%j
      if (r==0):
          btotal = btotal+j
      j = j+1

if (atotal==b and btotal==a):
      namigos = 1
else:
      namigos = 0

print(namigos)

3Eva_IIT2010_T2 Ubicar número dentro de una matriz

Ejercicio: 3Eva_IIT2010_T2 Ubicar número dentro de una matriz

Propuesta de solución en Python

Tarea: integrar con tema 3

# 3ra Evaluación II Término 2010
# Propuesta: edelros@espol.edu.ec
# Tarea: integrar con tema 3

import numpy
import random

# Tema 2. ubica un numero k en la matriz de nxn
def ubica(matriz,n,k):
    donde = numpy.zeros(2, dtype=int)
    encontre = 0
    fila = 0
    while not(fila>=n or encontre==1):
        columna = 0
        while not(columna>=n or encontre==1):
            if (matriz[fila,columna]==k):
                encontre = 1
                donde[0] = fila
                donde[1] = columna
            columna = columna+1
        fila = fila+1
    return(donde)