Examen de Informática

Cuestión 1 (2.5 puntos)
Cinco amigos quedan semanalmente para jugar a juegos de mesas. Cada día que se reunen, uno de ellos escoge a que jugarán esa tarde. Como no siempren están todos, han diseñado el siguiente sistema para decidir a quién le toca su día del gañán: El orden del turno del día del gañán está apuntado en una lista. Cuando hay una golfa, escoge juego el que esté más alto en la lista de los asistentes. El orden para la siguiente quedada se obtiene intercambiando el orden de turnos de los asistentes, sin modificar el orden de los simios que no han jugado.

Ejemplos:

Lista: Cristian, Jokin, Jose, Fran, David
Asistentes: Jokin, Jose, Fran, David, Cristian
Día del gañán: Cristian
Lista para la siguiente quedada: Jokin, Jose, Fran, David, Cristian

Lista: Jokin, Jose, Fran, David, Cristian
Asistentes: Jose, Fran, Cristian
Día del gañán: Jose
Lista para la siguiente quedada: Jokin, Fran, Cristian, David, Jose

Lista: Jokin, Fran, Cristian, David, Jose
Asistentes: Jose, Fran, Cristian, Jokin
Día del gañán: Jokin
Lista para la siguiente quedada: Fran, Cristian, Jose, David, Jokin

Lista: Fran, Cristian, Jose, David, Jokin
Asistentes: Fran, David
Día del gañán: Fran
Lista para la siguiente quedada: David, Cristian, Jose, Jokin, Fran

Diseñar una función en C que dada la lista actual y la lista de asistentes, devuelva a quién le toca el día del gañán y actualice el turno. Las listas se proporcionan como un vector de 5 números enteros. Cada simio tiene un código. En la lista de asistencias, las ausencias se marcan con un cero.

Prototipo

int listasimia(int lista[5], int asistentes[5]);

Anuncios

7 pensamientos en “Examen de Informática

  1. La verdad es que sí que tengo ganas de sacar algún juego que otro… 😀

    El TRC es bueno… no os arrepentiréis de probarlo

    De todas formas, rige el sentido común. Si hay acuerdo, no es día del gañán, sea a tres o a cuatro (como hoy).

  2. int listasimia(int lista[5], int asistentes[5])
    {
    int i,j;
    int I;
    int res,encontrado;

    encontrado = 0;
    I = 0;
    while(!encontrado)
    {
    for(i=0;i<5;i++)
    if(asistentes[i]==lista[I])
    encontrado = 1;
    I++;
    }
    I–;
    res = lista[I];
    for(i=I+1;i<5;i++)
    {
    for(j=0;j<5;j++)
    if(asistentes[j]==lista[i])
    {
    lista[i] = lista[I];
    lista[I] = asistentes[j];
    I = i;
    j = 5;
    }
    }
    return res;
    }

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s