1. INSTITUTO DE CIENCIAS MATEMÁTICAS
FUNDAMENTOS DE COMPUTACIÓN
PRIMERA EVALUACIÓN – II 2010
UNA SOLUCIÓN
Tema 1 (30 puntos) El Censo 2010 es un recuento de la población y
las viviendas para generar información estadística confiable, veraz y
oportuna. Una vez que se ha obtenido toda la información, esta se
procesa para generar datos estadísticos.
Escriba un algoritmo que registre los datos de género y nivel de
instrucción completados para n personas censadas, realice la
tabulación respectiva en tablas de resultados de instrucción por
género y muestre los resultados.
http://www.censos2010.gob.ec/censos/inicio.html
Rubrica: Ingreso de datos (5 puntos), tabulación de datos (15 puntos),
mostrar resultados (5 puntos)
gen=input('género ');
ins=input('instrucción ');
n=length(gen);
nivmas=[0 0 0];
nivfem=[0 0 0];
for i=1:n
k=ins(i);
if gen(i)==1
nivmas(k)=nivmas(k)+1;
else
nivfem(k)=nivfem(k)+1;
end
end
disp('instrucción género masculino');
disp(nivmas);
disp('instrucción género femenino');
disp(nivfem);
Lista de género y nivel de instrucción:
i género(i) Instrucción(i)
1 1 2
2 2 3
3 1 3
… … …
Género: 1. Masculino 2. Femenino
Instrucción: 1. Primaria 2. Secundaria 3.superior
Instrucción por género:
Masculino Femenino
Primaria
Secundaria
Superior
2. Tema 2 (30 puntos) En la estación de un tren turístico se instalará una máquina
automática para la venta de pasajes que acepta billetes en dólares, euros y pesos. El
comprador indicará el número de pasajes, tipo de moneda y la cantidad de dinero, la
maquina realiza la conversión a pesos, ejecutará el cobro y de ser necesario entrega el
cambio en pesos.
Suponga que el tren tiene capacidad de 150 pasajeros, que el tipo de cambio es 2.5
pesos/dólar, 3.25 pesos/euro y que el precio del pasaje es de 7 pesos.
Escriba un algoritmo que simule la máquina de cobro de pasajes, para n turnos de
compra o hasta completar la capacidad tren considerando que un comprador puede
pedir más de un boleto.
La maquina entrega pasajes cuando el comprador entrega la cantidad suficiente de
dinero y aún hay asientos disponibles. Al final de las ventas muestre la cantidad de
boletos vendidos, total de pesos cobrados y devuelto como cambio.
Ejemplo: ¿Cuantos turnos?: 5
Turno 1
¿cuántos pasajes?: 3
Monedas: 1.Dolar 2.Euro
3.Peso
¿Tipo Moneda?: 1
¿Cantidad de Dinero?: 10
su cambio: 4
Turno 2
¿cuántos pasajes?: …
…
Rubrica: Ingreso de datos (5 puntos), determinar cobro y cambio (5 puntos), validar ventas y asientos (10 puntos). Algoritmo
integrado (5 puntos).
n=input('cuantos turnos ');
pasdisp=150;
totcob=0;
totpas=0;
totcamb=0;
i=1;
while i<=n & pasdisp>0
disp('turno');
disp(i);
pas=input('cuantos pasajes ');
tipo=input('tipo de moneda ');
cant=input('cantidad de dinero ');
i=i+1;
if pas<=pasdisp
if tipo==1
cant=cant*2.5;
else
if tipo==2
cant=cant*3.25;
end
end
cambio=cant-pas*7;
if cambio>=0
disp('su cambio es');
disp(cambio);
pasdisp=pasdisp-pas;
totcob=totcob+pas*7;
totpas=totpas+pas;
totcamb=totcamb+cambio;
end
end
end
disp(totpas);
disp(totcob);
disp(totcamb);
3. Tema 3 (40 puntos) El “amigo secreto” es un juego en el que
participan igual número de hombres y mujeres para darse
regalos entre sí. Los “amigos secretos” se sortean previo a la
celebración de tal forma que a cada participante le toque otro de
género opuesto elegida aleatoriamente y sin que sea asignada
más de una vez.
El día de la celebración, se colocan los presentes en un mismo
lugar. Un participante inicia la entrega de regalos, quién lo recibe
debe abrirlo ante todos y posteriormente proceder de la misma
forma hasta terminar con todos los regalos.
Ejemplo:
Número de parejas: 10
i ParHombre(i) j ParMujer(j)
1 14 11 5
2 11 12 8
3 18 13 1
… … … …
10 15 20 7
http://es.wikipedia.org/wiki/Amigo_invisible
Escriba un algoritmo para realizar el sorteo “amigo secreto”, solicitando el número de parejas n y muestre las
parejas generadas
Sugerencia: Los caballeros se numeran entre 1 y n, y las damas se numeran entre (n+1) y 2n.
Rúbrica: Sorteo de amigos (5 puntos). Asignaciones no repetidas (15 puntos). Mostrar resultados (5 puntos).
n=input('cuantas parejas ');
for i=1:n
amigo(i)=i;
end
amiga=[ ];
while length(amiga)<n
p=fix(rand*n)+1+n;
e=ismember(p,amiga);
if e==0
amiga=[amiga,p];
end
end
for i=1:n
disp([amigo(i),amiga(i)]);
end