Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: javierx0246 en 26 de Noviembre 2022, 15:46

Título: No entiendo el enunciado de un ejercicio de c#
Publicado por: javierx0246 en 26 de Noviembre 2022, 15:46
Hola queria comentar estoy empezando con un ejercicio de matriz pero no entiendo .El enunciado Y queria ver si alguien me lo pudiese explicar.





El enunciado



Escribe un programa que se encargue de controlar el aforo de un Multicine:

    El cine tendrá tres salas (A, B, C), en las cuales se pasarán diariamente tres sesiones (1ª, 2ª, 3ª).
    El número máximo de personas de cada una de las salas es:
        Sala A = 200 personas.
        Sala B = 150 personas.
        Sala C = 125 personas.
    Tendremos un menú con dos opciones:
        Venta de entradas.
        Estadística de aforo.
    Para salir del programa se tendrá que pulsar la tecla ESC.

Cada vez que se realice una venta de entradas se pedirá:

    El número de entradas que se van a comprar.
    La sala
    La sesión a la que se quiere asistir.

Las entradas vendidas quedarán registradas en la matriz bi-dimensional.
Si el número de entradas sobrepasa el aforo máximo de la sala, se indicará mediante un mensaje por pantalla



Gracias
Título: Re: No entiendo el enunciado de un ejercicio de c#
Publicado por: Kabuto en 26 de Noviembre 2022, 20:44
Hola.

Lo que necesitas es crear lo que se llama una matriz escalonada.
Es decir, una matriz cuyas filas tienen distinto número de columnas.

Normalmente usamos matrices cuyas filas tienen todas las mismas columnas. Una matriz de 3x20 por ejemplo, significa que tendrá 3 filas, y cada fila tendrá 20 columnas.

Eso es lo habitual, pero no tiene por qué ser siempre así.

Para este ejercicio necesitarás una matriz de 3 filas, pero cada fila tendrá distinto número de columnas.
La 1ª fila tendría 200 columnas (el aforo de la sala A)
La 2ª tendría 150 columnas (aforo sala B)
Y la 3ª será de 125 columnas (sala C)

En este enlace (https://learn.microsoft.com/es-es/dotnet/csharp/programming-guide/arrays/jagged-arrays) tienes una explicación de como crear una matriz escalonada.

El tipo de dato de la matriz lo escoges tú. La idea es que cada elemento de la matriz representa una butaca en una de las salas y necesitas marcar cuáles están ocupadas (porque se han vendido entradas) y cuáles están libres.

Puedes usar el tipo int por ejemplo. A las butacas libres le das valor 0 y a las ocupadas le das valor 1.
O puedes usar el tipo bool y marcar las libres como false y las ocupadas como true

Elige la que te parezca más fácil.


Entonces, en el programa cuando se pulse la opción "Vender entradas" tendrás que preguntar cuántas entradas quieren comprar y para cuál sala.
Y entonces compruebas si en la fila que corresponde a esas sala, quedan suficientes "butacas libres" (columnas con valor 0 o false)

Si no hay suficientes, la venta no es posible.
Si las hay, pues marcas esas "butacas" como ocupadas y terminas la venta.