- שנה: 1989
- מחבר: מיכאל יסטר
- מו"ל: אופוס הוצאה לאור
- פורמט: ספר
- נמסר ע"י: אפי קאופמן
- תגיות:
OCR (הסבר)
כולל גירסה 5.5
אופוס הוצאה לאור בע"מ
0080% 0080 099 00-70 א
+
טורבו פסקל
המדריך השלם.
כולל גירסה 5.5
שר אכ
מאת מיכאל יסטר
אופוס הוצאה לאור בע"מ
ספר זה תורגם מ-
1 ססמגוי? שתנפטס
פותח על-ידי חברת ת0ס861תסק-:ס6 .006
מיכאל יסטר
1 ססעטץ +0 5.5 ב510ת6? תס 8566 18 נבּספבע ססתטץ? שתנפס
0 אמפפד
'ְ ת201610 סהַבּגוטת18 ב115צת₪ 81ת0:141
55ת19ת 11ב
מס2861סק:ס0 מט00 עפ 1989 (6) %6ת9נ2עססס
צעמ 08ת115מטע ת0ס₪01%1 סִהַבגושת13 :מס
9 (ס) 0002146 .1506 685:ע 0205
תרגום:
רות שדר
הוצא לאור ב-1990 על-:ד<
אופוס הוצאה לאור בע"מ
הודפס בדפוס טופ-פרינט בע"מ
(6) כל הזכויות למהדורה העברית שמורות
ל"אופוס" הוצאה לאור בע"מ ת.ד.65088, ת"א 61650. אין להעתיק או
לשכפל ספר זה או קטעים ממנו בשום צורה ובשום אמצעי אלקטרוני או
מכני, | לכל מטרה שהיא או לעשות בו שימוש מסחרי כלשהו, לרבות
צילוס והקלטה, ללא אישור בכתב מהמוציאים לאור.
על המחבר? =
מיכאל יסטר
במשןך עשר השנים האתחונות, מיכאל *יסטר לקת חלק בתיכנון, בפיתות
ובניהול מערכות פיננסיות. בעל תואר מסטר בכלכלה ו-.5 .א במדעי
המחשב, לימד וערך קורסים בכלכלה ובעיבוד מערכות, היום מיכאל ייסטר
משמש כיועץ עצמאי ומתגורר בלוס אנג'לס קליפורניה. =
אל הקורא!
. לנוחיות * הקורא בקובצ הספרים של טורבו פסקל, חולק הספר לפי הנושאים
הבאים:
ספר ראשון - חלק א' הכרת טובו פסקל
ספר שני = = חלק ב' התכנות
ספר שלישי - חלק ג' תכנות מתקדם
| חלק ד' נספחים
0 זו כוללת חומר עזר רב,. יש בה טבלאות, תרשימים,
פונקציות ודוגמאות של טובו פסקל.
אנו מקווים שתימצא/י בספרים אלו ואתרים את מירב התמיכה
לעבודה בתוכנות המחשב השונות, ספרים נוספים בהוצאתנו:
תכנות בשפת פרולוג
3 8-08 - המדריך השלם
43 8 המדריך המהיר
אא 8 המדריך למתתילים
המדריך לניהול דיסק קשיח
לוטוס 1-2-3 המדריך המהיר
המדריך לאוטוקאד גירסה 9.0
9 המדריך המהיר
רשימת
והעזרה
התוכן
הנושאים שבספר
5 ל שש 0 לש רקי
חלק א'
חלק ב'
.5% % 4( 4% ה- .| + 4% . . ₪ . . . . . +( % 1
הכרת טורבו 059קל........ 50.2.0040
פרק
פרק
פרק
פרק
פרק
פרק
פרק
פרק
60 1 0 ₪ ₪6 ₪ =
התכנות
פרק 9
פרק 10
פרק 11
פרק 12
פרק 13
פרק 14
צעדים ראשונים בטורבו פסקל...... ...70500025
המבנה של תוכנית טורבו פסקל .... ...02205 39
נתונים וטיפוסי נתונים ...ה 0 0-ה
3
ביטויים, פעולים ופועלים .0( |( % % 0000300000 % 5 1
פרוצדורות ופונקציות .-%* ן''*"ה=התתסחת2₪ . . 0 .(-%
מבני נתונים דינמיים ...........
יחידות .| 5 % % .+ % 4% "₪ .-%- > % .| %- 5% %-% 6 .*
ניפוי שגיאות בתוכניות
.ליית-
.ל..'*"התתתת=ת=ה.
קלט מהמקלדת ...........5..
הצוגת 0000 ₪ 4 0
הצננה יגרםי :שיש 6 שר 0 6 שי
פניה ל-208 4 :4:9 4 4 ₪ ₪ 6 2
טיפול בקבצים 2 .+( % . . . 4( 4% . . .(-%
ניהול ספריות ...... ...1.5
ו
חלק די
פרק 15
פרק 16
פרק 17
פרק 18
פרק 19
שי ל 6 ל ו 6
ה-3105, 205 ושפת אסף (צז ופפ ת) |
ה-8087 והתקנים תיצוניים. ..1....
שירות 5.0005 ₪ 0-8 2
תוכנית תושבות בזיכרון.
. 4% + (|. % 6.
נספחים. ןןליפ*תתתסתסת₪?₪ " ןיי *"ת-
פרוצדורות ופונקציות . .+*............1.
הוראות המהדר 4 9 6%
תוספת מהדורה 5 .55
מ 0 2
4
.
.
.
.
.
.
₪
.
.
.
.
.
3
15
205
209
203
205
207
127
13
127
2107
7
299
27
5
1
177
5
7
3
5
3
טורבו פסקל המדריך השלם
התוכן
מבוא .. 9 52 שש 5-6 שר פב ₪ 7 שש 2-6 1
טורבו פסקל 5.0 = 8 שר 4 1
למי מיועד הספר . 1
מה כולל הספר .. ו לי 2
חלק א הכרת טורבו פסקל 8 ב
פרק 1 צעדים ראשונים בטורבו פטקל 0
חבילת טורבו פסקל ופ שוש :6 וש שש 5005 בש
הכנת התקליטונים. ..... יש שש ₪ 5-0 ₪ ₪ פי .2-5 10
התקנת טורבו פסקל 5.0 0 ל ששל ב 6 10-06
התקנה בדיסק קשיח באמצעות אאא ..ז,זתיפוד 1[
התקנה בדיסק קשיח ללא ₪אט.זדתי'פווד 1
התקנה בתקליטונים באמצעות אאא..זתעפו1. ......... 16
התקנה בתקליטון ללא אאאטא..זיזתייפוד ש.י 30
קריאת קבצי ארכיב 0 שש מ ששכ רש שי כ 1
התאמת המערכת לטורבו פסקל 5.0 ו
הפעלת טורבו פסקל 5.0 0
הפעלות טורבו פסקל במערכות בעלות דיסק קשית 2 2
הפעלת טורבו פסקל במערכות עם תקליטונים .......... 21
מסכי התפריט של טורבו פסקל ₪2 2-2 22
שלבים ביצירת תוכנית טורבו פסקל שש כ שיש 1 6 20
הקשה ועריכה של תוכנית 5 ב 2
הפעלת התוכנית וש שש .סטש 6 06 2 שי שש ו 2
שמירת התוכנית ששל 6/8 ובס שו שכפ ה 7 ו 20
טעיט תהי. .5 שי שי ₪ שש 2.6 06 5 שר 2-65 30
הפעלת התוכנית ישירות מתוך 205 0.0 25 .יב
סיכום 75 068005 00 ש- 2 50 06 בלב 0 שש 2 37
פרק 2 המבנה של תוכנית טורבו פטקל 0 0 39
מהי שפת המחשב? שש ₪ שרפ מב םש בכ 39
מהו מהדר? 0 שש שסי 50 שק שו סוס 00 8 סש סיס שר 50-26
מרכיבי השפה
מלים שמורות
מזהים ....
תווים. ....
מחרוזות . . .
מספרים ...
.
סמלים.......
אטימונים ומפרידים .
הערות .............
הארגון של תוכנית פסקל. .....
חלקי הדיבר של פסקל ....
החלקים העיקריים של תוכנית
תצורה כללית ...
תוכנית לדוגמה ..
הכרזות הנתנים. .........
הכרזות על תויות. ....
הגזדרת קבועים. ......
ביטויים קבועים. .....
קבועים עם הגדרת טיפוס.
הגזרת טיפוטים . .....
הכרזות על משתנים. ...
הוראות התוכנית. -......+*.......
| הוראות פשוטות והוראות מורכבות. .
משפט השמה (+תספמתשנפפת) ..
.
משפט %5). ך תת
משפט ספ...סי'תאספ/ סי'...יצסץ ...
משפט 0 ךבּיי הת
משפט ₪56.. מסחיי.. 15
משפט 1ג6ת)...הּססס
משפט סם... 116מז. .5( ₪
משפט מגח. 0'%"9"---
פרוצדורות ופונקציות .-.....
סטיכום 5000000000
,
8
התוכן
פרק 3 נתונים וטיפוטי נתתנים -..........5 202622225 73
אינטגרלים. ....... ...7422222222
האריטמטיקה של האינטגרלים ..... ...7500220200
טורבו פסקל המדריך השלם
השימוש בטיפוסי האינטגרלים ..................
מספרים ממשיים. ...ל
טיפוסים בולאניים (מ200108). ...
טיפוסי תווים (2ע8ם0). ........
טיפוסי מחרוזות (,ַם9621). .....
טיפוסים ממוספרים (360:סהגוות).
טיפוסי תת-תתום (פַהַמ8עפט9) ...
טיפוסי קבוצה | (56%6) 0
מצביעים (8ע66ת1סע). .....
מערכים (פ8צעעמת) .......
רשומות (פ68עסספ). ......
טיפוס קובץ (116ע). ..
.
.
4
טיפוס הפרוצדורה (28גו0000)
סיכום ןתש
פרק 4 ביטויים פועלים ופעולים .......2531 1
.
4
80 ...4.
פועלים (פעס628%ק0) ופעולים (65מ628ק0) - סקירה כללית. ..
ניתות הפעולים (08ת8תסק0)..................
פועלים חשבניים ......+....+...+......
פועלי הזזת טיביות (82146) .......+........
פועלים בולאניים (ת200108)...............
פועלים לוגיים ןנייפ*"הההתת==₪ . ךלנ תת
פועלי סיביות ךיייהה=-הםּסו:'*>התששסש%'ש
פועלים יחסיים (ַתסנשבַָּפַת). ..............
פועלים על קבוצות .......
פועל הכתובות. .........
פועל השרשור. .........
סיכום ..............
פרק 5 פרוצדורות ופונקציות ה הה'פסההסת
.
.
.
.
.
.
.
.
.
.
.
.
*. 6000000000
4006000000 00 (0
. .% (|. . % 0. .
-- 4 . %-(4
- 03
0
נחיצותה של המבניות 4( 6 % . % %* 4 ---- . .0( %. . . . . .-% .
בדיקה. מקפת בי שש
> תתתתתתתשת. 4
השימוש בפרוצדורות ובפונקציות.. ................
מבנה הפרוצדורות והפונקציות, ....................
פרוצדורות נההתתתס. בינה התשמ
מרכיבי הפרוצדורה ...........
דוגמה לפרוצדורה . .........4.
3:33 0-4 4 9-ו שו של
מרכיבל הפונקציח .6 5 94 2
זגפה ל9ק4 הי 8-6 65 6 שי
תכנות מבני ומגבלות ההיקף ............
משתנים כלליים ומשתנים מקומיים. . ....
הגדרת משתנים 45 6:5 6%
השלכות כללי ההיקף ............
העבה 309 3-9 ₪ 6-6 5-4 2
פרמטרים שק 410 9 .6 ₪ 5-6
פרמטרים משתנים. .............
פרמטרים משתנים ללא הגדרת טיפוס ....
לציתה ימת -ה(32ת 4% :4 ₪ 5-6 9 6 6-46
מ .50/2 6 56 9 20% 6 "כ שריש 6-29
שו לצ .2 4% שה
המחלק המשותף הגדול ביותר .....424.
רצף יבצ :9% שר 2
מתי להשתמש בשיטה המתזורית . ......
הכ 1 307 שרי ₪ ₪56 ₪945 שד ₪ שה שת ₪
טיפוטי פרוצדורות 4 5 4-2 א ל 6 >
דוגמה לפרוצדורה עם הגדרת טיפוס. ....
דוגמה לפונקציה עם הגדרת טיפוס. .....
9-0 ₪-6 ₪ שש 4 :שש + שש
פרק 6 מבני נתונים זינמיים. .............
בי
השימוש. בקטעים (%8ת80008₪). .......
פע הק שי 9 ₪ שש 5 2
קטע הנת1לם. 6 4 6 6
קטע המתטסני 0 4-4 4 2
קריאת ערכי הפסקאות וההיסט .......
תצורת קבצי 0084, ו-5אע,...........
הקצאת זיכרוך 4377 ₪ שי שיש 6 4 2
הכראה על משתני הצבעה. ...... .43
הקצאת זיכרון בעורת הפרוצדורה אמא ...
טורבו פסקל המדריך השלם
.ו ,.,.. 0 2 תה
שימוש חוזר בשטחי זיכרון בעזרת הפרוצדורה 2152058. .. .
זיהוי מצביע ללא שימוש .......י..י..5 ...5.5
הקצאת +יכרון באמצעות הפרוצדורות אבא [-8616856. . . .
הקצאת זיכרון באמצעות הפרוצדורות 066806 [-0080₪:. .
פעולות במצביעים. ........יייי ייוו
רשימות מקושרות . ........
הפונקציה +66 ופועל 6.....
בחירת כתובות. ........ .2
יצירת מצביעים מוחלטים. ...
חפיפה של משתנים מוחלטים. ..
הזיכרון במערך . . . . . . . . . .
השימוש בזיכרו[. ............
קידומת קטע התוכנית .....
שטת הקוד. בי תת--
שטח הנתונים ......
שטח המחסטנית ...
שטת הערימה כ --
רשימת השטחים הפנויים
קביעת גודל הערימה ......
פונקציית השגיאה בערימה . . .
.
סיכום נך..,..ה0/20"---
פרק 7 "ח"דות :45
יחידות סטנדרטיות ...........
שימוש ביחידה סטנדרטית. ...
יחידה 975508 .........
יחידת 208. .....
יחידת 4626 4 .>
יחידת ת66>תנצק. ..
יחידת עְבּ1:סטס. ..
יחידת תק628....
תאימות למהדורות קודמות
.
.
.
נךייננההתשתתתת=--
ב הבהתתתתתשתששש-
0000000000 00000.
ב ננההתת=-
ני. נהפףההתתתשתתששט
כ שתתתס
.התשש
ךניה כתת=-
נצךי.. תת
%00300000000000000000(%-
.0000000000
. . נ'7 הת
כ נוי' התתתתת=-
כי . וה"ההתשתתתתששששש
כ תחת
בייתתתתתתתת-
= 0000000000 000
כיהתתתתתת
ני..תתתתי
ה'תהתתת₪
ב[ תש
בי התשש
נד' -כתחתתשתש
ניי הסתססתסשת%₪
-ן,בנגבהההתתתססססתתתת==
של טורב פלקל 4-5
יחידת 003 4.9 04%
יחידת 3ת0ק028 ..... +
מבנה היד 0 :4:5 5.5 6.66 א 5-6 ₪ 0 ו
הכותרת 6 026 0 שש 05 6
220
211
202
22
22
223
24
התוכן
מק 0-6 שש םלש שלש ריפש שש שי
₪ ₪6 יצ .₪ ₪ יש שי 4 א שש של
פעולות מקדיםת .0% שי יש 0
כיצד תוכל לפתת יחידות משלן ..+...... ...0
כיצד להשתמש ביתידות. .......... ...1
כתיבת .1/7777 02.0% יש :4 5 שש אש 4 שי א-ש 6 5
דוגמה מספר 1: פונקציות טריגונומטריות.. .......
דוגמה מספר 2: פונקציות טריגונומטריות.. . ......
השימוש ביחידת 8עט0א1208 .............. ...2
הפעלת תהפעטסאטעע מתון שורת הפקוזות. ...........
הפעלה אינטראקאיבית של ממטסאטע1 .............
סִ כום םךנהתהה===א
פרק 8 ניפוי שגיאות בתוכניות .:::::.. ...1.1.11
טוג שבי 06 שש 0 ש-05 כ ₪
שגיאת 170 03 > ישישה -2 -00% 4-4 5-6 שד 4/8 שר א
שגיאת ה )4-4 > שש שי א א + 6 שי 6 +
שגיתות. 2( 4-9 שש 6-4 6 שש ₪ יש 2
ד מה ל הל לש 6 9 -6-5-226-4 ש 0-6-00₪ ₪ 5-40 2-6
שיטות ניפוי מטסורתיות ...+....+..+.(.י.(.+י.+........
השימוש במחהדר המ(ב22 :4 3 = 4% 4-2 5 9-4 5 ₪ 2
ל
68 ְץ (4תק-1ע05). ........:.............
80% 0811 (0021-23).....+י.+.. .9.1 ...4
סיק 210 > 5% 4-6 4 6 ל 0
(ת0) פְַנסַטָטמ6כ2 160028606 ........ ...0
(0+5) שִַמנפָסָטמ6כ 6ת0810ת958. ...............
(5085%) צַת1קקהּט5 צַ15018קע .....*.:.........5.
ע מְ68%26₪98ת. . ...0.5
תפריט ם08%0/ 3268% .ב
(7ע-1ת66) 50ב 200. + +. 0 א
0001066 ₪ ₪ 4 6:6 6 א צר 4-6
001 4.4 ישי ₪ 6 א-ש 4-6 -% שש שש
98 [1 ס6טסתס6ת ........ .0
%תנסק:הסעת 104916 (8ע-0021)...............
58 11 ע0188 ... ...1
254
24
205
205
207
28
209
224
2207
2
222
26
29
29
200
200
200
21
222
224
208
29
22
24
24
255
205
206
206
27
207
207
28
28
28
טורבו פסקל המדריך השלם
0%תאה3ס:ת %אפא 7189 ... ...0000000000 258
תפריט מתגות ב4--- 00( 0 % . .+( 4% % . % %. 3-'כת - . 4( %
תטת (9תק1-2ע092) ........5.
% ההעטסעע (2ע-1ע06) .
עספעטס סס 60 (4ק)...
ססםת1 22806 (27)....
עסטס 5660 (8ע2).....
502601 עפש (5ע-216)
.
.
4
4
.
סיבום םיה תת . . . . .|( 6 5 4%
חלק ב' התכנות............
פרק 9 קלט מהמקלדת .........
פרמטרים של שורת הפקודות. ...
פעולות מקלדת . . . . . . . . . . .
קריאת נתונים מהמקלדת. .....
הפרוצדורות 26806 ו-ת2₪861
קלט של שורות . . .
2 וסוף הקוב
קריאת תו אתד ...
קריאה ללא הדהוד .
0 (הסעם-1ע062 |-
.
.
.
.
1-6ת>
4% -.
%- (|.
. %-.
4% % |.
*% %-.
4% +(.
%- + (|.
4% (+.
% 6.
> 6.
. 4% (+.
. % (+.
% %-.
. 4% (+.
> +.
% 5% (+.
5-5.
4. % (. % (|. %-. . . *% |. . .
שינוי מצב בזיקת 68%ת1-2ע65........
אזור האחסון של המקלדת .............
מיפוי מתדש של קודי תיפוש . ............
הקשת נתונים לתוך אזור האתסון ..........
בדיקת אזור האתטל( :6-54 4-5 6 5 6
קלידי ההאחה (521%6) וקלידי ההיסט (816ַפַ10) . .
₪ כ ₪ שש ₪ ₪ יש שיש ₪ ₪ רש ₪ ל ₪ רצי ש- שיש
פרק 10 תצוגת 720ל5...............00..
זכרון המסך.......
תוכן זכרון הווידאו . .
כתיבה לזכרון הווידאו.
קואורדינטות המסך. .
פלט למסך.......
4. 4% (4
4% (|.
. *.
4% %-.
% 6.
208
209
209
29
200
200
200
203
205
25
208
209
209
201
202
203
204
2205
208
208
206
207
208
2000
255
207
207
208
2008
209
גי
= התוכן
השימוש ב'יחידת 081 0:45.4 4-9 :4-4 2-6 5.446 30166
הפרוצדורה 0:2%ת18819 ...... ...220022222 303 =
מניעת פלט ישיר למס[. .... .0000022222 303
המאבק 300 6:66 2 א 9% 301-642
בית התכונות (%60ע8 0%6פ1ע266). ...... ...00000222 305
ערכי הסיביות שבבית התכונות. . .. ...2020000222 305
בחירת: 4.23% 3% ₪ 5 ₪ 6% 4-5 9 4 שיש 0-0 2% 24 306
השימוש בצבעים- 5 :4.44% 6 30
שא 0 שש 0 ליק שש 309
הצורת. 0000 :3 0 2-9 66 א 6-9 שיש שי לש = ןכ
מקום הסמן ובקרת המסך ....... ...314-0020202
קביעת מקום הסמ[ ........ .3150000022
יבקרה על השזר הת 269 שי ל 0 8 500 0-6 316
איתור :מקום 180 6-8 3
בהל :9.0300 א ל .8 א 2 320
.אהו החלוןך הנכת.₪ 7 5-4 פר- 6 א 321-499
+ שלמוש בתל(ן :442-6070 לפש ל 0 321
שמירת חלונות ושתזורם ......... .00000222 324
7 6 וש 00ב
פרק 11 תצוגת .06-00 לב
מס 90% שר שרפ 5-6 5 מ הש 327
הממשק הגרפי של 6מ18עס2. .... ...000000025 328
רזולוציה ותצור(ת .0/2 5-66 5-6 69 6 שישו ₪ שי 28% 13,
מערכת הק(אור 03 4-4 מ 6% 6 שק 5-8 :3312
המצביע על המקום הנוכתי... ............05..2 332
כניסה לתצורה הגרפית ויציאה ממנה ....... .0000202 332
| כניטסה לתצורה גר79ת 4:4 4-94 66-ישר שש ₪ שש כ 333.2
זיתוי התומכה ה92?ת :2 5 5 339
זיהוי התצורות הגרפיות, ..:....:. .0000002 335
בור ל המ ₪7 0 2-0 דבב
איתור מקום המצביע במסך גרפי. ...0200000022 338
ו
מעברים בין תצורת טקסט ותצורה גרפית . . ...222.2 339
טיפול בשגיאות בתצורה גרפית , . . ...7 0111111111 340
שרטוט נקודות מסזמות - ,7 שש 7 3
טורבו פסקל המדריך השלם
שגרות לשרטוט קווים בלתתשססשסתתתתסשסתתתתתתתת ₪ 244 :
שרטוט קו ישר ך.לייפ*ה=ה= ?₪ . 7-4 5
המעקב אתר המצביע .........
שרטוט קווים על פי הגדרה יחסית. .
סול ק1[ 3 5 .4-4 +
שמירה ושחזור של אפיון הקווים. ..
קוים (07002 :6% ₪ 6:96 2
אשננים (פטעסקטס6נ?)...........
יצירת 22₪% :4%06 4 6-9 426 2-6
שמירה ושחזור של הגדרנת האשנבים
מחיקת תוכן של אשנב ........
שגרות למעברים בין דפים ......
בע 45 .₪ + ₪ 0-9 שי שש ל 4-6
ז'יהן הצע 3% 4-9 4 2
בחירת הצבע שבו יתבצע השרטוט. .
בחירת צבע הרקע. ..........
שינוי צבעי הטבלה ..........
שינוי כל צבעי הטבלה .........
שינויי צבע ב-ת6ט וב-8514-אפע. ,
מיפו שטחים :5-9 4 :5 שש 6% 2
דגמי מילוי על פי הגדרת המשתמש .
זיהוי הדגמים והצבעים ........
מילי תח(מים + 6-4 +
הגדלת אזור האחסון .........
שרטוט צורות הנדסיות ........
מלבנים 7091 4:4 + שש 6% א ₪
4-2 45-24 4
ל 6:08 6 שלפר- של :שיש קש. ₪8 קלדא: שי 2:5
יחס אורך/ רותב (38%610 6ססִספ2). .
מעגלים ואליפסות . ..........
7 4
"פרוסות עוגה" (216) וסקטורים . . .
שמירה ושתזור של מסכים גרפיים .....
.2000 :> 4-02 4 6 צ שש
ססוג אנת 4% .5 5-5 4-4:9-5 426 4
לשור :20000 %:-4.4 4.4 ו 2-9 2%
בירור הגדרות הטקסט ........
6
17
19
3
4
6
6
100
200
2
64
164
16
6
1207
1207
1|=08
19
100
1
2
|33
124
24
1206
19
109
2
5
66
|08
1
2
106
18
= התוכן
פיקות על גודל הסקסט. ...112122 2222221221 399
בירור גודל הטקסט . ..... .5000200002 401
ברירות המחדל בגרפיקה ...... ...0000000520 403
שילוב מנהלי התקנים וגופנים בתוכניות ...7 ...5 ...0 403
= טעינת מנהלי התקנים וגופנים .......... ...40422.5
יצירת קבצי :עד (66נפס) באמצעות אאע,נמסותת ...... 405
שילוב המנהלים והגופנים בתוכניות ....... ...407.25
התקנה של מנהלים וגופנים חדשים .......22005..5. 409
יי
נושאים מתקדמים: ניהול הערימה. ,7-7 055 0000020007 412
סיכום .412.05
פרק 12 0 3
- .| ---- 13
שליפת התאריך והשעה . .... .522 4140000002
של" 177890 :296.5 יע שלפ 6-00 0 0 ]4
מדידת משך ביצוע של פעולות בתוכנית. . ..........417.2
לצירת. ללקל 2-06 2 0 קט יפצ 5 5-00 0 419
טבלת הטביבה של 208:............... ...42170.0
השימוש בטבלת הסביבה .-......:. .4210000022
שינוי טכלת הסביבה. ...........2 ...20000002 423
פניה למחרוזות הסביבה. ....2... .22.22.22 423
קידומת הקטע של התוכנית. ......... ...000.20 424
פניה לקידומת הקטע של התוכנית. .... ...00202550 425
0 0 3 :9 4.506 ₪ ₪ שי שש לי שי שר 0-5 2 427
הכתובת של טבלת הסביבה. ......... .0022222 427
פנִיה לשורת ההוראות. ..2....1 ...20000020 428
טלום חת(כבית 4:4 ₪ שר :5-49 5.5 6 ₪ 5 20-20 429
סיום באמצעות 18[6. .:.,7.. .2522202222 430.
סיום בתוך קוכץ אצווה (מ2860), .%,...3. ...2.01 430
העברת פרמטרים באמצעות 8816 .. ......2 ...2.0 432
: כפיה של שניאת הרצה ,6 ...44
הפעלת תוכנית מתוך תוכנית אחרת ... .......... .00022 434
הפעלת הפרוצדורה 00א8; ...220 .2.72.22 ...434
פה לברמטר :000 559-ל ₪ 2 ₪ .202 2 .436
טורבו פסקל המדריך השלם
הפעלת תוכניות השירות של 205 .... ...000022222 437
פרוצדורות ליציאה מהתוכנית. .......... .200000022 439
פיתוח של פרוצדורות יציאה ..... ...0000022225 439
בירור הסיבה לסיום התוכנית. ....... ...0000000 440
פיתוח של פרוצדורות יציאה ליתידות. . ....... .443020000
:םש שש 3 ש- שש של יקסל יש הש ל 14
פרק 13 טיפול בקבצים ........... 4470022222
ניהול קבצים בטור בר-2009 40:95 5 6% 5 2% 447
טיפוסל הקבציםי 6-5 6 רשש יש קר > 1409
-קבצ שק .יש שו ו 1-6 שאל של שש 0 149
השוואה לטיפוסי קבצים אחרים ......... 450020000
הכרזה. על קוכ 0920 4% 4-3 6 ₪ פא 6 200-295 [45
זה הקוב. הפק 6 שש 6 0[
פפיחת. קוב. 00 :ציש :4 פרש שר שי שש .41
סירת :קה 4:6 שש 4-8 0-6 יצי שמר+ כי 3-2 5
קריאה מקו3 .920 44% 54
זיהוי סימ סוף הקובץ וסוף השורה ....... ...200 456
|-ת966%801. ....... ...46002000 >
כתיכת 3תם 6004 שו שש א-ש 2-6 107
עריכת פלט לקובץ טקסט. ...... ...000000 467
קבצים ואזור? אהטו| 6 6-6 :6-4 :4:4 4 470-066
פיקוח על גודל אזור האתס 3 ₪ > 56 6 ₪ ₪ 4 20004 6720
הוראת 270180 2-4.6 2 9 ם-י 2-6 ב47
איתור שגיאות קלט/פלט ....... ...0000000022 474
קבצים יעם הגדרת 00970 26% 4-5 יר 47
קריאת קבצים עם הגדרת טיפו. ... ...0200000222 478
כתיבהּ לקבצים עם הגדרת ט'9!ו0 .... ...20000002 478
קבצים ללא הגדרת ₪970 006% 6 שר 065 482-0006
קבצים ללא הגדרת טיפוס - הכרזה ופתיתה .......... 482
גושי נתונים (2100%53) ..... ...0000222 0482
קביעת - 23 5-12 שש 5 6 :יפ ישי 403-266
העברת נתונים לזיכרון הפנימי. ....... ...00000 485
גישה אקראית לקבצים :> ₪ שש ₪ .₪ := ש-4- ₪ 50 4097000
גישה אקראית לרש01( :4 ₪ -5 5 ₪ 40
בתסססת |-66הסתו2? בקבצים ללא הגדרת טיפוס ...... 494
התוכן
סיכום
43 וי ו וו 2.2 1 ְהןְ תע 2 בך3-=- - 144
פרק 14 ניהול טפרית. -.ייייייווי....212..2..... 497
הגד רתכ(" השיש יע שש שש 7 רל 6 49
0( יי א-ש שש שר הר שלש שי ל ל 0 490
מציאת הספריה התורנית . .... ...0000020202 499
שינוי הספריה התורנית . ..... ...5000000222
| ביטןכ: 0:/07090 4 :₪ קש 4 2 501
| גישה למידע אודות הקבצים ........ ...5020000000
פיה לרשומת. 90 :2:66.4 - 53 6-46 ₪ 6 %-503-0
פניהי לשם' -הקוכ- 504-6070
פיה לבית. התבנות 4 5/-וש יא ה ₪ א ל 509570
פיה לשך 428 4:9 6 4-6 6-6 6 507
טיפול בקבצים ₪703 .45% 2 כ 8 5
שינףי שדח שה יפיפ שש 0 10
מחיקה ושינוי שם של קוב. ........ .512000000
מחיק-%30 6-34 א = 9 5-56 :64 4-56 כו5
מחיקת תוכן הק(ב)) 44% ₪4 6% 2% 3ו5
שינף שם של קוב:4 6% 5 א 2 י5ו5
בדיקת: גודל הקוב) ₪ 4.9% 66 6.4 שר :ב 5-26 516
שינוי בית התכונחת > > 4 5% 6 פופ
בדיקת שמות. קבצים4 ₪ 4 48-96-84 8 4 5 9 0-5 521
ההחבת. שםי קובף 6 ₪ יש 4 ל 4 521
חיפוש. במספר -ספריות 90 ₪ 6.6 5 יי 646 02 22
לת קוב 407% שי שו 9 שש 0 4 בב
יה ל 1 ששל ששו חש שה 007-ה טש 26 00% סל שב שו שר סה כ כ
חלק ג' תכנות מתקדם ...:...111111221141221 0 527
פרק 15 ריבד הייייייייייייוייוייייייויווויוו. 9
סיכום
מהו רובד (ע006918). 221112242 530
חיסכון בשסת זכרו[ 46:58 א 0 8% :שא 6 9-4 :53042
טעינת יחידות לאזור האתסון. ...... ...0000205 531
תוכבית.-03012 .שש שש שי ששל שא 6 שיש ₪ ל שה אצ כ 0 5
פיתוח התוכנית + 3יייי.. ...00.07.5005 532
טורבו פסקל המדריך השלם
שינותי
פירוק התוכנית ליחידות 0000000000 3 3 5
יצירת רבדים מהיחידות 3 ו ו ינויו[ ]יי 6 3 5
הכנת היתידות ינינ נבי "ה . 3 1 ןה 6 3 5
שימוש בקריאות רחוקות (68118 צ3+). .
?צר :4027/72 9-6 6:66 0 6 5 9-20 4 ₪ 0 4
ערכים התחלת:ים ברבדים ךינהתת2
התוכנית הראשית. ............
תמיכה בהוראות ההרצה .........
זיהוי הרבדים 5 ו .וו ]ו
ט עינת התמיבה בהרצה 3 וו[
הגרסה הטופית של התוכנית ............
שימוש בשגרות ריבוד. .............
טעינת מנהל הרנזים ...........
שימוש בייכרוך מורתב, 4+ 434 > > 4 .>
שינוי גודל אזור האחסון של הרבדים ......
4 :₪0 ₪ ₪ ₪ שש שר שר שו 3-2 2 99
פרק 16 ה-₪105, 05 ושפת אסף (₪14ונ55ה),
התקשורת עם שירותי 8105 ו-205 ...........
גישה
השימוש באוגרים .............
האוגרים הכלליים ............. ...2
אוגר 000770 9.%:%% 4-2 .0 6-26 6
קריאה לשירותי ה-8105 ..............
קריאה לשירותי 205 .............2..
לשירותי ה-3105. ............
הדפסת מסך (פסק 5905).
שירותי וידאו (פסק 0)910)..............
רשימת הציוד (פסק 911)..............
גודל הזכרון (פסק 412)..............
שירותי הדיסק (פסק 913).............
שירותי התקשורת (פסק 914) . 0
שירותי
שירותי
שירותי
שירותי
התמיכה בקלטת וב-%'/ 20 (פסק 6).
מקלזת (פסק 3.........)916...
מדפסת (פסק 3.........)917...
השעה (פסק 5.........)91...
תקלות הנובעות משימוש בשירותי 8105 אחרים.
536 ..
537 4
539 ..
539 ..
540 ..
540 . .
11 ..
11 ..
542 ..
542 ..
543 ..
544 ..
5 %-.
547 .
548 ..
548 ..
549 ..
550 . .
552 ..
56
554 ..
7.
התוכן
גישה לשלרח 005 ₪-5-8-5.5 .₪660 0 6.6 6 22222 569
של רת 4/008:₪ .₪ ₪5 שש ₪ של :₪ 6-5 9 5-0 0-22 570
שימוש בשירותי 205 ........ ...0222222225 577
קריאה לשירותי 205 מתוך טורבו פסקל. ............ 578
שפת אטף (צמאע9פה) בטורבו פסקל. ....... ...2555 580
שימוש בשפת אסף (עצזב55ה) בפרוצדורה 6ת1זת1 ..... 581
דרכים אחרות לשילוב שפת אסף (צתמאמפפת)......... 582
מתי להשתמש בשפת אסף ........ .2250000555 582
.0 יש 06/06 םשש שש שופ שיש שש שרי שר 0-ו 503
פרק 17 ה-8087 והתקנים תיצוניים. ...........0225.5 585
פניה לנקודות תיבור. ......... 2 .506
העכרת נתונים. . 6 0 0 שש 5 2 500
הסכנה בפניה לנקודות חיבור. ........... 7
כיצד להתגבר על תופעת השלג במסך שי 0 2 507
שימוש בהתקנים. ......... ...5 590
התקני. 005 26 6 2:66 רש ₪ ₪ .5 5 2-2 2-2 591
מנהלי התקנים של 05. . 0 -כ -7 59
התקנים בטורבו פסקל ........ ...2.52 7
שימוש בהתקנים כבקבצי טקסט רפפ
קלט ופלט סטנדרטי ........ ...5950222222
מנהלי קבצי 205 . ו .2
משתני קבצים עם ובלי הגדרת טיפוס ..... ...255255 597
כיצד להשתמש ברשומת הנתונים. .... 5-2 :₪00
המשתנים של קבצי טקסט ....... 2-66 000
מנהלי התקנים של קבצי טקסט ישש :003
פיתוח מנהלי התקנים. ... - 6067-0
הפרוצדורה תשנפפת. .... ...0200222225 605
הפונקציה ב6ס0. 0 = 605
הפונקציה 100% -........ .0022202222 606
הפונקציה תפט1ק ........ ...020255555 607
הפונקציה 01058 ........... 8 5 שי 2 607
מנהל התקנים כללי לקבצי טקסט - - - 22-22-2220 607
קבצים לקריאה בלבד או לכתיבה בלבד . ... י 5 = -610
שימוש במנהל התקנים מותאם . ...... ...55555255 611
פניה להתקנים אחרים. ............. 600000000 6
טורבו פסקל המדריך השלם
השימוש במעבד העזר 8087 ...........3....5..... 6
טיפוסי נתונים של ה 8087........... ...4
הוראת העיבוד הנומרי [48). .........
הוראת האמולציה (חיקוי) של ה-8087 (%8) .
הפעלת ה 8087.................
סיכום םי תת ךינסתתתתתתתת
פרק 18 שלרות .3:00 5% 46:06 :46
סוגל 09 כ" ההתתהתתת=ת=7/"/7/ .
פסק 40/07 6 6-9 :8-66 6 1/4 ה
פטן 6-22 0 יש 4-6 שופ לש שש
טבלת וקטור הפסק 0000000000ָ600(003000300000300>% . . .+( %* .
עיון בטבלת וקטור הפסק............
קר הי 2097 4% 4 2
הלפת 940209 :2-5 :5:90 ₪ 26
הקנ 3-20 צ :4-65
ב 20 55-0790965 6 6-5 6
הגדרת שגרות פסק - אמצעי זהירות ...
ו
פרק 19 תוכניות תושבות בציכרון. .........
מבות לתוכניות 298 ₪44 4 2
שימוש בתוכנית 1588 ............
שימוש בפרוצדורה ק2866..........
שמירת תוכנלת 842% ₪ 6 ₪ 5 48 ₪
סוגי תוכניות תושבות. ...........
יצירת תוכנית שעון תושבת. ...........
השימוש בפסק קוצב הזמן .........
קריאה לשגרות ה-8105 ..........
פיה לקוצב הלמ[:% 4 6-4 4 שש 2%
הוספת שעון מעורר. .............
קריאה ל=198 42729 464% 6-6 שי
שימוש בפעולות פסק מוגדרות מראש ..
גישה לנתוני ה-158. ............
הגדרת קלידים "חמים" להפעלה מיידית . .
6
.
.
.
.
4
₪
17
8
8
8
9
1
1
2
2
2
24
6
88
1
3
5
5
17
17
38
38
9
1
1
2
3
4
5
17
17
9
0
תוכניות תושבות מסתריות ...........
סיכום 000004 0000000000 03003030 0 %4
חלק ד' נספתים. . ...0001060010
רשימה ותיאור כל הפרוצדורות והפונקציות .
הוראות המהדר .+ % % . -% 00( 0003000000 .|(
תוספת עידכון גירסה 5.פ...........
מפתת 9 ..*. . .+ %* .4 .* 0 לת--= . . 4 .
התוכן
652 ..
652 ..
655 .
051. 4
743 ..
700
1"
טורבו פסקל 1.
מבוא
טורבו פסקל 5.0
טורבו פסקל של 61-288610281+מ1 6מ18:נספ הוא השלב האחרון בהתפתחותה של שפת
פסקל, זוהי חבילה מוכללת. לפיתות יישומים הכוללת מהדר (:116קמסס), עורך
(עס201%), מנפה (260080062) ומנהל ספריה, בעזרת טורבו פסקל 5.0 :כול
התוכניתן ליצור תוכניות ברורות ומודולריות היוצרות קוד ביצוע מהיר
ויעיל.
כמעט כל בעיית תכנות מרמה גבוהה שניתן לבטא מילולית, ניתן לבטא גם בעזרת
טורבו פסקל, באמצעות טורבו פסקל ניתן לפנות בקלות לחומרת ה-26 ולמערכת
ההפעלה שלו, ולכן השפה מתאימה גם לביצוע משימות תכנות ומטלות מערכת
מרמה נמוכה יותר.
למי מיועד הספר?
הכל אודות טורבו פסקל מיועד לכל מי שמגלה עניין בתכנות בשפת טורבו פסקל
- תוכניתנים מתחילים ותוכניתנים מנוסים.
למרות שרצויה התנסות קודמת כלשהי בפסקל וב-05פ, הספר אינו מניח קיום ידע
קודם. מטרתו העיקרית של .הספר היא הוראת האופן שבו פועלות תוכניות טורבו,
ולא להוות אוסף של כללים והוראות בלבד, הכל אודות טורבו פסקל מתייחס
לתכנות בשפת טורבו פסקל. כאל הרחבה טבעית של 205 ותורם להעמקת הידע
והמיומנות שבשפת טורבו פסקל ו-205 כאחז.
גישת הכל אודות טורבו פסקל מסודרת והדרגתית, הספר פותח בהוראות ההתקנה
הבטיסיות של המערכת, עובר למערכת שיעורים בתכנות בטורבו פסקל, מתאר את
השימוש בכלים הייחודיים של שפת טורבו פסקל ומסיים בהסברים אודות אופן
הפיתות של יישומים מתוחכמים ברמת המערכת, (למשל: תוכניות: תושבות
בזיכרון). זהו טפר יסודי, המיועד לכל רמת מיומנות.
2 מבוא
מה כולל הספר
ל"הכל אודות טורבו פסקל" שלושה חלקים: מבוא לתכנות בשפת פסקל, מבוא
לתכנות בטורבו פסקל ומבוא לתכנות יישומים מתקדמים בטורבו פסקל. כלי
התוכנה השימושיים העומדים לרשות התוכניתן מתוארים לאורך כל הספר.
חלק א' "הכרת טורבו פסקל" מציג בפני הקורא את יסודות שפת פסקל ומצביע על
העקרונות החשובים של "ניב הטורבו". הוא בוחן את המבנה ואופן
הפעולה של תוכניות טורבו פסקל אופייניות ומתייחס לצורת הייצוג של
הנתונים והפיקות עליהם ולארגון הזיכרון.
פרק 1 - "צעדים ראשונים בטורבו פסקל" מיועד למשתמש החדש. הוא
מתאר את שלבי התקנת המהדר ב-26 ומסביר, צעד אתר צעד,
כיצד לבצע משימת תכנות מתתילתה ועד סופה.
פרק 2 - "המבנה של תוכנית טורבו פסקל" מציג את מרכיבי שפת פסקל -
מלים שמורות, סמלים, מזהים, מספרים ומחרוזות - ומתאר
כיצד כל אלה משתלבים ויוצרים יחדיו את תוכנית הטורבו
פסקל.
פרק 3 - "נתונים וטיפוסי נתונים" זן באופיים של הנתונים ומצביע
על קבוצות נתונים שונות (או טיפוסי נתונים). הפרק מסביר
כיצד משתמשים באמצעי סיווג אה בתוכניות.
פרק 4 - "ביטויים, פעולים ופועלים" מכיל את ההוראות המפקחות על
מהלך התוכנית ועל פעולותיה.
פרק 5 -"פרוצדורות ופונקציות" מתייחס לשילוב נתונים והוראות
תכנות.
פרק 6 -"מבני נתונים דינמיים" מסביר כיצד ה-26 מנהל את הזיכרון
וכיצד ניתן לאתסן בו נתונים.
פרק 7 - "יתידות" זן ביתידות התקניות של טורבו פסקל ומתאר את
אמצעי ההידור המיוחדים ל"טורבו". |
פרק 8 - "ניפוי שגיאות בתוכניות" מציג את המנפה המשולב ב"טורבו"
ומתאר כיצד ניתן לפתור בעזרתו "חידות" תכנות מורכבות.
| טורבו פסקל 3
בתלק ב' "התכנות" מתגלה שפת טורבו פסקל כהרתבה לוגית של מערכת. 05פ. בחלק
זה תלמד לכתוב תוכניות תוך ניצול כישורי טורבו פסקל ו-05ס.
פרק 9 - "קלט מהמקלדת" מסביר את העיצוב, הפעולה ואופן הניהול של
המקלדת, ומתאר כיצד ניתן לפתת, לקרוא ולפרש צירופי
קלידים.
פרק 10 - "תצוגת טקסט" דן בעיצוב, בפעולה ובאופן הניהול של מסך
הטקסט, ומתאר כיצד ניתן לפתת תוכניות המנצלות את
כישורי הצבע, העוצמה והתלונות.
פרק 11 - "תצוגה גרפית" מציג את ספריית השגרות הגרפיות של טורבו
פסקל.
פרק 12 - "פניה ל-05פ" מתאר כיצד ניתן לפנות למערכת ההפעלה של
ה-26 ולפקת עליה (שימוש בפקודות התאריך, השעה והצליל).
הפרק דן גם בסביבת 205 ובקידומת הקטע של התוכנית
(6118עע2 %ת560(0 - ת628סמקע או פ5ע) ומסביר כיצד ניתן
לבצע תהליכי משנה ולפקת על סיום התוכנית.
פרק 13 - "טיפול בקבצים" מתאר את פעולות הניהול של טקסט וקבצים
מוקשים ובלתי מוקשים. |
פרק 14 - "ניהול ספריות" דן בניהול אוסף של קבצים המהווים יחדיו
ספריות ודיסקים. >
חלק ג' "תכנות מתקדם" מהווה מבוא ליישומים מתקדמים בטורבו פסקל.
פרק 15 - "ריבוד" מתאר כיצד יכולים חלקים שונים של תוכנית טורבו
פסקל להימצא באותו מקום בייכרון.
פרק 16 - "ה-₪105, 205 ושפת אסף (צ,זמאמפפת)" מסביר כיצד יכולה
התוכנית לפנות לשירותי התוכנה החשובים של ה-260 וכיצד
ניתן לשלב בתוכניות הוראות בשפת אסף.
פרק 17 - "ה-8087 והתקנים תיצוניים" מתאר את הדרכים השונות שבהן
מאפשרת שפת טורבו פסקל לפנות לציוד הקשור ל-6ע
ולהתקנים שונים.
4 מבוא
פרק 18 - "שירותי פסק" מתאר כיצד מערכת 205 משתמשת בשגרות
| ה-8105 ובספריית השגרות שלה כדי לפקת על ח-26, הפרק
מסביר גם כיצד ניתן להשתמש בשגרות אלה באופן ישיר
ולשלבן בתוכניות.
פרק 19 - "תוכנית תושבות בזיכרון" מגלה תהליכים וטכניקות לפיתות
חלק ז' "נספתים"
נספת 1
נספת 2 -
נספת 3
אינדקס
תוכניות תושבות בזיכרון, הפועלות באופן תמידי, ברקע,
או מופעלות על :ידי לתיצה על קליד מסוים.
מביל ספריה של כל הפרוצדורות: והפונקציות של טורבו
פטקל.
מתאר את הדרך שבה המהדר מתרגם את התוכנית לשפת מכונה
ורשימת כל ההוראות וההתניות של המהדר.
- השינויים והחידושים במהדורה 5.5 לעומת מהדורות
קודמות.
חלק א'
= הכרת --
טורבו פסקל
פרק 1: צעדים ראשונים בטורבו פסקל 7
פרק
צעדים ראשונים בטורבו פסקל
שפת טורבו פסקל היא שפה שקל מאוד להשתמש בה, עובדה זו תרמה רבות
לפופולריות הרבה לה זכתה השפה, חברת 6מ18:סם, כמו רוב מפתחי פסקל, מעמידה
לרשות המשתמש את שאש,6פע, מהדר של שורת הפקודות, שבאמצעותו ניתן להפוך
תוכניות עצמאיות, שנכתבו בעזרת עורך. כלשהו, לקבצים הניתנים להפעלה.
מאא ספ מופעל מרמת המנחה של 5סכ, ובאמצעותו ניתן לבצע הידור (קומפילציה)
והפיכה של תוכנית לקובץ ₪א₪,, או לקבל הודעות שגיאה המפרטות את הסיבות
לכשל התוכנית.
ב-שַא₪,60פע' משתמשים בעיקר בשלני פיתוח שבהם יש לערוך שינויים קלים
בתוכניות פועלות, אפשר גם לשלב את מאש,ספע בקבצי אצווה, למשל כדי ל
את פעולת ההידור בפרוייקטים עתירי תכנות.
חתכברת 201856 מעמידה לרשות התוכניתן מהדורה נוספת של המהדר - מאש,סמטל -
שנהוג לכנותו "סביבה מוכללת",| מ88א%7080,8 הוא מערכת הידברותית
(אינטראקטיבית) מתותכמת, המעמידה לרשות התוכניתן את כל הכלים הנחוצים
לפיתות תוכניות, תפריטים ותלונות, 8א5,ספתּ20 הוא כלי אידיאלי לפיתות
תוכניות חדשות ולעריכת שינויים בתוכניות קיימות, ולכן נשתמש בו בספר זה.
פרק זה מכיל את המידע הנחוץ כדי להוציא את חבילת טורבו פסקל מהאריזה
ולהפעילה תוך פרק זמן קצר ככל האפשר, כמו כן, תערוך במהלך הפרק סיור
מודרך בסביבה המוכללת, ותכיר את הפקודות והפונקציות הראשונות שתזדקק להן.
הפרק מיועד למשתמשים חדשים, שאינם מכירים מהדורות. קודמות של טורבו פסקל.
אם תהליך התקנת המהדר מוכר לך, תוכל לדלג על המשך פרק זה.
8. הכרת .טורבו פסקל
חלק. א" +
| חבלת טורבו פסקל -
| חבילת המהדר של טורבו פסקל כוללת שלושה תקליטונים ושני ספרי עור,
על תוות התקליטונים רשום: 00 /6%811ת1, | 1116105ט0/ סנסזן
ו-3סממטע'/ סספ/ פסת6פ/ ז6ם. /
הקבצים. הנמצאים על התקליטונים הם:.
41 הקבצים שבתקליטון 16 / 311) ד (כרך .51 תק):
פאם, זז יפאד תוכנית ההתקנה של טורבו פסקל
-/- המהדר המרכצי - טביבת הפיתות המוכללת של טורבו
/ פסקל
זפ סמתטד קבצי הספריה של "יחידות" טורבו פסקל
מאם,סקט -. | מהדר שורת הפקודות של טורבו פסקל
0% מוזסתמת תוכנית להצגת קובץ פווסתמת |
2 / קובץ טקסט, המכיל מידע שאינו מופיע בספרות העזר של
טורבו פסקל
8% תוכנית סיוע (פ,צפם) תושבת בזיכרון
2. הקבצים שבתקליטון 06413%6468/ 61 (כרך 2.זתספתע):
קז סמתטד קובץ הסיוע המקוון (פעשא) של טורבו פסקל
מא זפאדד תוכנית ההתאמה של מאם, ספתטיד
האפ פפסאטפע. מנהל היחידות
מא פאגא תוכנית שירות לניהול פרוייקטים >
ובר תוכנית שירות לחיפוש קובץ טקסט
| 0%
מא טפסאזם:
ישן
= מא תקאעצפאז
1 צעדים ראשונים בטורבו פסקל -9
תוכנית: שירות לשינוי סימון ו והשעה של קוב
- תוכנית היפוך: קור > בינרי לקובץ. 1
תוכנית היפוך: מ-פין. ל-096,
= תוכנית היפוך ו 0 ל-5.0
3 הקבצים שבתקליטון - 2 (ברך 3תספתק):
טאפתסא 0%
מב
מס
6
.תסו
פמט :
0 ומופ, זמ .
תוכנית "פירוק" של קוגץ ארכיב.
| קובץצ. ארכיב הכולל.- תיעוד . גרפי (00,*), | מנהלים
(201,*), גופנים (תא0,*) ודוגמאות. (58תכ.*). 861.6
כולל גם את הקובץ טפד כ הנחו לתכנות גרףי | >
קונץ ארכיב המביל תוכניות. לדוגמה 0 -
קוב : ארכיב המביל את. | קטעי הממשק | של היתידות
הפנזאדתק גל ,05 אמפצם ו- צת1תמץ0 וכן את"
התיעוד של תוכנית השרו מא ,זאד .
קובץ' ארכיב המביל את קוד המקור של תוכנית הגיליו
ל ו :
קבציי התאמה. ל- - טורבו 3.0, הכוללים את תוכנית ההטבה
ו מפתאסקט, תיעוד. וקבצי יחידות 3 טל 1 5
תשובות לשאלות שכיחות שהתקבלו. קת ו הטכני
.= של סט
ספר העזר הראשון 6 פ'ינספט, | סוקר בקצרה את שפת פסקל ומתאר בהרחבה"
את הפונקציות והאופציות "של .המהדרים ואת תוכניות השירות. ספר העזר: השני
8 06מ6200ת, מתאר בהרחבה את דקויות התחביר של שפת טורבו פסקל, כולל |
תיאור |כל הפרוצדורות והפונקציות. .
0 חתלק א" הכרת טורבו פסקל
הכנת התקליטונים
הפעולה הראשונה שעליך לבצע, מיד עם פתיחת חבילת טורבו פסקל, היא קריאת
ההכרזה על זכויות היוצרים של חבילת התוכנה, לאתר הקריאה עליך לתתום על
הדף המצורף ולשלתו לתברת 6מה518סם, בהתאם לזכויות היוצרים, אתה רשאי
לערוך עותקי גיבוי של התוכנית, לשימושך האישי, נצל הרשאה זו כדי להגן על
התקליטונים המקוריים שברשותך. השתדל להמעיט את השימוש בתקליטוני המקור.
כדי להכין תקליטוני גיבוי, יש לבצע את הצעדים הבאים:
1 הגן על התקליטונים מפני מחיקת קבצים בשוגג, באמצעות מדבקה מתאימה.
2,. השתמש בפקודת צ009א5דכ כדי ליצור עותקי עבודה של התקליטונים המקוריים
(אם אינך יודע כיצד לבצע זאת, עיין בספרות העזר של 05ע). אל תשכת
לסמן את התקליטונים.
3 שמור על התקליטונים המקוריים במקום בטות, מעתה תזדקק לעותקים בלבד.
הכנס את עותק העבודה של ש000116/ 156811 לכונן :ת והקש את הפקודה:
אס תיותית
תוכנית 60% מאסתפת תציג את תוכן הקובצץ מאפגפת, הקובץ מכיל מידע שאינו
מופיע בספרות העזר, הנושאים שב-אאפתפת מתייתסים בדרך כלל לנוהלי ההתקנה,
ולכן כדאי לעיין בקובץ בשלב זה, כדאי להשתמש בתוכנית א600מאכגת כדי
להדפיס את הקובץ ולצרף את העותק המודפס לספרות העאר, לשם כך עליך ללתוץצ
ע, רשימת האופציות של התוכנית מוצגת בעזרת 1ע.
התקנת טורבו פסקל 5.0
למהדורה 5.0 של טורבו פסקל מצורפת תוכנית שירות בשם מאא..211לפא1 המפשטת
במידה ניכרת את תהליך ההתקנה וההתאמה למערכת המחשב, הקטעים הבאים שבפרק
ילמדו אותך להפעיל את שאש,,1ת'פא1 במערכת בעלת תקליטונים ובמערכת שבה
מותקן דיסק קשית, לפני שתתתיל במלאכת ההתקנה, קרא את הקטע המתאים למערכת =
המחשב שברשותן., אם עקרונות 8א₪,.11ג2פא1 מתאימים לצרכיך - הפעל את
התוכנית; אולם אם האופציות של מאש,.1תי'פאד1 אינן מתאימות לך, ובעיקר אם
אתה מעוניין לצמצם ככל.האפשר את שטתי הדיסק שתופסת התוכנית, פנה לקטעים
המסבירים כיצד ניתן להתקין את טורבו פסקל מבלי להשתמש בתוכנית
פרק 1 צעדים ראשונים בטורבו פסקל 11
שאם,נעתץפאד. זכור, מספר ההתקנות של טורבו פסקל לא הוגבל. על ידי היצרן,
ולכן תוכל לשנות את התצורה שבחרת ולשנות את הקצאת הקבצים לספריות
ולדיסקים.. ן /
בפרק זה הנחנו שהתקליטון שלך נמצא בכונן :ת, התקליטון השני (אם קיים)
נמצא בכונן :8, והדיסק הקשית (אם קיים) הוא כונן :6.
התקנה בדיסק קשיח באמצעות מאט..זזתפאד
כאשר משתמשים ב-מאש,,זתע'פאד כדי להתקין את המהדר בדיסק הקשית, נוצרות
שלוש ספריות:
פע :6 מקום האחסון של קבצי המהדר, קבצי העזרה, שגרות התמיכה
השונות, מנהלי ההדפסה והתוכניות לדוגמה.
0 פ :0 ספריה זו מכילה את התיעוד המורכב בעיקר מרשימות של
קבועים, משתנים, פרוצדורות ופונקציות. של יחידות הטורבו.
3 פ :0 ספריה המכילה את כל הקבצים המאפשרים הידור והפעלה
במהדורה 5.0 של תוכניות שנכתבו בטורבו פסקל 3.0
ובמהדורות קודמות.
שטחי האחסון הנחוצים לכל הקבצים הללו מגיעים לכדי 1,2 מגנית, הקבצים
שניתן לוותר עליהם, כדי לתחסוך שטתי אחסון, הם:
1 ספריית עע:6 מכילה קובץ בשם מאפתפת, קובץ זה מכיל את "המסרים
האחרונים" של תברת 6מ18עספ: תוספות שונות, תיקוני שגיאות בתיעוד,
עצות מועילות וכדומה. ניתן לקרוא ולהדפיס קובץ זה בעזרת 00% ₪]אקתטת.
לאתר ההדפסה אפשר להסיר את הקובץ מהדיסק הקשית.
2. ספריית 200פץ :ס מכילה רשימות של כותרות היתידות, זהו מידע שימושי
שאינו תיוני להפעלת המהדר, כדאי להדפיס רשימות אלה ולעיין בהן במקרה
הצורן. קובץ נוסף הנמצא בספריה זו הוא 006 :!מאפתטא, הקובץ מכיל
תשובות לשאלות שכיחות שנתקבלו במחלקת הסיוע הטכני של חברת 6מ18מסט,
וגם הוא אינו תיוני להפעלת המערכת. כדאי לעיין בו ולהדפיסו, אולם
= אין צורך לשמור אותו על הדיסק הקשיח.
תלק א" הכרת טורבו פסקל ו ב |
3 * אם אתה משתמש חדש של טורבו פסקל, או אם השתמשת עד כה במהדורה 4,0, לא
תודקק לקבצים שב-3ס0פתט0ע2פע:ס, ספריה זו מכילה את התוכנית
מא מכתתסעט ואת הקבצים הנחוצים להתאמת ה-5ס6פ, הגרפיקה ושגרות הטורבו
ממהדורות קודמות ל-4.0.
השימוש ב -פאח פאז הוא, אם כן, נות אך יקר, אם עומדים לרשותך שטתי
אתסון מספיקים, או אם אתה מעדיף להעביר את הקבצים לדיסק הקשיח לפנ
ההדפסה, בצע את ההתקנה בעזרת תוכנית מאט,זתצפאד.
בצע את הצעדים הבאים כדי להתקין את טורבו פסקל 0 2 בדיסק הקשית - ).
בעזרת ₪א11,8ת57א1: -
1 הכנס לכונן : את עותק העבודה של תקליטון :8%811/00₪00116מ1 והקש?
זזתידפאד:ת
כדי להתחיל בתהליך ההתקנה, פעולה זו תגרום להצגת מסך הכניסה לשגרת
ההתקנה של טורבו 5.0. המסך מתואר בתרשים 1.1. ן
2, לחץ תמץ'אפ כדי להמשיך, תוכנית שאש..ז.זתי'5א1 תבקש ממך להודיע לה באיזה
כונן נמצאים התקליטונים,. לחץ תפצ'אע כדי לאשר את ברירת המחדל - כונן
:ת, והמשך.
₪ תוכנית מאא, ?פא מבקשת פרטים אודות התצורה הרצויה (תרשים 1,2).
אתה מתבקש לבחור בין התקנה בדיסק קשיח, "טיוב" מהדורה 4.0 הנמצאת
בדיסק הקשיח, והתקנה במערכת בעלת תקליטונים. בחר ב -ססעגוע 1ד
6 886 ה בס נַהַסִבַבַק2.
פרק 1: צעדים ראשונים בטורבו פסקל 6
תרשים 1.1
המסך הראשי של תוכנית ההתקנה =א=. | וא דפאז
ו יי ה ו ו |
. ההץלפסיעק ור ] ו 6+ %0 616086 |
חש 306 [5%81ה1 %0 66666ה 1165] [31 טקםש [11ש ההתפסזק פגתך
0 ,ה595%0 תטסט הם 285081 סמעטך
.+ 50 280 ,06ה600%1 60 28108 655עק
1 6וח%1ה60-התזות
מ שררר-
4 תרשים 1.3 מתאר את תפריט ההתקנה בדיסק קשית, אתה מתבקש לאשר את שמות
הספריות (ברירת המחדל) ולהסכים להפיכת קבצי הארכיב שבתקליטונים
לקבצים בעלי תצורה רגילה, השתמש בקליד התצ הפונה כלפי מטה כדי לבתור
באופציה תס5%8118%61ת1 5682%6.
תוכנית שאש.1ג1פא1 פותתת ספריות, הופכת קבצי ארכיב לקבצים רגילים
ומעתיקה אותם לספריות שנוצרו. ההתקנה מתבצעת אוטומטית, כאשר התוכנית
מבקשת ממך, בהתאם לצורך, להכניס לכונן את תקליטון 68 כן₪61 או את
תקליטון 3ססעט*'/ 200/ פסוז6פ/ ז6.
לאחר הסיום תוכל, אם תרצה, להפעיל את מאש,צפא1ץע כדי להתאים את המהדר
לצרכיך (יש להנית כי ברירות המחדל ישביעו את רצונך).
4 חלק א" הכרת טורבו פסקל
תרשים 1.2 אופציות ההתקנה של תוכנית =6אם. | |גזפא]
.ו - - :
6 36 3 הס 785681 ספתטך ו
]| 27106 6תַ8] 3 חס 5.8 [28508 ספעט1 %0 4.8 285081 ספעט] 63%6ק0 |
6 טסקקס1? 8 חס 285081 ספתטך 1 |
1
ה%10ע1 650
1 80006 65ת66012ת הם%1קס 1(15 ,166ת62 6ע[ עטסט ס% 785081 ספעטך 5%811ה1
6תהת תטסט חס 52808 2866] ]0 69359%65ח
7-7
1.
5% רפ 711-061 601005ת256-7
תרשים 1.3 אופציות התצורה להתקנת טורבו פסקל 5.0 בדיסק קשית
0 | בולוקוס רריד הדו ₪ הלד פד 5
:6 : 1260%029 5020 00800105
6:6 : 9ת1760%0 506 108 %3%ח6וט6ס
:6 : 60%0%9ע505012 16קחבּאם
6:13 :0ת50261266%0 60028%15111%0 3.8 285081 ספתטך
צָּ : 01065 א6הקחש
הס5%8[[3%1ה1 5%87%
הם%1ע1 50
5 .1168] 505%68 785081 0פתט1 311 ע0] 0ע60%0ת01 6(% ספֶההת₪ %0 תתזתם 8פסקק
5 30%85 0ת641260%0 1(15 .11185 הםס8%1ת1907]ה60 6ה8 ,ק61( ההתפסעק 6(% 610665ה1
1 פחסם 15ת% 8ה%1ה6(3 ,שס81פ 185ת502601760%0 6ת% תעס1 0ע60%0ע01 2856 שפהת%
. 00010819ע765ת60 265% 6(% 630486
0
08[866>6 5
| פרק 1 צעדים ראשונים בטורבו פסקל 15
התקנה בדיסק קשיח ללא מאאם...זתי'פאד
בצע את הצעדים הבאים כדי להתקין את טורבו פסקל 5.0 בדיסק הקשית (כונן :6)
ללא עזרת מאש...זתיזפאד:
1, הגדר ספריה חדשה עבור המהדר, אין חשיבות לשם הספריה. בהוראות אלה
השתמשנו בשם פצ, | והנחנו שהדיסק הקשית שלך נמצא בכונן ₪. הקש את
הפקודות:
| ₪.
:₪ פס
עיי סא
עבור לספריית על באמצעות הפקודה:
עד פס
2, בחר את הקבצים שאתה מבקש להעתיק (ראה תיאור הקבצים בקטע המתיליחס
להתקנה בעזרת שאפ,ז,זתע'פא1), המינימום הנדרש הוא קובץ ,תע ספתטע' ואחד
מקבצי המהדרים - ₪א,ספּתטע או פאש,6פע', שלושת הקבצים נמצאים בתקליטון
1167ס ס0/ 86811ת1, כדי לטעון את כמות הקבצים המינימלית להפעלת סביבת
הפיתוח ההידברותית (אינטראקטיבית), הכנס את תקליטון 0116 / 1ד
לכונן :8 והקש:
עפ : תקפז סתתטיזית 602%
פי:6) מא סמתטייית צעסס
3 | אפשרות אחרת היא העתקת כל הקבצים שבשלושת התקליטונים אל הדיסק הקשיח
ומחיקת הקבצים שאתה מבקש לוותר עליהם, לשם כך, עליך להכניס כל אחד
מהתקליטונים לכונן : ולהקיש: >
פן *,*נת צ609
4 אם במערכת שלך קיים קובץ זגם,6פאפסיט3 המתבצע אַוטומטית בעת התלחול,
עליך לשלב בקובץ הוראת אע'תת :עם הפניה לספריה החדשה, פע', אם אין
בקובץ זיתם, סמאמסייטג הוראת צצעיתע, הוסף את השורה: |
6 חלק א':: הכרת טורבו פסקל ם
קיז :=זזידתק
אם הקובץ כבר כולל הוראת אצ%ַתק, הוסף את ההפניה לשורה הקיימת,
לדוגמה: |
פיז :;זיאדתתפ :205;0 :)=זזיתק
התקנה בתקליטונים באמצעות פאם..זזת'פאד
תקליטון אחד (בעל צפיפות כפולה) יכול להכיל את כל הקבצים הנחוצים להפעלת
טורבו פסקל 5.0. בצע את הצעדים הבאים כדי להתקין את טורבו פסקל 5.0
בתקליטון, בעזרת מאם,11תפא1, ההנתה היא ששמות כונני התקליטונים הם :ת
ו-:. | ₪
1 אם המערכת שלך כוללת שני בוננים, הכנס לכונן :פ את התקליטון הריק
האמור להפוך לתקליטון העבודה שלך. הכנס את תקליטון המערכת הרגיל שלך >
לכונן :2 והפעל את פקודת עתגאתסע כדי להפוך את התקליטון הריק .
לתקליטון בר-תיחול:
:ם זהאתסץ
2 אם המחשב שלך כולל כונן אחד בלבד, תתבקש להכניס אֶת התקליטון הריק
לכונן : לאחר הקשת פקודת צתאתסת.
3 הכנס את תקליטון העבודה 5%811/00₪01162ם1 לכונן :5 והקש:
זזתי'פאדית
כדי להתחיל בתהליך ההתקנה, פעולה זו תגרום להצגת מסְך הכניסה לשגרת.
ההתקנה של טורבו 5.0. המסך מתואר בתרשים 1.1.
4 לח תמנ'אע כדי להמשיך, תוכנית מאפ,.ז,1ג'1פא1 תבקש ממך להודיע לה באיזה
כונן נמצאים התקליטונים, לחץ אפאפ כדי לאשר את ברירת המחדל - כונן
ו
5. תוכנית מאא,1.זג'פא1 מבקשת פרטים אודות התצורה הרצויה (תרשים 1.2).
אתה מתבקש לבתור בין התקנה בדיסק קשית, "טיוב" מהדורה 4.0 הנמצאת
-
פרק 1 צעדים ראשונים בטורבו פסקל 7
בדיסק הקשית, והתקנה במערכת בעלת תקליטונים, בחר באופציית ההתקנה
בתקליטון.
6. תרשים 1.4 מתאר את תפריט ההתקנה בתקליטון, אתה מתבקש לבחור בין סביבה
מוכללת (שַא₪,ספּתט') ובין מהדורת שורת הפקודות (שא₪,ס6פעי), ההנחה היא
שאתה מעדיף את שאש,ספּתּט1' - המהדר שבסביבה המוכללת, קבצי העזרה אינם
בגדר חובה, אולם כדאי להעתיקם. בחר באופציה מס5%8118%1מ1 5682% בעזרת
קליד החץ הפונה כלפי מטה.
תרשים 1.4
אופציות התצורה להתקנת טורבו פסקל 5.0 בדיסק קשית
9ל%111) הס5%8113%1ה1 5.8 735081 ססתטך
%הסוהסז טה 5606 15047
הם5%8[113%1ה] %ת5%8
בו
% שקעם1] עטסט 60 טַע60 %0 תפ1ש טסט 285081 ספעט1 01 הס1פתסט התסנותש 58166%
ק[ש( 6(% 60שה %סה 60 906 ,הס51עפט 6ה0-11ה8הה0ש 6ת% טקסס טסט ]1 ,ה595%6
.4
658 >61606פ5-ת218 ה5%8118%10ה1 %ת9-5%87? ק[1-8461ץ
18 תלַק א" הכרת טורבו פסקל |
תוכנית מאש,תעתעפא1, תבקש ממן, בעת הצורן, להתליף את תקליטון
-116סת 0ס0/ 5%811ת1 שבכונן בתקליטון הריק שעליו הפעלת את פקודת ז'תאתסת, אם
בתחרת באופציית ההעתקה של קבצי העזרה, תתבקש אחר כך להכניס לכונן גם את
תקליטון 05111%6168/ 1615
סמן את התקליטון החדש במדבקה "טורבו פסקל - תקליטון מערכת", לאחר השלמת
תהליך ההתקנה.
התקנה בתקליטון ללא מאש..זזתי'פאד
גם אם אתה מעדיף לבצע את ההתקנה ללא עזרת טאם,.,זתי'פא1, עליך לבצע תתילה
צעדים מספר 1 ו-2 בסעיף הקודם, וליצור תקליטון מאורגן חדש (ַתְאֶתס0ע), בצע
את הצעדים שלהלן, לאחר ביצוע פעולת ההכנה:
1 הכנס את תקליטון העבודה 01167 0ס0/ 5%811ת1 לכונן :א ואת התקליטון החדש
שהכנת לכונן :8 והקש את הפקודה:
:ם פיז סמתטיז':ת צעסס
כדי להעתיק את קבצי המערכת.
2 כדי להשתמש במהדורת הסביבה המוכללת של המהדר, הקש את הפקודה:
ים עמאט,סמתטיית צפססס
אם אתה מעדיף את מהדר שורת הפקודות (אפשרות פחות סבירה) הקש:
ים מאם,ל)עינית צ02)
3 כדי להעתיק את קובץ הסיוע המקוון (פתשא), הכנס לכְונן :ג את התקליטון
68% ק61 והקש:
: .זו סמתטזית צקפ0)
במערכת בעלת כונן אתד בלבד יש להשתמש באותן פקודות, |אולם המערכת תנתה
אותך ותבקש ממך להכניס לכונן את התקליטונים המתאימים,
פרק 1: צעדים ראשונים בטורבו פסקל 19
קריאת קבצי ארכיב
אם זה עתה התקנת את טורבו פסקל במערכת בעלת תקליטונים, או התקנת את המהדר
ידנית בדיסק הקשיח, עליך ללמוד להשתמש בקבצים שבתקליטון השלישי (אם ביצעת
התקנה בדיסק קשית והשבת בתיוב (פמצ) על האופציה פסטנתס:ת 0% תוכל
לדלג על הקטע הבא).
חלק מהקבצים בתקליטון נושאים את שם ההרחבה סַהּה, קבצים בעלי שם הרחבה זה
נקראים קנצי ארכיב, הם מכילים קבצים שנשמרו בצורה "דתוסה", כדי לצמצם את
שטחי האחטון ואת מספר הדיסקים הנחוץ לשמירת חבילת התוכנה, כדי להשתמש
בקבצים יש לבצע תתילה פעולת "הרחבה", שתחזיר להם את התצורה המקורית.
פעולה זו מתבצעת בעזרת תוכנית 00%,א0גפאט. אחד מהקבצים הללו הוא 6ַתּת,₪01,
המכיל את השגרות הגרפיות של המערכת.
תוכנית 00%,א6סתפאט מכילה הוראות שיסייעו לך בעת ההפעלה, הכנס את תקליטון
העבודה ששמו 3סספטע'/ סספ/ 05ו26/ 261 לכונן :ת והקש את הפקודה:
א:)תפאט:ת
היעדר פרמטרים בפקודה גורם להצגת הוראות ההפעלה, כדי לבצע "הרתבה" של
הקובץ 561,286 יש להקיש:
ל)ת,זסם <)תפאטי:ת
או
:ם ל)את,61ם <)תפאט:ת
בהתאם לכונן שבו מתבצעת ההתקנה.
התאמת המערכת לטורבו פסקל 5.0
תתילה עליך לוודא שספריית השורש של המערכת שלך כוללת קובץ בשם
8 קובץ 58צ16,9עא00 כולל הוראות 205 מיותדות המתייחסות למנהלי
התקנים ולפרמרטים. שערכיהם תייבים להיות ידועים למערכת ההפעלה בעת התיחול.
0 חלק א" הכרת טורבו פסקל |
לדוגמה: מערכת 205 מאפשרת, כברירת מחדל, לפתוח 8 קבצים בעת ובעונה אתת.
המהחדר של טורבו פסקל זקוק ליותר קבצים פתוחים, חברת 6ת218ספ ממליצה לשנות
את ברירת המחדל ל-20 קבצים.
מערכת 505 מעמידה לרשות המשתמש את קובץ מנהל ההתקנים 5צ1,8פאג התומך
במקלדת מורחבת ובמסן. קובץ 5צ1,5פאת הוא קובץ תקני בעולם המחשבים,
ותוכניות המסתמכות על קובץ 51א יכולות לפעול היטב במחשבים של יצרנים
שונים, מהדרי טורבו פסקל אינם וקוקים למנהל ההתקנים 5צ1,5פאה, אולם חלק
מהיישומים המתוארים בספר זה מניתים שהקובץ קיים במערכת.
יש להניח כי קיבלת את קוב 5צ51.5א1 יחד עם מערכת המתשב שלך. אם הקובצ
אינו מותקן במערכת שלך, אתר אותו בתקליטון המערכת המקורי שלך והעתק אותו
לספריית השורש של הדיסק הקשיח, אם המערכת שלך היא מערכת בעלת תקליטונים
בלבד, העתק את הקובצ לתקליטון המערכת.
קובץ 5צ16.5א00 הוא קובצ הנוצר בדרך כלל על ידי המשתמש. אם במערכת שלך
כבר קיים קובץ כזה, ערוך אותו בעזרת מעבד תמלילים או תוכנית עריכה כלשהי,
וודא שהקובץ כולל את השורות:
5 דסא =מדטיו
520 דד
שים לבי הקובץ יכול לכלול מספר הוראות =מ0בטמכ, אם אין ברשותך מעבד
תמלילים, וקובץ 8צ10.8עא00 כבר קיים במערכת שלן, הקש:
א מפצןך
כדי להציג את תוכן הקובץ, הוספת הוראות מ0דטמכ ו-11₪5ע מתבצעת במקרה זה
בעארת פקודת צע00, הקש את השורות שלהלן ולתץ פפד'אא | בסוף כל שורה.
5 ₪א0 צפ 0
5צ ד =מ)ד יט
0 =5 די
לאחר ביצוע פעולה זו עליך להקיש את השורות שהיו כלולות בקובץ 5צ16.8עא60
המקורי שהיה במערכת, עם סיום ההקשה לחץ 6א, ואתר תפזאפ. על המסך תופיע
ההודעה:
פרק 1 צעדים ראשונים בטורבו פסקל 21
48 (116)5ע 1
המבשרת על סיום מוצלת של הפעולה.
עתה עליך לבצע תיחול של המערכת (ססס1) כדי לשלב ב בה את הפרמטרים החדשים 0
5
בזאת סיימת את כל ההכנות, אתה מוכן להפעלת המהדר.
הפעלת טורבו פסקל 5.0
לאחר שהשלמת את פעולת ההתקנה של מהדר טורבו פסקל, תוכל להפעילו על ידי
ביצוע מספר פעולות פשוטות. (זכור! התיאור שלהלן מנית שבחרת באופציית
הסביבה המוכללת מאם ספתטנ').
הפעלת טורבו פטקל במערכות בעלות דיסק קשיתח
כדי להפעיל את טורבו פסקל במערכת בעלת דיסק קשית, עליך. לעבור תחילה
לספריית טורבו פסקל. הקש:
פ פס
אם תרצה, תוכל להפעיל אתר כך את פקודת תדס כדי לוודא שאכן הגעת לספריה
המבוקשת, הפעולה הבאה היא הפעלת המהדר, הקש:
0מתטץ
המחשב יטען את המהדר.
הפעלת טורבו פסקל במערכות עם 7
כדי להפעיל את טורבו פסקל במערכת עם תקליטונים, יש להכניס את תקליטון
המערכת של טורבו פסקל לכונן :8 ולהקיש:
סמתטד
2 חלק א" הכרת טורבו פסקל ו
המחשב יטען את המהדר.
לאתר טעינת המהדר, מדיסק קשית או מתקליטון, יופיע על הצג מסך הכניסה
למערכת טורבו פסקל 5.0. המסך מתואר בתרשים 1.5.
תרשיס 1.5
מסך הכניסה למערכת טורבו פסקל 5.0
תס%הש/אהקק | 008 | פ>חסן0% | 116קהכ | וק | 401% | פוגק
1%
6:05 | >הה6הנת/ 0%] 6%פה] | 1 601 1 החנ
[358 סמתטך
8 ח510ת06
טכ 1980 ,1983 (6) %ת18ת0ק60
ו ,3510081תע%8ה] 30136
ת3%א
0ה10-6? 79-8%6 780-516 806ת77-1 ה150טפ-6 | הסס6-פק קן[6ַה-1ץ
לחץ תפיאש כדי להפעיל את המערכת.
מסכי התפריט של טורבו פסקל
ברוכים הבאים לסביבה המוכללת! המסך המוצג בפניך בשלב זה אינו מסך עמוס
במיוחד, השורה העליונה של המסך מכילה את כל הכלים הנחוצים לפיתות תוכנית
טורבו פסקל. המסך כולל גם שני חלונות: חלון העריכה - ₪616 - שבעורתו
| פרק 1: צעדים ראשונים בטורבו פסקל 23
כותבים ומתקנים תוכניות, וחלון הצפיה - ₪860 - הנמצא בתחתית המסך, ומשמש
לניפוי שגיאות, חלון הצפיה יתואר בפירוט בפרק 8, בשלב זה לא נזדקק לתלון
הצפיה, ולכן נוכל' "להעלים" אותו על ידי לתיצה על 25.
ההפעלה הראשונה של המהדר גורמת להארת האופציה 2116 בשורה העליונה של
המסן. לחץ ש66םע כדי לבחור באופציה זו, הבתירה גורמת' להצגת אופציות
המשנה של 116ע, כמתואר בתרשים 1.6.
תרשים 1.6
התפריט של 116ש
הסלהט/ סיה | צטלכק | >הם%1ע | 116ע₪0? | הו | ₪06 | 116ץ
6:5 | %ה66הגחט 7% %עסהפה] | 1 [ם| בק 46
3ץ-+![8 א₪16
ש
2 6
0 156
וע
ת1) ספחהּ
1 0
א-81% | 015
תג
הסח-18ץ 68 18-0%60 שסגע17-1 ה1%0ש26-5 5-2008ץ ק[6ה-1ץ
תוכל לעיין בתפריטי האופציות האחרות בעזרת קלידי החיצים הפונים ימינה
ושמאלה. | |
א-16ת, באופציות שבתפריט ניתן לבתור בשלושה אופנים:
4 תלק א" הכרת טורבו פסקל 0 ,
תפריט 2116 והשורה התחתונה של המסך מכילים מספר פקודות ובצידן שם הקליד,
או צירוף הקלידים המבצע אותן, לדוגמה - האופציה 001%| מתבצעת בלחיצה על
1 | הצבת הסמן על האופציה המבוקשת בעזרת קלידי החתיצים שבמקטית הספרתית
ולחיצת נס6תא.
2 הקשת האות הראשונה של ההוראה, כאשר נמצאים בתפריט המתאים, לדוגמה:
כאשר נמצאים בתפריט 116ע, ניתן לעזוב את טורבו פסקל בהקשת 0.
3 שימוש בקליד ששמו מופיע ליד שם האופציה, למשל: לתיצה על א-11% כדי
לצאת מטורבו פסקל (16גו0).
אין עדיפות לאחת מהשיטות הללו. בתר בשיטה הנוחה לך.
נסקור עתה בקצרה את אופציות התפריט הראשי:
6 זהו הקשר שלך עם העולם התיצוני, תפריט 116ע מאפשר לך לטעון,
לשמור וליצור קבצי תוכניות, לבתור ספריות, ולעצור וזמנית -
באמצעות אופציית | 8611 08 - את המהדר ולעבור למערכת
ההפעלה, (כדי לחזור לטורבו, יש להקיש 1דא₪).
2 כאשר בותרים ב-₪61%, הסמן עובר לחלק הראשי של המסך, שם ניתן
להשתמש במעבד התמלילים של המערכת כדי להקיש ולערוך תוכניות.
החזרה לתפריט הראשי מתבצעת בעזרת 210 או בלתיצה על 1%ה יתד
עם קליד האות הראשונה של הפריט המתאים בַּתפריט. למשל: לתיצה
על ש -1% תתציר אותך לתפריט 116ע.
בגות כמשתמע מהשם - אופציה זו גורמת להפעלת הקוד שיצרת. אם
: התוכנית שלך עדיין לא עברה הידור, תתבצע |פעולה זו תתילה.
66 ברוב המקרים תרצה להריץ את תוכניותיך מיד. אולם, ייתכן גם
שתרצה לבצע הידור של התוכנית ולשמור אותה על הדיסק כדי
. להפעילה במועד אתר, מחוץ לסביבה המוכללת, אופציית 116קחס6
מטפלת בנושא זה.
-
פרק 1: צעדים ראשונים: בטורבו פסקל 25
0 ברירות המתדל של המהדּר מתאימות לרוב משימות התכנות, בשלב
זה נסתפק בהגדרות הנתונות.
9גו6כ הסביבה המוכללת כוללת גם מנפה (מַפשַפַט60) מתותכם, שיסייע
לך "להציץ לתוך קרביה" של התוכנית תוך כדי פעולה, פעולת
הניפוי מתוארת בפרק 8.
בת8%6/ 68%קם אופציית [₪360/ 68% מאפשרת לך להפעלל קטעי תוכנית, ולנתחם
בנפרד, גם נושא זה נדון בפרק 8.
יש להניח כי גם סקירה קצרה זו הצליחה להמחיש לך את כוחה הרב של הסביבה
המוכללת, בחלק מהאופציות תשתמש במועד מאוחר *ותר, ובוודאי יהיו גם
אופציות שלא תזדקק להן אף פעם.
שלבים ביצירת תוכנית טורבו פסקל
בחלק הנותר של הפרק נתרכז בפעולות השגרתיות שתבצע, קרוב לוודאי, עם כל
הפעלה של המערכת: הקשה, שמירה, טעינה והפעלה של תוכניות.
הקשה ועריכה של תוכנית
אחד הכלים החשובים של הסביבה המוכללת הוא העורך. ננסה להשתמש בו עתה. בחר
באופציה 61% מתוך התפריט הראשי והקש את התוכנית הבאה, (לשימוש באותיות
גדולות וקטנות, ולמרוותים בין המלים, יש חשיבות רק בקטע התחתום
בגרשיים).
7 תההעצסעס
ת1סס
( !18עסש ,16110 )מ1661עשט
1
הוראת ת1661שא (כלומר "6מ11 166עא") מורה למהדר להציג את הסטע התתום על
. . ו
ידי סוגריים.
פונקציות העריכה הבסיסיות של טורבו פסקל דומות מאוד לאלה של מעבד
התמלילים 65%82שסא, אם לא עבדת עם מעבד תמלילים זה, ובעיקר אם אין לך כל
ניסיון בעבודה עם מעבדי תמלילים, עליך להכיר כמה כללים:
26 חלק א" הכרת טורבו פסקל ב
1 הסמן (הקו התחתי המהבהב המסמן את מקומך על המסז), ניתן להזוה בעזרת
קלידי התיצים שבמקשת הספרתית, התווים שתקיש יופיען במקום שבו נמצא
הסמן, העורך יעקוב אחרי השורה והטור שאתה נמצא בהם,
2. סיים פסקה בלתיצת שס6תש.,
3 אם שגית בהקשה, הזז את הסמן למקום המתאים, והקש| תווים חדשים. כדי
למחוק תו מיותר, יש להציב את הסמן במקום שבו נמצא התו וללחוץ על
קליד 261 (461656), לחיצה ממושכת יותר על קליד אה תגרום למתיקת מספר
תווים. |
המסך שלך אמור להיראות עתה כמו המסך שבתרשים 1,7.
תרשים 1.7 תוכנית "|סריזסש ,אסוך6]"
הס)הט/אהסי | פטלכ] | 5הם0%1 | 118קהסף | ו | ₪416 | ₪116
56%
5 6:0 * %ה08ה1 הו 8% 67%פה] | 5 601 4 פחו
:% תתהתפסתע
ו
( '!18עסש ,76110 )ת1461תט
ו ₪0
גוה710-6 6אגה29-8 ק78-566 806ת77-1 ת1%0טפ76-5 75-6008 [6ה-1ץ
| כ פרק 1: צעדים ראשונים בטורבו פסקל 27
קיימים, כמובן, מספר עזרי "עריכה נוספים, אולם בשלב זה אינך תייב להכירם.
העריכה היא פעולה פשוטה, ותוכניתנים מנוסים רבים נוהגים להשתמש בעורך של
טורבו פסקל כבמעבד תמלילים. :
הפעלת התוכנית
הגיע הזמן להפעיל את התוכנית הראשונה שכתבת, לח 10ע כדי לצאת מתוכנית
העריכה ולתזור לתפריט הראשי, לאחר מכן, בתר באופציה מטת, כמתואר בתרשים
8. פעולה זו מורה לסביבה המוכללת להדר את התוכנית ולהפעילה, (דרך אחרת
לביצוע אותה פעולה: לתיצה על 5פ-51%6 מתוך תוכנית העריכה).
תרשים 1.8
תפריט חטקא
תס+הט/%סי | 504 - >הסן א 6וח₪ש תת ₪15 ₪5
6:05 * %ה66ת1הש 0-9 = חות |6 4 6ה51
. 2 6565%5ת ההעפסיןן :6 תתבתפסוע
14 תספתטט 0+ הסט
77 0 6סג 0 )ת1+61תש
18 067 660 , ₪60
5+ 0 607
0ו118-80 %8ג3ה79-8 ק18-5%8 77-17806 ה6-56160] 008 5-2ץ ק61ה-1ץ
ו
28 חלק א" הכרת טורבו פסקל ו
הקליד ה"תם", המאפשר ביצוע מיידי של אופציית מגות, הוא 9ע-0621. לחיצה על
צירוף קלידים זה, מכל מקום שהוא (כולל מתוך העורך) תגרום לביצוע הידור
ולהפעלת התוכנית לאחר מכן.
= כאשר המהדר נתקל בשגיאת הקשה, הוא מפסיק את פעולת ההידור ותוזר לעורץ,
.כאשר הסמן נמצא בקטע . השגוי, כמו כן, התוכנית מסבירה| באנגלית את מהות
השגיאה שנתגלתה, תקן את השגיאה ונסה להפעיל את התוכנית שנית, נסה ליצור
שגיאת הקשה מכוונת (למשל, השמטת מרכאות) וצפה בתגובות המהדר.
כאשר אין בתוכנית שגיאות הקשה, המסך יהבהב קצרות ויתזוך לעורך. אתה מצפה
בוודאי להופעת ההודעה שבתוכנית. היכן היא?
עיין פעם נוספת בתרשים 1,8, האופציה האחרונה בתפריט תו היא ת50260 מעספט
או 5ע-16ת, הפעל אופציה זו (בקריאה לתפריט, או ישירות: בשימוש בקליד
5ע), פעולה זו תגרום להצגת מסך הדומה למסך המתואר בתרשים 1.9. עתה
יוצג תוכן המסך, כפי שהיה לפני הפעלת המהדר, כאשר ההודעה החדשה מופיעה
בסופו. לתץ על קליד כלשהו כדי לתזור לסביבה המוכללת. |
שמירת תוכנית
= עייץ בתרשים 1.8. בפינה הימנית העליונה מופיעים התווים הק מאתאסאיס (או.
פגע,אהאסא:ת, במערכת בעלת תקליטונים). אהו שם הקוב |שיכיל את התוכנית.
אולם, במקרה זה, טרם שמרנו על תוכנית בקובץ, נתקן זאת מִיד,
תרשים 1.9 הפלט של תוכנית "!רסא ,סרר46"
60
611,
כפי שבוודאי וזכור לן, הספריה התורנית היא 2?:₪ (בדיסק קשית) או :ג
(בתקליטונים). וו הספריה שבה נמצאת כאשר הפעלת או |טורבו פסקל. בתר
באופציה 16נע, אתת האופציות בתפריט זה מאפשרת לך לשנות את הספריה
התורנית, כאשר יצטבר בדיסק שלך מספר רב של תוכניות, |תרצה קרוב לוודאי
, פרק 1 צעדים ראשונים בטורבו פסקל 29
לסווג אותן, ולאחסן כל קבוצה בספריה נפרדת, בשלב זה לא נשתמש באפשרות
השמירה בספריה נפרדת.
| בחר באופציה ס6 166:א, אתה מתבקש לציין את שם הקובץ. השם שבו נשתמש הוא
שם התוכנית - 155%ת, תרשים 1.10 מתאר את המסך אחרי הקשת השם ולפני לתיצת
שס6תא, לחיצה על %662מא תשנה את התווים פאגאסא שבפינה הימנית ל-צַפאדע.
תרשיס 1.10 בתירת שם לתוכנית "[16זסא ,אסוך6ה"
וטיק | פַטמסק | 5ה%10ע | 116קחסש | הג | 841% | פנגוץ
56% -
6:05 * %ה06ה1חש 1% 150%
גוחס-218 ס6אה79-8 70-5%65 6 ו1506ש76-5 75-2008 ק61ה-1ע
ווח
אין צורך לציין את שם ההרחבה של הקובץ, ההנתה היא ששם ההרתבה של כל קבצי
התוכניות הוא 285, באופציה ס> 166 משתמשים רק כדי ליצור קובץ על הדיסק.
מעתה, עליך להשתמש באופציה 5846 כדי לשמור מהדורה מתוקנת של התוכנית על
הדיסק. אל תשכת לשמור על התוכנית לעיתים קרובות, בדרך כלל, התוכניות
ארוכות יותר מתוכנית ההדגמה הצעירה שהצגנו כאן, ואובדן מהדורה שלמה של
תוכנית עלול לגרום עוגמת נפש רבה, ניתן לבצע פעולת שמירה (6ש58) מיידית
בעזרת הקליד ה"חם" - 2ע, זכור להשתמש בקליד זה תכופות.
0 חלק א הכרת טורבו פסקל |
בחר באופציה 081% כדי לצאת מהמהדר. הפעולה הבאה שתלמד לבצע היא רה
תוכנית מהדיסק.
טעינת התוכנית..
| הפעל מחדש את המהדר על ידי הקשת סמתטע' מרמת המנחה של 005, לאחר הטעינה,
בחר באופציה 116ע, כמתואר בתרשים 1.6, יש להנית שאתה| נמצא בספריה שבה
היית: כאשר הפעלת את טורבו פסקל בפעם הראשונה (בדוגמאות שלפנינו: פע :ס או
:), אם אינך נמצא בספריה המתאימה, בחר באופציה :61 8 והקש את שם
הספריה שבה אחסנת את התוכנית.
| בחר באופציה 086/, תגובת המערכת לכך מתוארת בתרשים 1,11: על המסך מופיע
חלון זעיר שבו רשומה פקודת התיפוש שתופעל, לחץ 66מש כדי לאשר את ברירת
המחדל.
המערכת תסרוק את הטפריה התורנית ותאתר את כל קנבצי הְתוכניות של פסקל,
ותציג את רשימת התוכניות, בסדר אלפביתי, ו - יותן, כמתואר בתרשים
2.
השתמש בקלידי התיצים שבמקשת הספרתית כדי לבחור ב-1992,225ע, הצב את הסמן
> על גבי השם המתאים ולתץ עס66תם,
= התוכנית 1395',25ע מוצגת עתה בחלון העריכה, התיקון שעליך לבצע הוא החלפת
המלה "18עסשא" במלה "תִבהּחַבּ".
זכור: עליך להציב את הסמן במקום שבו אתה מבקש להקיש או לבטל דבר מה.
הביטול מתבצע בעזרת 261, התוכנית המתוקנת אמורה להיראות כן:
ק%פתגע תהעפסעס
בם1שסס
|( "תנגהב ,16110' . )ם1%61עט
| מס
הפעל את התוכנית פעם נוספת, כדי לעשות ואת תוכל לחזור לתפריט הראשי
ולבחור ב-מגות, או פשוט להשתמש ב-9ע-0621, ניתן לראות |את תוצאות ההרצה
באמצעות האופציה מ60ע802 עספט (5ע-16ג).
| | רה פרק 1: צעדים ראשונים בטורבו פסקל 31
תרשים 1.11 |
בחירת שם התוכנית הבאה שמבקשים לטעון
טאי | 8ָטל | >ה%10ע | 16נעהסם | תו | ₪016 | 18
1% :
1% 56%ה1 1 1ס| 3ץ 5
סגה 7118 1030
146
0+ 158
ג
12 6פההּ
1ו 5
א-81% | 01%
6:5 > 5ה46ה1הש
ו6ח- ?18 6אח-79 ץ70-5%8 17-12808 (1%0ט16-5 ה00ק- 75 ק21-061
ההודעה שתוצג על ידי התוכנית המתוקנת תהיה !ת8481 ,36110 (במקום ,116110
שש בתוכנית המקורית). | 2 7
צא מהמהדר (6גגו0) על ידי בתירת האופציה המתאימה בתפריט 16נע או באמצעות.
א-51%, המהדר יגיב באזהרה המתוארת בתרשים 1,13.. התוכנית .המקורית שונתה,.
ולכן התוכנית מציגה את חלון צ+1ע6 שבו אתה מתבקש להודיע לתוכנית
במפורש אם אתה מבקש לשמור על הקובץ החדש או לוותר על השינויים האתרונים
שערכת בו, בתר באופציית השמירה על הקוב המתוקן. 9%-/
הכרת טורבו פסקל
חלק א':
תרשים 1.12
הצגת רשימת כל הקבצים בטפריית פז:6, המתאימים להגדרה 6ק.*
0860 סיק | עטק | >הסן%ק | 116ןעהס | הו
- 5 :6 | 060%ח1 חש 0% %תבפה] 1 [ס
6: 5
4% פות
תת 05,אא]01ע | 5הק.0תשפ1סע ץד |5
0 00% 0015.205ע מש ררג 5
אוו
סוד
0% 1-861606>%5-> | 0(0056-+*11 אמבָת טפת-24 ק[שם-1ץ
. . .- /
הפעולה האתרונה הורתה למהדר לשמור על הקוב החדש ולבטל
את העותק הקודם של
%9, המערכת תבצע את הוראתך, אולם לפני כן ה?א תעתיק את הקובצ
המקורי לקובץ גיבוי בשם אתם,ת'פתדע, שיימצא באותה ספריה, המערכת שומרת רק
"דורי" אחד של קבצי גיבוי, כדי לשמור עותקים של "דורות" נוספים, יש לכנות
את הקבצים בשמות אתרים, גם תוכניתנים מנוסים משתמש?ם בקבצי הגיבוי כדי
"להציל" תוכניות שהיו אובדות לנצח בלעדיהם.
פרק 1: צעדים ראשונים בטורבו פסקל 33.
| תרשים 1.13
אישור. שמירה או ביטול השינויים >
| ת3%0ט/03%] | פטמכם ו וע | הג - ₪118 | ₪118 5
5 :0 א !ו : בי 6תספחן. 6 001 | 3 פחגע
ו :% מתהתצסתעק
ח1צספ
- יט = 1%61תט
(א/ל) לחַטַ53 - 5 5 | ₪0
ו
50-00 ק1-61ץ
הפעלת התוכנית ישירות מתוך 558
עד כה, ראינו כיצד ניתן להפעיל את טורבו פסקל מתוך הסביבה המוכללת. אולם,
ייתכן שכתבת תוכנית שירות שיש להפעיל ישירות מתוך 05 או שכתבת משחק,.:
= שאתה מבקש' להעביר לידיד שהמהדר לא נמצא ברשותו, *יתכן גם שפיתחת יישום
עסקי האמור לפעול במספר מחשבי 6 במשרדן.
הפעל את המהדר. בהקשת. ספתטץ מרמת. המנחה של 5 לאחר. הטעינה, בחר
יבאופציה 116ע 06 את תוכנית 25 דע
בדו להפעיל את התוכנית. ישירות מ-008 עליך לבחור. בתפריט 6 האופציה
הרביעית בתפריט זה, ת8610ת26801, מאפשרת לך לבחור בין הידור לציכרון
ובין הידור לדיסק. המעבר בין שתי האופציות מתבצע בלחיצת שססמא.
4 תלק א הכרת טורבו פסקל 27 > |
עליך לבתור באופציית ההידור לדיסק, כמתואר בתרשים (1,14. אתר כן, בחר
באופציה הראשונה, 116סס (9ע-216), תגובת המערכת: הצגת מסך תיאור מצב,
הדומה למסך המתואר בתרשים 1,15. לאתר הופעת ההודעה 85860058, המבשרת לך
על סיום מוצלת של פעולת ההידור, לו עססמשע כדי לחאור לעורן, ואתר בחר
6 כדי לצאת מהמהדר,
תרשים 1.14
תפריט 6ורקווס6
אהי | פטעכם | פחסו6ית 118עה00 | ו
6 9
5 ד :| 9-% ו 6 601
]/ +
3 6ח1ת
:% תהבתפסזק
הח
החס3%1ה265%1 |חנַָבּפה (0ס8611' 6ה%61נעש
זו
:1118 טתבתגיע
]חן 6
ו ₪0
0ה6ה-718 %6ג79-8 ע78-5%8 17-17306 ה1%0שפ-76 08 75-20 כ6[12!-1ץ
פרק 1 צעדים ראשונים בטורבו פסקל 35
- תרשיסם 1.15
ההודעות המופיעות בזמן ההידור לדיסק
77 ------------------------
הס | פטעכ] | >חס%1 | 6[ןעחכע | תג | 45| >נוק
- 6 > 7
-: 60 א %ה0ח1 הו 0% 150% 26 [60 3 סהגם
:5% והתפסיע
ו
( 'ה1ַבּפ3 ,₪110]! )ה1%61תט
ו ₪0
215% 50 4ח111עחהם6
7,705 :116 הגגו
5 +* 2170 :4ה111עחטס
8 | |0%8ך
4 4 :6001180 פסחו1
:נתסתסה 16מג1ובּטה
9 89 655תת : 5
6ה110-86 ס6אג79-8 718-5602 6סגת]-17] ת1%0ע16-5 ה200-פץ 1-1
. 5 . .
6 תלק א" הכרת טורבו פסקל - 5
הקשת הפקודה צפתזע 12 תגרום להצגת שלושה קבצים, כמתואר בתרשים 1.16.
תרשים 1.16
הקבצים שנוצרו במהלך האחרון
0201 1%
1 סח פה |0 49108 ה1 סתט[סט
6% ]0 0עת8₪0%0ת21
:+ 9-88-08 | 59 05 תד
4:2 9-88-88 | 59 אוו זפווץ
9-88-008 | 1848 מא דפתזץ
6 05685 696320 (118)5? 3
יב
[הנבּפָהּ ,ם1611!
6%
.ןו
5 תדע הוא הקובץ המכיל את תוכנית "!מ3081 ,6116"
אגם צפתזץע - הוא הקובץ המכיל את התוכנית המקורית ,110פַאּ"
!סש"
מא צפפדץ הוא הקובץ הניתן להפעלה.
כדי להפעיל את תוכנית אאש,185ע יש להקיש:
קדהפלצ
פקודה זו גורמת לטעינת התוכנית, להפעלתה ולהצגת ההודעה "!מ481ב ,110סא".
סיכום
בפרק קצר זה למדת כיצד להוציא את מהדר טורבוּ פסקל מהאריזה ולבצע:
< התקנה של טורבו פסקל ב-6ע.
הקשה של תוכנית.
עריכה של תוכנית.
שמירה של תוכנית. .=
טעינה של תוכנית.
פעולת הידור של תוכנית..
הפעלה של תוכנית מתוך הסביבה המוכללת.
הפעלה. של תוכנית עצמאית ישירות מ-08פ.
פרק זה תיאר גם את מערכת התפריטים של הסביבה המוכללת של טורבו פסקל והציג
בפניך את הפקודות והאופציות שתשתמש בהן בהמשך.
פרק 2: המבנה של תוכנית טורבו פסקל 39
פרק
המבנה של תוכנית טורבו.
פסקל
פרק זה מציג את העקרונות שעליהם מבוססת שפת פסקל. הוא מתאר את עקרונות
המבנה של התוכנית ואת מרכיביה העיקריים. בסוף הפרק ננתת תוכנית טורבו
פסקל.
אם שפת פסקל מוכרת לך, ובעיקר אם אתה בקיא בניב הטורבו, תוכל לדלג על
הדפים הבאים, או לעלעל בהם בקצרה, 2 אם מעולם לא כתבת תוכנית פסקל - וה
הפרק עבורך.
נסה לבצע את התרגילים והדוגמאות שבספר, אין צורך לחשוש משגיאות! אין
סבנה שפעולה כלשהי שתבצע תגרום נזק למתשב או לתוכנה, במהרה תיווכת כי
טורבו פסקל מגינה עליך ומדריכה אותך. המצב הגרוע ביותר שאתה עלול להיקלע
אליו הוא תוכנית "תקועה" (למשל במצב של לולאה אינסופית), במקרה כזה, עליך
ללחוץ 61פ-0521-21% ולבצע תיחול של המערכת, זכור כי במקרה זה יאבד כל
החומר הנמצא בזיכרון ועדיין לא נשמר על הדיסק. כדאי, אפוא, לבצע פעולות
שמירה תכופות. :
נתתיל, אם כן, בהתחלה.
מהי שפת המחשב?
נסה לחשוב על המתשב כעל מכשיר - מחשבון כיס שקלידיו מופעלים .על ידי
תוכנית, (למעשה, במובנים רבים מחשבון כיס פשוט. המבצע את ארבע פעולות
התשבון מתוחכם יותר מה-620 של המחשב האישי), מתשבון ביס מסוגל לטעון,
לחבר, להציג ולאחסן נתונים תוך הסתמכות מלאה על המעגלים האלקטרוניים
0 תלק א" הכרת טורבו פסקל 000 רה ,
המובנים בו, לחיצה על מקש התיבור (+). למשל, מפעילה | מיד סדרת פעולות
(הוספת התוכן של אזור אחסון הקלט לזיכרון המרכזי, הצגת תוכן הזיכרון,
מחיקת תוכנור של אזור הקלט וכדומה), פעולות אלה, המתבצעות "מאתורי
הקלעים", זהות לפעולות המתבצעות על ידי מתשב רגיל, המבצע משימה כוו.
הפעולות המובנות הפנימיות המתבצעות באמצעות ה-26 (קראות קוד מכונה
(0008 6תנתסבּא), כל פעולה בקוד מכונה היא פעולה פרימיטיבית ובסיסית. ניתך :
לקלוט, לחבר, לאחסן ולהציג נתונים במספר אופנים, כשכל שיטה מורכבת מרצף
> מסובך של הוראות בקוד מכונה.
= כדי לא "להמציא את הגלגל מחדש", נוהגות שפות המתשב (למשל שפת פסקל) לקבץ
הוראות בקוד מכונה לשגרות תקניות. בפסקל נהוג לכנות| שגרות אלה בשם
פרוצדורות או פונקציות. לכל פרוצדורה או פונקציה יש שם משלה (דוגמאות
לשמות פרוצדורות: צ90ש01, 2166 ו-6מט0ספ), בשפת טורבו פסקל קיימות למעלה
מ-200. פונקציות ופרוצדורות, | שמות הפרוצדורות קבועים ותיקניים. כאשר
המהדר נתקל בשם כוה, הוא, מניח שאתה מבקש לבצע את קוד המכונה שמאתורי
הפרוצדורה או הפונקציה שנקבת בשמה. ו
כדי להפעיל פרוצדורה יש לנקוב בשמה ואם צריך - להקיש בסוגריים, אתרי שם
הפרוצדורה, את הפרמטרים הנחוצים לה, בפונקציה, לעומת זאת, מתייחסים אל שם
הפונקציה (והפרמטרים שלה) כמו למשתנים.
פרוצדורות ופונקציות - הערה
אין הבדל מהותי בין פרוצדורה לפונקציה, למעשה, ניתן קכתוב את רוב
הפונקציות בצורה כללית יותר - כפרוצדורה, בשלב זה נתייחס הן אל:
הפרוצדורות והן אל הפונקציות כאל אוסף של הוראות בקוד מכונה.
מהו מהדר?.
מהדר (מ16נקותסס) הוא תוכנית ההופכת הוראות של תוכנית ש[כתבה בשפת מחשב
להוראות המובנות למיקרו- מעבד של ה-26, מהדר טורבו פסקל של 8011826 מתרגם'
תוכניות שנכתבו בשפת פסקל לקוד מכונה המובן למיקרו- מעבדים ממשפחת ה-8086.
המהדר מבצע משימה זו בעיקר על ידי איתור שמות הפרוצדורות והפונקציות
7 | פרק 2: המבנה של תוכנית טורבו פסקל 41
שהוגדרו וביצוע רצף הוראות קוד המכונה שהן מייצגות. תופנית - גורמת +למחשב
לבצע פעולות <> באמצעות המהדר. |
בעזרת ה"בלוקים" הסטנדרטיים בשפת מכונה ובאמצעות אכיפת מספר. כללי תתביר
פשוטים, יכול המהדר להפוך: ביעילות תוכניות שנכתבו בשפה. עילית, כמו פסקל,
לקוד מכונה.
מרכיבי השפה
לפני שניתן לפתות בלימוד שיטתי של שפה 1 בלשהי - שפת אם (עברית), שפה זרה
(אנגלית), או שפת מחשב (פסקלו - יש להגדיר את מרכיביה.
לשון מדוברת מורכבת מתלקי. דיבר: שמות עצם, פעלים, תארים וכדומה. "חלקי
הדיבר" של שפת המחשב הם מלים שמורות, מזהים, מפרידים, הערות, מספרים,
סמלים, תווים ומתרוזות.
מל שמורות
בפרק 1 הדגמנו, בעזרת התוכנית 1851ע, את אופן השימוש בסביבה המוכללת של
טורבו פסקל, ראינו כי בפסקל יש למלים תהעשסעק, ם601ס ו-6ם6 משמעות
מיותחדת, מלים אלה שייכות למשפתחת המלים השמורות (1-05סש 0פטספסי)
שבעזרתן שומרים בתוכנית פסקל על המבנה והמשמעות.
2 חתלק א" הכרת טורבו פסקל ּ |
הנה הרשימה המלאה של המלים השמורות של פסקל:
6
עם5 בת
5 1בת עצס+
תסם6 . %סת בה טעס+
סם 05 תסנ6>סת+
ססץ עס 0%0ף
1%תט | +
1נ6תט 6ט66ססעס מתס1נ%8%ת166כת1
5 תהעטסנמס תנ
עהט סע ס6תנ[ת1
6תש % ץע 168
בתס1ש 5% 166%
עסא 1 11
לכל מלה שמורה יש משמעות מיוחדת, אי אפשר להשתמש במ
אחרת, יש מלים שמורות שבהן תשתמש לעיתים קרובות (למ
אולם יש להנית כי בחלק מהמלים לא תשתמש כלל.
זכור, כי בניגוד אליך, המסוגל להתבונן בתוכנית ולהבין
6
בתהּ
צהעעהּ
ב1סס
6
%פתסס
ץנ
0
סףתשס6
156
בת
1 א
לה שמורה לכל מטרה
שלי ת1פסס או 6בס)
את כוונת המתבר,
המהדר הוא "טמבל". המסוגל רק לעבד את התוכנית-מלה אחרי מלה. מצבי שגיאה
רבים נובעים משימוש לא נכון במלה שמורה, לעיתים מתגלה הטעות רק מספר
שורות אחרי השורה שבה נמצאת השגיאה למעשה.
מזהים
מזהה (ע10+%51%ת100) הוא שם שהגדרת בתוכנית. מז
התוכנית, יחידות, תוויות, קבועים, משתנים, פרוצדורות
בתוכנית,. בכל תוכנית יש למזהה משמעות אחת בלבד.
הה מסמן
את שם
ופונקציות המוגדרים
מוּהה מורכב מרצף כלשהו של אותיות, ספרות וקווים תתתיים, כאשר התו הראשון
חייב להיות אות, אין הבחנה בין אותיות "גדולות" ו"קטנות",
מסתפפטזאזתע ,ץע ,6הפפסתנ'א נעס
נחשבים לשמות זהים.
ולכן השמות:
,6 וגנק
פרק 2: המבנה של תוכנית טורבו פסקל 43
טורבו פסקל מתייתס רק ל -63 התווים הראשונים של שם 1 המצהה, אם, | למשכ, תגדיר.
מזאהה בן 100 תווים, המערכת תתעלם מ-37 התווים האחרונים, לעומת זאת, אם
3 התווים הראשונים של שם המזהה יהיו שווים ל-63 התווים הראשונים של מזהה
אחר -. תודיע המערכת על שגיאה בשל הזהות בין השמות.
מלים שמורות אינן יכולות להיות מזהה, שימוש לא נכון במלים שמורות עלול
לגרום להופעת הודעות שגיאה מוזרות.
| דוגמאות לשמות תקינים של מזהים:
נסמתטא%ם119ץע 4
7 שתהא מִסַתספבַבק
506 8 56864
דוגמאות לשמות בלתי תקינים של מזהים:
20% (התו הראשון של שם המזהה הוא קפ
%גט0מ0ס6 ג6-3ע7 (אין להשתמש במקף)
%נתש (אין להשתמש בשמות שמורים)
בחירת שמות משמעותיים עבור המזהים תסייע לך לפתת תוכניות ברורות וקריאות.
שתי התוכניות שבתדפיס 2.1 מבצעות פעולה זהה,: קל מאוד להיווכת כי התוכנית
המשתמשת בשמות משמעותיים מובנת הרבה יותר.
4 תלק א" הכרת טורבו פסקל | "7 |
תדפיס 2.1
| 31.6 גיז1 רו בתינס 0551 ותה ינשסינכן ;6 תפּיושסינ
לזפט לפטי
2 51064
2 51602,
;2681 : 6פגותס>ססעת : 2
תנשסס תנססס
=: 5100 0 =: א
/ =: 81000 | 0 =: ץ
=: ס6פגותסשססעת =:2
= 6פגותס+ססע +1 = 2 12
תפמל (51602*91600+ 6)51664*5106 | המסגל (ע*ע+ א*2)%עף5
(( 'ףמשגת' )ת1601יט ; ( '6שגת'| )ת1001ינט
י 0 ו 0
םיוות
תו (ִפַ6סְ8זתס) הוא אתחד מ-256 התווים התקניים של קוד| 5011 המורתב. ניתן
להקיש את התווים בשלושה אופנים:
הקשת התו בצורה "רגילה" - למשל האות ג.
2 לתיצת 21% (לתיצה רצופה, מבלי להרפות מהמקש) תוך הקשת ערך 5011 של
התו מהמקשת הספרתית, (רשימה מלאה של תווי 158011 נמצאת בטבלה 3.4). אם
עדיין לא הקשת תווים בצורה כזו, נסה לבצע זאת עתה, ערך 25011 של התו
הוא 65. לתץ על קליד ה-11%, הקש 65 במקשת הספרְתית ושחרר את קליד
ה-1%6, האות ג תופיע על המסך, זוהי הדרך להקשת תווים גרפיים וסימנים
מיוחדים (812805628ת0 060מ502א8) אשר לא נמצאים במקלדת.
3 ניתן להקיש את קוד 50611 של התו, כשלפניו מופיע הסימן 8. כלומר, את
האות 2 ניתן לרשום בצורת 65א, שיטת הקשה זו מקלה מאוד על מלאכת ההקשה
של תווים מיוחדים, שאינם ניתנים להדפסה (865628:קתס 68016מ1נקמט),
למשל: הסימן 87 מסמל תו הגורם להשמעת צלצול, הסימן 810 הוא תו הזנת
פרק 2: המבנה של תוכנית: טורבו פס קל 5+
:
שורה, 812 - הונת ייר ו-8613 - התזר גררה, המהדר מתייתס לכל
סימן כזה כמו לתו 5011 אחז.
מחרוזות
מחרוזת (9מת5+21) היא רצף של 0 תווי 25011, או יותר, הנמצאים בשורה אחת
בתוכנית, ונתחמים על ידי גרש אחד בתתילת הרצף,: וגרש אתד בסופו, מתרוזת
שבין הגרשיים התותמים אותה אין תווים, נקראת מתרוזת ריקה (8מ1נ+8 [גומ)
אם אחד התווים במתרוזת הוא גרש, יש לרשום אותו פעמיים.
דוגמאות למחרוזות תקינות:
':ת86160%10 עטסץ עס6בע'
',8000ת01ת6) תהעטסעע ,6תט0ס+ >"מפהּט 116ק'
'[סטת61תסס 6"ת08 586ת0ק5סע 08116 6ש0001ם 6"תפנפי
,7+ א4= ץ פהש 66פט 18טתעס+ 6מי'
רוב המחרוזות מורכבות מאותיות ומספרות, אך ניתן לשלב במתרוזת את כל תווי
1, כולל תווים שאינם ניתנים להדפסה ותווי 5011( מורחבים, תווים אלה
יירשמו מחוץ לגרשיים, אם תו כזה אמור להופיע בתוך המתרוזת, ולא בתחילתה
או בסופה, יש "לפרק" את המתרוות, כלומר לסגור את החלק שלפני התו המיוחד
בגרש, לרשום את התו המיוחד ולפתות גרש חדש עבור החלק השני של המתרוזת.
דוגמאות נוספות למתחרוצות:
',16עסט ,6110א'
'תנע5פ5 66 +0ס 6ע8ק 15ם82006'813810'6 158 שםתגע56 6ם6 +ס 6מהק 5נתי'
'396 26215 1א650206'8ע 846ק 66 מס 15 5נ1תז'
זכור: 413410 הוא קוד 25011 לביצוע התזר גררה והזנת שורה, 12 הוא קוד
1 להאנת נייר.
מספריס
מספרים (פעספותטם) מורכבים מצירוף תקף כלשהו של ספרות, סימן פלוס או
מינוט ונקודה עשרונית, אין להשתמש בפסיקים.
6 חלק א': הכרת -טורבו פסקל
באופן כללי, ניתן לתלק את המספרים למספרים ממשיים ומספרים שלמים. מספר
ממשי כולל נקודה עשרונית, ואילו שלם אינו כולל נקודה עשרונית.
במספר ממשי חייבים לרשום ספרה לפני הנקודה העשרונית,
+ אם לא רושמים את הספרה לפני הנקודה, עלול המהדר לפרש
(בלומר 0.6 ולא 6.).
את הנקודה העשרונית
- כנקודה רגילה ולהניח שאתה מבקש לסיים כאן את התוכנית, או להציג הודעת
= שגיאה. .
ניתן לרשום מספרים ממשיים בתצורה מדעית, בעזרת האות ₪ (או 6), המסמלת את
מספר החזקות של 10, הקשרים בין התצורות מתוארים בטבלה 2.1.
טבלה 2.1
תצורות של מספרים ממשיים בטורבו פסקלי
מספר. רגיל תצורה מדעית / תצורת טוהבו פסקל
10-00 34 347
04 40 | - 7
-0- | 105 71 7182-
מספרים הקסדצימליים נכתבים עם תו מוביל - %. כלומר 810 זהה למספר העשרוני
6, ואילו 10 זהה פשוט לעשר, האותיות ,,8,0,ת (או 5,₪,8,0,6,4)
מציינות את המספרים 10,11,12,13,14,15, כלומר %0 הוא 12, עע% הוא 255
ו-%80 הוא 160.
טורבו פסקל. מאפשר להשתמש במספרים הקסדצימליים שלמזם בלבד.
הוור = | פרק 2: המבנה של תוכנית טורבו. פסקל 47
סמלים
| בפסקל משתמשים בסימנים מיוחדים (או סמלים). כ לאותיות ולספרות. לסמלים
של יש משמעות מיוחדת: .
0
-.
4
* (גרש)
. (נקודה) :
, -(פסיק)
%
(6 או ם
משמש להקשת הכרזות על קבועים
הקבצת סמלים לביטויים מורכבים. משמש גם לכותרות
שגרות- משנה ולקריאות וכן ו מספור
נרשם לפני מספר כדי להגדירו כמספר הקטדצימלי
נרשם לפני מספר כדי להגדירו כערך 25011 של תו
משמש להפרדה בין משפטים וסיום הכרזות
סימן ההשמה
משמש להכרזות משתנים, תוויות, משפטי 0588, כותרות של
פונקציות, ותצורת פלט
משמש לתיחום מתרוצות
משמש לסימון נקודה עשרונית, לסיום .תוכניות או יתידות
ולגישה לשדות שברשומות
: משמש להפרדה בין מזהים ופרמטרים
תת-תתום
משמש לציון מצביע.
סוגריים למערכים וקבוצות
(**) או [). תיחום הערות.
8 תלק א" הכרת טורבו פסקל |
הסמלים הבאים משמשים פועלים חשבוניים, אופן פעולתם יתןאר בהרתבה בפרק 4.
* כפל/ חיתוך קבוצות
. חיבור/ ריכוז/ איתוד קבוצות
- חיסור/ שונות/ שלילה
/ | חילוק
+ קטן מ-
= קטן מ- או שווה ל-/ הכללת קבוצה
> לא שווה ל-
. גדול מ-
= גדול מ- או שווה ל-/ הכללת -7
8 כתובת
כל הסימנים האתרים, כולל תווים גרפיים ותווים בשפות | אחרות, הם סימנים
בלתי מוגדרים (60ם0621מתט), שניתן לרשום בתוך מתרוזות טורבו פסקל.
ו ₪ | פרק 2: המבנה של תוכנית טורבו פס קל 49
אסימונים ומפרידים.
רצף משמעותי של תווים נקרא אסימון (מ5086), מלים שמורות, מספרים, מחרוצות
וסמלים הם אסימונים. = כל אסימון ניתן לזיהוי | ברור, כיוון שבין שני
אסימונים סמוכים נמצא לפחות מפריד אחד, שהוא רווח או הערה, שפת פסקל
מתייחסת לכמה תווים כאל רווח ת (בנוסף לתו הרוות ו - 32 1 אן ל
התווים הם:
רוות . (832) /
התזר גררה (813).
הזנת שורה (810)
< הזנת נייר | (812):
טבלר (פִת2) (409)
תווים אלה נקראים גם "תווי: רוות: לבנים".
המפרידים נמצאים בין האסימונים, ואינם יכולים להוות חלק מהם, מונן שתו
רווח הנמצא בתוך מתרוזת :מהווה עבור המערכת רווח רגיל ולא מפריד, בין שני
אסימונים חייב להימצא לפחות מפריד אחד, אולם ניתן להשתמש: במספר מפרידים,
כלומר, המהדר מתייחס לרצף של רוותים כאל רוות אחד,
הגדרה נרחבת זו מאפשרת - כתיבת תוכניות פסקל בעלות תצורה: גמישה ביותר.
למשלי תו התזר הגררה הוא' מפריד, ולכן יכולים משפטים והכרזות להשתרע על
גבי מספר שורות, וקביעת המרווחים בתוך כל שורה נתונה לשיקול דעתו של
התוכניתן, את תוכנית ז'פתדע, מהפרק קודם, ניתן היה לכתוב גם כן:
| ( 8 ,110ס' ה ה בצ ב |
צורת הכתיבה אינה משפיעה - ביצועל: התוכנית, | אך משפיעה בצורה בולטת על
7
0 חלק א" הכרת טורבו פסקל :
| הערות
התווים ,
[ %ת6תת0ס6 8 15 פגמםץ ]
מהווים הערה, הערה היא מפריד מיוחד המשמש בעיקר לצורכי תיעוד. כדי
להבתין בין ההערות ובין התוכנית, רושמים את ההערות בין | סוגריים מסולסלים,
כמו בדוגמה שלעיל, או בין כוכביות כמו בדוגמה שלהלן:
| ב (* %ת000(6 8 18 פנמץ *)
המהדר מֶתייתחס לכל ההערה כמו לתו רווח אחד, הערה יכולה להופיע בכל מקום
בתוכנית, בדיוק כמו תו רוות (מובן שאין תובה להשתמש | בהערות). המערכת
מתעלמת מתוכן ההערה, אלא אם התו הראשון של ההערה הוא 8. הערה כזו נקראת
הוראה והיא מתוארת בהמשץ. :
ניתן לרשום הערה בתוך הערה (קינון) בתנאי שכל הערה משתמשת בסימן אתר
לציון גבולותיה,. השורות שלהלן נתשבות להערה אחתת:
5 סשאס 6אפת 626 +0 >גוס מ61תסתתסס צ28211סקתסע *)
(896ק 66 מעטץת) | ;1 + עסכתטא2806=: מססתטאססָבק
[(6ם11 11:86 6םםס 86 156806 7 =: עססתטאסת 1
/ (א
סימן הפתיחה *) גרם למהדר לנסות ולאתר את סימן הסיום (*, ולהתעלם
מהסוגריים המסולסלים.
הארגון של תוכנית פסקל
המרכיבים העיקריים של תוכנית מחשב הם הוראות פעולה |(או קוד - 006ס)
ונתונים שעליהם פועלות ההוראות, שני הגורמים - הנתונים והקוד - נקראים
יחדיו גוש התוכנית (100% ו8צפסעס) או בלוק. כל הגורמים המאפשרים לבטא
רעיון בשפת מחשב נמצאים בגוש.
למעשה, בשפת פסקל כל תלק שעיקרו פעולה (תוכנית, יחידה, פרוצדורה או
פונקציה), מהווה בלוק עצמאי. כדי להבתין בין הגושים, נהְוג לפתות כל גוש
בכותרת נפרדת.
| | | פרק 2 המבנה של תוכנית טורבו פסקל 51
היחידות, הפרוצדורות והפונקציות יתוארו בהמשך, בפרקים אחרים. בשלב זה
נתרכזא בתוכנית עצמה.
חלקי הדיבר של פסקל
אם תפנה למישהו, ותצווה עליו "לך!" או "הרם!" תיענה בוודאי בשאלות "לאן?"
ו"מה?". פקודות פשוטות פחות, כמו "טייל!" תגרורנה תשובות כמו: "מתי, לאן
ואיך?".
אפילו שפת המחשב, המהווה בעיקר שפת הוראות, אינה יכולה להתקשר עם המחשב
כאשר יש בה פעלים בלבד, בשפה מדוברת, שמות העצם הם. הנושא של המשפטים
ועליהם מופעלים הפעלים, בפסקל, משתמשים לשם כך בנתונים.
ההשוואה בין שפה מדוברת ושפת פסקל אינה מאולצת, שפת פסקל נועדה במקור
להוראת תכנות,. משום כן, מתבססת השפה על מערכת פשוטה של "לבנים",
שמתכונתן דומה לשפה האנגלית, בעזרת ה"לבנים" הללו ניתן לבנות, בהדרגה,
תוכניות מורכבות יותר ויותר, שפת פסקל מהווה, למעשה, מערכת כללים לכתיבת
משפטי ציווי.
החלקים העיקריים של תוכנית פסקל
בתוכנית פסקל, הכותרת (208062) היא ההכרזה על התוכנית והבלוק (100%פ) או
הגוש הוא התוכנית עצמה, לכל תוכנית פסקל יש שלושה חלקים עיקריים:
1 הכותרת (2680862) המכילה את המלה השמורה תתהּעשסעס ואחריה שם התוכנית.
2. הנתונים (6868) שעליהם יופעלו ההוראות שבתוכנית, על פי ההגדרות
שבהכרזות התוויות (18061), הקבועים (6ת6פת0סס) והטיפוסים (ס6קעס).
הנתונים יופיעו מיד אחרי הכותרת ולפני ההוראה הראשונה של התוכנית.
3 הוראות התוכנית (60006₪) המתארות את הפעולות שיש לבצע. פרוצדורות
ופונקציות המוגדרות על ידי התוכנית יופיעו בתתילת אזור הפקודות.
ההוראות עצמן נתחמות על ידי המלים השמורות ם41סכ ו-6ם6.
כל תוכנית מסתיימת בנקודה.
52 חתלק א" הכרת טורבו פסקל רע ל
תצורה כללית
התצורה הכללית של תוכנית פסקל היא:
;סותהּת התהעפסעס
( 8מ00601818%10 858 ]
ב1סס
( %8ת0ת568%60 00866 | +
1
אין חובה. לרשום את הכותרת, הכרזות הנתונים וההוראות, השימוש בכותרת הוא
נוהג מקובל ורצוי, ולכן כל התוכניות שבספר זה יכללו כותרת, השורות:
1 ההעצסמק
מנסס
1
מהוות תוכנית תקנית (ומשעממת) לחלוטין, תוכל להקישה למהדר ולהפעילה. על
אף שיממונה, מדגימה תוכנית זו כיצד שלוש מלים שמורות (,ם601 ,תהצפסמס
0פ) מפרידות בין האזור המיועד לנתונים ובין האזור המיועד, להוראות.
תוכנית לדוגמה
התוכנית שלהלן, הנקראת צטסצגם, (תדפיס 2.2) תדגים את| מבנה שלושת חלקי
התוכנית בפירוט רב יותר.. |
התוכנית מבקשת מהמשתמש לנחש שם של בעל תיים, (נגלה בסוד, שהתשובה הנכונה .
היא "א*הּטְ6כהַּהּ"), התוכנית פועלת עד אשר המשתמש מקיש את התשובה הנכונה.
ניתן לסיים את התוכנית לפני כן, באמצעות לתיצה על 0621-8268%, |
תדפיס 2.2
| טי
;| 8 [קת1ץ%פ
;דוס :
; 1305 תהישסעסן,
18001 59%;
00055 580906 =
= %מתס? | 6כע%6
6פתסספסת שפט
,7 - י תנשסס .
= ;( 7 :688ג 8 280 )9100 :55906
( ; | 36900086 )ת[ספסע
505 00 תס 86010% <> ס6פתסקפסת +1
000 )ת[1%0יש
. תס
פרק 2: המבנה של תוכנית טורבו פסקל. 53
%%% ו + ו
-
-]
ן
8
601 81801005
/ יי
| /
+ | 6
] 985008
|
ג
ן
1
[ 6 אמא
/
|
.
[ ן
|
ו
הכותרת מכילה את המלה השמורה וזה8כףסמס, ואתריה את שם התוכנית - >טסעה..
באזור הנתונים מופיעות ארבע הכרזות: |
1 התווית 6% המהווה. - למעשה לימ ואינה ו נתונים או מבצעת
פעולה.
2. קבוע 56026%6, שערכו אינו ו הפוכבת.
מחרוות בעלת שמונה תווים.
4., משתנה 6פתסספס6ה, שבו נשמר הניחוש האחרון. = תוכנו משתנה בבפ. פעם
שהמשתמש :מקיש ניחוש חדש. ההגדרה של 6פמסספסת מתאימה להגדרה של
ל -. כלומר מחרוות בעלת ו תווים.
. 5 - טיפוס %הונסץ, המגדיר את מבנה המשתנים. במקרה ₪ מגדירה התוכנית
4 תלק א" הכרת טורבו פסקל |
| באיזור ההוראות יש ארבע שורות:
1 הוראת 166עא, המורה למשתמש להקיש ניחוש חדש. ניתן להשתמש בתווית
שבשורה זו כדי להתייתס לשורה זו במהלך התוכנית, אין ל-8682% כל
משמעות אחרת.
2 ' הוראת ת6861: (כלומר, קרא שורה - 6ם11 686ם), הקולטת את הנתונים
מהמקלדת, לאתר הקשת הנתונים יש ללתוץ ת66מ₪,
3. הוראת מ6ם15,.,6, הבודקת אם תנאי מתקיים ופועלףת בהתאם לתוצאות
הבדיקה, במקרה זה, בודקת התוכנית אם תשובת המשתמש, 6פמסספסא, זהה
לתשובה הנכונה, 66ע8602,. אם אין זהות בין שני | הגורמים (סימן אי
השוויון הוא 6), מנתבת הוראת %ע808 6060 את התובנית, וגורמת לחזרה
לשורה שאחרי התווית 5582%. ּ
4. הוראת מת1661עש (כתוב שורה - 6ם11 166עא), המברכת |את המשתמש שניחש
נכונה, שים לב לעובדה שבשל ההוראה הקודמת, מסתט,,),15, מגיעים להוראת
מ[166ע רק כאשר תשובת המשתמש, 6פתסספסא, והה לתשובה הנכונה
| שב-060066.
עם הפעלת התוכנית, המחשב משריין שטתי אחסון (זיכרון), בהתאם להכרזות
הנתונים, אחר מתחילה התוכנית לבצע את ההוראה הראשונה שאחרי מגשסס, לאחר
שביצוע ההוראה הראשונה מסתיים, עובר המתשב לביצוע ההוראה הבאה, וכך הלאה.
התוכנית ממשיכה להתבצע, שורה אתרי שורה, עד לנקודה המסמנת את סוף
התוכנית.
בתוכנית עצטסצתת יש לאתסן שני גורמים בלבד: 56026% ו-6פמסספסת, התווית
5% אינה שוכנת בזיכרון, אלא מסמלת כתובת בזיכרון, בעזרת כתובת זו
יכול המהדר ליצור את קוד המכונה המאפשר ביצוע הוראת 60ס4. כיוון שהכתובות
מהוות חלק מקוד המכונה, ניתן לזנות את הוראת 6ע5082 בעת הביצוע. גם
ה-28%סע המורה למהדר כיצד עליו לשריין את המקום למשתנה| 650056 (מחרוזת
< בת שמונה תווים), הופך מיותר לאתר שהמהדר הכיר את המבנה. |
אחרי שהתוכנית מקצה את השטתים עבור 86026% ו-86ת6500ה, עובר הפיקות
להוראה שאחרי ת681, ההודעה "655גו6 8 6א8א" מוצגת על המסך והמתשב קורא את
תשובת המשתמש ומבצע את ההשוואה, אם התשובה אינה נכונה, הוראת מסם)...1%
| /- פרק 2 המבנה של תוכנית טורבו פסקל פפ
מנתבת את התוכנית לשורה 5685%6. התוכנית פועלת על פי סדר השורות רק כאשר
המשתמש מקיש את התשובה הנכונה.
הכרזצות הנתוניס
הכרזות הנתונים יכולות להופיע בכל סדר שהוא, הסדר המקובל הוא:
₪ תוויות
קבועים
טיפוסים
₪ משתנים
המגבלה היתידה החלה על ההגדרות היא: יש להגדיר את כל המזהים לפני
שמשתמשים בהם.
נתאר עתה את ההכרצות בפירוט רב יותר.
הכרזות על תוויות
בשפת בייסיק יש לרשום בתחילת כל שורה מספר, כאשר מבקשים להעביר את הפיקות
לשורה אחרת (או כאשר מבקשים לדלג על כמה שורות), מציינים את מספר השורה
בפקודת 40%60.
שפת פסקל משתמשת בתוויות (182615) במקום במספרים כדי לסמן מיקום בתוכנית.
על תוויות מכריוים באמצעות המילה השמורה 18561, כשאחריה מופיעים המזהים.
מזהה בפסקל הוא מספר שלם בין 0 ל-9999.
ההגבלה המאפשרת שימוש במספרים בלבד לציון מקום נועדה במקור להרתיע את
המשתמשים ולגרום לשימוש מועט ככל האפשר בפקודת סטסש. אולם פעולת ההרתעה
לא הצליחה והשימוש בפקודת 4060 נשאר תכוף, לכן מאפשרת עתה שפת טורבו פסקל
להשתמש בשמות מזהים אלפנומריים רגילים עבור תוויות,. כבאשר מכריזים על מספר
56 חלק א הכרת טורבו פסקל. -- 7 >
תוויות יש: להפריד ביניהן בפסיקים, יש לסיים את רשימת התוויות בנקודה-פסיק
. כאשר משתמשים בתווית בגוף התוכנית צריכה התווית להיות המזהה ו
בשורה. מיד אחרי התווית יש לרשום נקודתיים (י).
בתוכנית תש,זטתת/ז (תדפיס 3) משמשת התווית 558% לסימון נקודת ההתחלה של
הלולאה. =
תדפיט 2.3
306167 תהצפסעס
11
זי :וח
- מהט
: עססתגוסס
ב1סס
7 = : ע66תט0ס0)
;( '.14תת601ע טסם 15 קסס1 6בגע' )ם1661:ח
| 2 + ע66תט00 >= : עססתטסס יב
;( ע6פתט 00 6ת11 15 15םע'" )ם1661עח
7 6000 תסשתט 10 > ע6שס6תטס6 15
;( '6תסכ' ) ם1661מא
,מס
ניתן גם לשלב תוויות בתוכנית כדי לספק לקורא הערות והבהרות נוספות.
הגדרת קבועים
קבוע (5%ת558מסס) הוא מזאהה בעל משמעות קבועה אחת.
קטע התוכנית המגדיר קבועים מתתיל במלה השמורה >6פתסס, תצורת ההכרזה על
קבועי שם המזהה, סימן שוויון (=), הערך שיוצב במזהה, ונקודה-פסיק.
פרק 2: המבנה של תוכנית טורבו פסקל 57
| המשפטים שבגוף התוכנית מתייחסים לקבועים ולמשתנים באותה. צורה, אולם את >
הקבועים אי אפשר, כמובן, להגדיר מתדש, כאשר המהדר נתקל בשם של מזהה קבוע,
הוא מתייחס אליו כאילו היה הערד המוגדר. למשל, בתוכנית הבאה:
0%
תג
6 .
העמש
12
20
; 6מסא 05 [ 126...88%5126פתגו ] צהצעהּ 3 560668 |
כ סע 131
61
00 889126 60 5126ת1 =: 1 עס+
ו ב
המהדר מפרש את: 0 המערך (צהעע8) כ3= [ 0 / בהתאם לספרות שהוגדרו
| | בערכי המזהים הקבועים, באותו אופן: מוצבים ערכי המזהים בלולאת סנס
ותותמים את הביצוע לתתום הערכים -/ן 1 ל-20. |
| ביטויים קבועים
שפת טורבו פסקל מאפשרת גם הגדרת ביטויים קבועים (8מ6%0208510 86 מסס)
שניתן | להשתמש בהם במקום בקבוע בודד, בשורות הבאותי .
| 3 .. 56תסס
3 רו ] פגונ6הת
ב 3 5 * 2 ם |. הברו רוי
ש6ספמהום * 314159 - כ
מתייחס טורבו פסקל אל המזהים 161 ו -85626806גו0 01 כאל קבועים, , למרות
| שערכיהם נגזרים מערכו של 5גו801
זכור, מהדר טורבו פסקל מבצע סבב אחד בלבד, | ולבן חייבים כל הגורמים .
/ = המופיעים | בביטוי הקבוע להיות. מוגדרים כאשר התוכנית :פוגשת בביטוי, כתוצאה
1 הביטויים אינם ם יכולים ו למשתנים, קבועים מוקשים ופונקציות או
= כאמור, פרט לחריגים מועטים אלה, מתנהגים הביטויים
8 חלק א" הכרת טורבו פסקל 5
לפנות לפועל 8, למרות זאת, מותר להשתמש בפונקציות הסטנדרטיות הבאות:
כהשפ 4 סז פמ
סתגו:זי' במטסת 068 62
2% 03 1
| ססגופ | בת .
(פונקציות אלה יתוארו בפרק אחר)
רגיל (ראה פרק 4).
הקבועים כמו ביטוי
תוכנית הדיוות שלהלן מדגימה מספר שימושים של ביטויים קבועים:
: : 0%
,'0665א סת1תתהטסצע ססתגוד' = 6 |
7 = %ת60+21תנ;זססיי
7 = % 00160
?7 = | ב
7 = תנך:נ68תגת
+ %ת605221ת1קסץ - 6ם60+271ת11תס66ס = סע
7 + ת8701א26+6% - תנ1שתהאפתש1ת = תסףּנאססָס
;תםנססָהע * תסִַתסַַַדָהַע = 3-6
;(12)12ם0 = עס
- 7 + 666עתעסץ = 6תנ:זססיז
(2 ש61 ((1%16ע')ת0%ת6 - בת2876%10%6)) = 6תוזססיז'+0תס161פסק
+ 31;
ערכם של ביטויים קבועים נקבע פעם אתת בלבד, בעת ביצוע פעולת ההידור של
התוכנית, אין להם השפעה על מהירות הביצוע של התוכנית
או על גודלה הסופי.
כפי שמבהירה הדוגמה שלעיל, הביטויים הקבועים עשויים לפשט באופן ניכר את
התוכנית ואת תהליך הפיתות.
י פרק 2: המבנה של תוכנית טורבו פסקל 1
קבועים עם הגדרת טיפוט
שפת טורבו פסקל מאפשרת להשתמש בקבועים עם הגדרת טיפוס (8+מ5%8תסס 66מץ6).
קבועים אלה מאפשרים לך להגדיר את סוג המשתנה (הטיפוס שלו) ולקבוע,
במידת הצורך, את ערכו ההתתלתיל.
על הקבועים "עם הגדרת הטיפוס מכריזים בקטע התוכנית המגדיר את הקבועים.
קבועים עם הגדרת הטיפוס הם, למעשה, קבועים 4 אף השם המטעה).
צורת הרישום של קבועים עם הגדרת טיפוס היא: מזהה, נקודתיים (:), טיפוס,
סימן שוויון (=) וערך התתלתי, הנה דוגמאות:
0%
/ = 1250002 : %8ם110ע+0תססתטא .
7 = 56ע : פטסתאנ1:נהו
ניתן להגדיר את %65מ62052110כתטא ואת פשסתא1ע>הא מחדש בכל עת.
הגדרת טיפוסים
טיפוס (6מע6) הוא תכונה של משתנה פסקל, התכונה מתארת את גודל שטת
האחסון הנתוץ למשתנה, את תתום הערכים שניתן להקצות לו ואת הפועלים שניתן
להפעיל עליו, לאתר שהוגדר הטיפוס של משתנה, יבטיח המהדר שבמשתנה ייעשה
שימוש נאות, למשלי: הוא לא יאפשר להציב מתרוזת תווים במשתנה מספר.
קטע התוכנית המגדיר טיפוסים מתתיל במלה השמורה 06צ5. צורת הרישום של כל
טיפוס היא: מזהה, סימן שוויון (=), תיאור הטיפוס ונקודה-פסיק.
טבלה 2 מכילה את רשימת טיפוסי הנתונים המוגדרים בטורבו פסקל, שאפשר
להשתמש בהם במשתנים, סוגי הנתונים הבסיטיים של פסקל הם מטפרים - ממשיים
או: אינטגרלים (שלמים), ערכים לוגיים - בולאניים, היכולים להימצא במצב של
אמת. (120₪) או לא אמת (פפתע), תווי 5011 הנקראים 6282, שבהם משתמשים
בנפרד ומחרווות (9מ1ע55) המשמשות לרצף של תווים, קיימים גם טיפוסי נתונים
מורכבים יותר, כמו צעַ8עע8, 2600206 ו-56%, האינטגרלים והמספרים הממשיים
מחולקים לטיפוסי משנה, בהתאם לגודל ולתתום הנתונים.
0 תלק א" הכרת טורבו פסקל
טיפוס
תהּס1ססם
6צס
16767
%תנסתס1
%תנסנסת5
בעסשט
1
6
6טסף
א
סש
68
51
עס6תנסס
טיפוסי הנתונים הסטנדרטיים של טורבו פסקל
תיאור
אמת (עטספץ) או לא אמת (שפ5תע)
מספרים שלמים:
5+
77
7 ץ"ץץ-
27ץ)[-
5+ 0
מספרים ממשיים:
29
1.510).
-4 308
0
7 0
-2 +1
תו 85011 כלשהו
רצף של עד 255 תווי 011פ5ת, אם אין מגדירים גודל,
המערכת מניחה שהגודל הוא 255
מקום בזיכרון ולא ערך מפורש
הטיפוסים: ע8ם0 ,ם168ססם וחמשת טיפוסי המספרים השלמים נקראים טיפוסים
סידוריים (81מ01עס).
בטיפוסים המוגדרים מראש על ידי פסקל משתמשים בעיקר בקטע התוכנית המטפל
בהכרזות המשתנים, בעת ההגדרה הראשונית של משתנים פשוטים, קטע התוכנית
המשמש להכרזה על טיפוסים משמש בדרך כלל להגדרת מבני נתונים מורכבים :ותר,
בהתאם לצרכים היתחודיים של התוכנית, הטיפוסים המורכבים הללו,
המשתמש, מתבססים תמיד על טיפוסי היסוד שהוגדרו מראש.
שמגדיר
ור א" פרק 2: המבנה של תוכנית טורבו פסקל 61
באַמצעות טיפוסי. הנתונים המוגדרים על ידי המשתמש (ראה טבלה 2,3) "יכולה
תוכנית טורבו פסקל לטפל בקלות במבני. נתונים מתותכמים ביותר, בקטע שלהלן.
יוגדר טיפוס בשם צַ28:ז( %ת56066 המגדיר מערך של רשומות, שאחד השדות שבו
= מהווה 6 0 שהוגדרה על ידי המשתמש. :
ססעט
. 1550 ,ת115טסתע עמ ,מה )= 0
: = 8
> <;[ 20 ]60ת56:1 : 86א%6ב56000
7 : סרא :
ב0ס6860861
/מס
0 = 2 ] 887 = ע8עת+%ת100ו85.
-טבלה 2.3
טיפוסי נתוניס שמגדיר המשתמש.
טיפוס. | תיאור
וטו . קבוצה של נתונים - -.
6 תת-קנוצה של טיפוס אחר
צהעה | מבנה נתונים: החוזר: על עצמו
% אוסף של: ערכים .
16 טיפוס לשמירת נתונים בהתקן עזר לאחסון
6 צירוף של משתנים מטיפוסים שונים
טיפוסי נתונים נדונים בפירוט רב יותר בפרק 3.
הכרזות על משתנים
| קטע התוכנית המטפל בהכרזות על משתנים מתחיל במלה השמורה עפּט, הצורה שבה
יש לרשום כל משתנה היא: מזהה, נקודתיים (י), טיפוס המשתנה ונקודה-פסיק.
| הטיפוס יכול להיות מוגדר מראש על:ידי פסקל, או. מוגדר על ידי המשתמש. .
62 תל ק א הכרת טורבו פסקל ּ :
הנה דוגמאות להכרזות על משתנים:
עהט
בי 5 1
,]2 ]0ת1ת 62 |: צסא6סטסיקע
1 + [ 12 ] ץְהעעה 5 981058156027
דוגמאות נוספות להכרזות על משתנים נמצאות בהמשךן.
+4
הוראות התוכנית
| הוראות התוכנית, או הקוד שלה, הן הוראות בנות ביצוע המגדירות אילו פעולות
צריכה התוכנית לנקוט, ההוראות הן פקודות להעברת נתונים ולטיפול בהם.
המהדר מפענת את ההוראות ומתרגם אותן להוראות בשפת מכונה.
נפרט עתה את הוראות פסקל:
הוראות פשוטות והוראות מורכבות
שפת פסקל מאפשרת להשתמש בהוראות פשוטות ובהוראות מוהכבות, הוראה פשוטה
היא פקודה בודדת כמו משפט השמה 02...860ס5 ,0886 או הוראת 611תגו,,,.668%ע,
הוראה מורכבת מכילה את המלים השמורות ת41ס6ס ו-6תס ובניהן מספר משפטים.
מבחינת המהדר, מגדירות המלים ת661כ ו-6ם6₪ הוראה אחת.
למשל, הצורה התקנית של משפט 6%6466,,,,. מסם15..,6 היא:
מסם6 <תס1ס1תסס> +1
58%
6
7
באמצעות המלים השמורות ם601כ ו-6מ6 ניתן לבצע מספר הוראות במקום הוראה
אחת בלבד, כמתואר בדוגמה שלהלן:
פרק 2: המבנה של תוכנית טורבו פסקל 63
תסםת6 1000 < 5016צ616תהג0 1%
י םנססס
;( !פטמסס 8 6םת00601 6עה גוסצ !פס 08%5ע60' )מ1661עט
272 * 9010ע82%616)=: ת0ס155810תתס6
מס
"86
ב1סס
;( "דַס6ַעהּת צַע? .58סגו עגוסץ %גת 6"מ616 טסצ' )ם1661מט
7: 6001585102
7
משפט השמה (6תסות5514)
המשפט הבסיסי ביותר בשפת פסקל הוא משפט ההשמה הגורם לשינוי תוכן של
משתנה, תתילה מציינים מהו המשתנה שמבקשים לשנות את ערכו, אחר רושמים את
פועל ההשמה (=:) ולבסוף מציינים את הערך החדש, ניתן לציין את הערך החדש
בצורה מפורשת, כמו ב:
7 =: %164ם008 (השמה של מספר)
;'סתוס+ %6סם 116ע' =: שַתנמתעהח (השמה של מתרוטת)
וצ =: 5808628%8 (השמה של משתנה)
או בצורת ביטוי (אשר יכול להכיל פונקציה) שממנו ניתן לתחשב את הערך, כמו
ב:
/ ט61 45 =: % (השמה של ביטו6
/ = א * 3 =: צ (השמה של ביטוי בולאני)
;( (צ)2פ+ (א512)8 )5026 =: 2 (השמה של פונקציה)
משפט 058
משפט 0258 מבצע פעילות אחת מתוך מספר פעילויות, בהתאם לתוצאה של בדיקה
מסוימת. הביטוי הנבדק נקרא בורר (02)+59100) וכל אופציה נקראת קבוע
(%מ5%8תסס),. אם הבורר אינו מצלית לאתר קבוע מתאים, הוא עובר למשפט
ה-6186 ומבצע את ההוראה שבו, כל משפט 6856 חייב להסתיים ב-6ב6, הוראת
6 היא אופציונלית. אם אין במשפט קבוע מתאים לבורר ואין גם משפט 8ם6,
המהדר ממשיך ומבצע את ההוראה הבאה, שאתרי ה-64ם6 .
4 תלק א" הכרת טורבו פסקל
הביטוי הבורר חייב להעריך ערך סידורי (81ם61עס) שבין 32,768- ו-32,767+.
משום כך אין להשתמש בטיפוסים 66662ת1, 6מנשָמס1 - סמסש כבבוררים. למרות
זאת, נותר עדיין מגוון רתב של טיפוסים קבילים: 886%6, ם168ססם, מבם6,
טיפוסי האינטגרלים 66צכ ו-6ת1סעסםםפ ועוד.
משפטי 6856 הם משפטים שימושיים מאוד בפסקל. הנה דוגמאות לאופן פעולתם:
1+ שסשפתה 0836
ןס : יצ
; אינסווסיעוזג 611ת08 : זא"
; 05590וכ [10ס5 | 6186
; תס
2+ בלתסו] 0886
( ( 'עססת1" )ת1061עא : ימא. . ת08
;( 'שתגעספ' )ת1581: : םעו .שסה
;( 'עסומתטפ' )ת1561עש : כ56.. גנ
(( '811ת' )ת1%81:א : 005..260
;תס
1 00%101גות6] 0836
18891סע : 1
;185%8ס : 2
1 8ת610ס0גותס] 0886 : 6
; 188494ס : 1
;סכ : 2
;0ת .
,4סת : 4
; 06[ע300% 26 | 0156
תס
משפט 68856 דומה למעשה לסדרה של משפטי 6₪156.... מסםםס....15.
משפט סספ...סי'תטסכ, סי'... סע
משפט עס" מבצע הוראה מסוימת מספר פעמים קבוע, משתנה בקְרהֶה מתאים, מקבל ערך
שונה בכל סבב.
משפט ע0ס+ הוא משפט יעיל מאוד, שכן בניגוד ללולאות 16נגש או 6008%ע אין
צורך לבדוק תנאי בכל סבב, וההוראות המשנות את ערך משתנה הפיקות יעילות
מאוד.
0 0 פרק 2: המבנה של תוכנית: טורבו פסקל 65.
למשפט עס? יש שתי צורות. - באחת, עולה ערכו של משתנה הפיקות: בכלל סבב,
ובשניה - *ורד,: המלה השמורה סף מורה על הגדלת ערכו של משתנה הפיקוח,
והמלה. השמורה ס%מש60 מורה על הקטנתו, הנה דוגמאות:
0 ;(1 - 0 ';' 60 '8' =: 1 עס+ - הדפסת ה-6כ8
;1 ו 0 '8 ' סמיס ?' ב: 1 מס+ - הדפסת ה-6כ85 בסדר הפוך.
משתנה הפיקות חייב לחיות. סידורי (81ת61מס), יש להגדירו בבלוק' שבו משתמשים
בהוראת עס1. 4"
הוראת עס+ היא לפעמים הדרך הנותחה ביותר לטיפול במערכים. למשל, -ההוראות
' שלהלן מחשבות את התוצאה על ידי ביצוע פעולת הכפל ם א ף במטריצה
ו-ס א ם במטריצה ם. התוצר הסופי הוא : מטריצה של 5 א ת. :
1 1
םנ60ם 60 0 0ם 1 = כ עס+
07 [6]1,0
10 ] =: א עס+
;[3,אזם*[א,1]ה + [כ,0]1=: [1,0ז6 |
;תס
הערך הראשון והאתרון של הלולאה נקבע עם התחלת ביצוע משפט ה-902, אי אפשר
ל את הערכים הללו תוך כדי ביצוע הלולאה, לכן הוראת ת1661ש₪ שבלולאה:
זפ =:.ך
סף ך 60 1 =: 1 עס+
מנשסס >
+ כ = ך |
;(ב קט
ל
תתבצע חמש פעמים בלבד, על אף השינוי הנערך במשתנה בכל סבב.
6 תלק א" הכרת טורבו פסקל
משפט 60'0
משפט -60%60 שתצורתן:
7 406
משנה את מהלך התוכנית, וגורם לביצוע הפקודה הנמצאת מיד אתרי התווית
המוזכרת בפקודה, התווית תחייבת להימצא בבלוק שבו נמצאת פקודת 60סף.
לא קשה להשתמש בפקודת 4060, אולם למרות זאת השימוש בה אינו מומלץ, פקודות
אחרות, ובעיקר לולאות 116...80מש ו-611תט,..2668% יכולות תמיד למלא את
מקומה ביתר אמינות ובהירות. בספר זה לא נמשיך להשתמש בפקודת 060ף.
תוכנית 2תשמת1 (תדפיס 2,4), המציגה את המלה "6110א", מתארת ביצד ניתן
להגדיר תווית מתוך משפט תסתס,.,..15.
תדפיס 2.4
7 תהעשסעס
11
]תד
עפצ
[ע60006ת1 : 1
ב1סס
17 =:|1
מסם6 0 = 1 1%
תנססס :60גוע>תד
;( '16110' )166עש
7 = 1
;מס
מסםםס 100 > 1 1%
7וע6ת1 060
,תס
פרק 2 המבנה של תוכנית. טורבו פסקל 67
משפט 83156...תסתיז...+ד
משפט משםת6.,..+1 בודק קיום של תנאי, אם התנאי מתקיים (אמת) ההוראה מתבצעת.
לדוגמה: ּ
מסם6 100 < %מגו3600:600 16
;( !116 מגוסץ 6ש58 60 616 16"5' )166מא
אם אתה מבקש לבצע פעולה מסוימת כאשר התנאי מתקיים (אמת), ולבצע פעולה
אחרת כאשר התנאי אינו מתקיים (לא אמת), תוכל להשתמש באופציה 61588 כדי
להגדיר את הפעילות. החלופית, למשל:
מס 1100%1865ע 1%
6
6
7
ניתן ליצור מבנים שימושיים מורכבים הכוללים משפטי 15 בתוך משפטי
6, מסתם...1 אחרים. לדוגמה:
מ6ם5 20000 > צַע5818 +1
(6ט8ע 186ע) 5 + 1002112866 =: 866ע1עגוסת
56
ם6ם6 40000 > צע5818 1%
8 * 4001189966 =: סְ6התצ1עגוסם
16
7 * 06ם0ַ28ץ1עגוסם =: 866אע1עגוסת
המהדר מניח שכל 6156 קשור ל-+1 האחרון שלא "נסגר", רצוי לרשום את ההוראות
בהזאחה (ראה תוכנית לעיל) ולהבליט בכך את זוגות ה- 15..,61856.
משפט 611תט...6הסקסת
| משפט 6068%ע מגדיר את נקודת ההתחלה של סדרת פקודות שתתבצע לפחתות פעם אחת
ותמשיך להתבצע עד אשר (611תט) תנאי מסוים יתקיים.
68 חלק א" הכרת טורבו פסקל 0 78 . | 0
<> לדוגמה. בתוכנית:
72 =: ע66תטס6
0%
;( 'ס3611' )ם1%61:
- ע6סב 600 =: ע66תטס6
;5 > ע6טתטס6 611תט
תוצג הברכה "86110" 6 פעמים.
ההוראות שבין 26068% ו-11פתט תייבות להתבצע לפני שהתנאי נבדק, ולכן כדאי
להשתמש בלולאות 3% באשר מבקשים לוודא ביצוע רצף הוראות עד אשר התנאי
פס
ו % .
|( ' :610 6ם₪ מסש6תם' )166משט
?( עגוסא )ת68061ע
;[ 24.. ] ם1 עטסא 11סתט
משפט ספ...16נתחז
משפט 116 מבצע הוראה אחרת, המזוהה על ידי הקידומת 0ב, כל עוד תנאי
מסוים מתקיים, בניגוד ללולאת 11>תט...68%ק26, נבדק במקרה זה התנאי לפני
שהלולאה מתבצעת., הנה דוגמה ללולאת 116...480תש:
(2116 01 6ם8 ע0ס+ 10685) | םב661כ 60 ( 8689116 )200 >סם 16גתש
5
יכ ו
]יכ כ ןי
7 ,
0 0 < א006ת1 16נת
ת61סס
שו מ ]טספ =: [ 8 0/7
| /7 - 166% =: א66םת1
67
פרק 2: המבנה: של תוכנית טורבו פסקל 69:
| משפט. תוצא
משפט בש יבול להתייחט לשדות ברשומה מבלי להזכיר את שם הרשומה בכל פעם.
לפש כאשר נתונות ההכרזות:.
. -
6 = 8010858
> כ שַת1ע₪5 : = סגא
יס :0 סנבשורץ
,2081 : 710%80%22106
% כ 60ת6
| 2
| 108082 פד : הק
יש זהות בין שני קטעי התוכנית שלהלן:
0 042800202 נש
7" - ו . גפס
; 'צ1תפ" = סותא ! ; 'מ801%"י =: 16 הכ
(6 =: %שונת - . ;5 = | 1 1 . יזק80פק
=; ' 11020+01106. 898800 |
;5 =: 11080%72106 || ,2.5
ו ;תת > ,
פרוצדורות ופונקציות
פרוצדורה היא שגרה (או סברוטינה) הכוללת סזרת פעילויות האמורות לבצע
משימה *חודית; פונקציה היא שגרה שנועדה להחזיר ערך אחד, בפונקציות .
משתמשים, על כן, אן ורק בתוך. בּיטויים, = יש' פרוצדורות ופונקציות ששל"
חשיבותן הגדולה, והשימוש הנפוץ בהן, נכללו בתוך | פסקל, והן. מהוות שירות
סטנדרטי של. השפה, הפרוצדורות ופונקציות אלה אין צורך להגדיר לפני ההפעלה,.
ת1661תא ו-מ6801- הן פרוצדורות סטנדרטיות. = ו-842% הן פונקציות >
סטנדרטיות,: הרשימה המלאה, :. הכוללת למעלה מ- -200 פרוצדורות ופונקציות .
= סטנדרטיות, נמצאת ו למשתמש.
0 חלק א" הכרת טורבו פסקל
כאשר שפת פסקל אינה מספקת פרוצדורה העונה לצרכיך, | תוכל "לתפור" שגרה
מתאימה בעזרת הכרזות הפונקציה והפרוצדורה, את השגרות החדשות תוכל להפעיל
כפי שמפעילים את השגרות המובנות הסטנדרטיות.
מבנה הפרוצדרות שהמשתמש מגדיר זהה למבנה של תוכנית:] כותרת ואחריה בלוק.
כל פרוצדורה או פונקציה יכולה להכיל תוויות, קבועים, |טיפוסים והכרזות על
משתנים, גורמים אלה הם "מקומיים" - כלומר תקיפים בתתומי הפרוצדורה בלבד.
הם נעלמים עם סיום פעילותה של הפרוצדורה.
תוכנית סאמפעפ (תרשים 2.5) מדגימה את השימוש בפרוצדורה ובפונקציה.
התוכנית עצמה אמורה ליצור לות תיבור פשוט, שגודלו 5 א 5. הפרוצדורה
595 מבינה את כותרות הטבלה, והפונקציה 0%81ע' מבצעת את החישובים.
יש לרשום את 05םת₪6861סכ ואת 20681 אחרי כל הכרוזות |הנתונים ולפני הוראת
12 הראשונה בגוף התוכנית.
/ פרק 2: המבנה של תוכנית טורבו פסקל 71
תדפיס 2.5
; 0 נפינשסינכן
| = שאט,
;66ע : 62גג781, , 61גובה
;%6עס : 10%81 תס1נפסתעע 7
; . תגשסס ,
62גו081 + 81גג781 =: 70%81
| ו
0169018 6ינגוססססינכן
| תנשסס
;( "18216 (4001%10' )ת1001ע
/ 4 ) 001 ביט
; ות001 נינש
7 4 2-5 1 . ' )ת101י
/ , -הח-7-7----7--הההחההההההההה---! )011 :ימש
7 -
תנשסס
; 1081108ס
תנשסס 60 5 60 1 =: 1סגו781 0+
(('|' ,081061 ,' | )166עש
0 5 60 1 =: 78102 עס+
;( 70%81 ,' ' )156יט
; ת461 נש
|
. תס
אם נפעיל את תוכנית סאמפע, נקבל את. הטבלה המתוארת בתרשים 2,1.
תרשים 1 לותח החיבור שנוצר על ידי סאפסזס
1 2 5 4 5
1| 2 5 4 5 6
2 | 5 4 5 6 7
8| 4 5 6 7 8
4| 5 > 6 7 8 9
5| 6 / 8 9 10
בגוף התוכנית היתה ההתייחסות ל-פְַּתְגַבּ6ַצ0כ ול-10681' זהה להתייחסות לבפ
= טיכום
2 תלק א" הכרת טורבו פסקל | | |
נושא הפרוצדורות והפונקציות יתואר בפרוטרוט בפרק 5. לעת עתה, עליך פשוט
להתרגל למבנה הבסיסי.
בפרק זה. הכרת את חלקיה העיקריים של תוכנית טורבו פסקל, ולמדת לשלבם
וליצור באמצעותם תוכנית שלמה, מלה שמורה (שעסש 96ע689ע) היא מלה בעלת
משמעות מיוחדת הקשורה למבנה התוכנית ולבקרה, מזהה (12182)מ166) הוא שם
כלשהו המוגדר על ידי המשתמש, תו (28:80592ס) הוא אחד מְתווי דדספג, מחרוזת
(9מ5521) היא רצף של 0 תווי 28011 או יותר, מספר (נפקתטמם) מורכב מצירוף
תקף של ספרות, סימן פלוס ומינוס ונקודות עשרוניות. הערה (%מסתתסס) היא
- שטח טקסט שהמהדר מתעלם ממנו, כמו כן, למדת מהי משמעותם של הסימנים
המיוחדים של טורבו פסקל. |
כפי שראית, תוכנית טורבו פסקל מורכבת משלושה חלקים עיקריים, הכותרת
המכילה את המלה השמורה תעפשָסעס ואחריה שם התוכנית, נתוני התוכנית
הכוללים את פריטי המידע שעליהם יופעלו ההוראות שבתוכננת, והוראות התוכנית
המתארות את הפעולות שיש- לבצע.
הכרת את סוגי הנתונים העיקריים: תווית (18281) המסמנת מיקום בתוכנית;
קבוע (%מ858םסס6) - מזהה בעל משמעות בלתי משתנה אחת; קבועים עם הגדרת
טיפוס (5532%8מסס 66סע5) המאפשרים להקצות למשתנה ערך התתלתי; ומשתנה
(18216הט) שהמידע שבו עשוי להשתנות במהלך התוכנית.
בהמשך, למדת להשתמש במשפטי טורבו פסקל בתוכניות, משפט השמה ()מסו35519)
משנה את הערך הנמצא במשתנה, משפט 0856 בותר הוראה אחת מתוך מספר הוראות,
ומבצע אותה, 202 מבצע משפט באופן מחזורי, תוך הצבת ערְכים במשתנה בקרה.
9050 משנה את מהלך התוכנית, 1% בודק קיום של תנאי ומבצע פעילות מוגדרת
בהתאם לתוצאות הבדיקה. 8268%ת תוזר על סדרת הוראות| פעם אתת או יותר.
6 חוזר על סדרת הוראות אפס פעמים או יותר, נש מאפשר להתייחס לשדות
שברשומה מבלי לצייו את שם הרשומה בכל פעם, ראית גם כי|טורבו פסקל מת:יחס
אל ההוראות המופיעות בין המלים השמורות מ601ע ו-6מ8 כאל הוראה אתת.
בסוף הפרק, למדת כי ניתן לשלב הוראות ליחידות הנקראות פרוצדורות
ופונקציות, פרוצדורה היא שגרה המבצעת סדרת פעילויות למען מטרה מוגדרת
אחת, פונקציה היא שגרה שנועדה להתזיר ערן.
פרק 3: נתונים וטיפוסי נתונים.: 73
פרק.
נתונים וטיפוסי נתונים
קיימת נטיה לסווג כל דבר שרואים וכל פעולה שמבצעים, באמצעות הסיווג מקבל
הנושא (עצם או אירוע) והות ואופי, קטגוריות הסיווג העיתונאי, (מי,: מה,
היכן, מתי, מדוע וכיצד) מדגימות כיצד ניתן להשתמש בסיווג כדי לאסוף, לעצב
ולהציג מידע ביעילות ובבהירות, רבים סבורים כל העובדות הנוגעות לדבר מה
נמצאות ברשותם, כאשר רוב הקטגוריות החשובות הוגדרו באופן אובייקטיבי
והוערכו כהלכה, =
נתונים ו (8868) הם העובדות שמשתמשים בהן כדי לפתור בעיה. מסוימת. בדרך כללי
מבטאים את הנתונים באמצעות מספרים, תווים ותנאים (למשל: אמת או לא אמת).
לטוגי. הנתונים (או הקטגוריות שלֶהם) קוראים בפסקל טיפוסי נתונים (פפעעם).
הטיפוסים המתאימים לנתונים אדום, 42 ומשה הם: צבע, שעות עבודה ו-שם פרטי..
| אם נדע מהו הטיפוס של נתון מסוים, נוּכל לקבוע תקיפות של נתון בקלות רבה"
יותר, לדוגמה: יש להנית. כי. "שעת עבודה" אינן מספר שלילי ו"שם פרטיי" מביל
אותיות.
: טיפוסי הנתונים מגדירים גם אלו פעולות אפשר לבצע באמצעותם. אץ טעם.
בתישוב השורש הריבועי של השם -הפרטי, או לרשום את שעות העבודה באותיות
" - :
גדולות
באופן בלתי מפתיע, והה הגדרת התכנות של טיפוס נתונים - תחום תקף של
נתונים יחד עם מערכת' פעילויות משמעותית - להגדרת המלה אלגברה, האלגברה
74 חלק א הכרת טורבו פסקל
מסייעת. לנו, בפתרון בעיות מתמטיות בעזרת נייר ועיפרון, והשימוש בטיפוסי
נתונים מאפשר לנו לפתור בעיות תכנות בעזרת ה-6פ.
בפרק הקודם סקרנו בקצרה את טיפוסי הנתונים הנתמכים על ידי טורבו פסקל.
בפרק זה נתאר את הטיפוסים הללו בפירוט "רב יותר, ונלמד להגדיר טיפוסי
נתונים חדשים שיסייעו לנו בעת הטיפול בבעיות תכנות יחודיות.
אינטגרלים
שפת טורבו פסקל מספקת חמישה טיפוסי נתונים לאתסון אינטגרלים, הטיפוסים
הם: 66ע8, %מ%1:ס53, 6נסא, 1660062 ו-%6מ1שתסת, טבלה 3.1 מסכמת את תכונות
הטיפוסים הללו. .
טבלה 3.1
טיפוסי הנתוניס של תצורות האינטגרל
טיפוס גודל תחום ערכים .
ססע 1 בית 5 0.
%מזסתפ 1 בית 7+. 8-
תד 2 בתים 7+ 8 -
סנס 2 בתים 5 0
%מ1סתסז 4 בתים 77, 2,147,183,6488-
שים לב לעובדה ש-%מ50261 הוא מהדורה "מסומנת" של 66עפ, ו-166062 הוא
מהדורה "מסומנת" של 6עסא, ב-%מ41ת0 משתמשים כאשר מבקשים לטפל במספרים
גדולים יחסית, ברמת דיוק גבוהה.
6 ו-%6ת1>+סת5 תופסים בית אחד ואילו סז ו- ע6666ת1 תופסים שני בתים..
כל צמד מפענח בצורה שונה את הסיביות שמהן מורכב המשתנה, אם התוכנית שלך
משתמשת אך ורק ב-56צ2 או אך ורק ב-%מ50:61, אין להבדלים הללו כל חשיבות;
7 | פרק 3: נתונים וטיפוסי נתונים | 75
אולם אם התוכנית שלך מערבת טיפוסים (תופעה שכיחה ביותר), עלול הדבר לגרום
לתוצאות בלתי צפויות, כדי להבין טוב יותר. את התהליץ, עליך להכיר מעט את
האריתמטיקה (פעולות החשבון) של האינטגרלים. . |
הבהרה:
בשפת פסקל קיימים חמישה טיפוסי נתונים השייכים לקבוצת האינטגרלים: 56עַ8,
%ת1+:סתם, 6סא, 168002 ו-%םדשתס, כלומר, המלה ע6646מ1 מתארת קבוצה
וטיפוס, בעיה דומה קיימת בשימוש שעושה פסקל במלה 681ש, הבעיה נוצרה כיוון
שחברת 6ם18עס2 הרתיבה במרוצת השנים, בהדרגה, את שירותיה (למשל הוספת
הטיפוסים %6ם1>עסת5 ו-%6מדשתסע), וההיצע עלה על יכולת הטיפול של רוב
המהדרים, המושג ע6846ם1 קיבל בטורבו פסקל משמעות רחבה יותר. ההקשר שבו
מופיעה המלה מבהיר בדרך כלל את הכוונה.
הארית מטיקה של האינטגרלים
אנו נוהגים לבצע פעולות חיבור ותיסור על בסיס 0. מחשבים, לעומת זאת,
משתמשים באריתמטיקה בינרית.
האריתמטיקה הבינרית (כלומר, על בסיס 2) מבלבלת, ולכן נתעלם ממנה לעת עתה =
ונדון מעט בשיטה העשרונית הרגילה (בסיס 10) המוכרת לכולנו, אילּו המחשב
היה פועל על בטיט 10, הוא היה משתמש בספרות:
7-ו
(ולא ב-0 וב-1 ו כל מספר היה נשמר בבית אחד או יותר. נניח שאתה
משתמש במחשב עשרוני, שבו כל בית יכול לאתסן את הספרות 0-9, נניח גם שאתה.
מבקש לעבוד עם "מלים- עשרוניות", שגודלן שני בתים. כל מלה עשרונית יכולה
> אם כף להכיל את המספרים 00, 01, 02, 03, ..- 96, 97, 98 ו-99.
| ביוון שבל מלה . יכולה להכיל שתי ספרות בלבד, ייצור מספר. בן שלוש ספרות .
. ו ו ו שי צמצום' למספר בן. שתי ספרות.
במסגרת מבנה זה, פעולות החשבון - מתבצעות כרגיל:
6 תלק א" הכרת טורבו פסקל | א
04 + 76 = 0
2 = 32 - 54
8 > 03 א 16
68 = 09 : 72
המחשב העשרוני הדמיוני שלך יטפל בתוצאות שגודלן עולה על 99 (כלומר למעלה
מתכולתה של מלה עשרונית אחת) על ידי השמטת הספרות העודפות:
(צמצום של 135) 5 > 82 + 53
| (צמצום של 2795) 5 = 65 א 43
אולם מה תהיה התשובה ל:
53. =02-= 2
43 - 65 > 13
כאשר מספרים שליליים אינם מהווים חלק מההגדרה? התשובה היא כי במקרה זה
| נשתמש במספרים ה"מתנהגים כמו" מספרים שליליים, ההגדרה של מספר שלילי היא:
אם הנתון הוא המספר א, ערכו השלילי (8-) הוא הערך המתאים למשוואה:
0 = (א-) + א
כדי למצוא את הערך השלילי של 82 ו-65 יש לבדוק אלו מספרים יש להוסיף ל-82
ול-65 כדי שתתקבל התוצאה אפס (0). התשובה היא 18 ו-35, זכור, כל תוצאה
העולה על 99 מצטמצמת אוטומטית, ולכן כל כפולה של 100 היא פשוט אפס (כולל
0, 00, 100, 500, 1000400, ו-87623945300.
מובן שהמספר 18 אינו שווה ל-(82-) ו-35 אינו שווה ל-(65-), אולם אם נציב
מספרים אלה בנוסתאות, שבהן יש משמעות לשתי הספרות הימניות בלבד, יתקבלו
תוצאות הגיוניות.
0 שווה לאפס ולכן:
0 - 82 = 100 - 82 = 8
(82-) ולכן 18
5 > 65 - 100 = 65 - 0 = (65-) | ולכן-85 =
דרך אתרת לפתרון: ביצוע התישוב בדרך הרגילה והמרת התוצאה
)-82(
)-65(
לאחר מכן:
פרק 3: נתונים וטיפוסי נתונים
,714 = 29 - 100 | ולכן 71
- 9
= 82'- 53 = = 82 - 53.
2 = 65 - 43 ו-78 = 22 - 100 | ולכן 78 = 65 - 43
| לכן אם:
ו 82 - 53 וגם 71 = 18 + 53
8 = 65 - 43 וגם 78 = 35 + 43
אזי? (82-) שווה ל-(18+) ו-(65-) שווה ל-(35+).
. עדיין לא שוכנעת?
2
בשיטה העשרונית הרגילה, סימן המספר השלילי בפעולות
כפל יבול "לצוף" באופן חופשי, השווה את (68 א 43)- עם 68 א (43-) ועם
(68-) א 43.
(68-) א 43 6 א (43-) (68 א 43)-
(32+) א 43. 8 (57+) (2942)-
1376 3876 (24)-
76 = 76 .
76
כלומר (24-) שווה ל-76, המספרים השליליים בעולמך העשרוני אינם זקוקים,
אם
כן, לצורה המסורתית כדי להתנהג בצורה הרגילה. ניתן תמיד למצוא את המספר
.התיובי המתאים למספר השכי מאותו תחום, במחשב העשרוני מתקיימות אם
ה הבאות:
. -01 =
-2 = 8
-3 => 7
-47 = 3
-48 = +2
-50 =>
- +1
₪
0 *:כול. לייצג מספר. חיובי | ומספר. שלילי,
-ל-(50-), דבר זה אינו רצוי, ולכן נאמר ש-(50+) נמצא מחוץ לתחום.
כן
כלומר ניתן לומר ש-50 שווה.
8 חלק א': הכרת טורבו פסקל .
נחזור עתה לשיטה הבינרית. ה-6ע שלך פועל על בסיס 2 ולא על בסיס 10,
והאיפוס אינו מתבצע כאשר מגיעים ל-100 (עשרוני) אלא פאשר מגיעים ל-256.
ולכן, בבית כזה:
-1 - 5
-2 =
.-3 = 3
-125 = 1
-126 = 0
-127 = +9
-128 = 8
שוב, אינך מעוניין ש-128 יהיה גם מספר תיובי וגם
שלילי. לכן נאמר
שהמשמעות של 128 היא (128-) ו-(128+) נמצא מחוץצ לתחום. כתוצאה מהגדרה זו,
כל המספרים הבינריים השליליים נמצאים בתתום שבין 128
ו-255, כבלומר בכל
המספרים השליליים מופיעה הספרה 1 בסיבית בעלת הער] הגבוה ביותר, ובכל
המספרים התיוביים מופיעה הספרה 0 בסיבית בעלת הערך הגבוה ביותר.
ניתן לבצע את פעולת הצמצום או האיפוס גם עם כל כפןלה של 65,536 ואז
נקבל:
5+ = 1-
4 = 2-
3 = 3-
%. %. %.
-32765 = 1
-32766 = 0
-32767 = +9
-32,768 = +8
ושוב, כדי ש-32,768 לא יציין הן מספר שלילי והן חיובי, נאמר ש-32,768
הוא (32,768-) ו-(32,768+) מחוץ לתתום. גם במקרה
השליליים מופיעה הספרה 1 בסיבית הגבוהה ביותר, ובכל
מופיעה הספרה 0 בסיבית הגבוהה ביותר.
זה, בכל המספרים
המספרים התיוביים
0 0 .| פרק 3: נתונים וטיפוסי נתונים = 79.
ציינו כאן מספר פעמים ש-(65,534+) "מתנהג כמו" (2-).: מאליו מובן שמספר.
זה חייב גם "להתנהג" כמו (65,534+). כלומר, עליך לדעת כיצד לקבל את "שווה
הערך" המתאים כאשר אתה זקוק למספר שלילי, אך תוכל להשתמש במספר עצמו באשר.
אתה נזקק למספר חיובי. שמונה הסיביות של הבית :כולות, אם כ להביל את
המספרים:
7+ 6 ,2+ ,1+ ,0 ,1- ,4-2 1270- ,128-
או ו ,
= 255 ,254 ,253 1,022,230 ,0
בהתאם לצרכיך, מובן שתוכל לאחסן 5+ ו-2- באותו בית, אולם .למען
הבהירות - כדאי להימנע מכך, א המספרים שניתן לאתסן במערכת בתים היא:
1 -א,2-א > ,2 ,1 ,0
או
2(1/א) ,2- -(2/ א) - ו ,0 0 ,4-2 10+(2/א)- ,(2/ א)-
ייצוג מספרים תיוביים ושליליים באותו בית מתבצע על ידי האתחת תתום הערכים -
שהסיביות מייצגות, כאשר משתמשים במספרים שליליים, המספרים מסומנים כיוון
שהם בעלי סימן חיובי או שלילי מרומז בסיבית בעלת הערך הגבוה ביותר, כאשר
הסיבית 1 - המספר שלילי, וכאשר הסיבית 0 - המספר תיובי, כאשר משתמשים
במערכת הכוללת מספרים תיוביים בלבד, המספרים בלתי מסומנית, ולסיבית
הגבוהה אין כל משמעות.
השימוש בטיפוסי האינטגרלים
המעבד עצמו אינו מבחין בין מספרים. מסומנים ומספרים בלתי מסומנים, הטיפוס .
נבתר בהתאם לדרישות התוכניתן, עליך להבטית שההוראות שבתוכניותיך אכן.
מתאימות, אם תנסה להציב במשתנה ערך גדול מדי, התורג מתתום הערכים של
הטיפוס, תופיע הודעת שגיאה. : ּ >
כדי למנוע תוצאות בלתי רצויות (למשלי עיגול, או קיצוץ) | כאשר משלבים
בביטוי אתד אינטגרלים מטיפוסים שונים, מבצע טורבו פסקל, לפני החישוב,
המרה. של כל. מרכיבי הבּיטוי לטיפוט משותף .(6קץ מסותומסס), הטיפוס המשותף
הוא, פשוט, הטיפוס הקטן ביותר היכול להכיל את כל הערכים, .אם צידה הימני
של המשוואה מכיל משתנים מטיפוס 866 ו-6ם1+:סת5, יתבצע החישוב באילו כל
00 חלק אי: הכרת טורבו. פסקל = | 0
איברי המשוואה מטיפוס מספָפטם1, על פי אותם כללים, וערכו 866 ו-6מס₪
כאילו שניהם 6עסא, 6עסז ו-60002ם1 יחושבו כ->תדפתסם., ,
אם הערך שהתקבל ב"טיפוס המשותף" גדול מהערך המקסימלי ההמתאים למשתנה שבצד
שמאל של המשוואה, יתכן קיצוץ או המרה, לדוגמה:
[ 127+,,128- ) [ 0..255) [ 0.255 +
6מ61:סת65ט1ה% + 62662ט1הט =: 1ַָ6םַצְ65ט1ה78
אם (99+) = 6987%662גו81/ ו-(100-) = %ם611סה41088ט | יתקבל הסכום (1-),
כאילו אלה שני טיפוסי ע6696מ1, עם הצבת התוצאה ב- %61ע168ו781 תתבצע המרה
ל-(255+).
התצורה, שבה עליך לבתור עבור משתנים מטיפוס האינטגרלים, תלויה בערכים
המינימליים והמקסימליים, הקפד להשתמש בטיפוסים שגודלם :כיל בנותיות
גם את הערכים הגדולים ביותר הצפויים. ן
מספרים ממשיים
ה-20 יכול לטפל רק בתתום צר של המספרים האינטגרלים, |הטיפוסים האיטגרלים
אינם יכולים לנהל מעקב אחר תקציב של חברת ענק או אחר סכומי הכסף הדרושים
לפיתוח ספינת חלל, במספרים גדולים מאוד, או קטנים מאֶוד, יש לטפל בעזרת
טיפוס נתונים אתחר - המספרים הממשיים (081ת).
נפשט מאוד את תאוריית המספרים, ונאמר שמספר ממשי הוא רציונלי או בלתי
רציונלי, מספר רציונלי הוא מספר שניתן לבטא כשבר של
, 13/19, ו-1/2. מספר הוא בלתי רציונלי אם אי אפשר
במספרים שלמים, וניתן להעריכו בצורה מקורבת בלבד, כמו
מספרים שלמים כמו
למצוא שבר המבוטא
שורש ריבועי של 2.
בדרך כלל רושמים מטפרים ממשיים בצורת שבר עשרוני, 2.0, 3.14159, 1.1414
ו-0.5.
שפת טורבו פסקל אימצה הגדרות פשוטות יותר. לגביה, מספה ממשי הוא כל מספר
המכיל נקודה עשרונית, בטבלה 3.2 תוכל למצוא את טיפוסי המספרים הממשיים של
טורבו פסקל, את מספר הבתים המוקצה לכל טיפוס, את תחום הערכים האפשריים
ואת מספר הספרות המשמעותיות.
| | פרק 3: נתונים וטיפוסי נתונים | 81
טבלה 3.2.
טיפוטי הנתונים של המספרים הממשיים .
טיפוס .| גוחל תתום ערכים מותר. | ספרות משמעותיות
1 6 בתם "- | 11-20000
8 5 4 בתם - 107א3.4 -% ואו 000 07-08
טס 8 כתים - 1781097 .2 / 508 = :15-16
46 0 בתים 11810778 7%" 1.9810 | 19-20
קווזסס 8 בתים רק ב ל | 0
בטיפוסים 51616, | 16מגוסס, 8 א ו-קס6 ניתן להשתמש. באשר קיים במחשב:
שבב המעבד המתימטי 7 תכונה זו תתואר בפירוט בפרק 17 ובחלק המתאר את
הוראות המהדר.:
מספרים ממשיים, הנקראים גם מספרים: בעלי נקודה צפה, מאפשרים דתיטסת
ערכים גבוהים במספר בתים מועט, בעזרת תצורה הדומה מאוד לתצורה המדעית.
התצורה המדעית משתמשת בבסיס 10, ואילו הנקודה הצפה מאחטנת את התצורה
הבינרית של הסימן (+ א -), מעריך וטספרת ערך:
| ה 2 א ספרת ערך (-/+)
למבנה. הסיביות עצמן אין למעשהי חשיבות, שים לב: המעריך וספרת 0
מאותחסנים במספרים בינריים, -- תחום הערכים שבטבלה נראה מוזר במקצת.
כאשר מגדירים מספר. ממשי כקבוע, מאוחסן ערבו בטיפוס. הקטן ביותר. האפשרי. כל
המספרים שבדוגמה הבאה יאוחטנו כ -68185:: :
/ 3 % ל 5
7 = 2 כת6ע1התעסא
י = ססְהַתסטַתהתסאת
: 2 54 = 0 05םתנ1טה11+09
0.76 = שס6ס8ע%ם150002ם
72 = 1280%02הת:סא
2 חלק א': הכרת טורבו פסקל |
שים לב לעובדה שהערך של ש0ס806ע6תגוס00פצת, הקטן מ-
1
מופיע עם אפס מקדים,
והערך של 81280008תעסא, שהוא אינטגרל, נרשם בצוקת שבר עשרוני. שפת
טורבו פסקל חייבת לקבל את הנתונים בתצורה זו, כדי להבין מהו הטיפוס שאליו
התכוונת. וכור: נקודה שאין לפניה מספר נחשבת לנקודה המסיימת את התוכנית,
ומספר שלא נכתב בצורת שבר עשרוני נתשב לאינטגרל.
טייפוסים בולאניים (ם168ססם)
שמה של. הלוגיקה הבולאנית נגזר משמו של 80016 06₪0206, מתימטיקאי -אנגלי
שעסק באלגברה של שני גורמים. בטורבו פסקל שני הגורמים הם אמת (6טתע)
ולא-אמת (1586בת).
הערכים הבולאניים מאוחסנים בצורה מספרית בבית אחד.
פע שונה מאפס (בדרך כלל 1+).
6 הוא אפס ואילו
הערכים הבולאניים, המהווים תנאי בהוראות לולאה, הם האמצעי השכית ביותר
לפיקות על מהלך התוכנית, כאשר מציבים במשתנה ערך בולאני, למעשה הופכים את
המשתנה לתנאי, למשל, כאשר נתונות ההכרזות:
;ת168ססם.
- 7ת168ססם
%5 | 5%
עפש
קנע
6%צסתסכ
המשתנים הבולאניים *כולים לקבל את הערכים 6;צ' או 8196ע, כמו ב:
= ת601ס
4%
8:8 :1ץ
%סצסתסק
0 . פרק 3: נתונים וטיפוסי נתונים | 83.
וניתן להשתמש בהם: בהוראות פסקל כבתנאים:
66 ם62880280פצנע +
= /098963[60%2071616
0 65צ6מסס 5סם 116
= /%060020א6א089120ססעק -
טיפוסי תווים (שְהּמ0)
כל המידע שב-26 מנוהל ביתידת האחסון הבסיסית - הבית (66ע8), שבו 256
מצבים אפשריים,. שפת טורבו פסקל מאפשרת להשתמש בשלושה טיפוסי נתונים
המטפלים בבתים בודדים: עהּת0, 56 ו-+מ61עסתפ, כאשר משתמשים בבית כדי
לייצג 'מספר בן 8 סיביות, משתמשים בטיפוס ה-66ע5 או ה-%ם2%1סם8. כאשר
משתמשים בבית כדי לייצג אחד מ -256 התווים של קוד 8011 המורחב, משתמשים
בטיפוס ה-שהתס.
הדרך הטובה ביותר להבין את טיפוס ה-:8מ6 היא לעיין בערכי 1 המתוארים
בטבלה 3.3. :
כפי 07 לראות בטבלה, הספרות (0 עד 9) קיבלו את הערכים שבין 48 דדספת
ובין 57 דדספה; האותיות הגדולות הן 65 38011 עד 90 38011 והאותיות הקטנות .
הן 97 38011 עד 122 דדספת. | |
למבנה נתונים מוזר זה יש סיבות היסטוריות: בעבר השתמשו רק ב-128 התוים :
הראשונים בסדרה (תווי 258011 תקניים), כיוון שבעידן : הטלטייפ . נהגו לאחסן
את הנתונים ב-7 טיביות בלבד ולהשתמש בסיבית האחרונה כבסיבית ביקורת כדי
לוודא שהשדר מדויק, שיטת הביקורת, הנקראת:בדיקת זוגיות (6260% צ6ַגע28)
משתמשת בערך שבסיבית האחרונה (סיבית "מודלקת" או "כבויה") בדי לציין אם .
סכום הסיביות בבית הוא זוגי או בלתי צוגי. |
תווי 0 הנמוכים (31 -0) היו תווי פיקות לתשדורות. | תווים אלה ניתן: היה
לוהות על ידי הימצאות אפס בסיבית השישית והשביעית. -- >
האותיות הגדולות התחילו ב-65 דד ולכן ניתן היה לזהות תו על *די.
הסיבית השביעית ה"דולקת", בין האותיות הגדולות והקטנות' מבדילים 32
| 4 חלק א': הכרת טורבו פסקל :
7 מקומות, ולכן ניתן להבתין רו האותיות הקטנות והגדולות באמצעות מצבה של
הסיבית השישית.
עם התפתתות ה-6פ, החליטה חברת 18% לבצע את בדיקות הזוגיות באמצעות המכשיר
= עצמו,. ושיחררה בכך את הסיבית השמינית, יתד עם 128 תווים נוספים שניתן
= לנצלם' לתווים בשפות זרות ולתווים גרפיים, הסדרה המלאה הכוללת 256 תווים
נקראת מערכת התווים המורחבת של ז501ה.
= | פרט לתווים מיוחדים, כמו הזנת דף (מספר 12) או החזר הגררה (13), מתייחסים
אל התווים באמצעות שם התו עצמו ולא על פי מספרו הסודורי (כלומר האות ג
ולא 65). התווים שבתרשים 3,1 משמשים בעיקר לשרטוט טבלאות ומסגרות.
טבלה 3.3 ערכי 4601 .
| 807008 || 1000 | 1108 | ת00ז00 || 000 | 165 || 6000 || 660 | א6]
* 12 7 > 21 15 0 00
+ 43 ת2 7 2 ת16 9 1 מ01
/ 44 261 % 233 ת17 . 2 02
- 5 מס יז 24 מ18 צ 32 ם03
: 46 ת25 3 25 ת19 % 4 04
/ 217 ?2 2 6 גת1 * 5 05
0 48 30 - 7 מג 18 / 6 06
1 149 ת31 : 28 ם16 ₪ 7 07
2 50 321 . 29 מפן - 1 ת08
3 1 33 4 10 מפן 0 9 09
4 2 34 - הז 31 תת 6 - 10 0
5 3 352 5 > 2 ת20 8 11 מ08
6 4 מת36 - - . 3 21 פ 12 001
7 55 372 י 9 4 ג22 2 13 תפס
8 56 38 % 355 ת23 ח 14 05
9 | 7 ת39 46 ת24 - 15 כ
: 58 3 -% 17 ג25 : 16 ת10
: 9 3 8 38 ת26 4 7 מ11
< 60 30 427 ת27 % 18 ג12
= 1 פ3 = 10 בת28 8 19 ת13
> ) 1. .29 . 20 מ14
טבלה 3.3 ממשיכה בדף הבא
ן פרק 3: נתונים וטיפוסי נתונים 5
המשך טבלה 3.3 ערכי 45011
7 7 1% 0 ו ;ו 0 7 | 1
8 4 ג86 . 9 ב63 ָ? 3 | גת3
ס 5 ג87 8 0 ;64 8 4 40
8 6 88 8 1 655 4 5( ת41
8 7 89 , 2 מ66 - 426
8 8 ;8 : 3 .67 63 7 :43
1 9 .85 מ 4 .68 4 8 ת44
" 0 .80 1 5 ;69 1 9 .45
1 1 ;8 3 6 ,6 ב 70 [46
5 2 88 7 658 7 0-1
ג 3 -ם89 1 8 66 / 2 48
58 4 ג90 וז 9 תס6 % 1 3 ת49
/ 6 92 - 1 ;60 א 5 ת48
6 7 .93 הס 2 מ70 2/7 6( 4
5 8 ג94 1 3 ;71 לא 77 הפ4
5 9 מ95 ץ 4 ,72 אלא . 8 45
/ 0 תמ96 . 5 ב73 1 79 תע4
ב 1 97 + 6 ;74 7 20 50
ָ 2 ;98 גו 7 755 - +94 -- 81 ת1כ
5 3 .99 טש 8 ג76 0 ת 2 | 52
ט 4 ג;ת9 שּ 9 ג77 %9/ 5 3 53
6 5 ;98 * 0 .78 0 4 | 54
6 6 96 ד 1 ;79 על 85 כ
צ 7 מ90 2 2 .7 6 ש - -
א 8 98 ָ 3 ;758 דח :
1 9 םעפ | 4 702 5% - ..
8 0 20 / 5 7 2 0 הג5
+ 1 תנגת - 6 תש7 [ 1 58
6 2 22 / 7 (א7 2 505
8 3 23 " 8 ;80 . ו 3 50
מ 4 .24 6 9 ;81 , 4 5
א 5 255 6 0 82 5 5
" 6 ת6ת 8 1 ב83 ₪ 66
. 7 גלת 8 2 ;84 5 7 מג61
6 8 28 ו 3 85 5 98- 62
טבלה 3.3 ממשיכה בדף הבא
6. חלק א': הכרת טורבו פסקל
המשך טבלה 3.3 ערכי 4501
הו 100 1% מ 000
205
206
207
208
209
210
221
212
213
214
225
26
27
218
209
220
221
222
223
224
225
226
227
228
229
2250
21
22
223
24
25
226
207
2108
2219
220
₪
-
ג"
ג
+
-
+
| ==-ו =
[
()
1"
כ
₪
(6
ור ₪3 -ה ד כ==--
2
5
=
כ
ת)
=
רשא ""אא 8 5 סי 1' 3 ₪ 0 ₪ 3 6 ₪ 0 0 8 6- חכש וו
תת
מפם
תסמ
מסם
תמם
העם
תסע
:2 שלַנצָצָדָּ----1--2-4 ₪ /-5ש== ₪] ₪ 7-7 ]- 4-ד !| -4 הח ==
| |==[
19
100
18
19
10
11
12
13
14
15
16
17
188
19
200
201
22
203
204
מפם
תהם
מפםּ
0
מסם
ממם
מעם
60
ת61
ת62
מ3ס
64
ת65
665
ת67
683
9
תת
תמ
0
| פרק 3: נתונים וטיפוסי נתונים | 87
תרשים 3.1 |
תווי 85011 המשמשים לשרטוט טבלאות ומסגרות
בזיכרון תופסת כל מחרוזת את מספר הבתים המקסימלי שלה
| יידרשו 31 בתים לאחסונה, בית אפס :כיל את האורך של
טיפוסי מחרוזות (8ם56:1)
ק[ 05126ת5621 ]סת1
882 חלק אי הכרת טורבו פסקל 0 / 2
= טיפוסי המחרוזות (9מ1ע56) מורכבים: מסדרת תווי 611פג. על מחרוזת מכריטים
כך:
עבט
ספ ע78עספ
הגודל המקטימלי של 059126ם5521 הוא 255 תווים, אם מציינים את המלה השמורה
| = 6ת1ע56 מבלי לרשום את גודל המחרוזת, המערכת משתמשת בברירת המחדל - 255.
ועוד בית אחד. בית
זה, שמיקומו אפס, מכיל את מספר הבתים שתופסת כרגע המתרושת, למשל, אם
הוגדרה מחרוזת בשם שתהּא:
עפצ >
.
?[ 30 ]סם1ע56 : סשתבּא
שהוצבה ב-שתהּא, ניתן לפנות אל כל אתד מהתווים במחתרוזת
המחרוזת האתרונה
על ידי ציון מספרו
הסידורי, למשל [5]ַַתּבּא מציין את התו התמישי, אם נבצע את ההשמה:
ל'ג
ממזצמתפ' =: סתבא
יכיל בית אפס את הערך 6 (אורך המחרוות), בית מספר 1 יכִיל 8, בית מספר 2
יכיל 8 וכן הלאה, המערכת תתייחס אל המתרוזת בהתאם לאורכה הממשי באותו
רגע. לכן, תגרום ההוראה:
;( '8ם1ע56 +ס 6במ+' ,סתהא ,+ שםת1ע56 +ס
להצגת השורה:.
582% )מ1661משט
48םגע6ה 05 תע + ג10ע53+ | 0ם1ע56 8%
אם נשנה את הערך של 6תבּא ל:
ל'ם
אגתז' =: ס6תַהא
₪ (
פרק 3: נתונים. וטיפוטי נתונים >
יכיל בית אפס את הערך. 5 בית מספר אחד יביל. , בית: מספר שניים - 9 וכן
הלאה. המערכת תתייתס במקרה זה אל 6תצא כאילו היה: מתרוזת בת 5 תווים
בלבד.
תוכנית 61א5181 (תדפיס 3.1) מדגימה את השינויים באורך הממשי של מתרוזת.
| תדפיס 3.1
ד תפידפסיסן
יפש
ה "15 0 ₪ת3ע105%56
1105 סינ
> שפט
(96ע/: 1
| 2% - מנשסט
3 .( '%%%/ ו ***'| )ת561גיט
5 , 0 15 0 0 =: 01
(308008 4 שס111) .;( 4 [ 1 ]שת1ע108%55% )0 ב
ן ת[1%6 |
[ 56ע0 8126 6ם% מתמקעט 0+ 6 4) ;07007 )108עש.
י, | , 0 15 60 1 =: 1 עס+
[88008 4 שס1נ1) - ;( 4 1 0 ב
: > ; ת1461יט
; ת161י
7 -
, ב תנשסט
יר ו
י / 0 ; תוס
2" =:. ₪ת1ע70809%
; שת1 ל טשוסרס
;'? =: שת1ע708%9%
; שת )שוסרןס
; 8102056405" =: שת1ע05%9%ך
0 ו נ ספ
תס
וו מכ
המחרוזת 8מ555%1סי' מוגדרת כמתרוזת בעלת 15 תווים, והמשתנה ש8מ1ע165656:
עצמו. הוא למעשה באורך:16 בתים, כאשר הבית הראשון מכִּיל. את' נתוני אורך
המחרוזת, בעת ההגדרה, אין במחרוזת תוכן . משמעותי, ולכ נעביר אלו תחילה
| את אותיות ה-806.
000 חלק א הכרת טורבו פסקל
?2 ץאטעג50ע12)ססתת1אר300661021' =: 0םת555621סך
על פי ההגדרה אורכו של 66מ95%9601 הוא 15, ולכן תכלול המחרוזת רק את 15
התווים הראשונים, הפעלת הפרוצדורה 88םת521פשסם5 על 265096218 תגרום להצגת
הפלט שבתרשים, 3,2.
תרשים 3.2
תוכן המשתנה פַחו"5%פ95%ד שבו הוצבו 15 תווים
***סחות|א[1ח000910ב***
6חטחסס פַחהוופ
1 | 10 | 109 , | 104
| וממם
אחר כך מוצבים ב-6מ1ש7656596 התווים דטטאאצ2, כלומך מחרוזת שאורכה 7
תווים. הפעם תיצור פרוצדורת שַםת1ע6>פטאסתפ את הפלט שבתרשים 3.3.
תרשים 3.3
תוכן המשתנה חול5פ936ז שבו הוצבו 7 תוול
0
***ך()/ /י *=א
008 פַתוזס
כפי שניתן לראות מתוכנו של הבית הראשון, המשתנה מכביל במקרה זה שבעה תווים
משמעותיים בלבז. המקומות הנותרים במשתנה (8-15+ מכילים תווים (במקרה שלנו
ס עז ם, שנותרו מההצבה הקודמת) אולם המערכת אינה מתליחסת אליהם.
| : | פרק 3 נתונים וטיפוסי נתונים 01
הפעולה הבאה היא הצבה של מתרוזח ריקה (כלומר מחרוות שאורכה 9) במשתנה,
התוכן שיוצג הפעם על ידי פונקציית שם1ש6פשסת3 מתואר בתרשים 3,4.
תרשיס 3.4 תוכן המשתנה פַחוז195%50 שבו הוצבה מתרוות ריקה
*אאאןאאי
חס פַחוזפ
הערך שבביה אפס מצביע בבירור על העובדה שמדובר כאן במחרוזת ריקה, למרות
שתוכן התווים שבבתים לא השתנה,
המחתרוצת האחרונה המוצבת ב-7955500106 היא 3152030465, הער שבביה
הראשון הופך ל-109, והערכים החדשים מוצבים ב-10 הבתים הראשונים. תוכנם של
5 הבתים הנותרים אינו משתנה, (תרשים 3.5):
תרשיס 3.5
תוכן המשתנה פָחו"95%556ז שבו הוצבה המתרוזת 3152630465
***2080405כ [7ם***
6חסוהסס הס
הדוגמאות שראינו מבהירות גם כי בגלל שטתי האחסון הגדולים, לא רצוי להשתמש
בברירת המחל הגורמת להקצאת 256 בתים למשתנה, כאשר פשוט מתעצלים לחשב את
גודלו הצפוי, למשכ, ההגדרתי
92 | תלק א" הכרת טורבו פסקל | | |
;םגעסה 0% [1,100 -] צהמעה :- צהמעתת6פ
בצ
תגרום להקצאת 25,600 בתים למערך עַ28עתש56 (על פי החישוב (1+ 255) א 100).
המבנה הגמיש של המחרוזות נראה בזבזני, אולם הקצאת אורך] קבוע היתה מקשה על
התוכניתן, כיוון שמספר התווים בשמות, כתובות, כותרות] וכדומה אינו אחיד,
מאידך, השימוש במחרוזות בעלות אורך משתנה "אמיתי" מכביד מאוד על המהדר.
שפת טורבו פסקל הגיעה בנושא זה לפשרה נותה: היא תומְכת במתרוזות בעלות
אורך פיזי קבוע ומאפשרת לשנות את גודל המחרוזות המוצבות למעשה במשתנים.
טיפוסים ממוספרים (4568-זסמגותם)
נניח שהחברה שלך מחולקת לארבעה אזורים - צפון,
דרום, מזרח ומערב,
והתוכנית שלך וקוקה למשתנה בשם בס1שסת שיזהה את האזור הגיאוגרפי שאליו
מתייחס העיבוד המתבצע באותו רגע, שפות תכנות רבות מתייבות, במקרה כזה,
להשתמש במספר לזיהוי האופציה שנבחרה, לדוגמה:
עפצ
;ססצם: תסנטסת
> 1
4%
5 4 ס> 1 =: תס1שסג עס+
+ ת0ס361 6856
(; 'ת36010 תעסת6>עסא' )מ1661עש:
;( 'ת6010ת3 תעסם6טספ' )םת661נ1עשט
;( 'ת36₪010 ת388662' )םת1661ע
| ( 'ת26010 תע6566' )ת1661ע
]5 ₪ 9% -
4% 5% (|.
ש
ש
י/ פרק 3 נתונים וטיפוסי נתונים 93
השימוש במספרים לייצוג נתונית שאינם מספריים עלול לבלבל, בעיקר כאשר
מדובר בתוכניות ארוכות ומורכבות. בטורבו פסקל קיים טיפוס מיוחד, הטיפוס
הממוספר (8660זסוטמ6) המטפל במצבים אלה, הטיפוס הממוספר הוא, פשוט, רשימה
של מזהים הרשומים בסוגריים, הרעיון הוא לאפשר לך לטפל במשתנים המתוארים
במונחים מילוליים במקום בערכים מספריים שהוקצו באופן אקראי.
השימוש במשתנים ממוספרים מודגם בתוכנית שבתדפיס 3,2, המהווה שיכתוב של
התוכנית שתוארה לעלל.
תדפיט 3.2
; ותגורג2 ותהירססיוכן
6סע+
;( 068% ,088% ,500% ,בסעס ) = 6סץע1תסבשסת
ונפש
6סע1תס1נקפת : תסנקסת
תנשסס
0 0050 %0 מףעסא =: תסנבשסת 202
1 תסנשסת 0886
( 'ת10שסת התסמףעס' )ת₪1501 : מסעסא
; ( 'ת10שסת תסתטס5' )ת[1%9יש : ב50%
;( 'תסגשסת הנסלפ8ע' )ת1561יש : ספפת
; ( 'תסנקסת ת-0ל5ס' )ת1561י :- 6פסח
-
הפלט של תוכנית אטאש הוא:
תסנספת תתסת)2סא
מ0ס1ט6ת תעסם6טספ5
מס1נס6ת | בע8566ע
תסגסת | בק6566ח
שים לבי לולאת עס+ חלה על כל הגורמים: ב>עסא, ם6וספ, ₪886 ו-65%א, שפת
טורבו פּסקל מאתסנת כל ערך בצורה ממוספרת, החל ב-0, על פי הסדר שברשימה,
וממירה, אוטומטית, את המזהה לערך המספרי המתאים, שיטת ספרור זו יוצרת סדר
טבעי שבו ניתן להשתמש בהשוואות, בתוך אטאע מאותסן ם6>צסא כ-0, ם6ט50 כ-1,
% כ-2, (-%₪8₪586 כ-3, כדי לפנות לערך המספרי של המזהה יש להשתמש
בפונקציית 026; (ם6סעסא)026 הוא 0, (םסטס6)5צ0 הוא 1, וכן הלאה.
4 חלק א" הכרת טורבו פסקל
ברור כי יש. להגדיר כל מזהה מסופרר שברשימה, למרות הטרתה הכרוכה בכן,
מקלה פעולה זו על הבנת התוכניות והופכת אותן לקריאות וברורות יותר, הנה
| דוגמה לתוכנית. המטפלת בצבעי הקשת, התוכנית מגדירה | טיפוס מסופרר בשם
תגועת60%ס5 ואת המשתנים המשתמשים בן:
ס6סץ
;( 71016 ,1106140 ,3106 ,ת6200 ,אס611צ ,06ת028 ,66ת|) = תגתע6ס6ספ
נפט
;תטמסססס : עס 001
1660627 +01 [ 60.,/10166ת ] צְהָּעַעהּ : %תני'
המשתנים 00102 ו-%6ם1 יכולים לקבל כל אחד מהערכים שהוגדרו ב-מט:6סססט,
למשל:
.
;תע =: מעס01ס6
/*7 5: [ 06ת8ע0 ]%םת71
המהדר אינו מתיר שימוש בטיפוסים מסופררים כקלט או כפלט, ניתן להשתמש בהם
רק בתוך התוכנית עצמה, ההוראה:
;( ע0ס001 , 18 עס1סס 6תק" )ם1681עש
תיצור הודעת שגיאה.
טיפוסי תת-תחום (סַת3:ס50)
לעיתים, מבקשים להגביל משתנה לתתום ערכים מסוים, הטיפוס המטפל במצב כזה
הוא טיפוס תת-התחום (86מ8כט5). |
תת-תחום חייב להיות כפוף לטיפוס שהוגדר קודם, ונקרא |פונדקאי (56סמ). על
התחום להיות רציף: כדי להגדירו, מציינים את גבולו העליון והתתחתון, כאשר
בין הגורמים הללו מפרידות שתי נקודות (..).
המהדר מבטיתח שמשתנים מטיפוס תת-התתום לא יתרגו מתחום הערכים שהוגדר
עבורם, אם מנסים להציב במשתנה כזה ערך התורג מההגדרה, נוצרת שגיאה. זוהי
שיטה נוחה להבטתת אינדקסים של מערכים מפני חריגות, לֶדוגמה: נתונה הגדרת
תת-תחום: =
| פרק 3: נתונים וטיפוסי נתונים | 95
: 0%
- = מססשעחס1
- 197 >= בס6עםטגה
-- הט
?7 | 806
:. צסס1ץ
?'2','ת' : = 6886נסקסט
: 6שתשת1תמ:סח
(ת0ס'ם1110. מססז'שוסז 3 עהסצת0סץ
ההצבות הבאות הן חוקיות:
7 =: 6
/7=: עססןע
;'א' =: 6 טסט
7 =: 6סתשת%1עסח
/7 =: -- עשה0צב0ץך
אולם ההצבות הבאות תיצורנה שגיאת חריגה מהתתום:
=: 6
0000077 מססנע
;'ת' =: | 6886ת6ססט
=: 66תשת1אמסח
2 =: עהסצתסס .
אין להגדיר תת-תחום למספרים ממשיים, כיוון שאין מספר קבוע של מספרים
עשרוניים בין שני מספרים עם נקודה עשרונית צפה. -
טיפוטי קבוצה (50%)
קבוצה (508) היא אוסף סופי של גורמים מטיפוס זהה, שהוגדר קודם, הנקרא.
טיפוס הבטיס (סַבַּבּס). על קבוצת מטטם מכריזים כן:
עפצ
;0סץפהת 0% 566 | : מסתטם
6 חלק א" הכרת טורבו 09קל 2 0000 ב
מספר הגורמים המרבי שניתן לכלול בקבוצה הוא 256. הגבול העליון והתחתון
של טיפוס : הבסיס צריך לכלול ערכים סידוריים הנמצאים בַּתתום 0-255. טיפוס
הבסיס אינו יכול, על כן, להיות 6מדשַתס/ז, 2ע166006, %ם61עסב5, או סעסא, הנה
דוגמה להגדרה של קבוצות:
/- | | 6 .
;( 58% ,בעע ,טם1 ,60 ,סגו ,מסא ,מט5 ) = 33
ז'2', 'ה' = 1-6
ק;( ע608%606עגוע2 ,תע068%00 ,55גו20ס5 ,05 ) = ץם+[8ס
;( 03600816 ,2188610 ,6%81א8 ,20155 ,פסטא ) = 65נהע
: עפצ
;פצְת : ,בהי
;רצה 0% 566 : פצְהּכאתסח
05 565 : פטס
;עהםס 05 866 :| 0[6מת6111ס5
;פסעהע 05 8066 : יי
;16816 05 866 : גובמ6ע
*+
הצבת ערכים בטיפוס מסופרר כמו צַָ628ת0 מתבצעת כדלהלן
17 = צ608ת0
קבוצות יכולות להכיל מספר ערכים, כאשר מציבים ערכים לטיפוס קבוצה כמו
5שנסא, יש לרשום את המזהה בסוגריים מרובעים, כמו בדוגמה:
;[ נעע ,תסא ] =: בצעְבּכאעסח
פעולות בקבוצות .יידונו בהרתבה בפרק 4.
מצביעים (1:5ס>ת1סס)
משתנים שהם מצביעים (5ע56מנסס) מבילים כתובת של מבנה נתונים ולא את
הנתונים עצמם, טיפוס המצביע מאוחסן במלה כפולה, כאשר ההיסט נמצא בתחלק
> הנמוך של המלה והפיסקה בחלקה הגבוה. ,
ניתן להגדיר משתנה שהוא מצביע באחת הדרכים הבאות:
פרק 3: נתונים וטיפוסי נתונים | 97.
2% - עפאט
57" 2 1 8
ב .. 2
=-
1 הוא מצביע למשתנה מטיפוס 6סְע85'1, אשר יבול להיות טיפוס תקני, כמו
סע או שַם1ע55, או טיפוס שהגדיר המשתמש והופיע. בהכרזת טיפוס קודמת.
ב-851 ניתן להשתמש אך ורק כדי להצביע על משתני 6ץ567. 22| הוא מצביע
כללי, שבעזרתו ניתן להצביע. על משתנה מכל טיפוס שהוא. 2-8
ו המצביעים נדונים בפירוט בפרק 6.
מערכים (פעצצת)
מערך (עפיצי1ם) הוא מספר. קבוע של משתנים מאותו טיפוס. לבל גורם ו > ניתן.
לפנות בוומצע ות שלו. : : ,
את ההכרזה על טיפוס המערך רושמים כן:
| ל * 4 %. 7 עפט
;מע עהעתת +0 [ 706ץ1%א6₪6ם1 ] צְהעע8 : 6תהאצעהעתת
166 הוא תת-תתום המגדיר את ממדי המערך. סע ע8משג :כול להיות
טיפוס רגיל או טיפוס שהגדיר המשתמש, ססע1'עהצשת יכול להיות גם בער אחר.
במקרה כזה, מראה הגדרת המער כך:
י | "7 20 ית - סשפט
] 1.10 [ 05 166002, צהעעה 05 [ 1.5 ] עהמעה 5 1 צהעצת
מספר הממדים של המערץ אינו מוגבל. מערך רב- ממדי ניתן גם להגדיר כן: |
160077 05 [ 110 ,1.5 ] צהעע8 = - 2צ8צלעת.
= מערכים קשורים בדרך כלל לעיבודים. מתימטיים או לעיבודי רשימות, אולם. מותר.
להשתמש בכל תת-תחום סידורי, להוציא %ת1שמס ותת-תחומים של 6מדפמסם.
8( חלק א': הכרת טורבו פסקל
י ססע
;( 060 ,טסא ,מ6ע ,תהק ) = תבסתסא
;( 58% ,בעת ,תסא ,תטס ) = 5
: צהט
,56 0% [ 586,,תגופ ,ס6כ..ת28 ] צהעעה|: :68ת 0816
רשומות (5600::65)
רשומה (0עסספע) היא טיפוס נתונים המורכב משדות (816105), כל שדה שברשומה
הוא משתנה מטיפוס כלשהו, טיפוס ברשומה מאפשר לנו, אם כן, להתייתס לקבוצת
משתנים שהוגדרה מראש באמצעות מזהה אחד, ברשומות משתמשים בדרך כלל בקבצים
ובמבני נתונים דינמיים.
הנה דוגמה להגדרת רשומה:
7 = נְַַתסִפפַבק2
?פמנגעסם : סשהא -
;סט : עס6מתטא6תשג1ע
;6סצס +ס [ 1.3 -] צְהעעה : 6
;תס
כל רשומה יכולה להיות מורכבת ממספר רשומות קטנות *ותר, לדוגמה:
48 = כתַַַתספפַבע
6 : סתהא |
1%
;שםנעסם : 1%
תס
7
סע
,תטתסע
,צְבּם
;7 : נהסצ
.
עסמתגוא%ם114ע
6
*. 4%
פרק 3 נתונים וטיפוסי נתונים 99
הפניה לשדות מתבצעת על :ך:
6 [16 107 %1ת26106סססת
לדוגמה, אם הוגדר 710%6%' כטיפוס 1סַַתספפבּ, אזי סתהּא,+6א10י יתייתחס לשם
הנוסע, גם אילו ינו מגדירים את 1710%66 כטיפוס כמַַתספַבַבּע2, היה
16| מתייתס| לרשומת | 6תהא המלאה, 56ת1ק סתבּא,6<6%6נ
[-1,85% סִת3א,10%0%' משמשים לפניה לשדות המהווים תת-חלוקה, בשני המקרים '
מתייחס 16%6%ע' לרשומה כולה.
לעיתים, מסתבר בעת הכתיבה כי יש שדות או קבוצות של שדות שבהם לעולם לא
תשתמש בו-זמנית (למשל: 86ז8את8186א, שם המשפחה לפני הנישואים ו- 6ַהא150
- שם האישה), כדי להימנע מרישום שדות מיותרים רבים, הצורכים מקום רב
בזיכרון, מאפשרת שפת טורבו פסקל להשתמש ברשומה בעלת אורך משתנה.
רשומה בעלת אורך משתנה (ש6עסספע +מהנעאט), היא מזהה של רשומה המתייחס
לאוסף שדות שאינו קבוע. הרשומה עשויה להכיל גם שדות המשותפים לכל
הרשומות.
ברשומה בעלת אורך משתנה מגדירים תחילה את כל השדות המשותפים, ואחר כך
משתמשים במשפט 0886 כדי לזהות את הקבוצות המשתנות, כל אחת מהקבוצות
המשתנות יכולה להיות באורך שונה, אולם יש לפנות אליה באמצעות קבוע
סידורי, לדוגמה: |
ססע
8 = 360156028
: 5 160762 0886
;( ב6עסא : %כ,א0 ,א ,אה ): 1
;( ש6סעס : מם,תת ,08 ,0 (מם (תם ג בת ): 2
: 7
הט
7 : 08ב6661
הרשומה 260155625 היא בת ארבעה שדות מטיפוס 6מסש או שמונה שדות מטיפוס
סעם, אם נבצע את ההשמה:
) ---81--- --120%--- | >. |
2
100 << חלק א': הכרת טורבו פטקל. 0/0
יתקיימו המשוואות הבאות: .
%-% 1 = 05,081ת56561 וגם
0 = 08.02ת86%561
המשתנים 602 ו-0%4 נמצאים באותו שטת פ[שי בזיכרון שבו נמצא א6, והשימוש
ברשומה המשתנה מאפשר לנו לפנות לאותו שת פיי באופנים שונים.
לעיתים יש צורך לעקוב אחר המשתנה הפעלל. פעולה זו מתבצעת בעזרת שדה
מיוחד נוסף, הנקרא שדה תווית (21610 80):
;( 00028088 ,65610תסכ )
= |
?םע : סתבא
11 :
| שסצם 05 [ 1.3 ] צהעעה : 6
5 06ע11462ע :מסנסְהת561סכ 68586
, צ6₪8501%כ ) : סק
?,(( 30 ]1 : 6
ּ 2 : 8א62508818ט0 ): 0-5
?ל 20 כ * ץע6מגו65%600
7
50
=| 06ע%7ם114ע
0
עהץ.
7 מ 616ַטב
שדה התווית. ברשומה 2855860 הוא ת8%10מ26561, המאוחסן
למעשה כשדה נוסף
ברשומת סַתפפַבּ2, ערכו כל ו תס אן ל בהתאם למשימה
המתבצעת. למשל:
67 20=: ב8610ת0561כ, :0 61טה;ניך
שדה התווית הוא שדה שקיומו אמור לסייע לתוכניתן. אין
כל מגבלות גישה
לשדות המשתנים, בשדה התווית משתמשים בעיקר כאשר מהוף הרשומה שקיבלנו
מהקובץ אינה ידועה לנו, שדה התווית אומר לנו באיזה משתנה השתמשו, ומאפשר
לנו להימנע מגישה לא נכונה לנתונים. ברשומה ססתִּפּפַ28, לָמשל, נמצא השדה
יי (מחרוזת) באותו מקום בזיכרון שבו נמצא השדה א00280881%8
(ממשי), בדיקת תוכן השדה ם8%1מ6551כ תאמר לנו באיזה מבנה רשומה השתמשנו.
11
פרק 3: נתונים וטיפוסי נתונים .
טיפוס קובץ (116ע)
קובץ (2118) הוא רצף של מרכיבים. מאותו :טיפוס, מרכיב :יכול. להיות. טיפוס .
רגיל, כמו 566 או 6עסא, או טיפוס שהגדיר: המשתמש, כמו רשומה, : מספר >
המרכיבים אינו מוגבל, אולם ניתן לפנות רק למרכיב אחד בכל פעם.
קיימות שלוש דרכים להכרזה על קובץ:
, | - תתץ
600ת5פהע 0% 118ע : -- 6שעבץק
| | 6₪: 960026
11600ק + 6ע1תץ
הקובץ הראשון (2125%6) מכיל רשומות' מטיפוס סִסִתּ2488, הקוב השני (9ת6900) .
מכיל תווי טקסט המאורגנים בשורות שאורכן העשוי להשתנות, שים לב לתצורה
06ע1165ע +ס 116ע המתאימה לקבצי נתונים, ול-6סץ6> 2116 %א26' המתאימה
לאחסון טקסטים, שתי התצורות נקראות קבצים עם הגדרת טיפוס, הקובץ השלישי
(1260ם1) הוא קובץ ללא הגדרת טיפוס, עשוי להכיל נתונים מטיפוסים שונים. .
| כאשר משתמשים' בקובץ ללא הגדרת טיפוס, יש להבטית טיפול נאות: בכל הנתונים
| והגורמים שבו. |
קבצים ו רב יותר בפרק 13,'
טיפוס- הפרוצדורה (0עו000:ם)
בטורבו פסקל ניתן להציב פרוצדורה או פונקציה במשתנה מטיפוס פרוצדורת,
טיפוס הפרוצדורה ור בפירוט רב יותר בפרק 5.
172 חלק א': הכרת טורבו פסקל
סיכוס
בפרק זה למדת שטיפוס הנתונים מגדיר את תחום הערכים |ואת מערכת הפעולות
שניתן לבצע על אותם ערכים.
הכרת את טיפוסי הנתונים הסטנדרטיים של טורבו פסקל.
₪ טיפוסי ה-12660962: 2ע6076ת1, 6ת61עסב5, %מנ1ףמס1, 66צכ, ו-6צסא מטפלים
במספרים שלמים.
₪= המישה טיפוסי נתונים של מספרים ממשיים מטפלים במספרים עשרוניים: 681ש,
6טסף, 0616ת51, 60606ת60א6₪ ו-קתסס.
₪ הטיפוס הבולאני יכול להיות אמת (6טע6) או לא אמת (53156).
א= טיפוס עהת6 מגדיר תווי 5011 בודדים, וטיפוס 8םת1ע56 מגדיר סדרה של
תווי 25011.
₪ עס>ת1נסס מגדיר כתובת של מבנה נתונים ולא את המבנה, עצמו.
למדת גם להגדיר טיפוסי נתונים משלן, כדי לפתור בעזרתם בעיות תכנות
יחודיות.
₪ טיפוס מסופרר (8%666ז6תגות6) מכיל רשימה של מזהים שהגדיר המשתמש.
= תת-תתום (86ם50028) הוא רצף הכפוף לטיפוס שהוגדר קודם.
= קבוצה (566) היא אוסף סופי של גורמים בעלי טיפוס משותף, שהוגדר קודם.
= מערך (ץעַ2עה) הוא מספר קבוע של משתנים מאותו טיפוט.
₪= רשומה (60026ע) מאפשרת לך לפנות לשדות שהוגדרו קודם באמצעות מזהה
אחד.
₪ קובץ (5116) הוא רצף של מרכיבים, מאותו טיפוס, שלאחד מתוכם ניתן לפנות
בכל פעם.
פרק 3 נתונים וטיפוסי נתונים | 103
₪ טיפוס הפרוצדורה (6עט66ססמס) הוא אמצעי מתקדם של טורבו פסקל, המאפשר
לתוכנית לטפל בפרוצדורות ובפונקציות כמו בגורם רגיל.
פרק 4: ביטויים פעולים ופועלים 105
פרק
ביטויים, פעולים ופועלים
רוב האנשים קושרים את המחשבים עם "לעיסת מספרים" - פתרון בעיות מתימטיות
מורכבות ומייגעות בדייקנות ובמהירות.,
לא קשה להבין את מקור הסברה, העיבודים הממוחשבים הראשונים התמקדו בעיקר
ביישומים עתירי פרטים תישוביים, כמו חישובי שכר, עיבודים אלה נבתרו כיוון
שהיו הראשונים שהצדיקו, כלכלית, התקנה של מחשבים מסתריים. הצדקה מסחרית
זו תקיפה גם כיום, אולם נוסף לכך ניתן לנצל את המחשב ליישומים מסוג אחר.
ברוב המקרים ניתן לצמצם כל בעיה מספרית למשוואה אחת או יותר, המשוואות
שניתן לתרגמן לנוסתאות מתאימות. בטורבו פסקל מהווים הביטויים אמצעי עיקרי
להגדרת בעיות ולפתרונן, ניתן לנסת בצורת ביטוי כל דבר, התל בבעיות
חשבוניות פשוטות וכלה בבדיקת התניות ובטריגונומטריה. :
פרק זה מתאר את אופן השימוש בביטויים בתוכניות טורבו פסקל.
פועלים (פצס6העסקס) ופעולים (68מה:ססס) -
סקירה כללית
באופן פשטני, ניתן לומר כי ביטוי מורכב מפעולה המתבצעת על פעול אחד או
יותר. חישוב שטת של מלבן מתבצע בעזרת הביטוי (ם16%6ש * %תשנסת), שבו
%נסת (-ם16%א הם הפעולים (65תה8מססס) וסימן הכפל הוא הפועל (צס6ה8:ססס).
6 חלק א" הכרת טורבו פסקל
ניתוח הפעולים (פַתבּמססס)
לכל פעול יש שתי תכונות יסוד: מניין הפעולים (>תטסס בַמְ8מסקס) והקדימות.
המונח מניין הפעולים (5מגוסס ₪מ8עפסס) מתייחס למספר הפעולים שבהם משתמש
הפועל (עס86שסקס), פועל בטורבו פסקל :יכול להיות בעל פעול אחד (עְזהּמט) או
בעל שני פעולים (עְע8מגס). בפעולת כפל, פועל * הוא בעל שני פעולים,
ומשתמשים בו כדי לקבל מכפלה של שני מספרים. לסימן התיסור יכול להיות פעול
אחד (למשל 4-) או שני פעולים (כמו 5-2), בהתאם להקשך.
הקדימות (06מ60006ע2) היא הסדר שבו מבצע טורבו פסקל|את הפעולות. קדימותה
של פעולת הכפל, למשל, עולה על זו של פעולת התיבור, כפי שלמדת בבית-הספר,
במשוואה:
3 * 4 +2 > א
% ו . .
תתבצע פעולת הכפל תתילה, והתוצאה על כן היא 14 = (4*3) + 2 ולא
8 > 3 * (2+4).
ניתן להשתמש בסוגריים כדי לכפות סדר עיבוד שונה, אילו (|רשמנו:
3 * (4 + 2) = א
היינו כופים על טורבו פסקל לבצע תתילה את פעולת התיבור, ובמקרה זה היה
ערכו של א - 18. סוגריים מעבדים תמיד מבפנים כלפי תוץ. תוקי הקדימות
מאפשרים לך להימנע משימוש בסוגריים רבים, אולם לעיתים כדאי להוסיף
סוגריים כדי להבהיר לקורא את הכוונה.
סדר הקדימות של הפועלים מופיע בטבלה 4.1. לכל הפועלים המופיעים באותה
שורה יש קדימות זהה (אם סדר הפעולות לא שונה באמצעות סוגריים), העיבוד של
פועלים מאותה קדימות מתבצע על פי סדר הכתיבה. פעול הנמצא בין שני פועלים
שייך לפועל בעל הקדימות הגבוהה יותר.
| פרק 4 ביטויים פעולים ופועלים 107
טבלה 4.1
סדר הקדימות של הפועלים
פועלים קדימות
- + גחט סא 6 (םפום) 1
א .זוז5 סאג כסוא זכ / * 2
א 00 - + צנגתוע. 5
א ה 0 גיא (שס1) 4 "
העובדה שקיימות ארבע דרגות קדימות בלבד תורמת רבות לבהירותה של שפת טורבו
פסקל, בשפת 6, למשל, קיימות למעלה מ-15 דרגות קדימות. |
פועלים: חשבוניים
לא קשה להבין את משמעות פועלי החיבור, התיסור, הכפל והתילוק של טורבו
פסקל (ראה טבלה 4.2), הפעולה שהם מבצעים משתמעת משמם, בעת ההפעלה יש לשים
לב לעובדה כי קיימים כללים שונים לטיפול בערכים מטיפוס 16666 ובערכים
מטיפוס 681ת.
טבלה 4.2
פועלים תשבוניים
פועל תתביר משמעות
+ ם0ס6551:קא6+ תיובי (פעול אחד)
+ 2+ 1ב269910קא6 תיבור (שני פעולים)
- מסנגפפסעקאס- שלילי (פעול אחד)
- 12שאשאאאא- 26881011קא6 חיסור (שני פעולים)
* 2 * 6981021ע2קא6 כפל -
/ 12 26551001קא6 תילוק, טיפוס 681
צדס 2 א 1 1מ265910קאס תילוק, טיפוס 1660462
פסא 2 א 0 1 62655102 שארית (ערך מותלט)
108 חלק א': | הכרת טורבו פסקל : | | |
כאשר מציבים ביטוי במשתנה מטיפוס 66762ת1, צריכים כל הגורמים שבו להיות
גם הם מטיפוס זה, כאשר מבצעים פעולת חילוק ב-66962ם1, יש להשתמש בפועל
צנם ולא בלוכסן. (/) המציין חילוק מטיפוס 681ת, יש להפוך איברים מטיפוס
1 ל-849ט12 בעזרת הפונקציות שתגוסת (-שמגונת..
אם אחד האיברים הוא מטיפוס 681ע2, יהיה גם הערך המותזר מטיפוס 2681, אם
משתמשים בפועל הלוכסן (/), יהיה הערך המותזר מטיפוס 2681 גם אם המחלק
והמחולק הם מטיפוס ע1156076. /-
אקן להשתמש בפועל התילוק צצפ (המיועד לטיפוס ע1266046) עם פעולים מטיפוס
1. אם תעשה זאת, יוחזר חלק ה-66062ת1 של המנה, הפועל פסא מתזיר את
השארית, למשל: אם נחלק 45 ל-6 תהיה התוצאה 7 והשארית 3 ולכן:
3 = 6 פ45%0 > 7 = 6 טנס 45
- תוכנית 1מץ1גא (תדפיס 4,1) היא מעין מכונת חישוב המבצעת את ארבע פעולות
התשבון, ויוצרת פלט הדומה לסרט הנייר של המכונה.
. / 0 - | 0 פרק 4: ביטויים פעולים: ופועלים . 1.09
תדפיס 4.1 >
9121 תפינםסעכן
. 09060 568 >
195000840
ּ: , ענ 3
וס 2 , ענ ות
| - . , 008601
;%ת1שת10 1 " תיסקס * *
ה תגשסס |
0 =: 01ת100618 78
;0 =: 62ת08ק0
;9% =: עיצת
('+8 =: ע880ע193+000
2 | 0085
; עעלתת =: עעסת0ך
; 368890 =: שפחת
תסל (ע195%25 = עצסם) תה ('+' = עעסהם) 14
[ 2000 8 08220 652108 7+' סא1 ]| ;0 =: 61ת00078
יח ! + עסו 0886
י תנשסס : '07..79"
: > ; ( עעפתם )150ע +
(48 - ( קעפתם )6ע0ס) + 62*10ת02028 =: ק6תהעססס
- : תס
| '+ ,
/ . 1
.7 תס : *]'
+ 138%0009602 0836
; 00028(02 + 00020261 =: 61ת00618 1 '+!
000802 - 61ת00029 =: 0062801 :.'-!
,000908 * 01ת02628 =: 01ת8ע000 : '*7
00:92 610 00028261 =: 00028261 > *]*
תע " 'ק ; תס
;0 =: 0000862
. 2 ; ת091 יש
; (- 10: 00901 )ת1501י
( עעפתת )ת1961ע .
; ענ%תת =: 185%00028%02
- - /
ו .0 ;8 :
(([ ']? ,'*' ,'-' ('+' ,'0'..'9' ] תג עעסתת) פסת 1גסתט
-
0 חלק א" :
הכרת טורבו פסקל
אחרי כל 68962ם1 מקישים +, -, * או /. תוכן המשתנה ע:%6מ188%8 נשמר
ונבדק. הסיכום מתאפס כאשר לוחצים פעמיים ברציפות על קליד +. המשתנה
2856006860 נשמר, כיוון שהרצף:
12345 + 23 -
מסכם ומציג. את הסכום של 12345 ו-23 רק אתרי הלחיצה על קליד ה-. הלחיצה
על הפועל מפעילה את הפועל הקודם, התוכנית מסתיימת כאשר לוחצים על קליד
שאינו פועל או על ספרה (אם אתה מבצע את הפעולות באמצעות המקשת הספרתית
- אל תשכח ללחוץ אססתגוא).
פועלי הזוזת סיביות (%6+501)
תרשים 4.1 מתאר כיצד משתמשים ב-888 (16+6 0168 %6+511) [ב- 588 (1%5ס 51%
%) כדי להזיז את סיביות ה-66065מ31 שמאלה וימינה, הסיביות ה"נדחפות
התוצה" בשל פעולה זו - אובדות, הסיביות המתפנות (משמאל או מימין) בעת
ההזזה, מקבלות את הערך 0.
תרשים 4.1
הפועלים .54 ו-586
0 (188 8/ח5) 51
|--<)--<1--<] --< 0%
--< ]--<]--< ]--< ]--<[--< 0| | (תחוה זוח8) 5
הזזה של סיבית אחת שמאלה, כמוה כהכפלת הביטוי ב-2. הזזה של סיבית אתת
ימינה, כמוה כחלוקת המספר ל-2, ניתן לנצל פועל זה |כדי לבצע במהירות
פעולות כפל ותילוק בתזקות של 2. הזזה שמאלה פעמיים מכפילה פי 4, שלוש
הזזות מכפילות פי 8, וכן הלאה.
11
פרק 4:. ביטויים פעולים ופועלים
כאשר טורבו פסקל מבצע הידור של פועל 58 או תאפ, נוצר קוד מכונה להזצה,
שמהירות פעולתו עולה במידה ניכרת על מהירותן של הוראות הכפל והתילוק.
פעולות הכפל והתילוק נמנות על הפעולות האיטיות ביותר. של המעבדים ממשפחת
| ה-8086. השימוש בהזזות מגביר לעיתים את המהירות פי 10.
התוכנית. דוט שבתדפיס 2 מציגה את תוצאות השימוש ב-88 ו-ת58.
הפרוצדורה 50901465 מציגה, בכל פעם שהיא נקראת, תוצאה של הוראת הזזה
אחרת, הפרוצדורה 366818168 מתארת את השפעת ההזזות על הסיביות עצמן.
תדפיס 4.2
91268 השס
| שפט >
; %ת61ץעסמט : 1
;( עסשספת1 : 60%[סטפ - ב 6צגסססיכן
: ונפש
נץ לט 1
| ; סש : ל
בג תגשסס
[ 0000 0000 0000 1000 :עעהתגס ה1 ) | ;82768 =: 6ע8קס0 -
: - 0 [ 808008 5+ ;( ' 0 ?5 0
תנשסס 60 0 ססתאסה 15 =: [ ע10
) / )196י תסגנל 0 <> 60%[כטפ התה - 12
; ( *0/ בכ 06|
;₪ 61 00 - יי
; תס
| הי
; ( 5ת51תסת9 : 1ע0 )1168 סב[ 6ינגו0סססין
תנשסס
; ( '%הש1ת 1% %מקגת 1016 116ם8' )ת1%01עא
ג ה-ה-- | --ח= המפסכפה ההככם -----%7 )ת1%01ע₪
ו תנשסס 60 8 %0 0 =: 1 עס+
(( 1(:8 עב₪ 1₪ע0) ,1(:8 1ב 1₪ע0) ,1:8 )106עח >
;( 1 ₪1 0218 )12108פסטס
;( 1 סתם 18ע0 )131%8הסטסת
; ת0011 ינמ
נ תס
(ת1661י =
:606
תבשססו
; ( 4555 )921+08שסב₪1
; ( 55- )520821195
: . 68
המספרים 53+ ו-53- נבחרו באופן אקראי, התוצאות שמפיקה תוכנית 54312
מתוארות בתרשים 4,2. .5
גו . חלק א': הכרת טורבו פסקל :+ ב---. | 0
תרשים 4.2 הפלט שמפיקה תוכנית 2דזז5₪
%וצות . 1% = 18% | 181% 16%ת5
21 - 8000000000110181 | 3פ 3( 8
1-18 8 26 6 1
1 -- 8000000011010108 13 22 2
( ו 6 444 3 .
000011 8480 3 110 4
1מ/-/-/-/-/-/-/- 848 1 16 5
- ₪0001101010000060 8 202 6
מנ/מנ/-/-/-ץ/-ץ--/ 0 8 4 7
8-מ 00 8 8 8
%+פות 1% % | 167% 11%ת5
1111 11 11 11[1[1 3ם- בם- 8
11|[ 1110 111 1 | 1806- 1
7808 80 111 48 | 212- 2
1 - 1111111801811008 15 4- 3
808 - 11111180181180080 12 100- 4
898 ,-,- 1111180101100008 6 | 1096- | 5
1 80 1711 כב12 2 6
11 1100 1 4 7
8
-8 25 11128 1111 =
שים לב: 885 *כול לחלק מספרים חיוביים בלבד, הזות 53-| סיבית אחת ימינה
יוצרת את המספר 32741+, ולא 26-. ּ
הפועלים 588 ו-582 מתזירים את הערך 0 אם מספר ההזזות עולה על מספר.
הסיביות שב-60462ם1, למשלי אם א הוא משתנה מטיפוס 6מסא, ההוראה
6 מצפ א
תגרום תמיד להחזרת הערך 0, ללא קשר לערך הנוכתי של א.
13
פרק 4: ביטויים פעולים ופועלים .
פועלים בולאניים (מ800168).
לֶפועלים הבולאניים פאה, י'סא, 08 ו-08א ישי תפקיד כפול. הם משמשים -
| לוגיים (1091081) או 0 סיביות 0 פעולותיהם מסוכמות' בטבלה
3.
טבלה 43 >
פועלים בולאניים
'משמעותי" 5 | . תחביר. 9 0 פועלה
תס 0 םסא עסא 7 | סא
כצגא 205810 סאג 1תס1פפסינסאס טאי
0 6פט[6ח1 | 00098108 08 6020881001 80 5 ₪
= 6% 6]₪5106א 1 סא סט אסא
פועלי הסיביות מבצעים פעולות בולאניות. על גבי .כל אחת מהסיביות: שבביטוי.
הפועלים הלוגיים מבצעים פעולות בולאניות על הפועלים, שלגבי כל. אחד מהם
מתקבל הערך . הבולאני אמת (6ש)) אן לא אמת (58186), | |
הפועלים הלוגיים,. פועלי הסיביות ומשמעויותיהם מתוארים בטבלה 4.4.
פועלים לוגיים ופועלי סיביות
הערכים המוחזרים על ידי 000000 הערכים המותזרים על ידי
פעולות לוגיות כאשר" %-/ % פועלי סיביות: המופעלים -
א ו-צ הם פעולים 0 90 כ םק לג < על כל צמד סיביות 00 |
7 > וש ור 7 א כ
אסא א0- כמא4 *סא אסא א0 | מא4 "סא
ץצ ץ ץ יר 0 + - 0
שי 0 7 ין 7 -ן 0 1 1
7-7 ש ו 1 1 0 0 1-0
"ך 9 ₪ ץק - -1 0 = 0
0 > יי ורוי וו ו
4 תלק א" הכרת טורבו פסקל |
פועלים לוגיים
פועלים לוגיים מבצעים פעולות בולאניות המשתמשות בפעולים המלאים. פאת
משווה בין: שני פעולים ומחזיר את הערך "אמת" (שטם?ע)) רק אם שני הפעולים
מתקיימים, 08 משווה בין שני פעולים ומתזיר "אמת" אם אחד הפעולים מתקיים.
סא משווה בין שני פעולים ומתזיר "אמת" רק אם תוצאות הבדיקה של הפעולים
שונות זו מזו, סא מתזיר את המצב ההפוך של הפעול.
בהתאם לברירת המחדל, מבצע טורבו פסקל את הבדיקות |רק כל עוד הן נתוצות
לקביעת תוצאת הבדיקה של הביטוי כולו,. צורת בדיקה זו, הנקראת הערכה מקוצרת
(מ608108%10 116ו0ע5002601) מייעלת מאוד את התוכניות. למשל, בביטו:
<%ת568500> תסםס (0(<0*ג*4-ם*ם)) 02 (16;ם) 0 (4=ג) 15
יתבצע %מ558660 מיד כאשר יתברר ש-4=א, והתנאים הבאים לא ייבדקו כלל, אם
ג שונה מ-4 אולם 8 גדול מ-16, יתבצע %מ5586606 והתנאי השלישי לא ייבדק.
כלל אה חל גם על תנאים המחוברים על ידי פועלי פאה. בביטו?
<+%מ558%00> מסם6 (0< (0*ג*4-ם2*ם)) פאה (5;16) פאת (2=4) 15
%מ 55860 לא יתבצע אם ם לא שווה 4. טורבו פסקל לא |יבדוק את התנאי השני
והשלישי.
ניתן לבטל את ההערכה המקוצרת על ידי כיבוי הוראת המהדר 8 באמצעות ההוראה
[-%8), הכופה על המערכת לבדוק את כל התנאים, פעולה זו רצויה רק כאשר
התנאים כוללים פניות לפונקציות עם פעולות לוואי, נושא זה נדון בפירוט
בפרק הסיכום, בקטע המתייתס להוראות המהדר. ּ
פועלי סיביות
פועלי הסיביות מבצעים פעולות בולאניות על סיביות בודדות. הערך שבכל סיבית
בתוצאה נקבע על ידי בדיקת הסיבית המקבילה בפעולים, | פאת משווה בין שתי
סיביות, ו"מדליק" את התוצאה אם שתי הסיביות "דולקות. 08 משווה בין שתי
סיביות ו"מדליק" את סיבית התוצאה אם אחת הסיביות הנבדקות "דולקת", א0א
פרק 4: ביטויים פעולים ופועלים 115
משווה בין שתי סיביות ו"מדליק" את התוצאה אם הסיביות שונות או מזו, סא
משנה את הערך שבסיבית.
הוראת פאת יכולה "לנקות" סיביות בודדות ללא קשר לערכן, לשם כך יש לשלב
הוראת סאת עם "מסכה" הכוללת 0 בכל הסיביות שמבקשים לכבות ו-1 בכל
הסיביות שמבקשים להשאיר ללא שינוי, לדוגמה, כדי "לנקות" את הסיביות 4-6
בבית של משתנה א יש להשתמש בהוראה:
[ 6 6םת8 ,5 ,4 פסגם 01085 60 1111 1000 ) ;ע%8 כאת א =: א
הוראת 08 יכולה "להדליק" סיביות מסוימות, ללא קשר לערכן הנוכתי. לשם כך
יש לשלב את הוראת 08 עם "מסכה" המכילה 1 בכל סיבית שמבקשים להדליק ו-0
בכל הסיביות שמבקשים להשאיר ללא שינוי, לדוגמה: כדי להדליק את הסיביות
6 במשתנה א, יש להשתמש בהוראה:
[.6 6ם8 ,5 ,4 2105 86% 60 0000 0111 ) :870 0 א = א
ניתן להשתמש בהוראת 08א כדי לשנות את הערכים הנמצאים בסיביות מסוימות,
ללא קשר לערכן הנוכתי, לשם כך יש לשלב את הוראת 08א עם "מסכה" המכילה 1
בכל סיבית שמבקשים לשנות ו-0 בכל סיבית שמבקשים להשאיר ללא שינוי. בדי
לשנות את הערכים שבסיביות 4-6 בבית של משתנה א, יש להשתמש בהוראה:
[ 4 21% %09816 60 0000 0001 ) :810 08א א =: א
ניתן להשתמש בהוראת ע'סא כדי לשנות את כל הסיביות שבאינטגרל, הוראת סא
לכשעצמה אינה שימושית ביותר כפועל חשבוני,. בדרך כלל אינך מבקש לדעת שעבור
ערכים 70 ו-213 70 ע'סא שווה ל-185 ו-213 עסא שווה ל-42, ב-1'סא משתמשים
בדרך כלל יחד עם הפועלים סאםת ו-05, כדי להדליק את כל הסיביות, פרט
לסיביות 4-6 (כלומר להדליק את 0-3 ואת 7), ללא קשר לערכים הנמצאים באותן
סיביות, אפשר להשתמש בהוראה:
[ 1111 1000 600068 0000 0111 + :870 עסא 0 א >: א
16 חלק א':| הכרת טורבו פסקל |
פועלים יחסיים (81ת618%10)
פועלים יחסיים משווים בין שני ביטויים ומתזירים את הער
"אמת" (6גוע>) אם
התנאי המוגדר על ידי הפועל מתקיים, ואת הערך "לא אמת" (8158+) אם התנאי
אינו מתקיים, בפועלים יתסיים משתמשים בדרך כלל בהוקהאות התניה. הפועלים
והערכים המוחזרים על ידם מתוארים בטבלה 4.5.
טבלה 45 =
פועלים יחסיים
פועל תחביר התוצאה המותזהת היא "אמת" כאשר
= 2 == 20899101א6 הביטויים שווים
<> 2 16ב0265810א6 הביטויים אינם שווים
> 12 > 8220851011 6551021תקאס |קטן מ-60:6581022
=> 2 >> 6020581021 6551021עקאם |קטן מ-0:6591022א6
או שווה לו
12 << 206891021קא6 1ב2265510א6 גדול מ-0:6551022א6
-. 12 =>< 6226581011 1ב68910ע02א6 גדול מ-2ב02165510
ּ | או שווה לו
מותר לבצע בדיקות יחסיות בכל מקום שבו מותר להשתמש בביטוליים בולאניים,
הוראות ם0ם1%..6₪, 611תט,.68%ק26, 116..40םש, ומשפטי 6886, במודגם בתוכנית
1 שצבתדפיס 4.3.
פרק 4: ביטויים. פעולים ופועלים | 117
תדפיט 3
;30011 תפנפסעק 7
: שפט |
(01קס%ת1 : [ ,1 .
5 : 7 תפס .
(( ' :8ע60₪0ת1 סחל עסש6הם' )ת[1%0י
;( ' :עסמתטת 8%ע1ת' )1%8ע₪2 .
;( 1 )ת801סע
(( ' :עססתטת 7960006 )1%6י
: / 0 )סי
- ס ([>'1) 0880
3 " תפ 8 1,858 0 3 שגר
%. ' תמל 1688 לסת 18 7 ,1 )ת1501יש : 186בק 7
/ ל ה ; ₪18
.0 |
סבב עבודה טיפוסי של 11ססס הואי::
ו : 12600018 סאס עססו
0 נמסממעת %פעגק 5 7
6 : עסמחטת ₪600(6 | .
6 תגת+ 1088 18 2
:יע ספססת1 סאש ססות
,7 5 : עסמותות. 8%עגק י
= 97- : עססותטות 500006
9- תגֶ+ 1088 פסת 18 5-
כל משפט וג בביטוי מורכב צריך 7 -בסוגריים, במו 0
0 0 , א אס 0 = - ה +
הפועל עסא שולל - הופך) את הערך הבולאני. לדוגמה: אם. הביטוי (3=< א)
אינו אמת, אז ((3 =< א) צסא) הוא אמת.. ניתן להשתמש בהיפוכו של כל אחד
+ מהפועלים היחסיים למשל: => יסא במקום ל [-=< סא במקום >. 7
| אם תעיץ. ב , תיווכת של- -0א יש קדימות גבוהה, הפולה על קדימותם 0/0
כל. יתר הפועלים היחסיים, בתוכנית 1 (תדפיס )64.4 יוצרת פרוצדורת
ם161נט ' הראשונה. את התוצאה 7 ואילו פרוצדורת םת1%661עא השניה יוצרת .
% "
"לא אמת
18 חל קַ א" הכרת טורבו פסקל
תדפיט 4.4 >
₪1 תפישסיוס
100;
3 : 1, 4
;( 1 < 1 עסא )ת1%91יש
;( (1 < 4) תסא )ת1%91עצ
. תס
בהוראת ת1%661צש הראשונה מתייחסים לפקודה ": עיסא" כאל 100% עיסא" ולכן הערך
ששעליו מתבצעת ההשוואה הוא 155, (100 בתצורה בינרית הוא 01100100. שלילת
הערך היא 10011011 או 155). הערך 155 גדול מ-1 ולכן! התוצאה היא "אמהת".
בהוראת מת1%61תא השניה, 100 גדול מ-1 ולכן השלילה יוצרת "לא אמת", רצוי
להשתמש בסוגריים כדי להימנע מטעויות לוגיות העלולות להיווצר על ידי שימוש
במשפטים מסוג זה. |
השוואה בין מחתרוזות מתבצעת בהתאם לכללי המיון של מילונים. המתרוזות
ממוינות על פי ערכי 5011, ולכן "6ספ">"פעגס" הוא "אמת" למרות שהמלה
"פ'ת)" מכילה יותר תווים. בעת ההשוואה מתעלמים מהגדרת גודל המחרוות
ומתייחסים לתוכן בלבד, לצורך ההשוואה מתייתסים לפועל | מטיפוס עִהַםס כאל
מחרוזת (4ם5521) שאורכה 1.
השוואה בולאנית אינה חייבת להתייתס לשוויון או אי שוויון בלבד. תוכנית
2 שצבתדפיס 4.5 משווה בין שני ערכים בולאנים ובודקת תנאי של "גדול -
מ", "אמת" מאוחסן כ +1 ואילו "לא אמת" מאותסן כ-0, ולכן "אמת". גדול מ"לא
אמת", ההודעה המוצגת על ידי התוכנית היא, על כן:
קעה0 תהםת6 0268662 18 דעה
השימוש במבנים מסוג זה אינו רצוי. י
תדפיס 4.5
; 20012 תהיוססינסן
:ו
;ת00108 : 790 , דיפ +
תנשס
;7116 =: 1ע80ל
,9196 =: 800
תסמ | קנפל < [עהט +14
( 082017 תהםף ע08%6ע₪ 18 709421 )ת1%61יש
6
; ( 080017 תפן) ע₪08%0 %סת 18 דַש>גט' )ת601גינט
-
5 | פרק 4: ביטויים פעולים ופועלים 119.
פועלים על קבוצות
הקבוצות אמורו לגשר על הפער שבין העולם הערטילאי של תוכנית המחשב ובין
העולם האמיתי והמוחשי, קבוצות מגדירות אוסף של גורמים המייצגים את העולם
הממשי, ולכן ניתן ליישם עליהן את כללי ההיגיון של חיי היום יום.
הפועלים היחסיים של הקבוצות בודקים זהות או הכללה, השיקול היתיד הוא
הימצאות או אי הימצאות של גורמים, ולא סדר הגורמים בקבוצה או גודלם
היחסי, סיכום הפועלים הללו מופיע בטבלה 6. .>
טבלה 6 פועלים על קבוצות
פועל תחביר התוצאה המותזרת היא "אמת" כאשר
= 2 = .5051 הקבוצות שוות, כל הגורמים הנמצאים ב-5661
נמצאים גם ב-8662 וכל הגורמים שב-88%2 -
: נמצאים גם ב-5661
> 0 86602 50616 לפחות אחת מהקבוצות מכילה גורם שאינו נמצא
בקבוצה השניה .
- 2 [5₪5 כל הגורמים שב-8661 נמצאים גם ב -5662
. 2 ₪061 כל הגורמים שב-56%1 נמצאים גם ב-5662 (-56%2
מכיל לפחות גורם אחד נוסף, שאינו ב-5661
= 2 5651 כל הגורמים שב-586%62 נמצאים גם ב-5661
, 2 5651 כל הגורמים שב-5662 נמצאים גם ב-586%61ו56%61
מכיל לפחות גורם אחד נוסף, שאינו ב-56%2
א !5651 א1 ת616 הגורם 616 נמצא ה 1
כמו בפועלים החשבוניים, הפועל סא משנה (הופך) את מצב הערך - לכן
אם אמת ש-56%2 = 5661, אז (56%2 = 9861) עסא אינו אמת.
על הגורמים בקבוצה ניתן לבצע שלוש פעולות עיקריות: איחוד, הפרש וחיתוך.
התוצאות מתבססות על בללי הלוגיקה הרגילים, .
פועל האיחוד / + ) יוצר: קבוצה המכילה גורם אחד מכל הגורמים שבכל אחת
מהקבוצות, למשל, איחוד של |
[67 514135 ]
0 חלק א" הכרת טורבו פסקל
ייצור את הקבוצה: . |
[|7 234956 ]
שאותה ניתן לרשום גם בתצורה:
4 | 7-1 ]
פועל ההפרש ( - ) יוצר קבוצה המכילה את כל הגורמים מהקבוצה הראשונה שאינם
נמצאים בקבוצה השניה, למשל, ההפרש: :
71 5-6 .4 3 זו[ 45 3 1 ]
ייצור את הקבוצה:
1 2 ]
פועל החיתוך ( * ) ייצור קבוצה הכוללת את הגורמים המשותפים לשתי הקבוצות
למשל, התיתוך:
] 7 ,6 ,5 ,4 3 [ * ] 5 ,4 (3 20 ,1 /
*יצור את הקבוצה:
| 23 ה[ 5 ]
לפועלי האיחוד, ההפרש והתיתוך יש חשיבות רבה בעיקר בעת הגדרה של קבוצות
חדשות, תוכנית 522 שבתדפיס 4.6 משתמשת בפועלים אלה כדי להגדיר קבוצות.
תדפיט 4-6
; 56%8 תהינססינ
6+
;( 71016% ,ת0200 ,106 , 6קת8ע0 ,אס611? ,6סת ) = | אסמת גפ
, 700105037 , קהספסגו1 , קָבסתסו] , קָפהתטס ) 5 ו
; ( 8208 , 108 = , ע08פינגורוד
,הטנ גע9( ,עס ,תמא ,60ע ,ת18 ) 5 5 תס
;( 260 ,טס ,00% ,590 ,שג , בג ו
לפטי
אססת31ת +01 56% : פת02870 , 0070051605 , 05 1יזמותגינת
; אסִס/וסְְַַַ+50ַצָת +0 86% : 60 , 76011288 , 160% בגה
; פת%תסו) +0 86% : ת7808%10 , מסטסוגיודנטז , [ססמספס
תנשסם
;| ת60ע02 ,סגו1 ,300 |] =: 105החותק
;| 71016% ,ת0260 , סקַת98ע0 |] =: 0080081608
( שסמתנפת ת1 פעס1סס 411 )| ;0000081505 + 105עמתנעת = בי יצל
תדפיט 4.6 ממשיך בדף הבא
| פרק 4: ביטויים פעולים ופועלים . 121 >
המשך תדפיס 4.6
0 :> אססו11גת
תגוס .: =
0/0 .. ;[ עב6תטפ , 98:68 -] =: 0 6ת%664% |
| ( ק7108. . קָ69תס)( פת584ה00 ] ' ;000008 - 110608גת =: | פעָבסאססח.
ית ;[ 590. .קָפ% ] =: | [ססמספסא
: , ;1 פָ. . צק ] =: השטסוודנ ו .
7 - | קט. . עַ%9 5מ81תס0 ] דמ * 80800001 =:7 | תס408%1ט
/ / 0 86 05 עס6תנ1מחסת ] -
7
פועל | הכתובות.
פועל הכתובות (8) מחזיר כתובת של משתנה פרוצדורה. או פונקציה. תוצאותיו
זהות לתוצאות הפונקציה 865, אולם פעולתו יעילה הרבה. יותר, הפועל 8 מחזיר
ערך המתאים לכל סוגי המצביעים..
| תדפיס 4.7
; סז תפידטסיזכן
סט
[ 18016עגט 66ע [הוונסת 8 621208 ) ;86עם : 1
טע 8 50 עססת1ס ₪ 8 | ו נ6טעסי : קת.
- | תנשסס
[ 18216עט 6סעמ מ 60 147" פה591ה ) | .140 =: 1
: / 1 02 8002088 506 פ6תנק ) -. )001 =: אק יי
/- ל שססתנס 8+ 6106סו ,14 פסטסלט0 1 <;( "2 )ת1601 |
.תס
התוכנית שאטתפידק מגדירה את משתנה המצביע 2 ומשתמשת: ב 7/7 כדי ליצור -
זהות ברו ובין משתנה ה- -756 1
פועל השרשור
רוב ' פעולות המתרוזות ותווים מתבצעות | בעזרת פונקציות | ופרוצדורות. אחד
הפועלים, פועל 2 מבצע פעולה: זהה לפעולתה של הפונקציה 0
הפעלת + על טיפוס שם1ת6ם ו-85ת₪6 מת%ירה מחרוזת אחת' המהווה שרשור של שני
הפעולים, אם המחרוזת המתקבלת עולה על 255 תווים, מתבצע קיצוץ: מימין.
2 חלק א הכרת טורבו פסקל | | ,
המחרוזת החדשה כוללת רק את החלקים הפעילים של הפעול,| למשל ב:
עבצ
;[ 25 ]6א1ת53|:51 ,52 ,61 >
ו ב641ס
;'ססא' =: !51
= 852
+ ]5 = 53
המתרוזת 53 הופכת '612345678ס3, למרות שהמתרוזות! הוגדרו כמתרוזות
באורך 25.
סיכום
בפרק זה למדת להשתמש בביטויים בטורבו פסקל.
הכרת את כללי ההתנהגות של הפועלים, ולמדת כי הם מתבצעים על פי סדר קדימות.
קבוע, תוצאות הפועלים החשבוניים תלויות באופן שבו הוגדה הפעול (2ע%6606ם1
או 2681).
פועלי הזזת הסיביות "דוחפים" את הסיביות של הפעול שמאלה או ימינה.
הפועלים הלוגיים מבצעים פעולות בולאניות על פעולים שלמים; פועלי הסיביות
מבצעים פעולות בולאניות על סיביות בודדות של הפעול; פועלים יחסיים משווים
בין גדלים; פועלי הקבוצות בודקים זהות או הכללה; פועל הכתובות מתזיר
כתובת של גורם; פועל השרשור מאחד שתי מחרוצות.
פרק 5: פרוצדורות ופונקציות 123
פרק
פרוצדורות ופונקציות
א דרך נכונה לפתרון בעיה בעזרת תוכנית מחשב, למען האמת, בבל שהבעיה
| הנתונה מורכבת יותר, כן קשה יותר לוודא שהגישה שנבחרה אכן נכונה, קיימות
שיטות רבות - האמורות לסייע לך בעיצוב תוכניות פשוטות יותר, כמעט כולן
מתבססות על חלוקת הבעיה למשימות קטנות יותר, משימות אלה נקראות שגרות או
סברוטינות, השגרות של טורבו פסקל מורכבות מפרוצדורות ומפונקציות.
בגלל השימוש הנרתב שעושה טורבו פסקל בפרוצדורות ובפונקציות (ולמעשה, בגלל
התלות הכמעט מוחלטת בה]ן), נחשבת שפת טורבו פסקל לשפה מבנית (6060200גומ55),
תוכנית מבנית היא אוסף של שגרות שחשילוב ביניהן מבצע משימה,
| בפרק זה תלמד ו תוכנית מבנית בעזרת פרוצדורות ופונקציות ולהשתמש בהן
גם ליישומים מק יה
נחלצותה של המבניות
בוודאי שמעת סיפורים רבים אודות שגיאות תוכנה שגרמו לתקלות חמורות או
לנזקים רציניים, בתוכנה המקורית של מטוס.ה-16-* היתה טעות, שגרמה למטוטס
להתהפך בכל פעם שחצה את. קו המשווה, אחת מספינות החלל הראשונות שנשלחו :
לכוכב הלכת נוגה סטתה ממסלולה ואבדה, בגלל שגיאה בתוכנית מחשב, הבנק של
ניו-יורק הפסיד מיליוני דולרים בגלל תקלת מתשב שמנעה ממנו לקבוע כמה כסף
עליו לשלם לבנק הפדרלי, בעולם ה-26 אין כמעט בית-תוכנה שלא נאלץ לעבב .
שחרור מוצרי תוכנה חדשים. לשוק,. במקרים חמורים יותר, הגיעו בתי-התוכנה
אפילו לכלל "פשיטת רגל,; כיוון ששגיאות בעיצוב המוצר שלהם הפכו אותו לבלתי
3 לשיווק.
14 תלק א': הכרת טורבו פסקל |
יש להנית. שהמערכות שתיארנו אה עתה מורכבות מעט יותר מהתוכניות שאתה
עומד לכתוב בטורבו פסקל. אולם עקרונות העיצוב ובקרת האיכות שתלמד כאן
תקפים לגבי כל תוכנית - החל בתוכניות מורכבות מאוד וכלה בתוכניות זעירות
| ופשוטות. |
בדיקה מקפת
בשיעורי המבוא לתכנות נהוג להסביר, שאחת הדרכים לבדיקת תוכנית היא ניהול
מעקב אחר מהלך התוכנית תוך בדיקת הערכים שבמשתנים, |נניח שהתוכנית שלך
מכילה לולאה של חמישה קטעים, שאליהם מועבר הפיקות על פי השרטוט שבתרשים
1. :
| תרשים 5.1
תרשים זרימה של תוכנית בעלת תמישה קטעים
בתוכנית קיימים ארבעה נתיבים אפשריים. אתרי 10 לולאות קיימות % או
1,756 אפשרויות, אם נניח שנתוצה לנו שניה אחת בלבד לבדיקת כל לולואה,
נאלץ להשקיע בבדיקה 12 ימים, (אתרי 20 סבבים :יתכנו למעלה מטריליון
צירופים והבדיקה תארך כ-35,000 שנים.) ּ
ברור, אם כן, שהפתרון אינו עריכת בדיקה מקפת, כיצד נוכל בכל זאת להבטית
| שהתוכנית תפעל כראוי?
הפתרון הוא בדיקת כל מרכיב בנפרד, אם כל מרכיב עשוי ממרכיבי משנה, יש
לבדוק גם כל אחד ממרכיבי המשנה הללו, כלומר,. אם הבעיה שאתה מבקש לפתור
מורכבת או קשה, חלק אותה לקטעים קטנים יותר, שבהם תוכל לשלוט בקלות.
= ּ . | פרק 5: פרוצדורות ופונקציות 125
טכניקת "הפרד ומשול" איה נכונה רק בעולם: הפוליטיקה. היא תקפה 1 גם בעולם
התכנות, אם נפרק. בעיה למספר בעיות קטנות. ועצמאיות, נוכל ל ו
ביתר קלות.
בטורבו פטקל פותרים כל "בעיית משנה" בעורת פרוצדורה או פונקציה.
השימוש בפרוצדורות ובפונקציות =
לשימוש בשגרות ובעיצוב מבני יש מספר יתרונות:
התוכניות ברורות: יותר, כיוון שהשגרות מגדירות. מטרה מסוימת שההוראות.
נועדו להשיגה;
₪ התוכניות יעילות יותר, ביוון שבל פעולה. משותפת מוגדרת (ומאוחסנת) פעם
אחת בלבד. .
₪= התוכניות אמינות יותר, כיוון שהפירוק לשגרות פישט את הבעיות.
= קל יותר לתחזק את התוכניות, שינוי בשגרה אחת -אינו מתייב |עריכת
שינויים בכל התוכנית. ן |
. 2 הפיתוח מתקצר, כיוון שאין צורך לפתח טכניקות חדשות "לכל "ישום,
= כמו כן, התכנות המבני כופה נוהלי עבודה על כל מלאכת. התכנות. קשה מאוד.
= לכמת יתרון זה, אולם בזכותו מתקבל בדרך בלל מוצר מאיכות גבוהה יותר.
ו מבנה הפרוצדורות והפונקציות.
= מבנה הפרוצדורות והפונקציות. זהה למבנה של התוכניות" עצמן. - כותרת. ואחריה - 20
גוש (אור בלוק).: הפרוצדורות והפונקציות. מהוות, למעשה, " : תוכניות משנהי.
הפהברעות כיחידה עצמאית אחת.: | 0
= פרוצדורה היא שגרה, הפל סדרה של פעילויות שנועדו להגשים מטרה מסוימת. ו
פונקציה היא שגרה שנועדה להחזיר ערך, לפונקציות קוראים רק מתוך ביטויים.
פרוצדורות ופונקציות חשובות מסוימות הוגדרו כבר לוו מובנה בתוך המהדר >
1% חלק א' הכרת טורבו פסקל
(למשל: ת1661עט (-מ26801), שגרות כאלה נקראות פונקציות ופרוצדורות
סטנדרטיות, הרשימה המלאה, הכוללת למעלה מ-200 פרוצדורות ופונקציות
סטנדרטיות, מופיעה בספרות העזר המלווה את תוכנת טורבו| פסקל.
כאשר השגרות הסטנדרטיות אינן מתאימות לביצוע משימה מסוימת, יבול התוכניתן
להגדיר שגרות חדשות, על ידי הוראות ההכרזה על פונקציה/ או פרוצדורה, לאחר
ההגדרה, ניתן להפעיל את הפונקציה או הפרוצדורה התדשה על ידי ציון שמה,
ממש כשם שמפעילים את השגרות הסטנדרטיות.
פרוצדורות
פרוצדורה היא אוסף של הוראות שמבקשים לבצע כיחידה אחת, פרמטר הוא מידע
(בדרך כלל משתנה) העובר בין הפרוצדורה והתוכנית הקוגְאת. את הפרוצדורה
מפעילים על ידי הקשת שמה וציון הפרמטרים הדרושים.
מרכיבי הפרוצדורה
פרוצדורה, כמו תוכנית, מורכבת משלושה חלקים:
1 הכותרת (268062), המכילה את המלה השמורה 8נטשסססנק ואחריה את שם
הפרוצדורה ופרמטרים.
2. הנתונים (0858), שעליהם יופעלו ההוראות שבפרוצדוהה, על פי ההגדרות
שבהכרזות התוויות (18261), הקבועים (5ם568תסס),| הטיפוסים (6סצם6)
והמשתנים. הנתונים יופיעו מיד אתרי הכותרת ולפני ההוראה הראשונה של
התוכנית.
3 הוראות (6006), המתארות את הפעולות שהפרוצדורה תבצע, פרוצדורות
ופונקציות שהתוכנית מגדירה *ופיעו בתתילת אזור |הפקודות. ההוראות
עצמן נתחמות על ידי המלים השמורות ם601כ ו-8ת6.
כל פרוצדורה מסתיימת בנקודה-פסיק.
הנה דוגמה למבנה של פרוצדורת פסקל:
פרק 5: פרוצדורות ופונקציות 127
(( 28ע650תה8ע8ס 1התס1לקס ) שחת 6עט6פססמס
| [ 8ת6001828%10 ה6ב])
לור במ41סס
[ %8ת06ת5%58%60 0086 +
?7
יש להקיש את הכותרת תמיד, הנתונים וההוראות הם אופציונליים, לדוגמה:
;1 66תגו66ססנס
| םמ641ס
;תס
מגדיר פרוצדורה שאינה מבצעת דבר. אם הפרוצדורה 81נטגעצע' תיקרא אחר כך מתוך
התוכנית, היא תגרום להאטת הביצוע בלבד.
הכלל המתייב להכריו על ימשתנה לפני שמשתמשים בו תקף גם בפרוצדורות
ובפונקציות, לאחר שהוגדרו, ניתן להשתמש בשמות הפרוצדורות כמו בפרוצדורה.
מובנית רגילה.
דוגמה לפרוצדורה
הפרוצדורה 58116110 מוחקת את תוכן המסך ומציגה הודעה:
;( 6סצכ : חאסת ,001 )887116110 6מגו6סססנס
;7ת1סס
([ 6₪ת5 8ת1610פ5סק 6םת8 םמ80266 6ם6 0108295 + 8
( עשתעסס ִַַַהם-16+6 עסקקט 6ת6 ם1 עספעטס +
[ שסת אסע +0 001 מחגו1סס 60 עספעגוס 66 68ט0א ) :( שסת ,001 ) צ₪060%
( ת060ע502 6ג6 תס "86110" 615018765 ) | ;( "6110" )166:א"
?7
8 חלק א"? הכרת טורבו פסקל . -
הפרוצדורה ה נעזרת בשלוש פרוצדורות אחרות:
א | ע86פע61 המוחקת את תוכן 8 ומציבה את הסמן בפינה השמאלית העליונה
של המסך.
= צא0%ס0ס0 המציבה את הסמן בקואורדינטות א ,צ המוגדרות על ידי הפרמטרים..
. 6 המציגה על. המסך את ההודעה המועברת בצורת פרמטר.
לאחר ביצוע ההגדרה, ניתן לבצע הוראות כמו:
ן
אשר מציגה את המלה "16110" בעמודה 10 של שורה 5.
587186110) 10, 5 (
בין פרוצדורת 5886110 ובין תוכנית מקבילה, קיימים שני הבדלים בלבד:
1 = הפרוצדורה מסתיימת בנקודה-פסיק ואילו התוכנית מס
| 2. המשתנים שסת ו-001 שבפרוצדורה אינם מוגדרים.
חיצוני.
תיימת בנקודה.
ערכם יתקבל ממקור
תוכנית המורכבת מכותרת ומבלוק ויכולה להפעיל פרוצדורה מורכבת גם היא
מכותרת ומבלוק, כל פרוצדורה יכולה להפעיל פונקציות ופרוצדורות נוספות.
פונקציות.
הפונקציה דומה לפרוצדורה. היא מהווה אוסף של הוראות שמבקשים לבצע כיחידה
אחת. המטרה היחודית של הפונקציה היא התזרת ערך.
מרכיבי הפונקציה
פונקציה, כמו פרוצדורה, מורכבת משלושה חלקים:
פרק 5: פרוצדורות ופונקציות 129
1 הכותרת (ע289808) המכילה את המלה השמורה בס61סמט+ ואתחריה את שם
הפונקציה ופרמטרים, נוסף לכך יש להגדיר את הפונקציה כטיפוס מסוים.
2. הנתונים (6868), שעליהם יופעלו ההוראות שבפונקציה, על פי ההגדרות
שבהכרזות התוויות (18561), הקבועים (%ם68פמסס), הטיפוסים (פִסַע6)
והמשתנים, הנתונים *ופיעו מיד אתרי הכותרת ולפני ההוראה הראשונה של
התוכנית.
3 הוראות (6066), המתארות את הפעולות שיתבצעו, פרוצדורות ופונקציות
המוגדרות על ידי הפונקציה *ופיעו בתתילת אזור הפקודות. ההוראות
עצמן נתחמות על ידי המלים השמורות ם691כ ו-6ת6.
כל פונקציה מסתיימת בנקודה-פסיק.
הנה דוגמה למבנה של פונקציית פסקל:
;6מעס6מסנססתט+? : ( פעס666תהעהק 81תס1סקס ) סתהת מסנססתט+
[ 8ם8%610ע000182 הסה +
ב1סס
( %8ת558%006 00866 +
7
יש להקיש את הכותרת תמיד, הנתונים וההוראות הם אופציונליים. פונקציה
מכילה בדרך כלל לפחות שורת הוראות אחת, הקובעת את הערך שיוחזר על ידה.:
למשל:
67 : 1181 תסנ6>סתו+
בת1סס
7 =: 181ט1עץ
7
מגדיר פונקציה בשם 181ץג1:ע' שפעולתה אהה למעשה לשימוש ב-0, לאחר שמגדירים
את 181ט1:ע', תהיה זהות בין ההוראה: 0 =: << ו-10181ת7 =: א
| 0 חתלק א הכרת טורבו פסקל :
דוגמה לפונקציה
שתי פונקציות סטנדרטיות פשוטות הף ( א 5456, אשר מתזיר את השורש
הריבועי של הפרמטר. ו-( א )ַפ, המחזירה את ריבוע הפהמטר, כאשר משתמשים .
במלה "להתזיר" ערך, מתכוונים לכך שערך הפונקציה זהה למשתנה שהיא מגדירה.
לכן, ניתן להשתמש בפונקציה בכל מקום שבו ניתן להשתמש במשתנה אחד.
למשל, הפונקציה 6, ההמחזירה את היתר של משולש ישר צווית (משפט
פיתגורס) מוגדרת כך: י
7 : ( 2681: 2 ,2 )045146 תס6>61תט+
מ1ס *
( (ע)502 + (502)2 )5026 | =: 146פטשתסע
2
הפונקציה מופעלת בציון שמה בצירוף הפרמטרים הנתוצים. אפשר להשתמש
ב-89166מ20 בכל מקום שבו ניתן להשתמש במשתנה רגלל, למשל ב:
מסםט 5.0 = ( 3.0,|4.0 ) 451866תסז 15
; ( '|6210168 תהּססהֶָהת6עץע 6עה3 5 8םב ,4 ,3' ) ם1661עש
תכנות מבני ומגבלות ההיקף
שפת טורבו פסקל מאפשרת להשתמש בשגרות (תת-תוכניות) מקוננות (65560מ).
כלומר, כל שגרה יכולה להכיל שגרה אחרת, אשר גם היא יבולה להכיל שגרה, וכן
הלאה.
כל שגרה מקוננת יכולה לפנות לתווית, קבוע, טיפוס או משתנה שהוכרזו באתד
ה"הורים" שמעליה, שגרה אינה יכולה לפנות לתווית,. קבןע, טיפוס או משתנה
הנמצאיס בשגרה המקוננת בתוכם, תכונה זו מגדירה את ההיקף של המזהה (580008
%12102ת100 מ8 01).
שגרה מקוננת יכולה להיקרא רק על ידי ה"הורה" שהגדיר אותה, מגבלה זו
נקראת: היקף השגרה (6מ1נ%טסעסט5 8 +0 80006).
בקטעים הבאים נסביר את השפעת מגבלות ההיקף על עיצום התוכניות ותפקודן.
פרק 5: פרוצדורות ופונקציות 131
משתנים כלליים ומשתנים מקומיים
כל המזהים שמגדירה שגרה שהיא "הורה" נקראים מזהים כלליים (910281). בל
המזהים שמגדירה פרוצדורה או פונקציה מקוננת נקראים מזהים מקומיים (10081)
של הפרוצדורה או הפונקציה.
בתוכנית 500281 (תדפיס 5.1) המשתנים 128%6ע, 6ם000פ (-66ה28סטם הם משתנים
כלליים עבור הפרוצדורה 111866261:896ו0810, ולכן ניתן להשתמש בהם בפרוצדורה
זו, המשתנה 581סע' הוא משתנה מקומי של 6270:896+08101118%, ולכן אין להשתמש
בו מחוצ לגבולות הפרוצדורה, כאשר יוצרים משתנים מקומיים, נשמר עבורם מקום
במחסנית שבראש השגרה, שטת זה משתחרר כאשר השגרה מסיימת את פעולתה.
תדפיט 5.1
; 500061 ותפידססיזקן
הפש
ע0קספת1 : 4702820 ,6ת5600 (פפעגע
; 856701866 1גוס 68.1 6ינגו0סססיזכן
(ע6שספת1 : 70%841
,00 + 8%ע1ת =: 70681
010 710581 =: 6קהעסט
י ; תס
תנקס
=: ספענגת
=: 6ת6000פ
; 8/66/7018 [גו 081
(;( סשהעסט % 8" ,560006 ,' 6ת8 ' ,%פע1ץ ,' 01 סקבעסטה 16" )1491
-
הגדרת משתניס
המהדר מאתר את המזהים על פי הבלוק שבו הוגדרו, כאשר משתמשים במזהה כלשהו,
המהדר מנסה לאתרו תתילה בהכרזות שבבלוק הנוכתי, אם המזהה אינו נמצא שם,
המהדר פונה לבלוק שמעליו, החיפוש ממשיך, מלמטה בלפי מעלה, עד שהמהדר
מצליח לאתר את ההכרזה המתאימה.
2 חתלק א" הכרת טורבו פסקל | יה |
החיפוש מפסיק ברגע שהמהדר הצליח לאתר את ההכרזה המבוקשת, כתוצאה משיטת
חיפוש זו, יכולה כל פרוצדורה או פונקציה להכריז מזהים] מקומיים ששמותיהם
זהים לשמות מזהים כלליים. בתוכנית 500282 (תדפיס 5.2) המשתנה + מוגדר
כמשתנה כללי של התוכנית וכמשתנה מקומי של הפרוצדורה| זאוסםפ,
תדפיס 5.2 |
| 900085 תפיצשסצ
ב
נסלעס : 1
; 1אוסג1 6ינגו60ססעכן
שפט
6פעט 15
7 1 ,' 18 17" 01 סגו1פט 6םף , סעגוססססעכן פמ% ת1מ+1/ )ת1501יא
-
- א
=: 1
7
0 0 6 , תהיקסתן תנגת 6מל תגם1%? )ת1001יט
-
,." תת 533 מּק₪]--/ ָ--:='* << סססססו וו
כאשר מפעילים את 500282, מתקבלות התוצאות הבאות:
בפרוצדורה - ערכו של 1 הוא 48
בתוכנית הראשית - ערכו של 1 הוא 35
שים לבל המשתנה הכללי 1 אינו מושפע מהכרזות או מהצבות החלות על המשתנה
המקומי בעל השם הזהה.
השלכות כללי ההיקף
כללי ההיקף גורמים לכך שמשתנים נוצרים, מאותסנים ונותנים שירותים כל עוד
הם נחוצים,. תוחלת התיים שלהם יכולה להיות התוכנית כולה, או שגרה אחת
בלבד, מומלץ להגדיר את המשתנים כך שתוחלת חייהם תהיה |קצרה בכל האפשר.
. ו פרק 5: פרוצדורות ופונקציות 133
אם, למשפ' אחת השגרות צריכה להעביר מידע. לשגרה: אחרת, ההעברה :כולה .
להתבצע . באמצעות פרמטר. אם הנתון משרת את שתי השגרות בלבד, אין צורך
להגדירו באופן בללי..
הגדרות מסוג זה מצמצמות את הסיכןי? לוו בגלל פרוצדורות המשנות, בשוגג,
ערכים. של: משתנים כלליים.
העברת פרמטרים
הפרמטרים : המוגדרים בכותרת של פרוצדורה או פונקציהה נקראים פרמטרים
פורמליים (8280001:8 881ע50). פרמטרים אלה נחשבים לפרמטרים מקומיים
| של השגרה, בדומה למשתנים המוגדרים בשגרה עצמה, לפרמטרים לא מוקצה מקום :
קבוע בזיכרון. כאשר תוכנית קוראת לשגרה (תת-תוכנית), מאותסנים הפרמטרים
הממשיים המועברים אליה, באופן זמני, לפי הסדר, באזור מיוחד בזיכרון.
אזור זה נקרא מחסנית (א8580), השגרה קוראת את הנתונים, לפי הסדר, מתוך
המחטנית, כלומר, ההתאמה בין הפרמטרים הנשלחים והמתקבלים נעשית על פי סדר
ההעברה (המתאים לסדר ההכרזות) ולא על 5 השם; הערך המותזר. על ידי
הפונקציה מוצב. באחד האוגרים של ה -0,
בתוכנית סיג (תדפיס 3 5 הפרמטרים בת ו -80%5022ע הם פרמטרים
0 ג ו-8 הם פרמטרים -ממשיים,
תלפוס. 3
; הדצ 40% תהיוססיזמן
י ₪
(עסשססתג :30 ,2
; ( עסשספת1 ::280%022? ,1עס%ספק )+סגו6 סנ 8גסססינכן"
/ / ו הגפס
30 790%01*30008 ,' = ' ,2ע780%0 ,' א ' ,60:1סגת )ת[160יאו -/
יו
תגשסס |
2 := 2
2 :=
0:7 ב
0 - - . - מו - <> - 7 -------=₪-₪ 0 קשתכ'כ יי
4 הלק א" הכרת טורבו פסקל |
השימוש במתחסנית להעברת נתונים מאפשר לטורבו פסקל לבודד את הפרוצדורות
- והפונקציות מהתוכנית הקוראת, כך השגרה הנקראת יכולה לתפקד באופן עצמאי,
מבלי לפגוע במשתנים של התוכנית הקוראת, בגלל עצמאות זו נהוג לכנות את
הפרוצדורות והפונקציות תת-תוכניות (פוז8פסינסכגו8).
ברור שקיימים מקרים שבהם אתה מעוניין שתת-תוכנית תפנה למשתנים הנמצאים
בגוף התוכנית הקוראת, שינוי ערך של משתנה אחד בלבד יכול להתבצע בעורת
פונקציה, אולם, פונקציה אינה מתאימה למקרים שבהם מבקשים לשנות מספר
ערכים (למשל חישוב של מערך), או כאשר יש להשתמש בערך של משתנה ולשנותו
(למשל הגדלת מספר העמוד), במצבים כאלה יש להשתמש בפרוצדורות.
מקרה נוסף שאליו יש להתייתס הוא' מצב שבו מבקשים מתת-התוכנית להתעלם
מהטיפוס של המשתנה המועבר אליה.
שפת טורבו פסקל תומכת במצבים השונים בשלוש אפשרויות |להגדרת פרמטרים: :
= פרמטר ערך (6662ו328ק 6גו81ט), שלפניו לא מופיעה המלה השמורה עףּט אך
בעקבותיו מופיעה הגדרת טיפוס.
= פרמטר משתנה :336561 13216:נב3ט), שלפניו מופיעה המלה השמורה עפט
ובעקבותיו מופיעה הגדרת טיפוס.
= פרמטר משתנה ללא הגדרת טיפוט (602:נסתהינהס 216 13נגץ ס6מץ+מט), שלפניו
מופיעה המלה השמורה תףּט ובעקבותיו אין הגדרת טיפוס.
שיטות ההגדרה יתוארו בפירוט בהמשן.
פרמטרים של ערך
כאשר מעבירים פרמטר ערך לתת-תוכנית - מועתק ערכו למחסנית, מבתינת תת-
התוכנית, פרמטר ערך הוא פרמטר מקומי לחלוטין, היא קוראת ומשנה עותק של
המשתנה שבמחסנית ואינה נוגעת כלל במשתנה המקורי (הפרמטר עצמו).
חייבת להיות התאמה בין הטיפוס של הפרמטר הממשי והפרמטר הפורמלי, אין
לשלות מחרוזת לפרוצדורה המצפה למספר, כמו כן, יש לוודא שהפרמטר הממשי
ייצג ערך שניתן להעתיק לתוך המתסנית. כלומר, בתתום מגבלות הטיפוס ניתן
| פרק 5: פרוצדורות ופונקציות 135 '
' להשתמש בתצורה כלשהי: ביטוי, פונקציה, שם של משתנה, שם של קבוע, מספר או
מחרוזת.
שים לב: הטיפוס 8116 אינו מכיל נתונים באופן ישיר (יש לקרוא את הנתונים
תתילה) ולכן אי אפשר להציבו במתסנית, לכן, משתנה מטיפוס 8116 או טיפוס
מובנה המכיל טיפוס 116+ אינו יכול להיות פרמטר ערן.
בתוכנית 1עטתתט (תדפיס 5.4) מועברים המשתנים 1 ו- כפרמטרים של ערוך
לפונקציה 7ש2860, כאשר הפונקציה נקראת, התוכנית מעתיקה את תוכנם של 1 ו-3,
אל המחסנית, כאשר הפונקציה מתבצעת, היא ניגשת רק לעותקים שבמחסנית.
למרות שהפונקציה משנה את ערכי הפרמרים 811 ו-812/, הערכים של 1 ו-3 לא
ישתנו. .
ּ תדפיט 5.4
; 7811261 ותהידססינ
צפטי
סש : [ ,1
(סא : ( בעסא : 7412 ,7811 )20000 תסנ6סתגת
ת1שסס
[ 70411 +01 6פגו 2611002866 ] - ;7812 + 7811 =: 1בא7
[ 7812 01 6פגו 611007866 ] ,0 =: 78128
;711 =: 20000
0 -
הגפס
,7 =: 1
נ5 = 1
;| [ ,' בת ' ,1 ,' 01 50681 סב% 18 7 ,(( [ ,1 )46600 )ת161יט
-
כאשר מבצעים את 1מטשמת? מתקבלת התוצאהי.
5 במ3 10 +ס 60081 םס 15 15
פרמטריס משתניס
בפרמטר משתנה משתמשים כאשר מבקשים לפנות ישירות למשתנה הנמצא מתוץ להיקף
של השגרה, בדרך כלל מתוך כוונה לשנותו, פרמטר משתנה מועבר לפי התייחסות
(00מ0191-0: עפ). כלומר, במקום להשתמש במתסנית לאחסון עותק של משתנה,
מאתחסנים בה מצביע (ע66מם1סס) לכתובת בזיכרון שבה נמצא המשתנה.
6 תלק א" הכרת טורבו פסקל .
כאשר תת-התוכנית מתבצעת, מועברות כל הפניות אל הפוְמטר המשתנה, דרך
המצביע, אל המשתנה הממשי, שינוי הפרמטר המשתנה גורם אם כן לשינוי בערכו
של המשתנה המקורי, תוכנית 1תתט (תדפיס 5.5) היא תוכנית אנימציה פשוטה.
= היא מעבירה תו (219) 58011 לרוחב שורה 10 של המסך, משמאל לימין, המיקום
= האופקי נקבע על ידי הפרוצדורה 6מִחַ1תסט0א, כאשר התו מג?ע לעמודה מספר 80
(הנקודה הימנית ביותר במסן), הוא מותזר לעמודה מספה 1, כדי לבצע את
המשימה צריכה הפרוצדורה לקרוא את הערך הנוכתחי של מספר העמודה ולשנותו.
הפרוצדורה 610%6טסא מקבלת פרמטר משתנה המכיל את מספר העמודה הנוכחית,
וגורמת להזזת התו מקום אחד ימינה, עד לעמודה מספר 80., כאשר מגיעים לעמודה
0, התו חוזר לתתילת השורה,
תוכנית. 1 משתמשת גם בפרוצדורה 618, היוצרת המתנה המאפשרת לצופה
לחזות במתרחש, תצורת הפרוצדורה היא (560א צַ618כ), כאשר ₪560 הוא מספר
המילישניות של ההמתנה, לפני המעבר לפקודה הבאה, פרוצדורת 618 מתבססת
על השעון הפנימי של המערכת, שיטה זו עדיפה על שיטת הלולאה או על ספירה
כלשהי, כיוון שמשך ההמתנה אינו תלוי בסוג המחשב שבו משתמשים.
תדפיטס 5.5
; 791.1 תססין
;017% ₪808
לס
[1 %0 תו[00 1%181126ת )1 .;1 = בעסש : תעוךס00
יאמטי.
;סש :1 1
; ( בשסא : (20081%10 שפט )6ש1תסטס) 6עגוססססיצ
- תנשסס
הסמל 80 = =| מ81410סס< 11
1 =ן גפס
6
; ( ת081610ק3 )סתך
= ;60
; 20081 1ס1 סיעגת6)סססינ
- תנשסס
; ( 10 ,001 )060%
7 0 ) רג 131סשיסוון
; ( 10 ,תט001 )60508 -
; ( 52 0עָ619ם
; תס
הגפס
01190
1 ₪60 160 90 1 =: 1 ע0ס1
. וס
,
[0100% פס1ט6עק סמל 8508ע₪] ;(( ' ' )ת1601עט
; 0 156) 019 (;
| ' | | פרק 5: פרוצדורות ופונ קציות 137
שגיאת תכנות שכיתחה, היא השמטת המלה עפט מכותרת השגרה, שגיאה כזו גורמת
לתוכנית לפנות רק לעותק המשתנה הנמצא במחסנית, ללא יכולת לעדכן את ערכו
של המשתנה המקורי, נסה לבדוק כיצד תשפיע שגיאה כזו על תוכנית 1תתט: מחק :
את המלה השמורה עפט והרץ את התוכנית, כאשר התוכנית כללה פרמטר משתנה, התו
חלף על פני המסך פעמיים, במצב החדש, כאשר התוכנית כוללת משתנה ערך, אין
לפרוצדורה 1%ת טס השפעה על ערכו של המשתנה תחגו1סס, והתוכנית תגרום
להופעת 160 שורות שבהן התו נמצא באותו מקום בדיוק..
פרמטר משתנה מציב במחסנית מצביע ולא את הנתונים עצמם, לכן |
ניתן לטפל באמצעותו ביעילות רבה *ותר בנתונים בעלי היקף
גדול (למשל מערכים), גם כאשר אין כוונה לשנות את ערכם.
פרמטרים משתנים ללא הגדרת טיפוס
כאשר מגדירים תת-תוכנית עם פרמטר ערך או פרמטר משתנה, המהדר מסיק שאתה
מבקש לבדוק ולהבטית תאימות טיפוסים בין הפרמטר הפורמלי והממשי.
התאימות רצויה מאוד בעת הפיתות והניפוי, אם תשגה - תתבשר על כך מיד.
אולם, יש' מקרים שבהם תבקש לאפשר לתת-תוכנית להשתמש בפרמטרים מטיפוס
שונה. |
שפת. טורבו פסקל מאפשרת לך לעקוף את בדיקת הטיפוסים, ולהגדיר פרמטר משתנה.
ללא הגדרת טיפוס (662ס6תתה:נ3כ 181216נץ 60מץ+מט) - תכונה מתקדמת של המהדר. .
השתמש בה בזהירות, עריכת ניפוי ללא בדיקת טיפוס עלולה לגרום לקשיים, אחד
היתרונות של השימוש במשתנים ללא הגדרת טיפוס היא היכולת להשתמש בשגרה אחת
לטיפול במבנים דומים, כאשר משתמשים בבדיקת הטיפוט, תייבים: הפרמטרים
הפורמלייים והממשיים של מערך להיות מטיפוס ומגודל זהים. פרמרטרים ללא
| הגדרת טיפוס משוחררים ממגבלות אלה,
התוכנית ספפציזאט (תדפיס 6) מבילה פרוצדורה בשם צְה8עעת166עא, הכוללת
פרמטר משתנה ללא הגדרת טיפוס בשם 6קעצע'נת. פרוצדורה זו אמורה להציג תוכן
של מערך אינטגרלים המכיל עד 100 איברים. הקריאה לפרוצדורה מתבצעת עכ ידי
ציון שמה, שם המערך וגבולר העליון והתחתון.
8 חלק א" הכרת טורבו פסקל
תדפיס 5.6
; לה תהינשסיו
:₪
;סש ן: 1
( 01600008 18 ) (ע0שספת1 02 [ 1..10|] קהעעה : 1עהעב
[ %8ת0מ016 5 ] (עסשספת1 02 [ 5..9|] ע8עע8 : העפע
7 השש : א ,תג ; סכעדידנת ינפש ) יי 0 בינ סינגוס0סססיזן
6+
; ת0שס%תג 02 [ 1..100 ] ע8ע82 = רעיה [העסת00
וחקי
,סעסש 1 1
; כן1יניז 66גג2501ה והייד 006781 :| עבּיניז/צנסזו
תנשסס
;( 'סגו781 | <66ת1 ' )ת1001ישט
0 ( 1 + תגא - אם|) 60 1 =: 1 ש0ס+
(( 8:[ 1 ]תעסה ,8:( 1 - 1 + תוא ) ,1:8 )ת01סגישט
תס
/ הנס
11 =: [ 1 ]1עהעש 60 10 %0 1 =: 1 ע0ס+
(1*1*1 =: [ 1 ]11872 9|60 60 5 =: 1 עס+
(( 17ע8עת3' )ת1%61יט
;( 10 ,1 ,1עפעעה )146187
. ; תת91ל גיט
; ( י8ע8עת8' )ת1%61יש
;(- 9 ,5 ,2עעע ) עַ8י56/1 1-ו
. תס
פרק 5 פרוצדורות ופונקציות 139
התוצאות המתקבלות מתוכנית פשפצעיאט הן:
1י
86 אסבתך
1 1 1
2 2 4
5 5 9
4 4 16
5 5 5
6 6 6
7 7 |59
8 8 4
9 9 1
שג -1. 10
5עפייד
סט[ | אסתך
1 5 15
8 6 216
5 7 55
4 8 18
5 9 29
יציאה מתת-תוכנית
הפרוצדורה 1%א₪ מאפשרת יציאה: מסודרת מפרוצדורה או מפונקציה. לפני הפעלת
%באם, יש לוודא שכל הערכים שהפרוצדורה אמורה להחזיר הוצבו כראוי.
נניח שאתה מבקש לפתור את המשוואה הריבועית:
/ | :
0 = 0 + אם+ את
(פתרון המשוואה הוא מציאת כל הערכים של א שעבורם המשוואה נכונה), למשל
במשוואה: ְ
0 > 6+ א5-.א
0 תלק א הכרת טורבו פס קל . | | | !
ערכו של הוא 1, 8 הוא 5-, ו-6 הוא 6, המשוואה מתקיימת רק כאשר א הוא 2
או 3, לעיתים אי אפשר למצוא מספרים שיפתרו את הר
שאין למשוואה רות ממשיים.
הנוסחה לפתרון משוואה ריבועית היא:
פתרון המשוואה יתאפשר רק אם (שג.4- 2) אינו
במקרה כזה אומרים.
שלילי. | הפרוצדורה
רפט הס משתמשת בנוסחת המשוואה הריבועית כדי לבדוק אם קיימים
פתרונות ממשיים למשוואה, אם קיימים פתרונות, ערכם
הפרוצדורה מסתיימת באמצעות קריאה לפרוצדורת 16א₪,
מוחזר, אם לא
0 ,8 ,4 )398100081-811000%8 סינטססססין
;( 081ע : %0ססת ,000%1 עפט ;2081 :
: לפטי
;2081 : 16ס
תנססט
;2 =: %1ססת
;2 =: א%ססת
4*2*0-(902)2 =: 18ס
[ !20008 קהתנקבון ] ; 1%א
; (2*8)/ ( (1018)%-90 - ם-)
6 )1018( ( ])2*4( ;
הפונקציה 560826800%5 מחזירה שורש ריבועי של מספר
הרצויה, היא פועלת באמצעות סדרה של ניחושים, כאשר כל
הדרך בין שני הניחושים המתאימים ביותר שהתבצעו עד
וכאשר נמצא ניחוש מתאים (בגבולות הדיוק שהוגדרו)
מסמס 0 > 016 +11
: %1ססת
: ששססת
-
5+ ם-)
בהתאם לדרגת הדיוק
ניחוש נמצא במחצית
כה, כל ניחוש נבדק,
הפונקציה מסתיימת
באמצעות >6גאם, (ללא פרוצדורת 1%5א₪ היתה התוכנית ממשזכה לפעול לנצת).
פרק 5: פרוצדורות ופונקציות 141
1 : ( 26841 : א )40300%ג5 תס%1סתגת
ג
;681 : 000088 , ₪ס20%% , קסע
תנקסס
[ 6גו41ט 66גו820801 66סא ] - ; (א)808 =: ססך
=: תסספסם
1%
2 / (₪ס%%ס0 + 100) =: 00058
60088 =: שססת6י1ג50
;1% תסמ+ 0.00001 > (א-(8פסגג5)0)פכג +1
8 =: קס תסתף % < 098ג055*00ג₪) 11
; 01088 =: 20%%0₪ 6186
; 18186 611וע
; תס
למרות ש-86₪826800%5 מבצעת לכאורה ניחושים בלבד, היא מגיעה לפתרון
במהירות, ניתן להשתמש בטכניקה זו כדי לפתור בעיות מתמטיות רבות.
לפרוצדורת 1%א₪ אפשר לפנות גם מתוך התוכנית הראשית, פעולה זו תגרום
להפסקה מיידית של פעולת התוכנית, שים לב: רצוי יותר להשתמש בפרוצדורה
% כדי לגרום להפסקה מוקדמת של פעולת תוכנית (ראה פרק 12).
מחזוריות
שגרה מחזורית (6שט1פעטססע) היא שגרה הקוראת לעצמה ישירות, או קוראת לשגרה
אחרת הקוראת לשגרה המקורית, לכאורה נראה כי זוהי פעולה בלתי ממולצת
ואפילו אסורה, אולם אם נזכור שטורבו פסקל מקצה שטחי אחסון חדשים למערכת
משתנים חדשה בכל פעם שקוראים לשגרה, נראה כי השד אינו נורא כל כך.
בשפות תכנות רבות, כולל בייסיק, קובול ופורטרן, אין הדבר כן. בשפות אלה,
כאשר שגרה קוראת לעצמה, משתמשים פעם נוספת באותם משתנים. בטורבו פסקל,
כאמור, כל הפעלה של שגרה היא עצמאית ובלתי תלויה.
התוכנית 506 (תדפיס 5.7) תבקש ממך להקיש שמות של בעלי חיים עד שתיתקל
במחרוזת ריקה, שים לב: הוראת ת1661עא יכולה להתבצע רק אחרי שהוקשה
מחרוזת ריקה, כלומר אחרי שהפרוצדורה 280%8205 מסתיימת והפיקות עובר
2 חלק א הכרת טורבו פסקל |
לשורה שאתרי הקריאה האתרונה לפרוצדורה, אם הפרוצדורה הופעלה מתוך
פרוצדורה אחרת או מתוך עצמה, הפיקות תוזר אל הפרוצדְורה הקוראת שמעליה
(ה"הורה"), המבצעת את הוראת ת1561עש השייכת אליה, פעולה זו ממשיכה,
מחזורית, עד שחוזרים לקריאה המקורית שבגוף התוכנית ההאשית.
תדפיס 5.7
380% תפידססינכן
| :38/0081 6עגו0סססינ
יצפץ
;|[ 15 |שתנעלפ : [החגת/
תנפסס
: בפחנתה תה 7961606 )106עש
; ( 41881 )ת70881
; 9/00091-05ע ת90| "7 <> [החוחה 11
; ( | בותגתג )ת1461י
; תס
תנשסס
0
. תס
000 ְ-----ש---ש--2-<ת ₪ רב רבב.בבוונונווווםה ומוה אמויד ההההודווויוד וווד ו ווווויייייו
הנה דוגמה לאופן הפעולה של התוכנית:
ל( 5
6טטא : [מות1וג וגה 56160%
"308 : [בוז1ת תה 58180%
%) : [הת1גה תה 96180%
שסס] : [החנתה תה 901905
%תה16938 : [פתנתה תה 56160%
אסיע : [התגתה תה 6180%
6 : [מתנתה תה 56160%
68 : [פחנתה ת8 56160%
: [אתנתה תה 56160%
התפעת
1-6
אס
%תהתכס גי
8
4%
בכ |
6 רת
כל אחת מהוראות 1התגתה3 תה 56160% נוצרה על ידי עותק אחר של פרוצדורת
טסב הוראות ם1%661עש התבצעו על ידי אותם עותקים, בסדר הפוך.
| פרק 5: פרוצדורות ופונקציות 143
באמצעות השגרות המתזוריות (68מם2051כ1ו8 6טנפעטס6ת) ניתן לבצע פעולות
מעניינות בתתום המתמטיקה, חקר הלשון והבינה המלאכותית.
חישובי עצרת
כאשר נתונים שני גורמים, ניתן לסדרם בשני אופנים (פת ו-תם). כאשר
נתונים שלושה גורמים - קיימות 6 אפשרויות סידור 6פת, פסג, סגם, גסם, 628
ר - ת08), א גורמים ניתן לסדר ב !א אופנים (סימן הקריאה הוא סימן העצרת).
אם א הוא אינטגרל חיובי, יהיה ערכו של !א (כלומר א עצרת):
1 א 2 א 3 א 4 א(3-א) א (2-א) א (ו-א) א א
ולכן
ד=פון
₪8 > !2
3% > |3 >
א 4
א 8
4! = = 4
0 =ן 2% א 3 א 4 א = !81
בגלל אפשרות השימוש בפעילות מתזורית, ניתן להגדיר עצרת בטורבו פסקל באופ
] /
הבא:
- א) אא = 1015 =וא משםש |[ = א 15
זוהי הגדרה מחזורית, היא מיושמת בתוכנית 11סתע (תדפיס 5.8)
4 חל קִ א" הכרת טורבו פסקל
תדפיט 5.8
; 80%1/ ותפיפסינן
|
)%ת1קתס1 : מסמותות
,%ת1פתס1 : ( ו :ית )980% תסנססות
תזנפסס
תסמ 1 = ת +1
1 =: סספץ
| 06
;( 1-ת )700% * ת =: ססמת
; תס
תנשסס
0 10 60 1 =: עסמותות 102
;( ( עסמחעת )780% ,7 = !7 ,2:עסמחות )ת1401עש
. תס
התוצאה שמתקבלת מתוכנית 1ע6תע היא:
11
1
1
41
+
1
71
ו
91
11
צותתתתשת-=
₪
ג
תוכנית 621גע קוראת לפונקציה 0%6ס8ע א פעמים, בכל פעם שהפונקציה 6סְהַע
קוראת לעצמה, היא משתמשת בפרמטר הנמוך במספר אחד | מהקודם.
חישוב העצרת אינו פעולה מורכבת, וניתן לבצעו גם בצורה בלתי מתחזורית,
כמתואר בתוכנית 22סהע (תדפיס 5.9)
<< פרק 5: פרוצדורות ופונקציות 145
תדפיט 5.9
| 40% ותפישסינכן
: ופט
ברת > ; תנקת 10 |: מס6מתגות
נַת1שַת10 : ( שת1שת10 : ת )280% תס1ססתגת
%-- יקי
,%ת1שתס1 : ₪016 ,א6התך
תנשסט
2 =: 18סם
סס םת 50 1 =: 166% עס+
| ;1608 * 3016 =: 16ס
=: 2806
-
תנשסס
0/0 - 60 50/10 1 =: עסמתות ע0+
;| ( עסמחטת )180% ,7 = !' ,2:עשממטת )ת₪21%61 -
0 . תס
ברמה זו קשה להחליט איזו תוכנית מבין השתלים קלה ויעילה יותר.
נעבור עתה ליישומים מורכבים יותר.
המחלק המשותף הגדול ביותר
המחלק המשותף הגדול ביותר של שני אינטגרלים הוא המספר השלם הגדול ביותר
שבו ניתן לתחלק את. שני האינטגרלים, ללא שארית, המחלק המשותף הגדול ביותר
של 12 ו-18 הוא 6, של 18 ו-36 הוא 18 ושל-17 ו-53 הוא 1. ּ
תוכנית 6021 (תדפיס 5.10) משתמשת בשיטה האוקלידית לחישוב המחלק המשותף
הגבוה ביותר של שני מספרים. בהתאם לתאוריה של "אויקלידס, המחלק המשותף
הגדול ביותר של שני מספרים שווה למחלק המשותף הגדול ביותר של המטפר הקטן
ביותר מבין השניים: ושל ההפרש בין שני המספרים, *ננסה ליישם תאוריה זו
באופן מתזורי כדי לחתשב במהירות את. המחלק המשותף הגדול ביותר בין שני
מספרים:
6 תלק א" הכרת טורבו פסקל
תדפיס 5.10
; 0021 ותפיססיון
: ינפש
; 5ת1קתס1 : מסשפתה | 0ַתַ0000 ,(6פעגע
;%תנקתס1 : ( פת1שתס1 : 0 ,4 )602 תסנססתט+
תנשסט
; ( 0:10 |,8₪:10 )ת1461ישט
תפז 0 = םס +11
₪ =: 602
6
; ( מ ₪08 ₪ ,0 )602 =: 600
;תס
0 : הזנקסטו
.7 :עסשספת1 8%ע1+ 26 עספתת' )166גיש
; (| 21286 )ת20801
(( "7 :ע0שס%ת1 6ת5000 86 עספתת' )106יש
( ; 6ת9600 )ת20801
; ( 960006 ,125%ע )6020 =: עפשפת)
; ( עסאפחה ,' :18 סלהתגתוסת60 תסוצהסס 6036הסיש| סב" )ת1501יש
.6
הנה דוגמה לתוצאות שמתקבלת מתוכנית 60021:
8 :עסשססת1 2128% 016 עספתת
6 :0סלת1 5600(6 416 קפסת
18 %6
66 12
125 0
2 :15 0אתנותסת06 |תסתזחסס ₪068%665% 6ב
6 :00שפלת1 1285%+ 426 עספתת
9 : 00ת1 360000 6מל תססות
19 66
27 ( ו
165 27
ו 155
5 5
8% 09
0-99 5%
0% 46
46 11
1 2
2 1
1 9
1 :18 עסאהתנוסת תסתזהסס 080056 סמו
גם במקרה זה אפשר לפתור את הבעיה באופן בלתי מתזורי, כמתואר בתוכנית ₪052
(תדפיס 5.11).
ל ו פרק 5: פרוצדורות ופונקציות | 147
תדפיס 5.11.
; ₪025 ותפינססיוסן
: שפץ
| (%ת1שתס1 : עסטפת ,500000 ,(%פצנק
;10%שת10 : ( 6ַתְנקַתס1 : ס ,8 )602 תס61סתג+
טי
%ת1שתס1 : 0
תננשס
( 0:10 ,4:10 )ת1501ישט
תנשסס 80 0 <> 0 16וג
;6 סו 8 =: 0
;םס =: 4
;םס =: םמ
;( 0:10 ,8:10 )ת1%01יש
; תס
;8 =: 002
; תס
תנשסס
((' ;עסקססת1 8%ע11 6ת% עספסתם' )1%6עש
= ;( 5%ע1ת )ת[680ע
(( "7 :עסשספת1 6ת5600 6ף ע66ום' )166
; ( 6ת5800 )ת6801
;( 560006 (%פעגע )002 =: עסשפתב
- ;( עסשפת ,' 18 ש60בת1חסת60 תסתזהסס ₪09%08% 16" )ת[140י
| .תס
רצף פיבונאציי
= רצף פיבונאצ'י הוא הבסיס לרוב המבנים הספירליים. הרצף מוגדר על ידי שני
הגורמים הראשונים. כל גורם נוסף הוא סכום הצמד הקודם, תוכנית 181ע (תדפיס
2) משתמשת בפונקציה גססהתסמ1ע, המתשבת את ערכו של גורם א ברצף באמצעות
לולאה המתחשבת את כל הגורמים הקודמים, גישה זו נקראת תחזרה או איטרציה
(ת15028%10).
8 חתלק א" הכרת טורבו פסקל
תדפיס 5.12
;11 התפיופסיוס
וצפק
: ;עס 1 1
(%ת1שתס1 : ( סת1שתס1 : 60%ה₪016 )נססבת100? תס1פסוע
צפט
%ת1שתס1 : 6ת9600 ,2128% (6תסתעגה) ,1062
| ת1שסס
= %פעגע
;1 =: 0ת600פ5
;1 =: שלתסעיעגת)
תפמל |2 < %6ת1006 14
תנשסס 60 2 - 6ת1600ת 60 1 =: אפססת1 102
([0ת9000 + 5%ע21 =| שת6עתעט0
;119% =] 600(0פ5
; 6ת6נענגו =: %ג
; תת
; %ת6ענט) =: 001התסמג1ץ
=
תנשסס
0 10 600 1 5: 1 ע0ס1
;(( 8:( 1 )01סהתסס1ע ,1:5 )ת1%01עש -
-
תוכנית 182ע (תדפיס 5.13), לעומת זאת, מגדירה פונקציה המשתמשת בגישה
המחזורית, במקרה זה, ברור שתוכנית 182ע פשוטה יותר מתוכנית 181ע.
תדפיס 5.13
106 תפיפסינ
ינפש
;סתעסש 1 1
;%ת1שתס1 : ( סתְנַקֶתס1 : 6ת1600ם )80001ת2100 תס1שסתגת
תנפס
תס 2 |=> 6ת1000ם 12
1 =: 001ספתסס1ץ
1-6
;( 2 - ₪160006 )נססהתסמג1ת + ( 1 - סת6ה16ע )01ספתסס1ץ =: נססהתססגת
0
תנשסס
0 110 60 1 =: 1 ע0ס1
;(( 8:( 1 )נססהתסס1ת ,1:5 )ת16601יט
תס
פרק 5: פרוצדורות ופונקציות 19
0.
הפלט שמפיקות שתי התוכניות הוא:
= ₪ ₪35 ₪4 שר ₪
-
₪ ₪ 0 ₪ א ₪ ₪
מתי להשתמש בשיטה המחזורית?
קיימים שלושה כללים לשימוש בשיטה המחזורית:
כלל א' | ניתן למצוא דרך איטרטיבית מקבילה לכל טכניקה מתחזורית.
| כלל ב | כל פעולה מחזורית תייבת לחול על מצב פשוט יותר מהמצב הקודם,
כלל ג' יש ליצור אמצעי ליציאה נוחה מהפעילות המחצורית, כדי למנוע
= מצבים של ביצוע אינסופי, אמצעי זה נקרא בסיס ההגדרה המחזורית.
לדאבוננו, אין כללים שיעזרו לנו להחליט מתי יש להשתמש בשיטה המחזורית.
אחת התידות המוכרות ביותר, המבוססות על השיטה המחזורית, היא חידת מגדלי
האנוי, אהו משחק המבוסס על שלושה מוטות ועל מערכת טבעות בקטרים שונים.
בתחילת המשחק, נמצאות כל הטבעות על המוט השמאלי, כשהן מסודרות לפי הגודל,
הטבעת הגדולה ביותר נמצאת בתחתית העמוד והטבעת הקטנה ביותר - בראשו.
מטרת המשחק היא להעביר את כל הטבעות מהמוט השמאלי אל המוט חימני, כדי
לסבך את העניינים, קיימות מספר מגבלות: מותר להזיז רק טבעת אחת בכל פעם,
בכל מהלך לוקתים טבעת אחת מעמוד כלשהו ומעבירים אותה לעמוד אחר, אין
להנית טבעת על גבי טבעת קטנה *ותר,
כאשר העמוד כולל שתי טבעות בלבד, יש להעביר את הטבעת העליונה של העמוד
השמאלי אל העמוד האמצעי, להעביר את הטבעת הגדולה אל העמוד הימני, ולהציב
עליה את הטבעת הקטנה הנמצאת עתה על העמוד האמצעי.
כאשר קיימות 3 טבעות - נחוצים 7 מהלכים (תרשים 5.2)
=מפםבם 0 2--8₪8- ב--9ם בבשםם | -2-8ם -
3 סז 1 פטסו
2 סז 1 פטסו
2 סז 3 טסו
3 0+ 1 פצסו₪
דסז 2 סצסו₪
3 10 2 סטסוא
3 סז 1 פטסוא
100
חלק א':
הכרת טורבו פסקל
תרשיסם 5.2
פתרון חידת מגדלי האנוי כאשר קיימות שלוש טבעות
| י פרק 5 פרוצדורות ופונקציות 151
בדי להעביר א טבעות מהעמוד השמאלי לימני, יש לבצע את הפעולות הבאות:
1 הוז 1-א טבעות מהעמוד השמאלי למרכאי,
2. הזז את הטבעת הגדולה ביותר מהעמוד השמאלי לימני.
3 הוז 1-א טבעות מהעמוד המרכזי לימני.
תוכנית 011א3 (תדפיס 4) מיישמת שיטה זו, עבור מספר טבעות כלשחו,
תדפיט 5.14 , /
| 11011 ותהידססיון
ישי
| ע0ק6לת1 : 601218%5מווא
(( ע0ק0פת1 : ע6ט59%000 ,102₪0% (הסע5%58240 ,2188 )ע0+פתפינ+ סיעגו0סססי
תנפסס
תנפסם תסמ% 0 < אפגת +1
; ( 198₪0% , ע0ט0קס5% --//- ,1 )ע510תעל
(( 109₪0% ,' 60 ' (הסעת%נ9%8 ,' סטס)(" )ת1%61עש
; ( מ0עפ9+827 ,102205 ,55000007 ,218%8-1 )ע10פתפי+
; תס
; פתס
| ז1שסמ
;( ' :81845 +0 עססכותות 6מ% יי ) 16
: 0 ב
(( 2 50 ,1 ,8א6010184מת1 ) ע10פתפינ+
. . תס
עבור 3 טבעות, תפיק תוכנית 1דסְאַ8 את סדרת ההוראות הבאה:
> 0ס% 1 סטסא
5 50 1 סטס
5 %0 5 סטסא
5 ס% 1 6טסא
1 2-60 פטס
5 ס% ₪ 6טסו
5 ס% 1 6טסון
רשימת ההוראות. המתייחסת למספר טבעות גדול יותר היא ארוכה ומשעממת. ל-8
טבעות נחוצים 255 מהלכים ול-10 טבעות נחוצים 1023 מהלכים, תוכנית 2דסאגזז
(תדפיס 5,15) מתארת את התהליך בצורה גרפיה.
|
ן
2 תלק א" הכרת טורבו פסקל
תדפיט 5.15
101 תאססיוס
,02% 08פגו
"הי
(%6ק0 : 010198%8ת0מת1 ,[ ,1
;ת168ססט 02 [ 1..10 ,1..8 ]עהעעה : |
; 56% סינגו66ססינק
תנשסס
0150 ;
[ 00826 6 01082 ] סס 5 ס% 1 =: 1 ע0ס+
0 10 |סצ 1 =: [ עס1
;6 =: [ [ ,1 | ]6ינהססותהס
תנקפס 40 95א01018%עס6מחטא %0 1 =: 1 עס+
[ 016 161% תס פשת1ת סגת !| ;סגו =: [ 1,|1 |6יהססת8
[ /815018 תס+ תס1שנפסק ] ; ( 1 | ג-20 )60%
| 01מחע8 01004 6ם% 1%6עא ] - ;( 7219 )166 60 2*1 %0 1 =: 1[ שס+
; תס
; תס
;( ע%000ת1 : ע0ט5%000 ,191₪0% (הסעת5%84 215% |)02+פתפי> סעגו0סססיכן
; 3018710006 21 6ינגוססססמכן
= שפט
;וע : ₪1 ,א
ה1פשסס
[ שָס 01 19061 התנק | =: א
;סגת1 = ך % ,חסיל5%800 ]08000910 1נפוו (58)סת1 260086
תנשסט 00 20* (7208ל9+81-20%י805)101 60 1 =: 1א עס+.
1 18%ע %0 102% 018% סטס ]| ת1שסס תסם% מסע350209 < 66שעהך 11
; ( 2219 )146עש ; ( א 81-10 3 20*חסי 9% )צאסס 0
| )166 ;( א ,1111-1-2*%8 148 (20*מוסתענה5 )00
[ 101% 60 1₪6ץ 819% שטסא ] תנשסט 6156 בת
( ( 2019 )166יעט ;( ₪ ,א-0*20-41ע 54902 )060
(( 7 "7 )2166 ;(₪ ,425% א-20-21*תסי5081%7 | ) אס
; רת
( 191016ט 18 %תסחסטסת 50 ] ;( 50 )ע0019
נ תס
[ 68 016 6+ 08ע1 סטסתסת ) (29180 =: [ א , מסעת0 :548 ]000000820
[ סק שסת 6 תס 1% מסקכ ) ;גר =: [ א ,10220% ]0800810
[ פסטסות ת60אספן 1%מן + ; ( 500 )00187
-
הנס
ת1שסס תפמ 0 < 218% 11
( ( 782₪0% ,55000002 ,(ת0ש5%820 ,21988-1 )102פת%8
| 3006 בנ
; ( 558000 ,19208 ( ע0ט0ק5%0 ,1-א218 )ע16פת8ע4+
; תס
; סתס
הזנשסס
(( ' :3א213% +0 מסכועות %26 עספתת, )186עש
; ( 0101888 6מותט1 )ת801ע
; כ56%
;( 2 ,5 ,1 0600101845[ )100פתפעל
. תס
פרק 5: פרוצדורות ופונקציות 153 .
בדי שהתוכנית תפעל. בצורה נאה, לא כדאי להגדיר יותר מ-10 : טבעות.
נסה | לשבתב את אחת. התוכניות הללו בלי להשתמש בשיטה המחזורית, התרגיל כיתן
לביצוע (רמז: השתמש. במערכים כדי לאחסן תוצאות ב אולם התוכנית
המתקבלת היא תוכנית מורכבת' מאוד.
יש להשתמש בשיטה' המתזורית כאשר היא פשוטה יותר משיטת האיטרציה. יתרונה של
השיטה המחזורית גדל ככל שהבעיה מורכבת יותר. |
הכרזות עתידיות
בקטע. הקודם הגדרנו, | את השגרה המחזורית, הקוראת -י באופן ישיר או עקיף.
בקריאה עקיפה שגרה 4 קוראת לשגרה 5 ושגרה 5 קוראת שוב לשגרה גא, באשר -
שגרות או יותר קוראות זו לזו באורת. ורי יש להן מחזוריות הדדית.
| (מ0סנפ:גוספינ 1 4 '*
אולם איזו שגרה יש להגדיר תחילה. כאשר. ג קוראת ל-8 ו-8 קוראת ל-? הכלל
אומר, כי יש להכריט על בל פונקציה או פרוצדורה לפני שמשתמשים בה. כיצד,
אם כן, ניתן להשתמש אפילו במחזוריות רגילה אשר מטבע הדברים. לא הוגדרה :
במלואה לפני ל של הוראת 6811?
התשובה: יש להגדיר | רק. את כותרת הפונקציה או הפרוצדורה לפנל הפעלת הוראת:
1. שפת טורבו פסקל צריכה לדעת' מראש רק מהו שם השגרה (כדי לזהות. את
הקריאה) ומהם הפרמטרים וטיפוסי הפונקציות (כדי לבדוק את הפ
כאשר מדובר בשתי שגרות שאחת מהן קוראת לשניה, יש להגדיר את השגרה השניה
אחרי השגרה הראשונה הקוראת לה, אולם ניתן לפתור את הבעיה גם בעזרת שיבוץ
הכרזה עתידית (מ86018::3510 0 של הכותרת, לפני השגרה הראשונה.
הכרזה. עתידית נראית בדיוק כמו הכרזה רגילה עם כותרת השפ שגרה, אולם אחריה
מופיעה המלה השמורה + כאשר מגדירים אחר כך את השגרה עצמה, איך
/ ה לור על הפרמטרים.
ההכרזה העתידית יבולה לחול על כל שגרה. שהיא, ולא רק על שגרות שהשימושי'
בהן. מתזורי, יש הנוהגים לרשום את כל הפרוצדורות והפונקציות. בראש התוכנית
< באמצעות הכרוה עתידית. |
14 תלק א'י הכרת טורבו פסקל | |
תוכנית לניתות ביטויים היא תוכנית להערכת ביטויים אלגבריים. חוקי הקדימות
מגדירים את סדר הפעולות. תוקי הקדימות של טורבו פסקל קובעים בי לכפל
קדימות גבוהה יותר מאשר לתיבור ולכן:
4 * 3 + 2
יחושב כ-(3*4)+2 או 14 ולא כ-2+3(*4) או 20, הסוגריים מציינים את. חלקי
הביטוי שיחושבו תחילה, ולכן:
4 * (3 + 2)
שווה 20.
תוכנית פ5פעתקעאע (תדפיס 5.16) היא תוכנית פשוטה לניתות ביטויים על פי כללי
הקופת המתוארים בתרשים 5.1:
תרשים 5.1
כללי הקדימות של תוכנית 655חקאם
דימות 9 שם
גבוהה 1 02 סוגריים
2 + - חיבור וחיסור (חד-פעולי)
3 / א* כפל ותילוק
נמוכה | 4 = חיבור וחיסור (דו-פעוללי)
בתוכנית ספ טאו מבצעות הפרוצדורות 5מפמשסת, טנכנ16טאסס,
8 ו-82168ת2081 את העיבודים בהתאם לדרגת הקדימות. סדר
הקריאה לפרוצדורות מבטית כי: כל פעולה תתבצע במועד | המתאים. לפני ביצוע
פרוצדורה מסוימת יש לוודא שכל הפעולות בעלות הקדימות הגבוהה יותר ביצוע.
לכן פס1מַהת1פסס קוראת ל-צ1621טאסכ, | ט1ס16גואסס קוראת ל-188ע8מטסס
(-8216מ00כ קוראת ל-מַספחְַַ6תסַעהעסכ |
שים לב: כאשר נתקלים בסוגריים, יש לחשב את הביטוי שבתוכם באופן עצמאי,
כלומר יש לבצע פעם נוספת את רצף החישובים על פ5י סדר הקדימויות. כיוון
ש-פסחִת >ת6כהעסכ חייבת לקרוא ל-165הת1פסכ שלא על פי סדר הקריאות הרגיל,
יש להגדיר את 65נַהת1פספ באמצעות הגדרה עתידית.
פרק 5: פרוצדורות ופונקציות 155
תדפיט 5.16
; פפסינכסכ ותהיושסיסן
6ץ
, תסינבק , תסינ18 ,50806 , תסמתט ) = 6קע1ת0א10
; ( 6תג 6 ,5185 ,5582 , פגת1!1 , פגגנם
2-5
, 6גו781
110% :- 1%ופסת
;06ע1ת0אס1 : | תסאסך
;%6עס : 136008
;[ 80 ]שת1ע8% : 1.16
; 20:86 ; ( %ת1שתס1 090216 ינפ 105)0ינת01 סכ 6עגוס6סססי
; ( שת1ע%ם : 088806 )עסעטם סעגוססססינק
. תנפסס
; ( 108886 )ת1401ינט
; 1%
: ; תס
; 21,116 508 6עגו0סססינק
תנשסס
תסמל ( 6ת11 )106% < 5סססת11 +1
6ת0],1וצן =: תסאסך
ת1קסס 6156
+ [ 5סעסת13 [6ת11 0856
תנשסס : '0'..79'
: 106
: 6גג781
- ו
,8 [ 8סקסת1.1 [6ת1.1 )026+ 06ג10*091 =: 6גו91ק
; ( 6008ת11 )סתך
; יצסמותגאן
0
ו
עס ( (6ת61)1ת16 < פסססת13 ) 11פתט
שס ( '0' > [ פסק6ת14 ]6ת11 )
,( '9? < [ פסססת11 ]1126 )
-
;180 =: תסאסך : 7)7
[מסעפעת =: תסאסך : '("
;פגו[קת =: תסאסך : 7+*
; פגות1][ =: ת0א0ך 1 7-7
;יע5%8 =: תסא0סך ; '*7
,5188 =: תסא0סך : */7
;50806 =: תסאסך 1
; '6ת11 תס 08405025 71119091 | )עסעע 066
תס
; ( 0008ת1.1 )סת1 תסמ עסממט <> ת6אסך 12
; תס
; 6ת50821,1 60 50806 = ת06א0? 116ת₪
תס
; ( 106שתסי1 : 16גוססת יעפט ) סמותט0א00116 6עגוססססימם
תנפסס
תפס הסג עסמתטן = הסאסך +1
6גג781 + 1%טפסת3 =: 6נגופסת
; 50821.1
868 0
; ( עסתעע0 א68תע9" )עסעעת
; תס
6 חלק א? הכרת טורבו פסקל
תדפיס 5.16 (המשך)
( 10061 0ע26 ) - ;( %ת1שת10 : 16גופס עפט )%20508תסינ8קס 6עטספססצק
תנשסס
+ תסינ13 = תסאסץ 12
תנשסס
; 6תז1,תהסס
; ( 21%ו09ת ) 168:נהת1מסקע
06 תסם% הסינכ = ת6אסע 11
; ( = %0808תסינהכ 6ססת18המת" | )עסעעת 0186
בת
66
; ( 1%גו309 ) עסמונג ₪000
-
( 10081 8%ע1ע ) | ;( %ת1שת0ס1 : 16גוטסת שבט )108:הת0ס2 6עגו66ססען
יצפטי
; 06ץ1'ת0ס | : ת8610י 06
תננשסס
;מ1049 =: (00028510
תס (פות1)] = תסא0ס1) עס (פגו[ת = תפאס1) +1
; 116 50821
; ( 1%גופ0ת ) 6808רתסינט סי
תס פגות1]| = ת0009%10 +1
;11%ו308- =: 6גגופסת
-
[ 106061 860006 ] | ;( ש6ת1קת10 : 6נגגופסת ינפט )1+217ג0% 6ינטססססיכן
יפש
; %ת1קתסי1 : סאסא
; 1006 : ת0008%10
תנפסס
; ( 11%ו99 )165ינהתוסת
00 (81882 = ת6א0ס1) עס (ש5%8| = תסאסך) 16נגש
תנשסס
; 1003 =: תס1ספסק0
( 16 תס
/ 0 =: 6אסא
; ( 08% )105ינהת0סת
01 0028010 0886
6%[ * 1%גופסת =: 6נגופסת :| שהסל
( '0 עס ת10פנטגכ' )עסעעם תסמ% 2 = 6אסא 14 :| מ185פ
; 0%[ 8107 18גופסת =: 1%טפסת 6156
-
; פתס
; תס
[ 10061 הבעו ) - ;[( 6ת1קתס1 : 1%טפסת פט ))8:108ת1ס2 ס6עגוססססיצק
ב
%ת1קתסת : סאסא
; 100106 : ת10אפינססס
הגפס
; ( 1%ופ6ת )401 גפס
סס (פגוונ1! = תסאס1) עס (פגו1ק |= תפס1') 1168ב
ת1שסס
| פרק 5: פרוצדורות ופונקציות 157
תדפיס 5.16 (המשך)
ורוו וו וו קוריו
; ת6א10 =: ת008%10
; 6תז1, [ת8סס
,0 =: 6אסא
; ( 6אסא )טנסצנגפ/ס
+ 00028610 0836
;68% + 1%ומסת =: 6815 :- פוות
(6אס% - 6נגופסת =: 1%טססת : פגותון
-
; תס
; תס
1 6 פפש שת01+מס3 11 058ססעס ק1תס ] ; 1008112846 6עגו60ססינ
ת1שסס
תנשסס תסמל 0 <> ( 6ת11. )106 +1
;1 =: פסקפת11
; 116 [ת8סס
;0 =: 16גופסת
; ( 15גופסת )1098עהת1מסק
; תס
0 -
תנשסס
1%
; ת1+91ינש
; ( :ת0200209810 קוסע ש6פתע' )ת[140יעש
; ( 6ת1.1 )ת[0פסץ
; 9112860
ה6מ+ 0 < ( 6ת13 )מ6שת16 11
( 1%טפסת )ת1%61י
= ( שת13 )1606 %11תט
. .4ת6
וו
2
נ
158 חלק א" הכרת טורבו פסקל | .
תוכנית פפשתעאם מבקשת ממך להקיש ביטו:
:0205910 עגוסץ וסשת
14
8
6201 נגוסץ נססח
((4/ 18) * (4 -18) = )
4
:02058103 עגוסץ עספוו
9 /40-
-4
:0051 נגוסץ מסשחת
(1+ *10)] (2(*)4*5+ 1)
6
:0095103 עגוסץ עספתת
%) + 10
סיכ 0066 הנד
התוכנית מסתיימת כאשר מקישים שורה ריקה, או כאשר מתגלה אתד ממצבי השגיאה
הבאים:
= תו בלתי. חוקי
₪ שגיאת תתביר
= סוגריים בלתי מאוזנים
= תילוק ב-0
טיפוסי פרוצדורות
בטורבו פסקל ניתן להגדיר טיפוסי פרוצדורות (65כע5 6עט60ססעס) המאפשרים
לטפל בפונקציה או בפרוצדורה כמו בנתון רגיל, ווהי שיטה המאפשרת להציב
שגרות במשתנים ולהעבירן אחר כך כפרמטרים, טכניקת יישום השיטה מורכבת
במקצת, ויש להשתמש בה בזהירות.
0 | | פרק 5: פרוצדורות ופונקציות 159
ההכרזה על טיפוס הפרוצדורה אמורה "לתפוס" את טיפוס הפרמטרים של השגרה ואת
הטיפוס המוחזר על ידי הפונקציה, ההכרזה מתבצעת כמו כל הכרזה על כותרת של
פרוצדורה או פונקציה, אולם: ללא שם השגרה, |
הנה דוגמה להכרזות על. טיפוסי פרוצדורות:
בו 5
7 :0( 6עסא : 6ת8600 ,86ע1ע ) תס61סתג? = עעהמונם
: | ;סעטססססתסק = 61016סתע
;( 22008016 : ססעעמסג6סת ;צ ,א עהט ) שעטו0סססנס = ססקעתטם
;1 :0( 681 : 2%ע728ץ"8ת10801 ,2%ע2308128 ) תסנססתטת = מססססת
| המזהים שבהם משתמשים בהכרזות זהים לפרמטרים הפורמליים של השגרה, יש
חשיבות לסדר הפרמטרים ולא לשמם. ניתן להציב כל פרוצדורה בעלת צירופי
טיפוסים הזהים לטיפוסים שהוגדרו בכותרת, במשתנים בעלי טיפוס מתאים.
בעת ביצוע. פעולת הידור של פרוצדורה או פונקציה, יוצר המהדר של טורבו
פסקל את קוד המכונה היעיל ביותר, בהתאם למקומה הפטי של השגרה, כדי
להשתמש במשתנים עם טיפוסי פרוצדורות, יש לבצע את הידור הפרוצדורות עם
אופציה (+*?8%) (08118 עהע שסעסע), הוראה זו מתוארת בפירוט רב יותר בפרק
המתייתס להוראות המהדר. -
דוגמה לפרוצדורה עס הגדרת טיפוס
תוכנית 25001 (תדפיס 5.17) היא שגרה לאימות טיסמאות, התוכנית משתמשת
במשתנים עם טיפוסי פרוצדורות כדי לקבוע את הפעולה שיש לנקוט כאשר משתמש
בלתי מורשהּ מנסה לפנות למערכת.
ניתן לבצע שלושה נסיונות כניסה. שני הנסיונות הראשונים *וצרים הודעת
שגיאה, הניטסיון . השלישי מפסיק את פעולת התוכנית. בהתאם למספר נסיונות
הכניסה שהתבצעו, הפרוצדורה 026ש5%2855י7 מקבלת בתגובה את שם הפרוצדורה
שת1ת:3 או 78%581. | 7
0 תלק א" הכרת טורבו פסקל |
תדפיס 5.17
;001 התפיססין
% רס
;₪ =| 66ע : 55080%
0006000 : 200108 = 78186;
> 6סעל
;| 8 |שתגעסם = 8 9%
; ( 56ע0 : עש1 ) 6עגו6סססקק = 061 ]עסית
ונפש
(0פתןע5% : 6פתסקפסת
[+ 9)
נ 1 : ע 5000210 ,8קת1ע5% : מפשפתה )103%0859₪026 סקגת6סססטכן
0%
; "80 1עסם? = 560000
תנשסס
תסם? 50026% = עסשפת +1
סגרנ] =: 000000
00|
45%072% ( ; )ע500011
-
; ( 6סעס : ע19 )שתנ1תינפ) סינגו0סססען
תנפסס
; ( עצ1 ,' עססועות 20500050 %ס6עעססת07'1 )ת1601יו
;( '!ת3601 על 16836ק' )ת661גיצ
; תס
; ( 96ע0 : עע1] )9081ע 6עגוססססינן
תנשסס
;( '!100ת00 18 800088 (108על | ,עע1 ,7 7'41662ק )ת01ס1
,1%
; תס
[-ת8)
50510( 6ינגוססססע
תנשסס
יב 4
; ( 2%%5080% )סתך
;|( ' :88026 עטסע עספתם' )156עש
; ( 6פתסספסת )תִוְהַבסע
תס 6 > | 06ה%0+4 11
( שַת1הד1/) , 6פתסקפסת )65+7859₪020
06
; ( 28681 , 6פתסקפסת )765%0899006
| 00 1תט
( ; תה8ששסצק 6גף %0 010006 )ת01ל1ישט
; וז
הנס
סופספ
[ | 1696 ₪008 0066 תהששסתק |
. תס
יווהה ...הג בצ
8 | פרק 5: פרוצדורות ופונקציות 161
אם מקישים את הסיסמא הנכונה, התוכנית פועלת בצורה רגילה:
בתה יס :סשפפטכן ינגוסץ ו
תוסינכ 6 0 0100
אם מתבצעים שלושה נסיונות כניסה שגויים,: מופיעה הודעת שגְיאה והתוכנית
כ לפעול,.
ת 8 לכות
1 עסמחטת 6פתסקפסץ 6ס6יינססו
יתנשה עע+ 16856ע
מס :6עסא9פפכן עגוסץ ספות
₪ עסמותטת 6פתסקפסע 5ס6יינססתך
!תשא עעל 16886ק |
0גו30860 :יענסשטפפפקן נגוסץ עססח
!0 18 800088 (105ע42 5 ע21+60
דוגמה לפונקציה עם הגדרת טיפוס
ניתן: להגדיר טיפוטי: פרוצדורות גם לפרמטרים של פונקציה.: תוכנית 61אטסק
(תדפיס 5.18) היא מערכת שגרות פשוטה, שבעזרתה קובעים את ערכי המינימום >
והמקסימום של פונקציה. ניתן להשתמש בגרסה של 1אטע כחלק. משגרה הקובעת
את קנה המידה המתאים ו להצגת הגראף.
12 חלק א': הכרת טורבו פסקל ן
תדפיט 5.18
ו הסני ב הבבא 10 ב בש ששל הצ ה מ 20 ב םה שחר 100 תב בד | ,%
; 1סתגת תפיפסינן
6+
: ( 26081 : תהעבע ) תסנססת)+ = סתות
נפטי
;681 : התתת1אה!( , תגוח1ת :]1
[+ פפ)
: ( 0081 : א )516 תסנ1ססתת
תנשסס
;( א )ת1פ =: סת91
-
0[ : ( 2081 :|א )סת0091 תסנפסות
תנסס
;( 8 )008 =: סת0081
; 6
; ( סוצ? : ת10שסתגו ינגס )ת61תאמ6ת1 6ינטסססס
לפטי
סעסש 1 1
, הפיטק
,681 : >נגופסת
תנשסס
02-.- =: מתתת1אמון
5=: תתגתגת
תנשסט 60 100 %0 1 =: 1 ש0+
| 1 =: תפשבק
; ( נתאינ8ק )ת0ס61סתנתנינט0 =: 6גגופסת
תס מתותגא) < 1%גופסת 11
; 1%גופסת =|: תגהח1אהון
ת% מנגהתנת1] > 6[גופסת +14
; 621% =|: התגתתנרזגזון
תס
;( 0:6:תעעמ1א!( ,' =תגתת1אם!! ' ,0:6:תמתות:!( ,' =תתמחגתג!!' )ת1%01יט
-
(-88)
תנפס
;( ' :תסגססתגת סת51 סמף עסת' )160עט
; ( 6ת51 | ) ת1סתסתני
((( " :תסנפסת? 6ת0081 6מ% עסת' )166עט
; ( 6ת0051 | ) ת1סת/אמסתנק
- 0
-₪-ץ]/--- 1 שש -/-/0/< ו ?וו
הפלט שיוצר 61אטשע הוא:
4. 0 =תגות1אה)[ 999925. 0- =תתותנתג] :ת610סת1 6ת91 שמש ססת
9, 0 =תגות1א<3)! 0.999695- =מתתתגת1]1 :ת10ססתט+ 6ת0091 סבף עסק
| פרק 5: פרוצדורות ופונקציות 163
סיכום
בפרק זה למדת לפצל בעיות תכנות מורכבות לשגרות, השגרות של טורבו פסקל
מורכבות מפרוצדורות ומפונקציות.
הכרת את ההבדלים שבין פרוצדורה ופונקציה, את המבנה המייחד אותן ואת הדרך
שבה קוראים להן, פרוצדורה היא אוסף של הוראות, היכול לכלול גם פרוצדורות
אחרות, ופועל כיחידה נפרדת, הפרוצדורה מופעלת בציון שמה, ממש כמו כל
הוראת טורבו פסקל רגילה, הפונקציה זהה למעשה לפרוצדורה, אולם היא מחזירה
ערך מטיפוס מסוים. ניתן להשתמש בפונקציה בכל ביטוי שבו מותר להשתמש
במשתנה מאותו טיפוס, ראית גם כיצד ניתן לסיים את העיבוד המתבצע בשגרה
באמצעות הפרוצדורה 16א₪,
פרק זה תיאר גם כיצד ניתן להשתמש בסדרה של שגרות מקוננות, והבהיר את
מגבלות ההיקף הקשורות לתהליך העיבוד המקונן.
למדת כיצד השגרות מקבלות מידע באמצעות פרמטרים, פרמטרים של ערך מאפשרים
פניה לעותק של הנתונים המקוריים; פרמטרים משתנים פונים לנתונים עצמם;
פרמטרים משתנים ללא הגדרת טיפוס מאפשרים לשגרות לפנות לטיפוסי נתונים
שונים.
למדת גם כי ניתן להפעיל את השגרות באופן מחזורי, ולחקות בכך טכניקות של
פתרון בעיות, ראית כי ההכרזות העתידיות מאפשרות לקרוא לשגרות לפני
שהוגדרו. 20 ן
הכרת בפרק את הגדרת הטיפוס של הפרוצדורה, המאפשר לתוכניות טורבו פסקל
להעביר פרוצדורות ופונקציות כפרמטר לפרוצדורות ופונקציות אחרות.
פרק 6: מבני נתונים דינמיים 165
פרח
מבני נתונים דינמיים.
כמו לרוב המיקרו- מעבדים יש גם למעבדים ממשפתת ה-8086 (8086, 80286
ו-80386) שטחים פנימיים בגודל מלה, הנקראים אוגרים (099166028ע).
יש. אוגרים. שתפקידם לאחסן כתובות,. ויש המשמשים לאחסון נתונים,
טעות נפוצה גורסת, כי יש להציב את הנתונים באוגר. כדי לאפשר למעבד להשתמש
בהם, הגישה לנתונים שבאוגרים אכן: מהירה *ותר מהגישה לנתונים שבזיכרון,
אולם רוב הוראות המעבד (כולל הוראות חשבוניות כמו. חיבור ו כוללות
אופציות המאפשרות לפעול אחד או יותר להישאר בוו
למשל, ההוראה המשווה | בץ שתי מחרוזות באורך 100 בתים, דורשת רק שהכתובות
ההתחלתיות ונתוני האורך של המתרוזות *ימצאו באוגרים. בכך נתחסכת העברת
מחרוזות ארוכות לאוגרים לפני ההשוואה. 0 |
לכתובת בזיכרון מתייחסים בדרך בלל באמצעות שתי מלים: 16 2 המייצגות
את הקטע 0 ו-16 סיביות המייצגות את ההיסט-(025595).
צורת הרישום המקובלת היא: 6 ניתן להגדיר כל כתובת בזיכרון
בעזרת ארבעה בתים, ורוב הוראות ה-8086 מתירות שימוש' בכתובות במקום
בנתונים עצמם. לכן ניתן לשפר במידה ניכרת את ביצועי : התוכניות על ידי
שימוש רב ככל האפשר בכתובות. בטורבו פסקל קיים טיפוט נתונים מיוחד שנועד
למטרה ף - המצביע ו
בפרק זה נכיר את מבנה זיכרון. ה- -26 ואת אופן הגישה אליו,. אחר כך נתאר .את
הניהול הדינמי של הזיכרון הקיים בטורבו פסקל.
16 חלק א': הכרת טורבו פסקל |
פניה לזיכרון
מקובל לחשוב, שאם יש ל-6ע זיכרון של א640%, קיימים בו| 10 קטעים פיטיים בני
8, במציאות, גבולות הקטעים גמישים הרבה יותר.
למעבד ממשפחת ה-8086 יש 20 שורות של כתובות המפקחות על הפניות לבתים
שבזיכרון, 20 שורות מאפשרות לפנות ל-1,048,576 בתים (1 מגה), למרות
שמגבלות החומרה מאפשרות בדרך כלל להשתמש ב-א640 בלבד.
האוגרים הם בגודל של 16 סיביות בלבד, ולכן נתוצים 2 |אוגרים לזיהוי כתובת
בזיכרון, צורת הזיהוי היא:
א האוגר הראשון (הקטע) מזהה את הפיסקה שבה מתחזל הבית המבוקש. כל
הקטעים מתתילים בגבול של פיסקה, פיסקה היא שטת| בן 16 בתים בזיכרון.
הפיסקה היא כתובת המתחלקת ב-16, בזיכרון של מגה-בית אתד יש 64%
פיסקות, כאשר מערכת 08כ טוענת תוכנית לשטת הפנוץ הנמוך ביותר בזיכרון
היא בוחרת למעשה בפיסקה הפנויה הבאה.
₪ האוגר השני (ההיסט) מגדיר את המרחק או התזוזה (%מ6ת41501806) בין
הבית המבוקש ותחילת הבית של הפיסקה המהווה נקודת הת*ייחסות. גודל הקטע
נחשב בדרך כלל ל-א64%, כיוון שאחרי שבותחרים בקטע וטוענים את מספר
הפיסקה שלו לאוגר הקטע, אי אפשר לפנות לכתובות החורגות מתחום של 64% :
באמצעות היסט של 16 סיביות.
רוב התוכניתנים מכירים תאוריה זו בצורה שונה במקצת, בספרות מסבירים בדרך
כלל שניתן לתשב את הכתובת האמיתית (או הכתובת המוחלטת - 66גו1ספכה
68) על ידי הזזת המלה של הקטע (%6ת5606) טור אחד שמאלה והוספת המלה
של ההיסט (56%6+ס), הזזת ערך הקסאדצימאלי עמודה אחת שמאלה כמוה כהכפלת
המספר ב-8%10 (כלומר 16 עשרוני), הנה דוגמה:
קטע: 000 כתובת הפיסקה
היסט: 0 + המרחק מתתילת הפיסקה
כתובת מותלטת: 38000 כתובת פיזית בת 20 סיביות
הכתובת המוחלטת מייצגת את המיקום הממשי בזיכרון, שאליו פונה אפיק הנתונים
בן 20 הסיביות.
פרק 6: מבני נתונים דינמיים 167
הכתובות בקְטע הנוכתי נקראות כתובות קרובות (ע68ם) והכתובות שמחוץ לקטע
הנוכתי נקראות כתובות רחוקות (ע58), כדי לפנות לכתובות קרובות יש לשנות
את אוגר ההיסט בלבד; כדי לפנות לכתובות רחוקות יש לשנות את שני האוגרים.
כתוצאה מהשימוש בשני אוגרים להגדרת כתובת, ניתן לרשום כל כתובת באופנים
| רבים, נתייחס, למשל, לכתובות 8800:0000, 2700:1000 ו-010ע:עע8ג.
טבלה 6.1
הכתובת המוחלטת של שלוש הגדרות
23800:0000 200000( 0ץנץ
אוגר הקטע: 00 200 עעפת
אוגר ההיסט: 0 + 0 + 0 +
כתובת מוחלטת: 00 2020 020
טבלה 1 מראה כי בשלושת המקרים מדובר באותה כתובת מוחלטת בזיכרון.
זיכרון ה-0ע בן 640% אינו מכיל אם כן 10 קטעים קשיתים בני 64%, אלא
0 קטעים לוגיים (640% שווה ל-655,360 בתים חלקי 16 בתים לפיסקה),
מספר הפיסקות בנות 16 הבתים שבקטע משתנה לפי הצורך, אם קטע לוגי מסוים
| אינו צורך את מלוא השטת של א64%, מערכת 505 מתחילה את הקטע הלוגי הבא
בפיסקה הפנויה הבאה בתור.
השימוש בקטעים (08ת0ו50)
הכרזות הנתונים (או ההקצאות) משריינות שטתי זיכרון למשתנים ולנתונים. .
ההוראות (26ה8קתסס ,סטסות ,860 וכדומה) הופכות לקוד בשפת מכונה, ומטפלות
בנתונים הלכה למעשה.
כל ההוראות והנתונים מאותסנים בזיכרון,. העיצוב הפיוי של ה-8086 ערוך
לקליטת הכתובת של הוראות התוכנית המתבצעת באמצעות צירוף של שני אוגרים.
מקומם של הנתונים מוגדר בעזרת שני אוגרים נוספים, ושטת הזיכרון המשמש
קטע הנתונים
8 תלק א" הכרת טורבו פסקל |
מחטנית מוגדר על ידי צמד אוגרים שלישי, השטחים המוגדרים על :די אוגרים
אלה נקראים קטע הקוד, קטע הנתונים וקטע המתסנית.
מיקומם המדויק של
השטחים הללו נקבע על פי תוכן אוגרי הפיסקות ואוגרי הה?סטים שבטבלה 6.2.
טבלה 6.2
האוגרים המגדירים את מקום השטתים בזיכ
ם הפי הפיטקה
הוראות התוכנית (קוד) 0086 58
הנתונים 8 8
המתחסנית 5% 5
קטע הקוד
רון
ר ההי %):
סז פדיפס
1 1
עפ ספיספ
אוגר הפיסקה של קטע הקוד (05) מגדיר את המקום שבו מתתילות הוראות
התוכנית, ניתן לתחשב את הכתובת של הבית הבא שיתבצע באיתור הפיסקה המוגדרת
על ידי אוגר 05 והוספת הערך הנמצא באוגר 12 (אוגר ההצב
ביצוע התוכנית בבית הראשון של הגוש המכיל את הקוד.
עות). ב-8086 מתתיל
אוגר ע1 מכיל תמיד את כתובתה של ההוראה הבאה שתתבצע, אין לפנות לאוגר זה
ישירות, ואין לשנות את ערכו.
שפת טורבו פסקל מספקת אמצעי עקיף לבדיקת הערך של אוגר
9 המחזירה את הערך של אוגר 65.
אוגר הפיטקה של קטע הנתונים (25) מגדיר את המקום
התוכנית. ן
פ1 באמצעות פונקציה
שבו מתתילים נתוני
כאשר המהדר נתקל בהכרזות נתונים, הוא משריין עבורם מקום בקטע הנתונים.
גודל השטח תלוי בגודל פריטי הנתונים. אם הנתון קבוע,
מועבר ערכו למקום
ו ו | פרק 6: מבני נתונים דינמיים 169
המתאים בזיכרון. בהיעדר הגדרת ערך, יימצאו בשטת הערכים שנמצאו בו לפני
הפעלת התוכנית.;
אוגר אינדקס המקור (81) מצביע על נתון מסוים בקטע הנתונים, כאשר ההוראה
מבצעת העברה של נתון ממקום למקום, מצביע אוגר 51 על נתון המקור, ואוגר
האינדקס (דס) מצביע על נתון היעד,
פונקציה 05060 מחזירה את הערך הנוכתי של. אוגר 25, ניתן לפנות לאוגר 81
ולאוגר 1פ באופן עקיף, באמצעות הוראות פסק (6קגועש66ת1), נושא זה יתואר
בפירוט בפרק 16. | 0 | 0
קטע המחסנית
אוגר הפיסקה של קטע המחסנית (58) מגדיר את המקום שבו מתחילה מחסנית
התוכנית, אוגר המחסנית (59) מצביע על ההיסט הנוכתי בקטע המחסנית.
| מחסנית (5680%) התוכנית היא שטח בזיכרון הממלא תפקיד של "טיוטה", כל
הנתונים מוצבים במחסנית באופן ארעי, וממתינים שם לרגע שבו יהיו נתוצים. =
שליפת הנתונים מהמחסנית מתבצעת על פי העיקרון "נכנס ראשון - יוצא ראשון".
מבחינה טכנית, ניתן כמובן לפנות לכל בית במחסנית, צורת האחסון במחסנית
= נועדה לתסוך שטתי זיכרון. כל טבניקה אחרת: תיצור "תללים" שיגרמו לניהול
= בלתי יעיל של הזיכרון. :
- פונקציה 8908 מתזירה את הערך הנוכתי של אוגר 85 ופונקציה 5262 מתזירה את
הערך הנוכתי של אוגר 52.
קריאת ערכי הפיסקות וההיסט
שפת טורבו פסקל מספקת שתי פונקציות - 809 ו-0%5 המחזירות את הקטע וההיסט
של בל נתון:
התוכנית [צתסא שבתדפיס 4 מדגימה כיצד ניתן לפנות לכתובות בזיכרון
באמצעות טורבו פסקל. |
0 תלק א" הכרת טורבו פסקל
תדפיס 6.1
; 171סח10 ותה יושסיזכן
;02% 65פט
עפש
, 8/0100
500
סש :- אע0+5%0
;תס : ( 66עס : תנסתץ התג |) 1102066 תס61סתגת
0%
120456789" = עבמס 0% [ 0..15 ] קהעעה : 18סממעפאסת
תנפסס
;[ מדנספץיזפתגם ]15סמתץפאסת =: ס>עבאסון
; תס
נְשַת1ע8% : ( 6עסא : מנסת0עס |)00/א110 תס61סתגת
תנפסס
+ ( 16 ט81 ( מדנסת0עסח )11 )66ע0אפע + |פָ' =: 6עס)אסם
+ ( 16 ₪06 ( ת:0ס"6עס )11 )ספקבאסת
+ ( 16 ט61 ( ממנס"6תסח )10 )656קמאסת
; ( 16 ₪06 ( הס ת0עס )10 )66ע אס
-
; לת1שתס1 : 51260111000200 תס%1סתגגו
תושס
; ( יסא )028 - ( 026/א512001116 )028 = :| 91260111020/026
; תס
;( בעסט : 55827100 )ע1%ט505%80 %1 פינגוססססיזן
הנס
(5:(ע90% - 5%48%100) )ת1461יש
;(' 0811 %218 קתגעגה 55805 6ב% עס 60פגו סעפש 5ססְעט *
; תס
תנשסס
; 0180
;( ' :5שס011+ 85 ת81סס בסת3000 תהינקסינק" )ת[0ס1ינט
; ת1491יש
(( ( 0906 )56ס)אס ,7 עס 7 ,6:ש080 ,7 006 ' )ת191ישט
;( ( 286 )6עס)אסם ,7 עס 7 ,6:ש96ק ,7 רשפ ' )ת1091יט
(( ( 886 )26ס)אסם ,7 עס 7 ,880₪:6 ,' ו ' )ת1591ישט
:%: חההחהחההההה-ההההההההההההההחההההההחההה-77-777-77-7-777----+---' )ת%91גיש
; ( " :85 1026 06 ת8ס 0006 תפינקסינ +0 5:01156%5ת99000' )ת1661יט
; ות061 יש
(( 6:( 66עמאס )015 ,6:( ססעבאסת )שסם ,' 6 )ת661 גיט
; ( 6:( 6עס)אס )015 ,6:( 6תסא6 )90 ,7 |
,6: ( 0026א812001110 )868 ,' 75120010 )001 גיט
; ( 6:( 6ע02/א51200110 )025
ע958080%101%אסמט )906 ,7 ע8080%101%+פקסתפ" )ת001גיט
(
6:
;( 6:( ע68040%101%פשסםפ
29
תדפיק 6.1
ממשיך בדף הבא
| פרק 6: מבני נתונים דינמיים . 171
המשך תדפיט 6.1
; ת[1%8יש י
(' 18 +1%861 ת%10סת? 1100/0206 6ב 01 5126 סג" )ת1%01יש
: ,' עס ' ,6עסא512001110
;( '505עמ ' ,( 0ע0)א51260110 )6:סאס1ן
(( החחההההההההההההההההההההההההההה------ ההחהחהה-77777777---------' )ת21%61 .
;( ' :86 6תט10 06 ת8ס 6858 תהינקסינקן 02 5:01280%ת "50000 )ת[150יו
: ; ת1+61יט
;( 6:( 8%80%100 )048 ,6:( 5%580(100 )005 ,7 0 )תנש
;( 6:( אעס80₪0 )025 ,6:( אעס)₪סם )90₪ ,7. 790200206 )ת1%91יש
;( 6:( 0150 )015 ,6:( 0190028 )868 ,' 5 | > אע04800" )ת1%01יש
43| ההההההההההההההה-- הההההההה777------ ההההההההה7--7777-----------' )ת1%61י₪
(|( ' :עמ 5%28%00ת8600 18 380% 16ף 01 6פט 74 )ת1001יט
161
ןעט =: 9680700
; ( 55801100 )ע9%680051071%סב >
תס
הפלט של תוכנית 1צפסאמא מתואר בתרשים 6.1.
תרשים 6.1 הפלט של תוכנית וצפסואשו
:1011005 35 2081 50%000%5 ההתפסתץ
1 <ם 28673 10
460 תם 28898 8
7 עס 028935 - 80%
8 22073 אס
59 20073 0 6₪] >
98 28672 20
| 8 206722 (0661015ַאסבּ+פטסת5
5 588825 ים 141 5 1 7 ואו 6+ ]ם 5126 6תך
.8% 0+ 26 ההש 03%8 ההעלףסזעק +ס 5
0 28898 |%6
5% 22000 8
0150% . 08 190
יטטס ל 5 55808 5(6 01 ₪56 6
1 5*נֶ% %ת1עת00₪ א5%86% שת% של ₪560 התסט %65טם 10
72 חלק א': הכרת טורבו פסקל 7 /
אם תריץ את התוכנית במחשב שלך, תקבל קרוב לוואי תוצאות אחרות, הערכים
שיתקבלו תלויים, בין היתר, בתוכניות התושבות הנמצאות בזיכרון המחשב באותה
עת.
שים לב: הפיסקה של נתונים גלובליים זהה לתוכנו של. אוגר| 5פ. ערך הפיסקה של
כל הפרוצדורות והפונקציות זהה לתוכנו של אוגר 65, גוחל ההיסט תלוי בגודל
הנדרש לכל אחד מהגורמים.
הפרוצדורה ע05%80%0%101%ם5 השתמשה ב-10 בתים במחסנית, הפרמטר
5% צרך שני בתים, שמונה בתים נוספים שימשן לשמירת ערכם של
האוגרים פם, 88 82, ו-58 (כל אוגר בגודל מלה), פעולה זו מתבצעת בכל פעם
שקוראים לפונקציה, שמירת ערכי האוגרים מאפשרת למהדר להחזיר את הפיקות
| לתוכנית ללא תלות בפרוצדורה ובתוצאותיה.
תצורת קבצי אסס. ו-מאם.
בתוכניות: 00%,, שאליהן משתייכות גם תוכניות שנוצרו על |ידי טורבו פסקל 3.0
ומהדורות קודמות, מכילים כל אוגרי הקטע ערך אחיד, לכן| התוכנית אינה יכולה :
לחרוג מגודל של קטע בן א64.
לתצורה זו מספר יתרונות: פעולת הידור קצרה - כיוון שאין צורך ליצור
הוראות מעבר מקטע לקטע, ומהירות ביצוע גבוחה - כיוון שאין צורך לשמור את
ערכי האוגרים ולשתחזרם, כלומר - תוכנית א60%. היא תוכנית יעילה ביותר, כל
עוד ניתן להסתגל למגבלה של א64%.
במקרים שהתוכניות גדולות יותר, ותורגות מתחום של א64 |(כלומר צורכות יותר
מקטע אחד), משתמשים בקבצים הנמצאים בתצורת ₪א8. תוכניות טורבו פסקל
הנמצאות בתצורת מאש, יכולות לקרוא לשגרות ולפנות |לנתונים בכל מקום
בזיכרון (כלומר, ניתן לשנות את אוגרי הקטע ואת אוגרי ההיסט).
כאשר לקוד או לנתונים נחוצים שטחים שגודלם הפיזי עולה | על 64%, יש להגדיר
עבור התוכנית יותר מקטע לוגי אחד, כלומר, תוכנית כזו כְּוללת יותר ממודולה
אחת, כל מודולת פסקל נקראת יחידה (15מט), היחידות נדונות בפירוט בפרק 7.
פרק 6: מבני נתונים דינמיים 173
הקצאת זיכרון דינמית
אורכו של כל קטע (קוד, נתונים או מחסנית) אינו יכול לעלות על א64, כלומר
יש ב-6ע כמות גדולה של. זיכרון בלתי מנוצל, בטורבו פסקל ניתן לפנות לשטתי
זיכרון אלה (המכונים "ערימה" - 682ם) בעזרת משתני ההצבעה.
גודלה התאורטי של ה"ערימה" הוא כגודל שטתו של הזיכרון הפנוי של ה-6פ.
מעשית, הערימה גדלה וקטנה, באופן דינמי, בהתאם לגודל הזיכרון הנחו
לאתסון המשתנים, גודל של משתנה אחד לא יעלה על א64.
משתנה רגיל מייצג ערך, השטח בקטע הנתונים שיכיל את הערך מוקצה בזמן
ההכרזה על המשתנה, גודל השטת תלוי בטיפוס המשתנה בגודל המוכרז, כמות
הזיכרון שצורכים המשתנים אינה תלויה בגודלו הממשי של המשתנה בזמן הריצה.
מערך של 100 איברים מטיפוס שַםס יצרוך 100 בתים, גם אם משתמשים ב-5
איברים בלבד, מערך של 100 גורמים בני 20 בתים יצרוך 2000 בתים גם אם
משתמשים בשתי הרשומות הראשונות בלבד.
המצביעים, לעומת זאת, הם דינמיים, התוכנית מפקחת על כמות הזיכרון המוקצית
לאחסון המשתנים המוגדרים על ידם תוך כדי ריצה. משתנה הצבעה מכיל את
כתובת הבית שבו מתתחיל הגורם ולא את הגורם עצמו.
הקצאת מקום האחסון מתרחשת כאשר התוכנית מתבצעת ולא בעת ההידור, הנתון
שאליו מתייחסים *כול להיות טיפוס תחוקי כלשהו, מספר, מתחרטת ואפילו
פרוצדורה, פונקציה או מצביע אתר, במשתני הצבעה משתמשים כמו במשתנה רגיל.
המצביע מאוחסן בשטת בגודל מלה כפולה, כאשר ההיסט נמצא בחלק הנמוך של
המלה, והקטע - בחלק הגבוה.
הכרזה על משתני הצבעה
כדי להכריז על נתונים מטיפוס מצביע, יש להקיש את התו * לפני שם הטיפוס.
הנה דוגמאות:
%-/-/-/ ס6סץ
;+תנפתס1 +0ס [ 1.100 ]287ע82= 61עגססגוע56
נפצ
;6פצם* : 1עה0
12 :5 2ע78
/טטססטעספ" : 1823
4 חלק א" הכרת טורבו פסקל .
1 הוכרצ כמצביע לבית, 2שהצ הוכרז למצביע למשתנה מטיפוס 681ע, ו-7823
הוכרז כמצביע למערך של 100 איברים מטיפוס 6מנפַתס1.
המצביע הוא ההכרזה היתידה המגדירה משהו שיוגדר מאותר יותר,. הכרזה כזו
נקראת הכרזת הצבעה עתידית (מ0001818%10 ע66תנסס 10הּש:0+), ההכרזות הבאות
הן הכרזצות חוקיות לחלוטין ואופיניות לתוכניות המשתמשות ברשימות:
ס6סצס
7 = אסעעתהּסהכ
%6 = צצגוסְפה6בק
7 : 1
]לת : 2
;טסעע8%8 : עס6פה6הכ
7
קטע התוכנית שלעיל נראה במבט ראשון כמו כלב הרודף אחרי זנבו. עיון מדוקדק
יותר יגלה לך, כי יש כאן אמצעי מתותכם ליצירת סדרת רשומות 08%8560%%,
כאשר כל רשומה מכילה מצביע לרשומה הבאה בשרשרת.
הקצאת זיכרון בעזארת הפרוצדורה אאא
משתנה הצבעה מכיל כתובת בזיכרון, ולכן יש להקצות לו |בזמן ההידור ארבעה
בתים בקטע הנתונים, השטתים שאליהם יתייחסו הכתובות ייווצרו רק בזמן הריצה
בעת הקריאה לפרוצדורה אסא:
;( ס6תהּאעהּט )שסא
אם 6ת8אע78 מוכרז כמצביע לטיפוס 6סע':פסתנסע, הפרוצדורה שפא מקצה
בזיכרון שטת המסוגל להכיל משתנה אחד מגודל סִסִעְלַצססתנסע ומציבה במשתנה
סהאמבּל את הכתובת שבה מתתיל 6קץ17:ס>ת1סק.,
לשטח שעליו מצביע 6תהאעהּט אין שם. ניתן להתייתס אלין באופן עקיף בלבד,
כ- "סוִהּתמ8/, שים לב לסימן ה-* המופיע אתרי שם המשתנה, הכתובת של נתוני
6ע66ת1סע היא סתהאבהּץ, ואילו הערך של נתוני 6סץ17'-56מנסע הוא "6תבּאבהּץ.
הבחנה זו מודגמת בתוכנית 1 אעעאז0סע שבתדפיס 6.2.
| - פרק 6: מבני נתונים דינמיים 175
תדפיט 6.2 :
; 1שס%ת1ס תפיופס
ססע
;| 255 ]שת1יס5 - סו
,055806 = - סקסו
ת%00ת1" = עססת1סק%תך
ופט
; 11088806 : 88201בסון
10558002 : עפשט!1 [|
; צ60ת1סק6ו | : אנ
ששכ ציצמזר
, תננפס
; ( 10898802 )שסא
( 'שת1ע5% 8 ת1 00ע8%0 18 0589201(" := 0588₪61]
; ' פ%ת1סכן 110558202 סנסחשט 550260 15 710898262 =: 05582027
; ( 1]0888201 )ת1%01ינש
; ( 1]08882027 )ת1+01עש
: ; ( אעפט )אסא
=: העבט
, ;5 =: צעפט
; ( עצפץ * יאקבט ,' 18 צעבץ תה אפ 01 6סגוסעכן 6ג "1 )ת1461י
;( ( 00888001 )812001 ,' 18 00888201 02 5126 שג" )ת1%61יש
;( ( 008859002 )512001 ,' 18 00880202 01 5126 6מ1" )ת1%01ישט
(( ( 109882027 )512001 ,' 18 008882027 01 8126 סג? )ת1501יש
;( ( אעה )512001 (' 18 798% +0 5120 6ב" )ת1501ישט
;( ( יאעפ7 )512001 (' 18 יא%עה0 +01 8126 16" )ת%61+1ישט
;( ( צעפץ )+91200 ,' 15 צעה08 +0 5126 6מ1' )ת1%61יש
-
הפלט של תוכנית 1 אנסע מתואר בתרשים 6.2.
- תרשים 6.2
הפלט של תוכנית ₪1פזאזסק
98 8 ה1 550760 15 6553861]
5 1₪553962] סעפת₪ 550200 15 05588982
6 15 %לת03 חב את03 )0 6%ט6סתעק סתך
6 15 80558861 ]0 5126 שתך
4 15 10558882 1ם 5126 שתץך
6 18 0558162] ]0 5126 התך
4 15 %ת083 01 5126 סתך
2 15 "אבש ]0 5120 סוד
2 15 לַתַ08 01 5126 6תך.
6 חלק א" הכרת טורבו פסקל. | 0/0 |
שים לב להבדלים בין משתנה 869588861 למשתנה 168858862, ובין משתנה אפּט ו-
צעה, 6558001א ו-אעהט הם מצביעים באורך 4 בתים, אל 65886627א. ואל.
1 מתייחסים כאל מחרוזת של 255 בתים ואל "אשב ו- צעבּט מתייחסים כאל .
משתנה מטיפוס 6662ת1, התוכן של 16558061 ושל 116558062 שונה, אולם מבתינה
מעשית יש זהות מוחלטת בין 86858061 ובין 165580627
למרות ששיטת הפניה לזיכרון גמישה, יש להקפיד בזמן התכנות ולהיצמד לכמה
כללי יסודי כל מצביע מתייתס לטיפוס מסוים; יש למלא אחרי כללי התחביר של
אותו טיפוס, למשלי ניתן לכפול קבוע במצביע לטיפוס| ע5696מ1, אולם אין
לכפול קבוע במצביע למחרוזת.
שימוש חוזר בשטחי א%יכרון בעזרת הפרוצדורה 152058
היתרון של השימוש במשתנים דינמיים אינו בהקצאת הןיכרון בלבד, אלא גם
באפשרות לבטל הקצאות של שטתים שאינם דרושים יותר.
ניתן להתזיר שטחים ל"ערימה" בעזרת הפרוצדורה 150086פ. תוכנית 2אמאדסכ
שבתדפיס 6.3 מתארת את דרך הביצוע של תהליך שחרור השטתים,
תדפיט 6.3
; 01012 תפיושסיז
6+
2081 = עפתת 091
. ג
,6 : א06ת1
[עצתת1פסת +0 [ 1..20 ]עבעקה : 156 ]תסמ
הו1קסס
תנשסס 60 20 סף 1 =: אפסת1 עס+
; ( [ אססת1 ]15%ססמט )שסא
;( אססת1 )500% =: "[ א66ת3 ]1,15%ע6מתטת
;( 10:5:י[ אסשת1 ]15%]סמתט) ,5:א6סת1 )ת[09גיט
;( [ אססת1 ]115%ססת3 )180080
: נ תס
. תס
תוכנית 882'א01ע מקצה 20 מצביעים במערך 6:1,15%מתטא] ומשחררת אותם לאחר
השימוש.
%-// | פרק 6: מבני נתונים דינמיים 177
פרוצדורת 1500986 אינה ההיפך של שפא, בפרוצדורה אסא המצביע מקבל אוטומטית
ערך של כתובת מתוך הערימה, פרוצדורת 2180056 מודיעה למחשב שהשטת פנוי,
מבלי לשנות את תוכן הערימה או את המצביע.
זיהוי מצביע ללא שימוש
המצביע 11א הוא קבוע שמור, המצביע ל"שום מקום" (ערכו שתי מלים, שהערך
המוצב בהן הוא אפס), ניתן להציב את 11א במשתנה הצבעה מכל טיפוס שהוא, כדי
לציין שהמצביע כבר אינו מתייחס לכתובת פעילה.
;( 16558062 )150056
1 =: 0558062
;( אע8 )150056
2 =: אע78
שים לב: מציבים את 11א ב-65858862א |ב-אע78 ולא ב- 68886627 וב-*אמבּ/.
כדאי להשתמש ב-11א כברירת המחדל של כל המצביעים ולבדוק אם המצביע פעיל
לפני שמנסים להשתמש בו, לדוגמה:
תסם6 11א = אעבּץ 1%
;( אעהץ )טפא
]7 =: יאתה7
הקצאת %יכרון באמצעות הפרוצדורות אמבּא (-₪616856
כל קריאה לפרוצדורת 1500956 משחררת שטת של משתנה הצבעה אחד., פרוצדורה זו
אינה יעילה כאשר בתוכנית מצביעים רבים, שכן במקרה כזה יש לקרוא לפרוצדורה :
- פעמים רבות כדי לשתרר את השטתים. שחרור שטתים גדולים מתבצע בעזרת
הפרוצדורות %%ע%8 (-610886ַ.
המהדר מקצה את השטתים שבערימה באופן סדרתי. כבאשר מבצעים סדרה של הגדרות
נתונים, ניתן להשתמש ב-א%885 כדי לסמן את המיקום בערימה לפני ביצוע
ההקצאות, כאשר השטתים אינם נתוצים יותר, ניתן לשחררם בעזרת 6163856ה.,
הפרוצדורה 3610856 משחררת את כל השטתחים שהוקצו מאז ההפעלה האחרונה של
%ע.
8 חתלק א" הכרת טורבו פסקל |
מפעילים את 85%א עם ארגומנט הצבעה אחד, הפרוצדורה מציבה במצביע זה את
הכתובת הנוכתית של הערימה.
מפעילים את 26168986 עם המצביע שהוגדר על ידי אשבּא, |פרוצדורה זו הופכת את
הכתובת שבמצביע לכתובת הנוכחית של הערימה.
ב-3616886 משתמשים לשחרור השטת שתופסים משתנים שאינם נתוצים :*ותר.
הפרוצדורה אינה משנה את תוכן השטחים המשוחררים או את המצביעים.
תוכנית 3ת8?א01ע שבתדפיס 6.4 מדגימה את השימוש ב-אמבּא וב-616856,
תדפיס 6.4
; 011166 תהטסינ
6סעץ
= שסתת 1פסת
טי
נ%6ע0 : אססת1
> ; עססתנסק |: שסאממבס
נע%ת1פסת +0 [ 1..20 |קאתטה : 115%ע6מחטא. .
| תנגשסס
0% ; ( | 11080190 ) אינמוון
תנשסס 60 20 90 1 =: א6שת1 עס+
;( [ אססת1 ]118%סמחטא )אס
;( א66ת1 )90% =: "[ א<66ת1 ]1.18%6נסממטון
;( 10:5:"[ אפסת1 ]15%]ססחטא ,5:אפסת3 )ת1561יט
; תס
; ( 1109002402 )610880
. תס
וו ווה
ל
בתוכנית 3 תפי'אזסק הפרוצדורה %:8א שומרת ב-16828:%62 את הכתובת של ראש
הערימה, אתר מתבצעת הקצאה של שטתים בערימה עבור 20 מספרים מטיפוס 2681.
כאשר שטתים אלה אינם נחוצים לתוכנית, היא משתררת אותם בעזרת הפרוצדורה
6 ההופכת את הכתובת שב-:6א₪68082% לכתובת| של ראש הערימה.
האם להשתמש ב-2150056 או ב-5616856? כדי להגיע לכלל החלטה יש להתחשב בשני
גורמים: --/ | ו
א אין צורך לשחרר שטחים בזיכרון אם כמות הזיכרון אץנה מספיקה. בתוכניות
קצרות כמו 85'א201 ו-886א201 (תדפיס 6.6 -ו-6.7) אין צורך לטרות.
פרק 6: מבני נתונים דינמיים 179
בתוכניות של גיליון אלקטרוני או מסדי נתונים יש לדאוג לשחרור תכוף של
שטחים.
= הפרוצדורות 832% (-26168856 מטפלות בגושי נתונים בערימה, מצביע שנוצר
בין הפניה לשתי הפרוצדורות ייכלל בשטת המשותרר, אם קיימים משתנים
שעוד תודקק להם בהמשך - השתמש ב-150086כ ושתרר כל שטת בנפרד.
הקצאת זיכרון באמצעות הפרוצדורות 6666 (-000₪:ע
כאשר מקצים משתנים באמצעות הפרוצדורה שפא, משתמשים בבית אחד מתוך הערימה
עבור כל בית שבמבני הנתונים המוגדרים.
אחת השיטות להקצאה דינמית של זיכרון בטורבו פסקל, היא שימוש בפרוצדורות
666 (- הז66110ע, פרוצדורות אלה דומות ל- שא ו-150086כ בכך שפעולת הקצאת
השטחים ושחתרורם חלה על משתנה אחד בכל פעם, אולם ב-06%%61 וב-660%168תע
ניתן להגדיר את כמות הזיכרון שעליו מבקשים לפקת, ללא קשר לגודל המשתמע
מטיפוס המצביע.
תוכנית 1084'א01כ2 (תדפיס 6.5) מדגימה את השימוש ב-665%068% וב-6606-ע.
0 תלק א" הכרת טורבו פסקל
תדפיס 6.5
0116024 ותפיססיז
6+
;0908" = ע%תתס
(ע0שס%ת1 +0 [ 1..100 |]עבתיזה = פסעבגו0ס
צפט
;עס :| אססת1
, 1 פיי
;עלתתתסט :- 2קהע.ה
,שת1ע%פ" : 1]055820
תזנשסס
; ( 10 ,1ע8ת7 )₪00
; ( 20 , 2ע4עב )₪00
; ( 1099826 )אסא
' ; תפנקסנק 56 01 85825 %6 18 718" =: "0582607
; ( 10888206 )ת1%91יש
;'.6ע0006-0 .6ת11 985820 שת4%1ת1הת%0 66 18 718" =: 10558067
;( ( 17ע8ע ,' 18 1עהעע1 02 8126 6ת1" )ת1%61יעש
(( ( 27ע8ע2ע2 )812001 ,7 18 2ע8עה +0 8176 6מ7' )ת1601י
; א6סת1 * א66ת1 =: [ אססת: ]" 1 ידיד 0 20 50 1 =: א6פת1 ע0ס1
;א66ת1 * א06ת1 =: [ א66תג ]27ע4ע:ה 60 22 50 1 =: א6הת1 ע0+
0 15 %0 1 =: א6סת1 ע0ס1
; ( 8:[ אסשת1 ]י1עַבע2 ,6:א6ת1 )ת1501יש
; ( /699820] )ת1561י
; ( |11088986 )180086
| ; ( 10 |,8/1ע211 | )מ000קע
; ( 20 |, 1802 | )ה0000עת
. תס
.ןור
הפלט של תוכנית 4א28א01ע מתואר בתרשים 6.3.
0 ג 5 ו ₪ 6 פרק 6: מבני נתונים דינמיים 181 >
תרשים 6.3
הפלט של תוכנית 4שזא₪01
ית 8 ]0 5% שו[ 15 5
| 15/2008 1ַטַהעת0 ]0 5128 6ת1י |
8 ע<פַתע0 ]0 5126 שת |
1
2
3
4
5
6
7
8
9
198 25
11 : :
12
13
14
15
= - 6 הו .--- 7-ו 4 - 5 5
: : 022 405!!++ 68 0%+ 0 -
ה"קשקושים" המופיעים בהודעה/ האחרונה נוצרו ביוון ששטתי הזיכרון לא נבדקו
כראוי, - פרוצדורות ההקצאה ת066%6:
. ;(20 ,2 צ8:קת. )₪060
- שריינו מקום ל-10 בתים עבור 1ע28-ת ול-20 בתים עבור 2ע8:+ת, שני המערכים -
הם מטיפוס 66462ת1' (טיפוס. הצורך שתי מלים), ולכן הגודל הממשי: המוקצה
ל-1צה8מעת מספיק ל-5 איברים בלבד, והגודל המשוריין עבור 2 | מספיק ל -10.
איברים בלבד. " .
כאשר נטענו ערכי 20 האיברים של 1עהעעג, שבו היה מקום. -ל-5 איברים בלבד,
גלשו 15 האיברים הנותרים לשטח שהוקצה ל-2עְהצצת, כאשר נטענו 20 האיברים של
-;(10 רי 0
12 ' חלק א': הכרת טורבו פסקל
2, נרשמו 10 האיברים הראשונים בשטת שהוקצה ל-2ע:ש, ואילו 10
האיברים הנותרים גלשו לשטח שהוקצה להודעה.
המהדר לא הפיק הודעת שגיאה כיוון שבדיקת התתביר הניחה |שמדובר במערכים של
00 איברים מטיפוס 166465 (200 בתים), ברור כי יש |סיכון מסוים בשימוש
ב- 665%6₪ וב- ז60%06מע, אולם אם אתה מוכן לקחת על עצמך את האחריות לבדיקת
התחומים בתוכנית, תוכל לפקת באופן מלא על גודל הנתונים שלךן.
כאשר משתררים שטתים באמצעות ז6686שע, יש לשחרר את כמות הבתים שהוקצתה על
ידי ת06686, אם מספר הבתים אינו זהה, תשחרר הפרוצדורה שטתים לא נכונים,
והתוצאות - על אתריותן.
פעולות במצביעים
ניתן לבצע עס מצביעים פעולות של הצבה והשוואה בלבד.
הצבות מותרות רק בין מצביעים מטיפוסים מתאימים. ניתן לבצע את ההצבה
בשימוש ב-אסא או 11א ובהצבת ערך של מצביע אחר מאותנן טיפוס.
> גם בסימני ההשוואה (. > ) ניתן להשתמש רק כאשר הפעולים הם מצביעים
מאותו טיפוס. כאשר שפת טורבו פסקל משווה בין שני מצבועים, היא משווה בין
הקטעים ובין ההיסטים בנפרד, (המהדר פועל ביעילות רבה יותר כאשר הוא משווה
בין שני צמדי מלים).
כיוון שייתכן ששני מצביעים יכילו ערכים שונים, אך יצב?עו על אותו מיקום
פיזי, מתבצעת לפני ההשוואה פעולת "נירמול", כלומר, המהדר יוצר את ערך
הקטע הגדול ביותר היוצר ערך היסט קטן מ-15 בתים.
פרק 6: מבני נתונים דינמיים | 183 .
רשימות מקושרות
השימוש במצביעים עדיף במקרים רבים על השימוש בטיפוסי נתונים אחרים, למשל,
למבנה המערך (ע8עעת) יש כמה מגבלות כאשר משתמשים בו לעיבוד רשימות.
₪ למערך יש גודל קבוע, ללא קשר למספר האיברים הקיימים בו למעשה.
= המערך המלא צורך שטחים בקטע נתוני התוכנית. שטחים אלה תפוסים גם כאשר
מספר האיברים הקיימים למעשה אינו גדול, או כאשר התוכנית אינה זקוקה
לו ברגע מסוים.
₪ כאשר מוסיפים איבר לאמצע מערך, יש להזיז את כל האיברים שאחריו לכיוון
סוף המערך, כדי לפנות מקום לאיבר החדש.
כאשר מוחקים איבר, יש להזיוּ את כל האיברים שאחרי האיבר שנמחק לכיוון
ראש המערן, כדי לצמצם את הפער שנוצר.
שיטת הרשימות המקושרות נעזרת במצביעים כדי לעקוף מגבלות אלה, אם אחד
השדות ברשומה מצביע על הרשומה הבאה מאותו טיפוס, ניתן לקשר כמה רשומות.
ולהפכן לרשימה שגודלה ישתנה כאשר מוסיפים או גורעים נתונים. נקודת
ההתחלה היא הצבעה על הרשומה הראשונה ברשימה, המצביע ברשומה האחרונה מכיל
1גא.
הצבת 11א במצביע האחתרון מאפשרת לבדוק כל רשומה לפני העיבוד. לדוגמה,
ההגדרות:
6סצ
?+ = ס6מעי'נ6ע
סע = 6
16627 : +8%85605כ
?עס : %1ק+אסא
7
4 חלק א הכרת טורבו פסקל
מאפשרות כתיבת רשימה כאשר המצביע לרשומה הראשונה מועבר לפרוצדורה הבאה:
?( 26277706 : ע6ע8%ע1ע )21661156 6עגו0ססס:ס
עפש
?ץע : ע500066
תנצס
;ע6פ6טענע | > : 0
םנסססע 640 11א <> 50000567 16נתש
;( 28688005 50006627 )ת1661:ש
7א6א 80005627 =: 5000508
7
6
רשימה מקושרת מהווה למעשה טיפוס נתונים מתקדם, ולכן לא נשתמש בה בפרקים
הבאים שבספר, הנה דוגמה אופיינית לתוכנית הכוללת רשימה מקושרת פשוטה.
התוכנית 5 8ש'א01ע שבתדפיט 6.6 מוחקת את תוכן המסך ומציגה את רשימת הקבצים
הנמצאים בספריה התורנית, אשר ההרחבה שלהם הוא 5, הְרשימה המופקת היא
רשימה בלתי ממוינת, הדומה לפלט של פקודת זפ של פסכ,
תדפיט 6.6
; 5ינ%6ת01 הסינ
;02% ,208 058פט
ינפ
599000 : 0+ת1161ת
השס
ע0פינ01
; ( 40ת1161ע ,116תעת ,'48 *? )86תנת6תגק
0 ₪ = עסעמפסת ₪116
גפס
; ( סות8. 0+ת1161/ )ת1491יש
(( 1161040/ )0אסאפתגץע
; תס
9
א
הפרוצדורות 67118%ת1ץ ו-%א6א6ת1ע יתוארו בפירוט בפרק |14.
תוכנית 6פצע'אדסק שבתדפיס 6.7 פותתת באותו מנגנון של קרוּאת רשימת הקבצים,
אולם התוכנית מנהלת במקרה זה רשימה מקושרת, שבה כל רשומה חדשה תופסת את
המקוס המתאים (סדר 8506 של שמות הקבצים).
פרק 6: מבני נתונים דינמיים | 185
1
תדפיט 6.7
2012%60 ; תהיוססיוק
;02% ,208 05פגו
6+
1108020000 = 002 600 3סת
: 468 = 1080060000
2 1108600 :| 6ת60אסא
;568100060 : 6עסספתענע .
: ; תת
|
; 598100060 : 0+ת1161ק
, 18/06
18%
[פ6עץ
| 08600 1 עסגעת
הזנשסס
; ספ 01
(( 71161010 ,16נ"ְעֶת2 ,'פהק.*' )36ענתסתגת
] סע 188% 6ם% 020866 ] ; ( מפסעת )אסא
( 6תס 188% %26 81602 260096 סת פ'סעסגת' ] ;בגא =: 6ת00א6א. "מפסקע
[ כת1 260026 8%ע1+ 6גל %0 פסתנסק "%מעגת" | (מ08עת =: פפענק |
[ | 6עסססע 188% ₪6 , ץ1סתאת--115% סמל |
0 0 = עסעעתפסק 18גתש
תנשסס
[ | תבת0 ת1 6עסס6ע 55ע11 ת1 ם50820 59826 ]' ;228% =: 6סבע
] פ 6 ₪111 העסססע 6אסא ] 702806 =: עסנעק
] 6 תה עסג ת0פשל6ס ו
בת (11א <> 6ת60אסא. 8067י1) 116תש
0 (סתם8. 71161240 > סותגא. עססש6ת:נגכ. 6ספינ")
הפס
1 תס פטס עסגעק שטסא ] ;7806 =: עסנ1עק
( 6תס עסטס 12900 שטסות אסא + ; 66036 128067 =: 6סגעך
-
([ 260026 שסת 6 02 ענסותסות סטעספסת | ( 208 )אסא
] % תג 6ע600ע 6פעגק ]| תסמ 12806 = ספעגת 11
בת =: ספע1ת
] 6 תה עסגינת ת6090ס פעסבות ] : 6
;ת98ע1 =: 6ת%0א6א. "עס1עק
] 468 טססתגסק שפת 96% ] | - 129806 =: 6ת50א .)6 מפסיין
[ 4 030 שסת 565 ] ;,20ת1161/ =: 6עסססתקגת. ל [פסעת
( 20808 1%'8 85 2000206 080 2186 ] ; ( סו 20ת1161/ )ת1501יר
1 6ינסססי1 6אסת מל 1006ע6סת ]. ; ( 21161010 ) 6אסאסתגת
;8
2-7 חחהההה7ה-7-7-77-77-7----------' )ת1601י
1'128% =: 806עך
[ 118% 66ת131 16 סגוס 166 ) 0 11 <> 6ת60אסא. 18067 116ב
( ע66עס בהסגססמבמק81 תג ו הגפס
; ( 806 21000020 "806 )ת1601ינש
;12806 =: ספעגתע
; ת660. 7 12806 =: סי
; סתס
. תס
16 חלק א'י הכרת טורבו פסקל
תוכנית 2018886 מציגה את רשימת קבצי המקור של טורבו פסקל (שם הרחבה
8) השמות מוצגים פעמיים - פעם בסדר אקראי ופעם פשהם ממוינים.
הפונקציה :68 ופועל 6
הפונקציה 802 והפועל 86 מחזירים כתובת של גורם כלשהו: משתנה, פרוצדורה
ופונקציה, 2882 ו-8 מתאמים לכל משתני ההצבעה.
העדפת הפועל 686
הפועל 6 זהה למעשה לפונקציה שהְשַה, אולם רצוי להעדיף את השימוש ב-6 בגלל
יעילותו, היתרון היחיד שיש לפונקציה 200% הוא התאימות| למהדרים אתרים של
טורבו פסקל, כאשר מתכוונים להעביר את התוכניות למהדר | אחר, שאינו: מכיר את
הפועל 6, יש להשתמש ב-ש06ַ, בספר זה, רק נדגים את השימוש ב-86.
כאשר מפעילים את 6 על פרוצדורה, פונקציה או משתנה |כללי (או על משתנה
מקומי הנמצא בתוך פרוצדורה או פונקציה), הוא מתזיר מצביע לכתובת שבה נמצא
הגורם.
ניתן להפעיל את 8 גם על פרמטר המועבר לפרוצדורה או לפונקציה, שיטת ההפעלה
שונה כאשר הפרמטר מועבר כערך, כמו ב:
;( ט 6סְע6עתת : [תהעבקע )5800162001 6עגו0ס6סס:ס
או כמשתנה, כמו ב:
,( ס6מְעס6צת( : 282802 מעהט )58001622002 6עגו6סססמס
פרמטרים של ערך מועתקים למחסנית, ואילו בפרמטרים משתנים מועתקת למחסנית
הכתובת, הפועל 8 מתאים לכללים אלה, הפעלת 6 על פרמטר ערך יוצרת מצביע
למקום העותק שבמחסנית, הפעלת 8 על פרמטר משתנה יוצרת מצביע למשתנה עצמו,
תוכנית פ5פגעאתתע שבתדפיס 6.8 מדגימה את ההבדל בַּאמצעות הפרוצדורה
ספ רהס סְעע, לפרוצדורה סִסשִפְ1ַָהּס1כְעָע' שני פרמטרים - |פרמטר ערך ופרמטר
משתנה, הפרוצדורה מציגה את כתובות הפרמטים הללו,
פרק 6: מבני נתונים .דינמיים | 187
ו
תדפיסי 6.8
| ; 88הד 3 ותהיטסינסן
;02% 08פגו
ינפטי
, 7:1
;96ע :- ₪ע78
(( 66עם : <תהעפע ;6פָעס : 1ותהינפ עפט )סס1081כע1' 6ינגוססססנכן
| : תנשפסס
;( 8:( 1ת8ע8ק )018 ,8:( 1תהעאק )005 ,' % 15 1תפינהק' )ת1%61יש
;( 8:( שתהצגת )028 ,8:( קתהצהק )802 ,' % 18 שתהעפק' )ת1+01יט
ו | וש
ּ הנגפסס
0129802
,100 =: 1יה7
;0 =: 782
2 08 ,' 84 18 %ת6ש0ט 70066 )ת1%01י/.
;( 290₪:8 ,' 86 18 3000005 28%8' )ת1%501ע "
(( 8808:8 ,' 85 18 360065 5%80%" )ת1%01יט
: , 091 גיט
;(:8:( 0821 )028 ,8:( 7801 )902 ,' 3% 18 7781 )ת[%6גישט
;(.8:( 2שפט )028 ,8:( 7802 9866 ,7 7 6 18 קעם7 . )ת1%61יש
; ( 0802 ,0901 )10810000 |
ו ו . תס
הפלט של 55גפאתתע מוצג בתרשים 4 שני המשתנים הכלליים שוכנים בקטע
הנתונים,. כתובתו של הפרמטר המשתנה זהה לכתובתו של המשתנה המקורי. כתובתו
של משתנה הערך נמצאת אי שם בתוך קטע המחסנית.
תדפיט 4
הפלט של תוכנית 455קוא6ק
= 0068 5840006 15 % 208
2% 5090006 15 % 2007
56808 540006 15 %. 222000
0 7-7 -/ יי
1 28717 |: 8% 18 0892
68 20077 ו - 8% 15 1תהת3
76 0 00000 35 185 כתתץ
4
" |₪5 לההההה חק : 0 -
8 תל ק א" הכרת טורבו פסקל . ן | י
בחירת כתובות
כאשר למדת להשתמש במצביעים, ראית שאין צורך לדאוג |לשטח הממשי בזיכרון.
סמכת על המהדר של טורבו פסקל, והטלת עליו את משימת הבְּחירה של מקום המצביע
בערימה, כאשר ביקשת להקצות שטת חדש בזיכרון באמצעות שפא או ז665%6, ידעת
כי לא "תעלה" על שטח. שהוקצה כבר למטרה אחרת.
קיימים מצבים שבהם תרצה לקרוא כתובת מסוימת בזיכרון, או לכתוב בה. בחלק
זה של הפרק תלמד לבחור בשטתים מסוימים בזיכרון ולהשתמש בהם.
יצירת מצביעים מוחלטים
הפונקציה עסע יוצרת מצביע לכתובת הרצויה בזיכרון, הפונקציה קולטת שני
פרמטרים: הפרמטר הראשון מגדיר את הקטע והפרמטר השני מגדיר את ההיסט.
הפונקציה ע6ע לא קשורה בטיפוס נתונים, ולכן ניתן לשלבה עם כל משתני
ההצבעה. |
כל מחשב תואם 18% משתמש בשטתי זיכרון מסוימים לשם פיקותח על המערכת. לכן
יבולה מערכת 208 לפעול בהצלחה במחשבים מטוגים שונים. למשל: המלה המתחילה
ב-%80040:%0013 מכילה את גודל הזיכרון הפנימי של ה-6ת בגושים של א1, ערך
זה נקבע עם כל תיתול, והוא עומד לרשותן של כל התוכניות המבקשות לדעת כמה
זיכרון מותקן במתשב.
ניתן לקרוא את הערך שבבית זה באמצעות הפונקציה ש6פ, כפי שמדגימה התוכנית
0 שבתדפיס 6.9:
תדפיס 6.9
4080 תפששסי
;סא : 120פץ-זסותסון
ּ : תו 8 80040 )ע92ק =: 16
;( '.קתסחסת [התתספת1 01 908עם א' ,91207ע-000( ,' בת 0ק] פגגת' )ת1501י
1
,
פרק 6: מבני נתונים דינמיים 189.
| בתוכנית וו, המשתנה 5126עסוסא מוגדה .כמצביע למלה, מובן שבמקרה זה אין
- לשנות את הכתובת עצמה, שכן ו אמור לבדוק כתובת מסוימת,
חפיפה של משתנים מוחלטים >
ניתן. לכפות על משתנה כתובת מסוימת עם שימוש במלה השמורה 7 501058 בעת .
ההכרזה, התוכנית 581 שבתדפיס 10 .6 "קושרת" את > הבית הראשון | של .
5126ץ תסו לכתובת המוחלטת 3+ 2
| תדפיס 6.10 |
מ יקסי
| ;90040:90015 006ו801כ8 שנסש : 4
0-0 | 0/0 0/0 /-/-/ תנקסס '
8 ;( ".עעסמסת [התססת1 01 פספעם א' ,20נפקעסמסו) ,' בגת 20 118" )ת[1%6יו
י %%- %-- 0 .בת
81706 הס שבתוכנית לי אינו מצביע. זהו משתנה רגיל, הנמצא בכתובת
3 ולא במקום כלשהו בקטע: | הנתונים, לא חלות על המשתנה מגבלות
מיוחדות,: וניתן לשנות את תוכנו באמצעותּ משפט השמה רגיל,. כמו: | |
| | כ ₪ | ו
במקרה זה התוכנית הבאה שצריכה לדעת במה זיכרון. מותקן במחשב, תניח כי יש
בו 64%, גם אם :כמות הזיכרון המותקנת בו בפועל שונה, מובן: שיש להשתמש
בהוראת 6גו1ספסת ובפונקציה 26 בוהירות מרבית.
כאשר משתמשים ב-01066פכת וב -ע%פ, יש לדעת את הכתובת המדויקת (קטע והיסט).
שמבקשים לפנות אליה, הוראת 66גו501מ25: דורשת ממך לנקוב בכתובת המדויקת בעת |"
ביצוע ההידור, ואילו הפונקציה .עפ מאפשרת לך להעביר את פרטי הכתובת כאשר -.
התוכנית מתבצעת, בהוראת 66גו1ספכות משתמשים בדרך |כלל כדי לפנות לכתובת
מסוימת שבה משתמשים ה-6ע או מערכת ,5 (כמו בתוכנית 1 ב-שטק
משתמשים כאשך. רוצים לגרום למשתנה אד לפנות, הלד ו הביצוע, למספר כתובות.
ובמקרה שכית נוסף, מבקשים לפנות לנתון אחד הנושא שני שמות. הפתרון . הפשוט .
ביותר למצב מעין זה הוא שימוש ברשומה, הערת אורך משתנה,. בפי שנעשה: בתוכנית
1882 (תדפיס 6.11).
0 תלק א" הכרת טורבו פסקל |
תדפיס 6.11
; 10580 ותפיוטסינן
6
4 = 6פת1מתס0
2 מ6שספת1 0856
;( 66ע0 : מסתספעם ) : 1
( עהם0 : תתסתנבם0 ) : 2
; תס
נפט
תס : 30
תנקסס
,1 =: תדס"%0ע. 30
; ( 5:תתנס"הת 30.0 ,5:תנסת6>עת. 0 )ת101יט
. תס
התוכנית 28525 מגדירה משתנה אחד בשם 80, כרשומה בעלת אורך משתנה מטיפוס
נסתס6, ל-11606מ וס יש שני מרכיבים - ת2ע0ע66צ2 ו-ו1+סשהּתס, אורכו של כל
מרכיב בִית אחד, שני המרכיבים מתייחסים לאותה כתובת בז:כרון, כבאשר משתמשים
בשדה תעסעסםעם, מתייחסים אל הנתון כאל מספר פשוט שגודלו בין 0 ל-255.
כאשר משתמשים ב-השסעמהת6, מתייחסים אל הנתון כאל אחד מ-256 תווי דדס5ג.
2 מציבה את הערך 1 בשדה תעסש56עם0,2, כאשר מבצעים את הפרוצדורה
מ1661משט, היא מפרשת את %41 שב-תעסעססצֶ2 בערך עשרוני - 65, ואת %41 שב
תעסעתבהּת6 כאות ג.
בטורבו פסקל קיימת גם גרסה משופרת של הוראת 66ט1ספסת, שבה ניתן לציין
שם של משתנה שהוכרז קודם במקום כתובת מוגדרת, תוכנית 255828 שבתדפיס
2 מדגימה זאת. .
| | | פרק 6: מבני נתונים דינמיים 191
תדפיס; 6.12 >
ו 7-כ" ; 1080 ותפישסמס -
;6 : מדנסתס>עם.
ו 050166 רוס : ההנסי ימ
| תנשסס
0 77 50 65 =: מנסתס%עם עס+
ו .5 מ בי
;ת1%61ישט
0 77 0ף 65 =: מסעספעם עס+
; ( 5 :חס 0 )106יע
09% ; ת1%61יש
; ה1611ינאו
; ת[1%9יט
0 90 %0 78 =: מתסתסעם ע0+
( 3/%0707:5 )166 '
/ . / 0% 8 ;ת1%61שש.
" 0 90 90 78 =: מסתס%ע2 02+
; ( 5 :תוסנמ )156
; ת61 יח
/ ! 1
הע0ע82ת0 הוא 858010%6 של מש0ת66ע5, ולכן שני המשתנים שוכנים באותה
- כתובת, אך אל כל גורם מתייחסים כאל נתון מטיפוס שונה. הפלט של ב | הוא
. טבלת ערכי 28011 שבתרשים 6.5.
. תרשים 6.5
הפלט של תוכנית 48528
12 - חלק א': הכרת טורבו פסקל
שמות משתנים כהתייחסות לכתובות בזיכרון
זכור: עבור מהדר טורנבו פסקל, כל משתנה הוא התייחסות לכתובת בזיכרון.
למשל המשפט:
2 + 8 =: 2
גורם למהדר להוסיף את הערך הנמצא בכתובת 8 לערך הנמצא בכתובת 6, ולהעביר
את התוצאה לכתובת .
הזיכרון כמערך
כל טכניקות הגישה לזיכרון שהכרת עד כה מאפשרות פניה לכתובת אחת בלבד
(קטע מסוים והיסט מסוים), אך אינן פותרות את בעיית! הגישה לגושי זיכרון
גדולים.
בשפת טורבו פסקל קיים אמצעי ניהול זיכרון במערכים מוגדרים מראש: 6
א ו-2תסא, כל מערך כזה מטפל במגה-בית זיכרון, סא הוא מערך של בתים,
אמסא הוא מערך של מלים ו-2סא הוא מערך של %6מ1שמס.
כל מערך כזה הוא חד-ממדי, שהאינדקס שלו הוא בתצורה| 05586%:%ם8606 -
כלומר ערך באורך מלה המייצג קטע, נקודתיים וערך נוסף באורך מלה, המייצג
את ההיסט.
תוכנית 2853 שבתדפיס 6.13 משתמשת במערך תסא כדי לפנות לבית
שב-%0040:%0049. בית וה מכיל מידע אודות מתאם המסך המותקן ב-26, כאשר
מותקן מתאם מונוכרום, הבית מכיל את המספר 7, כל ערך אחר מייצג מתאם צבע.
פרק 6: מבני נתונים: דינמיים = 193
תדפיט 6.13
5 תוסינכ :
00108 1 1 ת0%10ר10
. > תנשסט
הסמז 7 = [ 0 < 90040 ]ו 14 >
6 = היווה
ו . 0186
; סגתנ =: 02006 802000181(001 >
- ;606 2
= ת1שסט .>
ו 0010006ת181ת9000 0856
; ( '%941100פת1 098206 ע4080%0 ע0010' )ת1501: : שגותך >
; ( :15581100 4090562 215018 סמסינססתסו' )ת1%61י : 156פק
| ן י %6( |
=
תוכנית 53 עלולה לגלות ' כרטיס צבע גם. במקרה שבו מותקן במתשב מסך
מונוכרום בלבד, לרוב המחשבים המיטלטלים של 0גפאסס, למשל, יש מסכים.
המציגים צבעים שונים על ידי גוונים שונים -של ירוק. בספר זה נשתמש במערך
₪6 לעיתים קרובות, כדי לפתח יישומים המבוטסים על שירותי המערכת. - תוכנית
4 ששבתדפיט 4 .6 מהווה דוגמה לכך.
תדפיס 6.14
1084 ותהיושסיזן
; ע60ת1ינ 65פג >
/ | נפט
, תו001 ,אס >
ו ; סש : עסכתגו+תסתטסס
סש 1 1 תס1ססתגת
.| תגשסס
- 7 = [ 90049 0040 ]ו 15
: 0 =: 0
6
;88800 =: 1660500006
0 ;תס
: 0% ב = ת1שסס
71000 = הק 50
תנפסס 60 5024 0 =: שסת עסצי
סט 79 60 ₪0 =: תתט001 :0+
;( ( [ אסת*160 + תתו2*001 : 0 ו וס 1% )156 |
0 ּ : - ד 1% ) ת1001י
=
;( 412 ,18% )166עש |
8 . .6
14 חלק א': הכרת טורבו פסקל | |
תוכנית 35584 מבצעת פעולה דומה להדפסת המסך באמצעות התומרה, לתיצה על
6+ע-1+6ת5 מדפיסה את תוכן המסך על גבי המדפסת, תוכנית 25854 בודקת את
הכתובת %0040:%0049 כדי לקבוע אם במתשב מותקן מתאם מונוכרום או מתאם
צבע/ גרפיקה, במתאמי מונוכרום נמצאים הנתונים בקטע 88000 ואילו במתאמי צבע
הם נמצאים בקטע %8800, לאחר שהתוכנית "יודעת" היכן נמצאים הנתונים, היא
מעבירה אותם למדפסת.
בפרק 10 נתאר בפירוט את הזיכרון, בינתיים נקבל חק מהפעולות המתבצעות
ב-54מת כמות שהן.
השימוש באזיכרון
מפת הזיכרון של תוכנית טורבו פסקל מתוארת בתרשים 6.6.
החלקים העיקריים של הזיכרון יתוארו מיד, שני הסעיפים האחרונים - "קביעת
גודל הערימה" ו"פונקציית שגיאה בערימה" - מתייחסים | לנושאים מתקדמים,
ואמורים להוות חומר רקע בלבד, אם תרצה, תוכל לדלג על סעיפים אלה.
קידומת קטע התוכנית
* קידומת קטע התוכנית (פ5ע) היא שטת בן 256 בתים שמגדיר |05פ-₪5 בעת טעינה
של קובץ פאם, השטח מכיל את המידע הנחוץ למערכת ההפעלה כדי להעביר את
הפיקות לתוכנית המופעלת ולהחזיר את הפיקוח למערכת ההפעלה כאשר התוכנית
מטתיימת, כתובת הקטע של ה-עפע נמצאת במלה 564א691עע, המוגדרת מראש.
קידומת קטע התוכנית מתוארת בהרתבה בפרק 12.
שטח הקוד
כל יחידה של טורבו פסקל נשמרת בקטע קוד נפרד, כלומר, אוגר 059 משתנה בהתאם
לקוד המתבצע באותו רגע (יחידות טורבו פסקל יתוארו בפירוט רב יותר בפרק 7).
קטעי הקוד השונים מסודרים לפי הסדר, זה אחר זה, התוכנית הראשית נמצאת
בקטע הראשון. קטעי הקוד של היתידות האחרות מאותחסנים [בסדר הפוך לסדר
= פרק 6: מבני נתונים דינמיים 195
ההגדרה במשפט 65פגו של התוכנית הראשית, קטע הקוד האחרון שמור לספריית
ההפעלה - כלומר ליחידת המערכת.
תרשים 6.6
מפת הציכרון של תוכנית טורבו פסקל
בידא 0-ה לקדה ההימ 5 ה
0 סו |
1 166 6ח+ עס ₪580 08ז
|
|
60000
0 0שט ץו1ח6זזט0)
| (680ח 01 חסווזסס |
- ו | =- 600
ץוז1ח8זזנוס 6|סהוזאצ סווההחץם |
| סח 8ח) חן 091/80 | |
| יוור 3 רר--..
|ההדדהה-הה-------] | >= 71080070
580% חס 818 0% |
9590:90- =>
אטאט ץוז1ח6זזט0) |
(5180% 01 חסוצזסק
- ו -ה-=-----| -- 5569:0000
| , 6 |088ו3) או
ו
ן לי שא[ נ-] | --- 560:0000
(הח516ש5) עץזהזס!! 6חוז-חטה
4 6!|טססו -6ז 000|68 ]|
- 777----] 0 ,18 8%ף1) 6560%ז₪
8 פוטססש₪ "0865" 6ח1 ]1
ההדלהדהדהה ה | ,(8200818 0181258
| 0 6וטס₪ 6) זס) 0006
| 2 -- ייוו
|| | פוטנסו 6 הו |
ךּ :יו
ן = 6!טסס₪ ו
| 6 חוהגזטסזק הובּוא | : |
0
ס
1-]
ב
- 00
(9₪ק) או791 1ה6ו 560 והגזססזק
0 5 ------1 = =-- 800:0000א2708ן
מספר קטעי הקוד אינו מוגבל (בגבולות הזיכרון של המערכת), אולם גודלו של
קטע אחד לא לעלה על א64%. גם כאשר אין בתוכנית יתידות נפרדות (כלומר %
בתוכנית משפטי 865ט), התוכנית תופסת לפחות שני קטעי קוד.
1906 חלק א' הכרת טורבו פסקל | = / :
שטח הנתונים
קוד התוכנית יכול להשתרע על פני כמה קטעים, אולם נתוני התוכנית (כולל כל
המשתנים עם הגדרת טיפוטי וכל המשתנים הכלליים) חייבים לשכון בקטע אחד.
אוגר 55 אינו משתנה תוך כדי ביצוע, לכן תייבות תוכניות שדרוש להן שטת
נתונים העולה על א64 להשתמש בהקצאה דינמית של זיכרון,
שטח המחסנית
גם קטע המחסנית אינו יכול לתרוג מ-א64, אוגר 585 א;נו משתנה תוך כדי
ביצוע, כאשר התוכנית מתחילה לפעול, מתבצעת טעינה של אוגר הקטע של המחסנית
(58) ושל מצביע המחסנית (82), כך ש-5פ5י559 מצביע על הבית הראשון שאחרי קטע
המחסנית, המחסנית גדלה כלפי מטה, כלומר בכל פעם שמתוןוסף למתחסנית משתנה
חדש - מצביע אוגר 52 על כתובת נמוכה יותר בזיכרון, בהתאם לגודל המשתנה.
שטח הערימה
-שטת הערימה הוא השטת השמור להקצאה דינמית של משתנים והוא מכיל את כל שטת
| הזיכרון הנותר לאחר טעינת התוכנית.
בערימה נמצאים גם שטתי הריבוד (ראה פרק 15) ואזורי האתסון הגרפי (ראה
פרק 11).
| כמות הזיכרון הדרושה לקטעי הקוד והנתונים ידועה בעת| ביצוע ההידור. אי
אפשר לקבוע בדיוק את תצרוכת הזיכרון של המחסנית והעוימה, כיוון שהניצול
המדויק תלוי בתוכנית המתבצעת, ניתן לקבוע תחומים של זוכרון בעזרת פקודת
המהדר [88), ברירת המחדל היא מחסנית בגודל 16% וערימה התופסת את כל יתרת
הזיכרון הפנוי.
המצביע לתחתית הערימה נשמר במשתנה ַעְסַסְבּסצ, שאינו משתנה תוך כדי ביצוע.
המצביע לראש הערימה נשמר במשתנה מ68026א, הנע כלפי מעלה בכל פעם
שפרוצדורת תסא או ת66%6%6 מקצה משתנה דינמי חדש.
1 ,5 | פרק 6: מבני .נתונים דינמיים = 197.
רשימת השטחים הפנויים
כאשר משתמשים ב- -0088ט1ם אוב - 601108ע בדי לשחרר שטח שהוקצה למשתנה דינמי,
שאינו המשתנה האתרון שהוגדר, נוצרים בערימה "חורים" של. שטתי. זיכרון
פנויים, תופעה זו נקראת ביקוע. (מ58)10מ118909), פרטי השטתים חפנויים
(כתובתם וגודלם) נשמרים ברשימת השטתים הפנויים (+115 0:66), הנמצאת בשטתי
הזיכרון הגבוהים של הערימה, והיא גדלה כלפי מטה. על נקודת ההתחלה של
רשימת -השטחים הפנויים מצביע 6652%ע, המשתנה סע קובע את המרחקי
המינימלי שבין 3080 (-66062עע, |
כאשר משחררים שטת הגובל בשטח פנוי: אחר, משתנים פרְטי השטת הפנוי הקיים,
וכוללים גם' את האזור החדש. כל גוש פנוי בי מוגדר על 2 רשומה אחת
ברשימת השטחים הפנויים.. . :
כאשר מקצים משתנה דינמי, נבדקת רשימת השטחים הפנויים, אם קיים ברשימה שטח
פנוי בגודל מתאים, המערכת מקצה אותו למשתנה החדש, הערימה גדלה רק באשר
אין ברשימה שטח מתאים,
הפרוצדורה 6 מנקה את שטתי הזיכרון שבין ארגומנט ההצבעה שלה ובין
הכתובת שעליה מצביע ב תהליך זה הורס את רשימת השטתים הפנויים, לבן
לא רצוי לשלב פניות ל-882% ו-616856 עם פניות ל- -180086ס (- ת6010,
קביעת גודל הערימה
כדי לברר מהו השטת הפנוי האמיתי בערימה, יש להשתמש בפונקציות 187811
ו-07811ג16₪, הפונקציה 11הטתא8א מחזירה את גודלו של הגוש הפנוי הגדול
ביותר בערימה, הפונקציה 1נַהט60א מחזירה את סכום כל השטתים הפנויים
שבערימה. 0/9 | | . 0
אם לא התבצעה פעולה של שחרור שטתים, או אם השטתים המשוחררים היו בראש
הערימה, יחזירו שתי הפונקציות ערך זהה, אם שוחררו שטחים בתוך הערימה,
עלולים הערכים המוחזרים על ידי סו להיות חסרי משמעות, כיוון שאינם -
מבטאים גודל של שטת רציף.
הדבר מודגם בתוכנית 7 יאסק (תדפיט. 5))
8 חתלק א" הכרת טורבו פסקל
תדפיט 6.15
; 0160177 תפיושסינכן
6+
;1 + [ 1..100 ]עפעה = עג108%6602
צפט
(%6עס : א66%ת1
; 055009" 0% [ 1..100 ]ע8עע8 : 1,156ססמון
; 101% : (18116040817 יס
; 6ו1נשתס1 : 114007811 יס
תנשסטו
:= 10008411 | 1311/00/7811 נינס
ו =: 181100811 יס
;( '...שת411009%1' )ת[1%6יש
ל ₪0 0 סף 1 =: אס6ת1 ע0ס+
; ( [ א6סת1 ]180 ]עסמתטא )אסא
,105 )ת1%01יש
(10: 37811 , 10 : 11 הטסו
,10 : ( 1100841 - 1811007811 ינ )
; ( 10: (27811[ - 108/07811הת1ש1נס)
] -
;( '...שת0681100801' )ת[166יעש
תנפסם 60 9 00 2 =: אססת3 שס+
תסמל ₪ = 5 |₪08 א6ת1 14
;( [ א6שת1 ]1,155סמח סמו )יע
,5 :אסשת )ת1%91יט
,811:10ט/<ם , 10 : ך ב8ץ/תסון
10: ( 60841 - 111047911מת11ש גי )
- 122/0811( :10 ( ; : 811טםרהת1ם גי 0)
תס
;( ':1%5גופסץ |1הת1"' )ת1501יש
;( 040811( ,' 15 640811 | ' )ת1%61עש
;( 11הטתמ/ ,' 15 [1הט1א1 - ' )ת1%0[1שט
-
הפלט של 2887א01ע מתואר בתרשים 6.7
פרק 6: מבני נתונים דינמיים 199
| תרשים 6.7
הפלט של תוכנית ₪7]זא01ק מצביע על "חור" אחד ברצף הזיכרון.
,.. . 8ה811003+1
20 ו 14 14 1
1008 10 14 14 2
100 100 1034 124 ב
220 22008 14 14 4
00 20008 14 14 5
2.100 2000 14 1114 6
2200 0 1,094 1204 7
ו 100 1034 124 8
100 5-00 12234 1204 9
008 00 1124 114 18
.+ :1105318
8 88 16 126 2
08 108 126 16 3
08 100 126 6 | 4
ו 20060 126 16 5
08 2008 126 106 6
108 2208 1226 16 7
08 108 26 106 8
08 1208 11226 1006 9
.6501%5ת [גחוץ
6 15 000311
06 158 300311
שטח הערימה קטן עם הקצאת 10 מערכים חדשים, אתר כך, מותזרים לערימה שמונה
מערכים, פעולה זו מותירה בזיכרון "תור", ה"תור" גדל כאשר משתחררים שטחים
נוספים, בסוף התהליך קיימים שני גושי זיכרון פנוי, שביניהם מפריד מערך
אחד. |
ההפרש של 8 בתים בין שתי מערכות המספרים נובע מרשומת השטתים הפנויים
המגדירה את גבולות השטת הפנוי. שמונת הבתים מורכבים משני מצביעים בגודל 4
בתים: האחד מצביע על ראש הגוש והשני על תחתיתו. אם נסיר את הסוגריים
המסולסלים, המציינים הערה, שמסביב למשפט:
תסםף 0 = 3 6סת א66ת1 1%
תיצור התוכנית את הפלט המתואר בתרשים 6.8:
200
חלק אי:
הכרת טורבו פסקל
תרשים 8
הפלט של תוכנית 7=זא01ס מצביע על שלושה "תורים" ברצף הזיכרון
+ + י 08ה0861ם11.
ו 08| 108 00 1
100 10 | 176928 10020 2
100 100 1020 120 ב
220 220 120 1 4
200 2008 11220 1128 5
0 200 8 174528 6
- 4200 10 10 18 7
1120 ו 128 18 8
1008 5 208 1028 9
0 08 8 17212 ( ו
ן ן ...310315
68 -- 6000 - 172128 172128 2
0:08 5408 122 1200 ב3
060 108 120 ו 4
060 108 20 1228 5
6 6 2 172222 6
6 116 1212 12 7
6 16 1212 122 8
4 14 4 173994 9
/ '0501%5 |[אחוץ
4 18 11בטחם!
4 15 11ַבע0א3ו]
למחסנית.
שים לבי בכל פעם שנוצר גוש פנוי חדש, מתווספים 8 בתים
פונקציית השגיאה בערימה
עדיף לפקת על הנעשה באמצעות התוכנית ולא ל"עוף" בגלל חריגה ממגבלות
המערכת, בתוכניות של גליונות אלקטרוניים, למשל, מתבצעף בדרך כלל הקצאה
דינמית של התאים, יש להניח שהמשתמש היה מעדיף לקבל הודעה המתריעה על כמות
בלתי מספקת של זיכרון פנוי, המאפשרת לו לשמור בקובץ את. העבודה שביצע עד
כה, ולא לסיים את התוכנית באופן בלתי מבוקר, ולאבד שעות עבודה רבות.
ו 0 | פרק 6: מבני נתונים דינמיים 201
כאשר הפרוצדורות אשא ו-ת6066%06 נתקלות בבעיית הקצאה של שטתים, הן מפעילות.
את פונקציית השגיאה בערימה של טורבו פסקל. אם פונקציה זו אינה מסוגלת
לפתור את הבעיה, הפונקציה. הקוראֶת (שסא או וז66%%6) מסיימת: את התוכנית עם |
הודעת שגיאה.
אם תרצה, תוכל לבנות פונקציה -- לטיפול בשגיאות ערימה, . לשם כך עליך
להקצות לפונקציה את כתובתו של המשתנה. המוגדר. מראש ששמו צסת:מקְבּסז,
ג 6103 =: 1680
התחביר של הפונקציה המקורית לטיפול בשגיאות ערימה הוא:
, -5%) 7ע6600ת1 +( 8 : 5126 ו מס661תגו] [+99)
הפונקציה החדשה שלך חייבת להתאים למבנה זה. זכור: פונקציית שגיאת הערימה
המקורית שוכנת בתוך מערכת טורבו פסקל - כלומר בקטע קוד שאינו הקטע שבו
נמצאת התוכנית, הוראת המהדר (+82) כופה על עסעעמס₪08 לבצע קריאה רתוקה =
היוצרת את המבנה המצביע המתאים..
הפרמטר 8126 מכיל את גודל השטח שיצר את השגיאה. פונקציית השגיאה המקורית
של טורבו פסקל מנסה לאתר את השטת הפנוי המבוקש בערימה, הפונקציה שלך תנסה
גם לספק אמצעים ליציאה מטודרת מהתובנית,:
הפרוצדורות אסא ו - 0606 מצפות שפונקציית השגיאה תתזיר אחד מהערכים
הבאים: |
0" .0 : 0% התוכנית. מפסיקה לפעול.
1 % ".+ בישלון. התוכנית אינה מפסיקה לפעול, על הפרוצדורות
- נכפה התזר של. מצביע 1בא.
2 / | הצלחה. הפרוצדורה הקוראת. מופעלת פעם נוספת. בדי
למנוע פניה נוספת לפונקציית השגיאה, יש לדאוג
להוראות מתאימות. ,
2 חלק א" הכרת טורבו פסקל |
פונקציית שגיאת הערימה מחזירה תמיד 0, מה שגורם לעצירה מיידית של
התוכנית, אילו הוחזר תמיד הערך 1, היתה הפרוצדורה יבולה לבדוק את התוצאה
ולאפשר יציאה מסודרת מהתוכנית במקרה של מתסור בשטחים.
דוגמה לכך נמצאת בתוכנית 2צתסאמא שבתדפיס 6.16:
תדפיס 6.16
; שע-נסותס1 ותפידטסיזן
;02% 68פגו
6סץ+
עסשספתג +04 [ 1..10000 |קהעעה = עהע+צשום
ופט
(שהעתשותי : קפתת
;סש : ש6לתטס0
[+ ₪
ע0שספת1 : ( בעסא : 8126 )סתע198070 תס61סתגת
תנפסס
;( '680ם %26 תס 06058 ' ,5126 ,' 81100866 60 8550805 ת1 עסעינת' )ת[1%0י
=: סתזספס
7 -
[ -99)
תנפפסס
; עספינ01
; סתג670809 =: עסינ 11080
;0 =: עססת:ו00
1%
; ( עצתם )שסאן
+ ע66ת000 =: שספתטס0
; ( ע%6תט00 ,' עסמתות ת211008%10' )ת1%01יש
;[נא = עפתם 11פתט
; ( | תפעפסינק קַת1נ0ו" )ת1%01ינט
-
הפלט של תוכנית 2צתסאפא מתואר בתדפיס 6.9:
פרק 6: מבני נתונים דינמיים 203
תדפיס 6.9 הפלט של תוכנית 2צפסוישו
1 עסכתטה ה03%10םס811
2 תסווה ה0ג1+ב3סם[811
3 עספהטה הם3+1סם[₪81
4 ספוטה ה03%10ס[81
5 יספחהטה הס1+בּסםן[81
6 תספוטה ה03%10ם₪11
7 טסוה הס08+1ם811
8 ספוטה חס03%1ם811
עהפן 6+ הס 20%65 20008 3110₪8%6 650 %קתם55ה ה1 תסעעת
9 תספטה ה0ס1+811068%
ההצפסנק צה1נחת
כשלון הפרוצדורה שפא הפעיל את הפונקציה שסמנמסְבּסצ, שהתזירה אחרי הביצוע
את הפיקוח ל-אסא.
סיכום
בפרק זה הכרת את המבנה הכללי של זכרון ה-26 ואת אופן פעולתו. ראית כי שפת
טורבו פסקל מספקת לך כלים מספר לניהול הזיכרון.
ראית שאוגרי הקטע מאפשרים ל-0עס לפנות לכמה אזורים בזיכרון בעת ובעונה.
אחת, ולמדת לזהות את הקטע וההיסט של גורם טורבו פסקל ולהציב משתנים
בכתובת הרצויה.
הפרק תיאר את החלק הפנוי של זכרון ה-6ע, המכונה ערימה, והסביר את אופן
השימוש בשטת זה לשם אחסון נתונים. למדת להקצות ולשחרר שטחים בערימה,
לפנות לערימה באמצעות מצביעים ולהיחלץ משגיאות ערימה.,
פרק 7 יתידות .5 .
פרק
יחידות
התוכנית היא הגורם העיקרי בקוד המקור של טורבו פסקל, יחידה (16מט) היא
אוסף של שגרות שהתוכנית מפעילה, כל יחידה ניתן להדר, לאחסן, ו
ולהפעיל באופן עצמאי, ללא תלות בתוכנית: המרכזית, |
עד למהדורה 4.0 חייב היה קוד התוכנית לחימצא בקטע אחד, שגודלו אינו עולה
על 64%, בתוכניות המורכבות. מקטעים קצרים, עצמאיים יחסית, ניתן היה לעקוף
מגבלה זו על ידי פיתוחן כשרשרת של קבצים, או כתלקים חופפים, אולם היו גם
תוכניות רבות, בעיקר אלה העוסקות ביישומים מתותכמים, שאי אפשר. היה לעצב
אותן באופן שיתאים ו התצורה. 5
השימוש ביחידות פתר את הבעיה, מספר היתידות שהתוכנית משתמשת בהן אינו .
מוגבל, וכל. יחידה נטענת לקטע נפרד בזיכרוף. כך שהמגבלה היחידה. > היא גודל
הזיכרון. של. המחשב שבו מופעלת. התוכנית. .
לשימוש היחידות יש יתרונות נוספים:
-. היתידות מאפשרות לפתח, לנסות. ולנפות כל מרכיב בנפרד, .
א אין צורך לבצע , הידור של כל התוכניות באשר. משנים יתידה אחת.
א היתידות יכולות. לחוות = חלק מספריית תוכניות שירות, שניתן לשלב גם
= בתוכניות אחרות. |
פרק זה מתאר את.: היחידות ומסביר כיצד משתמשים בהן. בסוף הפרק, - לפתת
< יחידות משלך. .
6 תלק א': הכרת טורבו פסקל
יחידות סטנדרטיות
שפת טורבו פסקל תומכת בכ-200 פרוצדורות ופונקציות, ובעשרות הוראות מרמה
נמוכה, כמו חיבור ושייכות לקבוצה. כדי להימנע מהכללת| קוד המכונה של כל
פעולה כזו בכל תוכנית, מאחסנת שפת טורבו פסקל את השגרות הללו בשמונה
יחידות סטנדרטיות.
שמונה היתידות הסטנדרטיות הן:
6% תמיכה בתצוגה ובמקלדת
5 שימוש בפונקציות 08 כלליות
הרצ תמיכה בגרפיקה
3 יישומים גרפיים של טורבו פסקל 3.0
ץ0[3 ניהול שטתים חופפים
ע66תנצע גישה למדפסת
ת51566 שימוש בספריית טורבו פסקל
3 גוד שמירת התאימות עם טורבו פסקל, 3.0
היחידה 6287 נמצאת בקובץ טפץ מעתת6. 3סס;גוע' ו-628013 נמצאות בקבצים
שטפץ,03סמתטי ו-טספץ,3אפתתס, שאר היתידות נמצאות בקובץצ|הספריה ,זפ ספתטע.
המהדר יכול לשלוף מהספריה כל יתידה בנפרד ולשלבה בתוכנית, בהתאם לצורץ.
פעולה זו נקראת חיבור (28868מ11),. כאשר מבצעים הידוך של תוכנית טורבו
פסקל, מתבצעת שליפה אוטומטית של השגרות המבוקשות, מתוך הקובצ ,זפץ,ספתטצ.
והי הסיבה לכך שנתבקשת בפרק 1 להתקין את פצל,ספתטל בספריה שבה נמצא
המהדר.
+ |-058 לעומת 087 ו-05ם
המונחים 6% ו-05סם (רק האות הראשונה גדולה)
מתייחסים ליתידות הסטנדרטיות של טורבו פסקל.
לחש ו-058 (אותיות גדולות) מתייתסים לצג
ולמעוכת ההפעלה.
פרק 7: יחידות 207
שימוש ביחידה סטנדרטית
למרות שחמש יתידות סטנדרטיות (צ6218ט0 ,עססתנעע ,5סכ2 ,02% ,ת556צ5)
שוכנות באותו קוב (.1עע,ס0פתטע), קיימת בטורבו פסקל התייחסות נפרדת לכל
יחידה, חוץ מאשר ליחידת המערכת (ת57556), פונים לכל יחידה רק כאשר מתקבלת
הוראה מפורשת מהתוכנית, אם, למשל, התוכנית משתמשת ביחידה 6ע6, עליך לכלול
אותה בהוראת 865 שאחרי כותרת התוכנית, ולרשום:
7 68פגו
כדי לפנות לכמה יחידות, צריך לרשום את כולן בהוראת 865ט, יש להשתמש בפסיק
כדי להפריד בין שמות היתידות, רשימת היחידות מסתיימת בנקודה- ב
לדוגמה, כדי לפנות ליחידות 02% ו-05ס יש לרשום:
865 00 7
רק את יחידת המערכת - ת5606צ5 - אין צורך להזכיר, המהדר פונה ליחידה זו
תמיד, כיוון שהיא מכילה את גורמי הנתונים השכיתים ביותר, המופיעים כמעט
בכל תוכנית.
היחידות הסטנדרטיות מהוות, אם כן, אמצעי יעיל לאתסון הוראות ונתונים של
טורבו פסקל, עליך לזכור כי הגישה ליחידות אינה אוטומטית, והכוונת המהדר
ליתחידות אלה נמצאת באחריותך. המהדר מניח שכל גורם שבו משתמשת התוכנית
מוגדר ב-566₪צ5 או בתוכנית עצמה, אם לא תכלול בתוכנית משפט 68פגו מתאים,
תתקבל הודעת השגיאה - ת61%16ת166 תשסתאמטש.
כדי לעזור לך להימנע משגיאות כאלה, מכילים תקליטוני טורבו פסקל קנצי
תיעוד (00,) לכל היתידות הסטנדרטיות, קבצי התיעוד כוללים את כותרות כל
הפונקציות והפרוצדורות, את כל הטיפוסים הכלליים, הקבועים והמשתנים,. אם
תרצה, תוכל להדפיס את תוכן הקבצים הללו כדי לעיין בתוכנם בעת הצורךץ.
היחידה שכל פרוצדורה ופונקציה שייכת אליה רשומה גם בספרות העזר של טורבו
פסקל.
8 תלק א" הכרת טורבו פסקל - > |
יחידת 55660
יחידת 515668 מכילה את ספריית טורבו פסקל, שבה נמצאות כל הפרוצדורות
והפונקציות הסטנדרטיות המובנות בטורבו פסקל, יחידה זו ולת למעשה את כל
אמצעי התמיכה לפעולות הסטנדרטיות.
יחידת ת566צ5 תיונית לכל תוכנית, ולכן אין צורך להמריו עליה בתוכניות; .
היא משולבת אוטומטית בקוד בעת ההידור. |
יחידת 5ספ
יחידת 08פ תומכת ברוב הפונקציות השימושיות של פספ. פונקציות אלה כוללות
את שגרות הזמן והתאריך, התיפוש בספריה וניהול הקבצים. יחידת 5ספ כוללת את
רוב ההרחבות של טורבו פסקל, והפרוצדורות והפונקציות שבה נחשבות למעשה
לחלק משפת קל התקנית.
התוכנית אס1זפתתט (תדפיס 7.1) מתארת את אופן השימוש ביתידת פספ.
0576510 היא פונקציה הנמצאת ביתידת פסת, פונקציה זו מתזירה מלה המכילה
את מספרה של מהדורת 505 המותקנת במחשב, מספר המהדורה ההאשית מופיע בבית
בעל הערך הנמוך, ומספר הגרסה - בבית בעל הערך הגבוה,| כלומר, אם במתשב
מותקנת מהדורה 2.10, יופיע הערך 2 בבית הנמוך והערך 10 בבית הגבוה.
1
תדפיט 7.1
ת810עסקי תפיהססינכן
( %נוגו 208 506 20008808 ) ;208 65פט
ינפי
[ 09118216 אנסט 6-51200נסש 8 פסת621כ ] ;עס : 18001
| תנשס
[ עסמותות תסנפעפט פתסעתטס 66 6068 ] ;מ208/02810 =: 10661 *
, ' תס1פעס/ 205 קת1תתגרת: ע51תסינגוס 15 6תנמסו ינוס )ת1591יש
[ עסמותתות תס[גת 516 פת81+תסס 66ע0 שס1 ] . , ( 6061/| )10
[ עסמחנות עסתגת 6 פת1ה%תסס 6>עם בגנ ] ( ( 10061|)גע
, . תס
פלט אופייני של תוכנית א10פתמט הוא:
0 מס1פע6ץ 205 שתנ1תתטתע צץ%1ת6תתטס 9 6ת1תסהת מגוסצ
ו - 2/2030 פרק 7: יתידות: 209
יחידת ₪16
יחידת 026 כוללת פונקציות מתותכמות לניהול המסך והמקלדת, תוכניות טורבו
פסקל משתמשות בדרך כלל בשגרות הסטנדרטיות של 05כ לביצוע פעולות קלט ופלט,
יתרון השיטה. הוא תאימות מלאה כמעט של התוכניות למתשבים של יצרנים שונים.
אולם, להישענות על 05 יש גם מחיר - ניצול משאבים ניכר, יחידת 02% מאפשרת
לתוכניות לעקוף את 205 ולפנות ישירות .לשגרות ה-2105 ולזיכרון: הווידאו.
השימוש ביתחידת 6 מוגבל לתוכניות ל על 0 אמד, דת, 8 ותואמים.
מלאים.
התוכנית 'ש0י'תס (תדפיס 7,2) מציגה את אופן השימוש ביחידת. %ס, היא מוחקת =
את תוכן המטך, מציבה את הסמן במרכו המסך, ורושמת 0 ,10
תדפיט 12
: | ה ב
[ %גתט 026 %6 10008808 ] -- 0060 68פט
3 00 סט :
[ ת80000 6+ 010828 ] "₪ 01802 5
| ( עספעגוס %06 8ת81%10סק | ; ( 12 ,54 )000
-[ ₪09888₪6 10110 סמס בַקֶ8018גת ]| ( '!16עסא ,710110 )1%6עא
7 : -
יחידת עס6ת1עק
ליחידת תצע תפקיד אחד בלבד: הגדרת הקוב 1.5% והקצאתו למדפסת של מערכת
המחשב, למעשה, מתבצעת הקצאה להתקן 11, שהוא בדרך כלל המדפסת של המערכת.
תוכנית המגדירה *חידה זו בהוראת 568 מאפשרת להוראות 166עש ו- - ת1561, :
המתייחסות לקובץ %, להעביר את הפלט ישירות למדפסת.
תוכנית 1ט00עאזתע (תדפיס -) מתארת את אופן השימוש ביתידת עס%מ1צת,
התוכנית מדפיסה את ההודעה המוכרת, !16:סש ,110 ומבצעת פעולה של הזנת
דף.
0 חלק א הכרת טורבו פסקל |
תדפיט 7.3
:ונת ותהיוססין
[ %נתעו עססתניל] 56 10008808 ) נעסשפתנעת 808ט
| התנקסט
( 6ת8 088006 6מף סוס פ6ת1-ת )| ( 18!'412עס; ,(10110, ,185 )6ס1עש
[ (712) 10006 ם1ו:0ס+ 8 פעסשם1ע> )
.ו
יחידת עְב13:נסטס
יחידת 06218 מכילה את תוכניות התמיכה במערכת התפיפה של טורבו פסקל.
המונתח חפיפה מתייחס לקטעי תוכנית אחת, המתבצעים |במועדים שונים, אשר
יכולים לתפוס שטח אחד, חופף, בזיכרון,. בעזרת השטתים| התופפים ניתן לצמצם
את שטתי הזיכרון שתופסות תוכניות גדולות. ,
התוכניות 2עטססת ו-2ססגמפט (תדפיס 7.4 ו-7.5) מתארות את אופן השימוש
ביחידת ע18עסטס. תוכנית 2פטספת מאוחסנת כקובץ נפרד| ועוברת הידור עצמאי. =
התוכנית הקוראת היא 2פסתתפפט. |
תדפיט 7.4
400002 15תט
[+ ע,+ 90
16
(סט : ( 6עסא : 2עה7 ,1ה7 )200 95501001 תס1ססתנת -י
8510 סוס בכצת 3
;06 [ג695%62 תס61סרנ)1
| תנשס
שצפל + 7851 =:| 400 3611
; תס
-
. | פרק 7: יתידות 211
תדפיט 7.5
| ; 113600 ותהידטסיזנכן
₪08
0002 , 000118 805גו
(06005ה 90)
תננקסס
70864002.003' ( ; )1%תזי0
( ( 6 ,5 )3662001006 )ת1061יש
- . 63
נושא התפיפה יתואר בפירוט רב יותר בפרק 15.
יחידת קנ
יחידת 6287 היא ספריה מתוחכמת הכוללת למעלה מ-50 שגרות גרפיות המתאימות
למחשבים שונים, בשל מורכבות הפונקציות והפרוצדורות, אוחסנה היתידה בקובצ
נפרד - טסקץ,אעגת6, בעת ביצוע הידור של תוכנית גרפית, פונה טורבו פסקל
| ל-,פקץ',0מתטע' ול-טפץ,אעגת6, בנוסף לקובץ מנהל ההתקנים הגרפיים (קובץ בעל
שם הרחבה 561.) אם נדרשים גופנים (15א0ע2) מיוחדים, יש לפנות גם לאחד
מקבצי תאס..
תוכנית אסס;::זתפ (תדפיס 7.6) מתארת את אופן השימוש ביחידת 6:8, התוכנית
משרטטת עיגולים, שקוטרם גדל בהדרגה, כמו בלון מתנפת, אם תפעיל את התוכנית
בסביבה מוכללת, תתוש אפילו ב"התפוצצות" הבלון, כאשר התוכנית מסתיימת.
(שים לב: הפרוצדורה 80%6ע166ת1 מניחה שהקבצים הגרפיים נמצאים בספריה
פע':ס, ייתכן שיהיה עליןך לשנות פרמטר זה, בהתאם לתצורת הקבצים במחשב
שלך.)
תדפיט 6
; 381100 ותפידססינן
[ %ג1תגו 090 56 40008808 ] = ,0980 08פט
: ינפי
[ 06ע% עסט1ע0 02802108 | , צסטגצם
( 06ע5 ₪066 090108 ] עסשספת1 : | 066
: סעסש 1 -3
תנשס
[( 071002 ₪802108 66 100511 ] (26%00% =: עסטנעם
| פסנתתהעם 1%18%6ת1 ] | (( 'ק0:1' ,0060 (עסטגעע )תק8ע1%0מ1
0 100 60 1 =: 1 עס+
[ מ081100 66 קט אס1ם ] 770 > ;( 1 ,100 ,250 )012016 >
; 0108001801
. בת
2 תלק א" הכרת טורבו פסקל |
השגרות הגרפיות מתוארות בפירוט רב יותר בפרק 11.
תאימות למהדורות קודמות של טורבו פסקל
מאז מהדורה 3.0 חלו בטורבו פסקל שינויים מרחיקי לכת,| ומהדורת טורבו פסקל
0 שונה במידה רבה מהמוצר המקורי, כתוצאה משינויים| אלה, ייתכן שתוכניות
שנכתבו במהדורה ישנה של המהדר לא יפעלו כראוי במהדורות החדשות.
יחידות 3ססעגו ו-ם6280 אמורות לשפר את התאימות למהדורות הקודמות. אם
תיתקל בבעיות הידור של תוכניות שנכתבו במהדורות ישנות| של טורבו פסקל, נסה
להשתמש ביחידות אלה, ייתכן שכך תוכל להימנע משכתוב התוכניות הבעייתיות.
יחידת 3סמ:טיד
יחידת 3סממטע כוללת משתנים ופרוצדורות שאינם נתמכים יותר, או שעברו
שינויים מהותיים מאז מהדורה 3.0, הפרוצדורות שביתיחה זו עוסקות בעיקר
בפעילויות מקלדת ומסך, כמו כן, כוללת היתידה שגרות קלט/ פלט בעלות חשיבות
משנית. י
אם אתה נתקל בבעיות הידור של תוכנית טורבו פסקל ממהדורה ישנה, עליך
להוסיף את השורה: | -
;סטג 866גו
אחרי כותרת התוכנית. שים לב: ייתבן ששילוב היחידה לא יפתור את כל הבעיות,
ולא תוכל להימנע מתיקון התוכנית. הנתיות מפורטות נמצאות בספרות העזר של
טורבו פסקל. |
יחידת 3תסהּע
יחידת 028013 מיישמת את כל הכלים הגרפיים של מהדורה 3,0.
בצע את הפעולות הבאות, אם אינך מצליח להדר תוכנית גרפית ממהדורה ישנה:
| הו - רוק .פר ק 7: יחידות 213
1 הסר את הוראת המהדר (פ 085 1 ו הישנה.
2. אם הבעיות בהידור נובעות . מהשגרות הגרפיות בלבד,. ו את השורה. הבאה
אחרי כותרת התוכנית .
: ל כ
= 3, אם חל שינוי גם בפרוצדורות אחרות, השתמש בהוראה: |
| רכ סגו -
במקום בהוראה שבסעיף 2.
זכור: בתוכניות חדשות יש להשתמש ה ורק ביחידת הכר אין להשתמש
ב- ה
מבנה היחידה "
יחידה מורכבת מארבעה חלקים - כותרת (צ6866ם), ממשק ו יישום
(מ68%10מ166ק1) וערכים התתלתיים. (ת1%181128%10ת1). לדוגמה:
: 160012108 ניבי
16
([ [8ת00%10 ] | ;158ותש-1185-01 ₪868.
ין ל 8 3 , 05 ת8לפתסס .02 5ת3601310010 110מטק ] *
[ מגונס. וט 6 0 שספגו 526 +60 8000881016 06 60 606ת6סת1 ] .
+ . 68ת61גוסינסגום 110מגוכ 811 +0 15 סז ]
ה10זזה6ות16קחו ,>
[ 81ת00%10 ) | (1%8תט-1ס-118% 868 "
[( 68[מ18יפט 6ת8 ,8סקע0 , 5לת08פתס0 01 5ת0601914010 6סהטבפת )+
(- | ,%גתט סב% +0 עספט 526 %0 8000881016ת1 06 60 6006ת6סת1 ] |
[ ענסם% ת1 5מ610סת0? התה פסעגו0סססנק 8%66ט1עק 811 שתנסגונסת: ]
[ ת1 60018200 0 1 01 008165 6ם% שת8 ,ע05ע1פתס ]
* 1:0 2 .ת360%10 1906ס6ת1 פמט +
/ חנפסס
1 7 ל ₪ 858405 1101811200 1תס61סס ]
0 , /- 6
נתאר כל חלק בנפרד,
4 חלק א" הכרת טורבו פסקל ו |
הכותרת -
בתתילת כל יחידה נמצאת כותרת היחידה 68062 15מט), |שתצורתה זהה לתצורת
כותרת התוכנית, לדוגמא: השורה הראשונה של היחידה הנקראת 4ג1עע' תהיה:
זע %נתגו
המלה השמורה %גמט מודיעה למהדר:
1, הקובץ הוא יחידה, ולכן הוא מכיל ממשק וקטעי יישום.
2. בעת ההידור יש ליצור קובץ פלט עם שם הרתחבה טשפת. ולא מאם..
הממשק
קטע הממשק (18006ע66ת1) מכריו על כל הגורמים (קבועים, משתנים, פרוצדורות
ופונקציות) המשותפים ליתידה ולתוכנית הקוראת. אין | להכריט על תוויות,
כיוון שתווית של הוראת ס6טסץ חייבת להימצא בבלוק שבו נמצאת ההוראה עצמה.
בממשק יש להכריטא רק על כותרות הפרוצדורות והפונקציות, התוכניות האחרות
חייבות להכיר את טיפוסי הפרמטרים והפונקציות, אך אינן תייבות להתמצא
בפרטי הפרטים, גוף השגרות יוגדר מאוחר יותר, בקטע היישום.
כאשר יחידה פונה ליתידה אחרת, שגם היא נקראת על ידי |התוכנית הקוראת, יש
להגדיר את היתידה האחרת במשפט 65פגו שבתחילת הממשק.
היישוס .
קטע היישום (מ5860%510 ת0נ+58מ00ת16קת1) הוא התלק העיקרי של היתידה. הוא
מכיל את הפרוצדורות והפונקציות שלמען ביצוען נכתבה היתידה, ואת גוף
השגרות שעל כותרותיהן הכרזנו בקטע הממשק.
כל קבוע, טיפוס או משתנה שעליו מכריזים בממשק, עומד אוטומטית לרשות
ההוראות שבקטע היישום. ניתן להוסיף לקטע היישום גם הכרזות פרטיות,
השייכות אך ורק ליתידה עצמה.
. | | | פרק 7: יחידות 215
. אם היחידה משתמשת ביחידה אחרת, ואינך רוצה שיחידה זו תעמוד לרשות התוכנית
= הקוראת, עליך להכריז עליה במשפט 8פפגו הנמצא בתחילת קטע היישום.
פעולות מקדימות
היחידות הן בדרך כלל גורם פסיבי, הן מאחסנות . פרוצדורות ופונקציות,
וממתינות לרגע שהתוכנית תפנה אליהן, אולם, ביחידות מסוימות יש לבצע,
לפני השימוש, פעולות מקדימות (הצבת ערכים התתלתיים, פתיחת קבצים או ביצוע
הוראות).
טורבו פסקל מאפשרת לבצע מערכת הוראות לפני ביצוע ההוראה הראשונה של
התוכנית המרכזית. הוראות אלה נקראות הוראות מקדזימות (מ15181128%10םת1 -
868) יש לרשום אותן בסוף קטע היישום, ולהוסיף נמ את המילה השמורה
-מ1ססס.
הוספת ההוראות המקדימות היא רשות, הימצאות המלה ם641 מורה למהדר לבצע
פעולות מקדימות. כאשר המלה ל אינה מופיעה, לא יתבצעו כל פעולות
= מקדימות.
כאשר התוכנית המרכזית משתמשת בכמה יחידות, מתבצעות הפעולות המקדימות לפי
סדר ההכרזה במשפט 565ט. |
כיצד תוכל לפתח יחידות משלך?
לאתר שהכרת את מרכיבי היחידות,. הגיעה העת. לראות כיצד ו משתלבות
בתוכניות.
תוכנית משתמשת ביתידות כשם שהיא משתמשת בפרוצדורות או בפונקציות עתידיות. :
התוכנית אינה זקוקה למידע אודות. המקום שבו מאותסנת השגרה ואינה מתייחטת.
למועד ההברצה, 9 זקוקה להכרזה על הכותרּת בלבד.
נניח שיצרת את פונקציית התיבור הפשוטה ססִ6ה, שלהלן:
3
6 חתלק א" הכרת טורבו פטסקל |
: ( במסט : 2ע8ט ,וַעבָטְ - מסנ6סתט+
ב1סס
2 + - =:2ע0306
| 2
ונניח שבגלל השימושיות של הפונקציה, החלטת להפוך אותה ליחידה בשם פטספסת
(תדפיס 7,7):
תדפיט 7.7 ' -
33000 1%תגו
. 1-6
;סט : ( בעסשט : 782 ,21ב )0 תס1לסתנו1
ר%8510תסוחס [כח1
0 תס1נ6סונג
ת1שסס
20007 := - + 795
-
"
ביצוע הידור ליחידה עטפפת הופך את הפונקציה 26882 לפונקציה העומדת לרשות
כל תוכנית אחרת. התוכנית אשססממפט שבתדפיס 7.8 פונה ל-פטספת.
תדפיט 7.8 .
; ע804060 ותה ידקסיזסן
; 06770 05פגו
, תנשסם
(( 6 ,5 )06 ) ת61 יט
ו .תס
התוכנית פפפסתצפט מכילה את ההוראה 2600 65פט, ולכן הפונקציה 662 יכולה
לשרת את אשעספגמפט, ממש כמו פונקציה שהוגדרה בתוכנית עצמה.
קיימת התאמה מושלמת בין היחידה והתוכנית הקוראת לה. 7-7 1 מתאר את
השילוב בין תוכנית אעפסגטפט ויחידת עטססה.
הקטעים הבאים יפרטו את הכללים ליצירת יחידות ולשימוש | בהן.
| | | .| פרק 7: יתידות 217
השימוש ביחידות
אופן השימוש ביחידה מוכנה מראש וביתידה שכתבת בעצמך - והה, כדי להשתמש
ביחידה, צריך פשוט להכריו עליה בתוכנית הראשית, באמצעות הוראת 865 כאשר
מגדירים מספר יחידות, יש לרשום את השמות זה אחר זה, כאשר בין השמות מפריד
פסיק, מסיימים את רשימת היתידות בנקודה-פסיק (?).
בעת ביצוע הידור של התוכנית הראשית, מחפש המהדר את כל היתידות הנזכרות'
בהוראת 68פג, הוא מחפש קוב ששמו זהה לשם הנזכר בתוכנית, ושם ההרתבה שלו
טפץ,, נניח שהמהדר רואה את ההכרזות הבאות בתוכנית הראשית:.
ד ,ת116ת 66
המהדר יתפש קבצים ששמם: טשפץ,ת116ע ו-טספץ מס1נת,
208 חלק א'י הכרת טורבו פסקל | | |
תרשים 7.1
השילוב בין תוכנית 05540056 ויחידת סטססא
[
ו
;18608868 תתהינססיד
/ 6
;סא : ( בעסא : ק<עפט ,1ב )20007 תס%1סתגת
10 +66 1קוז1
; 24006 ת510סתע+
וזנקססו
2פל - 1עה0 =: 20007
: -
תנקסס
( ( 6 ,5 )20062 -)ת[140יש
.ו
כניבת יחידות |
יחידה יכולה, כמובן, לבצע כל מה שמבצעת תוכנית רגילה. אולם, יחידה משמשת
בעיקר לאחסון פונקציות ופרוצדורות כלליות, שאליהן מבקשים לפנות מכמה
תוכניות, ניתן גם לפרק תוכנית ארוכה ליתידות עצמאיות, כאשר כל יחידה
מבצעת משימה מסוימת.
בגלל הדמיון הרב בין תוכנית ליתידה, תהליך כתיבת היחידות שגרתי ופשוט.
הנה מספר כללים: |
.219 תודיחי :7 פרק - |
12 > הכן תתילה :את שלד היחידה. כותרת היתידה ו השמורה. מ ואחריה.
. מזהה) תימצא בשורה + הראשונה.
2 אתר את כל הגורמים הכלליים. (116פטוס) (כל הקבועים, הטיפוסים, המשתנים,
. הפרוצדורות והפונקציות המשרתים הן את התוכנית המרכזית והן את היחידה)
והכר% עליהם בקטע הממשק (ת800%10 662+806ת1), אם אחד הגורמים הללו
משתמש ביתידה אחרת, יש להזכירה בהוראת ₪865 בתתילת קטע הממשק.
3 אתר את כל הגורמים הפרטיים: 3 0) (בל הקבועים, הטיפוסים, 5
המשתנים, הפרוצדורות: והפונקציות שהשימוש בהם מקומי בלבד) והכלל אותם
בקטע היישום (62%ת5609 תס%8%1מ10166), רשום בקטע זה גם את ההוראות
עבור הפרוצדורות והפונקציות הכלליות שעליהן הכרזת בקטע הממשק, אם אחד
הגורמים הפרטיים משתמש ביחידה שהוגדרה כבר בקטע הממשק, יש להזכירה
במשפט 68פג שבתתילת קטע היישום,
4 אם היתידה אמורה לבצע פעולות מקדימות (בדרך כלל אין פעולות כאלה),
רשום את הפקודות המתאימות לפני הוראת 66 האתרונה בקובץ, והפרד בין.
הפעולות המקדימות וקטע היישום באמצעות המלה השמורה ת1שסס.
5 שמור את היחידה על הדיסק.
6 בצע הידור. כותבים, מנפים ומהדרים את היחידה כמו תוכנית רגילה, אולם
אי אפשר להפעילה ישירות, באמצעות מטם, כדי שהיחידה תוכל לעמוד לרשות
תוכניות אחרות, היא חייבת לעבור הידור עם האופציה מס8%1ת26561/ 116קתס6
המתוארת בפרק 1. שם ההרחבה של הקוב שייווצר הוא טפץ..
ננסה להמתיש את התהליך:
דוגמה 1: פונקציות טריגונומטריות
הפונקציות הטריגונומטריות היחידות שמגדירה : טורבו. פסקל הך: 1פ, -
ו-ת18ס:ת. ניתן לשלב פונקציות 0 ולבצע באמצעותן חישובים פ
שוים.
0 הלק א הכרת טורבו פסקל : | | |
לדוגמה: התוכנית 22185 מכילה את פונקציות - הטנגנס, הסקנט, הקוסקנס
והקוטנגנס. עיין בתדפיס 7.9 כאשר תעיין בצעדים שיש לנקוט כדי ליצור את
, היחידה:
1 רשום תתילה את הכותרת:
7 16תט
2 | הפונקציות 080, 860, מ68 ו-606 הן פונקציות כלליות, ולכן יש לרשום
את כותרותיהן בקטע הממשק (806+:66ת1), במקרה זה לא נחוצים גורמים
כלליים. נוספים או יתידות אחרות.
3 הכנס את גוף ארבע הפונקציות לקטע היישום. הכותרת המלאה של הפונקציות
מופיעה בקטע הממשק, ולכן אין צורך להכריז על הפרמטרים ועל הטיפוסים
המוחזרים, ניתן להוסיף מידע זה, בצורת הערות, למטרות תיעוד.
4 אין צורך בפעולות מקדימות, ולכן המלאכה הושלמה.
5 שמור על היחידה, כנה אותה: 108,286 |
6 בצע הידור, כמתואר בתרשים 7,2.
פרק 7: יחידות 221
| תרשים 2 הידור של היתידה 5
וכה ב 116 הוה א ₪8
9 16נקחכע |[ - 1 60[1 1 פהג |
9 הברו :6 1%5חט
/-ש 8 |
אפור 513% * 2 16
3 תסתעעם 6תנ | > ו -ן
:1 שתבּחו יע : 41805 )הג% הס1+סתט1
= 0]ה1 62 24
ה0ל8%/08ק
5 ד:
< 006808808 + :681ע : ( 2681 : פהבַ161 )₪0% הםס61שחט]].
| 10 1600585 1
3 %ח8פ5ה18 + - :7 881ע : ( 081ע : 5ה013( ) + הג% הס%1שתש]
8 הט
:1 : 6ת ₪051
= ה1ַ8סם].
8 :( 5חה41ג0 )₪05 =: 6ה051ם .
הסו[(+ 0081.₪ => ( 8ת0051 )5גג ]1
99999,999999 =: הג
3 שרי ה --
גוה6ח-718 58ג79-8 78-5%62 8 26-801%0 2008-פק פנפו-1ץ"
התדפיס 7.9
נ8שגתך סנ1תט
! 16
6ז : פתה1בגת )ת8> תס1נ%סת
[ ףתסשתה%8 ] | ;641ע : ( 91
1 : פתה61בת )500 תסנ6סתטת
1
91
)
( ! 2081; ] %ת3608 [
[ %ת008608 ] / ;2081 : (
( %ת6שת00%8 ] | ;081ע : (
6 : פתהגחגת )050 ת0ס61סתגת
6 : פתהגספת )00% תס1שלסוגת
- : , / ו 810 תסחס 1כת1
[ %תסשתה+ ] (| 2681 : ( [68ע : פתה61ת ) ] ת8+ תס1שסוגת
י | לפטי
,681ת : 6ת0081
תדפיס 7.9 ממשיך בדף הבא
222 חלק א': הכרת טורבו פסקל ו
המשך תדפיט 7.9
.ה
תנפסס
; ( פת418ג3 )008 =: סת1פסס
תסמ 0.001 => ( פת81ס0 )פסה +1
9,., 99909 =: תבל
06
;6ת1פסס / ( פת18הבת )ת51 =: תה6
-
) 09% 1 ([ 2681 1 ( 2081 : פת18הבת|) ) 500 תס%1סות
ינפש
: שת1פסס
תננשסס
; ( פת39018 )008 =: 6ת0051
תפמ 0.001 => ( פתנפסס )פמה +11
9 =: 500
66
;שתנפסס / 1.0 =: 500
תס
[ 00800826 ] | (( 2081 : ( 2081 : פת18גת ) ) 050 תסנססתת
ינפש
;2081 : שת1פ
| וזבקס
;( תבגה |)ת81 =: פת51
תסגט 0.001 => ( |פת81 )פכ8 +14
9 99999 =: 050
|06
;ספתו / 1.0 =: 050
; תס
[ %ַתסקַת00%8 ] | ;[ 2081 : ( 081ע : פתהוהבת ) ] 6סס תסנפסוגת
בו
,2681 : שת91
תנססס
(( פתהנספת )ת81 =: סת1פ
תסמצ 0.001 => ( תפ )פכ8 14
9 =: 000
6
;16 ] ( בתהגהגת )005 =: 00%
פרק 7: יחידות 223
בתוכנית 165תמפט (תדפיס 7,10) ניתן לראות כמה קל להשתמש ביחידת 148:ע.
תוכנית 08₪'18105 מכילה משפט 68פט שתצורתו זהה למשפט המשמש לפניה ליחידה
סטנדרטית, הפלט של 65דתיטפט מתואר בתרשים 7.3. שים לב לשימוש. במספר
999 .59 בדי למנוע לק ב 0-7 |
תדפיט 0
( 001 ותפיהססיזכן
ד %5שט |
עפט
עס : 008מקסק
1 : פתה01מת .
: 5 = השס ,
, ' תפי 0058 תג 23 ) ינא
; ( 00% - 050 - 500
| וכ
| תגשסם 60 20 50 0 =: פססעשסת עס+
0 ]| 1 * כ := פתה1סגת
)5*0007008(:4, 5 '( )ת1501ע
לו פתה1פת )ת1ם
6 ( פתהגבפת )005
6: ( )ת8+
6 פת018גת )860 |
(6: ( פת010גת )080
;( 12:6:( )0 ו
הי -
[
1
24 חלק אי הכרת טורבו פטקל ו ו
תרשים 7.3 הפלט של תוכנית 08618165 |
6% 6 08 > 6 חבּך 5% ה1פ 5
מ[ מ כל ןכש | יע א( כל כ יע כ 7 כ( כ כ מ וי 808,. 8 80 | 8.800008 8
2 11,4737132 | 1,883820 8.9 5,, 8 8.6 5
2 8, ם 17 7. 0 808 8 |- 18
1, 3 33 1,776 0.9 8.6 נמ 15
7, 2 4, 2 78 8,30397808 73 | 8.3422 28
7, 2 2" -1.1833278 8 8 8,886 8 25
1 1 838, 2 1 1 8.08 625 8 9.0 8
148 7 1 75, 1 808, 8 172. 8 8.6 35
4 1.555724 | 1.385487 וי 4, ₪ 98 190
8, 1 4 1.4142141 1,808 7, 8 7 ,- 45
9.8 7+ 1 14 4, 1 8.8 4 -.-.- 28
8, 8 7%5, 1 7, 1 1,468 6 2. ₪ פפ
88 1+ 1 8, 2 1 1 8.8 8.25 8
8, 8 8, 1 2, 2 7נ2.0 8, 0 8 פם
8 170 4, 2 27 0 ,| 8.9396593 8
9,. 8 1,776 :5 1, 3 נ ןי 6 8 75
7, 8 17 8, 5 72, ם 8. 8 88 0 10
9. 8 1,908 3 11.4200523| 8.887156 8.5 5
08, 8 80, 1 99.9 .ג 1,808 1
9 1.88382₪05 3- 11,43800502- 8,887156- | 8,996195 95
100 8.9848088 | -8,173648 | -5,671202 8 1.815427 7
דוגמה 2: המרות הקסדצימליות
היחידה 065א₪6 מכילה פונקציות שימושיות המבצעות המרות הקסדצימליות. עיין
בתדפיס 7,11, כאשר תקרא את רשימת הצעדים שיש לנקוט כהיליצור את היחידה.
1 רשום תתילה את הכותרת:
| ;פסאסת %נתט
2 הפונקציות 16 עאאסא, 666עַ2א₪0 ו-6עסאאסע הן פונקציות כלליות, ולכן יש
לרשום את כותרותיהן בקטע הממשק (806+:66מ1), שים |לב לטיפוס המותזר של.
6 - מחרוות בת שני תווים בשם 2שם5521, ולטיפוס המותזר של
6 אא - מתרוזת בת ארבעה תווים בשם 64ם5621, שָני טיפוסים אלה אינם
טיפוסים סטנדרטיים, ולכן יש להכריז עליהם בקטע הממשק. (806+:1266)
לפני כותרות הפונקציות, אין ביתחידה גורמים כלליים נְוספים או יתידות
אחרות, ולכן אין צורך בהגדרות נוספות.
פרק 7: יחידות 225
3 הכנס את גוף שלוש. הפונקציות לקטע היישום, הכותרת המלאֶה של הפונקציות +
= מופיעה בקטע הממשק, ולכן אין צורך להכריז על הפרמטרים ועל הטיפוסים >
המוחזרים. -ניתן להוסיף מידע זה, בצורת הערות, למטרות תיעוד.
4 אין צורך בפעולות מקדימות, ולכן המלאכה הושלמה, .
50 > שמור. על היחידה, כנה אותה: פתק פמאמז,
6 בצע הידור, כמתואר בתרשים 7,4.
= תדפיס 7.11
; 11009 1%ונט
501906ת1
ו 6סעל
;[ 2 ]שת1ע8% = 2שת1ע5%
;| 4 ]תנעט = 4שת1ע5%
;שפתס : ( ספְעט . ימוג )016סע1100. תס ב6סתנגת
(0שת1ע9% : ( 6סעס : ססות( )1000766 תס%1סתגת
,4שת1ע9% : ( 6עסא : ססתטא. )1100010 תס61סתגת 7
, ו ת10++תסחס 121 ,
| שוש : ( 6 : : צסמוחט ) ] 0 תסנ6סתצת -
ו תגשסס
( עסמחט+ 48 )עם0 =: 16מסקאאס תסמל 10 > שסממטון +1
; ( עסמחטא+ 55 )עםת0 =: 16ססעאאס1] 6186
; 68
;| עפ : ( %6עם : שעסמתטא ) ] %6ע0א16 תס1ססתגת
- כ י / תנפסם >
; ( 16 ₪08 עסכותטא )16סמץאאטו! + 2 6 61 עסמו )16ססעאאס =: 66קמאסת
5 1
1 0 : / סא : ששמווא ) ] 110026 ת610סחגת 5
8 תנפסס ,
; ( (שסמתטא)10 ו + ( ל ב =: 6ס/א1 >
: תס
6
בתוכנית אפאמפט (תדפיס 7.12) ניתן לראות כמה קל להשתמש ביחידת 1665 '
תוכנית אמאמפט מכילה משפט 65פג שתצורתו זהה למשפט | המשמש לפניח ליתידה
= הסטנדרטית.
6 חלק א" הכרת טורבו פסקל | > |
1
= תרשים 7.4.
בצע הידור של יתידת 46ק.5םאםו
(8%0ט/8ה | 8ול: | 5הםן%עך | 118ַקה00 | הת ד 18
5 פמאפון: 1-9 " |
ן
1 18
: 5אט] +1הג
9 6
8 ן
5%" תסם%1ה85%1ת 1 18
עסתתס 110 ּ
+ גפתהחוית) .
ס]חן % ה1ת%
51
4
2 : ( 2056 : תספתג )00%6א6] הס%1סהט]
:עה(ם : ( 66ט1 : ו הס1+סתט]
2 : ( ₪006 : תסמתות > 0ת0אפו] מס1+שתט]
| ה1806+8%10קחן
:3 עגם : ( %6טם : עסמתטת 6 + | 16 מפהא6 הס%1סתטן
/ הס
( 8ע48+000 )עת6 =: 16ממטהאם!] תפת+ 10 > תהמהטת ]1
:( עסמהטאז5פ 6עת6 =: 16ממטהאפו] 8156 - .
ת₪3+5 ן
והו118-80 719-886 ק78-5%0 שסגת17-1 ת1%0ש16-5 ה2008-פץ ק[ו-1ץ
תדפיס 7.12
[
| 11801108 חעפינשסיכן
; 11909 08גו
צפט
נסץם : 1
ננפסט :3
: תנשסס
;( 6:( 1 )66ע0א0 ,1:8 )ת1601עט 60 18 14/60 =: 1 עס1
0% ; הת061 ביט
( 6:( [ )60עסחאס ,8:[ )ת%91גינ ₪0 52770 ססן 65 =: [ ע0ס1
תס
הפלט של אמחמספטש הוא:
00/0 | | פרק 7: יחידות 227
תרשים 7.5
הפלט של תוכנית 556%
14 ₪8
15 7
16 10
17 1
8 12
> פעת? 32765
"פע 32766
עעע? 32767
32768 8808 -
. 327699 1
32778.2
השימוש ביחידת פפטסאטפל
כל תוכנית המשתמשת ביחידה (הוראת 65פט) חייבת להיות מסוגלת לפנות לקובץ
ה-120, של אותה יחידה, כאשר הקונץ המבוקש אינו נמצא בספריה שבה נמצאת
התוכנית, יש להיעזר בשירותי המהדר כדי לאתרו, ניתן לבצע ואת בשתי דרכים: .
1 העתקת קובצ ה- טפיז. המבוקש לספריה התורנית, זוהי השיטה הפשוטה ביותר,
שחסרונה הבולט ביצירת: עותקים רבים של אותה יחידה בספריות שונות.
2 הגדרת מקומו של קובץ טפי'י. לסביבה המוכללת, דָבר זה נעשה עם ציון הנתיב
המוליך את היתידה בסוף שורת | 61200%602108" פנמש שבתפריט
5 8ת%10ק0 כמתואר בתרשים 7.6..
8 הלק א" הכרת טורבו פסקל . |
תרשיס 7-6
תפרי0 פסוזס%ס6יוס
(8%0ע/030י | פַגע₪ | 5הם%1ק0 | 116געחסע | תו | 116 | ₪15
0:5 7 ועה 6 %עפח] | 1 001
ו גל ל
%תסתחסת 1 טתת!
5 תססות
וצ 5 :9ת017800%0 72 8 א
ו : :165 01206+02 61008
3 ןא: 6:%1:0 :60%021865ת01 %ח
ב 6065 מו
קזַ:6 -:0ע61780%0 | ה
ה
2 :שגה 1118 הז
:8 אסנע %ח6תת60
| הסו- 18 68 כ 78-66 8068ת77-1 ו[1%0שפ-16 200-פת ע[פת-1ץ
[
והי
שתי השיטות אינן נוחות כאשר תוכנית אתת פונה לכמה יתידות, שכל אחת מהן.
שוכנת בספריה אחרת. המשימה הופכת קשה ומכבידה ככל |שמספר היחידות גדול
יותר.
כדי לחסוך את היגיעה והטרדה, סיפקה טורבו פסקל פתרון לבעיה - כל יתחידה
מאותסנת בקובץ טעפץ. משלה, אולם ניתן לאחד כמה יחידות ולשלבן בספריית
זפע,, הדומה לספריית ,1פע',0פתטע' שבה נשמרות היחידות הסטנדרטיות של טורבו
פסקל, מבחינת המהדר - פעולת הקריאה מהספריה זהה לקריאה מהדיסק, אך יש לה
מספר יתרונות:
1 ספריה מכילה כמה יחידות, ולכן אין צורך להעמיס על| הספריות קבצי טפע.
רבים. ן
2 התוכנית נעשית אמינה יותר. העובדה שקיימת ספר?ת :יתידות "רשמית",
מבטיחה שהתוכניות יפנו תמיד לגרסה המעודכנת ביותר| של היחידה.
ז
/ 0 י . 0 ל 7: יחידות 9 |
3, | הספריות מקלות מאוד על שילובן של היחידות בתוכניות השונות. קל יותר .
להעתיק או למחוק ספריה את ב ה נפרדים רבים.
4. : שטת האחטון קטן יותר-- השטת שצורכת ספרית זפ אחת קטן מהשטח שצורכות
כל היחידות בנפרד, 0
5 השימוש בספריות מקצר את משך ההידור, בגלל צמצום מספר הגישות לדיסק.
התוכנית לניהול הספריות של יחידות טורבו פסקל נקראת מאם תמטסאטפני,. יש
להפעילה כדי ליצור ולנהל את קבצי הספריות הפרטיות ואת הספריה הסטנדרטית
תפי',ספתטיי. תוכנית מאט, תמטסאטעע' מכונהּ לעיתים גם "תוכנית ההזזות", כיוון.
שהיא משמשת בעיקר להעברת יחידות לספריות ומתוכן, אחד השימושים
השכיחים של התוכנית הוא הוספת יתחידות פרטיות לתוך הספריה הכללית
,דפ ספתטץ. | 0%
הגו על קוב הספריה שלך.
יש לחתיתס בכובד ראש לעריכת שינויים בספריית
.זפ סתתטץ, אולם הפעולה אינה מסוכנת. למרות
זאת,. יש להקפיד על עריכת גיבוי לפני שמתתילים :
לשנות את הקוב.
נניח שאתה מבקש להוסיף את היחידות 65א₪6 ו-198מ' לספריית ,זפ סמתטע', ניתן.
לבצע משימה זו בצורה אינטראקטיבית, בעזרת. תוכנית מא₪ תפטסאטפע, או.
ישירות מתוך שורת הפקודות, נתאר בקצרה את שתי השיטות.
ההסברים מתבסטים על הנתות היסוד שלהלף.
א "תוכנית מא ממטסאטפ. נמצאת. בספריה התורנית או בספריה הנזכרת בנתיב
ו
ב, | הקבצים טפץ,פתאמא ו-68,?20דתע' נמצאים בספריה התורנית.
ג. = ספריית פץ,ספתּטע' נמצאת בספריה ת1'. =
אל תשכת להגדיר. את שם הנתיב המלא בעת הצורץ. .
0 חתלק א" הכרת טורבו פסקל
הפעלת אפטסאטפעי מתוך שורת הפקודות.
תוכנית ₪אש, תפטסאטכל ידידותית מאוד, ומיד תיווכת בכן. |
הקש את הפקודה:
ָָ אכיד
סימן השאלה הוא פרמטר, המודיע לתוכנית שאתה מבקש| לקבל סיוע. תגובת
שאם, תפטסאטעע היא הצגת התחביר המלא של הפקודה (תרשים 7.7):
תרשים 7.7
מסך העזרה של תוכנית השירות 5א>.חפטסאטסד
? עסטסתט+<6
1 108 %608%ה1 16יצסת 808 (0) 00002188 5.8 הם61תה0 (000מ8עד
:5996!] 176 6ההתוס6
... 1%2חט[הס%1ק10/ 1+1הטנתס%1קםז/ 111021181 התטסתשץד
0% 8 0085 + :51ה%10עם:
% 8 28166605 --
% ה פססת+אם *
אה%חט5 115%5 -?
: 185 קתהא
שק +1הטטתה+/ [ק+, םםע%0 תסטסהטק+
וע+, 152 הוטפחה+/ גק+, 1%הטטחה+/ 21 סםעט+ מהטסתטק+
3 501 0פע0? סטסףגק+
בקהע4ף*/ 21+, םפעט% יסטסתטק+
6<
כדי לראות את תוכן ספריית פץ,ספתטע, עליך להקיש את (הפקודה:
זעי סמתטי פי' אמטסאשפיד
| 2 - פרק 7: יחידות 210
תוכנית מאם תמטסאטעי?" תגיב בהצגת שנל חלונות, זה לצד זה (תרשים. 8).
היחידות הנמצאות בספריית תפץת,סמאתטי בחלון השמאלי. לתצ ספ כדי לתחזור
ל-05ס. |
עיין בתתחביר של שורת הפקודות שבתרשים 7.7, והקש את הפקודה הבאה בדי
להוסיף את יחידת 83 ואת יחידת 145עי לספריית ,פיד ,סמפטיז:
5 / פתאמע+ / קץ.סמתטץ קי האהטסאטקיד
כאשר התהליך יסתיים בהצלחה תמצא על המסך את ההודעה:
1 תה1עסם 1987,1988 %תףגעצָקס6 5.0 מסב1פעסץ המטסאשספ
ברירת המתדל היא שם הרחבה טפי'. ולכן חייבים לציין במפורש את שם ההרתבה של
הספריה - מפץ,. אם לא תעשה זאת, תנית תוכנית מאש תפטסאטעיי שאתה מבקש
ליצור ספריה חדשה ששמה טפץ'.ספתטע ולא להוסיף יתידות ל-,זפע',סמתטע'. בשני
המקרים - התוכנית אינה מציגה הודעה כלשהי.
תרשיס 7.8
תוכן טפריית ומז.80אטד
הגּןתגת1] 1%ח/ 25631 סםתטך י
08 ה510ת0
(. מ סוק :6
5 פתטפ 28% 6006
[קך, 0פתו!וזיקז: 0
5 פופ 2363 6066 1%
486 2 תדל
6 18 15986 0%]ת000
1 285 55ם1 > ד
3 6 1989 208
2076 17 תפדוזתץ
42% .5126 8[וץ
6 1 1000 י0 סטגמת
1% 281-2616806 09-ה א%תג]-+ ת₪+1טפ-76 0/ה74-1 עסה-3 הַטהפ2-5? ק[1-6ץ
2 חלק א" הכרת טורבו פסקל / |
הקש את הפקודה:
זפץ,סמתט'פע תפטסאטפל =
תוכנית מא תמטסאספיי תציג את המסך המתואר בתרשים 7.9, הרשימה כוללת את
היתידות 65א₪6 ו-12185 שהצטרפו לספריית ,זפי'.ספתטע', לתץ ₪56 כדי לתזור
ל-05. :
תדפיס 7.9 ן |
היחידות שהתווספו לספריית ו ד.ספפעָד |
ההּןתהתכו1 %+1] 235081 ססעטך
8 הסם51ע06
זז 06:90
5 פחצשס 8% 06 %ח
שד הסרק :6
5 ופפ 2% 6066 %ח
4836 -664| 21332 595188
6% 8 | 156 לתתתטס
1 2 55 1
3 6 19 5
6 26| 37 תעדאז ץק
3 8 218 פמאמו
5 3 68 2
% 45 :2 ו
6 | 992 ' :0 הטופת
6% 281-2816665 90ק5-00ה1 2%ג₪-+ (26-501%0 ם:ה74-1 שפת-בץ 6 1-ו
הפעלה אינטראקאיבית של אמטסאטפז
ניתן להפעיל את מאט, פמטסאטעעי גם באופן אינטראקטיבי. |
ההסברים מתבטסים על הנתות היסוד שלהלן: |
א אתה משתמש בספריית ,פץ,ספתטע' המקורית הנמצאת |בספריה פע .
כ בר כ 5 | פרק 7: יחידות 233
היחידות טפ פמאעג ו-20ע,109תע' נמצאות בספריה התורנית.
הקש את הפקודה הבאה מרמת המנחה של 5
הקיז 3 וטקוד
הפקודה ג גורמת לטעינת. פא כ ולהצגת שני החלונות שבתרשים 7.8.
זכור: קליד הפונקציה 1 מציג מסכי עזרה, תוכל ללחוץ עליו בבל עת.
החלון השמאלי, | מוקף מסגרת בעלת שני קווים, > והספריה הראשונה שבו
(8%ע9צ5) מוארת. אלה הם מאפייניו של ג הפע ₪ 6 בדי להפוך =
את הלו הימני לחלון הפעיל. -
לתץ 3 כדי לטעון קובץ. על המטך מופיעה תבנית המאפשרת לך לצמצם את
החיפוש, אם הקבצים (זפץ, פטאתט ו-105,720ת' נמצאים בספריה התורנית, לתץ
עס6תם, הצב את הסמן על [זס, סאפ כמתואר בתרשים 10 , ולתץ וכ
כרי לבחור 3 00
| יחידת. שפד תאמ נמצאת עתה בתלון הימני, לחץ + כדי לסמן את פמאמז
כיחידה פעילה, פעולה זו גורמת להופעת | משולש זעיר: משמאל. לשם היחידה,
9 1) 2
לתץ פמד כדי להעתיק את היחידה לספריית זנָצץ טל שבחלון. השמאלי. שם
היחידה *ופיע מעתה בתקון זה.
חזור. על צעדים. 3 עד 5 לגבי יחידת טפץ 5 המסך שיתקבל | מופוע
בתרשים 12 7
244 חלק א': הכרת טורבו פסקל . | /
תרשים 7.10 בתר ביחידה טסד.55א₪
ההןתה3ת10 1% 25631 ססקטך
8 ת0ם0651
ו ו
5 פוטס 2% 6006 % | 565 פחטם | 2368 |6068
עד אותקז:6
תד פד סמאטון
ב %:, 0 ד
42% :5120 6ןוץ
6 1 908 | 0:0 הבטגפת
1% 261-2616665 0ע5-60ח1 א%תג]-+ ה76-501%0 0/ה74-1 ט73-86 172-5306 ק[1-16ת
תרשים 7.11 סמן את יחידת (קז.55אש₪
ההּןעהעם1] 1%! 235681 ספתטך
8 ח06510
1 ס0מת!זיתז:6
5 פחצ5 28% 6006
6 6664] 21332 | התזפלם
6 18 6 ?+00
1 2 1595 6
3 ם 19 0%
6 26| 37 תתדוזז תת
פמאתו]ותז:6
5 פחעפ 23% 6006
%ח
2108 8
03
1% :28 ש[וץ 3 42 :8 פ1ות
8 | 968 1 מטנותפת 8 | 968 ו : פטןית
1% 261-2816665 5-06020ה1 אתִב3ּ₪-+ ת6-501%0ע 4-0 טהבתא-3ץ 2-08 ק[טו-1ץ
יווהו ייוו ייוו יי
[
07 | ו פרק 7: יחידות 235
תרשים 7.12
תוכנה 0 ספריית 0 לאחר השינויים.
הגּןתבּעפ11 101% 235031 ספעטך
8 תם51ת08 5
.1 0פתזות :0 --
5 פחפם 3 6086 6% |
6 0604 21332 | |[ם5?51
6 18 1586 צעה0תת00
1 28 1555 1
3 6 19 5
6 2586 37 תפזאזתץ
3 8 8 פסאתה?
2 8 3 5
5 פמצפ 2% 0006
3 8 12
21% י פווץ | 42% - :5120 ש[וק
6 | 952 מטגתת 6 1 952 :6 סשטומפת
8% 261-2618656 105-6000 אתג-+ הת1%0ש6-5] ס/ה74-1 שסו-3ץ 8 קן[1-6ץ
7 לחץ ₪50 כדי לסיים את התוכנית, תוכנית ₪אט פפטסאטענ'י תבקש שתאשר את
השינויים (תרשים 7.13). הקש צ (פמצ). התוכנית מסתיימת (שתי היתידות
נכללות בספריית פע ספאטע.
6 תלק א" הכרת טורבו פסקל |
סייכום: |
בתחילת הפרק הוצגו בפניך היחידות הסטנדרטיות של טורבו פסקל. |
. יחידת 88% מכילה את ההוראות התומכות בשגרות המובנות של טורבו פסקל.
= *הידת 008 תומכת בפונקציות 8 השימושיות ביותרן. |
= יחידת 62% מספקת שירותי צג ומקלדת.
. יחידת ע66מ1עע מסייעת לך להשתמש במדפסת.
. יחידת. 06218 מנהלת את מערכת התפיפות של טורב פסקל.
א יחידת בק8ע0 היא ספריה של שגרות גרפיות.
= *תידות 3סס:טץ ו-628023 תומכות בתאימות למהדוחות : קודמות של טורבו
פסקל. 0 |
תרשים 7.13 שמור את קובץ הספריה המתוקן |
ההןעהעםן)] 81%]| 285081 ספעטך
8 הם51ת0 .
1%
== 05 0 --
5 פחטם 2% 6066 1% - 565 פתשפ 28%8 6066
. 2 ₪ 2 533 65 | | 6 6604| 21332 | ףם5%57
ו 6 להת0
?7 התד ספת!ווזיק :6 5308 | 20 1555 61
6 19 [תוזון
6 26| 37 תתזאזתץ
ב 8 218 סאנ
12 8 3 תד
21 12 פנוגץ 42% :5120 סוגץ
8 1 952 -6 פטותם 8 52 | 05 שטופת
5% 261-2816565 105-0024 אעבה-+ (1%0טפ76-5 0/]ה74-1 טפת-3ת 6 קופו-1ץ
------א+פ.[]/1ת7"7]1"]"."]"]........ = יי
| | פרק 7: יתידות | 237
למדת כי ניתן לשלב מספר יחידות לספריה אחת.
הכרת את מרכיבי היחידה - הכותרת, הממשק, היישום והפעולות המקדימות, ולמדת
לפתת ולעצב יתידות חדשות, כללי הכתיבה והשימוש ביתידות הוצגו בפניך.
הנושא הומחש בשתי דוגמאות מעשיות, היחידה הראשונה שתוארה היתה יתידה
לביצוע| תישובים טריגונומטריים; היתידה השניה הכילה שגרות המרה
הקסדצימליות.
בסוף הפרק למדת להשתמש בתוכנית ניהול הספריות - תמטסאטקץ.
פרק 8: ניפוי שגיאות בתוכניות 239
פרק
ניפוי שגיאות בתוכניות
ברוב התוכניות נופלות במועד: כלשהו. שגיאות. נסה לתת לחבר להריץ תוכנית
"מושלמת" שכתבת, יש להניח כי תתרתשנה תופעות בלתי צפויות: מדפסת תקועה,
דיסק מתמלא, משימות פשוטות צורכות את כל מאגר הזיכרון, המשתמש טעה ואינו
יכול לתקן את הטעות, וכדומה, ברוב המקרים יתברר שהתוכנית ה"מושלמת" שלךן,
אינה כל כך מושלמת...
השגיאות הן חלק בלתי נפרד מתיי התוכניתן, שגיאות "גדולות" קל בדרך
כלל לאתר ולתקן. השגיאות ה"קטנות" חמקמקות יותר, ומתגלות לעיתים רק כאשר
. התוכנית "נופלת", ניפוי יעיל של תוכניות נלמד בדרך כלל רק בדרך הקשה -
מהניסיון.
כדי להקל על תהליך הניפוי, מצורף לטורבו פסקל מנפה (060009982), שבעזרתו
תוכל להציץ לקרביה של התוכנית, בזמן הפעולה, בעזרת המנפה תוכל לעקוב אחר
מהלך התוכנית ולראות את השינויים התלים בערכי המשתנים, בפרק זה תלמך
להשתמש במנפה ולפתור בעזרתו בעיות סבוכות וקשות.
סוגי שגיאות
קיימים שלושה סוגים עיקריים של שגיאות:
שגיאות הידור, שגיאות הרצה ושגיאות לוגיות.
0 חלק א" הכרת טורבו פסקלי -- 05 = שות
שגיאות הידור |
שגיאות הידור נובעות בדרך כלל מטעויות כתיב או תתביה, שגיאת כתיב נוצרת
כאשר משתמשים במלה, במספר או בסימן "בלתי תוקי",] למשל, הקשת הערך
ההקסדצימלי %23 בתצורה ם23, שגיאת תחביר היא חריגה מכללי התצורה של טורבו
פסקל, למשלי הגדרת מספר פרמטרים לא נכון עבור פְרוצדורה או השמטת
נקודה-פסיק, לא תוכל להריץ את התוכנית עד ששגיאות אלה יתוקנו.
בדרך כלל קל לתקן את שגיאות ההידור. כאשר המהדר ל בשגיאה כזו, הוא
עוצר את תהלין ההידור ומציב את הסמן על השורה השגןיה, תוך הצגת מספר
השגיאה והסבר קצר באנגלית.
שגיאת הרצה
שגיאת הרצה נובעת מצירוף בלתי חוקי של משפטי טורבו פסקל:בעלי תחביר תקין,
למשל: ניסיון לכתוב בקובץ שלא נפתת, שגיאות תתום, (לישות ה תילוק
ב -0 וכדומה, שגיאות אלה יכולות להתגלות רק בזמן ההרצה,ן
שגיאות הרצה גורמות להפסקת פעולת התוכנית ולהצגת מספר השגיאה והודעה
מתאימה, כאשר התוכנית מופעלת מתוך הסביבה המוכללת, מ מחזיר טורבו פסקל את
הפיקות לעורך, המציב את הסמן על השורה שגרמה לתקלה. שגיאות הרצה עלולות
להוות מטרד, אולם כיוון שמקום השגיאה ידוע, קל בדרך כלל לאתר את מקורה,
ולתקן את הטעון תיקון.
שגיאות לוגיות
שגיאות לוגיות נובעות משגיאה בעיצוב, שבעטיה התוכנית אינה מבצעת את
הפעולה שהתכוונת לבצע, שגיאות אלה קשות יותר לאיתור, שכן טורבו פסקל אינה
יכולה לנחש את כוונותיך ולהצביע על השגיאה, מבתינת טורבו פסקל, התוכנית
המופעלת במקרה זה היא תוכנית תקינה לחלוטין.
יש מקרים שבהם השגיאה הלוגית ברורה וקלה לתיקון. אם, לֶמשל, מספרו של
העמוד הראשון בדו"ת הוא 38, יש הניח ששכחת להציב ערך התחלתי במשתנה המונה
את מספר הדפים, במקרים אחרים, תוכל להתמקד בקטע התוכנית שבו נמצאת
השגיאה, השגיאות הלוגיות הקשות ביותר לפתרון נובעות בזרך | בלל משילוב של
שתי שגיאות זעירות. | -]
| | פרק 8: ניפוי שגיאות בתוכניות 241
המנפה הוא: הכלי שיסייע לך לתקן את השגיאות הלוגיות,.
| דוגמה לתהליך ניפוי
הפעל את העורך טאע, ספּתטע' והקש את התוכנית תפ שבתדפיס 1, בדוק אם אין
בתוכנית שלך שגיאות הקשה, ולתץ 2 כדי לשמור את התוכנית על חדיסק,.
אל תנטסה להריץ את התוכנית!. תוכנית [1סהם כוללת שגיאה קשה ו הגורמת
ל"תקיעה" מוחלטת של המחשב.
תדפיס 8.1
; 38001 ותהידקסעכן
7 שמ ,|
ו ; ע%660ת1 : 02
;ע₪0ס%ת1 ?0 [ 1..5 ותו
- ת1שסס -
7 1:00
תנשסס 60 5 <> 1 16נבשט
.5 + 1*ג =: [1]א
00 )סתדי
: ; תס:
00 00 1 =: 1 עס+
;( [1]א )ת1%91ישט
-
תוכנית 1פתם אמורה לחשב, לאחסן לס יו בעזרת הנוסחה: ,
;5 + צ* 1 - ₪
גם ללא עזורת מחשב, ניתן לראות ששלושת הערכים הראשונים במערך א יהיו 6, .
ו-14.
עיון נוסף בתוכנית 1פ5% יגלה, כי יש בה שגיאה חמורה - הערך ההתחלתי של
משתנה. 1 הוא 0, ולכן התוכנית תתחיל בחישוב הערך של איבר:0 במערך:
+ 0*0 =: [0]א.
2 חלק א" הכרת טורבו פסקל |
[
מערך א הוגדר כמערך שאיבריו הם 1 עד 3, אולם למרות יזאת המהדר מבצע
בצייתנות את חישוב מקומו של גורם 0 - הנמצא שני בתים לפני המקום שבו
מתחיל מערך א, כלומר, המהדר מאמין ש-[0]א נמצא ישן שבו נמצא למעשה
המשתנה 1 המהווה + אינדקס, ולכן ההשמה: י
;5 =: [0]א
זהה, למעשה ל:
ההוראה הבאה בתוכנית היא הפרוצדורה 16 המגדילה את 1 ל-6. הסבב הבא של
לולאת 116תא, יהיה עם [6]א, בסבב השלישי תתבצע ההצבה [7]א, הרביעי [8]<
וכן הלאה, המהדר יחשב את מקומם של [6]א, [7]א ו-[8]א בדיוק באותו אופן
שחישב את מקומו של [0]א. | |
הערך של ג לעולם לא יהיה 3, ולכן לולאת 116ם לא תסתיים לעולם, התוכנית
תמשיך לפעול עד שהערך הגבוה של 1 יגרום לכתיבת איבר [1]א על גבי חלק
חיוני של הזיכרון, אם תפעיל את תוכנית 2201 תיאלצ,, קרוב לוודאי, לבצע
תיחול מתודש של המחשב. |
הפעלת האופציה לבדיקת התחומים - (+98), היתה מגלה את| השגיאה במהירות.
תיאור אה מניח שברירת המחדל [-%8) היא ההגדרה התקיפה. :
שיטות ניפוי מסורתיות
אילו לא ידעת מהי השגיאה שב-1פגם, היית מתתיל את הלו הניפוי בהוספת
משפטי םת1661עא בנקודות מפתת בתוכנית:
תנשסס 00 5 <> 1 16ונ
( 1[:5]א ,1:5 ,':1 5ת6000ה55 86 שסא' )א וזתט [* 1 *)
;5 + 1*1 = [1]א2 ְּ
;|( 1[:5]א ,1:5 ,':2 6ת5%58%600 35 שסא' )א ונת [* 2 *4
;| 1 )סח
;( 1[:5]א ,1:5 ,':5 558860605 86 שסא' )א הדונת [* 5 *)
;( 2]1[:5 ,1:5 ,':4 %ת5%585000 8% שסא" )א הדותו [* 4 *
0 605 1|=: 2 עס
;( [1]% )ת[159י
| פרק 8: ניפוי שגיאות בתוכניות 243
אחרי עריכת השינויים, היית שומר את התוכנית על הדיטק בשם אחר, מבצע הידור
ומנסה להפעילה, תוצאות שבעה סבבים של לולאת 116מ₪ מתוארות בתרשים 8.1:
תרשים 8.1 הפלט הראשוני של תוכנית 8401 לאתר הוספת הוראות חו6>ר.
8 :1 0%ק0ת5+3%0 3% טס₪
9 5 :2 5%3%0068% 3% טס
5 6 3 5%8%0₪800% 3% טס
5 6 1 5%53+0670% 3% שסו]
1 | 6 2 5+8+0007% 38% טסו =
4 ? 3 5+8%060% 3% טסו
4 7 1 %ה5+3566 3% טסו
4 7 2 5+8%6₪8670% 3% טסו
9 8 3 5%3%0060% 3% טסו
39 8 :1 %3%56007%+5 35 טס
9 8 :2 5+8560670% 3% טס
8 9. :3 553+0060% 3% שםו.
8 9 1 %ה0ה5+3%0 3% טסו
6 9 2 5%8%0860% 3% טסו
8 18 3 5+8%5₪067% 3% טסו
8 18 1 %ה6ז5+8+0 3% טסו
5 18 2 5+8%6067% 3% טסו
8 11 3 %ה5%3%606 3% טס₪
8 11 1 %ה00ת5%3%6 5ב טס
6 11 2 5+8%6060% 3% טסו
5 12 3 5+3%6080% 3% טסו
-]|[]-]|0 0 קה-
הערך. של 1 משתנה מ-0 ל-5, בין הסבב הראשון לשני, ולכן ברור שהפעולה
שגרמה לשינוי ערכו של 1 היא:
7+ 1*ג =: [1]א
ברור גם. שהתוכנית נקלעה ללולאה אינסופית, שתגרום בסופו של דבר ל"תקיעה"
= ולצורך לבצע. תיחול, | בגלל ההצבות באיברים שאינם קיימים במערך א..
4 תלק א" הכרת טורבו פסקל 2 | .
השימוש במהדר המוכלל
נסה לבצע פעולה זהה בעזרת המנפה המוכלל של טורבו פסקל, כזּי להשתמש במנפה,
יש להפעיל את האופציות [85) ו-(%2). ברירות המחדל הן: (+%2+ ו-[+52).
הפיקוח על האופציה (%) מתבצע מתוך תפריט פַגו6פ / 001162 / פמס61סס והפיקות
עלהאופציה [%1)מתבצע מתוךהתפריט15ספע5 1.0081/ 1162 00/ פתסג6פס. בדוק
אם בררות המחדל לא שונו, או הוסף לראש התוכנית את ההוראה::
+ )+95+,1.+[
המעקב אחרי המשתנים במהלך הביצוע נקרא צפיה (9מ8+021ש), הגדרת המשתנים >
שאחריהם מבקשים לנהל את המעקב נקראת הוספת גורם צפיה (ת856ק 8 0מ3001).
צעדים אלה יש לנקוט כדי לצפות במשתנים 1 ו- א: |
1 טען את הגרסה המקורית של התוכנית וסתם.
2. בחר באופציה ₪860 68 שבתפריט ב₪860/ אה6עם, (שים לב: ניתן לבחור
באופציה ישירות באמצעות 7ע-1ש062), באמצע צידו השמאלי של המסך יופיע
חלון םס₪36 266 המתואר בתרשים 8.2:
תרשיס 8.2 חלון הס₪8% 400
= [68%/08%0ית 6 = תות 16
פיק | 5הם261
1%
ו
008 3501 07
תס%הּט 16%6מו
תסלגּש 15
5 [311 בטסתיעו
5 אהת [3[1 637
8 >ה1סקאה6עת יי
1
%ח סקאהּסים %אפח 16
%% סתםה-+ טחהסה-7180 79-86 78-58 66ג77-12 ה1+0שפ-76
1 שחו
| :0861 ההתפסעק
: זט
001 1
1% 6ע50ה1
:50967ה! :
:הו ]0 1 הז תתה * א
ה₪3%0 80
ן
:נ1
5-0 ק[פ-1ץק
פרק 8: ניפוי שגיאות בתוכניות | 245 >
בדוגמה שלפנינו אין -- חההצפסעס כל משמעות. ברירת המחדל גורמת להצגת
המלה שעליה מצביע הסמן . בתוך החלון. לאחר שתתרגל למנפה ולעזרים שבו,
תתרגל להציב את הסמן במקום המתאים וללחוץ 7ע-1ע06, בשלב :זה עליך
להוסיף את גורם הצפיה הראשון - + וללתוץ ע66תע, המשתנה 1 יופיע
בתחתית מסך חלון הפי יחד עם ההודעה 0 מאסת אמג -
3 חצור על צעד 2 גם לגבי המשתנה א. תוכל ללחוץ 7 אן לבתור פעם
נוספת באופציה ₪866 466 שבתפריט מ360/ 8%ס:8. בשני המקרים"יופיע על
המסך חלון ₪860 68, הקש א ולתץ מ שני המשתנים (ג ו -א) יופיעו
בתחתית המסך (תרשים 8.3).
תרשים 3 תוכנית 8401 עס משתני הצפיה:ו רא שנבתרו
הט סיק וו ב 7 חק ₪165 | פום
5 >ח606ה1ח] -/ רייו 15 11 1 סהג1 ₪
12 תהבתפסיק
. "הט
: 150 י 1
1 77 1.3 1 עהתתה : א
ו
ת1ףסכ 40 3 <> 1 שצוי
יפ + [אן >: נן:א
0 3 50 1 - | תם]
- 2 :
17 11 100% השסהאחט :א*
| = %1]185ה108 הטסחאמש 15
והס-118 6אה79-8 ק66ם-8ץ 6 ת6-501%6ץ לפק 1-6
בשלב זה תוכל --- את התוכנית. שים לב למלה ל המופיעה ליד תיאור
מצבו של קליד 7 שבשורה התתתונה של המסץן. המעקב (9מ1801)) הוא תהליך
ההתבוננות בתוכנית המתבצעת, הוראה אחר הוראה.
6 חלק א" הכרת טורבו פסקל |
1+ לתץ 7ע כדי להתתיל בתהליך המעקב. הפעולה הראשונה המתבצעת לאחר הלחיצה
על הקליד היא הידור התוכנית. לאחר ההידור, 1 ו- א כבר אינם משתנים
בלתי מזוהים אלא משתנים מספריים מוכרים, ולכן חְלון הצפיה מציג את
המספרים שבהם, אחר כךץ, מוארת שורת ההוראות הראשונה שבגוף התוכנית
(הוראת ם601כ). המסך שיתקבל מתואר בתרשים 8.4. כאשר התוכנית תתבצע,
תואר בכל פעם השורה המכילה את ההוראה הבאה שתובצע,
תרשים 8.4
: הערכים ההתתלתיים שבמשתנים 3 ו-א
0
סטיק | פטס:ק וק - ש[וקחכם | תו | 8415 פנה
- 5% |
5 =ש668ה1ה|] 0% 1% 1 [₪0 5 5 שחגם
:01 תהפפסיתת
| עבט
:ות : 1
:067הן )ם 1 14.3 ] שהתתה : א
ו
ויד העמההשההוטפטההפטהיתקהאהקההממנקהמאסמקמההפקוהמהתמקמהסממטה הררד
1
ה081ם 40 3 <> 1 8[ותש
ים + [אן =: [ןזא
:כ( 1 )מחן
: : ₪0
0 | 1 = 1 תם+
:( [1]א )1+618תש
וב
הג
(100 17966-, 12544) :א*
8 1521 :1
גוה718-16 8 78-56 מסהת]-?1 ה1%0ע76-5 008?-מץ ען-1ץ
אש ,רהה ו --.
2. לתצ 7 כדי להמשיך במעקב. כל לתיצה תקדם אותך בהוראה אתת.
תוך כדי ההתקדמות, עקוב אחר הערכים שבתלון הצפיה, כאֶשר השורה המוארת
תחלוף על פני הוראת ההשמה, כלומר מיד אחרי ביצוע הוראה זו, ישתנה
הערך של משתנה ג ויהפוך ל-5, כמתואר בתרשים 8.5.
3 לתץ 7 פעם נוטפת, הוראת סמ תגרום לשינוי נוסף בערך של 1, ותהפוך
אותו ל -6. המשך ללתוץ 7ע עד שתשלים את הסבב השני של לולאת 16נמש.
הערך של ג הוא 7, כמתואר בתרשים 8.6. הערך של א אינו משתנה.
ן | . פרק 8: ניפוי שגיאות בתוכניות : 227
תרשים 8.5 הער של משתנה 1 הוא 5
תס%הט/8ה0י | פטפ:] | =הסו%ק | 6[נקהש | וק | ₪165 | ₪115
1%
5 --%ח66הנחע 0% %ת5ה] | 1 [60 9 פחו=
| : :1 ההעפסתק
תאטן.
:67צס+תן : 1
:ע0ף8+הן 01 1 1.3 | פהתתהּ : א
הס
2 = 1
חן 00 3 <> 1 16ותש
:5 + ן*ן =: נן:א
0 60 1 =: 1 תם]
:( נן:א )ה61+ותש
13
: = (100 , 17966-, 12544) :אי
5 :1
₪הסה-10? מאגה79-8 78-5%02 מסגתך-7ץ7 10 76-50 | 200-פץ ק[פו-1ץ
תרשיס 8.6 הערך שליו3 השתנה והערך של א לא השתנה
(08%/08%0 | 8טלפ] | 5הם61ע | 116קה0ף תו | ₪416 | ₪18
: 11%
5 2 2 >ה6ת1ה|] 1066 58₪2%ה1 1 601 8 פחום
ו :1 תההּתפסתן
הט
:תו - 1
:הו )0 1 1,,3 ]1 טהתתהּ : א
הגףסם
:= ן
הנ4 60 3 <> !1 ה[גתש
. : , :5 + ןאן =: נן:א
. | :( 1 )שחן |
0
: ב 00 3 %0 1 =: 1 תם1
:( נן]א )ה[1%6ישט
וב
ותו .
: (108, 1?966-, 12544) :אי
1:7
גוחסו-718 6אגוז- 9 8-5 שסהתן-7ע (1+0ט0פ76-5 08 75-20 ע61ה71-8
ו |
228 חלק א'י הכרת טורבו פסקל |
בשיטה זו, כמו בשיטה הקודמת שנעזרה בהוראת ם1661עא, [יתן להסיק שהערך של:
1 השתנה בגלל הוראת ההשמה (6מסתתש1פפה).
תפריט שטסספ
לאחר שהתחלת לחוש בכותו של ה-66000002 ת11%6-1ט (המנפה המובנה), הגיעה
העת לבחון את כל עזריו, תפריט פָּטססכ, המתואר בתרשלם 8.7, מכיל פקודות
רבות המפקחות על השימוש במנפה.
תרשיס 8.7 תפריט פטספס
(03%/0810י | 26004 | פ>הס%1ק | 116קה₪ | תו | ₪116 שה
== 6 |
1
64 86 אט 0% %ע56ה] | 1 601 1 פחו
3ם-1ע6% 0% 6811 :
006פססעעק נתוץ
ה0- 0600981704 0423%660+
1 9*7ח0600991 6הם1 63003
5% 9 עקש טַב1 150
ט[ק015 ה65ת)סןן
ו10-6 6א79-83% 78-5662 77-1280868 ה1%0ש6-5ץ 5-0 ע[פת-1ץז
7-ה הרהה חח
מיד נתאר את פרטי הפקודות.
| 7 . פרק 8: ניפוי שגיאות בתוכניות 249 .
)061-94(
פקודת 808100866 מאפשרת לך לבדוק ערך של ביטוי או משתנה תוך כדי תהליך .
הניפוי, כמו כה .היא מאפשרת לך לשנות ערך של משתנה או ביטוי. |
| כדי להמחיש את האופן שבו ניתן להטתייע בפקודת 6 נמשיך | את תהליך.
| הניפוי מהמקום שבו הפסקנו (תרשים 8.6), 'המעברים בלולאת 1186מ₪ הבהירו
לנו, כזכור, שמשתנה + נמצא ה לתחומי מערך א, שבו לא התבצעו הצבות
כלשהן.
נשנה עתה את ערכו של. 1, תוך כדי ניפוי, לשם כך, נבתר באופציה 66הּגו1בּטַא₪
שבתפריט שָגוס6ס (פעולה. זהה ללתיצה על 4ע-1ש062), המהדר יציג חלון עם
= שלושה מלבנים אופקיים, שבהם רשום 66פגוּ1ָטַּע, 15גופסת (-6גוּ1ה שסא, הקש 1
במלבן ששמו 28112866 -ולחץ עסשתפ, הערך הנוכתי של 1 (במקרה זה - 7) יופיע
מיד במלבן ששמו +1טפפת, השתמש בקליד ה-85' כדי לעבור למלבן הנקרא שסא
סגונ1ט, הקש את המספר 1 ולחץ ע66ת8, הערך שב-16גו65, ישתנה בהתאם, הערך
של + בחלון הצפיה נשאר 7, המסך מתואר בתרשים 8.8 -
תרשים 8.8 אופציית. 0 של תפריט 9טס6ם >
סה | סק | 5הם20%1 | 6[ועחסל 7 הוה / 8 ₪16
ו 1% :
- 3-5 | 06ח606חוח)! 1 0 1 601 18 סחוע
יר .| לה 8
: - 8501% --- -
| | : וו
ל -- --- 08106 טסוו 2
:87הן : 1
0 ]| עצבתה : א
: ו
1 00 3 > 1 שו
:ם + [אן =: נן:א
:( 1 )שח[
00 3 60 1 =: 1 תם1.
(17966,188-,12544) :א*
| ל
102-00015 .>-1-00119 = מתסח- 718 78-5%62 ססבעד-7? -ק[6מ-1ץ
[
1
0 חלק א" הכרת טורבו פסקל. |
[
לחץ ₪50 כדי לחזור לתהליך הניפוי, הערך של ג שבחלון הצפיה הופך ל-1.
לחץ 7ע פעמים מספר כדי לבצע סבב נוסף של לולאת 116םש, המהדר מתייחס אל
הערך החדש של 1 כמו לערך שהוצב במשתנה מתוך התוכנית, הפעם, תיווכת
שהערכים שבמערך א משתנים, אחרי שהלולאה התבצעה פעמיים, מגיע ערכו של 1
ל- 3 והשורה המוארת היא לולאת 05+, המסך נראה כמו המסך שבתרשים 8.9.
תרשים 8.9 הערכים של 3 ו-א מיד עם סיום לולאת חש
תם08%/093% | 8ַטל | >הם1ג%ק | =[נקחהכ | וק 6 186
0%
5 6606ת1ח₪ 0% %ת0פה] | 1 601 | 1 פחו
| :2801 תהתפסעע
זט
:0 : 1
:ת080+ה1 01 1 1,(3 5 טהתעעה : א
ּ הגפס
72 = 1
הג059ם 00 3 <> 1 ש[גתש
:ם +|ןאן =: נן:א
:1 )סח
:0
:( נן]א )ה1561תש
, 66
וו
5
)69/100(
1:3 ,
טחסה-18] 6א%ב79-8 ק28-5%6 17-12806 ה1%0ש26-5 | ה25-000 ק[8ה-1ץ
ברור שהתנאי שבלולאת 116תא מנע את שינוי ערכו של איִבְּר [3]א.
בשלב זה ניתן לתקן את התוכנית, העבר את הסמן למקום המתאים, ושנה את
השורה: | ן
והפוך אותה ל:.
פרק 8: ניפוי שגיאות בתוכניות 251
שנה גם את:
תנע 60 3 > 1 16ותט
תנססס 60 4> 1 16נתט
לחץ 7ע כדי להמשיך בתהליך הניפוי, חלון האישור (תרשים 8.10) מופיע, אתה
מתבקש להודיע למנפה אם אתה מעוניין שהשינויים שערכת ישתקפו בתוכנית
המהודרת, במקרה זה אתה מעוניין לשמור על המהדורה המתוקנת, ולכן עליך
ללחוץ 2פ.
תרשיס 8.10 תלון האישור
2 פל | =הסו6ק | 1[!6עחש | תו | ₪6 | ₪116
6% ===
5 <* 060%חה1ה 0% 560%ה1 15 601 ? 8חו
:1 והעפסיע
זהּט
זט החג: ן
| (א/צ) 60011867ת 61110600 06ץס5 ב : %
הופסנ
:] =: ן
הגס 40 4 > ןג ש[גתט
:ם + [ַאן =: נןזא
:( 1.)סחן
: ₪0
:( נן:א )ת%61גתש
+ ₪160
(609/188) :אי
ּ 3 :1
0% ק[6ה-1ץ
הידד שש
2 חלק א" הכרת טורבו פסקל
חלון ₪106 כמחשב כיס
תוכל להשתמש בחלון 866ג411ע₪ כבמתשב כיס, גם
כאשר אינך נמצא בתהליך של ניפוי. הקש גיטוי
חשבוני כלשהו ולתץ ע66םע - התוצאה תןופיע
במלבן הנקרא 6נגפסא.
)061:1-23( ₪1[ %
פקודת 5%80% 0811 מאפשרת לך להציג את רשימת הפרוצדורות והפונקציות
המתבצעות ואת הפרמטרים שלהן. עיון ברשימה יסייע לך לעקוב אתר מהלך
התוכנית.
פעל לפי הצעדים הבאים כדי להכיר את פקודת 56580% 0811.
1 היכנס לעורך של טורבו פסקל, וטען את את תוכנית [1סאגא (תדפיס 5.15
בפרק 5).
2, הצב את הסמן על הוראת 6ם6 המסיימת את פרוצדוהת שִס5בַתַַהע6,
3 הפעל את האופציה עספעגוס ס> 60 שבתפריט תות (או לחץ 24), טורבו פסקל
תבצע הידור של התוכנית ותפעיל אותה, התוכנית תעצור כאשר תגיע לשורה
המסומנת., בתתילת התוכנית אתה מתבקש להקיש את | מספר הטבעות. הקש
4. בנקודה זו המסך אמור להיראות כמו המסך שבתדפיס 8.11.
0% ל | פרק 8: ניפוי שגיאות בתוכניות 258.
תרשים 8.11
תוכנית 011א אחרי השלמת הטבב הראשון של פרוצדורת 6%+פחה8תך >
תס>הט/אהפי | מק | 5>הס61ק 116קחנ | הו - 18
5 ]+41 >*חס6ה1ה0 1% 15 1 61 1 שחו
:11 סג ההתשסתע
תבט
:1587 : 0]215%5תשמתט] -.
:( %0400ה1 : עסט0ע5%0 6% ד ,5% 1 סוטיק
/ ו יכו
| | ה1צפ הפת%+ 8 < 215% ]1 |
:( 466תהך 0 (הס0ע5+8207 (1-215% )ת5]0ה78+ | "
:( 18798% 50 %0 ' 558767080 ,' הטםח' )ה1661עש.
:( ]06 ל (ת5+02000 ג1-215% 6ת516הב3ע5. 1
יע הש הר וג 62 0
- 'ְ : יק | הדי /
ּ גנ! ייה זט ו 6ת+ תס%תם' )1%6עט
ְ :( 0]215%5תספהט 6ה8801ע
1 2 13 ו )יס ]5+ .
, ₪16
> חו-718 8 0ף78-56 6ש8ע17-1 (76-801%0 75-2008 ק[1-86ץ |
4. הפעל את האופציה 8680% 0811 (מהתפריט או על ידי 3ע-0621). בפינה.
הימנית העליונה של המטך יופיע החלון של 5580% 0811 (תרשים 8.12).
= הרשימה שמציג 8580% 0811 ממוינת בשיטת 190 (נכנס אחרון = יוצא ראשון)
ומציגה את הפרוצדורות והפונקציות המתוחות ברגע. שבו הפקודה: מופעלת, תוכנית
1סאגא קראה לפרוצדורה ע6+פתהת עם הַפרמטרים (3,2 1); פרוצדורת
ע6+פמתהע> קראה לעצמה באופן מחזורי ארבע פעמים, והפרמטרים נעו מ-:
0 ,12 4 בפעם הראַשונה ועד ל -(0,1,3,2) בפעם. 8 | :
- באחד הפריטים ברשימה: הצב את הסמן במקום המתאים, בעורת קלידי הסמן .
ולחץ שסטתא, הסמן יעבור לשורה שהפעילה את הפרוצדורה או הפונקציה..
24 תלק א הכרת טורבו פסקל | 0 | |
תרשים 8.12
החלון של 5%680% וו08
: הס)הט/%הט | גל | 5הם%1ק | 16!קהכת | הג | 01% | ₪6
0:11.05 | >ח46תנגחש 0% %ת50ה] | 1 601 % 11 שחהג1
: :311 תבעפסיק
8% 0811 ן זט
:1058807 | < 215%5 ]0סמחטון
(1,1,2,3)ת ב התד |תג
(2,1,3,2)תםזפההתך
(1,2,3, ב)תת פה
(1,3,2, 4)ת סה התד
1
: 55020002 (18786% ;%7208ע558 (א215% )ת0]פההת+ 8
ו
ו הספת 8< אפות )1
:ן 1% 507000 080ת67ע5932 גנ 5-1 ו
:( 1878866 (' %0 ' נתסע]%ע5%3 ,' הטםה' )ה1%61עט
:( 08ע]5+370 (86%ע182 (ת5+02006 נ1-215% )ת6]פההת+
. : ₪0
. 0 .
הנפס
:01585 01 תסמהטח 6+ סח ' )יט
:( 01915%85תתט 6)ת16801
:(2 :3 ,1 6012155 מחטו )1+
₪60 . :
:.נְ:!
1 ע1-018-> - 011ת50-+!1 כ[1-06ע
סנק התג
כאשר טורבו פסקל מבצע הידור, נשמרות הכתובות של הפרוצדורות והפונקציות של
התוכנית, כולל אלה הנמצאות בקבצי 66גו1261.
|
פקודת תנע מבקשת ממך להקיש שם של שגרה נקראת, מאתרת אותה ומציבה את הסמן
על השורה הראשונה שלה.
(מס) סכ 60:3600ד
|
מתג 8ת091ו6 16 מפקת על הטבלאות ומבצע אֶת השגרות התומכות
בניפוי האינטראקטיבי.
פרק 8 ניפוי שגיאות בתוכניות 255
ברירת המחדל מאפשרת להפעיל את כל פעולות הניפוי, אם אתה מתכוון לבצע
הידור של התוכנית, ולא לנפותה, תוכל לחסוך שטתי זיכרון עם "כיבוי" המתג.
(05%9) 6ת41שגטוססכ סתס041מ568
יש להדליק את מתג חִתִסַפָו060 6מ55826810 כאשר מבקשים להשתמש במוצר תוכנה
נפרד של טורבו פסקל לביצוע הניפוי.
כאשר האופציה מופעלת, שומר המהדר את כל טבלאות הניפוי בקטע מיוחד של קובץ
ה-8אם,. גודלו של קובץ ה-8א₪, גדל, אך מהירות הביצוע של התוכנית אינה
מושפעת מכן.
מוצר הניפוי של טורבו פסקל הוא חבילת תוכנה עצמאית, המהווה כלי מצוין
לפיתות יישומים בעלי היקף גדול,. אולם, כפי שתיווכת בוודאי, גם המנפה
המובנה (ע986טכ86 ם16-1גטס) של טורבו פסקל נותן שירותים נאותים העונים על
רוב הצרכים.
(5082%) שתנ1נקקה3ח5 צְב13ק15נכ
מתג 86ת1קק508 צָ15013ע מאפשר לך לבתור בדרך שבה יטפל טורבו פסקל, בעת
הניפוי, בתצוגה שעל המסךץ, קיימות שלוש אופציות:
. 5 הצגה זמנית של המסך בכל פעם שהתוכנית מבצעת פעולת פלט.
לא קשה להבחין במסך, למרות שהמעבר אל המסך וממנו מהיר, כדי להשהות את
תצוגת מסך הפלט, יש ללתוץ 5ע-16ג.
= בּצְ8א1., הצגה זמנית של מסך הפלט אחרי כל הוראה בתוכנית.
= 6תסא, הצגת מסכי העורך ומסכי הפלט זה על גבי אח, השתמש באופציה זו רק
בתוכניות שבהן לא קיים פלט למסך, שכן התצוגה המתקבלת עלולה להיות
בלתי ברורה, כדי להתזיר את התצוגה למצב תקין, יש להשתמש בפקודת
ץ ב1-65ס.
ברירת המחדל היא 6תהתס.,
6 תלק א' הכרת טורבו פסקל. , /
-
צ3[ספגס +05
ו
פקודת 18018 מ36+268 מאפשרת לך לתדש את התצוגה שעלן המסך אחרי שהתוכנית
המנופה עם אופציית 6תסא של מתג שַת1קק8פ צ150138ם 1
תפריט תס ה3ּז/ %הסנם
בתחילת הפרק ראינו, שהמנפה המוכלל של טורבו פסקל מס
עולה" עליו.
לע לך לעיין בתוכנם
של המשתנים במהלך התוכנית, הכרת גם את האופציה צספמנוס %0 60 שבתפריט מגות,
שבעזרתה ניתן לקבוע נקודות עצירה זמניות שבהן עוצר המנ
התוכנית וממתין להוראותיך.
פה | (0862ו0מ36) את
|
תפריט 856 08% המתואר בתרשים 8.13 מכיל את כל האופציות המפקחות על
תהליכי העצירה היזומה.
תרשים 8.13
תפריט ח83%0א/ 68%
(2203%/08%0 | 5009 | >הסן%6עך 6 הו
י 1%
5-77 תס%גּש 8006 1% 5ת56חה] 1 601
התס%אט 1656
תס%גּש +01
|
5 [11 6ט0חכן
| 0%01055ע [31 687
8 %ח01קאגשיעם ו
1
6%הגסקהסיעל +אסה עסן
ווה110-6 6א9-88? ע718-5%6 6סהתך-17 הת656נש6-5ק
5-0 ס[ס-1ץ.
וו ו וה
בלב ב ו רל פרק 8: ניפוי שגיאות בתוכניות 297. .
מיד נתאר את האופציות הללו,
16 ₪60 )091- =
פקודת 3601 6 מאפשרת לך להוטיף. משתנה או ביטוי 0 חלון הצפיה. המנפה
מציג את ערכם של כל הפריטים: שננתרו, עד אשר תהליך הניפוי מסתיים או עד
שתוכן חלון הצפיה נמחק באמצעות פקודת פסִסְ6הּש גנפ 6
ערכו של משתנה או ביטוי מוצג. ליד שמו. חלון הצפיה -- באשר מתווספים
פריטים, וגודלו המרבי נקבע באמצעות תוכנית.: מאם פאז בעת ההתקנה: של
המהדר. ניתן לדפדף בחלון בעזרת קלידי הסמן. ן
המעבר בין העורך וחלון הצפיה מתבצע בלתיצה על 6א. . באשר חלון הצפיה פעיל,
ניתן להוסיף אליו פרטים באמצעות קליד 5מד. ן
תה 6
פקודת 8 6 מוחקת. ו הצפיה. את ריט התורן 0 2 הפריט
ל מופיע לי |
. בדי 0 את הפריט התורן יש לעבור לחלון הצפיה. עם 6. הפריט: התורן הוא
הפריט המואר.. יש להאיר את. הפריט. הרצוי בעזרת קלידי הסמן ל 6 פעם
נוספת, בדי לתזור לעורך.
כאשר נמצאים בחלון הצפיה, ניתן למחוק פריטים בעזרת קליד 61;
תס6הח ₪016
= פקודת מס6הּט 61% מעתיקה את הביטוי הנצפה הנוכתי לחלון עריבה מיותד שבו
ניתן לשנות את ערביו בעזרת קלידי העריכה הרגילים של טורבו טק אשר את
השינוי בלחיצת בכ או בטל אותו עם ₪50,
- כאשר חלון הצפיה פעיל, תהליך. השינוי פשוט יותר. יש להאיר 2 הפריט המתאים
וללחוץ :66ת₪, י |
|
8 חלק א" הכרת טורבו פסקל | | 00 |
65ב 211 סטסתסת
פקודת 5סת66ש 811 6טסחפת מבטלת את כל הפריטים שבתלון הצפיה ומתזירה את
החלון לגודלו המקורי.
| )תמ1נסק8%סעם 616שסע' (8ע-06:1)
פקודת 8% 6 הופכת את השורה שבה נמצא ה
סמן לנקודת עצירה, כל
השורות המהוות נקודת עצירה מוארות. הפעלת פקודת %ת01ק68%:כ 816פס1 על
שורה, המהווה כבר נקודת עצירה, גורמת לביטולה של נקודת ו זו.
58נסס%הס:ם 111 :6108
פקודת %8מ01ק68%ע2כ 811 ע6168 מבטלת את כל נקודות
%תנסכאהּס:ת >אסא חסג
פקודת %ת01ק68%:ס אס שטנ מעבירה את הסמן אל נקודת
העצירה.
העצירה הבאה. לשם כך
היא מבצעת במקרה הצורך פעולות של דפדוף או קריאה לקובּץ אחר, הפקודה אינה
מבצעת פקודות בתוכנית, אם אין בהמשך התוכנית נקודות עצירה, הפקודה מציבה
את הסמן על נקודת הפיר הראשונה שבתוכנית.
תפריט תטת
ו
בתפריט מגות השתמשת כבר פעמים רבות, הוא מכיל את פקודת מנות עצמה (ההוראה
הגורמת להפעלת התוכנית) ופקודות מיוחדות המאפשרות לףפעיל תוכניות מתוך
המנפה.
מיד נתאר את הפקודות הללןו:
פרק 8: ניפוי שגיאות בתוכניות 259
תגוע (9ע- 06:1)
פקודת מטת מפעילה את התוכנית, טורבו פסקל מבצע באופן אוטומטי הידור,
לפני שהוא מתחיל בהפעלה, כשהתוכנית שלך עברה שינויים מאז ההידור האחרון,
תתבקש להודיע למערכת אם אתה מבקש לבצע הידור לפני ההפעלה. .>
במהלך הניפוי משתמשים בפקודת תות כדי להמשיך לבצע את התוכנית מהנקודה שבה
התרחשה העצירה היזומה האתרונה.
6% ההּעסשסנק (2ע-66:1)
פקודת 6866 תהעשַסעע מורה למהדר לסיים את תהליך הניפוי הנוכתי, כל שטתי
הזיכרון, שהוקצו באופן דינמי על ידי התוכנית, משתחררים;? כל הקבצים
הפתותים, נסגרים; הערכים שבקבועים עם הגדרת הטיפוס, מתאפסים; הערכים
שבמשתנים, נשארים כמות שהם, השורה הבאה שתתבצע היא הפקודה הראשונה של
התוכנית.
הפקודה אינה משפיעה על נקודות. העצירה והתצפיות, כדי לסיים את תהליך
הניפוי ולהפעיל את התוכנית באופן רגיל, יש לפעמים לבצע גם את הפקודות
5 811 סטסתסת ו-%65םת68%201עכ 811 61085. ּ
עספעט6 סםס 0ס6 (4ת)
פקודת עספעטס ס% 60 מבצעת את כל ההוראות שבתוכנית עד שהתוכנית מגיעה
לשורה עם הסמן, בעזרת פקודה זו ניתן לעצור בנקודה מסוימת מבלי להגדירה
קודם בנקודת עצירה.
כאשר נמצאים בתוך תהליך הניפוי, פקודת עספעטס 60 60 גורמת לתוכנית להמשיך
ולהתבצע מהשורה שאחרי השורה האחרונה שהתבצעה, אם התוכנית עדיין לא הופעלה
או אם הפעלת זה עתה את פקודת 656% הּמפַסמע, התוכנית תתתיל לפעול מהשורה
הראשונה שלה, במידת הצורך, יתבצע הידור לפני ההפעלה.
0 חלק א': הכרת טורבו פס קל %-
60 ססב:נ (7ת)
פקודת 60ם1 ססה8ּעע' מבצעת את ההוראה הבאה שבתוכנית. על ידי הפעלה רצופה של
מספר פקודות סטם1 22866, ניתן לבצע את התוכנית שורה| אתחר שורה, אם השורה
הבאה בתוכנית היא פניה לפונקציה או לפרוצדורה, גם הפרוצדורה או הפונקציה
יתבצעו שורה אחר שורה, אם השורה הבאה האמורה להתבצע (מצאת ביחידה אחרת או
בקובץ 610066ת1, המהדר יטען תתילה את היחידה או הקום. | =
עסטס 0 (28)
פקודת עסטס 5560 דומה לפקודת 160 1:806, אולם אם השורה הבאה בתוכנית היא
פרוצדורה או פונקציה, היא תתבצע כצעד אחד ולא שורה אחר שורה, המנפה יעביר'
את השורה המוארת להוראה שאחרי הפניה לשגרה.
ב עספט (5ע-116)
פקודת םמ80266 עשפטש מציגה את מסך הפלט.
סיכום
בפרק זה למדת להשתמש במנפה המובנה של טורבו פסקל כדי לאתר שגיאות לוגיות
בתוכניות ולתקנן, בעזרת דוגמה מעשית פשוטה ראית כן תהליך הניפוי כרוך
בעיקר בצפיה בערכים שבמשתנים נבחרים ובפיקוח על תוכנם. פעולה זו מתבצעת
תוך כדי הפעלת התוכנית במלואה או חלקים נבחרים שלה. |
תהליך המעקב נקרא [תנסה8ת ותהליך הצפיה נקרא סי ההוראות שבהן
מתבצעת עצירה יזומה של התוכנית. נקראות %65ם01ק08%,
הפיקות . על תהליך הניפוי מתוך הסביבה המוכללת של טורבו פסקל מתבצע
מהתפריטים שַגומסכ, ב₪8%56/ 68%עם |ו-תגות. ן
הכרת את האופציות של תפריט פַגופפפ המפעילות את המנפה| ומפקחות על פעולתו.
י
1
8101856 =
11 580%
סזגוססססינס המ |
09919 7 8 תד
פַמ1פַפגומ06 5881086
ה ץ1518ס |
פרק 8: ניפוי שגיאות בתוכניות 261 .
בדיקת ערך של ביטוי או משתנה
הצגת רשימה של הפרוצדורות והפונקציות
המתבצעות ברגע מסוים, עם 0 שלהן.
העברת הסמן לשורה הראשונה של. פרוצדורה או
-פונקציה מסוימת.
פיקוח על | תמיכה/היעדר תמיכה = בניפוי
אינטראקטיבי. .
הכנת התוכנית לניפוי בעזרת מוצר. התוכנה
המיוחד של. טורבו פסקל.
בחירת אופציות התצוגה. >
הכרת את האופציות של תפריט 0 שבו קובעים את נקודות העצירה של
ּ התוכנית 2% המשתנים שמבקטים לצפות בהם.
200 860
61066 8601
[ס8%ש 0156ע >
| 860168 311 סטסוחסת
ףמנסע 8%סעם 16פפסי1
| סע 1 ב
סע לאפסת סב
הוספת משתנה או ביטוי לחלון הצפיה.
> ביטול פריט הצפיה הנוכתל =
עריכת גורם הצפיה הנוכתי.
הסרת כל הפריטים מתלון הצפיה. .
יצירה או ביטול. של נקודת עצירה.
ביטול כל נקודות העצירה.
העברת הסמן לנקודת העצירה הבאה, |
הכרת את האופציות של תפריט תגות שבו מפקחים על התוכנית במהלך הניפה -
12 חלק א" הכרת טורבו פסקל |
= תנות
₪ 6566ע תה8עפסלע
₪ עספעטס 50 60
= ספתנ ססבּשי1
₪ עסטס ק5589
₪ תססעשם עספט
הפעלה ראשונית של התוכנית.
סיום תהליך הניפוי הנוכתי.
ביצוע כל ההוראות שלפני השורה עם הסמן,
ביצוע ההוראה הבאה.,
פעולה דומה ל-60םת 1 8086ע2, אך ביצוע
הפרוצדורות והפונקציות כיתידה אחת.
הצגת מסך הפלט.
4
| 0-ו
6
.
.
טורבו פסקל
המדרירך השלם
כולל גירסה 5.5
שפר את מיומנותך בעזרת המדריך השלם למשתמש בטורבו פסקל שבהוצאת "אופוס".
הספר הוא שילוב של ספר לימוד המסביר, צעד אחר צעד, כיצד להשתמש בטורבו
פסקל וספר עזר המתאר את המהדורות השונות של טורבו פסקל עד גירסה 5.5.
הספר כולל עשרות דוגמאות של תוכניות שימושיות שיסייעו לתוכניתן המתחיל
להשתלב בסביבת טורבו פסקל. בספר - המדריך השלם למשתמש בטורבו פסקל-תמצא
רשימה מלאה של הפונקציות והפרוצדורות של טורבו פסקל.
המידע המקיף שבספר יסייע לך ליצור במהירות תוכניות מורכבות בטורבו פסקל.
בעזרת הספר תלמז:
מ לעצב תוכניות טורבו פסקל
. לפקת על פעולות התכנות
:ודומאט 06 2088-08-00 :ורי רקי הצטרוי קף ממד שה פכהה הס 1 ענמבקע פפלאנ
- לטפל בקבצים ובספריות הספריס של אופוס מפתחים את
מיומנותך ולא רק את ידיעותיך.
-] לעבוד בתצורות טקסט וגרפיקה המערכת כוללת אנשים שאיכפת
להם - מומחי מחשבים, מחנכים
| לנצל את פונקציות 205 וה-8105 ומקצועניס בשטח ההוצאה לאור.
.| לנפות את תוכניותיך
₪ להשתמש בתוכניות תושבות בזיכרון
אופוס הוצאה לאור בע"מ