Witam. Typy i zmienne są zdefiniowane tak :
type
TDane = record
nazwa : string;
opis : string;
skladniki : array [1..2] of string;
ilosc : array [1..2] of string;
end;
TElemWsk = ^TElem;
TElem = record
dane : TDane;
nast : TElemWsk;
pop : TELemWsk;
end;
var
g : TElemWsk;
o : TElemWsk;
nowy : TElemWsk;
wsk : TElemWsk;
pam : TElemWsk;
l : integer;
k : char;
exit : boolean;
start : boolean;
dane : TDane;
Natomiast procedura odpowiedzialna za dodawanie nowych elementów wygląda tak :
procedure wstaw(var g,o,nowy,wsk : TElemWsk);
var
pom : TElemWsk;
nazwa : string;
opis : string;
skladniki : array [1..2] of string;
ilosc : array [1..2] of string;
i : integer;
begin
ClrScr;
writeln('Podaj nazwe potrawy : ');
readln(nazwa);
writeln('Podaj opis potrawy : ');
readln(opis);
writeln('Podaj kolejno nazwe skladnika i jego ilosc : ');
for i:=1 to 2 do
begin
writeln('Nazwa skladnika nr ',i,'');
readln(skladniki[i]);
writeln('Ilosc skladnika nr',i,'');
readln(ilosc[i]);
end;
pom := g;
new(nowy);
nowy^.dane.nazwa := nazwa;
nowy^.dane.opis := opis;
for i:=1 to 2 do
begin
nowy^.dane.skladniki[i] := skladniki[i];
nowy^.dane.ilosc[i] := ilosc[i];
end;
nowy^.nast := pom^.nast;
nowy^.pop := pom;
nowy^.nast^.pop := nowy;
nowy^.pop^.nast := nowy;
rst(pam,wsk,l,g);
end;
Problem w tym, że nie wiem jak zrobić rzecz następującą.
Otóż części procedury odpowiedzialnej za wprowadzanie przez użytkownika nowych danych przy składnikach i ich ilości zastosowałem pętle for :
writeln('Podaj nazwe potrawy : ');
readln(nazwa);
writeln('Podaj opis potrawy : ');
readln(opis);
writeln('Podaj kolejno nazwe skladnika i jego ilosc : ');
for i:=1 to 2 do
begin
writeln('Nazwa skladnika nr ',i,'');
readln(skladniki[i]);
writeln('Ilosc skladnika nr',i,'');
readln(ilosc[i]);
end;
I dajmy na to potrawa składa się z 1 a nie 2 skłądników. Chodzi mi o to, że np. przy drugim składniku pozostawiamy puste pole naciskamy enter i przeryw mi pętle - jak mam to zrobić. Bardzo prosze o pomoc.
Z góry dziękuję za pomoc. Pozdrowienia
Stosowałem :
while skladniki[i] <> ' ' do
begin
.
.
.
end;
repeat
begin
.
.
.
end;
until skladniki[i] = ' ';
if skladniki[i] = ' ' then
break;