Pascal/Turbo Pascal - Ayuda con un programa!

 
Vista:

Ayuda con un programa!

Publicado por Robert (11 intervenciones) el 18/01/2012 20:47:11
Me podéis ayudar por favor con el programa?

El hospital tiene 100 habitaciones El hospital tiene 10 plantas y 20 habitaciones por planta.
De cada habitación se quiere saber:
1 El numero de orden
2 Planta y numero de habitación dentro de la plana.
3 Si es individual o doble(para una persona o dos)
4 Si está ocupara o no para los 30 días del mes.

1. Diseñar la estructura de tHabitación para guardar los datos de cada habitación.
2. Diseñar tHospital per guardar los datos del tHospital.
3. Escribir un procedure pInicio, que permita indicar que de entrada todas las habitaciones están libres (como un RESET).
4. Escribir un function en que dada una habitacion (numero de orden) y día de entrada y el día de salida diga si aquella habitación está libre en estos días.
5. Escribir un procedure en el que dados los datos del hospital y un día de entrada y un día de salida, encuentre una habitación disponible entre estos días. También, hay que decir si tiene que ser individual o doble. El procedure tiene que devolver la habitación (numero de orden- por ejemplo 12). Se necesita un mecanismo para indicar si el proceso ha acabado con exito.
6. Escribir un procedure en que, dados los datos del hospital y un día de entrada y uno de salida, haga una reserva en una habitación dado su numero del orden( faciltado por el procedure anterior), para este intervlo de días. El procedure tiene que modificar los datos que correspondan.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Ayuda con un programa!

Publicado por ramon (2158 intervenciones) el 18/01/2012 21:09:31
Pregunta el programa con punteros o con variables o arrays entradas con read o con procedimiento
cualquiera con menu aclárame si puedes algo mas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda con un programa!

Publicado por Robert (11 intervenciones) el 18/01/2012 22:39:22
Se supone que los datos ya están guardados en la memoria de la estructura de datos y no hace falta preguntarle al usuario que las introduzca. Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda con un programa!

Publicado por Robert (11 intervenciones) el 19/01/2012 17:37:48
He hecho hasta aquí, pero igualmente no me funciona, tengo dudas con la variable orden y la de reserva con lo de los 30 días.

const
Capacidad=100;
Max_Habitacion=20;
Max_Planta=10;
TYPE
tHabitacion=record
orden:1..100;
habitacion: array[1..Max_Planta,1..Max_Habitacion] of real;
tipo:(individual, doble);
reserva: boolean;
end;

TYPE
tHotel=record
num_hab: array[1..Capacidad] of tHabitacion
end;

procedure pInici (var h:tHotel);
var
i:integer;
begin
i:=1;
while h.num_hab<Capacidad do
Write('Todas las habitaciones están libres:');
i:=i+1;
end;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda con un programa!

Publicado por ramon (2158 intervenciones) el 19/01/2012 19:00:43
{Esto es lo que tu solicitas que te ayude como ves estos serian los registros para he yo pero
si los datos los tienes creados de veras saber la estructura que tienen pues se supone los
cargo de un archivo al sistema por lo tanto si no tienes la estructura de como los guardo no
podrás cargarlos correctamente.
Dime se estas formas te sirven pero para que puedas probar tendré que entrar los datos
y luego realizar el resto que dices si no mal lo tengo para ayudarte por no poder comprobar
si funciona bien o no.}


program ospital;
uses
crt, dos;
type
fecha = array[1..3] of word;

tcondicion = record
camas : word;
estado1 : boolean;
estado2 : boolean;
ingres1 : fecha;
libre1 : fecha;
ingres2 : fecha;
libre2 : fecha;
end;

thabitacion = record
habit : array[1..20] of tcondicion;
end;

thospital = record
plantas : array[1..10] of thabitacion;
end;

