למי שעדיין ער - צריך את עזרתכם בבדיקת תוכניות שלי. - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

למי שעדיין ער - צריך את עזרתכם בבדיקת תוכניות שלי.


GNU

Recommended Posts

אני צריך את התשובה עד הבוקר, אז אם יש מישהו שיכול לבדוק את התרגיל ולתת לי תשובה כמה שיותר מהר אני אשמח.

התוכנות של הפסקל במחשב שלי לא עובדות( dev ו turbo pascl) לא יודע למה ואין לי זמן לבדוק למה.

אני צריך שתאשרו לי האם הפתרונות שכתבתי נכונים:

1) כתוב פונקציה רקורסיבית המקבלת מערך וגודל המערך ומחזירה את האיבר הגדול במערך.

הפתרון שלי:

function f(a:vec; n:integer);
begin
if n=1 then
f:=a[n]
else
if a[n]>f(a,n-1) then
  f:=a[n];
end;

2) כתוב פונקציה רקורסיבית המקבלת מערך, גודל המערך ומספר נוסף, ומחזירה כמה אברים במערך גדולים מהמספר הנוסף.

הפתרון:

function f(a:vec; n,x:integer);
begin
if n=1 then
if a[n]>x then
  f:=1
else
  f:=0
else
if a[n]>x then
  f:=1+f(a,n-1,x)
else
  f:=0+f(a,n-1,x);
end;

תודה.

נ.ב

ל-2 עשיתי טבלת מעקב ויצא לי בסדר, בקשר ל-1 אני לא בטוח אם הכתיבה נכונה.

קישור לתוכן
שתף באתרים אחרים

בהנחה שב המערכים מתחילים ב 1 (כבר לא זוכר)...

בכל מקרה, בתוכנית 1 יש לך בעיה, F לא תמיד יחזיר ערך (ב IF השני אם A[N] קטן/שווה מ F).. תכניס את התוצאה של F(A,N-1) למשתנה, ותבדוק מולו ותחזיר אותו אם צריך..

קישור לתוכן
שתף באתרים אחרים

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

×
  • צור חדש...