s2Eva_IIT2003_T2 Mostrar un triángulo de Pascal

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

Tarea: Convertir el algoritmo a función.

# ICM00794-Fundamentos de Computación - FCNM-ESPOL
# 2da Eval II Termino 2003
# Tema 2. Triangulo pascal
# propuesta: edelros@espol.edu.ec

import numpy

n=int(input('tamaño del triangulo: '))

pascal=numpy.zeros(shape=(n,n),dtype=int)
f=0
while (f<n):
    c=0
    while (c<=f):
        if (c==0 or c==f):
            pascal[f,c]=1
        else:
            pascal[f,c]=pascal[f-1,c]+pascal[f-1,c-1]
        c=c+1
    f=f+1

print(pascal)

s2Eva_IT2003_T1 Funciones promedio, mayor y menor

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

# ICM00794-Fundamentos de Computación - FCNM-ESPOL
# Final I Término 2003
# Tema 1. funciones promedio, mayor y menor.
# Se debe escribir un algoritmo
# Evite usar las funciones del lenguaje de programación
# Propuesta de Solución: edelros@espol.edu.ec

def promedio(vector):
    n=len(vector)
    suma=0
    for i in range(0,n,1):
        suma=suma+vector[i]
    prm=suma/n
    return prm

def mayor(vector):
    n=len(vector)
    # Busca cual es el mayor
    max=1
    for i in range(0,n,1):
        if (vector[i]>vector[max]):
            max=i
    #presenta el valor de mayor
    z=vector[max]
    return z

def menor(vector):
    n=len(vector)
    # Busca cual es el menor
    min=1
    for i in range(0,n,1):
        if (vector[i]<vector[min]):
            min=i
    #presenta el valor de menor
    z=vector[min]
    return z


# Programa de prueba de funciones

import numpy
meses=12
temperatura=numpy.zeros(meses,dtype=int)
for mes in range(0,meses,1):
    temperatura[mes]=int(input("temperatura["+str(mes+1)+"]: "))
tprom=promedio(temperatura)
tmax=mayor(temperatura)
tmin=menor(temperatura)
diferencia=tmax-tmin
print("promedio: "+str(tprom))
print("Diferencia max-min: "+str(diferencia))

s2Eva_IIT2002_T3 Encriptar PIN(4 dígitos)

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

# ICM00794-Fundamentos de Computación - FCNM-ESPOL
# Final II Término 2002
# Tema 3. Funcion Encripta
# Propuesta: edelros@espol.edu.ec

def encripta(n):
    a=(n%10)+7
    n=int(n/10)
    b=(n%10)+7
    n=int(n/10)
    c=(n%10)+7
    d=int(n/10)+7
    a=a%10
    b=b%10
    c=c%10
    d=d%10
    z=b*1000+a*100+d*10+c
    return z

# Final II Término 2002
# Tema 3. Encripta Programa
# Propuesta: edelros@espol.edu.ec

clave=int(input('¿cuál es su clave?: '))
while (clave>9999):
    print(' la clave es de 4 digitos')
    clave=int(input('¿cuál es su clave?: '))

r=encripta(clave)

print('clave encriptada es: ')
print(r)

s2Eva_IIT2002_T1 Número perfecto

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

# ICM00794-Fundamentos de Computación - FCNM-ESPOL
# Final II Termino 2002.
# Tema 1. numero perfecto
# Propuesta de solución edelros@espol.edu.ec

def perfecto(n):
    s=0
    i=1
    while (i<n):
        r=n%i
	# Acumula solo si i es divisor
        if r==0:
            s=s+i
        i=i+1
    if n==s:
        z=1
    else:
        z=0
    return z


# Final II Termino 2002.
# T1. Buscar numeros perfectos
# Propuesta de solución. edelros@espol.edu.ec

import numpy
import perfecto

m=int(input('¿rango m? :'))

# Procedimiento
encontrado=numpy.zeros(m+1,dtype=int)
k=0
i=1
while (i<=m):
    encontrado[i]=perfecto.perfecto(i)
    i=i+1

# Salida
i=1
while (i<=m):
    if encontrado[i]==1:
        print(i)
    i=i+1

s2Eva_IIT2001_T3 Flujo de ahorro para n años

Propuesta de solución en Python:

Flujo de efectivo usando arreglos.

# Final II Término 2001
# Tema 3. Flujo de efectivo en negocio
# TAREA: continuar para otros valores k
import numpy as np

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)

# PROGRAMA
# datos=np.array([-500, 300, 600, -200, 300, -200, -300, 350])
# Ingreso
k=int(input('cual año: '))
i1=float(input('tasa i1: '))
i2=float(input('tasa i2: '))

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

s2Eva_IIT2001_T4 Control de habitaciones en una clínica

Propuesta de solución en Python:

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

# Final II Término 2001
# Tema 4. Habitaciones de clinica
# Tarea: abrir archivo de datos

import numpy as np

paciente=[]
# menu
opcion = '0'
while not(opcion=='6'):
    print(' 1. Ingresar habitaciones')
    print(' 2. Ingresar y asignar pacientes a las habitaciones')
    print(' 3. Dar de alta a los pacientes de las habitaciones')
    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 y asignar pacientes a las habitaciones ****')
        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.Alta a pacientes ****')
        donde=int(input(' cual habitacion:' ))
        # 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] +',' +str(paciente[fila][2]) +'\n'
            # Escribe en el 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.

s2Eva_IT2003_T4 Registro de carros en archivo

Propuesta de solución en Python:

# Final I Término 2003.
# Tema 4. Registra carros en archivo
# Tarea: validar datos de ingreso

n=int(input('cuantos carros: '))
tabla=[]
i=0
while (i<n):
    print('Datos del carro: ... ',i)
    placa=input('Placa: ')
    anio=input('año: ')
    tipo=input('tipo A/auto C/camioneta: ')
    marca=input('marca: ')
    color=input('color: ')
    precio=input('precio: ' )

    registro=[placa,anio,tipo,marca,color,precio]
    tabla.append(registro)
    i=i+1

# Procedimiento a)
nombre='carros.dat'
archivo=open(nombre,'w')
i=0
while (i<n):
    linea=''
    j=0
    while (j<6):
        linea=linea+tabla[i][j]+','
        j=j+1
    linea=linea.strip(',')+'\n'
    archivo.write(linea)
    i=i+1
archivo.close()
#procedimiento b
selecciona=[]
i=0
while (i<n):
    if (int(tabla[i][1])>1995 and tabla[i][4]=='rojo' and int(tabla[i][5])<6000):
        selecciona.append(tabla[i][0])
    i=i+1

# salida
print('archivo guardado')
print(' los autos que cumplen el pedido son:')
print(selecciona)