טוב אז בעייתי היא כזאת
פתרתי כמעט את השאלה במלואה אבל יש לי בעיה קטנה Program BagrutExsercise(input,output); const max=80; num=5; type StringType=array[1..max] of char; NamesType=array[1..num] of StringType; LengthType=array[1..num] of integer; var names:NamesType; l:LengthType; i:integer; {------------------------------------------------------------} Procedure GetString(var name1:StringType;var l:integer); var ch:char; begin L:=0; writeln('Eanter name and in the end write *'); read(ch); while ch <> '*' do begin l:=l+1; name1[l]:=ch; read(ch); end; end;{GetString} {----------------------------------------------------------------} Procedure Swap (var name1:StringType; var name2:StringType); var Temp:StringType; begin Temp:=name1; name1:=name2; name2:=temp; end;{Swap} {------------------------------------------------------------------} Function LessThan(var name1,name2:StringType;L1,L2:integer):boolean; var k:integer; begin k:=1; while(k<L1) and (K<L2) and (name1[k]=name2[k]) do k:=k+1; if name1[k]<name2[k] then lessthan:=true else if (l1<l2) and (name1[k] = name2[k]) then lessthan:=true else lessthan:=false; end; {------------------------------------------------------------} procedure SortByDictionary(var names:NamesType; var l:integer); var index,j,Imin:integer; begin for index:=1 to l-1 do begin Imin:=index; for j:=I+1 to l do lessthan(names[j],names[Imin]); <---- הבעיה היא פה if lessthan=false then Imin:=J; Swap(names,names[Imin]) end end; {-------------------------------------------------------------} Procedure WriteString(name:StringType;l:integer); var index:integer; begin for index:= 1 to l do write(name[index]); end; {------------------------------------------------------------} begin for i := 1 to num do GetString(names,l); SortByDictionary(names,l); for i := 1 to num do writeln(names,l); WriteString(names,length); end. הבעיה מסומנת באמצע התוכנית אני לא יודע איך ממשיכים משם כאמור מטרת התוכנית שלי היא לסדר עשרה מחרוזות של שמות בתוך מחרוזת גדולה בשם NAMES ע"פ סדר מילוני מצפה לתשובה, קובי