s1Eva_IIT2011_T3 Parchis 2 fichas

Propuesta de solución en Python

# 1ra Evaluación II Término 2011
# Tema 3. Parchis de dos fichas
# Tarea: implementar la selección de inicio
import random as rnd

# INGRESO
meta = 50

a=0
b=0

# PROCEDIMIENTO
while not(a>=meta or b>=meta):

    dado = int(rnd.random()*6)+1
    a = a + dado
    if (a==b):
        b=0

    dado = int(rnd.random()*6)+1
    b = b + dado
    if (b==a):
        a=0

if (a>=50):
    gana = 1
else:
    gana = 2


# SALIDA
print(gana)

s1Eva_IT2011_T3 Calcular ventas por región

Propuesta de solución en Python. Revise también la version en matlab en pdf

Como referencia para la solución se usa el gráfico, o la animación

Se presenta la solución por partes por didáctica:

# 1ra Evaluación I Término 2011
# Tema 3. Ventas por catalogo
import random as rnd
import numpy as np

# parte 1) sorteo de regiones a cada vendedor

n = int(input('cuantos vendedores: '))

# PROCEDIMIENTO
region = np.zeros(n, dtype = int)
monto = np.zeros(n, dtype = float)

vendedor = 0
while not(vendedor>=n):
    donde = int(rnd.random()*4)+1
    region[vendedor] = donde
    vendedor = vendedor + 1

# parte 2) calcular montos de venta

# INGRESO DE VENTAS
vendedor = 0
while not(vendedor>=n):
    print('monto['+str(vendedor)+']: ')
    monto[vendedor] = float(input(''))
    vendedor = vendedor+1

# Total de ventas por mes
total = 0
vendedor = 0
while not(vendedor>=n):
    total = total + monto[vendedor]
    vendedor = vendedor+1

# ventas en region costa
totalcosta = 0
vendedor = 0
while not(vendedor>=n):
    if (region[vendedor]==1):
        totalcosta = totalcosta+monto[vendedor]
    vendedor = vendedor+1

# totales en vector totalregion
totalregion = np.zeros(4+1, dtype = float)
vendedor = 0
while not(vendedor>=n):
    donde = region[vendedor]
    cuanto = monto[vendedor]
    totalregion[donde] = totalregion[donde] + cuanto
    vendedor = vendedor+1
    
# SALIDA
print('region asignada: ')
print(region)
print('monto de cada vendedor: ')
print(monto)
print('total de ventas por mes: ')
print(total)
print('total de ventas en la costa')
print(totalcosta)
print('total por regiones:  ')
print(totalregion)

Tarea: De ser posible, reorganizar como un solo algoritmo.

s1Eva_IIT2010_T3 Juego del amigo secreto

Propuesta de solución en Python: py_pdf, tambien en matlab: m_pdf

# ICM00794-Fundamentos de Computación - FCNM-ESPOL
# 1ra Evaluación II Término 2010
# Tema 3. Amigo secreto
# Propuesta de solucion. edelros@espol.edu.ec

import numpy
import random

n = int(input('¿número de parejas?: '))

AmigA = numpy.zeros(n+1,dtype=int)
AmigO = numpy.zeros(2*n+1,dtype=int)

i = 1
while (i<=n):
    dama=int(random.random()*n)+(n+1)
    if (AmigO[dama]==0):
        AmigO[dama] = i
        i=i+1

j = n+1
while (j<=(2*n)):
    caballero = int(random.random()*n)+1
    if (AmigA[caballero]==0):
        AmigA[caballero] = j
        j=j+1

# Salida
print('pareja de caballeros')
i = 1
while (i<=n):
    print(i,' , ',AmigA[i])
    i = i+1
print('pareja de damas')
j = n+1
while (j<=(2*n)):
    print(j,' , ',AmigO[j])
    j = j+1

s1Eva_IIT2010_T1 Censo de instrucción por género

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

# ICM0074 Fundamentos de Computación - FCNM - ESPOL
# 1ra Evaluación II Término 2010
# Tema 1. Censo 2010
# propuesta: edelros@espol.edu.ec

