עבור לתוכן

שיעור ראשון בטורבו פסקל!!!

Featured Replies

פורסם

לא בכל ביטוי בוליאני.

רק כשאתה משתמש בand/or אתה צריך לשים את זה בסוגריים ככה:

if (a>b and b>c) then

פורסם

המספרים 55 77 78 86 לא נכללים בהגדרות שלך.

למה להגידיר את המשתנה b ו c כשאתה לא משתמש בהם?????

פורסם

רואים שזה אכן "שיעור ראשון".

יש לך פה חוסר יעילות מטורף בכתיבה ובריצת התוכנית.

בכל מקרה, ברגע שאתה מכניס ביטוי OR/AND עלייך להשתמש בסוגריים כפי שציינו כאן.

יהיה לך יותר פשוט להשתמש כך (לדעתי) :

(a>x) and (a<y)

למשל..(X וY מספרים שונים).

בקשר לחוסר יעילות. אתה מקבל מספר מין המשתמש ובמהלך התוכנית שלך אתה בודק אותו הרבה פעמים

כשלא צריך.

לפעמים התשובה תיהיה האפשרות של הIF הראשון, אך בכל זאת התכונית תבדוק את שאר האפשרויות של הIF,

מכיוון שאינך משתמש בפעולת הELSE.

כשאר תוסיף ELSE, התכונית תרוץ עד שמשפט תנאי כלשהו יתאים לה ולא תמשיך בבדיקת משפטי התנאי, אלא תזרק

החוצה מהIF.

לדוגמא לפי התוכנית שלך - אם הקלט יהיה 30, התוכנית בהתחלה תבדוק אם הקלט הוא קטן מ55 ואכן 30 קטן

מ55 ויהיה רשום למשתמש שזה ציון גרוע. ואז התכונית תמשיך לתנאי הבא, היא תבדוק אם 30 קטן 70 ואז מ80 ואז מ90

או אם 30 גדול מ100. וזה חסר משעמות וביזבוז זמן של ריצה. מסכים איתי?

לכן כאשר תוסיף ELSE התכונית תמשיך לתנאי הבא אך ורק אם התנאי הנוכחי אינו מתקיים.

כלומר אם קיבלנו 70 נניח כפלט ואנו משתמשים בELSE.

אז התוכנית תתחיל ותבדוק אם 70 קטן מ50 וזה לא נכון ולכן תמשיך לELSE ותבדוק אם 70 קטן מ60.

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

אם 70 קטן ממספרים אחרים, מכיוון שהגיעה לתנאי של TRUE (תנאי מתקיים).

יש מבין קצת? ;)

ארכיון

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

דיונים חדשים