s1Eva_IIT2002_T3 Conjetura de Ullman

Propuesta de solución en Python

# conjetura de Ullman
# 1ra Eval II Term 2002, Tema 3

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

#PROCEDIMIENTO
contar=0
while not(n==1):
    r=n%2

    if (r==0):
        n=n/2
    else:
        n=n*3+1
    contar=contar+1

# SALIDA
print(n)
print(contar)

s1Eva_IIT2003_T3 Personas asignadas a proyectos

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

# ICM00794-Fundamentos de Computación - FCNM-ESPOL
# Parcial II Término 2003
# Tema 3. Matriz Persona/Proyecto.
# Propuesta: edelros@espol.edu.ec
# Tarea: validar los datos de asignado

import numpy

n = int(input('cuantas personas: '))
m = int(input('cuantos proyectos: '))
asignado = numpy.zeros((n+1,m+1),dtype=int)
persona = 1
while (persona<=n):
    proyecto = 1
    while (proyecto<=m):
        print('persona: '+str(persona)+', proyecto: '+str(proyecto))
        asignado[persona,proyecto] = int(input(' /asignado (1/0): '))
        proyecto = proyecto+1
    persona = persona+1

# participantes por proyecto
participan = numpy.zeros(m+1,dtype=int)
proyecto = 1
while (proyecto<=m):
    s = 0
    persona = 1
    while (persona<=n):
        s = s + asignado[persona,proyecto]
        persona = persona+1
    participan[proyecto] = s
    proyecto = proyecto+1

# Carga de trabajo por persona
carga = numpy.zeros(n+1,dtype=int)
persona = 1
while (persona<=n):
    s = 0
    proyecto = 1
    while (proyecto<=m):
        s = s+asignado[persona,proyecto]
        proyecto = proyecto+1
    carga[persona] = s
    persona = persona+1

#salida
print('Participantes/Proyecto:')
proyecto = 1
while (proyecto<=m):
    print(participan[proyecto])
    proyecto = proyecto+1

print('Persona sin carga de trabajo:')
persona = 1
while (persona<=n):
    if carga[persona]==0:
        print(persona)
    persona = persona+1

s1Eva_IIT2002_T2 Color de placas de vehículos

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

# ICM00794-Fundamentos de Computación - FCNM-ESPOL
# Parcial II Término 2002
# Tema 2. Colores de Placas
# propuesta: edelros@espol.edu.ec

import numpy

n = int(input('número de autos: '))

placa = numpy.zeros(n+1,dtype=int)
auto = 1
while not(auto>n):
    print('placa[',auto,']: ')
    placa[auto] = int(input('  : '))
    auto = auto+1

# PROCEDIMIENTO
#Inicia Contadores
color = numpy.zeros(5+1,dtype=int)

#analiza cada auto:
auto = 1
while not(auto>n):
    digito = placa[auto]%10
    if (digito==1 or digito==2):
        color[1] = color[1]+1
    if (digito==3 or digito==4):
        color[2] = color[2]+1
    if (digito==5 or digito==6):
        color[3] = color[3]+1
    if (digito==7 or digito==8):
        color[4] = color[4]+1
    if (digito==9 or digito==0):
        color[5] = color[5]+1
    auto = auto+1

# Salida
print('Autos por cada color:')
k = 1
while not(k>5):
    print('Color tipo ',k,'= ',color[k])
    k = k+1

s1Eva_IIT2003_T4 Juego Icosaedros

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

# ICM00794-Fundamentos de Computación - FCNM-ESPOL
# Parcial II Término 2003
# Tema 4. Juego Icosaedros
# Propuesta solucion: edelros@espol.edu.ec
# Tarea. Completar el control del juego

import random

n = int(input('Numero de lanzamientos: '))

