Mam zadanie na programowanie strukturalne i obiektowe.
Napisałem program.
----------------------------------------
program hotel;
uses
crt;
type
Trozmiar = (ogromny, duzy, sredni, maly);
Trodzaj = (vip, zwykly);
Twyposazenie = array[1..10] of String[30];
TPokoj = record
Lazienka : String[3];
Sniadanie : String[30];
Obiad : String[30];
Kolacja : String[30]
Rozmiar : Trozmiar;
Rodzaj : Trodzaj;
Lozko : String[15];
Ilosc : String[2];
DodatkoweWyposazenie : Twyposazenie;
end;
var
Pokoj : TPokoj
Znak : Char;
i : Byte;
Wyposazenie : String[30];
begin
ClrScr;
write('Czy w wyposazeniu ma byc lazienka? (TAK/NIE): '); readln(Pokoj.Lazienka);
repeat
write('Podaj rodzaj pokoju("v" - vip, "z" - zwykly): ');
readln(Znak);
until(UpCase(Znak) in ['v', 'z']);
case UpCase(Znak) of
'v' : Pokoj.Rodzaj := vip;
'z' : Pokoj.Rodzaj := zwykly;
end;
repeat
writeln('Podaj rozmiar pokoju ("o" - ogromny, "d" - duzy, "s" - sredni, "m" - maly.');
readln(Znak);
until (UpCase(Znak) in ['o', 'd', 's', 'm']);
case UpCase(Znak) of
'o' : Pokoj.Rozmiar := ogromny;
'd' : Pokoj.Rozmiar := duzy;
's' : Pokoj.Rozmiar := sredni;
'm' : Pokoj.Rozmiar := maly;
end;
write('Co zyczysz sobie na sniadanie?: '); readln(Pokoj.Sniadanie);
write('Co zyczysz sobie na obiad?: ' ); readln(Pokoj.Obiad);
write('Co zyczysz sobie na kolacje?: '); readln(Pokoj.Kolacja);
write('Ilu osobowe lozka chcesz miec w pokoju(1/2)?: '); readln(Pokoj.Lozko);
write('Ile lozek chcesz miec w pokoju?(cyfra): '); readln(Pokoj.Ilosc);
i :=1;
repeat
write('Podaj kolejne dodatkowe wyposazenie pokoju (Enter - Koniec): ');
readln(Wyposazenie);
Pokoj.DodatkoweWyposazenie[i] := Wyposazenie; Inc(i);
until (i>10) or (Wyposazenie='');
ClrScr
with Pokoj do
begin
writeln(Lazienka, ', ', Rodzaj, ', ', Rozmiar);
writeln('Sniadanie: ',Sniadanie, ', Obiad: ',Obiad, 'Kolacja: ',Kolacja);
case Rodzaj of
vip : write('Pokoj vip');
zwykly : write('Pokoj zwykly');
end;
case Rozmiar of
ogromny : writeln(' ogromny');
duzy : writeln(' duzy');
sredni : writeln(' sredni');
maly : writeln(' maly');
end;
for i := 1 to 10 do
if (DodatkoweWyposazenie[i] <> '') then
writeln(' - ', DodatkoweWyposazenie[i];
end;
readln
end.
---------------------------------------------------
FPC pokazuje mi błąd.
Prosiłbym o szybką pomoc, ponieważ jest mi to potrzebne na najbliższą lekcję w środę na zaliczenie. :)
Jeśli trzeba proszę nanieść zmiany tak aby program zadziałał.
Polecenie zadania brzmi: Napisz program, który wczyta dane dotyczące hotelu do zmiennej typu rekordowego, a następnie wydrukuje jego "metryczkę".
" Life is not a problem to be solved but a reality to be experienced! "
© Copyright 2013 - 2024 KUDO.TIPS - All rights reserved.
program hotel;
uses
crt;
type
Trozmiar = (ogromny, duzy, sredni, maly);
Trodzaj = (vip, zwykly);
Twyposazenie = array[1..10] of String[30];
TPokoj = record
Lazienka : String[3];
Sniadanie : String[30];
Obiad : String[30];
Kolacja : String[30];
Rozmiar : Trozmiar;
Rodzaj : Trodzaj;
Lozko : String[15];
Ilosc : String[2];
DodatkoweWyposazenie : Twyposazenie;
end;
var
Pokoj : TPokoj;
Znak : Char;
i : Byte;
Wyposazenie : String[30];
begin
ClrScr;
write('Czy w wyposazeniu ma byc lazienka? (TAK/NIE): '); readln(Pokoj.Lazienka);
repeat
write('Podaj rodzaj pokoju("v" - vip, "z" - zwykly): ');
readln(Znak);
until(LowerCase(Znak) in ['v', 'z']);
case LowerCase(Znak) of
'v' : Pokoj.Rodzaj := vip;
'z' : Pokoj.Rodzaj := zwykly;
end;
repeat
writeln('Podaj rozmiar pokoju ("o" - ogromny, "d" - duzy, "s" - sredni, "m" - maly.');
readln(Znak);
until (LowerCase(Znak) in ['o', 'd', 's', 'm']);
case LowerCase(Znak) of
'o' : Pokoj.Rozmiar := ogromny;
'd' : Pokoj.Rozmiar := duzy;
's' : Pokoj.Rozmiar := sredni;
'm' : Pokoj.Rozmiar := maly;
end;
write('Co zyczysz sobie na sniadanie?: '); readln(Pokoj.Sniadanie);
write('Co zyczysz sobie na obiad?: ' ); readln(Pokoj.Obiad);
write('Co zyczysz sobie na kolacje?: '); readln(Pokoj.Kolacja);
write('Ilu osobowe lozka chcesz miec w pokoju(1/2)?: '); readln(Pokoj.Lozko);
write('Ile lozek chcesz miec w pokoju?(cyfra): '); readln(Pokoj.Ilosc);
i :=1;
repeat
write('Podaj kolejne dodatkowe wyposazenie pokoju (Enter - Koniec): ');
readln(Wyposazenie);
Pokoj.DodatkoweWyposazenie[i] := Wyposazenie; Inc(i);
until (i>10) or (Wyposazenie='');
ClrScr;
with Pokoj do
begin
writeln('Lazienka: ', Lazienka, ', Rodzaj: ', Rodzaj, ', Rozmiar: ', Rozmiar);
writeln('Sniadanie: ',Sniadanie, ', Obiad: ',Obiad, ' Kolacja: ',Kolacja);
case Rodzaj of
vip : write('Pokoj vip');
zwykly : write('Pokoj zwykly');
end;
case Rozmiar of
ogromny : writeln(' ogromny');
duzy : writeln(' duzy');
sredni : writeln(' sredni');
maly : writeln(' maly');
end;
for i := 1 to 10 do
if (DodatkoweWyposazenie[i] <> '') then
writeln(' - ', DodatkoweWyposazenie[i]);
end;
readln;
end.
+ rada za darmo, czytaj błędy kompilatora. U ciebie nie chciało się skompilować bo zapomiałeś o średnikach na końcu operacji.
+ UpCase używasz a potem porównujesz wynik z małymi literami. czyli nieskończona pętla