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

הצהרות TYPE

 

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

בעיה זו נוכל לפתור על ידי הצהרת type.

 

program TYPE;

type

   ARRAY_OF_CHAR= array [1..100] of char;

var

   ARRAY_1:ARRAY_OF_CHAR;

 

procedure FIRST (ARRAY_2: ARRAY_OF_CHAR);

begin

   ·       

   ·       

   ·       

   ·       

end;

 

(**********התוכנית הראשית*************)

 

begin

   procedure FIRST(ARRAY_1);

   ·       

   ·       

   ·       

end.

 

 

כלומר מיד לאחר כותרת התוכנית ולפני הגדרת המשתנים בתוכנית

(var), קיימת ההצהרה type (מלה שמורה) ולאחריה הכרזנו

כי המלה CHAR_OF_ARRAY  כמוה כצירוף המילים  " array[1..100] of char ".

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

בדרך זו נפתור את הבעיה של העברת מערך לתת-תוכנית כיוון שיש תחליף למשפט על ידי מלה אחת .

 

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

 

דוגמא:

כתוב תוכנית הקולטת למערך 5 ערכים ומדפיסה את כל המספרים הקטנים מהממוצע.

 

פתרון:

 

program  USE_TYPE;

   { תוכנית לקליטת עשרים מספרים והדפסת אלו הקטנים מהממוצע }

type

   (* var – הצהרה שתחליף את ההגדרה ב *)

   ARRAY_5_REAL = array[1..5] of real;

var

   ARRAY_OF_NUM:ARRAY_5_REAL;

   (* המערך לקליטת 5 המספרים *)

   AVERAGE: real; (* הממוצע *)

 

procedure INPUT( var INPUT_ARRAY:ARRAY_5_REAL);

   { תת תוכנית לקליטת מספרים למערך }

   (* var INPUT_ARRAY – כדי שנוכל להחזיר ערכים var מוגדר עם  *)

var

   I:integer;  (* מונה הלולאה *)

begin

   for I:=1 to 5 do

   begin

      write ('Enter the ', I, 'th number: ');

      readln (INPUT_ARRAY[I]);

   end;

end;

 

procedure AVE_ARRAY(AVE_ARRAY: ARRAY_5_REAL; var AVE:real);

   { תת תוכנית לחישוב הממוצע }

   (* AVE_ARRAY- המערך שיש למצוא את ממוצע הערכים המאוחסנים בו *)

   (* var AVE – החזרת הממוצע *)

var

   I: integer; (* מונה הלולאה *)

   SUM: real; (* צובר הסכום *)

begin

   SUM:= 0;  (* איפוס הצובר *)

   for I:=1 to 5 do SUM:=SUM + AVE_ARRAY[I];

       AVE:=SUM/5;   (* חישוב הממוצע *)

end;

 

procedure OUTPUT(OUTPUT_ARRAY:ARRAY_5_REAL; AVERAGE:real);

   { תת תוכנית לביצוע פלט של המספרים הקטנים מהממוצע }

   (* OUTPUT_ARRAY - מערך המספרים *)

   (* AVERAGE – ממוצע המערך *)

var

    I: integer;

begin

    for I:=1 to 5 do

        if OUTPUT_ARRAY[I] < AVERAGE then

    writeln (OUTPUT_ARRAY[I],  ' is small then average');

end;

 

(**********התוכנית הראשית***********)

begin

    INPUT (ARRAY_OF_NUM);   (* קלט *)

    AVE_ARRAY(ARRAY_OF_NUM, AVERAGE);   (* ממוצע *)

    OUTPUT(ARRAY_OF_NUM, AVERAGE); (* פלט*)

end.

 

 

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

 

דוגמת ריצה:

 

 

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

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

 

הצהרת type חיונית גם להעברת מחרוזות מכיוון שמחרוזת מוגדרת ביותר ממילה אחת:

   (string[אורך המחרוזת ])

*  באמצעות הצהרת type  אפשר להעביר מערכים ומחרוזות לתת-תוכנית.

*   הצהרת type  משמשת את כל התת-תוכניות בהגדרת סוג המשתנה.

*   הצהרה ב-type יכולה להחליף כל הגדרה של סוג משתנה.

*   כתיבת התוכנית ותכנונה מבוצעים מלמעלה למטה.

*   שיטה זו נקראת TOP-DOWN.

 

לצורך כתיבה ופיתוח נוחים יותר של התוכנית, ניתן להצהיר גם על קבועים בראש התוכנית או בראש כל תת-תוכנית.

הצהרה על קבועים אלו נכללת ב-const.

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

 

 11-03-04 / 23:16  עודכן ,  03-09-03 / 15:43  נוצר ע"י כפיר מרגי  בתאריך 
 פונקציות המוגדרות על ידי המתכנת - הקודםהבא - רשומות 
תגובות הקוראים    תגובות  -  0
דרכונט
מהי מערכת הדרכונט?
אינך מחובר, להתחברות:
דוא"ל
ססמא
נושאי לימוד
חיפוש  |  לא פועל
משלנו  |  לא פועל
גולשים מקוונים: 1