פורסם 2006 בינואר 419 שנים program t;type darray=array [1..5,1..5] of integer; function ipus(ar:darray):integer; var i,j:integer; begin for i:=1 to 5 do for j:=1 to 5 do ar[i,j]:=0 end; procedure getnums(var ar1:darray); var i,j:integer; begin for i:=1 to 5 do for j:=1 to 5 do read(ar1[i,j]) end; procedure print_col(ar2:darray); var i,j:integer; begin for j:=1 to 5 do writeln(ar2[i,j]) end;vari,j,b:integer;ar:darray;beginipus(ar); getnums(ar); b:=1; i:=1; while i<=5 do b:=1; for j:=1 to 5 do if (ar[i,j]<5) OR (ar[i,j]>10) then b:=1 else b:=2; if b=2 then print_col(ar); i:=i+1;end.------------ויתרתי על Bכבוליאני כי לא הסתדר לי משהואז עכשיו הבעיה שאני רושם לא לקלוט את כל המספרים אבל הוא פשוט לא מבצע כלום.הנה המשימה שהיא אמורה לבצע:כתוב תוכנית הבודקת עבור כל טור במערך אם הוא מכיל את כל המספרים מ-5 עד 10ומדפיסה את הטורים המקיימים תנאי זה.תודה לכל המגיבים.
פורסם 2006 בינואר 419 שנים (עכשיו זה אני עם המשתמש הרגיל שלי)למה? היא דווקא כן מקבלת ... זאת פרוצדורה שמדפיסה ושמתי אותה בתוך לולאה של J מ 1 עד 5 את הזימון של הפרוצדורה כנראה שהבעיה העיקרית שם שאני לא יודע איך עושים שהתוכנית תבדוק בכל המודה את התנאי...הבעיה שלי שם זה שאני חושב.. אחרי שזה עשה את הבדיקה שהמספרים בעמודה לא טוביםאז איך אני שומר את זה... חשבתי בבוליאני אבל לא הלך לי... אני לא יודע מה לעשות..ועשיתי את ה ן+ כדי לעבור שורה הלאה כדי לבדוק את העמודה הבאה
פורסם 2006 בינואר 519 שנים טוב, אני אנסח את עצמי מחדש:print_col לא מקבלת i. במקום זה, היא מצהירה על i משלה (שלא מאותחל, ולכן יכיל סתם ערך אקראי כלשהו) ומשתמשת בו.במבט יותר מעמיק, הנה הבעיה שלך - לא השתמשת בכלל ב-begin ו-end בתוך הלולאות שבתכנית הראשית.מה שקורה הוא שבתוך ה-while נמצאת אך ורק השורה b:=1, ושאר השורות נמצאות מחוץ לו.בגלל זה, i תמיד נשאר 1 ולא יעבור את 5, ולכן תישאר תקוע בלולאה לנצח...חוץ מזה, שים לב שאתה לא בודק את העמודה מכילה את כל המספרים מ-5 עד 10, אלא אם כל המספרים שבעמודה הם בין 5 ל-10 (שים לב להבדל...)
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.