26-07-2005, 18:19
|
|
|
חבר מתאריך: 16.07.03
הודעות: 681
|
|
רקורסיה פשוטה בפסקל
לקחתי על עצמי ללמוד רקורסיה לבד בחופש, הבנתי פחות או יותר את הקטע של העצים.
ניסיתי לעשות פרוצדורה רקורסיבית (מקרה פרטי של 3) אשר תמצא את השלשות לסכום מסוים,
שבמקרה הזה הוא 8, הבעיה היא שהתכנית מדפיסה לי כל שלשה פעמיים,
הנה הקוד, אז מה הבעיה ?
קוד:
procedure Hishuv (mat:arraytype; i:integer);
var
sum:integer;
b:integer;
begin
sum:=mat[1];
if mat[i]<3 then
begin
mat[i]:=mat[i]+1;
hishuv(mat,i);
end;
if i<=3 then
hishuv(mat,i+1);
for b:=2 to 3 do
sum:=sum+mat[b];
if sum=9 then
begin
writeln (mat[1],' ',mat[2],' ',mat[3]);
readln;
end;
end;
_____________________________________
נערך לאחרונה ע"י אלכס123 בתאריך 26-07-2005 בשעה 18:35.
|