טורבו פסקל המדריך השלם כולל גירסה 5.5 – חלק ב'

ספר זה תורגם מ- Using Turbo Pascod. פותח על ידי Que Corporation – ISBN 0-88022-396-0

OCR (הסבר)
טורבו פסק7 המדריך השלם כולל גירסה 5.5 אופו6 הוצאה לאור בע"מ 6 חלק ב' 4.9 ןְ / ן | טורבו פסקל המדריך השלם כולל גירסה 5.5 מאת מיכאל יסטר אופוס הוצאה לאור בע"מ ספר זה תורגם מ- 1 ססעט? פתנגפש פותת על-ידי חברת תסנ61העסקעסס .086 מיכאל יסטר 1 ססמפטץ 0% 5.5 ם%62510 תס 85868 18 681פ8ע ססעטץל פתנפט 0 א1588 | מ61610 00806ת18 ב115שתע 81ת02191 | . 68 פ5םסת16א 11 | מסנ286סק:0ס6 מט0 עס 1989 (ס) %ם9נעצסס6 | עפ 066ג115פטע ת81%10ע 00896ת18 שספצ:ססא / 9 (ס) 00072146 .266 658עע 0205 | תרגום: רות שדר 7 הי חרי הוצא לאור ב-1990 על-:ךד ו אופוס הוצאה לאור בע"מ הודפס בדפוס טופ-פרינט בע"מ (6) כל הזכויות למהדורה העברית שמורות ל"אופוס" הוצאה לאור בע"מ ת.ד.65088, ת"א 61650. אין להעתיק או לשכפל ספר זה או קטעים ממנו בשום צורה ובשוס אמצעי אלקטרוני או מכני, | לכל מטרה שהיא ‏ או לעשות ‏ בו שימוש מסחרי כלשהו, לרבות צילןס והקלטה, ללא אישור בכתב מהמוציאים לאור. ./-- + הרהה רלטיה %08. > חלק ב' | התכנות פרק 9: קלט מהמקלדת 205 פרק קלט מהמקלדת בתיעוד המלווה את רוב מוצרי התוכנה, החל במעבדי תמלילים וכלה בטורבו פסקל עצמו, נמצא בדרך כלל משפט המבטית לך שהמקלדת "מתנהגת בדיוק כמו מכונת " כתיבה". במשפט זה יש מידה רבה של אמת, יש קשר אלקטרוני בין המקלדת והמסך: לתיצה על קליד גורמת להופעת התו המתאים על גבי המסך; ניתן לתקן שגיאות על ידי הצבת הסמן במקום הרצוי, למחוק תווים באמצעות המסג (52265אסמ22), או קליד 1, ולְהקיש אותיות "גדולות" בעזרת קליד 1+6ם8. מאחורי כל פעילות כזו מסתתרות למעשה שלוש פעילויות נפרדות: הקשה באמצעות המקלדת, הצגה על גבי המסך ועריכה, ברוב המקרים, הפעולות הללו מתרתשות במהירות רבה מאוד, והמשתמש אינו יכול להבתין במורכבות הרבה שלהן. שפת טורבו פסקל, לעומת זאת,| מבתנה ביץ הפעולות ומעמידה לרשות התוכניתן אמצעים לפיתות כלים רבי עוצמה להזנת נתונים. פרק זה מציג את הטכניקות שבעזרתן יכולות התוכניות לקבל מידע מהמקלדת. הפרק מתאר את אופן פעולתה של המקלדת, את הדרך שבה מאוחסנים הנתונים ואת מקום האחסון שלהם, כמו כן, מתוארות בו הדרכים שבהן ניתן לנצל את הכלים של טורבו פסקל כדי לגשת לנתוני המקלדת ולטפל בהם, הכרת הדרך של זרימת הנתונים תסייע לך לנצל את כלי טורבו פסקל במלואם. פרמטרים של שורת הפקודות טורבו פסקל יכול לקלוט נתונים מהמקלדת בשני עיתויים: מתוך התוכנית (כלומר כאשר התוכנית פועלת, על ידי שגרות כמו 2686 (-םת26861) ובאמצעות שורת הפקודות. | 6 תלק ב" התכנות למעשה יש כאן שתי גישות, או שתי שיטות. עבודה. בהתאם לשיטה אחת מאפשרות התוכניות להקיש פרמטרים משורת - ₪ שיטה זו נועדה פשוט לקלוט נתונים. למשל: 6 צ 0 ([מ0ס,36%68115 פאטס ע1טר פמ זמתצתק השיטה השניה, הפעלה מתוך התוכנית, גמישה יותר ומאפשרת.: לעבוד עם המשתמש באופן. הידברותי (אינטראקטיבי) ולפתת דו-שית, ניתן להציג הוראה או הנתיה (יסבא 116ע), לערוך או לבדוק את הנתונים המוקשים ולהתייחס אליהם (מבּתיי 5ב 6 .ףסשת8ע 0% 00% ₪85 שסמחגום) או לבקש, אישור נוסף להוראה ' (?6תנגוםפ גוסץ 6קת). | קיימות שתי פונקציות לקליטת נתונים מתון שורת הפקודות: הפונקציה )מגוססה-דבק, המחזירה את מספר הפרמטרים של שורת. הפקודות; והפונקציה ע6פתהיזהּס, המחזירה פרמטר מסוים. ע28289% מהווה מעהך של מתרוזות, שכל איבר במערך מכיל פרמטר אחד. למשל: הפעלת (2828952)3 תחזיר את הפרמטר . השלישי של שורת הפקודות, (החל ב-3,0 205 מחזיר ו את הנתיב ואת שם הקוב של התוכנית המתבצעת). ּ - תוכנית שא1תס (תדפיס 1), שבה מוצג כל פרמטר של שורת הפקודות בשורה נפרדת, מדגימה את אופן השימוש בפונקציות הללו. תדפיס 9.1 ; 6118 תפינססין ו העבט | ;6 : 1 - תנשסט תפ 1 > : %תוססתפינפק +1 ( = . פ0ססותפיפק 6 6-1תמתהסס 506 [צ1ש ת1בשה ע+ 210886" )ת1%01יט | | 6 0 005ת9צת 60 1 =: 1 ע0+ ;( ( 1 )ס6פתהעהק ,' :7 ,1:2 ,( 'תס6סתביקבקי )תמו | . תס כדי להפעיל את שאז61 מרמת המנחה של 205 יש להקיש: 31116.0885 אאז 001 - 1116 :1 מס66תפינפק 1% :2 ע6ססתפיט 5 2) 0201 אא = 1 :1 ב 8 :2 ע60סמסינטק | 5 :5 עסססתפיזהק ‏ ההנחה היא שבין הפרמטרים מפרידים רוותים: או תווי פבּע'. פסיק, לוכסן, נקודה-פסיק ונקודתיים נחשבים לתווים רגילים ולא למפרידים, אם תשתמש בהם בטעות כבמפרידים, | עלולים להיקלט . פרמטרים שאינם נכונים, כמו בדוגמאות שלהלן: ו פאז | | %5כס, %6ס 0 11 | ע6ססותפינט > 02 /161 אאזז<6 6102סססגום :1 - 2 | 8 58 610 מאז01< 0157=5 1 תונטק 0 :2 ע0%6תפיו . לעיתים קל יותר לקלוט את כל שורת ההוראות כמתרוזת אתת ולעבד. אותה תו אחר ‏ תו.. בפרק 12 תלמד שכל שורת ההוראות נמצאת בזיכרון, 128 בתים. אחרי קידומת - הקטע של התוכנית. (פ5ע), תוכנית 2 (תדפיס 9.2) מדגימהּ את אופן הגישה לשורת הפקודות: תדפיס 9.2 .7 1,109 תהידשסיז ' , 6+ ;| 127 .שת8%:1 = קיית 0 | : | 01168 |‏ סמ ]0 ו א 0 ה1שסט ; ( 080 ,90₪א1+סעת )תלת =: 6ת1 001 . מס 1 > ( "6ת00011 )1686 1 - . )ופיצה 8 06 ב[ל1א תק ענס 0 כ 06 ((י"סת0001 ,' :5ע₪12280%02 * ,( "8 )קת 1 )00 1ימט 2 : ; .6 6 ו 2 | 80.0 4 / פס ,5 1 :1900 *28 > כל. המחרוזת של שורת הפקודות נקלטת. ומוצגת, ללא קשר . לתוכנה או למורכבותה, נושא קידומת הקטע של התוכנית מתואר בהרחבה בפרק. 2. ּ 8 חתלק ב" התכנות 0/9 | ו פעולות מקלדת | המקלדת אינה אוסף של מתגים ותוטים 5 היא 0 מיקרומעבד משלה - 0 8 (או אינטל 8042 ב-1ג) המפקת על פעולתה. המיקרומעבד של המקלדת נקרא בקר המקלדת (ע20110+מסס 6700820א). ‏ | לכל אחד מ-83 הקלידים שבמקלדת יש מספר (מ-1 עד 83). מספר זה, הנקרא קוד חיפוש (0068 מ5608) מתבסס על מיקומו של הקליד, אין כל קשר בין מספר הקליד : ובין משמעות הקליד או ערך ה-15011 שלו, (טבלת הקודים הֶללו מופיעה בספרות. העזר של טורבו פסקל), כאשר לוחצים על קליד, נשלת קוד התחיפוש שלו אל ה-8048; שחרורו גורם לשליחת קוד תיפוש נוסף, שערכו גדול ב-128 מהקוד הקודם, כלומר: הסיבית. השמינית של קוד התיפוש היא 0 כאשר לוחצים על הקליד, ו-1 כאשר מרפים ממנו, (ב-*'ג השיטה שונה במקצת, הקוד הנשלח בזמן הלחיצה ובזמן השחרור הוא קוד זהה, אולם לאות השחרור מיתוספת קידומת של בית בערך 4620 בפרק 3 למדת כי ניתן להגדיר כל תו 5011( בעזרת בית אחד, שבו 8 סיביות. במערכת התווים הסטנדרטית של 5011 יש 128 ערכים (הסיבית השמינית היא 0). היא כוללת אותיות גדולות וקטנות, ספרות וסימני פיסוק, במערכת -המורתבת של תווי 5011 יש 128 תווים נוספים (הסיבית השמינית היא 0 הם כוללים תווים גרפיים, אותיות בשפות שונות ותווים מתימטיים ומדעיים,. אין במערכת. תווי. 1 צירופים כמו ת-216 או קלידי פונקציות. קלידים וצירופים אלה נקראים "קלידים מיוחדים", והם מאפשרים להגדיל עוד יותר את מערכת הסימנים העומדת לרשות המשתמש. מספר הקלידים קטן ממספר הסימנים האפשריים. ההבחנה בין לתיצה ושחרור של קליד מאפשרת להשתמש בצירופים המיוחדים, למשל, ארבע הפעולות שלהלן: לחיצה על 1+6ת5 | לחיצה ‏ על 0 | | . שחרור 0 . שחרור 51%6 > א ₪0 5 מזוהות על ידי המערכת. כ-0 "גדולה". בקר המכ לחת אינו מנסה "להבין". את משמעותם של קודי החיפוש. הוא פשוט מודיע = ל-8086 על הימצאות קלט מהמקלדת, ה-0ע6 ממיר את קודי החיפוש לערכים (תווים) שימושיים, כל תו מאותסן במלה נפרדת, החלק בעל. הערך הגבוה נקרא בית 8611ת, והתלק בעל הערך הנמוך נקרא בית מורחב. | > פר קִ 9 קלט מהמקלדת 269 אם התו הואי אחד מ-256 התווים של קוד 15011 המורתב, הוא נשמר בחלק הגבוה של המלה, והתלק המורחב אינו מוגדר (אם כי, בדרך כלל נמצא בו קוד התיפוש של הקליד), הקשת 0 "גדולה" תגרום להופעת הערך 1 בבית 5611ג, (81 הוא קוד 1 של )). כאשר מוקש תו מיוחד, מכיל בית 8011( אפס, והבית המורחב מכיל את הקוד ה"מורחב" של הקליד, הקשת סטפַפ, למשל, יוצרת בית 45011 הכולל אפסים, ובית מורחב שערכו 73. לסיכום: בל תו המוקש באמצעות המקלדת יוצר שני בתים, כאשר הבית הראשון הוא תו 5011ת, אפשר להתעלם מהבית השני. כאשר הבית הראשון הוא 0, יש לבית השני משמעות מיוחדת, והוא כולל קוד מורתחב, שאינו דדספה. קריאת נתונים מהמקלדת ברוב התוכניות קולטים תווי 5011 באמצעות 26806 או םמ68061ם2, כפי שהתבצעה הפעולה בדוגמאות שראינו עד כה, %כור: פרוצדורות אלה אינן קשורות ישירות למקלדת. הן מקבלות את הנתונים באופן עקיף, מתוך אזור אחסון פנימי. באשר קוראים משתנים, מהווה אזור אחסון זה מקור קלט. הפרוצדורות 29688 (-תְַבב26 4 |(-26861 הן פרוצדורות הקוראות נתונים לתוך משתנים. כאשר הפרוצדורה 4 מסתיימת, מופעלת מיד פרוצדורת 86886 או ת36861 שאחריה, לעומת זאת,. כאשר הפרוצדורה מ26861 מסתיימת, המערכת מתעלמת מהמשך השורה-(כולל תווי החזר גררה והזנת שורה). התוכניות 1תמסגמת (תדפיס 9,3) ו-2תמסתפת (תדפיס 9.4) מדגימות את ההבדל בין שתי הפרוצדורות, בין שתי התוכניות יש הבדל אחד בלבדז: תוכנית [אמסתתחת קוראת את המשתנה אעסצ באמצעות 2686 ואילו 2תפפתפת קוראת אותו באמצעות 081, תדפיס 9.3 ; 68001.1 פטס (עהמס : אעסצ (שת1ע5% : סתפא תדפיט 9.3 ממשיך בדף הבא 0 0 חלק ב': התכנות / - 0 | המשך תדפיס 9.3: | | תנשסס 7 ' :0() עס 65(צ) ?סגותנ6תסס 6 18גוסםפ" ‏ )166יש ; ( אעסץ )2088 ( אעסצ 6 , ' בגש עסשפתה שגוסץ'י ) 401 יחש ; ( ' ?סתהת מטסץ 18 746 )6סניט ; ( | סותמז[ )ת0801י1 ; ( שמא ,' ,60 ) 5011 ינ תדפיס 9.4 ה ותהיהססידסן ינפש ;אפס : אעסצ .₪ַת1ע80 :‏ סתגפא | תנשסס ; ( ' :ס() עס 68(צ) ?סגות61תסס 6 16גוספ' ‏ )156י ; ( אעסצ )ת[080ע | ;( ( אעסצ )000850 ,' פגש עסשפתה יגוסצ' )ת1%61עש ( ' ?שתגת עגוסץ 18 188 )186י ; ( | סותא )ת9801ע ; ( שתפא ,' ,18110' )ת1%61עט שתי התוכניות קולטות משתנה אחד מטיפוס םס ומשתנה אחד מטיפוס מתרוזת. הפעל את 1תמכסתמא, והקש במבוון חמישה תווים - 82066 - > במקום תו אחד, ואתר כך תו התזר גררה, הפרוצדורה 6868ע2 תציב את 8 ב-אעסצ ולא תמשיך להתקדם באזור האחסון, את התווים הנותרים (066₪ע ותו התזר הגררה) תקרא ברצף פרוצדורת ת6841;:: 6 :0ס(א) עס 68(+) ?מנסתסס סש 18גוסתפ 1 פבש נסשטפת3 עטסצ 6, ,16110 ? סחזהת נגוסץ 15 )הז ב-2 אפסתפת פרוצדורת ת6801ע מציבה את התו 8 במשתנה אעסצ, ואתחר כך מתקדמת באזור האחסון, היא. מתעלמת מהתווים הנותרים (6סס ותו התזר הגררה): 6 :ס(א) עס 68() ?6גות61תסס ₪6 16גוסת5 1 85 עסשפתה עגוסצ בקע ?הת נגוסץ 15 >הּתא . 60עע ,16110 פרוצדורת 2686 משמשת בעיקר לקליטת קבצים. כאשר חקלט. הוא מהמקלדת, יש להשתמש ב-מ6861א, רצוי להשתמש בפרוצדורת מ6801: נפרדת לכל משתנה. פרק 9: קלט מהמקלדת ‏ 271 = קלט של שורות. | ניתן לשמור נתונים: זמנית באזור האחסון, ולהסתייע ב-686ע2 וב-מ26861 כדי לערוך אותם במהלך העבודה, פקודות העריכה העומדות לרשותך הף: 6 2 ה מחיקת התו האחרון שהוקש . 6( ור > מחיקת כל שורת הקלט עססתם. א סיום .שורת הקלט ושמירת תו סימון סוף השורה ור 10 - התזר גררה/ הזנת שורה) יש להניח כי הספקת כבר להשתמש בקלידים אלה, אם טרם עשית. זאת,; הקש את תוכנית 0א1עא21 (תדפיס ‏ 9.5) נסה את הקלידים. שים לב כדי לסיים. את התוכנית יש להקיש. 1-6 2 | | . = תדפיס 9.5 ₪ ה א קר %- 2 כו נשַת1ע8% : ע56 ;( '.5סת11 5000 עשסתס 16886ק' )ת%01גימו % ע5% )ת1%01י | ;08196 11סתט - | | . . הכללת יחידת. 5 בתוכנית (משפט > 0 מאפשרת לך להשתמשי בצירופים ' נוספים למטרות עריכה: ה-021 0% = כמו 8 פ-0%91 0700000 % | התזרת תו אחד משורת הקלט האחרונה ע-0%21 ו % החזרת יתרת שורת הקלט האתרונה | 8 ן | : כמו ו תוכנית: 1 אדמא1.ז (תדפיס 9.6) מדגימה את הכללת יחידת 2% הפעל את התוכנית ונסה להשתמש בקלידי. העריכה החדשים. ההבדל היתיד בין תוכנית זו לתוכנית הקודמת הוא הוספת משפט 65פגו, 22 חלק ב': התכנות > 5 %-/ |] 1 תדפיס 9.6 ; 136181 ה נ6ע0 08פו : שפט ו : 5% | תנשסס " ; ( '.08ת11 5006 ע%66ת0 6856[ק' )ת1%01/ | - | 4 / ע5% )ת[080ע ; ( ע5%5. )ת1461יש 8196ע 11סתט 0 2-), וסוף. הקובצ | הכללת יחידת %צ0 הפכה את המקלדת מהתקן קלט פשוט לכל לטיפול בקבצי טקסט. אחת האופציות שהתווספו בשל כך היא האופציה לבדיקת מצב של "סוף קובץ". יתחידת 65% משתמשת במשתנה כדי לקבוע אם מותר לבדוק מצב של סוף קובץ. בדרך כלל, המשתנה נמצא במצב של "לא אמת" והבדיקה אינה מתאפשרת. כאשר +50 660% הוא "אמת", גורמת הקשה של 0621-2 בעת ביצוע הוראת 688: או ת681ע להעברת +₪0 ("דגל" סוף הקובץ) למצב של "אמת", והקשת נתונים נוספים לא תתאפשר עד אשר תופעל הפרוצדורה: : 6גוסםת1 )6ספסת המחזירה את +0ס₪ למצב של "לא אמת". פרוצדורת 66% "פותחת" את המקלדת מחדש לקלט. תוכנית 2אדטא1ד/1 (תדפיס 9,7) מדגימה בדיקה של מצב סוף קובץ. התוכנית מבקשת לקבל שורות לתצוגה עד אשר מקישים 0621-0 או 0621-2, הקשת 0621-6 מסיימת את התוכנית, והקשת 6521-2 יוצרת מצב של סוף קובץ - ₪0% עובר למצב "אמת" וההודעה: 666266 06 ת08 6868 סנס סא מוצגת. פרק 9 קלט מהמקלדת ‏ 273 " תדפיס 9.7 לכו חתפ יסיס | | ;006 658 צפט נשת1ע8% : ע5% / ה1שססו ; 6גו1 := : 0009004 ;( '.פ6ת11 5086 ע66ת6 16856ק' )ת1%61יש - ב ;( ע5% )ת[680ת ;( ע5% )ת1%61י - 11ס6תט ; ( '66260ת6 06 ת08 6868 6עסח סא' )ת1061יט ו - .0 שים לב, הקשת 1-2ע06:תוך כדי ביצוע של פרוצדורת ם6861ע גורמת להצבת מחרוזת ריקה ב-862, כאשר הפרמטר של מם6801ע הוא משתנה נומרי, מוצבים בו אפסים. קבצי טקסט נדונים בפירוט רב יותר בפרק 13. קריאת תו אחד פונקציית 686% של טורבו פסקל יכולה לזהות פעולת מקלדת אחת, כאשר התו המוקש הוא תו 8011, הפונקציה מתזירה את ערך 5011 של התו, כאשר התו המוקש הוא תו מיוחד, הפונקציה מחזירה אפס, במקרה זה יש לבצע את הפונקציה פעם נוספת כדי לקלוט את הקוד המורתב. תוכנית 561 שבתדפיס 9.8 מציגה את הערכים המותזרים על :די עְסַאהְבּסא. מסיימים את התוכנית על ידי הקשת 2 קטנה. תדפיט 9.8 671 תפינסס (%ע0 08פ. > שפט ועפתס : ת56160%10 תנקסס 1% ע040סת =: ת0ס50160%1 תסמ ( 0 )עס = ת56160%10 +1 ( ( ע3080%0 )6עס ,' התג 0 ' )ת1%01עש 6 ת56160%10 )ת1491יש ;'2' = ת56160%10 %11תט ּ . תס , ;( ( מ86160%10 )6עס ,' 224 חלק ב': התכנות . כאשר מפעילים את 1צשא ומקישים 3, ם, 0, 0, ת, 5, 1ת, 2ת, סחסא ו-א-6נת מתקבלות התוצאות הבאות: 9 תה 0 2 = 97 8% 0 תג 0 ן = םס 1 תה 0 ו ' 0-99 5 תה 0 י 41 6 : רת ן 5% המספרים 97, 98, 99, 81, 82 ו-83 הם ערכי 35611 של האותיות שהוקשו. המספרים 59, 60, 71 ו-35 הם הקוד המורתב של הקלידים המיותדים. קריאה ללא הדהוד 00 - 2 יש מקרים שמבקשים למנוע את הצגת הקלט המוקש על גבי המסך. דוגמא טובה למקרה כזה היא הקשת סיסמה, תוכנית 21551 (תדפיס 9.9) קוראת את התווים המוקשים ומציגה כוכבית במקום 2 אחד מהם, התוכנית מאפשרת לבצע שני לו ומסיימת. . תדפיטס 9.9" | | 0881 תפיופסקן ;02% 05פט 0% ; "1.4198 = 5002065 | = 06 ;| 8 |פתגע6פ = 8שתגע%פ ,8קת1ע5% : 2858026 תסנ6סוגת | ינפש ; 6+עט : 00% 5521388 : שת1ל5אסוו 2 : ענלוו תננשסס ;0 =: 000% ;7 =: שתנינ6פאינסוו 0% =: קעפתן 0% תנשסס תסג% 00208800 11 ; ( ע80%9ס3 )000886 =: עע%תע / ב( '*' )166עש / תפמל 15 <> ( קינס )יס 4ב ; ענצתת + שתנעספאנס =: שתנ1עספאנסוו תדפיט 9 ממשיך בדף הבא המשך תדפיט % ; ( %תט00 )סת1 5-0 ;(18 = 5 עס (8 = 6תט00) הי תסו =: 0עסשפפפק | . ; 60 תנשסט 01 5% ,1 )לאסססם | ב 1 צגוסץ 662 8 ) 6 0 תס 060205 <> 6ע80פק 39 , ת01 ימו 5 (כ' :עַע% 6ינסות 2% וב ו תוס תפ בנ <> העסשפמ8ק 11 : ;ת1661יט ; (. ' .ת129%010סת)גגה טס 0886 1ק " . 90 )ת1561י : 6 | ,+ | > ; תס 5 / 7 ;ת101, ; ( ' !תעשסנתק 526 60 610086 )ת1601י 09 --------------------------7 7777777777 ויוי . המשתנה 880266 שבתוכנית . זו יכול להכיל צירוף כלשהו של שמונה. תווים, הסיסמה אינה חייבת להיות מורכבת מתווים. אלפנומריים בלבד, היא יכולה. לכלול גם קלידי פונקציה, מסג (80%80806) וכדומה, כדאי לזכור שקשה יותר לפצח סיסמאות המכילות. תווים שאינם ניתנים ‏ להדפסה, נסה לשנות: את יהסיסמה שבתוכנית ולשלב בה את תו המסג: (280%50800) אחרי האות , הסיסמה, במקרה זה תהיה: 'שפד'8א'ת.זם' (88 הוא הקוד של המסג), ‏ כדי לשלב' בסיסמה את קליד הפונקציה שמספרו 10 (10ע) יש להגדיר את 560266 כ: '68'15א0א'תעם'. - = ספם, 08%ע66:1-2 ו-1-0ש05. אם הקשת והרצת את התוכניות לדוגמא שבספר זה, נתקלת ' כבר. בשימוש ב-0521-8268% כדי לסיים תוכניות, ‏ אם יש לך. ניסיון כלשהו בּשימוש ב-6ק, השתמשת בוודאי פעמים רבות במקש ה-₪856, מקשים אלה שימושיים מאוד כאשר עוסקים בפיתות תוכניות וניפויי, אולם עלולים לגרום תוצאות בלתי רצויות כאשר מריצים תוכניות ויישומים, נסה לחשוב מה תהיה תגובתו של משתמש המריצ אחת מתוכניותיך, שלחץ בטעות 0621-8268%, לאחר שעות של עבודה. במקרה הגרוע, יתרחשו אחרי הלחיצה הפעולות הבאות: - ₪ 0 אק . התוכנית: תסתיים. הקבצים לא *יסגרו, ולכן כל הנתונים: יאבדו, יהיה צורך "לשפץ" את התקליטון באמצעות א05א01. אתה תזכה לשיחת טלפון בלתי נעימה... שפת טורבו פסקל מאפשרת לך "לשתק". את פעולת הסיום. המוקדם היזום של התוכניות. יחידת ₪62% משתמשת במשתנה הבולאני 08%ע060%82 כדי לשלוט על הפעלת אבּ6ם- 66:1, כאשר 60%81-68%ם0 הוא "אמת" (ברירת המחדל), תגרום לחיצה על אה6:ם -6%11 להפסקה של פעולת התוכנית בפעם הבאה שתנסה להציג דבר מה על גבי המסך. כאשר 60%2208%ת6 אינו אמת, אין ל-0621-5268% כל השפעה, תוכנית 00068 (תדפיס 9,10) משתקת את 0621-8:68% ומציגה רשימת משמעויות של קלידים מיוחדים, נסה להדר תוכנית זו והרץ אותה מחוץ לסביבה המוכללת. כדי לסיים את התוכנית יש ללחוץ ₪56806, אהס6שם-0621 או 061-0. תדפיט 9.10 06040 ותפידטסיזכן : ;02% 08פגו - %פתסס ;29196 = 001082 : כסס סח : בי :2 ; 09, : עסשפוו ,0 | ; 1611108ו3040ת 1מדנס . סינגוספססינ ו . תנקסס 6גרצ1 =: כססזסתת ( .6%0 ,61501808 ת60ע50 , מקת1פס01 116+ עסם%ס עתג ] [ ת010מת1חד40 ותהיצשסינכן ףססמט 202 1260גוסע ] - י תנשס , 6 =: 0900084 011802 ;( 805.7 5000181 עשסתם' )ת1601ישט ;( '.אסע1-0ע09 עס ,1-0ע0%2 ,80800 1% 66ת1מתנס"" )ת1501יחט : 4 השס ת0בף 005500 +1 ; עַסַאהַמסת =: םס [ 7א8סעם-0%21 עס 0821-0 + ס (3 = ( 60 )6עס) +1 : ?עס 8 תנשסס ₪0 (27 = ( ג6 )8עס) יב 1 / (א/צ) 7 0ף סתפט גוסץ סיענגום גוס 7420 )156יעש ; ( עסשפתב )ת0801ע ;ן 'א' ,'צ' ] ת1 ( עפשפתת )00356 11פתט מסמז "ע' = ( עפשפת )6 +1 תדפיס 9.10 ממשיך בדף הבא | א | | פרק 9: קלט מהמקלדת ‏ 277 המשך תדפיט 8.10 | . ; 1168גו הרדנס 9 8 ; תס תנשסט תפמל (0)עמ0 = 0 11 | >( ע3080%0 =: 01 : + (ב6)0ע0 0886 ;( '₪6ס' )ת1%61יעש : 71 ;( 'שסעעה ס0? )ת1%61עט :/ 72 ;( 'סט0שת' )ת1601עא : 75 (( 'אסעעה 161%6' )מ%01גיט : 75 ; (-'שסעקה 06(גת' )ת1601יא :3 77 ; ( 'סום' )ת1501: : 79 ;( 'אסעעה תא0ע' )ת91501 : 80 ;( 'תקשת' )ת1561י : 81 |( 'פת1' )ת1501:א : 82 (( '261' )מ1501עא : 85 ;( '690ע0021-2'. )ת[0פ1י : 114 (( 'שסעע 0%21-1016' )ת1561:א : 115 (( 'שסעעה %תשגת-1ע0%' )ת1%61:א : 116 ;( ישתת-1ע0%2' )ת1501: : 117 ;( 'תקשק-0%71' )ת1%61יש : 118 ((‏ סחסה-0%21' )ת1%01:ט : 119 ( 119-(0)0עס ,'-41%/ )ת1501:א : 120..128 ( 1..9 01₪1%8 + 16 ) ;( '0-41%' )ת1%91:ש : 129 ; ( "'פגות0]1-41%' )ת1%01עט : 180 ;( '1גגע-11%' )ת1%01עט : 181 . ( 'ס0שת-0%21" )ת21%61א : 182 ; ( 58-(מ6)0עס ,'ת' )ת1%01: : 68. ₪ ( 1..10 פעסע הסג%סתנת ] | (( 85 -(ם6)0עס ,'ת-11%ת9' )ת1%61עא : 84..95 [ 1..10 5ק6א% תסנססועות + 016 ]' י ; ;( 95 -(6)0ע0 , 'ת-0021/ ) ת1561יא : 108. .4 | ( 1..10 ףַּעַ29 תסגףסתעת + 0521 | ;( 105-(ם6)0עס ,'ע-41%' )ת1501עש : 104..118 [ 1..10 פק6א תסגפסתטת + 1% ) . ו ן | לי - ; ססס סע 11שתט . תס - , - . . 2 . פעולת השיתוק של 1-8268%ע0% פועלת רק | בתוכניות מהודרות ומופעלות - מחוץ לטביבה המוכללת, כאשר נמצאים בסביבה המוכללת, הקליטה של 6621-8268% אינה מתבצעת על ידי תוכנית אלא על :די 2 ולכן אי אפשר לשתק את הקליד מתוך התוכניות. 8 חלק ב" התכנות | שינוי מצב בדיקת ב66:1-826 אם אתה מבקש לגרום לכך שלחיצה על 5268%- 0621 תגרום להפסקה מיידית בפעולת התוכנית, ללא המתנה לפלט הבא שיישלת למסן, תוכל להשתמש בפרוצדורה 58% כדי לשנות את מצב הבדיקה של 68%ע1-2ע06, התתביר המתאים לביצוע הפעולה הוא: ו ;( ת200168 : 2-08%17068% )56602-08% %מ6 56850 66 0[6ת61גוססא (? 6גומע' )56%02208% הפרוצדורה גורמת למערכת 205 לבדוק את מצב 0621-868% עם כל פניה למערכת, ולא רק בזמן ביצוע פעולות קלט/ פלט, כדי להתזיר את המצב לקדמותו יש לבצע: 56602-68%) 28156 (; הפרוצדורה 66%5062168% מחזירה משתנה המודיע לך מהו מצבה הנוכתי של בדיקת א%הסעת-1ע052, ;( מ2001068 : 2268%1069% עבט )00602:08% אזור האחסון של המקלדת קוד 28011 וצמדי הבתים של הקוד המורתב, הנוצרים בלתיצה על קליד או צירוף קלידים, נשמרים באזור אחסון מעגלי שבו 16 מלים (32 בתים) בזיכרון המרכני של ה-6פ, כל תוכנית המבקשת לקלוט דבר מה מהמקלדת, קוראת מתוך אזור אחסון זה, הקריאה מתבצעה ביחידות של מלה (שני בתים). אזור. אתסון מעגלי דומה לתור, האתסון הוא על פי העיקרון שלי ראשון נכנס - ראשון יוצא, כאשר ל"תור" הזה אין למעשה נקודת התחלה ונקודת סיום. התווים ממלאים את השטתים הפנויים, לפי הסדר. נקודת ההתחלה של אזור האחסון נקראת "ראש" (688ת). "זנב" אזור האחסון (5811) " מצביע על המקום הפנוי הבא, כאשר אזור האחסון מתמלא (כלומר התווים מגיעים לכתובת העליונה שלו), ה"זנב" מצביע על נקודת ההתחלה (הכתובת הנמוכה ביותר של אזור האתחסון), כאשר הראש והזנב מצביעים על אותה נקודה - אזור האחסון ריק. אחרי שמקישים 15 תווים, הזנב אינו *כול להמשיך להתקדם, כיוון שאין יותר שטתים פנויים באזור האחסון, ניסיון להקיש תווים נוספים יגרום להשמעת צפצוף, המודיע למשתמש שאזור האחסון התמלא. . פרק 9: קלט מהמקלדת ‏ 279. תרשים 9.1 מדגים כיצד. ניתן להכניס את הפקודה *,* הדת, המופעלת . בלחיצת עסטתם, לתוך אזור האחטון המעגלי. שים לב, נקודת ההתחלה אקראית ל הנתונים. המועברים לאזור האחסון של המקלדת אינם נמחקים, והנתונים החדשים נכתבים פשוט על גבי הנתונים הישנים, נקודת ההתחלה של אזור האחסון שמורה בכתובת %0040:%0018₪ בזיכרון. כתובתו של הראש נמצאת. ב-ג%001 :70, וכתובתו של הזנב נמצאת ב -%0016 :0, הבתים הנמצאים בראש ובזנב מכילים את הערכים 818 עד 0, המצביעים על ההיסט של הכתובות שהם מתייחטים ו כתובות הראש והזנב אינן מהוות. חלק מאזור. האחסון עצמו. 4י. ניתן היה להציבן בבל מקום בזיכרון. למען הנותיות, מציבה אותן. מערכת 208 ממש לפנל : נקודת ההתחלה של אזור האחסון, תרשים 9.2 מתאר את אזור האחסון והמצביעים | אחרי הקשת *,* 8דכ, מקום הראש, כאמור,. נקבע בור אקראי ו הדרך הטובה ביותר להבנת אופן פעולתו של ו אזור האחסון היא התנסות. תוכנית 580809 שבתדפיס 9,11 מציגה את תוכן אזור האחסון ואת מקום הראש והזנב. התוכנית מסתייימת לאחר 500 תצוגות או בלתיצת 1-0ע06, . תרשים 1-1 פקודת %% זפ באזור האחטון של המקלדת. אזור האתסון המעגלי ריק. הראש והזנב מצביעים על אותה נקודה. אזור האחסון מתחיל להתמלא. האות " הראשונה ‏ פ גדולה, נמצאת במלה ' שעליה.: מצביע הראש. ‏ מצביע הונב. מתקדם למלה הפנויה הבאה. תרשים 1 ממשיך בדף הבא : 0 חתלק ב" התכנות המשך תרשים 9.1 18ם אזור האתסון של המקלדת כל הפקודה (*.* 18ַם) נמצאת באזור האתסון וממתינה לרגע שבו התוכנית תקרא אותה. הקריאה תתתיל במלה שהראש מצביע עליה, ותמשיך עד אשר הראש והזנב יתאחדו שוב. הקריאה התבצעה. הראש והזנב מצביעים על אותה נקודה.. אזור האחסון ממתין לנתונים חדשים, שיוצבו במקוסם שהראש מצביע עליו. | הפקודה| המקורית | נשארת באזור | האתסון. | פעולות | ההקשה הבאות "יעלו" עליה. | פרק 9: קלט מהמקלדת 21 תרשים 9.2 דוגמא לפקודח *.* 18פ המוקשת לאזור האחטון של המקלדת 0 |ו450 86 8 >-. 00 ו 0000080 0000038 ₪ וו 0 מ 0 0 8 7" וו מ 6 ---- !81ד 58 | 28 0/8 13 4" 3 | | 0040:0032 0 | 00400030 0040002 ך בו 00 00 08 00 09 8 7 6 <------ ₪980 0000025 04 | 3 2" 0 0 | 0 0 > 0040:0010 6 1 6 " (ווד) 8 826 | = | 0040001 (₪686) > תדפיס 9.11 / ; גווסב[ מזפינפסינקן 006 65פגו : ַ = תפט (%6עס : שסת ,88ק ,1 7 וס 1169 ;%6ע : . 91106" = ;90040:8001₪ 6סגו[ספכ8 66עמ +0 [ 1..82 ]קהעעה : 107+גומ עס 90014 : 92040 6סגובספכנה 6 : שס6ת1סק0בס1ן ;90010: 90040 6ג טכ עס : שעססתנססןנ1מך תדפיס 9.11. ממשיך בדף הבא 12 הלק ב': התכנות. 0/0 | י יש המשך תדפיס 9.11 : 5 --] [ 66ע018018 15 69++גומ 6 51805 עתגות סג אסמיצ ] ;0 =: פמאק ;10 =: שסתאתפו : ; ת01190 ; ( '500+גו 0826סע0א 6מ1' )9196 ;( 1 ,51 )%א00%0 ; ( '806ת06ת ‏ 48011' )150א ;( 5 ,35 )צא00%0 | 0% 8% ;1+ 8 =: פמפק ;5 =: אסת תנפסט 0 1 60תא60 16 =: 1 ע20 ; ( שסת ,82 000 7 / [1*2-1 ]90+טטעסא )םס ,1*2-1[:4 ]-16+גותע0א )146יש ; ( שסת ,41 )%א00%0 ₪ 4 הכ )1 + שסת =: שסת : - ; ( 2 ט61 עססת1811001 ) - 85 =: אסת7411 ; (/2 610 ע66ת1080001 ) - 55 =: שסתהפסת ; ( א1981190 ,20 00 ;( '<-1911 (' ,2:ע%6ת7911001 ,1)' )188עשט תושסט תסג+ א8110 <> ותה ד +1 ; ( שסתאתה1 ,20 ( 0 ( 808068 11 | ;( * ו ש191130 =: כ ; 4 ; ( ש30פס 47 ) ₪00 ;( '(' ,602:2ת1080001 ,') 1080-> ' )156עש ( 8608ב 500 81602 5600 ] 0 < פפפע %11תט : ּ 1% - וא תרשים 9.3 מכיל דוגמא לפלט אפשרי של התחלת התוכנית, הראש והזנב מצביעים על אותה נקודה, ולכן ברור שאזור האחסון ריק. כאשר יוקשו תווים חדשים, הם ייכתבו על גבי התווים הנמצאים כרגע באזור האחסון. התו הראשון של הפקודה (פ) יוכנס לאתר ההקשה בבית שהזנב מצביע עליו, לאתר ההקשה יתקדם הזנב למקום הפנוי הבא (תרשים 4) ן התו הבא (2) נמצא במקום שהזנב מצביע עליו עתה. זוהי הכתובת הגבוהה ביותר באזור האחסון, ולכן הזנב חוזר לנקודת ההתתלה ומצביע על הכתובת הנמוכה ביותר (תרשים 5). [ | פרק 9: קלט מהמקלדת 283 תרשיס 9.3 אזור אחסון ריק ]ות 0תהסםטס סוד 5011 6 2 2 )58( 111-< 2 32 >-]|6₪86 )58( 2 2 .2 2 2 2 32 2 2 2 2 2 2 2 12 2 2 12 12 12 2 2 2 2 2 2 2 2 תרשים 9.4 אזור האחטון אתרי הקשת התו פ 9 )ות 0תהסכטסון[ סד 05011 5606006 )68( <-11ג7‎ 2 2 68 2 32 >-688 )58( 2 32 2 2 2 2 32 32 2 32 32 32 "72 32 2 72 32 32 2 2 2 2 2 2 2 32 32 32 4 תלק ב': התכנות. //--- | תרשים 9.5 אזור האחסון אחרי הקשת התו 1, זז 6ינהספטסן 6תז | 05611 6 733 1] 3 68 2 | 32 >-₪36 )58( 2 2 2 32 2 2 2 2 2 32 2 32 2 32 32 2 2 32 32 32 2 2 2 32 | | 2 2 32 2 <-!1ז (38) . התו השלישי (ם ילה, אז מתואר בתרשים תרשים 9.6 אזור האחסון אתרי הקשת התו א עם ]וט 0תהססטפון בתך 4 05011 3 ] 73 (58) 0688-> 32 - 2 68 32 2 32 32 32 32 32 32 32 32 32 32 2 2 32 32 32 32 32 2 32 32 | 32 2 / 32 2 <-11גד (32): פר ק 9: קֶלט מהמקלדת 285 לאחר הקשת כל שאר התווים ולחיצת צתס6תש (13 28011), אזור -האחסון נראה כמו בתרשים 9.7. תרשים 9.7 אזור האחסון אתרי הקשת הפקודה *.* 016 ]זט 6תהספטסון שד 0 ]₪561 23 1 73 (658) 80ש|]-> ‏ 32 9 08 2 2 2 12 12 2 2 12 2 2 2 2 12 2 12 2 <-11ג1 (42) 20 13 9 * 42 0 . 46 9 * 42 7 12 19 ת 82 תרשים 9.8 אזור האחסון אחרי עיבוד הפקודה *.* אס 2 זט 6יהססטסו שתך ₪561[ 60 ב2 1 ב7 42| 68 12 12 12 2 12 2 12 2 2 2 2 2 2 2 (42) 8880-> 32 2 <-1נַָג1 (42) 28 13 9 * 42 2 . 46 9 * 42 7 2 19 ת 82 6 חלק ב" התכנות | 2 הראש התקדם תוך כדי קריאה מאזור האחסון. הראש והזנב מצביעים עתה על אותה נקודה, ולכן אזור האחסון "ריק", הנתונים מפעולות המקלדת הבאות "יעלו" על הנתונים הנמצאים עתה באזור האחסון. | מערכת 205 מתייחסת אל אזור האחסון כאל אזור "ריק", למרות שלמעשה נותרו בו נתונים. מיפוי מחדש של קודי חיפוש שיטת העבודה עם המקלדת עלולה להיראות כתסבוכת מיותרת, שכן מדוע צריך קוד חיפוש אם קיימים תווי דזספג? | קודי החיפוש אינם מיותרים., בזכותם ניתן להגדיר את הקלידים באופנים שונים, בהתאם למבנה המקלדת המקובל במדינות שונות (נושא זה מתואר בהרתבה בספרות העזר של מערכת ההפעלה שלך). ניתן גם להשתמש בפקודת ₪080 של 205 כדי להגדיר בהתאם לצורך ערכים חדשים, או מתרוזות לקלידים. כדי שתוכל לבצע שינוי משמעויות של קלידים, צריך קובץ 8צ16.5א00 שבמערכת שלך לכלול הוראת 5 דפאת=10טמס. | תוכנית 1 עשסשת שבתדפיס 9.12 מגדירה מתדש את כל האותיות הקטנות, והופכת אותן לאותיות גדולות. הפעל את התוכנית, צא מטורבו והקש פקודת 058 כלשהי. לא תצלית לגרום להופעת אותיות קטנות על המסן. תדפיס 9.12 ; 60011 תיסינ [ עפצ ;ינפס : ע10%00 ו תנשסס [ 086ע6סקט %0 1000709086 3900110 ] | 60 '2' 50 '8' =: 106602 ע0ס+ (( 'ס' ,80-(ע6)10%09ע0 ,';' ,(ע26)10%66ס ,7]' ,(27)עם0 ,' סמ60' )ת1%61ע . תס ₪ כדי להתזיר את המצב לקדמותו, בצע תיחול של המערכת - או הפעל את תוכנית. 2 (תדפיס 9.13). פרק 9: קלט מהמקלדת 287 תדפיס 9.13 5-ו - 0 400612 תפידססיון יגפטי נהתס : ע166060% , תנפס [ 100020886 %0 080% 109020880 6ת00011ת | 0 80 '2' 60 /8' =: ע16%%0 עס+ ;‏ 'ס' ,(ע0)16%06ע0 ,';' ,(ע026)16%00 (%]' ,(27)עם6 ,' סמסס' )ת1%61ט : - -- וו וו דוגמא שימושית יותר נמצאת בתוכנית 3שפסטת (תדפיס 4) המציבה בקליד 210 את ההוראות: פז'פ סמפטי הפעל את 3עמספת וצא מהמהדר, תוכל להפעיל את טורבו פסקל מכל ספריה, פשוט בלתיצה על 10ע, תדפיט 9.14 - 6 . 0 ו . ; 00615 ותהידשסיסן . 5 השס | :0 1907; "080 18; "קפ ססיי;0;68]?, (27)עמס ,' סם60' )ת%61גי 0 הקשת נתונים לתוך אזור האחסון תוכנית. יכולה לרשום נתונים ישירות בתוך אזור האחסון של המקלדת, ולגרום בכך להפעלת תוכנית אחרת, בשרשרת, מיד אחרי שהיא מסתיימת, תוכנית עעטפססת (תדפיס 9,15) משתמשת בפרוצדורה בת 0ס0)אשא המציבה מחרוזת באזור האחסון, ממש כאילו הוקשה באמצעות המקלדת, כאשר תוכנית ששטפספת מסתיימת, מתבצעת מיד הוראת *,* תד. 8 חלק ב" התכנות : | תדפיס 9.15 2 תהדססינכן ; ( שת1ע5% : בתבתס0 )תמ 1000 6ינגוססססנן 6 עמ 01 [ 918..902 ]קפעש8 = ק8ע 0 | ינפש ;6סעם :3 1 ;56ע : 0005126 %0014: 92040 ססגו[ספכה 56ע0 : עס%תנסקפסת ;90010: 90040 56גו501כ8 66עם :; עססתנסס11ך , יתסא | : 200+גוץ6 תנפס ; ( 60018 ,90040 )262 =: 1202גטסץ6 18 =: ע66ת11001ך ; עס6ת1סק 311 =: 16801000 ; ( תה 00 )שת 10 =: 0049126 תנפס סס 0069126 %0 1 =: 1 ש0ס1 ;( [ 1 ]000820 )026 =: [ ע66תנסק811ך ]0++גוץ ; ( [ 3 ]6תהתחסס )106עש ( + עססת01ק1811 =: עססתנסק811ך : ; תס 6 =: [ עססתנסס 1811‏ ]"7ע110גתעס ,1 =: [ 1 + עססתנסק 7811‏ ]1007+צגותעסא ;2 + %08ת1911001 =: 'ע%66ת1811001 . רז תננשסט ;( '*.* 018' )בתמחה00+אסא . תס בדיקת אזור האחסון פונקציית 8672268860 של טורבו פסקל מתזירה "אמת" כאשר באזור האחסון ישנם נתונים הממתינים לקריאה, פונקציה זו שימושית כאשר מבקשים לאפשר הקשת נתונים מהמקלדת, מבלי לעכב את תהליך העיבוד כאשר אין' נתונים. בתוכניות משחקים, למשל, התנועה שעל המסך ממשיכה כל עוד לא התבצעה פעולת מקלדת. תוכנית 1 צפא (תדפיס 9,16) מציגה את אותיות הא"ב ללא הפסק, במקום שבו נמצא > הסמן, כדי להזיז את הסמן (וליצור שרשרת אקראית של אותיות) יש להשתמש בקלידי התיצים, התוכנית מסתיימת כאשר לוחצים 6תפ, | | > פרק 9: לט מהמ קלדת 289. תדפיס 9:16 ; 0714 ותהינפסנס | > ,2% 08פגו %פתסס 6 = 56ע 1 - אסת ;4 = 056 :| תחטנס0. - 78186 = 000108 : 00070 ;2 = 6עסא : 00%900% הזנקסס ; עספי01 1 | / תסמ 6 1 [ ע008080%0 9260181 ] | תסמף (0)עםס = קסאבפסת +1 +ס ( יס רו [ אסעצה סט ) 11 - אסת =: אסת : 72 8 [ שסעץ 161% )+ - ;1 - תתו001 = הוזגו001 : 75 | אסעעב %גשגת ] - ;1 + תת[00 =: | תתט[00 : 77 [ אוסיניד תוס + ;1 + אסם = אסת : 80 עס "ו ן | ;גת =: 00ט0800 : 79 . נ תס ;1 =: שסת תסמט ([ 1..25 ] תג שסת) ססת 11 ;1 =: 001 תסג%> ([ 1..80 ] ת1 עעו001) ססת +1 : ; ( אסת ,תונו001 )₪050 065005 := )005900% 06 26( + 1, תו (69 + + כ ) 6 ביט / ; 0800001 531תט ‏ " . תס שים לבי הוראת פסקל | 0-ה יי / זהה לי . | | | 0 0 0 > [5001 0 - קיימים מצבים שבהם אתה מעוניין לקרוא תווים מהמקלדת, אך אעך מעוניין לקבל תווים שהוקשו משום מה לפני כן. דוגמה מוכרת למצב כזה היא פקודת: מפתתם של 05, כאשר מקישים *,* שפתתא, הפקודה אינה מתבצעת מיד, אלא רק אחרי שמשיבים בתיוב על השאֶלה ג גוסץ סצג. 0 חלק ב" התכנות. | שתי דוגמאות לשימוש בפרוצדורה 562גוּמת5גו1ע: הדוגמא הראשונה קוראת את תוכן אזור האתסון למשתנה דמה בשם ע6קחט, (כדי להשתמש בפרוצדורה, צריכה הוראת 62% 68פגו להימצא בתתיָלת הקטע המתאים).: (1 תס1פעסט) ת5+0גותת15ע2 6עגו0סססמס | עהט נעהםס : צע>קתת ת61ס (";02% 0808" 08ע1גושס3) ,צ6א86ס6ת =: עָ6קת2 640 - ו 6 2 הדוגמא השניה מציבה ערכים זהים במצביעי הראש והזנך, וגורמת למערכת להת*יחס אל אזור האחסון כאל אזור אחסון ריק. | (2 תס1פעשט) ע%6+טמב8גו21 66026ססמס ת61ס 7 =: 0301 ;01" 5 ]סא =:[ב 00 + 5 ]תס 7 קלידי ההזחה (1%6מ5) וקלידי ההיסט 0/0 | יש קלידים שמשתמשים בהם אך ורק עם קליד אחר, למשל לתיצה על 1+6ת5 או % הופכת את האות המוקשת לאות גדולה או קטנה (לסירוגין). לחיצה על קליד הזחה (כלומר 5% 1 או 16) מפעילה שגרות פסק של המקלדת, המשנות את התו הבא לפני העברתו לאזור האחסון. שגרות פסק דומות בודקות גם את מצבם של קלידי ההיסט (68051.00%, 0% 6%סס/ ותגוא, ו-15) מצבו של כל קליד הזחה או היסט מתואר לפחות בסיבית אחת שבשני הבתים שכתובתם %0040:%0017 ו-%0040:%0018. | ארבע הסיביות הגבוהות בבית %0040:%0017 מצביעות על | מצב ארבעת קלידי ‏ ההיסט, (למשל: לחיצה על 51:06%ק03 מדליקה את הסיבית שמספרה 6, לתיצה נוספת על קליד זה מכבה את הסיבית), ארבע הסיביות הנמוכות בבית מצביעות על מצב פרק 9: קלט מהמקלדת 291 קלידי ההזחה (16, 1עסס ושני קלידי %6+521). תרשים 9.9 מתאר את הסיביות שבבית זה, שים לב לעובדה שניתן להבתין בין %+1ת5 שמאלי וימני, הסיביות שבבית זה דולקות רק במהלך הלתיצה על הקליד, כאשר מרפים מהקליד, הסיבית אינה דולקת. תרשיס 9.9 בית מצב המקלדת בכתובת %0040:%0017 "0 6% 2 ||סזספ | 068 חא | 68051.00%| | זזספחו חאוסס חאוסס | 0 5-1 ח0 :518109 | 0050 ו-ת0 שופ שפד = | ->=->->%ּ-2ץ->-ד-93עצ+[ְּּּ/ 7 /0.-- יר יי ארבע הסיביות הגבוהות שבבית %0040:%0018 מודיעות אם התבצעה לחימה על קלידי ההיסט, (למשלי סיבית 6 מתייחסת ל-0808100%, סיבית 3 מתייחסת לצירוף 0%ותטוא-062:1 המפסיק זמנית את פעולת התוכנית), כפי שניתן לראות בתרשים 0, יש בבית זה שתי סיביות פנויות (ב-0(5ע מצביעות סיביות אלה על מצב הנקישה (0116%) של המקלדת.) סיביות אלה מתעדכנות אוטומטית עם כל לתיצה או שחרור של קליד היסט או הזחה, קליד 8 רושם גם נתונים באזור האתסון, הוא אתראי בעיקר ליצירת הערך 0 בבית 1 וליצירת הערך 82 בבית המורתב. שגרת הפסק של המקלדת בודקת את תוכן בתי המצב של המקלדת לפני הכתיבה לאזור האחסון, ולכן עריכת שינויים בערכים שבבתי המצב מחקה למעשה לחיצה על הקלידים. תדפיט 9.10 בית המצב שבכתובת 40040:%0018 958" 0 1 2 3 4 5 6 7 והטא-ז0 | | |וסזספ 0% ו טא | 00% 08051 | %זספהן |: 6% | חספ החשספ חשספ השססם אס | 0= 00 1 = חשסס :פט1ז518 ץ6א 2 תלק ב" התכנות | תוכנית. ע₪א5%0₪. (תדפיס 9,17) מדגימה כיצד השינויים בסיביות משפיעים על התווים שהוקשו, התוכנית מסתיימת כאשר מקישים 2 קטנה. , | תדפיט 9.17 / , 5110 מוגופסוק ;02% 098פגו טי ; ימתס : ת59190%10 ;,90040:%0017 850106 66ע0 :- 1שה1תעסא ,8 050מגו820801 סע :- 1802תש20 > ; ( 66עס : ת60100ס5 )81%55שס51 6קגוס6ססצ ו ופט : / ;6 : 00826 תנשסס =: 00806 תנשסט 00 0 %0תאס 7 =: 1 ש0ס+ ( 707 )160 תסםל 0 = 00826 שת8 תסחנסססט +1 | ;( 17 )166עש 0186 | | : ,1 ו 00086 =: 0000806 0 ; תס תנשסס . 0% ; ע3080/6 =:! ת56100%10 ;( ' ' ,4:( ת50100%10 )6עס ,7 "7 ,ת90190%10 )1%9עש ; ( 2691881 )81%55שסגפ (( 7 | )1%6עש ; ( 3091862 )81%5שס5 ; 5011 ינאו ;'2' = ת50160%:0 1נשתו .1 תרשים 9.11 דוגמא לפלט של צ85א5₪0₪ 0 46 | טסט וחהזססזק צם א עס חפ .8 0/810896 ]| 00000000 00000000 9-8 00000000 .00000010 8 וח +%חסום 0 00000001 - 8-|0ז1ח0 00000000 :00000100 8 זז 00000000 00001000 8 זו 00000000 ס 08081.00% 66 0 01000000 00000000 | 1/00/670886 8 01000010 00000000 | 8 פרק 9: קלט מהמקלדת 293 תרשים 9.11 מתאר כיצד הצירוף 08051.06% ו-1+6ם5 יוצר אות 8 קטנה. תוכנית עשפצטא (תדפיט 9,18) מדליקה ומכבה, לסירוגין, את הסיבית של קליד ההיסט 0305100%, שים לב לצורה שבה מוגדרים המשתנים. תדפיס 9.18 7 ותהיססינסן 508 020; 0% [ 0040:0017 8% 719 סא ) | ;880 = פד ,0 = 000 ;0 = 0040 [הוגון >= ה80א502011100 = ת0סקעא+ רג ;804 = אוס0ע106י0%1 ;906 = ה161%511%00% ;1 = תא1+100מפ6תס גת [ 0040:0018 8% קַ718 א )| ;980 = תאסקעסא%זספתך = האס0אס0 08031 = 110 ס, [התגואך ,10 = תאסכעסס, 5020111 8 = ת0אס 1+ הסט ;אס : 601%68סעד ;.90017: 90040 06גו809801 66עס : 18₪1תשסת ; 90040:90018 06גו901מ8 66עס : 19₪2תעסא הגפס 010 [ 019 0808 פתעגו1 ]| ; (ת0308100%0 ססת) תה 1801"ק0א =: 1ש18תקסת ;( 'תס %''ת18 708081004 )ת1%91יט 1% ; ע68040 =: 661%608קעך ; ( 170001608 )106יש ;'2' = 081%68סע 11>תו ; ת5601 גי ; ת1001יט [ תס 0808 פתעגת' ]| ,ת0908100%0 עס 1321תע29 =: 61801 ;( 'תס 15 708031004 )ת1%01עש 1% ; ע040סת =: 601%08עך ; ( 170601668 )166עש ;'2 = ת170061%0 611תגו . תס תוכנית 'שפצעא מאפסת תחילה את הסיביות של 08051.06% כדי לאפשר הקשה רגילה. של תווים, כאשר מקישים 2 קטנה, התוכנית מדליקה את הסיבית של 08081.00%, והופכת את האות לאות גדולה, התוכנית מסתיימת כאשר מקישים 2 גדולה. פלט התוכנית נראה כך: 1 4 תלק ב" התכנות - | 4 חתלק ב" התכנות 2 ש - ש שו ו ו ה ם תס 187% 0909100 62 אלעטסעינס ע6ימוונססם 0+ 6קימוגו1 תס 18 0808100% 2 ץע 17 כאשר התוכנית מסתיימת, הסיבית נשארת במצב "דולק" עד אשר משנים אותה באמצעות פעולת מקלדת רגילה. | תוכניות המשפיעות על מצב קלידי ההיסט, או מושפעות מהם, אינן נדירות, את תוכנית 'תצפצמא (תדפיס 9.19) ניתן להפעיל מרמת המנתה של 05כ, או כחלק מקובץ אצווה (8'10₪8) המגדיר מצבים של קלידי היסט. | תדפיס 9.19 , 7 יסיס 0% | ת%0ע0פמ1 ת08091.0080 000 זותגון 500111000 [ 0040:0017 85 19₪ת שא ] | :982 0033הםת | | ב ; 66ע : [,1 ;[ 10 ]קת1ע5% : התנע%פעססקט 90017: 90040 808011066 66ע0 : ו ; 0190187001 6ינגו0פסס ו תנשסס ; תת401 נינש ; ( ':א%8תע5' )ת501נעש ; ( '(615100)5תס0 5 ) ו1>6[1ינש ; 611 ינש ; ( 'עתה תג ,שַת1אס011+ 6מל +0 6עסת עס 6תס 15 "ת61%10תסס" 6עפמש" ‏ )ת1501י ; ( 5 :808008 עס 900818660 , ת66עס" )ת1%61יעש ; 0611 1יו ; ( '014 ₪066 %ע02פת1 = 1021 תס ₪086 %תספת1 = תס1 | ' )ת%61נעש ; ( 024% 08081/00% = 0021 תס 098281.00% = תסס ' ? )ת[%6ג1יט ; ( '0+2 אססוחטא = 5+סת מס אס 1( = תסת "7 )ת1501עט ; ( 029% ₪0/011100% = 501% תס 5020111008 = ת80 ' )ת1%01געש ; ת1+01י ; ( 7 .100020836. עס -שפסקקגו -61%01 06 ₪97 8ע '1.0%%60‏ )ת601ני | 0 תונפס תס 1 > %ת00ת8הק +11 גת 06 תופס 0 9180005 50 1 =: 1 100 | תדפיס 9.19 ממשיך בדף הבא 0% שא שה לש | -.. פרק 9: קלט מהמקלדת 295 המשך תדפיס 9.19 ;( 1 )ע%פתפצפק =: שתגע6פתססמס | סט ( ב )ת10 %0 1 =: [ ע0ס+ 1 [ 1 ]שתגע%פעסקקט )000956 =: [ [ ]שת1עלפעסקסס תס 'א10' = שתנגעל+פזססקט 11 הספת עס 1821תש0א =: 18₪1עש30 תסמל '1009' = שת1ת%פזסקקט +1 0136 (תמ62%0פת1 %6סת) בתה 13₪1תע0א =: 1421תש6א תסמל 'א700 = שתנע%פתסקקט +1 6156 080510000 עס 3971321 =: 301321 תפנ '7'0079 = שתנע%פעסקקט 13 0186 (מ090810040 6סת) תה 071821 =: 81ַ13תעסא תסמל 'א0' = שתנע%פעססקט +1 0186 ת0ססותג[ עס 1קָ718ע20 =: 713₪1ש39 תסמ+ '%עת70 = שתנגע%פתס6סקט +1 6156 ( ה0וסס. ותו %ת) תה 201801 =: 1401"ע0א תסמל 'א7"50 = שתנע%פעסקק0 +1 0156 ת5020111/00%0 עס 13₪1ת367 =: 1801תץ30 הסמל 'ע7807 = שתנעת+פעסקסט 11 0186 (ת5020111,00%0 %סת) סשתה 2071801 =: 18₪1תש0 | ת1שסס 61586 | ק361 גכ ;1% - - . תס התוכנית קולטת פרמטרים המגדירים את המצב הרצוי של קלידי ההיסט. למשל, כדי > להבטיח שיתוק של כל קלידי ההיסט יש להקיש: *פסת סט 1055 ויתויפצא כוי לשתחרר את 0805100% יש להקיש: תס6 ית 'פצמא סיכום בפרק זה למדת כיצד התוכניות *כולות לקרוא ולעבד מידע שהוקש באמצעות המקלדת, למדת לקרוא נתונים משורת הפקודות, והכרת כמה טכניקות לעריכת. נתונים בעזרת הפרוצדורות 3680 ו-ת6861, למדת שכל לתיצה על קליד יוצרת שני בתי מידע, כאשר התו המוקש הוא תו 501 - נמצא ערכו בבית הראשון, 6 חתלק ב" התכנות | והבית השני חסר משמעות; כאשר התו הוא תו מיוחד (שאינו ו נמצא ערכו (הנקרא קוד מורחב) בבית השני, והבית הראשון מכיל אפסים, למדת גם שבתים אלה מוצבים באזור אחסון מיותחד, שבו משתמשת התוכנית כמקור קלט, הפונקציה 69% יכולה לזהות לחיצה על קליד ולעבד צירופי קלידים: מיוחדים. הכרת את הפונקציה 2055606ע6א, הבודקת אם באזור האחסון ממתין. תו, וראית כי ניתן לרשום תווים ישירות באזור האחסון, כדי להפעיל אוטומטית פקודות 8 לאחר סיום התוכנית. למדת למנוע הופעת תווים על גבי המסך במהלך ההקשה, ולהשתמש בקלידים ₪56, א%הסעם-1עס0 ו-1-6ע65. למדת שניתן להשתמש בפקודת. ₪080 כדי להעניק משמעות שונה לקלידים. בסוף הפרק למדת לפקת על מצב קלידי ההיסט (6%ס/תטא, 3% 0% 15) באמצעות פניה לבתי מצב המקלדת שב-%0040:%0017 גב-50040:%0018. פרק 10: תצוגת טקסט 297 10 ₪7 תצוגת טקסט נניח שהצלחת, לאחר שעות עבודה רבות מאוד, לפתת תוכנה חדשנית, המסוגלת . לטפל במבני נתונים רבי ממדים, ולבצע שליפות מהירות ועיבודים מתותכמים ומורכבים, נניח גם שהתוכנה הדמיונית הזו מציגה את הנתונים זה אחר זה, נתון אתד בכל פעם, בפינה השמאלית התתתונה של המסך, כמו סרט של מכונת חישוב, התוכנית שלך היא גאונית - אך יש להניח שלא תצליח לשווק אותה. התצוגה שעל המסך מהווה, כמו המקלדת, ממשק עם המשתמש, באמצעות הממשק יוצרת התוכנית קשר עם העולם התיצון, בלשון ציורית ניתן לומר, שהמסך הוא ה"פרצוף" של התוכנית ומבטא את "אופיה", המסך קובע את מידת ה"ידידותיות" של התוכנית, כדי לשפר את איכות התקשורת עם המשתמש בתוכנית, יש לשפר את המסכים שהיא מציגה. פרק וה מתאר טכניקות לניהול מסכים המשתמשים במתאם מונוכרום - (6תס:מססתסא 630% צ15018ס - תסא) ובתצוגות טקסט של מתאמי צבע/ גרפיקה שונים. השגרות הגרפיות יותארו בפרק 7.11 : | זיכרון המסך > לרשות התוכנית שלך עומדים 640% של זיכרון, אולם המעבדים ממשפחת ה-8086: מסוגלים לגשת לכתובות התופסות מגבית שלם, אם, למשל, במחשב המסוגל לטפל | בצבע, נשמרות כתובות המתתילות ב: %8800:000 (כלומר הקס. 80000 או 753,664 עשרוני) תצורות המסך. שטח זה נקרא זיכרון המסך (ענסוסת מ5006) או זיכרון הווידאו (ץנסוחסות 1060ט). במחשבים שבהם מותקן צג מונוכרום מתחיל זיכרון . המסך בכתובת 0000 0 8 חלק ב" התכנות ה-8086 אינו כותב ישירות על המסך, אלא רושם את הנתונים בכתובות אלה. הצגים והכרטיסים הגרפיים פונים לכתובות הללו ומעבירים את תוכנן למקומות מסוימים במסן, כלומר, משימת ה"כתיבה" על המסך נמצאת למעשה באחריות החומרה, שעליה אין ה-טפס מפקת. תוכן זאכרון הוידאו במסך המכיל 25 שורות ו-80 טורים ניתן להציב את הסמן ב-2000 מקומות שונים. התצורה הנוכתית של המסך מוגדרת ב-2000 המלים המתתילות בכתובת %8800:0000 (או ב-%20000:0000 בצג מונוכרום). הבית הראשון בכל מלה מכיל את תו ה-28011 שיש להציג, והמלה השניה מתארת את תכונת התצוגה (066ו8%561:12) (הבהוב, צבע וכדומה). הכתובת שבה נמצאת המלה קובעת את מקומה על המסן. התו שבמלה הראשונה שבזיכרון המסך יוצב בפינה השמאלית העליונה, התו שבמלה השניה *וצג מימינו של התו הקודם, המלה ה- 81 מתארת את התו הנמצא בצד שמאל של השורה השניה וכן הלאה, מלה מספר 2000 מגדירה את תוכן הפינה השמאלית התתתונה של המסץן. כתיבה לזיכרון הווידאו כל מה שנמצא בשטתי זיכרון המסך מוצג אוטומטית, ולכן ניתן לשלוט על התצוגה על ידי כתיבה לתוך שטתי הזיכרון הללו. הדבר מודגם בתוכנית 5081 שבתדפיס 1: תדפיס 10.1 ;01 ותהעססנק יצפטי סט : קפג2 ,911000 ,1 (6לעט : %210+ תנשסס ;2 =: ס1ע9%ב תנפסס 60 255 %0 ₪ =: 511600 עסצ ;4 =: ספגם תנשסס 60 ( 1 - (80 * 26) ) 00 0 =: 1 ע0ס1 ; ( 2180 )10 =: [ 2*1 : 92800 ][חסעת ; ( 2150 )סת1 ;מנע2%% =: [ 1 + 2*1 : 88800 |מסא ; ( מ1ע2%%5 )סת1 6150 ע91168 =: מ1ע25% תסםת% 255 = סגעססה +11 פרק 10: תצוגת טקסט 299 זכור: בצג מונוכרום יש לשנות את כתובת הקטע %8880 ל-%2000. תוכנית 5081 משנה את תוכנו של מערך הזיכרון וגורמת בכך להצגת כל הצירופים האפשריים של תווי 8011( ותכונותיהם, הפעלת התוכנית יוצרת מגוון של צבעים וצורות, אחד מהם מתואר בתרשים 10,1: תרשים 10.1 הפלט של תוכנית 5061 -. "+ 0 ><+ ו ו ה -%: ב] ב :> > 35 6 = ו א 40 || 5 ו רו + * גצ - 5 קואורדינטות המסך אם נשתמש בשיטה הסטנדרטית לציון קואורדינטות (צ,א) כדי להגדיר את מקום הסמן, תהיה הפינה השמאלית העליונה (1,1) והפינה הימנית התתתונה ‏ - (80,25), ניתן לחשב את ערך ההיסט של כל מקום במסך בעזרת הנוסתה: (1-תתט001) + (1-אסת)*80 :פבעסח או (1-תתט2*)001 + (1-שסת)*160 יִמספ6עֶם 0 תלסק ב" התכנות | / / ו כדי להציג מלבן של כוכביות במרכז המסך (למשל בשורות 10 עד 15 ובטורים 20 עד 60), יש, פשוט לחשב את ערכי ההיטט המתאימים, בפי שנעשה בתוכנית 5081 (תדפיס 10,2). תדפיס 10.2 ן ;50114 תפידססינן : לפטי | , שסת ;,%6ע0 : תועו001 תנשסס סס 15 %0 10 =: שסת 102 תנפסט 60 60 %0 20 =: 001 0+ ;( '*' )6תס =: [ (1-תועו2*)001+ (1-שסם)*160 7 ]ומס | [ 366 ] ;4 =: [ 1 + (1-תעו2*)001+ (1-שסת)*160 900 ]סו ; תס ו . תס תרשים 10;2 מתאר את הפלט של תוכנית 56815, כאשר ברקע נותר הפלט של תוכנית 1 תוכנית 80381 חישבה את מקום הכוכביות בעארת הנוסתה לתישוב הבתים והציבה בבית התכונות את הערך 4 (צבע אדום). נושא הצבעים יתואר בפירוט בהמשך. תרשים 10.2 הפלט של תוכנית 50614 2 > ב ב :7 ו 2 וז ו א 1 :078 5 *) 158 +-111- 5 ו !| וה 1 ו ₪5 '028"! זיג"ם ו *9+5% 0 8 2 227 הס 18 + קנ קגקץ + 2 ג 10008552 0/0 | פרק 10: תצוגת טקסט 301 יישום מעשי יותר, הצגה מהירה של הודעות, נמצא בתוכנית 506818 (תדפיס 3), בתוכנית זו הפרוצדורה כ כ רושמת. את הפלט ישר לתוך איכרון הווידאו. תדפיט 10.3 -- 5 י איהה ה == =--ה.------- ג ו ו ,5 סנס | .. 8 שפט א ּ ושַת1ע8% : 105820 5 ועט : שסת ,תתט[ס0 ;שַת1ע8% : קת1על%9ט0 )שת150901-ט 6יזגו6ססיכן ּ | תנשסס 60 ( ( שת1ץ9%סט0 )ב0קת16 => א ) 16וגט ;( [ א |שת1ע59%ט0 )6עס =: [ך (2-%+ הוהו001+ (1-שסת)*2*)80 : 88800 |חסון [ 8סת ] ;+ =: [ 1+ (2-4% 0+ (1 1-שסת)*2*)80- : 90800 ו 2 + א =: א תס הי תגקסס 7 . . 8ת1תת981 שסת תהיפסינק 5060181 .10110' =: 0ש88מסאן ‏ 6 ;( 10 ,20 ,1659800 )8ת1+09511 . תס 6 : 0 0 1 פלט למסך בדרך כלל התוכניות פטורות מהצורך לבצע את כל החישובים המורכבים שתיארנו. כיוון שמערכת 005 מספקת את כל השירותים לניהול התצוגה, (שגרות להצגת תו, מחיקת תוכן המסך, דפדוף וכדומה). שיטת הגישה הישירה לזיכרון שתיארנו היא המהירה ביותר להצגת נתונים. השימוש ביחידת 0 | בדומה לרוב. התוכניות, גם טורבו פסקל מסתמך בדרך כלל על הפונקציות של 05 ושל ה-8105 כדי ליצור מסכי. פלט, אולם, כאשר משלבים בתוכנית את יחידת %:6, מבצע טורבו פסקל אוטומטית את פעולת הפלט למסך, בשיטה-המהירה ביותר - גישה ישירה לזיכרון. כל הפעלה של 166מש או של ם1661עש עוקפת את השגרות האיטיות של 008 -ומציבה את מתרוזות הפלט ישירות במקום המתאים בזיכרון, מתרוזות אלה : 2 תלק ב" התכנות - | [ 1 מועברות :מיד למסן, מהירות התצוגה בשיטה זו זהה למהירות הגישה לזיכרון. כדאי לכלול הוראת ;62% 868גו בתוכניות המבצעות פעולות רבות של כתיבה כמסך, גם אם אינך משתמש בפונקציות או בפרוצדורות אחרות שביחידה. כאשר משתמשים ביחידת %שס, קובץ הפלט הסטנדרטי (המסך) עוקף את קוד הפיקות הרגיל שלו, ולכן אי אפשר במקרה זה לנתב את הפלט של 2166ש או ם1661עש על ידי הקשת התווים | או < בשורת הפקודות, בתוכנית 08781 (תדפיס 10.4) משתמשות שתי הוראות ם1661עשט בהתקן פלט סטנדרטי, ושתי הוראות אחרות משתמשות בקובץ מוגדר (פרטים נוספים אודות קבצים יתוארו בפרק 13). תדפיס 10.4 ; 0611 ותפידטסיוסן 02% 08פט ו טי ,0% : 116תע השס ; ( ".600100 6גו%גוס 55920320 %16 %0 %ת86 18 6086 פומ :1 2% כ ;( ".2601260506 06 7% 7תהס בת8 205 פספפסעט 5% :2 6ת11' )ת1601יעט ;( '' ,16נחעת2 )5100 ; ( 116/ע3 )156מוסת (( '1% .1116 611102606 8 סס 8605 18 506 שוג :3 שת11' ,16נחְעתה )ת[160יט 7 ' 2001200060 06 ת08 1% 80 ,86201008 205 658פט ‏ :4 שת1' ,16גתְעֶת24 )ת[160עש - . תס כאשר תפעיל את 02781 משורת הפקודות, יוצגו כל ארבע השורות: 6 %גוק6גוס ‏ 0826ת5%68 66 60 566 15 56%% | תי :מ 6 ₪6 6'מ08 6ם8 205 85565קעס 16. ל 6 .116+ %ת0ע02++61 8 60 %6ת86 15 %א66 פנמץ + ₪66 ב08 16 50 ,56271008 005 565גו 1 אם תנסה לנתב את הפלט למדפסת, יודפסו רק השורות המשתמשות בשירותי 05כ. שתי השורות הראשונות עוקפות את 05כ ולכן יוצגו על המסך. 061066 6גוס6גוס ‏ 55826816 56 60 %6ם50 15 6% | פנתי. ג 4 ששכ ש6'תה8ס תה 205 - 5% מש בדרך כלל, אין נושא זה מהווה בעיה, תוכניות היוצרות פלט ‏ לצג ולמדפסת לרוב מאפשרות| למשתמש לבחור. באופציה | המתאימה עם הפעלת התוכנית, פרק 10: תצוגת טקסט 303 ומציבות פרמטר מתאים בסוג קובץ הפלט, שיטה זו מאפשרת שימוש במערכת אחת של פרוצדורות 1%56עש ו-ם1561:א. בתוכנית 08281 למשל, ניתן היה להציב בפרמטר 6תצמת של שורה 3 ו-4 את הערך אתע (מדפסת) או מחרוזת ריקה (צג) בהתאם לבתירת המשתמש. הפרוצדורה 6ת<6תטנפפת הפרוצדורה 25981042062% מאפשרת לקשר את פרמטר הקוב אל הצג מבלי לוותר על השימוש היעיל בזיכרון. הפרוצדורה דומה מאוד לפרוצדורה מש2551, אולם במקרה זה אין להגדיר שם קובץ, תוכנית 0182 שבתדפיס 10.5 מדגימה את אופן הבחירה במנגנון הפלט, פרוצדורה זו עוקפת את 05 וניגשת ישירות לזיכרון, ולכן אי אפשר לבצע ניתוב למסך של פרוצדורות 2166 ו-ם1661עא. תדפיס 10.5 0% תהנשסין ,02% 68פגו . טי ;ד : 116עעתת (עפתס : 0201086 תפס 1% (( 7 : סע(0) עס עשסתנ1ת(ק)? )6סגינמר ; ע68066ת =: 00106 ;[ '0' ,'ק' ] תג (0106ב000886)0 611תט ; ( 020106 )ת1%61יש 01 (20886)0201086 08386 ;( 'אתק' ,ס1ג"ְע4 )תשגפבג : 'ק' ; ( 116*עת4 )91007 : '0/ - ו ; ( %116עת4 )156ישסת ;( '%0 עס 001 56 %0 %ת86 18 608% 8גמן | :1 שת1]' ,116תעתה )ת%01גיש ;( '.00%500ע2001 06 6סתת8ס 16 .עססתנעק ₪8 | :2 שת11' ,16נגתעתת )ת1%01יש ו - מניעת פלט ישיר למסך מובן, שייתכנו מקרים שתרצה להשתמש ביחידת 62% מבלי לנצל את מנגנוני.. הכתיבה הישירה לזיכרון של טורבו פסקל, במקרה כזה יש להקצות קובץ פלט ריק (כמו בשורות 3 ו-4 של תוכנית 1א1'ת60) או פשוט לנטרל את שגרות האופטימיזציה | [ 4 תלק ב" התכנות | = | על ידי הצבת "לא אמת" במשתנה הבולאני המוגדר מראש - 1260%6/1680ס. = שים לב: הפרוצדורה 66%006עי, שתתואר ו מעבירה תמיד "אמת" למשתנה וס ו 4 ן המאבק בשלג צג מונוכרום משתמש לצורך התצוגה ב-720 נקודות (615א1ס) אופקיות וב-350 נקודות אנכיות, לכן, במסך של 25 א 80 תוום, מוקדשות לכל תו 14 א 9 נקודות, מתאמי צבע גרפיקה (008) משתמשים ב-640 נקודות אופקיות וב-200 נקודות אנכיות, ולכן מספר הנקודות שבכל תו הוא 8 א .8‏ | בין | צג מונוכרום ובין צג 068. קיימים שני הבדלים: 1 הטקסט המוצג על ידי צג מונוכרום תד וברור יותר מהטקסט המוצג על :די צג 00 2, צג 062 איטי יותר מצג מונוכרום. בגלל האיטיות, יש לפעמים בצגי 60 ישנים בעיות של הפרעות - הופעת נקודות או קווים דמויי "שלג", כאשר המתאם כותב *שירות לזיכרון הווידאו, ה"שלג" נוצר כאשר כרטיס ה-00 מנסה להציג בו-זמנית את המסך הרגיל ואת הקלט החדש שנרשם בזיכרון הווידאו. כדי למנוע מצב זה, כוללת יחידת 62% מנגנון מיותד, המבטית שפעולת הכתיבה תתבצע רק בזמן הפסקות הסריקה של הקרן האלקטרונית של |הצג, שבהן התצוגה אינה מתאפשרת, מנגנון זה מופעל כאשר במשתנה הבולאני שסם9פ60%םת0 מופיע הערך "אמת"., הערך "נשתל" במשתנה עם ההפעלה הראשונה של התוכנית ואחרי כל הפעלה. של הפרוצדורה 6%066א16. אם במחשב שלך יש צג 6068 מדגם חדש, תוכל לבטל את מנגנון הפיקותח על ה"שלג" בהצבת "לא אמת" במשתנה 60%ם0אסת5, פעולה זו תגרום| לשיפור משמעותי במהירות התצוגה. | בעיית ה"שלג" אינה קיימת בצגי מונוכרום, מתאמי גרפיקה מורתבים (65ע), מתאמי וידאו (ת76) ומתאמי 066 חדשים, מובן, שה"שלג", אינו קיים כאשר %8).. צבעו של התו עצמו נקבע על ידי סיביות הרקע הקדמי (6מטסע4ס6עסץ צבעו של מלבן הרקע נקבע על ידי הערכים שבסיביות הרקע האחורי (6מתגוס0ע880% נ בא > בם ₪ רס כס -= סא לצ ישי כ א -י = כס כס כס כס סט כס כס כס כס כס כס כס כס כס כם|--] נם ב כ > בם :₪ רס כס ציבויויו- פיי ו = > = = = = - נם בא > בם ₪ כס -כ וי ם ם ם ם ם. ם. ם. ם ₪ ו נם ב כ) בם > וס כס -= םוי כ כ כ כ כו כ כ כ כ כ נם ב כ> בם וש כס -=ם כ כ מע יי 2-ו מו ה יי יט יש יי יי = נג ב > בם > ₪ כס -= כ כ זי ]יי ענ יי רי ר רס = גג בש > בם > ₪ כס -= כ כ יט רק ]יי טטצ טאצ צצ ט ט ט ם נם בא ג בם > ו כם -= ם כ טי כ 9 ]]י- 4 0 0 | |רח |רט |-ט |רח |רט ורד ורד רד |[ .ו ו ססר ₪ ₪ פס נש נם מ כ מ ₪ ₪ כ ע מ כ פס [י=] יחי תח אהגןת ות% ₪ נט בא (> בם > רש כס -5 ם כ ישי רס נא + [י- כס כס כס כס כס כס כס כס סט כס כס כס סס כס מס |-- נג ב > בם > רש כס ויוי קוו י- י) = > > -= > > - 1 1 8ח0 - ב הט ם. ם. ם. ם- > 5-כ > ₪ 5 כ כ כ כ כ 0 ו ו" "7 ל | ו ו ו גפ ו ו "טי שי שי ישי יי ן-] ₪ נם ב (> גפ ₪ כס -= כ כ חס נה יי רה רה רה |5] ₪ נגן בו כ םם ₪ כם - כ כ ד יי א | 2 נגן] ב (6 בם :> וס כס -= סא נש ינפי ם -- ו וש 0 וס 0 מ נה ו פס מ מ פס מ מ מ מ מ מ ₪ כ פס [+=] סו תרשיס 10.3 מבנה בית התכונות תרשים 10.3 מתאר את אופן השימוש בשמונה הסיביות שבבית התכונות. ערכי ה סיביות שבבית התכונות מגדיר את הצבע ואת אופן התצוגה של התו. מגדיר את תו ה-011פ25, והבית השני הנקרא בית התכונות לו צבע מסוים). לכל מיקום שבמסך קשורה מלה בזיכרון,. הבית הראשון של המלה (8756 156וכ25521) כל תו שעל המסך מורכב ממלבן סמן בעל צבע מסוים, שעליו נרשם תו 8011 (שגם בית התכונות (556 66טפ66:1ת) בפרק 17 מתוארות טכניקות נוספות לטיפול ב"שלג". מונעים כתיבה ישירה לזיכרון הווידאו עם הצבת "לא אמת" בִ-1:60%/1860ס. פרק 10 . . תצוגת טקסט 305 6 חלק ב" התכנות | [ ו ו 68), שדה הרקע הקדמי מורכב בדרך כלל מארבע סיביות: שלוש סיביות מגדירות את הצבע וסיבית אחת מגדירה את עוצמת התצוגה, כאשר סיבית העוצמה דולקת, תהיה עוצמת התצוגה גבוהה (כלומר תו "מואר"). | כדי ליצור תו מהבהב, יש להדליק את סיבית ההבהוב, סיביות ההבהוב והעוצמה פועלות רק על התו עצמו (קרע קדמי) ולא על הרקע האחורי. - בחירת צבעים טורבו פסקל הגדיר מספר קבועים שיסייעו לך בבתירת צירופי : צבעים, הערכים 0 עד 7 מגדירים את הצבעים שחור עד אפור בהיר, הרקע האתורי והתו עצמו (רקע קדמי) יכולים להיות צירוף כלשהו של הצבעים הבאים: רקע קדמי ואתורי ערך שחור %סהן | 0 כחול 86 1 ירוק 2 - 2 כחלתל מאּץס | 3 אדום 4 4 מגנטה - 8סמסשָבהא 5 חום משטסעם | 6 אפור בהיר צ60628%ם16ם | 7 כאשר סיבית העוצמה דולקת, מקבל שדה הרקע הקדמי שמונה ערכים חדשים. רקע קדמי ערך אפור כהה צְתסעהק | 8 כחול בהיר ‏ . 116 9 ירוק בהיר תפנ | 10 כחלחל בהיר ם8ץ1460 | 11 אדום בהיר 6 12 מגנטה בהיר | %8ת6%8006םת10 | 13 צהוב טסן[פצ 14 לבן 6 15 פרק 10: תצוגת טקסט 307 כדי להגדיר מצב של הבהוב, יש להוסיף את קבוע ההבהוב: הבהוב ערך הבהב %אתנום 8 השימוש בצבעיסם כדי להציג כוכבית אדומה מהבהבת על גבי רקע כחול במקום כלשהו (המוגדר על ידי שורה ועמודה) ניתן להשתמש בהוראות: ;( '*' )עס =: [ (1-תתגו2*)001+ (1-שטסם)*160 : %2800 []תסא =: [ ! + (1-תתט2*)001+ (1-חסת)*160 : 52800 []חסא 7 + (4 1ם5 6גו21) + אתנום קיימת גם דרך פשוטה יותר, הפרוצדורה 6600102 בוחרת את צבע הרקע הקדמי והפרוצדורה 6מגו%2806%020א6ע' בוחרת ברקע אחורי, הוספת הקבוע %ם811 כפרמטר של אחת הפונקציות יוצרת הבהוב, לכן, כל מה שיש לבצע כדי להציג את הכוכבית, הוא: ;( (שסת ,תותט1סס )צא0060 ;( 5ת311 + 366 )6600102 ( 31006 )0ם%386%000א6 ;('"' )166עש טורבו פסקל משתמש, כברירת מחדל, בבית התכונות (56צ 8%621066) ששמו. ע%%6%א6ע, לאתר שערכו נקבע באמצעות הפרוצדורות 6תט0ס:ש%805א76 ו-%00105א26, הופכים הצבעים (וההבהוב) לברירת המחדל של כל פרוצדורות 6 (ו-ת1661שש הבאות, מובן שניתן לשנות את המשתנה ש66ת6אס6י' גם באופן ישיר, אולם קל וברור יותר להשתמש בפרוצדורות :660010 ו- 6תגוס886%0:א6י. אין בטורבו פסקל פרוצדורות לזיהוי ישיר של הרכב הצבעים התקף, אולם ניתן לקבל מידע זה מעיון בתוכן המשתנה 62662 כדי להציג את כל צירופי הצבעים האפשריים בתומרה שלן, עליך להפעיל את תוכנית 2 אזית (תדפיס 10.6), התוכנית מציבה את כל הצמדים האפשריים על רקע 8 חתלק ב" התכנות | קדמי ואחורי, עם הבהוב ובלעדיו, תתילה מופיע מספר הרקע האתורי, ואחר כך מספר הרקע הקדמי (בתצורת הקס. כדי לשמור על תצורה נאה), פלט לדוגמא - נמצא בתרשים 10.4, (אם תפעיל את התוכנית, יהבהב חלקו הימני של המסץ). תדפיס 10.6 > 26%18 ;‏ תפידפסינק ;02% 08פגו ב , עסת11 , 00101 ;96ע : התטסיד! 8 תנקס ; 01502 ( ;‏ שתנאת211 1% 0015105 6תסידססינס 1 6תטסיד "3300‏ )ת001 גיט תנקסס 60 15 60 0 =: 00102 02ס+ תנשסס 60 1 %0ף ₪ =: עסאתו1ם 102 ; ( ע6א%ת128*011 + 00102 )168%00102 תנשסס 60 7 %0 0 =: הותוסשקאס80 0+ ; ( 6תגוסי 3300 ) תגוסיד70139/00 ; ( 6:2תגס0 9 )1%6ישט ( 2:(עס001+ 55):מ0 )106 תפמל 9 < 00102 11 ; ( 2:ע0010 )168 0156 ; תס [ 680% | ; ( 3180% )6תטסי 0% +10 ) 7 808008 [(‏ ;( ' ' )₪106 תסםף 0 = עסאת₪11 +1 ; תס ; ות01> נינשט ; סתס 1 - מובן שלא ניתן להבחין בתווים כאשר צבע הרקע הקדמי זהה לצבע הרקע האחתורי. ברור שניתן להציג את הצבעים רק במסכי צבע, במערכת עם צג מונוכרום, יכול בית התכונות להציג חמש תצורות בלבדי נסתר, רגיל, מואר, קו תתחתי ווידאו-הפוך. טקסט נסתר מורכב מתווים שחורים על גבי רקע שתחור, וידאו-הפוך הוא תו שתור על גבי רקע אפור בהיר (לבן), קו תתתי מופיע כאשר הרקע הקדמי כחול, מצב רגיל ומואר זהים למערכת צבע. פרק 10: תצוגת טקסט 309 תרשים 10.4 הפלט של תוכנית 2פדדא פהןאהגןת הת1%ש 5ה3%10ה01 60 400 ץם1/ 6הטסיףאסבת 0 8 6 8 5 8 4 8 3 8 2 8 008 0 85 84 803 2 8 81 8 1 16 15 14 13 112 8 1 16 15 14 כ 1 2 1 1 | מו ערו ו 2 1 2 8 שו :2 1 2 8 2 ב 1 ב 8 ןייב 2 ב 1 ב 8 35 4 2 14 4 82 72 37 4 2 14 4 8 כלוב: ]5/3 4 5 ב 5 2 5 1 5 8 )5/3 4 5 3 5 2 5 1 5 8 53 5 46 6 3 6 2 6 1 5 8 2 5 6 4 6 3 6 2 6 1 6 8 ]וען? 6 7 5 47 7 3 27 17 87 מו 6 7 5 47 37 7 72 1 8 8 6 8 5 8 4 8 3 8 2 18 8 8 08 6 8 5 8 4 8 03 2 818 8 9 596 949 3 9 2 19 9 8 9 6 59 49 9 293 19 9 8 8 ? 8 6 0 5 0 4 0 3 6 2 16 0 8 0 7 6 6 0 5 0 4 0 כ 8 2 8 1 2 8 6 55 4ם ב 52 1ת 8 5 6 55 54 23 122 85 6 566 46 6 3 26 16 86 6 6 56 6 64 3 6 162 86 79 כ 32425 22 כע1כ 8 7 5 342 12 8 מְ=; 425 כב 152 85 560 455 ₪3 2 51 8 177 4 ץ 8 ץד ץ 3 ץץ ו זג שינוי העוצמה צמדי צבעים כמו אדום ואדום בהיר אינם צבעים שונים, אלא צבע אחך המוצג בשתי עוצמות. בטורבו פסקל קיימות שלוש פרוצדורות לשינוי סיבית העוצמה של 662ת%א6ע. הפרוצדורה 071660 מאפסת (מכבה) את סיבית העוצמה, 18660/מ19א מדליקה אותה ו-1860 :סא מציבה בסיבית את הערך שהיה בה בתתילת התוכנית. תוכנית 581א18א1 שבתדפיס 10.7 משנה את התצוגה מאדום (עוצמה נמוכה) לאדום בהיר (עוצמה גבוהה), ומחזירה את התצוגה. למצב שבו היתה ברירת המחדל של ע2%%א6י1 בתתילת התוכנית, כאמור, הפרוצדורות 010860ם₪14 ו-660נטשסע משנות את סיבית העוצמה (21%6 56ם66ם1) בלבד, הפעלת (%5266ת210) עס1ס66אסי ו- 8141/1660 כמוה כהפעלת ( 266 ):ס6001א6י. הפרוצדורות לשינוי העוצמה אינן מגדילות את מבתר הצבעים העומד לרשותך, | אולם הן יעילות מאוד כאשר מבקשים להבליט הודעות חשובות המופיעות על המסן. תוכנית 582א1₪א1 (תדפיס 10.8) מציגה מגוון | תלקי של האפשרויות. 0 יתלק ב" התכנות : תדפיס 10.7 ; 160801 תפיושסיזסן : ;02% 08פגו | תנשסט ( 68816 ת8 48 ] | ;(( 366 )עס0001ך ;( 108...7 108 ש10' )156 - ;10₪/1060 (( '...תשנת בגשנה 111 )166ימ ; 660נשמסו ; ( = תנסא התנס הדנס' )166 | ; 090 תנסא ; ת161ינט ; ( 11020800 )16860010 (( '...א10 100 10₪' )156 ;10/1060 ;( "...שג ב110] 1110 )156 | ; סנק זז ; ( | חהנסא תלנס מתנסז '1‏ )166י | ; 90 1 שהתנסאן ; הת461 בינשט . תס תדפיס 10.8 ; 110868 ותפיססיזן ;02% 5098גו | | (%6ע0 : 07016 השס ; 011802 תנשסס 80 24 סל 1 =: 07018 202 ;( 1 + ( 15 )מסהתהת )76500100 0" סקסס001 700108 )198ע₪ ‏ ;( 1 + ( 8 )מסשתגת ) התוסיקס ד (( 108....7 א08ס1 א10, )166עש ; סנס 7 ב ; סה נמ ג ; ( | [התונס)[ 1במדנס)[ [בתזס)' ‏ )06ביט ; 390 1 דסא ; ת061 ביט 6 ; . תס התוכנית מציגה את רמות העוצמה ואת צירופי הצבעים שיצרו אותה (תרשים 5).. השב .ג " | פרק 10: תצוגת טקסט ‏ 311. תרשים 10.5 הפלט של תוכנית 62פאפזאז רצוויי טס ו ו סו 1 עס 1 תעסה ...119 ת119 119 .. .טס1 עם1 טם1...,תם00[1 עס60[1 תס[60 סא 1 העסה 1 עסו ...השגוה ₪19 ת19....שם1 100 עם1....תעס001 עם[60 תםס1ם6 חס [התהעס 1בהצסה. . .‏ ת19ו] ת19ו1! 197 ...טס1 טם1 ש10....עם[60 תם[00 עס[60 [ מס [ תס 1 התעסו. . . .הפוה תפגו₪ תפ1ה,..:,שס1 100 ע10,,.ותס[60 תם601 תם601 זי יי טס 0 סו 1 התנס [התתסו. .. .ת19 ת18 תפגת....שס1 טם1 טם1:..:תס[ס6 תס[ם6 תסןס6 ו 1 עסו [ התעסו, . . ת1ו! 118 ת100..:.819 0ם1 100.).)עס[00 עם[00 עם1ם6 סו 1 עס 1 התעטו, . . .ת19 ת119! ת19ו],...טס1 100 100....תס601 תס601 עס601 ו וי יי טסן וס ומ יי ו יי .100 ש10 100,.:.תסן0) עס]60 תסןס סו .1 החינסון [מצסה, ...ת19 (118! ת19....ע10 עס1 1208....עםס601 עם601 שם1ם6 עו רו ...טס יי ...10 100 ש0ם:::ות6010 ש6010 חסןס ות ...טם1 טם1 1/00....ע0010 עס601 תסןם ₪ יס 1 עסו 1 התעסא, .. ,ת14 ₪19 ת9ג....טס1 טס1 שסם...ו)תס1ס6 תס[60 ת60[0 יי טסן 60 1 אסא 1 התסה [התצסה. . .‏ תפגו 119 ת119!, ...100 0ם1 עם1:+:ותם601 תעס[60 תס601. עסו 1 העסה 1 גפסו . .‏ תפגה תפגו₪] תפג....טס1 100 שם1,.ווש6010 תם601 תם601 [התתסא [התזסה [התעסה. ...תפגו! תפגה₪ ת₪19,...טם1 שס1 שם1....עס601 תס601 תס601 וי יי טסן טס תסן60 כ ו יי.טסם ש10 100,...תס[60 עם[60 תסוס 1 יס 1 חס 1 ההעסו. . . . תפגו תפגוז תצג וי ו וו ..,ת6010 תם601 שם601 1 סו 1 גוסו [חתסה, . . .193 ת₪119 119 . .100 שם] 0ם1....עס601 תם[60 תס[60 תצורת טקסט מסך טקסט יכול להיות ברוחב של 40 או 80 טורים ובגובה של 25, 43 או 50 שורות. הוא יכול להציג תווים בצבעים שונים או בצבע אחד (בדרך כלל. ירוק או ענבר) עם ג;וונים שונים, צירוף תכונות הגודל והצבע של המסך נקרא תצורה. (09סת). תוכניות המשתמשות ב-80 טורים. ואינן פועלות כראוי .במסכים עם 40 טורים, יש. תוכניות המשתמשות במכוון ב-40 טורים. במסכים המסוגלים להציג 0 טורים, כדי להציג אותיות גדולות יותר. כאשר מפתחים תוכניות המשתמשות בצבעים, כדאי לנסותן. גם בתצורת שחור/ לבן. כדי לבדוק את התוצאות שיתקבלו במסבי מונוכרום, ב-ת36 וב - 768 ניתן להציג 3 או 50 שורות במקום 25 בטורבו פסקל קיימים מספר קבועים, שבעורתם ניתן | להגדיר. ולבדוק את תצורת המסך (טבלה 1).. 9 2 חלק ב" התכנות | טבלה 10.1 הקבועים של תצורות המסך תצורה ערך משמעות | | 000 0 25 א 40 שתחור/לנן במתאם צבע 20 1 25 א 40 | צבע במתאם צבע 0 2 25 א 80 שחור/ לבן במתאם צבע 00 3 25 א 80 | צבע במתאם צבע סתסא 7 25 א 80 | במתאם מונוכרום 8סע 6 תוספת לגופן אסת כדי להגדיר תצורה מסוימת, יש להפעיל את הפרוצדורה 6 כאשר אחד הקבועים מהווה פרמטר, שים לב, 6%0066א6 מנקה תמיד את המסך לפני שינוי התצורה, תוכנית 1מססא (תדפיס 9) משתמשת ב--61006א6י להצגת כל האופציות האפשריות. תדפיט 10.9 = ;110002 תפסכ ;02% 808גו תנסס , ( 040 )6000 ( '4080062 ע0ס001 8 תס 7166 6 אספום 5 ) 061 ביט ; 108011 ; 6 ) 11006 ; ( 'ע4080600 00102 ₪ תס ש0010 25א 740‏ )ת1501יט יְ הז081י1 ; ( 3080 ) 00080 ; ( '40980%00 00102 8 תס 7106 8 180% 25א "80‏ )ת1401יט ; ת0911יד ; ( 0080 )60066 ( ( 'ע4080%0 00102 ₪ תס ע0010 25א780 )ת[160יש | ; 08011 7 סתסון ) 00ואסיך ; ( 4080602 סמסינססתסו .8 תס 780225 )ת1501יעש | ; דפס ; ( 8א%8ת20 + 0080 )60086 ; ( 4090002 00102 ₪ תס 00102 780025 )ת1501יט ; ( 'פתסת 308 ת206-1 ב1%ש" )ת1461ישט 1081 ; 0 פרק 10: תצוגת טקסט 313 הקבוע 8א8>תסע התווסף ל-0080 כדי להפעיל את תצורת ג₪6 או הסט הדתוסה, תצורת הטקסט הדחתוסה של ₪6 היא 80 טורים ו-43 שורות. תצורת הטקסט הדחוסה של גש6ט היא 80 טורים ו-50 שורות, כאשר מתאמים אלה אינם מותקנים במחשב, אין לתצורת 68%8תסע כל משמעות. כאשר תפעיל את 2מפסא, תיווכת כי יש זהות בתלק מההודעות, שכן שינוי התצורה אינו משנה את תכונות היסוד של הצג, למשל, ביטול תצוגת הצבע אינו משנה את הכרטיס עצמו, וכתובת זיכרון הווידאו נשארת בקטע %8800. במערכת עם צג צבע הפקודה+: ;( סמסא 6 זהה ל: ;( 2880 )1066אסיד אי אפשר, כמובן, להגדיר תצורת צבע במערכת מונוכרום. בטורבו פסקל הוגדר משתנה בגודל מלה, בשם 855%0866/, בעזרתו ניתן לעקוב אחר הגדרת התצורה, המשתנה מכיל את תצורת הווידאו הנוכתית, כאשר מבקשים לבדוק את תצורתו הנוכתית של ה-6פ, יש לבדוק את הערך שבמשתנה זה, כפי שנעשה בתוכנית 1עססא (תדפיס 10.10). תדפיס 10.10 ; 10061 ותפידטסינכן ;02% 08פגו תנשסס ּ 1 ( 19811066 )10 836 :( 'ע20940%0 ע0010 תס 2/8 25 < 40 18 7066 )ת1%91יא : ק4ום ; ( 40800007 ע0010 תס 00102 25 א 40 18 66סא' ) , ( ' 4090002 ש0ס001 תס 2/8 25 < 82 18 סו" ) ( 'ע4080%0 00102 תס עס001 25 א 80 18 10066 )ת1%61יא : 0080 ; ( * :403060 סתסעססתסו[ תס 25 < 80 15 006" ) ; ( 086 6י08ת8+8-תסון" ‏ ) ;0ת6 הפמל 0 <> 256 בתה 133%0066 14 ; ( '80106ת6 ע18ק015 500000" )ת1601ינט . תס 24 חל בונ התכנות בעזרת 88%%006 ניתן גם לקבוע איזה קטע (%8800 או 0) מכיל את זיכרון הווידאו של ה-6פ, תוכנית ג1פפסא (תדפיס 10,11) מבצעת א כזו: תדפיס 10.11 ' ;106014 תפידשס כ 8 ;00% פספגו י ינפש ;עס : %6ת7160050000 | 0 6ינגו66ססי תנשס הסמ% [ סתסא ] ל = .133+1006 14 9 =: ו 06| ;90800 =: 0 ד - תנשסס 2 ה , | 6גות%1ת00 ] | . . 6 אחרי ביצוע הבדיקה ניתן להשתמש במשתנה %מ1860960(6 כערך הקטע בעת פניה לזיכרון הווידאו, בדרך כלל משתמשים בתצורה שנבחרה לאורך כל התוכנית, אולם קיימים מקרים שבהם יש בתוכנית אחת מספר תצורות. במקרה זה, רצוי לשמור את 86 לפני שינוי התצורה. :ו 001606: 3 תנשסט 0 ; 1/3100 =: 6 [ 66ס₪ 81166 8 31804 מוגונסס-40 60 מס6נשפ ] ;( 40 )76008 | 0 [ ₪006 [הת1₪1עס %0 תצגוזסת ] ; ( 5%020600006 ) 680006 ; תס מקום הסמן ובקרת המסך | בטורבו פסקל קיימות כמה שגרות להתמקמות על גבי. המסך -ולבקרה על השורות. חלק: משגרות אלה הספקת. כבר להכיר (למשל צא0060), בקטע שלהלן נציג הר שגרות חדשות ונעמיק את היכרותך עם הכלים המוכרים. --- קש" | פרק 10: תצוגת טקסט. 315 | קביעת מקום הסמן שגרת צ60%60% מאפשרת לך לחציב את הסמן בנקודה מסוימת במסץ. שימוש רצוף בשגרה מאפשר לך "לצייר" על המסך. | התוכנית 60103 (תדפיס 10,12) מציגה את המסך המתואר בתרשים 10.6, מסך זה אמור להיות מסך קלט לרשימת כתובות, התוכנית קוראת כל אחד מהשדות שעל | המסך (ק21 ,85866 ,016 0, ,פַתהא) כמחרוזת, ועורכת אותו כדי לסלק את התווים הריקים המובילים, התוכנית הופכת את כל האותיות הקטנות לאותיות גדולות ומצמצמת תווים . ריקים מיותרים בכל שדה, למשל, השדה: "685חא3 | 205 ", יהפוך, אחרי טיפולה המסור של התוכנית ל: "פמ /זמטסאת 05ע", אחרי העריכה, מוצג השדה במתכונתו' החדשה, תדפיס 10.12 . 005 ותהישסינכן ;02% 08פגו ב [ 20 [שַת1ץ%ה : . פתפא ;| 00 ]שת1ע35 : 2002088 [ 25 ]פת1עפם : 0 ;| 2 זשַת1ע8% : | 55866 ;| 5 ]88ת1על8 : -- 210 (שת1עלפ : ( %6עם : מ6שת5%2:16 ,אסת (תתט00[1 )201608962 תס1ססתגת ' : / : ₪ ) כ- ה ;6 : 1 ,105%תה1ת. , עץעלותתע%ם ‏ ' ;שַת1ע8% : 1%א0ת95 - 3 ;יפוס : שהת6ת1 > תפס . 1 ; ( שסת , תתט001 )000084 .27 )156עש 60 בסשת10ע9% %0 1 =: 1 ע10 > ו ור ;( חאסת ,תג1ס0 )006004 [ 2090 6002815 אסת "עעסתתלפ" +0/ב6שת10 ] - ;(. )עבס =: [ 0 |עעסהםת:6פ , / ו '. ; ע68066 =: תסמ 5. | תסמף ( 15 )עם0 <> ינפת0ת1 '11 ' | יאמת0ת1 + עעפתתע55 =: קעפסתתע5% ה : 7 ; ( שהמ0ת1 )106ע . ; (ת%ה9%10 = ( ענסתתע5% )מַאְאַת19) עס (( 15 = = עהמסת1) 11>תט [ 2020 0002018 אסת 908157 02 מ6שַת10 ) - ;( 0 )צגס =: [ 0 ]1%אתעלפ | תנפסס תסמף ₪ < ( ףות 5 )קת 14 ] וט ₪ת109801 95210 )+ . =: 108%את18 > '! בת (' ' א ד 9% ) 6 8 (( ענסתת:9% )ב6שת10 => >פס[אתגום) ; ( 105%את318 )סתד 6 תלק ב" התכנות המשך תדפיס 10.12 [ פאת18ס 101016ג 01981108 ת8 0886 עסקקט 60 ףנסטתסס ] תפמ 8182300085 =< ( עתסתסע5% )ב6קת16 11 0 ( עעףתם:+5 )בקת1 50 165%את18 =: 1 ע0ס+ מסמצ ((' ' = [ 1-1 ]עצטתע%פ) תה (' ' = [ 1 |עעסהתץ%פ)) ססת 11 ;( [ 1 ]עעסתתע8% )00886 + 16אמע8% =: 8גאפע%פ יי < ( 1%א8ע5% )ב0שת10 11שתו ;( ' )106עש 60 ב%קת99110 60 1 =: 1 שס+ ;( שסת ,תו001 )4א00%0 ; ( 1%א0ע9% )1%6גיט ;( שסת ,תענגו[ס0 ) 060 1%אע+9 =: 015009%2ע ; תס הנקסס ּ 0150 | 0000000000 נשתא' )186עא | ;( 8 ,10 )606002 נ( 0-ה הקט הרושק שש השב שש בר 710168841 )₪156 | (( 10 ,7 )₪00%0%% ברש 7011201000 0 )106יםטט | > ( 120 10 )0004 (( 7 = :958%6' )2106 | ;( 14 ,9 )צאספסס ;( 7 0-2 נם21' )186עט | ;( 16 ,11 )צאסססם ;( 20 ,8 ,16 )₪814609%2 =: 6תגאן ;( 50 ,10 ,16 )261100582 =: 2007088 ;( 25 ,12 ,16 )₪814609%2 =: 01 ;( 2 ,14 ,16 )261%009%2 =: - 50866 ;( 5 ,16 ,16 )ע₪011609%2 =: 210 . 60 בקרה על השורות הפרוצדורה ע596ע61 הופעלה בתתילת התוכנית 60103, פרוצדורה זו היא אחת מפרוצדורות ניהול המסכים של טורבו פסקל, פרוצדורת 50%ע01 מוחקת את תוכן המסך ומציבה את הסמן בפינה השמאלית העליונה. תרשיס 10.6 הפלט של תוכנית 80103 : סגא 00055: 2 05856: - 2:4 הפרוצדורה ₪01מ015 מוחקת את כל התווים הנמצאים בשורה הנוכחית, מימין לסמן, מקום הסמן אינו משתנה. 0 פרק 10: תצוגת ט קסט 317 פרוצדורה 6ם6111ע מותקת את השורה שבה נמצא הסמן, כל השורות הבאות. מצמצמות את הרווח שנוצר ונעות כלפי מעלה, מקומו היחסי של הסמן לא משתנה, פרוצדורה 181126 מוסיפה שורה ריקה במקום שבו נמצא הסמן., כל השורות הבאות נעות כלפי מטה, מקומו היחסי של הסמן לא משתנה. ' תוכנית 51תמאז (תדפיס 10,13) מדגימה את הפעולה שמבצעות הפרוצדורות ע61:90 1), 26116 (-6ת1פת1, היא ממלאה את המסך בתווים, בוחרת מקום אקראי עבור הסמן ומאפשרת לך להפעיל אחת מהפרוצדורות, המסך הראשון של התוכנית = מוצג בתרשים 10.7. תדפיס 10.13 ; 61ינסב. תהשסעכן ;02% 68פט 0% = 66ע0 : ב₪16% = 06ע₪ : החסס6סם אמט , תההנו001 , שסת ; 96ע : ות פס : .| 106סת0 תנשסס | ; 012902 ו ; 26 נהסטסתפת סס 80 60 1 =: תאעו[00 02ס+ ' תנשסס 60 25 %0 1 =: שסת ע0ס2 ;0 סמ שסת =: 0086שס3 ; ( אסת ו ) 0% 1 1 + ( 6 )מססתפת )600102 ; ( 3080066 )%8נגיש ו ; וז 0% ו ; 1.390 תנסא ו 1,250 )אס 0 ו (5) ע980ע4(01) שת11פ5(10) 6ת2(26111) 801ע1(01)' )166יט : | 2 + ( תסספ%סם )תססתפן =: אוסת) . + ( ב10% )מססתפת =: תמטנסס ; ( אס ,תנג001 )005089 (( אתג1ם + 086 )76600102 : ;047 )108עש -' ל | עס =: 000106 -;[ '1'..7'5' ] ת1 020106 11פתט : ו 9 ;( 25 ,1 )צא00סס 2 1+ )יט ;( 1%6 )%00102א10 | ;( אסת (תעט001 )צא0050 218 חלק ב': התכנות המשך תדפיס 10.13 +ס 600106 0886 ;01:01 : '1' תנקסם : '2' ; 611.16 ; ( 20%%08 )60 ; תס תנקסס : '6' ; 116 51תד ; ( חסט%סע )סתך תס (90%ע01 6186 ; תס 2 = 020106 11פתו . תס ו וי" תרשיס 10.7 הפלט של תוכנית 5661 11 "5" """"" ]1 ,]1 [1[1[1 ,.ךץץץ/ץץץ 2 2- 2722-2072" '(("7(2(ך7" 9299999993 ץ,ץץץץ "9" 4 )]]1) ,4+ 55 6 99 999999 999 ְְ,ָ,,,ָ,,, 9 א 7ץ 77 ,7 ,+ +*=עכ=" ,77/7 2( 7/8 |////-//מ/מ/ח/ח/ח/ח/מ/מ/ח/ח/ח/]/ח/ח/1ח/חח/ח 9מצחצ[צנמצמ/ח/ח/ח/ח/ח/ח/ח/ח/ח/ח/ח//ח/ח/// חחח ח₪חח99₪ְ99₪ַ₪ 0/8 1" "-*""-*"-""-"5"5"5"5"-*11111]1]"""5"5"5"5 ]1111 2 22222222 222 22222222 222222222 0/2222 (ך23ך 9292993 229ץ2ץץץ2ץץ ,ררע ""-"55"5"5 5 ךְך29"" 4 ,1112222222 לפ פפפפם 6 99999999 0 0 7ץצַךַץַדץץץץ7ך7ך,ְךךָץ ד ץ7ך7ץדץדץ2727ץץץץץץץ797ץ99ץץפדץךץד,ףךְ7ֶַ, "772 8מנמנ-מ|/|/||| || | //מ|/מ//ח/ח/ח/'ח קל יי 2 יקנע כ ככ ככ כ ככ כ כ ככ יכ כ ככ ככ 8 """-"-"-"- """"""""""""""" ,1111111 2-9(2כ ככ כ2 202222 כ 22222( ((22 = בבבבבבבבבבבבַבבבבבַבבבבבבבבַבַבַבבבַבַבַבבבבבבבבַבַבַבַבַבבבבבַבַבבבבבבבבב3בבבבבבבבבבבבְבבבַבבבב3 46 תםסםפת4(01) 6ה521ה[(3) 8ה )22261218‏ 01תת1(61) פרק 10: תצוגת טקסט 819 "' איתור מקום הסמן. תוכנית 1 תא בחרה את מקום הסמן באופן אקראי, אולם למרות זאת מקומו היה ידוע, ברוב התוכניות המאפשרות לסמן לשוטט באופן אקראי על גבי המסך, מתנהל מאחורי הקלעים מעקב אַחר מקומו, המעקב נערך באמצעות משתנים מיוחדים המועברים כפרמטרים לכל הפרוצדורות המתבסטות על מקום הסמן, למשל: בעורך של טורבו פסקל מוצג תמיד מקום הסמן (שורה וטור), כאשר מבטלים את מצב 166% - ס6ט8 (הקפצה אוטומטית של השוליים פנימה) גורמת לחיצת ע6>מא להקפצת הסמן לטור הראשון של השורה הבאה. לעיתים המעקב . אחר הטמן אינו מסייע, ואפילו מפריע לפעולתה התקינה: של התוכנית, בתוכנית 00103, למשל, יש חשיבות למקומו המדויק של הסמן, *יתכן שמשתמש לות על קליד העורה תוך כדי הקשת נתונים, במקרה כזה, יש להציג את מסך העזרה המתאים ולהחזיר אחר כך:את הסמן למקום שבו היה במקור. במקרה כזה גוזל המעקב התמידי משאבים מיותרים רבים. 7 למקרים 0 יש לו פסק פתרון אחר. הפונקציות אסמסתא ו א מחזירות את הקואורדינטות של הסמן, תוכנית המבקשת לדעת היכן נמצא הסמן בּרגע מסוים צריכה פשוט להפעיל את הפונקציות הללו, כפי שמתואר בתוכנית 2מתמחח (תדפיס 4 0-3 | תדפיט 114 | 1060 השס ;0% 68פגו . ו | שפטי :לע : 090006 תוט[ 00‏ שסת "ל 01 0 . בב , 5 0 , אנסשסת , ע6תסיינגת) א סיינ ו תננשסס .' [ 888ת3-000201 פתסעעטוס 1000866 ! = ;אסעסנם% =: א6תסינינגס [ 866ת00061-? %ת6ענטס 100886 ] 000 > ; לינסב? =: ע6תסעעגו " ( 6ת11 %תסעזטס 16 01082 ,6פעגת | י 0101 -[ שססתנש סתסעיגוס ת1 פשסע. 04 עסמתטא / ;1 + ( >באתג )11 =: פשסתכמו > תס צףתסעעגה) < פאסואמון 11 . ת1שסס 60 והמו 50 1 + עשתסעעט0 =: אעס)שסת 0+ [ 6ת11 8000088100 0800 01 55826 50 00.] ; ( אצסאשסת ,1 )005084 [, 6ת11 8פפסטטט 080 01081 + -%- : - | 0101 2 ל -- ה | לספ 81ת101עס סג %0 המטטסת ] - ;( וסוט וי 0% ו / תדפיט 14 10 ממשיך 3 הבא 0 חתלק ב" התכנות | וו הה וו ו ₪ המשך תדפיס 10.14: ן תנשסט 01902 << 26 נהמססתפות := 1 80 80 0‏ תאעו001 ע0ס+ ת1קסם 00 25 50 1 =: שסת ש0ס+ ;10 ₪06 שסת =: - 0066אסת ; ( אס , תוט001 )₪00 ; ( 1 + ( 6 )תססתפת )76000102 ב ; ( 66ססשסת ו ;6 ;( 1 + ( 24 )מססתפת ,1 + ( 87 תת ) 000 ; ( את11ת + 306 )16500102 ;( 847 )106יש ; ( 2000 )197סם 05000 1 ; ( 25 ,1 )/א00%0 | ; 1060/מנסא (( '...6ת6 %0 עספת6 711% )160ע₪ ; ת81סי1 - תוכנית 52ַתשאח ממלאה את המסך בתווים, ומציבה את הסמן, אקראית, במקום כלשהו, אחרי המתנה קצרה, התוכנית מפעילה את הפרוצדורה ו אשר מוחקת את כל התווים הנמצאים אחרי הסמן. בעזרת פונקציות 66%שת ו- צסמסתא יכולה הפרוצדורה 168 לקבוע באיזה מקום תתתיל פעולת המחיקה, מבלי שיהיה צורך להעביר אליה פרמטרים מיוחדים, שים לב, מקום הסמן אינו נשמר. הפרוצדורה מ01682826501:66 משתמשת במשתנה המוגדר מראש - אהא6ם1ז כדי לקבוע כמה שורות עליה למחוק, מיד נתייתחס ל-8%ת1ז ביתְר הרתבה. ניהול חלונות = | תוכנית 50818 (תדפיס 10,1, בתחילת הפרק) הציגה תווים בתוך מלבן שהשתרע על חלק קטן מהמסך, שטתים כאלה נקראים תלונות (5שססמ1ש). טורבו פסקל מאפשר לנהל חלונות באופן פשוט וקל. בחלונות משתמשים בדרך כלל בדי להציג מידע, או להגיב על פניות המשתמש מבלי להסתיר שטחים גדולים של המסך המקורי ובלי לפגוע בתוכנו. לפרוצדור הסמ יש ארבעה פרמטרים בגודל מלה: (תסס6סכ ,19%6ע ; 9" % )שס6תנח | 0 = נ28=ע2ה | פרק 10: תצוגת טקסט 321 הפרוצדורה משנה את הגדרת גודל המסך בהתאם למלבן המוגדר על ידי ארבעת הפרמטרים. אחרי שהפרוצדורה שס6מתנח מתבצעת, מופעלות כל הוראות התצוגה של המסך (012802, צ0060%, םמ1561שש וכדומה) על המקום היחסי המתאים במסך החדש ולא על המסך המקורי, רק הוראת טס6מ1ח אחרת תופעל על המקום המוחלט ולא על המקום היתסי, ניתן לתזור לתצורה המקורית של המסך על :ד | ;( 25 ,80 ,1 ,1 )טסבתגח החלון הקטן ביותר הוא שורה אתחת על טור אחד, הגודל המקסימלי, המהווה את ברירת המחדל של המערכת, הוא 25 שורות על 80 טורים. זיהוי החלון הנוכתי הקואורדינטות של הפינה השמאלית העליונה של המסך נמצאות במשתנה, המוגדר מראש, מ011ת1, אהאת1א מכיל את הקואורדונטות של הפינה הימנית התתתונה של החלון, משתנים אלה הם בגודל מלה אחת, שבה הבית הגבוה מכיל את קואורדינטת צ והבית הנמוך את א, בניגוד לפרוצדורות מסך אחרות, מניתים מנאבמתנטא (-א6%8ת1ח שתתום הקואורדינטות הוא (0,0) עד (79,24). הנה אופן השימוש במשתנים אלה: ( 8%6ת000201-< 6תפ( 162%-צסססט ) - ;1 + ( תנאשתגח )10 = 1% [ 806ת000201-ע תת 161%-צ6סקט ) - ;1 + ( תגאשתגח )ג = קסי [ 806ת000201-% 6תגו[ 06 1ינ- עסשס1 ) + ( אמאשתנח )10 =: סבשגת [ 8%6ת000261-? שתפת 1₪25ע-:10₪0 ) - ;1 + ( אהאשתגח )ג = תוס 11 + 161% - סהשנת =: בסבנש ;1 + קסד - החסס%סם =: פ>הקוסםת ;%ש1סת * ב010% =: - 70 שימוש בחלון אחד תוכנית 5093 (תדפיס 10.15) ממלאה את המסך בכוכביות, מגדירה חלון במרכז המסך ומציגה באותיות אדומות הודעת שגיאה מהבהבת (תרשים 10.8). 2 חתלק ב" התכנות 8 | י | תדפיס 10.15 | ;5065 תפיושסיון | 600000עת0 65פט בש ; 66ע : תותו001 , שסת | תנשסס ת0פע01 0 00 1 =: תתו001 עס+ תנשסט 00 25 60 1 =; שסת ע0+ ; ( שסת , 001 )005084 ;( 1 + ( 6 )מססתפת )600102אסיך .( '%; )ו : . ; תס ; ( 16 ,55 ,8 ,25 )שסהתנו | ; 01502 ; ( 15,:5 )00504 ; ( את11ת + 66 )6000102 ; ( 'ת0תתת, )2180 - ו ו 5 ו תרשים 10.8 הפלט של תוכנית 5083 - - - 2 פרק 0 תצוגת. טקסט 3. שים לב: הפניה השניה ל-ע0180 ול-0060%% מתייחטת לחלון. הנוכתי ולא לבל : המסךץ. כלומר, -למעשה הופך התלון למסך. " שמירת חלונות ושחזורט. התהליך ברוב *ישומי החלונות הוא: פתיחת חלון, הצגת תווים, קלט של נתונים, סגירת חלון -וחזרה: למצב המקורי, בטורבו פסקל קל מאוד להגדיר: חלונות : ולהשתמש' בהם, אך כיצד ניתן לשמור על תוכן המסך המקורי בדי שניתן יהיה לשחזרו אחרי סגירת. ו מיד נלמד לבצע זאת. תוכנית. 2פאנא שבתדפיס 10.16 מציגה את הפרוצדורות חס6םנחאת6סס (-00%מת0105681, הפרוצדורה שס6מ1אמ6ס0 שומרת את תוכן המסך המקורי לפני הפעלת אסשת1א, הפרוצדורה %ס60ם0105601 סוגרת את התלון האחרון שנפתת ומשתזרת את המסך הקודם, באמצעות שתי פרוצדורות אלה ניתן לטפל ב-10 . חלונות. תדפיס 10.16 | (62ת1)) תפשסשק 0% 08פגו 6+ וט +ס 1 9. .6 ] תע = בו 0 = = ססתסותפינץ * 656 דצסססט וסט :‏ %משנתעסש 1 | 60113060 00 : עסחס)תססינס50 . ו יו יפי יס : כ --- + [ 1..10 ] קהעע8 : - 6ע60פ6תפעק 2 : 130 ( סע : צ%בש1ס1. 10 ו ה 0 6 - תנשסס - + שסמותטוסת1/ =: 1/0 |; ( [ שסמתתטססת1) ]20ס6פ6תפינ1 )שסון וק סש 7[ לססותגהססתגז ]תפי 1% ; 800% =ן 800 > ; 161 =: 1% 7 = 8 8 תס 3 ד 1/0008 3 8 - - | תדפיס 6 10 > ממשיך רו הבא 4 חתלק ב': התכנות | המשך תדפיס 10.16 ; 0108617100 6ינגוססססין תנשסס תנקסט 60 "[ סמתגהוססת1/ ]6026פסתפינ1 בנ ; עזסוה0(ת50260 =; "%סב5קהתס , (1+ (6:161%סק1)0א3) , (1+ (161%נסקקט)10) )שססתנש ; ( (1+ (%תשנתצסא11)10) , (1+ (%₪גתנסשס10)1) ; תס ; ( [ שססהגאשססת1] ]095%020ת8ע )150086כע ;1 - שסמתגושססת1 =: שסמתטאשטססתנב/ 7 ; ( 56ע0 : 711180 )2111502000 6עגוספססיז ינפש ;%6ע : תתעו[00 ,אסת תנפסס ; 012802 [ 180%ס %סא ] ;( 1 + 11102? )6תוסי40ס509א6ך סט 80 60 1 =: תעו001 202 תנשסט 00 20 60 1 =: שסת עס+ ; ( 1 + ( 6 )מסהתפת )6000107 ; ( ע01116 )166עש : לי ; 060 1 תנסא - תנשסס [ שהסץםססתסת +1 80000 60 50% ] | ;( 80000 ,88800 )62 =: 6סמפקפתס ;₪ =: סמת)אשסרננ/ו ;( 15 ,40 ,5 ,10 )אססת1/תססס 111502000) 2 ( ; ; ( 15 ,65 ,10 ,20 )שססת/תססס ;( 5 )ת11150200ע ; ( 20 ,25 ,2 ,5 )שססת:וח6סס ;( 4 )ת11150260ע ;ת[פסת ;( ' ...ע0סת0 111% )9156 ;( 1 ,1 )צא00%0 : 0 ;ת[הסת ;( ' ...ע66ת0 711% )166 ;( 1 ,1 )צא0ססס ; 010500100 ;ם[הסת ;( ' ...ע66ת6 711% )166 ;( 1 ,1 )אס ; שססת 0109061 - 0 הפרוצדורה מ211180266 מתארת את מקום התלונות וצורתם באמצעות מספרים (תרשים 10,9). פרק 10: תצוגת טקסט 325 תרשים 10.9 הפלט של תוכנית 2סא1או 5 0 952 5-4 1-5, 2 0 ו 3 2223 טר 4 4 ב ַ 22 14414 4 1 ו 0 הפרוצדורה שאסםנאב6ס0 מאחסנת באופן דינמי רשומה המכילה את נתוני המסך הנוכתי ואת המשתנים תנאבתנ1ח |ו-אהאהבתנח הקשורים אליו, הפרוצדורה | קוראת את הרשומה, משחזרת באמצעותה את המסך וקובעת את גודלו בעזרת תנגאבת1ח ו-אבבת1א. שים לבי השורה הראשונה בגוף התוכנית מאתרת את נקודת ההתתלה של זכרון הווידאו, הכללת פרוצדורה הדומה ל-6מ566/166096062 (תוכנית מ1מפסא תדפיס 1) היתה מאפשרת ל-2פאעא לפעול בכל סוגי ה-6פ, במקרה זה היתה התוכנית צריכה להשתמש ב: ;( 80000 ,%מ0ו71000560 )262=: שסמפסְהּת5 במקום ב: ( בתסעתססתסות +1 %8000 60 566) ;( 80000 ,83800 )סע =: >סַפּכהּת5 6 חתלק ב" התכנות סיכום בפרק זה הכרת את האופן שבו תוכניות טורבו פסקל מנהלות את תצוגת הטקסט במסכי מונוכרום ובמסבי צבע/ גרפיקה. למדת מהו זיכרון המסך וראית כיצד הנתונים המועברים לאזור זה מוצגים מיד על גבי המסך. למדת בי לכל מיקום על המסך יש מלה מתאימה בזיכרון. הבית הראשון של המלה מכיל תו 15011 שיש להציג, והבית השני מכיל את תכונות התו. כל סיבית בבית התכונות מגדירה תכונה אחרת (רקע קדמי, אתורי, עוצמה : והבהוב), הכרת גם את פרוצדורות טורבו פסקל המפקחות על הצבע והעוצמה. | למדת כי הכללת היתידה 62% בתוכנית גורמת לביצוע אוטומטי של פלט למסך בשיטה יעילה ומהירה, הכרת דרכים לביטול הפלט הישיר לזיכרון הווידאו ולביטול תופעת ה"שלג". . למדת להשתמש בשגרות לאיתור מקום הסמן, להשתמש בתלונות ולנהל מספר רמות של : חלונות באמצעות טורבו פסקל. פרק 11: תצוגה גרפית | 327 = פרק תצוגה גרפית תוכנית יכולה ליצור כמות אדירה של נתונים, 8 רק כאשר מתגלים בנתונים הללו יחסים ותבניות - הנתונים הופכים למידע. הגרפיקה ו היא שיטה רבת- - עוצמה להצגת מידע. המידע שניתן לקלוט מתצוגה גרפית אחת שקול לעיתים כנגד כמויות מלל ניכרות, מדענים ומהנדסים נוהגים להשתמש בגרפיקה כדי להבין את המשמעות בניסויים שהם עורכים; אנשי עסקים משתמשים בגרפיקה כדי לבחון -מגמות : כלכליות; עורכי . עיתונים ‏ ואנשי תקשורת אחרים משתמשים בגרפיקה כדי | להפוך סיפורים ארוכים למידע עובדתי תמציתי. ו מעוצב היטב מעביר מסר בצורה ברורה וקלה 2 -/ בפרק זה. תלמד את יסודות השימוש' שגות הגרפיות של טורבו פסקל, מסך גרפ מסך הטקסט מורכב מ-25 שורות ומ-80 טְורים, אם: תתבונן: בעיון בתווים, תראה כי כל תו הוא מלבן זעיר המורכב. מנקודות. כל נקודה ‏ כזו נקראת. 1שא1ש = (06ו616 6גושסצס). מסך מונוכרום מ 0, ,22 נקודות (350 שורות ו- 720‏ | ו בתצורת טקסט. ניתן ליצור מהנקודות' 2000 8 שרוחבם 1 נקודות וגובהם 14 נקודות, כל מלבןן מכיל אחד מ-256 תווי 25011 על צורת :התו מפקחת חומרת ה-6, המדליקה או מכבה את הנקודות בהתָאם לערך ה-8011ת הנמצא בכתובת . המתאימה 1 שבזכרון:המסך. גם תכונות הצבע, העוצמה וההבהוב חלות על -כל 2 ו כיחידה אחת. ל 8 חלק ב' התכנות | בתצורה גרפית ניתן לפנות לכל נקודה בנפרד, כלומר, ניתן: לבצע מיפוי סיביות (ש₪3 21%5) לכתובות בזיכרון ולפקת עליהן בעזרת תוכניות. | ו 1 הממשק הגרפי של 8מ18עסם ‏ טבלה 11.1 מכילה את רשימת קבצי 861, של טורבו פסקל. ‏ | טבלה 11.1 קבצים לניהול מתאמי מסך גרפיים 1 / | ו .1 ) ו 5 60 0 עגי, 2301105) 6010 !גוא 60 4067, 27920105) 660תגחת 0 4030167 220166 1060 0:6 - 21742105) סו 5 חצ 5 16 400 787 0-2 6105 3270 0 ואמז 1 8514 זאמ לפני שתנסה להפעיל את השגרות הגרפיות שבספר זה, עליך לוודא שקבצי הממשק המתאימים למתאם הגרפי שלך קיימים במהדר טורבו פסקל 0 קובץ 561, נקרא מנהל התקנים או 2ע8ש421 הוא מנהל למעשה את התצוגה הגרפית. המוצרים השונים שבשוק מופעלים על ידי מערכות שונות , של אותות תוכנה. = תפקידו של מנהל ההתקנים להמיר את פקודות טורבו פסקל לאותות שיובנו על ידי החומרה הגרפית. | ו רזולוציה ותצורות גרפיות | חדות התמונה (רזולוציה) נקבעת על ידי מספר הנקודות (615א01) שבה., התמונה חדה וברורה יותר ככל שהרזולוציה גבוהה יותר, התמונה בעיתון, למשל, בדרך יה -- | | פרק 11: תצוגה גרפית 329 כלל בעלת רזולוציה נמוכה, ולכן אינה תדה, בהשוואה לתצלום, משתמשי המתשבים מעוניינים כמובן לקבל מתאמים גרפיים היוצרים תמונה חדה ככל האפשר. ' ה-26 וקוק ל-4000 בתים כדי להגדיר מסך טקסט מלא (2000 מקומות אפשריים של הסמן, כאשר כל מקום מוגדר על ידי שני בתים - בית התכונות והבית המכיל את התו). צג גרפי זקוק לפרטים נוספים, ולכן מוקצים לו 16% בתי זיכרון. גם כמות זיכרון זו, העולה פי 4 על כמות הזיכרון שהוקצתה למסכי טקסט, כוללת רק כ-130,000 סיביות, הנמוך בהרבה מ-252,000 הנקודות הקיימות בתצורת טקסט. ה-26 עוקף את הבעיה בשלושה אופנים: 1 רוב המתאמים הגרפיים משתמשים בפחות נקודות מאשר צגי מונוכרום, למשל, מתאם 06 (מתאם גרפי נפוץ מאוד הנתמך על ידי המהדורות הישנות של טורבו פסקל) מכיל בדרך כלל 200 שורות של נקודות כאשר בכל שורה יש 320 נקודות (עמודות), כלומר מסך 06 מכיל 64,000 נקודות. בלבד (כרבע ‏ ממספר הנקודות שבתצורת טקסט). גם מסך 66 שבו 200 א 640 נקודות מכיל רק כמחצית ממספר הנקודות שבתצורת טקסט. | 2 למתאמים הגרפיים יש זיכרון משל עצמם. דבר זה מפתית מהעומס המוטל על ה-6פ, אולם אינו מאפשר כתיבה ישירה לזכרון הווידאו, זוהי אחת הפעולות שמבצע הממשק הגרפי של 6ת18עסם., | 3 רוב המתאמים הגרפיים מציעים מגוון צבעים קטן מ-16 הצבעים שבתצורת טקסט, למשלי מתאם ה-068 בעל הרזולוציה הגבוהה משרטט בשני צבעים בלבד. התצורה (₪086) של המתאם הגרפי נקבעת על ידי הרזולוציה, מספר הצבעים האפשרי ומספר דפי הזיכרון, טבלה 11.2 מתארת את התצורות הגרפיות של מנהלי ההתקנים הגרפיים השונים. 0 חלק ב" התכנות טבלה 11.2 תצורות גרפיות ומנהל התקנים גרפיים בטורבו פסקל רזולוציה מנהל מתאם דפים צבעיס (שורהאטור) ערך שס התצורה גרפי גרפי 2-ה 1 () 0 * 320 0 0 | 0 0 1 1) 200 א 320 1 1 1 2) 0 א 320 2 2 1 3) 0 <* 320 5 3 1 2058 2 0 א 040 4 ד 1 0 0 > 320 0 0-ו 0 )א 1 1) 0 א 320 1 1 1 2 0 * 320 2 0-2 1 3 0 * 320 3 (6 0 1 0058 2 0 < 640 4 ב 1 2005 0 <* 640 5 וו | 4 5 16 .0 <* 640 0 0 ו 4 2 5 16 0 <* 640 1 גד 1 58 16 0 < 640 0 0 1 5 4 0 * 640 1 0 *1 22006 0 * 640 3 וד סת סא +2 22005 0 * 640 2 0 2 5 2 8 * 720 0 0 000 5 1 0) 0 א 320 0 0 ונחש זג 1 1) 0 < 320 1 1-1 1 2) 0 * 320 2 2 1 3) 0 < 320 5 3 1 58 2 0 א 640 4 |ק א 1 208 0 640 5 ד 4 5 16 0 א 640 0 1 7 2 58 16 0 < 640 1 ו 1 5 16 0 * 640 2 0 | 1 5 2 0 * 720 0 1 מ 6 3270 1 5 256 0 * 640 0 0ץ1* 1 18514.201א10 4 ]ואמ 1 58 256 8 1024 1 זא *1 דפים, אם הכרטיט הגרפי מכיל זיכרון של א64. +2 דפים, אם הכרטיטס הגרפי מכיל זיכרון של א256. 0 -== | פרק 11: תצוגה גרפית 331 בעמודה המכילה את מספר הצבעים שבכל תצורה, מופיעה לעיתים האות 6 ואחריה מספר (3-0), כל מספר כזה מגדיר "מערכת" (0816%6%6) של שלושה צבעים ורקע. - רשימת הצבעים שבכל מערכת מופיעה בטבלה 11.3 | טבלה 11.3 מערכות הצבעים (28160665) של 0604, ₪064 ו-זאז בטורבו פסקל. מערכת צבע 0 צבע 1 - צבע 2 צבע 3 00 רקע ירוק בהיר אדוס בהיר | צהוב 1 רקע ירקרק בהיר מגנטה בהיר לבן 02 רקע ירוק = אדום חום. 3 רקע ירקרק מגנטה | אפור בהיר כאשר צבע הרקע זהה לאחד הצבעים שבמערכת, הטימנים הנכתבים בצבע זה אינם נראים (כמו כתיבה בעט ללא דיו),. צבע הרקע נכלל תמיד במספר הצבעים: שבכל מערכת, ולכן המושג "2 צבעים" מגדיר למעשה צג מונוכרום. הערה: במערכות מחשב יש למלה "תצורה" מובנים רבים. בפרק אה נשתמש רק להגדרת אופציות הרזולוציה, הצבע ומספר הדפים של המתאם הגרפי. למשל: למתאם 00 יש 5 תצורות. לכל תצורה ניתן להתייתס באמצעות מספר 4-0, או על ידי קבועים מוגדרים מראש ששמם: 0600, 061ת00, 6002 4 ,061, כאשר נתייחס לתצורת טקסט או גרפיקה - נציין אאת במפורש. מערכת הקואורדינטות לבל נקודה (61א1ק) ‏ במסך הגרפי ניתן לפנות באמצעות הקואורדינטות שלה (צ,א). הקואורדינטות של הפינה השמאלית העליונה הן (0,0). הקואורדינטות של 1 1 2 חתלק ב" התכנות. | | | 1 ן הפינה הימנית התחתונה נקבעות על ידי הרזולוציה של המסך למשל: קואורדינטות של הפינה הימנית התתתונה במתאם 06 בתצורה 00 הן (319,199). הקואורדינטות של מרכזו של מסך זה הן (160,100). המצביע על המקום הנוכתי הסמן בתצורת טקסט גלוי תמיד, אם אין משנים את מקומו על ידי הוראת צ050%ס0ס הוא נמצא מימין לתו האחרון שנכתב, כאשר התו האתרון שנכתב נמצא בטור מספר 00 - הסמן עובר לתתילת השורה הבאה; כאשר התו האחתרון שנכתב נמצא בסוף השורה ה-25 של המסך - המסך כולו נע שורה אתת כלפי מְעלֶה, והסמן מוצב בתתילת שורה 25. צורת הסמן והמעבר שלו משורה לשורה נמצאים בפיקותה הישיר של מערכת 05 או בפיקותן של שגרות תוכנה ביתידת 62% המחקות את 8סם, | כאשר עובדים בתצורה גרפית, המסך נמצא בפיקותו של הכרטיסי הגרפי, וכללי 05 אינם תקפים, | | הסמן במסך טקסט הוא מלבן זעיר בגודל 14 א 9 נקודות. בתצורה הגרפית, לעומת זאת, מתייחסים לכל נקודה בנפרד, המקום שבו נמצאת הנקודה שמתייחסים אליה נקרא המצביע הנוכתי (ע6 - עספתנסס %6משעעטס), הוא נמצא בדיוק במקום שבו נמצאת הנקודה האתרונה שהתייחסו אליה ולא מקום אחד אחריה כמו בתצורת טקסט. נקודה זו אינה נראית על גבי המסן. | כניסה לתצורה הגרפית ויציאה ממנה | כאשר משלבים בתוכנית את יחידת 026, הוראות 1%6עח | - ת1601: עוקפות, אוטומטית, את מערכת 05כע ומשתמשות בשגרות המהירות לפניה ישירה לזכרון הוידאו, יחידת מ7ק628 פועלת באופן שונה, טורבו פסקל מנית שהמערכת נמצאת בתצורת טקסט (ברירת המחדל) גם כאשר משלבים בתוכנית את יחידת תסְה8מ6. | ניתן, כמובן, לכתוב תוכניות שמטרתן היתידה תצוגה גרפית, אולם ברוב המקרים הגרפיקה אינה המטרה העיקרית אלא תוספת בלבד, תוכנה של גליונות אלקטרוניים או תוכנה לניהול מסדי נתונים, עשויה לעבור זמנית למצב של גרפיקה, אולם [ [ ו | | פרק 11: תצוגה גרפית 333 רוב משאביה מוקדשים לתצוגת טקסט. רוב הממשקים האינטראקטיביים עם המשתמש הם בתצורת טקסט. כמו כן, התצוגה הגרפית מאטה בדרך כלל בצורה ניכרת את תצוגת הטקסט, יש מערכות שבהן ההאטה כמעט אינה מורגשת, אולם ברוב המקרים ההאטה משמעותית ביותר, ועלולה לעצבן גם את המשתמש הסבלני ביותר. כדי למנוע: בעיה זו, רצוי לעבור לתצורת טקסט כאשר אין משתמשים בגרפיקה. כניסה לתצורה גרפית הכניסה לתצורה הגרפית מתבצעת על.:די קריאה לפרוצדורה בת 1627 : עסטנמכםבסהע עבט )בת7ק15628מ1 6עגוספססצנס 7 : 006אם0280 עהּטצ ;( ט0ם1נעספ ‏ : עסטנתססיית6הכ הפרמטרים 68016 ו-6281006 מגדירים את מנהל הגרפיקה ואת התצורה, ב-עשטנעפסעת86ע נמצא שם הספריה המכילה את מנהלי ההתקנים הגרפיים. אם מנהלי ההתקנים נמצאים בספריה התורנית - הצב במשתנה מתרוזת ריקה. ב-ת7ק116628 ניתן להשתמש בשתי צורות: 1 אם מציבים אפס ב-62ט02802621 לפני הפניה ל- 1160 טורבו פסקל משתמש בברירות המחדל של מערכת המתשב. ‏ | 2 =: עסט1עכםק028 ( 'פ :6' 2 ,נסט1נ:כםק8ץ0 תד הקבוע המוגדר מראש 65606 (שערכו אפס) הוא הערך ההתחלתי של עסט1עסתס בעת הפניה הראשונה ל-םק166:8ת1. ו הואפרמטר משתנה, ולכן אינו יכול לקלוט ישירות פרמטר קבוע. כאשר הפרוצדורה מ1%6287ת1 מסתיימת, נמצא ב- עסץט1עפם8ת6 ערך המתאים למתאם הגרפי שטורבו מצא, ו-0280₪066 מכיל את הערך המתאים, לדעת טורבו, לתצורה האופטימלית של המתאם, ניתן להשוות את הערכים המותחזרים בפרמטר ע6ש0-1ם680 אל הקבועים המוגדרים מראש שבטבלה 11.4, הערכים של 6 נמצאים בטבלה 11,2, למשלי במתשב שבו מותקן מתאם צבע 4 חלק ב" התכנות -. בל | | [ | גרפיקה, מכיל עסטנעכקםתק8ע62 את הערך 6, ו- - עשוי להיות . 01 טבלה 11.4 מנהלי התקנים גרפיים מנהל . ערך 2% 60 6% הסנ 64 6 סתסותס 4 ד סתס10 0 ית תס 200 0 5 9-32 ₪ ₪ וש 0-10 פ - | 2, אין להניח שהמחשב שלך מכיל יותר ממתאם גרפי אחד, אולם יתכן שהמערכת אינה מצליחה, משום מה, לגלות איזה מתאם מותקן במחשב, כדי. להיכנס לתצורה הגרפית ולהגדיר מנהל מסוים ותצורה מסוימת,: יש לבחור בצירוף תקף עבור הפרמטרים צ6ץ1:פםס:ס ו- 031066 לפני הפניה ל-ם1>6:87חד.. /608=: מסט1עסםק0:8 0=: 66סאתסה:ס ;( 'עץ :6' ,6 0 )תד הפרוצדורה 11602871 טוענת את קובץ 861, המתאים לתוך ה"ערימה", טוענת את ברירות המתדל של כל ההגדרות ומנקה את המסן. ‏ | הערה: ו בדוגמאות שבספר זה הנתנו שהקבצים הגרפיים נמצאים בספריה פץ':6. 339 | | פרק 1 תצוגה גרפית זיהוי החומרה הגרפית אם אינך יודע מהי התצורה הגרפית של ה-20 שלך, תוכל כמובן להפעיל את הפרוצדורה [16028ת1, שתודיע לך איזה מתאם גרפי מותקן במחשב ומהי התצורה הגרפית האופטימלית שלו,: פרוצדורה. זו גם. מעבירה את ה-6ע למצב של תצורה גרפית, גישה אחרת, ישירה יותר, ‏ נעזרת בפרוצדורה ו 1 56002מ1 : ,6 עהצ ךר 0 פרוצדורה זו נקראת על ידי תד כאשר הפרמטר עס 0:3 אפס, תוכנית = 60 (תדפיס 1 1 מדגימה את השימוש ב- ןוו תדפיס 11.1 > 0 תפילססינן 2 ג י : יפי ע0שססת1 : ב 0 0 תנשסס . ; ( = 066כיז ₪ סט 0-11 +60 ( 8: 60סוספינ 8: עסץ1ע 09 -)ת1%01יא - + > כאשר מפעילים את 0עא1ע3 במחשב 8 אס הפרוצדורה תודיע שמספרו של . מנהל ההתקנים הגרפיים שבמחשב הוא 1, וההתקן פועל בתצורה מספר 4. התקן מספר 1 הוא מתאם 06 (ראה טבלה 4) ותצורה. | מספר 4 של 062 היא 111ת0, | כלומר רזולוציה גבוהה של 200 < 00 נקודות (ראה טבלה 11.2). כאשר הפרוצדורה 6 אעה מוצאת מתאם גרפיקה, : מחציר - 0 את הערך 2-. % הו התצורות הגרפיות 7 למתאם גרפי יש בדרך כלל כמה תצורות אפשריות, והפרוצדורה מ6%60%0280 ממליצה על התצורה האופטימלית שלו. בטורבו פסקל קיימות שגרות שבאמצעותן תוכל לדעת מהן התצורות האפשריות של המתאם שבמחשב | של 6 חלק ב': התכנות | | | ?517 : 6תהאתסט00%021 מסנססתט+ 7 : 6 בס1ס6סתגות 1660617 : 8 ב 0ס61סתגו+ ?עס : ( 160062 : 62821066 )סתהּא0 אפס בסנ61סתט+ ?1 : עסטנעסםקה1628 ד סט ססססינס נ(ע16000 : 8180866 ,86סאס נצפט הפונקציה סותהּא-נסט 1 66% מתחזירה את שם מנהל ההתקן הנוכתי. תוכנית סשא1עתתס לא השתמשה בפונקציה זו, כיוון ש-6ה8אשסט1ע0060 פונה לקובץ דַס8, הטעון במערכת, ולכן ניתן. להשתמש בה רק כאשר המערכת הגרפית פעילה. 96 מחתזירה את מספר התצורה הנוכתית (על פי טבלה 11.2), מספר זה יכול להיות פרמטר של הפונקציה 065006886 המתצירה את שם התצורה. מספרי התצורות נעים בין 0 ל-%086א6658 (פרט לתצורת סמסא62ע), הפרוצדורה 006 מחזירה את הערך הנמוך ביותר והגבוה ביותר :בכל מנהל התקנים. התוכנית %02א0921 שבתדפיס 11.2 משלבת את כל השגרות הללו ויוצרת תצורה שיכולה להיות חלק מתפריט או מסך עזרה. תדפיט 11.2 ; 121208 ותפידססיזסן ן | ב[כ8י11) 86גו לפטי ; 15001 : עסטנעם ,בש111 1/0 , 06סספינ : , ינסט יתפי : / , הנקסמ 26%60% =: עסטננסחספינ ; ( '0:10 ,08060 , עסטנעסתספינ )1+080ת1 ; ( ב11₪ 10 , עסט1 םת )9% (' ע6ט1ע0 | ,סתה)עסט1תע06% ,7 מס קתנפט ע1לתסעט0' )ת1661י ; ( ( 005080066 )00000680 (' 06סת תג" ; 0611 יט ;( א10 ,7 18 00סת :ו ' )ת1461עשט ;( גשוה ,' 15 ₪066 5%סמק1א/ ‏ ' )ת1%61עש ; ת01> נבינש | ; ת191יחט :66% ,' %28 עס 596סקקטט 0868 :050" )ת1%01יט (( ':806 ע60100 ' , ת1001יט 0 0031020066 0-50 =: מסטגעם ע0ס+ ;( ( עסטגעת )000000086 ,7 - * )ת1%61יט [ 6גות%1תסס 60 עספת פפסקק + ; 108111 010800180 . תס ו ו | פרק 11: תצוגה גרפית 337 הפלט של תוכנית 902א1עת6 שהופעלה במחשב פט,זע 60820 מתואר בתרשים 11,1. תרשים 11.1 ' הפלט של תוכנית 02-א66-1 20 * 0 006 ה1 ת6ט1ת0 601 8[ :05108 14)חסיע) > 085% 9006 15 0 195% ₪006 15 4 וג 1062 660 פו[% 2% 02668עע50 ₪0465 066 פקודת 809 /תגו (5'-416/) פקודת ש6פט/ מגות (קליד 5ע-1%6) שבתפריט יכולה. לבדוק את הפלט בתצורת טקסט בלבד, הפרוצדורה- ' 61052371 מוחקת את התצוגה הגרפית כאשר | המערכת יוצאת מהתצורה הגרפית וחוזרת לתצורת טקסט, לכן משתמשות רוב התוכניות שבפרק זה בפרוצדורה ת68061ש, כדי לשמור על התצוגה הגרפית בעת ההמתנה ללתיצת תס6ת₪. בירור גודל המסך אם אינך בטות לחלוטין שתוכניותיך יופעלו תמיד בתצורה של מתאם גרפי מסוים, עליך להימנע מכתיבת תוכניות המשתמשות בקבועים להגדרת הרזולוציה. כדי למנוע ממך את הטרחה שביצירה ושבעדכון מתמיד של טבלה המכילה את כל המתאמים ותצורותיהם, מאפשר טורבו פסקל להשתמש ב: - 106677 : %א000%88 תסנ6>סתגו+ 17 : צאה006%8 תסנטססתט+ 8 תלק ב" התכנות | | . ו הפונקציות 08% ו- צאה8א066 מחזירות את מספר הנקודה הנמצאת בקצה הלמני של השורה התתתונה, למשל, במחשב פט.זק 0020 עם מתאם 06 בעל רזולוציה גבוהה של 200 א 640, תתזיר הפונקציה 7 %אא08 את ו 9 והפונקציה צאה0 תתזיר את 199. / | הפינה. השמאלית העליונה של המסך היא (0,0) והפינה הימנית התחתונה היא ( צא%3+66618%%,06) ולכן הקואורדינטות: המגדירות את מרכז המסך הן: 27 61 א =: %6ת1סק3נ1נחא / 4107 צא00%%8 =: %תנ1סק6נחתצ נשתמש בטכניקה זו כדי לשכתב את תוכנית אסס,:,זתמ שהכרנו בפרק 7. הגרסה החדשה של התוכנית מופיעה בתדפיס 11,3, תדפיס 11.3 00 3811 תהידטסיוסן נ מפי 05פגו | שפט ע%600ת1 ? 060 ( עסטגעת סש : פגונפת 0 , 1001 תנפסס 0% =: עסטנגעם 7 -פק:0/ ,006 , עסט1עע )מ1+080ה1 (2 ט01 600% =: %ת10001ח2 )2 ט41 ע60%09 =: >תנסקס1מצ 0 4 טגה 000092 %0 1 =: פגו1בהת 102 ; ( פגו1מת , 100 ,250 )006 ב 01 | . תס שים לב: ניתן לבטא במונחים של צא066%8 גם רדיוס מקסימלי של מעגל. 4 [ איתור מקום המצביע במסך גרפי | במסך גרפי ניתן לאתר את מקום המצביע באמצעות ו 07ח66מ1 |: 06% מסנשסתט? 1667007 : צ606 תסנססתט+ פרק 11: תצוגה גרפית 339 00%8 ו-צ666 מחזירות את קואורדינטות א ו-צ של המצביע, (בניגוד לסמן בתצורת טקסט, המצביע בתצורה הגרפית אינו גלוי). יציאה מהתצורה הגרפית היציאה מהתצורה הגרפית מתבצעת בעזרת הפרוצדורה 610500287, הפרוצדורה משתררת את הערימה של מנהל ההתקן הגרפי ואת אזורי האחסון של השגרות הגרפיות ומחזירה את המסך לתצורה שבה היה כאשר פרוצדורת 1150287 הופעלה. אם לא תפעיל את 0105602802, התוכנית תסתיים והמסך יישאר בתצורה הגרפית. במקרה כזה תיאלץ להשתמש בפקודת ₪כ0סא של 205 כדי לתזור לתצורת טקסט. מעברים בין תצורת טקסט ותצורה גרפית הפרוצדורות הבאות יסייעו לך לבצע מעברים בין תצורת טקסט ותצורה גרפית: 7 ₪6 66ססעס /( 160002 : 66סא )9650280006 6עגוססססנס הפרוצדורה 6502606066 גורמת ליציאה מהתצורה הגרפית ומתזירה את המסך לתצורתו המקורית (התצורה שבה היה בעת הפעלת ב150280ם1), הפרוצדורה 6 מחזירה את המערכת לתצורה הגרפית, טוענת את כל ברירות המחדל ומוחקת את תוכן המסך, ניתן גם להשתמש ב-56502808066 כדי לעבור לתצורה גרפית אחרת. השימוש ב-- 365600026%0066 וב- 5660181066 עדיף עלהשימוש ב-₪105001:8 וב-1%02871מ1, הפרוצדורה 68%6026026006 אינה מוחקת את מנהל ההתקנים 861 מהזיכרון ולכן השימוש: בפרוצדורה זו תוסך את פעולת הטעינה מהדיסק לזיכרון המתבצעת נעל ידי 116687 | תוכנית 51108 שבתדפיס 11.4 מדגימה את אופן השימוש ב -05506095%066 וב- -56%0287%006, 0 תלק ב" התכנות 2 | תדפיס 11.4 1601 ותהינשסינקן | נ80ע0 ,02% 68פט : בי ; ע%000ת1 |: 006 , עסט1ם (סעסש : עע%0ת00 ,0006028 | פגווספת תנשסס ; עספינ01 ;( '1010 8 806 %0 ה 8 )06גיט ; 108011 9 =: עסטועת ; ( '0:1' ,066 , מסטגעק -)16080ת1 .2 617 0012206 :=: 50%ת06 = [2 014 צא0054 =: צע%6ת00 ; ( = ע50ת 06‏ , %07%ת00 ,%02%ת09 )012016 ;( ימואת פס )0 ן ; ה109/0[1 ו 2001006 05%0 ;( '01086 1% 806 40 האוא 8 )106יש ו ;סי 5600000 ) 066 ( ; 0 1 4060 צעספת00 =: פגונאפת עס+ ; ( פגונגת ,צ%07ת00 ,(%ע%0ת00 )012016 ; ( | תתהששסינק 6ב% 8ת6 60 הנאת פפסצל" ) 00 ; ת801סי1 ; 01056080 . תס [ תוכנית 1 עוברת לסירוגין מתצורה לתצורה (מטקסט לגרפיקה, מגרפיקה לטקסט ‏ ושוב מטקסט לגרפיקה), נסה להתליף את 568502662%%00686 ואת 6 ב-6105002802 וב-1602801מ1, ההחלפה עלולה לפגום בזמני הביצוע של התוכנית. | טיפול בשגיאות בתצורה גרפית הגרפיקה תומכת בדרך כלל בתחלקים חשובים של תוכניות יישום, ולכן טורבו פסקל אינו מאפשר לשגיאות הרצה גרפיות לעצור את התוכנית. במקהה של שגיאה, השגרה הגרפית פשוט אינה מתבצעת, וטוענת ערך מסוים במשתנה פנימי, הערך מבטא את סוג השגיאה, והתוכנית ממשיכה לפעול ‏ כרגיל. : ניתן לבדוק את ערכו של המשתנה הפנימי בעזרת הפונקציה 1%גופסתתק0:8, -יצ.י.ים.ם-...י.". . [)+.+[;ץ ' פרק 11: תצוגה גרפית ‏ 341 66627ת1 : 68016תת80ע02 מסנססתט+ טבלה 5 מכילה את רשימת קודי השגיאה המותזרים על :זי 16גופסתם8ע ומשמעותם. שים לבי הפונקציה מאפסת את קודי השגיאה. . טבלה 11.5 קודי השגיאה של 6780086501%6 פירוש השגיאה קוד השגיאה שם הקבוע 7 סא -- 0 ו פס 0130108 (301) -- 1- 0+ 1ת1 סאינם 0% 4200476 0000108 2- ב ( ) מס ₪04 ₪16 ז6ש67 6106 -- 3- טס 01 1 גי () 016 6111067 660106 16[גטם1 -- 4- סט 0101 1 קור יצם] עסץ) 10986 50 וסגת6גת ג[פטסת6 וסא ‏ - 5- 3/0101 10סארר 1 5638 ם1 ססות 01 וטס -- 6 סרפסאי 1 8006 םג ץזסות6נם ]0 וטס - 7- תס בעסארום () 6תטס) 01 816 זתסץ | 8- תוס 61 61)0תס ידש 10406 0+ ץסנת6גת ג[שטסתס זסא ‏ - 9- 0 תס סאד עסץן )1‏ 56166166 10 66סגם 013105 110ם1 -- 10- 6 קריד 6 6130105 1- צסינונמי 60 1/0 108תק04 -- 12- ו 1060 ( ) 16 1תס) שו1הטם1 -- 15- 00% 1 [ה8ץיתדידש 6 נתטום 1ם10 4116ח1. 4 תס 81107טת1 ₪ | "שם הקבוע" בטבלה הוא שמו של קבוע המוגדר מראש על ידי טורבו פסקל. הנה דוגמא אופיינית לתוצאות המתקבלות 9 0 ;( 'פע:6' ,066ס84:ס 028001001 )ם160280תד מסם> 420% > 16טפסתםתק8ע0 +1 ;כ( 1 )16 42 חתלק ב" התכנות ₪ 02 8 1 הפונקציה 56א:סענמתס6:8, שתצורתה | / 6 ) כ : 0066עסצע 6 תסנ6סתגו+ מחזירה את הודעת השגיאה המתאימה לכל קוד שגיאה: - 06 (ראה טבלה 5). בעזרת 0 ניתן להציג. הודעות שגיאה מפורטות יותר. ; ( :0 , 066 8 )10 תד ( 20גג0009 , סגו81ט 56 5606 ] ;16גופ0תת80 0 =: עסעתתקה0 -[ 0ע20 50 080%8ע 6נגופסתמק09 ] : | [ 0811 ג[080 ע81%0 ] תנשסט תסם+ ₪204 <> עסעעמתס08 12 ; ( ( עסעע ינ סיס ) ת1061יט : 1 )16 ו רשימת כל הודעות השגיאה הגרפיות מוצגת על ידי תוכנית התמוזק הס שבתדפיס 5 5 | תדפיס 11.5 , 9 ותהידססינ סי 568ג1 יְ יפי ; %0002ת1 :5 עסמותטאנסעים | תנקסס 0 14- 0ס6ת60 0 =: ןו סיניעת עס+ ; ( |( עסמתגהנסעם )50](סינזמ 03 ,7 5 8 :ינ סמות יז ) 0011 יט | .ו פניה ל-11ו651חק8יל) ניתן לקרוא ל-62801368111% אחרי השימוש באחת מהשגרות הבאות: ,צנסקש8תכ ,2666060801 ,0105002871 ,202% 0168/16 ,3230 ,הט ,תק16028ת1 ,108968126 ,%8006ת06%0280 1 ,ץ01ק111ץ. ,10911006,001560-00101001ק, %ת0ע568110862ת8110562-0176:,1>תד ,16ע56%21115%6 ,מע56%711128%%6 ,56+1110816%%6 (5מ601560080150ת = ,5062810666 ,16ע0596ת86%11 ,5660802006 0 וננ ,צ+115%61ו06%76%0. הדוגמאות בספר זה אינן כוללות בדיקת שגיאה כדי להדגיש רק את העניין שאותו מדגימה התוכנית, אולם רצוי לבדוק את 2 אתרי ככ = פקודה חשובה, | - 0 פר ק 11: תצוגה גרפית ‏ 843.. שרטוט נקודות מסוימות הדרך הישירה. לשרטוט תווים גרפיים על. המסך היא פניה לנקודות. שגרות 1 טע (-61א66%621 של טורבו פסקל מבצעות משימה זו (( 6עסא : 61א1ע2 ;ע6000ם1 : צ ,א )א1ססגות 6גו00סעכ " 7% : ( ע6006ם1 : צ ,א )01א06%21 סנססתט הפרוצדורה גו משרטטת נקודה ב-(צ ). צבעה של הנקודה מוגדר על ידי הפרמטר 61א1פ, ו 11ננ- ל .את צבע -הנקודה שב- -(צ %).. נושא הצבעים יתואר בפירוט בהמשך. בשלב זה, תוכל 0 אל הצבעים כמו. למערכת הקבועים והערכים שתוארה בפרק הקודם, | טבלה 6 / חוזרת על -ערכים אלה. טבלה 11.6 הקבועים המוגדרים מראש של הצבעים. שם הצבע . ערך. שחור | 8 180% | 20 כחול ' 0000 6ט1ם. 1 ירוק הכבצס 2 כחלחל ּ מע .. 3 אדום 6 4 - מגנטה סבו 5 חוס | מטסקם 6 אפור בהיר ץע 7 אפור כהה ץנה 8 כחול בהיר 6גו1%91 9.. ירוק בהיר 116060 0 כתלחל בהיר בצ 1 אדום בהיר 1 172 מגנטה בהיר | %8ת11026%8006 33 | צהוב אס11פצ ‏ 14 לבן 66נתא 155 תוכנית ותא שבתדפיס 6 11 מדגימה. את אופן. השימוש ב טק וב-61א06521. 0 | 4 הלק ב" התכנות תדפיס 11.6 12 1161/אכ תהינססינק ; היז 808גו טי - ; ע0שס%ת1 : שת1אל , ₪006 , סק בינסינם יתסא : 1 ,8סק+? ,02055 ,ב16% תנססס (26000% =: עסט1עסם ( 7ק70:1 , ₪060 , עסט+ינסינם )םס 1+0תד 2 ט61 %א00%09 =: פססצ (8 ע61 צא00909 =: 098%ע02 06% =: 10% תנשסס 60 010% 60 0 =: 1 ע0ס+ ;( ( בססגא / 1*נק*10 )תגפ * 02085 )התטסת =: התנפ ;( 15 ₪08 1 ,שתנשפ + פסס? ,1 )[סאנקשגות ;( 15 ₪008 ( 8 + ( שתנאפ + 5סל ,1 )61א00101) (שתנאפ - פסקל ,1 )%סאנקסגות ; תס ; ת0801 0108001801 ו תוכנית א1%.זשאתאפ משתמשת ב-61א1ע6טע לשרטוט קו גלי צבעוני. בעת השרטוט פונה. קריאה נוספת ל-61א1ע6טע אל הצבע שבגל הראשון (על ידי 61א00621) ויוצרת בבואה בצבע שונה (תרשים 11.2). תרשים 11.2 הפלט של תוכנית אז שחגאס שגרות לשרטוט קווים ניתן לשרטט כל צורה גרפית על ידי מספר רב (מאוד) של הוראות 61א1עסגוע, כדי להקל על התוכניתן, נכללו בטורבו פסקל שגרות מוכנות לשרטוט רוב הצורות ההנדסיות, בקטע הבא נתאר מספר דרכים לשרטוט קווים: 0/0/09 0 פרק !1: תצוגה גרפית 345% שרטוט קו ישר שרטוט קו הוא תהליך גרפי שכיח, % |( 156062 : 2+ 2 וצ 10 6 6ענגו60ססנכק הפרוצדורה 16 משרטטת | קו ישר בין (1צ, 1) ו -(2צ 2 תוכנית פ5מא1,זא זי שבתדפיס 11,7 משתמשת בצירופים של הוראות 6 בדי * ליצור. את השרטוט שבתרשים. 143 תדפיס 11.7 = ; 181,168 תהשסעס > ; גזסהיז1 08פגו ב ; ע%0₪0ת 1‏ : ₪000 , סט נינסים (סעסט : 10חל ,אהחצ ,ע הנבשס ;0% =: עסט1עסם ; ( 'עא:0 0-ה , סט 1 קינ )+11 ; 6כ60%19 =: אמח ;2 814 <החלץ =: סנ1חצל תנשסט 00 הבנחצ 1/0 =: ק שס1 [ 102% עסססט | ;( צ ,0 ,0 ,צ - 18מצ )6ת11 -[ 5בשוץ עססטט ) ;( ץצ ,(אגחע ,0 ,צ + הנמל )סתגך [ 101% עסשס1 ] ; ( אמחץ ,צ ,ץצ + 8נמצ ,6 )פת11 [ 1₪%ע עסשסם ) ; ( ץצ - אמח+? ,אהחל ,אהחל ,ץצ + 6נמל )6ת11 0 ;6תס ; וז01אסי1 0105060801 2 תס תרשים 11.3 הפלט של תוכנית 8פאז וד . 6 חלק ב" התכנות. | המעקב אתר המצביע אחרי ביצוע הפרוצדורה, ו( 2צ ,2א ,וצ ,וא )6מ11 המצביע נמצא בנקודה (2,2א), נניח שאתה מבקש לשרטט קו נוסף: ;( 3צ ,3א ,2+ ,2א )6מ11 במקום להגדיר במפורש את מקומו הנוכתי של המצביע כנקודת ההתחלה של הקו, ניתן להשתמש בפרוצדורה: (( 8ע600סם1 : ,צ ,א )00ם11 6עט0ססס:ס הפרוצדורה סי'שג11 משרטטת קו ישר בין הנקודה שהמצביע נמצא בה ובין הנקודה שב-(צ,א) ומעבירה את המצביע ל-(צ,א), יש זהות בין: ;( 2צ ,2א ,וצ ,1א )ס6ת1ע . ;( 3צ ,83 ,2צ ,2א )6ת1ז ובין: | ;( 2צ ,2א ,וצ ,21 )6תנ1ז ?( 3צ ,3א )סי'סתנוז קבוצת ההוראות השניה תתבצע במהירות גדולה מעט יותר. | ניתן להעביר את המצביע לנקודה כלשהי באמצעות: ' ]( ע6000ת1 : צ ,א )10 'פט0סא 6מגוססססעס הפרוצדורה סע'סטסא מעבירה את המצביע: ל-(צ,א), מבלי להשפיע על צורת המסך. ההוראה: , ו( 2צ ,2א ,וצ ,1א )6תנ1ז זחה, אם כן, ל: 0% 1 1 )סי'סטסע = :(27צ ,2א )1670 פרק 11: תצוגה. גרפית - 847. ' הדבר מודגם בתוכנית אדאד (תדפיסי 8 1 המפיקה פלט והה לוה של פמאדזאות?.. תדפיס 11.8 > :91162 תפעשסצסק | | ; גי 1568 . | ו אש | ,עסשספת1 : ₪170066 (עסטגמסתם יסעסש : הנחל ,(אהחצ ,ץ | - 7 תגפשסס (06%60% =: עסט1עסם ; ( '70:10 ,066 , עסט1עסיש )1+6902תך . ; 061% =: <גחצ 0 ט01 אפחל =: בנחצ תנשסס 60 18חל %0 1 =: ץע ע0ס+ [ 1016 עסססט ] ץצ )60 > ;( 0 ,צ - שגמ )סצסטסון [ 6ב1₪ע עסססט ] | > ;( ץ ,אמחץ )13610 . -;( 0 ,+ + גצ )ס[סטס [( 10% ע6אס1 + 0 2 ;( אתל ,+ )10סת13. . ; ( צ + -6נחצ:,0 )טסו > [ 105 עס + 17( יצ - אהחץ ,אהחץ )110610 . ;(.אהחצץ ,ץ + 16מץ )סדסטסון : : : : ;תס ; ה8[1סי1 ; 0108001801 . .תס שרטוט קווים על פי הגדרה יחסיית. משתמשים .בפרוצדורות ס'שיסו, - 6תנ1ע ןו -6'70מ11 כאשר הקואורדינטות של הקו ידועות מראש, לעיתים קרובות נוח ינתר להזיז את המצביע.: או לשרטט קו על פי אמות מידה יחסיות, כלומר. להגדיר מרחק יחסי 5 הנוכתחי של המצביע. ש 16606 : צם ,אס )טס 6עגו060ס:ש כ : צס ,אכ )1116861 6מגו6סססנסם זכור: 666% ו-צ06%6 מחזירים' את הקואורדינטות של המצביע הנוכתי, . / צם. ,אס )טסו זהה לח | 7 | ;( צם + צס06 ,אס + 005% )סנ'סטסון ( | , 0 | (צפ , 7 תו זהה ל- ' צס + צ066 ,% + 0% )ית 8 תלק ב" התכנות | > ו הפרוצדורה 116861 שימושית מאוד כאשר משרטטים גופים הנדסיים, ננית שהקואורדינטות של אחת מפינותיו של ריבוע, משושה ומתומן נתונות, מה תהיינה הקואורדינטות של הפינות הנותרות? לא קשה לחשב את פינות הריבוע, אולם לפינות של הגופים האחרים יש להקדיש מעט מחשבה., במקרה זה, קל יותר לקבוע את הקואורדינטות היחסיות של הפינות ולא לתשב את מקומן המדויק. תוכנית פמפגאה שבתדפיס 11,9 משתמשת בתנועה היחטית כדי להציג ריבוע, משושה ומתומן, [ [ תדפיט 149 | ; 51191068 ותהשסינ בע 65פט 2 ו[ ' %פתסס [ 2 04 200% 80406 ] - ;1.414 = 52 [ ₪ 02 00%5ע 6עגגו90 ]0 ;1.782 = 58 ו( 2,0- ,0 ,2 ) = 2081 0% [ 1..4 ]קַבצעה : 61%820ס .(1- ,0 ,1 ,0 ) = בהסע 04 [ 1..4 ]קתעה : 0צ1%8סכ 2 ,2- ,1- ,1 ,2 ) = 2081 04 [ 1..6 |]עבעעה : 1א1%4סת ( 88/2- ,86]/2- ,0 ,58]2 ,55]2 ,0 ) = 2681 0% [ 1..6 ]קתעה : 16841 (( 82 ,0 ,88- ,2- ,82- ,0 ,82 ,2 ) = 681ע 0% [ 1..8 ]שָהעעה : 61802 ( 88]5- ,1- ,580]2- ,0 ,82/2 ,1 2 ,0 ) = 681ע +0 : 1.8 |עהעעה : 61682 ב [ ע80%0+ שַת50811 ] 5 = פספספת1 : עססספץ שפטי ;יסאו : ב , זר010ת %0₪01ת1 : 066 , נסט1נסים נ;%6עם : 1 | הזנקסס ;66005 =: עסט1מסם ; ( '0:15' ,20006 | עסט1עכעם )ם1%090תד ;5 ט41 צא00000 =: 6בשוסום ;7 ט01 009% =: בססגא. [ 16קתהלססע 8 צַ13ס5נכ) ; ( 161₪2% , 160 )סדסטסו 0 4 %0ף 1 =: 1 102 ;( ( [ ג ]%02*261%8/0ס3ת )התטסת ,( [ 1 |790%07*2014820 )סתעגוסת ) [סססת1ך [ תסשהאסת 3 שַ13ס3וס! ; ( .110105 , ב 5*0/16‏ )סי'סטסון : 0 6 00 1 =: 1 עס+ ( ( [ ג ]80%0:*06148%1? )התטסת ,( [ 1 ]1א061%8*ץס6סבת ) תוסת ) 1.3661 [ ת0059₪0 "תה ק13ס3וסן ; ( 46186 , 5*0/10% )סנ'סטסו 02 8 %0 1 =: 1 200 ה 1 ור )טסת ,( [ 1 |30%0:*0014822ע )שתוסת. ) נסתפה3 ד ; ת0801י ב 0 - פרק 11: תצוגה גרפית ‏ 349 - תוכנית פמפג5₪ משתמשת בערכים הקבועים כדי לשרטט קווים ם על פי הגדרה יחסית. הפלט של תוכנית זו מוצג בתרשים 11.4. | . תרשים 11.4 הפלט של תוכנית 5.055 יתכן שהגופים ההנדסיים שיוצגו על גבי המסך שלך לא יהיו סימטריים לתלוטין. תלוקת הנקודות על פני צג גרפי טיפוסי אינה תמיד אחידה, בהמשך תלמד לתפות על חסרון זה. | סוגי קווים מגוון של סוגי קווים ועוביים מסייע להדגשת חלקים נבתרים בשרטוט, בשרטוט = אדּריכלי משתמשים בטכניקה זוי קו עבה הוא קיר חיצוני, קו דק הוא קיר פנימי וקו מרוסק מצביע על מקום הצנרת. | בשרטוטים שערכנו עד כה, השתמשנו בקו רצוף. ניתן לשנות + את אופו של הקו על ידי סט : 1056716 ו וו 7 2 : תתס66ע 1 ₪ : וסנת הפרוצדורה 6 מסוגלת לשנות את עובי. הקו ואופיו. | הערכים |שניתן 0 להציב בפרמטר 18 הם: 501101 > 2 = מ.0%66061 / = ב%670מ66 3 = 561 0 חלק ב" התכנות כפי שמשתמע משמות הקבועים, המנחר כולל קו רצוף, קו מרוסק, קו ציר מרוסק וקוו מקווקוו, הפרמטר 655ם10%8ם1 מאפשר לשרטט כל קו בשני עוביים שונים (רגיל ועבה). ;1 = 146שתתסא 7 = בת16%%8186ת7 כאשר משתמשים באתת מארבע האופציות הסטנדרטיות של 6 יש להציב אפס ב-מַשס66בּכק. תוכנית 091 שבתדפיס 11,10 מתארת את כל הצירופים האפשריים של סוגי קו ועובי. תדפיסט 11.10 1 תהפסיס ; בכ ₪05 , לפטי ( ע0קססת1 : 06סאקינ ‏ , סק יתפי ;סש : 1110/0585 , קוו ץ , כמתטןא ,580 תנשסס (26060% =: ע6ט1מסמספי 0 ;( 0:17 ,680060 , שסט1נכס 0 )ם1508תד ;11 ט01 060% =: קוטן2 2 ט601 צא00ס06 =: קמטנצ תנשסס 00 10 0ף 0 =: באהש עס+ 1 8 תסנס ( בסמשט )088 14 5 =: 055ום!11110 6186 ;‏ סוד ,2 ,4 בסו 581 )10ע56%1165% ; ( סו +*10 , סונו %*ב א ,0 , סחגוןא*58011 )116 ; ( סנו צ*ם8שפ , כ ון*10 , כתטך *4שפ ,0 )סת3ד | ; תס ; הז 108/01 0109508 > . תס == ------------------------------- הפלט של תוכנית 0815 מתואר בתרשים 11.5. פרק 11: תצוגה גרפית ‏ 351 תרשים 11.5 הפלט של תוכנית 6615 ומוחואותומואוא]אותוהוהוחוה,ה תוחוח:והופואוצו1ומותואוהוהו:ו | ו ו זַ [ואופואוחואוח: והוצואושוחוםו: ו | ן [דדדדדהזהההדדד] הההההההן מו ו | [ואומומוטואוה: ואופוהומומואוה|אופוהופומוהום ₪והוה:והוהותואו(ואואותואוחותג ניתן להגדיל את האופציות בהגדרה של סוגי קווים נוספים. הצב בפרמטר 6 את הקבוע המוגדר מראש מע16פעספט שערכו 4, ובתר בצורת הקו הרצויה לך באמצעות הפרמטר תססטטֶפ, שגודלו מלה, הפרמטר מכיל 16 סיביות. כאשר בסיבית מוצב הערך 1 - הנקודה דולקת, וכאשר מוצב בה 0 - הנקודה אינה דולקת. 0 | עעעע% ‏ ווווווווווווווו1 קו רצוף תגתת% 1010101010101010 נקודות 0 11111111000000000 קו מקוקוו 1000000000000001 1‏ ריק לכן אם נציב את הערך 05672161 ב-16צ656ם1/ ו-גתתג% ב-ם:8%66ע נקבל נקודות, ואם (נציב ב-םעסס6ע2 - עעעע%, נקבל קו רצוף. תוכנית 6122 (תדפיס 11,11) מדגימה את השיטה: = תדפיס 11.11 (162ע0 תמעשסעק ; ב[80 08פגו '2 : | 4-5 ; 1000 : 006)ההי | , סט בינסרספיז (סעסש : וטע ,אחא ,השס | השס 26%00% =: עסט1קתסהיז ( '70:1 ,090000 , מסט1עקתקפס )ם80ע1%0מ1 0 ]00% =: אמח ;7 ט61 06% =: קמטנצ : תנשפס 60 16 %0 1 =: )האפ עס1 ; ( ב1000010% ,1-(ב9%אפ 91 1 ) (ת[דגם:ס05 )16ע65%ת50%11 ; ( הטן צ*ב[טט , <גות2 , קוו צ*באס ,2 )6ת13 ' 6 ; ת[083יד ; 61050080 - הפלט של תוכנית 08102 מתואר בתרשים 6 -. > הפרמטר ב8%6622ע שבו משתמשת תוכנית 68122 הוא 1-( ם8%שפ 1ם5 1), והוא זהה לביטוי 1 - ת2808%6. הערך שב-ם8%א5 משתנה (16-1) והפרוצדורה 16ע65%ת8651.1 משנה בהתאם את הערך שבפרמטר מ28%6%662, ומגדילה בכל פעם את מספר הסיביות הדולקות: פרק 11: תצוגה גרפית 353 | תרשים 11.6 הפלט של תוכנית 606102 3000000000003300303033030000000000000 צתתתתתתתתתתתתתתתתתתתתתתתסת 0( הברההתתתתתהתתשושש + ההההתתה=ן(20 הת א -₪ 5 5 * '-"""","("1 : """","(7(1 """",","(7(1 2| -1 22 - 1 23 -1 ווהכחה| <- 00 1 216 - 1 = 65,535 :- 1 1 אורך הקווים גדל ככל שמתקדמים לתחתית המטץ. : שמירה ושחזור של אפיון הקוויס כאשר מבקשים להחליף לעיתים קרובות בין שני סוגי קווים, רצוי לשמור את הגדרות הקו ולשתזרן כאשר נזקקים לקו שנית, ניתן לבצע פעולה זו בעזרת הפרוצדורה 95ת0661.11656%%61: | ;( 06ש0517םת0960%561ת11 : 0+ת61ת11 עהט )06%11696661205 6עו6סססעס 4 חתלק ב': התכנות | | | | הפרוצדורה 1-48 מתזירה את הגדרות הקו הנוכתי (אופי, דגם, עובי) לשדות שברשומת 0+מדסתנ. סד תג הוא טיפוס מוגדר מראש של 6 | ן 6006ע = הִסַעְַפִּשַָת661ספִת1.1 סט 5 16ע695ת11/ז | 7 בע8600ע2 | 7 685ת16%ת7 | הפעל את 8 כדי לשמור את הגדרות הקו הנובתי, כדי לשתזר את הקו במועד מאוחר יותר, קרא ל: 0ב ס+ת1סת1 ת16 ₪ אנת ,תת28+56 ל | )165916 קווים וגושים -‏ - 0 הפרוצדורה 5651165616 מאפשרת להדגיש קווים על ידי שינוי עוביים וצורתם. אך מה יקרה אם תשרטט קו על גבי גוש כהה? במקרה כזה הקו הנמצא בתוך הגוש אינו נראה לעין, אם אורכו גדול מאורך הגוש, קצהו "מצי" מתוך הגוש. ניתן לשנות זאת על ידי: ;( ע66006ת1 : 166%8086תח )6 סנס הפרוצדורה 6 מאפיינת את תצורת שרטוט הקווים, הפרמטר 6 קובע את אופן התצוגה של הקו. הערכים של הפרמטר הם: | 02 = %גופ צְססס6 או | 1 = 40 כאשר הערך שב- 1660866מא הוא 6גועצַקסס -. הקו מועתק אל המסך הנעלם בגוש הרקע הכהה, כאשר הערך שב-166%006: הוא 802% - הקווים התופפים מקבלים גוון בהיר, ונראים היטב על גבי הרקע הכהה. > פרק 11: תצוגה גרפית ‏ 355. תוכנית | מעצעפאד,ז (תדפיס 2) מדגימה את השימוש' ב - 5050150006 התוכנית משרטטת שני קווים התוצים גוש כהה. קו אחד משורטט באשר הערך. שב - 166%006:₪ הוא טפ צססט, וקו שני משורטט כאשר 0% שב - 610066 נעח הוא 0א. / | | | תדפיס 11.12 110106 תפיצשסיכן << 690 05פט 0060-0076 סתשנסע ,מס0גק > -‏ עסשספתג 1 0 | 5 י ו הט : . ו 2 = 0 ּ > "סי 32 681 = )115080 *. %- :5 ט01 000008 =: מססג ‏ / | 47 ץג מ00%. = =: 6106 > שן 5 / 1 ,00% ,16106 ,0 )פם 0 : ; ( 6גתעקס0 -) 8001601006 <> 259 00 ,100 ,0 ,0100 )6תג ,| 7 ; ( 06 )500000 591 5 ל יו 00 10%*2 )6ת1 > ת0801י 01056080 . תס הפרוצדורה זג | | 4 בקרוב תכיר את ו 5 הפרמטרים שלה. > הם בתצורת (2צ ,82 .,1צ ,1א). הפרוצדורה. > משרטטת מלבן כאשר 7 מגדירות את פינתו השמאלית העליונה ואת פינתו הימנית התחתונה. . : ל הפלט שלמפצ'יעא1 מתואר בתרשים11.7. כאשר הערךשב-156086- הוא6טפץססס הקו אינו נראה, וכאשר הערך שב-066א166ע₪ הוא שטעתסא - הקו שבשטחים החופפים -גלוי = 6 תלק ב" התכנות תרשים 11.7 הפלט של תוכנית =6פצדפא: | אשנבים (65:סקשסגנ7) בתצורת טקסט השתמשת בפרוצדורה אס6מתנא כדי להגדיר קטע (או חלון) במטן. לאחר. הגדרת החלון, התייחסו כל פעולות המסך (פרט להוראת שנסתנא אחרת) לתלון זה,. בתצורה הגרפית ניתן לבצע פעולה דומה ולהגדיר אשנבים (58נסקשא6נץ). מיד נלמד ליצור אשנבים ולהשתמש בהם. יצירת אשנב אשנב גרפי יוצרים על ידי הפרוצדורה 56/10₪202%: ;( ת168ססס : 6110 ;66002ת1 : 2צ ,2א ,1צ ,1א )2%סקא10ש566 6עגו)סססנס פרק !11: תצוגה גרפית 357 הקואורדינטות | המגדירות | את הפינה השמאלית העליונה הן (1צ,1א) והקואורדינטות המגדירות את הפינה הימנית התחתונה הן (2צ,2א), הקואורדינטה 1 חייבת להיות גדולה או שווה לאפס וקטנה או שווה ל-2א. גם הקואורדינטה 1 חייבת להיות גדולה או שווה לאפס; וקטנה או שווה ל-2צ. כאשר הפרמטר 0115 הוא "אמת" - ניתן להעביר פלט רק לשטח האשנב; כאשר הפרמטר 0110 אינו אמת, ניתן להעביר את הפלט לכל שטת המסך, בטורבו פסקל קיימים קבועים מוגדרים מראש להצבה ב-0110. ;סומ = בת0ק611 7 = 6110055 כאשר מפעילים את 201%ח566/16 ומגדירים אשנב, הופכת פינתו השמאלית העליונה לקואורדינטה (0,0), כמתואר בתרשים 11.8. כל הפקודות הגרפיות: שיתבצעו מרגע זה ואילך (פרט לפקודת 866/16₪202% אחרת) יתייחסו לאשנב, הדבר מודגם בתוכנית תמאפצט שבתדפיס 11,13. תדפיס 11.13 ; יסוס 1 תהינקסיזכן נ 80 65פגו / יצפטי 10002 :תק | , ינסט תפי תנקסס ;0% =: קסט1נקתספינ ₪ ( '70:10 ,0801066 , עסט1נקת סי )תד [ 01 1016 מסקקט סגס 080%ע פסת11 11086 ] ,2 ט01 00226 )6סקשס1ש96% [ ת60ע30 6מל +0 ב סל 50 6עסקסנט 66 ]‏ ,2 טגה צאם 000‏ ' ; ( 0110041 , 002 , א [ תג סכה 1 012018 שג ] ;( 4 ט01 צא00%2 ,0 ,0 )012016 [ | 80260 ₪26 0% עססתסס סבס | ; ת09/31י1 010500190 . תס .ה התוכנית אעחמנט מגדירה אשנב בפינה הימנית התחתונה של המטן, כתוצאה מכך, עוברות הקואורדינטות (0,0) למרכז המסך. כאשר הפרוצדורה 616ת61. מתבקשת . לשרטט עיגול שמרכזו ב-(0,0) - העיגול מופיע במרכז המסן. השפעת השימוש ב-0110 מתוארת בתוכנית ע21ת6 שבתדפיס 11,14. 8 הלק ב" התכנות תרשים 11.8 קואורדינטות האשנב לפני הפעלת 6ז0ק6ו/86% ואתריה (0,%א661/8) 016 | | | | (0,0) 6וס ; / +סק ששס/ עוסא (0,אא361!8)) שסצ /" ( צאה8!|ז6ב), אאה!201)) שסא (צא0,)301!8) שסאז (ץא0018, %א0018) וס = (4א0,061/8) וס תדפיט 11.14 ;011 תפיססיזס | [ספינג) 805 23 וסט יתסא : 160 , >תסוסת ; ע0שססת 1‏ : 0282006 , סק יתפי , תנפסס 26500% =: | נסץ1נס תפי ; ( 'פז:0' ,066)ספי , עסט1עמספי0 | )מס1508תד .5 ל61 %א0000 =: 5בשוסו ;5 014 00%% =: 1002 ; ( 119106*8 , 1/166*2 , 116105 , 1/1 )0 1פת ססות ; ( ת01100 ,110102%*5 ,100*2 , ףוס , 160 )6עסקאס56%/1 ; ( 0 ,%אג00% ,%ב1₪ס ,0 )136 פרק 11: תצוגה גרפית 359 | המשך תדפיס 11.14 ( ת80260 6+ 3080%8 )| ;( 0110011 ,עא00%2 ,061/20 ,0 ,0 )5עסקשסג/56% ; ( 161₪2%*5 ,10%2*4] ,10106 , 100*5] )16תה+ססת | ; ( 0110021 ,161025*5 , 1652*4 , 16105 8*ת165 )5 סקאס 50 ; ( 0 ,061/98 ,101% ,0 )6ת11 [ 30200 0מ% 3080%8 ] | ;( ++0110 ,00004 ,2%ב000 ,0 ,0 )6עסקטס590/1 ; ( 'אס 15 6א1קק011' ,10%*4ס1 ,10 ) עאא616טס ; ( 'עע0 15 ס6אדקק '011‏ ,101₪26*4 , 5*בתס10זו ) צאסאססטס ;תי 010860190 .ו תוכנית 0119 יוצרת שני אשנבים ומשרטטת שני קווים (ראה תרשים 11,9). שני הקווים מתתילים בתוך האשנב ומסתיימים מחוץ לאשנב, כאשר נמצאים במצב 0ש011, הקו מקוצץ ואינו תורג מהאשנב; כאשר לא נמצאים במצב ס011, הקו מוצג במלואו,. | שים לב: הקואורדינטות שב-02%ע16ט מתייתסות לכל מס והקואורדינטות המועברות ל-6מ101 מתייחטות לאשנב. תרשים 11.9 הפלט של תוכנית 6115 1 0א1קקן וס . אס 15 מאזקקן | הפרוצדורה 60188816 הפרוצדורה 360582816 דומה לפרוצדורה ע88, אולם היא משרטטת רק את הקווים החיצוניים של המלבן ולא "גוש" מלא, במקרה זה השתמשנו ב-016מ6₪0%8ת כדי לשרטט קו שיגדיר את תחום האשנבים. הפרוצדורה צ%א6 טס מציבה וכותבת את הטקסט בקואורדינטות (צ,א), שהגדירו קודם שני הפרמטרים הראשונים. 0 חלק ב . התכנות ₪ | שמירה ושחזור של הגדרות האשנבים כאשר מבקשים להחליף לעיתים קרובות בין שני אשנבים גרפיים, רצוי לשמור את הגדרות האשנב ולשחזרן כאשר נזקקים לו שנית. ניתן לבצע פעולה זו בעזרת הפרוצדורה ו 1 1006 : 710202% עפט )0660100561 6מג סנס הפרוצדורה 06%5ם606710096%%1 מתזירה את הקואורדינטות ומצב הקבוע 6110 שברשומת 6עספשס1ץ, >צספשפגט הוא טיפוס מוגדר מראש של 6סע1>עספטסנט: 6 = 06ע7+ת0ק716₪ ות :‏ 2צ ,2א ,וצ ,1א | /7ת168ססס : כ * 7 ּ: הגדר את האשנב הראשון באמצעות >עספשטסגץ. לפני יצירת אשנב נוסף, הפעל את 58 כדי לשמור את הגדרות האשנב הנוכתי. כדי לשתזר את האשנב במועד מאוחר יותר, קרא לי / 0 6עספשס71 ב1%ש ;( 6110 ,2צ,2א ,1צ ,1א )6:סקט566/16 מחיקת תוכן של אשנב ניתן למחוק תוכן של אשנב בשתי צורות: 616810 6ג סנס 7 מ6ְ6םמג0סססעק | : הפרוצדורה 01682/16205%6 מותקת את תוכן האשנב הנוכתי, ואילו הפרוצדורה 6 מוחקת את כל תוכנו של המסך, שתי הפרוצדורות מעבירות את המצביע ל-(0,0), אך אינן משפיעות על מקום האשנב הנוכת ' תוכנית פטטתתאתס (תדפיס 11,15) מדגימה את תוצאות השימוש ב-205%ש0168/16 [ב-0168:060106. . | תוי" הגש 97 שש הרתי בי" , פרק 11: תצוגה גרפית 361 תדפיס 11.15 ; 016826 התהישסין 6801 058גו יפש סעסש : פגונגת 66₪01ת 1‏ : 090006 , נסץ בנסתסאי תזנשסס ;26%00% =: ע6ט1ץ0 תכ ( '0:10' , 694000060 , עסט1קתק 8 )8 1%0הז ; ( 0110011 , 00% , אא06% ,2 ט01 צא66%/2 ,2 ט31 661% )%סקא6ג/50% 0 2 ט01 00% 60 1 =: פגונפת ע0ס+ ;( 39010 ,0 ,0 )012016 ; ת6981י1 ; 00% 0168171 ; ת0901 ; 081-0260106 601 ; ת0801י1 0 2 ט01 צא00%0 60 1 =: פגוגהת ע0ס+ ;( פגו01פת ,0 ,0 )012016 ; 010860801 . 60 התוכנית שטַטא 02 יוצרת אשנב ברבע הימני התחתון של המסך, והופכת בכך את הקואורדינטות (0,0) למרכז המסך, אחר כך, התוכנית משרטטת מעגל סביב מרכז זה, אנו נמצאים במצב %+0ס 0110 והמעגל, שרובו נמצא מחוץ לתחומי האשנב, משורטט במלואו, לחיצת עס6תש₪ גורמת להפעלת +:ספאסנט; הפקודה מוחקת את תוכן האשנב וגורמת להיעלמות הרבע הימני התחתון של המעגל, המסך שיתקבל בשלב זה מתואר בתרשים 11,10, לתיצה נוספת על ע6>ת₪ מפעילה את 106ש06ש61683 וגורמת למחיקת כל תוכן המסך, עוד לחיצה על ₪66 גורמת להופעת המעגל במרכז המסך (תופעה המוכיחה שהגדרות האשנב לא השתנו). תרשיס 11.10 הפלט של תוכנית 5טעחג5 )6 2 חלק ב' התכנות | 1 שגרות למעברים בין דפים > | בוודאי שמת לב לעובדה ששרטוט הגרפיקה נמשך זמן-מה. ברוּב היישומים ההשהיה אינה משמעותית, אולם ביישומים המבוססים על אנימציה (למשל משחקים ולומדות) יש חשיבות רבה לאפשרות להציג מסכים גרפיים באופן מיידי | בגרפיקה ממוחשבת, המונח דף (898) מתייחס לשטת בזיכרון המכיל תוכן של מסך גרפי שלם, כאשר הזיכרון כולל מספר דפים, התוכנית *כולה להציג מסך אחד, ובאותו זמן לבנות את תוכן המסך הבא (שעדיין לא הוצג), כאשר מגיע הזמן להצגת המסך הבא, התוכנית תציג את הדף השני, ותיצור רושם של שרטוט מיידי ומהיר, הזיכרון של הכרטיסים הגרפיים ₪6, הסט והרקולס מכיל יותר מדף אחד. מספר הדפים שבכל תצורה מופיע בטבלה 11,2, בכרטיסים אחרים (למשל 00) קיים רק דף אחד ופעולת המעבר בין הדפים אינה אפשרית, הפניה לדפים מתבצעת על ידי השגרות: .;( 6עסא : 866ע2 )6116 6מגוססססנ : 2806 )56%2051002806 6עגו66ססמסש כל הפלט הגרפי מופנה אל הדף שנבתר על :די 6 על המסך מוצג הדף שנבתר על ידי 3812806ו86%019, כאשר ה-6ע תומך בדף אחד בלבד, אין לפרוצדורות אלה כל השפעה, תוכנית. פסץגא1את שבתדפיס ‏ 11.16 מדגימה את השימוש בשגרות הגרפיות. | תדפיס 11.16 [ ע1תס 108ט0ע10 עס ,704 ,₪04 ] | תסלפתנהה תהעשסיש נ ספינ 65פגו לפטי יתסא : פגונהפת ,בנחצ ,18 ע00ספ5ת1 : ו 7 תנקסס 26%00% =: עסץ01 סי ( '70:10 ,066תספי0 , עסט1קתספינ )ם1%080חד ;2 ץנ 00092% =: 218 ;2 ט01 /לא00%00 =: בנוחצ ; ( 0 )86 71241 96% ; ( 1 )56+40%10008006 0 2 610 00098 50 1 =: פגונהגת -ס+ ה( 0108פת ,הוח ,2106 )012016 + 0 ו כ 81 . | ;010560280 . תס 4 פרק 11: תצוגה גרפית 363 תוכנית תסי'גא1את מציבה 0 בדף לתצוגה ו-1 בדף הפעיל. כלומר, כאשר התוכנית מציגה את הדף הריק שמספרו 0, היא משרטטת את המעגל בדף מספר 1, עם השלמת השרטוט, התוכנית עוברת לדף מספר 1 ומציגה, מיידית, את המעגל. זוהי אתחת התחבולות שבהן משתמשות תוכניות כדי לגרום לשינוי מהיר של התצוגה. תוכנית 2פנתאזאת שבתדפיס 11.17 מדגימה טכניקה פשוטה שבאמצעותה ניתן לנצל את ריבוי הדפים ולהציג את תוכנם מיידית, הפעלת הפרוצדורה 62866ת תתגוץך בתתילת התוכנית הופכת את התצוגה הגרפית למרשימה יותר. תדפיס 11.17 [ ע1תס 0108ע0 עס ,704 ,04 ] - ,602מ1ת תפיצמסיזק ספי 8098גו 0% (0 = 6עסש : 60תט600שבפס גי (סעסש : פגונהפת ,הנחל ,18 1002 : 680006 , סק לספס ; 6808 ןדנג די 6זגו60ססי : תנפסס ; ( ע9₪6000(%6 )סתך תס ( שִססְתטס0סְקָאק )008 12 תנשסט ; ( 1 )806 01גופ 96% ; ( 0 )56%40%1000826 תס 86 " תנשסס ; ( 0 )50%71902810906 ; ( 1 )59%0%1000806 0 ; תס ; תס תנשסס 200005 =: עסט21כתקינ ( ':0 , 006ס 0 , סי )1140 . ,2 017 0000000 =: 6נחא ;2 617 00909 =: 16חל - | וס תינגו 20 01 עא0000 50 1 =: פטנהפת ע0ס+ ; ( בגונהפת ,סנחץ ,218 )012016 > ; 0808ב תיצר ; תת801סיד 01030018 . תס 4 חלק ב": התכנות צבעים | , | בתנויות צעצועים קיימות מערכות צביעה, שבהן מופיע ציור המחולק לשטחים, כל שטח מכיל מספר, הילד מתבקש למלא את השטת בצבע בעל מספר מתאים, למשלי בכל השטתים האמורים לקבל צבע ירוק מופיע המספר 2, בכל השטתים האמורים לקבל צנבע אדום מופיע המספר 4 וכו, גם הצבעים עצמם מסומנים באותו אופןן: (ירוק=2, אדום=4), שימוש נכון בצבעים *וצר תמונה נאה. - | טורבו פסקל פועל באופן דומה, לכל מסך יש מערכת צבעים (0816%6). הצבעים אינם נשמרים בקופסאות, כמו במשחק, אלא במערך של מספרים, מספר האינדקס של כל איבר במערך מקביל למספר הצבע במשחק, הערך המוצב בנקודה עצמה מקביל למספר הרשום על גבי הדף במשחק. כלומר, לכל נקודה שעל גבי המסך יש ערך מספרי, המגדיר את צבעה, טורבו פסקל בותר את הצבע על *די ציון האינדקס במערך הצבעים. להבנת עיקרון זה יש חשיבות בלימוד השליטה בטכניקות השימוש בצבעים, מיד נתאר את שגרות הצבע של טורבו פסקל. אהוי הצבעים ניתן לקרוא את תוכן מערך הצבעים בעזרת שתי פרוצדורות: | ק( 811665017706ע2 : 2816666 תבט )011+2816666ו06%00+3 6מגו0סססמס ;( 706ע8166667%ע2 : 2816666 עבט )00%2816%66 6תטססססנס הפרוצדורה 1%2816%%6ט66%626%8 מחזירה עותק של התוכן ה של טבלת הצבעים, כפי שהיתה כאשר המערכת הגרפית הופעלה על ידי ם160:80ם1. 6 מתזירה את.טבלת הצבעים הנוכחית. שתי ו קולטות פרמטר אחד - רשומה מטיפוס 06ע2816%06%, המוגדרת על ידע | | %תסס 7 = 5עס6001א48 | ס6סצם 6 = 06ץ166667הע ;ספצס :- 5126 | ק6תנסעסת3 05 [001078א810..88עע8 : 8עס1סס ;מס ו | > פרק 11: תצוגה גרפית 365 לשדה 5126 אין כרגע חשיבות. הוא מש - את מספר. האיברים שבמערך 58 טורבו פסקל תומך ב-16 צבעים (15-0) ולכן 001028א18 מוכרז כקבוע שערכו 15. גודל המער 9 הוא על כ 6. חשיבות רבה יותר יש לגודלה המעשי של טבלת הצבעים - כלומר למספר הצבעים שניתן להציג למעשה באמצעות מנהל ההתקנים הגרפיים. ניתן לברר זאת באמצעות הפונקציה 6062816%668126. במתאם 06 הנמצא בתצורה 61, תחזיר הפונקציה 6 את הערך 3, כלומר, למרות שהמערך כולל 16 איברים, ניתן למעשה להשתמש רק באיברים 3-0. הערה: גרפיקה ב-068, 4 ו-87ד3 במתשבים שבהם מותקן מתאם 06, תססא או 81'ת יש לשים לב. למספר מגבלות: עיין: בטבלה 11.2 המכילה ‏ את: טבלת הצבעים לכל תצורה. : בתצורות עם רזולוציה נמוכה (60-63) מיוצגת כל נקודה על ידי שתי סיביות, הערכים האפשריים של סיביות אלה הם 0, 1 2 או 3. כלומר, כל נקודה יכולה לקבל לכל היותר צבע: אחד מתוך ארבעה, הצבעים של ארבעת האיברים ‏ הראשונים. מופיעים בטבלה 11,3, תצורה 60 (כלומר 66860, 66200א ו-1140000'ת) טוענת ב-001028 את מערכת הצבעים 60, תצורה - 1 (כלומר 002061, 106561 ו- 140061''י2) טוענת ב-28ס601 את - מערכת הצבעים 61 וכן הלאה) ניתן להשתמש בארבעה צבעים בלבד, ולכן יש משמעות רק לארבעת האיברים הראשונים: בתצורות עם רזולוציה גבוהה מפקחת טיבית אחת על כל נקודה במסן, לכן הצבע יכול להיות 0 (רקע) או 1 (צבע התו עצמו), עיון נוסף בטבלה 11,2 יראה לך שבתצורות בעלות רזולוציה גבוהה, כוללת טבלת הצבעים שני צבעים בלבד. | תרשים 11,1 מתאר את הפלט של תוכנית 2 8 2) שהופעלה. על גבי: מחשב עם כרטיס 002 שבו ברירת המחדל היא רזולוציה גבוהה (200 א 640) ושני צבעים; .אם'. במחשב שלך מותקן מתאם 00, 668 או ז'אי'ת, תוכל ליצור:' תצוגה בעלת ארבעה צבעים. לשם כך עליך לבחור בתצורה: הרצויה. 6 חלק ב" התכנות , | | למשל, במקום להשתמש בברירת המחדל: 7 =: עסט1 08 ;( 'פע':0' ,628018060 ,עסט1סת68 )בס160:3מך תוכל להשתמש ב: | 00 = : עסט1מסתקה8נס (בחירה במתאם 60) | 08066 : = 7 (בתירה במערכת צבעים מספר 0 - ירוק בהיר, אדום בהיר, צהוב) ;( 'פע':ס' ,62871066 ,מסטנ:פתסהנס יי מובן שתוכניות שאינן משתמשות בצבעים :כולות להמשיך לפעול בתצורות בעלות רזולוציה גבוהה. בחירת הצבע שבו יתבצע השרטוט בעזרת הפרוצדורה 88500105 ניתן לבתור את הצבע שבו יתבצע השרטוט., למשלי. (86600102)2 בוחר בצבע השני של טבלת הצבעים הנוכתית, מספר בצבע הוא בין 0 ובין מספר הצבעים המרבי שבתצורה הנוכתחית של המתאם, ניתן לברר מהו המספר המרבי באמצעות הפונקציה 2ס001א66688, למשל: במתשב עם מתאם 66 הפועל בתצורה בעלת רזולוציה נמוכה, כמו 06800 תחזיר הפונקציה :006186010 את הערך 3. בכל עת ניתן להשתמש בפונקציה עס686001 כדי לברר מהו הצבע הנוכתי. בחירת צבע הרקע האיבר הראשון (0) במערך 59 הווא צבע הרקע. ניתן לבתור בצבע הרקע בעזרת הפרוצדורה 02ס5655%001, למשל: (01:)2ס960%001. הופך את צבע מספר 2 בטבלת הצבעים לצבע הרקע. גם במקרה זה חייב מספר הצבע להימצא בתתום שבין 0 ו-0010%2א0063. ניתן להשתמש בפונקציה :ס6668%001 כדי לברר מהו צבע ההקע הנוכתי. | פרק !11: תצוגה גרפית 367 שינוי צבעי הטבלה כדי לשנות את צבעי הטבלה, יש להשתמש בפרוצדורה: ;( )םנ6עסת8 : עס001 ;6תעסשא : מתטאעס01ס0 )9652816666 6עט60סססצעס 6 משנה את הצבע שמספרו תטאצס1סס לצבע המוגדר על ידי צס1סט. כדי לשנות את צבע מספר 2 בטבלה לירקרק, יש להפעיל את: ;( מ8ץ0 ,2 )5662816666 כאשר מפעילים פרוצדורה זו, יש לזכור כי קיימות כמה מגבלות, כרטיס 06 מאפשר לשנות רק את צבע הרקע (0). כל שאר הצבעים נשארים ללא שינוי, כמתואר בטבלה 11,3, כמו כן אין להשתמש ב-86%2816%656 במחשבי 8514 18%8, במתשבים אלה יש להשתמש בפרוצדורה 0062022816666. שינוי כל צבעי הטבלה ניתן לשנות את כל הצבעים של טבלת 508 או הסט באמצעות השגרה: ;( 28165066 עהט )816%%6ע56%211 6עו60סס:ס הפרוצדורה 56%2112816%%66 קולטת את הפרמטר 06ק1666617ַ2. נסביר את אופן פעולת הפרוצדורה באמצעות דוגמא: נניח שברצונך לשנות את הצבע הראשון בטבלה לאדום, ואת הצבע השלישי - לירוק. כדי להכין את המשתנה 816%656פ, יש לנקוט את הצעדים הבאים: 7 = : 8816660,0120כ. 7 =: [ 1 ]5ע2816%666,0010 ;תת =: [ 3 ]5עס2816₪%66,001 כדי להשאיר צבעים מסוימים ללא שינוי, יש להציב בהם 1-. על כן, סיים את פעולת ההכנה של המשתנה 816666ק ב: 816% 0] 2 =: [ 0 +[ 2 ]8ע281₪666,0010 7 8 תלק ב" התכנות . | / וקרא ל: הת 816% )1656הפ1רת )םי אתרי הפעלת 56%2112816%%6, ישתנה. מיד צבען של כל הנקודות שהיו בצבע מספר 1 ו-3 בטבלת הצבעים, אם אינך מתכוון לערוך שינויי צבע ‏ תכופים, העדף את השמוש ב-56%2816%66, אל תשכח את. המגבלות: בכרטיס 00 ניתן לשנות רק את צבע מספר 0 (הרקע), אי אפשר להשתמש ב-816666ע112ת866 ב-8514 אם1. שינויי צבע ב-גסט וב-8514-אמז יש דמיון בין הצג של ה-6ע ומסך הטלוויזיה, שני המסכים משתמשים בשלושה צבעי יסוד (אדום, ירוק וכתול) כדי ליצור את כל מגוון הצבעים הנראה על גבי המסך, כלומר, כל צבע מהווה למעשה צירוף של צבעי היסוד בעוצמות שונות. כדי לשנות את טבלת הצבעים בכרטיט 68 או ב-8514 אם1, יש להגדיר את העוצמה היחסית של הצבע האדום,: הירוק והכחול. | ,תטאעס1ס6 0 6גו60ססעס ;( 1660062 : 2106/8106 ,0260781106 ,60031106 הרשימה המלאה של הצבעים נמצאת בספרות העזר של המתאם. רשימה חלקית מופיעה בטבלה 7 5% טבלה 11.7 הגוונים ב-68/ | 1 0 14 | 6007 100 100 100 | 10% 6 900 00 | 0/9 6 24 6 | 4 . | ת766) 1% 6 / 200 / הגץ) 14 14 0 | 6% 6 00 2120 | 34 00 48 00 השס 4 . 4 4 | 6 4 4 4 | ץ) 0+ 00 200 : 6 1 100 0 0 . 0766 14 0 10 0. | םג 15 00 100 0. | 18 0+ 900 900 3 .1% 4 - 76 6 שס]611צ 6 6 6 6ומ/ +תפות פרק 11: תצוגה גרפית 369 הפקודה הגורמת לשינוי צבע מספר 7 לירוק היא: ;( 824 ,6ע% ,7,824 )56%2022816%6066 מילוי שטחים השימוש בקווי מתאר בלבד אינו מספק תמיד את הצרכים, כדי לשפר את התצוגה ולהוסיף לה "בשר" ועניין, מבקשים לעה למלא שטחים. מיד נלמד כשפר. את איכות התצוגה במילוי שטתים בצבעים ובדגמים שונים. הפרוצדורות 7ץ1112011ע, עהּם, ככבּשהַם ו-21681106 מפיקות בדרך כלל שטתים מלאים בצבע בעוצמה התזקה ביותר (כלומר [ע6010א601028]06%%18, 2816%%56), בדי לשנות את ברירת המחדל יש להשתמש בשגרה: (( 6צסא : 00108 ;6עסא : תע28666 )16ע56%711186 6עט66סס:ס ל-16ע86%211156 יש שני פרמטרים: עצס1סס (ראה טבלה 11.6) ו-מע286%6 (ראה טבלה 11.8). טבלה 8 דוגמאות המילוי עבור 95ח66%"11156%%1 ו-6וע5%ו11-56% קבוע ערך דגם המילוי 1 עסו 0 צבע הרקע 1 1 צבע מלא 1 2 מקפים (---) 1-1 3 לוכסנים דקים (/ //) ה כהר 4 לוכסנים עבים 1ב 5 לוכסנים הפוכים עבים 1 6 לוכסנים הפוכים דקים (\ ) 61ב 7 קיווקוו דק 1 הא 8 קיווקוו עבה מצטלב 1-1 9 קווים משתלבים 1-1 10 נקודות עם רוותחים גדולים 1-1 11 נקודות צפופות ככ 12 על פי הגדרת המשתמש 0 חתלק ב" התכנות | | דגמי מילוי על פי הגדרת המשתמש | כאשר מעבירים ל-86621118616 את הערך 111שע6פט עבור |הפרמטר תשס66בּע, מורים לטורבו פסקל להשתמש בדגם מילוי שיצר המשתמש, ניתן לעשות זאת על יךי; | ;( 26סא : עס001 ;006עםת8%666ע1112ע : מע28666 )בת96%211128%66 6עגו66סס:סם ל-ם56%5211128%%662 שני פרמטרים: עס001 - מלה המגדירה את הצבע; וטיפוס 6ץ מ 6>הקון1ע המגדיר את דגם המילוי הרצוי, 6שע7'ת11128%%62ע2 הוא מערך בתים מוגדר מראש: ;סץכ +ס [1..8 ]38 = 06ע7ת:11128%66ע | | בובור, = ברירת המתדל היא תוים בגודל ‏ 8 < 8 נקודות. כל בית של 6 66העןןנע מגדיר שורה אחת של התו, הסיביות שבבית מגדירות את הטורים, | תוכנית עתדעתתפט שבתדפיס ‏ 11.18 מדגימה את השימוש ב-ת11128%%662ע966. תדפיס 11.18 ; 15016111 ותפישסינן ספ 08פגט %פתסס [ 00001000 ] | ,808 ) = = 106ו60:ק11ג : 06 [ 00011100 ] - ,810 ( 00111110 ) | ,968 | [ 01111111 | | ,שלפ , ו ( 00111110 ) | ,908 [ 00011100 ] - ,910 | | .יי ,908 ( [ 00000000 )| 00 טי | ע%000ת1 | : 06סותכנטינס סכ סש : ש6משוסת ת1שס 266805 = :; נסץ1סתקפי 0:10' (‏ ,080066 , סט 1ינס ספ )1080 .5 610 00% =: %ש1סת ;( 1 ,6מַ8ת9 )ת50%7111084%501 ; ( 1101026*2 ,001020 2 )שג ; ת10801 010508 . תס פרק 11: תצוגה גרפית ‏ 371 מ11128%662ע56% שבתוכנית ,ז,זזעתפט משנה את צבע ברירת המחדל ל-[1 ] 601028 ואת דגם המילוי לדגם המוגדר במערך סִסְ58, הסיביות שב-50806 יוצרות את המעוינים המתוארים בתרשים 11.11. תרשים 11.11 הפלט של תוכנית | וז-555 %יהוי הדגמיסם והצבעיס בעזרת הפרוצדורה 85ת11156%61ע66% ניתן לשלוף את דגם המילוי שנקבע על ידי 86 אן בע11128%666ע905. ;(( 06קע0571ת11190661ע : 0+םד111ע2 עהט )05םת06%5711196%%1 6עגו0ססס:ס הרשומה 6קע057ת11156661ע מוגדרת כן: 48 = 06צ651ת11156661עק 7 : בתס66הק 7 עס01ס₪ 7 הפרמטר תשסססכ2 זהה ל-11עעספט. ניתן לשלוף את דגם התו על ידי השגרה: ,(00ע11128%%6:7ע2 :ת11128%6662עעאט )מ06%5211128%6602 6עגו0סססעס 859++, ו|- בע66%211128%66 מאפשרים לך לשמור במהירות את הגדרות הדגם והצבע הנוכתחי. מילוי תחומים - | | ל-16ע966211155 ו-מע111286%66ע86%62 מיועדות הפרוצדורות ‏ ץ1112011ע, מהּם, ע3עהּת ו-1691106ע בלבד, כדי ליצור מילוי של צורות אחרות, יש להשתמש בשגרה אחרת: ,( 6עסא : עססעסם ;ע2ע6006סםת1: צ,א 0 6מנוסססעס הפרוצדורה 1006111ע ממלאת שטת תתום בדגם הנוכתי שהוגדר על ידי הפניה האחרונה ל-16ע1115%6ע866 או ל-מ:11128%60ע566, הקואורדינטות (צ,א) מגדירות נקודה בתוך השטת התחום שמבקשים למלא. גבולות השטח הם קווים שצבעם ש66מסם, כאשר הקואורדינטות (צ,א) נמצאות מחוץ לאזור התחום, יתמלא השטת התיצוני. השימוש ב-1008629111ע מודגם בתוכנית 68123 שבתדפיס 19 2 תדפיט 11.19 ן . 105 תיסינ ; 801 868ג י 0% ;(ת0200 = בעסט : ע0ס001 ן 3 ( 16080 : 00סותתס03 , סט יתפי 16ע50 , 001 , חסת ;סש : ע6סת900 , עספת6סא , קחטןצ , סט[ , בא8אפ תנפסם 26%60% =: סט ספ ;( 'עא:0 06 ופי , עסט1 תפי )יתד (0 טנ ו =: סתוןא ;0 ט01 00% =: ממטנע / ש0010 ):56%0010 תנשסס 60 10 %0 0 =: בספאפ 102 ; ( מ108010%בת ,0 ,5011072 )16ע655ת5611 ; ( סואון צ*10 , סגו א*ב 5 ,0 , הגו %*באמ ו )1.30 ; ( סגו צ*םאפפ , כנון*10 , כמתטון צ*בס 9 ,2 )116 ; תס 0 9 %0 0,=: שסת ע10 תנפסט 60 9 60 0 =: תתו[00 02+ ;12 סח ( תו001+ שסת*10 ) =: 16ע5% ; ( 2 טנם טוא ) + קחטןא*תתו001 =: 3060002 ;( 2 טג סְטנֶצ ) + קמטןצ*שסת =: עספףתססצ ;( 00100 ,5516 )16ע900011155 ;( עס001 ,602ת00+? ,ע60ת00< )10089111ע | כ תס ּ ; ז0801י 0 - .. ההההה'',"""שו פרק 11: תצוגה גרפית 373 תוכנית 6123 משרטטת 100 מלבנים וממלאת כל מלבן בדגם אחר, הפלט של תוכנית 3 מתואר בתרשים 11,12. תרשיס 11.12 הפלט של תוכנית 66103 וו" >= - /-מור- / ה א 2 0 ל = ד \ 07 -- שע- | הגדלת אזור האחסון כדי למלא שטחים באמצעות 1008ע צריך שטח האחסון בערימה להיות בן 4%. שטת זה מוקצה אוטומטית על ידי ם160280ת1. במקרים נדירים, שטת זה אינו מספיק, ויש להגדילו מעט כדי למנוע גלישות. דבר זה מתבצע על יד ;( סא : 81158126 )155126ו56%60289 6מגוסססעמס 868 הוא מספר הבתים המבוקש. הפרוצדורה 20+59126ת56%0280 משמשת גם לצמצום גודלו של אזור האתסון ושחרור שטחים בערימה, במקרה זה יש להגדיר שטח קטן מ-א4. שים לב: יש להפעיל את 20%5126םק565628 לפני מ7ק16628םת1. 4 חתלק ב" התכנות שרטוט צורות הנדסיות בקטע הבא נלמד לשרטט צורות הנדסיות - מלבנים, פסים ומצולעים. מלבנים ופסים בתתילת הפרק השתמשנו בפרוצדורות 6 [-ַבּם: ;( 60002ת1 : 2צ ,2א ,1צ,1א ) 60682016 6עגוססססמס ;( ע6000מ1 : 2צ ,82 ,1צ,1א) עהם סעט6סססמס שתי הפרוצדורות משרטטות מלבן שפינתו השמאלית העליונה היא (1+,1א) ופינתו הימנית התחתונה היא (2צ,2א), המלבן שמשרטטת הפרוצדורה 016ת260%58 הוא תבנית ריקה והמלבן של ע8פם - מלא. ב-82פ משתמשים בדרך כלל לשרטוט גראף- עמודות, ניתן ליצור תרשים תלת ממדי באמצעות: .שת : 2צ ,82 ,1צ,91א )23235 6עגוסססס:ס ;( מ168ססם :200 ;בעסש : םסססכ הפרמטר מ6ס6ס מגדיר את עומק המלבן; הפרמטר ססע' הוא ערך בולאני המגדיר אם לעמודה יש או אין "גג". ניתן להשתמש בקבועים מוגדרים מראש, שמשמעותם ברורה יותר: ;סגומיז = מ0ססץ 7 = 700055 ב-0%%מ20' משתמשים כאשר מבקשים לשרטט כמה מלבנים זה על גבי זה. תוכנית 5595 שבתדפיס 11.20 מדגימה את אופן השימוש בפרוצדורות לשרטוט מלבנים ופסים, התוכנית משרטטת ארבע צורות: מלבן היוצר מסגרת על גבי המסן, פס רגיל, פס תלת מימדי עם "גג" ופס תלת ממדי ללא "גג". : פרק 11: תצוגה גרפית 375 תדפיט 11.20 ; 385 ותהיהססינסן מס 5ספט נפט עס : 110165 , 30 ג ; 15002 |: 080006 | , סק 1 תפיט תננפסס 26500% =: מ6ט01מספי ; ( '0:15' ,080066 , עסט1ת 64 )מ1+00תך ; ( לא00%18 ,)00% ,0 ,0 )16שתהלססת .8 61 %א00009 =: 18% ,4 010 צא00% =: סהשנסת ; ( 101₪%*9 , 1002*2 ,1161026 ,18% )שג ; ( ת1000 ,4 ט01 ב16%6 ,6*5משנסון ,4*ב10% , 6מקוסון ‏ 186*5 )סינט ; ( 100029 ,4 ט01 01662 ,105*5ס1 ,1002*6 , 5מ1סון , 5*בס 1 ) טיפ ; הז[0800י1 01050080 0 הפלט של תוכנית 2285 מתואר בתרשים 11.13. תרשים 11.13 הפלט של תוכנית 8485 / 6 תלק ב התכנות % | מצולעים מצולע הוא צורה הנדסית סגורה שצלעותיה הן קווים ישרים. צלעות המצולע אינן חייבות להיות באורך שווה, אולם אין הן רשאיות לחצות זו את זו, משולשים, מרובעים, מחומשים, משושים וכו" הם מצולעים. | ן כדי לשרטט מצולע, יש להגדיר את פינותיו באמצעות הפרוצדורות ע1ספשהס ו-צ111501ע. | 0 4 ו ;( %8ת017201ע עהט ;עס : פ%6ת1סעתטא )ע1ספאבּצכ 6עגו60ססנס ;( %8ם01עצ01ע עבט ;6עסש : %5תנסעתטא )ע01ק111ע 6עגו60סס:ס הפרוצדורה עַ1ספאהּככ "מחברת את הנקודות" ומשרטטת את היקף המצולע בצבע שנבתר על ידי 28ס5650010, הפרוצדורה ץ111201ע משרטטת את המצולע וממלאה אותו בדגם ובצבע שהוגדר ב-1115616ע565. 5 נספץ1סע הוא פרמטר ללא הגדרת טיפוס, המכיל יאת מערך | הקואורדינטות (צ,א) המגדירות את פינות המצולע. כל קואורדנטה מהווה רשומה מהטיפוס המוגדר מראש ץמ נסע: = ססעץ?61תנסק 1660027 : ץצ ,א 6 [ ! בפרוצדורה צ1סששהמ, 65תגספותטא הוא מספר הפינות של המצולע בתוספת 1. להגדיר את נקודת ההתחלה ואת נקודת הסיום של המצולע, ולכן במצולע 9 . פינות יהיה [65]1ת1ספץ1סע זהה ל-[1+א]%65ם1ספץ1סע. בפרוצדורה 012111ע אין צורך לתזור על נקודת ההתחלה/ סיום, 5>ת1סעפתטא הוא מספר הפינות במצולע ומספר האיברים ב-%5מ011201כ2 זהה למספר הפינות, (אולם, הפרוצדורה תפעל כראוי גם אם חוזרים על האיבר הראשון והאחרון, כמו ב- ץ1ספשאהּמס). / [ תוכנית צ01ע (תדפיס 11.21) מדגימה את השימוש ב-ע1סקשהמע וב-צ111001ק. ניתן להסיק מהערך של א בחלק מהקואורדינטות שהתוכנית אמורה לפעול ברזולוציה גבוהה. ש.---.- פרק 11: תצוגה גרפית 377 תדפיס 11.21 ; 01 תהיססינס 80 08פגו 0% = 6סץ1סתנסק 01 [ 1..7 ] קהעעה : 1ה₪ג1פקס+פ -02 < )0 =) ((50 :צ ;150 :א ) ((98 : צ ,2008 :א ) ,(( 166 : ץע ;150 : א ) 166 : ץצ ;508 :א ) כ 62 -א) 0% רצי לס ) = 6סץ1טתנסק 02 [ 1..6 ] אעינה : 2תשגפקס+פ ((50 :ץצ ;40 :א ) -) ((50 :ץצ ;550 1 א ) (( 96 : צ ‏ ;600 :א ) (( 186 : צ ‏ ;550 :א ) (( 166 : צ ‏ ;450 :א ) ((- (95 :ץצ ;400 :א ) עפטי ; עסקסלת1 : 066 02779 , נסץ ננכתפינס תנשסס : ;20%00% =: עסט1עסתסאי ;( '0:10' ,0006 62797 ,(עסט1עסתס 0 )מק 1+0תד ; ( 366 )56500102 ; ( 91₪1קס5% ,7 )ץ1ססאפעת ; ( [2180%8) ת6290 )56400102 ; ( 366 , 0108600%/111 )16ע90%"1115%6 ; ( 550091808 ,6 )ע1סק11נגע ;08011 01050080 תס הפלט של התוכנית מתואר בתדפיס 11,14. תרשים 11.14 הפלט של תוכנית צ|00 8 חתלק ב" התכנות תוכנית צ0ע משתמשת בפרוצדורה ץ1ספאהּעס כדי לשרטט שלט "עצור" (משושה) בראש תחלקו השמאלי של המסך, במתאמי 20 ו-הסש יהיה המשושה אדום. התוכנית משתמשת גם בפרוצדורה צ111201ע כדי לשרטט משושה זהה, שחלקו הפנימי מלא בנקודות (0105600%2111). כדי להדגיש את ההבדל שבין היקף המשושה וחלקו הפנימי, שורטט קו המיתאר בירוק והתלק הפנימי באדום, אם אתה מבקש "להעלים" את קו המיתאר - הגדר ב-02ס566001 צבע שתחור. שים לב: ב-ע1ספאּמס הוגדרו 7 קואורדינטות וב-צ111201ע - 6 בלבז. נסה להשמיט את הקואורדינטה האחרונה של צָ1ספשעת; יתקבל משושה "פתוח". שים לב: אם 828065 הוא מערך של ססְצעְצ'ץ1סע, ההוראות: ;( פַסַמֶהּת5 ,( 6קע61םת1סע )5912605 ט61 ( פסַכהם5 )512602 )צץ1ספטהּמס וכן: ;( פִסַמהּת5 ,( 6קְצ67%םת1סע )5126025 שצ61 ( פסַכהּת5 )512002 )צ1ספאבּמס מאפשרות לשנות את מספר הפינות במערך 580065 מבלי לשנות את ההוראות שבגוף התוכנית. הפרמטרים של ע1סששצכ ו-ע01ק111ת לפני שנמשיך, נתייתס| מעט לאופן המתוכם שבו הפרוצדורות צ1ספא8מכ ו-111201ע מטפלות בפרמטרים. בדרך כלל טורבו פסקל אינו מאפשר לכלול מספר פרמטרים משתנה בפרוצדורות ובפונקציות (יוצאים מכלל זה %6נ1קש ו-מ1561תא). למצולע יכול להיות מספר צלעות כלשהו, ולכן אי אפשר להגדיר לפרוצדורות | צְ1ספאהעע ו-1112011ע מספר פרמטרים קבוע. הגדרת הפרמטר סִסִעְ?6תנ1סע והאפשרות שהמשתמש יגדירו עקפו את המגבלה, יתכן שתרצה, במקרים מסוימים, להשתמש בתחבולה זו בתוכניותיך. פרק 11: תצוגה גרפית 379 עקומות נתאר עתה את שגרות טורבו פסקל ליצירת עקומות. יחס רוחב/ אורך (58610 6ססספ2) בתתילת הפרק נאמר שמסך מונוכרום מכיל 350 שורות ו-750 עמודות של נקודות. לא קשה לראות שרוחב המסך אינו כפול מגובהו, ולכן ברור שהנקודות שלרוחב המסך (במאוזן) צפופות יותר. ניתן לבטא את יחס הרוחב/ אורך (28%10 880005) של הנקודות על יד (361020 צַ15018ע) > (םמ166ח צ15013כ) במסך שבו יחס הרותב/אורך הוא 0.5 - רותב כל נקודה הוא מחצית מגובהה, כלומר השטת שתופסות 100 נקודות רוחב זהה לשטת שתופסות 50 נקודות אורך. ניתן לבדוק את יחס הרוחב/ אורך של המסך על יד ;( בעסש: סבב3ּ+, ספא הט )066280200%38%10 סט ססססנס הפרוצדורה 66%25006%28%10 מחזירה שני משתנים מטיפוס מלה, שעל פיהם אפשר לחשב את היחס, אם תפעיל את 66+25266%98%10 במחשב 21.05 () 00% בתצורה בעלת רזולוציה גבוהה (068, 350 א 650) תקבל: 7 = כפבא 0 = כפבצ יחס הרוחב/אורך הוא 0.4167, כלומר רותב כל נקודה הוא 41.67 אתוזים מגובהה. טורבו פסקל מתחשב ביחס זה בעת שרטוט מעגלים, קשתות וגרפים מסוג "עוגה" (216). אם התוצאות המתקבלות באמצעות ברירת המחתדל אינן משביעות את רצונן, תוכל לשנות את הגדרת יחס הרותב/אורך של המסך בעזרת הפרוצדורה 08%10+56%560%: ;( בעסא : ספ8צ ,בהא )96628200%28%10 26ט60ססעס 0 חלק ב" התכנות | > | | | [ התוכנית 3828017 שבתדפיס 11.22 מדגימה את אופן השימוש ב-86%15000%528%10, תדפיט 11.22 | ; 4500605 תהיפסינ ּ 080 5058גו -- סט ;סא : פגונבפת ,100 , סמ וסון ; סש : כפ9? , 3370 | ע0ק%6ת1 : 0 , לט בורכה , תנשסט | (26%60% =: עסטץ1קסתספי ; ( '0:10' ,90066 , עסט בקע )ב15080חד 2 ט01 צא00?0 =: >תשוסת ;5 617 00% =: מססג ;4 817 /א<00%02 =: פגווגהבת [ 012016 00086 ] ; ( פגוגפת , 5תשנסת 1 )0 ;( 850+ ,2950 )06%23060%09410 ; ( 950ל ,950א*4 )56105000%09%10 [ 0120016 18%02%06כ ) ;( פגונספת , 6בש1ס ,1052*2 )012016 | ; 811 ' 010008 - 7-]ץ 7 ב -הטטרטפררההכרבהכרההייווריויוודוווווויווויווווו וו התוכנית '₪0עפ משרטטת את שני המעגלים המתוארים בתרשים 11,15, המעגל השמאלי השתמש בברירת המחדל, ונראה עגול במידה סבירה, המעגל הימני שורטט. כאשר הפרמטר ספא הוגדל פי ארבעה, המהדר חושב שהרוחב הוא פי ארבעה מהרוחב . האמיתי, ומנסה לתקן את העיוות שייווצר על ידי הגדלת אורכו של המעגל. התוצאה היא אליפסה גבוהה מאוד. | ן תרשיס 11.15 הפלט של תוכנית ד560ספג ו וו | - | פרק 11: תצוגה גרפית .381‏ טורבו פסקל מתקן עיוותים במעגלים, קשתות וגרפים מסוג. "עוגה". תיקון עיוותים בצורות הנדסיות אחרות יתבצע ידנית. בדרך כלל ניתן לעשות זאת על ידי תילוק קואורדינטת א ביחס ו כמתואר בתוכנית במאנאגד שבתדפים 3. 1. תדפיס 11.23 ; 1165 [תנ'1 ותפידשסכן ב80י3): 08גו לפק ;סש : ספה? , 50ב | 109002 : 680006 , עסץ 1נסתספינ (עסט : אהחצ ,+ (681ע : 3610 תנשסס 26%00% =: עסט1נכתספי ₪ ; ( '0:1' , 9006 , עסטנעפתקפיס )ם1+090תד ; ?06 =: אי ; ( 980? ,2950 )00%5260%04410 [ 8%10ע 88000% 6פעסטת1 ) ,2950 / 8+ =: 610גת ּ 0 אמ 60 1 =: ץ שס+ ;( ע ,0 ,0 ,ץ-אג )6ת11 ; ( ת01100 , 00 ,003028 ,0 ,(<החצ )%עסקש566/10 / : 0 אגחל 60 1 =: ץצ ש0ס+ ;( צ ,0,0 ,( ( צ - אבחץ ) * סג6בת )סתטסת )116 | ת801סי ; 0105601801 י/ ,0 " 3אד1אתע היא מהדורה חדשה של פמאדתאגצע', שבה שירטטנו שני: משיקים שיצרוו אשליה של מעגל, הפלט של 83א1/אתי' מתואר בתרשים 11,16, התוכנית משרטטת": שתי קשתות, הקשת הימנית מתחשבת ביחס הרוחב/ אורך של המסך. שים לב לאופן.: השימוש ב-+866/16202 כדי לשנות את הקואורדינטות. 2 חלק ב התכנות | תרשים 11.16 הפלט של תוכנית 3פאז ואד מעגלים ואליפסות בפרק זה הספקת כבר לפגוש את הפרוצדורה 01:0616: ;( 026סא : 28גו3801 ;ע600סת1 : צ ,א )012016 סעטמססססנס הפרוצדורה 015016 משרטטת מעגל ברדיוס (פגונשָפַת) שמרכזו ב-(צ,א), אין כל שינוי בחלקו הפנימי של המעגל. בקטע הקודם ראינו כי ניתן לעוות את היתס בין הרותב לאורך וליצור אליפסה. למזלנו, ניתן לבצע זאת גם בדרך פשוטה יותר, בעזרת הפרוצדורות| 111056ע ו-56כן8111 11 ב אליפסה היא צורה סגלגלה (אובלית) כלשהי (כולל מעגל), שעל רוחבה וגובהה ניתן לפקת בנפרד. פרק 11: "תצוגה גרפית | 383 : 007סת1: צ ,א 1 0 | ?סט : 16סתת6תע ,ְס1פַת86 | 7 ;( העסש : 98018 ,8גו3801א. - הפרוצדורה 8111086 משרטטת קשת אליפטית שמרכזה ב-(צ,א) מצווית 616ם58 לזווית 16שמת0תם, פגנְַַַתא יהוא הציר האופקי ו-8ג1ו861תצ הוא הציר האנכי. תרשים 11,17 מתאר באופן גרפי את הפרמטרים, שים לב לזויות הנמדדות במעלות, בניגוד לכיוון השעון, כאשר נקודת אפס המעלות נמצאת בשעה 3. תרשים 11.17 הפרמטרים של הפרוצדורה 6פסווום | החלק הכהה של ו הקשת התקבל על ידי הפעלת. :( פטו0החץ וא 06 56 7 000 8 צ+ץ כ 059 2 מ / 20% 4 חלק ב" התכנות ₪ | הפרוצדורה 8111056 משרטטת את קווי המיתאר בלבד, החלק הפנימי של האליפסה אינו משתנה, * פרוצדורה זו אינה מתאימה את הצורה ליחס: הרותב/ אורך, ולכן תתקבל צורה אליפטית גם אם פגוגאהתא ו-פגו61ַהּתצ שווים. | כדי לשרטט מעגל או אליפסה ולמלא את השטת הפנימי, יש להשתמש בפרוצדורה 6 7סת1: צץ ,א הנע 6זגוסססנק ;( 6עסט : פגו061הגצ ,פגונבהאת | הפרוצדורה 6 משרטטת אליפסה שמרכזה ב-(צ 8 והצירים שלה הם 015ה3תא |-פגוּגַבַב2+. תוכנית 806 שבתדפיס 11.24 מדגימה את השימוש ב-111₪111056ע, תדפיס 11.24 | ; שגום. פטס ;ספ 505גו | צפט ז%000ת1 : ₪7%0606 (עסטגעסעם ,סת1א ( פסקל ,2005 ;6עסשט : 1 ,פגו01ה8ע? ,פגו1 פיט 0 0 1 תנשסט , 0 =: עסט1תסש ; ( 'ע:70 ,₪006 | עסט1עסידם )100תד ; ( 110165 ,10% ) 0%9060%09010 .2 810 ,60% =: פסקצ ;0 ט61 %א6000 =: סתגא 2 ט61 סג =; פגו811י2 ; ( 15 / ב186ש * פגונספידא ) טס =: פגונפינצ תנשסס 60 18 0ף 2 =: 1 ע10 ( 080006 00 86% עסטסא ] - ;( 1 + ( 1 - עס06%0<001 )מסבתפת |)56%00102 (( 2 - 1 ,18 ₪08 ( 2 - 1 ) )16ע50071115%6 ;( 5גו801ע? ,בגו2:881 ,פסקל ,1 * סתנא )56ק11ות1ננקע ;( 727 ,פט01פעץ + פססל ,1 * סתוא ) תוגוס תסמ -₪ > 1 11 הי - ;( '7' ,בגו01פעצ*2 - - ,8 * סתנא ו לק סטינגת] סמ )106יט ; 108011 : ; 010800180 | . תס ==ש- | פרק 11: תצוגה גרפית 385 הפלט של תוכנית 506 מתואר בתרשים 11,18, הזחל שבתרשים נוצר על ידי מספר קריאות ל-21118111056, שים לב לניצול הגדרות יחס הרוחב/ אורך כדי להפוך את האליפסה למעגל. - תרשים 11.18 הפ וו קשתות קשת (0ע8) היא קטע ממעגל, משרטטים אותה באמצעות: (( סש : 330105 ,16חַמת מע ,5228016 166062 : צ ,א )סינת 6עגוססססנס הפרוצדורה שעת דומה מאוד לפרוצדורה 616ע01, אולם סע8 משרטטת רק קטע של מעגל, כאשר נקודת ההתחלה היא 16חַם562 ונקודת הסיום היא 16שְתתפתשא, הזוויות נמדדות במעלות, בניגוד לכיוון השעון, כאשר נקודת האפס נמצאת בשעה 3. ברוב השגרות הגרפיות ניתן לחשב את מקומו של המצביע. לאתר סיום פעולת הפונקציה, אם ידועות לנו הקואורדינטות של המצביע לפני הפעלתה, בפרוצדורה סשת התישוב מורכב יותר ודורש ידע בטריגונומטריה, בעיקר כאשר המהדר מתחשב ביחס הרוחב/ אורך בזמן השרטוט, הפרוצדורה 0661:0000285 מבצעת את התישובים עבורך: ;( 0002081706סע2 : 68עסס0סע2 עהּט )0000205ת06+22 6מטססססס 6 חלק בי: התכנות | | ו ו [ הפרוצדורה מחזירה את הקואורדינטות של פקודת סשת האתרונה, לתוך רשומה ‏ מטיפוס מוגדר מראש - 706ץ60029617סש, המוגדרת על ידי? 46 > 06ע687עסס6סעת 16627 : צא /ע5000ת1 : 156826 ,6ע25%8 027ססת1 :- 6ת6צ ,6םמ6א | | ;6ם6 | | | | הרשומה 000268סכ3 מחזירה את הקואורדינטות של מרכז הקשת (צ,א), של נקודת ההתחלה (8682%,48%826א) ושל נקודת הסיום. (606,60א). "פרוסות עוגה" (216) וסקטורים ניתן לשרטט מעגלים 0 שרק חלקם מלא, באמצעות הפרוצדורות 6 (-ע0ס06006. ;(ס:נסש : פגוּגחַבּת ,16שהת תע ,16 667017ת1 : צ ,216591106)8 66026ססנס ,16002 : צ ,א )890501 6עגוססססנס ,016תת0מע ,16סַתג8% ;( שעסש : פגו1הבּתצ ,פגונבהתא הפרוצדורה 16591166ע משרטטת "פרוסת עוגה" (קטע מגראף 6) וממלאה את ה"פרוסה", מרכז המעגל הוא (צ,א) ו-8גו5861 הוא הרדיוס שלו; השרטוט מתתיל בזווית 56316 ומסתיים בזווית 862016; הפרוצדורה שס866% משרטטת וממלאה קטעים של אליפסות, הפרמטרים של 560602 זהים לפרמטרים של 21651106, אולם הפיקות על הרוחב והאורך מתבצע על ידי מגוּגחְהאא ו-301115תצ, הזוויות נמדדות במעלות, בניגוד ו - כאשר נקודת האפס נמצאת בשעה 3. תוכנית ₪008 שבתדפיט 11,25 מדגימה את אופן השימוש ב-1681106 (ב-960%012. > פרק 11: תצוגה גרפית ‏ 387 תדפיס 11.25 ; 6060 תפיושסינסן | 080 68פט ₪9 20 ו = שאל % 0% (סעסש : הנחל ,210 ; 1062 : 0 , סק בתכה וסט ְ | 26%60% =: 080 כ יו 1 3 , ונק 6901 | )יתד ּ ;4 ט61 0000908 =: ₪186 2 610 לאה)]001 =: הנח ;( 2 ט01 3816 ,550 ,55 (הנמצ ,20186 )סע ;( 2010 ,45 ,0 ,סנחץ ,2016 )1681106ק (( הנחל ,2 ט01 6נהא ,560 ,92 ,סנתצ ו ) :560%0 ל ן 2 ;ת0861ע | 1 . תס הפלט של תוכנית יי מתואר בתרשים 9. שים לב לעובדה + שבשני השרטוטים התבצעה התאמה אוטומטית ליחס הרותב/ אורך. 2 המסד. .= תרשים -19 11 | הפלט .של תוכנית א | 8 תלק ב" התכנות | שמירה ושתחזור של מסכים גרפיים בפרק 10 למדנו לשמור ולשתזר חלונות טקסט, שמרנו את התצוגה על ידי העתקת 0 המלים של זכרון הווידאו לאזור אחסון מיוחד, + את המסך על ידי העתקת אזור האחסון לזיכרון. זוי גישה בזבזנית. במידת-מה, כיוון שברוב המקרים מבקשים לשמור ולשחזר רק חלקים קטנים של המסך, אולם הטכניקה אינה מסובכת, ושטתי הזיכרון שהיא צורכת אינם גדולים במיוחד. מסך גרפי, לעומת זאת, עלול לצרוך 16% מהזיכרון הפנימי, של המחשב, הנוסף לוכרון המתאם הגרפי עצמו, שמירת מסכים גרפיים מלאים עלולה לכלות במהירות את מאגרי הזיכרון של הערימה, ולכן עלינו להצטמצם ולטפל בכל פעם בתלקים קטנים של המסן. השגרות 1080068126, 06610806 |-6שַהח61גוע יסייעו לך בביצוע המשימה. 7% : ( ע00002ם1 : 2צ ,82 ,1צ ,31 ו מסנ6סתט+ | ק( ק21%%8 עהט ,ע6000ם1 : 2צ ,82 ,1צ ,81 )0661806 6עגוססססצס (( 6צסא : 816816 ;810087 עבט ,16602 : צ ,א )618896גוע 6מטספססנס הפרוצדורה 6061886 שומרת חלק מהמסך - מלבן המוגדר בעזרת קואורדינטות הפינה השמאלית העליונה (1צ,1א) וקואורדינטות הפינה השמאלית התתתונה (2צ,2א), הקטע המתאים מזכרון הווידאו מועתק לאזור אחסון המוגדר על :די המשתנה ללא הגדרת טיפוס - כְִ8א216%; גם נתוני רותב המלבן וגובהו נשמרים. השתמש ב-6₪א606% כדי להקצות אזור אחסון וב- 266%06₪ע כדי לשחררו ולהתזירו לערימה בתום המשימה, הפונקציה 1088669126 מחשבת את' מספר הבתים שיש להקצות. | הפרוצדורה 610866טע מחזירה את תוכן אזור האחסון אל המסן. הפרוצדורה 96 שמרה את מידות המלבן באזור האחסון ש16%8, ולכן הפרוצדורה טע זקוקה רק לקואורדינטות של הפינה השמאלית העליונה. הפרמטר 516816 מאפשר לך לבתור באופן שבו הפרוצדורה. סגו תציג את המלבן, טורבו פסקל הגדיר עבורך חמישה קבועים שבהם ניתן להשתמש כאופציות: פרק 11: תצוגה גרפית . 389 0 | ₪ 60007206 -. 0 - %ועתסא -- 1 [ תפסא ) . %גופעס 2 ( תס ] . %טקסתת 3 | ( סאת + - %גוע>סא 4 [ יסא ) %גוּפַעַ600 מבצע החלפה מלאה, כלומר המסך שנשמר באזור האחסון "עולה" על כל מה שקיים כרגע על המסך; >טעס6סא יוצר תמונת ראי, האופציות האחרות קובעות את תצורתו הסופית של המסך על ידי השוואה לוגית בין הנקודות שעל המסך והנקודות המקבילות שבאזור האחסון. הטכניקות הללו מתוארות בתוכנית 5110898 שבתדפיס 11,26. תדפיס 11.26 / 31+080 ;‏ תפינשסס | 680 808גו שפט עסףת1סס : 6 סעסש : 95028₪6 ,101005 ,(בס16 ,1 16007 : 9-6 ,₪1 ת1שסס י' 26560% =: עסט1סתסאינס ; ( '0:1 ,080006 , סט 1סתספינ )ת1+080חך ;5 610 66002% =: 100 .4 017 00% =: סהשוסת | ת1שסס 60 100 60 1 =: 1 עס+ ; ( 1 + ( 05ס001א00%)2 )הססתצת )56%00102 ( ( 4 ט61 ב716% )הססתבת , ( לאם 01 )הססתגת , (. בג ב בכ / ; תס ( 000 ,ב60גזו ,20/0 1 :50196 ; (< 560866 , 18006 )+00 5 " שח ו 16% ,0 ,0 )0006 / ; 108011 ; 01000100 01 0% 5 % סו ו 11618 ,₪ )פם ; ת08/11י1 0 4 50 0 =: 1 עס+ . ג 7"0סשח1 ,0,ב1*0100 )6קפתדשגות * / 0 1 ) ה606ע נת[0פסץע 01086080 0 0 חלק ב" התכנות תוכנית 81106828 מחלקת את המסך, לאורכו, לחמישה חלקים, התוכנית פותחת בשרטוט של 100 מעגלים אקראיים בחלק השמאלי של המסך (תרשים 11.20). תרשיס 11.20 פלט של תוכנית 8168474 - 100 מעגלים אקראיים כאשר לוחצים 662םש התוכנית שומרת את החלק השמאלי של המסך באזור אחסון בשם "6צש1, ומציגה במרכז המסך מלבן אופקי גדול (תרשים 11,21). תרשיס 11.21 פלט של תוכנית 811088 - מלבן מלא פרק 1: תצוגה גרפית 391 לחיצת ע%66מש נוספת מחזירה את השרטוט המקורי של המסך. התוכנית מציבה את השרטוט בכל אתחד מחמשת קטעי המסך, ומשתמשת בכל פעם באופציה אחרת של 16% (תרשים 11,22). תרשיס 11.22 פלט של תוכנית 8ק60%4ז]8 - חמש אופציות התצוגה תצוגת טקסט הוראות 1%66עא ו-ם1661עש פועלות בתצורה הגרפית בדיוק כפי שהן פועלות בתצורת טקסט, יחידת ם6280 אינה מאפשרת הצבה חופשית של פלט 166עח ו-םת1661עא, המופע הראשון של פלט זה יוצב תמיד בפינה השמאלית העליונה של המסך, ללא קשר למקום שבו נמצא המצביע, כל מופע פלט נוסף יימצא מימין להודעה הקודמת, או בתחילת השורה הבאה - אם ההוראה הקודמת היתה מ1661מא., הערה: השימוש ביחידת 6זס - | כאשר התוכנית משתמשת ביחידת 6ע62, הוראות' 6ננשט ו-ם1561עש פונות לשגרות התצוגה, המשתמשות ישירוּת בזכרון | הווידאו (תצורת טקסט). כדי לנתב' הוראות אלה למסך הגרפי, יש להציב "לא אמת" (28156) במשתנה 1:60%6/1860ס: 7 =: ב פעולה זו מאפשרת לך 0 את יתידת 62% מבלי קָאבד ) את אפשרות השימוש ב-156קש וב-ם1661עא, | [ יחידת מ7ק628 כוללת אמצעים לתצוגת טקסט: ( 8ם1ע55 : 4מ1ע%5%6א76 )0 26גו60ססמס 7( 9ת1ע56 : 9ת%9%621א16 12560027 : צ ,א )צא%א6ע6גו0 6נ660ססנס הפרוצדורה %א0₪616% מציגה מחרוזת המתתילה במצביע הנוכתי. כאשר הפרוצדורה מסתיימת, המצביע עובר למקום שאחרי התו האתרון במתרוזת,. הפרוצדורה צאא66ו0 מציגה מחרוזת ב-(צ,א), אתרי ההפעלה המצביע נשאר במקומו המקורי (צ,א), סוגי אותיות | מערכת התווים הגרפיים המהווה ברירת מחדל, נקראת גופן: עם מיפוי סיביות (%נ0ס+ חִסמסגּת -15כ). בל אחד מ-256 התווים התקניים של 9011 נשמר במטריצה של 8 א 8 סיביות. כאשר מגדילים את התו, מבנה הנקודות ניכר היטב. | נוסף לכן, יש בטורבו פסקל ארבעה גופנים משורטטים (855מ20 0%60ע552) - 16%קנעי1, 5811, +21ע5-50מ58 ו-60%216, המוגדרים על ידי מערכת של נקודות יחסיות (בדומה לנקודות ההתייתסות לשרטוט מצולעים). גופנים (65ם0ס+) אלה שומרים על צורתם הנאה גם כאשר מרתיבים את האותיות או מכווצים אותן. ניתן לבתור בגופן (6ם0ס+) הרצוי באמצעות הפרוצדורה %5%616א9616: ;( 6עסש : 628289126 7 : תסנססס:נכ ,>תסע )%56716א56616% 6מנגוססססמס | פרק 11: תצוגה גרפית 3 באמצעות 8662655616 ניתן לפקת על הגופן הנבחר, על הכיוון (אופקי או אנכי) שבו ייכתב הטקסט ועל גודל התווים. . בחר בגופן על ידי הגדרת ערך (4-0) או באמצעות אחד הקבועים המוגדרים מראש = שבטבלה 11.9. טבלה 11.9 גופני טקסט (פלחס+) קבוע ערך = קובצ %תסע16ַ658כ | 0 טפץ אעתתס %ת0סעא16סנ1עץ 1. ₪ עדת %מסע11הת | 2 ;ו ששל %ת0ע+1ע9550ת8 | 3 ,פאתפ. %תסץס1ם60% | 4 יס גופן %מסע11%ו6+8ע הוא ברירת המחדל (מיפוי סיביות :של 8 א 8), הגופנים האחרים הם גופנים משורטטים. כל גופן משורטט מאותטן בקובצ נפרד בעל שם הרחבה תּאס,, לפני השימוש בגופן משורטט, *ש לוודא שהקוב המתאים נמצא בספריה המוגדרת על ידי הת ה הפרמטר ם1260%10פ מאפשר לך לבחור ביץ תצוגת טקסט אופקית (משמאל לימין) ובין תצוגה אנכית (מלמטה למעלה), ניתן להשתמש בקבועים מוגדרים מראש או לבחור ו 0 או 1. 0 1: מ1כ2<נעסע 761 בתצורה הגרפית ניתן לשנות את גודל האותיות,. הפרמטר 0828126 הוא יערך ‏ בגוזל מלה המכיל את המכפיל, 1 הוא תו בגודל רגיל, 2 - תו בגודל כפול וכן הלאה. | | . תוכנית דתהזסמצת שבתדפיס 11,27 מדגימה את השימוש ב-16צ656א6616פ: 24 חלק ב': התכנות תדפיט 11.27 ; 60037 תפידססיזן סינ 505 יפש ;%6עס : 66מהתס1) . (סתסט : %9126ת10 ,(06ע1>תסע ,10% , סנס ; ע₪0ססת 1‏ : 902066 , סט 1נסתסט ת1שסס ;26%60% =: עסט1נ הסינ ; ( '0:1' ,066)מפת0 , עסטנקתספינ )םק 1+0תד ;5 ט41 00% =: סתשוסת ;10 010 00098% =: מסבנ תגשפס 60 4 60 0 =: 06ע1>תסק ע0ס+ ; ( 6סץ1פתסת ,7 שת0סת' )ת1%01יעש ;84 =: 66מהמס1 ; ( 26*10106ע51ת20 ,5 61 %א 0010‏ )ססטסוון תנשסס 60 6 60 1 =: 26נפפ%תסע עס1 ; ( 70005126 ,ע1201עסת , 6סץ1+תסע )16ע69%6א56%16 ; ( 6%ממתס41 )סתך ; ( ( 6%מהתק41 )עת0 )00105 ; ( 0 ,166 ) [פתסטסוא ; תס - ; הת08/11י1 ; 0105001901 . 0 הפלט של לתתצ)מצע מתואר בתרשים 11.23. פרק 11: תצוגה גרפית | 395 תרשים 11.23 הפלט של תוכנית זה ל צ ה -- ב : ו ץ | / , | / ' , 4% תוכנית 12'תתאס (תדפיס 11,28) יוצרת תצוגה אנכית של טקסט. תדפיט 11.28 ; 81% תפי סיט 18 08בגו לפש (סעסא : ע10%%6 , 6קץע1לת0? ,115166 , תל ג ; 350₪0% : ו ו 2 > " תנשסס ;26%60% =: >סט1סתפי1 0 32 ו[ ) 8+ תת ;6 0107 %א00%[8 =: 1002 ,5 010 צ00%(8 =: סבשוסת תנשסט ס 4 %0 0 =: 06ש1>תסע עס+ ; ( 0 , ( 1+ 06ע1>תסי )*ב10 ) סד סקסו ; ( 8 ,ע%01ע70 , 06ץ%1תס1 )16ע56%16695 ; ( = 2עאשטגולפנסססתות11 1ג(900861* )גוס תס ; הז0801י1 01080080 7-ו 6 תלק ב" התכנות | הפלט של תוכנית 089872 מתואר בתרשים 11,24, שים לבי: סוף המתרוזת שבפרוצדורה %א00626% נמצא בראש המסן. תרשים 11.24 הפלט של תוכנית 63846172 <קיחי. וה שש > שש 17 זז יישור טקסט | בתרשים 11.23 ובתרשים 11.24 ראית כי למרות שהתוכניות ניסו לפזר את התווים בצורה אתידה, התוצאה שהתקבלה אינה נאה, הפרוצדורה ע+56676%%0115%1 תסייע לך ליישר את התווים - במאוזן ובמאונך, יחסית למקומו הנוכתי של המצביע. ;( 6עסט : 6ע06 ,2נגעסם 0 6 סינ פרק 11: תצוגה גרפית 397 בפרמטר המאוזן (2נמסא) יש להציב אחד מהקבועים הבאים: 7 = לי כ 7 = %6א%0770%ת60 7 = 6א626ת4נ1ת בפרמטר המאונך (%ע62) יש להציב אחד מהקבועים הבאים: 7 = 6%א6עתס66סם 7 = 6א60076%ת60 = )א6ס'ססיץ התוכנית צ"אמע'נפטטנ שבתרשים 11.29 מדגימה את אופן השימוש בפרוצדורה +51 תדפיט 11.29 ; 8%162%גו1 ותהיוטסיוכן אי 05פגו ב ,ב016% ,110% ,1 (סתסא : 001081 , [8לת20 סו ; 0שסלת 1‏ : 9046 , סק 1נקתספיזס תנשסס (26%60% =: עסטבינסמספי ; ( '0:1 ,9060 , סט 1סתספינ )115080 ;4 017 %א00%0 =: 6ב1₪סע 4 61 %א00%2 =: ב0בנ ; ( 6 ,ע11021201 , %ת%0+1גג26+9 )16ע56516656 תנגשסס 00 5 %0 1 =: 1 עס+ (( 01₪2%*1 ,00%00% ,291₪2%*1 ,0 )6ת11 ; ( 00 , 1*ב10% ,0 , 1*ב100 )ספת ; תס 0 2 60 0 =: %81ת120עסם שס+ תנשסס 00 2 %0 0 =: 70281081 102 ;( %השנסות*( 1+ 61081ע70 ) ,ב10%*( 1+ %81ת120שס ) )סעסטסו פיפ ; ( 70251081 , 20581 גנסו ) ע56%10025%12 , ; ( 707 )0001686 י ; תס ; ת09/0(1יד 010860180 0 וו ...ה 8 תלק ב" התכנות הפלט של תוכנית י'אמעי'פטנ מתואר בתרשים 11.25. כל תשעת הצירופים האפשריים מוצגים. אופציות היישור האנכי מתוארות מלמעלה למטה, ואופציות היישור האופקי - משמאל לימין. תרשיס 11.25 הפלט של תוכנית זדאפדדפטט בירור הגדרות הטקסט כאשר התוכנית משתמשת בכמה סוגי תווים, ניתן להשתמש בפרוצדורה %ם56601+א66610 כדי לבדוק מהן הגדרות הטקסט הנוכתיות (גופן, כיוון, גודל ויישור), ולאחסנן. |( 06ק0517ם%690%%61א26 : 0+%ם61א716 עהט )09םת%606%661א06%76 6קגוססססמס הפרוצדורה 65ת6596%61א06%516 משתמשת בפרמטר משתנה אתד מטיפוס 16966 שהוגדר על :ד פרק 11: תצוגה גרפית 399 6 = 6כ2ץ%96%0120597א76 7 : %מסץ 7 : בס1סס6קנ1כ : 62829126 ;סש : ק<בעסם 7 : 7% ;תס בהנחה שהוגדר משתנה 0+ת61א6' מטיפוס 656%66145106א6ע' ניתן לקבל את ההגדרות הנוכתיות על ידִי: ;( 1+0מ61א6ע' )05ת00%16%56%661 כדי להחזיר, אחר כך, את ההגדרות למצבן המקורי, יש להשתמש ב-- 0+ת61אס6י' כקלט ל-%65616א16' ול- ץ+%6011561א56%16. | ת61ם 60 %50ם612א16 ב1%ש ;( 028128126 ,ת60%10ע1כ ,טתסע )16ע56%76%56 ן ;( %6ע6ע ,12עסט )%00561+7א56%76 7 פיקוח על גודל הטקסט הפרוצדורה 16ע%9%6א86626 מאפשרת לך להגדיר את גודל הגופן (6מ0) בכפולות של מספרים שלמים בלבד. הפרוצדורה 56%60862028129126 מאפשרת "לכנוץ" גופן משורטט או לשנות את הפרופורציות שלו. ;( ס6עסא : צטגת ,צ16טא ,אטנס ,א16%גוא )966050202829126 6עגו0סססס אחרי הפעלת 8281286ם5660560 יותאמו מידות הרותב והגובה של הגופן המשורטט ל: צטנטא ול: א16טא צטנק אטנסם כדי להשתמש ב-566059620829126 יש לקרוא תתילה לפרוצדורה 16ע%656א56%76 כאשר הפרמטר 6>נפַכִהּת60 הוא: 7 = 855126ת0תספש 0 תלק ב" התכנות השימוש בקבוע המוגדר מראש 01829126ע0956, מודיע למהדר שאתה מבקש לשנות פרופורציות של גופן משורטט, אתרי ביצוע פעולה זו - ניתן להפעיל את 86, טכניקה זו מתוארת בתוכנית 2₪דפאשי שבתדפיס 11.30. תדפיט 11.30 | 005126 תזפידססינן 0801 05גו יפש ע6000ת1 | : 6800046 , צסט ננס סי ;סט : 101626 ,בש ו תנפסס (26%60% =: עסט1קתסי ( '70:10 ,900066 , עסטנעסספע 0 )םי 1+0תך ;2 ט61 00000% =: 1661 4 617 60000804 =: 6בש1סת ; ( 00661086 , 0605071086 )50056147 ;( 1 ,2 ,1 ,4 )829126מ30%08070 ; ( 030200829126 ,ע1201עסו1 , %ת55021+70פת582 )16ע56%16865% ( 00077 ,101% ,16 ) צא6166גס ;( 1 ,1 ,1 ,1 )209126ת56%08670 ; ( 080700808120 ,ע1201ע10 , %ת1170שספ5ִת58 )10ע%5%א50%16 (.. תת מ ע0 צכסם מע 15 8ע' ,1₪2%ס2*3 ,ב16% ) טס ;( 2 ,1 ,2 ,1 )819120ת50%08070 ; ( 0800088120 , 1012012 , %ת5825561+70 )10ע56%160%55 5 '.. עאנתק פאנע שד 15 11115" , 6תקגסם*5 , בג )צא16סגס ; ת0901י1 | 0105002801 - הפלט של תוכנית 12₪פי'אמע' מתואר בתרשים 11,26, הפרוצדורה 96%05602825126 מאפשרת ל-75128א28 לשנות את רותב התו וגובהו באופן עצמאי. פרק 11: תצוגה גרפית | 401 תרשים 11.26 הפלט של תוכנית 5125דאספד ]א | 060 טח זט 8001 חז ₪ פחו 5 5 9 בירור גודל הטקסט במסך טקסט - קל לברר את גודל המחתרוזת, הגובה הוא 1/25 (ארבעה אתונים) מגודל המסך. ניתן לברר את אורך המחרוות בעזרת הפונקציה ב6שמס. במסך גרפי קשה יותר לברר מהו גודל המתרוצת, בעיקר אתרי ביצוע שינו פרופורציות, בטורבו פסקל קיימות שתי פונקציות המחזירות את הגובה והרותב של מחרוזת גרפית: 2 : ( שם1ע55 : מם1ע%56א26 )6161026א6. תסנ6סתגו+ ( 06ת1ע560 : 0מם26%%5%621) ת5%818%א16 תסנססתט+ הפונקציה %ם68610א6י' מתזירה את גובה המתרוזת בנקודות (615א1ת). הפונקציה אע מתזירה את אורך המתרוזת בנקודות. תוכנית 6אזתי'אאע' שבתדפיס 1 משתמשת ב-%6מ61614א26 וב-ם6₪16%א6 כדי לברר מהו גודלה של המתרוזת ומחשבת את רדיוס המעגל המקיף אותה. 2 חתלק ב" התכנות תדפיט 11.31 ; 1631 תהיושסינס ; בכ8ינ) 08פגו יפש ; ע080סת1 : 680006 , עסק בינס פיז ;עס : פגו1פת , 55910 , א6ינ8+ס %ת1שתס1 : 010% , 6תש1סון ;[ 20 ]שת1ע8% : 059820 תנפס ;26060% =: עסט1עסתסהינ ; ( '70:1 , 9006 , עסט1קתכפי 0 )םס 1%0תך ; '. עס 218 %26 727688 =: 0895820 ; ( %502108%5ת00 , 5010%5ת09 )7ץ56+1660.25%12 ;( 4 ,10212012 , %ת55071+70ת58 )16ע50%16656 .2 01 %א06%/2 =: %%ע5%8 ;2 ט610 %א00%09% =: 05820 ; ( 059806 ,558261 ,5582%% )006 ; ( 1)0898₪0 )3015+א10 =: >השגסם ; ( 1005896 )1600105 =: 10% ;|( ( 2 / ( ב18%*ב016% + 6מקנס*סתפנסו] )5% )*1.1 )התטסת =: פגונגת ; ( פט01בת ,%צ0ע9%8 ,5%80%8 )0120016 ; 108311 0105008 . תס הפלט של תוכנית 6א1תצפינזאפי' מתואר בתרשים 11,27, נסה להפעיל את התוכנית כאשר נתונים גופנים שונים ומתרוזות באורכים שונים. גודל המעגל ישתנה בהתאם לגודל המתחרוות. תרשים 11.27 הפלט של תוכנית 6א1 זפדאספד 6 הש ]: 106 655 פרק 1 תצוגה גרפית 403 ברירות המחדל בגרפיקה הפרוצדורה 6282126+881%5 מתזירה לפרמטרים הגרפיים את הערכים המקוריים, שהיו בהם כאשר המערכת הגרפית הופעלה באמצעות 1502871ת1. ויו 6:גו060ס:נש ערכי ברירת המתדל שהפרוצדורה 0 מציבה הם: = המצביע הנוכתי עובר לפינה השמאלית העליונה של המסן. = האשנב משתרע על כל המסן. ₪ ברירות המחדל של טבלת הצבעים והרקע מופעלות שוב. ₪ מתבצע שתזור של סוג הקו ועוביו. = מתבצע שתזור של הצבע והדגם של המילוי. = מתבצע שחזור של הגופן הפעיל, סוג הטקסט, היישור וגודל התווים. הפרוצדורה אינה מוחקת את תוכן המסך, כדי למתוק את תוכן המסך יש להפעיל את 68 אתרל 11165ג6+8כת0:8. שילוב מנהלי התקנים וגופנים בתוכניות עקרונית, ניתן לשמור את קבצי מנהלי ההתקנים (561.) ואת התווים המשורטטים (תּאס.) בכל מקום על הדיסק. התוכנית תטען ותפעל כראוי כל עוד מקום הקבצים מוגדר בעת ההפעלה הראשונית של המערכת הגרפית. 7 >= 16 םס ;( 'ע':ס' ,628018006 ,מפט1נפם0230 )ב160:80תך אולם, כאשר מבקשים להעביר את התוכניות הגרפיות למתשב אתר (כדי להפעיל את התוכנית מכמה מחשבים, כדי להעבירה לתבר או אפילו כדי למכור אותה), עלולות להתעורר בעיות, כדי שהתוכנית תוכל לפעול, חייב כל מחשב שבו נמצאת התוכנית 4 חלק ב" התכנות | להכיל ספריה בשם פע':ס שבה יימצאו מנהלי ההתקנים (61ם, ו-א0,) המתאימים. ניתן לפתור זאת על ידי שינוי הנתיב ב-םק1%028ם1 והפיכתו למתרווזת ריקה (המצביעה על הספריה התורנית) והפצת התוכנית יתד עם קבצי 61ם, ו-החס. פתרון זה אינו אידאלי, יש להנית כי לקותותיך או ידידיך יבקשו להפעיל את התוכנית גם מתוץ לספריה שבה היא נמצאת, ולכלול את מקום הימצאה בפקודת אזתע, במקרה זה, התוכנית לא תוכל לפעול, כיוון שקבצי 61ם, ו-תא0. לא יימצאו במקום שבו 11602870 יחפש, ניתן כמובן להודיע למשתמש מהי הסיבה לתקלה, ולהורות לו להעביר את הקבצים לספריה התורנית, אולם פתרון כזה אינו נראה מקצועי ביותר. בעיה שונה מתעוררת כאשר משתמשים במספר גופנים משורטטים. על פי ברירת המחדל, התוכנית שומרת בזיכרון מערכת תווים אחת בלבד, כלומר, החלפת מערכת תווים כרוכה בטעינת מערכת חדשה מהדיסק, במקרה של החלפות תכופות, עלולים העיכובים הנגרמים בשל כך לעצבן גם את המשתמש הסבלני ביותר. הפתרון לכל הבעיות הללו הוא שילוב קבצי 61ם, ו-א08, בתוכנית עצמה. אם כל מנהלי ההתקנים והגופנים יימצאו בגוף התוכנית ויעברו הידור משותף, לא יהיה צורך לטפל בבעיות מקום הימצאם, ולא יהיו עיכובים בגלל טעינת גופנים. מיד תלמד לבצע זאת. טעינת מנהלי התקנים וגופנים ניתן לשלב מנהלים וגופנים בתוכניות בשני אופנים: 1, שיטת זכרון הערימה. 1160287 מציב בדרך כלל את מנהל התקנים והגופן שנבחרו בערימה, ניתן לבצע זאת ישירות, קרא את כל קבצי 61ם. ו-תטס. הנחוצים לך, והצב אותם בערימה והעבר את כתובותיהם ל-ם166280ם1 כדי לעקוף את תהליך הטעינה. | 2, שיטת הפרוצדורה התיצונית,. הפוך את 61ם, ו-088, לקבצי יעד (6ספכסס 8) בעעזרת תוכנית מאש,נפסאדם, וקשור אותם לתוכנית. | אמור ל-םק15028ת1 שהוראות המנהל והגופנים נמצאות בפרוצדורות שבתוך התוכנית. | - פרק 11: תצוגה גרפית 5 שתי השיטות פועלות היטב, אולם השיטה הראשונה סובלת מהחסרונות שנדונו קודם, כלומר - קבצי 861, ו-תּא0, חייבים ללוות את התוכנית ולהימצא בספריה מוגדרת מראש. ספרות העזר של טורבו פסקל מתארת את צורת היישום של השיטה, השיטה השניה, שתתוארר מיד, יעילה ו"נקיה" יותר, בשתי השיטות מגדירים כתובות בזיכרון (פעולת הנקראת "רישום" או שמ56621בפָסַ), בעזרת הפונקציות: 7 : ( ע66ת1נסק : עסטנעס )106ע 6718600016 תסנ6סתגו+ 77 : ( ע6>תנסק : >תסץ )%ת36015562201+0 תסנ6סתט+ | הפונקציות ע6ש30018562901021 ו-+ם26018%62201+0 רושמות את המנהל והגופן במערכת הגרפית. הפרמטר של הפונקציות הוא מצביע, שיטת זכרון הערימה והמצביע מסמנת את נקודת ההתחלה של המנהל או הגופן בערימה, בשיטת הפרוצדורה התיצונית הסימון הוא לפרוצדורה המחוברת. | יצירת קבצי יעד (סססנמס) באמצעות מא נפסאדם אתר את תוכנית ₪א080,8א51 שקיבלת עם תקליטוני טורבו פסקל, אם התקנת את טורבו פסקל בדיסק קשית, התוכנית נמצאת קרוב לוודאי בספריה פעצ6 סמוך למהדר. תוכנית 8א₪,02א51 הופכת את המהדורה הבינרית של קבצי 61ם, ו-תא0, לקבצים הנמצאים בתצורת קובץ יעד ((6ס6ככס), קובץ בינרי הינו קובץ נתונים; קובץ יעד הוא קובץ המכיל הוראות או נתונים שתצורתם מאפשרת לתוכנית טורבו פסקל להשתמש בהם. שם ההרחבה של קובץ יעד הוא טַמס.. ניתן לחבר קובץ כזה לתוכנית באמצעות הוראת המהדר [:8). מאט, טלפסאזם קולט שלושה פרמטרים: <%86 ???110טק> | <[020,]םתסנש8ת408%61> <[א206],81ט0ס5> | לַפסאזמ קובץ המקור (6סעט0ספ) הוא הקובץ הבינרי שמבקשים לשנות; ברירת המחדל היא שם הרחבה א81; קובץ המטרה (ם8%10ם66561) הוא קובץ 051, שמבקשים ליצור; סג1סטס הוא שם הפרוצדורה שבתוכנית. קבצי היעד שתיצור יהיו קבצים תדשים, בקבצים המקוריים לא יחול שום שינוי. 6 תלק ב" התכנות | | | | 1 הדרך הקלה ביותר להפעלת ₪אש,092א1 היא שימוש בקובץ אצווה (מ860כ), קובצ לה .מוזמתדאסע שבתדפיס 11,32 מכיל הוראות ליצירת ל יעד לבל מנהל ור תדפיס 11.32 0 0 ה זנ ס0קז:0 נפסאתזם תס ידד 1 וש מס. נינזזס:06 זפסאזם 0% 5 5 \:0 [פסאנם %תס+ דתי דח זז קזח פצ:0 זפסאזם סטג -צסייד ידיד 1. יי אפ:0 נמסאתם עסט 0 04 1 0:\04 נמסאנם 00000 | 0400 | 0ם 04/04פקז:0 נפסאנם יזסץ 080173 [גוסינ110 6 1. סתתנק:6 נ[תסאזת 01טג10051402 | 14/0514 | 01 . 1008514 פע :1 [תסאז ע6ט00270021 00 011 0270 :1 א כדי להשתמש בקובץ יש להקיש: | =,זמתיזיתסק ן מרמת המנחה של 205, מערכת 005 תפעיל את תוכנית ₪א₪,082א51 עבור כל מנהל וגופן ‏ שברשימה, (ניתן, כמובן, להקיש את הפקודות זו אתר ז(, אולם יש להניח שתרצה לחזור על התהליך בעתיד, ולכן כדאי להכין קובץ אצווה). לפנל ההפעלה כדאי לבדוק אם קובץ האצווה מכיל את הקבצים הנכונים, הקש: | דמס,* הדס מערכת 05 תציג רשימה של 10 קבצים: ו . | | ₪0 (: 9 שש :ו 0 פדתך 7 עידית :0 :01000 :ונ :0 :כ 2 | כל הוראה בקובץ האצווה מבצעת המרה לקובץ המקור. למשל, ההוראה: 00% | 0078 12028088₪ נפסאזם ₪ | 7 | . פרק 11: תצוגה גרפית 407 . יוצרת קובץ יעד (טס6כסס) מקובץ הנתונים הבינרי 608,088 הנמצא בספריה עז':6, קובץ היעד ייקרא 608.08 והוא יימצא בספריה התורנית, אל קובץ זה ניתן מעתה להתייחס סאל פרוצדורת טורבו פסקלל בשם 6מ60'890, הקובץ שנוצר אינו מכיל הוראות ביצוע כמו פרוצדורה ‏ אמיתית, אולם הדבר אינו משמעותי. 1ק1%6:8ם1 מצפה לנתונים, ולכן יתייחס אל %מ60'8+0 כאל נתונים. שילוב המנהלים והגופנים בתוכניות ₪ תוכנית. שעטידפ,זדת שבתדפיס 3 מדגימה את תהליך החיבור של קוב יעד לתוכנית, התוכנית -מכריזה שהמנהלים והגופנים הם פרוצדורות חיצוניות. כל שם . פרוצדורה מתאים לשם ציבורי (116סגוכ) שהוגדר בפקודת מאם טפסאדם. ההכרזה על פרוצדורה חיצונית מודיעהּ למהדר שתוכן הפרוצדורה + נמצא בקונץ אחר - שהוגדר בהוראת המהדר [ע%). בזמן ביצוע ההידור, טורבו קורא את הקובצ. התיצוני ומשלב אותו בתוכנית הראשית, אחרי ההידור, > אין יותר צורך בקבצי טפס. אל תמחק קל אלה מהדיסק; יש להנית שתודקק להם בהזדמנויות אחרות. תדפיט 3 1 1 +%+4115 תנפידססינק 80 פספט , שפץ > ;עסו : 3010028 ,16ע%55תסק >" | ע00₪0תג ‏ : 66ס)קינ , סק בנסתספינ [ 0.3 ₪ ; 0%601(81 ; 00111203 6עגוססססין ( 177087 81) | <; [הת%01אס 11906 6יגו60ססטק | ( 545.0 82) | ; [פתינססאס 51182036 סיעגוססססיכן [ נמס. ענת יט ; 06011081 ; 10206 6ינגו6ססיכן [ ס.א 82 ; [גתזס6אס ; עסט :1110 6יעגו0סססיס | [ 0.0 יש ; 0200011044 000100 סינגוססססכן [ 01 004 9)- ; [ַת6%061 10/70/0170 סינגוסססינסן [ 130.08 8) | ; 65081 ;02ט105071סס11 6עגוססססשסש |[ 514.08 .61) | ;050171 | ,ע6ט1₪085140-1 6עגו6סססצק [ 05279.0 ו ; 06017081 ; צץ00270021 6ינגוספססינן ;( עססתגסק : וסנת ) 4ת1/080111070 6עגו60ססעס ‏ | הזגשסס תנשפסס תפמל .> ( סיק ות +1 ג גוסמ ספ סי ,7 5 . / ו . 9 0 תדפיס 11.33 ממשיך בדף הבא / :0+ ₪ת1ע20015%0 עסעעם" ‏ )ת1%01י. ;( 1 )בו ₪ ,88 . (6ת6: יי 6נגו0סססיסן הנשסס 0 י- 10) 6 10% ( ( - 055106 ) תס 16 41?0% ₪ ) לס 8 תלק ב" התכנות | המשך תדפיס 11.33 ; תס ; ( ע6סת1סק : ע66ת20000020701 )סט 1/0860 6גו0סססמס תנפסס תנקסס תסמ 0 > ( ע6סת20701ג200600 020ט18%02001071קסת 11 ;( ( 1%ו309ת80ע0 )6פתסעתממק8עת0 ,7 [עסט1ע0 שתנע0ספנוקסעת עסעטם' )ת1%01יט .1 )16ת ; תס ; תס ; 1100-170128סינ8קסיק 6עגוסססספמ תופס ; ( ע6ט1עכ1 6 ) סט 080 ד ; ( 0004021062 ) סט 18601 ; ( 6900/0016 ) סט ג 686 1 ( ;‏ ע6ט1050:1ג61160 ) סט 108601 ; ( עסט 108851401 ) עס 186 ( ;‏ 6005270006 ) עסט 8001 1 - ת1נשסס ; 008 1-067 ינע 018 01110021י הסנת (26%60% =: עשט1סמכ8י0 ;( 77 ,008010000( עסט1עכמק94ע0 )ם1%080תך ,6 ט61 ,0000 =: סהשוסת ; ( 000601685 ,0005071086 ) 3%11%ג50%16%21 תגשסס 60 %ת60%21070 %0 %6ת11%70גג2628 =: 16ע%פסתסץ ‏ ע0+ ;( 4 ,ע1201עס ,16ע55לת0? )16ע50%16055 ;( '!8שת0200%1' ,( 1+ 16ע69%ת0ת )*%בש1ס ,2 ט61 60089% )ע0%א16לגוס - 098011 ; 01080080 - הפונקציות 2ע6טש1ע360156072010 ו-%ת1560120150ש6ת רושמות את הקבצים החיצוניים ביתידת טפץ,אעתת6 במנהל או גופן אפשרי,. כאשר מפעילים את ב16237ת1 עם נתיב תיפוש של מחרוזת ריקה, נערכת ראשית סריקה של הטבלאות הפנימיות של טפ ₪פ2ג63. אם שם הפרוצדורה נמצא בטבלה - התיפוש נפסק. כל מנהלי ההתקנים והגופנים נמצאים בתוך התוכנית, ולכן אין צורך לפנות לדיסק. הפלט של תוכנית שעטעפ.1ת מתואר בתרשים 11,28. תוכנית עשטעפ.נתת יכולה לפעול בכל מתאם בכל מתחשב התומך בטורבו פסקל, מבלי להזדקק לקבצי דַ6ם. ו-688, נפרדים, תוכל להשתמש בתוכנית זו כ"שלד" לדוגמא כאשר תכתוב יישומים עצמאיים. ששחש פרק 11: תצוגה גרפית 409 תוכנית עעטעפ./1ת היא "המהדורה המלאה" המכילה את כל האפשרויות, בתוכנית שלך, תוכל למחוק את התייחסות לגופנים שאין בהם צורך או למתאמים גרפיים שלא תזדקק להם, קובץ שא₪, המתאים לכל הכרטיסים הגרפיים ולכל הגופנים מביל כ-45,000 בתים יותר מקובץ 8₪א8, המכיל רק כרטיס אחד וגופן אחד. פח1 זו 8 5 015 ו התקנה של מנהלים וגופנים חדשים יתכן שבשוק *ופיעו קבצי גופנים חדשים (98א08,) שפותתו על ידי חברות תוכנה, או שיפותחו כרטיסים גרפיים חדשים. הכרטיס הגרפי מלווה בדרך כלל בקובץ 1, משלו ובהוראות התקנה, אולם, למרות זאת, כדאי להכיר את השיטות לשילוב מנהל התקנים חדש, או גופן חדש, בתוכניות, ניתן לעשות זאת בשתי דרכים: 1 הפיכת הגופן או המנהל החדש לתצורת קובץ יעד (טספכסס). בעזרת תוכנית שפאם, טפסאדת וקישור הקובץ אל התוכנית, שיטה זו תוארה בעמודים הקודמים 2 הפעלת שתי פונקציות מיותדות: %ת118%811056:20 (-55811050:021762ת1. נתאר את השיטה השניה. [ 0 חלק ב" התכנות > | | - התקנת גופן (>מס+) חדש כדי להתקין גופן תדשי של תווים משורטטים יש להשתמש ב " 16077 : ( שתנ1עסם : 6 סע )%ת125%81105670 תס61סתנו+ שם הקובץ הוא הפרמטר היחיד של 6מסעמ11056הּס5ת1, הגופן נטען לערימה ומחזיר מספר, זיהוי שבאמצעותו אפשר לפנות אל הגופן בעזרת 16ע656א9656. בהנתה שהגדרת משתנה >מסעשסא מטיפוס 66062מ1, בצע את ההתקנה באמצעות הפקודה: 1 'פנ 116ת+תסקי )%מ55811056220ת1 =: %מסעחאסא מיד אחר כך יש לקרוא ל-6023080901% כדי לוודא שלא היתה תקלה בהתקנה, כאשר הטבלה מלאה בעת הפעלת %ת0ע:56811050ת1, מוצב ב->תסעאפא הערך 0, בכל מקרה אחר מכיל %תסעשפא אינטגרל תיובי, שבאמצעותו אפשר לפנות לגופן. הפניה מתבצעת כן: | | ּ ;(1 ,מ1ס12מסם ,מסעטסא ב 2 15י 4‏ ועיך- = מרגע זה, ישתמשו כל הוראות %א616ו0 ו- צא%א66טוס בגופן החדש, פרטים נוספים אודות התקנת גופני תווים נמצאים בספרות העזר של טורבו פסקל. [ 1 1 התקנת מנהל חדש / כאשר תפתת את אריזת הכרטיס הגרפי החדש שרכשת, תמצא בו בוודאי את הפריטים הבאים: | | . - הכרטיס עצמו. חוברת הוראות. | 3 תקליטון המכיל את קובץ המנהל - 61, | ל יתכן גם שהתקליטון יכלול קובץ המכיל את פונקציית .הבדיקה של טורבו פסקל, הפונקציה מחזירה "אמת" כאשר הכרטיס מותקן, ו-"לא אמת" כאשר הכרטיס אינו מותקן. | קובץ הבדיקה מאפשר לך לקרוא ל: 660% ב סט 1עם8 ;(" ,02818066 ,עסטנ1נכםתק8ע60 )םס8ע160תד --ּ'".. | פרק 11: תצוגה גרפית ‏ 411 ולבטוח ש-ת160280ת1 יזהה את הכרטיס ויתקין כראוי את המנהל המתאים, כדי להוסיף מנהל התקנים חדש לטבלת מנהלי ההתקנים (861), יש להשתמש ב: 7 : 6ת8א110עת0ט1תכ )62ע1ע5%81105620ת1 תסנ6סתגות 107627 : ( ע66>ת1סק : ע66600%2%6סס6גות ל-18%81105862071761 יש שני פרמטרים, 116שסתהּאמ6טנמפ הוא שם הקוב המכי*ל את מנהל ההתקנים החדש, 2ע600660%2%גו הוא מצביע לפונקציה סנ6סס6סבּסס6גוּהּ. אם הפונקציה אינה קיימת, ערכו של 6660%262סס6ט2 הוא 11א. בהנתה שהגדרת משתנה מטיפוס 12660065 בשם עש6טנעפשסא, הפעל את הפקודה: ;( 1גא 116,2010נתטעפ' )תסט1עסמספ808110ת1 = : עסטנעפשפא ;( 060066060%ו6 %'116,201תטמכ' )עסט1מכעפט5%8110ת1 =: עסטנמפשסא מיד אתר כך יש לקרוא ל-111%ו801269ע6 כדי לוודא שלא היתה תקלה בהתקנה; כאשר הטבלה הפנימית מלאה, מוצב ב-תס6ט:1פשאסא הערך 0. בכל מקרה אחר, ניתן לפנות באמצעותו למנהל החדש, בהיעדר פונקציית הבדיקה - ניתן להפעיל את הגרפיקה על ידי ;עסטנעכקטסא =: עסטנמסםתק0:8 ( !!אסססְתהּת 6ת6 680 ) 7 =: 8006ת02870 ;(" ,02821%066 ,עפטנ1נכם8ע0 )בת60280נמד1 כאשר הפונקציה קיימת, ניתן להפעיל את הגרפיקה בדרך המטורתית: 27 =: מסטנמסתק8ץ02 ;(" ,6287110866 ,מסט1:סתק028 )םק166:8תד 4 פרטים נוספים אודות התקנת מנהלי התקנים נמצאים בספרות העזר של טורבו פסקל. הערה: פונקציית הבדיקה יש מקרים שבהם אי אפשר להשתמש בפונקציית הבדיקה. זכור, עבור הפרוצדורה 2666060187 - המתאם הגרפי 8514 158 זהה לכרטיס .0 2 חלק ב" התכנות 4 | | נושאים מתקדמים: ניהול הערימה יחידת 6287 כוללת שתי שגרות לניהול הערימה, הפרוצדורה 06 מקצה לגרפיקה זיכרון בערימה והפרוצדורה 028022166%68 משתרהת את השטתים לאחר . היציאה מהגרפיקה, התוכניות אינן יכולות לפנות ישירות לפרוצדורות הללו. בטורבו פסקל קיימים שני משתנים מוגדרים מראש להצבעה על פרוצדורות. 1 המשתנה :6280206%6%602%6 מצביע על הפרוצדורה 6:80206%%68, תוכל להשתמש במשתנה זה כדי להצביע על פרוצדורה אחרת להקצאת זיכרון. 2. המשתנה :60280222600626 מצביע על הפרוצדורה 66%0ע2עת623, תוכל להשתמש במשתנה זה כדי להצביע על פרוצדורה אחרת לשחרור שטתי ציכרון. פרטים נוספים אודות שימוש ב- ע2%ת02800660 וב- 62 ת6010:נעת68 ופיתות שגרות לניהול הערימה נמצאים בספרות העזר של טורבו פסקֶל, ברוב המקרים די בברירות המתדל של טורבו פסקל. סיכוס | | בפרק זה למדת להשתמש בפרוצדורות ובפונקציות הגרפיות של טורבו פסקל. הכרת את עקרונות הפעולה של המתאמים הגרפיים הנפוצים, למדת כיצד משתמשים במנהלי התקנים (קבצי 61ם,) ובגופנים (קבצי אאס.) בתוכניות. | ראית כי טורבו פסקל בוחר אוטומטית את התצורה הגרפית האופטימלית, בהתאם לציוד במתשב שלך, למדת להפעיל ולסיים תהליכי עבודה בגרפיקה, לעבור מתצורת טקסט לתצורה גרפית ולהפך, ולטפל בשגיאות הנובעות מפעולות גרפיות. הכרת את החלון הגרפי, הנקרא אשנב (%:סקפ1ט) ולמדת ליצור, לשמור, 7 ולבטל אשנבים. הכרת את אופן השימוש בטבלאות צבעים בטורבו פסקל ולמדת לבתור ולהחליף צבעים. למדת לפנות לנקודה בודדת (61א1ס), לשרטט קווים בתצוהות ובעוביים שונים, ולשרטט מצולעים, קשתות ואליפסות בצורת קווי מיתאר או עם מילוי. למדת לשלב טקסט בתצוגה הגרפית, וראית כיצד ניתן לפקת על גודל הטקסט, על יישור הטקסט ועל כיוונו. / למדת לשלב קבצי 61ם, ו-5א6, בתוכניות, וראית כיצד ניתן להוסיף מנהלים וגופנים חדשים. פרק 12: פניה ל"פסס" 413 ד 2 פניה ל-08 בספרות העזר של המקרו- מחשבים נתקלים לעיתים קרובות במשפט: "התוכניות פועלות תחת פיקוחה של מערכת 5ס0פ", למעשה, משפט זה אינו מדויק לגמרלי. המעבדים ממשפתת ה-8086 יכולים לבצע בכל רגע משימה אחת בלבד, כאשר תוכנית מתבצעת, היא מורה ל-020 מה לבצע, ומערכת ההפעלה נחה לה בשקט בתלק אחר של הזיכרון, למרות זאת קיימים קשרים, או קשרים פוטנציאליים, בין התוכנית ומערכת: ההפעלה. ‏ " הקשרים בין. התוכנית ובין ₪05 מתמקדים בשלושה שטתים, ראשית, כל השירותים והפונקציות של 05 ממשיכים לעמוד לרשות התוכנית המתבצעת; שנית, כאשר מערכת 005 מפעילה תוכנית, היא שומרת מידע תיוני בשטח מיוחד, שאליו ניתן לפנות, שטת זה נקרא "קידומת הקטע של התוכנית" או פע (%ת594006 תהעפס:ע אנפסמת); שלישית,. כאשר התוכנית מסתיימת, היא מפעילה רצף של הוראות 05 שעליהן יש לתוכנית השפעה. פרק זה מתאר פרוצדורות ופונקציות של טורבו פסקל, המאפשרות התקשרות לפעולות 5 השעה והתאריך של המערכת באמצעות הפרוצדורות 666116 |-66628%66 ניתן לפנות לשעה ולתאריך. של המערכת, הפרוצדורות הנגדיות - 566116 ו-86628%6 - מאפשרות לשנות את השעה | והתאריך של המערכת לערכים תקפים, פרוצדורות אלה ניגשות ‏ לשעון ולתאריכון של תוכנת 05 בלבד, אם בתומרת המערכת שלך מותקן שעון פנימי, תוכל לשנותו רק על ידי השגרות שמספק היצרן. תצורת הפרוצדורות של השעה והתאריך היא: 4 חלק ב" התכנות ;( 0%0606%צ3כ ,צָכ ,ת6תסא ,הפצ )06%28%66 ;( 566100 ,56006 ,66גות1א ,עגוסע )6ת06%1 ?( צָ03 ,םףתסא ,הפצ )5652866 ;( 566100 ,56606 ,66גות1א ,עגוסם )566116 עהּסצ - היא שנה כלשהי, בין 1980 ל-2099; צטסצ מבוטאת במונחים של 24 שעות (כלומר ערך שבין 0 ו-23); 66גום1 ו-6ב56002 הן בתחום שבין 0 ו-59, 566100 מבטא מאיות של שניה, וערכן בין 0 ל-99. ערך זה אינו מדויק לתלוטין, ולכן אין להשתמש בו בתישובים שבהם יש לו משמעות חשובה, 566%סעכ הוא ערך שבין 0 ו-6 (0 הוא יום ראשון ו-6 - שבת). שליפת התאריך והשעה תוכנית 181יתכ (תדפיס 12,1) מדגימה את השימוש ב-66628%66 וב-6661/166 ליצירת מחרוזות היכולות להוות חלק מהתצוגה שעל המסך או מדו"ת מודפס. תדפיס 12.1 | ; 28661 ותפינססיוס ; 209 65פט : שפתסס = [ 4 ]שתנעסב +ס [ 0..6 ] עבעעה : פסתבאעָהת 888 (' געת' ,' גגל1' (' %06' ,' שגת" ,' תסח' ,' תטפ' ) = [ 4 ]שתנעסם +ס [ 1..128 ] שפעע8 : פסתהאתסא , עמר* 0 "זב 0 מס /- תפדי ( ;( ' 7260 ,' טסא" ,' 700% ,7 560" ,7 שאי ,7 בטנ' 6 ;| 2 ]שת1עלפ = 2שת1ת59 ;| 4 ]שת1ע8% = 4שתנעספ ;|[ 8 ]שתנע%ם = 8שת1ע5% ;| 16 |שת1עסב = 16שת5021 יפש [ 2099. .1980 | 9 ( 1..18 | , תסו [ 1..81 | י , עה [ (/08עט980) 6 .. (עָבּסתטפ) 0 ] 160% עה [ 0..26 + יי [ 0..59 + , ססגות 111 [ 6..59 1 500036 [ 0..99 + 0 ;סעסש 1 [ ע68ץ 28 תסות אססזוסעַגכ ]- ;16קַת1ע05 : שתגי 809% [ 6ת0ס56 : פסגות1!: ינגוסזן + , 1652181 [ 40/00 6סגות גא: עגוסת ] 0קת1על9 : | ק<קת1עלפסת1 תדפיס 12.1 ממשיך בדף הבא | פרק 12: פניה ל"פסם" 11% המשך תדפיט 12.1 (0שתגע8% : ( 6עסא : ת28%01 )2קת1ע25% תסנ%סתעת תפס ;( 10 ₪00 ת29%61 + 48 )עמס + ( 10 ט61 28461 + 48 )קמס =: קשתנע%פת : ; תס .8% : ( 6עסא : ת0821ל )4שת1ע25% תס%1סוגת התנשס ; ( 100 ₪06 ת681צ )2פַת1ע%פת + ( 100 ט61 ת6801? )2שתג50ע =: 4שתגעפפע = תנשסס ; ( א0סו01ע23 , עָ28 , פתסו , הפע )000866 + [ 01060%ע28 ]פסתבּאעָבת =: שַתנעפסַבהת + [ ב6תסו ] פסתהאתסון + 7 + ( את )ק<שתנע%פס ּ ; ( 080? )4קתנ1עספת ; ( ₪שת1ע28409% )ת1%61עש ; ( 960100 ,0ת5000 , 6סגות1] , עגוס ) 0138 . + 7:8 + ( עטסה )2שתנעלצפתע =: 1שת1ת65%תגך + 1 + ( ש6סגותג]) )עשתנע6פת | ; ( 56006 )2שתגעלפ > ;( 1שת1ע11009% )ת681גיש + 7:1 + ( 12 ₪06 עגוסו )תגספ =: קפתנגע%פסחנך + 77 + ( 6סגותם) )קשתנע%פע ('' + ( ( 12 טג6 עטסם )*15 + ( 727% )026 )תמס ( ;‏ 1100512 )ת01> :יש בס הפלט של התוכנית הוא תצוגה של התאריך בתצורה אחת, ושל השעה בשתי תצורות: 8 ,01 שגם מסא 2209 אפ 10:17 שינוי התאריך. כאשר משתמשים ב-56%60866 יחד עם 06628%6, ניתן להטיל על 205 לחשב את היום בשבוע שבו יחול תאריך מסוים. תוכנית 2איתכ (תדפיס 12.2) מנצלת זאת ליצירת לוח של חודש מסוים בשנה מסוימת. 6 תלק ב" התכנות | | תדפיט 12.2 ; 28008 תפיוססינן ,209 058פגו י:/ [ 2099. .1980 ) 88 | , 'נ01668 [1..12 + , תסו , תס 01 | , אָפע , 01308 [ (עַָעגז598) 6 .. (קָפ6תטפ) 0 ] ;ססהִסקָגת , א01603701668 עס 1 ;6עס : %ווס יע (06עם : 1 תנקסס % ;( 7 :הפע (בתסת עסס' )06גיט ; ( 682 ,(בףתס )ת68081 ;([ 1..12 ] תג מףתסא) תה (2100> 682צ) סת8 (682<1979צ) 11ס6ותו =: עָפכע ; ( 0161668ע08 016 , 01308 , בת0ו0160 , 0169082 )050866 ; ( ע28 ,מסתס)] , 8ס? )80%28%6 ; ( 01/00%8ק23 , עַ28 , מסתס ,982ע )00%28%6 ; ( ע01608 , ב2ףת016%0 , 0169082 )56%0808 [ ?ב%תסת 6+ ת:3 סה 0378 עתפת שסו ] + בףתסו] 08386 .1 =: פתססְעַת : 18 ,10 ,8 ,7 ,5 ,8 ,1 =: פתססעָפת : 11 ,9 ,6 ,4 =: 28/0006 6186 29 =: לתטססעַ088 תפמל 0 = 4 ₪08 שהסץ 12 : 2 ; תס ; הז461 נינחש ;( '58% געת גגל 066 פגת' תס( תטפ ' )ת1001ישט ת1שסט 80 2301008 + שתטססְקָת סס 1 =: 1 ע0ס1 ת[%6ניש תפמ%+ 1 = 7 ₪06 ג 14 ; ( 01608(:4ע08 - 1) )2106 6186 ( * ' )₪21%6 תסמ אס/1סְעָגק >=‏ 1 14 ; תס ; ת161יט . תס הפעל את התוכנית לגבי התחודשים פברואר וינואר בשנת 2000, הפלט שייווצר הוא: 8 < :שב6ע , מלתסות מססתת % ג" גוג 06 6גו1' תסו תוס 1 2006 40056 7-8 9 18 11 18 58 14 15 16 17 18 19 21 2828 24 25 26 (7 28 9 0 1 הפע , מסתסוח לספתת % נסתת גג ₪66 ס6גת' תסא תגוס 1 20 4005 0600078 9 106 11 12 15 14 5 16 17 18 19 20 21 25 24 25 26 27 28 (9 "0 1 פרק 12: פניה ל"5סם" 417 . התוכנית מחשבת את מידת ההזזה הדרושה לפני התחלת הכתיבה, שים לב לעובדה שהתוכנית משחזרת את התאריך המקורי לפני הסיום, כאשר מפעילים את 56628%6 עם פרמטרים שגויים - אין מתבצעת כל פעולה. מדידת משך ביצוע של פעולות בתוכנית באמצעות 566216 ניתן למדוד את משך הביצוע של פעולות בתוכנית, תוכנית 3 (תדפיס 12.3) משווה בין משך הביצוע של חצי מיליון הוראות 6068%: ובין מספר זהה של לולאות 05+. התוכנית מאפסת את שעון המערכת באמצעות 5616 בתתילת כל תהליך, וקוראת בסופו את הזמן שתלף באמצעות 06%186. תדפיס 12.3 ; 08006 ותפידססינכן ; 208 805 ינפש [ 0.05 | , גוס ] 0..59 [‏ ,6סגת1) | [ 0..59 ) ,6ת5900 [ 0..99] | 560100 סתסש 1 ; %ת1שתס1 : 1008 . ( שת1ע8% : 1]088820 )ע2010 55870 סינגו66ססצ תנפשסס ; ת1%61יא ; ( 11088806 )ת1061י ( 0 ,0 ,0 ,0 )5001176 - ; -011461'111רצ1 סינגוספססינסן / תנשסס ; ( 500100 ,560000 , 6סגות1] , גוס ) 116 ;( ':6182800 1186" )ת1%01יש ;( 'פעגוסת '‏ ,5:עטסת )ת1%61עש ; ( יפס6טת1ת 7 ,6:5סגות11 )ת1%61עש ; ( '05ת8600 ' ,6:5ת5600 )ת1%01יש ; ת061 נינש ; תס : תנפסס ; ( 1000 "60086" 6ב" ) סת 561 , 0 =: 1 1% + 1 =: 1 ,500000 = 1 11סתט. ; ינסת 11 סב רוי | ;( 'קסס1 "עס2" 16" ) ותב ;00 ת1שסט 60 500000 50 1 =: 1 ע0ס+ ; 10 בר - 8 תלק ב" התכנות התוצאה מגלה שלולאות עס מהירות יותר מהוראות 6068%ע. | קסס1 "668%" 6חי :9 תג פצגוסם 2 ותה 0 ' 8600005 18 ססס1 2027" פמ 16 פצגוסם 2 פסטותנגוח ₪ 05 14 כאשר משתמשים בשיטה זו, יש לשתזר את השעה המקורית בסיום התהליך, שיטת חישוב טובה יותר מתוארת בתוכנית 184יתכ (תדפיס 12.4), המשווה בין הפרמטרים של שתי הוראות 057106. תדפיס 12.4 ; 28464 תפיוססינכן ;205 פספט יצפט 9 , ינגס 01 , ינגוס11 2 ,ס6סגות01001 , 56גות 11 ) ,0ת0185600 | , 56008 0 016500105 , 860100 , 283506פינגוסות 083800 65גות נז ;| עסקססת1 : 0-8 6ת1קתס1 : 1 ;( שַת1ע5% : 055826 )11011062 5582 6עגו6סססי תנקסס ; ת1061ינש ; ( 1]0898₪6 )ת1491ינט ( ;‏ 018560100 ,018560008 ,66ג(ת01001 , נטס01 )16 - 4 ; הנסו1 10111161 6ינגת006ס-נכן תנשסס ; ( 560100 ,6ת5600 , 6סגות1]1 , יגוס ) 010 ; עגו016110 - עגוסו] =: גוס ; 56גוו01060111 - 6סגות1]] =: 605082808גותנגזן ;01096000 - 6ת(5600 =: 5600(097082800 תס עגו0100 > תגוסם 12 ,4 + 52083800עגו110 =: 00פבהקפגוסת הנס תסת% 06גות01011 > 6סגות1] +1 ;60 + 508282800ג(ת1/1 =: 05085506>גותגזן ,1 - 1105082806 =1 | ; תס תדפיט 12.4 ממשיך בדף הבא | | פרק 2: פניה ל"05ס" 419 המשך תדפיס 12.4 ת1שסס תסת% 0109000306 > 06ת5600 +1 ,0 + 5600(65088800 =: 082843806ת5600 ;1 - 1508083860ו1]17 =: 605085860גות חן ₪ ;( ':6180906 1126" )ת1%61ש , 100150823800:5 )ת1661יש , 008088800:5גות1[ )ת1+61יש 500005085800:5 )ת401 יש ; ת061 ינש ו תנשסס 58016) "16 00080 1000" ( ; 0 1 := 0( : 6% 2 + 1 =: 1 ,500000 = 1 1נ1סתט 1 תמ > ; ( קסס1 "20" 16" )58610 .60 ת81סס 00 500000 00 1 =: 1 00+ ו . 0 77 שככםכםקש ת<-< - ייוו ; ( | פעגוסן ; ( י 68סגותגת (‏ פשת8600 , , , , הפלט המתקבל זהה לפלט של התוכנית הקודמת, אולם הפעם שעון המערכת אינו | משתבש. ניתן להוכית באמצעות תוכנית זו שיש להעדיף את השימוש בפונקציה +מסוס:סם1. שנה בתוכנית את השורה המתייחסת ללולאת 68%ק6ש מ: ותיווכת שחל שיפור משמעותי בזמני הביצוע. יצירת צלילים כל תוכניתן בעל ניסיון של שתי דקות מכיר את הצפצוף שמפיק ה-6, ביישומים רבים נהוג להשתמש בצליל זה כחלק מהודעת שגיאה. [ 0 חלק ב" התכנות ל ו 1 יצירת הקולות הינה מוגבלת לצפצוף. האפשרות ליצירת צלילים שונים מהווה חלק ממערכת הכלים העומדת לרשות מפתת היישומים, ניתן ו בחומרה המפיקה את הצפצוף גם להשמעת צלילים אחרים,. | הצפצוף אינו אלא תו 5011 מספר 7, כדי ליצור אותו יש לרשום: / 501 העסנ ת1סס [ ;( 47 )ם1661מעש מס :((7 )גוס )61 נמשט תס שימוש נבון בצפצופים מהווה דרך טובה למשיכת תשומת ליבו של המשתמש. הפרוצדורה 6תטספ5 של טורבו פסקל גורמת לת צליל -- עד להפעלת הפרוצדורה 6מטוספסא, הפעלת 6מט0ספ נעשית עם פרמטר אחד בגודל מלה, המביל את התדר בהרץ (מחזורים בשניה). כאשר הפרוצדורה 6מגוספסא מופיעה מיד אחרי 6מגוס5, הרמקול לא יספיק להגיב ולהשמיע קול, בדרך כלל משתמשים בפרוצדורה צ613כ כדי לבצע השהיה שתאפשר לרמקול להגיב,. ל-צ618ע פרמטר אתד בגודל מלה, המגדיר את משך ההשהיה במילישניות (אלפיות השניה). בחירת צירופים נכונים של תדרים והשהיות יכולה לגרום להשמעת מנגינות ערבות לאוזן. בתוכנית 62ם500 (תדפיס 12.5), הקלידים 7-1 מפיקים את שבעת הצלילים הבסיסיים של האורגן התשמלי, התוכנית מסתיימת כאשר לוחצים על קליד אחר. תדפיס 12.5 | ; טס תהססיז ;02% 08גו 0% 000 :008 סתסש : 6ססא תדפיס 12.5 ממשיך בדף הבא | -/ - פרק 12: פניה ל"פספ" ‏ 421 השס ;79196 =: 021208006 1% ; ע040סת =: עס +ס עס 08986 | . : 0%6 :717 00 ססס : 2% : 006 : 76% : 6ססא : '4? : פססא : 757 : 6ססא : 767 %- : שססא : *77 ; סגרנן > =: %- 0 1 -- תסמל 01120816 6סת 12 | [ 6ססת 080 1318/85 ) ; ( 67:2א )156יט | ; ( 056 )503 - [ 800006 0.1 = 05ת11115600ה 100 ] ; ( 100 )ע613 ; וסט סו 7 - ; 6גרל1 = 021008206 611תגו ; הז61, 1ינאי - המשך תדפיס 12.5 ור | ו ככ רכ כ -. טבלת הסביבה של ₪08 הסביבה ‏ (6משותתסתנטם62) היא אוסף של מתרוזות שהתוכניות *כולות להתייחס : אליהן, כל מחרוזת נוצרת על ידי הוראת עשפ של 05 ומאוחסנת במערכת ההפעלה. רוב משתני הסביבה נקבעים בעת התיחול, ומהווים חלק מקובף זיג 6פאאפסיטת. | תצורתה של כל מחרוות היא: /- בס 58018 הסהמסננשהע = 7..."-.-. משתני הסביבה השכיחים ביותר הם ₪6פפו00, הקובע בדרך כלל את מקומה המדויק של תוכנית. 00% סאתאא00 ו-אי'תע המגדיר את נתיבי התיפוש בספריות, כאשר הקובץ המבוקש לא הוגדר בצורה מלאה, מחרוזות הסביבה נשמרות בשטת מיוחד בזיכרון, שטח' זה נקרא טבלת הסביבה (5810 + מסתמסיצנטמ0) וגודלו יכול להגיע ל -328. | השימוש בטבלת הסביבה | בדי לעיין בתוכנה של טבלת הטביבה, הפעל את פקודת מפ של 5% ללא פרמטרים: ן 2 חלק ב" התכנות -' | | | | 2% | 0% תס :כו =01500) פיז ;800ש :0; 0 :205;0 :0=צידתע יש משתנים בעלי תפקיד מוגדר (כמו 008280 ו-אזגפ), אולם ניתן גם להשתמש בשם משתנה כלשהו, למשל, ניתן להגדיר משתנה בשם אסם8- 6 "307 זנק - 1+6נסטה3+ 62506 נציג שנית את טבלת הסביבה, כדי לבדוק אם ההגדרה החדשה נקלטה: 5% 0% 00 : = קיז :0;ספתטי :0; 0 :05;6כ :)=ציד תק "367 נגנבק עא"=510₪ אדדתסטתץ כדי לבטל משתנה יש להציב בו "שום דבר", נעשה זאת ונבדוק את התוצאה: =א0ם5 166תַסט3+ 62506 | 2% א :0 פיז :30;0תטי :; תס :05;0כ :=זוידתע כמה פונקציות של 5058 מצפות למשתנים מסוימים ומניחות שיש להם משמעות,. מסוימת, אולם דבר זה אינו מונע ממך להשתמש בשמות משתנים, המתאימים לצרכיץך, כדי להתייחס לנתון כלשהו. לדוגמא: נניח שאתה עובד במשרד שבו כמה מספר מחשבי 6ת וכל מחשב משרת מחלקה ‏ אחרת. בכל 26 קיים קובץ תת שמאמסדטת | | מבנה זהה, הכולל את מספר המתשב ואת שם המחלקה, למשל: | 4 טס 506 - ס6מַהּתנץע=66' הסביבה של מחשב זה תהיה: | | | 2% 0% 00 י = פע 0000 :סא :20870 וי :0 4 0 ססתהּת נ= ייסמת פרק 12: פניה ל"05ם". 453 תוכניות שיפנו למידע זה יוכלו לשלב את הנתונים הללו ביישום, מבלי שיהיה צורך לבצע בכל מחשב הידור נפרד של התוכנה. שינוי טבלת הסביבה ‏ כל שינוי בטבלת הסביבה חייב להתבצע ישירות מתוך 205 ולא מתוך. אופציית 611ם5 116/05ע של הסביבה המוכללת של טורבו פסקל. פניה למחרוזות הסביבה - %מגוססְטמ8 מחזיר את מספר המחרוזות שבטבלת הסביבה של 08פ. הפונקציה ע6פטמ מחזירה את כל המחרוות, ואילו הפונקציה שטםמ06%₪ מחזירה ערך של משתנה-סביבה מסוים, תוכנית ת1 שא (תדפיס 12,6) מציגה את תוכן טבלת הסביבה - - תדפיס 12.6 ו ותמיפסינכן ;08 868ט > הט לט 11 5 > תנשסט 60 %תטססטו] 60 1 =: 1 עס+ ;( (1)ע6פטת )ת1%61יש : : -- . תס הפלט של ת1טאע הוא, למשל: 0% פאתאאסס :0=0 פס 0 06 :05;0כ :6=צידתק 1-004 26 ססתהּת נת=ייסמק כדי לבדוק את תוכן המשתנה 15 56 ללא פונקציה מתאימה, היה עליך לקרוא את טבלת הסביבה עד שתמצא את חמשת התווים המבוקשים בתחילת המתרוות; ולשלוף את התווים הנותרים, החל מהתו השביעי, הפונקציה | מבצעת זאת עבורך. תוכנית פוטאע (תדפיס 7) מזגימה את השימוש בפונקציה שמ6068, 4 תלק ב" התכנות | - | | תדפיט 12.7 18 התפידססיוקן 205 098פגו יְ תזנשס ;( ( '00.16' )טת00%0 )ת1%61ישט | . 0 הפלט של תוכנית 718א₪ הוא תצוגה של שורה אתת בלבז: . 04 1 [ ן ניתן להשתמש בפרוצדורה 781 כדי להפוך את המתרוזת לתצורה נומרית, שים לב: הפונקציה צטמ06%8 אינה מבתינה בין אותיות גדולות וקטנות. מבתינתה 18 סס זהה ל-סד 6ע. קידומת הקטע של התוכנית לפני שמערכת 205 טוענת קוב ₪אפ, האמור להתבצע, היא יוצרת וטוענת שטח בן 6 בתים הנקרא קידומת הקטע של התוכנית או עפע (א1/סינע +מסו599 ותהנטסיזנע). מערכת 2058 שומרת ב-עפקע את המידע שיאפשר להחזיר אליה את הפיקות כאשר התוכנית מסתיימת. טבלה 12.1 מכילה את רשימת השדות השימושיים ביותר של ה-ע5ע, השטחים השמורים מכילים מידע המשרת את מערכת ההפעלה בלבד, התוכניות יכולות לפנות לשטח ה-52ע אולם אין לשנות את הערכים שבשדות. מיד נתאר את [ דרך הגישה לשדות שְב-עפע ואת אופן השימוש בהם. ן טבלה 12.1 תוכן קידומת הקטע של התוכנית (55ק) / . היסט תוכן אורך עשרוני - הקס. שמור 2 0 %00 "ראש" הזיכרון (הפיסקה 2 2 3 %02 האחרונה שהוקצתה לתוכנית) שמור 6 4 = %04 היסט, התוכן הקודם של 2 10 = ה%0 מנהל הסיום | המשך הטבלה בדף הבא | פרק 12: פניה ל"05ם" ‏ 425 המשך טבלה 12.1 תוכן קידומת הקטע של התוכנית (055) היסט תוכן אורך עשרוני הקס. קטע, וקטור פסק (פסק )%22‏ 2 12 00 היסט, התוכן הקודם של 2 140 5ו1; %הּסעם-1ע06/ 6%21-06 קטע, וקטור פסק 2 16 150 (פסק %23) היסט, הערך הקודם של 2 18 12 מנהל השגיאות החמורות קטע, וקטור פסק 2 20 14 (פסק %24) שמור 22 2 6 כתובת הקטע של 2 4 . 26 טבלת הסביבה שמור 12 46 2 אזור אחסון לשורת ההוראות 8 8 00 ולשטת ההעברה של הדיסק (מזס) פניה לקידומת הקטע של התוכנית ניתן לפנות לשדות שבקידומת הקטע של התוכנית (פ5ע) באמצעות מצביעים, כתובת הקטע של ה-52ע מתקבלת בעזרת המשתנה המוגדר מראש - 560א6+1מספ, תוכנית 1עפע (תדפיס 12.8) מתארת את תהליך השליפה של שדה "ראש" הזיכרון. 6 חלק ב" התכנות | תדפיט 12.8 1 תפיטסיס עפש עס |: עינסתסוות 0קסיך וס תוס 1 , פע %ת1קתס1 : פססעבא , תנשסס [ סצת1 עזסחסת 01 ק%0 1000988 | ;(/ 2 ,50₪א21סית )עס = עינסמס סקס [ 0ע20 85 %8ע8%8 06ת62000ת ] - ;1 + "ץע-סת10000 =: ענ סתס0סס קת 1 1 במספידקאינהקן תג 18 8126 ] ; 00 00קתסי1 * 16 =: פססעם .4 ט01 508ש2 =: 405עםא ;( ':8שס1011 88 15 קנסמסת מ8%6ע75 )ת%81ניט ; ( | פמספידקנאק * ,10: עזסמ0קס1קתס.1 )501 :ינ (( '68סעס "7 ,%98:10ע2 )ת1%91עש (( '908עס א' ,605:9ע0א )ת1061יט . ו שדה ראש הזיכרון שב-82ע מכיל את מספר הפיסקה הגבוהה ביותר שבה משתמשת התוכנית, ברירת המחדל של טורבו פסקל מקצה לתוכנית את כל יתרת הזיכרון, ולכן הפיסקה הגבוהה ביותר היא גם הפיסקה הגבוהה ביותר של המתשב. הפלט של תוכנית 2521 הוא: :פטס[01+ 85 15 צעסתסת תסספעָפ 83 (40960 958 655360 5 640% שים לבי התוכנית יצרה את התוצאה באמצעות תתבולה, אילו התוכנית היתה מצמצמת את שטת הציכרון שבשימוש באמצעות הוראת המהדר [8%), היה מתקבל מספר נמוך יותר. בכל אופן, ה-פפע מכיל את המקום הגבוה ביותר בזיכרון שבו משתמשת התוכנית. | פרק 12: פניה. ל"05ם" = 427 וקטורים של פסק החל בהיסט %0 (10 עשרנננ), נמצאות שלוש כתובות הנקראות. וקטורים שפ. פסק (פעס>ספט %קגוע60ת1). הכתובת הראשונה, מנהל הסיום, מכילה את המקום שאליו יש לתזור כאשר התוכנית הנוכתית מסתיימת. בדרך כלל זוהי: הכתובת של תתילת. הוראות 0% | שבאַמצעותן מוחזר 0 על ה-56 לידי 58 הכתובת השניה מצביעה על מקומן של ההוראות המתבצעות. באמצעות כתובות אלה "יודע" ה-00 מה לעשות אחרי לתיצה על 0621-0 או 0621-8:68%, = הכתובת השלישית, מנהל השגיאות החמורות, היא המקום שבו נמצאות ההוראות שיתבצעו על ידי ה-020ס במקרה. של שגיאת הרצה שאינה ניתנת לתיקון. , בשמירת כתובות אלה יוצרת מערכת ההפעלה "רשת ביטתון" המאפשרת ל-20ס להעביר: את הפיקות ל-205 במקרה של תקלה בתוכנית. הכתובות מכילות את העַרכים המקוריים, התוכנית יכולה להגדיר שגרות משלה לטיפול במצבים תריגים ולהציב את כתובותיהן בווקטורים של פסק, אולם במקרה זה יתכן שלא יהיר בידי 005 הנתונים שיאפשרו שחזור במקרה של תקלה, השטת שבו רשומות הכתובות הוא אם כן "טיוטה", שבה נשמרים הערכים הנחוצים ל-08פ. הכתובת של טבלת הסביבה ה-259 מכיל את כתובת הקטע של טבלת הסביבה, הטבלה מורכבת ממחרוזות 112ספת . ומסתיימת בתו ריק (כלומר בית שערכו ו אפס), מחרנזת. מדצספת היא רצף של תווים המסתיים בתו ריק. ‏ | תוכנית 4 (תדפיס 9) מציגה את תוכן :טבלת הסביבה: | תדפיס 12.9 = : ; 01ר תמי סיכ 3 ו" 1 1 סט ;| 80 ]שת1עלפ :| שתנע%פטתת | תדפיס 12.9:ממשיך בדף הבא " ן [ 8 תלק ב" התכנות | | המשך תדפיס 12.9 תנקסס ] קפ סינ 8000605 6 ;[ 820 : 50₪א641ע ]מס =:] ה [‏ 0 8% פת1שסס 021868 סג ] ו = ] 6 6ע%1ת6 66 עסק ) - : .= 4 [. עע%תס 6תסעעגוס 6מף 6פגו ] 1% | + 15 ;| [ 1 : %תסתשספטות ]תסא )עבש =: [ [ ]קתועלצפטתת )1 1-7 =: 1 ( ע092980%0 11גות 10% 708% | ;( 0 )עתס = [ 1[ |קתנעלפטום 611תט ( | שת1ע5% מסע+ 11טת ססמס ] ;/( 1 - [ )ץמס =: [ 0 ]שתגעספטחת 1 שתגע%פ טהםת סבף 166עח | ; ( שת1עלפטתא )ת[1%6י [ 8ת0ס+ 118גות סאף +1 קסספ ] ;7 = [ 1 : %תסתשספטום ]ת( 11סתט נת1061עש ; ( 'סת' )ת1%01יש ו 4 הפלט של תוכנית 1עא8 הוא: - . | 0% פאת א :20=0 9 60 פן :806;0ת10 :6;פפס :05;0 :ס=אדגק | 4 6 * 6סְתִהּת1ע=דפטם במ הפונקציות תגוס טיתט, ע>פטימש (- עם66%₪ שהכרת בתתילת הפרק מפשטות את השימוש במחרוזות של טבלת הסביבה. פניה לשורת ההוראות | מחרוזת המכילה עותק של שורת ההוראות נשמרת ב-52ע החל בהיסט %80, תצורת המחרוזת זהה לתצורתה של מתרוזת רגילה של טורבו פסקל. בית 0 מכיל אורך דינמי ובית %81 מכיל את התו הראשון. כדי לפנות לשורת ההוראות מתוך תוכנית, יש להגדיר משתנה מטיפוס מצביע: | ס6סץ ;[ 127 ]0ת1ע56 = צְהץתתסת6 | הט 4. 61" : 6ם6611 | פרק 12: פניה ל"פסס" 429 ולהציב במצביע את כתובת שורת ההוראות שב-פפק: ;( 580 ,500א2-621 )262 =: 6ת1זת6 לאחר מכן ניתן לפנות לתוכן שורת ההוראות באמצעות המשתנה "6מ081,1, תוכנית 2 (תדפיס 12,13) מדגימה את הטכניקה, שים לבי חלק זה של ה-52 מהווה אזור אתחסון לקלט ולפלט, ולכן התוכנית חייבת לפנות לשדה שורת ההוראות לפני ביצוע פעולות קלט/ פלט לדיסק. סיוס התוכנית למרות כל ההטפות בזכות התכנות המבני (00866 0%02606ת55), יתכנו מצבים שבהם התוכניתן יבקש לסיים את התוכנית באופן מיידי, תוכנית מבנית, האמוּרה לפתות בהצלחה ארבעה קבצים לפני תחילת העיבוד הממשי, עשויה להיראות כך: ו11שסס ; 1168 /תססס, הסט תסת+ 6ת160סת1 גוס 9500000 -- א +1 11068 תנשסס תפמל 606 10 וסט 87/1 130 11 ; 061160 תושסס. תס 003% 1סת1 לגס 45000601 0 12 ; 1160'ת0ס הגפסט תפם+ %ת010ת1גוסם+ 5000601 ם 12 ּ ה ידסיז 6ב תג 8,031 410 0ג) ; תס ; תס ; 0 ; תס ית | כלומר, יש צורך בכתיבת הוראות רבות עד שמגיעים להוראת 6186 הנכספת. הפרוצדורה % מאפשרת לסיים בביטתון את התוכנית מכל מקום שהוא. 130 התכנות חלק ב': סיום באמצעות 8816 0 | | הפרוצדורה 81% מאפשרת לסיים את התוכנית מכל מקום, למשל, ניתן לכתוב תוכנית המסתיימת אם אחד משני הפרמטרים שלה אינו מתאים: 0886 0061 2 1 8 , 6 : 0 ' מנשסט 6 ;( '8110טת1 18 1 ת0ס1פק0" )ת1401י כ ' ;תס יו - | 02 0068 0836 :1 :2 : 5 | תנקסט 6186 ;( '110פטת1 18 2 תס%1ק0' )ת1561עש ,תת - התוצאה אינה מבנית במיוחד, אולם היא יעילה. השימוש בפרוצדורה % תוסך, ללא ספק, כתיבה וניפוי של הוראות רבות. סיוס בתוך קובץ אצווה (מ860) כאשר מסיימים תוכנית בגלל מצב שגיאה, משתדלים בדרך בלל לצאת מהתוכנית בצורה "נקיה" (לסגור קבצים, להציג הודעות וכדומה), כאשר מריצים תוכנית מתוך קובץ אצווה (תססאָ), צריך ליידע גם את קובץ האצווה. ‏ | לשם כך קיים בפרוצדורה 881% פרמטר אופציונלי בגודל מלה (למשל ;(381%)5) אשר מעבירים לתוכנית או לקובץ האצווה שהפעילו את התוכנית המופסקת. 3816 ללא פרמטר זהה ל-(181%)0. תוכנית 111 (תדפיס 12,10) מסתיימת באמצעות הפרוצדורה 6% כאשר המשתמש מנסה לחשב שורש ריבועי של מספר שלילי. | - 0 . פרק 312 פניה ל"פסס" ‏ 431. | תדפיס 12.10 דיל . ; 118141 ותהידססיסן "טי )2681 : ת(96100610 . תנקסט 6 ' ;( ' :עסכוחות 8 עספתת' )166יש > ;( ת58100%10 )ת[088ע - תסמל 6 < ת96180%10 14 ,56160101 2 2 6% גו סוי )ת601 גיט ( 1:5:( ת96160010 0 0 56| תנשסט ת6מ+ 0 > ה86100%10 11 (( !פעסכעעות 6ט61קסת 16תפת %''תהס 71 )ת1%61א עו 7 | ;1 )בו | ו ,0 = ת56190%10 11>תט / ב )יט ו 7 .60 תוכנית זו אמורה ‏ לפעול תחת פיקותו של קובץ האצווה ‏ 837611.8471: 0/7 -. 0-0 . ותהידססינכן טאו . 111/71 6 שתנ61גוססם | :גם. 7081 סמסס 1 פחס[טסצק ₪060 1 16061עסעע0 12 : 6+ ₪00 > : פוחס 1ססינכן: . עסינינס תה 1[+1ש ‏ 600ת1תדנ6 תתהישסנכן 6מ1' 900 | 1 : תוכנית לחישוב שורש ריבועי אינה *שום שנפעיל בדרך כלל מתוך קובץ אצווה, אולם זוהי דוגמא טובה לפיקות על מצב הסיום (סיום תקין או סיום בגלל. שגיאה). בדיקת. . סק בקובץ. האצווה היא "אמת". | באשר הפרמטר.: שמעבירה הפרוצדורה 8816 גדול או שווה ל-ם, , , . . השווה בין שת תוצאות ההרצה של [מסדתם: 0 + 0900 > 0 מא ו - שתנלגוס6 | :7גם. 01דת ב > 264 :עסמותות 8 עספת - 6 - 189 1 סע פינבג50 סבו 9 :עסמתטת 8 תספות 6 1 25.9 +04 6ססע 6עגגן80 שמ | 0 :שסמחטת 8 עססתם > 6ע-₪000 2 חתלק ב" התכנות | 0-01 09000 + : . תהטסינסן ות . 111/71 6 שַת1לטס6את :דגם. 101 4 : יכמות 8 סלו 6 :ג 284.0 02 % ₪026 6ב 9 : שעססמותגות 8 נססון 6 168 28.9 04 200% 5086 סמ 5-. : זסכווגות 3 זר ! פיז ממגות 6 6ת %'תהס 1 . עסעעס ת8 בתל14ש 6ס5בּת1ודנ0 ותהיוקסינכן 6ב" ההרצה הראשונה הסתיימה באופן תקין (הודעת הסיום 6עס-0006). קובץ האצווה קיבל את ערך ברירת המחדל 0; בעת ההרצה השניה הוקש ערך שלילי שהפעיל את הפרוצדורה 881%. הפרוצדורה העבירה לקובץ האצווה את קוד השגיאה - 1. על המסך הופיעו שתי הודעות שגיאה - של התוכנית ושל קובץ האצווה. העברת פרמטרים באמצעות 16ב התוכניות משתמשות לעיתים בקודי שגיאה שונים, לציון טוג השגיאה. הקודים שבמשתנה עסעעטפספ הם: עסו סא במטס זסם 116 4תטס) 0% בק 6תגת 4116טחז 0 2 5 00 | -5 6 סשת תקטסת6 זסאז 8 ]ת6ותתסתנטמ6 4116טחז 10 3116עתז 11 5 6תסגת סצ1 18 קובץ האצווה יכול לבדוק את ערכו של הקוד שגרם לשגיאה ו"להתליט" כיצד לנהוג, תוכנית ₪112 (תדפיס 12,11) מעבירה לקובצ האצווה המפקת עליה קוד שגיאה מספר 1, 2 או 3. 0 | פרק 12: פניה ל"פספ" 13 תדפיס 12.11 ; 10148 ותהיופסיוס 7" ינפש עס : (ת56160%10, תנקסט 1% ;( ' :8011084100 ת8 700086 )156 ; ( ת59160%10 )209012 ;[ 5 ,2 ,1 ] תג ת58190%10 611תט | ; ( ת56160%10 )1%גע , 6 - .וו קובץ האצווה '8117082,281 קורא את הפרמטר למשתנה 202186061ש6 של 05 ובוחר בפעולה המתאימה לקוד השגיאה שהתקבל. | 0% י 027 600 . ותפיצפסינכן א . 1101/72 6גל שת1לטס :תגם. 101 סמסס : ּ 5+ לתפת ₪0%0 5 16061עסעע0 11 תפות ₪060 2 16061עסעע0 +1 1תסת ₪050 1 01ט16עסעע0 11 / 1גותסות : 1106 ₪008 ותהיפסינכן 1גותסו 600 1+ 0לסש₪ שגותסו : 16 ₪068 תפשסיז ותו 0ב[90 | 15000ת1? ₪090 6גותזסו : 16[ ₪008 ותפידססינכן 5גותסו] 000 | = התוכנית וקובץ האצווה ממתינים. בסבלנות לתשובה הנכונה: | לק , : 0085 ּ + 09000 . ותהינפסינכן 105. 111/72 6 שת%1גוס0סאע | : דגם. שעסזת 9 :ת1108%10כק תה 00056 5 :ת1108%10כ90 8 00086 8 :(1108610כק3 ת8 6פססת0 2 :ת1108%10קק3 תה 00056 סנס ב תפּינפסינכן אגווסון 14 | חלק ב התכנות. > כפיה של שגיאת הרצה | הפרוצדורה 881% מסיימת את' התוכנית מבלי ליצור שגיאת הרצה, כדי ליצור שגיאת הרצה מכוונת, :יש להשתמש בפרוצדורה מסתתמעות, הפקודה שבאמצעותה מסיימים את התוכנית בשגיאת הרצה מספר 152 (צ686: 6סם 6טבעס) היא: ;( 152 )מסקעמתגות אם אין מצינים פרמטר, המערכת מתנהגת כאילו הקשת (0):ס::נמ תגות, הפעלת תוכנית מתוך תוכנית אחרת בעזרת קבצי אצווה ניתן לחלק יישומים גדולים ליחידות קטנות יותר, אולם ן קְ במקרים רבים עדיף להפעיל תוכנית מתוך תוכנית אתרת. | בטורבו פסקל מבצעים זאת בעזרת הפרוצדורה 66א8, תוכנית אחת (ה"אם") קוראת לתוכנית אחרת (ה"בת"), כאשר תוכנית זו מסתיימת, הפיקות חוזר אל ה"אם". פעולה זו נקראת בדרך כלל ניהול תהליכים (9םת011מ8 פפסססס). הפעלת הפרוצדורה 66א₪ לפרוצדורה 66א₪ יש שני פרמטרים: 1 ;( 0םתגע6ם : 00 ,110806 )א 6 אע הוא השם המלא של הקובץ המכיל את התוכנית שאתהּ מבקש לבצע (כולל שם ההרחבה), כאשר התוכנית אינה נמצאת בספריה התורנית, יש לציין גם את הנתיב המלא, הפרמטר נַנהדְַתְה 60 הוא מחרוזת המכילה את הפרמטרים של שורת ההוראות, הדרושים (אם בכלל) להפעלת התוכנית הנקראת, במקרה של תקלה בהפעלת הפרוצדורה, ניתן לאתר את מקורה בעזרת המשתנה עסעעספסס. באופן כאה ניתן להפעיל כל תוכנית, התוכנית תפעל בדיוק .כפי שהיתה פועלת אילו הופעלה ישירות, מערכת 08 יוצרת לתוכנית הנקראת 252 נפרד. | פרק.12: פניה | ל"פסכ" 15 יש להשתמש בהוראת הזיכרון 9% כדי לצמצם ככל האפשר את הזיכרון שצורכת התוכנית: הקוראת, אם לא תשתמש בהוראה זו, תקצה המערכת לתוכנית הקוראת את. כל הזיכרון הפנוי, ולתוכנית הנקראת לא ייוותר מקום, אי אפשר לשנות את הזיכרון שהוקצה כבר ל-6א6,ספנג> ולכן רצוי לבצע הידור לדיסק של תוכניות סשאפ, ולהפעילו מרמת המנחה של 58 כדי לבודד את התוכנית הקוראת מהתוכנית הנקראת יש לקרוא לפרוצדורה 56 לפני הפעלת הפרוצדורה 66א₪ ואחריה, הפרוצדורה פמסס6ספ0כִהּ5 שומרת ומשחזרת את טבלת הווקטורים של הפסק. טבלת הווקטורים של הפסק מתוארת בפרק 18. תוכנית ₪01א5 (תדפיס 12.12) קוראת ל-58א62,8פא₪ (תדפיס 12,13) הנמצאת באותה ספריה, 30502 מציגה את הפרמטרים של שורת ההוראות, שהם, במקרה.זה, שמות קבצים שנבחרו באקראי. | | תדפיט 12.12 ; ₪601 תפישסעס = = [160618 11 %0 סגו ) 1 5005 1024,0,0 80] ; 08 808 : תנשסט ₪ + %תסינסקן 6.ת: 6ע8 טסצ' )ת001גי ; 60%0/ כפשס (( יטפ 3 .112 - 1, ,"60א0. 0602" )00 ; 98700608 . ; ( .תאפסזס 0 סמ ת1 826 גוסצ" )תינש : .0 תדפיס 12.13 ₪602 תפישסיס ו 6סעל ;1 127 ול = 0 ב 16 :; 8 : : . : תנשסס . ; ( 880 ,226118900 )ע%ק =: 6ת00611 |" (( 7יתפישסנק 0116 6מ% תג 6ע''6ש' )ת%91גיט ; ( "6ת00611 ,7 :35 %811 בתהתהסס 6ב" )ת1601י : ו - 6 תלק ב" התכנות הפלט של 61פא₪ הוא: 11 . ותפינפסינ %תספ 926 ת1 826 גוסצ . ותהינקסינ 4 6מס תג סכה גוסצ 8 11102088 11161.088 :15 %811 בתפמהסס סב . תהידפסינכן סתסינפן 6ג% ת1 6ב גוס פניה לפרמטר הסיום כאשר התוכנית הנקראת מסתיימת בגלל הפעלה של הפרוצדורה 4816, יכולה התוכנית הקוראת לפנות לקוד הסיום באמצעות הפונקציה 1600066אשפסכ, הפונקציה 6 מתצירה ערך בגודל מלה, החלק הנמוך של הבית מכיל את הבית הנמוך של קוד הסיום; החלק הגבוה של הבית מצביע על הסיבה לסיום. טבלה 12.2 מסכמת את הסיבות האפשריות לסיום. טבלה 12.2 הסיבות לסיום שמוסר 0055160006 הסיבה לסיום הבית הגבוה של התוכנית הנקראת 6 סיום תקין - תס%1הםת1תת:6? 1המעסא 0 1 1 שגיאת התקן - עסעע6 06נט6כ 2 הפעלת הפרוצדורה - א 3 000666א1:00ו660סנ אחרי הפעלת 60086 נאעפספ מתאפס קוד השגיאה, התוכניות 3 ו-64מאע (תדפיס 4 ו-12.15) מדגימות את השימוש ב-160006א5₪סס: תדפיט 12.14 ; 2606 ותהיוססיזן ] 0,0, 1024 6 ;205 65פגו ו סו : 1055826 תנספסס ; ( ".תקסע סתסינפק 526 ת1 866 גוסץ? )10012 סוס ;( 77 ,'6א004.08את' )ססאת ; 760%01-5 כפשט תדפיט 12.14 ממשיך בדף הבא פרק 12: פניה ל"5סס" 437 208201%0066 =: 1105988₪0 ; ( ' 8%666ת01711> 02116 6ת1" )106י 1 ( 088426 )1116 0850 ;( '.ערבאנסת' )ת1561ש : 0 ;( '.0%01-0 עס' )ת[1%0:א : 1 ;( '.עסעעס 000106 8 01 226ג608מ" )ת091גיט : 2 [( '.6ע600ססעק 8960 6מ% עס' )ת21501א : 6 ; תס ;( ( 0088806 )10 ,' :אס( 50 ס6תסינפק 56 55תפ 0116 16" )ת1501ימו . 0 ו תדפיט 12.15 המשך תדפיס 12.14 '/ 004אמן תירססינכן נפט ;010 : 0066ת61410ת00 תנשס ;( '.תהעקסתק 02118 6מ% ת1 826 טסץ? )ת[60גיש 1% ;( ' ?6תסיקהק 6ב% 5611 50 6תפש גוסע 60 86ב )156יעשט ; ( 01%100006ת00 )ת[80סי1 ;[ 0..255 ] ת1 00066ת61%10ת00 611תט ; ( 01%1000006ת00 ,7 :6תסעהק 6ב %611 50 הספת 76 )ת[1%0יש ; ( 0006ת00001%10 )111% - הפלט המופק על ידי תוכנית ₪803 (ובחירה בהעברה של הודעה מספר 173) הוא: 05 . מתפינפסינכן %תסינגכן 6תס ת1 6עה8 גוסצ | . ותהיצפסינכן 021108 6מ% ת1 826 גוס 5 ?סתסעה 6ת% 5611 %0 6תהא גוסץ 30 >פבמו 5% : סתסינן 6ג% 5611 60 סשת 6 . 1 1המדנסת ‏ 8600ת1הד61+ 0116 6ב 5% :שסתא 60 6%תס6עהק 626 פסתגשט 01106 סד כאשר תוכנית ₪063א%₪ קראה לפונקציה 1600866א5₪סכ היא קיבלה את הערך %0085. הבית הגבוה (%00) הצביע על סיום תקין, והבית הנמוך (פג% או 173) הכיל את ההודעה. הפעלת תוכניות השירות של 5סם באמצעות הפרוצדורה 606א8 ניתן לבצע כל תוכנית, אולם כאשר משתמשים בשגרות השירות של 205 יש לשים לב למספר פרטים: 8 חתלק ב" התכנות | ו -- | | | ו כמה פקודות 205 מהוות תוכניות. עצמאיות (למשל: ז'תאפסע ו- 0 רוב הוראות 555 (למשל אדם, צעסס) הן אופציות של תוכנית 60%.פאתאא60, כאשר מקישים שם פקודה מרמת המנחה של 085פ, מופעלת למעשה. תוכנית 00%₪,פאתאא60. התוכנית בודקת אם ההוראה היא חלק מהפונקציות הבסיסיות שלה (למשל פדס), אם התוכנית אינה מאהה את שם הפקודה, היא מניחה שאתה מבקש לבצע תוכנית עצמאית. תוכנית 420 (תדפיס 12.16) מתארת כיצד ניתן להדפיס תוכן של ספריה מתוך תוכנית טורבו פסקל. ההנחה היא שקובץ 60₪.פאגאא00 נמצא בספריית השורש. , | תדפיס 12.16 יְ | ;₪605 תפשססינ [0,9, 1024 6 : ,205 68פגו 600 חנוה 5 תנפסס 0 5 ;( '*.* 612 7/0 , "מסס.6תמותחסס\:0' )סא . ; 8ע9090%0אפ / ; תס / תנפסס ;( ':1011005 012005077 16" )ת1%61ישט ; 600 תג (( 'ע01200%02 01 6ה₪' )ת1%61ישט . תס בדומה למקרים האחרים שבהם השתמשנו בפרוצדורה ס6א₪, התוכנית מורה לטורבו פסקל להריץ תוכנית: אחרת, ומציינת את הפרמטים הנתוצים. הפעם, התוכנית המופעלת היא 00% פאתאאסס, האופציה ₪/ היא אופציה של 600₪.פאגאאסס, ב-₪05 3 משתמשים 3ב- 7 כדי להודיע למערכת שהמשך השורה 9 . 2ג0) הוא פקודה פנימית.. 24 4 כדי לאפשר את הפעלת התוכנית במחשבים שבהם מקומה של תוכנית 0% פא אינו ידוע, ניתן להשתמש' = בפונקציה טם06%8 כדי לאתר |את הקובץ באופן אוטומטי. - ;('*,* ש61 6/',( --- 0 )סא קובץ 00%₪,פאתאאסס אינו נחוץ כאשר מפעילים פקודה חיצונית (כמו א5כאאס). במקרה כזה הפרוצדורה להפעלת הפקודה היא: ;( 'ס', 'תסס, 005% 05:ס' )אע 0 .0 0 פרק 12: פניה ל"פספ" ‏ 439 כאשר התוכנית אינה זקוקה לפרמטרים של שורת ההוראות, המחרוזת השניה יכולה להיות ריקה לדוגמא: כדי לבדוק את הכונן הנוכתי באמצעות וס אפשר ל | ;ר' ' ,'008,א65ת0 405 :' 0 פרוצדורות ליציאה מהתוכנית ראינו כבר שכאשר תוכנית מסתיימת; - מערכת 09 משחזרת את ערכיהם של רוב הווקטורים של הפסק באמצעות' מקה מה-פפפ, ומעבירה + קוד שגיאה אל התוכנית הקוראת. : בטורבו פסקל קיימים כמה שירותי סיום. נוספים. למשל: ‏ טגירה של. קבצי קלט ופלט, והצגת הודעות שגיאה במקרה .2 - שגרות | אלה נקראות ‏ פרוצדורות יציאה (630). הן מהוות. רצף מוגדר של פרוצדורות ‏ טורבו פסקל ו-05פ, המופעלות על ידי סיום של תוכנית כלשהי, סיום תקין, 6621-3268% ושגיאת הרצה גורמים למעבר לתוכנית הראשונה ברצף. כתובתה נמצאת במשתנה המצביע סס:ע16אם, י | | פיתוח של אש 6 לא. רצוי לשנות את רצף הפעולות של פרוצדורת היציאה, אולם ניתן ליצור פרוצדורות יציאה *חודיות ולהוסיפו לראש השרשרת, לשם כך יש להציב במצביע אש את כתובתה של פרוצדורת היציאה החדשה, ולשחזר את הערך המקורי של ץאט אחרי שהפרוצדורה מטתיימת.. פרוצדורות יציאה יחודיות הן בלו עזר. 0 אך אינן מונעות את -סיום " התוכנית, הן יכולות, למשל, להוסיף קפיצת דף במדפסת לאחר סיום ההדפסה, להבטית סגירת מערך התקשורת וסגירת הטֶלפון: בתוכנית תקשורת או לשמור את הקובץ הנוכתי. | | תוכנית דאס (תדפיס 2 121 מדגימה. את עקרונות השימוש בטכניקה: 1 0 תלק ב" התכנות | תדפיס 12.17 : ; 8141 התפידססיז יצפט. ו : 000088+ וא [+ זפ 20 סגו סינגוס6ססיזכן [-) תנפססו [ 6עסגן ₪0 0 6 הת010ת1מדנס+ 6 -עספגו עתג ! ;( '...שת1אהת1הת0+ 15 תהעפסע;" ‏ )ת1%61עט [ שת%1טסע 61% [מת1ש1ינס בת ן ; 1+001088א2] =: 0ססעס+ וא ; תס תנקס ( 8002088 681% [8ת1ש1עס 5806 | .1+200א =:; 1+4002088את ( "0501200816" 18 681% ששא ] - ;1%א600500012060 =: ססעס%ואת י ( ע[[התנסת תס%6ניט 15 תפינפסנק 6+ +0 205% שמך ] | . תס וויווווווויק הוווו הו.י רומיהה )...רה המשתנה 1%28062655א₪ משמש לשמירת הערך של 06:ע16א₪ שבו נמצאת כתובתה של פרוצדורת היציאה הכללית הראשונה; אחר כך מציבים ב-106ק16א₪ את כתובתה של פרוצדורת היציאה הפרטית (במקרה זה, 16א00560₪1206₪%); לבסוף, מותזר ל-1+2:06א₪ הערך המקורי, ותהליך היציאה האוטומטי מתחיל. אין פניה מפורשת ל-1%א550₪1266₪גו0, אולם זוהי הפרוצדורה הלוגית הראשונה המופעלת כאשר התוכנית מסתיימת. הפעלת התוכנית גורמת להופעת התצוגה: | .הנהת 15 תהעטס:קע = שים לב שהוראת 08118 עהץ שסעסע - (%2) מתייבת את טורבו פסקל להתייתס ל-0₪56011200₪%1%6 כאל פרוצדורה רתוקה, זאת בגלל שפרוצדורת היציאה - המהווה ברירת מחדל, שוכנת בספריית ההרצה הנמצאת בקטע קוד שאינו קטע הקוד של התוכנית הראשית (ראה פרק 6). לכן כדי לשמור, לשנות ‏ ולשתזר את מצביע 21662200 יש לציין את כתובת הקטע ואת כתובת ההיסט. | בירור הסיבה לסיום התוכנית. בטבלה 12.3 מוסבר כיצד ניתן להשתמש במשתנים 160086א₪ ו-665תמסממש בדי * לברר מה גרם לעצירת התוכנית. , | פרק 12: פניה ל"פסס" ‏ 441 טבלה 12.3 תוכן של משתניס 0 מסדות . 0 | 706 1070177076 בגא 0 1תתסצז בגא ן ת | ( ם 1)6גח 4161 116 01 30107655 6גדד 6 עסת 6בתד- מגוו 607 116 8ת6451 כאשר התוכנית מסתיימת ללא תקלה, הערך שב-160006א₪ וב-:66ת :סמש הוא 11א, כאשר התוכנית מסתיימת בגלל הפעלה של הפרוצדורה >16בּא, נמצא ב-1600866א2 ערך הפרמטר של 156בא, ו-2606₪עסת:אע הוא 11א, זכור: 881% ללא פרמטר הוא (₪816)0. כאשר התוכנית מסתיימת בגלל שגיאת הרצה, נמצא מספר השגיאה ב-166086א₪, 6 עסעשש מצביע על ההוראה שגרמה לתקלה, 2566סעשש הוא משתנה, טורבו פסקל בודק את תוכנו כדי להתליט אם יש להציג הודעה על שגיאת הרצה, כאשר הערך שב-226062סמ,צע הוא 11א - ההודעה אינה מוצגת. פרוצדורות היציאה הפרטיות יכולות לבדוק את המשתנים 38160066 (-601תעסז ולפעול בהתאם. תוכנית 172א₪ (תדפיס 12,18) מדגימה זאת. -תדפיס 12.18 ; 11% ותהיססינק שפט ; ע%6ת1ס : 1%4007098אע נ%ת1קָת0ס1 : ת56160%10 + ; 20010015 1תס בגה 6כנגת6סססינכן [-99) תנשסס תנפסט תסמל 11 <> >סמסעיזם +1 ת161ימו . (( "7 209016 8 85 שת01הת1הת6+ 15 תהעשסתק 118" )ת501ניט (( 'פהש 1% .7 ,₪201%0066:5 ,' עסכותות עסעתס 61₪0-וגר: +ס" )ת1401יעש ; ( ':85 60056200" )ת14601יש ; ה4911 יש (( 5:( 14000עסעעת )802 ,' :%ת6ת96₪ | ' )ת1561עש (( 5:( ש06תסצעת )028 ,7 :021865 | ':)ת1661עש ת101יש [ 1‏ ₪ת08%1ת₪0 מס+ סטינגת' פ%תסטסעת ) גא =: 2600תסענם [ סשהטפסת עסעע0 עסבססתה ] תדפיס 12.18 ממשיך בעמוד הבא 2 חלק ב" התכנות ‏ | המשך תדפיס 12.18 ; תס [ 6ת0051ת 1%א6 [8ת1₪1עס 6עסספסת ] | 1201+061085 =: ססע0ל נא 4 - תנשסס [ 8007088 081% [בת1ש1עס 6ש0ם | ; 1+000א =: 1+2007058את [ 20001%7נתסלפגה)? 18 סנאס שסא ] ; % 26081 605001 =: 0ססתל ואת ו (( 7 :ע6שססת1 תה ע6סת0 7210820 )166עש ; ( תמ56160%10 )ת[680ת1 ;( ( מ90100%10 )שף9 ;7 18 "7 ,ת86100%10 ,' 02 26בט5 6ב" )ת1001יש ;0 = ת56180%10 611ותו - תוכנית זו אמורה לחשב ריבוע של מספרים מטיפוס 68962ת1, היא מסתיימת באשר מקישים 0., הפרוצדורה 1%6א0056011200₪ מתבצעת תמיד, אם התוכנית מסתיימת בצורה תקינה, הערך שב-22601ס::ם הוא 11א ולכן הודעת שגיאה אינה מוצגת. 5 :0קס6סת1 תה 0560 16886ע 9 1:85 46 +0 6שבג500 6ב 1 :02ק%0ת1 תה עס6ת0 16856ע 1 18 11 02 6עמ50 שמ 0 :עסשספת1 תב עססת0 16856ק 9 15 0 +02 502826 6תך כאשר מקישים מספר שאינו אינטגרל, מוצגת הודעת שגיאה: 4 :סשספת1 תה -60ת0 10850קע 6 18 4 01 6ע8ג500 סמ 66 :עסשספ6ת1 תה ע6סת6 16856ע %6 1:85 76 0% 6שהג50 6ב % :עססססת1 ת8 עססת6 6856+ק %ופסי 8 85 שת1להת1ת%6 15 תהידקסען 15 פט 15 .106 תססמותות קסינזס %18-וגו: +0 :8% 60606תגוססתס 5 ;רקס 6 : 02256 שים לבי יש להניח שכתובות הקטע וההיסט במתשב שלך יהיו שונות מהכתובות שבדוגמא. קוד שגיאה מספר 106 הוא הקוד המתקבל כאשר תצורתו של מספר אינה מתאימה להגדרה (8%ת02ס% ס1מסחטת ה6ג1הטִםת), עדיף כמובן להציג הודעה המפרטת את משמעות הקוד, ולא רק את מספרו. בתוכנה מסחרית, מצרפים לעיתים גם התנצלות, ומציגים את מספר הטלפון של לשכת השירות. / | פרק 12: פניה ל"פסס" 143 פיתוח של פרוצדורות יציאה ליחידות אפשר גם לפתת פרוצדורת יציאה מיותדות ליחידות השונות, פרוצדורות היציאה . מתבצעות בסדר הפוך לסדר ההתקנה, לכן אם ההוראות המפעילות את פרוצדורות היציאה נמצאות בקטע ההתחלתי של כל יתידה, הן יתבצעו בסדר הפוך לסדר שבו הוכרז עליהן במשפט 8ספגו, טורבו פסקל קורא לפרוצדורות ההתקנה עד שמצביע 166אע מתרוקן (כלומר עד שערכו 11א), 6סעפ16אם :הופך ל-11א אחרי כל פניה, ולכן יש לשחזר אותו בכל פעם. אם לא תשחזר את המצב, שגרות הסיום לא יתבצעו במקרה של תקלה. התוכנית הבאה. מתארת כיצד ניתן להשתמש בפרוצדורת *ציאה פרטית ליחידה. תוכנית ₪113 (תדפיס. 12.19) מציגה, במקרה של תקלה, את משתני המערכת שהוגדרו ביחידת ת550עפ. | -תדפיס 12.19 נ1%5א 1%רצו > ו 101 8+תסחתס 121 6מעץ ( סנ ] ;| 5 ]שת1ע8% = 6תס"אסו1 - עפט ע56ת1סכן : 2007088 גאנ ד 111 ו סא :11006 )116 תס61סתגו1 : לפתסס 2 = אגו +0 [ 0..15 2 : 2168 א מנפסט + [ 16 ט:6 ( 1 ]ושוסאסת + פָ' =: אש +[ 16 ₪06 ( 6עסואסם 10 ]1%5 נסאסת + [ 16 טג6 ( 6צ00א16 )10 ]1%8ש1סאס ;| 16 ₪06 ( 26ס0א10 )10 ]165שנסאסת : ( 6 ; ( 6ע₪0 : 6תפת )1500020ש סיעגוסססים , 8 הנקסס 6 > ' ,( 6תהת )108 106)0עט : ; ( סותהת )ת1561יט . -. ו8ת0 ( עססתנסס : סג )ע%ת1%00יו 6ינגו60ססיכן " : תפס ;( ( ( 6תפתת )018 ו ' ,( ( סתפתת )802 )א6ת )106יעט 6% ' )106 7 5 סותפוין )0 (':' ,5:( סמתפת] )502 + תדפיט 12.19 ממשיך בדף הבא > 4 הלק ב" התכנות | המשך תדפיס 12.19 = 8 +[ ; 02848 361 נהדנס 6ינגו0סססיוכן )85-[ תנפסס (( 90₪א011עק )1900026עט | (( 7 א1+סעק 5ת50006 תהעקסעת" )6ס1יט ;( 5%80011% )1900020עש | ;( 7 1115 שס1 עפסתנסק א8980%' )6ל1עשט (( 6ע0800עט0 )1900026 - ;( 7 | תגשנעס 2102טס ק18עסט0' )166יש ; ( ע110908%0נט0 )91500026 | (( 7 סססתגסק ע0++גם 6:187ט0' )158יש ; ( בה%ס08ו1נט0 )199%028עש | ;( ' 6 2202גו 018ט70 )%6גיט ; ( 8080026 )150002 | ;( ' תנשננס מהס1? 080גי / ) ,) ) ) ( ) ( ;( 00807082 )%2ת1500: - ;( עסלתנסכ 1080 )106ינט ;( 7200702 )עפת1900נ | ;( תספלת1סק 118% 66לת' )₪166 ;( ת1נ260%? )1500026 | ;( 7 5126 118% 1206 מעותגתם(, )1%6עש ) [!) ;( 1+4002088א0 )תסת1%00ט | ;( ; ( 1061600066 )ת1%61יט | ;( ;( ע400עסעעם )עלתת%6גימט - ;( ; ( 6ַסַספַ0ַתפ2 )ת1%61ט - ;( ) ) . סינגו60ססכן 71% )146יש / 6 ס1א )140יעט 2 893 כוכסתת0 6מת1פועות? )6ל1עש ( ( ( ( ( ( עסעעת040 )ע%ת1160עש ; תס1נלסתת עסעעס 1080 )106יט ( ( ( , 6 הססתפת" ‏ )106ינש ( ( 21100066 )ת1901יט - ;( ' 6 תססס 72116 )106ע ; ( 105%8087 )ת1%01ש | ;( ' %גופסעת 408% 78087 )100ישט ; 1+200088 =: ססעק4+ ואת ; תס תנשסס ; ססע+1א =: 4002058+ 1אות .6100868 1מדנס6 =: 00סע+ואת . 6 תוכנית ₪14 (תדפיס 12.20) משתמשת ב"מנפה הזעיר" שבתוכנית הקודמת. כדי לשלב בתוכנית את הפניה ל-3ַדא₪, יש להוסיף משפט פספגו מתאים. תדפיט 12.20 154 תתהיוססיון ( עסססטס1-000תגת 6ב ] - ;155אם ספ יצפטי %ת1קתס1 : ת56160%10 תנשסס 1% (( 7 :עסשספת1 תה עססתס 7210886 )68גיט ; ( ת96160%10 )תַז80סי ;|( ( ת50100%10 )שף5 ,7 18 7 ,ת50160010 ,7 01 סעבג8 16" )ת1601יט ;0 = ת56160%10 11סתו | . 6 שגיאת הרצה תפעיל מיד יאת פרוצדורת הסיום מיחידת 3 ידאא. | 0 ב ₪ פרק 2 פניה ל"פס" .445 2 :עסשספת1 תה תססת0 10856ע 4 18 12 01 6עפגת0ם פמ 17 0 הגה עס5תס 16856 = 289 18 17 02 82906 שמת > 17 :ע0שספת1 תה עססת6 16836ע 1106 8 א21סעכ 860005 תפיססינק 0 0 מ15ת11 ש0ס1 עס6ת1ס 548/04 יי 0 ה תבשנתס ש220טט 0618 120 0 מססתנס 2102גו 0618 10 0 בת 2602/ג 0013 10 0 6 -20+גו 0013 5 :: 15296 0:4 ת1ש1עס כספסם 5 :15296 0:4 נס6ת1סכן ספסת 5 :15296 0:4 עס6תנסן 118% שעת 0 0 5126 118% 2206 התהתנתג]ן 5 :15296 0:4 תס1ססתג עסעינס 11080 :15296 0:4 סצגוס6ססינכן 6 1א 106 6 ו 5 : 15296 4 2 2 - 80020585 עסעעס סת61תגו1ן 0 8 הספת 8 6 תסקס 116ע 0 % פס %08% 8087 . 0000:0088 86 106 שסעעס 6תנג6תגות שים לב: יש להניח שכתובות הקטע וההיסט במתשב שלך יהיו שונות מהכתובות שבדוגמא. ניתן להוסיף מידע שיסייע בניפוי, הוספת השורות: ;( 096₪ )1000026 | -;ן;( ' %סט 70066 )106ינט ;( 256₪ )91990026 - (( ' 3% ,28%8" )8ס1יש . 21560020) 5896₪ ( (‏ (;( ' %תסתןקס 79580% )106 (( 90% )1500020עש | ;( ? עספתנס 9580%' )106יעט תגרום להצגת מידע אודות הקטע. סיכום בפרק זה הכרת את הפרוצדורות. והפונקציות של טורבו פסקל, שבאמצעותן ניתן להתקשר ישירות למערכת 5סס. למדת לו השעה והתאריך של המערכת ולהפיק צלילים בתדרים שונים. הכרת את טבלת הסביבה של 505 ולמדת להוסיף מתרוזות לטבלה, למתוק מתרוזות מהטבלה, ולפנות את הטבלה מתוך תוכניות,. הכרת את קידומת הקטע של התוכנית : (עפפ) ואת המידע השימושי שמערכת 05 שומרת בשטת זה, למדת לפקת על תהליכי 6 חלק ב" התכנות | הסיום של התוכנית ולהעביר פרמטרים מתוכנית לתוכנית, ראית כיצד ניתן % להפעיל תוכניות מתוך קבצי אצווה (ם8%60) ולמדת להפעיל תוכנית מתוך תוכנית 2 ולבצע תוכניות שירות של 505 מתוך תוכניות טורבו פסקל, הכרת את הדרך לכתיבת שגרות יציאה פרטיות לתוכניות וליתידות. הק כאשר תכתוב תוכניות, תראה כי הנושאים שתוארו בפרק זה הם שימושיים, ובעזרתם תוכל לפתור בעיות שכיחות. פרק 13: טיפול בקבצים 447 טיפול בקבצים האלקטרוניקה המשוכללת של ה-6ע הופכת ‏ אותו לכלי מהיר ביותר, ומני התגובה של מעגל ב-שע6 נמדדים בננשניות (כלומר ביליונית השניה), נסה להמתיש לעצמך מהירות עצומה זו: קרן אור עוברת 186,000 מיל בשניה, כלומר יכולה לבצע בשניה 7 הקפות של כדור הארץ, ברוחב קו המשווה. המרחק שקרן האור עוברת בננשניה הוא. כמעט 12 אינץ'. (תוכל להבין איך 26 תדיש אחד תזק 75 כמה ממחשבי הענק הראשונים, שהיו מבוססים על שפופרות ריק). : כונני הדיסקים, לעומת זאת, איטיים מאוד, ומשתמשי ה-26 מרבים להתלונן על האמן הרב המתבזבז בהמתנה לרגע שבו חריקות הכונן ייפסקו והנורית האדומה תכבה. כונני הדיסקים והקבצים שעליהם תיוניים לפיתות תוכניות. בטורבו פסקל, קובץ (2110) הוא אמצעי ההתקשרות העיקרי "עם נתונים שמחוץ לזיכרון המרכזי של ה-26, קבצים מאפשרים לאתסן כמות גדולה של נתונים, הקבצים הם עצמאיים, ולכן הנתוניסם שבהם יכולים לשרת מספר תוכניות. בפרק זה תכיר את שלושת טיפוסי הקבצים הנתמכים על ידי טורבו פסקל ואת הפרוצדורות והפונקציות המאפשרות לתוכניתן להשתמש בהם. ניהול קבצים בטורבו פסקל בעולם עיבוד הנתונים ‏ קיימת "יריבות" מתמדת בין חובבי התומרה וחובבי התוכנה, אנשי החומרה נהנים מדתיסת יותר ויותר סיביות לפיסות סיליקון. זעירות, מהתקנת זיכרון גדול יותר ב-6ע ומרכישת צגים גרפיים חדישים ומדפסות לייזר משוכללות, תסידי התוכנה, לעומת זאת, רווים נחת מפיתות אלגוריתמים "חכמים" ומיצירת תוכניות מהירות ומתוחכמות. [ 8 חתלק ב" התכנות. | לשמחתנו, אין ניגוד בין האינטרסים של שני ה"מתנות". המחשב מהווה, בסופו של דבר, שילוב של טכנולוגיות חומרה ותוכנה, וחלקים ממנו (למשל הקבצים) שייכים לשני העולמות. | מבחינת החומרה, קובץ הוא התקן פיזי לאחסון ושליפה של נתונים, התקליטונים של טורבו פסקל, למשל, המכילים את המהדר וקבצי העזר הם' בני 51/4 או 31/2 אינץ',. ה-26 יכול להכיל גם דיסק קשית של 5, 10, 20, 40 מגבית או יותר. קיים מגוון רחב של אמצעי אחסון, החל בקלטות פרימיטיביות וכלה בדיסק אופטי משוכלל. טורבו פסקל מתייחס לכל אמצעי האתסון הללו בצורה זהה, בעת הלימוד, עליך להתעלם לתלוטין מצורתו ‏ הפיזית של הקובץ, ולהתייתס אליו כאל יחידה בעלת שני מרכיבים:. = | שם (הכולל לעיתים גם התייחסות למקומו הפיצי בכונן או בספריה). = רצף של תווים המכיל נתונים. קובץ מכיל נתונים. קובץ לוגי הוא פשוט טיפוס נתונים, : ממש כמו 6סעס, ‏ 1666 60020ע |-81קע8, | המבנה של שמות הקבצים בפסקל, זהה למבנה שמות הקבצים ב-05כ. לכל קוב יש שם של 8-1 תווים, ושם הרחבה חליפי שאורכו עד שלושה תווים, בין השם ושם ההרחבה מפרידה נקודה, טורבו פסקל מסווג את תוכן הקבצים על פי שם ההרחבה. למשל: קובץ עם שם הרחבה 25, הוא קובץ מקור של תוכנית. טורבו פסקל; קובצ עאם, הוא קובץ הניתן להפעלה, וכדומה. הקשר היתידי בין אמצעי האחסון הפיזי ובין התכנות נוצר בעת איתור הקובץ. כאשר הקובץ אינו נמצא בכונן התורן ובספריה התורנית, יש לכלול בשם הקובץ את הנתיב המוליך אליו, למשלי השם המלא של קובץ ₪110.25 שבספריה 8סתט50ספתט2| שבכונן ‏ 6 הוא: | 1708,2.5סם5א0500מתט :ס. כל הוראות התכנות האחרות אינן מתייחסות למקום האחסון של הקוב. ו פרק 13: טיפול בקבצים 449 טיפוסי הקבצים על הדיסק קיים רק טיפוס קבצים פיזי אחד, אולם המהדר של טורבו פסקל תומך בשלושה טיפוסי קבצים לוגיים: קבצי טקסט, קבצים עם הגדרת טיפוס וקבצים ללא הגדרת טיפוס. עפצ (11106 066ע6) ;בַעססַתּהּ8כ +ס 2116 : 61ת8א116ק [116+ 66קע6תגו) / : 62תַ8א116ת [2116 %א76%) ;6% : 3סתַהא6[נעק קובץ עם הגדרת טיפוס (5116 ִססְעס) מכיל אך ורק נתונים מהטיפוס שעליו הוכרץ, קובץ ללא הגדרת טיפוס (116+ 6ַססְע6תט) הוא קובץ ללא מבנה קבוע. הוא יכול להכיל נתונים בעלי אורכים ותצורות שונים. בדרך כלל מכריטים על קובץ מטיפוס זה כאשר מבקשים לטפל בתוכנו בגושים שלמים ולא בתווים בודדים. הטיפוס השלישי הוא קובץ טקסט. קובץ טקסט מכיל שורות של תווים (כלומר נתונים מטיפוס שהםס), שבסופם תו התחזר גררה (13א8), ובדרך כלל גם תו הזנת שורה (10א). אורך השורות אינו קבוע, שים לב: קובץ טקסט אינו קובץ מטיפוס זהתס, קבצי טקסט קובץ טקסט הוא טיפוס הקבצים הנפוץ ביותר. גם אם מעולם לא השתמשת בתבילת תוכנה כלשהי, השתמשת כבר, אף מבלי לדעת זאת, בקבצי טקסט. קוד המקור של תוכניות טורבו פסקל נשמר בקבצי טקסט בעלי שם הרחבה 55פ,, ולכן, אם ניסית לבצע את הדוגמאות שבספר זה, השתמשת בקבצי טקסט כדי לשמור את התוכניות. גם כל קבצי הכותרת של היחידות (למשל: 918%.006צפ, 6סכ,גועתת6, 05.206ס וכדומה) הם קבצי טקסט, תוכל להדפיס את תוכנם באמצעות מעבד תמלילים או באמצעות פקודת 05: את0כ ייצ מקציי בבלל, יש להכריו על כל קובץ המכיל שורות של תווי 15011 כעל קובץ טקסט. [ ו 0 חתלק ב" התכנות 6 | | ו השוואה לטיפוסי קבצים אחרים | טורבו פסקל מניח שכל קובץ טקסט מורכב. משורות. כל שורה מורכבת מרצף של תווים, הרצף מסתיים בסימון סוף שורה שהוא תו התזר גררה; | (813) או צירוף של: החזר גררה והזנת שורה (13810א8), שורה יכולה להכיל מספר תווים כלשהו, או לא להכיל תווים כלל. מתוך השם - טקסט - אפשר להסיק שהקובצ כולל מספרים ואותיות היוצרות משפטים בשפה האנגלית, למעשה ניתן להכריז על כל קובץ בעל ו טקסט, כולל קבצים כמו שאא,ספתטצע' שתוכנם אינו קריא לתלוטין. זכור את ההגדרה הראשונית של קובץ: מבנה נתונים המכיל הצף של תווי 5011ג. נניח שעל הדיסק שלך נמצא קובץ שאינך יודע מהו, ואתה מבקש לבחון את תוכנו באמצעות טורבו פסקל, איך תכריז על קוב כזה? | 1 אינך יודע אלו טיפוסי נתונים נמצאים בקובץ, ולכן: אי אפשר להכרט = עליו כעל קובץ עם הגדרת טיפוס, אם תגדיר אותו כקוב: של בתים (66עכ) - המערכת תניח שהקובץ מכיל מספרים בלבד (במקרה זה |תווים הקסדצימליים יפורשו כמספרים עשרוניים, כלומר המערכת תניח שהתווים 844, ע86 ו-867 הם המספרים העשרוניים 68, 111 ו-103 ולא מחרוזת היוצרת את המלה שָסם). | גם הכרזה על קובץ של תווים אינה פותרת את הבעיה. במקרה זה, המערכת מניחה שהקובץ מכיל תווים בלבד, ואינה מתייתסת | בצורה מיוחדת לסימון סוף השורה. 2 מה יקרה אם תכריז על הקובץ בקובץ ללא הגדרת טיפוס? ‏ כפי שתלמד בהמשך, קבצים ללא הגדרת טיפוס מטפלים בדרך כלל בקבוצות גדולות של בתים, ה גושים (106%5), בקבצים אלה קשה לעבד תו אחר תו. 3 לכן, אין דרך אחרת! תייבים להגדיר את הקובצ בצורה כללית ביותר - כקובץ טקסט. | מובן שכאשר שתוכן הקובץצ ידוע, ניתן לשנות את ההחלטה. ולהכריו עליו בקובצ עם או בלי הגדרת טיפוס. | | | ל פר קִ 3 טיפול: ב קבצים 1 . הכרזה על קובץ טקסט ‏ כדי להשתמש בוכר טקסט, עלונר להכריט עליו בעל. קונ מטיפוס טקסט, עהט א 1 | 116עתד ‏ 7 :0660658115 / 6 : 6 שים לב: תצורת ההכרזה על קונ טקסט אינה שונה 9 הכרזה אחרת, קובץ טקסט נחשב לטיפוס נתונים. י ו - יהוי הקובץ הפטי כדי לקשר בין מבנה הנתונים הפנימי ובין קובץ הנתונים הפיטי, יש להשתמש. בפרוצדורה ם5810ת, בדוגמה שלהלן, המזהה 066668115 שהופרז קודם כקובץ טקסט, מתייתס לקובץ 58 בשם עאץ,פ/:נעהצתס הנמצא בספריה התורנית. ,ו 'יזא מ זדעתייבתפי - ד ה ניתן להוסיף לשם גם את הגדרת הכונן והנתיב, יש להפעיל את 0 לפני שמפעילים את הפרוצדורה או הפונקציה הראשונה המשתמשת ב- -60668118גק6ט0, בפרוצדורה 35818 נמצאת ‏ ההתייחסות היתידה לשם הקוב ב-05,* כל: ההתייחסויות הבאות ל- 'אץ,א,זדעתציתס יתבצעו באמצעות המוהה 5 פתיחתת קובץ טקסט. אחרי שמקשרים בין הקובץ החיצוני ובין המזהה באמצעות מץנפפה, יש לפתות את הקובץ באמצעות 6% 166משסת או 6תססקת. . הפרוצדורה 6% פותחת קובצ: טקסט קיים לקלט, החל מתתילת: הקובץ. ' התתביר הוא: : 7 ו יי אם הקובץ שהוגדר ב- -ת16פפת אינו קיים, תיווצר שגיאת הרצה. כבאשר הקוב כבר פתות (הוראת 66%, 262156 או 6מסססת קודמת) הפרוצדורה 666%ג . ו 1 | 2 חלק ב" התכנות 0 | סוגרת את הקובץ, מעבירה את המצביע לתחילתו ופותתת אותו מחדש. פקודת הקלט הבאה תחול על הרשומה הראשונה בקובץ. (הפרוצדורה 6 תתואר בהמשך). = הפרוצדורה 6%21%56ת פותחת קובץ טקסט לפלט, התחביר; הוא: ;( ע61%106ת%2116160א76 )166קקסת הפרוצדורה 36₪21%6 מתפשת את קובץ ה-05כ שהוגדר ב-ם519פת, אם הקובצ קיים - הפרוצדורה מוחקת אותו, אם הקובץ אינו קיים - | הפרוצדורה יוצרת אותו, פעולה זו מכטיחה שקובץ הפלט ריק, ושפעולת הפלט תתחיל תמיד בתתילת הקוב). | = הפרוצדורה 6ת6ססת פותחת קובץ טקסט קיים לפלט, החל בסוף הקובץ, התחביר הוא: ]( ע%61+106ת%62116106א6ע' )סבסססת הפרוצדורה 6מס6סס2 מחפשת את קובץ ה-05 שהוגדר ב - מש81פת. אם הקובצ לא נמצא - נוצרת שגיאת הרצה, שים לבי כאשר הקובץ אינו קיים - יש ליצור אותו תחילה באמצעות 166מש6א. אפשר לפתות קובץ טקסט לקלט או לפלט, אך לא לשני המצבים ‏ בעת ובעונה אחת. כדי לעבור ממצב למצב יש להשתמש מחדש בפרוצדורה 686%א, 6 או 6מסססת. בפרוצדורה תף591 משתמשים פעם אחת בלבד, לדוגמא: גוף תופּנית היוצרת קוב, קוראת אותו ומוסיפה נתונים לסופו, ייראה כן: ; ( '8%8.247כ' ;116"א:סה )תסנפב ; ( 116/אעס/1 )156אסת [ 2000208 שסת 020856 15 1 // / סו 0 [ פ6עסססת שפת 0 2080 18% + זָ | : 7 סו )סססת [ 1116 6םף 01 6ת6 6ב ע81%0 פסעססס שפת 106יא ספת 51 ו | פרק 13: טיפול בקבצים 453 סגירת קובצ כאשר התוכנית: מסיימת את השימוש בקובצ - עליה לסגור אותו. התחביר הוא: ( ע61910מ52116160א26 )1056 / אם 1+162+ת%7116166א6' נפתת לפלט באמצעות 36166 או 6תסססת, הפרוצדורה תכתוב בקובץ את הנתונים הנמצאים עדיין באזור האחסון, לפני הסגירה. (נושא אזוּרי האחסון יוסבר בהמשךץ). אם אין משתמשים ב -01086, עלולים נתונים ללכת לאיבוד, הפרוצדורה 61086 מעדכנת גם את רשומת הספריה של הקובץ בדיסק 508 ורושמת. בה את נתוני הגודל החדשים ואת התאריך והשעה של העדכון. קבצים. סגורים נפתתים מחדש באמצעות. 0% טס או יי אין צורך לתזור על הוראת ב255814. למעשה, טורבו פסקל סוגר אוטומטית. את כל הקבצים בסיום התוכנית ולכן פעולת הטגירה מיותרת לכאורה, למרות זאת, יש להשתמש בפקודת 01086, הסיבות לכך | הן: | | | | = מערכת 58 מאפשרת לפתוח רק 15 קבצי טורבו פסקל בעת ובעונה ו ייתבנו יישומים שיודקקו לוה ₪ הפרוצדורה 01086 משחררת בטיכרון אזורי = אחסון שהוקצו לקוב1, ולכן. הפרוצדורה 7 מגדילה את ו הפנוי. ₪ כאשר קוב פתוח זמן רב מדי - גדל הסיכוי. לגרימת נזק תאונתי לקוב. למשלי הפסקת חשמל עלולה לגרום לאובדן הנתונים שבאזור האחסון. במקרה זה, גם ספריית 205 לא תהיה מעודכנת. והדיסק עלול להזדקק לטיפול ב-א5סאזס. . לא כל מהדרי פסקל מבצעים סגירה אוטופט ולכן תוכנית שאינה משתמשת ב-610586 ניידת פתות.. = יתכן שמהדורות עתידיות של טורבו פסקל יחייבו שימוש ב-01056.. א והו, פשוט, נוהג מקצועי "בריא". קריאה מקובץ 0קל0 0 0030 - | אם עקבת אחרי הדוגמאות שבספר זה, נתקלת בוודאי בדוגמאות רבות של תוכניות המבצעות קלט מהמקלדת באמצעות 686ע ו-מת6861ם, באמצעות פרוצדורות אלה ניתן גם לקרוא מקבצים, במקרה זַה הפרמטר הראשון צריך להיות שם, המזהה של הקובץ. הפרוצדורה: ;( [ 2 ,0853 ,2עהע, ) ועבט 6 6 קולטת נתונים מ-%69116א7[6 ומציבה אותם במשתנים המהווים פרמטרים, המצביע מתקדם, ופעולת 686ע הבאה תתול על הנתונים הבאים שבאותה שורה. הפרוצדורה: | / ,([.-,0823 ,2עהט, ] [עה08 ,6 )1 קולטת נתונים, בדיוק כמו 6868ע, אולם המצביע מתקדם לשורה! הבאה של הקובץ. בלומר, הפרוצדורה מת208061 מדלגת על התווים הנותרים בשורה: הנוכתית. בשתי הפרוצדורות הנתונים שבקובץ צריכים להתאים לטיפוסי המשתנים. ניתן לקרוא כל נתון פעם אחת בלבד. נדגים את תכונות הפרוצדורות 6806ת ו-ם6861ץ, קובץ הטקסט זיתכ צתתפתתאטא שבתרשים 13.1 מכיל 10 שורות של ספרות בסוגריים מרובעים בין הקבוצות מפרידה נקודה; בסוף כל שורה נמצא תו התזר גררה ותו הזנת שורה (13410א). תדפיס 13.1 [9ש]. [71.]68]. [66]. [65]. [4]. [8] . רמש . [61= [1?[.]181.]19]. [16]. [16].ך14]. [18]. [18]. 111] [29]. [28]. [27]. [86]. [25]. [24]. [28]. [אק] . [21] [₪9]. [58]. [87]. [86]. [55]. [4]. [85]. [88]. [51] [49]. [48]. [47]. [46]. [45]. [44]. [45]. [42]. [41] [59]. [58]. [57]. [56]. [55]. [54] . [55] . [58] . [51] [69]. [67[.]68]. [66]. [65]. [64]. [68]. [68]. [61] [79]. [78]. [77]. [76]. [75]. [74]. [78]. [78]. [71] [89] . [88]. [87]. [86]. [85] . [84]. [86]. [88]. [81] [99]. [98]. [97]. [96]. [95]. [94]. [95]. [92]. [91] | פרק 13: טיפול בקבצים 455 התוכנית פּ1'פספתמת שבתדפיס 13,2 קוראת את קובץ הטקסט זיתס, צתתתתאטא פעמיים - פעם אחת באמצעות 6806ם, ופעם נוספת באמצעות םת6861ע2. תדפיט 13.2 = | ; ע36809% תפינטסינן ;02% 08פגו / ינפש ;208% : 562008298 ;[] 5 ]שתנע8% : כ5ע 5%‏ ,85250 | ,58ע5% - ,56254 ;| 15 ]שתנע5% : 9521652 ,952150 9%2158,.‏ ,5%2154 ;[ 100 ]קת1ע0ם : 0 ,5621002 , 5621004 תנשס ; 2ת01290 ; ( 477 תג(" , 95200828 )תשופפה ;( ':3688 שתנפט' )ת1601יט ; ת401 ביט ; ( 8ע8ת9%20 )050% ; ( 52ע5% ,(5%250 ,50ע5% ,54ע5%2 ( פעהם5%20 )הס (( '*' ,8850 ,'*' ,88250 ,'*' ,50258 ,'*' ,56254 )ת661געט ;( 9%2152 ,9%2150 ,152ע8% ,502153 פעהן0ע5% )פס (( '*' ,96160 ,'*' ,882150 ('*' ,982158 ('*' ,952158 )ת1%01יט ; ( 5%21000 ,5521000 ,5521004 , פעה5%:0 )הפס (( '*' ,8521000 ('*' ,8521008 ,'*' ,5621003 )ת%61גי ; ת[6> נינש נ( /22225ם2222222ש2222222ששם22222םםככבםבכתבטבבכבטבבבבב===' )ת1561/ ;( ':ת36801 קתנפס' )ת1%01יש ; ת[40 גיט ;( פעהם0ע9% )6%סת ; ( 52ע5% ,50ע5% ,50ע5% ,55254 , 552085 )תנהסת (( '*' ,86950 ,'*' ,58250 ('*' ,55268 ('*' ,55254 )ת1601יט ; ( 5%2150 ,562150 ,5%2158 ,552154 , 828ת5%20 )ת1פסת (( '*' ,862152 ,'*' ,882150 ,'*' ,8%2158 ('*' ,562154 )ת1%01עט ; ( 5511000 ,5021000 ,552100 , פיב 5% )ת1פסת (( '*' ,8821000 ,'*' ,8621000 ,'*' ,552100 )ת1661יט ; ( 28ע8ת0ע5%2 )01086 : . תס 6 חלק ב" התכנות | תרשים 13.1 מכיל את הפלט של פעפכתעת, תתילה מופיע! הפלט של הקריאה. באמצעות 688ם, ואתר כך באמצעות ת6861ם, התוכנית מציגה כוכבית אחרי כל משתנה. תרשים 13.1 הפלט של תוכנית אדפסג-ק 5108 686 : *נ831*,104ז, אנ₪2ז, אנ181, אאא1881,1091, %נ187, 051,1061ז, -ת01הסת ה61 | *נ1011*,1821%,18331*,104, **נ111,1121,1131%,1141,:151,1162*,1171,1181,119:, *1291%%, 1281 1271 1261, 125 1241 נ23ז, 1221 נ21ז, הפרוצדורה פגעת ממלאת בכל משתנה את מספר התווים המרבי, עד לסוף הקובץ. אי אפשר לבצע קריאה אחרי סימן סוף הקובץ, וכל ניסיון מתזיר מחרוזת ריקה. | גם הפרוצדורה םת268061 קוראת תווים עד סוף הקובץ, ומתזירה מחרוזות ריקות כאשר מתבצעים נסיונות קריאה אחרי סוף הקובץ, אולם, בניגוד ל-686ע2, אחרי כל ת6861ע2 מתקדם המצביע לתו הראשון של השורה הבאה. ברור שתייבת להיות דרך לזהות ולעקוף את תו סימון סוף השורה בקובץ טקסט. זיהוי סימן סוף הקובץ וסוף השורה בטורבו פסקל קיימות שתי פונקציות - +₪0 ו-מ1ס₪, המקלות. על פעולת הקריאה של נתונים מקובץ. ו הפונקציה ₪05 מחזירה "אמת" כאשר מגיעים לסוף הקובץ, והפונקציה ת1סע מחזירה "אמת" אם התו הבא הוא תו סוף שורה או תו סוף קובץ. | ב 00 פרק 13: טיפול בקבצים ‏ 457 תוכנית 1 אפפתפת (תרשים 13.3) משתמשת בשתי הפונקציות. תדפיס 13.3 ; 08/0501:1 ותהידטסיזסן 02% 08פגו צפט 0% : 0620828 ;| 5 ]קת1עלם : 4 הזנשסס ע90ע01 > ; ( דג עָפת1' ,9605 )91 | , 0% / ; ת1%61י (?‏ =שפככבבבטבכפבבבבכבכהכבשכשתפבבבבבבבבבבפבבבבבבטטטככ====' )מ1001י/ ;( ':ת1סם אַת081' )ת1601יט 7 ;ת1601עשט ;( 8ע8ת0ע9% )%ספסת תנפסט 60 ( 562025 )ת1סם ססת ₪116 (;( 55254 ,פעם00ע5% )בהסת (( '*' ,55258 )0166 , . ; תס ; ת1%61ינש ;ת1561ימ ‏ > 2( ששכככככככסככככבבכבככבכשבבככבבכםהכשטשבבבכבכבבבבבב====" )ת1%81 ּ ;( ':₪01 שתגפט' )ת1%01ע ; הד61> 1ינעו 5 ; ( פיע03ע5% )050% תנשסס 60 ( 8עב5%200 )₪01 ססת 116 ; ( 95254 , פינמו0ע9% )3688 ו (( '*' ,54ע5%2 )166ת ;תס ; ( 5520808 )01086 : . תס הפלט של תוכנית 1תפסגפת מופיע בתרשים 13,2. כאשר מ1ס₪ מגלה את תו סוף השורה הראשון, לולאת ₪116 מסתיימת. קובץ הטקסט עובר פעולת 26566 (פתיחה מחדש והעברת המצביע לתחילת הקובץ), והתוכנית בודקת מצב של 5ס. | 8 תלק ב" התכנות בע | | | [ תרשים 13.2 הפלט של תוכנית 1אדפסא:ק ן | 519 0 : - 1 ,א*[08],א1841*,:051*,1061*,]071 .183% ,*[02:, *נ801:, ניתן להפסיק את תוכנית 1תצפסגטת רק על ידי 05621-568%, הפרוצדורה 2686 אינה יכולה להתקדם אל מעבר לסימון סוף השורה, ולכן לולאת 116ם₪ לא תגיע לעולם אל סוף הקובץ, כלומר +₪0 לעולם לא יהיה "אמת"ר = כאשר מספר פרטי הנתונים בשורה אינו ידוע, או כאשר מספר השורות שבקובץ | אינו ידוע, ניתן להשמש בצירוף של +₪0 ו-ם1ס₪, כדי לעשות זאת עליך לבצע את הצעדים הבאים: וְּ ו[ | 1 קרא את פרטי הנתונים. באמצעות 2688 עד ש-מ801 יחזיר "אמת". 2 השתמש ב-ם6861ע כדי לעקוף את סימן סוף השורה ולַהעביר -את--המצביע לתחילת השורה הבאה. פעולה זו גם מציבה "לא אמת" ב-ם1ס₪, 3 חזור על צעדים 1, 2 עד ש-₪0% *חזיר "אמת". הטכניקה מודגמת בתדפיט 14 פרס 13: טיפול. בקבצים ‏ 459 ': תדפיס 13.4 ; 30900418 ותפירססינסן 031 08פגו הייו עפש (108% : מהת500 י ;[ 5 ]שַת1ע8% :| 54ע9% תנפסס 01280 0 ליזום 2 תס ) סנס 356%) 9%2085 .( ; | תנקסס 60 ( 8 )01 >סת 16ות₪ תנשסט 60 (. פיע8ת5%20 )ת1סם ססת 116 1080) 8י5%081‎ , 90254 ( ; ;( '*' ,56254 )166עט . ו | = הי ; ( 5עבן9%20 )20801 ; ת1%91יו. : ו ;₪ ; ( 5ע5%:00 )01056 - 2-0 הפלט של תוכנית 2פצפסתמת מתואר בתרשים 3.3 0 שים לב לדמיון שבין %- של 2פצפסתמת וקובץ הטקסט תס צתתתתאטא. זהו דמיון מכוון. אם תמחוק מ-2תצפּפְתפת את הוראת מ1561ע - הנתונים יועברו לקובצ' טקסט. תרשים 13.3 הפלט של תוכנית 2פדפס₪. *נ9ה], *081:,*נ₪51*,:861*,:87ז, *041ז,אנ821*,:83ז,*1811, . *נ19],%*נ141*,]151*,1161*,]171*,]18:,אנ13:, א111*,]121:, | %[251*,]261*,]271*,]281%,]29],א241:,א231ז, א211*,]221:, *נפב] 38% ,%*נ37:,א*[36], *351],א341)] א*נבָּב3: ,אנ2בז אנז3, 6 ,א[1471*,]481,א431*,1441*,]451*,]461: 421% ,א[41], *נ9ם], *1נ0ם],*נ/פז ו561%ז ,א[521*,]531*,]54[*,]55:,א*511:, *[671%,1681*,:69] ,אנ1631*,1641*,1651*,166,א621ז,611%], *נפ?], אנ8?],א*771], א761], *נםקל:,א*741], א*נ73], *711*,]721],. *נ89], %+871*,]881:,*נ6ם0ז אנ85ז ,אנ84] ,אנ811*,]82[*,]03:, *[99], *[90ז ,971% 0 ,951%ז ,א941],א931%], א921ז .א 0 חתלק ב" התכנות ‏ 05 - > | | + (|-ת500%801 ניתן להשתמש ב-+₪0 וב-ם1סש כדי לבדוק אם המצביע הנוכתי נמצא בסוף שורה או בסוף הקובץ. בעזרת הפרוצדורות +80א506% ו-ם500%801 ניתן לבדוק אם פעולת הקלט הבאה תגרום להצבת "אמת" ב-₪0% או ב-ם1סם. % דומה מאוד לְ- -₪0%, אולם פרוצדורה זו "מציצה קדימה" ומדלגת על כל התווים הריקים, סימני ‏ סע', תווי הזנת שורה והתזר גררה, לפני שהיא מחזירה מצב של סוף קובץ, בעזרת פרוצדורה זו ניתן לחפש את הֶתו המשמעותי הבא ולהתעלם משורות ריקות. | ם566%801 דומה מאוד ל-+80א866%, אולם פרוצדורה זו מדלגת על כל התווים הריקים וסימני מ8' ומתפשת תו סימון סוף שורה. בעזרת פרוצדורה זו ניתן להתעלם מתווים ריקים שבסוף שורה. תוכנית 183פסמעת שבתדפיס 13.5 משתמשת ב-566%₪0%5 כדי לקרוא את הקובץ גכ צגתתתאטא. תדפיס 13.5 = . , ו . 09915 תיסינ = | ;01 פסבגו ינפש ;72086 : פעה0ת%+5 ;] 5 ב : 5 | תנפסס ; עספינ 01 ( * 7ת. עפיזינתגוך 811:01193-5 )31 ( 8208מ0ע5%5 )סספסת תגקפסס 60 ( 5520825 0 %סת 116גש ; ( 5%254 כ )ל 2 ו )06 יט ; תס 7 1 ) 01036 ו הפלט של תוכנית 3 מופיע בתרשים 13.4. הפרוצדורה 0 מתעלמת מתווי הזנת שורה והתזר גררה ולכן אין צורך לבדוק מצב של. 'סוף שורה, השימוש ב-866%₪00 מאפשר להימנע מההוראות המורכבות שפגשנו בתוכנית 2אדפסתטה. / : | פרק 13: טיפול בקבצים 461. תרשים 13.4 הפלט של תוכנית 83דפסגשח ]14 א131ז,*111*,]121:,אנ89:,*נ08],*נ87ז,*861: א*נפה],*נ04],אנ83:,*נ82:,*נ01ז, 289 א271],א261],א251],א*121*,]241,א211*,]221],א*191], *181],א171],א1161,א151 . אנ44] א[ר4], א421]: *411] א*ו9ב],א01ב], *נ1?7], *[6ב], *51ב], א[341],אנרב], א321], א311:,*נ ]אנ *56[*,]5/1],א31*,1541*,]551ם],*1491*,]511*,]521,א401:, א*1471,א451*,1461ז. 4"+, א721] א[71], א691],א1601,א1671,א1661,א*1651,א*1641,א631],א1621,א*591*,1611 *נ80ז, *נ861*,]07],א*051ז,א*841],*נ821*,]83], א*נ81ז, אנפלז, אנה771*,]?8],א1761,*נם?1, *1, ּ *נ99], א[98], א[9?7],א961],א951], א1נ94],א931:,א921],א911:,א891:, משום שהפרוצדורות 866%₪0% ו-ם866%801 מתעלמות מתווים ריקים ומסימני 185', הן מתאימות במיוחד לשליפת נתונים ‏ מקובץ טקסט, נדגים זאת בעזרת קובצ הנתונים ז'גק, גז'תקאא11 שבתרשים 13.5, הנקודות שבתרשים מייצגות תווי רוות, לפני כל נתון שבקובץ ואחריו מופיע מספר לא קבוע של רוותים, השורות 4, 6, 6, 19 ו-23 מכילות רוותים בלבד, שורות 12, 13 ו-22 - ריקות לתלוטין. בקצרה, קובץ ז'גס.תז'תספא21 אינו קובץ שתוכניתן שמח לפגוש. תרשים 13.5 תוכנו של קובץ דאפ.אדאספאז.) תוכנית עאספא11 שבתדפיס 13.6 קוראת ומציגה שלוש פעמים את תוכן הקובץ זיתכ. תייתספא1.1, בפעם הראשונה משתמשים ב-+₪0 כדי לבדוק את מצב.סוף הקובץ, 2 חלק ב" התכנות | ומציגים את השורות; בפעם השניה משתמשים ב-+560%₪0%; ובפעם השלישית משתמשים בצירוף של 566%80% ו-ם01ע808%, שים לב, התוכנית מתייחסת לכל שורה כאל מחרוזת אחת. תדפיס 13.6 ; 11116015 מתפינססינכן ;09% 658פגו ינפש ;16% 1 6 ,שַת1ע5% : %8ת%0ת00 ;סט :| סאפת13 תנשסס ; ( '00848.041ת11' ,116עת1 )תש1פפב ; 01802 ;( 116עת1 )650% ;2 =: סאפת13 תגשסס 60 ( 116עת1 )+20 פסת 16נחש ;( %5ת50ת00 ,116עת1 )ת26801 ; ( סאסת11 )סתך ;( '*' ,%8ת60ת00 ,7 "7 ,6:סא6ת13 )ת[1%0ישט תס ; ת901סיד , 01180 ; ( 116תת1 )6%פ6ת ;0 =: סאפת1 תנשסס 60 ( 116עת1 )5004001 פסת 16נתש ;( %5ת%6ת00 ,116עת1 )ת08841ע ; ( סאסת1 )סת1 ;( '*' ,%8ת66ת00 ,7" ,6:סא6ת11 )ת1%91יש ; תס ; ה680[1י1 ; עססי 01 (( 116עת1 )650% ;0 =: סאסת1 תנקסס 60 ( 1116ת1 )500001 >סת 116 ' תנקסס 40 ( 116עת1 )ת560%901 פ%סת 16גתש ;( %5ת000%56 ,116עת1 )ת086[1ע ; ( סאפת11 )סח1 (( '*' ,8לת00ת00 ,7" ,6:סא6ת13 )ת1%61יש סתס ; תס ; ת0801י1 ( 10116 )01056 - פרק 3 טיפול בקבצים 463 הפלט של הסבב הראשון של ע'אספא1.1 מתואר בתרשים 13.6, הקוב ז'ת. תזיג סמאד.ז מוצג במלואו, הכוכביות מסמנות את סוף השורה, הפלט של הסבב השני והשלישי אהה, כמתואר בתרשים 7. = תרשים 13.6 הפלט של הטבב הראשון של זאסשא | 0 45 3 12 10 * ₪ 08 6 4 02/2 20 א15 2( | 9 6 :3 3 * ; 4 28% 16 2 8 -4 5 * 5 28 70 15 8 | 5 7 * 38 24 18 2 6 8 * 28003500 21/0 14 7 : * 0( 24-32 16 8 18 45 56 27 18 9 1 * 120 : / 09 * ב1 * 58 -- 48 288 180 14 * 55 44 3 11 15 * 0 16 00% 48-68 36 24 12 17 * 6 52 389 26 ּ 18 9 "7 28 -- 8 14 . 20 * 75 458 | 38 152 21 220% . 23 תרשים 13.7 הפלט של הסבב השני והשלישי של זא6=:אז | 1 12 3-4 5 * 2 2-4 - 6 8 18 * 3 6 ּ 2 15% 4 4 8 12 16 20* 5 5 18 155 20 5 * 6 6 2 18 24 38 -* ? 7 14 21-28 35 . 8. 8 16 24 2 0: * 9 9% 18 7 36 -' 45 * 18 18 28 8 >29 58 * 1 1 22 > 3 44 55 * 12 2 24% 36 48 8 - 13 (9 26 39 52 5 * 14/5 14 28 42 6 208 * 4 תלק ב" התכנות כאשר התוכנית מעבדת את קובץ הטקסט כסדרה של הוראות 0 [- ם50001, נמחקו כל השורות הריקות, השורות המכילות תווי רוות | בלבד והתווים הריקים : המובילים, אם תעבד את קובץ הטקסט באמצעות קריאות מטיפוס צהמס, תוכל למחוק | את כל התווים המיותרים, (ראה תוכנית 91אסמא1 שבתדפיס 13,7). תדפיס 13.7 101 ותפּירססיזסן ' ,037 פספגו ו ינפ ;6אסת :1 6 ו (עסט :| סאשת11 ל : מותהתכ 1 תנפסס ; ע0ט011 ;( '848.287תסת11' ,110עת1 )תשוטפה ( 116עת1 )650% ;2 =: סאפת11 תנשסס 60 ( 101116 )9064001 ססת 16ות ; ( סא6ת1 )10 - ((' 5 ,6:סא6ת11 )156עט תנפסט 60 ( 116"ת1 )ת5004001 >סת 16נג ; ( תטהתק41 ,116עת1 )2080 ; ( םגואפתק1 )150 ; סוס ; 611 נא 0 - 0 6 ה . תס הפלט של תוכנית 21אסמא1ע מופיע בתרשים 13.8. כל הרוותים נמתקו. תרשים 13.8 הפלט של תוכנית 1זא6םאז | 15 2200 1225 00 225 612182426 = 421205 20 1245 18 11 12445 127 84 13 5 14- 8 15 - - 5 ₪ ךש יס ]> כס 0 / | | | פרק 13: טיפול בקבצים ‏ 5 הפרוצדורות +866%80 ו-מ866%801 מתעלמות מחלקים גדולים מקובצ הטקסט, ולכן הן אינן שימושיות ביותר בזמן קריאת תווים או מתרוזות, והן יעילות במיוחד כאשר מעבדים קבצי טקסט הכוללים נתונים מספריים. תוכנית 72א80א11 שבתדפיס 13.8 שולפת את המספרים שבקוב ציתם תיתספאד.. תדפיס 13.8 ; 11116068 תהיהססיזן 0% 68פגו ינפש ;תק 1 6די (סעסש : סאפתגם ,1 תנשסס ; ( '7ת.08%8סת11' ,116תת1 )5510 ; עספי 01 ; ( 16גחת1 )50%סת תנשסס 00 ( 116עת1 )₪01 פסת 16ומש תנשסס 80 ( 116עת1 )ת1סם פסת 16נמש ;( 1 ,116תת1 )684ע ;( 1:5 )166עש ;תס ; ( 116עת1 )0801 ; 6013 נינש הי - ; 0801 01190 ; ( 116תת1 )6%פסת ;0 =: סאסשת1 תנשסט 60 ( 116+ת1 )?506002 ססת 1186ב ; ( סא6ת13 )סת1 ;( ' 5 ,6:סאשת11 )166עשט תנשסט 60 ( 116עת1 )ת001א500 ססת ‏ 116מש ;( 1 ,116תת1 )20884 ( 1:5 )156 - ; הז461 1ינא - ; ה1 16901 ;( 116עת1 )01056 . תס התוכנית מעבדת את הקוב פעמיים. בסבב הראשון היא משתמשת ב-+0ע וב-ת₪01 (תרשים 13.9), ובסבב השני היא משתמשת ב-+566%₪0 וב-ם001א566 (תרשים 0).. | 2166 חלק ב': התכנות > 0 | % ן תרשים 13.9 הפלט של הסבב הראשון של תוכנית 2דאספא1 !ו 5/2 4 6 818 3 6 85 1 2 3 4 .4 16 12 8 4 2 10 48 06 27 18 9 48 32 24 16 8 35 28 21 14 7 38 24 18 12 6 ,25 20 15 18 ם > 5 30 15 78 56 42 28 14 65 52 39 26 13 68 48 36 24 12 פפ 44 33 22 11 58 48 38 8 8 75 68 תרשים 13.10 הפלט של 2<זאס6סאז | יס כםס 4 3 8 6 5 2 9 6 12 5 28 15 18 8 24 18 12 פכ 28 21 14 8 32 24 16 5 36 27 18 8 40 30 28 18 108 פפ 44 בב 22 11 11 8 40 36 24 12 שי ן פס 52 39 26 13 ּ‏ 8 56 42 28 14 14 5? 60 45 38 15 15 6 ם, ךש ₪ (- כס סא ₪0 מ ךש יש נ- כס םא [ הפרוצדורות 5 ו-ם₪01 אינן מסוגלות לטפל ישירות בשורות ריקות (ראה תרשים 9). הפרוצדורות +966%80% ו-םת50₪%2801 יוצרות פלט נאת יותר, כיוון שהן מדלגות על תווים שאינם נומריים. הערה: +900%50 [-ת500%01 [ [ למעשה פרוצדורות אלה אינן מדלגות רק על תווים ריקים וסימני כַ28. | הפרוצדורה 566%₪0% מדלגת על כל התווים שבין 0 |צדספת ו-32 5011 (80 עד 832), פרט ל-26א8. בתחום זה נכללים תווים ריקים (832) ותווי בקרה כמו ס8] (89), |הונת שורה (810) והתזר גררה (813), יש התייחסות אל 72 (826) - המסמן את סוף הקובץ. : הפרוצדורה 5001 אינה מותעלמת גם מהזנת שורה (10) ומהחזר גררה (813). כתיבת נתוניסם ניתן לכתוב נתוני פלט בקובץ שנפתת על ידי 1%6עשסת או המססקה. העברת הנתונים עצמה מתבצעת על ידי 6>בעש או ת[166תש, כדי לרשום את הפלט בקובץ ולא על גבי המסך, יש להוטיף ל ו ול-15618ע₪ פרמטר המגדיר את שם הקובץ. התחביר הוא: ;כו יי 2, ) [ש8/ ,110ע%א76 )166עט נ 2 2 ,) [ע78 ,116ע%א76 11 ב אחרי פעולת 6א, פעולת הפלט הבאה (150ע או מ1%661:ש) מתחילה במקום שבו הסתיימה פעולת 1+6שש הקודמת, פעולת הפלט הבאה אחרי פעולת ם1661ץש מתחילה בשורה הבאה, כלומר, הפרוצדורה מ1661:ש מסתיימת תמיד בסימן סוף שורה (813810), ניתן ליצור שורות ריקות 4 ידי הפעלת מ1661שש ללא נתונים. עריכת פלסי לקובץ טקסטי כאשר מעבירים מחרוזת פלט לקובץ. טקסט, גודל השדה הוא מטפר הבתים הנמצאים במחרוזת. למעשה, תווי - הרוות שלפני המתרוות ‏ ואחריה . אינם מועברים. כל הנתונים המספריים נכתבים. ברצף אחד שבו יש ספרות,. נקודות עשרוניות. וסימני מינוסי לציון ערכים שליליים. הפלט של מספרים ממשיים הוא בתצורה מדעית. קובצ פלט עלול, אם כן; להיות. בלתי ברור, תוכל לראות זאת. בתוכנית ספותסעאט שבתדפיס 13.9. | דסת ו פיט 13.9: ל תדפיס 13.9 | 0 7 ( 680 : 1 10 0 : (אסל יק | תנשפסס תדפיס. 19 ו א הבא 0 ₪ 7 8 תלק ב" התכנות 2 0 | | 1 המשך תדפיס 13.9 ן ; ( '8.047ת28%0820' ,ת )תק1פב ;( תע )1%6יטסת 1 ; 'סכןס* =: ₪ ו 0 5 00 1 =: 1 ע02+ ;( 1ו,ת )156עט תנססס 60 5 60 1 =: 1 ע0ס+ (( 1 )0ע90 =: ע (( ען0ת )166עש 6 0 5 50 1 =: 1 108 ;( 8ו,ת )₪150 | י 60 5 60 1 =: 1 עס+ ;( 00,ת )166י -נ (ץ )01056 : . 6 תוכנית ספאתסעאט יוצרת קובץ בשם *יגפ,אתסעגעיתס. תוכל לראות את תוכנו באמצעות העורך של טורבו פסקל או בעזרת פקודת מפצע' של 205, אפשרות אתרת להצגת הקובץ היא שימוש בתוכנית פאטפ, שתתואר בהרחבה בסוף הפרק, תרשים 1 מציג את תוכנו של קוב צ'גס,אתסעגצגס כפלט של תוכנית פאטפ. תרשים 13.11 קובץ דגפ.א08?דגס של תוכנית ספאפס:אט 03%3]070,08% | 2866 1 1 1 118 5 1 00000000005100, 1 12345 38202031 38204522 30303038 38303028 35203128 31323334 468, 1 41421356240+00, 32303520 31223733 22303020 36323445 32313335 20243134 08), 2 ₪8760+08 304522208 303023038 30302028 28322030 45203030 38303?36 030 23606797751+003, 2 ₪ 63616263 382306162 27354528 36372937 32333630 38283225 אאא אס סנב 8 6358585595 62636162 61626361 : | | פרק 13: טיפול בקבצים 469 תוכנית עאטפ מציגה את תוכן הקובץ .בתצורת תווים ובתצורה הקסדצימלית. כל אחד מששת הטורים. הראשונים מכיל ארבעה ערכים הקסדצימליים, הטור האחהןן, = הרחב יותר, מכיל את 4 התווים המתאימים, הנתונים: שיצר סשאתסעאט רציפים. - הרווחים היחידים הם הר של חמשת המספרים הממשיים. ברור שקשה לעבד נתונים שנכתבו בצורה כזאת, למזלנו קיים פתרון פשוט, אם תוסיף בפרוצדורה 166עש או ם1661,שא, אחרי הנתון, נקודתיים ומספר תיובי, טורבו פסקל יניח שמספר זה מייצג את הגודל המינימלי של ה ניתן לכתוב את המספר בצורת קבוע, משתנה או ביטוי. התצורה המלאה של מספרים ממשיים דורשת מעט יותר: נקודתיים, מספר תיובי המגדיר את גודל השדה, עוד נקודתיים ומספר תיובי נוסף המציין את מספר התווים שאחרי הנקודה העשרונית. המהדר מעגל את המספרים במידת הצורץ. > אם גודל השדה: גדול מהנתון;. - המערכת מבצעת. יישור לימין ומוסיפה רווחים = מובילים. אם. הנתון. גדול מהשדה, המהדר: משנה אוטומטית את 5 ומגדיל את השדה. בהתאם, הנתונים לא *קוצצו. תוכנית סמאתסע 0 -10 3) מעבירה לקובץ הפלט את הנתונים שהעבירה תוכנית פשאתפסעאט, הפעם פרוצדורות 1>6מא משתמשות בטכניקת יפה שתוארה זה עתה. תדפיס 13.10 ; הדנ ותהיוטסינקן :| ; %ת1שתסי : ; ב08ע 1 ;[ 100 ]תנעט : ; יזמר : 0% ג ק -. תנפסס ; ( '298%97038.07' ,7 )תשנפפב נ(-ת )106ישסת ';'0כ8' =: ם 0 ₪ 4 = 0 5 0 1 =: 1 202 (( 1:8 ,7 )06נגעט תנשסס 60 5 %0 1 =: 1 ש0ס?. 2 יו ;( 1 )%עש8 =ן עו של שר לוי ללש יר 2 ו 7 : ה []( 8:4:ע ,0 )6סנותעט תדפיס 13.10 ממשיך בדף הבא 0 חלק ב" התכנות המשך תדפיס 13.10 - 0 5 סש 1 =: 1 ע0ס1 נ( 05:5 ,0 )166עש סף 5 סל 1 =: 1 202 ;( 0:0 ,7 )146 ;( ת )010586 , תס תוכנית עאטפ הופעלה שנית, ומציגה בתרשים 13.12 את המתכונת החדשה של קובצ עיתס אתסעג דתס. : תרשים 13.12 קובץ דג5.א06? דגס של תוכנית פפואחס: 5 95 | 1 1 1 ספת יס + 08 5 4 3 2 1 303020280 20212234 20283528 33202024 28322028 20203120 0 1,73223 1.4142 38302820 20222220 231260בב33 20312837 31343220 20212034 35 820 8200 2.2361 626320820 03202061 20286162 20616263 33363120 20222032 א א א % א 355 6פג 202058 58202050 20582020 28205820 28616263 61626320 קבצים על הדיסק ואזורי אחסון הגיע הזמן לערוך סיור קצר על התקליטון, התקליטון הנפוץ ביותר הוא תקליטון דו-צדדי של 4/ 5 אינץ' עם צפיפות כפולה, יש להנית שתוכנת טורבו פסקל שרכשת נמסרה לך בתקליטונים מסוג זה, קיימים גם תקליטונים בעלי תכונות פיזיות אחרות, אולם עקרונות הפעולה זהים בכולם. | פרק 3 טיפול בקבצים ‏ 471 הנתונים שבתקליטון נשמרים במעגלים קונצנטריים המסודרים סביב מרכז התקליטון. | בתקליטון דו-צדדי, המעגלים נמצאים משני צידי התקליטון. בתקליטון בעל צפיפות כפולה יש 40 טבעות בכל צד, כל טבעת נקראת מסילה (80%:+), מסילה 0, המכילה את מידע התיתחול של 05כ, נמצאת בצידו התיצוני של התקליטון, ומסילה 39 היא המסילה הקרובה ביותר למרכז, | בכל מסילה יש 9 קטעים (28ע580%50) בני 512 בתים, קטע הוא היתידה הקטנה ביותר שמערכת 05 קוראת. לא קשה לחשב את קיבולת התקליטון: 2 צדדים א 40 מסילות % 9 קטעים א 512 בתים ובסך הכול - 368,640 בתים. מערכת 2058 מצרפת זוגות של קטעים לאשכולות (01005+925), אשכול 0 הוא קטע 0 וקטע 1, אשכול 1 הוא קטע 2 ו-3 וכן הלאה, מערכת 205 מעדיפה. לעקוב אתרי 0 אשכולות במקום לעקוב אחרי 720 קטעים, משום כך, השטתים על הדיסק מוקצים תמיד ביתידות של 1,024 בתים, ומספר הבתים הפנויים שמציגה הוראת אפ הוא תמיד כפולה של 1,024. כדי לה מדוע פעולת התקליטון איטית כל כן, יש לזכור שכדי + להשלים את העברת הנתונים יש לבצע שתי פעולות: 1 ה"ראש" של הכונן (כלומר ההתקן האלקטרוני המבצע את פעולת הקריאה והכתיבה) תייב להימצא ליד המסילה המתאימה, משך הזמן הנתוץ להזזת הראש נמדד במילישניות. 2,. לאתר שהראש הגיע למסילה המתאימה נמשכת העברה של כל בית כמה מאיות שניה. כאשר גודל הקובץ עולה על 1,024 בתים, יתכן שהאשכול הבא נמצא במסילה אחרת. במקרה זה יש לחזור על פעולת איתור המסילה, בדרך כלל, קבצים גדולים אינם מאותחסנים באשכולות רציפים, כאשר הקבצים שעל הדיסק מפוורים על פני אשכולות רבים, הפעולות נמשכות זמן רב יותר. צמצום תנועת הראש עשוי לתסוך ומן רב. 72 תל ס ב': התכנות | | פיקוח על גודל אזור האחסון מה לכל זה ולטורבו פסקל? נניח שנתון מערך של בתים: | | ו 1 1000 ][] ל צהתסעת נניח גם שאתה מבקש לרשום ב-7ץ2562228 נתונים מקונץ טקסט, באמצעות ההוראות: 60 77 סט 1 =: 1 עס+ ,([ 1 ]ץה8תעתססעם2 ,%6711610א76 )680ע כפי שראינו אה עתה, ביצוע 1000 קריאות נפרדות מהדיסק נמשך אמן רב. = כדי לתסוך זמן, טורבו פסקל מקצה אוטומטית לקובץ הטקסט, אזור אחסון .בן 8 בתים, כאשר התוכנית מבצעת את פקודת 2686 הראשונה, היא מעבירה 128 בתים (רבע קטע) לאזור האחסון, פעולות 2686 נוספות יקבלו את המידע מתוך אזור האחסון (באופן אלקטרוני) ולא יאלצו לפנות לדיסק (באופן מכני). פעולת הקריאה הפיזית הבאה תתבצע רק אחרי ניצול כל הבתים שבאזור האחסון. = בעת עיבוד קובץ טקסט, המהדר משתמש תמיד באצור אחסון. מערכת 5 מעבירה את הנתונים ביתידות של 512 בתים, ולכן השימוש באזור או של 128 בתים בזבזני. גודל אזור האחסון - 128 בתים - נובע מסיבות היסטוריות, הקשורות למהדורות הישנות של 5ס0פ. ּ ליישומים | החדישים, | המטפלים בגושי נתונים גדולים | (גליונות | עבודה אלקטרוניים, מעבדי תמלילים וכדומה), קשה להסתפק בברירת המחדל של 128 בתים. שמירת 1,024 בתים בזיכרון עשויה להקטין משמעותית את משך הוזמן המוקדש להצבת ה"ראש" במקום המתאים, במקרים שבהם ברור בי התוכנית תזדקק בלאו הכי לשאר הנתונים שבזיכרון. בטורבו פסקל לת לטפל במצב זה בעזרת הפרוצדורה 0 שהתתביר שלה 5 081ת6)פטם ;%6א16 : ע%1%10ת116106ע%א16 עפט )15ום+6א76 5 ;,( [ 6עסש : 5126 ; + תו | | פרק 3 טיפול בקבצים 473 %1+162ת116166ע8%א6י' הוא משתנה קובץ הטקסט, ע9+62/8טם הוא שם המשתנה שיהווה אזור אחסון חדש. השדה האופציונלי 5126 קובע את גודל אזור האחסון. כאשר משמיטים את 5126, המערכת משתמשת ב-( ע67/8++טם. 0 יש להפעיל את +28+%א56616 אחרי הוראת מ5510פת ולפני שהקובצ נפתת באמצעות. %, 106טסת או סתססקת. התוכנית מפצאופא (תדפיס 13.11) מדגימה את אופן השימוש ב-+גופ+56616%. הפעולה שהתוכנית מבצעת דומה לשירות מפצץ של פסת, אולם בניגוד ל-אפצץ, פפצינאאא עוצרת כאשר המסך מתמלא, וממתינה ללחיצת 66 העצירה כ מאפשרת לעיין בקובץ, דף אחר דף. תדפיט 13.11 ; 1006 ותפינטסיוסן [02% 808 סט ,0% : | 0116 ; עהתס : כ [ ע66פגו1ס 111 4 ] - ;שפת0 +0 [ 1..1024 ] עהעעה : 67+צגום הנפסס תנקסס תפת 1 = ףתוססתרינהק 12 (|( ( 1 )ע6פתהע8ק ,16847116 )9100( > [ 0000028 1,024 811 490205 ] ; ( ע190גו , 7116א16 )5616021 0% ;( 16800116 )%ספסת תגשסס 60 ( %7116א16 )₪04 פסת 16נב ; 01502 תנשסס 60 (( %%116א16 )?סע ססת) תה (24 <> צסעסמו) 16נט ; ( 03400602 [הגו10ט01ת 1‏ ( %7116א16 )080 ו :8,0%01י8ר01 6328 בש 16 ) 6 ביט , ; תס ; ת6901י ; תת 4 . תס הוראת תפט1ע עד כה ראינו שטורבו פסקל משתמש באזור האחסון לשמירת נתונים הנקראים מהדיסק,. הפרוצדורות 166עש |ו-םת61ס1עש משתמשות באזור האתסון, לשמירת נתונים האמורים להיכתב. על הק הכתיבה הפיזית על הדיסק מתבצעת כאשר אזור האחסון מתמלא. 4 תלק ב" התכנות - > 2% . 1 בתחילת. הפרק הדגשנו את התשיבות שיש לסגירה של קוב,: ברגע שהתוכנית אינה זקוקה לו יותר. לא כל התוכניות נהנות מיתרון כזה, גליונות אלקטרוניים ומעבדי תמלילים טוגרים את הקובץ בדרך כלל רק בסוף העיבָּוד, לאתר שחלף גמן רב. : י כדי למזער את הסכנה של איבוד נתונים, כאשר הקובץ תייב להישאר פתוח זמן > רב, ניתן להפעיל את הפרוצדורה בפט1ע המעבירה את תוכן אזור האחסון אל: הדיסק, התחביר הוא: ;( ת%1%16ת62116106א6 )מפגו1ע ניתן להפעיל: את הפרוצדורה בכל עת; אולם בדרך כלל הומן המתאים ביותר להפעלתה הוא בעת המתנה לקלט שיקיש המשתמש. איתור שגיאות קלט/פלט טורבו פסקל מתייחס בדרך כלל אל שגיאות הרצה כאל שגיאות חמורות ביותר, המחיבות הפסקה מיידית של פעולת התוכנית. | לעיתים הכוונות הטובות של טורבו פסקל מהוות מטרד, לדוגמא: ננית שאתה מבקש להוסיף נתונים לקובץ טקסט, כאשר הקובץ כבר קיים, יש לפתות אותו על ידי 6תסססת. כאשר מדובר בקובץ תדש, שאינו קיים, יש לפתות אותו.: באמצעות 86, באשר מנסים לפתות קובץ עם הפרוצדורה הלא נְכונה, נוצרת שגיאת הרצה המפסיקה את פעולת התוכנית. | טורבו פסקל מאפשר למנוע את בדיקת שגיאת הקלט/ פלט באמצעות הוראת המהדר (-%1), כדי להפעיל את הבדיקה מחדש יש להשתמש בהוראה 0 כאשר בדיקת שגיאות הקלט/ פלט אינה מופעלת, לא תתבצע עצירה של התוכנית בגלל שגיאות קלט/ פלט, במצב זה התוכנית חייבת לבדוק בעצמה, יבאמצעות הפונקציה 10% את תוצאותיה של כל פעולת קלט/ פלט. המערכת מתעלמת מכל הפעולות ופונקציות הקלט/ פלט עד אשר מפעילים את 1086501%6. | הפונקציה 10369116 מתזירה אפס כאשר הפעולה מסתיימת בהצלחה, האשר הערך המוחזר אינו אפס, היתה שגיאת קלט/ פלט. טבלה 13.1 מכילה את רשימת הקודים המוחזרים: : ו ו[ פרק 13: טיפול בקבצים 475 טבלה 13.1 הקודים המוחזרים על ידי 10865016 קטגוריה ערך -. משמעות אין שגיאה קובץ לא נמצא נתיב לא נמצא יותר מדי קבצים פתוחים אין גישה לקובץ מנהל קבצים לא נכון קוד גישה לקובץ לא נכון מספר מנהל ההתקנים לא נכון אי אפשר למחוק את הספריה התורנית אי אפשר לבצע שינוי שמות בכוננים שונים שגיאות 05 - 2- 2- 2- כ ;א ₪ ₪ תו א תשר שגיאות קלט/פלט 100 שגיאת קריאה מהדיסק 1 ה שגיאת כתיבה על הדיסק 12 הקוב לא הוגדר על ידי תצנפפת 3 הקוב> אינו פתות 4 הקוב אינו פתוח לקלט 5 הקוב אינו פתות לפלט 6 תצורה נומרית שגויה שגיאות תחמורות | 150 הדיסק מוגן מפני כתיבה 1 יתידה בלתי מוכרת 2 הכונן אינו מוכן 3 פסקודה לא מוכרת 4 שגיאת 06 בנתונים 5 מבנה לא נכון של הגדרת כונן 6 שגיאת חיפוש בדיסק 7 אמצעי לא מוכר קטע לא נמצא 9 אין נייר במדפסת 0 שגיאת כתיבה בהתקן 1 ה שגיאת קריאה מהתקן 2 תקלת תומרה 476 תלק ב': | התכנות | | פירוט הסיבות לתקלות נמצא בספרות העזר של טורבו פסקל, בדרך כלל אין צורך לדעת מה בדיוק היתה השגיאה, בדיקת מצב של קוד אפס או קוד שאינו אפס עונה בדרך כלל על הצרכים, למשל, כדי לפתות קובץ קיים באמצעות במסססת ניתן להשתמש ב: ; ( 6ת16%88גע 16 )5 [+ 81 ;( 116ת40ת1 )בתססס4 [-91) תסמל 0 <> 10009016 +14 ; ( 10207116 )156ישסת שגיאה הנוצרת על ידי פרוצדורת 6מסכסת נובעת ברוב המקרים מניסיון לפתות קוב שאינו קיים, מונן שאם הקונץ קיים אולם הוא מוגן מפני כתיבה, הפרוצדורה 5692166 תיצור שגיאת הרצה שתעצור את התוכנית, אם תבדוק את תוצאות פעולת הקלט/ פלט אחרי 6מססקת ו-6₪2166ת אך לא תבדוק את תוצאות > הוראות מ1661:א ו-166ע₪ המופיעות אחר כך, תיווצר שגיאת הרְצה כאשר תשתמש בכל השטח הפנוי שעל הדיסק. | הפונקציה 01%6ו10899 מציבה אפס בקוד השגיאה. אם אתה מבקש' להתייחס לקוד זה אחר כך, עליך לשמור אותו במשתנה מטיפוס :125606, | ל 1% =: 66ס0עסעיות תפמל 2 = 00686עסמע +11 ( '.6תט0+ פסת 79116 )ת[0ס1ישט תסם%+ 6 = 0006עסעעע 11 6156 תו ' . 0+ פס 86ק* ) 4011 גיט ב-1086881% משתמשים לעיתים קרובות כדי לוודא שהקובצ פתוח. תוכנית 2פצנאעא שבתדפיס 13.12 היא גרסה משופרת של תוכנית מפצצניחטא. התוכנית מסתיימת בצורה נאה כאשר הקוב לא נמצא. תדפיס 13.12 ב ותהידטסינקן ;02% 568 | ו ;6% : 70000116 : | יס = : 00818056 10116281 [ עס%פו1ס 2011 ג ) - נעת0 01 [ 1..1024 ] קהעצה : עס++גות , תנפסס תנשסם תסגט 1 = 6תוססתהשגת 11 ;( ( 1 )ששפתהנפק ,1000116 )ספ [ 8ע0%6 הס 1,024 811 פסתגוספה ] ; ( ע220גום , 16867116 )500101002 (-81) ( 16247116 )סספסת תדפיס 13.12 ממשיך בדף הבא 5 ו | פר ק 3 טיפול. ב קבצים 17 המשך תדפיס 13.12 0 [+₪1 > תסמל 0.<>י 10009806 14 ) .טס 6 תפשו ' (( 1 )ע%פתהעגת )ת1591יש * השס 6196 תנשסס 60 ( 0/116א10 )₪01 פסת 116ב 0 : ! ; 01902 תנססם 80 (( %%116א10 )₪01 פסת) התג (24 <> עסעסת) 16נגג ; ( ע80%0י081 1610100281 , 16807116 )סע - ; ( 0לסי1פ0 81ג610168ת1 )06 ביט | ; תס ; הז[081י1 ; תת - 0 - | - הפונקציה 1 הפונקציה 10868016 אינה מגלה רק. שגיאות *בקבצים (ראה ‏ | טבלה 13.1), הפונקציה מתוארת ביתר הרתבה בפרק הבא, המטפל בפעולות ספריה, רוב התוכניות שבפרק זה אינן משתמשות בבדיקות קלט/פלט בגלל ‏ שיקולים של תיסכון במקום, ניתן להשתמש ב-108658016 בכל תוכנית המכילה פעולות קלט ופלט, דוְגמאות נוספות נמצאות בסוף הספר, בקטע המתאר את הוראת המהדר [(81). - - קבצים עם הגדרת טיפוט. קובץ עם הגדרת טיפוס מכיל נתונים מהטיפוס שהווכר בעת הרי על הקוב. בדוגמה הבה 1 2ע, 3 ו-24 הם קבצים עם הגדרת טיפוס. סע | 20006 = 6ע00ס6תעסו0ס6פגת) ;[ 30 ]שת1ע : סותטזן %ַת1שַת10 : שסמתטא%סס ; 208 : 0200141816 ; תס | קפט (%6עס ?0 2116 : 1ק | נ 000010 סבג 01 .2116 : אע ;שהתס +0 2116 : 5ק ;681ע 01 2116 : 4ק 8 תלק ב" התכנות הגישה לקבצים עם הגדרת טיפוס מהירה מאוד, כיוון שהמהדר יכול להניח שתוכן הקבצים מורכב אך ורק מטיפוס הנתונים המוגדר, טורבו פסקל מניח שכל הפריטים שבקובץ מאותסנים בדיוק בתצורה שבה אותסנו ב-אתא. קריאת קבצים עם הגדרת טיפוס הנתונים עם הגדרת טיפוס שבקובץ אינם כוללים תווים לסימון סוף שורה, ולכן אי אפשר להשתמש ב- מ6861 וב-ת1661עש, יש להשתמש אך ורק ב-686ע וב-166עש, זהו גם ההבדל בין קובץ טקסט וקובץ מטיפוס שהתס. כתיבה לקבצים עם הגדרת טיפוט תוכנית פאספ,11ע שבתדפיס 13.13 מדגימה את ההבדל שבין קבצי טקסט וקבצים עם הגדרת טיפוס, התוכנית כותבת מלה אחת לקובץ טקסט ולקובץ עם הגדרת טיפוס. תדפיס 13.13 ; 110070 מתפינשסינן | (%א6ל :- 762407116 יתסא +02 2116 : 66"116סעד סש 1 6גו[.8 תנפסס (( '%א%.1161"' ,16800116 )תשנפבב ; ( 160205116 )166יטסת ;( '0ע%.1161ע' ,17008116 )תשופפב ; ( 60%116כץ1' )169ימוסת ;99455 =: סגוב8 ; ( סגו781 )106ע ; ( 78106 ,10867116 )106יעט ; ( 78106 , 17000%110 )166יעש ; ( 0%116א10 )010586 ; ( 1700069116 )01086 . 0 הערך העשרוני של 89885 הוא 39,653, הרץ את 211/05 והפעל את תוכנית פאטס לעיון בקבצים שיצרה התוכנית, תוכנו של קובץ 7א181,7ע מתואר בתרשים 3. המספרים בקובץ טקסט נשמרים בתצורה של תווי 85011 ולכן הספרות 3, 9 6 ,5 ו-3 מיוצגות על ידי %33, 539, %36, 535 ו-%33. פרק 13: טיפול בקבצים 479 תוכן הקובץ השני פצץ, 1אתדע מוצג בתרשים 13,14, (זכור: מערכת 05 הופכת את סדר הבתים במלה). תהליך המרת תצורת הנתונים מקובץ טקסט לזיכרון נמשך ומן רב, המרה זו נחסכת בקבצים עם הגדרת טיפוס. קבצי טקסט של טורבו פסקל מקבילים לקבצי 5011 בשפת 6ד5מפ, קבצי טורבו פסקל עם הגדרת טיפוס מקבילים לקבצים בינריים ב-6דפּגּם. הבה נראה מה קורה עם משתנים בתצורה של מחרוטות, תוכנית 1 0%2מ11ע שבתדפיס 4 משווה בין מתרוזות פלט של קבצי טקסט וקבצים עם הגדרת טיפוס: תרשים 13.13 הפלט של תוכנית קאעס שהופעלה על קובץ דאז.1ם |ז] שיצר קא6=; וז 5 5 > 1 ו 1 7886 %%%] 0 תלק ב" התכנות תרשיסם 13.14 הפלט של תוכנית סואטפ שהופעלה על קובץ פצד.1ם ונז שיצר קאסם וז [ ל 2 11 מב | +11 | 0 שס תדפיט 13.14 ; 1116060701 ותהידםסיוסן יצפט ,6 :- 116ת0א70 ,שתנעל8 02 2116 : 116ת6ססעד (שתנעפם :| 655820 תנשסס (( '%א%.01101' ,16807116 )תשופבב ;( 16800116 )166קחסת נ( '0ע%.1181ת' ,116ת170606 )תסופבג ; ( 100067116 )156עשסת ('.שתס1 0082800025 50 18 0688826 7118" =: 1059000 ; ( 1088806 )106יט ; ( 100889806 ,10800116 )166יט ; ( 0888₪6) , 12662116 )60 גיט ; ( 16860116 )01086 ; ( 190667116 )01086 6 . אתרי הפעלת 1עאסט1ע ניתן לבדוק את תוכנו של הקובץ *א,א1ע באמצעות עפאטס. בתרשים 13.15 ניתן לראות שקובץ הטקסט מכיל רק את 35 התווים עם הערכים, לעומת ואת, קובץ פצץ, 1א/נדע (תרשים 13.16) מכיל את כל המחרוזת. הבית הראשון מכיל את גודל התלק המשמעותי של המחרוות (הקס, %23 או 35 עשרוני), את ההודעה ו-220 בתים חסרי משמעות. | | | פרק 13: טיפול בקבצים ‏ 481 תרשיס 15.-13: הפלט של תוכנית סואטפם שהופעלה על קובץ זאד. ב שיצר על ידו בק | %65של 35 > 1 88 0005000 וו |28ע8(₪ 35 15 655846 5 68617261 333526003 26697320 73616765 20626573 54686973 "וי ב כ ו 1 73200007 62746572 תדפיט 13.16 הפלט של תוכנית קואטס שהופעלה על קובצ קצז.1 |וז] שיצר אס וד 5 256 > 1 6 ה 1 עג([ם 35 15 655396 15ת11 63686172 26333526 65286973 73736167 73286265 23546069 105 565 80000000 0000000 000000 700725 727320606 61637465 ו 00 00 ו ו ה זו , [ ו + 11804649 4905 00 במטמטטם גמטטטטטטן 5[ 0 0 | 0 4 6-0 8+ 62000000 500 4000008 40000 7 4 = * 6 * 6 71001508 2001400 00100 01186 100 0 ךא יי 0 0579008 5770000 7000015 050905 90088000 016725 טוא ך 00900008 90900000 0091057 7 ₪000 . ט 4 את 2 חתלק ב" התכנות קבצים ללא הגדרת טיפוט קובץ ללא הגדרת טיפוס הוא קובץ שמבתינתך אין לתוכנו כל חשיבות, נתונים מקובץ כזה יכולים לעבור למשתנה מכל טיפוס, באותה מידה, ניתן להעביר לקובץ ללא הגדרת טיפוס נתונים ממשתנים מכל טיפוס. בין קובץ טקסט ובין קובץ ללא הגדרת טיפוס יש שלושה הבדלים עקרוניים: = בקבצים ללא הגדרת טיפוס אי אפשר להשתמש בפרוצדורות 2686, ת6801ע, 6 מ1561עא המשמשות לקלט ולפלט בקבצי טקסט., במקומן, משתמשים בפרוצדורות 8100%8686 ו-1%66ע2100%₪82 שיתוארו בהמשך. = ברירת המחדל של קבצי טקסט היא אזור אתסון בגודל 128 תווים, כדי לשנות את גודלו של אזור האחסון יש להשתמש בפרוצדורה +:ו%5א56616, קבצים ללא הגדרת טיפוס אינם משתמשים באזורי אחסון, העברת הנתונים היא ישירה - בין הדיסק ואזור מוגדר בזיכרון, יש כאן תחיסכון במקום ובזמן. = כאשר כותבים נתונים מהזיכרון לקובץ טקסט, מתבצעת המרה מתצורה בינרית לתצורת 25011, כאשר קוראים נתונים מקובץ טקסט, מתבצעת פעולה הפוכה - המרה מקובץ 5011 לתצורה בינרית, פעולות אלה אינן מתבצעות בקבצים ללא הגדרת טיפוס. קבצים ללא הגדרת טיפוס - הכרזה ופתיחה על קובץ ללא הגדרת טיפוס מכריזים באמצעות המלה השמורה 1168ע2, ללא כל תוספת. לדוגמא: עבצ -- 7 : 116ע662סעצתטס קבצים ללא הגדרת טיפוס אפשר לפתות רק על 'ך' 656%ת ו-66נש6. גושי נתונים (פ5אסס1ם) הפרוצדורות 26806א8100% ו-2100%%21%6 מטפלות בהעברה של גושי נתונים גדולים, הנקראים בלוקים (98א106פ). ניתן להגדיר בלוק בכל גודל, וברירת המחדל היא 8 בתים, התתביר של 8100%8686 (-1%6ע2100%8 הוא: | - פרק 13: טיפול בקבצים 483 7 006 /ע250טם עבט ;0116 :2 עבט )210032080 ;( [6)מתסש :368016 עהּט :] 7 000 :ע250ם עהט ,8116 :ע עבט )8100%821%66 ;( [6עסש :3081116 עהּט ;] הפרוצדורה 8686א8100 קולטת 6מטס6 בלוקים מהקובץ ללא הגדרת טיפוס ז. הנתונים מוצבים במשתנה המוגדר על ידי ע9+6גום, מספר הבלוקים שנקראו מותזר בפרמטר האופציונלי 1%גוּפ6א. הפרוצרודה 8100%021%66 כותבת %מתטסס בלוקים בקובץ ללא הגדרת טיפוס א. הנתונים מועברים מהמשתנה המוגדר על ידי ת6++טם, מספר הבלוקים שנכתבו מוחתזר בפרמטר האופציונלי 1%6טפסא. כאשר אין משתמשים ב-116ו69 נוצרת שגיאת קלט/ פלט כאשר מספר הבלוקים שהועבר למעשה קטן ממספר הבלוקים שב-%6מגוסס, אם 16טופסת שווה ל->%מטסס - כל הבלוקים טופלו בהצלחה. קביעת גודל הבלוק הפרוצדורות 8106%686 ו-21%6אא2100 מטפלות בבלוקים שלמים בלבד, בלוקים שאינם מלאים לגמרי -. לא יועברו, חתשוב, על כן, לבתור בגודל בלוק המתתלק ללא שארית בגודל הנתונים שאיתם עובדים. מובן שרק חלק קטן מהקבצים מורכב מכפולה מדויקת של הגודל המהווה ברירת מחדל (128 בתים), ולכן כדאי לקבוע ערך כללי יותר, למשל 1. הפרוצדורות % |(|-2002166 כוללות פרמטר שבאמצעותו לבחור בגודל הבלוק הרצוי בקובץ ללא הגדרת טיפוס. התתביר בקובץ ללא הגדרת טיפוט הוא: ]( 3009126 ,%1+107ת602116100ע06 )6ספסת ]( 3605126 ,%61+162ת602116100כץ6תט )2166שטסת הערך שב-609126ת יכול להיות בין 1 ל-65,535. ברוב היישומים הערך הבטות ביותר הוא 1. בלוק לעומת רשומה בקבצים ללא הגדרת טיפוס מחליפים לעיתים בין המונחים בלוק: (100%ם) ורשומה (60026ם), שני המונתים מתייחסים לגוש נתונים, ללא קשר לתוכן. המלה 6עסספת מתארת בדרך כלל קבוצת נתונים בעלי מבנה זהה (כמו בטיפוס 6צסססת של טורבו: פסקל). בעולם עיבוד הנתונים משתמשים במונח רשומה לוגית (260020 1041081) כדי להתייתס לקבוצת בתים שנקראה מקובצ מסוים, או נכתבה בו. ן תוכנית צע00א001 שבתדפיס 13.15 מדגימה את אופן השימוש ב-8100%230686 וב-811%6א100ם, התוכנית היא גרסה פשוטה של תוכנית צפ0סס:של 5סכ, היא קוראת את שמות שני הקבצים משורת ההוראות ומעתיקה את הקובצ 0 לתוך הקובצ השני. תדפיט 13.15 -----------------.------------------------------3----------ר--------- 0 תיסינ עפש : 0097116 , 116תת1 ;₪9 0% [ 1..512 ] שָ8לע8 :‏ | -101+גום 1 ונת 6300 סמתגון ת1שסס ;( 1 )191% תסמ 2 <> ית 11 ;| ( 1 )%פת8זבע ,116תת1 )תשוסם ;( 1 ,10116 )5ספסת ;| ( 2 )ץ6פתפינאק ,0057116 )ת5510ה ;( 1 ,0057116 )166עשסת 1% ; ( 080 ע6מוחט! , ( 202+גות )512601 201 , 17116 )08סס ג ; ( ת1466/נססונה1 ,080 6מותטא , ש220גות , 116'גו0 )166ועססום ' ; (מ1%60 סמות[ <> 080ת6מו20) עס (0 = 6בסתסמחטא) 11סתט ;( 116עת1 )01086 ;( 0057116 )01086 | , ן - שים לב: הפרוצדורות 656% (-166עש26 פותחות קבצים ומגדירות בלוק בגודל 1. הבדיקה: כ רוי ן | | ((מ21%56א:ספתגוא > טא עס (0 = 6 הגוא 61תג משרתת כמה מטרות, אחרי הלולאה הראשונה יהיה ערכו של 46 תוא אפס, אם לא התבצעה קריאה מוצלחת של ב מצב זה יתכן רק כאשר קובץ הקלט ריק. פרק 13: טיפול בקבצים 485 מאותר יותר, *היה הַהסתע6מתטא אפס כאשר אין יותר נתונים בקובץ, התנאי השני, מ1666:א:סכתטא > 680ת62פתטא מתקיים רק אם אירעה שגיאת דיסק. העברת נתונים לזיכרון הפנימי הפקודות להעברת בלוקים משמשות בעיקר לביצוע העברות נתונים בין הזיכרון הפנימי והדיסק, נדגים זאת באמצעות שתי תוכניות. תוכנית 5₪₪ שבתדפיס 13.16 משתמשת ב- 51062680 להעברת קוב מסוים לערימה. כאשר הקובץ נמצא בערימה - ניתן לסרוק את תוכנו בצורה נוחה, ולהציגו דף אחר דף, בניגוד לתוכניות מעצצאפא ו-52פצע'אטא שהוצגו קודם בפרק זה, תוכנית ₪פ מאפשרת גם לבצע דפדוף לאחור או לחזור, ישירות, לדף הראשון. תדפיט 13.16 596 התףינססינן ;208 ,02% 08פגו : %פתסס ,16 = ת200108 : | שסעקסתן ;1 = בעסא : א6ת61קת יפר )116 : 6תך עס%ת1סק : / גי סט :1 ,שסכמס] ,1%גוססו[ ,5126 ,עס 02 [ 1..200 ]קָאעעם 1 0 - - | ; עהם סי : ' גס ת1שסס ; ( 1 )111% תסמל 2 = סתגוס0תפיהפק 14 (( ( 1 )ע6פתפעהת ,116עת1 )תם1פב / ;( 1 ,116עת1 )0%פסת ;( 118עת1 )71169126 =: 8126 0600 ) /116208, 5126 ( ; ; ( 711642087 )902 =: ספח6ן ;( 1%גופס ,8120 ,0116/2087 ,116עת1 )688תאססגם (( 0 ,( פסשָ8ק )812004 ,סק )שהת110גע 1% 01502 ;[ אס6ת9261ק ]פסשפק =: 1 % ;( ( [ 1:שספחס( ]6 )עב )166יט ;( 1 )סתד ;(25 = צסעסנם) עס (9126 = ג) 11סתט ב ; ע06הסת =: בס תסמל 227 = מס +14 ' תדפיס 13.16 ממשיך בדף הבא 6 תלק ב': התכנות ב.. . | המשך תדפיט 13.16 גר = 4 תסמל 20 = 0 14 6186 + 308067 030% |[ סמס ) =: אסְתַ1ַפשָפע : 271 ( סשת )| תסםף 1 < אסהַת1סקבק 14 : 878 : ; ( א66ת61שאע )60 | ( מכשע ]| תגשסם תסםף 8126 > 1 14 : 781 ; ( א66ת9061ע )סת1 | =: [ א06ת8061ע ]סקפ תס / ,255 =: 01 0186 1 נשסעיסום עס (0 = מס) 1נסתט | שסי ו 611תט ; ( 116תת1 )01086 0 - 0 ו הפונקציה 6 (שתתואר בפרק הבא) מתזירה את מספר הבתים שבקובץ הקלט. דבר זה מאפשר לתוכנית 588 לשריין שטח מתאים בערימה, בתום ההעברה מוצג הדף הראשון על המסך, הדפדוף מתבצע בעזרת קלידי סשווסא, טע ו-תכשפ., התוכנית מסתיימת כאשר לוחצים ₪56. | תוכנית ל מיועדת בעיקר להצגת קבצי טקסט כמו תוכניות מקור, כאשר אורך השורה עולה על 80 תווים - מוצג ה"עודף" בשורה הבאה, בגלל אופן התצוגה הזה, התוכנית אינה יודעת מראש כמה שורות ימלאו מסך שלם, ולכן יש להשתמש בבדיקה 25 = צשעסתח למציאת המקום שבו הדף מתחלף. ‏ | תוכנית. עאטע שבתדפיס 13.17 מרחיבה את הרעיונות שב-588, באמצעות תוכנית עאטס ראינו קודם בפרק זה תוכן של קבצי טקסט וקבצים בינריים, בתצורה . הקסדצימלית ובתצורת תווים. | | תדפיס 13.17 ; גו ותפיושסינק 808 020%, 208; ' 0% 9 ;78186 = ת108ססם : | שסעלסתת ;1 = שעסש : אסת1סשגם 450 סש : 150137606 תדפיס 13.17 ממשיך בדף הבא ו בי : פרק 13: טיפול בקבצים 487 המשך תדפיס 13.17 ונהט :1 . 6גתד ; ע%66תגסס : 8 0[ ,1 ,שספת ,%נגופסת ,0126 , 1,11105126 , 1501375120 1 ו יתסא 02 [ 1..200 ]קהעע8 1 בסשפק ; עמתס : תס שת1ע8% : 96 11 . ;%6ע +0 [ 1..24 ] עפעעה : י | פת11ע18סות . ;עגםס : ( 66עס : תה0ס+ ‏ עזהת1ס )020850108 תסנססתגת תנפסס + תס = עינפת1כ 0836 ;( 48 + 0+ .עיקפת1ס )עםתס =: א0208%00% : 9 ;( 55 + מתס+ -עעהת1ם )עם0 =: א08%086ע0 : 10..15 ; תס - (( עממס : 6בש1ת ,161% )ת120עסם 6יעוססססעק תנפסס ; ( 162% )146עש ; ( 0205 )156 60 78 0ס 1 =: 1 ע0ס+ ; ( %(1₪ע )156י₪ ; תס ; 1312000100 6ינגו0סססי תנשסס ; 0117502 ; ( 187 ,2201 )ת0ס2 גינסת ((' ,0186 )156עש ; ( 06ת116%8'/ )106יט (( '608ע0 ' (8120:6 )186 ;( 2 ,67 )צא0000 . ; ( 186 )156 ; ( 2 ,80 )צא0ס%סס ; ( 2185 ,0204 )ת120סת תנשסס 00 26 60 4 =: 1 ע10 ;( 0186 )2156 ;( 1 ,1 )ע00%0% ; ( 0186 )106 ;( ג ,80 )עא60ס0 ; תס ; ( 24 ,1 )005082 ; ( 188 ,2200 )ת120נסתת . 1 ;6 תנשס ; ( 1 )11% תסם+ 6 = שתגוססותהינב 11 ;( 1 )ע%פתהע8ת =: סת8א16ג1ת ; ( 7116886 ,116עת1 )55101 ;( 1 ,116עת1 )6%פסת ; ( 116תת1 )71169126 =: 91260 1300010 ; ( 5126 ,1164708 )000 ; ( 011042087 )902 =: קספחסון תדפיט 13.17 ממשיך בדף הבא 8 הלק ב" התכנות [ המשך תדפיט 13.17 ;( 1%טבפסת ,8120 ,1167087" ,116'ת1 )הבסתסס ג ;1 + (68ע218018 ט61 5126) =: פסשהסאמן 0 2093005 סף 1 =: 1 400 * (1 - 1) =: [ 2 |פּסבָהק ( 2 88 )000% ; ( 08שהטאא ,7 01 01 6שבס' )1%6עש ;( 20 ,79 ,4 ,2 )שסבתנש 1% 01909 ;[ א66ת9201ע ]8שַפק =: 1 ו ;2 =: 68126ת134 = 068% ; ( 659126ת11 )סת1 ;[ 0₪906:1 ]מסא( =: [ 65126ת11 |סת1ע18ק1ת ;( 1 )סתך [(5126 = 1) עס (24 = 65126ת11) 11פתט ת1שסס 60 69126ת11 60 1 =: [ עס+ (( 16 81 [ [ ]ס6ת218018711 )02085068 )166גיש ;( ( 16 ₪06 [ [ ]סת/15018 )א008560 ;( 7 ' )106 תפגט 0 = 4 08מ [ +1 - תנשסס 40 24 60 1 + 120פ5סת11 =: [ ע0ס+ : | )6סגעשט (( ' ' )6עס =: [ [ |]סת1ע13קפות ;( "7 7 )100 תסמ 0 = 4 6סמ [ 11 - 0 24 סש 1 =: [ ש0ס+ מסמל [ 15 ,10 ,8 ,7 ] תג [ 1 [פת18/11ק5נק +1 ( 9 )6ס1עש 516 ;( ( [ 1 [6ת11ע2130198 )עמס )159עש (([ 1 + 82010668 ]פּסקָפק =< 1) עס (1=5126) 611תט 1% 6046 =: בס תסמ% 227 = םס +13 שגרנ =: שסינקסונן מסמף 00 = םס 11 0186 + ש6א מס 0856 תדפיס 13.17 ממשיך בדף הבא | ₪ פרק 13: טיפול בקבצים ‏ 489 המשך תדפיס 13.17 [ 6חסז ) ;1 =: אסַתזַסשָפת : 71/ [ מס ) תסג+ 1 < אס0ת1סקאק +1 : 775 ;( אס6ת01שת )60 [ מססת ]‏ = תסמ 5126 > 1 +1 : 781 : . ; ( א66ת4001ק ")סח 0-0 [ ₪8 )| ; סקסא =: ו 79 6186 0 := 255, - ו לי ;( 25 ,80 ,1 ,1 )אססתנש ; ( 2 ,57 )00002 ; ( 06%:5ת4201ע )06גיש ;( 25 ,79 ,4 ,2 )שספתנ נשסינטות עס (00 = מ6) 11פתט ; שסי 0 11לתט ;( 25 ,80 ,1 ,1 )שססתנש ; ( 25 ,1 )צא00%0 0 . גם תוכנית זו משמשת להעתקת קוב אל הערימה, הפעם התוכנית מציגהי את הקובץ ברציפות, ואינה פותחת שורה חדשה. כאשר היא. נתקלת בתו התזר גררה, מספר המסכים שהתוכנית תתפוס ידוע מראש, התוכנית מאפשרת גם לדפדף בעזרת 6תסא, תפפת, 600ע ו-6ת₪. התוכנית מסתיימת כאשר לוחצים. 6, הפלט שנוצר מתואר בתרשים 13,17. 5₪₪ ו-פאטפ הן תוכניות. שירות שימושיות מאד. | כדי לגרום לתוכנית. עאטס 0-7 את קובץ המקור של עצמה, יש לחקיש: 5 פאטס פאטס ‏ גישה אקראית. לקבצים ניתן לעבד קבצים באופן סדרתי או ו באופן אקראי, בקובץ סדרתי (סיקוונציאלי). מתחילים לקרוא רק בתתילת הקובץ, וכותבים תווים רק אחרי המצביע הנוכחי. בקובץ אקראי (רנדומלי) ניתן לקרוא ולכתוב ללא קשר למקום הרשומה בקובץ. בקבצים סדרתיים משתמשים כאשר הנתונים שבהם מעובדים תמיד בסדר מסוים (כמו | ב-888 וב-פאטס), בקבצים כאלה מטפלים במלואם, עיבוד אקראי חיוני כאשר יש לשלוף במהירות מידע הנמצא אי שם באמצע קובץ גדול. במקרה כזה, עיבוד סדרתי נמשך ומן רב מדי. 0 תלק ב" התכנות תרשים 13.17 תוכנית קאטס מציגה את עצמה | | 65 3418 8 וס 1 96פב7 הן 5 לו ₪565 :קחש( ההתףסצק 42727426 72657320 3008075 44756278 2616928? 78726767 שו 0% כ 7 2045004 82002828 62617274 39828063 20446773 :1 = ההפ[סםת : 98 616073655 28322046 66056160 28420761 20202030 = 6ע0ש : א 72042032 30207767 64657828 67654965 20205661 4 = תש : 6ַסְטַב[ע5ו21 4 77077204 64202028 66617965 44697378 0202626 8עחן תבט :56 20202020 69600520 28496246 82002020 80766172 35363002 :2 : 8 28202066 28282020 28282020 28202020 28282028 8 808 202020208 61282820 65417265 28466966 ₪2002828 | :ת%6ח1סק : 08 6572380 67696274 20302078 28282028 20282020 1 0508 ,05015 ,5120 26206926 62526567 20204265 73756674 26205265 53697065 הגם 0 26וַפטְ1קוע 2046696 69706526 60617953 44697378 80282028 20602602 5 ,120 20202020 67057228 61705861 26202042 65200200 :0 1 : 20770772 28202020 20202020 20202020 5 40 20202020 28202026 20282028 61676573 1 0 *פַבתתה :. 7 312020322 617952260 28617272 20202020 תס :0 0 20282020 20202020 20206368 30820028 77677264 עהתם : 2 28203028 28282020 20202020 28202020 סההתסווץ : 20202020 20202026 62652020 606054261 28284669 :ות : 0 60673080 73747209 28203026 28202020 [ ו ז קבצי טקסט הם קבצים סדרתיים., לשורות שבקובץ טקסט כולִים להיות אורכים שונים, ולכן אי אפשר להבטית ששורה שתיכתב באמצע הקוב> תתפוס בדיוק את המקום שתפסה השורה שאותה היא מחליפה, אם השורה החדשה ארוכה יותר - היא "תעלה" על מידע תיוני השייך לשורה הבאה, ואם השורה החדשה קצרה *ותר - יישארו בה שרידים של השורה הישנה. קבצים עם או בלי הגדרת טיפוס מעבדים רשומות בעלות אורך :זהה. ניתן, על כן, להציב את המצביע במקום המתאים ולבצע פעולות קריאה או !כתיבה לפי הסדר הרצוי. . בקבצים עם הגדרת טיפוס ובקבצים ללא הגדרת טיפוס ניתן. תמיד. לקרוא או לכתוב, ללא קשר לצורת הפתיתה - 6566 או 6 : גישה אקראית לרשומות - באמצעות הפרוצדורה 866% מציבים את המצביע ברשומה המבוקשת. הפרמטר של הפרוצדורה הוא מספר הרשומה המבוקשת, מספרה של הרשומה הראשונה הוא 0. ן ו | פרק 13: טיפול בקבצים 491 הפונקציה 6% מבררת את מטפר הרשומה הנוכתית. תוכנית פסאגתטאתע שבתדפיס 13,18 מדגימה גישה אקראית לקבצים. תדפיט 13.18 ; 130820 תהינססי ;02% 05פגו 6 ;|[ 20 ]פת1ע%ב = 20קת1ע%פ 000 = 60006 55606פק ; 501020 | : 18310800 ,עס : סא%תש11ע ; [08ע 1 6עהתע1ב ; תס לפטי ,2858600000 : | שסשתסבבהק 6י2016001ת8380ק 0% 1116 : 6 ;09 : 6שתהת0 , סבגמ | 1165 ]ת30%%0י01681 6ינגוססססנ ת1שסס ;01ע01 | ;( 25 ,1 )%א60%0 ;01ע01 | ;( 24 ,1 )005004 ;בע | ;( 25 ,1 )צא0ס00% ; ( 24 ,1 )6000 ; תס 5%1₪20 : תזסןת135%9 )ת8010ט130305017 סינגוסססינן (סעסש : ת1סא0ת11₪ע ;( 2681 :- ת61עה"ע41 = תנשסס תנשסט 60 283300202 מלגש ; תת[ 143% =: ת15%%8 ; ת1סא118ת =: סא%הש11ץ ;ת201 18 =:- 6עהתע1ב ; ( ע0קת8550ק ,285879116 )156יש ; תס ; תס ; 0021080181 6ינגוססססינ תנפסט ; 012902 ;( 65 - ( ( סמ" )000856 )020 ,116תַבק )500% ; ( ע0שת89880ק ,08387116 )088 תנקסס 60 ע0כת8530ע מס1ש ; ( 06ת135%%8 ,' : 6ת8][ 138% ' )16 ;( 10 ,20 )צא0ס6ס ;( סא%מ₪ג1ת ,' : עסממטא פבשו1ת' )1%6עא | ;( 12 ,20 )עא0ס%ס₪ ;( 4127826:0:2 ,' : סעה?ץ ע1ב ' )16 ;( 14 ,20 )צא60ס 40 - ; 1168 חס 080% 01 0 ; תס תדפיס 13.18 ממשיך בדף הבא 2 חלק ב" התכנות שה רהטטהוה. המשך תדפיט 13.18 ; הס 800301778/01) סינגוססססיכן ישפטי (%6ע : 0014162 תונפס 6 68100 1165 ; (( " סַתמ0 סא (8) | 6שמתעגת (2) | +סמתו סמשגנת (1) :6שתהת0' )1%6עט ; ( 10614102 )ת801סי תנשסט 60 85500 דוש 1 10001210 0886 תנשסם : 1 ; ( 12 ,36 )005089 ; ( סא%ם11₪ע )ת[080י ; תס תנשסס : 2 ; ( 14 ,356 )005089 ( ;‏ 0826ת41 )ת6881ע 7 ; תס תנשסס תסמ 2 > 1 - 612102סא +14 ;| 65 - ( ( סג" )000856 )006 ,8550116 )9008 ( עסשתסבב8ק ,2857116 )₪186 050178010 הד תס 6 ; תס ; תס ; 165 000% 01 ; תס תנשסס ;( '8580818.28%ע' ,5"110בהק )תופה ;( 8880116ק )166ישסת ;( 456.78 ,174 | ,'20805' )(8%10ט-00650מון ;( 898.21 ,892 - ,'28202/ )ת0ס401ט50סת6אמון ;( 765.88 ,265 ,'70287165 )ת650708%10ת0מ ;( 1298.45 ,551 | , 'עסטסכ )ת0ס861טעסבסת6גען ; ( 99.99 | ,290 , 099265 )ת8010ט000501מון ;( 220.64 ,827 | ,'מסתגת' )ת4010טסבסת מו (( 116"פהק )5ספסת ; ע0טי01 1% : ו ;( 1 ,1 )00 (;‏ ספת 188% 6ם% 01 ע16956 8%ת1+ סמל עספום' ‏ )ת1601יש (( 7 :תה8חשסעק בל 081% 60 77077 ע6סת6 עסי )186עש ; ( סג )ת6801 1 'א' ,'עי,.י2' ] תג ( סמ )000856 1ג6תט תנשסס תסמל 787 <> ( סם )00856 12 ; 6561-79/010תהדז נ+תס 0 תדפיס 13.18 ממשיך בדף הבא בב : 4 - פרק 13: טיפול בקבצים 193 המשך תדפיס 13.18 . 1 (( "7 ?(א/ע) 6שתפתס' )1%6עע ; ( 6שתם0 )ת0801ע / 2 : ; 1168 וס 0066 [כ) ;[ יא ,'צ' ] תג ( 6שתבת0 )009356 1נסתט - מסת% 777 = ( סקתממ0 )000480 11 ; 0 00501781 קתפ ו . > ; 'א' = ( סת )000850 11פתט | = תוכנית פאגתטאא משתמשת בפרוצדורה מ88%63686:/8%10 כדי ליצור קובץ עם הגדרת טיפוס המכיל נתוני הזמנות של חברת .תעופה, שמות המשפתה של ששת הנוסעים שבקובץ מתתילים באותיות שונות, הפרוצדורה ס1ַםהטְתספסתּסחְַתהּתס " מכילה את ההוראות שבאמצעותן הרשומה נשלפת אקראית, תוכנה מתעדכן ונרשם מחדש על הדיסק. שים לב לאופן שבו הפרוצדורה 866% משתמשת בשם המשפחה כדי להחליט לאיזו רשומה עליה לגשת. מסך הפתיחה /- התוכנית מתואר בתרשים 13.18. | המשתמש הקיש 8 (8%62) והתוצאה מוצגת בתרשים 13.19: . | תרשים 13.18 מסך הפתיחה של תוכנית סאגח-אגוי סהגה 15% סו ₪ 1 ₪ 66 תס%6חת כ 6ת% 1% 0 אי ת%6ת6 תם : = תרשים 13.19 תוכן הרשומה .השניה וב ז .ד 55 מוצג על ידי תוכנית אהא גוא עסאגּת 3 וו ו 2 : תטפחטת 5תפון1ע | 9321 : שעג תן8 0 06 4 תלסק ב" התכנות ניתן לשנות את תוכן הרשומה. השינוי. יתבצע לאחר אישור. תוכנית סאתאנא תו משתמשת בקבצים שבהם הרשומות הן מטיפוס רשומה. ניתן לכתוב יישומים המשתמשים ברשומות מטיפוס 66צכ, 681ע2, ת1608ססס וכדומה. [ | המסק (-66הסמנועי' בקבצים ללא הגדהת טיפוס ניתן לקרוא ולכתוב באופן חופשי בקבצים ללא הגדרת טיפוס ובקבצים עם הגדרת טיפוס שנפתתו על ידי 26506 |-6>נעשסת, אי אפשר לפתות קבצים כאלה ל-6תססקת. ניתן לעקוף מגבלה זו על ידי הפקודה: | | ?( ( סזסנגץ 0 ,(11610ע )800% המציבה את המצביע רשומה אחת אחרי סוף הקובץ. כל הנתונים שייכתבו מעתה בעזרת 82166א2100 יתווספו לסוף הקובץ. | הפרוצדורה 866סתגו:נו' מקצצת נתונים הנמצאים מעבר למקומו הנוכתי של המצביע. סיכום בפרק זה למדת שמהדר טורבו פסקל תומך בשלושה סוגים לוגיים של קבצים, סוג הקובץ מוגדר בעת ההכרזה, סוגי הקבצים הם: קובץ טקסט, קובץ עם הגדרת טיפוס וקובץ ללא הגדרת טיפוס, קובץ טקסט מכיל שורות של תווים,! כל שורה מסתיימת בהתזר גררה ובהזנת שורה, קובץ עם הגדרת טיפוס מכיל נתונים מטיפוס אחד בלבד, שנקבע בעת ההכרזה, קובץ ללא הגדרת טיפוס הוא קובץ ללא מבנה קבוע, ויכול להכיל נתונים. בעלי אורכים שונים ותצורות שונות, אופן השימוש בקבצים הוצג בפניך בעזרת דוגמאות. למדת להתייתס לקובץ לוגי שבתוכנית ולקובץ פיזי שעל, הדיסק. למדת לפתות קבצים לקלט ולפלט ולסגור כל קובץ כאשר התוכנית אינה זקוקה לו יותר. הכרת דרכים להעברת נתונים (עם ובלי תצורה קבועה) אל הדיסק: וממנו, לעקוף את המפרידים שבקובץ טקסט ולעבד קבצים באופן אקראי. למדת לבדוק קיום שגיאות קלט/ פלט והכרת דרכי התאוששות משגיאות כאלה. טבלה 2 מסכמת את הפרוצדורות והפונקציות שהוצגו בפרק זה ואת השגרות שבהן ניתן להשתמש, | פרק. 13: טיפול בקבצים 15 טבלה 13.2 שגרות טורבו פסקל לטיפול בקבצים קטגוריה" | שגרה > טקסט עם הגדרת = ללא הגדרת | | | טיפוס > טיפוס פתיחת קבצים | 6מססקת = כך = לא || לא םף1פפת 08 כן = כן = כן % . = כךןה כן = כן 6 32 מ כן 5 כן 86 | כןך = == כן כן קלט מקבצים | 8100%8686 - -‏ - לא = לא כן 6 | = כן כן לא ת61הסת %-/ כן לא = לא פלט מקבצים | 6טנעאא%סס1ם = לא לא | כן 6 . וארי כן, = כן 00 לא | ת1%61 = :> לא לא > איתור -‏ . + | כן = כן = כן | | ת[סם כן לא > לָא + 3 < לא | : לא ם%01 . כן לא 7 | > לא > גישה אקראית 5 9 7 | כן כ 21108128 000000 לאה = כך = כן 866% 0 לא כ 0080 כן 8פטץ 0 > לא 3 +13 פרק זה הציג חלק גדול משגרות אלה בצורת תוכניות שירות שבהן תשתמש בהמשץ. פרק 14: ניהול ספריות | 497 פרק 14 ניהול ספריות * כאשר עובדים עם קבצים עלולות להתעורר בעיות שונות, יתכן שהתוכנית אינה נמצאת בספריה שבה נמצאים הקבצים או יתכן אפילו שהתוכנית והקבצים שוכנים בכוננים שונים. עליך לאתר את הקבצים והתוכניות, ללא קשר למקום הימצאם. ' תוכניות עלולות "ליפול" "כאשר אין די מקום בדיסק, יתכן צורך ליצור או למחוק קבצים מספריה מסוימת או ליצור אוטומטית שמות של קבצים חדשים. בפרק הקודם למדת להשתמש בקבצים, לאתסן ולשלוף מידע. בפרק זה נתבונן בקבצים מהיבט אחר - כדיירים של כוננים וספריות. הגדרות הכונן הפונקציה 5126א18%כ מתזירה את מספר הבתים שניתן לאחסן בכונן מסוים. המונת "דיסק" כללי ומתייחס לכל סוגי הדיסקים - החל בתקליטון זעיר וכלה בדיסק קשית ענק, הפונקציה 66:ע13%כ מחזירה את השטת הפנוי שעל הדיסק (כלומר, את מספר הבתים שבהם לא נעשה כל שימוש). לפונקציות - יש פרמטר אחד, בגודל בית, המציין את מספר. הכונן: 1 הוא כונן :ג, 2 הוא כונן :8 וכן הלאה, הפרמטר 0 מציין את הכונן המהווה ברירת מחדל. תוכנית 2151 (תדפיס 14.1) מתארת את השטתים בכונן המהווה ברירת מחדל. 8 חלק ב" התכנות , תדפיס 14.1 ; 21881 תפידססינן ;205 גו ופט , 66 סע , 9126 0%81 ; %ת1שתס1 : ת0%11128010 הנס ; ( 0 )2188/08 =: 00 5088ע ; ( 0 )21845126, =: 105815126 ; (10%819126 81 100 * 6סקַ"08>עַ2) - 100 =: תס2801גבגנסס , ' 285 071076 21%גג8019 6ב" )ת1%61עש ,' +04 סגוס 1206 6058ע0 7 , סס6עתפס6עת ,' 208 ' ,70%819126 ;( '.ת%11120%10ט %' ,ת11128%10פש . תס כאשר מספר הכונן אינו תקין (למשל כונן 5, או אינו עומד לרשות המערכת ברגע זה (למשל אין תקליטון בכונן המבוקש), הפונקציה מתזירה 1-, תוכנית 12 (תדפיס 14,2) ניצלה תכונות אלה לפיתות פונקציה פשוטה לבדיקת מצב הכונן: תדפיט 14.2 ; 21892 תהיפסינס ;208 69 ,0001683 : ( 66עס : עסמתטאסט1קת )056ת61ט1ע תסנ6סתג+ תנשסס 0 < ( עסמתטסט1עת )21889126 =: 6פסת1סטגענת 0 - תנשסס תפמל ( 1 )6פטת61ט1:ת +1 ( .אַת881סססעק תנשסת' )ת1%91י 0 ;( 60188.7 ע0ק110 107094666 8 %עספת1 16886ע' )ת1%01עשט . תס ספריות לעיתים קרובות פונות התוכניות לקבצים הנמצאים בכונן אתר או בספריה אחרת. לדוגמא: יתכן שהתוכנית תימצא בספריה הכוללת תוכניות שירות, שפונים אליה באמצעות הנתיב הרגיל המוגדר במערכת, וקבצי הנתונים יימצאו בספריה פרק 14: ניהול. טפריות 9 התורנית. יתכן גם שתרצה להגביל יישומים לספריות מסוימות, או לנתב. את - הפלט לספריה. מסוימת. בטורבו פסקל קיימות כמה פונקציות לניהול ספריות ולפיקות. על: הפניה לספריות. י מציאת הספריה התורנית. פונקציית. ע1ס66%6 של טורבו פסקל מאפשרת לך לבדוק מהי: הספריה התורנית :בכל כונן, לפונקציה 0652012 יש שני פרמטרים: מספר הכונן (1=יג ‏ 5:=2 וכן הלאה) ומחרוזת. המכילה את שם הספריה, במקרה של. סיום בלתי תקין של הפרוצדורה, תיתכן.שגיאת קלט/ פלט, ולכן יש להפעיל את 1086501%, תוכנית 1דכ (תדפיס. 3) מחזירה את שם הספריה התורנית. בכונן המבוקש, בצע הידור של התוכנית ' והפעל אותה מתוך 05ס. תדפיטס 14.3 0% : (1צגת התסינכ 3 1 8 אסת 18 ב צסעעס 1/0 -81! : ינפש ן | 0 8% : ע01260%02+תסינינגו0. ו י: (%6ע : שטגמכ : (50₪09ת1' : 70080066 -- . , / תנשסס 0 : - תסתף 2 = 65תוססתפעפק 14 3-0 , 0 =: 6טגעת - : 0 6 0 : י (( 00400066 (סט1עק ,( 1 )ע6פתהע8ק )81 ייר 6 - | | . / | תסל 0 <> 0000006 11 5-5 : ב 2 '‏ ( '806011106 06 ספגוח עסמחטת 62106 2' )ת ₪21%61‏ -.--. : : : : ה ת6₪1ם 8186 -7< וול 00000( ע*ססס6ע%01תסעעגה) (6ט1עם )66%2012 - - ו ו | תסג? 0 = 1030801% +1 . ( עע00%0ע%01ת6עטס ,7 18 /01260%02 סתסתיגוס 6ג1' )ת1591ע . ו . = 0-0 68| 5 7% | ;( 87ת00+ פסת עע21260%0' )ת921861 , 220 : 1 - -* | ל ו : י ו 0 .68 2 ' הנה דוגמא לפלט של 81דס: %/-/ | ל %-- 183סעַא:0 15 צע61:60%0 6מ6עעגוס סמ 0 תלק ב" התכנות | | ו שים לב: אות הזיהוי של הכונן נכללת תמיד בתו הראשון של שם הנתיב. ניתן, על כן, לאתר את הכונן התורן על ידי הפעלה של 666512 לכבונן 0 שינוי הספריה התורנית התוכנית המתבצעת שוכנת בזיכרון, ואינה תלויה בכוננים ובספריות. לכן יכולה התוכנית לשנות, באמצעות הפרוצדורה 15סם6, את הגדרות ונ התורן והספריה התורנית מבלי לפגוע בביצועיה. בפרוצדורה 15כת6 יש לציין את השם המלא של הנתיב החדש, כולל אות הזיהוי של הכונן, כיוון שתיתכן שגיאת קלט/פלט במקרה שהפרוצדורה מסתיימת בכישלון, יש להפעיל את 1026501% כדי לוודא שהשינוי התבצע. | תוכנית 182 (תדפיס 14.4) היא שגרה שימושית המשתמשת ב-:60501 כדי לבדוק מהי הספריה התורנית, ולהעלות את הספריה התורנית שלב אחד כלפי מעלה. תדפיס 14.4 ,שפנ תתפידססינכן עפש קָתנע%ם : ל | נ6סעץם :3 1 | תנשסס ; ( ע01100%02+תסצט0. ,6 0602126 % 0ס60160%תסת-גה) ,7 18 012006027 6תסעינגוס סד ו ; ( ע016050 סינט )1 = =: 1 1 =: 1 60 '? <> [ 1 ]/%201260%01ת6עסגו) ו ה700 6 < 1 11 תנשסס 7 1 - ג )ג =: [ 8 ]ע601260%02תסטס ; ( ע60100%017תסעגו )סו ;( עע60%0ע%01ת0עט0 ,7 15 ע:60%0ע81 שסת 6ם1' )ת1501י. תס 6 (( !012000027 סססע 85 12080 ו . תס ז | לדוגמא, שינוי שהתוכנית: עורכת: 8 11סע צָ8ק ססת8ת1+:0 18 צע60%0ע612 %תסעעגוס שת 1 ססַתַהת0:1 18 012606027 אסם 6מך 0 0 0 | פרק 14: ניהול ספריות | 501 במקרה זה לא היה צורך להשתמש ב-0116ו108698, כיוון שידעת שהספריה המבוקשת קיימת. יצירת ספריה חדשה -, תוכנית 183 (תדפיס 14.5) נכנסת לספריה ויוצרת ספריה חדשה ברמה נמוכה יותר, אם הספריה המבוקשת כבר קיימת, התוכנית מציגה הודעת שגיאה. תדפיט 14.5 ; 125 תפינטסינס (01880106 18 שתנאססמס 1/0 -81) 0 יצפט ; שת5%1 : ע1260%02כתסיינגת) ן תפס ;( ע%01260%02ת6ת:ג3) ,0 )00%212 7 0160%0)ת6עינט ,7 18 00%027ע012 %תסיינטס 6ב" )ת1%91ישט 'מע" + /-1200%0כ+תסעט6 =: עינס6ססי1סלתסינינטס ; ( ע:60%0ינ21תסעינגוס )1 תסמל 2 <> 1000901% 14 ( '.0218%8 ע080ע812 7 ,(עע%0ססע%21תסעעט )ת561ניט / תנקסס 6186. ; ( | ע1200%02כ%תסיננגוס ) ינכת ;( ץע0%0סע%01ת6תגה) ,' 18 ע41200%07 ששת סג" )ת01גיש ה - . תס , דוגמא לפלט של 83זס: ע1סתצתקפסאתאדת:0 18 615606027 6מ6מעטס שמ פאע 1נסתצגעמ6אתא1ע:0 15 7ץ0:2ס01:00% שסם 6מץ ביטול ספריה הפרוצדורה ץ1סוחת מבטלת ספריה, שכבר אינה נחוצה, כמו בפרוצדורה המקבילה של 5, הספריה המבוטלת צריכה להיות ריקה לחלוטין -‏ ללא קבצים וללא ספריות משנה, אי אפשר לבטל את, הספריה התורנית, ב-+נסוחת יש לציין את הנתיב המלא המוליך אל הספריה ולבדוק אם הפעולה הסתיימה בהצלחה (כמו ב-:1סאא וב-:1סם0), | | 12 תלק ב" התכנות נסה להשתמש בתוכנית 184 (תדפיס 14.6) כדי "לעלות" שלב אחד ולמחוק את הספריה שבה היית (אם אין בה קבצים). | תדפיט 14.6 4 מפינפסיו [61882100 15 שתגאססמס 1/0 -81! ו , עע0101200%0 ; שת1על8 : ע621260%02תסייגו) (6סע : 1 תונפס ; ( 21200%0177לת6ע:גו ,0 )06%212 ; ( ע%ע%01200%0תסעעט0 ,7 18 01200602 סתסעעגוס 1116" )מ691ניט ; ( ע%01200%02ת6ע תג )לקת 1 =: 1 ( עע260%0ע01 00%ע 916 6סת 11 6טסחסע ע1ת0 ] | תסמס 8 = 1 11 ( |עע60%0ע012 00%ע פטסמסע 6''ת08' )ת1%61יעש תנשפסס 6186 ; ע260%0:7 01 ינגו =: ע01801260%02 1 - ג =: 1 60 '' <> [ 1 ]ע0סס6ענכ%תסעיגה) 16נגמש (( 1 - ג )עס =: [ 0 ]צע60%0ע01שתסעינגוס ; ( ע021260%0 תע 6 1סת0 ; ( ע:00%0ע01601 )שגסוות תפמ 2 = 1036916 11 ( עע501100%0ת0עעגו0 ,7 18 ע61200%02 אסת 16" )ת1601יט תנשסס 0156 ;( '!ע0%ת0 פסת ע:60%0ע1כ' )ת1%01 ; ( 01601200%017 )2נסתס 05 ; תס 8 - . 6 גישה למידע אודות הקבצים היעילות של טורבו פסקל מפנקת את התוכניתנים. פרוצדורות ניהול הקבצים, כמו % או 6ס1עשסת, מבצעות משימות מורכבות מאוד: איתור קובץ, שריון שטתי אחסון, טעינת ערכים במצביעים ועוד. פניות. מסוג זה נפוצות מאוד ולכן, בעת הפניה לקובץ בדיסק, יוצרת מערכת 5 רשומה מיוחדת בזיכרון הפנימי של המתשב, רשומה זו, הנקראת פסע (116ק א%סס1ת 01סע6תסס), מכילה את שם הקוב, גודלו, תאריך היצירה, שעת היצירה ותכונותיו. , פרק 14: ניהול ספריות ‏ 503 טורבו פסקל שבלל.. מעט רשומה זו, והפך אותה לרשומה מוגדרת מראש בשם 0 שהשדות שבה ור - | 0% = 508202800 7 + [1..21]ץ28ע8 :7111 5 0 ופי 7 נעס6ת (טת1שתס :סחצי' = ו 1 21 561 :סחבא ;מס 1 הבתים הראשונים מכילים פרטים טכניים הנחוצים ל-05כ,. ואין לשנות את הערכים שבבתים אלה, מיד נתאר את תוכן השדות הללו בהרחבה. פניה לרשומה ספריה: מערכת 2058 *וצרת את - ה-08ע שבייכרון הפנימי, כדי להקל על הגישה לנתוני הספריה, שינויי שדה ב-605ע אינו משפיע על תכונות הקובץ עצמו, אולם שינוי כוזה עלול "לבלבל" את -205 ולגרום לשגיאת הרצה, ‏ השינויים ברשומת ה-08ע מבוצעים באמצעות פרוצדורה מיותדת, שתתואר' מיד, פעולות הקריאה והכתיבה ממשיכות להתבצע על ידי הפרוצדורות םמש551ג, 36806 ו-166תטסת. הגישה לנתונים שב -08 מתבצעת על ידי הפרוצדורות תע [-+%א6אבתנע. פרוצדורות אלה מיועדות בעיקר לביצוע סריקה מהירה של ספריה ואיתור קבצים בעלי תכונות מסוימות. ל -1067118%ע יש שלושה פרמטרים: שם קוב היעד, התכונה המבוקשת ורשומת פלט מטיפוס 02280ע8082, שם קובץ היעד הוא בתצורת פניה לספריה ב-05, השימוש בתווים כלליים (* ו-?) מותר. למשל: כדי למצוא בספריה התורנית את קבצי - המקור: של פסקל. יש להשתמש ב-5תת,*, שדה התכונות יתואר בפירוט רב יותר ו בשלב זה נשתמש בקבוע מוגדר מראש בשם 6 . הפרוצדורה )אסאתנץ משתמשת ברשומת הפלט של תנע ופונהבעזרתה לרשומת ה-65ע הבאה המתאימה לשם -ולתכונה, 4 תלק ב" התכנות 7 פניה לשם הקוב ולגודלו פרטי שם הקובץ שברשומה 598:0860 נמצאים בשדה סוּףא, השם כולל את שם הקוב ואת שם ההרחבה שלו, כאשר בין השניים מפרידה נקודה. פרְטי הנתיב והכונן אינם נכללים ברשומה, השדה 5126 מכיל את גודל הקובץ בבתים. כדי להכיר את אופן השימוש בשדות אלה, נשלוף מספר רשומות 8 בעזרת 1% תנע |-6א6א6מ1ע, (תוכנית 195 שבתדפיס 14.7). תדפיט 14.7 | ;2125 תפיששסינם 208 פספגו : לפטי ;908100060 : 20ת161גק / תנשסט ; ( 40ת1161/ , 116תעתת , ' פרק *תזת? )185סתגע 0 0 = עסץקעתפסם 16נמש וננשסט ;( 5126:8 ,86:14 )ת1%61:ש 60 0+ת1161ע בצגש ; ( 0+ת1161/ )6אסאסתגע תס . תס דוגמא לפלט של 5אדס: 1 פתפ,1פדס 4 פתכ,פפתדס 4 פףת2,0פדס 4 פת4.2תדס 7 פ םתכ ,6פדס 3 פף87,25דס 4 פתק, 8תדכ 5 5 פתדס שים לב לשימוש ברשומת 0+%ם1161ע מטיפוס 508-0886 לאחסון נתונים ולהעברתם. אין לשנות רשומה זו. פרק 14: ניהול ספריות 505 פניה לבית התכונות לקבצים יכולות .להיות תכונות שונות. קובץ לקריאה בלבד (ע1מס 080ע2) הוא קובץ שממנו ניתן לקרוא, אך אי אפשר לכתוב בו או למתוק אותו. קובץ נסתר (מ1006ת) הוא קובץ שפעולות החיפוש בספריה מתעלמות ממנו (פרט למקרים שבהם מבקשים במפורש להציג גם קבצים אלה), קובץ מערכת (ות860ץ8) הוא קובץ נסתר. המשרת את 085כ וגם הוא אינו מתגלה בפעולות הסריקה הרגילות, שם קוב יכול להיות גם שם הכרך (מעאשת0ץ) של הדיסק או שם של ספריית משנה, בית-התכונות (58ץ2 066ו38%5+212) מתאר את סוג הקובץ ואת פעולות העיבוד המותרות, כל סיבית בבית זה מתייחסת לתכונה מסוימת, ניתן להדליק מספר סיביות בעת ובעונה אחת, כדי ליצור צירופי תכונות, תרשים 14.1 מתאר את מבנה בית-התכונות. תרשיסם 14.1 מבנה בית-התכונות של הקובצ 7 6 5 4 3 2 1 0 0 ה6 00 | ה516ץ5 | פחטוסש | עזס+ספזוס -- וח 6 ב 806 | 6 | 05 באמצעות סיבית הארכיב שבבית-התכונות מתנהל המעקב אחר מצב השינויים שנערָבו בקובץ מאז הגיבוי האחרון, כאשר הקוב נוצר, או כאשר נערך בו שינוי כלשהו - סיבית הארכיב דולקת, הסיבית מקבלת את הערך 0 רק כאשר הקוב עובר גיבוי באמצעות עטאסתת של 05כ, כך יודעת הוראת הגיבוי אלו קבצים עברו שינוי. בטורבו פסקל הוגדרו כמה קבועים המשקפים את מצב הסיביות בהתאם לתכונות האפשריות של הקובץ, רשימת הקבועים נמצאת בטבלה 14.1: זס 9567/60 8 הפע טבלה 14.1 הקבועים של תכונות הקובץ מבנה הסיביות | ערך (הקס.) | שם הקבוע 1 0000 801 ]636020 0 0000 802 106 0 0000 804 516 0 0000 808 | כ[6תט!ס/. 0 0001 810 ש0ס6עוש 00 10 820 16 1 0011 837 6 6 חתלק ב" התכנות למשלי כדי לקבל את רשימת כל ספריות המשנה שבספריה התורנית - יש לקרוא את כל רשומות ה-68ע ולבדוק אם טיבית מספר 4 (הספירה מתחילה ב-0) מכילה 1, כלומר יש לבדוק אם בית-התכונות שווה לקבוע המוגדר מראש - צַע0ס606מנס. תוכנית 1818 (תדפיס 14.8) מדגימה זאת: תדפיט 14.8 114 תפססיוק ;205 698 ופט ;96עס 1 11 ; ( קת1ע5% : בבק )00%711608%8 סגו0ססספק ינפ נשת1עלם : שתאפע ; 6810060 : סצת1161ת (56ע0 : 1 תנפסס 16061 := 16061 + 1; ;( 0צת71161 (זס00%-נע ,'*.*7 + מפפק )%פענתחתגת 0 0 = עסעעמפסע ₪116 תנפסס 8 ( עצס%ססעות = ע1191020.2%%ע) 11 תגשסס תפמף (7.' <> [ 1 |סתפא. 0+ת1161ת) ;( 7 7 )₪166 80 (1 - 12*)160861 סש 1 =: ג ע0ס1 ; ( סשותפא. 0+ת1161ע )ת[166יט ת8]. סצת1161/ + '' + הק =: שספק ; ( 82 69%71160848)6 ; תס ; ( 0+ת1161ת )6א6אסתוגת 0 ;1 - 16061 =: 160861 ; תס תונפס ;₪ =: 16001 ; ( ':70 )60%011608%8 , סתס הפלט של תוכנית 1812 מתואר בתרשים 14,2. הפרוצדורות 69115%ם1ע ו-%א6א6מ1ע משתמשות ב-פאת לוגי כדי לבדוק קיום של אחת מהתכונות המבוקשות, כלומר, כדי לבדוק אם הקוב הוא קובץ נסתר או קוב ארכיב - יש להעביר לפרוצדורות (1:02106 + מ16806א), אם מבקשים לקבל את כל הרשומות, פרט לרשומות הספריה, יש להשתמש ב-(עע0ס1:60%כ - 116עעםמ). פרק 14: ניהול :ספריות 07 פניה לשדה השעה השדה 1186, מטיפוס 1667 10 מכיל את התאריך והשעה ז של פעולת הכתיבה . האחרונה במבנה מקובץ, המלה הגבוהה היא "חותמת" התאריך (0וז558 6 | שתצורתה מתוארת בתרשים 3 4 תרשים 2 דוגמא | לפלט של 01614 13 . פך 00" וזא 1803 . פד . 9 / צתחתפז מפנ סז 0 | הזח טח וד | ו דאפד. | א : 5 | וו 8 . 6 תרשים 14.3 מבנה המלה המכילה את תותמת התאריך: 0 201 80 04 80000900807770060050ד 320 180 140 150 ו הפרמטרים של חותמת התאריך מרוכזים. בטבלה 12 טבלה 14.2 הפרמטרים של חותמת התאריך . ערך .9 תוכן 0900000 סיביות קוד 1 עד 31 ים בתודש 0 עד 4 פ עד 12 > חודש 5-0 עד 8 א שנה, למשל 1980 שנה > 9 עד 15 . 8 תלק ב" התכנות המלה הנמוכה :היא "חותמת" השעה, תצורתה מתוארת בתרשים 14.4 תרשים 14.4 מבנה המלה של חותמת השעה | שום :חס הפרמטרים של חותמת השעה מרוכזים בטבלה 14.3 טבלה 14.3 הפרמטרים של תותמת השעה ערך | תוכן סיביות קוד 0 עד 20 מספר בדילוגים של 2 שניות - 0 עד 4 3 0 עד 59 דקות 5 עד 10 א 0 עד 23 שעות 1 עד 15 ג שים לב, סדר הנתונים מקביל לתשיבות, ניתן להשוות בין שני: משתני 6תגע' מבלי שיהיה צורך לפרק את השדה המקוב. -- - | , לשדה 2186 ניתן לפנות באמצעות פרוצדורה נוספת - 06521(6, ניתן לשנות את השדה בעזרת 5651(6₪, שתי הפרוצדורות יתוארו בהמשך. ‏ | הפרוצדורה 280%1186 יוצרת את המבנה המקובץ של 2366 ו-186ע' ממשתנים בגודל מלה, הפעולה ההפוכה מתבצעת על ידי שוזגי'אסהעתט, שתי הפרוצדורות משתמשות בפרמטר מטיפוס מַסַשָ6סת1 פַּםס1 ובפרמטר מטיפוס הרשומה: המוגדרת מראש - 6ו6כ. > 8616 = 7 :660 ת1א, נגוסג, צְבכ,ם+תס, עהסצ 7תס | 5% = 0 | פרק 14: ניהול ספריות 509 הוספנו את הפרוצדורות 0667716 ו-6תנידאסהּעתט לתוכנית 185כ ויצרנו תוכנית חתדשה - 6א1כ (תדפיס 14.9) הבודקת את רשומות ה-05ע ומציגה רק את הקבצים : שנוצרו היום. ההנחה היא שהקובצ 0% אאא 0 נמצא בספריית השורש של כונן:6 תדפיט 14.9 . 16 ותפיהססינ [ אעסש 09 260 50 ססות תגפזנת1זן 0 ו ;208 65פגו יצפטי יי , תשתסוון , אָּ סש : 4064סעהכם ;5081060 .:| 0צת1161ק 6ות28%6611 : 1160866 (שת1ע8% : שת065%1 תנ1שסס ; ( 0301008 , עַ8 , מסתסו ,08 )002806 ;( 71161040 (סטנתסע ,'*.*' )6פענתסתגק 00 0 = עסעצמפסע 16נת תנשסס ; ( 1100846 , 6מז1. 116120 ) סוזג דאס הקט התה ( 0902? = 11608%6.?082ע ) +11 התה ( %תס)1 = 6תסו. 1160866 ) תסמ ( 23 = [28. 160806גק ) השס ; ( 806 20ת71161 ,' התנעססס אסא' )186ע (' ,7 + סת10.(8ת71101 + ' עססס 60/' =: שתנגע0065% ; ( ₪ת 005% , סט . 6 תהתוהסס: 70" )600 0 ( 40ת71161 )6אסאסתגע - - .בת תוכנית 186ם משמשת לעריכת גיבויים.. היא מאתרת את הקבצים שנוצרו היום ומע- תיקה אותם לתקליטון שבכונן :ג.. רשימת הקבצים מוצגת על המסך במהלך ההעתקה: בפתת. 21810 שתנעססס אסא - 000108 (116)5ע 1 5 15 שת1עססס אסא 68 (116)58ק 1 135 שת1עקסס אסא 46 (116)5ק 1 ו פת. 2105 שתנ1עססס אסא 6 (116)5ק 1 אם. 216 שת1עקסס אסא 4 (16)5גע 1 פגת. 215 שת1עקסס אסא 4 (116)5ק 1 כות. 2106 =ת1עססס שסא 46 (116)5ק 1 0 חלק ב" התכנות | טיפול בקבצים בודדים בקטע הקודם ראית כיצד הפרוצדורות 128%ע6ת1שע ו-6%%א6מ1ע משתמשות ב-65ע כדי לסרוק את הספריה ולאתר קבצים בעלי תכונות מסוימות. הפרוצדורות 62128%ם1ע ו-%א6א6ת1ע מאפשרות לאתר קבצים, אולם אינן מסוגלות לפעול על הקבצים הללו, המידע שב-08ע הוא רק עותק של רשומת הספריה, ואינו מאפשר לפעול על הנתונים הממשיים, כמו כן, השימוש בפרוצדורות הללו מיותר במקרים ששם הקובץ שעליו מבקשים לפעול ידוע. השדות שב-05ע הועתקו מספריית הדיסק (ע01:60602 015%), הספריה היא מקור המידע ה"רשמי" לנתונים שעל הדיסק, והיא מכילה את שם הקובץ, שם ההרתבה, תכונות הקובץ, תותמת התאריך והשעה וגודל הקובץ, כמו כן נמצאים בספריה פרטים טכניים שונים, המאפשרים ל-505 לאתר את הקבצים הפיויים שעל הדיסק. בקטע וה נתרכז בפרוצדורות טורבו פסקל המאפשרות לשנות את פרטי רשומות הספריה, שינוי שדה השעה למידע אודות התאריך והשעה שבהם התבצעה פעולות הכתיבה האתרונה בקוב חשיבות רבה, משנים את התאריך והשעה במקרים מעטים בלבד, למשל כאשר תוכנית אחרת עלולה להשתבש בגלל התאריך והשעה של רשומת הספריה. תוכנית הגיבוי 0186 שבתדפיס 14.9 משתמשת בשדה התאריך כדי להחליט אם הקובץ יועתק לתקליטון. כדי לגרום לתוכנית להעתיק קבצים נבתרים ‏ נוספים, נשנה את תאריך הקבצים הללו כדי שיעמדו בקריטריונים של 86דס. תוכנית 198 (תדפיס 14.10) מבצעת ו%את באמצעות הפרוצדורות 6תנבדַאסהק (-566716, התוכנית סורקת את הספריה ומשווה את התאריך שברשומת הספריה עם התאריך שהיה בדיוק לפני חודש, הנמצא במשתנה 605%:ו1167160ע, אם הקובצ נוצר בתודש האתרון, התוכנית משנה את שדה התאריך והשעה שלו. בצע הידור של תוכנית 188 והפעל אותה מתוך 05כ, באמצעות הפקודה: פהכ,*ת1ה 188 פרק 4 ניהול ספריות | 511 כל הקבצים שנוצרו בחודש האתרון יקבלו את התאריך והשעה הנוכתיים (על פי שעון המערכת). | תדפיס 14.10 ; 128 תפיוססיז 208 08פגט "גפש [ 60%28%6 ] | ;העטש : א4/06סעַ8כ2 ,ע28 ,מפתס ,הפצ [ 00%[186 ] | ;העסא : 560100 ,0ת5600 ,6סגותגזת , גוסו 66810060 1 ס+תז6 רג ; 86611806 : = אססות1 , סב סו 011 11 , 6011גו90ת6171 בג ; לקת ס1 : 011000 1 ג ,2116 : 6סתס +30 711 תנפסס תסמל 1 <> סתגוס0תפעפק +14 ( '0208%+ 2116 עסקסעקח1' )ת1%01עט 0 ת1שסס 0156 ; ( 08701/00% , עָ28 , סתסוא , 08 )062860 ; ( 560100 ,5000006 , 6סגות111 , עגוסד ) סות1' 0% 68 =: 09 . שסאסוננך ; [>תסן[ = : בת+תסוזו1. שסאסת ניך ; ָהע =: ע8ק. שסאסתנניך ; עגוסז1 = : עגוס11. שסאסת גי" ; 66גות1)1 = : ג1]. שסאסת גי | .6ת5000 =: 500 אסאסתנץך ; ( שסאסות2'1161 , שסאסשת11 ) סתז1'ך!ס הק תסמ% 1 = מסתסא 11 : מסתסו. שסאסתז1 6 ;1 - מסתסו =: בסתסוא. שסאסות1ך ; ( 17'1161'160026014 , שסוסתג'1 ) תגספ ;( 10ת71161 ,116תעה4 ,( 1 )ת%פתההס )85ענ סתגע 0 0 = עסעעתפסם 16גח תנשסס ; ( סו08. 116120 , 06ת7116362070 )תסופבת ; ( 06ת2110062+070 )680% ; ( מ0ג1167107'/ , 1103610000 )01 תנקסס תסל ב0ב'0ות11011ת > +601גה)60ת11611ע 14 ; ( אסאות11011/ , 06ת116061070ת )סו1 50 ;( '0611106 שת01ס 7 ,86:12 10ת1161ע/ )ת1601ישט תס ; ( 06(ת110061620/ )01086 ; ( ס%ת1161/ )6א6אסתגת - 12 - . תס 2 תלק ב" התכנות | | | | | הקבצים המבוקשים אותרו בעזרת 6115%ת21 ו-%א6א6ם1א, כל קובץ נפתת בנפרד לפני הפעלת 5652716 ו-106''ע005, הפרוצדורות 12021265%ע ו-%א6אבמתנע פונות לעותק של רשומות הספריה (ה-02ע), 06627186 ו-71(6ע566 פונות לרשומות הספריה האמיתיות שעל הדיסק. הפרוצדורות 6ו711אסכ2, 6נ1דאסהקתט, 6ת06%271 (-7116ע566 אינן בודקות את הנתונים המועברים אליהן, אתה אחראי לתוכן הנתונים הללו,. אם תרצה תוכל להשתמש בבתים אלה לצרכים אתרים, (למשלי ציון מספר המתלקה של המשתמש). מחיקה ושינוי שס של קובץ בטורבו פסקל קיימות שתי פרוצדורות הפועלות על שדה שם הקובץ שברשומת הספריה, הפרוצדורות הן 6ת8מ6ת (שינוי שם קובץ) ו-₪2856 (מתיקת קובצ). ניתן למחוק או לשנות שם של קובץ רק כאשר סיבית ה"קריאה בלבך" אינה דולקת. אי אפשר להפעיל פרוצדורות אלה על שמות של ספריות. | כאשר משנים שם של קובץ, נכתב השם החדש על השם הקודם, בתנאי שאין בספריה קובץ בשם זה. | | כאשר מוחקים קובץ, רושמים בתו הראשון של שמו את הסימן %₪5. תרשים 14.5 מתאר כיצד שם הקובץ תי'תס,'01תצגפ משתנה כאשר הקובא נמחק. תרשיס 14.5 השינוי ברשומת הספריה של ג דאגס. | סאצאק כאשר הקובץ נמתק [ לפנ המחיקה: אחרי המחיקה: , | פרק 14: ניהול ספריות ‏ 513. כאשר מתבצעת מחיקה, מערכת 508 מודיעה לטבלת ההקצאה של הקבצים (עיתע) ‏ ששטחי הקובץ שנמחק משוחררים וניתן להקצות אותם לקובץ אחר. מחיקת קוב הפרוצדורה 52856 דורשת ביצוע מש3581, אולם בזמן המתיקה הקובץ תייב להיות סגור, ניתן להפעיל את 6פ8ע₪ מתוך לולאת 6א6א60ת1ע/56תנ1עבתגק. תוכנית ₪199 (תדפיס 14.11) מוחקת את כל קבצי הגיבוי שבספריה התורנית, תדפיס 14.11 ;2119 תנפינפסיקן .208 08פגו י 05% (0 = 6עסש : | ע6ס%ת116000ק לפטי ; 0081060 : ס+תז בנע (116+ : 6ס(0ת1100610ע ו תנשסט ; ( 0+ת21161 , (עצנס6ססיננע - 116תעת4) , 'אגם. *' )6בענתסתגת 0 0 = שסעעמבסק 116גש הס ; ( סותג8[. 1161020 ,' שת881זם' )ת1%01יש ; ( 86. 116190" 1100610006 )5510 ; ( 06ת7110061620 )סב4עת ; ( .21160066 )סח ; ( 1161020 )6אסאסתג הי - תס% 0 = 0%ס(116000ע +1 ( '.0000+ 6ע₪6 1108+ כנפוסהּס סא" )ת1%91עש > 0188 ;( '.028806 (2+116)5 כעת!סהט ' ,ע%6ת7110000 )ת1%61עשט . תס מחיקת תוכן הקוב כאשר מערכת 5 טורקת את רשומות הספריה של דיסק, היא מתעלמת מקבצים ששמם מתחיל ב-%85, תוכניות לשחזור קבצים שנמחקו (למשל תוכנית 661856מט של 8 פתמפס6עסא) מאתרות, פשוט, את הקבצים שהתו הראשון של שמם הוא 955, מציבות תו אתחר במקום הראשון, ומוז'יעות ל-1תע שהשטתים נמצאים בשימוש. 4 חלק ב" התכנות | | | כאשר "מוחקים" קובץ - תוכנו אינו נפגע. השטתים שהוא תופס מתפנים לשימוש חוזר, ותוכנם משתנה רק כאשר קובץ חדש משתמש בהם, כאשר המידע שבקבצים הוא מידע חסוי, יש לפעמים צורך למחוק פיזית את תוכן הקובץ, שירות כזה ניתן על ידי תוכנית ג19כ (תדפיס 14,12), התוכנית קולטת את פרמטר שם הקובץ, קוראת את הקובץ בית אחר בית כדי לדעת מה גודלו ומחליפה את התוכן בכוכביות, ה"מחיקה" (הצבת %85 ברשומת הספריה) מתבצעת רק בסוף התהליך. תדפיט 14.12 0194 הפסכ | שתנא0%פמ0 1/0 188216 -61! ;09 658פגו ג (%6עס 01 1116 : 6סת116001+076ע (06ע : 6 ותו 10 (%ת1קתס1 : %05ע6010מחגון סעסש : סגו 61 תנשסס תסמל 0 = 6תטססתפינהק +1 ( '806011100 116+ סא' )ת01ס1עט תנקסס 0156 5 1 )ש6פותהינ8 ,00ת110901020/ )510 ; ( 06ת110361620/ )36805 תסל 0 <> 10009016 11 ( '0תט0? 6סת 7116' )ת1661ש תנשסס 6156 ( 66ג(10ע450 , 06ת116061070 )067502 תפמל 0 <> 17ת400סת תה 255210056 11 ( ".6880 %סתת08 .ע1תס 2088 15 7116/ )ת661גיט תנקסס 6156 ;9% =: %68ע010-סכווגון תנשסס 60 ( 06ת2110801020 )602 פסת 16ונמש ;1 + 005ע012מוחטא =: 05>עם01נסמהגון ; ( 56עעחטכ , 00ת116001020ע )098 - ( ( 06ת116061070'/ )01036 תנשפסס תסמל ₪0 < %05ע012סכותטון +1 ; ( 06ת11606+020ע )00 ימס ; ( '*' )8עס =: 66קמעחחטת 0 6:010005מתטא %0 1 =: 1 ע0+ . 7 8 , 06ת116061020 ) 06 גיט ; ( ת1560יארוסטס סט 8ססעם 7 , 508 ע012עססוע1 )ת1001יט ( ( 06ת110061070ע )01080 ; תס ; ( 06ת116061620ת7 )סשפית 7 "028800 ת060 פגת 4116 6ב" )ת1501יע תדפיט 14.12 ממשיך בדף הבא פרק. 14: ניהול. ספריות. 5 המשך תדפיס 14.12 ; סתס תס | ;תס .תס שינוי שם של קוב = < לפני הפעלת הפרוצדורה סותהמסת, יש להגדיר את הקובץ באמצעות םת85510. בעת ' הפעלת' הפרוצדורה - .הקובץ חייב להיות: סגור, התוכניתן תייב לוודא, שאין על: | הדיסק קובץ ששמו והה לשם החדש, תוכנית 0 (תדפיס 14.13): מדגימה את אופן השימוש ב-8₪6ת36 כדי לשנות של של קובץ אחד. > תדפיס 14.13 .1210 תפיקפסטן ; 208 05פגו ב יצפטי , 6096 011 01 קתנילפ : 636 1 ג תשוסאן , 0346100006 ג ;6 : 000ת116062020ק תנשסס ;( ' :6תפת 2116 7016 )186עש ;( 0167116036 )0801 ; ( 0107116806 , 06ת116061026'/ )5910 7 ' (-זפן ; ( 06ת0ע11606102/ )פספסת ₪1 תסמל 0 <> 100908 41 ( '.1000206 36002055" .0ַתט0+ פסת 116+ 7016 )ת1591י : תנשסס 6156 ;( ' :סתאת 80 שסא' ‏ )106יעש ; ( 110110186 )10801 נ - ו , 7'11030100000 )ה10פפ ּ "7 |1ש ₪ 0 ) לספס 0-9 ן - [+₪1 : " תפמ 0 = 1068016. 1 | ( '.66עסת1₪ 05%ג 3600‏ .ספ ת1 1116 אסא )ת1061י > 0 | ּ 6 ; ( 0906 011 , 1166100000 ) סתהתסת. 0 .6 , שים לב: התוכנית בודקת את קיום שני הקבצים (המקורי והחדש). 6 תלק ב" התכנות | ּ בדיקת גודל הקובצ תוכנית 1898ם שבתדפיס 14.12 קוראת את הקובץ בית אחר בית כדי לדעת מה גודלו, גודל הקובץ רשום בשדה המתאים שב-פּסע, אולם, כפי שראינו, מידע זה עומד לרשות התוכנית רק אחרי שימוש ב-69128%ם1ע או ב-6%%א8ב1ע. הפרוצדורה 6 פותרת את הבעיה, ומתזירה את מספר הרשומות שבקובצ גודל הרשומה מתייחס לנקודת ההסתכלות של מערכת ההפעלה, אם הקובץ נוצר כטיפוט מסוים (למשלי 5080600206ם1 %ס 116+ או 6םת1שַתס1 +ס 5116), גודל הרשומה זהה לגודל השדה, בקבצים ללא הגדרת טיפוס או בקבצי טקסט, ההנחה היא שגודל הרשומה הוא ברירת המחדל של אזור האחסון - 128 בתים. ניתן לעקוף את הבעיה ולהכריז על הקובץ כעל 66ַצכ 0% 2116 וליצור רשומות באורך בית אחד. במקרה זה *היה שוויון בין מספר הרשומות וגודל הקובץ. תוכנית 1878 (תדפיס 14,14) מדגימה את השימוש בתחבולה זו. תדפיט 14.14 1172 תפשסצס | עפט קתנת8% : ססות 1 ג (%6עט 02 2118 : 6סת0ע1160010ע תנשסס ;‏ 88. 721273 =: 116%88(6ת 31) 1103010000 , 71106 7 (( 06ת116061020ע )5ספסת ;( '8מ10 5058עמ "7 ,( 06ת7116001020 )71108120 (' 15 ' ,סתהא10גת )ת1%01ישט - :20כ222--:-:/:/:/- הווה הפלט של 878דכ הוא: שתס1 668צס 208 5 1:75.88 לעיתים אי אפשר להסתפק בבדיקת קיום של קובץ, וצריכים: לדעת גם אם יש תוכן בקובץ, דרך אתת לביצוע המשימה היא פתיחת הקוב וביצוע פעולת 686ע אחת כדי לבדוק אם התוצאה היא תו סוף קובץ, דרך פשוטה יותר היא שימוש בפונקציה 1165126ת. אופן השימוש בפונקציה מודגם בתוכנית : 21876 שבתדפיס 5. פרק 14: ניהול ספריות 17 תדפיט 14.15 ; 21270 תפינססיז ופט נשַת1ע+5 : :116100260 ;ת000168 : ( שת1ע%ב : 711686 )%ת110125000%6ע תס%1סתגת חקי ;00/56 +0 2116 : 06ת0ע1168016ת תנשסס ; ( 711088806 06ת11039+020 )510 [שת1אססת0 1/0 184216 -81) ; ( 06ת2110061020 )656% [ שת1אססס 1/0 68%66פתנסת + 81) תסמל 0 <> 16ו10309 +1 6 =: 6ת%0ת11609800ע 0 ;₪ < ( 6סת(7110361020 )21108126 =: 6ת1008500(60ג1עת 0 ; הגפס ; ' 088 01270" =: 604ת118100ע תסג+ ( 00%מ116100'/ )%6ת11672500(56ת 11 ( '!1868א62 ' ,(116100260%/ )ת1%01עשט 6 ; ( '6ת00+ %' תבהא ' ,116100260%/ )ת[0ס1ישט . תס ו וקה הת ההההההההההההההתההמתהקההוהההההההמהההוהקםהה.הההההההההההההההההההמוחה האחו.ה/ווה/)) ה החוחרה. אי כאשר מפעילים את 1168126ע על רשימה של קבצים, מתקבלת תוצאה הדומה ל-18ס של 05פ, פעולה כזו מתבצעת בתוכנית 187 (תדפיס 14.16), גם כאן הוגדר משתנה הקובץ כ-66עכ +0 2116, ולכן הפרוצדורה 1189126ע2 מחזירה את גודל הקובץ בבתים. תדפיס 14.16 ; 21774 ותפיוססינן ;208 08פגו חפט ; 031060 : סצתז16גץ ; סוז86['1 |: 160 ; 5ת1קתס1 : קתה%8ססת1'11911 (%66ע0 +02 2116 : 6סת110362000ע > (שת1ע%ם :‏ שתגע5%פ%ע8לס תנשסס סב 1 <> 6תגוססתפינפק +14 '*,%' =; שתגע%פ+עהסס . תדפיס 14.16 ממשיך בדף הבא 8 חלק ב" התכנות. > המשך תדפיס 14.16 0-6 (( 1 )עספתפעפת =: שת1ע5%82%9% ; ( 40ת /1161‏ (עַצ200%0גק - 16גַתעת2) ,שת1ע5%8259% )6בע1עסתגת ו 0 0 = עסעעספסת 16וג₪ תנשסס ; ( 86. 11611120 , 00ת0ע1169616ע )תוס ; ( 06ת11000+026ע7 )0%פסת ; ( 0ת09%8ת11011' , 06ת116061020' ) סו 001 ; ( שס6%0ה11 , 1101710658 ) סוס הסט ;( 9:( 08ת2116061020 )1165126/ ,12:סתבא. 0+ת1161ע )166יש 8:50 ,'-7 ,2:ק28 ,'-' ,4:ב%תס(א )ת1%61עאו 00 שסאסתנ'' בגש (( 860:2 ,7:7 ,2:תגא ,7:7 ,4:עטסם ; ( 06ת2'116361026 )01086 ; ( 40ת1161ת )6אסאסתגת ; תס 0-7 כאשר מפעילים את התוכנית על ידי ההוראה: | 7 התוצאה המתקבלת היא: 0 :16:48 7-29-1988 | 242 5 02אמן 4 7-29-1988 | 284 5. 05א 4 77-29-1988 | 216 ' 5. 01את 8 7-29-1988 | 499 ₪08.25 6 7-80-1988 | 1082 5. לדזאת 4 7-29-1988 | 884 5 4סמאת 8 7-80-1988 - 277 5. 4דדאן 7-29-1988 | 284 | 5. 06מאת 2 :12:25 7-27-1988 | 474 5. יאת 6 :17:22 7-80-1988 | 8455 5. פדדאת 52 :21:24 7-29-1988 | 96 5. 7סאת פרק 14: ניהול ספריות 19 שינוי בית-התכונות לבית-התכונות חשיבות רבה, באמצעותו ניתן לעמוד על אופי הקובץ ולהגן .עליו. מפני מחיקה בשוגג. תוכניות רבות מבטלות את' תכונת הקריאה- בלבד. של קבצים חשובים בתחילת העיבוד, ומתזירות אותה בסופו. | | באמצעות הפרוצדורות 065960 ו-ע86+7%% ניתן לקרוא ולשנות. את תכונות' הקובץ. לפרוצדורות יש שני פרמטרים: שם קובץ. לא פתות שו על ידי ם48810 : ומשתנה בגודל מלה המייצג את כו עצמה. תוכנית 811דכ (תדפיס 7) משנה את תכונותיהם: שק מספר קבצים, התוכנית מופעלת על :די ו 60%ם> <81מ02101> <ס6ק5116-5> ו[ומדס | הפרמטר ‏ <9116-8060> *כול להכיל תווים כלליים, הפרמטרים <16181:ס> (-<:6₪ם> מייצגים את סיבית הארכיב, הקובץ הנסתר והקריאה-בלבד, בדוגמה > שבתדפיס 14.17 מייצגות האותיות הגדולות ‏ - ת, א ו-5 סיביות זולקות והאותיות הקטנות 8, ם ו-: מייצגות סיביות: כבויות. למשל, ‏ כדי "להדליק" את סיבית הקריאה- בלבד בכל הקבצים שתצורת שמם היא 5 *612 יש להקיש את ההוראה: : 8 + 15 11תדכ כדי להחזיך. את המצב לקדמותו יש להקיש: ל ל ע 5 פהּכ,*:31 11אדס שים לֶבי כדי לבדוק אם > סיבית: דולקת, בית-התכונות נבדק -(ב-פאת לוגי) מול אחד הקבועים המוגדרים מראש. 6סת, ₪100 או צ1ת6800ת, כאשר הסיבית. דולקת - התוצאה היא אפס; כאשר הסיבית כבויה: - התוצאה אינה אפס, הדלקת הסיביות מתבצעת : על :ךדי שילוב הבתים הקבועים : מראש (ב-08. לוג') בבית-התכונות; . כיבוי הסיביות' מתבצע על :די שילוב בית -התכונות (באמצעות ‏ פאת לוגי) בבית אחר (ה-2סא הלוגי של הקבוע המוגדר מראש) שבו דולקות.: כל הסיביות, פרט לסיבית ה 0 חלק ב התכנות | | ; 1211 תפפססיזק תדפיס 14.17 08 868 צפט ; 9081000 : סצת1גק ; ת168ססט ‏ : מספ , צ0184%% סש 1 4+5שסאן 016 : שתנעלט : אסא ,116+ : 6סת116361070ע7 תתנשס תסמס 5 <> ש>תטס0תבפנהק +1 ( | פע0ססתהשפכן עסקסתת1' )ת%91גיש תנשסט 6156 ; ( 2 )עספתפינפת =: 018 ; ( 5 )ע6פתהעהק =: שסא 8 ([ 'ת' ,'?' ,'1' ,'ת' ,'ג' ,'8' ] ת: [ 1 ]018) + תגפסס תסמצ ([ 'ת' ,'ץ' ,'ת' ,'ם' ,'ג' ,'א' ] תג [ 1 ]שפא) ;( סצת71161 , (עַצס60%ע21 - 16נתְעֶת4) ,( 1 )ע%פת8דפק )5%נסתנק 0 0 = עסעעמפסק 16גגט תנשסס ; ( 6ו88. 1161020 , 00ת0ע7/'1163616 )הש1פפב ; ( ע0180%% ,06(ת7116001020 )002 00% + [ 1 ]0186 0886 ;0 = ( 6ט0021 שת8 ש0160%%) =: בסאמא : יש ;0 <> ( סטנםסת תה ע018%%) =: מסאפא : 'ב' ;0 = ( 81000 6ת8 ע01020%%) =: סאפ : "םת ;7 <> ( ה11800 בת8 ע0104%%) =: ב8%0 : "7% ;0 = (ע1ת36800 שת8 0104%662) =: מ0ס6מא 1 'ע' 0 <> (17ת36800 תה ע0160%%) =: מסספא : "םת 0156 08602 := 91856; ; תס תנקסס תסמל מ8%0 +1 + [ 1 ]אסא 6פ08' [ שטנמס2 %סא ) | ;"90 שת8 0104%%2 =: עס%בשסא : 77 ] סטנמסיה ] ;820 עס ע0104%% =: עף%גשסא : 27 [‏ 810060 %סא ) | ;2ע9 בשתה 0104562 =: עס6גשסא : 'ם' 1 | ;802 עס ע0104%% =: ע4%6השסא : "עד [ ע1ת0בסת3 >סא )] | ,908 שת8 ע0104%%2 =: ע%6השסא : 'ק' ] ץנתספסת ] מס 0104652 =: ע%%השסא : 7 ;010246%2 =: 26%2שסת 60156 ; תס ; ( 065 , 116061020(06ע )5017062 ; ( '0611100 066 1188 * , סותם1. 0+ת1161ע )ת[146ישט 6 תס ; ( '₪0014100 00 6 "תפמב 7 , סת. 2116140 )ת1%91יש ; ( 40ת1161ע )6אסאסתגק ; תס 68 תס ; ( 'פת86160%10 8%%2100056 עסקסנקם1' )ת601נישט - . תס פרק 14: ניהול ספריות ‏ 521 בדיקת שמות קבצים כאשר הקובץ אינו נמצא בספריה התורנית, יש לציין בפרוצדורות את הנתיב המלא המוליך אל הקובץ (פוּהּם 85 018115166 5011), אם הקובץ המוזכר בפרוצדורה אינו נמצא בספריה התורנית שבכונן התורן - נוצרת שגיאה ולא מתבצע ניסיון לאתר את הקובצ במקום אחר, (דוגמא לנתיב מלא: 'זזתס,ם.זדעאתס 025 ,1זת0פת2 :0). טורבו פסקל אינו משנה שם של קובץ ספריה או כונן של קובץ שעליו הוכרז, השם עובר למערכת ההפעלה בדיוק כמות שהוא, תוכנית מעוצבת כהלכה תסייע למשתמש לאתר את הקובץ. בקטע זה נתאר את הפרוצדורות היוצרות, משנות ומאתרות קבצים, | הרחבת שם קוב = הפונקציה 6ְתהסאפע יוצרת שמות מלאים של קבצים באמצעות ברירות. המחדל של הכונן והספריה, תוכנית 1עאמע (תדפיס 14.18) מתארת את אופן הפעלתה: תדפיס 14.18 ; 1ססכעין: תפידקסיצכן 208 808גו ופט > נשת1ע8% : קת1ע100%ג1ע הגפס 8% ; ( ₪ת1ע1109%ת )ת[086ע ;( ( 8ת1ע1165%/ )בתהססאת )ת1601י ; הת491 בינ ,2 = ( שת1ע1105%ע )ב6קת16 611תט . תס בתוכנית 1א8ע הפונקציה 6מפקאפע מופעלת על שם קובץ ומתזירה את הפרמטר בצירוף קידומת שם הכונן והנתיב, נתוני הכונן והנתיב מתבססים על הכונן התורן והספריה התורנית, דוגמא לפלט של [פאע: פן. 16221 5 1אפ 00 מ :0 פהכ. 0001 5 . 1א1 ו[ 00 מ : 0 *. 20201 * 1 ות :0 סינ דכ 000 תת :0 + ד :0 ' 006 ססונגול :0 כ 0 0 :0 *.*:8 *. *:4 : ו אין צורך להשתמש בפונקציה זו בתוכניות המשתמשות בספהיה התורנית בלבד, הפונקציה מאפשרת לשמור על שם הכונן והספריה כאשר התוכנית פונה למספר ספריות: (ובעיקר כאשר משתמשים ב-:1פמ0). | חיפוש במספר ספריות בדרך כלל, מגבילים את החיפוש אחר קובץ מטוים לכמה ספריות, באמצעות הגדרת הנתיב - אע - בסביבת 05פ, אם הקובץ המבוקש אינו נמצא בספריה התורנית, המערכת מנסה אוטומטית לאתר את הקובץ בספריות המוזכרות בנתיב. | באמצעות הפונקציה ם0ע968ע של טורבו פסקל ניתן לחפש קובץ במספר ספריות. ל-ם286820 יש שני פרמטרים: שם הקובץ המבוקש ומחרוזת | המכילה את רשימת . הספריות שבהן יתבצע החיפוש, כאשר הפונקציה מצליחה לאתר את הקובץ - היא מחזירה את הנתיב המלא המוליך אל הקובץ; כאשר הפונקציה אינה מצליחה לאתר : את הקובץ - היא מחזירה מחרוזת ריקה. | | יש להניח כי תרצה לבצע את החיפוש בספריות שהגדרת בהוראת הצגע של 383 נניח שהוראת א1'תע במחשב שלך היא: 05000 :0; אסא :205:0 :ס- 3 חפ תוכנית 2פאחת (תדפיס 14.19) מתפשת את קובץ מא₪ 0 בספריה התורנית. כאשר החיפוש אינו מסתיים בהצלחה, היא ממשיכה לחפש ב- -0:205 ואחר כך ב-פ08א:0, ב-08806י':0 ולבסוף ב-פץ :6, | = | ;כ תפידקסי תדפיט 14.19 | ו ינפש ו , סותא 11 951 < שג 1109%1ע תופסו ; ' 66. סמינגול: =: 06ת116%8ע ; ( ( 'ב8%ק' )טת00%8 ,8(6א110/ )ב50820ע =: שתנעספס1גע תסמ+ 0 = ( שת1105%21ע )106 11 ( '08ת00+ פסת 7 2 ) ת191יט "ּ 16 ;( ( שת1ע1109%ת 7 ) 401 גיט : . תס שש כאשר התוכנית מאתרת את הקוב (בספריה פע ':6), היא מציגה את המחרוזת: מא סמתטי פז:ס | | פרק 14: ניהול ספריות | 523 יצירת קובצץ חדש יש מצבים שבהם מבקשים ליצור קובץ חדש ששמו מתבסס על שם קונץ קיים, ננית שברצונך ליצור תדפיס של תוכנית מקור בטורבו פסקל, כדי לבצע זאת, תרצה בודאי לקרוא לתוכנית (ששם ההרחבה שלה פתת,) וליצור קובץ פלט בעל שם הרחבה שונה (למשל: 257). - - הפרוצדורה 5011%ע מפרקת את השם המלא של הקובץ לגורמים (ספריה, שם, הרחתבה), בתוכנית 3עאמע (תדפיס 0) המשתמש מתבקש להקיש שם של תוכנית פסקל ואת שם קובצ היעד (605רכ005) והתדפיס, ברירת המחדל של שמות ההרתבה היא 1, |-57,, המשתמש רשאי לשנות גם את שם הקובץ עצמו. תדפיס 14.20 כסי תפידפסיזקן 208 5658גו הפש (שתגעל5 : 7116118% ,11600[60%/ , 06גו11650ע ; עשפתאת 1 תהק , 9ע1260%07 ע%פע1 : ץס00ינ1 , 61860 11 ; 909% : סותא 11 ; ע09%אנ 1 תס תא נשת1ע8% :- קת1ע1105%ע תנשסס 0 ;( ' :(ב08.*) סתפת 1116 06עגוס '9‏ )106יט ; ( ₪ת21169%21 )ת6801י ; ( מ810ת%6א ,11008200 ,(21260%0270 ,קת1ע109%גע )11%ספע [‏ 2600208606 ת10פת%0א6 01%ג2610 ] | תסם% 77 = תס1פתס0אםת 12 נ'פאם." + 7110%88(00 + 0עס%ס6עגת =: שת165021גע ;( ( 'ת8%ק' )טת(0ל00 ,שת1ע1169%ת )ב79080 =: סתהפאתאמק ; ( ת510ת00 ,11609000 ,0ע21:60%02 , סותהאאפע )11%ספץ ( 18%א6 %בגות 1116 6סעטסם ]‏ ;77 <> סתהאמאהק 11שותעו ;84196 =: 08עגו650 11 ;( ' :(001.' ,8200א116ת ,') סתגת 1116 700[60% )156 י ; ( 6ת21ע1109%/ )ת0801י ; ( תמ0600510 , 6ת7110%8 ,ע-60%0עג0 (שת1ע1109%ע )11%קפע (211:00%01/0 =: עע6060ע1ע תפמף *1 126007 +1 60ות116%8/ =: 06ת2116%8 תסמל '7 11086 +1 ;'[סס." =: תסנפת00א תסתל 77 = תסנפתס%אם +14 (ת10פת60את + 2110086 + ע:60%0ע1כ =: 11600[60%ע וההחהכ| (( ' :(186.' ,82(00א7116 ,') סתהת 1116 שת1ף115' )6ל1עש ; ( ₪ת1ע21169% )ת861סע ; ( תמ00000510 , 06ת110%8 ( עס00%גע ,שת1ע199%גע )11%ספע (21200%0770 =: ש21260%07 תסמל 77 = עעססססעגם +14 60ות7116[8 =: סת7116%8 תסמס '7 6תהאנץ +1 7 ['18%.' =: תס1פת56א2 תסב% *"7 = תסנפת%00ע1 11 תדפיס 14.20 ממשיך בדף הבא ;ת510ת00א + 7110%808 + עע0ל60מגת =: 116718%ע 1000 4 גי דרת ח"טרה דר 077 5.0009 יל 00 >< 4008 .== ל -ו - >400/90--₪ * אוש 7- + + 524 חלק ב" התכנות ; ת061 ניש 0 , המשך תדפיט 14.20 ;( 2116500206 ,7 :06עטס5' )ת1%61עש ;( 11600[60%? ,7 :00[60%' )ת1%61יט ;( 7116115% ,' :שת119%1' )ת1%61יש . וז ניתן: היה להימנע משימוש בחלק מהפרוצדורות או הפונקציות על חשבון המבנה הברור של התוכנית, באופן כללי, כדאי תמיד להעדיף תוכנית ברורה ומובנת על חיסכון בהוראות. בפלט לדוגמה, שלהלן, תוכנית המקור היתה 06,225תפאת0א, התוכנית הציגה את ברירת המחדל של שם קובץ היעד וקובץ התדפיס, והמשתמש הקיש את השמות המבוקשים: שסנאסא : (85.*) סותגת 1116 5006 6. :([סס שסעסאתסשט) סתגת 1116 00[60% 6 : (18%. שסץקאתסש) סתגת 1116 שת115%1 3 שסעסא סש | :06עגו50 שסס. שסצסאעס :00[60% %. שש :שת1,15%1 סיכום בפרק זה הכרת את הפרוצדורות והפונקציות העוסקות בניהול קבצים וספריות. למדת לבדוק את גודל הדיסק ואת גודל השטח הפנוי שבו. ראית כיצד התוכניות יכולות לבדוק מהי הספריה התורנית, לעבור לספריה אחרת, ליצה" ספריה חדשה ולמחוק ספריה ריקה. למדת לפנות למידע שבספריית הדיסק, המידע כולל נתונים אודות שם הקובץ, גודלו, תכונותיו, התאריך והשעה של הכתיבה האתרונה. ראית שהסיביות שבבית- התכונות מתארות את סוג הקובץ ואת העיבודים המותרים, למדת לשנות שם של קובץ, למחוק אותו ולשנות את חותמת התאריך והשעה ואת סיבית התכונות. בפרק הצגנו כמה תוכניות להצגת ספריות ותוכניות שירות לאיתור קבצים בעלי תכונות משותפות, למדת לחפש קובץ במספר ספריות ולהשתמש בנתיב התיפוש המוגדר בהוראת אע1גע של פסס. ' בסוף הפרק הכרת שגרות שימושיות להרחבה או לפירוק של שם קוב. טורבו פסקל המדרירך השלם כולל גירסה 5.5 שפר את מיומנותך בעזרת המדריך השלם למשתמש בטורבו פסקל שבהוצאת "אופוס". הספר הוא שילוב של ספר לימוד המסביר, צעד אחר צעד, כיצד להשתמש בטורבו פסקל וספר עזר המתאר את המהדורות השונות של טורבו פסקל עד גירסה 5.5. הספר כולל עשרות דוגמאות של תוכניות שימושיות שיסייעו לתוכניתן המתחיל להשתלב בסביבת טורבו פסקל, בספר - המדריך השלם למשתמש בטורבו פסקל-תמצא רשימה מלאה של הפונקציות והפרוצדורות של טורבו פסקל. המידע המקיף שבספר יסייע לך ליצור במהירות תוכניות מורכבות בטורבו פסקל. בעזרת הספר תלמד: + לעצב תוכניות טורבו פסקל % לפקח על פעולות התכנות 0 א לטפל בקבצים ובספריות הספריס של אופוס מפתחים את מיומנותך ולא רק את ידיעותיך. ּ לעבוד בתצורות טקסט וגרפיקה המערכת כוללת אנשים שאיכפת להם - מומחי מחשבים, מחנכים א לנצל את פונקציות 205 וה-8105 ומקצועניס בשטח ההוצאה לאור. ש לנפות את תוכניותיך ש להשתמש בתוכניות תושבות בזיכרון אופוס הוצאה לאור בע"מ