» נושאי לימוד
» נושאי לימוד
יום ראשון 22 בדצמבר 2024
שימוש בדגל
דף ראשי  פרק 3 :יסודות שפת פסקל  משפטי תנאי וברירה  שימוש בדגל גרסה להדפסה

שימוש בדגל

 

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

 

דוגמא לשימוש יעיל בדגל:

 

כתוב תת תוכנית הפותרת את הנוסחא:

 

 

נניח לצורך הפתרון כי קיימת תת-תוכנית אחרת הקולטת את המשתנים הממשיים  A,B,C.

 

פתרון:

 

בנוסחא זו יש לבצע שתי בדיקות חשובות:

1.  אם A שונה מ- 0?

2.     האם הסכום A+B  שונה מ-0?

אחרת,אם אחד מ-2 הביטויים יהיה שווה ל-0 נקבל תוצאה סופית בלתי מוגדרת (כתוצאה מחלוקה ב-0). במקרה כזה, המחשב מפסיק את הביצוע התקין של התוכנית ומודיע על שגיאה חמורה.

תת התוכנית הבאה מונעת חלוקה ב-0 על ידי בדיקה:

 

program CALC;

var

A,B,C:real;  (*  משתני הנוסחא *)

FLG: integer; (*משתנה הנקרא דגל: משתנה עזר לתנאי החלוקה באפס*)

  •   קטע הבא לפני תת תוכנית זו

procedure FORMULA;

   {  תת תוכנית הפותרת את הנוסחא}

begin

   if A<> 0 then    if (A+B) <> 0   then FLG :=1;

                                    else  FLG:=0;

            else FLG := 0;

   (*                      הוא משתנה המוגדר כשלם  FLG  *)

   (* כאשר 1 מציין תקינות ו-0 מציין תוצאה בלתי מוגדרת  *)

   if FLG = 1 then

   begin

   (*  נקודה-פסיק בסיום כל הוראה בתוך הבלוק הפנימי *)

      X:= (A+B*(2+C*C/A)+B)/(A+B);

      writeln(X, ' = תוצאת הנוסחא');

   end else writeln (' פתרון הנוסחא בלתי-מוגדר');

end;

  •   קטע הבא אחרי תת תוכנית זו

 

 

כאשר הטעות בתוכנית מסוימת אינה נובעת מתחביר לקוי (לדוגמא חלוקה ב-0),כלומר, התוכנית עוברת הידור כנדרש, אך לא מבצעת את הדרוש או מתגלה תקלה תוך כדי ריצה. הטעות נחשבת כטעות לוגית (טעות בהיגיון התוכנית). רוב עבודתו של המתכנת היא בהיגיון ולא בתחביר.

 

טעות שאינה תחביר ומתגלה רק בהרצה היא טעות לוגית!

 

 26-02-04 / 21:14  עודכן ,  31-08-03 / 22:30  נוצר ע"י ליזי פרגו'ן  בתאריך 
 בלוקים פנימיים בלולאת if-המשך - הקודםהבא - לולאות 
תגובות הקוראים    תגובות  -  0
דרכונט
מהי מערכת הדרכונט?
אינך מחובר, להתחברות:
דוא"ל
ססמא
נושאי לימוד
חיפוש  |  לא פועל
משלנו  |  לא פועל
גולשים מקוונים: 3