import numpy as np

n = int(input('¿Cuántos formularios: '))

genero = np.zeros(n+1,dtype=int)
instruccion = np.zeros(n+1,dtype=int)

i = 1
while not(i>n):
    print('Formulario:',i)
    genero[i] = int(input('  genero: '))
    instruccion[i] = int(input('  instruccion: '))
    i = i+1

tabla = np.zeros(shape=(3+1,2+1),dtype=int)
i = 1
while not(i>n):
    f = instruccion[i]
    c = genero[i]
    tabla[f,c] = tabla[f,c]+1
    i = i+1

# Salida
print('Instr  M  F ')
f = 1
while not(f>3):
    c = 1
    cadena = ''
    while not(c>2):
        cadena = cadena+' '+str(tabla[f,c])
        c = c+1
    print('   '+str(f)+': '+cadena)
    f = f+1

s1Eva_IIT2012_T4 Informe de pasantías

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

# ICM00794 - Fundamentos de Computacion - FCNM - ESPOL
# 1da Evaluacion II Termino 2012
# Tema 4. Pasantias
# propuesta: edelros@espol.edu.ec

import numpy

# INGRESO
n = int(input('cuántos estudiantes:'))
m = int(input('cuantas empresas:'))
empresa = numpy.zeros(n+1,dtype=int)
i = 1
while not(i>n):
    empresa[i] = input('registro empresa:')
    i = i+1

# PROCEDIMIENTO
cantidad = numpy.zeros(m+1,dtype=int)

i = 1
while not(i>n):
    k = empresa[i]
    cantidad[k] = cantidad[k]+1
    i = i+1

sinpasante = 0
mayor = 1

k = 1
while not(k>m):
    if (cantidad[k]>cantidad[mayor]):
        mayor = k
    if (cantidad[k]==0):
        sinpasante = sinpasante+1
    k=k+1

prm = n/(m-sinpasante)

# SALIDA
print('la empresa con más pasantes es: ')
print(mayor)
print('empresas sin pasante: ')
print(sinpasante)
print('promedio pasantes por empresa: ')
print(prm)

s1Eva_IT2012_T2 Juego de carreras con dados

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

# ICM00794-Fundamentos de Computación -FCNM-ESPOL
# 1ra Evaluación I Término 2012
# Tema 2. Carreras juego 2 jugadores
# propuesta: edelros@espol.edu.ec

import random

n = int(input('Tamaño tablero: '))
while (n<0):
    print('tablero debe tener casillas')
    n = int(input('Tamaño tablero: '))

# PROCEDIMIENTO
A = 0
B = 0
while (A<=n and B<=0):
    # Lanzamiendo Jugador A
    dado1 = int(random.random()*6)+1
    dado2 = int(random.random()*6)+1
    if (A==0 and dado1==dado2):
        A = 1
    if (A>0):
        A = A+dado1+dado2
    if (A==2 or A==17 or A==30 or A==42):
        dado1 = int(random.random()*6)+1
        dado2 = int(random.random()*6)+1
        A = A+(dado1+dado2)

    # Lanzamiendo Jugador B
    dado1 = int(random.random()*6)+1
    dado2 = int(random.random()*6)+1
    if (B==0 and dado1==dado2):
        B = 1
    if (B>0):
        B = B+(dado1+dado2)
    if (B==2 or B==17 or B==30 or B==42):
        dado1 = int(random.random()*6)+1
        dado2 = int(random.random()*6)+1
        B = B+dado1+dado2
if (A>B):
    gana = 1
else:
    gana = 2

# SALIDA
print(gana)

 

s1Eva_IIT2012_T3 Hundir barco enemigo

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

# ICM00794-Fundamentos de Computación - FCNM-ESPOL
# 1ra Evaluación II Término 2012. Tema 3
# Hundir el barco enemigo 
# Propuesta de solución. edelros@espol.edu.ec

import random

n  = int(input('¿Cuántas municiones?: '))
bx = int(input('Barco ¿Coordenada bx?: '))
by = int(input('Barco ¿Coordenada by?: '))

hundido = 0
disparo = 0

