Jump to content

Ayuda con algoritmo en pseudocodigo


Recommended Posts

Buenas:

 

Necesito si alguien informático me ayude a solucionar un algoritmo que nos mando un profe, es en pseudocodigo ( no se si este tema este bien creado en esta sección).

 

El asunto es que debo crear un algoritmo que pueda reservar asientos de un cine, los creamos con el programa "pseint".

 

tengo gran parte del algoritmo creado pero, no puedo hacer que el programa me pida un asiento y este quede reservado, si no que me pide que elija una fila y una columna y ahi lo reserva.

 

les dejo el bosquejo que tengo hasta el momento

 

 

 

Proceso Cine_Detroit_S_A
dimension cine[10,5]
A=""
cine[1,1]="1"
cine[1,2]="2"
cine[1,3]="3"
cine[1,4]="4"
cine[1,5]="5"
cine[2,1]="6"
cine[2,2]="7"
cine[2,3]="8"
cine[2,4]="9"
cine[2,5]="10"
cine[3,1]="11"
cine[3,2]="12"
cine[3,3]="13"
cine[3,4]="14"
cine[3,5]="15"
cine[4,1]="16"
cine[4,2]="17"
cine[4,3]="18"
cine[4,4]="19"
cine[4,5]="20"
cine[5,1]="21"
cine[5,2]="22"
cine[5,3]="23"
cine[5,4]="24"
cine[5,5]="25"
cine[6,1]="26"
cine[6,2]="27"
cine[6,3]="28"
cine[6,4]="29"
cine[6,5]="30"
cine[7,1]="31"
cine[7,2]="32"
cine[7,3]="33"
cine[7,4]="34"
cine[7,5]="35"
cine[8,1]="36"
cine[8,2]="37"
cine[8,3]="38"
cine[8,4]="39"
cine[8,5]="40"
cine[9,1]="41"
cine[9,2]="42"
cine[9,3]="43"
cine[9,4]="44"
cine[9,5]="45"
cine[10,1]="46"
cine[10,2]="47"
cine[10,3]="48"
cine[10,4]="49"
cine[10,5]="50"
Mientras Con=s Hacer
Escribir "= Sistema de reserva de butacas ="
Escribir " "
Para F<-1 Hasta 10 Con Paso 1 Hacer
Para C<-1 Hasta 5 Con Paso 1 Hacer
A=A+"-"+cine[f,c]
Fin Para
Escribir A
A=""
Fin Para
Escribir " "
Escribir "Indique fila"
Leer Fila
F=Fila
Escribir " "
Escribir "Indique columna"
Leer Columna
C=Columna
Si cine[f,c]="X" Entonces
Escribir "El asiento se encuentra reservado"
Sino
Escribir "Si desea reservar presione 1"
Leer R
Si R=1 Entonces
Escribir "Asiento reservado"
cine[f,c]="X"
Sino
Escribir "Accion cancelada por el usuario"
Fin Si
Fin Si
Escribir "Desea consultar nuevamente la tabla? (s)"
Leer Cond
Limpiar Pantalla
Fin Mientras
FinProceso
Link to comment
Share on other sites

Me da paja pseint te dejo un pseudocódigo a mi pinta.

 

Lo hice a la rápida espero que funcione y/o se entienda la idea

 

Cargamos la sala

filas = 10; //tu elijes
columnas = 25;  //tu elijes, este último son la cantidad de asientos de c/fila 

sala[filas][columnas];

para(i=0; i<filas; i=i+1){
   para(k=0; k<columnas; k=k+1){
   sala[i][k] = 0;
   }
}

Ahora hacemos las reservas

continuar = 1;

mientras(continuar == 1){
Escribir: Opciones Reservar(1) - Salir(2);
opcion = LeerTeclado;

    if(opcion == 1){
    Esciribr: Elija fila;
    fil = LeerTeclado;

    Escribir: Elija asiento;
    col = LeerTeclado;

        si(fil<=0 o fil>filas o col<=0 o col>columnas){
        Escribir: Este asiento no existe;
        }
        sino{
        fil = fil-1;
        col = col-1;
            si(sala[fil][col] == 1){
            Escribir: Este asiento está ocupado;
            }
            sino{
            sala[fil][col] = 1;
            Escribir: Asiento asignado;
            }
        }
    }
    sino si(opcion == 2){
    continuar = 0;
    Escribir: Ha salido del programa;
    }
    sino{
    Escribir: Esta opción no existe;
    }
}

La idea es que al principio todos los asientos tienen como estado el numero 0, a medida que vas asignado asientos el estado del asiento cambia a 1. con esto logras saber si esta ocupado o no.

 

imagina que los "{" significa abrir el bloque y los "}" cerrar el bloque (FinAlgo)

 

Espero te sirva..

 

 

 

Mira lo hice en Pseint pero como no lo tengo instalado no lo probe pero espero que se entienda:

Proceso Cine

filas <- 10
columnas <- 25

sala[filas, columnas]

	Para i<-0 Hasta filas-1 Paso 1 Hacer
		Para k<-0 Hasta columnas-1 Paso 1 Hacer
		sala[i,k] = 0
		FinPara
	FinPara

continuar <- 1

	Mientras continuar = 1 Hacer
	Escribir "Opciones: Asignar asiento(1) - Salir(2)"
	
	Leer opcion
	quehacer <- 0

		Segun opcion Hacer
		1: quehacer <- 1
		2: quehacer <- 2
		De Otro Modo: quehacer <- 3
		FinSegun

		Si quehacer = 1 Entonces
		Escribir "Ingrese fila"
		Leer fil

		Escribir "Ingrese asiento"
		Leer col

			Si fil <= 0 | fil > filas | col <= 0 | col > columnas Entonces
			Escribir "El asiento no existe"			
			Sino
			fil <- fil-1
			col <- col-1
				Si sala[fil, col] = 1 Entonces
				Escribir "El asiento está ocupado"
				Sino
				sala[fil,col] <- 1
				Escribir "Asiento asignado"
				FinSi
			FinSi

		FinSi

		Si quehacer = 2 Entonces
		continuar <- 0
		Escribir "Ha salido del programa"
		FinSi

		Si quehacer = 3 Entonces
		Escribir "Esta opción no existe"
		FinSi
	

	FinMientras


FinProceso
Edited by cañangasñangas
Link to comment
Share on other sites

Para eso estamos, quiero agregar que yo nunca hago la pega completamente pero como estas en pseint eso indica que estás partiendo con programación, vi tu código y lo encontré un poco perdido.

Lo importante es que hayas entendido la idea del código.

Quiero agregar una cosa más no escribas las cosas en línea, es decir no esribas asi

 

Proceso Cine

 

Si a=1 Entonces

Si b=2 Entonces

Escribir "Algo"

FinSi

FinSi

 

FinProceso

 

Ocupa tabulaciones para organizar bien tu código y saber en donde estas:

Proceso Cine
    Si a=1 Entonces
        Si b=2 Entonces
        Escribir "Algo"
        FinSi
    FinSi
FinProceso

De ese modo está más organizado

Edited by cañangasñangas
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...