var
datos : thospital;
procedure todo_libre;
var
i, t : integer;
begin
for i := 1 to 10 do
begin
for t := 1 to 20 do
begin
datos.plantas[i].habit[t].camas := 0;
datos.plantas[i].habit[t].estado1 := false;
datos.plantas[i].habit[t].estado2 := false;
fillchar(datos.plantas[i].habit[t].ingres1,sizeof(fecha),0);
fillchar(datos.plantas[i].habit[t].libre1,sizeof(fecha),0);
fillchar(datos.plantas[i].habit[t].ingres2,sizeof(fecha),0);
fillchar(datos.plantas[i].habit[t].libre2,sizeof(fecha),0);
end;
end;
end;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda con un programa!

Publicado por Robert (11 intervenciones) el 19/01/2012 19:05:52
Si, estas formas están muy bien y como tu dices entrar los datos para comprobarlo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda con un programa!

Publicado por ramon (2158 intervenciones) el 19/01/2012 20:07:40
{A ver vamos bien }

function readln12(xr, yr : integer; long : integer) : word;
var
tecla : char;
numr : integer;
da : string[10];
error : integer;
nm : word;
begin
fillchar(da,11,' ');
da[0] := chr(10);
numr := 1;
readln12 := 0;
gotoxy(xr,yr);
repeat
tecla := readkey;
if tecla in[#48..#57] then
begin
da[numr] := tecla;
da[0] := chr(numr);
gotoxy((xr - 1) + numr,yr);write(da[numr]);
numr := numr + 1;
if numr > long then
numr := long;
end;
if tecla = #8 then
begin
numr := numr - 1;
if numr < 1 then
numr := 1;
da[numr] := ' ';
da[0] := chr(numr);
gotoxy((xr - 1) + numr,yr);write(da[numr]);
end;
until tecla = #13;
val(da,nm,error);
if error <> 0 then
begin
delete(da,error,1);
val(da,nm,error);
end;
readln12 := nm;
end;

procedure entra_dadatos;
var
ocupa, cam, abit, num : word;
ocupa1, ocupa2 : boolean;
dia, mes, diase, ayo : word;
di, me, ay : word;
begin
clrscr;
gotoxy(10,4);write('N§ Planta : ');
num := readln12(26,4,2);
gotoxy(10,5);write('N§ Habitacion : ');
abit := readln12(26,5,2);
gotoxy(10,6);write('N§ Camas : ');
cam := readln12(26,6,1);
datos.plantas[num].habit[abit].camas := cam;
gotoxy(10,7);write('En Cama N§ : ','Hay = ',
datos.plantas[num].habit[abit].camas);
ocupa := readln12(26,7,2);
if ocupa = 1 then
begin
datos.plantas[num].habit[abit].estado1 := true;
getdate(ayo,mes,dia,diase);
datos.plantas[num].habit[abit].ingres1[1] := dia;
datos.plantas[num].habit[abit].ingres1[2] := mes;
datos.plantas[num].habit[abit].ingres1[3] := ayo;
gotoxy(10,8);write('Fecha Ingreso : ',dia,'/',mes,'/',ayo);
gotoxy(10,9);write('Fecha Alta : / / ');
di := readln12(26,9,2);
me := readln12(29,9,2);
ay := readln12(32,9,4);
datos.plantas[num].habit[abit].libre1[1] := di;
datos.plantas[num].habit[abit].libre1[2] := me;
datos.plantas[num].habit[abit].libre1[3] := ay;
end;
if ocupa = 2 then
begin
datos.plantas[num].habit[abit].estado2 := true;
getdate(ayo,mes,dia,diase);
datos.plantas[num].habit[abit].ingres2[1] := dia;
datos.plantas[num].habit[abit].ingres2[2] := mes;
datos.plantas[num].habit[abit].ingres2[3] := ayo;
gotoxy(10,8);write('Fecha Ingreso : ',dia,'/',mes,'/',ayo);
gotoxy(10,9);write('Fecha Alta : / / ');
di := readln12(26,9,2);
me := readln12(29,9,2);
ay := readln12(32,9,4);
datos.plantas[num].habit[abit].libre2[1] := di;
datos.plantas[num].habit[abit].libre2[2] := me;
datos.plantas[num].habit[abit].libre2[3] := ay;
end;
end;

procedure presenta_datos(num, abit : word);
var
py : integer;
begin
clrscr;
py := 2;
gotoxy(10,py);write('Planta N§ ',num);
py := py + 1;
gotoxy(10,py);write('Habitacion N§ ',abit);
py := py + 1;
gotoxy(10,py);write('Camas : ',datos.plantas[num].habit[abit].camas);
py := py + 1;
if datos.plantas[num].habit[abit].camas = 1 then
begin
if datos.plantas[num].habit[abit].estado1 = true then
begin
gotoxy(10,py);write('Cama N§ 1 : Ocupada');
end
else
begin
gotoxy(10,py);write('Cama N§ 1 : Libre');
end;
end;
if datos.plantas[num].habit[abit].camas = 2 then
begin
if datos.plantas[num].habit[abit].estado1 = true then
begin
gotoxy(10,py);write('Cama N§ 1 : Ocupada');
end
else
begin
gotoxy(10,py);write('Cama N§ 1 : Libre');
end;
py := py + 1;
if datos.plantas[num].habit[abit].estado2 = true then
begin
gotoxy(10,py);write('Cama N§ 2 : Ocupada');
end
else
begin
gotoxy(10,py);write('Cama N§ 2 : Libre');
end;
end;
py := py + 1;
if datos.plantas[num].habit[abit].estado1 then
begin
gotoxy(10,py);write('Ingreso Dia : ',datos.plantas[num].habit[abit].ingres1[1],
'/',datos.plantas[num].habit[abit].ingres1[2],'/',datos.plantas[num].habit[abit].ingres1[3]);
py := py + 1;
gotoxy(10,py);write('Alta Dia : ',datos.plantas[num].habit[abit].libre1[1],
'/',datos.plantas[num].habit[abit].libre1[2],'/',datos.plantas[num].habit[abit].libre1[3]);
end;
if datos.plantas[num].habit[abit].estado2 then
begin
gotoxy(10,py);write('Ingreso Dia : ',datos.plantas[num].habit[abit].ingres2[1],
'/',datos.plantas[num].habit[abit].ingres2[2],'/',datos.plantas[num].habit[abit].ingres2[3]);
py := py + 1;
gotoxy(10,py);write('Alta Dia : ',datos.plantas[num].habit[abit].libre2[1],
'/',datos.plantas[num].habit[abit].libre2[2],'/',datos.plantas[num].habit[abit].libre2[3]);
end;
end;

begin
clrscr;
todo_libre;
entra_dadatos;
presenta_datos(1,1);
readln;
end.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda con un programa!

Publicado por Robert (11 intervenciones) el 19/01/2012 21:17:54
Muchas gracias! esto me sirve mucho, me puedes ayudar por favor con este function:

function ocupacion (var hab:tHabitacion):boolean;
var
a,e,s,i:integer;
ocup:boolean;
begin
ocup:=false;
i:=1;
write('Introduce el orden:');
read(a);
write('Introduce el dia de entrada:');
read(e);
write('Introduce el dia de salida:');
read(s);
while (i<Capacidad) and (ocup=false) do
begin
if (dia[e]) and (dia[s]) then
ocup:=true
else
i:=i+1;
end;
end;


Necesito saber como hacer dado un numero (orden) un dia de entrada y otro de salida hacer la busqueda???
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda con un programa!

Publicado por ramon (2158 intervenciones) el 20/01/2012 17:15:58
{Esta Seria una forma de localizarla pero como ves la entrada es planta y fecha de ingreso
para comprovar si en esa fecha queda algo libre en esa plamta si quieres en todas las
plantas no pongas entrada y realiza un for en planta y habitaciones asta encontrar una libre}

type
fecha = array[1..3] of word;

tcondicion = record
camas : word;
estado1 : boolean;
estado2 : boolean;
ingres1 : fecha;
libre1 : fecha;
ingres2 : fecha;
libre2 : fecha;
end;

thabitacion = record
habit : array[1..20] of tcondicion;
end;

thospital = record
plantas : array[1..10] of thabitacion;
end;

var
cont : longint;
ospit : tHospital;
f : file of tcondicion;

function ocupacion(osp : tHospital) : boolean;
var
p,a,i : integer;
dia1, dia2 : word;
ocup : boolean;
begin
ocup := true;
i := 1;
write('Introduce el N§ Planta :');
read(p);
if p > 10 then
p := 10;
write('Introduce el dia de entrada:');
read(dia1);
write('Introduce el dia de salida:');
read(dia2);
cont := filesize(f) - 1;
while (i > cont) or (ocup = false) do
begin
if (osp.plantas[p].habit[i].libre1[1] = dia1) or
(osp.plantas[p].habit[i].libre2[1] = dia1) then
begin
ocup := false;
end
else
i := i + 1;
end;
if ocup = false then
begin
writeln('**** Informacion De La Habitacion ****');
writeln;
writeln(' Planta N§ : ',p);
writeln('Habitacion N§ : ',i);
writeln(' N§ De Camas : ',osp.plantas[p].habit[i].camas);
writeln(' Cama N§ 1 : ',osp.plantas[p].habit[i].estado1);
writeln(' Cama N§ 2 : ',osp.plantas[p].habit[i].estado2);
if osp.plantas[p].habit[i].estado1 = true then
writeln(' Fecha Alta : ',osp.plantas[p].habit[i].libre1[1],'/',
osp.plantas[p].habit[i].libre1[2],'/',osp.plantas[p].habit[i].libre1[3]);
if osp.plantas[p].habit[i].estado2 = true then
writeln(' Fecha Alta : ',osp.plantas[p].habit[i].libre2[1],'/',
osp.plantas[p].habit[i].libre2[2],'/',osp.plantas[p].habit[i].libre2[3]);
writeln;
ocupacion := false;
end
else
begin
writeln('**** Informacion De La Habitacion ****');
writeln;
writeln(' Planta N§ : ',p);
writeln('Ocupacion Total En Fechas',dia1);
ocupacion := true;
end;
writeln('Pulse Enter');
end;

begin
ocupacion(ospit);
end.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda con un programa!

Publicado por Robert (11 intervenciones) el 22/01/2012 09:28:59
Muchas gracias por la ayuda. Me puedes decir por favor si esto esta bien, dadas tres variables(habit-orden de la habiracion, diaE-dia de entrada y diaS-dia de salida necesito hacer una busqueda y eso es lo que no me sale para saber si dado el orden de la habitacion y los dos dias, la habotacion esta libre en estas fechas o no:

Const

nMax=100;
tIndice=0..nMax;

type
tHabitacion=record
orden:integer;
tipo:(individual,doble);
reserva:array[1..30] of integer;
planta: 1..10;
numhab:1..20;

tHotel=record
habitacion:array[tIndice] of tHabitacion;

var
hab:tHotel;

procedure pInicio (var hab:tHotel);

var
i:integer;
begin
i:=1;

for i:=1 to nMax do
hab.reserva[i]:=0;

i;=i+1;
end;

function ocupacion (var: habit, diaE, diaS: tHotel):boolean;
var
i:integer;
begin
i:= 1;
exito:= false;
while (i < diaS.reserva[i]) and (habit.orden<>diaE.reserva[i]) do
i:= i+1;

if habit.orden = ??? then
Write('exito')
else
Write('fracaso')
end;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda con un programa!

Publicado por Robert (1 intervención) el 22/01/2012 16:18:09
Nesecito una forma para indicar que la habitación esta reservada o no entre estas fechas. Y la reserva es un vector de 30 días, estoy muy confundido.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda con un programa!

Publicado por ramon (2158 intervenciones) el 22/01/2012 17:00:41
{Según expresas en tu record solo puedes detectar la habitación si esta libre si es cero o
como mucho por el día entrado el 1 hasta el 30 como ves:

tHabitacion=record
orden:integer;
tipo:(individual,doble);
reserva:array[1..30] of integer;
planta: 1..10;
numhab:1..20;
end;

{Mira que reserva solo puede contener números esto seria la forma de detectar la habitación libre}

function ocupacion(ha : thotel) : boolean;
var
w, i : integer;
begin
ocupacion := true;
i := 1;
w := 1;
while (i > nmax) or (ha.habitacion[i].reserva[w] <> 0) do
begin
w := w + 1;
if w > 30 then
w := 1;
end;
if i < nmax then
begin
writeln('Planta N§ ',i,' Habitacion N§ ',w,' Esta Libre');
ocupacion := false;
end;
end;

begin
clrscr;
writeln(ocupacion(hab));
readln;
end.

{Si quieres saber el día que queda libre tendrás que tener un record que contenga esa fecha
de alta o sea}

tHabitacion=record
orden:integer;
tipo:(individual,doble);
reservaingreso : array[1..30] of integer;
reservaalta :array[1..30] of integer;
planta: 1..10;
numhab:1..20;
end;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda con un programa!

Publicado por Robert (11 intervenciones) el 22/01/2012 20:19:52
Es que la function tiene que ser obligatoriamente dado un orden y dos días(de entrada y salida), tengo que utilizar lel record de abajo(el que contiene la fecha de ingreso y alta)???
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda con un programa!

Publicado por Robert (11 intervenciones) el 22/01/2012 21:21:13
{La ultima ayuda por favor, a ver que le parece. En el procedure reservar dados dos numero hay que buscar una habitacion libre(devuelve el orden); en el procedure modificar, dadas dos fechas se usa el procedure reservar para reservar la habitación, se tiene que modificar, cambiar a reservado, creo que no esta bien }

Const
nMax=100;


type
tHabitacion=record
orden:integer;
tipo:(individual,doble);
reservaingreso : array[1..30] of integer;
reservaalta :array[1..30] of integer;
planta: 1..10;
numhab:1..20;
end;

type
tHotel=record
habitacion:array[1..nMax] of tHabitacion;
end;

var

ha,diaS,diaE:tHotel;
procedure pInici (var ha:tHotel);

var
i:integer;
begin
i:=1;

for i:=1 to nMax do
ha.habitacion[i].reservaingreso[i]:=0;
ha.habitacion[i].reservaalta[i]:=0;
i:=i+1;
end;


function ocupacion(ha,diaE,diaS : tHotel) : boolean;
var
w, i,s : integer;
begin
ocupacion := true;
i := 1;
w := 1;
write('Introduce el orden:');
read(i);
write('Introduce el dia de entrada:');
read(w);
write('Introduce el dia de salida:');
read(s);
while (diaS.habitacion[i].reservaalta[s]<>0) and (diaE.habitacion[i].reservaingreso[w] <> 0) do
begin
w := w + 1;
if w > 30 then
w := 1
else
if i < nmax then
write('Planta ',i,' Habitacion ',w,' Esta Libre:');
ocupacion := false;
end;
end;


procedure reservar(var ha, diaE, diaS:tHotel);
var
w,s,i:integer;
reser:boolean;
begin
reser:=false;
i := 1;
write('Introduce el dia de entrada:');
read(w);
write('Introduce el dia de salida:');
read(s);
while (diaS.habitacion[i].reservaalta[s]<>0) and (diaE.habitacion[i].reservaingreso[w] <> 0) do
begin
w := w + 1;
if ha.habitacion[i].orden>nmax then
i:=i+1
else
if i < nmax then
reser := false;
end;
end;


procedure modificar(var ha, diaE, diaS: tHotel);
var
w,s,i:integer;
begin
i := 1;
w := 1;
write('Introduce el dia de entrada:');
read(w);
write('Introduce el dia de salida:');
read(s);
while (diaS.habitacion[i].reservaalta[s]<>0) and (diaE.habitacion[i].reservaingreso[w] <> 0) do
reservar(ha,diaE,diaS);
i:=i+1;
end;




begin
pInici(ha);
writeln (ocupacion(ha,diaE,diaS));
reservar(ha,diaE,diaS);
modificar(ha,diaE,diaS);
readln;
end.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda con un programa!

Publicado por ramon (2158 intervenciones) el 23/01/2012 18:41:40
{Fíjate en los cambios realizados con tantas variables como pones la memoria del sistema se
bloqueara ten en cuenta que trabajas con la memoria de pascal no con toda tu memoria y
creas demasiadas variables que con una sobra.}

Const
nMax=100;


type
tHabitacion=record
orden:integer;
tipo:(individual,doble);
reservaingreso : array[1..30] of integer;
reservaalta :array[1..30] of integer;
planta: 1..10;
numhab:1..20;
end;

type
tHotel=record
habitacion:array[1..nMax] of tHabitacion;
end;

var
ha : tHotel;
diaE, diaS : integer;


procedure pInici (var ha:tHotel);
var
w, i:integer;
begin
for i:=1 to nMax do
for w := 1 to 30 do
begin
ha.habitacion[i].reservaingreso[w] := 0;
ha.habitacion[i].reservaalta[w] := 0;
end;
end;


function ocupacion(ha : tHotel) : boolean;
var
w, i,s : integer;
begin
ocupacion := true;
i := 1;
w := 1;
write('Introduce el orden:');
read(i);
write('Introduce el dia de entrada:');
read(w);
write('Introduce el dia de salida:');
read(s);
diaE := w;
diaS := s;
while (ha.habitacion[i].reservaalta[dias]<>0) and
(ha.habitacion[i].reservaingreso[diae] <> 0) do
begin
diae := diae + 1;
if diae > 30 then
diae := 1
else
if i < nmax then
write('Planta ',i,' Habitacion ',diae,' Esta Libre:');
ocupacion := false;
end;
end;


procedure reservar(var ha : tHotel);
var
w,s,i:integer;
reser:boolean;
begin
reser:=false;
i := 1;
write('Introduce el dia de entrada:');
read(w);
write('Introduce el dia de salida:');
read(s);
while (ha.habitacion[i].reservaalta[s]<>0) and (ha.habitacion[i].reservaingreso[w] <> 0) do
begin
w := w + 1;
if ha.habitacion[i].orden>nmax then
i:=i+1
else
if i < nmax then
reser := false;
end;
end;


procedure modificar(var ha : tHotel);
var
w,s,i:integer;
begin
i := 1;
w := 1;
write('Introduce el dia de entrada:');
read(w);
write('Introduce el dia de salida:');
read(s);
while (ha.habitacion[i].reservaalta[s]<>0) and (ha.habitacion[i].reservaingreso[w] <> 0) do
reservar(ha);
i:=i+1;
end;




begin
pInici(ha);
writeln (ocupacion(ha));
reservar(ha);
modificar(ha);
readln;
end.

{mira este proceso y ejecútalo para observa lo que hace}

uses
crt;
Const
nMax = 100;

type
tIndice = 0..(nMax div 10);

tHabitacion = record
orden :integer;
tipo : string[12];
reservaent : integer;
reservasal : integer;
planta : integer;
numhab : integer;
end;

tHotel = record
habitacion : array[1..10] of tHabitacion;
end;

var
hab : array[tindice] of tHotel;
informe : string[50];
w : integer;

procedure pInicio;
var
p, i : integer;
begin
for p := 1 to (nmax div 10) do
for i := 1 to 10 do
begin
hab[p].habitacion[i].reservaent := 0;
hab[p].habitacion[i].reservasal := 0;
hab[p].habitacion[i].orden := 0;
hab[p].habitacion[i].tipo := ' ';
hab[p].habitacion[i].planta := 0;
hab[p].habitacion[i].numhab := 0;
end;
end;

function ocupacion(planta : integer; entra, salid : integer) : boolean;
var
p, i : integer;
plat, habi : string[2];
begin
i := 1;
ocupacion := true;
while i < 10 do
begin
if ((hab[planta].habitacion[i].reservaent = entra) and
(hab[planta].habitacion[i].reservasal = salid)) then
begin
p := i;
i := 10;
end;
i := i + 1;
end;
if ((hab[planta].habitacion[p].reservaent = entra) and
(hab[planta].habitacion[p].reservasal = salid)) then
begin
ocupacion := false;
str(planta,plat);
str(p,habi);
informe := 'Exito Planta ' + plat + ' Habitacion ' + habi;
end
else
begin
ocupacion := true;
informe := 'Fracaso';
end;
end;

begin
clrscr;
pInicio;
hab[5].habitacion[9].reservaent := 12;
hab[5].habitacion[9].reservasal := 20;
for w := 1 to nmax div 10 do
begin
ocupacion(w,12,20);
writeln(' ',informe);
end;
readln;
end.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda con un programa!

Publicado por Robert (11 intervenciones) el 23/01/2012 20:37:32
Yujuuuu!!! Genial! muchas gracias!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar