1Eva_IT2007_T2 Convertir decimal a hexadecimal

1ra Evaluación I Término 2007 – 2008. Julio 03, 2007 /ICM00794

Tema 2. (30 puntos) El procedimiento para convertir un número que está en base 10 (sistema decimal) a base 16 (sistema hexadecimal) consiste en divisiones sucesivas para 16 hasta que el cociente sea 0.

Considere que el número entero positivo a convertir no puede exceder de 5 cifras y que se guardará en un arreglo, en donde cada ubicación almacenará la cifra en código hexadecimal equivalente.

Elabore un algoritmo tal que, dado un número leído por teclado (válido en base 10), muestre por pantalla el mismo número en base 16, pero considerando mostrar el símbolo hexadecimal a partir del 10 (A = 10, B = 11, C=12, D = 13, E = 14, F = 15)

A continuación se muestra la representación en el arreglo, del ejemplo descrito: (Para hexadecimal las cifras se muestran de derecha a izquierda)

Ejemplo:
30748 16
(12) 1921 16
(1) 120 16
(8) 7 16
(7) 0
12 1 8 7
C 1 8 7
3074810 -> 781C16

 

1Eva_IIT2012_T2 Número camiseta equipo

1ra Evaluación II Término 2012-2013. Noviembre 27, 2012 /ICM00794

Tema 2. (20 puntos) Para asignar el número de equipo para un jugador, se suman todos los números de la fecha de nacimiento, para luego sumar los dígitos del resultado hasta obtener un solo dígito.

Realice un algoritmo que permita ingresar el día, mes y año para obtener el número de un solo dígito que se busca.

Ejemplo:
Fecha de Nacimiento: 28/11/1989
Operaciones: 28 + 11 + 1989 = 2028
2028–> 2 + 0 + 2 + 8 = 12
12 –> 1 + 2 = 3
dígito buscado es: 3
Ejemplo:
Fecha de Nacimiento: 02/04/2001
Operaciones: 02 + 04 + 2001 = 2007
2007–> 2 + 0 + 0 + 7 = 9
dígito buscado es: 9

Rúbrica: Número a partir de fecha (5 puntos), reducción con operaciones con dígitos (10 puntos), algoritmo estructurado (5 puntos)

1Eva_IT2012_T2 Juego de carreras con dados

1ra Evaluación I Término 2012-2013. Julio 03, 2012 /ICM00794

TEMA 2 (30 PUNTOS) “Carreras” es un juego de tablero para dos jugadores. En cada turno el jugador lanza dos dados y se usan los números obtenidos en las caras superiores.

  • Para iniciar el juego, el jugador debe obtener las mismas caras de los dados en el lanzamiento.
  • Para avanzar casillas, se usa la suma de las caras de los dados, con el objetivo de llegar a la casilla final del tablero numeradas desde 1 al 50.
  • Existen casillas de premio (2, 17, 30, 42), en donde el jugador gana un lanzamiento adicional.

Elabore un ALGORITMO que simule este juego y muestre cuál jugador ganó.

Rúbrica: Control de jugadores y casillas (5 puntos). Aleatorios en reglas (10 puntos). Control de premios (10 puntos). Algoritmo estructurado (5 puntos)

1Eva_IT2012_T1 Codificar número por dígito

1ra Evaluación I Término 2012-2013. Julio 03, 2012 /ICM00794

TEMA 1 (20 puntos) Para cierta aplicación informática se necesitan codificar números enteros.

Elabore un ALGORITMO que solicite al usuario un número entero positivo de tres dígitos, el cual necesita ser codificado.

Considere que:
a) Si el dígito de dicho número es 2, 5 o 7, se le debe sumar la unidad.
b) Si el dígito es 1, 4, 8 o 9, se le resta la unidad.
c) Los dígitos restantes no se alteran.

Ejemplos:

Original Codificado
472 383
503 603
615 606

Rúbrica: Validación (5 puntos), conversión por dígito (10 puntos), número codificado(5 puntos)

1Eva_IIT2012_T1 Sucesión de Padovan con Python

1ra Evaluación II Término 2012-2013. Noviembre 27, 2012 /ICM00794

Tema 1. (20 puntos) La sucesión de Padovan es la secuencia de números enteros P(n) definida por los siguientes valores iniciales:

P(0)=P(1)=P(2)=1 ; 
  y el valor siguiente:
P(n)=P(n-2)+P(n-3).


Describa un algoritmo estructurado que calcule y muestre el término n de la sucesión, considere que n >3.

Ejemplo:
Los primeros valores de P(n) son: 
1, 1, 1, 2, 2, 3, 4, 5, 7, 9, 12, 16, 21, 28, 37,...
Si n=15, el numero buscado es 37

Rúbrica: Ingreso y validación (5 puntos), iniciar secuencia (5 puntos), cálculos (10 puntos)

1Eva_IT2007_T1 Tiro al blanco con dardos

1ra Evaluación I Término 2007 – 2008. Julio 03, 2007 /ICM00794

Tema 1 (30 puntos) “Tiro al blanco” es un juego que consiste en dardostablalanzar dardos a un objetivo circular.

El premio que gana el jugador, depende de la ubicación en la cual cae el dardo y su valor se reparte en dólares ($30, $40 o $50), tal como se muestra en la figura:

Existen 3 círculos concéntricos (que tienen el mismo centro) y las longitudes de los radios del primero, segundo y tercer círculos son 10cm, 40cm y 80cm, respectivamente.

Suponga que los 3 círculos están inscritos en un cuadrado de longitud de lado 160cm.

Escriba un algoritmo que permita simular n lanzamientos aleatorios de dardos, asignando de forma aleatoria pares ordenados (x, y) en el cuadrado descrito.

En cada lanzamiento se debe verificar si el dardo se ubica al interior de alguno de los círculos descritos y asignar el respectivo premio.

Al final, muestre el premio total en dólares que obtuvo el jugador.

Nota: La distancia entre dos puntos en el plano P1(x1, y1) y P2(x2, y2), viene dada por la siguiente expresión matemática:

d(P_1,P_2) = \sqrt{(x_2-x_1)^2 +(y_2-y_1)^2 }

s1Eva_IT2007_T1 Tiro al blanco con dardos

Ejercicio: 1Eva_IT2007_T1 Tiro al blanco con dardos

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

Sea un punto aleatorio representado por sus valores en x, y en el rango del cuadrado que contiene a los círculos.

    x = (rnd.random()*160)-80
    y = (rnd.random()*160)-80

Se utiliza acumuladores de premios para cada franja de color, cuyo valor se determina mediante la comparación de la distancia del punto (x,y) al centro u origen del plano.

 d = math.sqrt(x**2+y**2)

Se repite el procedimiento para los n puntos, para al final mostrar el valor acumulado de premio.

Nota: Discutir sobre la validación de dardos en los límites (frontera, borde) del círculo.

# ICM00794-Fundamentos de Computación - FCNM-ESPOL
# 1Eva_IT2007_T1 Juego Tiro al Blanco con Dardos
# Propuesta solucion: edelros@espol.edu.ec

import random as rnd
import math

# INGRESO
n = int(input('numero de dardos: '))

# PROCEDIMENTO
premio = 0
i = 0
while (i<n):
    x = (rnd.random()*160)-80
    y = (rnd.random()*160)-80
    d = math.sqrt(x**2+y**2)

    if (d<10):
        premio = premio + 50
    if (d>=10 and d<40):
        premio = premio + 40
    if (d>=40 and d<80):
        premio = premio + 30

    i = i+1

# SALIDA
print(' El total ganado es:')
print(premio)

Respuesta del algoritmo

numero de dardos: 10
 El total ganado es:
280
>>> 
numero de dardos: 10
 El total ganado es:
