[ 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.
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.)