# PROCEDIMIENTO
i = 0
premio = 0
while (i<n):
    d1num = int(random.random()*5)+1
    d1color = int(random.random()*4)+1
    d2num = int(random.random()*5)+1
    d2color = int(random.random()*4)+1

    if d1color==d2color:
        premio = premio+10
    if d1num==d2num:
        premio = premio+10
    if ((d1color==d2color)and(d1num==d2num)):
        premio = premio+30

    s = d1num+d2num
    r = s%2
    if r>0:
        premio = premio+5

    i = i+1

# SALIDA
print('total ganado: ')
print(premio)
print('lanzamientos: ')
print(n)

s1Eva_IIT2003_T2 Sumar términos de progresión geométrica

Propuesta de solución en Python: python en pdf, y en versión matlab en pdf

Lazo mientras-repita:

# ICM00794-Fundamentos de Computación - FCNM-ESPOL
# Parcial II Término 2003. Tema 2
# Sumar términos de progresión geométrica
# Propuesta de solución. edelros@espol.edu.ec.

n = int(input('¿Valor de n?: '))
a = float(input('factor a: '))
r = float(input('factor r: '))
while (r==1):
    r = int(input('factor r debe ser diferente de 1: '))

s = 0
i = 0
while (i<=n):
    t = a*(r**i)
    s = s+t
    i = i+1

print(s)

Lazo repita-hasta:

# ICM00794-Fundamentos de Computación - FCNM-ESPOL
# Parcial II Termino 2003. Tema 2
# Sumar términos de progresión geométrica
# Propuesta de solución. edelros@espol.edu.ec.

n = int(input('¿Valor de n?: '))
a = float(input('factor a: '))
r = float(input('factor r: '))
while not(r!=1):
    r = int(input('factor r debe ser diferente de 1: '))

s = 0
i = 0
while not(i>n):
    t = a*(r**i)
    s = s+t
    i = i+1

print(s)

s1Eva_IIIT2003_T2 Números triangulares

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

El ejercicio se desarrolla suponiendo que se construirá una pirámide con bloques de varios pisos. Cada piso usa una cierta cantidad de bloques.

Lazo mientras-repita

# ICM00794-Fundamentos de Computación - FCNM-ESPOL
# Parcial III Término 2003.Tema 2. 
# Números triangulares
# Propuesta de solución. edelros@espol.edu.ec

t=int(input('Verificar si es triangular: '))

piso = 1
usados = 0
while (usados<t):
    usados = usados+piso
    piso = piso+1
if usados==t:
    z = 1
else:
    z = 0

print(z)

Lazo Repita-hasta

# ICM00794-Fundamentos de Computación - FCNM-ESPOL
# Parcial III Término 2003.Tema 2. 
# Números triangulares
# Propuesta de solución. edelros@espol.edu.ec

t = int(input('Verificar si es triangular: '))

piso = 1
usados = 0
while not(usados>=t):
    usados = usados+piso
    piso = piso+1
if usados==t:
    z = 1
else:
    z = 0

print(z)

 

s1Eva_IIT2001_T5 Verificar divisibilidad para 9

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

Lazo mientras-repita

# ICM00794-Fundamentos de Computación - FCNM-ESPOL
# Parcial II Término 2001. Tema 5 
# Verifique divisibilidad para 9
# Propuesta de solución. edelros@espol.edu.ec

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
# Parcial II Término 2001. Tema 5 
# Verifique divisibilidad para 9
# Propuesta de solución. edelros@espol.edu.ec

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

Propuesta de solución en Python:

>>> 
precision decimal: 0.001
cociente: 0.6181818181818182
con diferencia de:  0.0005347593582887278
# 1ra Evaluación II Término 2002
# Tema 4. cociente de fibonacci
# propuesta: edelros@espol.edu.ec

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_IIT2003_T1 Cambiar Decimal a Octal

Propuesta de solución en Python

# Parcial II Término 2003
# Tema 1. Decimal a Octal
# propuesta: edelros@espol.edu.ec
# Tarea: validar octal de 4 dígitos
# Tarea: validar en procedimiento,
# que los dígitos sean octales [0,7]

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)