# Juego
while (disparo<n and hundido==0):

    print('\nIntento '+str(disparo+1))
    print('Barco enemigo en ('+str(bx)+','+str(by)+')')
    cx = int(input('Disparo ¿Coordenada cx?: '))
    cy = int(input('Disparo ¿Coordenada cy?: '))

    d = int(random.random()*4)+1
    p = int(random.random()*3)+1

    if d==1:
    	by = by+p
    if d==2:
    	by = by-p
    if d==3:
    	bx = bx+p
    if d==4:
    	bx = bx-p
    if (bx==cx and by==cy):
    	hundido = 1

    disparo = disparo+1

    print('Movimiento direccion:'+str(d)+', '+str(p)+' casillas')
    print('Disparados: '+str(disparo)+ ', Hundido: '+str(hundido))

# SALIDA
print('Barco Hundido:')
print(hundido)
print('Disparos realizados:')
print(disparo)

s1Eva_IIT2010_T1 Venta de pasajes tren turístico

Propuesta de solución en Python:

# ICM00794-Fundamentos de Computación - FCNM-ESPOL
# 1ra Evaluación II Término 2010
# Tema 1. Maquina venta pasajes
# Propuesta: edelros@espol.edu.ec

turnomax = int(input('¿cuántos turnos?: '))
capacidad = int(input('capacidad del tren?: ')) 

pesodolar = 2.50
pesoeuro = 3.25
precio = 7.00
vendido = 0
cobrado = 0.00
devuelto = 0.00

turno = 1
while (turno<=turnomax and vendido<=capacidad):
    print('Turno:')
    print(turno)
    pedido = int(input('¿cuántos pasajes?: '))
    print('   Monedas: 1.Dolar 2.Euro 3.Peso')
    moneda = int(input(' ¿Tipo Moneda?: '))
    cantidad = float(input(' ¿Cantidad de Dinero?: '))

    if (moneda==1):
        valor = cantidad*pesodolar
    if (moneda==2):
        valor = cantidad*pesoeuro
    if (moneda==3):
        valor = cantidad

    pago=pedido*precio
    if (pago<=valor and((vendido+pedido)<capacidad)):
        vendido = vendido+pedido
        cobrado = cobrado+pago
        cambio = valor-pago
        devuelto = devuelto+cambio

        print('Se vendieron Boletos: ')
        print(pedido)
        print('su cambio: ')
        print(cambio)
    else:
        print('no es dinero suficiente')

    turno = turno+1

# SALIDA
print('pasajes vendidos: ')
print(vendido)
print('pesos cobrados: ')
print(cobrado)
print('pesos devueltos: ')
print(devuelto)

s1Eva_IT2011_T1 Ahorros de Juan vs Pedro

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

# ICM00794-Fundamentos de Computación - FCNM-ESPOL 
# 1ra Evaluacion I Término 2011
# Tema 1. Cuentas de Ahorro entre Juan y Pedro
# Propuesta: edelros@espol.edu.ec

# INGRESO
ca = float(input('Banco A - Capital Inicial : '))
ra = float(input('Banco A - Tasa Interés Anual:'))
cb = float(input('Banco B - Capital Inicial: '))
rb = float(input('Banco B - Tasa Interés Anual:'))

# PROCEDIMIENTO
anio = 0
sa = ca
sb = cb

while (sa<=sb):
    anio = anio+1
    sa = ca*((1+ra)**anio)
    sb = cb*((1+rb)**anio)

# SALIDA
print(anio)

s1Eva_IIT2012_T2 Número camiseta equipo

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

# ICM00794-Fundamentos de Computación - FCNM-ESPOL
# 1ra Evaluación II Termino 2012. 
# Tema 2. Número de Equipo/fecha nacimiento
# Propuesta: edelros@espol.edu.ec

# INGRESO
dia = int(input('dia: '))
mes = int(input('mes: '))
anio = int(input('anio: '))

# PROCEDIMIENTO
n = dia+mes+anio
while (n>=10):
    s = 0
    while (n>0):
        r = n%10
        n = n//10
        s = s+r
    n = s

# SALIDA
print(n)