Final II Término 2002 – 2003. Febrero 13, 2002 /ICM00794
Tema 1. (20 puntos) 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
a) Defina una función llamada perfecto(x) que retorne 1 si x es un número perfecto o 0 en caso de que no lo sea.
b) Para probar la función, genere en el programa principal m pares de números aleatorios con valores entre 1 y n inclusive (m y n deben ser previamente pedidos por teclado), y muestre cuántas de estas parejas tienen su suma igual a un número perfecto.
Parcial I Término 2002 – 2003. Julio 11, 2002 /ICM00794
Tema 3. (40 puntos) Se dispone de una lista de calificaciones entre 0 y 100 para nestudiantes.
Se quiere construir un arreglo mejores() tal que a cada calificación le corresponda un número que indica cuantas calificaciones de la lista son mayores que ella.
Diseñe un algoritmo para leer las calificaciones y construir el arreglo solicitado. El algoritmo debe leer el arreglo calificaciones. luego construir el arreglo mejores, y mostrarlo.
Ejemplo:
estudiante
1
2
3
4
5
6
7
8
calificación [estudiante]
35
45
18
75
63
95
45
74
mejores [estudiante]
6
4
7
1
3
0
4
2
El 6 significa que existen: 6 elementos en el arreglo calificación(), que son mayores a 35.
El 4 significa que existen: 4 elementos en el arreglo calificación[ ], que son mayores a 45, … etc.
Parcial I Término 2002 – 2003. Julio 11, 2002 /ICM00794
Tema 2. (30 puntos) leer una matriz de 3×3 elementos y calcular la suma de cada una de sus filas y columnas, dejando dichos resultados en dos vectores, uno para la suma de las filas y otro para las columnas.
Parcial I Término 2002 – 2003. Julio 11, 2002 /ICM00794
Tema 1.
a) (15 puntos) Diseñar un algoritmo que calcule el signo de la función seno(x), donde x es una medida en grados sexagesimales que se ingresa.
Ejemplo:
sen(45) tiene signo '+'
sen(200) tiene signo '-'
b) (15 puntos) Diseñar un algoritmo que calcule el máximo de una lista de n valores enteros, donde n debe ser un número menor que 20, ingresado antes que los números de la lista.
Propuesta de solución en Python: py_pdf, también en versión matlab: m_pdf
Es necesario implementar las instrucciones dadas para armar el número
A cada dígito súmele siete.
Al resultado de esta suma, divídelo para 10 y extraiga el residuo.
El valor resultante reemplaza al dígito original
Intercambie el primer dígito con el tercero y el segundo con el cuarto.
Manteniendo el algoritmo simple, con el supuesto que siempre son cuatro dígitos, se extrae cada dígito en las variables a,b,c,d para aplicar las operaciones indicadas.
Instrucciones en Python
# ICM00794-Fundamentos de Computación - FCNM-ESPOL# 2Eva_IIT2002_T3 Encriptar PIN(4 dígitos)# Propuesta: edelros@espol.edu.ec# literal a. funcion defencripta(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)
# literal b. PROGRAMA# INGRESO
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?: '))
# PROCEDIMIENTO
r = encripta(clave)
# SALIDAprint('clave encriptada es: ', r)
resultado del algoritmo
¿cuál es su clave?: 1254
clave encriptada es: 2189
>>>
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.
# ICM00794-Fundamentos de Computación - FCNM-ESPOL# 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)
whilenot(diferencia<=precision):
cociente1 = cociente2
a = b
b = c
c = a+b
cociente2 = a/b
diferencia = abs(cociente2-cociente1)
# SALIDAprint('cociente:', cociente2)
print('con diferencia de: ', diferencia)
Propuesta de solución con diagrama de flujo y Python: py_pdf .
Otra versión con matlab: matlab en pdf
Para el ejercicio se requiere el uso de vectores para almacenar cada placa y procesar los datos en el bloque de procedimiento.
Como todos los datos de entrada se han simplificado a la parte numérica de la placa, se usarán arreglos, aprovechando para practicar con numpy.
En el procedimiento se extrae una placa de un auto para obtener el dígito de las unidades. Con el dígito se puede usar condicionales para indicar cuál es el color que le corresponde y contar la placa de cada color asignado.
dígito
COLOR
¿Cuántos?
1, 2
amarillo (código 1)
…
3, 4
café (código 2)
…
5, 6
rojo (código 3)
…
7, 8
azul (código 4)
…
9, 0
verde (código 5)
…
Se continúa con el siguiente auto hasta completar todos los autos registrados en el arreglo.
# ICM00794-Fundamentos de Computación - FCNM-ESPOL# 1Eva_IIT2002_T2 Color de placas de vehículos# propuesta: edelros@espol.edu.ecimport numpy
# INGRESO
n = int(input('cuántos autos: '))
placa = numpy.zeros(n+1,dtype=int)
auto = 1
whilenot(auto>n):
print('placa[',auto,']: ')
placa[auto] = int(input(' : '))
auto = auto+1
# PROCEDIMIENTO# contadores por color
color = numpy.zeros(5+1,dtype=int)
# analiza cada auto
auto = 1
whilenot(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
# SALIDAprint('Autos por cada color:')
k = 1
whilenot(k>5):
print('Color tipo ',k,'= ',color[k])
k = k+1
Podría intentar realizar el ejercicio con listas, para comparar como se aplican los conceptos.
Tarea: validar que el número de vehículos sea positivo mayor que 0, validar que sean solo tres dígitos en cada placa.
Diagrama de Flujo
Diagrama de Flujo 1 – Ejercicio Color de placas de automoviles
Diagrama de Flujo 2 – Ejercicio Color de placas de automoviles