220
>>> 

Diagrama de Flujo Mientras-Repita

diagrama de flujo Tiro al blanco con dardos 01diagrama de flujo Tiro al blanco con dardos 02

 


Desarrollo con lazo repita-hasta

# ICM00794-Fundamentos de Computación - FCNM-ESPOL
# 1ra Evaluación I Término 2007 - 2008
# Tema 1. Tiro al blanco
# Propuesta solucion: edelros@espol.edu.ec

import random as rnd
import math

n = int(input('numero de dardos: '))

# PROCEDIMIENTO
premio = 0
i = 0
while not(i>=n):
    x = (rnd.random()*160)-80
    y = (rnd.random()*160)-80
    d = math.sqrt(x**2+y**2)

    if (d<10):
        premio = premio+50
    if (d>=10 and d<40):
        premio = premio+40
    if (d>=40 and d<80):
        premio = premio+30

    i = i+1

# SALIDA
print(' El total ganado es:')
print(premio)

Diagrama de Flujo Repita-Hasta

diagrama de Flujo Tiro al blanco con dardos 03

diagrama de flujo Tiro al blanco con dardos 04

ejercicios resueltos Python 1eva_it2007_t1 pdf

ejercicios resueltos Matlab 1eva_it2007_t1 pdf

3Eva_IIT2006_T4 Beneficiarios de Bono Desarrollo Humano

3ra Evaluación II Término 2006-2007, Febrero 6, 2007 /ICM00794

Tema 4. (30 puntos) El Bono de Desarrollo Humano se ofrece a madres solteras, ancianos y discapacitados, de los cuales se registra los nombres, apellidos, provincia, ciudad y tipo.

Realice un programa para ayudar al Ministerio de Bienestar social para gestionar el registro de los beneficiarios y que tenga el siguiente menú:

1. Ingresar un beneficiario Nombre, apellido, provincia, ciudad, tipo y pagado.
2. Mostrar el número de registrados por provincia
3. Mostrar el número de registrados por tipo
4. Mostrar el total de beneficiarios, y el monto por pagar.
5. Salir
Ejemplo de lista de beneficiarios:
Nombre Apellido Provincia Ciudad Tipo Pagado
Juan Piguave Guayas Playas (2) Anciano 0
Maria Gomez Manabí Manta (1) Madre Soltera 30
Pedro Guerra Pichincha Sto. Domingo (3) Discapacitado 30

Nota: Puede codificar a número las provincias y el tipo de beneficiario para facilitar el conteo.

3Eva_IIT2006_T3 Números Primos más cercanos

3ra Evaluación II Término 2006-2007, Febrero 6, 2007 /ICM00794

Tema 3. (30 Puntos) Dada una lista de n números, obtener el número primo más cercano a cada uno de los números. En caso de que el número de la lista sea un número primo, ese número es el más cercano.

a) Escriba una función primo(n) que determine si el numero n es primo.

b) Realice un programa que revise de una lista, los números enteros, los inmediatos inferiores y superiores hasta encontrar un número primo y llene la tabla resultante.

Ejemplo: Sea n = 6
Números Primo superior Primo inferior
100 101 97
246 251 241
2 2
333 337 331
2007 2011 2003

3Eva_IIT2006_T2 Generar triángulo de Pascal

3ra Evaluación II Término 2006-2007, Febrero 6, 2007 /ICM00794

Tema 2. (20 Puntos) El triángulo de Pascal, es un triángulo de números enteros, infinito y simétrico.

triángulo de Pascal

Se genera de arriba hacia abajo con la propiedad de que sus extremos siempre son 1, y que sus números interiores son la suma de los dos inmediatos superiores.

Escriba un programa en matlab que genere un triángulo de Pascal para n filas, y muestre la suma de sus números pares.


Sugerencia: Usando una matriz cuadrada, en la primera columna y la diagonal llene de unos. Luego realice las operaciones en la parte triangular inferior.