» נושאי לימוד
» נושאי לימוד
יום שבת 4 במאי 2024
לולאת WHILE-המשך
דף ראשי  פרק 3 :יסודות שפת פסקל  לולאות  לולאת WHILE  לולאת WHILE-המשך גרסה להדפסה

 לולאת WHILE-המשך

 

דוגמא נוספת למימוש בעזרת פקודת while:

כתוב תוכנית הקולטת מספר ממשי חיובי , ומחשבת את השורש הריבועי שלו.

 

 

הנח כי בקלט לא יהיה מספר שלילי.הדיוק הנדרש בשורש הוא ספרה אחת אחרי הנקודה.

פתרון:

 

program SQUARE_ROOT;

{ תוכנית למציאת שורש של מספר חיובי כלשהו}

var

 X:real;(*המספר שצריך למצוא את השורש שלו*)

 A,B:real; (*  משתני עזר *)

 ROOT:real; (*  תוצאת השורש *)

 FLG:real; (* דגל ליציאה מהלולאה *)

begin

 { קלט }

write('הקש את המספר שהנך רוצה למצוא את השורש  הריבועי שלו');

 readln(X);

 {הצבת ערכים התחלתיים}

 FLG:=1; (*   אפשור כניסה ללולאה *)

 A:=X; (*  נציב ערך עליון לתוצאת השורש *)

 B:=0; (*  נציב ערך תחתון לתוצאת השורש *)

 ROOT := (A+B)/2;

 (*נחפש את השורש בין הגבול העליון לתחתון*)

 (* X  יכול להיות שזהו השורש של *)

 (* ולכן אין צורך להיכנס ללולאה *)

 if ROOT* ROOT > X- 0.1 then

 if ROOT*ROOT < X+0.1 then

 FLG := 0;

    {הלולאה}

 while FLG = 1 do

 (*כל עוד השורש לא בטווח אי הדיוק*)

 begin

    if ROOT*ROOT >X then

       A:=ROOT(*אם גבוה נציבו כערך עליון *)

    else   

       B:=ROOT (*אחרת נציבו כערך תחתון*)

    ROOT :=(A+B)/2;

     (*נחפש שוב את השורש במרכז  הגבולות *)

    if ROOT*ROOT>X-0.1 then

       if ROOT*ROOT < X+ 0.1 then

            FLG := 0;

 end;

 { פלט}

 writeln ( ROOT, ' = ' , X, '  השורש של ');

end.

 

 להורדת הדוגמא לחץ כאן

 

דוגמת ריצה:

 

 

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

 10-03-04 / 22:46  עודכן ,  03-12-03 / 16:24  נוצר ע"י כפיר מרגי  בתאריך 
 לולאת WHILE - הקודםהבא - לולאת REPEAT 
תגובות הקוראים    תגובות  -  0
דרכונט
מהי מערכת הדרכונט?
אינך מחובר, להתחברות:
דוא"ל
ססמא
נושאי לימוד
חיפוש  |  לא פועל
משלנו  |  לא פועל
גולשים מקוונים: 1