Ejercicio: 3Eva2013TII_T4 Gestionar asientos en cine
Los asientos se identifican por un código formado por una letra y un número equivalentes a la ubicación en filas identificadas desde la A hasta la J, y las columnas de 1 al 20.
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | ... | |
|---|---|---|---|---|---|---|---|---|---|
| A | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |
| B | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | |
| C | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |
| D | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | |
| E | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | |
| F | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | |
| ... |
Menú opción 1
Se pide la ubicación mediante fila y columna
if (opcion=='1'):
print('Vender Boletos')
fila = int(input('fila:'))
columna = int(input('columna:'))
se asigna el asiento solo luego de verificar que el asiento esté libre.
if (asiento[fila,columna]==0):
asiento[fila,columna] = 1
else:
print('asiento ocupado')
Queda como tarea verificar que los valores de fila y columna se encuentren en el intervalo de los límites de la matriz.
Menú opción 3
Consiste en contar el número de asientos ocupados o con valor 1.
El objetivo del tema es observar si el estudiante puede recorrer toda la matriz y acumular valores predeterminados.
Se muestra el recorrido usando bucles con for, intente realizarlos también con while.
if (opcion=='3'):
print('Contar vendidos')
contar = 0
for fila in range(0,n,1):
for columna in range(0,m,1):
contar = contar+asiento[fila,columna]
print(contar)
Nota: Evitar usar funciones de suma()
Las otras opciones quedan como tarea.
Algoritmo en Python
Propuesta de solución en Python:
# ICM00794-Fundamentos de Computación - FCNM-ESPOL
# 3Eva_IIT2013_T4 Gestionar asientos en cine
import numpy as np
# Genera la sala
n = int(input('numero filas: '))
m = int(input('numero columnas:'))
asiento = np.zeros(shape=(n,m), dtype=int)
opcion = '0'
while not(opcion=='5'):
print(' 1. Vender Boletos')
print(' 2._Mostrar_asientos')
print(' 3. Contar vendidos')
print(' 4. Buscar libre')
print(' 5. Salir ')
opcion = input('cual opcion: ')
if (opcion=='1'):
print('Vender Boletos')
fila = int(input('fila:'))
columna = int(input('columna:'))
if (asiento[fila,columna]==0):
asiento[fila,columna] = 1
else:
print('asiento ocupado')
if (opcion=='2'):
print('Mostrar_asientos')
print(asiento)
if (opcion=='3'):
print('Contar vendidos')
contar = 0
for fila in range(0,n,1):
for columna in range(0,m,1):
contar = contar+asiento[fila,columna]
print(contar)
if (opcion=='4'):
print('Buscar libre')
if (opcion=='5'):
print('Salir')