צריך עזרה בפסקל

Gal Radcliffe

New member
צריך עזרה בפסקל

קיבלתי תרגיל לעשות ומשום מה המערך החד מימדי מתאפס אחרי הפרוצדורה של הקליטה, מישהו יודע למה? (מצ"ב התוכנית).
program string3; const n=2; type arr=array[1..n] of integer; var st:string; sod:arr; i:integer; function bdikat_tkinut(st1:string; sodi:arr):boolean; var i,sum:integer; degel:boolean; begin sum:=0; for i:=1 to n do begin writeln(sodi[n]); sum:=sum+(sodi[n]); end; writeln('sum is',sum); writeln('length is',length(st1)); if sum=length(st1) then degel:=true else degel:=false; bdikat_tkinut:=degel; end; procedure kelet(var st1:string; sodi:arr); var i:integer; begin writeln('enter array'); for i:=1 to n do readln(sodi); writeln('enter string'); readln(st1); { for i:=1 to n do writeln(sodi); } end; procedure decode(st1:string; sodi:arr); var i:integer; st2:string; begin for i:=1 to n do begin st2:=copy(st1,1,sodi); delete(st1,1,sodi); write(st2,' '); end; end; begin{main} kelet(st,sod); if bdikat_tkinut(st,sod)=true then decode(st,sod) else writeln('imperfection'); end.
 

Edo Reshef

New member
Small bug

Hi It's simple, change: procedure kelet(var st1:string; sodi:arr); to: procedure kelet(var st1:string; var sodi:arr); This way you pass the data refearce and not a data copy to the procedure. Have Fun!​
 
sod הוא מערך שאתה משנה אותו ב

פרוצדורה ולכן הוא מקבל Var ברשמת הפרמטרים שלה.
 
למעלה