[ Foro de C++ ]
hola gente! estoy un poco atrasado en matrices y se me presento un problema bastante complejo.
Realice un programa en c# (consola) para gestionar la asistencia de un curso de 12 alumnos y 7 clases
Un 0 es ausente y un 1 es presente (la asistencia se genera al azar con 80% de probabilidad de presente y 20% ausentes). Se pide:
1) Listado de asistencia (generando una matriz de 12 x 8 con P y A en lugar de 0 y 1)
2) Listado de alumnos con asistencia perfecta
3) Listado de libres (alumnos con mas de 3 inasistencias)
4) Listado de asistencia ordenado.
Necesito un poco de guia para desarrollar el ejercicio, desde ya muchas gracias.
Perez Juan 0 1 1 1 1 1 1
Cordoba Andres 1 1 1 0 1 1 1
Monteros Matias 1 0 1 1 1 1 0
Diaz Daniel 1 0 1 1 1 1 0
Galarza Maria 1 0 1 1 1 1 0
Perez Ivana 1 1 1 1 1 1 1
Cardozo Raul 1 0 1 1 1 1 0
Rodriguez Miguel 1 0 1 1 1 1 1
Castro Antonio 1 1 1 1 1 1 0
Veliz Carlos 1 1 1 1 0 1 0
Antunes Juan 1 0 1 1 1 1 1
Carabajal Juan 1 0 1 1 1 1 0
Ejemplo de la matriz (lo mejor que salio xD)
Esto es lo que pude hacer del codigo el problema esta en generar los listados de asistencia perfecta, libres y el listado de asistencia ordenado
// asignamos las variables con las que vamos a trabajar
int[,] MatrizAsistencia = new int[12, 7]; // Matriz de asistencia MesxDia
string[] VectorAlumnos = new string[12]; //Vector alumnos a ingresar
Random Generador = new Random(); //Random para generar los P y A
string[,] MatrizFinal = new string[12, 8]; //Matriz que Muestra el vector
// y la matriz de asistencias x alumnos
//for para asignarle al vector el nombre de cada alumno
for (int i = 0; i < 12; i++)
{
Console.WriteLine("Ingrese el nombre del alumno");
VectorAlumnos[i] = Console.ReadLine();
}
//for anidado para rellenar la Matriz de asistencia con valores Random
for (int i = 0; i < 12; i++)
{
for (int d = 0; d < 7; d++)
{
MatrizAsistencia[i, d] = Generador.Next(101);
if (MatrizAsistencia[i, d] <= 80) //este if else para condicionar
//si nos tira numeros de 80 o mas es un 1
//caso contrario que sean 0.
{
MatrizAsistencia[i, d] = 1;
}
else
{
MatrizAsistencia[i, d] = 0;
}
}
Console.WriteLine();
}
//for anidado para la Matriz Final
for (int i = 0; i < 12; i++)
{
for (int d = 0; d < 7; d++)
{
if (d == 0) //Asignamos que la primera columna sea los valores del
//vector alumnos
{
MatrizFinal[i, 0] = VectorAlumnos[i];
}
else
//caso contrario que rellene las otras columnas con A y P
{
if (MatrizAsistencia[i, d] == 0)
{
MatrizFinal[i, d + 1] = "|" + "A" + "|";
}
else
{
MatrizFinal[i, d + 1] = "|" + "P" + "|";
}
}
}
}// for
// for anidado para mostrar la Matriz final
for (int i = 0; i < 12; i++)
{
for (int d = 0; d < 8; d++)
{
Console.Write(MatrizFinal[i, d]);
}
Console.WriteLine();
}
Console.ReadKey();
}
}
}
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)