שפת C : נושאים מתקדמים ומולטימדיה

עריכה ועיצוב – שרה עמיהוד, טליה טופז | 430, 8, 23 עמודים : איורים ; 24 ס"מ + 1 תקליטור. – ISBN 965-361-251-4

OCR (הסבר)
מה חי שפח 6 נושאים מתקדמים ומולטימדיה "ו ל בשנ. שפת 6 נושאים מתקדמים ומולטימדיה קרא על התקליטור בהקדמה, בנספח ו' ו-ז' ובקובץ 060 שבתקליטור עורך ראשי: יצחק עמיהוד. עריכה ועיצוב. שרה עמיהוד, טליה טופ עיצוב עטיפה: שרון רז שמות מסחריים. החברות, הטובריס והשירותים. שמות מסחריים רשומיס (569705765/ 0990619198 המווכרים בספר טור הודעה ספר וה מיועד לתת מידע אודות טוצריס שונים. שו מאסציס רבים לגרו לכך שהספר יהיח שלס ואמץ בבל שניתו, אד אין משתעת מכ בכ אחריות שהיא. ספיל יכמות שואי רש בד הת ו- שמ החראה בלו וחד א אנ עבור לוב א לשם שטף הקריאה כתוב ספר זה בלשון זכר בלבד. ספר זה מוועד לגברים ונשים. כאחד ואין בכוונתנו להפלות או לפגוע בציבור המשתמשים/ות. מקס: 09-9571582 דואר אלקטרוני: ((.01.60חה-1060006ח1 פפשם ם אתר באינטרנט: !ו.1.60 6-81 0ח. וע שפת 6 נושאים מתקדמים ומולטימדיה משה יצחקי וס 3000006 - 18000800 חק .4 עפ ₪ כל הזכויות שמורות. הוצאת הוד-עמי לספרי מחשבים בע''מ ת.ד. 6108 הרצליה 46160 טלפון: 09-9564716 = פקס: 09-9571582 160 3 - 01 .ששו וה-00 1/0 אין להעתיק או לשדר בכל אמצעי שהוא ספר וה או קטעים ממנו בשום צורה ובשום אמצעי אלקטרוני או מכני, לרבות צילום והקלטה, אמצעי אחסון והפצת מידע, ללא אישור בכתב מאת. החוצאה, אלא לשם ציטוט קטעים קצרים בציון שם המקור. הודפס בישראל 2000 ו 0 0 ביר מסתי"ב -965-361-251. 199% תוכן עניינים מקוצר הקדמה פרק 1: תקציר פקודות בשפת 0. פרק 2: עבודה בסיביות. פרק 3: שימוש בפסיקות ושילוב פקודות אסמבלי פרק 4: יצירת פרויקט, חלוקה מודולרית, תיעוד וסגנון פרק 5: מקלדות ומדפסות. פרק 6: קבצים וספריות. פרק 7: מסכי טקסט.. פרק 8: עכבר למסך טקסט.. פרק 9: גרפיקה ב- 256 צבעים (13/4 41066). פרק 10: שילוב תמונות בפורמט 817 .. פרק 11: זמן.. פרק 12: אנימציה. פרק 13: עכבר גרפי מונפש.. פרק 16: כוגן התקליטורים (₪0- 60| פרק 15: השמעת קבצי ה שו. פרק 16: הקלטת קבצי ה ו. פרק 17: תקשורת טורית בין מחשבים והפעלת המודם.. נספח א': מבט מעבר לחומר השגרתי נספח ב': טבלאות 85011, מקשי בקרת ומקשי טריקה נספח ג': פסיקות עיקריות בחומרה ובתוכנה.. 4 4 3 5 5 3 3 נספח ד': כתובות מוחלטות ב-%/₪ לשימוש 8105 .. נספח ה': אוגרים. נספח ו': הרצת תוכניות הדוגמה במהדר א.3 ++6/6 ספזטד נספח ז': התקליטור המצורף. אונדקט 1 3 7 תוכן ענינים 5 תוכן עניינים הקדמה למח כדאי ללמוד את הנושאים האלה רעיונות לפרויקטים שוניס שניתן להכין בעזרת ספר זה. ולסוום. פרק 1: תקציר פקודות בשפת 6. הערות כללוות.. 2 פקודות בסיסיות. קריאח לפונקציה. הפונקציה ומוה 1.4 טווח הכרה ומשך החיים (56006 806 וסטמוטם) של משתנים. משתנים גלובלוים .. משתנים לוקליים (נקראים גם אוטומטיים) משתנים סטטיים - 1806 משתני רגייסטר - 60046 משתנים הפכפכים - 0180/6 5 מצביעים והקצאות זיכרון. עבודה עס מצביעים רגילים. העברת פרמטרים 466655 ע מצביעים למערכים ומחרוזות. מצביעים למבנים ואיגודים. הקצאת זיכרון דיגמית. תוכן עניינים 7 . 6 קבצים.. כתיבת נתונים שוניס בקוב טקסט.. נתונים פשוטים בקובץ בונארי...- מערכים בקובץ בונארי. מבנים (רשומות) בקוב בינארי.. תזוזה בתוך קובץ וגישה ישירה). 4 פרק 2: עבודה בסיביות 1 שיטות ספירה. 1 בית, מילה ומילח כפולה.. 5 פעולות לוגיות בסיביות. 4 מסכות.. 5 הזות סיביות (כפל/חילוק מקוצר). כפל על ידי הוה שמאלה. חילוק על ידי הווה ימונה. 6 הדפסת ערך בינארי של משתנו 7 08א כבדיקת זוגיות סיביות. המשחק "נים" (יפורמידה הפוכהי). פרק 3: שימוש בפסיקות ושילוב פקודות אסמבלי 1 פסיקות - הקדמו 0 2 איגוד האוגרים המדומים ומבנה אוגרי המקטע.. 3 הפעלת פסיקות בשפת 6 .. 6 96% 0 3 יצירת פסיקה חדשה ופלישה לפסיקה קיימת.. 5 שילוב פקודות אסמבלי בתוכנית... פרק 4: יצירת פרויקט, חלוקה מודולרית, תיעוד וסגנון. > חלוקה ליחידות 0119 סכנת ה-901. 2 הרכבת הפרויקט. 3 מל אכי מה שמו; סגנון כתיבת השם. 8 שפת 6- נושאים מתקדמים תיעוד קבצים. 5 מראה כללו. 0 היכן להשאיר שורות רווחז. פרק 5: מקלדות ומדפסות. 1 85011 וקודים מורחבים. 1 בדיקת המקשים הדביקום. 53 שילובי מקשי החיצים. 5% הדפסה. הדפסה רגיה פרק 6: קבצים וספריות. 1 מבנה המידע של הקובץ 0 נתיבים. 3 בוננום. 0 מציאת הכונן הנוכחי (התורן. מעבר לכונן אחר.. 4 ספריות. מעבר לספריה אחרת . קליטת נתיב הספריה הנוכחי התור . 5 קבצים. 6 חיקוי הפקודה אזם. 7 העתקת קבצים. מחיקת קבצים.. 3 ₪ 2 ₪ פרק 7: מסכי טקסט. 74 גד 73 0 74 העתקה והזוח של מלבן טקסט.. 5 הסמן.. 6 גלילה (0ו5001) ₪ ג ג ג וג 1 תוכן עניינים 9 תוכנית להצגת קבצי טקסט. גישה ישירה לחוצץ המסך. זג פרק 8: עכבר למסך טקסט אתו העבבר הצגה והסתרה של המצביע מתי נרצה להסתיר את מצביע העבברו . 3 בדיקת סטטוס העכבר. בדיקת מצב לחצני העכבו המרת קואורדינטות העכבר למסך הממשי 84 מציאת מיקום לחיצה/שחרור אחרון. 5 תיחום מרחב תנועת העכבר 6 וחידה לשימוש בעכבו ממשק החידה תוכנית לדומ העתקה והדבקה. פרק 9: גרפיקה ב- 256 צבעים (1384 006 1 מה זה בכלל 13% 606 168 2 החלפה בין מודים. 3 שתילת מיקסל על המוסך. ציור קווים.. 5 ציור עיגולים. לוח הצבעים. כוצד שולפים את ערכי צבעו חיסוד שמם בנוי צבע מסוים? 7 361 / 0 306 כוצד עושים 0 1466 בוצד עושים 10 5366 כוצד למתור את בעיית העיוותים ו 8 דפים וירטואליי מהו דף וורטוולו? מדוע רצוי להשתמש בדבום וירטואליים: - 5 יצירת גפנים. ביצד משלבים את האותיות שבנינו בתוך התוכניתו. חלונות 1 יחידה לנרפיקה ב-254 צבעו ממשק הלחידה. 6 שפת 6- נושאים מתקדמים פרק 10: שילוב תמונות בפורמט !8 .. פרק 11: זמן.. פרק 12: אנימצי, תוכנית לדוגמה. 1 קבצי לוו מהו מקור השם 18%/5.. כוצד בנוי קוב 45/₪ו. 2 קריאת קובץ לואפ.. קריאת הנתונים מכותר הקובץ.. קריאת לוח הצבעים מהקוב). קריאת התמונה מהקובץ.. 3 הצגת התמונה. 0 ציור התמונה על המסך, או על דף וירטואל טיפול בחלקי תמונה שקופים.. 4% הנחיות עבודה. 5 החידה להצגת קבצי ₪4 . תוכנית לדוגמה. 1 קריאת הזמן והתאריך.. קריאת הומן הנוכחי משעון 005.. קריאת התאריך הנוכחי משעון 05.. 2 עדכון הזמן והתאריך ...כ עדכון הומן הנוכחי בשעון 005. עדכון התאריך הנוכחי בשעון 005.... 1.3 יצורת קוצב שניות (טיימר שניות).. השעון הפנימי 18.2460). 1.5 פלושה לפסיקה 84. 6 שבב קוצב הזמ 7 יחידה לטיפול בזמן תוכנית לדוגמה. 1 רשימת אנימציה. 2 יצירת חוליה לכל מסגרת.. 2.3 חלוקת תמונת האנימציה. 3 3 1 1 2 2 8 8 1 ₪9 = 2 ₪ ₪3 8 2 1 1% 2 3 9 9 2 3 2 2 2 2 2 3 0 5 = ב תוכן ענינים 11 4% מחיקת רשימת המסגרות. 5 סיכוםס 6 תוכנית לדוגמה. פרק 13: עכבר גרפי מונפש 1 עכבר גרפ יצירת מצביע לעכבר נרפר 3 עכבר מונפש. 4 היחידה לעכבר גרפו מונפש. ממשק היחידה. תוכנית לדונמו פרק 14: כונן התקליטורים (00-80%) 4 מושגים כללים. ב מה זה 005% יספרים צבעוניים" ותקני 9605 0 2 1 בדיקת אתחול הדרייבר 8606 והפעלת. ₪ בדיקת אתחול ה-א5005וו. ₪3 מחלך הי"שוחהיי עם 5005 ₪ טאו סו 0 בקשת מידע על התקליטור שבכונן בקשת מידע על השיר. בקשת מידע על עוצמת הקו; בקשת מידע על מצב הכונן. בקשת מידע על מיקום הראוש. טס 10 שליפה אאו סגירה של המגש. שחרור או נעולח של מנעול המנש . קביעת עוצמת חקול. 5 הפעלת השמעה. 6 השהיית השמעו 7 חידוש השמעה. ₪ 5 5 וחידה להשמעת תקליטורים. 5 ממשק היחידה. 5 מימוש היחידה. = תוכנית לדונמו ג 2 שפת 6- נושאים מתקדמים פרק 15: השמעת קבצי הש .. 1 ציהוי מאפיוני כרטיס חקול.. - מעבד אותות דיגיטליים. 2 קבצי אוו ל כוצד גמיר קבצי 4/8 כדי שיתאימו לפורמט רצויו 3 מבנה הקוב 4 מנגון ההשמעה המחזורית. 5 השמעת מחזור בוד 6 עוצמת חקול. 0 7 יחידת הספריה להשמעת קבצי אוו ממשק היחידה (1969ופו חנ 8 = 23 2 2 0 0 3 2 2 כ 2 2 תוכנית לדוגמה. 8 רשימת פקודות מ5ם. פרק 16: הקלטת קבצי חן .. 1 המיקסר - זאו 2 מנגנון ההקלטה המחזורית. 3 תעצרו את הרכבת, אני רוצה לרדת. 4 היחידה לקבצי אוו תוכנית לדוגמה. 0 ג 7 בג 3 פרק 17: תקשורת טורית בין מחשבים והפעלת המודם. 1 תקשורת טורית. אתחול כרטיס התקשורת.. 3 בדיקת סטטוס התקשורת. 4 שידורתו. 5 קליטת תו. 6 יצירת תוכנית צ'אט בין שני מחשבים.. כיצד ניצור תוכנית להעברת קבצים בין מחשבים? 7 המוד 0 9% שידור וקליטת תווים באמצעות המודם. 0 7% 3 ו ו 5 2 2 3 .3 תוכן ענינים 13 נספח א': מבט מעבר לחומר השגרתי.. אודות שפת 6. מצבועים לפונקציות.. גודל מצבוע. נוחול משאבי; מיהול התוכנית. מודולריות.. נספח ב': טבלאות 45611, מקשי בקרה ומקשי סריקה טבלאות 4511 רגיל ומורחב. טבלת מקשי בקרה 00066 עשא (סשחכס). תרשים מקשי סריקה רגילים ומורחבים.. נספח ג': פסיקות עיקריות בחומרה ובתוכנה .. נספח ד': כתובות מוחלטות ב-₪1 לשימוש 8105 .. נספח ה': אוגרים. אוגרים כלליים (606095 6פספו, 806181 ) אונרי המקטע 90009 0ח50) .. אוגרים מצבועים [16060665 06 אוגר הדגלים (6006090 פסגו= נספח ו': הרצת תוכניות הדוגמה במהדר א.3 ++6/6 ספזטד .. היכן נמצאים הקבצים הקשורים לספר ה העתקת קבצי המקור לדיסק. 14 שפת 6- נושאים מתקדמים נספח ז': התקליטור המצורף .. התיקיה הרלוונטית לספר זה. הקנה קטלוג )וזו מה עוד בתקליטורו. התקנת תוכנת גלישה לאונטרנט 5 50106 1061 שו 0 0 4 4 כ כ 9 6 אינדקס תוכן ענינים 15 הקדמה הספר "שפת 0 - נושאים מתקדמים ומולטימדית" מיועד לתלמידי תיכון, מכללה. ואוניברסיטה, המגישים עבודות גמר בשפת 6, ולכל מי שרוצה להעשיר את הידע שלר במיגווןנושאים מתקדמים בתכנות שעד כה לא הופיעו בספרי לימוד אחרים. ספר זה איגו ספר לימוד של שפת 6. קהל היעד העיקרי שלו הס המתקדמים, בעלי ידע בסיסי בתכנות. עס זאת, הפרק הראשון בספר מהווה תקציר וחזרה על שפת 6, וכך הוא. מאפשר גס למתכנתים בעלי ידע בשפות אחרות להכיר את שפת 6 וללמוד בספר זה. גס אלה. שמכירים את שפת = ורוצים לרענן את ידיעותיהם בשפה יוכלו למצוא בפרק זה חומר. לימודי שיענה על דרישותיהם. מי שאינו בקיא בשפת תכנות כלשהי, מומלי שיפנה תחילה. לאחד מהספרים האלה בהוצאת הוד-עמי. > המדריך השלם לשפת 6 / משה ליכטמן, עמית רש. - ללמוד 6/ יאב נתיב חמשת הפרקים הראשונים בספר מציגים נושאים חשובים בשפת 6 שאינם מקובלים בדרך בלל בספרי לימוד של השפה (כגון עבודה בסיביות, שימוש בפסיקות, פלישה לפסיקות.. יצירת פרויקט ועוד). גם מי שמכיר נושאים אלה, חשוב שיקרא אותס, כיון שח מחווים. את הבסיס ללימוד ותרגול הנושאים המתקדמים הנוספים שבספר. שאר הפרקים מציגים מיגוון נושאים מתקדמים בתכנות ובמולטימדיה. הנושאים. ממומשים אמנס בשפת 6, אך החומר התיאורטי מתאים לשפות תכנות אחרות גם כן, ולכ ניתן יהיה לשכתב את קטעי הקוד בקלות ולהתאינמם גם לשפות תכנות אחרות. בסוף כל פרק ישנה יחידת פכנות 0וח) המסכמת את כל החומר הנלמד בפרק ומכילה גם. פתרונות לחלק מהמשימות שפורטו בו. לאחרי כל יחידה יש תוכנית דוגמה המשתמשת. היחידות והתוכניות שבכל פרק, נמצאות גם בתקליטור המצורף לספר זה (תחת התיקיה. 81 לכל פרק בספר יש תיקיה נפרדת המכילה את כל קבצי הקוד הרלוונטיים ל. קטעי קוד אלה נכתבו בספר עם הצללה (רקע אפור). התוכניות שבתקליטור נכתבו כפי שה צריכות להיראות בעבודת גמר בעת הלימוד וגס בעבודה מעשית. כך תוכלו להתרגל למראה. הכללי של הקוד (מסגרות עזר, הוחות) ולתיעוד. בספר, בפרקים 3 1- 4, הרחבתי כיצד צריכה להיראות תוכנית ואחי"כ עברתי למבנה שבדרך כלל נהוג בספרות המקצועית. נה לנספח ו' כדי לקרוא כיצד להריץ את תוכניות הדוגמה שבתקליטור, בעזרת. | המהדר .3 ++6/6 8081808 17 המדקה‎ היחידות שבסוף כל פרק מאפשרות גם למי שאינו רוצה להתעמק בדרך המימוש של. הפונקציות השונות, ללמוד כיצד לשלב אותן ולחשתמש בהן לפתרון הבעיה המוצגת. עם. ואת, בעת הגשת עבודה במסגרת לימודים, ובמיוחד בעת פיתוח תוכנה, רצוי ואף חובה. להכיר ולהבין את תוכנם של הפונקציות. למה כדאי ללמוד את הנושאים האלה? רבים מבוניכם בוודאי תוחים, מדוע צריך ללמוד נושאי מולטימדיה בשפת 6. הרי כיום ניתך לשלב תמונות וקבצי קול בפרויקט בקלות רבה בשפות ויוואליות, כמד ++6 ופצו 896 ומצפו, גם היום נכתבות מערכות תוכנ רבות ומקיפות בשפת 6. כך לדוגמנה, תוכנות 6905 כתובות בשפת 6, תוכנות אש ואחרות. גס כשכותבים תוכנית בשפח ויוואלית ונעורים. בפקדים שבסרגל הכלים בכדי לשלב בתוכנית קבצי מולטימדיה, ראוי לדעת שהפקדים. נכתבו במקור בשפת 6. יתרה מכך, כשרוצים לכתוב פרויקט נרחב אשר הביצועים ומחירות. התגובה בו חשובים, כותבים את הפרויקט בשפת 6. מסיבות אלו, שפת 6 עדיין רחוקה. מלהיעלס מעולם התכנות, ומשמשת שפת בסיס ללימוד תכנות בבתי ספר מקצועיים, במכללות ובאוניברסיטאות. פרקי המולטימדיה בספר וה מכילים תמצית של החומר התיאורטי חרב הקשור לנושאים. אלה. כדי ללמוד את כל החומר הקשור להס דרושים 17 ספרים ולא 17 פרקים בלבד. לדוגמה, בפרק ל העוסק בגרפיקה תכורו מוד של גרפיקה ב-256 צבעים. עם זאות, ידו שקיימים מודים רבים אחרים התומכיס ברזולוציה גבוהה ובמספר צבעים רב יותר. בחרתי. להציג את האפשרות הבסיסית מכיון שחיא פשוטה לתכנות, והדגמתי בעורתה נושאים. כלליים בגרפיקה הנכונים גם עבור מודים אחרים (כגון דפים וירטואליים והשהיית תותח. האלקטרונים). באופן זה, תוכלו לקבל את הרקע והבסיס לנושא ואם תרצו - תוכלו לכתוב. בעצמכס יחידה התומכת במוד יותר מתקדס. באותה מידה, בפרק העוסק בהצגת תמונות הדגמתי את הנושא בעזרת תמונות 8915 , ובפרק. העוסק בהשמעת קבצי קול הדגמתי את הנושא בעזרת פורמט בסיסי של קבצי עאוצ. בכל. פרק הדגמתי את הדרוש בעזרת הדונמה הקלה ביותר למימוש והסברתי כיצד ניתן לשדרג את הקוד כדי שיתמוך במבני תכנות מתקדמים יותר. הפרקים הם עצמאיים בדרך כלל, והכוונה לכך שאין חובה לקרוא אותם לפו סדר מחייב. כלשהו. עם זאת, רצוי לקרוא את הפרק כולו מתחילתו לסופו, כי המטרה המסתתרת. מאחורי נושאים אלו היא להדגים כיצד להתמודד עם בעיות שונות בתכנות, וכיצד לגשת. לכתיבת קוד מורכב ולעיתים גם מסובך. חשוב שיהיה לכל מתכנת ידע בסיסי בכל אחד. מהנושאים הללו, גס אם אינו מתכוון לעסוק בהם בעתיד. כך לדוגמה, גם מי שכותב בשפת. תכנות ויזואלית ומשתמש בפקד מוכן להשמעת קוב 84), יבין כיצד הקוב מושמע (בעורת מנגנון פסיקות עצמאי) ומדוע גם אם התוכנית נתקעת, המנגינה עדיין נשמעת. 8 שפת 6- נושאים מתקדמים הנושאים בספר כתובים על פי סדר קושי עולה, ולכן גם מי שאינו מעוניין בכל הנושאאים, רצוי שיקרא את הפרקים המעניינים אותו, על פי הסדר בו הם כתובים בספר. בכל מקרה, רצוי להתחיל מחמשת הפרקים הראשונים המהווים את הבסיס לכל הפרקים שבהמשך. רעיונות לפרויקטים שונים שניתן להכין בעזרת ספר זה > תוכנה לטיפול בקבצים וספריות בסגנון ז8066חט) חפוזס), המאפשרת לסייר. בכוננים, ולהפעיל, להעתיק ולמחוק קבצים ותיקיות. > ארגונית = יומן אלקטרוני הכולל: לוח פגישות יומי, התרעות על ימי הולדת ואירועים. חשובים, ורשימת מטלות יומית. + ספר טלפונים ממוחשב המשלב חייגן טלפון המאפשר לחייג ישירות מתוך ספר הטלפונים הממוחשב בעזרת מודס. + מעבד תמלילים בסיסי המאפשר העתקה, מחיקה, שמירה, טעינה, הדפסה ופעולות. "יו + משחק כגון ישולה מוקשיסי, או יסוגר שטחיסי החושף תמונת 8% הנמצאת ברקע. > תוכנה לחשמעה והקלטה של קבצי קול. > תפריט קיצורים המיועד למערכת רבת משתמשים, המציג לכל משתמש את תפריטי. הקיצורים לתוכניות בהם הוא משתמש. + נגן תקליטורים המאפשר השמעת תקליטורים, הכנת רשימת השמעה והשמעה. אקראית של שירים. > סיפור מולטימדיה לילדים. תוכן הסיפור מוצג על המסך וברקע נשמע הקריין המקריא. את תוכן הסיפור. > תוכנת ציור (בסגנון הצייר של צואפשחא) המאפשרת לצייר צורות גיאומטריות שונות, להעתיק ולמחוק קטעים מהתמונה, ולשמור את התמונה כתמונת לוו8. + מהדר בסיסי בעברית, המאפשר כתיבת תוכניות בעברית מבנית (במקום בשפת תכנות). > תוכנה לניהול ספריית וידאו, המנהלת מעקב אחר מלאי הסרטים בספריה ומאפשרת. לבצע השאלות והחזרות של סרטים ומפיקה דוחות שונים בהתאס. > תוכנת תקשורת בין מחשבים בסגנון חפ 86) הכוללת ציאט בין מחשבים. המחוברים בעזרת כבל או בעזרת מודם, או לחילופין תוכנה להעברת קבצים. > לומדה כלשהי המיועדת לילדים ללימוד חשבון, צורות, צבעים, קריאה וכדומה. נית לשלב אף קבצי קול בהס תקליטו את עצמכם נותניס הוראות לילד המשתמש בלומדה. ךר ג ולסיום הספר מוקדש לכם הקוראים, בתקווה שיוכל להקל עליכם את כתיבת. הפרויקטים בעת הלימודים ובעבודה מעשית, ויעשיר אתכם בידע חשוב. במיגוון רחב של נושאי תכנות. תודה לכל מי שתמך וויעץ לי במהלך כתיבת הספר, ובמיוחד לחוריי ולמר חיים זיינגולד. אם יש לכם רעיונות, הערות, הצעות ושאלות תוכלו לפנות אלי בדואר. אלקטרוני, לכתובת 011.0 800 00000 אשתדל לענות לכל אחד שיפנה, ובמידת הצורך, לשלב את ההערות. במהדורות הבאות של הספר. שלכם, משה יצחקי. תמוז, תש"ס. ב שפת 6- נושאים מתקדמים . פרק 1 תקציר פקודות בשפת 6 פרק וה הוא חזרה על אבני הבניין של שפת ס, וכולל תקציר פקודות בסיסיות. הפרק מיועד לבעלי ידע מוקדס בשפת 6 או בשפות תכנות אחרות. להסברים מעמיקים על רוי חשפה, ניתן לפנות לספרים האלה. + המדריך השלם לשפת 6 / משה לובטמן, עמוית רש. > ללמוד 0 / ואב נתיב + שפת6 - תוכניות ופתרונות / אלו מגור הספרים בהוצאת הוד-עמי לספרי מחשבים. ההסברים על הפקודות מלווים בדונמאות רבות, אשר מסודרות בטבלה בעלת שני טורים, הטור הימני מתאר את הפקודה והטור השמאלי מציג את דרך כתיבתה. 1 הערות כלליות + כלפקודה צריכה להסתיים בנקודה-פסיק (6. > בכל מקום בו כתוב יפקודהיי נותן לכתוב גם בלוק (גוש) של פקודות, ולא פקודה אחת. בלבד. + בלוק פקודות הינו פקודה אחת או יותר, אשר תחומות בין זוג סוגריים מסולסלים. ו > הערה כותבים אחרי שני קווים נטויים (//) או שתוחמים אותה כך: /* הערה */. > בשפת 6 יש הבחנה בין אותיות נדולות וקטנות, ולכן יש להקפיד על כך בעת כתיבת. > בשפת 6 אין משתנים בוליאניים. כל משתנה שערכו שונה מאפס יוכר כ"אמת", ומשתנה שערכו אפס יוכר כיישקר". פרק 1: תקציר פקודות בשפת 6 21 2 פקודות בסיסיות הכרזות והצהרות סדר כתיבת הפקודות בתוכנית הוא כסדר הפקודות בטבלה. הכרוה על יחידה (חו) מהספריה הסטנדרטית. <- שם היחידה> נטנסתג9 הכרוה על יחידה שנבנתה על ידי המתכנת. "מ שם היחידה" נטנסהג9 הנדרת קבועים. ערך עם 445605 הצהרת משתניםי (ראז טוני משתנים בתרשים 1.1 0.1 מס שם סג * בהצהרת המשתנים ניתן גם לאתחל אותם בערך ראשוני. שו בי בי רב בד ₪ ב ההיי) הידש ₪ ב 0 בוש 4 34 3410 בי ו בו תרשים ג הגדלים שבתרשים נכונום ל-5-005ו הצבות הצבה רגילה מתבצעת באמצעות סימן השוויון(=) (ולא על ידי נקודתיים+שווה (=:) כמ בפסקל. ראו רשימת אופרטורים אריתמטיים בתרשים 1.2 2 שפת 6- נושאים מתקדמים תרשי 1 בשפת 6 ניתן לבצע הצבה מקוצרת על ידי כתיבת האופרטור לפני סימן חשוויון במקום לכתוב. 4-0 וכל לכתוב + ומכאן, הנדלה/הקטנה עצמית ב-1 אפשר לכתוב בדרך זו ++% שקולל- א++ שקולל. = 1=+א שקולל- 1ואחא א שקולל, שקולל- שקולל- ‏ 1אחא ההבדל בין כתיבת צמד האופרטורים לפני או אחרי המשתנה מתבטא בביטויים מורכבים. אפ האופרטורים נכתבים "אחרי", הביטוי יחושב על פי הערך המקורי של המשתנה ורק. אחר כך ישתנה ערך המשתנה. אם האופרטורים נכתבים "לפנויי, הביטוי יחושב על פי הערך. החדש של המשתנה. לטיתים נרצה לחמיר ערך של משתנה מסוג אחד למשתנה מסוג אחר. לשם כך נשתמש. ב-הסבה בכוח (0881/09). נעשה ואת כך. משתנה-מפוג-ב (ג:א) ‏ = משתנהימטונא לדוגמה. פקודות קלט/פלטי פקודות קלט/פלט המפורטות בסעיף זה דורשות הכרזה על יחידות הספריה <5/00.8>. 0 פעולת קלט. 2" -- משתנה, משתנה , "מחרוזת בקרה") 885 פעולת פלט. |(" ...מטהנה, משתנה, "מחרוזת בקרה") "טק פרק 1: תקציר פקודות בשפת 6 23 . מחרוזת הבקרה מורכבת מהמלל שאנו רוצים שיוצג על המסך, תווי בקרה עבור כל משתנה. שאת ערכו אנו רוצי להציג [ראה תרשים 61.3 וקבועיס מיוחדים (תרשים 1.4). אחר מחרוות הבקרה נרשום את רשימת המשתנים/ביטויים, שאת ערכס אנו רוצים להציג (בהתאם לסדר תווי הבקרה שרשמנו). המשתנים יופרדו בפסיקים. לדונמה. (30",45,8 ")005 3%9(0,מ,5,"ה%4 5+ %4 שתב %4 25 חספ שמ5)"1מהצטם בהנחה שקלטנו ל-8 את הערך 3 ול-ט את הערך 2, יוצג 5 35 2 304 3 06 תפ תל משמעות יי 0 0 שג עשפ במבנת הסוס התנפ | הת 5 תרא 0 מ עפ ל ל א 0 0 דר וב פד ב 8 שג לחת הזו ו שג הקסאדצמף בס 18 ] האותות שרה זב שג הקסאדמל בס 10] האותות לי רמ גת תרטים 3 המלו ער לתחולת השרה הבאה. חור לתחלת השרה הנכחות. עמר לכואב המא ה ה תרטים 4 קליטת תו בודד ללא הצגתו על המסך. ( 85503 = משתנה קליטת תו בודד והצנתו על המסך. ( 85506 = משתנה הצגת תו בודד על המסך. (משתנה) 0סטק 4 שפת 6- נושאים מתקדמים תנאים ביניהם יש אופרטור לוגי (תרשים 1.5), או לחילופו ממשתנה אחד (אם ערכו שונה מאפס, התנאי מתקיים) ניתן לכתוב תנאי מורכב, שבו יש רצף של תנאיים וביניהס ה: חאו 48 קה 5 "או (תרשים 1.5). כדי לקבוע את סדר בדיקת התנאים ניתן להשתמש בסוגריים, כמקובל. 0-3 66 6-3 46 א | 18 ; ("תנאי זה יתקיים עבור הערבים:1.2.3-/2-") 5 6מ3פ | לה שוה | הזה ה תרשים 15 רב-ברירה, ברב-ברירה אנו בודקים את כל הערכים. האפטריים שיכול להכיל משתנח מסוים. אם. המשתנה מכיל את הערך הכתוב אחרי. הפקודה 6356, יתבצעו כל הפקודות הכתובות. אחריו, עד הפקודה 963% אשר מסמולת את. סיום האפשרות. ללא פקודה זו יתבצעו גם. כל הפקודות שבהמשך. ניתן לנצל עובדת זר כדי לשרשר קטעים עוקבים. אם ערך המשתנה אינו תואס אפשרות. כלשהי, יתבצע קטע התוכנית שאחרי הפקודה. בי - - (מטתנה) מ160שם [ עוך 5855 קודה פקודה עוך 5855 קודה פקודה ה פרק 1: תקציר פקודות בשפת 6 25 לולאות הלולאה 06 מ כל עוד התנאי מתקייס, הפקודה תתבצע. וה הלולאה 08086 ₪ הפקודה תתבצע כל עוד התנאי מתקיים. קודה | (תאי) 6בצמ הלולאה 0 (קידום תנאי; אתחול) 50 הלולאה מתבצעת בסדר וה: אתחול, בדיקת. קוה תנאי, ביצוע פקודה, קידוס, בדיקה, בוצוע, קודום.. (עד שהתואי ימוק להתקוים). דוגמאות להדפסת הערכים בין ג ל-10 (כולל). וג-ג (10->1) =בגתט 5)"%2",353(2מהצט (מ+1-1/16-1001) צספ (,"8") ]חצפ מערכים מערך חד-מימדי, ו מייצג את מספר האיברים ‏ | 2 |---ערטוך! = [א] שם וגב במערך. אינדקס האיבר הראשון הוא אפס (₪) ואינדקס האיבר האחרון הוא 1-א. פנייה לאיבר במערך היא באמצעות ציון שם. המערך ואחר כך מספר האאינדקס בסוגריים. מרובעים. מערכים רב-מימדיים. [ערר] נעור] שם טגב שימו לב, גם כאן טווחי האינדקסים בין 0 לבו עוער "1" "ערך" מייצג את |, מספר האיברים. ור עד במערך. , עוער 6 שפת 6- נושאים מתקדמים . = [4[]2] גא 16 + 1,230,597 ופט 6 מחרוזות מחרוזות. מחרוות בשפת 6 הא מערך מסוג. זגו6. התו האחרון במחרוזת הוא 111א. קלט של מחרוות. לט של מחרוות. המרת מספר שלם למחרוזת (8ז/8 ₪ ו המרת מחרוזת למספר שלם 00 8+ מו המרת מחרוות למספר ממש 6030 58 118 מציאת אורך המחדוזת (מספר התווים שבה). המרת כל האותיות במחדוות לגדולות (האשיות) המרת כל האותיות במחרוות לאותיות קטנות. השוואת שתי מחרוזות.. הפונקציה תחזיר 0 אס המחרוזות זחות. היא תחזיר ערך חיובי אס למחרוות הראשונה. יש ערך לקסיקוגרפי גדול מזה של המחרוזת. השנייה, והיא תחזיר ערך שלילי אם למחרוות. השנייה יש ערך לקסיקוגרפי דול מו של. הראשונה (630>698. השוואת ח התווים הראשונים בשתי מחרוזות.. העתקת תוכן מחרוזת אחת לשנייה. העתקת ח התווים הראשונים ממחרוזת המקור. שרשור מחרוזת המקור לסוף מחרוות הועד. הפיכת סדר התווים במחרוזת (תמונת רא ([2,1] 5 "%8") ]םמצע |; "מחוחת" = [ו] עמ שממ תפ 2 (ששמחרחת) פסטון (משתנהישלם) 3588 = שםימחרוזת ; (שם-מחרוחת) 8804 = משתנה-שלם. ; (שם-מחרוות) 605 = משתנהיממשי (שם-מחרוות) 562168 = משתנה (שם-מחרות) שקטמ ו |; (שפמחרות)ששבפמם ; (מחרחזת-ב', מחרות )סיפ ; (מחרחת-ב', מחרוזת ') שמת : (מקור,יגד). עפצ ; (מקור,יע1) פס תפ ; (מקור,יעד). 086ש6 ; (שפ-מחרוות) לםשפטם פרק 1: תקציר פקודות בשפת 6 27 . דוגמה לקליטת מחרוות והדפסת אורכה. 10 +בתם 0 תג 7 עבור לאורך המחרוזת עד התר מטאר שבסופה. / / 7 :(30",1-1 15 הה1צטב שת5 021 תְִמַה1 סמ1"),םה1צת או לחילופון 1 "98 15 ַהצצטם שת5 021 ְִמ8ה19 פמצ")]םה1צת מ הפונקציות המתחילות ב-א שייכות ליחידה א/טוז> ולכן, כדי להשתמש בה == יש להכריז על יחידה זו בראש התוכנית. מבנים ואיגודים מבנים (רשומות) שפמבנה 606 השמות שאחרי הסוגריים המסולסלים מיוצגים. משתנים מטיפוס המבנה שהגדרנו. לאחר. הגדרת המבנה נוכל להגדיר מבנים נוספים. מטיפוס המבנה שהגדרנו, ללא צורך בפירוט. חוור של השדות המרכיבים אותו. שפשזה סוב םיפדה סוב נעשה ואת כך. ..שם, עס שס-מבנה טטוצ פנייה לטדה במבנה תיעשה כך איגודים. ) שםאיגוד מסצתטו איגוד הוא משתנה בודד היכול לחכיל ערכים. שפשדה סוב מטיפוסים שונים. גודלו ייקבע על פי סוג השדה. שפשזה שוג הגדול ביותר הכלול בו. ניתן לאחסן באיגוד משתנה אחד בלבד בכלל פע -שם שם ך אופן השימוש באינוד הה לאופן השימוש. 8 שפת 6- נושאים מתקדמים || %886ה6נטסט ססטשסם 2 [15) שתפוג שממ "יה מערר של 40 תלמידים / ]מס [ 1446) 1( [תפא. []55ת46: ( ב [1] 455 3 פונקציות מבנה הפונקציי ( -.. ושם מוג ,שמ סוג ) שמיפנקציה מיפוסימוחור מבנה הפונקציה. , הגדרות פקודות | (עדך) מעמספם הטיפוס המוחזר מהפונקציה הוא טיפוס המשתנה, אשר הפונקציה מחזירה בפקודה. ו לא כל פונקציה חייבת להחויר ערך. אם הפונקציה אינה מחזירה ערך, נכתוב במקום. הטיפוס המוחזר את המילה 6ופש. במקרה זה, אי אפשר לכתוב את הפקודה חזונזטז. בתוך הסוגריים נרשוס את רשימת הפרמטרים שהפונקציה תקבל. שימו לב! הפרמטרים יועברו על פי ערכם 816 /8) ולא על פי כתובתס (300/0%9 /8). כלומר, כל שינוי שהפונקציה תבצע בפרמטרים שקיבלה לא ישנה את המשתנים המקוריים. בסעיף הבא (הדן במצביעים) נלמד כיצד ליצור פונקציה המוקבלת פרמטרים 846656 ּ. לא כל פונקציה חייבת לקבל פרמטרים. אס פונקציה אינה מקבלת פרמטרים, נכתוב במקום. רשינות הפרמטרים את המילה 6 המשתנים שיוגדרו בתוך הפונקציה יהיו מקומיים, והמשמעות היא שיוכרו בפונקציה זר בלבד. פרק 1: תקציר פקודות בשפת 6 29 קריאה לפונקציה כדי לקרוא לפונקציה (להפעיל אותה) עלינו לכתוב את שמח ואחר כך את הערכים, שאנר רוצים לחעביר אליה בתוך סוגריים. אם הפונקציה מחצירה ערך, נוכל לקרוא לה בפקודת הצבה. לדוגמה. ; (רשימת משתנים או ערכים מועברים) ‏ שפ-פונקציה = שם-משתנה סדר הערכים שנרשוס בתוך הסוגריים צריך להיות זהה לסדר שהגדרנו בפונקציה. אם הפונקציה אינה מקבלת פרמטרים נכתוב בכל זאת את הסוגריים, אך לא נכתוב ביניהם. הפונקציה חוגוז בכל תוכנית חייבת לחיות פונקציה ראשית בעלת השם ח/8ו₪, אשר ממנה תתחיל ריצת. התוכנית. בדרך כלל, פונקציה זו אינח מחזירה או מקבלת ערכים, אך ניתן בכל זאת לעשות. ניקח כדוגמה לתוכנית המקבלת פרמטרים את התוכנית 67 של מערכת ההפעלה 005. כדר להציג את כל הקבצים בעלי הסיומת ₪46 אנו כותבים בשורת הפקודה של 05ם. "שאש,* 66". במקרה זה, ₪6 הוא שס התוכנית ו- 6%6.* היא מחרוות בקרה שהפונקציה. חראשית מקבלת. כדי ליצור תוכנית המקבלת פרמטרים, עלינו לרשום בתוך הסוגריים של הפונקציה פוח, במקום 6ו, את הפרמטרים 819 ו-896. ([ַטַב* עפתס הא 186) הנהת 48מט = את משמעות הכוכבית הרשומה לפני ופ בסוגריים של הפונקציה הראשית, נבין בסעיף הבא הדן במצביעים. בומן הפעלת התוכנית, המשתנה 3196 יכיל את מספר הפרמטרים שנכללו בשורת הפקודה. (כולל שם התוכנית), ואילו מערך המחרואות [ְ יכיל את מחרווות הפרמטרים (בכל תא. תישמר המחרוות של פרמטר אחד). נחזור לדוגמה של התוכנית זו6. בתוכנית זו, המשתנה 806 יקבל את הערך 2, התא הראשו. במערך 39% יכיל את המחרוזת "46" (שם התוכנית), והתא השני במערך 819% יכיל את. בפרק 6, תוכלו לראות את המימוש של התוכנית 01 ודוגמאות רבות נוספות לתוכניות. המקבלות פרמטרים. ביצד נריץ תוכנית המקבלת פרמטרים מתוך המחדר עצמוו לשם כך נלח על התפריט חא ובו נבחר ב-וחשוט/8 (תרשים 61.6. תיפתח תיבת דו-שיח שנכתוב בה את הערכים שאנר. רוצים למסור לתוכנית (תרשים 1.7). אחר כך נוכל להריץ את התוכנית כרגיל. 6 שפת 6- נושאים מתקדמים תרשי 16 תרשים 1 פרק 1: תקציר פקודות בשפת 6 31 יש שתי דרכים לכתוב תוכנית בשפת 6. הראשונה היא שיטת "מטה- מעלה" (פ-ו₪ס: 00 בשיטה וו כותבים את הפונקציות לפני הפונקציה הראשית וצוז). כל פונקציה מכירה את. הפונקציות הכתובות לפניה ויכולה לקרוא לחס. הפונקציה הראשית היא האחרונה (אר התחתונה, אס מסתכלים על הפונקציות כמונחות ברבדים, ו על ) ולכן היא מבירה את כל. הפונקציות שקדמו לה. שיטה זו נקראת מטה-מעלה, כי אגו כותבים תחילה את הפונקציות. למימוש תהליכי הקצה של היישום, אחר כך את התהליבים המורכבים (המפעילים את. תהליכי הקצה שכתבנו מעליהפ) ולבסוף כתובה הפונקציה הראאשית. השיטה השנייה הלא שיטת יימעלה-מטה" (חשופ-0ד), שלפיה נכתוב את הפונקציות. בסדר הפוך: מהפונקציה הראשית חופוו ועד הפונקציות הבסיסיות ביותר. בשיטה זר הפונקציות קוראות לפונקציות שכתובות אחריהן, ולכן עלינו להכריו על הפונקציות בראאש. התוכנית כדי שתהיינה מוכרות לפונקציות שנכתבות לפניהן (או מעליהן, אס מסתכלים על. הפונקציות כמונחות ברבדים, זו על ז). לשם כך נכתוב ברש התוכנית הכרזה על. הפונקציה שאנו רוציס להשתמש בה, ואשר כוללת את הכותרת של הפונקציה ובסופה. נקודה-פסיק. הכרוה זו היא אב טיפוס (106/06זפ) על הפונקציה. יש המעדיפים את השיטה השנייה, בטענח כי היא מקבילה לדרך חשיבתו של אדם סביר, ולא מפתח תוכנה בלבד. בספר זה נכתוב את התוכניות בשיטה הראשונה, והסיבה לכך. פשוטה: כאשר מפרקים בעיה גדולה לחלקי משנה ממוקדים, הרבה יותר קל להתמודד איתה. בשיטה זו נכתוב תחילה את הפתרונות של הבעיות הממוקדות, ואחר כך נפתור. בעזרתם את הבעיה המורכבת יותר. למניכם שתי תוכניות המדגימות את השימוש בפונקציות בשתי השיטות. התוכנית הראשונה. מדגימה את השימוש בשיטת מטה-מעלה, והתוכנית השנייה מדגימח את השימוש בשיטת. מעלת-מטה. בספר וה נכתוב את שם התוכנית בשורת ההערה הראשונה. התוכנית שמורה בדיסק.. בתיקיה של פרק וה, פרק 1 (או פרק אחר, בהתאאמה) תחת התיקיה 4559281טט. פב לפ שה ה (פ 5ה3 50 6הג) מש שח ו 7 סט 5מנשל בגב [ (2, 95 32 )הבא 2 שפת 6- נושאים מתקדמים 0 הצפה גב ו 0 ו פב הרי ו (396 /5 שה:) שופ מה סט הצפה שגמ ו 0 [ גמ ו ((3,5) 9 390-985 [ ( 96 50 שהג) שופ מהב [ )אמטמ 4 טווח הכרה ומשך החיים (חסוזבּזט 30 56026) של משתנים משתנים גלובליים > מוגדרים בראש התוכנית (מחוף לכל הבלוקום) > מוכרים על ידי כל הפונקציות. > שומרים על ערכס במשך כל ומן ריצת התוכנית. + מאותחלים ל-0 אם לא התבצע אתחול מפורש. פרק 1: תקציר פקודות בשפת 6 33 משתנים לוקליים (נקראים גם אוטומטיים) + מונדרים בתוך פונקציה או בלוק כלשהו. + מוכרים על ידי הבלוק בו הם מוגדרים בלבד. > מאבדים את ערכם ונעלמים ביציאה מחבלוק. > אם קיים גם משתנה גלובלי בעל שם זהה, שינוי ערך הלוקלי בתוך הבלוק לא ושפיע על הגלובלי. > אינס מאותחלים על ידי המהדר. משתנים סטטיים - 51906 + לפני הגדרת המשתנה נכתבת המילה השמורה 1806 + משתנה סטטי מוכר על ידי הבלוק בו הוא מוגדר בלבד, אך שומר על ערכו גס מחו. לבלוק, ולכן כאשר נחזור לבלוק יהיה בו את הערך הקודם. + אתחול של משתנה סטטי שייכתב בשורת ההגדרה, יתבצע רק פעם אחת. > מאותחלים ל-0 (פעם אחת בלבד) אם לא התבצע אתחול מפורש. > הויכרון מוקצה עבורס לפני ריצת התוכנית ועד לסיומה. + מאוחסנים בדרך כל ב-6%3ו690> 636 קבועים. משתני רג'יסטר - ז1991509 + לפני הגדרת המשתנה נכתבת הממילה השמורה 691696 > משמעות המילה השמורה ז66/6ז היא המלצה למהדר לאחסן משתנה זה באוגר. במקום בזיכרון (הגישה לאוגר מהירה מהגישה לויכרון, ולכן רצוי לחשתמש במשתנ. אוגר למשתנים שערכס משתנה בתדירות גבוחה, כגון מונים) משתנים הפכפכים - 086 > לפני הגדרת המשתנה נכתבת המילה השמורה 8/6וטא. > משמעות המילה השמורה 6!וגוט היא דרישת ממהדר לאחסן משתנה זה ביכר ולא. + מיועד למשתנים הפכפכים אשר עלולים להשתנות על ידי פסיקה, תוכנית אחרת או דרייבר חיצוני (אם המשתנה היה שמור באוגר זמני, התוכנית החיצונית לא היתה. יכולת לנשת אליה. 4 שפת 6- נושאים מתקדמים הערת: בנוסף לרשימה זו, קיימים סוגים נוספים של משתנים עליחם נדבר בהמשך הספר. 5 מצביעים והקצאות זיכרון עבודה עם מצביעים רגילים הגדרת מצבוע. שמצביע* טוג את העבודה עם מצביעים בשפת 6 ניתן לסכם בשתי נוסחאות. 4 = הכתובת של. * = הערך המוצבע ע'י המצביע. 1 שווה לכתובת של = // הערך המוצבע עדי 1 = 6 // המצביע 2 שוזה לכתובת של ע. /// הערך המוצבע ע"י ‏ 2מ. שווה לערך המוצבע עדי גפ בסיום ביצוע קטע הקוד. ם"=ץ=א נקבל: 1 מצבוע על א, 2 מצביע על + העברת פרמטרים 4067655 8 כפי שראינו בסעיף 1.3, כאשר אנו מעבירים פרמטרים לפונקציה, הם מועברים על פי ערכם. בלבד (טטפצ /פ). על כן, אם נשנה בתוך הפונקציה את ערכם, המשתנים המקוריים לא. כדי ליצור פונקציה היכולה לשנות את המשתנים המועברים אליה, עלינו להעביר אותם על. פי כתובתם (206:655 עפ נעשה ואת על ידי שימוש במצביעים, בכותרת הפונקציה נגדיר את הפרמטרים כמצבועים. בכל מקום בו נרצה להשתמש בערכם של הפרמטרים נוסיף את הסימן י ובקריאה. לפונקציה נעביר את המשתנים על פי כתובתם באמצעות הסימן ₪. זו הסיבה שבגללה בכל פקודה, המשנה את המשתנים המועברים אליה, כתבנו את הסימן א. [כמו למשל ב-46301). פרק 1: תקציר פקודות בשפת 6 35 דוגמה לתוכנית המורכבת מפונקציה המקבלת שני משתנים לפי כתובת (0%%ו300 /8) ומחליפה ביניהם. <5640.9> ממט1סה1 ל (פיה1 ,ג* 5הג) 80180 48 (9038) תובח 48 7 ו 7 7 מצביעים למערכים ומחרוזות ההגדרה המפורטת למערך בשפת 6 היא "מערך הוא אוסף רציף של נתונים מסוג זהה. שם המערך הוא מצביע קבוע לאיבר הראשו מהגדרה זו אנו לומדים כ ות - ((פעפזחה)*) = [ םדו (1+ עה )*)*) = 117 ו מכאן אנו יכולים לחבין כ + בכל פעם שהשתמשנו במערכים ומחרוזות, השתמשנו במצבועים מבלי לדעת זאת. > כל פונקציה המקבלת מערך או מחרוות, מקבלת אותו לפי כתובת. ואת הסיבה לכך, שכאשר קראנו לפונקציות המשנות את ערך המערך (כמו למשל הפונקציה. פ) לא השתמשנו בסימן א. אם נרצה לכתוב פונקציה המקבלת מחרוות כמצביע, נגדיר ברשימת הפרמטרים מצביע. מסוג זגו6. כדי לדעת אם הנענו לסוף המחרוות, נבדוק אם התו הנוכחי הוא א אם נרצה לכתוב פונקציה המקבלת מערך כמצביע, ניה חייבים להעביר אליה גם ער המציין את מספר האיברים במערך, כדי לדעת מתי מגיעים לסופו. 6 שפת 6- נושאים מתקדמים מצביעים למבנים ואיגודים כשמעבירים מבנים ואינודים אל פונקציה, הם מועברים על פי ערכס (כמו כל נתון פשוט. אחר). הפונקציה יוצרת מבנה מקומי ומעתיקה לתוכו את תוכן המבנה המועבר אליה. לכן. כשנרצה לכתוב פונקציה הנוקבלת מבנה לפי כתובת (6665א 8), נעביר את המבנה. באמצעות מצביעים, כמו בשיטת העברת הפרמטרים הרגילה שנעשית לפי כתובת. כדי לשנות ערך של שדה במבנה שמצבוע פונה אליו, נכתוב. ערך = שפשדה. (שםמצביעי) יש דרך קצרה לעשות זאת. במקום להשתמש בסימן * ובסוגריים, נוכל להשתמש בי <> (משמאל, סימן י"מינוס" ואחריו סימן דול מ-"). נעשה זאת כך. ; עוך - שמשזה <- שםמצביעם פב הריק הג | 95מל מממא שא / (5 1855בל שסטתטב) ממלטהצקט בגב ו - 0 (די 1955ב? מבמס0ם) משתאמס שגמ / (פפג ל )פמ כ ב מ הצפה שגמ 0 | מ הקט פרק 1: תקציר פקודות בשפת 6 37 . הקצאת זיכרון דינמית כדי להשתמש בפונקציות הקצאת הזיכרון יש לקרוא ליחידת הספריה <81/06.8> 1 הקצאת בלוק זיכרון. ; (גוזל). 1106 (* טוג) = ששמצביב הקצאת בלוק זיכרון ואיפוסו. ; (גודלובמות) ‏ 21106 (* מוג) = שםמצבי הקצאה מחודשת של בלוק זיכרון. | ; (נודל,שט מצביע) ‏ 681106 (* מוג) = טסימצבי. (תוכן הבלוק הישן מועתק לחדש). שחרור בלוק זיכרון שהוקצה.. ; (שםמצביע) 65ש את גודל הבלוק נוכל לחשב בעורת הפונקציה. "[סוג) 92601 כל שעשינו בסעופים. הקודמים. שימו לב, שהשתמשנו כאן בהסבה בכוח לסוג המצביע הרצוי (ראה סעיף 1.1 עשינו ואת מפני שפונקציות ההקצאה מחזירות מצביע כללי מסוג טא המצביע על תחילת. בלוק הזיכרון שהוקצה. אס ההקצאה נכשלת (עקב מחסור בזיכרו, המצביע מקבל את. הערך +ושא. חובה לשחרר את בלוק הזיכרון שהוקצה בתוס השימוש בו, אחרת התוכנית עלולה לחיכשל. בשל מחסור בשטח זיכרון פנוי לעבודה. דוגמה להקצאת זיכרון עבור מערך של 5 מספרים שלמים. ם' מתג הקצאת בלוק מסוג שלם בגודל חמיצוה שלמים. אם ההקצאה תיכשל תודפס הודעה. /// ( ((6ה100/5*512008)1בגת(* 6ה1)-ם!) פב ; ("תאין מספיק זיכרון") + תצע 6 קבצים הגדרה, פתיחה וסגירה הגדרת מצביע לקוב). שש לוגד מנצע פתיחת קובץ. (רשימת מודים בתרשים 1.8 | ; ("מוז", "טט-פיסי") הפקסף. = שם:לוגר בדיקה האם הענו לסוף הקוב). (0לוגי) 05 סגירת קוב | (שפלוגי) 501056 סגירת כל הקבצים הפתוחים.. 0 שימו לב, המילה 165 מופיעה באותיות גדולות: 8 שפת 6- נושאים מתקדמים השם הפיסי יורכב משם הקובץ (כולל סיומת) ומיקומו. אס הקוב נמצא בתיקיה (ספריה) שממנה אגו מריצים את התוכנית, אין צורך לכתוב את מיקומו. רוי על כל הקוב עד סופו, נכתוב. ( (88בו1!5605)12013) מ בצמה משמעות מתת קורו קים לקרמה בלבדר פתח קוב חד/ש לכתיבה בלבד נא קים, נסחק נבנה הד פתח קוב קיים לכתיבה בסו ( אם לא קים נבנה. חח קוב קים קריה ומתיבה. פתת קוב'ר חד/ש לכתיבה וקריאה. חח קור קיים דקר אה ומת בת 9063 וה ל קים נבנה קבצי טקסט קריאת תו אחד מתוך קובץ לתוך משתנה. 2 (שפלוגי) מס = שםימשתנה מסוגתו, כתיבת תו אחד לתוך קוב 2 (שםלוגי, שםימשתנה) ספטפם קריאת שורה שלמה מתוך הקוב אל ; ( שם.לוגי, אורך ‏ שפ-מחרחת) 9055 מחרוזת. התווים נקלטים במחרוות עד לסימן המסמל סוף שורה, או עד "אורדי. כתיבת מחרוזת לתוך קוב ; ( :לוג" שט-מחרוזת) פסטפם. התו האחרון בקובף חוא "80%. כתיבת נתונים שונים בקובץ טקסט קריאת נתון מקובץ טקסט.. ; (משתנהם, "תו-בקרה", שם-לוגי) 9085 כתיבת נתון לקובץ טקסט., ; (משתנה, "תו-בקרה", שפ-לוגי) 5ת1פפם רבים טועים לחשוב שהפקודות 6301 ו-04ו91) מיועדות לקבצים בינאריים. פקודות אלר שקולות לפקודות 8501 ו-שחוזט שמבצעות המרת בין הטקסט שעל המסך לבין משתנים. מסוגים שוניס. לכן, גם הפקודות 6301 ח-/חוק! מתייחסות לקובף כ-66טפ של טקסט. ומבצעות המרה בן המשתנים לבין הטקסט שהן כותבות או קוראות מהקובץ. פרק 1: תקציר פקודות בשפת 6 39 . לדוגמה, א נכתוב לקוב בינארי משתנה מסוג זחו שמכיל את הערך 1000 חוא יתפוס שנ בתים בקובץ (נודל של או), אך אם נכתוב אותו בעזרת !וו לקובצ, הוא יתפוס ארבעה. בתים (ארבע תווים בגודל בית) ראו רשימת תווי בקרח בתרשים 3.. נתונים פשוטים בקובץ בינארי קריאת נתון מקובץ בינארי. (שפ.לוגי, 1 (0וג) 835505 שם-לוגיש )56 כתיבת נתון לקובץ בונארי. ; (שם-לוגי, 1 (סוג) 815605 שם-לוגיא) מש מערכים בקובץ בינארי קריאת מערך מקובץ בינארי. ; (שם-לוגי, כמות, (פוג) 515605 שם-מערך) 56 כתיבת מערך לקובץ בינארי. = | = ; (שפילוגי, במות, (טוג) 515505 ,שם-מערך) 518 סוג - סוג האיברים שבמערך (תרשים 4.1) כמות - מספר האיברים שבמערך. שימו לב שהפעם, אן צורך לכתוב את הסימן א (ראה סעיף .1 דוגמה לקליטת נתונים מקובץ אל מערך, איפוס הייבר השישי וכתיבת המערך לקובף אחר. 0 (10,04161, (0ה1) 515805 60 )24 = )6 (10,84162, (8ת1) 512605 600 )6 1 שש מבנים (רשומות) בקובץ בינארי קריאת מבנה מקובץ בונארי. ; (שם-לוגי, במות, (פוג) 815805, וסימבנה8) 588 כתיבת מבנח לקובץ בינארי. = | ; (שם-לוגי, כמות, (מוג) 812805 וםיטבנהש) 66 בא סוג מתיוחס לטיפוס המבנה (שם-מבנה ותו שימו לב שהפעס, גם בקריאה וגם בכתיבה, יש לכתוב את הסימן 4. הסיבה לכך היא. שהפונקציות האלו מתאימות גם למערכים (כמו שראינו קודם), ולכן עליהן לקבל את. הפרמטר לפי כתובת (46:65א 8. ראו סעוף 1.6). שפת 6- נושאים מתקדמים הגדרת רשומת תלמיד 6 [ [10) 6תמוטפ5 1 שממ 10 90)38 1 שממ -צי /[3]מג0!הנבד , הנד ן "די" ל "ל ל 8181. 13500086 = 91014.5 = 0 בתיבת רטומת התלמיד לקובץ / / ((1,91161, (60ת1םת מסטע18,212605)86ה21ם8) ם1%צשת קריאת רשומות של 50 תלמידים למערך התלמידים / / (30,1162, (50ת731 מסוצ6ם) 0:8,512605מ1ב1010)7, תזוזה בתוך ובץ (גישה ישירה) קפיצה למקום כלשהו בקובץ. | = ; (מילת בקרה, (סוג) 8605 85*כמות, טם-לוגי) 590% כמות = מספר הרשומות או המשתנים שאנו רוצים לדלג עליהם. אס נרצה לדלג לאחור, הערך יחיח שלולי. מילת הבקרה מציינת מאויזו נקודה בקובץ אנו רוצים לקפוץ (תרשים 1.5 מיות בקרה משמעות דש אעשט .| קט מתמלת הקבון (הכגות זובה פא 808 | קפון אחרה מסוף הקוב (הכמות שללו) אס 878 ] קט מהמקם הנוכחי בקובץ [הכמת יקחלה ההות בת אשית תרשי 19 כדי להניע לנתון האחרון בקובצ (שלפני הערך 60%), נדלג נתון אחד לאחור ממיקום סוף. הקובו. ; וסאפ אמשף, (טוג) 1551555- שפלוגי) 556% וכדי לעבור יינתון' הראשון בקובץ, נקפו ייאפסיי נתונים מתחילת הקוב). |( (895 א8ש0,8,שם לוג ) 255 פרק 1: תקציר פקודות בשפת 6 4 9 "נתון יכל להיות תו, רשומה, מערך, או כל ערך אחר. זאת מפני שגודל ".= הקפיצה נקבע על פי מכפלת טי וגווס בכמות. מיקום המצביע בקוב. (שפ.לוגי) 56611 = משתנהיארור שימו לב, שהמיקום המוחזר הוא מסוג משתנה ארוך (0%8). כדי לדעת מהו מספר הנתון הנוכחי בקובץ (שמצביע הקוב עומד עליו), נחלק את המיקום. בגודל נתון אחד. ; (סוג) 5605 53/ (שם-לוגי) 1511 = מספר הרשומה או הנתון מתחילת הקובץ. דוגמה להעתקת הציון של התלמיד החמישי אל התלמיד הראשון ולתלמיד האחרון. 581גנסי מנדט 6+ 281 ססמטמם [ [10] מתפתט שממ [10] מחפת1 שממ עב 16 8 [ עבקת מתצ "מ גו :ם") הסקס) = 18551 שמירת הציון של התלמיד החמישו. /// ;(567 5056 (ספת 781 מסצםב)581,4'912008ב01) 666מל |( ( 1013551 (280 731 מסנצםם) 512805 , 87101 | בבסצל אצבות, 18תנגד - %עבאמהר תיקון התלמיד הראשון //, 23006 )012581,0,9856 587( | | ( 80(,1,013951: 131 מסטעום)12008 , 8נהנגת038)8צ2 א+ממקהן = 01 58ת1 מה (008 905, (ספת 781 מסמצםב) 12805פ+1-,29006)018581 , ( 580(,1,013581 751 וסטצסב) 512005 , 16.)4751818צשם תיקון התלמיד האחרו בקובץ' / /. (פום אפפפ, (60ת 731 מסוצסב) 12805פי1-,012551) 666פם |( ( 891ב1ס,0(,1סע 21 שסטעם212001)2 , 14| 8בסצ3 אצמת = 0186 5ת1 מ | (תטם אפמפ, (0שת 731 מסנצ6ב)1*812605-,018551) 666מל ( ( 881ג60(,1,01: 18 מסַע0ם):21260 , 18ה1מצ, ) 16צשם |( ( 18891ט ) 0108? 2 שפת 6- נושאים מתקדמים פרק 2 עבודה בסיביות בפרק זה נלמד פעולות שונות שניתן לבצע על סיביות. / נכיר את שיטות הספירה השונות. / נלמד את הפעולות שניתן לבצע על טזביות. / נכיר מספר שימושים לעבודה בסוביות. אני מניח שכבר נתקלתס בעבר בעבודה בסיביות. נושא זה פשוט, וחסיבה שבגללה לא. כללתי אותו בפרק הקודם והקדשתי לו פרק נפרד היא, שברוב הספרים האחרים ממעיטים. בערך נושא זה (כי אינו נחוץ בתוכניות פשוטות). בספר זה תגלו, כל במעט בכל פרק נצטרך. לבצע פעולות שונות על סיביות ולכן חשוב להכיר נושאא זה היטב. 1 שיטות ספירה שפת 6 מאפשרת ליוצג ערכים בשיטות הספירה העשרונית, האוקטלית וההקסדצימלית. מספר עשרוני (בסיס 10) מיוצג על ידי מספר רגלל שאינו מתחיל באפס. מספר אוקטלי (בסיס 5) מיוצג על ידי מספר המתחיל בספרה אפס, לדוגמה 012 (= (12/8). מספר הקסדצימלי (בסיס 16) מיוצג על ידי מספר שלפניו "אי , לדונמה 0412 (גם /12). שים לב; 0" הוא "אפס". כדי להציג ערך משתנה בייצוג אוקטלי או הקסדצימלי, נשתמש בתו בקרה מתאים בפקודת. הפלט (ראה תרשים 1.3 בפרק 4) ברוב המקרים נשתמש בייצוג העשרוני הרגיל, אך כשנרצה לפנות לרכיב חומרה, א. כשנעבוד עם פסיקות, ניאלץ להשתמש בשתי שיטות הייצוג האחרות. עד כאן הכל פשוט וברור, חבעי מתחילה כשרוצים לייצג ערכים בונאריים. בשפת 6 לא. ניתן לייצג ערכים ביוצוג בינארי, ולכן בכל פעם שנרצה להשתמש בערכים בינאריים נואלן. להצונס כערכים הקסדצימליים. פרק 2: עבודה בסיביות ‏ 43. . ניתן לייצג כל ארבע ספרות בינאריות בספרה הקסדצימלית באופן חבא: נכפול את ערך. הספרה הראשונה מימין ב-1, את ערך הספרה השנייה מימין ב-2, את השלישית ב-4 ואת. הרביעית ב-8 (כלומר בחוקות עולות של 2). נחבר את ארבע המכפלות ונקבל את ערך. לדוגמה, אם נרצה לייצג את ערכו של המספר הבינארי 2019 בייצוג הקסדצימלי, נחשבב ונמצא תחילה את ערכו בשיטה העשרונית: 1-2 + 18 = 10, ידוע כי 10 בבסיס 10 שוו. ל- 8% ביוצוג הקסדצימלי. אם כך, בכל פעם שנרצה לייצג ערך בינארי בשפת 6, נחלק אותו לחלקים בני ארבע ספרות. וכל ארבע ספרות נמיר לספרה הקסדצימלות. החלוקה מתחילה מימין לדוגמה: ניקח את המספר הבינארי 111111. ארבע הספרות הראשונות שלו מימין מייצגות. את הספרה ההקסדצימלית , ושתי הספרות הבאות משמאל שוות למספר הבינארי 0011. ששווח לספרה ההקסדצימלית 3. לכך (111111)2 = 304. 2 בית, מילה ומילה כפולה ארבעת טיפוסי המשתנים הנפוצים ביותר לאחסון נתונים הם. סיבית 0/פ) היא היחידה הקטנה ביותר לייצוג נתונים במחשב, ומציינת ספרה ביגזרית. שערכה "1" או סי. כשערך הסיבית הוא 1" ניתן לומר שערכה "אמתי", וכשערכה. לומר שערכה הוא יישקרי. מתך בית (66עפ) הוא יחידת ייצוג נתונים בגודל שמונה סיביות (שתי ספרות הקסדצימליות). מילה (6סאא) היא יחידת ייצוג נתונים בגודל שני בתים (16 סיביות, או ארבע ספרות. הקסדצימליות). מילה כפולה (6/06) היו יחידת ייצוג נתונים בגודל ארבעה בתים (32 סיביות, או שמונה. ספרות הקסדצימליות). בפרק הקודם הכרנו את סוגי המשתנים הרגילים ו 61%ח5, חפ וכו וציינו את גודלם. בבתים (תרשים 2.1). מכיון שייצוג הסימן של כל ערך (שלילי או חיובי) נקבע על ידי הסיבית. השמאלית ביותר שלו, הערך החיובי המקסימלי שניתן לחציב במשתנה כזה הוא המספר. הגדול ביותר, שניתן לייצג על ידי מספר הסיביות של המשתנה פחות אחד. מסיבה ו (וסיבות נוספות שיוסברו בהמשך), כשעובדים עם סיביות נהוג לעבוד עם סוגיר משתנים חיוביים (009/9066). כך נתייחס למשתנה כרצף של סיביות לוגיות ללא התחשבות. בערך הממשי של המשתנה. כלומר, אנו מתייחסים לערך של כל הסיביות כערך חיובי. שפת 6 מאפשרת להגדיר טיפוסי משתנים חדשים באמצעות שילוב של טיפוסים קיימים. הדבר מתבצע בעזרת מנגנון הגדרה הנקרא 861קע. 4 שפת 6- נושאים מתקדמים ההגדרה מתבצעת באומ הבא. ₪ הטיפוס החדש = שילוב מיפוסים קיימים - 465ספע לאחר שמנדירים טיפוס משתנח חדש ניתן להגדיר בכל מקום בתוכנית משתנה מסוג טיפוס. זה, כאילו הוא אחד משאר סוגי המשתנים הרגילים. אם כך, בכל פעם שנצטרך לבצע פעולות שונות על סיביות, נגדיר בראש התוכנית את. הטיפוסים האלה. מצ ו 0 צ 0088 ה פע שימו לב! בכל מקום בספר זה (וגס בספרים ובתוכניות אחרות לעיתים), כשנגדיר משתנה. מאחד הטיפוסים האלה, זכרו שיש לרשום את שלוש ההגדרות בראש התוכנית. מוור, אד למרות שהשימוש בטיפוסים אלה נפוץ מאוד כשעוסקים בסיביות, הם אינם מוכרים למהדר. ויש להגדירם במפורש. 3 פעולות לוגיות בסיביות ניתן לבצע על סיביות ארבע פעולות לוגיות. 1. פעולת דסא, שסימונה בשפת 6 הוא 'י-. פעולה זו הופכת את ערך הסיבית מ"אמת* ליישקר" ולחפך. 2. מעולת פאא, שסימונה בשפת 6 הוא י/". פעולה ור מבצעת כפל לוגי בין שתי סיביות. (התוצאה תהיה אמת, רק אם ערך שתי הסיביות הוא י"אמתי). 3. פעולת 8ס, שסימונה "". פעולה זו מבצעת חיבור לוגי בין שתי סיביות (מספיק שער של אחת משני הסיביות יהיה "אמת", כדי שהתוצאאה תהיה "אמתיו). +. פעולת 408 שסימונה "ייי. פעולה זו מבצעת חיבור לוגי אקסקלוסיבי בין שתי סיביות. (כמו החיבור הלוגי הרגיל, אלא שהפעם רק ערך אחת הסיביות צריך להיות "אמתי, כדי שהתוצאה תהיה "אמתי). אסא אס פא 1 | 0 | 3 1 | | | ג | | 6 ג| |0 ג| |9 | 0 ווה 11 ג| ןג פרק 2: עבודה בסיביות ‏ 45. . כאשר מבצעים אחת מהפעולות הללו על משתנים, הפעולה מתבצעת בין כל שתי סיביות. מתאימות של המשתנים (1856פ). לדוגמה. (ץ|א- - (פבא0-ץ | מפאס-א 5-8 וויה 8 - 2 4 מסכות מסכה (₪856ח) היא צירוף של סיביות בינאריות. משתמשים במסכה כדי לבצע פעולות. שונות על חלק מהסיביות של משתנה כלשהו. אחד השימושים הנפוצים ביותר למסכות הוא. בדיקת ערך של סיבית מסוימת במשתנה. נניח לדוגמה, שאנו רוצים לבדוק האס הסיבית השלישית במשתנה מסוים מורמת (ערך. הסיבית 02 הוא *1', או "אמתי). לשם כך, נכין מסכה שבה נצוב "1" בסיבית השלישות. ו-י0י בשאר הסיביות. המסכה תיראה כך: <90000100> וערכה יחיה 44 = שפו לשימו חטבות חא בוטרה הא עו 0 ערמספרהסבות האפשרי במשתנה. הספרה הראשונה מימן היא 5 התיאור יימורמת" שאנו מייחסים לסיבית פירושו שערכה "1 (ח0). סיבית יימורדו הוא ייי 0/). לעיתים אומרים גם י"דלוקה" או "כבויה", בהתאמה. ערכה כשנבצע כעת את הפעולה סא על המשתנה שאנו רוצים לבדוק, עס המסכה שיצרנו, הפעולה 80 תחזיר 1" בסיבית השלישית אם הסיבית השלישית במשתנה מורמת. בשאר. הסיביות הפעולה תחזיר אפס, בלי להתחשב למצב הסיביות במשתנה (כדי שהפעולה סאא. תחויר אמת, שתי הסיביות שהיא בודקת צריכות להיות מורמות, ואם אחת אינה מורמת, אין כל חשיבות למצבה של השנייה). הערך שיוחזר מהפעולה יהיה אפס, אס הסיבית השלישית במשתנה אינה מורמת, ו-4 אם. היא מורמת. מכיון שבשפת 6 אפס נחשב כשקר וכל ערך אחר נחשב כאמת, ניתן לכתוב ואת. כך 1 יהסיבית השלישית מורמת") 5 את 3שכ. ; ("הסיבית השלישית אינה מורמת") + אתבס באופן וה נוכל לבדוק את ערכה של כל אחת מחסיביות במשתנה. 6 שפת 6- נושאים מתקדמים בדי להקל עלונו במציאת המסכה המתאימה, נכון מראש טבלה של המסכות לבדיקת סיבית. בדיקת הסיבית הראשונ ‏ | סט. בדוקת הסיבית השנייה ‏ = | 01. בדוקת הסיבית השלישית ‏ | 82. בדוקת הסיבית הרבועית ‏ | 03. בדוקת הסיבית החמושות. | 84 | 00010000 = 1011 בדוקת הסיבית השושית = | 85 | 00100000 = 2011 בדיקת הסיבית השביעית ‏ | 66. בדוקת הסיבית השמינית ‏ | 07. = לעיתים נרצה לאלץ סיבית מסוימת במשתנה לו "= = פעולת 08 בין המשתנה לבין המסכה המתאימה. ידלוקה". לשם כך נבצע. 5 הזזת סיביות (כפל/חילוק מקוצר) כפל על ידי הזזה שמאלה הזות סיביות שמאלה נעשית באמצעות האופרטור ">>". בפעולה זו, הסיביות שבאופרנד. השמאלי זזות שמאלה מספר פעמים השווה לערכו של האופרנד הימני. הסיביות. שיינושרות" מהגבול השמאלי של המשתנה הולכות לאיבוד, ומימין "נכנסות" סיביות. כבויות (שערכן אפס). ניקח כדוגמה את הפקודה הבאאה, המציזה פעמיים את סיביות המשתנה % שערכו 3 מצב התחלת לאחר הזזה אחת. לאזר טני הזוות 2 - א בו ו - 80 = ץע בסיוס ביצוע הפעולה, הערך של + יהיה 864 והערך של א ישאר 83%. להוות הסיביות יש משמעות נוספת. נסו להבחין מה קורה לערך מבחינה מתמטית לאחר כל. הזוה. הבה נבחן פעולה זו. נמיר את שלושת הערכים ההקסדצימליים שקיבלנו בתרגיל הקודם לערכום עשרוניים, כדי שנוכל לראות ואת יותר ברור. במצב ההתחלתי היה הערך 23% שווה ל-35, אחרי הוה אחת. הפך הערך ל-46 ששווה ל-70, אחרי הזזה נוספת הפך הערך ל-86% ששווה ל-140. שימו לב לערכים: 35, 70, 140. בכל פעם שהזזנו את הסיביות, הערך נכפל פי . פרק 2: עבורה בסיביות ‏ 47. . מסקנה: הזזת הסיביות שמאלה מבצעת כפל מקוצר בחזקה של 2, על פי מספר ההזזות. לדוגמה, 3 הוזות שקולות לכפל ב-1 בחוקת 3, או כפל ב-> מכיון שפעולת כפל זו חירה בהרבה מפעולת הכפל הרגילה (המתבצעת על ידי אוסף של. מעולות חיבור), מכנים אותה בשם כפל מקוצר. חילוק על ידי הזזה ימינה באופן דומח לכפל, ניתן גם לחלק מספר בינארי בשיטת ההזזה. הפעם נזיו את הסיביות של. המשתנה ימינה באמצעות האופרטור "<<". בפעולה זו, הסיביות שי"עושרות" מהגבול הלמנ של המשתנה הולכות לאיבוד, ומהצד השמאלי נכנסות סיביות "1" או "0" באופן הבא. > אס ערך המשתנה מזוחה כחיובי, שיש לו סיבית "0" שמאלות, מוכנסת סיבית "ט", > אם ערך המשתנה מזוחה כשלולי, שוש לו סיבות 1 שמאלית, מוכנסת סיבית *1". > אם ערך המשתנה מווהה כחסר סימ (חטפחט), תמיד תיכנסנה סיביות שערכן. די למנוע טעויות, עלינו לדעת שאם נשתמש באחד הטיפוסים חסרי הסימן שהגדרנר ועט שוטוו, 6א4), הסיביות שתיכנסנה משמאל תהיינה תמיד בעלות ערך *0". ניקח כדוגממה את הפקודה הבאה, המציזה פעמייים את סיביות המשתנה % שערכו 24 מצב התחלת 0 לאחר הזזה אחת. 0 לאחר תי הוזות. -> 5-0 ץצ גס הפעם יש משמעות מתמטית להזות הסיביות. נמיר את שלושת הערכים ונקבל: 20, 20 5. הפעס, בהזה ימינה, כל הזוה מחלקת את הערך ב-2 מסקנה; פעולת הזזת הסיביות ימינה מבצעת חילוק מקוצר בחזקה של ,.. לדוגמה, 3 הזזות ימינח שקולות לחלוקח ב-? בחזקת 3, כלומר לחלוקה ב-. מכוון שחילוק בדרך זו מחיר בהרבה מפעולת החילוק הרנילה (המתבצעת על ידי אוסף. פעולות חיסור) נקראאת הזוה זו בשם חילוק מקוצר 6 הדפסת ערך בינארי של משתנה הידע שברשותנו מאפשר לנו כעת להדפיס את ערכו הבינארי של משתנה. הדרך הפשוטה. ביותר (אך ארוכה ולא יעילה) היא להעביר את המשתנה דרך שמונה המסכות שהכנו. כל מסכה תבדוק ערך של סיבית אחרת במשתנה, וכך נדע להדפיס את הספרות 17" או יט" כנדרש. שיטה יותר יעילה היא לבדוק באמצעות המסכה את הסיבית הראשונה (₪0ו, להדפיס, להזיז את הסיביות של המשתנה ימינה ושוב לבדוק ות ערך הסיבית הימנית. 8 שפת 6- נושאים מתקדמים כדי לפעול בדרך זו ניצור תחילה פונקציה המקבלת משתנה מסוג בית, ומשתנה נוסף. המציין את מיקום הסיבית בין אפס (ל-90) עד שבע (ל-07). הפונקציה תזיו את סיביות. המשתנה ימינה כמספר הסיבית לבדיקה, תעביר את הערך שיתקבל במסכה לבדיקת. הסיבית הראשונה [90), ותדפיס אחד או אפס בהתאם. שימו לב, כשרוצים להציו את סיביות המשתנה עצמו, ניתן להשתמש בהצבה מקוצרת. (תוכורת: כשרוצים להציב במשתנה ביצוע פעולה כלשהי עליו, כותבים את המשתנה, אחרין. את האופרטור הרצוי, אחריו סימן שווה ואחריו את האופרנד השנט. עכשיו נותר לנו רק לכתוב לולאה שעבור כל סיבית תפעיל את הפונקציה לבדיקת סיבית. שימו לב, שמכיון שהפלט מודפס משמאל לימין, הלולאה פועלת מהסיבית האחרונה אל הראשונה, בכווון שמאול לימין התוכנית תיראה כך. ]5% צצמתגם *אא] <ת 564:0> במטנסהג ףע בתס 19888פחט 455סקעט (21806 6תג ,3 מפעע) 9680216 סה [ (6גנע =<< א א 0 0 בי 0 / (014) הגגם 018 [ הבנפ בל ערך הקסרצימלי דו פפרתי שחרצה לבדוק // = 0855 = מצאו שצכת 4 509 )157/1<5004--( 2056956) 5( ; פרק 2: עבודה בסיביות > 49. . 7 ₪סא כבדיקת זוגיות סיביות למעולה אסא יש שימוש נפוץ נוסף והוא בדיקת זוניות סיביות. ניקח לדוגמה את הערך /174 ונבצע פעולת 408 בין כל הסיביות המרכיבות אותו (בכל פעם. ניקח זוג סיביות ונבצע ביניהם פעולת ה0)0. סרפ 00 = 78ב ה 0 הוה הוה ה - ג עכשיו נסו לחזור על פעולה זו עבור הערך 18%. התשובה שתקבלו צריכה לחיות 1". השוני בתשובה אינו מקרי. פעולת ה%0 המופעלת על שרשרת סיביות מחזירה אפס אם. מספר הסיביות המורמות בשרשרת הוא זוגי, ואחד אס מספר הסיביות המורמות. בשרשרת הוא אי-אוגי. לתופעה זו ישנם שימושים רבים. בהמשך נכיר שניים מהם. סיבית בדיקת זוגיות בתקשורת נתונים בתקשורת נתונים בין מחשבים משודרים נתונים ממחשב אחד לאחר. לעיתים, עקב רעשים. בקו או עקב הפרעות אחרות, הנתונים שמתקבלים בצד הקולט אינם זהים לנתונים שנשלחו. מהצד המשדר, כיון שאפילו שניאה בסיבית אחת עלולה להיות מסוכנת מאוד (לדוגמה, כאשר הנתונים המועברים הס סכומי כסף), יש צורך לבדוק תמיד את הנתוניס המתקבלים. אם מתגלית שגיאה, צריך לבקש מהצד המשדר לחזור על הפעולה ולשדר שוב את גוש. ביצד נדע אם התרחשה שגיאה בקטע הנתונים שהתקבלו לשם כך, מחלקים את הנתונים. ליחידות קטנות הנקראות מסגרות, ולכל אחת מהן מוסיפים שדה המיועד לבדיקת שגיאות. אחת מבדיקות גילוי השגיאות הפשוטה והנפוצה ביותר היא בדיקת הזוגיות (/₪6ם. 66 בשיטה זו מוסיפים למסגרת סיבית זוגיות. אם מספר הסיביות המורמות במסגרת. הוא זוגי נוסיף סיבית שערכה אפס, ואם מספר הסיביות המורמות חוא או-זוני נוסיף. סיבית שערכה אחד. התחנה המשדרת משדרת את מסגרת הנתונים ומוסיפה לה את סיבית הזוגיות המתאאימת, התחנה הקולטת מקבלת את המסגרת ובודקת האם ערך סיבית הזוניות אמנם מתאים. למסגרת הנתונים שהתקבלה. אם יש אי התאמה וסיבית הווגיות שהתקבלה אינה מתאימה. לתוצאות בדיקת הסיביות שנקלטו, התחנה הקולטת מודיעה לתחנה המשדרת על שגיאה. ומבקשת לשלוח שוב את מסגרת הנתונים הפגומה. 6 שפת 6- נושאים מתקדמים כיצד נוכל לבדוק מה צריך לחיות ערך סיבית הזוגיותו נוכל לגלות ואת בקלות על ידי סדרה. של פעולות 808 בין כל סיביות המסגרת. כך, כמו שהסברנו בתחילת סעיף זה, הערך. שיתקבל ישלים את מספר הסיביות המורמות שבמסגרת לערך זוגי, שהוא ערך סיבית. ו שיטת בדיקת הזוגיות שהוסברה בסעיף זה נקראת *בדיקת זוגיות זוגית. (/6פ הפאפו. לעיתים, בדיקת הזוגיות בודקת אם מספר הסיביות המורמות. במסגרת הוא אי-זוגי בדיקה כזו נקראת "בדיקת זוגיות איזוגית" (086. = מּ כתבו פונקציה המקבלת מסגרת נתונים בגודל בית ואשר הסיבית האחרונה. אמינות בדיקת הזוגיות הזו היא 50%, כיון שהיא תזהה כל שיבוש במספר. 1 ָ ז אי-זוגי של סיביות בלבד. נסו לחשוב על שיטה יותר אמינה שתשתמש במספר קטן של סיביות לבדיקה ותזהה יותר מ-50% מהשגיאות. המשחק "נים" ("פירמידה הפוכה") דוגמה נוספת לשימוש ב-408 לבדיקת ווגיות של סיביות נוכל למצוא במשחקים שונים. במשחקים רבים בהס המשתמש משחק נגד המחשב, נדמה לנו שהמחשב. הוא מצליח לשחק טוב ולעיתים אף טוב מאאיתנו. אמנם, לפעמים כך וה נראה, אך המחשב לא באמת חושב כמונו (לפחות נכון לחיום). אם. כך, איך בכל ואת המחשב מצליח לשחק כל כך טובז הסיבה לכך נעוצה בעובדה שבמשחקים. רבים מתחבא איושהו טריק שבדרך כלל איננו שמים לב אליו. בעזרתו, ובעזרת חישובים. שונים נוספים יכול המחשב לנצח אותנו במשחק. השחקן חושב על מהלכי המשחק ועל מה. שעלול לקרות בעקבות כל צעד שייעשה, ואילו המחשב עושה חישוב מתמטי כלשהו ופועל. לי המסקנה הנובעת מכך. אחת הדוגמאאות הפשוטות היא המשחק העתיק הנקרא "נים'", אשר ידוע גם בשם. טירמידה הפוכה". אס השם לא מוכיר לכס דבר, אני חושב שלאחר שתקראו את התיאור. שבהמשך, רובכם יוהו את המשחק מייד (בילדותי נהגתי לשחק במשחק זה בהפסקות. הלימודים על הלוח, עם חברי לכיתה). פרק 2+ עבודה בסיביות = 53 אס הס בלו המשחק. לצ שהמטיבו לקרוא בוב פופפטוך תושי ב לב שבכל פעם שמגיע תורכם עליכס לנסות לחשוב מה. 1 מותר לעשות, כדי שבתור הבא השחקן השני לא יעשה. | | אם הקשבתם לעצתי ושיתקתם במשחק, ודאי שמתם. ₪ משהו שיגרום לו לנצח נה נשמע יותר מסורבל. 1 ממה שזה באאמת) הביטו לדוגמה בתרשים 2.2 המציג תמונת מצב באמצע המשחק. נסו לחשוב איז קו או קווים יש למחוק. בתור ה כדי לנצח. תושים בל > אם תמחקו את כל הקווים שבשורה 2 או את כל הקווים שבשורה 1, השחקן השני ינצח. + אם תמחקו קו אחד בשורה השנייה, השחקן השני ימחק כעת שני קווים משורת 1, ואד יוכל לנצח בסיבוב הבא. > אם תמחקו שני קווים משורה 1, השחקן השני ימחק קו אחד משורה 2 ואז יוכל לנצח. > אם תמחקו קו אחד משורה 1, מובטח לכם שתנצחו! חשבו על כך. ובכן, הבנו מה אנחנו צריכים לעשות כדי לשחק במשחק. אך איך נוכל לגרום למחשב לעשות. מח שאנו רוצים שיעשהו: נבטא את כמות הקווים שבכל שורה בערכים בינאריים, ונבצע פעולת 808 בין ארבעת. הערכים שיתקבלו. בתחילת המשחק הערכים ייראו כך. = גג -1- וע 1314 2 שפת 6- נושאים מתקדמים כפי שלמדנו, ניתן לדמות שפעולת 08א לקחה בכל פע רצף של ארבע סיביות מתאימות, בדקה אס מספר הסיביות המורמות בה הוא זוגי, החזירה אפס אם המספר זוגי, והחוירה. אחד אם המספר אינו זוני. התשובה הסופית של פעולת 408 בתחילת המשחק היא אפס. הטריק במשחק זח: בתור שלכם עליכם למחוק מאחת ערמות קווים, כך שכשתעבירו את. התור ליריב, תוצאת פעולת ה-08א תהיה אפס. בדרך זו אין סיכוי שהיריב למשחק ינצח. בתור הבא. אם תמשיכו לשמור שבכל פעם שתעבירו את התור פעולת אסא תחזיר אפס, אי דבר שהיריב יוכל לעשות כדי לנצח במשחק זה. עכשיו אתם בוודאי מבולבלים. ראינו שהשחקן שמתחיל ראשון הא המפסיד בוודאות. מכיון שהשחקנים האנושיים אינם מכירים את השיטה, אף אחד לאא יטרח לחשב את פעולת. ה-808. לכן, גם אם המחשב יתחיל ראשון, אין זח אומר שיפסיד, כי השחקן השני, האנושי, עלול לטעות. אולם, אם השחקן יתחיל ראשון והמחשב שני, המחשב תמיד ינצח: לכן, כדר לאפשר למשתמש לנצח, ניתן למחשב להתחיל במשחק. נסו לבדוק טענות אלו וראו שהן נכונות. עכשיו נותרת עוד בעיה קטנה. איך המחשב יידע איזה קו או קווים עליו למחוק, כדי להעביר את התור כך שפעולת 08 תחזיר אפסו הדבר מתבצע כך. 1 נמצא מהי השורה שנשארו בה מספר הקווים הרב ביותר. 2 נבדוק מה תהיה תוצאת פעולת הס אם בשורה זו יהיה קו אחד פחות. 3 אם התוצאה תהיה אפס, נמחק בשורה זו קו אחד בלבד. 4. אחרת, נחזור על פעולות 2 ו-3 עד שננלה כמה קווים יש למחוק מהשורה. 9 = תמי ישנה כמות כלשהי של קווים שאם נמחוק אותם מהשורה המלאה. ביותר התוצאה של פעולת אסא תחזיר אפס, בתנאי שתוצאת אסא הנוכחית. ובכן, מה נעשה אס תוצאת ה0א בתחילת התור שלנו היא כבר אפסו במקרה כזה נמחק ק. אחד בלבד מהשורה המלאה ביותר, ונקווה שבתור הבא, השחקן יטעה ולא יעביר לנו מצבב שבו תוצאת אסא תהיה אפס. נסכם את האלגוריתם שצריך לבצע המחשב. 1. אם לא נשארו קווים על הלוח, השחקן ניצח. אחרת, מצא את השורה שנותר בה מספר הקווים הרב ביותר. 3 חשב את תוצאת פעולת הסא: > אם תוצאת אסא היא אפס, מחק קו אחד משורה זו > אחרת, (השחקן טעה) מחק קווים משורה זו עד שתוצאת ה-08א תהיה אפס. (אפשר לומר בוודאאות שהמחשב ינצח במשחק זה). אם לא נשארו קווים על הלות, המחשב ניצח. פרק 3+ עבודה בסיביות ‏ 3 . וה כל הרעיון שמסתתר מאחורי משחק זה. עכשיו נסו לכתוב את התוכנית שעושה ואת. קל. מאוד לתכנת משחק זה, הוא יותיר רושם רב על כל מי שלא מכיר את הטריק, ולא יבין כיצד גרמתם למחשב לחשוב, כביכול. לסיוס, וכרו את שני השימושים שהודגמו בסעיף זה בפקודה אסא לבדיקת זוגיות בסיביות. בוודאי תוכלו למתור בעיות נוספות על פי עיקרון זה. 4 שפת 6- נושאים מתקדמים פרק 3 שימוש בפסיקות ושילוב פקודות אסמבלי בפרק זה נעסוק בפסיקות ובשילוב פקודות באסמבל. / נלמד להפעיל פסיקות בשפת 6.. / נלמד ליצור פסיקה משלנו שתחליף פסיקה קיימת.. / גלמד לשלב קטעי קוד בשפת אסמבלי לתוכנית בשפת 6.. 1 פסיקות - הקדמה פסיקה טקוחזטטח!) היא מנגנון המאפשר למעבד להפסיק את ביצוע התוכנית הנוכחית, לעבור זמנית לביצוע של תוכנית אחרת, ולחזור ולהמשיך את ביצוע התוכנית המקורית. בניגוד לפרוצדורה, או פונקציה, המופעלות על פי פקודה פנימית בתוכנית, הפסיקה מופעלת. הן בעקבות פקודה פנימית והן כתוצאה מאירוע חיצוני כמו למשל גלישה בפעולת חישוב, א פעולת חילוק שאינח מותרת (למשל, חולוק ב-8). כדי שהמעבד יוכל לחדש כראוי את ביצוע התוכנית שהופסקה בתום ביצוע תוכנית השירות. של הפסיקה (₪0100/06 594/66 זקצוחופטח1 -158, עליו לעשות פעולות מכינות. לפנ בלצוע. הפסיקה עלוו להכניס למחסנית את התוכן של שלושה אוגרים. 1. אוגר הדגלים -₪0/5091 פָּו=. כך נוכל לשחזר את מצב הדגלים שהיה לפנו ביצוע. הפסיקה. 2 אוגר מקטע הקוד 65 - 5999 0066. כך נוכל לחזור למקטע הקוד של התוכנית. ממקטע הקוד של הפסיקה במידה והם לא זהים. 3 אוגר מצביע הפקודה 15 - 8696007 הסוסותופה1. כך המעבד יידע באיזה פקודה הוא. הפסיק את ביצוע התוכנית בומן הפעלת הפסיקה. בסיום ביצוע תוכנית השירות של הפסיקה, משותזרים הערכים של שלושת האוגרים על פר הערכים שבמחסנית, וביצוע התוכנית המקורית ממשיך. פרק 3: שימוש בפסיקות ושילוב פקודות אסמבלי = 55 כתובות תוכניות השירות של הפסיקות השונות מאוחסנות בווקטור הפסיקות. המחשב. יודע לטפל ב-256 פסיקות המווהות על ידי מספר ויהוי הפסיקה. לעיתים, תוכנית השירות של הפסיקה צריכה לקבל פרמטרים או לחחציר פרמטרים. לשם. כך משתמשים באוגרים הכללים. אא, א8, 6%, אם. באסמבלי מפעילים פסיקה באמצעות הפקודה אא ואחריה מציינים את מספר הפסיקה. המבוקשת. קביעת ערכי הפרמטרים שבאוגרים הכלליים נעשית על ידי הפקודה עס. 2 איגוד האוגרים המדומים ומבנה אוגרי המקטע בדי להפעיל פסיקות בשפת 6, יש לחשתמש באיגוד של האוגרים המדומים -8865 סו הביטוי חפוחוו, איגוד, נובע מכך שהמשתנים "מולבשים" זח על זה. האיגוד נקרא איגוד האוגרים המדומים כיון שאלה אינם האוגרים האמיתיים. לפני הפעלת. הפסיקה, מועתקים ערכי האוגרים המדומים שבאיגוד (חסוג) ה אל האוגרים האמיתיים, ובסיוס ביצוע הפסיקה ערכי האוגרים האמיתייס (שברוב המקרים ערכם ישתנה כתוצאה. מביצוע הפסיקה), מועתקים אל איגוד ה. בשפת אסמבלי ניתן לפנות לאוגרים כאוגרים שלמים בגודל מילה 89 , אפ , וכו') או כחצאי. אוגרים בגודל בית 8% מתחלק ל- 8 ול-ג). כך, כל שינוי בחצי האוגר משנה את הסיביות. המתאימות באוגר השלם. כדי לחקות צורת נישה זו, נשמרים האוגרים המדומים באיגוד (ראה סעיף 3-1). האיגוד נראה כך 0 א 4, 0186 "18 6 שפת 6- נושאים מתקדמים [ שפצ פע סע פע האיגוד מורכב משני מבנים היימולבשים" זה על זה באותו שטח זיכרון. המבנה הראשון. גדול יותר מהמבנה השנו, ולכן גודל האיגוד נקבע על פיו. המבנה השני "מתלבשי על ארבע. המילים הראשונות במבנה הראשון (תרשים 5.1 | ₪4 |[ ₪ | א | ₪ | ₪ | א | ₪-] 4 ₪ [ ₪ | א | ]ו | תת תושים .3 הגדרת איגוד מסוג איגוד האוגרים המדומים // | ;בַ126 9805 מםבהט ב 4 לאחר ביצוע פקודה זר .ו שווה ל- 124 ד 5.30-פ6זו שווה ל- 348 יש פסיקות הוקוקות לפרמטרים שונים באוגרי המקטע (₪69/9:919 זח5906). לשם כך. הוגדר מבנח לשמירת הערכים של אוגרי המקטע. גם מבנה זה מכיל אוגרים מדומים, ולא. את האוגרים האמיתיים. חשימוש בו נעשה באופן דומה לשימוש באיגוד האוגרים. חמבנה גאה כך 50 בצסאם 0 ב 0 גסמ ה 1. שימו לב שאת המילים *₪865* ו-*54565" יש לכתוב באותיות גדולות "7 = 2 בראש התוכנית יש לכתוב: <405> פס פרק 5+ שימוש בפסיקות ושילוב פקודות אסמבלי = 7 3 הפעלת פסיקות בשפת 6 כדי להפעיל פסיקות בשפת 6 נשתמש בפונקציות ספריה השיכות ליחידת הספריה א.465. 6 הפונקציה השימושית מכולן נקראות 96/₪. היא תומכת בהפעלת כל הפסיקות הרגילות. המתאימות למעבד בארכיטקטורת 8086 ו6וח1. הפונקציה מקבלת שלושה פרמטרים. 1. מספר הפסיקה שברצוננו להפעיכ. 2 מצביע לאינוד אוגרים מדומים שערכיו יעדכנו את האונרים לפני הפעלת הפסיקה. 3. מצבוע לאיגוד אוגרים מדומים שערכיו יעודכנו על פי האוגרים לאחר הפעלת הפסיקה. ניתן להשתמש באותו איגוד לפעולות המפורטות הן בסעיף 2 וחן בסעיף 3 הפונקציה מחזירה את ערך אוגר 4% כשהואא מוסב ל-61פחו, אך לרוב לא יהיה לנו צורך. בערך המוחזר הזה כי הוא מוחזר גם בתוך איגוד האוגרים היוצאים 3 הגדרת הפונקציה נראוית כך. ((88ספסוס* 9805 תסנתט ִַבַסצה3' 8825 מם1תט וסעסת: מת1) 10558 שהב הביטו בדוגמה הבאה וראו כמח זה פשוט. נניח שברצונכם להציג את סמן העכבר, ואתם. יודעים שכדי לעשות זאת עליכם להפעיל את פסיקת העכבר שמספרה 33 עם פרמטר 144 באוגר אא. בעורת 186ו תוכלו לכתוב כך את הפונקציה להדלקת סמן העכבר 58 הסאה צר 0 הצמ = .עב (0833,41960/85990) 3586 נכון שאין זה מסובךו+ א86שחן יש פסיקות הדורשות פרמטרים גם באוגרי המקטע. להפעלת פסיקות אלו נשתמש. בפונקציה א886ו. הפונקציה מקבלת את הפרמטרים הבאים. 1. מספר הפסיקה שברצוננו להפעיכ. 2. מצביע לאינוד אוגרים מדומים שערכיו יעדכנו את האוגרים לפני הפעלת הפסיקה. 3. מצבוע לאוגוד אוגרים מדומים שערכיו יעודכנו על פי האוגרים לאחר הפעלת הפסיקה. > מצבוע למבנה אוגרי המקטע. 8 שפת 6- נושאים מתקדמים . הגדרת הפונקציה נראאית כך. > 5 0ה) סה1) 866שה1 16 אנו יכולים להבחין בכך שפונקציה זו זהה לפונקציה הקודמת, אלא שיש עוד תוספת של. שליחת מבנה אוגרי המקטע. לרוב לא נצטרך להשתמש בפונקציה זו, אך דוגמה לשימוש בה. תוכלו לראות בפרק 16 יכונן התקליטורים (0-8019ס)*. יש שתי פונקציות ספריה נוספות להפעלת פסיקות. 106605 ו- א100605. פונקציות אלר מקבילות לפונקציות 8086 ז-א96וחו שהוסברו בסעיף זה, מלבד העובדה שהן תומכות. בפסיקת 005 (0ו21) בלבד, ולכן אינן מקבלות את הפרמטר הראשון ספ הפסיקה). כיון שניתן להפעיל את פסיקת 005 גם בעזרת שתי הפונקציות הרגילות (196ח/ ו- 00086 על ידר צוון מספר הפסיקה (2110), רצוי לחשתמש בחן תפויד 4 יצירת פסיקה חדשה ופלישה לפסיקה קיימת לעיתים לא נסתפק בפסיקות הקיימות בספריה ונרצה ליצור בעצמנו תוכנית שירות לטיפול. בפסיקה (158). לשם כך נכתוב פונקציה (שתשמש כתוכנית השירות החדשה), אך נכתוב לפנר שמח את המילה +0חזפזחו. לדוגמה. (9018) 0/1886 ממטעצםות3 בס [ קד ₪5 לאלו מביניכם שמכירים את שפת אסמבלי, משמעות המילה השמורה. אקטחפוחו היא, שבזמן תהליך ההיגור לאסמבלי נכתבת, בסוף הפונקציה את תוכנית הפסיקה שכתבנו עלינו לשייך לפסיקה כלשהי בווקטור הפסיקות. לשם כך נשתמש בפונקציה 9694664 המקבלת מספר פסיקה ואת שם תוכנית השירות ומעדכנת את. וקטור הפסיקות. כך, התא של הפסיקה המתאימה בווקטור הפסיקות יקושר אל תוכנית. השירות לפסיקה (58. שימו לב שלא תדרסו פסיקה חשובה קיימת. לשם כך, בחרו בווקטור הפסיקות בתא שידוע. לכם שאינו תפוס על ידי המערכת (שערכו מעל 100). בדוגמה שלהלן בחרנו בתא 193 ו (0 (פ1י) סקטשטססה: 014ט) 965158 בבס [ 200 )103,15( 2 פרק 5: שימוש בפסיקות ושילוב פקודות אסמבלי = 9 . לעיתים נרצה יילפלוטיי לפסיקה קיימת וליצור תוכנית שירות (158) משלנו שתתבצע. במקומה. אם נרצה שפקודות תוכנית השירות המקורית תתבצענה גם כן, נפעיל אותן מתוך. = = המושג "פלישה" או "דריסה* (חשווטוט) מכוון להחלפת תוכנית שירות, או פונקציה קיימת סטנדרטית בתוכנית אחרת שתישא את אותו שם ותכלול קור חדש, או אף את הקוד הישן. כלומר, לא ניתן לשנות חלק של תוכנית השירותת 054 הטקורית! ניתן לכתוב תוכנית שירות חדשה שתחליף את הקיימת, ואם. ברצה, נוכל להפעיל מתוכה את הקוד המקורי בשלמותו בלבד. נעשה ואת כך. 1. ניצור תוכנית שירות (058 משלנו. 2. נשמור את כתובת תוכנית השירות המקורית (מצביע אליה) בתא ריק בווקטור. 3. נכניס לתא המקורי את כתובת תוכנית השירות שכתבנו ובמקום כתובת תוכנית. השירות המקורית). + בסוף ביצוע מערכת התוכנה שאנו כותבים, נשחזר את תוכנית הפיקה המקורית על. ידי העתקת הכתובת שלה אל התא המקורי (כדי שהתוכנות הבאות שנריץ במחשב. יוכלו לחשתמש בה). כדי להעתיק כתובת (מצביע) של תוכנית שירות מתא לתא, ניעור בפונקציה 809865 המקבלת מספר פסיקה ומחזירה מצביע אל תוכנית השירות שלה. נשמע מסורבל, אך אין וה כך, ואף פשוט ונוח יותר לכתוב ואת כך מאשר באסמבלי. לדוגמה, נכתוב תוכנית הפולשת לפסיקת המקלדת, ותפקידה לדמות קליטת סיסמה. בכל. פעם שהמשתמש מקיש תו, תופוע על המסך כוכבית במקום התו שנקלט, אך התו עצמ יוכנס למחרוזת הסיסמה שבזיכרון כשלוחצים או משחררים לחיצה של מקש במקלדת, מופעלת פסיקת 8105 מספר ל. בעת. קליטת תו, המקש גם נלחץ ונס משוחרר, ולכן פסיקה 5 מופעלת פעמיים. אם נפלוש. למסיקה ל ונשים בה תוכנית שירות משלנו, שבנוסף להפעלת תוכנית השירות המקורית גם. תדפיס כוכבית על המסך, יופיעו שתי כוכביות בכל קליטת תו. נוכל לפתור בעיה ואת אם. נגדיר דגל נלובלי בשם מוז, לדוגמה, בכל הפעלת פסיקה נחליף את ערכו (מורס או לא. מורם) ונדפיס כוכבית על המסך רק א הוא מורם. התוכנית תיראה כך א אי בשה שה 35 בשה מ 6 שפת 6- נושאים מתקדמים (4מט) שפ1עא מקטדסמאה: בגב ו קה הסקוריח ששטרנו בתא 303 0 ו 0 0 ( 0 מצני) סקלתמטה: 0144 ששבומט שגמ [ הפתקף הפפיקה המקורית אא 205 //‏ :((5)5-מפס 102 שה הטחקת הפסיקה שלגר אתא 9 ו (ד) 013555אכס אתל בצמה / שחוור הפטיקף המקורית // 2 ((102) ,)שה ו (018ד) 0אס5םתא5 סי ממ הקצאת מחרוות של 20 תאים // ;(20) ממגנשה (* מבהם) = אפמ קביטת הסיעה שפצר //, פד לא נרףץ שמשת ו ו רואת ו בנשא = [39001 שחוור הפטיקה המקורית / 0 0ל) מצמסמק מ הצפה אצמ ו 0 פרק 3: שימוש בפסיקות ושילוב פקודות אסמבלי = 61 כדי להימנע משמירת תוכנית השירות המקורית בתא שאינו ריק (כי גם אם התא אמור לחיות ריק, ייתכן שתוכנה אחרת משתמשת ב, ניתן לשמור אותה במצבוע לפסיקה. נעשה ואת כך. > בראש התוכנית נגדיר מצביע לתוכנית השירות המקורית. 3( (0930108115*) סקטעפססה: 48 > את הפונקציה לאתחול תוכנית השירות שכתבנו נכתוב מחדש, כך 48 80015 > את הפונקציה לשחוור תוכנית השירות המקורית נכתוב מחדש, כך 0 שחזור הפסיקה המקורית //‏ נ((9,0181081159) 0000ב 5 שילוב פקודות אסמבלי בתוכנית ניתן לשלב קטעי קוד הכתובים באסמבלי בתוכנית הכתובה בשפת 6. מכנים ואת בשם. אסמבלי מוכלל - 85560090 6ח/1ח1. למעשה, בספר זה לא היה צורך לעלב בתוכניות 6 גם. פקודות אסמבלי מוכלל, גם בעת טיפול בפסיקות (שנעשה במקרים רבים בשפת סף), מכיון שהפונקציות שהכרנו בסעיפים הקודמים עושות את העבודה ביעולות ובקלות רבה. אס בכל ואת תצטרכו לשלב פקודות אסמבלי בתוכנית 6, תוכלו לעשות זאת כך. לפנ כל. פקודת אסמבלי כתבו את המילה וחפפ. הפקודה תסתיים בסוף השורה, או בסימ נקודתיים (. 8 0 מב נא ססק חפב /22,3 544 מב באסמבלי משמעות הסימן נקודתיים (;) הינה תחילת הערה. באוסמבלי מוכלל משמעות. הנקודתיים היא סוף פקודה (כמקובל בשפת 6). הערה נכתבת כמקובל בשפת 6, חרי שני לובסנים (/0. הערה // אמ קסק מב ניתן לשלב מספר פקודות אסמבלי בבלוק פקודות אחד (סוגריים מסולסלים). מתיחת. הבלוק חייבת להיות באותה שורה בה כתובה המילה וחצג. 2 שפת 6- נושאים מתקדמים לדוגמת, 7 א פסק (903ב ב פקודות אסמבלי המשולבות בשפת 6 יכולות להשתמש גם במשתנים שהוגדרו בשפת 6, ולא. סח חפב כמו בשפת אסנובלי, גס באסמבלי מוכלל לא ניתן לכתוב פקודה המשלבת שני משתנים. המהדר יודיע על שגיאה. נתגבר על בעיה זו כמו שנהגנו בתכנות אסמבלי - נעתיק את תוכן המשתנים לאוגרים ונחבר. בין האוגרים. התוכנית הבאה מדגימה את השימוש באסמבלי מוכלל כדי ליצור פונקציה המחברת בין שנ. מספרים ומודיעה על גלישה, כאשר פעולת החיבור גורמת להרמת דגל הגלישה (לתצכורת. דגל הגלישה מורם כאשר יש נשא בין הסיבית שלפני האחרונה, השמאלות ביותד, לבין הסיבית האחרונה, ואין נשא בין הסיבית האחרונה והחוצה). 0 ₪ נה ומעל :0% 8פמ גפתט 5מ4מקצ (5 פמעל 5 65ע2)מ0סטצא פמ [ - 96 אין גלישה קפוץ לחווית מאשת / שח מס 0 פרק 3: שימוש בפסיקות ושילוב פקודות אסמבלי = 63 . = ה 4 הא וי (גמה) הצמה בגב [ כ ה 0 לא חהיה גלישה// 2((/א)5כסמג ₪5 גליפה// 3 ((ל/5) סטג לא ניתן לכתוב תווית בתוך בלוק של פקודות אסמבלי מוכלל, ולכן כתבתי. את התווית זאח מחוץ לבלוק. פסיקת הגלישה היא מספר 4. כתבו תוכנית בשפת 6 ללא שימוש באסמבל. מוכלל, כדי לבצע בדיוק את מה שמבצעת תוכנית הדוגמה הקודמת. רמז: פלשו לפסיקת הגלישה והוסיפו בה את הדפסת ההודעה. 4 שפת 6- נושאים מתקדמים פרק 4 יצירת פרויקט, חלוקה מודולרית, תיעוד וסגנון בפרק וה. / נלמד לחלק את מערכת התוכנה ליחידות. / נלמד להרכיב פרויקט מאוסף יחידות. / נלמד לתעד את המערכת. / נלמד מספר כללי עיצוב סטנדרטים וסגנון. 1 חלוקה ליחידות (פזוחט) יחידה טוחט) במערכת תוכנה, הלא מודול עצמאי, המבצע אוסף תפקידים מוגדר המורכב. מפונקציות, משתנים, טיפוסים וקבועים בעלי מכנה משותף תפקודי כלשהו. אם כך, כיצד נדע מהס היחידות שירכיבו את מערכת התוכנה שאנו בונים? כשמתכננים מערכת תוכנה, יש להתחטב בעיקרון המודולריות וק 0 האומר כי היחידות (המודולים) המרכיבות את המערכת, צריכות להיות נוחות לחיבור והחלפה. כל יחידה תטפל בנושא אחד בלבד ותהיה עצמאזית ככל האפשר. מערכת הבגויה. בצורה מודולרית מגדילה את הסיכוי לשימוש חוזר בקוד שנכתב, שכן ניתן לשלב יחידות. שנכתבו על פי עיקרון וה במערכות תוכנה שונות. עצמאות היחידה מתבטאת באי תלותה ביחידות האחרות המרכיבות את המערכת. כאשר. מפרקים אאת המערכת ליחידות, שואפים שהתלות בין היחידות השונות המרכיבות אותה. תהיה קטנח ככל האפשר. באופן וה, גדל הסיכוי ששינויים עתידיים שיתבצעו במערכת יהי מקומיים ופשוטים, וכך יפנע מתופעת המפולת [שינוי קטן שגורר אחריו שינויים רבים לכל. אורך מערכת התוכנה). פרק 4 : יצירת פרויקט, חלוקה מודולרית, תיעוד וסגנון = 65 . דונמאות ליחידות. > יחידה לטיפול בעכבר (מכילה את כל הפונקציות לתפעול העכבר). > יחידת פלטים (מכילה את כל הפונקציות הקשורות להצגת הפלטים של המערכת על. המסך: ציורים, חלונות, מסגרות וכו > וחידה להצגת תמונות ל/ו8 (מכילה את כל הפונקציות הנחוצות להצגת תמונה מסוג 88 על המסך). כל יחידה מורכבת משני חלקים . חלק אחד הוא המימוש (1686043600וח/) והחלק השנ. הוא הממשק (00676966. המימוש מכיל את הפונקציות המרכיבות את היחידת, ואיל הממשק מכיל את הגדרת הפונקציות והתיעוד בלבד. הסיבה לחלוקה 1 בין המימוש לבין הממשק נעוצה בעיקרון הסתרת המידע [חסוצפוחזם)הו, וק 8/99), הקובע כי ממשק היחידה צריך להכיל את המידע המינימלי הדרוש. להפעלתה, בעוד שכל שאר מרכיבי היחידה מופיעים בחלק המימוש ומוסתרים מהמשתמש. לרוב מערכת תוכנח מפותחת על ידי מספר מתכנתים, שכל אחד מהם אחראי על פותוח. יחידה מסוימת שצריכה לבצע פעולות מוגדרות. עיקרון הסתרת המידע מאפשר למתכנתים. השונים העובדים על פיתוח המערכת להשתמש ביחידות התוכנה שכתבו חבריהם לעבודה, מבלי שיצטרכו ללמוד ולהבין כיצד מומשו הפונקציות המרכיבות אותן. בשפת 6, מימוש היחידה נשמר בקובץ שהסיומת שלו בעל שם זה ובעל סיומת "ח." 068060 , וממשק היחידה נשמר בקובץ. את ממשק היחידה ניצור על ידי העתקת החלקים הבאים מקובי המימוש. > הגדרות מאקרו (. > הגדרות מבנים, איגודים וטיפוסים חדשים (46קן. > הגדרת משתנים גלובליים נללא אתחולס). + הצהרות הפונקציות (שעפטוטזק) ותיעודך בכל פרויקט צריכה להיות יחידת ראשית, שהיא היחידה שמופועה בה פונקציה בשס חגוח. יחידה זו מאחדת את כלל היחידות המרכיבות את הפרויקט. ליחידה הראשית אין צורך. ליצור קובץ ממשק. כדי שנוכל להשתמש בפונקציות של יחידה אחת ביחידה אחרת, עלינו לומן את היחידה. בעורת הפקודה 186066 בדיוק כפי שאנו מומנים את יחידות הספריה הסטנדרטיות. כ אם נרצה להשתמש במשתנה גלובלי שהוגדר ביחידה אחרת, עלונו לחכריו עליו בראש. התוכנית כמשתנה חיצוני, חזשאס. 6 שפת 6- נושאים מתקדמים = אם כותבים את שם היחידה בי סוגריים משולשים (< >), המהדר מחפש. |" = אותה בספריה וטו של המהדר. אם נכתוב את שם היחידה בין גרשיים. '), המהדר יחפש אותה בספריה הנוכחית שבה אנו מריצים את הפרויקט. שיימו לב! טעות נפוצה היא לכתוב את מערכת התוכנה בקובץ אחד וברגע שיא מוכנה. לחלק אותה ליחידות ספריה. כמעט כל מי שעושה זאת נתקל בסופו של דבר בקשיים בומן החלוקה ליחידות, ועליו לבצע שינויים רבים כדי שניתן יהיה לחלק את הקוד. לכן, חובה. לתכנן מראש אלו יחידות תהיינה בפרויקט, לכתוב כל פונקציה ישירות ביחידה. המתאימה, ולראות את מערכת התוכנה שבונים כפרויקט, כבר מתחילת התכנוו סכנת ה-90%0 <שם תווית> 90/9. = פקודה זו מקבילה לפקודה מוזן באסמבלי ומשמשת כמקפצה לתוויות. שונות לאורך התוכנית (הנמצאות לפני, או אחרי, פקודת הקפיצה). קפיצה ממקום למקום. בתוכנית סותרת את רעיון התכנות המבני ואת עקרונות החלוקה המודולרית ויוצרת קוד. ספגטי (6086 589%6%) מסורבל ובלתי קריא. אס נתכנן כראוי את הקוד, נוכל לחימנע לחלוטין מהשימוש בפקודה זו. במערכת התוכנה שנכתוב לא נשתמש בפקודה 909. יתרה. מכך, שימוש בפקודה זו עלול יילעלותיי לנבחנים בנקודות יקרות בציון שהבוחן מעניק. לעבודה. 2 הרכבת הפרויקט אחרי שהבנו כיצד לחלק את הקוד ליחידות, נלמד כיצד נחבר את היחידות לפרויק. הכנתי. כדונמה פרויקט המורכב משתי יחידות הנקראות 1!ו ו- 2חע ויחידה ראשית. "חוג)א. תוכן הקבצים נראה כך (הקבצים שמורים בתיקיה של פרק זה). בטצתט לא <ת.564:0> במטנסהג מ בתג ג 01 מטם פתז פתצגמםע //‏ ;(מ פת1 ,8 %ת1) מם טתצ / בט גת *א/ <ף.504:0> במטנסהגא (מ 185 ,8 %ה1) משפ ממצ מ 54 ב 05 תטפ ש3ף פתצנטם: // [ | (פ8%) מצגטםם / פרק > : יצירת פרויקט, חלוקה מודולרית, תיעוד וסגנון = 67 . .למ גחט אא <ם. 558:0> משטנםת4. 58פצסם מס א 251865 // ;( סת1) סהגעק 8צמט .לט גחט *פ <%.568:0> פממנסהגט (א 6ת1) שתגצע גמ ממצסם תם א פמתצצט // [ |( ")הצפק ו ₪ שמגמ לאד נמ 55810> משטנסת41, טמ" פשמנסהגט 62 צמט" ששטנסת41 (018?) תנממ גמ [ ((08)3,1פ) פה גצ ו שימו לב שלקובץ הראשי אין ממשק 0.). בקובץ הראשי השתמשנו בשתי הפונקציות. הכתובות ביחידות 1)חט ו- 2וחט ולכן, בראש הקוב קראנו לממשק של היחידות האלו. בדרך זו אנו קושרים את הממשק של היחידות אל הקוב הראשי, אך כיצד מקושר המימוש. 0 של שתי היחידות 8 שפת 6- נושאים מתקדמים כדי לקשר את המימוש של היחידות, עלינו לבצע אאת הפעולות הבאות. 1. נפתח פרויקט במחדר: תפריט ןטול > זה חטפס. > נבחר בשם לפרויקט עם סיוות ם. פרק 4 : יצירת פרויקט, חלוקה מודולרית, תיעוד וסגנון = 69 5 3 בתפריט 96 נבחר ב-חשוו 364. 5 כדי לחריץ את הפרויקט נלת 6//%9. 5% אם היקף הפרויקט גדול, רצוי שלפני לחיצת 671/69 נפתח את כל הקבצים. "= המרכיבים את הפרויקט ונלחץ בכל אחד מהם 9/+א. באופן זה אנו מהדרים. כל יחידה בנפרד לפני שאנו מקשרים ומריצים את הפרויקט כולו. כך אנ ים למנוע כשל בעת ההידור שיכול לנבוע מעומס שורות הקוד שהמהדר צריך לטפל בהן 6 שפת 6- נושאים מתקדמים . 9 כדי למנוע הידור חוזר של קבצי 6גי, נהוג לכתוב בראש ה-66גא הגדרת. "= קדם מהדר הכוללת את שם הקובץ לדוגמה. 0 וכך בכל הקבצים, בהם גרצה לזמן את ה-686, נוכל לבצע זימון מותנה. 0 6 0 3 מי אני ומה שמי? בומן כתיבת הקוד עליכם לזכור תמיד כי הקוד שאתם כותבים צריך להיות ברור וקריא. ככל האפשר לכל מתכנת שיקרא אותו. אחד הדברים המשפיעים ביותר על בחירות הקוד. (אף יותר מהתיעוד) הוא השמות שמעניקים למשתנים. אס תדעו לבחור בשמות משתנים. טובים ומשמעותיים, הקוד יייסביר את עצמו (6066 8חחשוחע606 //56) והמשתנים ישתלב. בקוד, כך שניתן יחיה לקרוא אותו בשטף ולחבינו ללא קושי. מהו שם טוב? + שם טוב חוא שם המרמו על התפקיד המלא של המשתנה ועל ההקשר שמשתמשים בו. + אל תפחדו להשתמש בשמות ארוכים המורכבים מצירופי מילים. כדי שחשם יסביר את. תפקידו המדויק של המשתנה, עלוו לחיות בדרך כלל בן שתיים עד שלוש מילים. לדונמה, שימוש במשתנה בשם "שוסוזיי לא מסביר מה הוא מונה ולכן נוסיף לשם זה. מילה נוספת שתתאר ואת. > לעולם אל תשתמשו בשם משתנה אחד לשני יעודים שונים. לכל משתנה צריך לחיות. תפקיד אחד מוגדר מראש. סגנון כתיבת השם קיימים סגנונות כתיבה רבים ושונים לכתיבת שמות. כל חברת תוכנה קובעת תקן כתיבה. משלה ומחייבת את העובדים וגס את הקבלנים שלח לפעול על פיהם. בהנחה שאינכס. עובדים כרגע בחברה שיש לה תקן מחייב, או שאתם כותבים פרויקט בבית ספר, במכללה. או באוניברסיטה, ולא חייבו אתכס לפעול על פי סטנדרטיים מסוימיס, אתם רשאים לבחור את הסגנון האחוב עליכס. אולס זכרו - עליכם להיות עקביים בכתיבת השמות בפרויקט: וש שלושה סגנונות עיקריים לכתיבת שמות. 1. כל מילח בשם מתחילה באות גדולה ושאר האותיות הן רגילות. לדוגמה. ו פרק 4 : יצירת פרויקט, חלוקה מודולרית, תיעוד וסגנון = 73 3. כל האותיות בשם יהיו רגילות והפרדה בין המילים בשס, מתבצעת על ידי קו תחתו ( ) הצמוד למילים. לדוגמה : 006005 6 חשח. 3. בתחילת השס מופיעה תחילית קצרה באותיות רגילות חמרמות על טיפוס המשתנה, ואחריה כל מילה בשס מתחילה באות גדולה. לדוגמה: 850/66016 כדי לציין מערך. תלמידים (01-4). משתנים גלובליים ולוקליים: השמרנים מבדילים בין משתנים גלובליים לבו משתנים. לוקליים או על ידי בחירת סגנון כתיבה שונה לכל אחד מהס, או על ידי הוספת סימן ויהו כמו 9 קטנה למני שם משתנח גלובלי. קבועים: נהוג לכתוב קבועים באותיות גדולות בלבד. בין המילים המרכיבות את הקבוע. כותבים קו תחתון (..). לדוגמה: 5126 56 406006. כדי להמחיש את חשיבות בחירת שמות המשתנים, הביטו בפונקציה הבאה ונסו להבין מה. היא מבצעת. (0036) [סמטף מתג א ,חס מחב ב (חת -> ת.[אן | 18 כ ת(שחי) משטססל אני מניח שחו ממי שכתב אותה, אף לא אחד יידע לנחש מה תפקידה של הפונקציה. עכשיר ראו עד כמה ברורה הפונקציה כאשר החלפתי את שמות המשתנים לשמות משמעותיים. (9038) 65ע3110לםתטמס מתב ( 4והנגת:בקכ1/ ,5סעטב1בקת0הטת פחב ( 5125 01858 -> 0430161814 )6ב1מ ( אתתון 2355 > %צגו. [4הנבתַעבק5 נמן18ת1מ1 | 18 חמ + 4גחנבסשמק טג (85עגו531ע0ת0ה) הטמל עכשיו הפונקציה הרבה יותר ברורת וקריאה, אבל יש בה עדיין דבר אחד שלא נהוג לעשות. נסו לחשוב מה לא בסדר בשמות המשתנים. 2 שפת 6- נושאים מתקדמים אני בטוח שרובכם לא הבחין בואת, אך חלק משמות המשתנים שבפונקציה כתובים. באנגלית וחלק כתובים בעברית (באותיות לועזיות). תופעה זו נפוצה מאוד אצל מתכנתים. וגם אצל תלמידים מתוך עצלות להיות עקביים. אס תראו את הפונקציה הזו למתכנת. מנוסה, הוא יבחין בואת מייד. לכן, השתדלו להיות עקביים! או אנגלית או עברית, ורצוי אנגלית. עס זאת, לעיתים אנו מעדיפים עברית בתעתיק לטיני, כדי שתחיה תאימות בו שמות המשתנים לבין כותרות דוח, או שמות שדות בטופס, למשל. במקרים אלה מותר לחרוג 4 תיעוד בנוסף לבחירה נכונה של שמות משתנים, דבר נוסף המשפיע על בחירות הקוד הוא התיעוד. שימו לב: בהמשך תמצאו הסבר כיצד כותבים תוכנית לפי הכללים שנלמדים. בבתי הספר. מבנה תוכנית זה חשוב כאשר מגישים עבודה. מבנה התוכנית כפי שנלמד בהמשך (הרווחים בין השורות, המסגרות וכו') אינו חשוב כלל להרצת. התוכנית ושלמותה. מהפרק הבא אנו נכתוב את התוכניות כפי שנהוג לכתובב בספרות המקצועית ולא לפי כללים אלה. (הערת ההוצאה). תיעוד מובנה בתוך הקוד מטרת התיעוד המובנה בתוך הקוד היא להסביר קטעי קוד שאינס מובנים מאליהם. העדות. מיותרות וסתמיות עלולות להזיק יותר מחוסר תיעוד, מכיון שכאשר אין תיעוד, המתכנת. צריך להבין מתוך הקוד מה קורה בתוכנית. תיעוד שגוי או מיותר עלול להטעות אותר ולגרום להנחות שגויות, או לבובוו זמן בניסיונות להבין את מטרת הערה (אם כתבו אותה. אולי מסתתר בקוד משהו שלא שמנו לב אליו...). לכן, נתעד רק קטעי קוד מסובכים, פקודות לא שגרתיות וחלקים לוגיים מרכויים. הערה צריכה להיות ברורה ותמציתית ככל האפשר. לפנו הערה יופיעו שני קווים אלכסונים. (/0, הערה המתייחסת לפקודה מסוינות תיכתב לצד הפקודה, והערה המתייחסת לקטע לוג (אוסף פקודות בעל תכלית משותפת) תיכתב בשורה שלפני. 2 שינמו לבז חשוב לתעד את הקוד במהלך כתיבתו. דחיית התיעוד יוצרת. "= תיעוד לא נאמן ולא מדויק. אם תכתבו את ההערות לאחר שתסיימו לכתוב. את הקוד, סביר שתשכחו למה התכוונתם כשכתבתם ביטויים מסוימים. לצערי, אני בטוח שלמרות הערה זו, רבים ידחו את התיעוד עד למועד שיחית פנאי לעשות. ואת, או עד שמנהל הפרויקט או חמורה ידרשו זאת... ראו הווהרתם, בסופו של דבר תבינו שלא כך צריך לנהוג. פרק 4 : יצירת פרויקט, חלוקה מודולרית, תיעוד וסגנון = 73 תיעוד פונקציות מטרת תיעוד הפונקציות היא להסביר למתכנת שלא כתב אותה, אך צריך להשתמש בה, מה. היא עושה וכיצד להשתמש בה. תיעוד הפונקציה חייב להכיל אאת החלקום הבאים. 1 תיאור הפונקציה: מה היא עושה, לשם מה, וכיצד חיא עושה זאות. 2. תיאור הפרמטרים שהפונקציה מקבלת. 3. תיאור הערך שהפונקציה מחוירה. אם מערכת התוכנה נכתבת על ידי יותר ממתכנת אחד, נהוג שכל מתכנת ששינה משה בפונקציה יוסיף שורה לתיעוד הפונקציה ובה יכתוב את שמו, את תאריך העדכון ותיאור. השינויים שביצע. נהוג להקיף את תועוד הפונקציה במסגרת כלשהי. לדוגמה. 400400ת מצכגם) 42:055ג0בב2 סבה מ פונקציה הבודקת האס כתובת מסוימת היא כתובת הבסיט של ה-עפכ. 4455595000 - הכתובת לבדיקה. "אמת" אס הכתובת שנבדקה היא אכן כתובת הבסיס על ה-8 ּ, ו ו ו ו ו 1 5 = הטרחה לכתוב את המסגרות השונות בדוגמה זו ובהמשך אינה עולה לפעמים "= בקנה אחד עם חיסכון בזמן ויעילות העבודה. מילוי המסך בשורות מסגרת. ורווחים אינו תמיד לתועלת הקדיאות של הקוד, אלא דווקא עלול לםרבל, כי צריך לחפש את הקוד בין שפע ה"קישוטים" שסביבו. עם זאת, במקומות. עבודה שונים ובבתי ספר, נהוג לעשות זאת. בהמשך נציג את הנוהג המקובל. בבתי ספר ובמכללות. עם זאת נאמר, שבכל מקרה חובה לעשות הפרדה. עניינית וסבירה בין קטעי קוד, קבוצות הוראות וכד', גם אם אין מגישים את. העבודה לבדיקת ראש צוות, מורה, או בוחן תיעוד קבצים בראש כל קובץ קוד יש לכתוב מסגרת המכילה את הנתונים הבאים. 1 שם הקובף. 2 תיאור הקובא. 3. הערות מיוחדות לגבי הקוב (אם ישו. 4 שפת 6- נושאים מתקדמים 9 צגא " / 0 0 4 ממשק ליחידה להשמעת קבלי קול מסוג אמט " 9 " /* הפרות 5 1) היחידה הבצע ויהו אוטומטי לברטים הקול ותמצא אפ בפובתו, - */ 9 6 ה-190 ואת פרוץ ה-אאם. " 9 2) היחידה תומכת בקבצי למא בפורמט 8 פלביות סתשא מטנררט " 9 הטיפול בהשמעח קבצי הקול מתבצע באמנעות פסיקות, לכן ההשמעה > * 9 לא הפריע למהלך ההוכגית + " נהוג לכתוב בראש הקובץ גם מי כתב אותו ויזה תאריך הקובץ הושלם. 5 מראה כללי הגורם השלישי המשפיע על בהירות הקוד הוא המראה של הקוד (הזחות, רווחים וכו טכניקת עבודה פשוטה תאפשר לנו לחלק את הקוד חלוקה לוגית. כך נוכל לצמצם את. העומס על עיני הקוראא, לעזור לו להתמקד בחלקים החשובים ולהשפוע בצורת ניכרת על. יכולת הקריאה השוטפת של הקוד. היכן להשאיר שורות רווח? > שורת רווח בין שורות 06 של יחידות הספריה הסטנדרטיות לבין שורות 6486 של היחידות שיצרנו בעצמנו. + שורת רווח בין שורות 6006חו לבין הגדרות המאקרו. > 2-3 שורות רווח בי פונקציה לפונקציה. > 1-2 שורות רווח בין הגדרת המשתנים לבין החלק הביצועי של הפונקציה. > שורת רווח למני כל קטע לוגי (אוסף פקודות בעל ות תכלות משותפת) בתוכנית. חים והזחות > לפני ואחרי אופרטור יש להשאיר רווח (למעט מקרים מועטים בהם זה ממש מפריש. > בכל שורה נכתוב פקודה אחרת בלבד (למעט הפקודה 5406 בה מותר לכתוב אשז בהמשך שורת הפקודה 6986. + בתנאים וביטויים מורכבים, נקיף כל פעולה בסוגריים (גס אם אין צורך טכני לעשות. את פרק 4 : יצירת פרויקט, חלוקה מודולרית, תיעוד וסגנון = 75 5 > יש להקפוד על הוח של שלושה רווחים ימינה בכל פקודה התלויה בפקודה הנמצאאת. לפניה (לדוגמה, הפקודות הנלוות לפקודה 6956 רז מסגרות הפרדה כדי לחלק את הקוב וליצור הפרדה בין ההצחרות, הפונקציות והפונקציה חראשית, נשלב. 7 0 צ א הר ורא 0 7 7 0 פונקציות 0 7 7 0 :גא 0 7 = מק עצב את המסוחת שחומ בטק זה טישו שמת רחב לשמ " על עקביות ואחידות לכל אורך הקוד. לדוגמה, אפשר לרווח ביו הלוכסנים (! /. )או לכתוב תוים + 665% וכד. במקרים רבים משתפשים בק מרוסק (0ק:. א שאי כוחבים את אחת משורות הלוכסנם דוגמה מסכמת הביטו בדוגמה הבאה המסכמת את כל מה שלמדנו בפרק וה. שימו לב לשורות הרוות, לרווחים, להזחות ולתועוד. נכתב על ידי מאה יצחקי בתאריך 5/2000 9 .גל , 0 ו 0 4 יחידה להלגת תפונות השמורות בפורמט פא , 0 , /+ הערות : 1) היחידה תציג על המסך כל תחונת לאמ האפורה כ-ישאם צבטים 256 = 0 בפורסט הסטנדרטי ל מחסשמגא. , 0 2) וחידה תומכת בצבע שקוף (פיקסל שהוגדר כעקוף לא יישתל על הפסך) *, 6 שפת 6- נושאים מתקדמים 7 0 אה רות 0 7 /%%+ הכרזה על פשתנים חיצוניים הנחוצים מהיחידה - 256אט ייד הברזה על מצביע המפך //, 2 גל פטל הצפצטה הכרזה פפריצת לוח הצבעים // ( [5111256[)3ל תנעל הצמיא ושומת תפונת שאמ לאט שמ [ רוחב התוגה / דר וב חתופה מ צתוגי התמוגה / מ06* מועל 7 0 פונקציות 0 7 (55ב1100?י צבהם | קבתוגלי םמלקחם סטצצם| לאמ.במה מה פונקציה הקוראת קובץ לאם לזיברו תוצמ" - וטומת שאם. 918855 - שמ הקוב ימונ פרק 4 : יצירת פרויקט, חלוקה מודולרית, תיעוד וסגנון = 77 . קפוץ 16 בפים דומה קרא את רוחב הפסונ קפוץ 2 בפים קרימ קרא את גובח הפסונ קפוץ 22 בפים דומה קרא את מספר הצבעים קפוץ 6 בפים דומה 7 / 0 0 / / ,/ 8 שפת 6- נושאים מתקדמים פחיחת קובץ ה-פאם 10 טע -- (('מ:',משמאנג")ת5קט? = קף)) שג [ | ("פתיחת קובץ ה-פאם נכטרה')56האם (9) אמטמ בריקה האפ זה קובץ לא תי 0/0 9 || ימדו )טפט ) 4 [ 0 ("הקובץ איגו קובץ לאם הקין") 6 הא ל קרט אפ הנפובים החטובים מהקובץ ////, |; (פנס 554% (מעט)05מצ3פ 016 )) אבפצ 500 )2 /(4שכא) 215506 ,אמאל קת בע8)בט א וטס 685%, (ממעס)2%5:5005/פ)) אבס 50 )1 ((4צסא)5505:ם 0מ3מתל קת בע:) במ |: (פנס 554% (מאעט)05מצ3ם220/+) אבפצ 900 1 ,(משמא) 51565 מ:סגבם הטת:) במ | (מנש 585 (מעט)306:.י6/ק)) אבמ פרק 5 מקלדות ומדפסות בפרק זה נעסוק במקלדת ובמדפסת. / נלמד לקרוא לחיצות על מקשים מיוחדים (מקשי החיצים, 1פ, 2 וכר). / נלמד לבדוק את מצב המקשים הדביקים (62051066, 106%וחטא וכרי. / נלמד לעקוב אחרי לחיצה ושחרור של מספר מקשים במקביל, / נלמד להדפיס את תוכן המסך במדפטת. / נלמד להדפיס מסמכים במדפסת. 1 5011 וקודים מורחבים 1 - 10060006 ההות 1 0006 106016 הפשאושוחא (תקך אמוריקאר טנדרטי. לחילופי מידע₪ הוא קוד מוסכס, שמקורו במכשירי הטלנרף הישנים ותפקידו לסמל כל תור במוספר. תקן 85611 המקורי הותאס לשבע סיביות והכיל 125 (2 בחוקת 7) תווים שונים. שערכס חיה בין אפס ל-127. המחשב משתמש בבתים של שמונה סיביות (שייקובולתסיי 256 ערכים שונים), ולכן הוחלט. להרחיב את הקוד ולהוסיף לו את הערכים 128 עד 255 הנקראים 6066 85611 06664 (אסקי מורחב). ערכים אלה כוללים בין השאר את תווי השפה המקומית (לדוגמה, בישראל. ערכים 128 - 15, מייצנים את האותיות העבריות אי-ת) ועוד סימנים שונים המשמשים. לציור מסגרות וקווים שונים. בזמן לחיצה על מקש במקלדת (או על שילוב מקשים), מוכנס לחוצ המקלדת ערך נא. של המקש, או של המקשים שנלחצו. כדי לשלוף את הערך מתוך החוצ, משתמשים. בפונקציות קלט, כגון: (966%. לעיתים נרצה לדעת בתוכנית האאם המשתמש לחץ על מקש כלשהו, ולא אאיכפת לנו/לו מהר המקש. אם נשתמש בפונקציה ()866%, ריצת התוכנית תעצור ותחכה שייקלט מקש כלשהו. לכן, אם נרצה שהתוכנית תמשיך לבצע משהו עד שיילחי המקש, נצטרך למצוא דר חלופית. הפתרון פשוט למדי: נבדוק האם חוצץ המקלדת ריק, או שיש בו ערך או ערכים. כלשהם. לשם כך נשתמש בפונקציית הספריה ()%ו98א. פונקציה זו אינה שולפת ערך. פרק 5 : מקלרות ומדפסות. = 79 מהחוצץ, אלא בודקת את תכולת החוצץ. הלא מחזירה י"אמתיי אם יש בו ערכים, ו אס הוא ריק. חביטו למשל בדוגמה זו !)= בנתש בל עוד לא יילחץ מקש תובן הלולאה יתבצע. 0 בסוף הלולאה הפעלתי את הפונקציה ()9616%, כיון שהפונקציה )8 לא שלפה את ערך. המקש שנלחץ. אם הייתי רוצה לדעת מהו ערך התו שנלחץ, הייתי פשוט מציב את הער שמחזירה (66%0 במשתנה מסוג ונת עד כאן הכל טוב ופשוט, הבעיה מתחילה כשנלחצים מקשים שלא הוגדר עבורם קוד 45011. לדונמה, מקשי החיצים או מקשי הפונקציה ‏ (51, 52 וכו'). עבור מקשים אלה הונדרר. 6065 א וסווחס6 - קודי מקשי בקרה. כאשר נלחןי מקש שאין לו ערך 85011, נדחפים. לחוצץ המקלדת שני ערכים בגודל בית (במקום ערך אחד בגודל בית המציין את קוד. ה-5611א), הערך הראשון הוא אפס והערך השני הוא ערך ה- 6066 שא וסווחפ. טבלאות קודי 8511 וקודי מקשי הבקרה (60865 /6א 091ח0)), מופיעות בנספח בי בספר זה. כדי לקלוט את ערכי מקשים אלה, נכתוב פונקציה בשם /66%6 הקולטת תו בעזרת ()6%ו96. אם ערך התו שנקלט הוא אפס (כלומר, נלחן מקש בקרה שאין לו קוד 45011), נפעיל שוב. את הפונקציה ()966% ונחציר את ערך קוד הבקרה (6066 86 (טשחס6) שלו. הפונקציה. מקבלת כמצבוע ערך שיהפוך לי"אמת" כשנלחץ מקש מורחב, וי"שקר" - כשנלחי מקש רגיל. הביטו בתוכנית הבאה המכילה פונקציה זו ומדנימה את השימוש בה. 5 שה שה (0065עף א 0םמכס* 6ה2) אמט שב [ 5 0 0 00 6 שפת 6- נושאים מתקדמים . מ הצפה גבל / 7 בגר ו )אי ו מק 5 כל עוד לא נלחץ מקש 5, התוכנית תדפיס על המסך את ערך התו שנלחץ. אם נלחץ מקש. מורחב תופיע האות ₪ לפני ערכו. השתמשתי ב- % כדי להדפיס את ערך התו, ולא את התור עצמו [ראו תרשים 1.3 בפרק ג חורו לקטע הקוד שנכתב בתחילת הסעיף (הלולאה המחכה ללחיצה על מקש כלשהו), נסר לחשוב איזו בעיה עלולה להתרתש א תשתמשו בו, וכיצד ניתן לפתור אותה. אם המשתמש ילח על מקש מורחב במקום על מקש רגיל, ייכנסו לחוצ שני ערכים, ריצת. הלולאה תיפסק והפונקציה ()966% תשלוף ערך אחד בלבד. אם תכתבו לולאה נוספת. אחריה, שתתבצע ג היא עד ללחיצת מקש, הלולאה לאא תתבצע כלל, כי הערך השני עדיו נמצא בחוצץ. כדי לפתור את הבעיה, נחליף את הפקודה ()066% בלולאה הבאה, השולפת. ערכים מהחוצ כל עוד הוא או ריק. )בצמ 0 2 בדיקת המקשים הדביקים יימקשים דביקים", חוא כינוי למקשי מקלדת הפועלים כמתג בעל שני מצבים (0%/0%5). 06% 6905, 1066 טא ו- 106% 50101. הכינוי ידביקים" נובע מכך שלחיצה עליה מחלופה. את מצבס מ-06% ל-א0% ולהיפך (אין צורך להמשיך וללחוצ עליהס כדי שערכס לא ישתנה). לחיצה על מקשים אלה איג מכניסה ערכים לחוצא. בנוסף למקשים הדביקים יש מקשים נוספים שלחיצה עליהם אינח מכניסה ערך לחוצ, לדוגמה, לחיצה על מקש 51/0 או על ום. אס המשתמש לוחץ על צירוף מקשים כגון 2+ יוכנס לחוצץ ערכו של התו '/6י, אך א הוא ילחץ מקש 50/6 בלבד, לא יוכנס. לחוצץ ערך כלשהו. למרות זאת, במשחקי מחשב רבים מקשים אלה משמשים כמקשי המשחק ותוכנות רבות. מתייחסות למצב שלהס. אם כך, כיצד עושים ואת פרק 5 : מקלרות ומדפסות = 1 כדי לבדוק את מצב מקשים אלח, נשתמש בפסיקה 16% עס פרמטר 2 באוגר 8%, נעשה ואת. בעורת הפונקציה 86וח, כפי שלמדנו בפרק 5. לאחר הפסיקה יכיל אוגר וג ערך בגודל בית. המציין את מצב המקשים, וכל סיבית מציינת את מצבו של אחד המקשים. אס המקש לחוף. או המקש הדביק מופעל (0%), ערך הסיבית המתאימה יחיה 'אחדי (2). הסיבית. המקש 0 |6מ5 ימר | 506 שמאלי 1 = > 0 9 0 5ף יי 56 הו ל 1 כדי לבדוק מקש רצוי מסוים, נשתמש בשיטת המסכות, כפי שלמדנו בפרק 2 , ייעבודה. התוכנית הבאה מדפיסה על המסך שלוש הודעות על מצבם של שלושת המקשים הדביקום. אם נלחץ על אחד מהמקשים הדביקים, ההודעה תשתנה בהתאם. התוכנית תסתיים. בלחיצה על מקש כלשחו (כל מקש מלבד השמונה שהווכרו בסעיף וה) ו אד שה שה בשה 2 שפת 6- נושאים מתקדמים . פרק 5 : מקלדות ומדפסות = 83 . 3 שילובי מקשי החיצים אם פעם שיחקתם במרוצי מכוניות, ודאי שמתס לב, שברוב המשחקים מסוג וה, "חצ למעלה'" מסמל את הגז, "חץ למטהי" מסמל נסיעה אחורה והחיצים לימין ולשמאל מסמלים. פניות ימינה ושמאלה בהתאמה. מסיבה זו, כשאתם משחקים במשחק ונוסעים קדימה., עליכם ללחו ללא הפסקה על "חצ למעלה", ובכל פנייה ללחו על החיצים למין ולשמאל. (בלי לעזוב את "חצ למעלהיי, כי אז תאבדו מהירות). בדוגמה זו יש חשיבות לשילובי המקשים הלחוצים ולשחרור מקשים מסוימים בומן שמקשים אחרים לחוצים. לא ניתן לעקוב אחרי כל זה בעורת הפונקציות שהכרנו בסעיף. הראשון, כי הן אינן מתייחסות לשחרור הלחיצה ולשילובי לחיצות (למעט שילובים. הכוללים /8%). לכן, הדרך בה נפתור את הבעיה תהיה על ידי פלישה לפסיקת המקלדת ו9. תחילה עלונו להכיר קבוצת קודים נוספת: קודי סריקה (0989 5680 שא לכל מקש במקלדת קיים קוד ויהוי (6986 עפא) בנודל 7 סיביות. בכל פעם שלוחצים א משחררים מקש במקלדת, הדרייבר של המקלדת שולח לפורט 200) 60% קוד בגודל שמונה. סיביות, אשר נקראא קוד סריקה (6966 5630 עשא). שבע הסיביות הראשונות של הקוד ה קוד הויחוי של המקש שנלחץ או שוחרר. הסיבית השמינית מסמלת את סוג הפעולה. שהתבצעה, היא מכילה 0 (אפס) כאשר המקש נלח, ו-1 - כאשר המקש שוחרר. אחרי שדרייבר המקלדת דוחף לפורט 60% את קוד הסריקה של האוירוע (הלחיצה א השחרור), הוא מפעיל את פסיקת המקלדת המבצעת פעולות אלו 1. קוראת מפורט וו60 את קוד הסריקה (כדי לדעת מהו המקש והאם הוא נלחץ א שוחרר). 2 אם קוד הסריקה מסמל לחיצה על מקש או לחיצה על צירוף מקשים המוגדרים. ברשימת קודי 85011 או קודי מקשי הבקרה, הקוד המתאים *יכנס לחוצ)ץ המקלדת. 3 אם נלחץ או שוחרר אחד משמונת המקשים המיוחדים (סעיף קודם), תוכנית הפסיקה. מרימה או מורידה את הדגל המתאים. + תוכנית הפסיקה מודיעה למוקלדת, שהלחיצה או השחרור ווהו בהצלחה על ידי שליחת. הערך 20% לפורט 208 במשך הזמן התברר ששבע סיביות אינן מספיקות לכל המקשים שבמקלדת, לכן הגדירר. קודי סריקה מורחבים (00665 563 66 8/160664). ברגע שנלחץי או משוחרר מקש שלא. קיים עבורו קוד סריקה רגיל (כמו למשל המקשים 78607 ו- 0%0פ20), דרייבר המקלדת. דוחף לפורט 60% את הערך 604 (224 עשרוני) ומפעיל את פסיקת המקלדת. הפיקה שולפת. את הקוד ומבינה כי נלחץ (או שוחרר) מקש מורחב, ומאשרת אאת שליפת קוד הסריקה. המורחב. ברגע שדרייבר המקלדת מקבל את האישור, הוא דוחף לפורט 60% את ערך הקוד. המורחב ומפעיל שוב את הפסיקה שמטפלת בו. סביר להניח שאוסף הקודים עלול כבר לבלבל, לכן נסכם מה שלמדנו. 4 שפת 6- נושאים מתקדמים רשימות הקודים מתחלקים לשתי קבוצות. .| קודי המקשים שדרייבר המקלדת שולח לפורט 60%. כל קוד מייצג מקש במקלדת. (לתו י' ולתו :יש אותו קוד, כי שניהס שייכים לאותו מקש במקלדת). קבוצה זו מתחלקת לשתי רשימות. 1.1 60665 5680 ע6 = קודי הסריקה של המקשים הבסיסיים. .1 60665 5680 66 666הפזאש = קודי הסריקה של המקשים המורחבים. לפני קוד מורחב נשלת לפורט 604 הערך 224. קודי התווים חנדחפים לחוצ המקלדת על ידי הפסיקה. הקוד מתייחס לתו עצמו, או למקש הבקרה, ולאו דווקא למקשים שוצרו אותו (לתו יג ולתו "יש קוד שונה). קבוצה זו מתחלקת לשלוש רשומות. 2.1 60665 511 = רשימת קודי 85611 של התווים הבסיסיים שערכם בין . לדג 2 60665 85011 6666 > הרשימה המורחבת של קודי 5611א. המיועדת לערכים 128 עד 256 (הכוללים בין השאר את תווי השפה. המקומית, עברית) 3 60865 עא 01ח60 = רשימת הקודים של מקשי הבקרה (חיצים, 22 מקשי הפונקציות ועוד). לפני קודים אלה נדחף לחוצןף המקלדת הערך. 5 את חמש הרשימות תוכלו למצוא בנספח ב' שבסוף הספר. נכון, וה קצת מורכב, וחבל שלא תכננו מראש רשימה אחת אחידה, אבל כשמבינים את. חלוקת הקודים בין הרשימות אפשר להתגבר על כ. עכשיו, לאחר הבנת תפקיד פסיקת המקלדת, נוכל לחצור לבעיה שלנו ולפתור אותח על יד כתיבת תוכנית שירות לפסיקה (150) משלנו, שתפלוש לתוכנית הפסיקה הקיימת ותדרוס. אותה בשלמותה או בחלקה. לפני שנעשה זאת, כדאי שנעיין בסעיף 3.4 שבפרק 3, שיש בר דוגמה המציגה יפלישהי אל פסיקת המקלדת. אם אינכס זוכרים אותה, רצוי שתקראו. אותה כעת שוב. בדוגמה זו החלפנו את תוכנית השירות המקורית של המקלדת בתוכנית. שירות משלנו, שהדפיסה על המסך כוכבית ואחר כך הפעילה את תוכנית השירות המקורית. שהועתקה אליה. כדי שהכוכבית לא תודפס פעמיים בכל הקשה (גם בלחיצה וגם בעטיבה) נעורנו בדגל. פרק 5 : מקלרות ומדפסות = 85 כדי לפתור את הבעיה של שילוב לחיצות במקשי החיצים, נפלוש לפסיקה זו ונכתוב תוכנית. שירות משלנו עבור הפסיקה שתבצע את הפעולות הבאות. 1. קראו את קוד הסריקה. 2. אם נלחץ אחד ממקשי החיצים - הרימו את הדגל המתאים. 3. אס שוחרר אחד ממקשי החיצים -- הורידו את הדגל המתאים. +. אם נלח או שוחרר מקש אחר (לא אחד מהחיצים)-- הפעילו את תוכנית השירות. המקורית (ולמעשה את הקוד המקורט. 5. אם לא נלחץ או שוחרר מקש אחר, אין טעם להפעיל את תוכנית השירות המקורית, כר כבר טיפלנו בלחיצה/שחרור ולכן נשלח לפורט ו291 את הער 204. ארבעת הדגלים יאוחסנו בארבע הסיביות הראשונות של משתנה גלובלו בשם 484ו5פטזו. גד חסיבית | = המקש 3 ש 1ף 5 גפ אפ 1ף " בצורה זו, לחיצח או שחרור של אחד ממקשי החיצים לא תשנה את דגליהם של שאר מקשיר החיצים, כך נדע בכל רגע איה מקשי חיצים לחוצים. אם תעיינו ברשימות שבנספח בי, תראו שמקשי החיצים שייכים לרשימת קודי הסריקה. המורחבים 60669 5630 66 94160666). כפי שכבר למדנר, בכל פעם שנלחץ (או משוחרר). מקש מורחב, הפסיקה מופעלת פעמיים (בפעם הראשונה בשביל לקלוט את הערך 224 ובפעם השנייה בשביל לקלוט את הערך המורחב). לכן, נוכל להתעלם מהעובדה שמקשר. החיצים שייכים לקודים המורחבים ופשוט לבדוק, האם הערך שבפורט 60% הוא אחד. מהערכים הבאים. משמעות 2 | לחוצה על ייחץ למעלה". | שחרור ייחץ למעלה" לחיצה על "חצ למטח". 8 | שחרור "חץ למטה" 7 || לחיצה על ייח ימינהי 6 שפת 6- נושאים מתקדמים | הקוד | משמעות. 95 | שחרור "חצ ימינהי 5 | לחיצה על ייח שמאלה" 3 | שחדור חן שמאלה- = 3 מקשי החיצים הרגילים ומקשי החיצים במקלדת הנומרית (6 א), כשמקש. חי כבוי, מחזירים אותם ערכי 65600066 התוכנית הבאה מדגימה את הפלישה לפסיקה ומציגה על המסך את מצבם של ארבעת. מקשי החיצים בכל רגע, עד שנלחץ מקש שאינו אחד מארבעת החיצים שימו לב: אם. לוחיצים או משחררים מקש חץ, ה-158 המקורי אינו מופעל, ערכו לא נכנס לחוצץ, ולכ לחיצח על אחד ממקשי החיצים לא תגרום ליציאה מהלולאה ורק תשנה את ההודעה. המתאימה על המסך. 0 2 ופמט 5935 4פמ גפחט 5מ4מקצ ב 5אסצאת מצע מצביע ל-19% המקורי //‏ נ()(25%נבהוטבז0י) מקבדדמאהג בצמ לגר 158 שקטדחס הג שגמ [ הפעל את ה-15% המקורי בפום ה-8%צ // אש הרואת ה-045ם הצממ ץשף //‏ :(46א0) מצצסהב - מצמ0הצטט אמש ברחץ חץ המלה 7 18/20 אין צורך להפטיל את ה-158 המקורי / פרק 5 : מקלדות ומדפסות. . אין צורך להפעיל את ה-288 המקורי אי צר ה-188 המקורר אין צורך להמטיל את ה-88: המקורי אין צורך להפעיל את ה-288 המקורי 4 את ה-188 המקורר אין צורך להפעיל את ה-288 המקורי אין צורך להמטיל את ה-88: המקורי 8 שפת 6- נושאים מתקדמים 0 7 / ,/ / , , 7 7 / 7 7 / ,/ 4 ) 0 45) ]--| פרק 5 : מקלדות ומדפסות = 89 4 02 5 ( )הא 35 עשח מ8בג | פממבא 00 + ה - 2 ב ו 460 בגה הי לסיכום: בשלושת הסעיפים האחרונים פתרנו שלוש בעיות שונות הקשורות למקלדת. הבעיה הראשונה נפתרה בעורת שימוש נכון בפונקציות הספריה, הבעיה השנייה נפתרה על. ידי שימוש בפסיקת ה-8105, והבעיה השלישית נפתרה על ידי כתיבת פסיקה חדשה. המחליפה את פסיקת הנוקלדת. בכל שהנענו לבעיה קשה יותר, גילינו שעלינו לרדת לרמה יותר נמוכה (פונקציות > הפעלת. פסיקה > יצירת פסיקה). ו הגישה שבה תיפגשו במהלך הלימוד בספר, וחשוב שתאמצר אותה. כשעומדת בפניכס בעיה, נסו לפתור אותה בעזרת פונקציות. אס אין פונקציה. מתאימה, חפשו פסיקה שתעוור לכס. אם הפסיקה המתאימה אינה מספיק טובח כדי לפתור את הבעיה שלכס, אל תפחדו לפלוש אליה, לתקן ולשנות אותה. בצורה זו תוכלו. לפתור כל בעיה שתרצו. 4 הדפסה ודאי תהיתם כיצד ניתן להדפיס (במדפסת, ולא על המסך) מתוך שפת 6. בסעיף וה נלמד. הדפסת המסך לעיתים נרצה להדפיס את תוכן המסך הנוכחי. כדי לעשות זאת, עלינו להפעיל את הפסיקה. 59 זוזל -5. נעשה ואת בעורת (0560ח/, כפי שלמדנו בפרק 3 0 וע 48 0 הצמ (05,41960/85990א0) 3586 שפת 6- נושאים מתקדמים הדפסה רגילה אם נרצה להדפיס דברים אחרים, כמו למשל את תוכנו של קוב טקסט כלשחו, נצטרך. להשתמש בשיטה אחרת. נעשה זאת בעזרת קוב הפלט חקו בכל פעם שתוכנית מופעלת, מוגדרים באופן אוטומטי חמישה רצפים, 06פטז> (מצבועים. לקבצי טקסט). אלה אינם קבצים אמיתיים, אך בתוכנית ניתן להתייחס אליהם כאילו חור קבצי טקסט רגילים, לכתוב או לקרוא מהם בעורת פונקציות הקריאה/כתיבה הרגילות. שם | | תיאור 060 = | 06/66 וטטחו 006306 = חוצף המקלדת. 0 | | 60965 וטטוס 1/0000 > הפלט למסך. 4 = | 06966 וטפוטס זסז6 51906916 - רשימת שגיאות התוכנית. > | 06/66 !וטג 6/ג6חפוי - הפלט לוציאת עור (60181), חזקופ ‏ | זשוחוזק 3/6חבו - הפלט למדפסת (1ע)) ניקח כדוגמה את ו80/>. בכל פעם שהתוכנית רוצה לכתוב משהו למסך, היא כותבת ות לייקובץ" 04 שר נכתב אל המסך. כדוגמה, ניקח פקודה זר "תו 1 היא שקולה לפקודה. ; ("מחדחת" , 86800%) 5ףמצצק? אם כך, כשנרצה לשלוח מחרוות למדפסת, עלינו לכתוב. ; ("מחדתת",86%) 5ףמצטקף המחרוות יכולה להכול את כל תווי הבקרה הרגילים (תרשים 1.4 בפרק 1), מלבד מספר. > הקבוע "ו" (מעבר שורה) בפלט המוצג על המסך גורם למעבר לתחילת השורה הבאה. במדפסת קבוע זה גורם למעבר שורה. כדי לעבור לתחילת השורה נשתמש בקבוע "ז" + כדי לקדם את הדף המודפס כדי שניתן יהיה להוציא אותו מהמדפסת בתוס ההדפסה. 996 וחזט%) כשתמש בקבוע "]'. > יש מדפסות המחייבות שבסיום כתיבת המחרוזות תיכתב מחרוות עס הקבוע ") כדי שהמדפסת תדע שכל ההוראות הסתיימו והיא יכולה להדפיס. + אס ההדפסה תהיה ארוכה מדף אחד, המדפסת תשחרר את הדף בסיום ההדפסה. ותמשיך להדפיס בדף חדש, באופן אוטומטי. + אם המדפסת אינה תומכת בגופנים צרובים בעברית, או בגופנים הנטענים אליה בדרך כלשהי, האותיות העבריות לא יודפסו כראוי. עיינו במפרט המדפסת שלכס כדי לדעת. אם היא תומכת בחם או לא. פרק 5 : מקלדות ומדפסות = 9 תוכנית דוגמה התוכנית הבאה מקבלת כפרמטר שם קובץ ומדפיסה אותו (אס אינכס זוכרים כוצד כותבים. תוכניות המקבלות פרמטרים, קראו את סעיף 1.3 בפרק 1). /שהבשק לפ שה (94 שננט) מהגשל בגב [ שפא (מפס 955 03/0 במ (" הס תבשק 40 בג [ ל 9 תגסל ([395%0* =ל: 575 מהג) הנפת שגמ [ (1 )48 [ ("פפרמטר הקובץ להדפסה חטרי) 5אמגאם 46 09 ("פגיש יוחר מדי פרמטרימי) 6מתגא ו ( ממטא == (("9:" [35%]1) השק = קש) ) 8ב לא ניתן לפתוח את הקובץ") שמתבאם 0 2 שפת 6- נושאים מתקדמים פרק 6 קבצים וספריות בפרק זה נעטוק בקבצים (1!69) ובספריות (186630₪465ם), הנקראות במערכות. 5ס6חו/ בשם תיקיות - 5ז5066. / נלמד לזהות את מאפייני הקוב).. / נלמד להציג רשימת קבצים על פי שאילתה כלשחי.. / נלמד לטיור בין הכוננים והספריות השונות.. / נלמד להעתיק, להעביר ולמחוק קבצים וספריות.. פרק זה מיועד לכל מי שרוצה לכתוב פרויקט בסגנון ז66חהוחוחס) חסףזס! או מערכת. סח בסיסיית. 1 מבנה המידע של הקובץ א!1/0 ביחידה הסטנדרטית א./6 מוגדר מבנה, אשר לתוכו מוכנס כל המידע חדרוש לנו אודות. קובץ או ספריה מסוימים. חמבנה נראה כ טשפב [ שמור על יז זו // נ[090066]21, 55 טממם תכונות הקובץ. /// 55 שממ זמו יצירת הקובץ. //. 5 תג תאריך יצירת הקובץ. //. 11 שג גודל הקובץ / 18 שם הקובץ // 0 [13]שתמת 55 שממ פרק 8 : קבצים וספריות = 93 . > השדה חצ ]0 מכיל ערך המסמל את מאפייני הקוב (פטטפוז815) על פי הטבלה. הבאח המוגדרת ב-%.665. קבוע תיאור צואספה א | קריאה בלבד אפסס1וא 8 | קוב נסתר. פדפצפ 88 | קוב מערכת. 1 8 | תווות. 6 | ספריה. אסא א | ארכוב תרטים 5 > השדה פוח! )), הוא משתנה בגודל 16 סיביות שבהן מקודד הומן בו נוצר הקובף. הומן מקודד כך. 0-4 = > ערך המייצג את השניות. 95-10 . ערך המייצג את הדקות. 15 - 011 : ערך המייצג את השעות. כדי לפענח את הצופן נוכל לכתוב פונקציה, לדוגמה. (8* מת1,מ* שת1,א* 11060046,106 5ה1) 008691 1סעט [ ששה | (11 << 93060066) > 58 דה | 5 ( 5 << 71060006) = אי שנייה / 2 015 8 13050066) > פ> אם הפונקציה אינה ברורה לכם, חזרו על פרק 2. + השדה 6806 6 הוא משתנה בגודל 16 סיביות, בהם מקודד התאריך בו נוצר הקובץ. התאריך מקודד כך 0-4 > ערך המייצג את היום. 5-8 > ערך המייצג את החודש. 09-15 . ערך המייצג את השנה מ-1980. 4 שפת 6- נושאים מתקדמים כדי לפרק את הצופן נוכל לכתוב פונקציה כגון הפונקציה הבאה. (צצי 9080486 6ת3,ספ* 36/36 5% 18%) פ606508%מע בס [ יום ו 0 > םל חודש // > (5 << 03080066 > וצה שה // /9100 (80 + ( :דא ₪ (9 << 060086ם) )) > צר 1 למשתנה ו הוספנו 80, כי הערך שבסיביות מייצג את השנה החל ב-1980, ולקחנו את. השארית של החלוקה במאה, כדי לתמוך בשנים שאחרי שנת 2000 (אחרת, בשנת 201 לדוגמה, התוצאה תהיה 21+80 = 201 במקוס 01 + השדה ₪26 ₪6 מכיל ערך המסמל את גודל הקוב בבתים. + השדה סוחפח ‏ 16 מכיל את שם הקוב (כולל חסיומת). 35 מבנה זה מתאים גם לספריות ולא רק לקבצים. במקרה שמוכנסים א; ".= מאפיני ספריה: השדה פוטוג 6 מכיל את ערך הקבוע 1466 ,%+, השדות. וט 6 ו 6.386 מכילים את זמן ותאריך יצירת הספריה, השדה 6.195% איג מכיל את גודל הספריה, והשדה חפ 6 מכיל את שם הספריה (ללא נקודה וסיומת, כי אין לספריה סיומתו. 2 נתיבים נתיב (תומק) הוא ביטוי המתאר מיקום של קובץ או של ספריה מסוימת. לדונמה. 0 צט 3 הנתיב מורכב מהחלקים הבאים. 1. שם הכונן - 606. בדוגמה שלנו :6 (כולל נקודתיים) 2 מיקום הספריה - זו4. בדוגמה שלנו י חופ 6ספזץ '" (בהתחלה ובסוף חייב להיות. לוכסן הפוך). 3. שם הקובץ - 80%6ח, בדוגמה שלנו "שאי סיומת הקובץ - זאפ. בדוגמה שלנו "%6פ.* (הנקודה משמאל שייכת לסיומת). 5 הנתיב לא חייב להכיל את כל ארבעת הרכיבים. אם הנתיב אינו כולל שם כוגן, מערכת ההפעלה מניחה שמדובר בכונן הנוכחי. אם הנתיב אינו כולל את. ו, מערכת ההפעלה מניחה שזו הספריה הנוכחית. יש הנבלה לאורך המקסימלי בתווים של כל אחת מהמחרוזות הללו. האורך המקסומלי. מוגדר בתוך הקבועים הבאים (המוגדרים ביח.₪1). תיאור קב עוך אורך מחרוות הנתיב אזוקצאא | 30 אורך מחרוות הכונן הפא | 3 אורך מחרוות הספריה. אאא | אורך מחרוות השם. אאא | 5 אורך מחרוות הסיומת. חפאאא | 5 תרטים 53 כדי לפרק נתיב למרכיביו השונים נשתמש בפונקציה 509186 המוגדרת כך. שבתס ,%418 צג| הפונקציה מקבלת את הפרמטרים האלה. הו - הנתיב שאנו רוצים לפרק. 6 - מחרוות שלתוכה יוכנס שס הכונן. 16נפפתת פתג 6% - מחרוות שלתוכה יוכנס מיקוס ושם הספריה. 6 - מחרוות שלתוכה יוכנס שם הקובף. =- מחרוות שלתוכה תוכנס סיומת הקובף. הפונקציה מחזירה משתנה מסוג שפוחו המציין איה מרכיבים נמצאאים בנתיב. כדי לבדוק. מאפיין כלשהו עלינו לבצע פעולת סו/8 בין ערך זה לבין המסכה המתאימה. אם התוצאה. היא אמת, המרכיב המתאים נמצא בנתיב. המסכות שמורות בקבועים הבאים. מסכה שבעזרתה נדע אם: קיים כונן בנתוב. קיים שם קובץ בנתוב. תרטים 53 . שפת 6 - נושאים מתקדמים. קבוע ףצ ב ב פד ב אס נרצה להרכיב נתיב בעורת המחרוזות של מרכיביו השונים, נשתמש בפונקציה 6696חח. שמעולתה הפוכה לזו של הפונקציה אקו!. הפונקציה מוגדרת כך. שגמ ,418* צבתם ,106:ם* עבתם ,ממבק* עבתם א 0 7 9 חלק מהמחרוזות שמהן הפונקציה מרכיבה את הנתיב עשויות להיות ריקות. 3 כוננים מציאת הכונן הנוכחי (התורן) כדי לגלות מהו הכונן הנוכחי, נשתמש בפונקציה א868 המוגדרת כך. 0 הפונקציה מחזירה ערך המציין את מספר הכונן הנוכחי (ט = א, אות הכונן, נוסיף לערך זה את ערך ה-5011א של התו ג. 8 כדי להצוג את. מעבר לכונן אחר בדי לעבור מחכונן הנוכחי לכונן אחר, נשתמש בפונקציה 864686 המוגדרת כך (351%8 1%) מם הפונקציה מקבלת ערך המציין את מספר הכונן שאליו אנו רוצים לעבור (0 =. הפונקציה מחזירה ערך המציין את ערך הכונן האחרון במחשב. 4 ספריות מעבר לספריה אחרת. הפקודה כ6 ((60400 86מ%:) של 005 מאפשרת לעבור מספריה לספריה. בסעוף זה נבנה. תוכנית שתפעל כמו פקודת ז. כדי לעבור מספריה לספריה, נשתמש בפונקציה ז6%61 המוגדרת כך 5 6פחמם) צ81ת0 16 הפרמטר 06 הוא מחרוות הוה למחרוות 6 שהכרנו בסעיף 6.2. פרק 8 : קבצים וספריות = 97 > כדי לעבור לספריה שנמצאת בתוך הספריה הנוכחית, המחרוות צריכה להכיל את. הנתיב שבין הספריה הנוכחית אל הספריה המבוקשת. לדוגמה, אס אנו נמצאים. בספריית חשורש ורוצים לעבור לספריה ופ שבספריה 66טז% שנמצאת בספריית. השורש, המחרוזת ₪ תיראה כך: "חומשטפזו" (ניתן להוסיף לוכסן הפוך בסוף. המחרוזת אך אן זו חובה). > כדי לעבור לספריה הנמצאת רמה אחת מתחת לספריה הנוכחית, המחרוות צריכה. לחכיל שתי נקודות: ".> + כדי לחוור לספריית השורט, המחרוות צריכה להכיל לוכסן הפוך בלבד: יו" > כדי לעבור לספריה שאינה נמצאת בתוך הספריה הנוכחית, המחרוות צריכה להכיל את. נתיב הספריה המלא, כשהוא מתחיל בלוכסן הפוך, כלומר, נובע מספריית השורש. לדונמה, אס נמצאיס בספריה פאוט6או/ ורוצים לעבור לספריה חופ, המחרוזת צריכה. לחיות "חומ |6ספוט ". הערך המוחזר יהיה "פיי אם המעבר התבצע בהצלחה, וערכו יחיה. אם המעבר נכשל. אס נרצח לחקות את הפקודה 60 של 005 נוכל לכתוב תוכנית כו 0 א 4 הג ([3000' =בה- |שצ: שהג) הנשה שגמ ו )0 שימו לב שהתוכנית מקבלת ברמטרים (כפי שלמדנו בפרק 1). לאחר שנוצור תוכנית ביצוע (%6פ) נוכל להשתמש בח כמו שהיינו נוהגים בפקודה 6 רנילה. יצירת ספריה חדשה כדי ליצור ספריה חדשה נשתממש בפונקציה זו₪84 שהגדרתה נראזית כך. 3 מ 55חסם) צ41אה מתג פונקציה זו וחה במבנה לפונקציה 666 שהוסברה בסעיף קודם. ה] כתבו תוכנית שתחקה את הפקודה פוו (חפושוום 6) של 5ספ. 8 שפת 6- נושאים מתקדמים מחיקת ספריה כדי למחוק ספריה נשתמש בפונקציה זוז שהגדרתה נראית כך נ(3%5* צמתם ספחסם) צגבאח סחג פונקציה זו זהח במבנה לפונקציה ₪6 שהוסברה בסעיף קודס. מגבלות: 1. הספריה צריכה להיות ריקה מקבצום. 2. ספריה זו אינה יכולה להיות הספריה הנוכחית. 3. ספריה זו אינה יכולה לחיות ספריית השורש. מּ כתבו תוכנית שתחקה את הפקודה פמט ומחשאוטל פס קליטת נתיב הספריה הנוכחי (התורן) כדי לקלוט את הנתיב הנוכחי בכונן הנוכחי, נשתמש בפונקציה 86906 המוגדרת כ 15 1% ,תספםי צבמם + שי שמת הנתיב הנוכחי יכנס למחרוות תומ הפרמטר חש!%!א מצליך את אורך המחרוות ו הערך המוחור יהיה ₪044 במקרה והביצוע נכשל, או מצביע ל-8% בהצלחה. כדי לקלוט את הנתיב התורן בכונן שאאינו הכונן התורן נשתמש בפונקציה ז0690081. המוגדרת כך. 6 3 הפרמטר 68/6 הוא ערך הכונן, שאת הנתיב התורן בו אנחנו מחפשים. הפרמטר 66 הוא מחרוות הוה למחרוות 6 שהכרנו בסעיף 6.2. הערך המוחור יהיה אפס בהצלחה, ו-2-' בכישלון. פרק 8 : קבצים וספריות = 9 . 5 קבצים בתחילת הפרק הכרנו את מבנה המידע על הקוב !ו בסעיף וה נלמד למצוא קוב אר קבצים מסוימים בספריה הנוכחית ולקבל את תוכן 18 שלהס. החיפוש יתבצע על פי הנתיב שנגדיר. הנתיב יחיה בנוי כמו שלמדנו בסעיף 6.2. מותר שיחיר. בו תווי ההכללה '"' או יז כדי למצוא את הקובץ הראשון בספריה הנוכחית שמתאים לנתיב הרצוי, נשתמש בפונקציה. 1% המוגדרת כך. סב 5) מז א1ם]: מסטע0ם ,לבק עבתם ספחסם) 1:56 ה1: מתב הפרמטר ופ יכלול את פירוט הנתיב המבוקש. הפרמטר ט! יכלול את כתובת מבנה המידע של הקובץ (הפונקציה תמלא בעצמה את הערכים. בתוך המבנה) הפרמטר זא יכלול את המאפיינים של הקוב או של הקבצים שאנו מחפשים, על פי חטבלה. שבתרשים 6.1. אם אין מאפיונים מיוחדים, נרשום. יי אס לא נמצא. הערך המוחור יהיה אפס, אס נמצא קוב התואס את הנתיב, נניח לדוגמה, שברצוננו למצוא את הקובץ הראשון שמתחיל באות /%, ובכלל זה קבצים. מוסתרים וקבצי מערכת. הפקודה המתאימה לעשות ואת תיראאה כך. 2 ,"*.%םבאם8תבאנם" )96ע881ה1ת ואפ ןומא א בחיפוש רגיל, קבצים מוסתרים וקבצי מערכת אינם מוצגים. על כן, בפרמטר המאפיונים. כתבנו שהקובץ שאנו מחפשים עשוי להיות גם מוסתר או קוב מערכת. כדי למצוא את הקוב הבא התואאס את הנתיב, נשתמש בפונקציה אשח6ח! המוגדרת כך. (( מ* 16סת: סנס ) מאשחטה1? מתג הפונקציה תחזיר. אס לא י אס נמצא קובץ נוסף התואם את חנתוב ו- אס כך, כדי למצוא את כל הקבצים התואמים נתיב מסוים, נבצע את הפעולות האל 1. נחפט את הקובץ הראשון התואם את הנתיב. 2 כלעוד נמצא קובץ התואם את הנתיב, נחפש את הקוב הבא התואם את הנתיב. שפת 6- נושאים מתקדמים. 6 חיקוי הפקודה 18ם רובנו מכיריס את פקודת 005 להצגת רשימת קבצים, הפקודה 18פ. למי ששכחו, ולאלה. שדילגו על עידן מערכת ההפעלה 05פ, מוקדשות מילים אלו. הפקודה 018 מאפשרת להצוג על פי מסכה כלשהי, רשימח של קבצים וספריות הנמצאים בתוך ספריה מסוימת. לצד כל קוב מופיעים גודלו והתאריך והשעה בה נוצר. לדוגמה. 6 פקודה זו מציגה על המסך את כל הקבצים שבספריה הנוכחית ששמס מתחיל באות 8 (התנ. > הוא תו הכללה, המציין מספר כלעהו של תווים כלשהם, לאחר האות 3 במקרה הו והסיומת שלהס היא 6. בסעיף וח נלמד להכין פקודה כו בעצמנו: הערות: > לפני הצגת רשימת הקבצים התואמים את הנתיב והנוסכה, הפקודה 018 מציגה על. המסך גם את רשימת הספריות הנמצאות בנתיב זה. כדי לחקות ואת, לפני הצנת. רשימת הקבצים, הצגנו את רשימת הפונקציות על ידי כך שבפרמטר טוא הגדרנר ספריה. אך, אס נבצע חיפוש של ספריה על פי מסכה של קובץ (י), החיפוש ייכשלו כדי לפתור את הבעיה, השתמשנו בפקודה לפירוק הנתיב לרכיביו השונים. הרכבנר נתיב הוהת לנתיב המקורי בכל חלקיו מלבד מחרוזת שם הקובץ, שהוגדרה כ-""" (כדר שיוצגו כל הספריות), ומחרוזת הסיומת שהוגדרה כמחרוזת ריקה. + אס יוכנסו בהרצת התוכנית ארגומנטים מיותרים. המבנה החוקי של הפקודה. היא תודיע על בעיח ותצוג את. + אס בהרצת התוכנית לא יוכנס ארגומנט המייצג נתיב, היא תתייחס לוה כאילו הוכנס. ותציג את כל הקבצים שבספריה הנוכחית. א אי (צל שה3 אא מה:, 0" שהב 0228ממבם לםג) בצב/מ.ממקם שגמ [ /, יפ = מס ו 40 [5 << סטמ שה // 910000 (90 + ( לאמ 4 (9 << משמסמטטם) 4 פרק 6 : קבצים וספריות = 101 (95 הג אי שה1 99 הב א0ס0שה1? מה:) ממבלמנבטטם בגב ו - 4 (ב1 << שכ0פתפם) 7 גל ו 5 חנ שוח תג ([)%פמי בלש ספב שה1) הצמה אתב ו בלוץ מידט על קבט (0%פ81)ה1-נבץ 4018 אשטצו ודל הקבצים ‏ 033834700 המב [ או 56, (בצפ ממפה, [8צסצגא) 44 [פובהסגםא/ 53 פמ אנא בד שב שרגומנטים /// ה ו "א [אבל| 445עח 3 פמט )8 הגאק וי [ אס תבה 445 שא1ש8 [36)1ב) צנקמת / 845/07 מש ה בקד:3) מַהמאא דצ על הספריו ]11 (0 מ 4111 )802 = שממ פו) גגה ו (086,04 ,800 4558 4281008ת1ם ?)מס [44,0,05,ם:ט) 05%נ2ב)ה181ב?)שת3 למס :(ממצת 0%םנממַהננגת לכענם> ‏ 5בב-%י)5 הבא א 0 65 3028/02/002 = *)שטתבאק 0 = *)5תבאק 9 ) 5אשתה ג 96 אין ארגומנט נוסף הצג את כל הקבצים / ובא 4 דמצ בע | סמ תע ‏ מנסמא אק 08נמה2נג/ "א הג 408156%ה:47318 ו [1]-35) 545גקבה ג ומצמצ אע מממתנא תע צנאסטת א 2 שפת 6- נושאים מתקדמים. ו / פפרת הקבצי / 0 וב הגודל הפצמב // הנב הל מ5815ם 08,093 400 656, 3210652568 000 (08,05 ,48 מ-גס) מ28106+ה1ם2:? שתמל. פס פם 3 100%פ0:ה:מ1ב? ‏ משצה 8106כ,ה1-גצ? 'שב7 25ב ) הגמ 0/0 ")תצק פמק מציאת הקובץ הבא // נ(ש5100ם%ה1-נב/4) אשמאהב? - חמ ו ,"המעט ג (5)בב %4 -‏ ") פשפבמק ל תוצאה לדוגמה. ו <פזס: ה 0 0 0 1 1 אם ברצונכם לוצור תוכנה כדוגמת ז066וחטס חפוחס), מומלף שתבנו רשימה מקושרת של. רשומת א/8!. בכל מעבר לספריה עליכם לאתחל את הרשימה במבנים של כל הקבצים. שבספריה הנוכחית. בצורה זו תוכלו להצוג על המסך את הקבצים כשהם ממוונים על פר שם, תאריך או סוג (סיומת). בנוסף עליכס להגדיר שני מצביעים שאחד מהם יצביע לרשומה. פרק ₪ : קבצים וספריות = 103 . + 5 5 העליונה ביותר המוצגת על המסך ואחד - אל התחתונה. בכל פעם שהמשתמש יגלול את. רשימת הקבצים, עליכם להזיו את שני המצביעים ולעדכן את התצונה שבמסך. דוגמה לשימוש ברשימח מקושרת, תוכלו למצוא בפרק 42 העוסק באנימציה. 7 העתקת קבצים בדי להעתיק קוב 6901 עלוב ג. לפפוח את קובץ המקור לקריאה. 3 למתוח את קוב הועד לכתיבה 3. לקרוא בית מקובץ המקור לבתוב בית לקוב) היעד בלעוד לא חגעתם לסוף קוב הפקור, עליכם לבצע סעופים ‏ עד 5 שוב ושוב לסגור את שני הקבצים. האלגוריתם הבא מדמה את הפקודת 6 של 05ם. סש יי > הג הג לפ הציפ שממנרמום (065סם0צעם 10%) שמצצם בגב )טב ו 5 ("ה.25309נח 15 11: מ0מ0ם ) 5הנשק וב מצם -- ("ה-530 גח 45 418, ספאב )הנטק -- ("מ.5:פטממצסמק עבת בספ )הגס פפצם | ("ה.815קמצ משףג 115 ב עקסם מ הבס ),םהגסק פפש (('ה %טטטם שם+ 416: מססטט: השקם מ הבס ) הנטק פפפ ‏ (("ה פמקה: = 5416 מקאבל הסקם מ הבס ),מהגסק ו 0 7 4 שפת 6- נושאים מתקדמים. ([%0חמי שבלה (ממב שהג) הצמה שגמ ו פוספר קובץ המקור אפר // אא 4 יי פרמטר קובץ היער חמר / 0 4ב 0 יש יופר מדי פהמטרים / יי 0 קובץ המקור וקובץ היעד זהים //‏ (([352%)2 [%1::ּ)קממכוםו) 4ב וי (("פצ" [3]%פפה) משקס מ ו ((לפא, [89%)2מ) השקל = מפסטבט) ) 4ב וצ פגקכס פַהגמט 45 9418 | ש6הגמק )200 ) בצמה / 0-ה 0 םמשל ו 0 ("ה5580119מססטם 4שגקכס 5גבא | >מגטק נסו להוסיף לתוכנית פס התקדמות (זפ בוטו 1 4 רמז: קפצו לסוף הקובץ ושמרו את המיקום. בתוך הלולאה בדקו את היחס. שבין המיקום הנוכחי לבין סוף הקובץ, ומלאו את פס ההתקדמות בהתאם. נסו לכתוב פונקציה, שתעתיק את כל הקבצים המתאימים שבספריה למסכה. כלשה, רמז: היעזרו בתוכנית>6פווח. במקום להדפיס את המידע על הקובץ, שלחו את. הנתיב שלו אל פונקציה שתבצע העתקה. פרק 8 : קבצים וספריות = 105 כתבו תוכנית שתעתיק ספריה שלמה (שעשויים להיות בה גם תת-ספריותו. רמז: עליכם לפתוח ספריה חדשה במקום היעד הרצוי,ואז להפעיל את. הפונקציה להעתקת קבצים על פי המסכה המבוקשת. כאשר תגיעו אל ספריה, הפעילו שוב את הפונקציה החיצונית (בצורה רקורסיבית). 8 מחיקת קבצים מחיקת קוב 91%0) מתבצעת בעורת הפונקציה וח המוגדרת כך 035) %ה13תט מתג הפונקציה מקבלת כפרמטר את נתיב הקוב המיועד למחיקה, ומחזירה "0", אם המחיקה. התבצעה בהצלחה ו-1- בעת כישלון. התוכנית הבאה מחקה את הפקודה וס של 05ם. ל [065מםמצקם 10%) שמצצם בגב ו א ו "מ.048154מקט =41: כא')55הנסק וב שצם ("מ-55םטממצסמק עחבח בספ")58הגטק | ("ה 5416 השק > תמש )058גסק ("ה.2118 שממש מ ת55)'05 הנמת :4 הצאה ו 0 7 ([00ספ' =מל= |שצ. שהג) הגצה שגמ ו 6 שפת 6- נושאים מתקדמים. א צויף הקובץ למחיקה // 09 4 0 יפ ו ג ה = (("פופ, [9911ג) מפקט? = שף) ) 4ב ה [מ 9855 0 ,)אבצ ברל הקוב 1 = מפצ סמל חיט הקוב ((11פס5) אמבגתט) 6 יי ( מ םה ל ו נסו לכתוב תוכנית שתעביר (הפקודה 6אפוח) קובץ מספריה לספריה. ? 8 רמז: ההעברה תתבצע על ידי העתקת הקובץ אל מקום היעד ומחיקת הקובץ. המקורי. כלומר, לפנינו שתי פעולות. נסו לכתוב תוכנית שתמחק ספריה שלמה (ייתכן שבתוכה יש עוד תת-ספריותו. ]] 7‏ רמז: עליכם למחוק את כל הקבצים שבתוך הספריה, לפני שתוכלו להסיר את. הספריה. אם בעת מחיקת קבצים אתם מגיעים לספריה, עליכם להפעיל שוב את הפונקציה החיצונית (בצורה רקורסיבית). פרק 8 : קבצים וספריות = 107 פרק 7 מסכי טקסט בפרק זה נעסוק במסך, כשהוא מוגדר במצב טקסט (י"מוד טקסטי). / נלמד להשתמש בצבעים. / גלמד להעתיק קטעי טקסט, / נלמד לקבוע את מיקום וצורת הסמןן. / נלמד כוצד לגלול את תוכן המסך (56010/08), / נלמד לכתוב ולקרוא ישירות מחוצץ המסך.. 1 צבעים מוד טקסט 8066 664) הוא המצב הסטנדרטי, או ברירת המחדל, לריצת התוכנית שלנו (בפרק 5 נכיר מצב פעולח נוסף). מוד זה מאפשר לכתוב על המסך תווי 85011 בלבד, ברוולוציה של 25480 וב-14 צבעים שונים. הקבוע | ערך | תואור היד שחור. רו חול ד ] ירוק ב אדו הד סגול ם 1 ה וס | 3 | טורקיר + 5 ב 1616 | 7 | אפור בחור הט | 5 | אפור כהה. 8 | 9 | תכלת 160016889 | 19 | ירוק בחיר 16 | 21 | טורקוו בחיר. פרק ל : מסכי טקסט 109 הקבוע | ערך | תיאור פאזוט | 2 | ורוד 16/1460 | -25. | סגול בחיר. 0 | 14 | צהובב אדו | 25 | לב 81 | 128 | הבהוב. כדי לבחור את הצבע לכתיבה על הנוסך נשתמש בפונקציית הספריה ()4560108ט, ונשלח. לה את אחד מהערכים (או הקבועים) שבטבלה. אם נרצה שהטקסט יהבהב, נוסוף 128 לערך. המספרי של הצבע. לדוגמה, בחירת צבע צהוב מהבהב, תיראה כך. 14128 0501 אוכך 0 ו כדי לבחור את צבע הרקע לטקסט נשתמש בפונקציית הספריה ()49864106אפ8, ונשלח. לה את אחד משמונת הצבעים הראשונים שבטבלה (לא ניתן לבחור כרקע צבעים 8-15 וגם. לא רקע מהבהב). כדי לכתוב על המסך במאפיוני הצבע והרקע שבחרנו, נשתמש בפונקציות הספריה. ()שחוזקס - ()3ק6 המקבילות לפונקציות (ח0ק ו- ():)פ, מלבד העובדה שהן תומכות. בצבעים שנבחרו בעזרת )91000 ו- וט 2 מחיקות + כדי למחוק את תוכן המסך נשתמש בפונקציית הספריה ()6%, + כדי למחוק את הטקסט שבהמשך השורה הנוכחית (ממיקום הסמן עד סוף השורה בה. הסמן נמצא), נשתמש בפונקציית הספריה ()₪1809%. שתי פונקציות אלו, יצבעו את הרקע של האזור המיועד למחיקה על פי צבע. "7 = הרקע האחרון, שנבחר בעזרת ()6 019660 3 חלונות ניתן להגדיר חלונות טקסט בעורת פונקציית הספריה (0004ו/א, המקבלת את מיקום. הפינה השמאלית עליונה ומיקום הפינה הימנית תחתונה. לדוגמה. 1 03 85,910 :0פם10, 220 6 שפת 6- נושאים מתקדמים. ברגע שהגדרנו חלון טקסט, התוכנית תתייחס לאזור החלון כאזור המסך, ולגבולות החלון כגבולות המסך. אם לדוגמה נפעיל את הפונקציה (804ו6 לאחר הנדרת החלון, לא יימחק. תוכנו של כל המסך, אלא רק תוכנו של החלון שהגדרנו. גם אם נכתוב בעזרת אחת. מפונקציות הפלט לאחר הגדרת החלון, הטקסט ייכתב בתחומי החלון בלבד וירידת שורה. תגרום לירידת שורה בתחום החלון. כדי לחזור לאזור המסך המקורי יהי עלונו להגדיר חלון טקסט בגודל המסך 2 4 העתקה והזזה של מלבן טקסט קיימות פונקציות ספריח להעתקה ווה של מלבן טקסט. בעזרת הפונקציות ניתן לשמור בחוצ את תוכנו של אזור מלבני במסך, או לטעון לאזור מלבני במסך את התוכן של חוצו. המונח יימלבן טקסטי" ממחיש את העובדה שמדובר באדור מלבני (בהמשך נלמד כוצד. לשמור תוכן של אזור שאינו מלבני, גם כדי ליצור הבחנה בינו לבין חלונות טקסט, כל העתקה והדבקה של תוכן אזור מלבני מסוים אינה מגדירה אותו כחלון טקסט. פונקציית הספריה ()964%684 משמשת לשמירת תוכנ של מלבן טקסט בחוצ זיכרון הפונקציה מוגדרת כך 0016 5 + %ה500,1 1656,18% צה5)1א0ם. הפונקציה מקבלת את מיקום הפינה השמאלית עליונה, הפינה הימנית תחתונה, ומצביע. לחוצץ שבו יישמר תוכן המלבן. הפונקציה מחירה "את" בהצלחה ויישקריי בכישלון. פונקציית הספריה ()ףאפפוצק משמשת להדבקת תוכנו של מלבן טקסט השמור בחוצף. זיכרון. הפונקציה מוגדרת כך (0ע5* 018 הססססם מתב,טה ₪ 500,386 1658,386 סת1)סאססמטם סמ1 הפונקציה מקבלת את מיקום הפינה השמאלית עליונה, הפינה הימנית תחתונה, ומצביע. לחוצץ שממנו נקרא תוכן המלבן. הפונקציה מחזירה י"אמתיי בהצלחה "קרי בכישלון 9= גודל חוצץ הזיכרון צריך להיות כפול משטח המלבן (כי בנוסף לטקסט. "7" = = נשמרים גם מאפייני הצבע של כל תו במלבן) לדוגמו הפקודות לשממירח ולשתזור של תוכן מסך חן. 2 שמירת תוכן המ מחיקת תוכן המ שחזוד תוכן המ נ[4080] 868ע50 עבמ (1,90,25,509868, 1 ל (868צ1,1,80,25,50) 504 סט פרק ? : מסכי טקסט 111 9 אם אתם תוהים מדוע צריך לשמור ולשחזר אאת תוכן המסך, הנה מספר דוגמאות למקרים. שהדבר נחוא. > נניח שבתוכנית יש תפריט בראאש המסך (למשל, כמו התפריט ב-016), וכשלוחצים על. אחת מהמילים הכלולות בו, נפתחת רשימת הפעולות שניתן לבצע בעזרתו. ברגע שנפתחת הרשימה, הלא מסתירה את תוכן המסך. לכן, כדי שניתן יהיה לשחזר את. המסך, צריך לשמור אותו לפני פתיחת הרשימה, ובתוס השימוש ברשימה צריך להחזיר את המסך השמור, וכך הרשימה תיסגר. > דוגמה נוספת, ייתיבת כך/לאיי ("אטט 6א/65"). תיבה זו מופיעה במרכז המסך ברג שהמשתמש בוחר בפעולה מסוימת, והיא מכילה את הלחצנים יכן" ולא" ננח. לדונמה, שכאשר המשתמש בוחר לצאת מהתוכנית מופיעה תיבה, שעליו לענות בה אם. הוא בטוח שברצונו לצאת מהתוכנה. אם המשתמש יתחרט ויבחר בלחצן "לא'", צריך. יהיה לשחור את תוכן המסך המסתתר מאחורי התיבה. לכן, לפני ציור התיבה נשמור את האזור שמאאחוריה בחוצץ, ונשחזר אותו בתום השימוש בה. בנוסף לפעולות שמירת ושחזור של מלבן טקסט, דרושה פונקציה לחצות מלבן טקסט. פונקציה זו ()6%94שוח מוגדרת כך. 0 5 ות:) מאססשטסה מהג ת10ע 106 ,קסל 6ח1 1656 40505000 5ת: 0551686 הפונקציה מקבלת את מיקוס הפונה השמאלית עליונה, את מיקום הפינה הימנית תחתונה. של מלבן המקור, וגס את מיקוס הפינה השמאלית עליונה של מלבן היעד. הפונקציה. מחזירה "את" בהצלחה, וישקר בכישלון 5 הסמן הסמן הוא הסימן המהבהב המתקדם בהתאס למיקום הצגת התו הבא על המסך, מקום. ההקלדה. כדי להזיו את הסמן למיקום מסוים במסך נשתמש בפונקציית הספריה. (090פ, המקבלת מיקום (קואורדינטות) על המסך ומזיוה אליו את הסמן. דוגמה לכתיבת כוכבית במרכז המסך. 00 כ כדי לדעת מהו המיקום הנוכחי של הסמן, נשתמש בפונקציית הספריה ()או6חאא, המחוירה את מיקומו האופקי של הסמון, ובפונקציה (/686חאו, המחזירה את מיקומר. האנכי של הסמן. דוגמה להזות הסמן תו אחד אחורה. (1() אפפמא) 45 0 8 0 3( תא 1- () א 0-1 כל זח טוב ויפה, אבל מה נעשה אם נרצח להעלים את הסמ 2 שפת 6- נושאים מתקדמים. נניח לדוגמה שבונים תוכנית להצגת קבצי טקסט (/46/6). אין טעם בכך שהסמן יהבהב. למשתמש בשטח המסמך, כי הבהוב זה יהיה חסר משמעות עבורו, מכיון שהוא אינו יכול. להקלוד דבר. לטם כך עלונו להועור בפסיקת המסך 10% עם פרמטר 1 באוגר 8. פונקציה זו של פסיקת. המסך משמשת לקביעת גובהו של הסמן (הרוחב של הסמן אינו ניתן לשינוי). גובה חסמל. מיוצג על ידי שני ערכים : מיקום הגבול התחתון (ביחס למיקום התו שהסמן נמצא בו שנכניס לאוגר 6, ומיקום הגבול העליון שנכניס לאוגר ₪. מיקום חגבולות נע בין הערכים 0 ו-7. לדוגוה: הגבול התחתון של הסמן הגדול ביותר (גובהו כנובה תו) יהיה 0, וגבולו העליון יחיה . כדי להעלים את הסמן לחלוטין נציב בשני האוגרים את הערך (1-). נעשה ואת בעורת הפונקציה ()86/, כפי שלמדנו בפרק . דוגמה לפונקציה להעלמת הסמן. גמ [ והפונקציה לשחזור הסמן לגודלו הרגיל יראה כך. ( 00במה גב [ 006010, 45 4599 פרק ל : מסכי טקסט 113 6 גלילה (9ח5610!!1) הבה נמשיך בדוגמה של הסעיף הקודס, העוסק בתוכנית להצנת קבצי טקסט. רצוי שיהיה. בצידו של המסך פס גלילה, אשר בעזרתו המשתמש *וכל לגלול את תוכן המסמך. בדי לבצע את פעולת הגלילה, נשתמש בפסיקת המסך 10% עם פרמטר 6 לגלילה מעלה, ופרמטר 7 לגלולה מטה. לפני הפעלת הפסיקה. > אוגר %₪ צריך להכול ות כיוון הגולה (6 - למעלה, 7 - למטה). + אוגר ₪ צריך להכיל את מספר השורות שברצוננו לנלוכל > אוגר !₪ צריך להכיל את מיקום הגבול השמאלי של שטח הגלילה. > אוגר 6 צריך להכיל את מלקוס הגבול העליון של שטח הגלילה. > אוגר/₪ צריך להכול את מיקום הגבול הימני של שטח הגלולה. > אוגר 6% צריך להכיל את מיקוס הגבול התחתון של שטח הגלילה. > ואוגר וש צריך להכול את מאפייני חצבע של שטח חגלילה. 9 המיקומים (הקואורדינטות), שהאוגרים מקבלים, צריכים להתחיל מאפס ולא = = מאחד (כמו שנהגנו עד כהו. לכן נוריד 1 מערכי המיקום שמקבלת פונקציית הגלילה. דוגמה לפונקציית גלילה. וחטת 15 ,2ץ סה1 ,2 מתג ,נץ סה: ,א 6ה802011)1 סט (00188 5ת6/3עמתא מתצ ספת הסצחט 90 פטם - 06.081ע 1 1-1 - 4906-0001 1-1ץ - 1906.0.0 42-1 - 4906-0041 2-1ץ = 4900-0.8 = .1906 ((81990 4396 ,10א586)0ה1 4 שפת 6- נושאים מתקדמים. 7 תוכנית להצגת קבצי טקסט הוכרנו פעמים רבות בפרק ה את הדוגמה של תוכנית להצגת קבצים (שאשו/). כדאר שנתבונן בקוד של תוכנית כזו, המסכם אות כל מה שלמדנו בפרק זה. התוכנית מקבלת כפרמטר שם של קוב טקסט (כפי שלמדנו בסעיף 1.3 בפרק הראשוף, ומצינה אותו על המסך. בצידו חימני של המסך מופיע פס גלילה, שבעורתו נוכל לגלול את. תוכן המסמך המוצג. התוכנית גס מאפשרת להדפיס את תוכן המסמך בעורת לחיצה על. הלחצן ט. שו סז לבק לע ה ב ב הפ ה 5 0 /ח7- 115 וכופווע פוביב ומס 1:06 ותד אי שמש המבו רק ובל תק כסו ו בגר סל גמ מז המאת ענסים! רימזה אש נחוובשנ סו בטישע יש מוספ, לוו עליה דר הלוגך ישגר אל העבגה וש בל דופ רנפה לופ ו ל ות ינר למל אע תוכנל "דר ריגה לכי נלמת כ ובל אוה וה םוחה כנחום מך' תבוכז פב ודא סו סנוכ לכסך וזה ימ בר רו ה - 1 תרשים 7.4: תמונת המוסך בומן ריצת התוכנית. אס היק גלילה בדפי מפדח 7 6 גלירה בלפר משה // 4 (0105ם לח1/םצשתא שה1 ומח מב ו2ץ שה ,ל שה4 ו1ץ פהג ‏ נא הב 011צמט שגמ [ ו פרק ? : מסכי טקסט ‏ 115 6 שפת 6- נושאים מתקדמיםם . 0020118356 הַה10 שסק ַהכג) משבאבבמצסם בגב 0 פונקציה לעדכון פם הגלילה על פי המ'קום הגוכחי בקובץ 905 - מיקוס השורת הראטונה המוצגת על הממ 85 - גודל שטח הגלילה בקובץ יחת חפט קוד // 1 2 (79,2 784 ה יי 0 03 מל ו םה 7 / ה ד בי 95 הגלילה באורך 18 שורות) // 0718/000118350ל = שבלאצב נ1-פסלםשבו (05למצבאו) 8 3 (סלםצמא )סטמ אצ (פ "ספ 0 (4יי מ11? מהגנפבם' הַסב הנס צצלי ַהג) האסם בגב 5 פונקציה הקוראת את השורה הבאה מהקובץ ומערכנת את חלון הטקפ 20406-גת - מצביע העומד על סוף השורה בקובץ המוצגת בראש הלו - מצביע הפומד על פוף השורה בקובץ המוצגת בסוף האלו - מלביע למצביע הקובץ 576 פה קפוץ לפוף השורה האחרונה שחוצגה //, (5פפ 5558 שהגג0םבגיוקף )אמצ קרא מו מהקובץ / 0 8 שפת 6- נושאים מתקדמים. 6 זו לא פוף הקוב / 6 [ קפוץ לפוף השורה האחרונה שהוצגה // -‏ נ(מפכ אצמל אהבביבבגי לי אבצ קרא שורה מהקובץ / ל עדכן את מצביע השורה האחרונה / (54) 9-12 - האפ בגה גלילת תוכן המטך כלפי מעלה / ב 75/25/ )501 בפיבת השורה החרשה שקראת / 0 0 )הפ קפוץ למצביע השורה הראטונה // ;(דשם אשם5 מהבנטשסבלי קלי) אבי בו ל צדכן 96 המצביט 1 0570 1+ - ממבנטמטלה (י9 11ע שבל הַהסג) מהצנטמזלבהגם בגב / פונקציה המוצאת את סוף השורה הקודמה בקובץ וד על שורה מפו'מת ומתעדכן במיקום השורה הקורמה + - מצביע למצביע הקוב 27 - ממה יל בל עור לא נמצאה פוף שורה ולא הגפגו להחילת הקובץ, קפוץ תו אחד אחורה ///// וכע 66 30-!ם) בגר פיט השפ תפשמ ל שצי) .שב ל 8 ג 91 - ממה לג (בתם) 505 3,- (קל ב1מ, - מבמלה פרק ל : מסכי טקסט ‏ 119 (50י9 0112 שתגנטםבני הטנ שהצבמדבע' ַתסג) קט בגב 0 פונקציה הקוראת את השורה שלפני השורה שבראש החלון ומעדכנת את תוכנו בההאם ש155048; - מצביע העומד על סוף הורה בקובץ המוצגת בראש הלו - מצביע הפומד על פוף השורה בקובץ המוצגת בסוף החלו - מלביע למצביע הקוב ה 6 השורה הראצונה המוצגת אינה הראשונה בקובץ הלו את המצביפים פורת אחורת ///// ל ומאו 4 ה ה קר שורה מהקובץ ועדבן את חלוף המקסט // 0 (צפם ‏ 551% ארבנטבצגלי קפ )א-מנ ל 91050 - שהגם0ם- בקי סט ג 22 75 ,2 )2:01 סט תשק (מי9 שננע) מהגדל בגמר 0 פונקציה להדפפת תוכנו של קובץ פקמט. = כתובת פצביע הקוב שמ ופט 0 0/0896 6 ) אבס \הה", )הק ₪ שפת 6- נושאים מתקדמים. 0 )בצה ו ל קל ("מח" )5 הנק ו ו" 20| הבק (סא) 5תב גב / פונקציה לאתחול הדברים הדרושים להצגת קובץ הפזרה 0 מ 58 7 0 א.א 0 7 ([%0חבי שבלם ,35 שהג) הנפה שגמ [ מצט 9 שא ב פת ויוי [ ("תפופטר הקובץ להדפפה חפר") שמגסק 0 ו 3 [ טיש יור מדי פומטרים ) >פגסק 0 פרק ל : מסכי טקסט 121 גג ( ממא == (("פ3ר [57]3ה) מפקס, = ק4) 4 8ב ו 0(" ניתן לפתוח את הקובץ") 5אמגאם הי / הדפסף השורות הראשובות // 1 7 |( 8 9 115 = 8 83 סמ 0 3545 66 (505)57!) שבגמ ו 0 | 0 ג טס ו הנ ( 53 ) =- 019356 0 אנ 0 ל בל עור לא נלחץ לחרף היציאה ‏ יי ו כל פוד לא גלחץ מקש //‏ (( ()מבפנג! ) מבבהר 0 ללח מט 1 ג ו 550 0150135 85| מא 1 01 ב בליפת משלה // 8 ו 41.5 539 בל3) סט 11 01 0 ו ו ו ה )8 ו ו ו ב 0 שפת 6 - נושאים מתקדמים. 8 גישה ישירה לחוצץ המסך אם ניסיתם בעבר לשתול תו בפינה הימנית-תחתונה של המוסך, ודוי גיליתם שמתבצעת. פעולת גלילה אוטומטית של המסך וכל השורות עולות מעלה. ובכן, לכל המתוסכלים. שהתייאשו מניסיונותיהס לשתול תו בפינה או, חרי לכס דרך לעשות זאת. עד כה, בכל פעם שרצינו לכתוב למסך, השתמשנו בפונקציות אשר השתמשו בפסיקות. לשתילת התווים על המסך. דרך מהירה יותר לעשות זאת, היא לפנות לחוצץ המסך ולכתוב. חוצץ המסך המוקדש למוד טקסט, מתחיל בכתובת 980004 וגודלו 4000 בתים. מבנה. החוצף זהה למבנה החוצף שהגדרנו בסעיף .7. לכל משבצת תו במסך מוקצים שני בתים. אחד מכיל את ערך התו, וחשני את מאפייני הצבע. בתחילת הפרק הזכרנו שבמוד טקסט. המסך נמצא ברזולוציה של 25%80, כלומר הוא מייצג 2000 משבצות, או תאים, שעבור כל. אחת מהן מוגדרים תו ומאפייני צבע. כל משבצת כוו מייצגת מטריצה של נקודות מס פא מכיון שאנו עוסקים בזיכרון, כדאי שנלמד כיצד מורכב הבית בו שמורים מאפייני הצבע. הבית מורכב משמונה סיביות, המחולקות לקבוצות שלכל אחת מהן יש תפקיד (שימו לבב ש-0 הינה הסיבית הימנית ביותר ו-7פ היא השמאלית ביותר) + 0-03 מכולות את צבע הטוקסט (0-15). > 9406 מכילות את צבע הרקע [0-7). + ו-97 חיא סיבית ההבהוב (סיבית מורנות מסולת הבהוב). מתוך כך, ניתן להבין מדוע כשרצינו להוסיף הבהוב, חיברנו לצבע המבוקש 128 (10000000. בינארט. עכשיו, כשאנו יודעים כיצד בנוי חוצץ מסך הטקסט, אפשר להתחיל לשתול בו ערכים, ור לקרוא ממנו. תחילה נגדיר מצביע אל תחילת החוצץ. כיון שכתובת תחילת החוצ אינה. נמצאת באזור הציכרון של התוכנית, עלינו להגדיר את המצביע כמצביע רחוק (668חוסע 8!). לסנמנט 5800%4 עם' היסט 0 (כלומר כתובת 08000%). נעשה זאת כך. ((035800,0) שת 4 = 668ע50:אס7* עב? צבמם חוצץ המסך חוא ליניארי ולכן, כדי להגוע לנקודה (%) עלינו לנשת להשתמש בחיסט. 2 ו + (8 הורדתי 1 מערכי ה-א וה-ץ, כי המשבצת הראשונה נמצאת בהיסט ‏ (אפס), כפלתי הכל ב- ג כי אמרנו שעבור כל משבצת במסך שמורים שני בתים. פרק ל : מסכי טקסט 123 . אם כך, פונקציה לשתילת תו במיקום ע,א על פי מאפיוני צבע עשויה להיראות כך סה 0085 ומ ,ץע 5ת1 ,א 6הג) ו 1 =[ 0ב = [60]20811מ00: אל ו אם אתם תוחים מדוע התייחסתי לחוצץ ויכרון המסך כמערך וכתבתי את ההיסט בסוגריים. מרובעים (במקום להציו את המצביע), הרי התשובה: עשיתי ואת בדיוק מאותה סיבה. שבנללה הנדרתי בסעיף 7.4 את חוצץ הזיכרון כמחרוות בגודל 4900 (במקום להגדיר מצבוע. ולהקצות לו 4000 תאים בעזרת 8166ו). עשיתי ואת בהסתמך על הגדרת הוערך: "מערך. הוא אוסף רציף של נתונים מסוג זהה. שס המערך הוא מצביע לאיבר הראשון בו", כפר יסכר לק מראשוך. תכוטת וו של תדר אומח (הועת לרביש מהמנכנתים ובעיסר לפק שלמדו פסקל לפני לימוד 6). בדרך כלל נוהגים להזיז את המצבוע על פני החוצץ, במקום. להתייחס לחוצ כמערך שבו תזוזת המצביע הינה טבעית. אנא קראו את הפרק הראשון, עכשיו, כשאנו יודעים כיצד להגוע לכל משבצת במסך, נוכל לבצע את הפעולות הבאות. > שתילת תו במקוס מסוים בצבע מסוים. + קריאת מאפייני הצבע של תו הנמצא במיקום מסוים. > שונוי מאפייני הצבע של תו הנמצא במיקום מסוים. > העתקת אוסף תווים שאינו מלבני (לדוגמה, מתחילת השורה הראשונה עד אמצע שורה. שלישית). מכיון שהחוצץ הוא ליניארי, נעתיק את כל מה שנמצאו בין שתי נקודות. התוכנית הבאה מדגימה מספר פעולות של גישה זשירה לציכרון לא םה ב 0 (0%5809,0) עץ או - מ90586:אמלי צמ, שמ 4 שפת 6- נושאים מתקדמים. (? 5 2( (ב-) אמפנאי (1-ץ) 4 1 65055אס3) הנה = שמתם ,ץ שה+ ,א שהג) שבהסאמק בצמ פוגקפיה לשתירת תו במיקום (צות) //// [ =[ 2י( (ב-.)+אפטבא-(1-ץ) )‏ |הששאספטאמ (פגצצטב שבל= ,₪ שבה. וץ שה וא שהב) שבלכטמלם בגב פונקציה לשתילת תו בחיקום (צוא) בצבט מבוקש //// [ 55 (ב-א) סנא (ב-ץ)) -פמע פה [ א ה = [05%1פ ]ואט [ (ע 395 = 5הג) -בהט.ם שבאה יוצ ו פונקפיה לקריאת תה ו 2( (ב-) אמפנאי (1-ץ) 4 5ם:0פשאם) מאגטה [ (צ 306 ,א 6ה1) משכת0.ם שאה ו ו ו [ פונקציה לקריאת מאפייני הצבע (מצצוטת שת: וץ תג וא שהג) מבצצטנששהאתם בצמ פונקציה לסינוי מאפריני הצבע בסיקום (צוא) ////7 [ המושג = [ ג% 2י( (ב-:)+פטבאי(1-ץ) )‏ |השצדסבטאמ סא הצפה שגמ שולת תו בפיקום (בב) // ג (11,1) תסמ 0 העחקת התו שב(ב,1) ל[2,1) בפגול מהבהב // נ(1,1(,12845):מלכסמס 2,1):בתכטטת יי שיגוי הצבע של (1,1) על פי הצבע של (2,1)// :((,1)2-ס-ת:מ1,0,ג) מבדמאתפפהבה יי בחיבח שורה של תווים בשורה 50 // מל 0 0 פרק ל : מסכי טקסט ‏ 125 ( 3-2 :29 ((ב-79) אפנאי (ב-10)) 3 243 ((ב-20) ספא (ב-19)-. ) שבל ו שינוי מאפייגי הצבע של חלק מהטורה לירוק מהבהב // מפיקום [29,20) פד מיקום (078/29 // 0 0 בפרק הבא, נלמד כיצד לשלב בתוכנית עכבר שיתמוך במוד טקסט. 6 שפת 6- נושאים מתקדמים. פרק 8 עכבר למסך טקסט בפרק זה נלמד להפעיל את העכבר ולהשתמש בו. / נלמד להשתמש בפונקציות שונות של פסיקת השירות 3381 - פסיקת העכבר. / נלמד לעקוב אחר תנועת העכבר. / נלמד לעקוב אחר לחיצות בלחצני העכבר.. / נלמד לתחום את שטח תנועת העכבר.. השימוש בעכבר, המוסבר בפרק זה מיועד לעבודה במוד טקסט. בפרקים הבאאים נכיר גם. מודיס אחרים וניצור לה יחידה נפרדת. השימוש בעכבר מתבצע בעורת פסיקת העכבר 33/1, המכילה שירותים שונים לתפעו. העכבר. כדי להפעיל שירות מסוים, נכניס לפני הפעלת הפסיקה אל האוגר 8% את קוד השירות שישמש כפרמטר. את הפסיקה נפעיל בעורת הפונקציה 86ו, כפי שלמדנו בפרק 3. 1 זיהוי העכבר כל תוכנית המשתמשת בעכבר, חייבת לבדוק תחילה אם העכבר מותקן במחשב. כדי לעשות. זאת, נשתמש בפסיקת העכבר [3300) עם פרמטר פ. לאחר הפעלת הפסיקה, ערכי האוגרים ישתנו כך > אוגר או יכו ייאמת', אם נמצא עכבר מותקן ומחובר במחשב. > אוגר אט יכול את מספר הלחצנים שבעכבר. אס כך, ניתן בקלות לכתוב פונקציה לויהוי העכבר, אשר תנצל את הפונקציה ₪086 , כפר שלמדנו בפרק 3. עכבר למסך טקסט ‏ 127 ₪ הפונקציה תיראה כך. מ סג [ 1560 3865 תסצחט 48 000 | ( 81:04 , 11:60 ,0433 ) 86מהב אם נמצא עכבר, החזר את מספר הלחצנים שלר 120 4 (פ.%.1566) העט אחרת החזר אפס // 0 שג 2 הצגה והסתרה של המצביע פסיקת העכבר עם פרמטרים 1 ו-2 משמשת להצגה ולהסתרה של מצביע העכבר. כאשר המצביע במצב יימוסתרי" = איננו רואיס אותו, אך פעולת העכבר ממשיכה כסדרה. כלומר, אס נזיז את העכבר או נלחץ על לחצניו, התוכנית תגיב לפעולות אלו כרגיל, אך לא. נראה דבר על המסך. מתי נרצה להסתיר את מצביע העכבר? בכל פעם שעורכים שונויים בתוכן המסך, אנו עלולים לגרום לעיוותים שונים. לדוגמה, אם. נכתוב בשורה האחרונה של המסך הודעה שבסופה תווי הבקרה "ח'י, המחשב יגלנל את. תוכן המסך כלפי מעלה והמצביע יעלה שורה אחת, למרות שזה אינו מיקומו האמיתי. (המצביע צריך להישאר בשורת המסך האחרונה). תופעות אלו נגרמות, מכיון שהמצביע מצויר על המסך מחדש בכל פעם שיש שינוי בקואורדינטות שלו. למרות שהעכבר לא זז, המצביע שלו הווז כלפי מעלה יחד עם כל תוכ. המסך. אם כך, לפנו שמבצעים שינויים בתוכן המסך עלינו להסתיר את המצביע, ומייד בסוף. הפעולה עלינו להציג אותו מחדש. פונקציה להצנת המצביע, יראה כך. 0 - [ 4960 9865 הסצתט 901 = 8ב.א.ַסצג קריאה לפסיקה 55 עם הפרממר 1 // ( ( 9188 /, המע41 , 0833 | 86מתב בפונקציה להסתרת המצביע נעשה פעולה זהה עם הפרמטר 2. 8 שפת 6- נושאים מתקדמים. 3 בדיקת סטטוס העכבר לאחר שלמדנו כיצד לוחות את העכבר ולהציג את המצביע שלו על המסך, עלינו לבדוק מה מיקום העכבר ומהו מצב הלחצנים שלו. כדי לעשות ואת, נשתמש בפסיקת העכבר (33%0) עם פרמטר . בעקבות הפעלת הפסיקה, ערכי האוגרים ישתנו כך. > אוגר א! יבול את מצב הלחצנים. > אוגר ₪ יכיל את המיקום האופקי של העכבר. > אוגר א6 יכול את המיקום האנכי של העכבר. בדיקת מצב לחצני העכבר לאחר הפעלת הפסיקה יתקבל באוגר אט מצב הלחצנים כך. > ערך סיבית 0 יהיה אמת, אם הלחצן השמאלי לחון. + ערך סיבית 1 יהיה אמת, אס הלחצן הלמנ לחון. + ערך טיבית ? יהיה אמת, אס הלחצן האמצעי לחוץ. אס כך, נוכל לחלק את מצב הלחצנים לשמונה מקרים שוניס (ראה תרשים 8.1. אפ 90 01 כ נט 0 ש- שמאלר + ישמ 2 + א - אמצעי 3|+|.+ +- לו 4 2 5 | + + 5 +|+ ז|+|+]. תושי 91 עכבר למסך טקסט ‏ 129 המרת קואורדינטות העכבר למסך הממשי המסך מיוצג כמסך וירטואלי ברוולוציה של 640%200, כך שמיקום הנקודה. השמאלית-העליונה הוא ,0), ומיקום הנקודה הימנית-התחתונה הוא (639,199. המסך הממשי במצב טקסט הוא ברוולוציה 35א 90 וכך, מיקום הנקודה. השמאלית-העליונה הוא (/0), ומיקום הנקודה הימנית-התחתונה וא [9,2%. לכ עלינו לחממיר את הערכים המתקבלים, כתוצאה מהפעלת הפסיקה באוגרים 6 ר-6%. לערכים שיתאימו למסך הממשי שלנו. נעשה זאות על ידי חלוקה בשמונה של המיקום. האופקי ושל המיקום האנכי. למה דווקא שמונה 108 נחשב ואת: 640/8 שווה 80 ו- 200/8 שווה 25, וכך מומרים ערכ הפיקסלים לתאי התווים שבנוסך הממשי. לדוגמה, כל הערכים בתחום ריבוע הפוקסלים. 900) עד (,7) ייצגו את המשבצת (9,0) במסך הממשי. על כן, הפונקציה לבדיקת סטטוס העכבר תיראה כך. (צ* 3,106* 185 פ0ב:8ספטמא פתג [ 5 18 שת גת 03א0- 8ב.א עב קריאה לפמיקה 33 עם הפרמטר 5 // ( ( 41558 / 41:68 ,0833 ) 86מתב 9/8 - אד 98/8 - צד החזר את מצב הלמצנים / 3 (8ס.06.8ט1)מצטטםל 4 מציאת מיקום לחיצה/שחרור אחרון לעיתים נרצה לבצע פעולות גרירה שונות. למטרות אלו נוכל להועזר בפונקציה הבודקת מה. היה המיקום האחרון בו לחצן מסוים נלחץץ או שוחרר. לשם כך נשתמש בפסיקת העכבר עם. הפרמטרים 5 ו-4 (5 - לחיצה, 6 - שחרור) למנו הפעלת הפסיקה. + אוגר 0% צריך להכיל את מספר הלחצן שאותו רוצים לבדוק. לאחר הפעלת הפסיקה. + אוגר 6 יכיל את המיקום האופקי של הלחיצה/שחרור אחרון של הלחצן המבוקע. > אוגר א זכול את המיקום האופקי של הלחיצה/שחרור אחרון של הלחצן המבוקש. 6 שפת 6- נושאים מתקדמים. שימו לב! הפעם, לחצני העכבר מיוצגים בדרך שונה: 0 - שמאלי, 1 - ימני, 2 - אמצער (בננוד לסימולים 1, ,2‏ על פי תרשים 8.1). הפונקציה לבדיקת מיקום הלחיצה האחרונה של לחצן תיראה כך. ( צ* סת1 /, %* 1 , הסססטם 1 | 58008ם:עםפטסא 14סט [ 3966 9805 מסצמט 005 49865 ( תסססטם - אמיא קריאה לפסיקה נב עם הפרטמר 5 // ( ( 91860 , 91566 ,033 + עדכון הקואורדינטות. 0/8 א 350 - אל 3/8 - צר בפונקציה למציאת מיקום השחרור, נעשה פעולה דומה עבור הפרמטר 6 במקום פרמטר + 5 תיחום מרחב תנועת העכבר לעיתים נרצה להגביל את תנועת העכבר רק לחלק מהמסך, כדי למנוע גישה של המשתמש. אל אוורים מסוימים. כדי לתחום את מרחב תנועת העכבר נשתמש בפסיקת העכבר עם. הפרמטרים ‏ ו-8 ( - תיחום אופקי, 8 - תיחום אנכיו. למני הפעלת הפסיקה. > אוגר 6 צריך להכיל את הערך המינימלי של התחום (אופקי או אנכי) על המסך. > אוגר א6 צריך להכיל את הערך המקסימלי של התחום (אופקי או אנכי) על המסך. בתיחום אופקו, הערך המינימלי של התחום הוא מספר הטור שיציין את הגבול השמאלי על. המסך, מיקוס הערך המקסימלי הוא מספר הטור שיציין את הגבול הימני על המסך. בתיחוס אנכי, הערך המינימלי של התחום הוא מספר הטור שיציין את הגבול העליון במסך, מיקוס הערך המקסימלי הוא מספר הטור שיציין את הגבול התחתון במסך. שימו לב! יש לחמיר את ערכי המיקום מערכים ממשיים לערכום וירטואליים, פורוש הדבר. - לכפול ערכים האלה ב->. לאחר תיחום מרחב תנועת העכבר, עלינו לדאוג שמיקומו הנוכחי יהיה בתוך התחום. המוגדר בלבד. לשם כך נזיז אותו אל הפינה השמאלית-העליונה של התחום, בעזרת פסיקת. העכבר עם הפרמטר +> עכבר למסך טקסט ‏ 131 לפני הפעלת הפסיקה. > אוגר 6% צריך להכול את המיקוס האופקי שאליו אנו רוצים להזיו את העכבר. > אוגר א6 צריך להכול את המיקוס האנכי שאליו אנו רוצים להזיו את העכבר. בונקציית התיחום תיראה כך. ( צאגע 6ה1 (אאבא סהג ,צהגא %ה1 ,%ה1א טה1 ) בתבתספמסא מם4 [ 1968 968 תסצתט האם התגלתה תקלה //, ו - שצם מחג בדיקת חריגות בערכים , והמרה לערכי המטך הווירטואלי /// /// ( 80 > אהןא 56 0-< אתצא ) 48 8 >> אתגת 0 1- שת 186 ( 80 > אבא 26 ס-< אבא 46 מצעם! ) 48 8 >> אאב ו 1- שת 186 ( 25 > צתגא 66 0-< צתגא 46 ששש! ) 48 83 >> צתגת ו 1- 2 186 ( 25 > צאבא 16 ס-< צאבא 46 מצעם! ) 48 8 -* צאב ו 1 186 יציאה אם י₪ תקלה. / / | (0) מצגטם: (צצם) 8ב הגדרת התחום האופקיר / // / 190 ג = אע 1 קריאה לפסיקה 35 עם הפרמטר 7 //‏ ( ( 41268 / 21960 , 33אם | 586מ1 הגדרת התחום האנבי / // / ( 0480-ב 120 1 - לג ב - 1206 קריה לפסיקה 33 עם הפרמטר 9 // ( ( 6ַ815 , 0ַ6ש81 , 0833 ) 86מה1 2 שפת 6- נושאים מתקדמים. הזות הסמן לפינה השמאלית עליונה של התחו. 0 = 49655 את - 49668.0 צתגם - 66.8.48ע4 קריאה לפסיקה צב עם הפרממר א = // ( ( 81560 , 81560 , 0233 )4586 ג (1) מע0משצ כדאי שנכין גם פונקציה לביטול התיחום הנוכחי. נעשה את על ידי הפעלת פונקציית. התיחוס על קואורדינטות המסך הממשי. (0,0,79,24) 66 6930פטמת 6 יחידה לשימוש בעכבר ממשק היחידה :. מסשק ליחידה לטיפול ושימוש בעכבר במסך טפט . 7 0 ה רות 0 7 ב ה 80 שמשה 7 0 בוום 0 7 | נסט | 6פמסא0פתט ממ ונקציה הבודקת הא ערך מוחזר - אפס אם לא נמצא עכבר מחובר ומוחקן, וחקן עכבר במחשב, האפ הוא מחובר וכפה לפצנ. פרק ₪: עכבר למסך טקסט ‏ 133 ל( 8 | ם סוסה שגמ - פונקציה ההופכת את מצביע העכבר לנראה (15מפגט) | םגא בגב פונקציה המחביאה את מצביע הטכבר |( לשבל 5ה 3‏ לצב שח+ ,להצ שה ,הגו שרב | בַהב9מסטמא תב / פונקצית להגדרת רחב פעולת העכבר. עואורדינטות נקודת הגבול המינימלי - צהגא | אה קומורדינטות נקודת הגבול המקטיה ( סל ) הבתכ שגמ א פונקציה לביטול התחום הנוכחי של העבבר 912 שת %* שה:) שנב 5מסטמא מב / פונקציה לבדיקת פטטוס העכבר ומיקומר שת 9) - יקבל את מספר הפור עליו עומד המצביע. ות 9) - יקבל את מספר הפורת עליו עומד הפצבי הפונקציה תחזיר את אחד מהערכים הבאים 4 שפת 6- נושאים מתקדמים. פונקציה למציאת יקוס הלחיצת האחרוה מסשטטם - איזה לחצן לברוק (ממארו-ם, > (4306%5ת 5) - יקבל את מספר הפר ו נ( צד פת3 | לי שת | מכלסמל םב | 5ם5-0במ1םלםפמכא שגמ פונקציה למציאת מיקום השחרור הארו מפסטמע - איזה לחצן לברוק (שמאלי-ם, ימנר-ב, אמצער-ם) > (4326%5ת 5) - יקבל את מספר הפר + [95פמצת ע5) - וקבל את . יחידה לטיפול ושומוש בעכבר במסך טקמט . 7 0 ה רות 0 7 שר הלחצנים בעכבר // ?‏ פהמטצנם:0בת מה פרק ₪: עכבר למסך טקסט ‏ 135 7 0 שק + ורות / 7 ( 118 | םבמסאםמסהם ממ פונקציה הבורקה האם מותקן עכבר במחשב, האפ הוא מחובר, וכמה לחצנים עוך מוחזר - אפט אפ לא נמצא עכבר מחובר ומוחקו, קריאה לפפיקה עמ פרמטר 8 //‏ | ( 55סגה | ַפצצו ובנאם ) 6פפהב בתוצאה מהפסיקה, אוגר ג יכיל "את" אמ יש טכבר מחובר ומוחקן במחשב, ‏ // ואוגר 8% יכיל את מספר הלחצנים של העכבר המחובר, ‏ // אס נחצא עכבר החזר את מספר הלחציס //, גו 4 556 59| האמטמ אחרת החרר אמס ש טפ ( 918 | םבמסאאסתם שגמ 6 פונקציה ההופכת את מצביע העכבר לנראה (נפגפגט) קריאה לפסיקה 31 עמ פרמטר ב // / ( 815% | 2פ44 , בבאס ) 86אמב 6 שפת 6- נושאים מתקדמים. אש גא גב / ונקית המחביאה את מצביע העבבר קריאה לפטיקה 33 עם פרמטר 2 // | ( 15 , 4159 , נבאם ) 86פהב |( לאבע 5+ לאמ שה: ,להנא שה ,הנא הב | מפַהבהמשטבא הב / פונקיה להגדרת מרחב פעולת הטכבר קואוררינטות נקודת הגבול המינימלי - צהבא | אמצ קואוררינטות נקודת הגבול המקפימלי - צאבא | אשמ האפ התגלתה תקלה // 2 0 - שצצ מה בדיקת חריגות בערכים, והמרה לערכי המסך הו לרטוארי //// ( 00 > אפגא 4: -< אמג )6 ( 80 > בגוע 54 0-ל מאמת 94 בשש )4ב ( 25 > הא 86 0-ל צמצא 94 משאן ) 14 ( 25 > אבא 54 0-ל לאמ 94 בשש )6ב פרק 8: עכבר למסך טקסט ‏ 137 לציאה אם יש תקלה // | (0) מפמטפל (ש:ם) א הגדרת החדו האופק // 1 וקה 3ב עמ פרמטר 7 // | ( סגה | 4155 | נבאס | 6פאת הגדרת החחום האגבי ו וקה 3ב עפ פומטר 8 // | ( ש8-ג) | 41355 | נבאס | 6פאת חזזח הספן לפינה השמאלית מליונה של ההחוס ////‏ קה 3ב עמ פרמטר 4 //‏ < ( 4358 | ששצנט , באס )06את לפואה מהפונקפיה // 0 (1) הצטטמ ( סל ) 6הב39מחכ שגמ ה פונקציה לביטול התחום הגוכחי של העבבר הפעלת פונקציית ההגבלה עמ קואורדינטות גבולות המפך // 2 (5)9/0,75,26הבההצטכ פונקציה לבדיקת פטטוס העכבר ומיקומר % 2445559 9) - הסור עליו עומד המצביע יקבל מספר + (מפמצאצת ל) - יקבל את מספר האורה עליו עומר המצבי הפונקציה תחזיר את אחד מהערכים הבאים 8 שפת 6- נושאים מתקדמים. קריאה לפסיקה 33 עמ פרמטר 3 // / ( 4158 | טפנו בבאם | 86הב הטרה ממסך וירטואלי לממשי ///// שופ עכבר //‏ ( של א8סא3)תאטה פונקציה למציאת שמש - (אמצעי-2, ימנר-1,שמאלי-0) איזה לחצן לברוק. ץפ) - יקבל את מספר המור 87 - יקבל את מפפר השורה. יקוס הלחיצה האחרונה קריאה לפסיקה 31 עמ פרמטר 5 // ; ( 4158 | ַפצצו ‏ בבאם ) 86ה שדכון הקוטורריגטות //1/ יאר החמש ו פרק 8: עכבר למסך טקסט ‏ 139 ( לי תג | +% שה4 | מכסטטל הב ) 5בלםַבפ1םלםבמכא בגב /ּ פונקציה למציאת מק מסוטטפ - (אמצעי-2,ימני-1,שמאלי-0) איזה לחלן לברוק את ל) - יקבל את מספר הור :שת 8) - יקבל את מפפר השגרהה קריאה לפסיקה 33 עפ פרמטר 6 // ; ( 41558 | שסצנם ובבאס | 6סאת ₪2 תוכנית לדוגמה לאחר כל לחיצה על אחד מלחצני העכבר, התוכנית מציגה על המסך את סימול הלחצן שנלחץ ואת מיקום הלחיצה. התוכנית תסתיים בהקשה על מקש 5%. על מי תוכנות זו ניתן לדעת כיצד לוצור תוכניות שפועלות עם עכבר ומקלדת במקביל, וכוצד לוהות את מיקוס הלחיצות. לשם כך צריך להחליף את הדפסת ההודעה בביטוי 6996 הבודק. את מיקום הלחיצה, ומבצע את הפעולות הרצויות על פי מיקום הלחיצה. הקבצים שיש לצרף לפרויקט כדי להריץ את תוכנית הדוגמה הם: 64566 ו-6 סוד למידע נוסף קראו את נספח ור ל 0 ה 6 שפת 6- נושאים מתקדמים. )מש מצטל מ בריפף הפכברן/ ו 4 ו ("ו4מטסע 5ב% שפמסאר)ף הגמ ו . הצג את מצביע השכבר //, 7 בל צוד לא בלחץ מפ // סו גצמ / בל צוד לא נלחץ עכבר או מקש // 15 46 0>ותמפ! ) מגצהר 0 שא 46 טפ | צר ₪ כל פוד הלחצן לחוץ// ‏ |( (8%/5)פמגב:: 7 יפוגו %4 גלחץ בפיקום שמת אפ הלחצן שנלחץ הוח שפצ // שימו לב! לפני ואחרי הצגת ההודעה על המסך, מצביע העכבר מוסתר ומוצג מחדש. גם א לוחצים על יותר מלחצן אחד, ההודעה תציג סימול לחצן, המראוה שרק אחד. מהלחצנים נלחץ. הסיבה לכך היא, שגם כשנדמה שלוחצים על שני לחצנים יחד, יש לחצ. שנלחץ ראשון והוא זה שסימונו יוצג במסך. ג אם סימון הלחצנים שיוצגו על המסך יהיה. הסטטוס האחרון של העכבר לפני השחרור, הבעיה לא תיפתר כי תמיד לחצן אחד משוחרר. למני הלחצן האחר. אם רוצים לבצע פעולות במקרה של לחיצה על יותר מלחצן אחד, צריך לשלוף את סטטוס העכבר באמצע הלחיצה, ואז הסימון יהיה נכון. אבל כיצד ניתן לעשות. עכבר למסך טקסט ‏ 141 . כיון שאיננו יכולים לנחש מחו זמן אמצע הלחיצה, נצטרך לעשות ואת בשיטה אחרת. נוכל. למשל, להכניס ללולאה השנייה (שמחכה לשחרור), פקודות לבדיקה חוזרת של מצב שלוש. הסיביות הראשונות של ערך סימון הלחצנים, שחתקבל מהפעלת פונקציית סטטוס העכבר, ולהשוות אותס לשלוש הסיביות הראשונות במשתנה אחר. אם ערך הסיבית בסטטוס. הנוכחי הוא אמת בעוד שערך הסיבית המתאימה לה במשתנה שלנו הוא שקר, נהפוך את. הערך למצב אמת. באופן זה, המשתנה יכיל בסופו של דבר את הסימון של מירב הלחצנים. שנלחצו. נסו לכתוב תוכנית שעושה זאת. תוכלו להיעזר בפרק 2, "עבודה בסיביות: העתקה והדבקה ביצד נוכל לבצע פעולות העתקה והדבקה כדי לבצע העתקה, עלונו לסמן תחילה את התחוס שברצוננו להעתיק. לשם כך נבדוק מה. היה המיקוס בתחילת הלחיצה ובשחרור הלחיצה. כדי להעתיק את קטע הטקסט, עלינר לתוח חוצ בזיכרון ולהעתיק לתוכו את הקטע המתאים מתוך חוצץ מסך הטקסט (ראר פרק קודס). כדי לחדביק, פשוט נעתיק את תוכן החוצץ שוצרנו אל המקוס המבוקש בחוצו. מסך הטקסט, שימו לב! הסימון לא צריך להיות של מלבן, אלא של התווים המבוקשים בלבד (לדוגמה, סימון יכול להתחיל מאמצע שורה 0 עד אמצע שורה 3). מכיון שחוצץ מסך הטקסט הוא. לונוארי (כמו שלמדנו בפרק הקודס), בעיה ו נפתרת מעצמה. הּ נסו לכתוב מעבד תמלילים בסיסי המשלב פעולות של העתקה והדבקה. 2 שפת 6- נושאים מתקדמים. פרק 9 גרפיקה ב- 256 צבעים (134 ₪066) בפרק זה נכיר את מוד 130 של ה6/ וניצור יחידת ספריה לפעולות גרפיקה שונות. ב-256 צבעים. / נלמד להחליף בין המודים השונים של המסך.. / נלמד לשתול פיקסלים על המסך.. / נלמד לצייר צורות בסיסיות שונות על המסך כגון קווים, מלבנים ועיגולים, / נלמד להשתמש בלוח הצבעים וניצור אפקטים שונים בעזרתו. / נלמד ליצור דפים וירטואליים שישפרו את מהירות ואיכות התוכנית.. / לסיום, נלמד ליצור גופנים כדי לשלב טקסט במסך גרפו, 1 מה זה בכלל 1314 1006 64/? 68/ הס ראשי התיבות של 9 6865 660 = מתאס מסך המתקשר בין המחשב לביף המסך המחובר אליו. כיוס, כמעט כל כרטיס מסך תומך ב-68. שיטת 68 מאפשרת. עבודה במודים (אופנים) שונים, שכל אחד מהס פועל במספר צבעים שונה וברוולוציה שונה. יחידת הספריה הגרפית של שפת 6 [015.0פז6) אונה בנויה לפעולה במצב של 256 צבעים, לכן עלונו ליצור את יחידת הספריה בעצמנו. מוד 12 מאפשר הצגת 256 צבעים שונים. בו-ומנית ברוולוציה של 3204200 פיקסלים. קואורדינטות הפינה השמאלית העליונה הם. (90), וקואורדינטות הפינה הימנית התחתזנה הס (199,134). מוד זה פועל עם חוצ (₪!פ) לינארי בגודל 6468, כך שכל פיקסל על המסך מיוצג על ידי בית אחד (64000=200+320). הגודל הקטן של החוצץ מקל על התכנות ומתאים לשימוש. בשפות מחשב של 16 סיביות, כמו שפת 6. אם פיסקה זו נשמעת לכ כמו סינית, אל דאנה, הדברים יתבחרו במהלך הלימוד. פרק 9: גרפיקה ב- 143 . 2 החלפה בין מודים כדי לקבוע את המוד הרצוי יש להשתמש בפסיקת המסך 10%. אוגר 8% צריך לחכיל את. הערך אפס ואוגר 41 צריך להכיל את מספר המוד הרצוי אם כן, ניתן בקלות לקבוע את מוד 134 על ידי שימוש בפונקציה 86, כפי שלמדנר בפרק 3 (9038) 2052560008 14סט [ 05פת הסצתו ( 95 ו שימו לב! בסוף התוכנית חייבים לחזור למוד טקסט (310), אחרת עלול להיגרם נזק למסך. לשם כך, נכתוב פרוצדורה שתחזיר אותנו למוד טקסט. (14סט) 8051000046 המ [ 5מפט 3205 הסצתגו 2.0.20 = ₪ 2.8.21 - 083 86 | 010 , 3 שתילת פיקסל על המסך הדרך הפשוטה ביותר לשתילת פיקסל על המסך היא על ידי הפונקציה 64 של פסיקת המסך. 10 לשם כך, אוגר 2 צריך להכיל את מספר הפונקציה (61), אוגר ₪1 יכול את הצבע. המבוקש, אוגר ₪ יכיל את המיקום האופקי 00 ואוגר 6% יכיל את המיקום האנכי (%. ( 010%ם סע / ץ פת1 / א מה1 ) בשאגעממת [ 5מט 3205 הסצחגו 0906 = 08.0.58סע |( 010% = 81.מ. סע = 0 3586 | 010 , 4 שפת 6- נושאים מתקדמים. שיטה זו לשתילת פיקסלים אמנם פשוטה, אך איטית בגלל חשימוש בפסיקת 8105. בעבודה בגרפיקה, ובמיוחד כשרוצים לשלב אנימציה, מחירות הביצוע חיא קריטית. על כ. נשאף תמיד להשתמש בדרך המהירה ביותר לציור פיקסלים על המסך. שיטה מהירה יותר. לשתילת פיקסל על המסך הוא על ידי גישה זשירה לציכרון. חוצץ הזיכרון המוקצה לנתוני המסך במוד 134 מתחיל מכתובת וו8000 וגודלו 8א64, לכך נגדיר מצביע על תחילת החוצף. פע 0555 68חט1פפט * סע | (08,0סהאס) פק אע (* מסעם) = מכיון שהזיכרון הוא במבנח ליניארי ולא במבנה מטריצה כמו המסך, כל 320 בתום. מייצגים שורה במסך. 320 הבתים הראשונים בחוצץ מוקצים לשורה העליונה במסך, 3:0 הבתים הבאים מייצגים את השורה השנייה, וכך הלאה. על כן צריך לחשב מהו ההיסט. 960 המתאים לקואורדינטה המבוקשת. לשם כך יש לכפול את מספר השורה (/) ב-320 ולהוסיף את מספר הטור (0. 105 = [ א + ע320% | אשט שיטה ישירח זו מהירח בהרבה מהשיטה הקודמת, אך גם אותח ניתן להפוך למחירה יותר. על ידי שימוש בהזזת סיביות. כפי שלמדנו בפרק ?, יעבודה בסיביות", משך הזמן הדרוש. למחשב לביצוע פעולת כפל גדול, לכן ניתן להשתמש בהזות סיביות כדי לשפר את מחירות. הביצוע. אך כאן יש לנו בעיהו בשיטת הכפל באמצעות הדות סיביות, ניתן לכפול רק בחזקות של. שתיים, והמספר 320 אונו חוקה של 2 על כן, נפרק את המספר לשני חלקים, 256 ו-44, שהם חוקות של 2 וסכומם הוא 320 (2 בחוקת 8 + 2 בחזקת 6 = 320). כעת נוכל לכתוב כך את הפונקציה לשתילת הפוקסל. | צס1סם שעמ , ץ שה1 / א שת ) בסאצקסנת נראאה כאאילו שינויים אלה זניחים ולא חשוביס, אך כשתכתבו תוכניות, תוכלו לראות עד כמה ההבדל משמעותי, כי תצטרכו לשתול מאות אלפי פיקסלים בזמן קצר מאוד. נסו לכתוב תוכנית המשווה בין שתי השיטות, ובודקת פי כמה הגישה הישירה מהירה משיטת הפסיקות. בצעו זאת על ידי שתילת 5000 פיקסלים בכל אחת. צבעים 1450 4 ציור קווים יצירת קו ישר אופקי או אנכי, יכולה להתבצע בלולאה פשוטה המקדמת את המשתנה א אר את המשתנה ץ בהתאמה. אך מה עושים כשהקו הוא אלכסוני בעל זווית בלשחי אם ברצוננו לצייר על המסך קו, כמו הקו שמוצג בתרשים 9.1, נצטרך לצבוע את הפיקסלים. שהוא עובר דרכס (כמו בתרשים 9.2). כדי למצוא את הפיקסלים האלה נצטרך להשתמש. בנוסחאות של הנדסה אנליטית לחישוב שיפוע ומרחק. תרשי 9 תושים 92 באלגוריתם לציור קו, נצטרך לדעת מהו הסימן של משתנח כלשהו (האם וא שלולי, חיוב או אפס). לשם כך ניצור פונקציה כגון ור ( ות %ת1 ) ספ תג [ ( ( 1) מצגמם, ( 0<קמטת | 45 ג( 1- ) הצטמשע ( 0>תטת ) 5 5; ( 8 ) מעמסם+ 6פבם לחילופין, נוכל לעשות זות בצורה יותר אלגנטית ולכתוב מאקרו בראש התוכנית. בל 0 + (9>א) | )500 6מ83ף להלן האלגוריתם המוכר לציור קו. האלגוריתס מורכב, עקב השימוש בנוסחאות מתמטיות. אין צורך להתעמק בו, אך חשוב להכירו ולחבינו (010%ם =%עע ,2ע 16 ,2א פת1 ,נץ סם1 ,1א שת1) שת1פאבצם 8צמט > פונקציה המציירת קו בי הנקודות < (1ע,1א) 3 (2/92א) * ו וע אק ,ץע ,> , ע3ם | אמם ,ע3 , 46 ,1 שג המשתנים מוגדרים כשלמים למרות שתוצאות החישובים אינן שלמות = * / + וכך התוצאות יתעגלו באופן אוטומטי 6 שפת 6- נושאים מתקדמים. המרחק האופקי בן הנקודות > /// - א המרחק האנכי בין הנקודות = /// 7 ע ב (89) 580 -%ם בו (ע8) חפ הצ עוך מוחלם ‏ // (49) פמ - א עוך מוחלם ‏ // 069 פמ = עש מקבל את מחצית הערך. /// - 5 מקבל את מחצית הערך. //. - ל מיקום הנקודה הראשונה. /// עס בא-אם שתילת הנקודה הראשונה //‏ (0010%,צק/אק) בפאגעטטע אם הק יותר אופקי מאנבר > // (ע6-<א3) 48 [ 20 )1-0/16485%6( [ ל (מש-לץ) 15 | ונק 0 אמסדץ 6 (0010%/9886,עק,אם) 1םא3עמת -‏ ! א6ם-ואם 1 1 אפ חקו יותר אנבי מאופקר /// 6 [ 0 )1-0/168/45%6( 0 (ע6-<א) 15 ( וא 0 ע4-דא 6 00109,0,עם,אם) 61 אנ עטק ! עבפ-ועם השתמשו בפונקציות שלמדתם וכתבו פונקציות המציירות מלבן חלול, מלבן מלא, משולש ופונקציה הצובעת את כל המסך. . 5 ציור עיגולים כדי לציור עוגול, משתמשים בטריגונומטריה של המענל. על פי חוקי הטריגונומטריה, כשנתונה זווית , מיקום נקודת הגירה על היקף המעגל להיה: ((5)4 ₪ ,)609 א), (כפי שתראו בתרשים 9.3 כמו כ ידוע כ ( 6 ולכן ניתן לומר כו; ‏ ( (2060030/9 ) חצ תרטים 93 באמצעות נוסחאות אלו, נוכל לדעת את המיקום של כל הנקודות על היקף המענל, כאשר. נתונים נקודת המרכז והרדיוס שלו. אך במקום לבצע חישובים רבים, ניתן לחלק את המעגל. לשמונה חלקים (שמיניות), לצייר שמינית אחת ולשכפל אותה כדי לקבל עינול שלס (רא. תרשים 4.. תרטים 94 8 שפת 6- נושאים מתקדמים. ( 0105ם שמעם , ת שה1 , ץ שת3 , א סהג ) 016צ01ממקם 18מט [ 4עס מעסת5 86מ19פתט 865ספעה ה(1/)91080 = צעת1 / 0-ת 6מסבל 1 , 0-א ‏ שתג + (46ץ) + (468ץ) -5585ס , 55586סעם | 49055568 בפמער 416 3-6 [ (88666) + (%68א8) > 5566 פאה (666ע8) + (668ע8) > 66ם5פמע שמעית אי // | עמ1כט > [ 8885565 - ע3 + 268::ט ] אמש שמירתבי //‏ / 108סס - [ 85965טע3 - אב + 68פפ5ט ] אמטל שמויתג' //‏ ( 60108 > [ 5565פטע3 - אנ - 68פפ5ט ] אמטל שמעיתד //‏ ; עמ1סס > [ 805::טא3 - ע3 - 1208:ט ] גמעה שמנית הי // | 8מ1סס = [ 88085505 + 3 - 1508:ט ] גמעל שמירתר //‏ / 108סס = [ 055966ע3 + אב - 68פ5פס ] אמטל שפימתז // | 108סס > [ 055966ע3 + אנ + 68פפפט ] אמטל שמיניתח' // | עמ1כס = [ 085505א3 + 3 + 1208:ט ] אמש ₪ ( ( (ח) 5מסג) םגפ * ה - עב 9 לא לשכוח שיש לקרוא ל- א.גוו בראש התוכנית לשם ביצוע פעולות. אס התוכנית שברצונכם לכתוב, צריכה לציור מספר גדול של עיגולים, רצוי להכון טבלה. שתכיל את תוצאות החישובים הטריגונומטריים, ולא לחשבס מחדש בנפרד לכל עיגול. הּ כתבו פונקציה המציירת עיגול מלא (לא מעגל חלולו. . 6 לוח הצבעים כפי שחסברנו בתחילת הפרק, מוד 12 תומוך ב-256 צבעים, שר ממוספרים מאפס עד 255 חשוב להבין שצבעים אלה אינס קבועים, והבחירה לגבי הגוונים שיופיעו בלוח הצבעים. 3606 0ו60), הא בידי המתכנת. כיצד יוצרים גוונים שונים? כידוע, כל צבע מורכב משלושת צבעי היסוד (אדום, ירוק וכחול, 868). אם נשנה את דרגת. החוזק של אחד מחם, ישתנה הצבע הסופי. במחשב, דרנת החווק של צבע יסוד מיוצגת על ידי ערך בין אפס ל-63. כל צבע מתוך 256 הצבעים שבלוח הצבעים מיוצג על ידי 3 ערכים (בגודל בית כל אחד), המסמלים את רמת. החוזק של כל אחד משלושת צבעי היסוד. למעשה באפטרותנו ליצור כ- 250,000 גווניס שונים! אך בר-זמנית נוכל להצוג רק 256 כיצד שולפים את ערכי צבעי היסוד שמהם בנוי צבע מסוים? תחילה יש לשלוח לפורט (יציאה) 367% את מספר הצבע המבוקש. לאחר מכן, יש לקרוא מפורט 3694 את שלושת הערכים של צבעי הבסיס לפי הסדר הזה. אדוס, ירוק, כחול. (5* שסעט , 6* ספעם , א* סמעם , כַעם001 ממעם) נבעמפם 14סט ו שליחת מספר הצבע המבוקש //, 2 (8שס00307,001) פצטם. שליפת עוצמת הצבע האדום. / 1 (080309) שה - א" שליפת עוצמת הצבע הירוק. //, 0 שליפת עוצמת הצבע הבחול. //. 0 כדי להגדיר ערכים חדשים לצבע מסוים בלוח הצבעים, יש לשלוח לפורט 3694 את מספר. הצבע המבוקש. אחר כך יש לשלות לפורט 3694 את שלושת הערכים של צבעי הבסיס לפי סדר זה: אדום, ירוק, כחול. (8 סט , 6 מסעט , 3 שסעמ , מוועס1ם משעם) 865981 גמ [ שליחת מספר הצבע המבוקש ‏ //, 2 (080308,001088) פצטם. שליחת עוצמת הצבע האדום. /// (080369,9) סט שליחת עוצמת הצבע הירוק. //, (080369/6) סז שליחת עוצמת הצבע הבחול. //. (880369/5) סז 6 שפת 6- נושאים מתקדמים. לדוגמה, אם נכניס לתא של צבע מספר 135 את הערכים שבתא צבע מספר 12, ונצייר על. המסך קו בצבע 135 וקו בצבע 12 = הם זיראו לנו אותו הדבר. לפני שעורכים שינוייס בלוח הצבעים, רצוי לשמור את הערכים הנמצאים בו. לעם כך יש. להגדיר מטריצה גלובלית. [256()3] 2811 ססעט בעת נכתוב פונקציה הקוראת את כל ערכי הצבעים שבלוח הצבעים (08606) לתו 4 3001658 001 (152560155 01-00 ופ 17 3 סא [0] 5811/37 ,1) 00781 1. כתבו פונקציה שתמלא את כל הלוח בגוונים שונים של כחול. 2. כתבו פונקציה המסתירה את כל מה שמצויר על המסך. 7 ו ₪366 / 00% 306 אפקט מרשים ופשוט, שניתן לעשות בעורת לוח הצבעים הוא 10 06 ו-ו0 5366 (מעמעם, מגלה באיטיות את כל הצבעים במסך). כיצד עושים טס 778066 0 7866 מכחה בהדרגה את כל הצבעים במסך, עד שכל המסך הופך לשחור. כדי לעשות. ואת, עלינו להוריד באיטיות את העוצמה של צבעי היסוד בכל אחד מהתאים בלוח, עד שכולם יהיו אפס (צבע שחור). (9088) סנס מערך של שלושה בתים הא יצגים צבע > עד 64 כי זהו החחק המקטימלי > // השהיה !| במספר הצבעים בלוח הצבעים > /// קרא את ערבי הצבע לתוך המערך / 2 צבעים 191 אם צבע הבפיס גדול מאפס, הורד ממנר אחד. = // ;--[6018556)0 (0 < [556]0מ1מ0) 48 /--[6018396]1 (0 < [86]1ַמַמם) 1% (--[6018296]2 (0 < [8586]2ַםם) 1% קבע את ערכי הצבע המתוקנים. = //, :([0018396]2, [018556]1, [0] 0018886 כ) 81ק 05 כיצד עושים ח1 806 ? פעולת 1 5366 הפוכה לפעולת 0 5366: מתחילים ממצב של מסך חשוך ובהדרגה. מבהירים את הצבעים, עד שהס תואמים את צבעי הלוח המקוריים (לשם כך חשוב לוכור להפעיל בתחילת התוכנית את הפונקציה 3073108160 (14ס) ה401גת 14סט [ בצה מערך של שלושה בתים המייצגים צבע: // . 19 16680 01-00 עבט עד 64 בי זהוהחוזק המקסימלי / השהיה // 7 במספר הצבעים בלוח הצבעים. /// (39% 362560 ג 05)3-0ם [ קרא את ערכי הצבע. לתוך המערר /// ([0[,20018286]1[,20018856]2] 80018886 3) בק 0 לבל צבע בסיס, אם הוא קפן ממה שהוא צריך להיות, קדמו אותו באחד. / / ((53 > [0018886]0) 56 ([2811/3[10 > [886/0מנסם)) 15 0 ((53 > [18886)1סס) 86 ([811/3[)1ק > [86)1ממנסם)) 15 0 ((53 > [0018886)2) 86 ([2811)3]2 > [86)2נסם)) 15 0 קבע את ערכי הצבע המתוקנים. /// 50581 )1 ,0018856]0[ ,601886 ]1[ ,0018356]2[( [ 2 שפת 6- נושאים מתקדמים. לאחר הרצת התוכנית, ניתן לראות, שישנס מדי פעם עיוותים קטנים בנקודות שונות בומן ביצוע ח1 6806 או וס 5806 מדוע זה קורה? בתוך המסך יש תותח אלקטרונים, המעדכן בקביעות את הנתונים המוצנים במרקע. העיוותים נוצרים, מכיון שהלוח משתנה בומן שהתותח צובע את המרקע. כיצד לפתור את בעיית העיוותים? בין פעולות צביעת המרקע, תותח האלקטרונים נמצא בהשהיה הנקראת ובזעי 66 אם נדאג שהשינויים בלוח יתבצעו בפרק הזמן של השהיית התותח, בסוף. ההשהיה, התותח יצבע מחדש את המסך עס ערכי הלוח המחודשים וכך נוכל למנוע את. העיוותים. כדי לדעת מתי תותח האלקטרונים נמצא בהשהיה, יש להשתמש בפונקציה זר 0 [ 1 סע לולאה הקוראת מפורמ. 323% ערך, ובודקת את הפיבית הרביעית > // א ערכה הוא אחד לזגי, התותח נמצא באמצע ההשהיה ולכן חבה -‏ // עד שההשהיה תיגמר (אנחנו רוצים למצוא את תחילת ההשהיה) = // - [ 03 | 4-08 1ב (1ג) 15גתפ ן לולאה הקוראת מפורט. 33% ערך, ובודקת את הפיבית הרביעית > = // אם ערבה הוא אפס לוג , התותח נמצא באמצע הצביעה ולכן חבה = // עד טהצביעה תיגמר כי אז תתחיל ההשהיה. / | (030א0) פה) - 1ב 14-08 (1ג!) בצמ ך עכשיו, כל מה שנותר לעשות זה, להוסיף קריאה לפונקציה הואת בתוך פונקציית העמעום. (0900"), ובפונקציית ההתבהרות [ח8061?), הקריאה צריכה לחיות בסמוך לפקודה פום. (השהיה). כמו כן, מומלץ להקטין את משך ההשהיה משום שהפונקציה (86170650ומ מאיטה בעצמה אות פעולת ה-806. פרק פ: גרפי ב 8 דפים וירטואליים מהו דף וירטואלי? דף וירטואלי הוא קטע ציכרון הוהה בגודלו לחוצץ של המסך שעמו אנו עובדים (במקרה. שלנו - 6468). במקום לצייר ישירות על המסך, ניתן לצייר על דף וירטואלי ואחר כך להעתיק את כל תוכן הדף ישירות אל חוצן המסך. מדוע רצוי להשתמש בדפים וירטואליים? יש מספר יתרונות לשימוש בדפים וירטואליים. 1. השימוש בדפים וירטואליים מהיר יותר מציור ישיר על המסך. 2. כשמשתמשים בדפים וירטואליים לא רואיס איך הציור נוצר על המסך. 3. כאשר רוצים להניע ציור כלשחו על המסך, לדוגמה מלבן, צריכים לצייר את המלבן במקום החדש ואחר כך למחוק את המלבן הקודם. אם נעשה זאת ישירות על המסך. תיווצר הכפלה של הציור, כי עד שיימחק המלבן הקודם יוצגו לפנינו שני מלבנים. אם לדוגמה, מאחורי המלבן שברצוננו להזיו מצויר משהו אחר, לא נוכל למחוק את. המלבן ונצטרך לצייר הכל מחדש. בשיטת הדפים הווירטואליים, נוכל לשמור את. הרקע בדף וירטואלי ואו בכל תזוזה של המלבן לטעון אותו מחדש בלי המלבן ועליו נלביש את המלבן במיקום החדש. השימושים בדפים וירטואליים הס רבים ומגוונים, וכדאי שנעבוד בשיטה זו. כדי לחשתמש. בדפים וירטואליים יש להקצות להס מקום בויכרון. מספר הדפים הווירטואליים שמוקציס. לעבודה נתון לשיקול המתכנת, אך חשוב לוכור שכל דף גוול מקום יקר בזיכרון אס אין יותר מדי פעלולים בתוכנית, שני דפים וירטואליים יספיקו בהחלט. תחילה יש להגדיר בראש התוכנית מצבעים גלובליים שיצביעו על האזור בזיכרון שמוקצה. לדפים הווירטואליים. הקצאת הזיכרון לדף 1 // 2 (1150)64000,1ב (* 06 הקצאת הזיברון לדף 2 // = ; (51106)64000,1ם (* בסעם) = לבמט 4 שפת 6- נושאים מתקדמים. . אם ההקצאה נכשלה //‏ ( בגט--2שסבקט || בנטת--1שףבקט | פ4 [ 0 ("אין מספיק זיכרו מ אס לא נשחרר את המקוס שהקצנו לדפים הווירטואליים בסוף השימוש בהס, הוא יישאר. חסום לאחר היציאה מהתוכנית. על כן יש לכתוב פונקציית שחרור ולהפעילה בתום. 2/6 )014( (1פסגפט) סע |( (682גט) 66עם לאחר יצירת הדפים הווירטואליים, אנ יכולים להשתמש בחם. לשם כך עלינו להוסיף. משתנה מצביע מסוג בית לכל אחת מפונקציות הציור. במקוס לחשב את ההיסט מתחילת. חוצ א6, נחשב אותו מהמצביע המועבר. נשמע מסובך, אך למעשה זה פשוט מאוד. ניקח לדונמה את הפונקציה שכתבנו לשתילת פיקסל על המסך. ( צס1סם =ףעם , ץ שה1 / א מת1 ) בסאצקסנת ו 05ב =[ 6 + כ 6>>ע | + ( פע )6 ] גבל כל שעלינו לעשות הוא להוסיף לרשימת הפרמטרים את המצביע 0996, ובמקום לחשב את. ההיסט מהמקום עליו מצביע המצביע 68/, נחשב אותו מהמקום שמצביע 5596 מורח עליו. הפונקציה המתוקנת תיראה כך (סַפַל' ְמְעָ2 ,עסב0ם ספעם ,ץ סת1 ,א סמ1) 1פאנקמטק 4צסע [ 0105ם = [8+(25>6)+(268)] מסמע עכשיו, אס נכתוב את הפקודה. | וַ61פַבקט,13,18,100) בסאצקסנת נשתול למעשה פיקסל בדף וירטואלי מספר + פרק פ: גרפי 55 ואם נכתוב את הפקודה. מע נשתול פיקסל ישירות על הוסך. נבון שהשד לא כל כך נורא בצורה זו יש לתקן את כל פונקציות הציור שכתבנ [קו, עגול, מלבך וכו עכשיו, כל מה שנותר הוא לכתוב פונקציה הטוענת תוכן של דף וירטואלי אל המסך ולהיפך. נעשה זאת על ידי העתקת הציכרון בצורה זר נפבָבע* פמעכ) 10382340 8גמט 9 יצירת גופנים הנושא האחרון לפרק זה הואא יצירת גופנים. מכיון שאגר פועלים במוד 134, עלינו ליצור. בעצמנו גופנים כדי שנוכל לשלב טקסט בתוכנית שנכתוב. כיצד יוצרים גופנים? כדי לוצור גופנים, מומלץ להועור בתוכנת הצויר של 09%6חו4, לעשות זום מקסימלי. ולהוסיף קווי רשת (ראו תרשים 5.5). מומלץ לייצג כל אות ב-64 משבצות (8-8, כו כל בות. מכול 8 סיביות. טתז רגובו [פפנ מםלכו. ( ורי 7 4 צר תוטים 95 6 שפת 6- נושאים מתקדמים. עכשיו אפשר להפעיל את הדימיון, לצבוע משבצות בשחור ולצייר את האותיות הרצויות. לאחר ציור כל האותיות, עלינו לייצג כל שורה של האות על ידי מספר הקסדצימלי. ניקח לדוגמה את האות 'אלףי ונתייחס אל המשבצות כאל סיביות בינאריות. משבצת לבנה. "מייצגת יאפסי ומשבצת שחורה מייצגת 'אחתי. עכשיו עלינו לחמיר את המספרים. הבינאריים למספרים הקסדצימליים. מספר בינארי מיוצג על ידי % סיביות וכאשר ממירים. אותו לייצוג הקסדצימלי מקבלים שתי ספרות (כי כל 4 סיביות מייצגות תו הקסדצומלי, כפי שלמדנו בפרק ?, ייעבודה בסיביותי). כך נייצג כל אות על ידי 8 מספרים הקסדצימליום. (אחד לכל שורה). 8 8 8 8ב 8 8 28 98 תרשי 96 אתס ודאי חושבים עכשיו - מהו השינעון חזה, למי יש כוח לעשות זאת, ולמה אי אפשר רק. לשמור את התמונה ולטעון אותח למסך! ובכן, בפרק הבא נלמד לטעון תמונות מסוג 8%, אך במקרה זה עדיף לבצע את השיטה הארוכה מכמה סיבות. 1 בשיטה וו כל נקודה מיוצגת על ידי סיבית אחת ולא על ידי בית. בקוב 8/4 יש כותר. התופס בתים רבים (פירוט בפרק הבאו, ולכן קוב הגופן בשיטה שלנו יחיה קט מהירות כתיבת האותיות בשיטה זו הרבה יותר גבוהה. 3. בוכות צורת ייצוג ו נוכל בקלות ליצור אפקטיס מרשימים בסגנון 6168 4 לאחר שמסיימים עבודה שחורה זו פעם אחת, לפנינו קוב גופן מוכן לשימוש. 5. ממילא כבר יש לפניכם חלק ניכר מהעבודת (קובץ הגופנים העבריים וקובץ הספרות. מצורפים בדיסק). אני מקווה שהשתכנעתם שכדאי בכל זאת להשקיע את המאמץ. צבעים 157 לפני שאמשיך בהסבר, יש עוד כמח הערות. 1. שימו לב שאות סופית מוצגת לפני האות הרגילה. הסיבה לכך היא שוהו סדר אותיות. העברית בטבלת 85011. הסדר חשוב, כי הוא יקל על מצואת האות. 2. את הספרות בחרתי לייצג במטריצה 7*6, כי הספרות יותר צרות מהאותיות. לכן יצרתי. 2 קבצים [המצורפים בדיסק). = 095.06 (מכיל את גופני הספרות!. = ₪065.00 (מכיל את גופני האותיות). לאחר סיום כל החישוביס (המרת הציור לערכים הקסדצימליים), יש לשמור את כל הערכים. בקוב. להלן התוכנית שבעורתה שמרתי את ערכי הספרות בקובץ .ו <5640.8> מבטבסה1ף <00050.8> 4ט1סה1 9 וע סק (9036) מצגת 14סט ו ד [048%5]10ספע 0209202027 0206 )0000081 6 7 באס באס אס ,עס ,8 0 ,אס באס, באס ואס 088 8אס ,ואס באס, באס באס פאס ,059 089 פא 09/0 089 88/08/02 פא ( ו1א0,גאס, נאס,דאם,9א6,09,0אם),|לאס,פאס,085,עא9,0ם,9אם/ פא ( פפי מצדט ("מ", "85 0\810188ם") משפם? - אק (70,09, (סע) 10)210108,815608צאם 0 בשיטה דומה שמרתי גס את ערכי האותיות בעברית. כך גס אפשר לשמור את ערכי. האותיות באנגלית. עכשיו הגוע זמנכם לעבוד קצת. עצבו את האותיות באנגלית כמו שעיצבתי את האותיות בעברית. הוסיפו את ערכי האותיות באנגלית אל קובץ האותיות. 8 שפת 6- נושאים מתקדמים. כיצד משלבים את האותיות שבנינו בתוך התוכנית? תחילה יש להגדיר שתי מטריצות גלובליות בראש התוכנית ולטעון לתוכן את ערכי האותיות. מסריצה לערכי הספרות. //. מטריצה לערבי האותיות. //. [דןןפג] פ6ַפָגַם סע [8] [26%06%8)30 מסע כדי לטעון את ערכי הגופנים מתוך הקבצים אל המטריצה נשתמש בפונקציות שונות. לדוגמה. 10 סט גי מ ") מפפם: = פם (70/05,(ספעמ) 515005 230158) 5088 )05ב וכך גם לאותיות. עכשיו עלונו להציג את הספרה או האות על המרקע. כדי לדעת אם ערך הסיבית הוא יאפסי. או יאחת', נצטרך להשתמש בפונקציה לבדיקת סיבית, שהכרנו בפרק . 05 306 ,3 66עם) 1055818 מחג 0 2 ( באס -1 6 ) תצבטםע כעת צריך להכניס את בדיקת הסיבית ללולאח מקוננת, שתרו על כל אחת מהסיביות. המרכיבות את האות. אם ערך הסיבית הוא'אחתי יישתל פיקסל על המסך. 1 על ,ע 3 ,א שג ,16% עבתס) עם10:5ונק 14סט ל ,1 תג מציאת האות במטדיצה > ' -> 186 46 יא' -< 168) 48 - 186 מ '-- 166 11 6פגם 25 = 5 +1: -- 166) 18 בפגם 29 = מ 5-50 6פגם לבל שורה באו (1-8/15801%%) עס לכל טור באות. / (1-0036821+3) 20 ((3[,3] [פסק]65055מ1) 55815ם1) 16 ( (0108,9886ם/ בדץ,3-א) במאבעטטע ניתן לנצל את העובדה שהאותיות מצוירות סיבית אחר סיבית, כדי ליצור אפקטים. מרחיבים. לדוגמה, אם נקדם באחת את הצבע בכל טור באות, תוצר אות הצבועה בדירוג. אם לכל אות נשלח צבע התחלתי גדול באחת, המילה תיראה כאילו היא צבועה בדירוג אלכסוני וראו תרשים 9.7). תוטים 7 פע שסגן =6עם ,ץ 6ה1 , > שה1, מַ43 פת1 | 5ַַפסנע 8צבט [ממבע* מסעס/א? ו 1ב לבל שורה בספרה. / / (170015701%6) צספ לבל טור בספדה / 13-0/35403+8 20 ((4[,3] [030158/420) 1655815) 18 (109,9886םט/1דץ,3-א) נשאגעסטע אם האפקמ מופעל קדם את הצבי / / , ואת האפקט נוסיף גם לפונקציה הקודמת. 6 שפת 6- נושאים מתקדמים. לסיום, צריך לאחד את שתי הפונקציות לפונקציה אחת המוקבלת מחרוות, מיקום וצבע. התחלתי, ומדפיסה אותה על המסך. ,צסנסס 56עמ,ץ 5ה1,% מה25][,1 שמתש) סאמצטנת בס | (2396י ססעם,א? ססעם עבור כל אות במחרוזת מימין לשמאל. //. 000-ל 1- (8%) 8ב אפ זוה ספרה //‏ (9%* > 15 085] <= (( 58,986 108סם,בלץ/א, יס אס זוהי אות. // 6 0 1 - + 0108ב (0ם) 5ב 0 חלונות בתוכנות מחשב רבות, המידע מוצג על המסך בחלונות המצוירים זה על זה (כמו במערכת. ההפעלה 4ו60/). נסד לחשוב כיצד לממש את התצוגה המדורגת של חלונות אלה. הדרך היעילה ביותר לעשות ואת, היא בעורת מחפנית הפועלת בשיטת 1150 050 הו 8פו וט), שבח כל איבר במחסנית מייצג חלון על המסך. החלון העליון ביותר במסך הוא החלון. שנמצא בראש המחסנית והתחתון ביותר - בסוף המחסנית. אם המשתמש לוח בעכבר על. חלון שאינו החלון העליון ביותר, נוציא את האיבר המתאים מהמחסנית ונדחוף אותו לראש. אם אינכם יודעים כיצד לממש מחסנית בשפת 6, תוכלו לפנות לספר "שפת 6 - תוכניות. ופתרונות", בהוצאת הוד-עמי. מהו המידע שיש לשמור עבור כל חלון בתוך המחסניתז כל איבר במחסנית צריך לחכול. מידע אודות מיקוס החלון, גודל החלון ותוכנו. אס התוכנה צריכה לתמוך במספר רב של. חלונות ונשמור עבור כל חלון את תמונתו, נגזול מקום רב בזיכרון. לכן, עדיף לשמור על כל. חלון רק את ההוראות כיצד לצייר את תוכנו. כך נוכל לחסוך בזיכרון, כי אין צורך לשמור. מידע על חללום ריקים בחלון, אלא צריך לשמור את ההנחיות לציור אותו בלבד. צבעים 161 9 . נסו לחשוב מה קורה כשהמשתמש מנסה לזיו חלון במסך. מחן הבעיות שעלולות לחיווצר. וכוצד נתגבר עליהן? ברגע שהמשתמש מזיז חלון במסך, התוכנה צריכה לעדכן את נתוני מיקום החלון במחסנית. ובמקביל עליה לעדכן גם את התצוגה במסך. אם עדכון המסך היה מתבצע על פי המחסנית, התוכנית היתה צריכה לציור מחדש לא רק את החלון שאותו המשתמש מציו, אלא את כל. החלונות על המסך. שיטה זו אינה יעילה ואם ננהג כך, נראה שיבושים בתצוג לא מספיקה לצייר את כל החלונות כתגובה לכל תאזה קטנה שהמשתמש מבצע. כדי להתגבר על בעיה זו נשתמש בדפים וירטואליים, כפי שלמדנו בסעיף 9.8. נשמור בדף. וירטואלי את תוכן המסך ללא החלון המסוים שהמשתמש מנסה להזיצ. בכל תווח של. החלון נעתיק אל חוצן המסך את תוכן הדף הווירטואלי, ונצייר במקום החדש, את החלון שהווז. שיטה זו הרבה יותר יעילה, כי בכל תזוזה התוכנית צריכה לצייר תוכן של חלון אחד. בלבד, ואינה צריכה לצייר את כל החלונות. כדי למנוע שיבושים בתצוגה, נצייר את החלון. בומן השחיית תותח האלקטרונים של המסך, כפי שלמדנו בסעיף 57. 1 יחידה לגרפיקה ב-256 צבעים ממשק יחידה 7 7 ברחה / 7 2 50-ב 5 מאקרו שסחזיר את פימנו של מפפר (1,1-,0)// ((:בל[0כא) ‏ ב-49(7ם)) (א תפס הבמג 2 שפת 6- נושאים מתקדמים. על 5מלם 4פתףגפתר 5מ4מקצ סא 59055 גפ 5מ4מקצ 390840 סב 4פמגתט 5מ4מקצ 7 0 פונקציות 0 7 025 גמ / פונקציה להפעלת מור 138 (56 צבעים) אמט שגמ פונקציה להפפלת מוד פקפט רגר , 006 מסללתמקס שגמ פונקציה המקצה מקום לדפים הוולרטוארר , 0 306ל500מנם שגמ / פונקציה המשחורת את הזיכרון שהוקצה לרפים הווירטואליים , גמ פונקציה המחכה שתוחח האלקטרונים היה בתחילת השהיה , פרק 9: גרפיקה ב- 256 צבעים = 163 | (פ5ל* פועל , ממנכם תמל ,ץ מה ,א מהצ) נמצגלאנת בבמה . פונקציה השותלת יקטל בהלסט המחושב על 5' > ו- ץ ממחרלת המה -=- 0 פיקום אופקר = צ- ‏ סוס אנכר - 96פ - היכן לצייר (מפך או דף ולרטואדי) :(9555' מטעל צסגסס מע ,ל טת4 ,52 מה3 ונע הב ,נא שה1) מהצמאצקם בגב ּ/ קפוה לציור קו על וף/מפר - 1ע1א - קואורדינטות הנקודה השמאלית עליוגה. - 2ע2+ - קואורדינטות הנקודה הימנית חחתוגה (פסמלי מצעט ,צפנכם מטעם ו2ץ הג ,2 שה ,בע מהג ‏ נא שה:) מסמלקטקהלאצקם בגב / פונקציה לציור מלבן אלול על וף/מפר |- פע 2 - קואורדינאטות הנקודה הימנית החתוגה - שאק = היכן לצייר (מפך או ולוטואפ) :(06מלי משעט ‏ שמנסם ממץל (2ץ פה:/2א מהצ 1ע מה4 גא לםג) 111-4250%תאצקם בגב ּ/ פונקציה לציור מלבן מלא על דף/ממר - גע, = - קואוררינטות הנקודה השמאלית עלירוגה |- 2ע,2+ - קואורדינטות הנקודה הימנית חחתוגה - 956 - היכן לציור ( מפך או ולרטואלר ) 4 שפת 6- נושאים מתקדמים. 959י מטעל (105כס מצעט) -2נמתסמצטט בגב / פונקציה הצובעת את הדף/פטך - 9586 - היכן לציור ( מפך או ולרטואלר ) פונקציה הבורקה הא ל |- סק - איזו פלבית לברוק. סב שגמ / ובא םסב שגמ פונקצית הסוענת את הגופנים של האותיות למטריצה. לי ממם,%) מטעל, שסנסס מע וע שה , א מהצ, 240 מב ) מגקצנאנט שגמ 0 |- ,6 - לואורדינטות של הנקורה הלמגית עליוגהה - = אפקט גוונים (בן או לא 0 פרק 9: גרפיקה ב- 256 צבעים = 165 :(6פמלי על א: מלעל, מנבם מפעל וע להג | = הב, מ1 שבתק | שמוטבנאנת בגב 5 - עו= > קואורדינטות של הנקודה הימנית עו - = - קפ גווגים (בף או לא ו (פמל מועם/א: מצעט שמנסס סקל ץ תב א מהצ/[)%: שבת:) ַאמלאנת בגב / פונקציה המציגה על המסך מחרוות (פו לא מלוהה לא יולג - עו= > קואורדינטות של הנקודה הימנית עו - = קט גווגים (כף או לאה - 995 - באיזה דף לציור (מף פיץל ,30 צעל | 8* 5עט , סצסנכס מועט)631מם שב /ּ ו (החוזק של צבעי הבסיס : אדום, כחול וירוק) | שפעל | 0 צעט | 5 מאעל | סאשסגבם מעם)1ב4שם בגב ּ/ 0 0 6 שפת 6- נושאים מתקדמים. 7 צמל :בת שגמ מ פונקצית המסתירה את המסך ע"י איפוס לוח הצבעים (92415%505 שבהם) 124015005 גבל פונקצית הטוטגת פלפת צבטים סקוב -- יי (5062ל* וע | בשטבמלל ממעט) 506ל4מםב גב לוף 2 פונקציה המעתיקה את תוכן דף 1 פרק 9: גרפיקה ב- 256 צבעים = 167 מימוש היחידה 7 / הצררות / 7 0 >פפנא ‏ אשפתט המב ופט 430 גר של מפפר(ג, ב-,0)// ((7120 << ):ב-50(7א)) (א מק בה-ב מל 0355 בפמ-גפתט 5משמקעה ופסא 29085 0084גפהט משמקע יי 09009 פע א (* תיעבט -אמל ממ מצביט על תחילת האזור בזיכרון האמור לנתוני המסך // מצביע על החילת האזור בזיכרון המיועד לרף ולוטואדי מפל בק מצביע על החילת האזור ביכרון המיועד לרף ולרטוארי מפל 2 /, : [3 (256) בל ממ פטריצה שתכיל לוח צבפים שר 256 צבטים / ול [9ג] 155פגפ שו מטריצה שחכיל גופגים של ספרות // [39[19)מסטת אמצ מטריצה שתכיל גופנים של אותיוף / 8 שפת 6- נושאים מתקדמים. 7 0 פונקציות 0 7 900 גב / פונקציה להפעלת מוד 238 (256 צבעים) פרמטר ₪ המל יף מוד בב 256 0 הפעלת פפיקת הפס // 0 0 0010 פונקציה להפעלת מוד מקטט רביר פומטר ₪ המציין מוד מקמט 3 ו הפעלת פפיקת הממ // 0 פונקציה המקצה מקום לדפים הווירטואליים. (640002) 3110 (ל מפעט) - במבצצ | (ג/9110)64000 (* מפעט) - למפצ פרק 9: גרפיקה ב- 256 צבעים = 169 7 [ 3(" אין מספיק זיכרון ') שפהגסק א 10 בגב 5 פונקציה הפשחררת את הזיכרון שהוקצה לדפ. שש ל בא גב ₪ פונקציה המחכה שתוחח האלקטרונים להי בתחילת השהיה 1 לולאה הקוראת מפורט ₪58 ערך ובודקת את הסיבית הרביעית (5ש) // אפ ערכה הוא 6חד לוגי, התותח נמצא בהשהיה, לכף חבה /, פד שההפהיה תיגמר (8נ38ו רוצ למצוא את חחילת ההשהיה) / [ (מנ0אל) פה - ג הנמא 4 לולאה הקוראת מפורט ₪58 ערך ובודקת את הסיבית הרביעית (צש) /, 6ם ערכה הוא אפט לוגי, התותח נמצא במהלך צביעה, לכף /// שהצביעה תיגמר, א1 תתחיל ההשהיה 7 6 שפת 6- נושאים מתקדמים. (פמ0אט) פה - גב צ ‏ (ַפפַפ* ממעל | 0105ם מועל ו שהב ,א מהב) במצנפאטם בגב - פונקציה השותלת פיקפל בהיסט המחושב על פי = ו ץ מהחילת המצביפ שקפל. ו ע פיפ - של - היכן לצייר / 7 מס = [ש+(446ע)+480ץ)) פמט ביון שהזיכרון הוא לינארי ולא מפריצה, כדי להגיע לנקודה הרצויה < יע לכפול את מספר השורה (4) ברוחב המפך (ממקנא וש5ת40) ולהוסיף =. אך במקוס לעשות : א320%% אני משתמש בכפל ע"י הזזת סיביות עהוא /% חיר יותר ( צ320% - י6ה2 + ציה, ) (55ל' מ6על צס1כס מע |?ץ מה+ ,א מהצ ונץ םב ונא שהב) מהצ/אמקם שגמ / פונקציה לציור קו ער דף/מפךר |- 1צ1א - קואורדינאטות הנקודה השמאלית עליונה. - 5,5א = קואורדינאסות הנקודה הימנית תחתונה. - 958 - היכן לציור ( ממך או ולוטואלר ) לעש אם ,55 50 5 א. ג מה הטרחק האופקי בין הגקודות ‏ / א המרחק ה אנכר בין הגקודות /, ג = ץ הלחא > (בפזרת המאקרף הפצ) ‏ ו הלפא ץע (בפזרת המאקרר חפצ) / ה פרק 9: גרפיקה ב- 256 צבעים = 373 2 שפת 6- נושאים מתקדמים . (מטפלי צעמ ,25נסם מל (2ץ מב ,2, שה ,בץ שה 1+ מהג) סמ קט המאקה שגמ / פונקציה לציור מלבן חלול על וף/מפר וטות הנקודה השמאלית עליונה - 2ע/2+ - קואוררינטות הנקודה הימנית החתונה - 956 - היכן לצויר ( מפך או ולרטואלר ) | 5556 105מם 2 ג גץ נא מהבנאבם | (56ל צסגסם 2/1 ג נא)מהבנאב 556 0105 ב גא 2 2א) מהבנאבם | של צסגבם 2/1 2 2א) הנאט 5 ,5מ1מס מצל (2ץ פה: (2< הג נץ שת ,נא שהג) 5--111-40האמקם שגמ / פונקציה לציור מלבן מלא על דף/מפר - בע גא - קואורדינטות הנקורה השמאלית עליוגה |- 2ע,2א - קואוררינטות הנקורה הימנית תחתוגהה - 9996 - הוכן לציור ל + 2עהטגצ) מ 5556 סנכ גץ, 2 גץ, גא באפ (58ל' מטעט | שמנסס מצעט) -2נמ תסמ צטט גב / פונקציה הצובעת את הדף/פמר - 996 - הוכן לציור ‏ פרק 9: גרפיקה ב- 256 צבעים = 173 :958 -10כש 329,299 0, )62505 ב1ב אמא ו (מסק 396 א ממעכ) 5גםופמד הב מ פונקציה הבודקת האס סיבית מסויימת בבית היא בפצב לובי "אמת" ו - סע - איזו סיבית לבדוק. שוגב את הבית במספר הפעמים הדרוש //, החור את מצב המיבית הראשונה // + ( באה מכ שגמ ₪ פונקציה הטוטנת את הגופנים של הספרות למטריצה. פתף את קובץ גופני הספרות לקריאה // = נ('מצל, ות 838132 | תפס - א קוא הבל להוך המטריצה // [ (70/5,(מע006)2צ3, מ-גָגם)3בב א הי מכ שגמ מ פתח את קובץ גופגי האותיות לקריאה // = נ[רמ. םמ 5אמאמב | הקט - א קרא הכל לתוך המטריצה // :(8ק/249 (מיעמ) 21505 צממטת:)8במא וי 4 שפת 6- נושאים מתקדמים. (556לי מ5על/א? מסקט | שמנסם ממץם ,ץ טה4 ,א שה4 ,2407 הב ) מגקצכאנט גב . פונקציה המפיגה על המטך ספרה. - 438 - איזו ספות להני - עו= ‏ - קואורדינטות של הנקודה הימנית עלרוגה - 5 - אפקט גוונים (בן או לא לבל שורה בפפרה ‏ סל ו לבל פ ור בספרה // 3 [ ((3 31 (355639ג0) 809845) 46 | של פסגבס גל 2-א) נמשצעטטל 0 אפ האפקט מופעל | שגה בור > (ש.) 4 (55לי מ6על/א: משעט, =מנכ ממץל | להצ | א מהג, 6-ב שבהם | שמטאמנאנט גבל 0 |- ,6 - לואוררינשות ל הנקורה הלמגית עליוגהה - = אפקט גוונים (ב או לא ו מציאת האות בחטריצת /, אשמב 48 אי דל ששב) 4ב צבעים 175 לכל שורה באומ של ו לבל טור ות 0 [ 1313 (סק )10 85י5מם) 4ב 5 00108 גלץ/ -5) במאבשטם ו 6ם האפקט מופעל, שגה גו > מש (.) 4ב (386ל' מעט צ: העט שמנכס סקל ץ הב א למג [)%: שבת:) המלאנת בגב / פונקציה המציגה על המסך מחרוות (פו לא מווהה לא יולג |- ,6 - ואורדינטות של הנקורה הלמנית עליוגהה - = - אפקט גוונים (בן או לא מחפוף להתחלה (שברית) / (--ש9-לפ ב 5 מ5 טקש [ ווהי מפרת // 0 (90/ == [קוט: 94 ולי הל [שוט) ב [ 0( 5585 55 2105ם, 6/1 0 -[ק|מ5) מבַמטאמט ו [ ( 65/5396 00105 ,א [ק551) מפסטמבאמם [ 0 ב 6 שפת 6- נושאים מתקדמים. עט , %5 מעל | ה* מל | סאשסגבם משעט) 1ב0ומס גב / פונקציה הבודקח כיצר בנוי צבע מפרים (מחוזק של בער הבסיס : ארוס, כחול ולרוק) ופר הצבע הסבוקש //‏ :(%>מנכס 0267א0) שאמ קרא מפורט 2098 את פוצמת הצבע הארום ‏ // -‏ :(0209א0) קל - מ קרא מפורט 3098 את צוצמת הצבע הירוק ‏ // :(69כ0אט) פה קרא מפורט 3098 את צוצמה הצבע הכחול ‏ // :(039אט) שה ( 5פעל 0 מטעט | % מל | מאשסגגם מעט)1בל מל גב / פונקציה הקובעת ערכים חדשים לצבעי הבסיס של תה את מספר הצבט המבוקט ‏ // נ(10:6ם8,0ם02אל) שטט שלח לפורט 3098 את עוצמת הצבע הארום ‏ /, ה שלח לפורט 3098 את עוצמת הצבע הירוק ‏ /, 0 סט שלח לפורט 3098 את עוצמת הצבע הכפול ‏ /, 000 פצטה בק שגמ / 0 1 6951131 [0 137 69932 )פמ פרק 9: גרפיקה ב- 256 צבעים = 377 - ו ּ, מערך של 2 בפים המייצגים אבצ [3) 001555 מו ומלי של צבפ בסיט הוח 94 // לודאה חיצונית עד 64 כי החוזק המח 34 של [ ב לבל תא צבט בלוח הצבטים / (5ב 362560 | 0-0 [ קרא פרבי צבפי בסים של הצא // [0 0 כ) עשט (566)21פ01סא, ןג - ו ([5-555נמס, ןגו כב ף קבט לוח בטיה הנפת שגמ 5 31 001555 מו פפרך של 3 בתים המייצגים צבע /, לולאה חיצונית עד 64 כי החווק המקמימלי של צבע במיט הוא 64 // 8 שפת 6- נושאים מתקדמים. 1 4084 03-00 ו גי אטב לבל תא צבפ בלוח הצבעים // ב 362560 ( 009 קרא פרכי צבטי בסיס של תחא // לבל אחד מצבעי הבסיס, אפ הוא קפן מהמקור הגרל אותו באחך | / , +:[56)9-פנכס ((63 > [56)0שפנטס) 54 ([1113()0בל > [58]0במנמם)) 4 גבל ₪ ונקית המסתירה את המפך ע"י איפוס לוח הצבעים. 0 מל טם (9/415%505 שבהם) 123015005 גבל 2 פונקציה הסוענח פלמת צבפים מקובץ פרק 9: גרפיקה ב- 9ב (לפ. ממשאנ1ל) 5-ל (3/50י256,(ש6עט)5808:. נבמל) בבשא (9) 08ב (במנטלי מיעל | וקל" תועל) פמהעבאכ ו שגביה ּ/ פונקציה המעתיקה את תוכן דף 2 לדף ב 0 תת תוכנית לדוגמה בתחילה, תוכנית הדונמה מציירת על המסך מלבנים בצבעים שונים זה על גבי וה. המלב. הראשון בגודל המסך וכל מלבן אחריו קטן בפיקסל אחד מכל כיוון. במרכז המסך כתובות. המילים "הוד-עמייי עס אפקט אלכסון. לאחר לחיצה על מקש כלשהו מתחיל השלב השני, בו לוח הצבעים משתנה לגווניס שונים. של כחול. בכל פעם הגוונים מתחוקים באחת, ונוצרת תחושה של תוווה במסך. זכרו שהציור שצויר על המסך אינו משתנה, אלא לוח הצבעים בלבדו התוכנית תסתיים בלחיצה נוספת על מקש כלשהו. הקבצים שיש לצרף לפרויקט כדי להריץ את הדונמה הם. .08256 ו-90%6א6 פָ. למידע. נוסף קראו נספח . יק 0+ ש4מנ0 תג ה + הג 6 שטנס הג /%%+ הכרזת פל מותניס חיצוניים הנחוצים מהיחידת - 256אמל ליד שפת 6- נושאים מתקדמים. הברזה פל מצביע המפך / א 3 / 7 0 / 0 7 7 | אלל מוצל המיא ל" מטעל האמצטה 3862" מטעל האמצטה (ב) [511)256ל מפצל הצמיא סא 5תב גב ו [ 7 0 0 0 0 1 וסט אמצ בגב ציור על גבל דף וירטואלי ב //// 7 [ יי מל [ (נשפפלט 5120 ע-199, -219, )4905ב באשמ : (במפצפצ חר כחוב הוד צמי במרבו הרף עם אפקט /, חפוף את המפך במפק עמעם את המפך במפק 5 [ ל וסט אשתם בגב הציור פצירנו בדף וירטואלי ב ///// / 7 / 7 [ 8 יי 1 גמ לפואה מסודרת מחפובגית //// פרק 9: גרפיקה ב- 256 צבעים = 3181 למנל בגב יצירח אפקטים על ידי שיבוי טרכי דוח הצבפים //// [ 0 או בג / המפן להשהיית הותח האלקטרונים // - ; (05בנטםנטגמה ו ו וח את לוח הצבעים לגוובים של בחור // עובי צבעי הבסים ארום וירוק פאופפים וערך הבחור // 03 מל 0 ה (64-4 00 )0 ו קלוט את המקש מנלחץ ביציאה מן הלולאה // 0 (גמה) הגצה שגמ ו ו ל ציור החסונה על גבי דף לרטואדי / אפ הצגת הדף הוולרטואלי עם לוח הצבעים המקורי // םה הסתן ללחיצת מקש בלשהר ‏ 0 שינוי ערכי לוח הצבעים בגוונים שר כחול // נ()5לספנבלתבבאנטבל 1 וי 2 שפת 6- נושאים מתקדמים. פרק 10 שילוב תמונות בפורמט קן8% בפרק וה נלמד לשלב תמונות מקבצים חיצוניים בפרויקט. / נכיר את פורמט 256 8000" של פוס6חוא, נלמד את מבנה הכותר בקובץ 8910 ואת תוכנו. / נלמד להציג תמונה על המסך.. / לסיום, נלמד לטפל בתמונות עם קטעים שקופים. 1 קבצי פוא ביום קיימים סוגים רבים של קבצי תמונת, כגן: 6לנ וד, כא, 615 ועוד בפרק זה נעסוק בקבצו 0 בי הס הגטוציס ביותר ופשוטים לקריאה (כפי שנלמד בהמשך. מהו מקור השם קא8? וא הוא קיצור של 8/א 8/6 (מפת סיביות). הש "ימפת סיביות" נקבע בתקופה. שהמסכים יכלו להציג רק צבע אחד מלבד שחור (לרוב ירוקו, כדי ליוצג פיקסל כלשהו די היה בסיבית אחת. אס ערכח יאמתי (כלומר '') יש צורך לשתול בה פיקסל, ואס ערכה. ישקרי (כלומר ), אן צורך לשתול בה סיבית (לתזכורת, ראו את הגופנים שיצרנו בפרק. הקודם). כיום קיימים פורמטים שונים של קבצי 8%10. מכיון שאנו עובדים במוד ו/13 (עם 256. צבעים), נתרכז בפורמט 256 צבעים הסטנדרטי של מערכת ההפעלה פואסשחווו כיצד בנוי קובץ קו/8? קובץ 8%% בגוי משלושה חלקים. 1 כותר 460660 בו נמצאים נתונים רבים אודות התמונה, כגון: הפורמט, הגובה, 2 לוח צבעים (₪16גק ז0ו0ס), שעל פיו נקבעים 256 הצבעים להצגת התמונה בצבעיה. המדויקים. 3 נתוני התמונה עצמה, שבהם כל פוקסל מיוצג על ידי בית אחד, המסמל את מספר. הצבע. פרק 10: שילוב תמונות בפורמט ₪4 = 183 2 קריאת קובץ 815 לפני שמציגים את חתמונה על המסך, עלינו לקרוא את נתוניה החשובים מתוך הקובא. תחילה עלינו להגדיר טיפוס רשומה חדש שיכיל נתוני תמונה. שפח מסמסמם [ רוחב התמונה ‏ / 146 שר גובה התמונה ‏ / סת פמ נתוני התמונה ‏ / | גסגם* ספעם וו בעת נפתח את הקוב ונבדוק אם זהו אכן קובץ מסוג 8% בפורמט 256 צבעים. לשם כך. נבדוק את ערכם של שני התווים הראשונים בקובץ. אם הקוב הוא מסוג 8%, שני התווים. הראשונים בכותר שלו יהיו 8 (שימו לב שמדובר באותיות נדולות). מ מנדט סנס ממה ששמ > שב פתיחת הקוב 1 / הפפס? - םץ)) 4 [ טר ==( - ; ("פתיחת קובץ שו נבשלה") הצצ (0) תעגטם, בדיקה האם זהו קובץ ענו תקיך 1 / | (065050ת || יפ'-ו[ם?)0ממ5) 45 [ ו 1 חקין")?6ה1עם ורי ; ("הקובץ אינו קובץ א 4 שפת 6- נושאים מתקדמים. קריאת הנתונים מכותר הקובץ בכותר הקובץ יש נתונים רבים שאינס נחוצים לנו, לכן נדלג בו אל הנתונים הדרושים. [בעזרת הפקודה 866%!, ונשמור את ערכיהם ברשומת תמונה. נעשה ואת כך. קפוץ6ו בתים קדימה // | ;(תט6 2866 (שףעם)1:008פי16,ק?) 50%? קוא את רוחב התמונה ‏ // 3 (1,50, (נסש) 512608,מ'ם1א<-מבת16עם)108ת קפוץ2 בתים קדימה / 0090 8888 [ספעם) 2*812608/ק?) 0%ם? קוא את גובה התמונה ‏ // (5 ,1, (מעסש) 515605 סמַגסת<-מבת16ס108)8, קפוץ22 בתים קדימה // 5 ;(ת60 5866 (ספעם)15008פ+22וק1) 5+ קוא את מספר הצבעים // ((ש024(,1,9א)5,812605צסנסם ממת|)100? קפוץ 6 בתים קדימה // 0000 5886 (ספעם)8*912608/ק?) 0%ם? 6 עת (0--001085 תטת) 18 כאן מסתיים כותר הקובץ, ומייד אחריו מתחיל לוח הצבעים. קריאת לוח הצבעים מהקובץ. מבנה לוח הצבעים השמור בקוב, שונה במקצת מלוח הצבעים שאנו עובדים אית (כי פורמט 8% מיועד למערכת ההפעלה 4045חו. כל צבע מתוך 256 הצבעים בלוח הצבעים. מיוצג על ידי 4 בתים. שלושת הבתים הראשונים מייצגיס את עוצמת צבעי הבסיס (אדום, ירוק, כחול) כפי שהכרנו עד כה. עם ואת, שימו לב! עלינו לחלק את העוצמה ב-% כדי להתאימה ללוח הצבעים שלנו (נעשה ואת בשיטת החלוקה המקוצרת על ידי הזות סיביות. כפי שלמדנו בפרק 2, יעבודה בסיביותי). 1 56 = [2ן[113בפת > [גןן1)3במל > [0 וק |( (תטס אפמס, (סמעם)842605/ק1) 65%ם+ אם אינכס רוציס לעדכן את לוח הצבעים, דלגו עליו בדרך זו |( (ת0ס 01098,9856ם מטה*4* (סמעט) 812605,ק3) 50%, פרק 10: שילוב תמונות בפורמט ₪10 = 185 קריאת התמונה מהקובץ אחרי לוח הצבעים כתובים בקובץ ערכי התמונה. כל פוקסל בתמונה מיוצג על ידי בית אחד. המכיל מספר המסמל את צבעו. כדי לשמור את ערכי הפיקסלים, עלונו להקצות לתמונה מקום בויכרון. גודל חוצף הציכרון יהיה כמספר הפיקסלים בתמונח (מכפלת הרוחב והגובה). נעשה ואת כך. (* פסעט) -3%3<-קפהז1ם) )1 מנטא =-(( (סתסבשת<-קבמ)צמימ85צטל-קפתיגם) (פסא) )100נבת אם ההקצאה נבשלה. 4 9 םע לאחר הקצאות המקום הדרוש לתמונה, עלינו לקרוא אותה מהזיכרון. נעשה ואת כך. 1868ש<-קבת6גמי (5-1מצפת<- קמה 1ט) -4 1 1 )0 מה15פ+א ( 4-0 )פם? ה 3 2 (פ5) 9%5+ (ספעמ) = [9 (56א) ]8 8- םח 4 בכך סיימנו לקרוא את הנתונים הדרושים לנו מהקוב, ואפשר לסגור אותו. 1 3 הצגת התמונה ציור התמונה על המסך, או על דף וירטואלי לאחר קריאת חנתונים מהקובץ, ניתן להציג את התמונה על המסך או על דף וירטואלי, החל. מהנקודה (א) המייצגת את הקודקוד השמאלי העליון וכך נוחגים בדרך כלל). לשם כך. נגדיר שני משתנים בגודל 6זסוו (מילה). אחד להיסט התמונה ואחד להיסט המסך או הדף. הווירטואלי. משתנח נוסף בגודל בית יכיל את מספר הצבע של הפיקסל הנוכחי. היסט המסך/הדף הוזירטואלי //‏ ( (5>>ע)+(8>>ץ) - 28860:156% 4עסט היטט התמונה. // 03 - 245055566 השס גג ספעם עכשיו נסרוק פיקסל אחר פיקסל ונעתיק אותס מהתמונה אל המסך או הדף הווירטואלי. 6 שפת 6- נושאים מתקדמים. יזהרו לא לחרוג מגבולות המסך או הדף, כי הדבר ישבש נתונים = שימו לב 7" מזיכון כדי לוודא שאין חרינה, נבדוק ואת לפני שנשתול את הפיקסל. קטע התוכנית ייראה כך (3%% 0 סתמַגסת<-קבה6 303 ; 3-0 )0+ 0 ( 13%,016055560%% ק ת106אל-קמת6גם>1 ; 4-0 )05? 056 אם לא חרגת מגבולות החוצץ/ = [20441: (663679 550% 23000) 18 עבור לשורה הבאה // ; 320 -+ 8.0%1566ג צא מהפונקציה אם חרגת מתחת לגבולות המסך. 1 186 בואת סיוונו לצייר את חתמונה על המסך. טיפול בחלקי תמונה שקופים לרוב אנו רוצים להציג תמונה על הרקע, הקיים כבר במסך. כך, התמונה לא תכסה מלבן. שלם במסך, אלא רק את חלקי התמונה שרוצים להסתיר. לשם כך נגדיר שצבע מספר. 'אפס', או צבע מספר -255י יחיו צבעים שקופים. כיצד נשתול צבעים שקופים! התשובה פשוטה מאוד, לא נשתול: לשם כך נרחיב את התנאי. לשתילת הפיקסל בפונקציה המציירת את התמונה על המסך, ונשתול פיקסל בתנאי שאינו. שקוף. [4858 46 0014320 06 255-!₪208) 1% 4550 = [285605526%18%1] סטמ 4 הנחיות עבודה לסיכום, מספר הערות חשובות לתשומת לב. + מכוון שאין יותר צורך ברשומת התמונה, זכרו לשחרר את המקום שהקצתם בויכרון. עבור נתוני התמונה. ( (0ב8<-פת16ם) ממצל > זכרו שמוד 13 מאפטר הצגת 256 צבעים בו-זמנית בלבד, לכן נצלו היטב את לוח. הצבעים. לעיתים תרצו שחלק מהצבעים בלוח הצבעים יתאימו לתמונה שאתם רוצים. פרק 10: שילוב תמונות בפורמט ₪ = 187 לטעון וחלק יתאימו לשאר האלמנטים המצוירים על המסך. לשם כך תוכלו ליצור קובץ לוח צבעים ולכלול בו ערכים כאוות נפשכם, ולטעון אותו בתחילת התוכנית. > אל תחששו לשנות צבעים מסוימים בתמונה, כדי שיתאימו ללוח הצבעים שלכם ולא. ללוח הצבעים המקורי של התמונה. לשם כך כתבו תוכנית המחפשת פיקסלים מצבע א. בקוב שופ ומחלופה אותם בצבע 8. + אם תנסו לטעון תמונות שנודלן אינו מתחלק ב-4 תגלו שהתמונה מתעוותת, או שאינה. מצוירת כלל. הסיבה לכך היא, שפורמט זה של ל4/₪ מעוות את הסדר בערכי התמונה. אס מספר הפיקסלום בשורה אינו מתחלק ב-4. דרך פשוטה לפתור ואת היא לדאוג מראש שכל התמונות תחיונה בנודל המתחלק ב-6. אם הגודל אינו מתחלק ב-8,יש. למלא את החלק המיותר בצבע שהנדרתם כשקוף, תוכלו לעשות זאת בתוכנת הצייר של 60%חו/ למשל. אם ברצונכם להתחכם, נסו לכתוב פונקציה הבודקת אאם גודל התמונה אינו מתחלק. ב-6, ושותלת אוטומטית פיקסלים שקופים בתמונה, כדי להתאינוה למכפלה הקרובה. של לחילופין, ניתן לכתוב פונקציה הדואגת לתקן את העיוות, שנגרם כתוצאה מהגודל שאינו תקון. + סוגים אחרים של קבצי תמונה יותר מסובכים להצגה, כי ערכי התמונה בהס מכווצים, וכדי להציג אותם צריך לשחור תחילה את הערכים המקוריים. כדי לטפל בסוג ספצופי של קבצים, עליכס לחפש מידע על מבנה הכותר שלהם ועל. אלנוריתם הכיווץ. לפי מידע זה, ניתן בקלות לשנות את הפונקציות שהודגמו כאן, כדי שיתאימו לקובץ וחפורמט שמחפשים. מקור המידע הפשוט והנרחב ביותר הוא כמוב 5 יחידה להצגת קבצי 812 ממשק היחידה . מפשק ל"חידה להצגת תפונות השמורות בפורמט לאמ 8 > הערות 1 1) היחידה הליג על הממך כל תמונת לאם הצמורה כ-ילאם צבעים 7256 = * . בפורמט הסטנדרטי של פשקשהגא, בתנאי שמידותיה יתחלקן ב-א * . 2) היחידה תומכת בצבע שקוף (פיקסל שהוגדר כפקוף לא יישתל על המסך) > 7 0 בו / ו 8 שפת 6- נושאים מתקדמים. השומח תפונת שמש - יי [ רוחב החמומה דכה וב הפוגה קמ גתוגי התמופה / 05" וע 8 7 0 פונקציות 0 7 (5ש:1188?" צבלם | קהתאגם* בבתקשם %כטצ::) עאמפמה שמ / פונקציה הקוראת קובץ לאש לזיברו הגע - ה 941095 - שמ הקוב ?258 מעל ו? לה3 = מה3 | קשתטגעי שמהקחש טסטצמם| לאמאפאם הב / פונקציה תמציגה תמונה על הפס ואצמ = רשומת שאם. ץצ > - פפפקובץ פרק 10: שילוב תמונות בפורמט ₪4 = 189 ( קאתטגם' במהקחם צסבצטּ| 0ע-5פ1ם שגמ 0 פונקציה הפשחררת את הזיכרון שהוקצה לתמונה. 9 מימוש היחידה > הערות : 1) היחידה תציג על המסך כל המונת לאם השמורה ב-"לאם צבע. של פאכשמגא, בתנאי שמידותיה יתחלקו ב- ,4‏ * . 2) היחידה הומכת בצבע שקוף(ביקפל שהוגדר כשקוף לא יישתל על הממך) ‏ 7 0 ה צר ות 0 7 שה הג 211695> הג הג תג ם> ש נה ו + הברזה על משתנים חיצונרים הנחוצים מהיחירה - 56כאל ליד הכרזה על מצביע הממ // סל פסעל הצמוא הכרות המצביע לדף וירטואלי מפי ב // נפסבל? ממצל המלא הכרות הסצביע לדף וירטואלי מסי 2 סל פמט הצמנא [3) 256 511 מסעל אפמא רשומ תפונת לא ו טפאט ממ ו רוחב המוגה 1 מ גובה המוגה / שה בשמ חוני התמוגה ו ור ו שפת 6- נושאים מתקדמים. 7 0 פונקציות 0 ו (58ב1150?. צבהם | קבתוגלי במלקאם סמעמב לאמ.בה מה / פונקציה הקוראת קובץ לאפ לזיברו אנט = רשומת שאמ אצת - שמ הקוב מה וב שא ו (בממו -- :2"((‏ מאשאט1ב?)תשקם: - קש ) 8ב [ ("פיחת קובץ ה-פאם נבשלה) ו 09 ספל / בדיקה האמ וחור קובץ פא חקי ///// 5 || יש'הו(פם) םוטאו 4 [ ל ("הקובץ איגו קובץ לאש חק מ ל קראו את הנתונים החשובים מהקובץ //// פוץ 6ב בפים קרימ ו וטס אפמף, (מועט)0%צגמי8בם9) אבצ קוא את רוחב החמונה// ג( 1 (5:כק) 215825 ת:שבאל-קבתוגם)) 8. א ו 2 בתים קרימ / (מנם 05% (פמצט)85-בפי2 ,)הבשנ קוא את גובה החמונה// :40 ,ב | (מ:כאק) 215525 ממ5גמלכ קכתוגםן) 8ב א פוץ 22 בפים קרימ / פטס אפמף, (מועט)0%צג."22 ?)אבצ קוא את מספר הצבעים // - נ(0 ,1 ,(בשסא1-080. שממנכם תהק 8ב א פו ₪ בתים קרימ ו (ממם 5% (פסע)585פי0 ם9) הבשנ בהנחה שזהו קובץ %ם 8 / מה (0-ששמ12מם ‏ מה) 6ב פרק 10: שילוב תמונות בפורמט ₪46 = 191 ריאת לוח הצבפים // 1 00 מל ו 6ם ברצונך שלוח הצבעים יתפדבן לפי הלוח השפור בפפונה בתוב בך: ///// ./ ל 49500 = [3112) גגב 52 (9969557 = (ב)[3 גגמ 52 (9965557 = (9 [3 גגמ ]<< (מעש 5:56 (מ:עט)%סמצגםוקף) אבצ 6 אינך מפוניין שלוח הצבעים יתערכן רלג על הלוח בקובץ בך + ///// (מנכן 58 4 (מעט)0%מ-גםוקף) מבאצ ו הקצאת מקום בדיברון החמוג // 1 מל קמת13ם )18 6 ההקצאה נכשלה // (מנטל -- (((5מ/:םפ< קמתּנפיהשטגאל קבת ג (בצסא) מפגגבה וק יכרוני שריאת ההמוגה לדלברוף //// 0-לג ; משמגאל-קנתוגע (985-1:ה<-קבתוגם) ג )מ ב [+ונת8גשל-קמשיגםאט ( סא )מ :928555 (ממצמ) ל קת סביר הקוב /// בי (1) מאטטש (58לל מעל , ע אהא שהב, קבבוגם סבהקאם לסטצטם) לאשאאם אתב / פונקציה המציגה תמונה על המסך. פותצגט - רשומת שש. > - שתקובץ 2 שפת 6- נושאים מתקדמים. היסט הפפך/חדף הו לרטואלי / + חיסט התסוגה / 1 בריקה האס יש מספיק מקום לצייר את ההמוגה ///// > ב < )ב [ (לאין פקום לציור הפמוגה. ו 09 טספ ו יר המוגה וו (394 ; שתפנשתל-קבתצגאב ( סיב )שמ [ ( 0100859800 0ב | הבמבאל-קבת+גם4ג 2 4-0 )שמ [ תג מ 4 220בוא 54 255-ובב.) 6 במידה והצבע שקוף - לא יושתל פיקמל // (בצב. - [ביש00ם054מ030 )שפצ ו 900679 56 ופ 4ב 1 סמל |( שמבוגפי 5מ8ק0ם לסטתום) לאם.פמנם שגמ / פונקציה המשחררת את הזיכרון שהוקצה לפמונה | (בומשל-קבתיגם) ממא פרק 10: שילוב תמונות בפורמט ₪ = 193 תוכנית לדוגמה התוכנית לדוגמה צובעת את המסך בפסים כחולים וסגולים לסירוגין. על רקע זה היא. טוענת תמונת ₪47 מקוב) לו60/.8%. וחס6, מציגה אותה על המסך וג מתייחסת. לפוקסלים שקופים. ₪ - יי הקבצים שיש לצרף לפרויקט כדי להריץ את הפקודה הם: 05256.6, 6.קחזפאוטו ).ופא מַחז8. למידע נוסף קרא נספח ד מ אנ פא > תג > הג ה /55= הכרה על מעתני יצנים הנוצים טוהירה - 256 גמ ליד הכרה גל מצבי המטר /1 מל פסצל הצמוא הכדת המצבינ וף ומאל מס ב // נשסבללי ממל הצמנא הכדת המצבע וף המאל מטי 5 סל ממצל הצמצא הכזת ממרצת הפלטה //‏ =( [2511/256[)3 ממעל הצמוא הסה תמאה ]1 פמט 6פקא8 ממטפפ 4 שפת 6- נושאים מתקדמים. 5ה גבל ול [ עבור למצב 86 אבי 1 7 תצט את הצלמה הנובחית לור המטריצה. 1 0 הסח (הפדירו את המר . 0 תח אחהדבים הורמאליים 1 יי טפיוה ונה לשומה החונה //; ("שמל. ל חס" חמ םמה / וסט אפצם בגב צורפלגגי ד וטואל ב 1/7 [ לבלפני פמט בוטר /1 שמ [ צבט את הראשן בול = :(בשטמלא ג4,20/ 219 1 0) הבאב צבע את הפנ בסגול. /) ; (בשפשלט, 204 ב4ב .229 0,37) המאב ו יור התמונה טל רפע הפמ /1 2 70 אש וסט אשתט שגמ הצגת הציר מצייהו בר וימוליצ 1/7 [ סג את חן הדף קמטר 1 4-ה חש את המר באמקט = מע וויי 01950 גמ יציאה מטחרת מהתובוי 72/7 [ מס את המר באמ קט שח 1 מ זר למצבמקפט / מ סגירח תומת התמה 1 [פשלו) אשש0ב מ הצמה שגמ [ | ציור לגב דף וטואל 1 הצגחהוף הויטואלי 1 הטתן ללחצת מל בלהו 1 ב פרק 10: שילוב תמונות בפורמט ₪1 = 195 פרק 11 זמן בפרק זה נלמד לקבל מידע אודות הזמן והתאריך הנוכחי. / נלמד לקרוא את הזמן והתאריך הנוכחי משעון מערכת 205.. / נלמד לשנות את הזמן והתאריך שבשעון מערכת 205.. / נלמד לבנות קוצבי זמן (פזסו שוניס. / לסיום, נפלוש לפסיקה 9 וכך נוכל לבנות קוצב זמן שיעבוד ברמת החומרה.. גם הפעם ניצור בעצמנו יחידת תוכנית לטיפול בומן, לא נשתמש בתוכנית הספריה .שחו המסופקת עס המהדר. נעשה זאת מכמה סיבות. > ביחידת הספריה המקורית מתקבלת השנה כשדה (וגטץן וו בתוך רשומת דמך וא המחושב על פי הנוסחה: 1900% - (שנה נוכחית)", נוסחה זו גורמת לתאריכים שגויים, החל משנת 2000. + בפרק זה נלמד ליצור קוצבי זמן שונים ברמת התכנות וברמת מערכת ההפעלה. (באמצעות פסיקות), דברים שיחידת הספריה המקורית אינה תומכת בהס. > מייד נגלה שאין וה מסובך לקבל מידע אודות הזמן והתאריך. 1 קריאת הזמן והתאריך במעט כל תוכנית מחשב משתמשת בנתוני הזמן והתאריך, לכן חשוב שנלמד כיצד ליקרואן. נתונים אלה מהמערכת. תחילה, עלינו להנדיר רשומה אחת שתכיל את נתוני הזמן, ורשומה שנייה שתכיל את נתוני התאריך. הומת ומ | 386886 ססמסמם שעת // א מתג זקות // תג מאיות הנייה // 7 6 שפת 6- נושאים מתקדמים. ושומת תארי // | 806988 מסמעום ם | פ 6ח4 וד 4 ₪ ה / קריאת הזמן הנוכחי משעון ₪05 כדי לקרוא את הומן הנוכחי משעון 005 יש להפעיל את פסיקת 005, שמספרה 21% עם. פרמטר 2600%. לאחר הפעלת הפסיקה, ערכי האוגרים ישתנו באופן חבא. אוגר ₪ יביל את נתוני השעות. אוגר ₪ יכיל את נתוני חדקות. אוגר 6% יביל את נתוני העניות. ואוגר 6 יכול את נתוני מאיות השנייה. שימו לב! הערכים בשעון ובתאריכון 905 מיוצגים במבנח הקסדצימלי, אך אין צורך. לחמיר אותו, כי המהדר יעשה זאת באופו אוטומטי. וכרו, כאשר מדפיסים הודעות עם תר הבקרה %6, יודפס ערכו העשרוני של המשתנה, וכאשר משתמשים בתו הבקרה א%, יודפס. הערך ההקסדצימלי (ראו פרק 2, יעבודה בסיביותיי. אם כן, ניתן בקלות לכתוב פונקציה לקריאת הזמן הנוכחי ולהיעור בפונקציה 86או, כפר שלמדנו בפרק 3. הפונקציה נראזית כך. (1+86* 6(60ח:2 ססטע25) 0002186 בצמש [ 1:88 ספת מסצמט הפעלת פסיקה 21 עם פרמטר 26008 / |/ 2000א0- 1.8.88 | (0821,83900,83980) 10586 עדכון רשומת הזמ / 28-4969808 מחצ וה .260.0 6-25-3תנ 61.מ.6-288-3208תצם 1 ה פרק וו זמן ‏ 197 קריאת התאריך הנוכחי משעון ₪05 כדי לקרוא את התאריך הנוכחי משעון 005 יש להפעיל את פסיקת 005 מספר 21% עם. הפרמטר ו23001. לאחר הפעלת הפסיקה, ערכי האוגרים ישתנו באופן הבא. אוגר 6 יכיל את היום הנוכחי. אוגר 0% זכיל את החודש הנוכחי. אוגר א6 יכול את השנה הנוכחית. שימו לב! נתוני השנה נכנסים לאוגר = (אוגר כפול) כי לייצוג השנה דרושות. 4 ספרות, ולא 2. גס את הפונקציה לקריאת התאריך הנוכחי נממש בעזרת 86וח, כמו שעשינו במימוש. הפונקציה הקודמת. הּ ו י' ' שימו לב ! התוצאה צריכה להיות חיובית. לדוגמה, אם ההפרש בין שדה השניות הוא שלילי, יש להפחית דקה משדה הדקות ולהוסיף 60 לשדה השניות. כמו כן, לגבי שדה הדקות והשעות. נסו לכתוב פונקציה דומה המקבלת ומחזירה רשומות תאריך. 1 ז גם כאן יש לשים לב שההפרשים יהיו חיוביים. 2 עדכון הזמן והתאריך עדכון הזמן הנוכחי בשעון ₪05 לעיתים נרצה לשנות את השעה הנוכחית. גס לביצוע פעולה זו נשתמש בפסיקת 005 מספר. 218% והפעם = עם הפרמטר 20000. לפני הפעלת הפסיקה יש לעדכן את ערכי האוגרים באופן הבא. אוגר 6 צריך להכיל שעות. אוגר ₪ צריך לחכיל דקות. אוגר 6% צריך להכיל שניות. אוגר /6 צריך לחכיל מאזיות שנייה. 8 שפת 6- נושאים מתקדמים. . הפונקציה לעדכון השעה תיראאה כך. (פת3? 80הממ3? שסנוצם5)שה50071 בס [ 1998 05עה הסצחט עדבון האוגרים בזמן הרצוי //// 186 - 0.ת.00ע4 9ץ - 01.ת.4900 - 4.ת-4900 4900-41-10 הפעלת פמיקה 21 עם פרמטר 28008 1 / 042600- 8%. .4900 (81988 ,21986 ,586)021ה1 תזכורת: הפעם כתבנו ".106 ולא "<-שאויי כמו בפונקציה לקריאת השעה, משום. שרשומת הזמן מועברת הפע 306/ 9 , ולא 866/655 /8 באמצעות מצביע. וראו פרק 1, "תקציר פקודות בשפת שי עדכון התאריך הנוכחי בשעון ₪05 גס כשנרצה לעדכן את התאריך נשתמש בפסיקת 005 ממספר 21:4, והפעם = עם הפרמטר. 00%. לפני הפעלת הפסיקה יש לעדכן את ערכי האוגרים באופן הבא. אוגר ₪ צריך להכיל את חיום. אוגר 6% צריך לחכול את החודש. ואוגר 6 צריך להכול את השנה. שימו לב! וכרו להכניס לאוגר 6% את השנה בייצוג של + ספרות. גם את הפונקציה לקריאת התאריך הנוכחי נממש בעורת 86ואו כמו במימוש הפונקציה. הקודמת. פרק וו זמן ‏ 199 . 3 יצירת קוצב שניות (טיימר שניות) ברוב התוכניות והמשחקים יש שעון המתעדכן אחת לשנייה. כעת, כשאנו יודעים לקרוא את. הומן משעון 05פ, נוכל בקלות לבנות קוצב זמן שניות, שלאפשר לעשות כל פעולה שנרצה. בכל פעס שתחלוף שנייה אחת. תחילה נכתוב פונקציה המחזירה את מצב השניות הנוכחי. (9018) 985 מתג [ 4960 9865 הסצתט הפעלת פסיקה 21 עם פרמטר 200% / 0828 1.8.88 1 החזר את מצב השניות 0 / (מ08-8.8ע1) מע 1 וננדיר משתנה גלובלי שיכיל את הערך בו השניות צריכות לחיות בתקתוק הבא, כלומר ערך. הגדול באחד מערך השניות הנוכחי. פת4 משתנח זה צריך להתעדכן בכל שנייה, כדי שיכיל את הערך של השנייה הבאה. שימו לב. שאם השנייה הנוכחית היא 55, יש לעדכן את התקתוק הבא בערך 0 (ולא 60). נפתור בעיה. זו באמצעות שיטת קידו "מודולו א " (הערך הבא הוא שארית החלוקה ב-60 של הערך. הקודם + 1 (5 5ה1) 0556%8801566ק0 מצס [ 5 (591) > 106למאש לאחר שמגדירים משתנח שיכיל את ערך השניות בתקתוק הבא, עלינו לכתוב פונקציה. שתבדוק, האאם ברגע וה מתרחש תקתוק. כלומר, האם ברגע זה ערך השניות שווח לערך. שבמשתכה 46417%!, וא כן, נחציר ערך 'אזמתי (9046) 9406 מתג [ 5-0 שפת 6- נושאים מתקדמים. אפ יש תקתוק // החזר את // אחרת החזר שקר. // 0 1 לסיום, נכתוב פונקציה המאתחלת את קוצב השניות (טיימר השניות) שבניו, ומכינה אותו. לפעולה על ידי שליפת ערך השניות הנוכחי, ועדכון המשתנה 1664116 בערך הגדול ממנר 1-3 (9088) עש0110:ב0 הבס [ 0 גפ יכולנו לבנות את קוצב זמן השניות בצורה הרבה יותר פשוטה, על ידי בדיקת ערך מאיות. השנייה. בכל פעס שערך מאיות השנייה הווא אפס, פירושו שעברה שנייה. אם כך, מדוע לא עשינו זאת? אם היינו בוחרים בשיטה השנייה והתוכנית לא חיתה בודקת את ערך מאיות השנייה בדיוק. במאית השנייה בה מתחלפת השנייה, הייו "ימאבדים'' את התקתוק (ערך מאיות השנייה. לא יהיה בדיוק אפס, ולכן התוכנית לא תוהה שהיה תקתוק). מכיון שמטרתנו ליצור קוצב. זמן שבין תקתוקיו, התוכנית תבצע פעולות אחרות, עלינו לוותר על השייטה השנייה הנוחה. כי אינה מתאימה ועלולה לנרום לאובדן מידע השינוי. לעומת זאת, כשבודקים את ערך השניות, יש טווח של שנייה שלמח בח אפשר לבדוק את. התקתוק, משום שלא מתייחסים לערך מאיות השנייה. משך זמן זה מספיק כמעט תמיד. לזיהוי מעבר השנייה. אם כך, בתוכנית הראשית נוכל לבנות לולאת המתנה כדוגמת הלולאה הבאה. /((ע05)88,8ס5053מסא! 26 () 5צתמא! 46 (110%0!) שנצמה לולאה זו מחכה לתקתוק, ללחיצת מקש או ללחיצה על לחצן העכבר, ורק כאשר אחד. משלושת הגורמים הללו יחזירו יאמתי - נצא מהלולאה ונוכל לבדוק מה גרם לוציאה. מהלולאה (תקתוק, מקש או עכבר) ולפעול בהתאאם. ומה אס בכל זאת אנו צריכים לבצע פעולות שנמשכות יותר משנייה אחתו במקרה זה, קוצב. זמן השניות ייעצר. צריך ייה לאתחל אותו מחדש, לבדוק כמה זמן עבר ולעדכן את המונים. המתאימים בתוכנית. לרוב, כשמשתמשים בקוצב ומן שניות, הפעולות המתבצעות במהלך התוכנית כתגובה ללחיצת מקש או לחצן בעכבר, נמשכות פחות משנייה א הפעולות. נמשכות ומן רב יותר, סביר להניח שנכתבו בצורח לא יעולה) ומה נעשח אם איננו רוצים להציג מונה שניות על המסך, אלא רק למדוד את משך הביצוע. של תהליך ממושךו במקרה זה נשמור ברשומת זמן את הזמן המדויק לפני בצוע התהליך. פרק וו זמן 2010 ברשומה נוספת נשמור את הזמן לאחר ביצוע התהליך, ונפעול על שתי הרשומות האלו את. פונקציית ההשוואה או הפרש הזמנים. אך מה נעשה אס בכל ואת נצטרך להצוג מונה שניות, או לבצע כל פעולה אחרת בומן קבוע. במהלך ביצוע של תהליך ממושך! במקרה זה, הטיפול בקוצב הזמן צריך להיות ברמת. מערכת ההפעלה, ולא ברמת התכנות. בהמשך הפרק (סעיף 11.5) נלמד כיצד לעשות דאת. ה לעיתים רוצים להפעיל את התוכנית תחת מערכת ההפעלה סאוו בתוך. 2 חלון, ולא במסך שלם. כדי שקוצב זמן השניות יפעל כהלכה גם במצב זה, יש. לבטל במאפייני קובץ ההרצה - 6 (לחצן ימני על סמל הקובץ ובחירה. במאפיינים). אם העכבר חורג מגבולות החלון אל הרקע, השהו תמיד את. תושים גג דוגמה לשימוש בקוצב ומן (טיימר) חשניות, נמצאת בסוף הפרק. 2 שפת 6- נושאים מתקדמים. . 4 השעון הפנימי (18.2₪2) אם נרצה לבצע פעולה כלשהי בכל מספר קבוע של שניות ולא בכל שנייה, נוכל לעשות זאת. בקלות בעורת קוצב השניות שיצרנו. אך מה נעשה אם משך זמן ההמתנה אינו מתחלק. אס במהלך ההשהיה, איננו רוצים שהתוכנית תבצע דברים אחרים, אנו יכולים לחשתמש. בפונקציות ההשהיה המוכרות של יחידת הספריה "605.8 (66₪/0/45 - פונקציה המשחה את פעולת התוכנית למשך %5! אלפיות השנייה (מילי שנייה) (5660)5 = פונקציה המשה את פעולת התוכנית למשך 5 שניות. אך מה נעשה במקרה בו לא נרצה להשהות לחלוטין את ריצת התוכניתז לשם כך, נוכל. להיעור בקוצב הזמן הפנימי של המחשב הפועם בקצב של 18.2₪, כלומר 18.2 פעמים. בשנייה. ישנו מונה בזיכרון, שבכל פעימה כזו ערכו גדל באחד. נגדיר מצבוע על המונה חזה. 000580 בב 86מ3פתט +86סמע 0 ( מצסא4) > 0100%18> 4עסטם גודל המונה הוא 66א6%, מילה כפולה חיובית, וידוע כי חערך המקסימלי של משתנה מסוג זה יבול להגוע ל- 5,296,967,295. אם נחלק ערך זה ב-18.2 (כי יש 18.2 פעימות בשנייה, נחלקו שוב ב-60 (60 שניות בדקה), נחלק שוב ב-60 (דקות בשעה) ונחלק שוב ב-26 (שעות. ביממה), נגלה כי מונה זה יתאפס רק לאחר למעלה מ-2700 ימים! אם כך, מונה זה בהחלט. אמין בשבילנ. עכשיו נוכל לנצל את המצביע שיצרנו כדי לבצע פעולות בכל א פעימות (בקצב /4ו18.2. נעשה. ואת בדרך דומה לאו שבה בנינו את קוצב זמן השניות. נקרא את ערך המונה הנוכחי ונוסיף. לו ערך המייצג את כמות הפעימות, שאנו רוצים שיחלפו עד שייהשעון יצלצלי ונשווה בי שני הערכים עד לשוויון בפרק 13 ייעכבר גרפי מונפשי, נראה דוגמה לשימוש בקוצב /18.206 5 פלישה לפסיקה 8/1 למדנו ליצור קוצב זמן של שניות וקוצב ומן שיפעל בעקבות פעימות מונה 18.2%6. עם ואת, שני קוצביס אלה מהווים פתרון ברמת התכנות בלבד, ואס יש בתוכנית תהליבים ממושבים, קוצבי זמן אלה הם חסרי תועלת. כדי להתגבר על הבעיה, עלינו למצוא פתרון ברמת מערכת ההפעלה+ שימו לב! מומלץ לקרוא תחילה את פרק פרק וו זמן 203 בכל פעיממה של קוצב הזמן הפנימי (0ו18.2), קורה דבר נוסף מלבד קידום המונה - מופעלת. פסיקה /ו8. אס נפלוש לפסיקה זו ונכתוב לתוכה תוכנית שירות (6/58 משלנו, נוכל לבצע כל. פעולה שנרצה, לאחר כל פרק זמן מדויק המתחלק ב- /ו/18.2, בלי להתחשב במתרחש. בתוכנית עצמה. ניתן לעשות זאת כי הפיקה מופעלת ברמת מערכת ההפעלה ולכן הוא. יכולה לעצור את הרצת התוכנית הפעילה, כדי לבצע את הפקודות הכלולות בח (בתוכנית. הפסיקה). תחילה עלונו לשמור את הפסיקה המקורית בתא ריק, נניח 103, ולטעון לתוך תא 8 במער הפסיקות את הפסיקה שלנו. נעשה ואת כך. הפונקציה מקבלת מצביע לפסיקה //‏ (() (עפ1י) ףְטצעסמה1 בסט) 560158 גמ [ שמור את הפסיקה המקורית בתא. 103 // 0 ((103,0809605)8) 00 הכוס לתא 8 את הפטיקה שיצרת. /// 15 נכין גם את הפונקציה שתשחזר את הפסיקה המקורית, ונפעיל אותה בסוף התוכנית. 50060115 4צסט ו 0 8, 183(( עכשיו, כל שנותר לעשות הוא ליצור את תוכנית השירות לפסיקות (058 שלנר שימו לב! בתוך ה-158 חייבת להיות קריאה לפסיקה המקורית (ששמרנו בתא 105), מכיון שייתכן שתוכניות אחרות הפועלות ברקע משתמשות בה. אם איננו רוצים לבצע את הפעולה בתדירות של 18.2/6, ננדיר מונה גלובלי שבו נכניס ערך, שיאמר בכל כמה פעימות אגו רוצים לבצע את פעולות תוכנית הפסיקה שלנו. בתוכניתת השירות לפסיקות שניצור, נפחית את ערך המונה באחת ונבדוק אם ערכו אפס. אם כ -. נבצע את הפעולות הרצויות ונאתחל אותו מחדש בערך הרצי. להלן תוכנית לדוגמה הפולשת לפסיקה וו8, ובכל 5 פעימות מציירת כוכבית על המסך. כלומר, כוכבית תצויר על הנוסך כ-3.6% פעמים בשנייה [18.2/5). התוכנית נמצאת בתיקיה של פרק זה בדיסק המצורף (תחת התיקיה 0008%59281). 7 םה ה 5 בטה בל בסה "הקחוק. ל 5 4 שפת 6- נושאים מתקדמים. . הפפיקה החדשה שלנו //‏ (שגמט) שמנקא מקרדסמאהג בגב / הפעלת הפיקה המקורית משמרנו בחא 203 // :(4:78 0350 0060103 יי [ מק ספ 7 שחש ו [ שחוור הפסיקה המקורית /, 0918 55:נ0זסט מה שגמ ו (193 שט 9 מ 00 (פנ') שקמממטה. 8גמק) םפבו-א שגמ ו ור את הפפיקה המקורית בפא 105 // 0 :((8)סמטסט 102) םטוא הכנס לתא 8 את הפסיקה שיצרגר // 0 מ הצמה שגמ 7 מהמ 16 את הפטיקה שיחרצר // מ בל וד לא בלחץ מקש בלשהר // 0 0 שחזר את הפטיקה המקורית 7 ה 6 שבב קוצב הזמן למדנו ליצור קוצב ומן שאינו ברמת התכנות, אבל ראינו שהוא פועל בכפולות של 18,206 בלבד. אך מה נעשה אם נצטרך קוצב ומן שיפעל בתדירות יותר נבוהה כדאי לוכור שקצב של 18.2 פעמים בשנייה הוא מהיר למדי. אם אין לכם צורך בקוצב זמ בתדירות גבוחה מזו, אני מצוע לדלג לסעיף הבא. אם המשכתם לקרוא, אני מניח שהדיוק והמהירות באמת חשובים לכם. לשם כך, כדא שתכורו את שבב קוצב הומן שבמחשב (רכיב 8253-5). פרק וו זמן 2050 בכל מחשב קיים שבב קוצב זמן הפועל בתדר של 0ו1193180, כלומר 1195180 פעומות. בשנייה, וזה המון: בין תפקידיו הרבים של שבב זה, שאין זה המקום להרחיב עליהם, הזא. להפעיל את הפסיקה + בתדר 18.2/6. אבל מסתבר שתדר זה ניתן לתכנות על ידי פני. לפורט 40% ולפורט 43%. ביצד מתכנתים את שבב קוצב הזמן, כדי שיפעיל את פסיקה 8 בתדר הרצויו תחולח עלונ. לחשב בכל כמה פעימות של שבב קוצב הומן להפעיל את הפסיקה. נעשה ואת על פי הנוסחה. וספר פעמיםי". לדוגמה, אם רוצים שהפסיקה תופעל. בתדירות של 200%, כלומר כל מחצית מאית שנייה, נציב כך את הנוסחה, ונקבל במשתנה. 10/0 > פתסת כדי לתכנת את התדר החדש, נצטרך לבצע את הפעולות הבאות. 1 נשלח לפורט 434 את הערך 361 2. נשלח למורט 40/1 את שמונה הסיביות הראשונות של המשתנה שחטח. 3. נשלח לפורט 40/4 את שמונה הסיביות האחרונות של המשתנה שחטו. נעשח ואת כך (למידע נוסף, ראו פרק 2, ייעבודה בסיביות' 2 (0843,0836) ממטסקטמם - 0 שתסה, 040 טסקטה / ו את שלוש הפקודות האלו נכלול בפונקציה הטוענת את ה-1% שלנר 561% כדי לאפס חורה את השבב כך שיפעיל את פסיקה 8 בתדר ברירת המחדל 6ו18.2, נבצע את. הפעולות האלו. 1. נשלח לפורט 4631 את הערך 3611 2 נשלח לפורט 40% את הערץ פ. 3 נשלח לפורט 40/1 את הערד ט. את שלוש הפקודות האלו נכניס לתוך הפונקציה המשחורת את הפסיקה המקורית. 3 שימו לב! הפעם נוצר מצב הפוך. אנו רוצים שהפעולות יתבצעו בכל פעם שהפסיקה מופעלת. ואילו את הפסיקה המקורית עלינו להפעיל רק בתדירות שלה. קודס ביצענו פעולה בכל כמה. תקתוקים של ;וו .18, ואילו עכשיו אנחנו מבצעים פעולות בתדירות הגבוהה מ-שז 18.2 לכן, כל מספר פעולות כאלו נפעיל את הפסיקה שתקדם את הקוצב המקורי הפועל בקצב. של שו 18.2. אם כך, הפעם המונה *אותחל בערך "18 / תדריי ובכל פעם שערכו יהיה שוו. לאפס, נפעיל את הפסיקה המקורית (ששמרנו בתא 103 6 שפת 6- נושאים מתקדמים. 7 יחידה לטיפול בזמן ממשק היחידה : מסשק היחידה לטיפול בזמן ותארי . 7 0 תה רות 0 7 5צסא, 0ב 054גפתט 5מ4מקצ הומת ומ | -שהמשגל מנמם שעת // שג ות // ה אשמב שרות // תב מאיות השברית // 20 5 מתב 0 השומח תארי ו | 80הופט ממס ה שחר דש // שג שג //‏ ה צסתב פרק וו זמן 207 . 7 0 פונקציות / 7 (שמגלי ב%5משגל מסטצום משגלוטם בגב 0 פונקציה לשליפת הזמן משפון הדום. פומטרים מועברים - משצפ" | :שת ע5) - ושומת ופ (מחג? מ%5משגל סטצום | מ-גל0-ם בגב ₪ פונקציה לערכון הזמן בשפון הדום. (55בפ. במלמטבם משטצום) םובנובם בגב 0 פונקציה לשליפת התאריך משפון הדוס פומטרים מועברים - 65מ0* (44585%א 8) -‏ רשומת תאריך. (5פ2 ש%5ממב2 משטצום) :בוש בגב 5 פונקציה לעדכון התאריך בשעון הרו 5 5שפ שמ ₪ פונקציה לבדיקת מצב השגרוה 8 שפת 6- נושאים מתקדמים. בנ קט גב / פונקציה לערכון התקתוק הבא מ שמצס ממ / פונקציה לבדיקת תקמוק. שרך מוחזר - אמח 6 יש תקחוק. 0935 מתגלט-באט בגב / פונקציה להפפלת טיימר השנ"ות. 7 0 הוה 0 7 בסה הג ה 5פסא, בב 84ת9גפתה 5מ4מקצ מצביע לקוצב הזמן הפנימי שע 18.2 // ; 0500000665 (* 8מכאק) = 8בעמסבטד באכה פרק 11 זמן 209 הומת ומ | תצק שמשו שפות // 1 שת ו ו אשת שגות // 1 שת מאיות השגרוה // מא שמ השומח הארי / || לפטמ שמשו ונפ שג ורש וו 1 אשת ג // 1 שג ו הפשו הב 1 מ 7 0 פונקציות / 7 (שמגלי -מלמשגל מסטצום | משגלובם בגב 8 פונקציה לשלימת הזמן מפעון פס מועברים - מחגלי (8שמאאצת ל) ‏ - רשומת וב קה 23 פם פרמטר 1/0908 0 6 שפת 6- נושאים מתקדמים. 188 30.ק1? מבמת20)מממ3ומט גבל / פונקציה לערכון הזמן בשעוף דופ עדבון האוגרים בזמף הרצוי //// הפעלח מסיקה 23 צט ברמטר 20008 [/1/ 7 7 (05בפ? -שלםשמט 5במ0ם) ומכ טפט גב / פונקציה לשליפת התאריך פשעון דום. פומטרים מוטברים - מ:5פ* (5פמ:גצג 87) - רשומת תארי הפעלת נסיקה 23 עס פרמטר 5008 ///// 00 שרבוך רשומף חזמ //// 308 0ם5%ממם מבמ0:) םומ2טמט גב / פונקציה לערבון התאריך בשעון דום. פרק וו זמן ‏ 211 שרכון האוגרים במאריך הרצוי ]11 קה 23 עפ פרמטר 08ב // 1 0 וס ששפ שת 8 פונקציה לבדיקת מצב השניות הפעלת מסיקה 23 עס פהמטר 30908 // 1 0 ה 8 9 %ג) 0110א/מט בק בגב 0 פונקציה לעדכון החקתוק הבא 9 86 591 = 08בלטפמ ג תג 0 פונקציה לבריקת תלתו שרד מוחזר - אמת אס יש תקהוק. 2 שפת 6- נושאים מתקדמים. 1-0 תתו ו 9 6 ו יי חר החור קר ו ל 0938 שמתגלטצבאט שגמ א פונקציה להפפלת טייפר השנ"ות. 7 תוכנית לדוגמה התוכנית לדוגנמה משתמשת בטיימר השניות, שבו כל שנייה מציגח על המסך את הזמ הנוכחי. התוכנית תסתיים בהקשה על מקש בלשהו. תזכורת ! במחרוות הפלט השתמשנו בתו הבקרה "26.%". בצורה זו הערך מוצג תמיד בשני ספרות. לדוגמה, בשעה 12 ו-29 שניות, המחרוות שתוצג על המסך תהיה "12.00.29 הקבצים שיש לצרף לפרויקט כדי להרקף את הדוגמה הם; 4/0006 ו-6ושטחוד. למידע. נוסף קראו את נספח ר. 0 בסה תנמשהב וס הצפה שגמ [ ג חול הטרימר // א פרק וו זמן 213 4 שפת 6- נושאים מתקדמים . פרק 12 אנימציה בפרק זה נלמד ליצור רשימת אנימציה ולהצוגה על המסך. / נלמד ליצור רשימה מקושרת של מסגרות (3065ז:), אשר מכנים אותן. לעיתים גם בשם שקופיות (51065), / נלמד לחלק תמונת אנימציה למסגרות (פסוחפזת) מתחלפות היוצרות אשליית. תנועה, ולשמור אותן ברשימה המקושרת.. / לסיום, נלמד כיצד להציג קטע אנימציה מתוך רשימת אנימציה, 1 רשימת אנימציה אנימציה מורכבת מרצף של מסגרות (מז?), המתחלפות בקצב כלשהו. במעט בכל תוכנת מחשב נוכל למצוא קטעי אנימציה. קטעים אלח ניתן לייצג בדרכים רבות. כגון קבצי סרטים, אני בחרתי להראות לכם דרך פשוטה יותר לעשות זאת. את המסגרות (שהן למעשה תמונות בסגנון שקופיות) נצייר זו לצד וו בתוך תמונה אחת. ונשמור אותה בפורמט ש8%%. לדוגמה, אס רוצים להראות שעון שמחוגיו מסתובבים, נצייר. שעונים רביס זה לצד זה, ובכל אחד מהס נצייר מחוג בוווית שונה (ראה תרשים 12.1 את תמונת האנימציה נטען לתוך רשימה מקושרת של מסגרות (נחלק את התמונה השלמה. למסגרות, וכל אח מהן נשמור בחוליה אחרת ברשימה), כדי שנוכל להצוג את קטע. וו תרשים גג אם היונו מציירים כל מסגרת בתמונת ל%/₪ נפרדת, במקום לצייר את כולן בתמונה אחת, היינו מבובויס מקוס יקר בויכרון, כי בכל תמונה 8% יש כותרת בתחילת הקוב (ראו פרק. קודם) פרק 15: אנימציה ‏ 215 רשימה מקושרת היא אוסף של חוליות, המקושרות צו לוו על ידי מצביעים. כל חוליה. 7 תמונת המסגרת (536) הנובחית / / ששהמתם מסטעמם המסגרת הבאה //‏ ; מאשת* ששהצהת מסטעמם המסגרת הקודמת //‏ ; טשצש* ששהצהת פסטעמם החוליה הראשונה ברשימה נקראת "עוגן" והחוליה האחרונה היא ייסוף הרשימהי". לפעמים. חוליית העוגן מכילה נתונים, כמו שאר החוליות ברשימה. בדוגמה ו בחרתי שחוליית העוגן לא תכיל נתון כלשהו, אלא רק מצביע אל החוליה הבאה. נהנתי כך, מכיון שזו חשיטה. המקובלת (למשל, במקצוע ייעיצוב תוכנ" הנלמד בבתי ספר שונים), אך בהחלט אפשר. לכלול נתונים בחוליית העוגן כ אין זו בהכרח השיטה הפורמלית המוסכמת, ורבים דווקא אינם נוהגים כך. "= יתרון השיטה בכך שהיא חוסכת שימוש מסורבל ומבלבל של מצביע, המצביע. על מצביע, המצביע על מצביע..ולכן היא יותר פשוטה ללימור. בדוגמה שלהלן כל חוליה מכילה מצביע אל החוליה הבאה וגס מצביע זפ אל החוליה. הקודמת. רשימה מסוג זה נקראאת רשימה מקושרת דו-כיוונית 0 /0060:003פ) והיתרוך בה הואא, שאפשר לנוע ברשימה בשני הכווונים, לפנים ולאחור. בתרשים 12.2 מוצגת דונמה לרשימה דו-כיוונית בעלת שלוש חוליות מידע. תוטים 12 ברשימה שלנו, המידע חוא רשומת 8/7 בשם 56. 2 יצירת חוליה לכל מסגרת לאחר שהבנו כיצד בנויח תמונת האנימציה ורשימת האנימציה, עלינו לכתוב פונקציה. המקבלת עוגן, תמונת אנימציה זמידע אודות רוחב כל מסגרת (וזפזז) בתמונת האנימציה. הפונקציה תחלק את תמונת האנימציה למסגרות ותקצה לכל אוחת מהן חוליה אחת. 6 שפת 6- נושאים מתקדמים. ,306עפ11?' עבט םי הנחת 6סמצ6ם) 01ת8ג10 מה1 ד ! פמט 66תפחם פשטפמם |( הג:ב ,155%' , 6סת* סמתצחת מסטעמם |( 065ב2קפסהטת ,1 מעטק 587% הו משתנה מסוג חוליית אנימציה ששימושו היחידי הוא לסמל את גודל החוליה. בהקצאת הווכרון (כפי שתראו בהמשך). ראשית, נגדיר כי סוף הרשימה מצבוע על העוגן (אתחול הרשימה כריקת) תפס = 1856 לאחר מכן, עלינו לטעון את תמונת האנימציה לרשומת לואם. ((8מב118%ט, קתס8) 634087 ה!) 1% (" תמונת האנימציה לא (מצאה ") 65מ1צם צא אם העינה נבשלה /// 0 ל לאחר טעינת תמונת האנימציה, אנו יכולים לחשב כמה מסגרות יש בתמונה הואת. נעשה. זאת על ידי חלוקת רוחב התמונה (610-קחזפ) ברוחב המסגרת (תו6וא). מ16%/ מ58%ש פחל = פשתב - עכשיו, כשאנו יודעים כמח מסגרות יש לנו, נוכל לכתוב לולאת ז9! שתרוץ על כל המסגרות. (%+1נ8מהב:ם?0הנמ1->1-1/1) צבצ לכל מסגרת נבצע את הפעולות הבאות. 1. נקצח מקום בויכרון לחוליה. |( (3%20 512608) 1100גח = שמת 1. נעדכן את נתוני הרוחב והגובה של השדה 9% בחוליה. - מ050%. 40 | הסופת פחע = %מ640מ 2940 3. נקצח מקום בויכרון לתמונת המסגרת בחוליה (10ג6-6פ). + 01458 (6צסא))100נמם (* (6395ת. פס 40 .8853- 4 נכניס את החוליה שיצרנו לסוף הרשימה [ראה תרשים 12.3 ה = מאסה <- 1856 ג 1955 > ששעם <- 66מת 1 פע = מאסה <- 1856 פרק 15: אנימציה ‏ 237 [ שפפית5 >< שקופית 4 ₪ 4-1 - 3 בצ --פם שנ | 06 - פאשת <- 1956 7 6 שקופית 5 שקופית5 שקופית4. 1996 = לפק <- משמת ו ב <= בת חי ב [שקופית 5 ]>< שפיתו > א 5 > [>1> < מנטו = פאשת <- 1956 תרטים 313 8 שפת 6- נושאים מתקדמים. . 3 חלוקת תמונת האנימציה לאחר שיוצרים חוליה לכל מסגרת ומחברים את החוליות לרשימה אחת, עלונו לחלק את. התמונה עצמה למסגרות ולעדכן את נתוני התמוונה בכל חוליה (56.8864). נעשה זאת. באמצעות הפקודה (5026 5066 66)/קטשז) המעתיקה חוצ)י זיכרון בגודל 506 מ-69זשס. אל 464. בכל פעם, נעתיק חוצץ בגודל שורה בשקופית, מתמונת האנימציה אל המסגרת. שאליה השורה שיוכת. הגודל (46) יחושב כמכפלת אורך מסגרת בגודל בית ((90)9(06:*תושא. המקור (50/6) ממנד נעתיק, יהיח החוצץ של תמונת האנימציה (836.פ), בהי של. מכפלת גודל שורה במספר ההעתקות שהתבצעו עד כה. היעד 0680), יהיה חוצץ השקופית המתאאימה, בהיסט של מכפלת גודל שורה במספר השורה. 00-00 כך נראה קטע הקוד המבצע זאת. גודל שורה במסגרת // (שפעט) 545605 * תו18ט - 156פמהג1 תחילת המקור בתחילת נתוני תמונת אנימציה. 868 - 00ב גובה המסגרת // 1 1-00) 8, ו עבור אל המטגרת הראשונה // א6מל-0068 - 066 לבל מטגרת / 0 3-0010) 1% עדכון היעד // 2 060-2046.0854001065456%4ה - מ5מ העתקת שורה מהמקור ליעד // -‏ ; (8688,50866,11065146) עמשמ עבור אל המסגרת הבאה. // 0 קדם את המקור כגודל שורה // 5-1 0 4 מחיקת רשימת המסגרות עד עתה למדנו לטעון תמונת אנימציה ולחפוך ותה לרשימה מקושרת של מסגרות. במהלך. יצירת הרשימה הקצנו מקום רב בזיכרון, לכן בסוף השימוש ברשימה יש לשחרר את. כדי לשחרר את המקום שהוקצה לרשימה, צריך לשחרר חוליה אחר חוליה עד לסוף. הרשימה. לפני שחרור כל חוליה, עלינו לשחרר גם את המוקום שהוקצה לתמונה השמורה. בה (על ידי הפעלת הפונקציה 0056887 על השדה 8 בחוליה), רק אחר כך נשחרר אות. המקום המוקצה לחוליה עצמה. פרק 15: אנימציה ‏ 219 שימו לב! כדי שנוכל לעבור לחוליה באה ברשימה, עלינו לשמור את כתובת החוליה. הבאה, לפני שמשחררים את המקום שהוקצה לחוליה הנוכחית. קטע חקוד גרוה כך. עד פוף הרשימה ‏ // - שמור את מיקום החוליה הבאה. /// ( 85שה<-006 = פחש פגור את תמונת המסגרת. /// (910<-066ה) 8 10508000 שחרר את זיכרון החוליה. /// (0086) 66צל עבור אל החוליה הבאה. /// חס = סה 5 סיכום לסיכום, פירוט מלא של שתי הפונקציות, אחת לטעינת אנימציה ושנייה לסגירת אנימציה. נושא וה מסתכם בשתי פונקציות בלבד, ולכן בחרתי לצרף אותן ליחידה ק8%אטוע" ולא. ליצור למענן יחידה נפרדת. היחידה המעודכנת נמצאת בתקליטור, בתיקיה של פרק זה. (תחת התיקיה 009459281, השומף אבימציה ש | ההג סמטצו תפונת השקופית (מממצל) הבובחית // | סל בממשחט מסצי המסגות הבאה //‏ ; מאמחי סממצהת מסטצא המפגרת הקורמת // 2( צשנק* המפבהת מסטצא (מ5פא 4צסא | ממבאש11?' =בלם תפקם' םבהגהג 5ממש23) 125404 ממ ּ/ פונקציה הפוענת אנימציה מתוך תמונה אל רימת אנימציה |( סט במתפחט מסמצפ ו מנטא = מפמש מצעם רו מנשל = ממצמספי שמש 6 שפת 6- נושאים מתקדמים. שפן את תונח האבימציה / ((54100556 קמ42) לאמ4צפ |) 14 ו |; ("תמונת האנימציה לא נמצאה') 5פמגאם א מ הטפיגה גבשלה ]1 9 מצמופט ו סוף הרשימת מצביע על הפובן //, = וספר הפקופיות באבימציה / / 145 קמל - 5שםב::08שא חכנת רשימת האנימציה, והקצאת חוליות לכל המסגרות /1/// ל [ מ 0-ב הקפה זיברון למסגרת /, (2055 21:508) ממ11בה - מממ הויו ו יו מספיק זיכרון') 56פגם א מ ההקצאה גבשלה ]1 ( ספל ו עדבן את רוחב המסגרת //, א 7 1855 :ל מ8מת עדבן את גובה המגרת /, 95פצפת קמל - 1986שה על .פמ ((990:ה קחמ * ה6ב9 (שמפא))-ס11בת (* מצעם)-ב0ב4 מ221-באמה)) 14 6 ההקצאה גבשפה ]1 ו ו מספיק ולכרון') +פהגאם ו טפט הכנסח המסגרת לרשימת האבימציה ///// / הכנסת נפוגי התמוגה לשקופיות הריקוה שיצרבו ברשימה ///// גודל שורה במפגרף / (מיצט)05מ15= * ונגס - 55ג8ממג תחילת הפקור במחילת נתוגי תמונת האנימציה // | ב6ב. קשמ - מסצמטל בגובה מפגרף / אפ עבור אל המפגרת הראשוגה / ל פרק 15: אנימציה = 223 ג 0 אב 0-ב) שמ ב הפתקת שורה מהמקור ליעך // + וש עבור לשקופית חבאת //, הדפ את מצביט המקור בגורל שורה // 356פפת13 -ף מסצטב .34 ל ו (מספפי סמלגהג לסמשם) 6 גנצהגהב5בם מצמל 0 פונקציה המשחררת זיכרון שהוקצה לרו ער פוף הושימה // שפור את מיקום החוליה הבאה // שחרר אף זיברון החוליה / עבור לחוליה הבאה / 6 תוכנית לדוגמה בעורת התוכנית לדוגמה, תוכלו לראות כיצד משתמשים ברשינות האנימציה ומצוגים את. המסגרות על המסך. התוכנית טוענת תמונת אנימציה בעלת שתי מסגרות, שמצויר בהן יצור רו (תרטים 054) , תושים 14 2 שפת 6- נושאים מתקדמים. כדי למנוע עיוותים, השתמשתי בשני דפים זירטואליים באופן הבא. הרקע נשמר בדף מספר /. בבל צעד > הרקע מועתק מדף 2 לדף ג. + המסגרת הנוכחית מצוירת על הרקע שבדף + > דף 1 מועתק למסךך 5 לכל מי שלמד את המקצוע "עיצוב תוכנה": כאשר רצינו להגיע לנתון הראשון עוקב ברשימה ( עוגן רשימה 60 4 + קוראים זאת כך: המיקום ברשימה של העוקב של עוגן הרשימה + מוכנם. 5 מכיון שהמסגרת הראשונה נמצאת בחוליה שאחרי העוגן, נממש ואת כך 6אסה<-ה06ה3/8 = שתבפעהת שימו לב! אל תתבלבלו בין משמעות הח בביטוי האלנוריתם לבון משמעותו בביטוי המימוש. באלגוריתם, הח מסמן פעולת הצבה לתוך מצביע ל. לעומת ואת, בביטו המימוש, הח מסמל מצביע לשדה ברשומה. הקבצים שיש לצרף לפרויקט כדי להריץ את הדוגמה ם: 08256 6 טפוש ו-6. בוח למידע נוסף קראו את נספח ד. ד ם בצה ללרה/ /5% הכרזה על משתנים חיצוניים הנחוצים מהיחידה - 256אמט לייק הכרזה על מצביע הממ //, |( אמט ממעל הצמוא הכרזת הפצביע לדף ולרטואלי תפי //, - | הכרזת הפצביע לדף וירטואלי תמי 2 //, 0 2שפפלט' ממץל הצשאאה הכרזת מפריצת הפלפה // / [411)256(/3ל מעל הצמצאה פרק 15: אנימציה ‏ 223 השומח המוגה בור למצב 256 צבפים / פצינת לוח צבטים מקובץ // הספר (השחר) אף המפך // פתח את הדפים הווירטואדייס /, מפינת חמונת הרקצ לרטומת התמוגה // הקצה מקום לטובף 7 שפינת תפונת האבימציה לרשימה / מע אף המסך באפקף 85-ל // פוור למצב מקסט / ו ציור על גבי דף וירטוארי // הצבע על המסגרה הראשוגה / פטיגת הרקט לרף 2 / עד הקצה הימני של הפסך // שפן 96 הרק מדף 2 ל-ב / 4 שפת 6- נושאים מתקדמים. שח ממהקחע מממא ד גמ ו ו 0 1 44 0 0 "פס ג (1915הת 215866) סם11בה ההשפ0המ (198, לקמ נמטד השלה:א) בהג3 1 מ מצמ ציור פל גבי דף ולרטואלי ב ///// [ לש 255 0 (9581 0.0 קספ אפפ | (מ49) לאם-פמ (958) 06ב מצמ לציאה מפוררת מהתובגית ///// [ ( 0 יי 0 )גבס מצמ הי 7 ל הלה 0הג 7 ממבצלה 5 ומ [ ( לט ל 5 צייר את המסגרה //‏ :(1,40//5-561 (255-מהב:/הבא):)לאפאממ פפן את דמ ב לפמר 0 6 לא מוף הרשימה / חפה שממ צטהצא) + וו דמ 5 ווח 5ב פיקסרים ימיבה ו 5 4 ו א 0 תושים 115 בפרק הבא, תוכלו לראות דוגמה נוספת לרשימת אנימציה, המכילה יותר משתי מסגרות. (או שקופיות, למי שנוהג לומר כך. פרק 15: אנימציה ‏ 225 . פרק 13 עכבר גרפי מונפש בפרק זה נלמד להשתמש בעכבר במוד גרפי (069וח %ח30ז),וליצור לו מצביעים. גרפיים מרשימים. / נלמד להתאים את פונקציות העכבר לרזולוציה של המוד הגרפי (1380), נלמד להחליף את המצביע המקורי בתמונת קוחט. / נלמד ליצור עכבר מונפש ("עכבר חושבי). 1 עעבבר גרפי בפרק 8, ייעכבר למסך טקסטי", למדנו להפעול ולהשתמש בעכבר במוד טקסט. עשונו ואת. בעורת פסיקת העכבר ו/33. כדי להתאים את הפונקציות שכתבנו בפרק 8 למוד גרפי 1314 עלינו להמיר את קואורדינטות העכבר לרוולוציה הדרושה במוד ו134. תזכורת! בפרק 8 גילינו שהמוסך הווירטואלי של העכבר עובד ברוולוציה של 640%200. רוולוציית מסך הטקסט היא כוכור 80425. לכן, כדי להמיר את קואורדינטות העכבר. לקואורדינטות המסך הממשי, חילקנו את ערכי הקואורדינטות ב-. הפעם נתאים את הקואורדינטות לרוולוציה של מוד ו/13 שהיא 200א320. כיצד נעשה ואת הרוולוציה האנכית היא 200, גם במסך העכבר הווירטואלי וג במסך הממשי של מוד 1314 לכן אין צורך לבצע המרה. הרזולוציה האופקית של מוד 13 היא 320. שימו לב, ש-320 זה. בדיוק מחצית מ-640 (הרזולוציה האופקית של העכבר), לכן נחלק את ערכי הקוארדינטות. האופקיות ב-1. תזכורת! ניתן לבצע חלוקה מהירה בחזקות של 2 בעורת הזת סיביות (כפי שלמדנו בפרק. 2 יעבודה בסיביות"). 6 שפת 6- נושאים מתקדמים. 6 ₪ 9 ₪0 2-2 0 תרשים .3 ל ו מ 0-ה 3 יי תרשים .3 פרק 13: עכבר גרפי מונפש = 227 2 יצירת מצביע לעכבר גרפי אם ניקח את היחידה להפעלת עכבר טקסט שכתבנו בפרק 8 ונשנה את כל המרות. הרוולוציה, כפי שלמדנו בסעיף הקודס, נוכל לראות שהפעם מצביע העכבר נראה כמו חצ. לבן, ולא כמו מלבן כמו המצבוע במוד טקסט. ניתן לשנות את צורת המצביע הגרפי בעורת. פסיקת העכבר ו/33 עם פרמטר ל, אך כל מה שניתן לשנות זה את צורת החץ. החץ יושאר. לבן ופשוט. כוצד נוכל לוצור מצביע מרשים יור אם נטען תמונת ל818, שמצויר בה מצביע עכבר (כדוגמת ל ), נוכל להשתמש בה כמצבוע. לעכבר במקוס המצביע המקורי. נעשה ואת כך תחילה, נסתיר את המצביע המקורי של העכבר 6ס66%/+), אחר כך נמצא את. הקואורדינטות הנוכחיות שלו, ובסוף נצייר את תמונת העכבר בקואורדינטות שמצאנו. כך למעשה אנו משתמשים במצביע בלתי נראה, ובמקום המצביע המקורי אנו רואים תמונת. - כדי להציג את תמונת העכבר, נבצע את הפעולות הבאות. 1. נטען את הרקע מדף וירטואלי 1 לדף וירטואלי 2 (591ע/, 302פ) מק 2 נצייר את תמונת העכבר במיקום (9086%,/00961וא) על דף 2. ; (25062/, טסוו לספטסו, 3. נמתין להשהיית תותח האלקטרונים (כדי למנוע עיוותים), ב > לסיוס, נטען את דף 2 אל המסך. (92הק/, 053 206 3 עעכבר מונפש בתוכנות ומשחקים רבים, לרבות מערכת ההפעלה וופחוו, כאשר המשתמש מפעיל תהליך. ממושך, מצביע העכבר מתחלף במצביע מונפש (כדוגמת שעון החול של פאטחוו). כך המשתמש יודע שייהמחשב עסוק" ואינו תקוע, או חסום. בוצד נוכל להכון עכבר מונפש כוה? בסעיף הקודם למדנו להחליף את המצביע המקורי של העכבר בתמונה כלשהי, ובפרק. הקודם למדנו כיצד ליצור אנימציה. אם כך, כל שעלינו לעשות וא להחליף בכל פעם אאת. התמונה (שאנו מציגים במקום המצביע המקורי של העכבר), במסגרת (86ז") הבאה. 8 שפת 6- נושאים מתקדמים. תחילה, עלוו להכון תמונת אנימציה ולצייר בה את המסגרות זו לצד וו. המצבוע המונפש. אינ חייב לחיות שעון חול, וניתן לחנפיש כל אובייקט שתרצו. בתרשים 13.3 תוכלו לראות דונמה לתמונת אנימציה של שעון אנלוגי 0 תוטום 3 כדי לחשתמש במצביע המונפש ובמצביע הדומם, עלונו להרחיב את פונקציית אתחול. העכבר, כך שתבצע את הדברים הבאים: בדיקת תקינות העכבר, הסתרת המצבוע המקורי. של העכבר, טעינת תמונת העכבר הדומם לרשומת פוחפ בשם זוב)טפטסוז, ולבסוף טעינת. תמונת העכבר המונפש לרשימת אנימציה שבראשה העוגן ח06ו630טסוא. הפונקציה תיראה כך. ( 19116%36הג' חבס , מתמת118עצטם* שממם ) 5531100056ה1 סחג [ ג 1988 08פא מסצמט האם קיים עבבר מחובר ומותקול <> /// 315015ת0פממ0/ן 15 בדיקת מסטר הלחצנים בעבבר והאם הוא מחובר. //// / 000 1.8.8 | ( 81988 0 שַצ83 ,באס ) 586ה1 58.א.1960 = 18ממ1צמטהספטמ .3968 = פה0500660תמ אם אין עכבר מחובר ומותקך. /// 0113016 פטס ן) 15 (" לא מצא עכבר מחובר ") 5 הצצ 20 1 מען תמונת עבבר זומם // ((שהגזום1!פענס,:8600טכ//8) קא348שת!) 1% [ (* מעינת תמונת העבבר הדומם נכשלה ") 5ףמצקן צא אם הסעינה נכשלה. //, 9 םע 0 אתחול ושימת העבבר המונפש //// / ( (קפז 2:2601) בסבנגה = הסהַ40תתספטמת (0 == ה066תת6פטמען 15 | ("אין מספיק זיברון") 5 מ צם. םל 0 פרק 13: עכבר גרפי מונפש = 229 0 = סאפח <- 40068האמפממור 0 = טסצם <- 40668הא6פממור סעינת רשימת רשומות העכבר המונפש / ( (101160308,12הה,85ַ10התספטמא) 1תת0 בת 1 ) ,1 ; ("טעינת תמונת העכבר המונפש נכשלה") 5 ףהצפם. צא אם הטעינה נבשלה. /// (0) מצטסע שקופית האנימציה הראשונה היא בעוקב ₪ל הענג. /// פאשה <- 305680068 = 56:ההספטמות אתחול העכבר התבצע בהצלחה / 1(3) 0+ התוכנית הראשית צריכה להחליף את שקופיות העכבר המונפש בפרקי ומן קבועים. ניתן לעשות זאת בעזרת כל אחד מהטיימרים שהכרנו בפרק 11, "ומן". בתוכנית הדוגמה שבסוף. הפרק, תוכלו לראות כיצד מטפלים בעכבר המונפש בעזרת מונח 18.206. 4 היחידה לעכבר גרפי מונפש קראו בתשומת לב את הממשק והמימוש, ושימו לב להבדלים בין תוכנית זו לבון התוכנית. שבפרק 8. תוכנית הדונמה שבסוף הפרק, תעזור לכם להבין כיצד הכל מתקשר וכיצד מתפעלים את העכבר הגרפי/מונפש. ממשק היחידה 7 0 צ א רות / 7 םה ה בשה 6 שפת 6- נושאים מתקדמים. לחצן שמאלי // 7 5 אסצנטם: >הגל-ב חן ימגי // 7 ב אסמנעמה הבלב לחצף אמצטי // 7 2 אסצנטמת המלבנ הברזה על מצביע המפך // ל פסצל הצמצטה חכרות המצביע לרף ולוטוארי מפי בק ל מטעל האמצאה הכרו המצביע לרף וירטוארי מפי 2 / 3862" טע האמטצה 7 0 ץצ הרת 0 7 ה ( ממנמא1גםגבג* -ל- | ממצאףנגפ:נם* צאלם ) מאטכא11ם:פהצ שמ / פונקציה המתקרנה ומאחחלה את העבבר ( לאמא 5םג ,לאמ( שה1 ,לתו שה ,להגא הב | מפַהבהמפטא מה / פונקציה להגדרת רחב פצולת העכבר. קואורדינטות נקודת הגבול הסינימלי - צהגא | אה קואורדינטות נקודת הגבול המקסימלי - לאל | אשת | (18סל | פַהב9נמסתגס שגמ / פונקציה לביטול התחום הנוכחי של העבבר פרק 13: עכבר גרפי מונפש = 231 |? ( עד הג ( א' לה3 | מכסאמעל להג) מבטבולםבמכא .גב ּ, פונקציה לבדיקת סטטוס הטכבר ומיקומ? > מ5מצאצת ל) - יקבל את מספר הטור עליו עומד המצבי ץע (545595א 8) - פוסד המלביע יקבל את מספר השורה עדי מסססטם (5ממקלשת ץ2) - יקבל את מעב הלחצנים הנוכחר באופן הבה | ( + שח | אי הג | מכצסטע טהב | 505שמזלםבמכא בגב ּ/ היה למציאת מסספטפ - איזה לחצן לברוק (שמאה ילוס הלחיצה האחרונה. > (430885ת פ) - יקבל את מספר הפר + (34325%5 9) - יקבל את מספר השהרה. | ( צר ףג | +% שח3 | מכסטטל אתב ) 5כלםַבהנםלםבמכא .גב ּ/ היה למציאת מפשטמע - איזה לחצן לברוק (שמאלי-ם, ימב ויקוט השחרור האחרו 7 2 שפת 6- נושאים מתקדמים. |; ( חפל שמהקמ לסטצסת | ץ מה1 | < סה:) מפמשאאמתב שגמ / פונקציה המציגה מחדש את העכבר על הפסך במיקום (צי) - המיק, + - תמיק ששעי - מצביע לרשומת פמן העכבר הרצוי האופקי של העכבר 3 0118 5שטכאםפמנם שגמ פונקציה הסוגרת את העבבר ( מפנה את הזיכרון שהוקצה ) 7 0 הנה 0 7 לחצף שמאלי // 7 8 אסצנטם: 5הגק-ב חן ימגי // 7 ב אסצנעמה הבלב לחצן אמצטי // 7 2 אסבנטמת הבלב פרק 13: עכבר גרפי מונפש = 233 הכרה על משתנים חיצוניים הנחוצים מהתובנית - 256אל ייד הברזה פל מצביע המפך // מל מסצל הצמנא חכרזת המצביע לרף ולרטוארי מפי ב במסבליל ממל הצמנא הכרזת המצביע לרף ולרטוארי מפי 2 סל ממצל הצמצא מפפר הלחצנים בעבבר /, 0 ה ושומת תסונת המצביצ הרומם /, >מסשבטמע במתשאם אסמצו עוגן לרטימת רשומות המצביע המונפש //‏ ; קה המקסנהתםצמטאעד ששלבהג ממטצו מצביע לחוליה ברשימה האנימציה // | שבלגהנמפטכאל בשתצהת אשמו קואורדיגטות העבבר ‏ | +מצטמע | %שפטמא מב מצביע דומפ או ונפש ל // מ מב לאצגי העבבר // יי 7 0 שק + ורות / 7 ( 88-55נ3גהג* מבל: , ממנאנגלזום* שבלם ) מצטכא11ם5פת3 מב " פונקציה הסתקינה ומאתחלת את העבבר האפ קיים עבר מחובר ומוחקל ‏ //, תחפ מ בדיקח מספר הלחצנים בטכבר והאס הוא מחובר ///// קריאה למסיקה 33 עמ פרמטר 0 /, (4595ש | שג ,בבאס) 6פאת כתועאה מהפסיקה, אוגר %ג יכיל "אמת" אם יש עכבר מחובר ומותקף * /* במחשב ,ואוגר אפ יכיל את מספר הלחו אין עכבר מחובר ומוחקף /, המשא ) 4 ו "לא נמצא עכבר מחוברי) >תגאק 4 שפת 6- נושאים מתקדמים. פען את תפונת העבבר הרומם // ((שב/מנב/:בם :ככשצטאם) לאמם4בשהו) 4 ך +(" פעינת תפונת העכבר הרומם נכשלה ") ששתצחק שא אמ הפעיגה גבשלה /, סמל ו הכב לבפ ו (שכי 24580%) -110בה - הש05גהתמצטמא שמא 6 [ 2 סמל ו >אפף ל 00568 הטמו טק טפינת רשימת רשומות העכבר המונמש // ( (12/שש:אנב תה הש גהנש שטםא) 1201 ו )‏ 6ב (" שעינת תפונת העבבר המונפש נכשלה "| שתגסק שא אמ הפעיגה נבשלה /, סמ 9 | לאט ל- מש-10מלמשות - מג5והגמאוקון שחחול הטבבר ההבצע בהצלחה /, סמל |( לאבע להצ לאמ( שה+ ,תנע הג ,אהגא הב | מפַהבהמשטא מה / פונקציה להגדרח רחב פצולת העכבר. קואורדינטות נקודת הגבול הסינימלי - צהגא | ארמ קואורדינטות נקודת הגבול המקסימלי - לאל | אש בריקף תקרגות החחום //// (199לצשמא || 9>צמצא || פנבללאבא || מאאמגא ) 6 6% אם החחום חורג מגבולות המפך // 9) מצמסמל התאמת הקואוררינטות למרחב הטבבר ///// הגדרת הפחום האופק ///// פרק 3: עכבר גרפי מונפש = 235 קה 3ב עמ פרמטר 7 // 0 : ( סג | 4455 | בבאס | 6פאת הגררת חפחום האגב // 1 קריאה לפסיקה 31 עם פרמטר 5 // / ( 4155 | 44 , בבאס | 86אתב חזות הססן למינה השמאלית טליוגת אל החחום ///// שה 33 עם פרמטר 4 // -‏ < ( 58צ3, | קמצגם , באס )06את (1) מאטטפ ( סל ) ההכ שגמ -, פונקציה לביטול התחום הנוכחי של הטכבר 0039199 טש הפפלת פונקציית ההגבלה עם קואורדינטות גבולות המסך // 9 הג ( אל לה4 | מכסצנעי להג) הבטב)לםבמכא בגב 0 פונקציה לבריקת ססטום העכבר ומיקומר = (448558ת ל) - יקבל את מספר הטור עליו צומר המצבי ץ (מפפקאצת על) - יקבל את מספר השורה עליו פומד המצביע. מספסטם (55מ:244 ל) - יקבל את מעב הלחצנים הנוכמ" באופן הבא / 6 שפת 6- נושאים מתקדמים. קריאה לפסיקה 32 עם פרמטר 3 // < ( 41555 קמדגם נבאס | 86פתב שרכון מב הלאצבים /, = סג - הבטטמטה עדכון המיקום האופקי והמרה לערכי מפך גרפי /, ל 3 - אל ב ער צל שח | אל שה: | מבוטמע מה: | 05ל2שם01םפמטא שגמ / פונקציה למציאת יקוס הלחיצה האחרונה. מספפטפ - איזה לחצן לברוק (שמאלי-0, למגל-1, אמצ 8432085 5) - יקבל את מספר הטור + (50:555ג 8) - יקבל את מספר הפורה. קריאת לפסיקה 33 עמ פרמטר 5 // / ( 4158 | ַפמצו ‏ בבאם ) 86ה טרכו הקואורדינטות //1/ ( + שח4 | א" הב | תמצטטם מה3 | 5בק2 מספפטט - איזה לחצן לברוק (שמאלי-8, למגל-ב, אמצער-1) ץ9) - יקבל את מספר המור .ג /8) - יקבל את מפפר השורה. קריאה לפסיקה 33 עמ פרמטר 6 // / ( 61584 | ַפצצו בבאם ) 86תב פרק 13: עכבר גרפי מונפש = 237 דכו הקואורדיגטות //// |( פמטל סמהקאע לבס | ע לה3 | = שהג) מבמטאאסתם בגב 0 פונקציה המציגה מחדש את העכבר על הממך במיקום (צית) - הטיקום האופקי של העבבר + - הפיקוס האנכי של העכבר. שמעי - מצביע לרשומת ממן העכבר הרצוי ערכוף הקאורריגטות החרשות של השבבר // 1 צרור הפצביצ על המסך //// שר את הרפע 0 צייר את העבבר //‏ :(52קמל לשפטכא םפש תה לאמשמ המפיגו להשהיית הותח האלקטרובים /, טגב פדבף 98 המסך / ל 0 10 שגמ 5 פונקציה הפוגרת את העבבר(פנה את הזיכרון שהוקצה) גה שטםא) 56 הבמב 8 שפת 6- נושאים מתקדמים. תוכנית לדוגמה תוכנית הדוגמה, מציגה על המסך את העכבר הגרפי בכל פעם שנלחץ לחצן העכבר. המצביע. משתנה ממצביע מונפש (שוז בכל שתי פעימות של 18.21₪) לבין מצביע דומס. התוכנית. תסתיים עס הקשה על מקש 5%. כדי לצייר את המצביע במקומו המתאים בכל פעס, התוכנית חייבת לעקוב אחרי כל שינור בסטטוס העכבר. לשם כך משתמשיים בשתי קבוצות של משתנים ששומרים את נתוני העכבר: משתנים גלובליים מתוך היחידה (406%!, 6%פטס/%,פצפזל), ומשתנים תראמים. בתוכנית עצמה (8, .₪ הלולאה העיקרית בודקת בכל פעם מהו סטטוס העכבר הנוכחי [הערכים מתעדכנים. במשתנים פ, א ו-ץ), ובודקת האם חל שינוי באחד מהפרמטרים האלה, על ידי השוואתם עם. המשתנים הגלובליים של היחידה. 018-515 || <-!אספטמט || ש-!88שעק | ,1 1 | אס חל שינוי באחד הפרמטרים, התוכנית תגיב בהתאם ותעדכן את הפרמטרים הגלובליים. שיימו לב! נהוג שהתוכנה תגיב ללחיצת עכבר רק בומן סיום הלחיצה (שחרור העכבה) ולא. בומן תחילת הלחיצה. לכן, עלינו לבדוק כי בפעם האחרונה סטטוס העכבר הראה כי הלחצ. לחוץ, וכעת הלחצנים משוחררים. רק כאשר תנאי וה יתקיים, צריך להגיב ללחיצת העכבר. ובמקרה שלנו, נחליף בין מצביע דומס למצביע מונפשו. התנאי ייכתב כך. אם עכשיו המתיימה לחיצה // ( ק! 44 8פפפע | 18 יש לעקוב בתשומת לב אחר תוכנית הדוגמה, משום שהיא מסכמת למעשה את ששת. הקבצים שיש לצרף לפרויקט כדי לחר את הדוגמה הס : .08256 6 וחפאטו), .שווטא 6מפטטוה6 ו-6-פוחאוחה. למלדע נוסף קראר את נספח ר- אנא אי שנס הב הג 110ם) ששנס הג < שנס הב 40 שמשה ףשא מ4שנס הג טנסה פרק 13: עכבר גרפי מונפש = 239 - ו הכרזה על משתנים חיצוניים הנחוצים מהתובנית - 56כאל ליד הברזה פל מצביע המפך // ול מסצל הצמטצ חכרזת המצביע לרף ולרטוארי מפי ב // נשסבלל ממל הצמנא חכרות הסצביע לרף ולרטואדי מפי 2 // ססבל ממל הצמנא הכרזת מטריצח הפצשה // [3) 256 511 פסעל הצמפאה הכרזה על משתנים חיצוניים הנחוצים מהתובנית - מִמסאם ליד השומת תפונת המצביע הרומם // -‏ ; שנלמקטכא בשהקחם למוה האמנא עוגן המצביע המונפש //‏ ; השקסבההםצטכאל בשמבהת מממצוה האמלאה שקופיח נוכחית במצביע המונפש // - : ב:לבההמממכאל סמתגתת מממוצאם התוא מיקום אחרון של המצביפ / | ל6פמסא, למנמ מהג הצמנא מצב הלחצנים האחרוף // 0 סוג המצביע (רומפ או מוגמש) // 0 אצטכע הג מממא הכרזה ל משתנים חיצוניים הנחוצים מהתוכנית - ממגהעא ליד ג 8 סא הצמוא מ שה שגמ ו 3 0 9111 )0 נ1ל94 2 חפט 5 7 0 חל טמ )אנבש נו) 14 ו "סמל אמט" ("4מטכע ממף מממא )8 הבא ו (גמה) הנפה שגמ ָ 6 שפת 6- נושאים מתקדמים. ו 0 שצף את הרפע 7 0 40 וי קבט את החקתוק הבא ץ ג שש ) בצה ו קרא את הנתונים הנוכחיים של העכבר // -‏ : (ע85,5וקו)מנסבזבםצטכא ( 0102292646" || ץד!+הפמכא || =-ו%בפמטא || קה!מצמצק 8 6 השתנו נתוני העבבר או יט "תקחוק" / [ הי הקוק // סב -< 8באשמבשי) שב [ [0ג3האמאמשאו) 14 ה מכ = ם01ב :מב ו 6 עבשיו הסתיימה לחרצת //‏ ( ש' 46 מפמצק ) ב פדכן מצב לחצביס / יי 6 המצביע מוגדר במובפש /, א 4 ((546כ-9:5ה562טם)8 שמת ו 5 0-7 אש 0 ג [ שמ // 00 (27 ה ()מ:טמ,) אב [ ו לפואה מפודרת מחתובבית //// יי 0 ב 5 פרק 3: עכבר גרפי מונפש = 24 פרק 14 כונן התקליטורים (65-8₪014) בפרק זה נלמד על כונן התקליטורים -60-80%%. / נלמד לתקשר עם הכונן בעזרת 008%פוא, נלמד לקבל מידע אודות הכונן והתקליטור (הדיסק) שבתומו. גלמד לשלוט על מגש הפונן. נלמד להשמיע שורים ולעבור לרצועה (שיר) מסוימת בתקליטור. נלמד לעקוב אחר ראש הכונן. שפת 6- נושאים מתקדמים. 1 מושגים כלליים לפני שנוכל לתפעל את כונן התקליטורים, עלונו לחכיר מספר מושגים הקשורים בו. אם כץ, כדאי שנתחיל בשאלה הבסיסית ביותר מה זה 65-80%? 0-0 הם ראשי התיבות של 86005 00 ₪620 01 פוט ". מבנה כונך התקליטורים במחשב זהה למבנה הכוננים של מכשירי קומפקט דוסק המשמשים להשמעת. תקליטורי מוסיקה. עס זאת, בתקליטורים המיועדים למחשב, הסיביות הצרובות יכולות. לחתפרש כנתונים ולא רק כמוסיקה. יש מספר יתרונות לצורת אחסון הנתונים בתקליטור על פני צורות אחסון אחרות. למשל, אם נשווח את התקליטור לדיסקטים, נמצא שהוא יותר אמין מהס, כי לא יכול לחיגרס לו נוק משדות מגנטיים, ומבחינת הנפח, הוא יכול להכיל כ-6508 של נתונים (כמות השווה. לכ-450 דיסקטים). אם נשווה אותו לקלטת (קלטת מוסיקה, או קלטת של טייפ גיב במחשב) הוא הרבה יותר מהיר, אך אם נשווה אותו לדיסק קשיח, נמצא שנכון לחיום. הגישה לנתונים בדיסק הקשיח מהירה יותר. מדוע למשל, כונן התקליטור אינו מחיר כמו כונן דיסק קשיחו הסיבה לכך הוא. שהתקליטורים יועדו במקור למוסיקה (המנוגנת בקצב קבוע), ולכן הנתונים צרובים בהם. בצפיפות לינארית קבועה בכל מקום בדיסק. המשמעות היא, שבמסילות החיצוניות יש. כמות גדולה יותר של נתונים מאשר במסילות הפנימיות. הגישה לנתוני המוסיקה צריכה. להיות בקצב קבוע, ולכן מהירות הסיבוב (המהירות הקווית] של התקליטור היא קבועה. המהירות הזוויתית משתנה כשהראש האופטי וז, מכיון ששפת התקליטור כלפי פנים, או להפך. לכן, כשהדיסק מכיל נתונים המיועדים לגישה ישירה, יש צורך להא ולהאט את. המהירות לסירוגין כדי להגיע לנקודה הרצויה. לא ניכנס כאן לדיון פיסיקלי בנושאי. מהירות מעגלית, אך נסכם שבסופו של דבר הצורך בהאצה והאטה גורמים לסובוך, ולהאטת מהירות הגישה האפשרית לנתונים. הדיסק הקשיח המגנטי מקיר יותר, כי הוא בנוי ופועל בצורה שונה. במסילות החיצוניות. ובמסילות הפנימיות שלו יש כמות זחה של נתונים, לכן המהירות הזוויתית בו קבועה, ואי צורך בתאוצה והאטה הגורמים להאטת מהירות הגישה הישירה. פרק 14: כונן התקליטורים (0-80%)) = 243 - %- 5 22 1 א מה זה א₪15605? 5605 הם ראשי התיבות של "54164005 60-80 %1610:08 - הרחבות מיקרוסופט. לכונן התקליטורים, ובפשטות: תוכנית שירות של מיקרוסופט להפעלת התקליטור. זחר למעשה דרייבר (0ש6), הנוסף למערכת ההפעלה (205 או 6פ6חו/0, ומאפשר את הגישה. לכונן התקליטורים. לאחר שקוב זה נטען, ניתן לפנות לכונן התקליטור כאל כל כונן אחר. במערכת. אם כך, תוכנית הדרייבר 5%פ456! דואגת לכך, שקבצי הנתונים שבתקלוטור יהיו נגישים. כמו בכל אמצעי אחסון אחר. אך מה קורה אם לפנונו תקליטור שמע (אודיו) תמכיל. מוסיקה ולא נתונים דיגיטלייםז במקרה כזה, נצטרך לחיעור בפסיקה 204 המתקשרת עם. 145005 שמתקשרת עם כונן התקליטורים. נשמע מסובך! אל דאגה, במהלך הפרק הדברים יתבחרר. מיקרוסופט מספקת ללקוחותיה מידע בקובץ 05ג.45605%21, המסביר את השימוש. ב-45608%!. כל אדם שבונה כונני תקליטורים או כותב תוכנה המשתמשת בכונן כוה, צריך. להתייחס למידע בקובץ וה. גם כל הכתוב בפרק שלפנינו (אמנם בתמצית) מסתמך על. המידע מקובץ 1500521ו. אם אתם זקוקים למידע נוסף, קראו בעצמכם את תוכן הקובא, שניתן למצוא אותו באתרים רבים. "ספרים צבעוניים" ותקני בזז6ו5 וופוו יש תקנים רבים העוסקים בגישה למיקום מסוים בתקליטור. בפרק זה נשתמש בשנר תקנים. 809% ₪96 (הספר האדום) ו- 58718 הפו קבוצת תקנים אחת קרויה ייהספרים הצבעוניים". בתקנים אלה, כל מקום בתקליטור מקבל ערך המייצג את הזמן שחלף בתנועת הראש הקורא. זהו הזמן חדרוש להשמעת. התקליטור מתחילתו עד לנקודה המבוקשת. 4 שפת 6- נושאים מתקדמים. אנו מכירים מספר סוגים שונים של ספרים צבעוניים. + 8008 ₪66 - הספר האדום: מיועד לתקלוטוריס המכילים רצועות [1186%) מוסיקה. + 8008 פוש = הספר הצהוב: מיועד לתקליטורים המכילים קבצי נתונם. + 8096 0/8 = הספר הכתום. מיועד לתקליטורים הניתנים לצריבה. + 8098 806 - הספר הכחול: מיועד לתקליטורי לוזור אם הדבר נשמע לכם כמו בדיחה גרועה, או מוכיר לכם את המורה להיסטוריה מדבר על. הספרים הלבנים, תראו מייד שזה ממש לא מסובך. בפרק זה נלמד על תקליטורי מוסיקה, ולכן נשתמש בתקן של הספר האדום. בתקן זה כל. מיקוס בתקליטור מיוצג על ידי ערך בגודל מוילח כפולה במבנה :00558א4ו, המציון את ומך ההשמעה מתחילת התקליטור עד למיקום זה. כלומר, ארבע הספרות הראשונות מכולות. את מספר הדקות שחולפות מתחילת התקליטור, שתי הספרות שאחריהן מכילות את מספר. השניות שחולפות מסוף הדקה האחרונה, ושתי הספרות האחרונות מכילות את מספר. המסגרות (966), שחולפות מסוף השנייה האחרונה (יש 75 ממסגרות בשנייה) תקן נוסף החשוב לנו הוא 563 ו/0!, או בשמו המקוצר 56. על פי תקן זה, כל מקום על התקליטור מיוצג על ידי ערך 158 8/0560 5661 09631 המיייצג את מספר הסקטורים. מתחילת התקליטור עד למיקום הנתונים. גס ערך זה מוצג בגודל מילה כפולה. לשם מח עלינו להשתמש בשני התקנים, ואין אנו יכולים להסתפק בתקן אחד בלבדו תקן 86 , מאפשר לבצע חישובי מיקוס שונים. לדוגמה, כשאנו רוציס להשמיע שיר מסוים, עלינו יילומר" ל-%506% כמה סקטורים ברצוננו להשמיע. כדי לדעת מהו אורך השיר, נשמור במשתנה אחד ערך 5% של מיקום תחילת השיר, ובמשתנה אחר = ערך א5 של. מיקוס סוף השיר. הפרש שני המשתניס הללו יהיה מספר הסקטורים שבהס מאוחסן השיר. לעומת זאת, אם נרצה למסור למשתמש מידע אודות השיר, לא נכתוב לו את אורך השיר. במבנה 15%, כל ערך וה חסר משמעות עבורו. לשם כך, נשתמש בתקן הספר האדום השומר. את המיקום במבנה זמן. תחילה עלינו לפרק את מבנה הצמן [8155%//%ו1) לדקות, שניות. ומסגרות. נעשה ואת על ידי הפונקציה הזר (9י פסעם,5* שסעם ,9* בצסט,סט31/ בטסאם) 518668588008המ9ם בס [ פירוק ערך המסגרות. / 00 - תד פירוק ערך השניות / 00000500 5 שמנבט) - 8+ פירוק ערך הדקות // (6 << (0851250000 4 שמנבל) - אד שימו לב! גודל משתנה הדקות הוא מילה, ונודל משתני השניות והמסגרות הוא בית. נכו להיום, כונני התקליטור יכולים להכיל מוסיקה בהיקף של כ-74 דקות, אך דבר וה עשוי להשתנות בעתיד. על כן, בתקן הספר האדום הונדרו ארבע ספרות המייצגות את ערך. הדקות ולא שתיים, ורצוי להשתמש במשתנה בנודל מילה ולא בגודל בית. פרק 14: כונן התקליטורים (60-80%) = 245 . לאחר שלמדנו על ייצוג ערכים בשני התקנים, נכתוב פונקציות הממירות ערכים מתקן אחד. לאחר. הפונקציה המירה ערך בתקן הספר האדום לערך 5%), תיראה כך (שטנט/ 4:ס0ם) 8890002015₪ת1צסטה0ם 4עטשם ו (שתבצל ,580 ססעם 0 ((6הבצל4 ,5860 ,201 ,ס1ב0) 64500%ה18:0פהבעם מספר המסגרות //, אפ + טניות (בטנייה 5? מסגרות) ‏ //, * 560 (0:4ם)-+ אפם + זקות 60 שניות בדקה) // :60 * 75 * הגת (4צסשש) -+ 1 7-0 א )סש שימו לב! על פי המידע ב-5608%21/א, כשממירים ערכי משתנים בין שני תקנים אלה, יש. להפחית שתי שניות. על כן הפחתנו 150 מהערך 5%) (2*75=150) הפונקציה המירה ערך 15% לערך על פי הספר האדום, תיראאה כך. ו פונס טה0ם 3עסשם ור (שתבצל ,50 ססעם 0 + סנפ מספר המסגרות הערדפות לאחר חלוקה לשניות. //, 5 5 שע1ג/ = סמבצק החפר את הממגרות העודפות. //, עפחבצת >> סטבמע חלוקה לטניות (בשנייה 5? מסגרות) = / / = טנג מספר השניות העודפות לאחר חלוקה לדקות / / נמ = 0 החטר את השניות העודפות. //, טנג חלוקה לדקות. //, | גגמ = הצל הרכבת מבנה הזמן מל (פחבעת (0:4א) ‏ - שה > (60 (400:8)) -+ שה 6 > (תגא (400:8)) -+ שה 0 )998( בואת סיימנו את ההקדמות המייגעות ואפשר להתחיל בתכנות עצמו. 6 שפת 6- נושאים מתקדמים. [ 2 בדיקת אתחול הדרייבר 560% והפעלתו בדיקת אתחול ה-א15605 לפני שמתחילים לתקשר עם 5006%, עלינו לבדוק האס תוכנית הדרייבר טעונה בויכרוה, והאם יש בכלל כונן תקליטור במחשב. לשם כך, נשתמש בפסיקה 214 עם פרמטר 1500%. הפסיקה תחציר אמת באוגר א אם. הדרייבר 5006 מותקן ובמחשב קיים כונן תקליטורים. באוגר 6 תוחזר אות הכונן נעשה ואת בעורת הפונקציה 86וחו, כפי שלמדנו בפרק 3. הפונקציה תורואה כך. 90 9 סע [ מ -/ 18.8.56 > 0 0 אם הדרייבר 45003 מותקן ונמצאו בונ /// .01900 1% [ שמור את אות הבונ // 1960.8.06- מטבעם.מפה01פצם והחזר אמ 1(0) תפטסם+ 1 אחרת החזר קר // נ(0) מצעסם: 156 שימו לב, שאת אות הכונן שמרנו ב-6א060100.014פ. 11019 - זר רשומה גלובלית, אשר. נשמור בה נתונים שונים אודות הכונן והתקליטור שנמצא בו. הגדרנו אותה כגלובלית, מכוון שכמעט כל פונקציה שתראו בהמשך משתמשת בנתונים השמורים בה. ססטטסם צפם סע סצצם עו 2 018619508 מס 08בצ1557 ססע 0 5018גם [ אות הבונ מילת שגיאה. מספר השיר הראשור מספר השיר האחרון פוף הדיסק (בתקך השדה הראשון ברשומה זו יכיל את אות הכונן. שאר השדות יוסברו במהלך הפרק. פרק 14: כונן התקליטורים (0%א-60) = 247 מהלך ה"שיחה" עם 5655%ו1 לאחר שמוודאים שאכן מותקן כונן תקליטורים במחשב, אפשר להתחיל לתקשר עם. הדרייבר א15005, או כפי שמקובל לעיתים לומר, ילשוחח" אתו. לשם כך נשתמש בפסיקה. 2% עם פרמטר 1510%. פסיקה זו מצפה לקבל מצביע לבלוק נתונים (תוכן השיחה), אשר תוכנו ונודלו ישתנו על פר הפעולה המבוקשת. קראתי לתהליך מתן ההוראות ל-145005% -"שיחהי", ולאזור הנתונים. '"תוכן השיחה", כי באזור זה המשתמש מכניס נתוניס שונים והדרייבר עונה לד (מוסיף. נתונים כתגובה לנתונים שהמשתמש הכניס), ממש כמו בשיחה בין שני בני-אדם. לפני הפעלת הפסיקה, האוגר 65 יכיל את הסגמנט של בלוק הנתונים, אוגר אפ יכיל את. ההיסט של בלוק הנתונים בתוך הסגמנט, ואוגר 6 זכיל את אות הכונ. מכיון שאנו רוצים לכתוב פונקציה אחת שתטפל בכל הפניות אל הדרייבר, פונקציה זר צריכה לקבל כפרמטר מצבוע מסוג 6ו, שלתוכו נכניס את הכתובת של תחולת בלוק. הנתונים (תחילת נתוני השיחה). נפעיל את הפסיקה באמצעות הפונקציה 86%זחו, כפי שלמדנו בפרק 3. הפונקציה תיראה כךך ( 338100%פ* 54ט | 8%ם7050א1ם :סי [ פה הסצחט תפ ססמססם פרמטר הפטיקה אות הבונ ההיסט של בלוק הנתונים. הסנמנט של בלוק הנתונים. הפעלת הפטיקה = 49008.2 (טנעם .2801012 = אם.א-06ע 1 /391000זבם) פע ל - אם.א.00ע1 (0ס6391גם) 56 פע - 06.85עב ((81960/88880,ַ21/8195א0) א86מה1 1 ההבדל היחידי בין ישיחהי עם הדרייבר 49605%! לבין שלחה רגילה בון בני-אדס היא בכך, שה-45605%! (מכיון שהוא דרייבר ולא בן אדם), אי יודע מתי השלחה מסתיימת. לשם כך. נקבע כי כל שיחה תתחיל במספר משפטים, או למעשה שדות קבועים, שיציגו מה רוצים. יילדבר" וכמה זמן השיחה תימשך. את תוכן השיחה נשמור במבנים. לכל סוג של שיחה דרוש מבנה אחר, המתאים לה, אך כל מבנה שיחה יכיל בתחילתו 5 שדות קבועים (יימשפטי פתיחהיי) אורך בבתים של בלוק הנתונים / פע יחידת משוגה / פע קוד טוג הפקודה / פע ב 85005 פמ שמור / [96569084)9 ממעם 8 שפת 6- נושאים מתקדמים. בשדה הראשון בכל שיחה (שדה 1 כאמר ל-א5008! ממחו אורך השלחה בבתים. השדח השני בפתיחת השיחה מיועד למתשבים בה יש ז89/ס, או מגשי תקליטורים, במקוס כונן רגיל. התקן מגשי תקליטורים מאפשר להכיל בו יותר מדיסק אחד (במחשב. רגיל יש מגירה אחת שבה תקליטור אחד). על כן יש לומר ל-5605%/! מהי יחידת המשנה, אר איזה מבין הדיסקים שבתוך הכונן אנו רוצים להשמיע. ערך וה יחיה מספר בגודל בית, בו אפס למספר הדיסקים שהתקן המנשים (806ו6) תומך בהם. נכון להיום, התקני מנשים. נפוצים במערכות סטריאו ביתיות או במערכות סטריאו לרכב, אך נדירות מאוד במחשבים. ביתיים. בשדה 5600006 נכניס את הערך אפס. השדח השלישי בפתיחת השיחה מציין את סוג השיחה. יש חמישה סוגים שונים של שיחות, שלכל אחד מהם קוד שונה (תרשיים 14.1). קוד וה נכניס לטדה 6966. קור סוג שיחה. 3 | בקשת מידע מה-א5סס5ו1 = דטקא1 וד106. 2 | מסורת מידע ל-5606%וו = דטפדטס .וד106. | הפעלת השמעה. 3 | השחיית השמעה. 6 | חידוש השמעה שהופסקה. תרשים ג השדה הרביעי בפתיחת השיחה, מיועד לקבלת הודעה מ-%5008! על ביצוע ההוראה. שקיבל, ואם קרתה שניאה במהלך הביצוע. לכן, את השדה 505608 לא נמלא למני הקריאה. לפונקציה 1/610%5606%, והוא יתמלא לבד על ידי 1456064 אנו נוכל לבדוק ואת בסיום. הפעולה. את הסטטוס נקבל במשתנה בגודל מילה. ראו את מבנה מילת הסטטוס בתרשים 14.2. סיבית 15 תכל אמת אס התרחשה שגיאה. סיביות 20-24 = | סיביות שמורות. סובות 9 תכול אמת אם הכונן עסוק בהשמעה. סובות 8 תכול אמת אס הפעולה הסתיימה. סיביות 0-7 = = | קוד השגיאה (אם סיבית 15 דולקת). תרשים ג פרק 14: כונן התקליטורים (60-80%) = 249 עלפי תרשים 14.2 ערך סיבית 15 יהיה אמת א קרתה שגיאה, לכן נוכל לכתוב פונקציה. הבודקת ואת. לדוגמה. (038ט) עמעעם מתג [ 7 + 1 080 תעמס, 56גם [ על פי תרשים 14.2, ערך סיבית 5 יחיה אמת אאם הכונן עסוק בהשמעה. במקרה זה, כל שיחה. שנבקש בה מ-%15006%, לבצע משהו שדורש הצות ראש הקריאה, תדליק את סיבית. על פי תרשים 3.2, סיביות ל-0 ילו את קוד השגיאה אס קרתה שגיאה (ראה רשימת. שניאות בתרשים 14.3 קוד תיאור השגיאה. | לא ניתן לצרוב לדיסק וה. 2 | יחידת המשנה אינה מוכרת. 2 | הכונן אוו מוכן 2 | פקודה לא מובנת. 4 | חל כשל בהעברת השיחה. 5 | אורך המבנה אינו נכון ₪ | תקלת טריקה. | מדית לא מוכרת. 8 | הסקטור לא נמצא. 5 | אין דפים במדפטת. | שגיאה בצריבה. ₪ | שגיאה בקריאה. 6 | שגיאה כללית (לא ידוע מה הנורם לשגיאה). ₪ | שמור = | חילוף דיסקים בלתי חוקי. תרטים 33 6 שפת 6- נושאים מתקדמים. . כתבו פונקציה המקבלת מילת סטטוס, ומציגה את תיאור התקלה שקרתה. היעזרו בתרשים 14.3 ובפרק 2, "עבודה בסיביות השדה החמישי והאחרון בפתיחת השיחה הוא שמור וגודלו שמונה בתים. לכן, לשדה. 999 אין צורך להכניס שום ערך. 9 בכל מקום בפרק זה, בו כתוב שמור או פפוחטפטה, הכוונה היא לכך שהשדה. "7 = שמור לתפקידים אחרים, שאינם מעניינו של המתכנת, והדבר אינו צריך. להטריד אותו. המידע המוסבר בפרק זה מתבסס על המדריך הבסיסי של מיקרוסופט ל-609%ו, שהוא המקור הבסיסי ביותר למידע בנושא זה, וכל תוכנה המתקשרת עם 156064 מתבססת עלי לאחר חמשת שדות הפתיחה, מתחילה הי"שיחה" עצמה. על תוכן השיחות המעניינות אותנר (לצורך השמעת תקליטורי שמש, נדון בסעיפים הבאים. 3 חדטפאז 1001 בסעיף הקודס לאנור שישנם חמישה סוגי שיחות (תרשים 26.1). בסעיף וה נכיר את הסוג. הראשון, הנקרא דטפאז 1061. בשיחות השייכות לסוג זה, אנו מבקשים מידע כלשהו ב לכל שיחות .10671 יש מבנה שיחה 8660 08) קבוע. 1 שפעם =פעם אורך בבתים של בלוק הנתוני: //. יחידת משנה // קוד הפקודה // ב שמור // שמור // בתובת פרמטר הבקרה. //. , גודל פרמטר הפקודה ‏ //. שמור // [0502083]4ת חמשת השדות הראשונים, הם חמשת יימשפטי הפתיחה", שהסברנו בסעיף הקודם. שימו לב! קוד הפקודה הוא 3 (ראו תרשים 4.1 פרק 14: כונן התקליטורים (0-80%)) = 251 מבנה זה, הוא המסגרת החיצונית של השיחה, המצוג ל-4506%/, שאנו רוצים לקבל ממנר מידע. את סוג המידע שאנו מעוניינים בו נשמור במבנה אחר = מבנה הבקרה 600190660 שאת כתובתו נשמור בשדה 6901866655 שבמבנה הנתונים, וכך הדרייבר 1506 יוכל למצוא אותו. בדי שיידע תי מסתיים מבנה הבקרה ויחוור אל מבנה הנתונים 812860פ), נשמור בשדה. 5 את גודל מבנה הבקרה, בבתים. לסיכום, לכל שיחות דטפוון 1061 יש מבנה חיצוני קבוע: מבנה נתונים, 0819866%, הכולל. בין השאר את חמשת י"משפטי הפתיחה". ואילו החלק העיקרי של השיחה (המשתנה בי כל אחת משיחות ה-0061, נשמר במבנה הבקרה 60010060 נמשיך במספר דוגמאות לסוג השיחה דטטאן 1067 בקשת מידע על התקליטור שבכונן השיחה הראשונה והחשובה מכולן, הלא השיחה בה נבקש מהדרייבר %5605, מידע על. אודות התקליטור שנמצא בתוך הכונן. כך נראח מבנה הבקרה של שיחה זר פע ( 0%בצ19907ם ספעם 1907508 ספעם פא [ 0001 בשדה הראשון במבנה הבקרה, נבחיר ל-45005%! מהי מטרת השיחה. קוד השיחה לבקשת. מידע אודות התקליטור הוא 19, לכן נציב 10 בשדה 6066. ברגע שהדרייבר 49605%! יזהה קוד זה, חוא יכתוב לתוך מבנה הבקרה שלושה נתונים על אודות התקליטור. 1. מספר רצועת השיר הראשון: 868זדופזו. 2 מספר רצועת השיר האחרון בתקלוטור: 1401:86% 43 מיקום הסקטור האחרון בתקליטור: 186001, על פי התקן של הספר האאדום + עלינו לדעת את מספר רצועת (1866) השיר הראשון בתקליטור, כי תקליטורי מולטימדיה. רבים כגון משחקי מחשב שונים, מכילים נתונים ברצועה הראשונה (תוכנת המשחק), ושירים ברצועות שאחריה (מוסיקת הרקע של המשחק). לכן, הרצועה הראשונה בתקליטור אינה בהכרח רצועת השיר הראשון. בסוף השיחה (לאחר שה-45605%! יים לכתוב את שלושת הנתונים הללו בתוך מבנה. הבקרה), נוכל לשמור אותם בתוך המבנה הגלובלי 60ח61ם. 2 שפת 6- נושאים מתקדמים. שימו לב, שמיקוס הסקטור האחרון מוחזר לפי תקן הספר האדום. לכן, כדי שנוכל לבצעע חישובים עס ערך וה, עלינו לחמירו לערך 45% הפונקציה לקבלת מידע אודות התקליטור, תיראאה כך. 4 ו בלו הנתוני //, - ו בלוק הבקרה //, ו קוד הבקרה //, שפצ מספר השיר הראשוך // ל שסע מספר השיר האחרוך //, ו בבר 0 1 אתחול מבנה ה-001:. בערכים הדרושים לקריאת אינפורמציה על הדיסק /1//// אורך המבנה //‏ :04%48106%) 412666 - 15866 481068 ג תמשה 0 10 קריה - 3 0 מידע על הדיק - 10 // 0006 406 1001508806 גודל הבקדה // ;(018106%:מהסם) 845605 - 668ע2 381068 וג שלחו את המבנה ל-פמספר 010 ו עדכנו את מבנה הדיסק ////// 2 1254008 50181066ממפס)- מס א0009615964500 - 50.1656006מ201גם בקשת מידע על השיר בשיחה או, נבקש מידע על רצועה 1186 מסוימת. מבנה הבקרה של שיחה זו נראה כך. 1 0 סע שפסמטן000 :ד ססעם 0 סתסַפַהַה8%3903 4שסםה 200 ססעם [ 0 פרק 14: כונן התקליטורים (0%א-60) = 253 בשדה הראשון במבנה הבקרה נבהיר ל-45606%! מחי מטרת השיחה. קוד השיחה לבקשת. מידע אודות רצועה בתקליטור הוא 11, לכן נציב 11 בשדה 6:66 את מספר הרצועה. המבוקשת נציב בשדה 0061 6%זד. כתגובה, יכתוב 5605 לתוך מבנה הבקרת שני פרטי מידע על הרצועה. 1 מיקום תחילת הרצועה (בתקן הספר האדום). 2 מילת בקרה המכילה את מאפייני הרצועה. בסוף השיחה (לאחר שהדרייבר 860% סיים לכתוב שני נתונים אלה בתוך מבנה הבקרה), נוכל לשמור אותם בתוך מבנה מסוג ט/ח41איד. | 298001850 מססטם מספר השיר // ע שפסמט0מ93פ מע מיקום תחילת השיר ב-15%. //, 6ת1ספפה1סעבזם בעסטם בקות השיר / / בסצסה9530%00 ממעם יו שימו לב, שעלינו להמיר את מיקום תחילת השיר מתקן הספר האדום ל-א5. מילת הבקרה היא משתנה בגודל בית, אשר כל סיבית בו מספקת תשובה לשאלה כלשהי. הנוגעת לרצועה. הסיבית היחידה החשובה לנו היא סיבית מספר 6, העונה על השאלה: האם. רצועה זו אינה שירו לכן, אס ערך חסיבית השישית הוא אמות, לא ננסה להשמיע את. הרצועה, כי היא מכילה נתונים ולא שיר. הפונקציה לשיחה וו, תיראה כך. [6%מצלי 159001010 מסטצופ) 07400184 4, בלוק הנתונים // 0 בלוק הבקרה //, 0 קוד הבקרה // וצ מספר השיר המבוקש: //, שפצ מיקום תחילת השיר //. 0 בקרת השיר // 8000 ל שמע אתחול מבנה ה-,10011. בערכים הדרושים לקריאת מידג על השיר ////// אורך המבנה נ(3%481068ם) 514606 - מ1600% 8581002 יחידת משנה 0 = 900846 8688106 קאה - 3 ה מיזע על שיר - גב 0 ספ הש // 7586-2556 01100 010 85100 גודל הבקדה // ;018106%0:והסם) 542605 - שעמ 100% 4 שפת 6- נושאים מתקדמים. שלח את המבנה ל-פמ0 טר /// 01060 100 עדכון הנתונים שהתקבלר //// / 10005382 5ב 5ם 0181006 מתסס) 0121ע 124050 :שחנ = 8ה8005הב ו בוק -0 מא בקשת מידע על עוצמת הקול בוגן התקליטורים תומך בהשמעת שירים בארבעה ערוצים שונים (חשמעה תלת-ממדית). כל ערוץ מחובר לרמקול אחר באומן הבא. > ערוא 0 הוא השמל + ערו 1 חוא הומצי > ערו ב חוא השמאלי קדמיי + וער 3 הוא הימני קדמר אם כרטיס הקול שבמחשב או התקליטור שמשמיעים, אינס תומכים בארבעה ערוצים, הם. יתעלמו מערכי הערוצים 3-12 את נתוני עוצמת הקול, נשמור במבנה מסוג טוח₪1זש/ט, הנראה כ 011850 ספמ תחת ססעם 0 ע612תתת0 ססעם תת ססעם עוצמת חקול היא ערך בי ט (ללא קול) ל-255 (עוצמה מקסימלות) יש אפשרות לכוון את הערוצים, כך שערוץ מסוים של מוסיקה יחובר לערוץ פלט אחר. כך לדוגמה, נוכל להחליף בין הרמקול חימני לבין הרמקול השמאלי. מבנה הבקרה של השיחה לקבלת מידע על עוצמת חקול נראזה כך. 1 קוד הבקרה // 05 ססעם ערוץ הקלט המחובר לערוץ ₪ /// סע עוצמת הקול בערוץ מל ₪ // ע ערוץ הקלט המחובר לערוץ 2 //, סע עוצמת הקול בערוץ טל ב // 01 סע ערוץ הקלט המחובר לערוץ 2 //, 1 סע פרק 14: כונן התקליטורים (0%א-60) = 255 עוצמת הקול בערוץ לט 22 ערץ הקלם המחובר לער 3 // עוצמת הקול בעדוץ פלם. 3 בשדה הראשון במבנה הבקרה נבהיר ל-45606%! מחי מטרת השיחה. קוד השיחה לבקשת. מידע אודות עוצמת הקול בערוצים השונים חוא 4, לכן נציב 4 בשדה 6066. כתגובה, הדרייבר יכתוב לתוך מבנה הבקרה שני פרטי מידע על כל אחד מארבעת ערוצי הפלט. 1. מספר ערו הקלט המחובר אליו. 2. עוצמת הקול שלו. בסוף השיחה (לאחר שהדרייבר סיים לכתוב נתונים אלה בתוך מבנה הבקרה), נוכל לשמור. אותס בתוך מבנה מסוג 610/5שטע. כתבו פונקציה בשם 6₪9%6, המממשת שיחה זו, ומעדכנת רשומה מסוג טוושחצוסט בבתוני עוצמת הקול בערוצים. כוכור, בסוף הפרק תוכלו למצוא את יחידת הספריה המלאה. בקשת מידע על מצב הכונן מבנה הבקרה לבקשת מידע על מצב הכונן נראה כך. פע 2 1סצ5ת10500עפם בטסאםה 0 [ בשדה הראשון במבנה הבקרה נבהיר ל-45608%! מהי מטרת השיחה. קוד השלחה לבקשת. מידע על מצב הכונן הוא 4, לכן נציב 4 בשדה 6066. כתגובה, הדרייבר יכתוב לתוך מבנה הבקרה ערך בגודל מילה כפולה, אשר כל סיבית בו מספקת תשובה לשאלה כלשהי הנוגעת למצב הכונן. מתוך סיביות אלו, שתי סיביות בלד מעניינות אותנר + סיבית 0 העונה על השאלה: האם מגש הכונן פתוחז 5 סיבית 1 העונה על השאלה: האם מגש הכונן נעולו כאשר מנש הכונך נעול, לא ניתן לפתוח אותו באמצעות הלחצן שעל הכונן. אאם התוכנית. רצה בתוכנת חלונות, ייתכן שחנעילה לא תפעל כראוי כי תוכנת חלונות שוקפת את מנגנוך הנעילה. 6 שפת 6- נושאים מתקדמים. בסוף השיחה (לאחר שהדרייבר סיים לכתוב את הנתונים האלה בתוך מבנח הבקרת), נוכל. לבדוק את ערך סיביות אלו. כתבו פונקציה בשם סו06/910ו66, המחזירה את מילת הבקרה של מצב הכונן ָָ כתבו פונקציות בשם 113/09 ו- 50%64)/מוז:ו, הבודקות האם המגש פתוח. ]]‏ והאם הוא בעול. בקשת מידע על מיקום הראש מבנה הבקרח לבקשת מידע על המיקוס שראש הכונן מצביע עליו 7 פע מה ססעם 230 ססעם =סעם 8 סע 2 9%508ה9001 מסעט %סבעתה1סהבט ססעם 800683 סע 10180355 ססעט סע סע בשדה הראשון במבנה הבקרה נבחיר ל-45605%! מחי מטרת השיחה. קוד השיחה לבקשת. מידע על מיקום הראש הקורא של הכונן הוא 12, לכן נציב 12 בשדה 6086. כתגובה, הדרייבר יכתוב לתוך מבנה הבקרה ערכים שונים, וביניחם מידע על מיקום הראאש. מתחילת הרצועה הנוכחית, שייכתב בשדות: 756%ה401/, 86 77ה5661 1 מה ומידע על מיקום הראש מתחילת התקליטור, שייכתב בשדות : 401006 0100086 1 פרק 14: כונן התקליטורים (80%-פ)) = 257 בסוף השיחה (לאחר שהדרייבר 15005 סיים לכתוב את הנתונים בתוך מבנה הבקרהו, וכל לשמור את המידע הזה במבנה מסוג 661080 מספר השיר הנובחי / ששמהט0מ1930 ממעם 5 מתחילת השיר | ו 15% מתחילת הדיםק / 0 יו ה] כתבו פונקציה בשם טוהן636:ט6, המעדכנת רשומה מסוג 0ח61מ בנתוני 4 דטפדטס 1001 בסעיף הקודם הכרנו את סוג השיחות דטסא1 +1001, שבהן ביקשנו מידע מהדרייבר. 49606%!. ראינו שכל השיחות השייכות לסוג זה מורכבות ממבנה חיצוני אחיד הזחה לכולם. מבנה הנתונים 8/060ו3פ). בתוכו יש מצבוע למבנה פנימי, המותאם אישית לכל אחת. מהשיחות - מבנה הבקרה 060 0018 בסעיף זה נכיר את סוג השיחות דקדטס 1067. בשיחות מסוג זה נמסור מידע לדרייבר א5005!, והוא יבצע על פיו פעולות שונות. גם לשיחות השייכות לסוג זה יש מבנה חיצוני אחיד - מבנה נתונים אשר דונמה לזה של זטי110 1061. השוני ביניחם הוא בשדה. 6 אשר צריך להכיל כעת את הקוד 12 ולא 3 (ראו תרשים 25.1). מבנה. הנתונים, או הבלוק ממומש בימבנהי של 6 הקרוי50, כפי שנראה בהמשך. שליפה או סגירה של המגש בשיחה זו נמסור לדרייבר 145006%, מידע על מצב המגש המבוקש. כתגובה, הוא ישלוף את. בלוק הבקרח של שיחה זו מכיל שדח אחד בלבד המציין את מצב המגש המבוקש. לכן, אי צורך ליצור מבנה מיוחד לשם כך, וניתן לקשר את המשתנה של מצב המגש המבוקש. ישירות לשדה :00/8066 שבבלוק הנתונים. כדו לשלוף מגש - נכניס למשתנה זה את הערך 0, וכדי לסגור מנש - נכניס למשתנה זה את. הערך 5. לכן, רצוי להגדיר בראש התוכנית את הקבועים הבאים. פחיחת מגש הבונ /// 0 פגירת מגש הבונ /// 5 01085 940010 8 8 שפת 6- נושאים מתקדמים. הפונקציה לקביעת מצב המגש תיראאה כך (מתבממסס פמעפ) עמצם 8צפט / בלול הנתוני / / וב אתחול מבנה ה-.1001. בערכים הדרושים למיפול במגש הכונך ////// אווךהטבנה // ;(38100%זבע) 512605 - 188 100%מבסגם יחידת משנה 0 // = 001% 558100%גם בחיבה - 12 // 12 - 0068 581008סגם /מהבתת0054[00ם) = 55מ:01288,מהס00 8100%בסגם הבקרה היא הפקודה ‏ //, גוזל הבקדה. 1 // 1 = 89685 0100%בסגם שלחו את המבנה ל-פס0פטר 1 1 עדכן את הסטטוס // 563005 100%מבסבם = עמצצם ם5ה501צם אם כך, כאשר נרצה לשלוף את המנש נכתוב 66/פ)/וד, וכאשר כרצה לסגור אותו נכתוב. (0099) מזד. שחרור או נעילה של מנעול המגש בשיחה זו נמסור לדרייבר מידע על מצב מנעול המגש המבוקש, כדי שישחרר או ינעל אותר מבנה הבקרח של שיחה זו נראה כך. 7 סע 4תגהחסס סע 1910 ן בשדח הראשון במבנה הבקרה נמסור ל-49605! מהי מטרת השיחה. קוד השלחה. לשחרור/נעילה של מנעול המגש הוא 1, לכן נציב 1 בשדה 6066. בשדה העני (אומוחזטס) במבנה הבקרה, נמסור ל-%5005% מחי הפעולה המבוקשת. כדי לשחרר את מנעול המגש, נכניס לשדה זה אאת הערך 0 וכדי לנעול את מנעול המנש, נכניס. לשדה וה את הערך 1 פרק 14: כונן התקליטורים (60-80%) = 259 לכן, רצוי להגדיר בראש התוכנית את הקבועים הבאים. נטילת מגש הבגנ 1 1006 946010 שחרור מגש הכון. //, 0 94616 את הפונקציה לשיחה זו נכתוב כך. (הפמח0ס ס6עם) 100%ע22ם 14סט ו בלוק הנתונים. // 8 1007 ספ בלול הברה ₪ קוד הבקרה // |( 008 מע נעילה/טחרור. // 4המתחסם פמע 010% 1 אתחול בלוק הנתונים בערכים הדרושים לטיפול במגש הבונך ///// אודך המבנה // (%58100%ם) 812605 = מש6ה1 אס נמגסגם יחיזת משגה ‏ // 0 = 16ת0ממ9 א8100בסגם בתיבה - 12 // ,12 = 181006.0085סגם עול הגש - 1 // 12 = 0065 590181066 000 הפקודה הרצויה. //, |( 4המתחס0ס = מהבתח60.א5:015100ה60 5+018100ה4(500עסשם) = 00052012842855 אבסה גודל הבקדה //‏ (018160%+טהמס) 512605 = 85מעפ אםם1מבסגם שלחו את המבנה ל-אפםספו. // 0 / (05510) פאנגד עדכנו את הטמו / 8030050 38100%גם = שמצצם 80ה801צם קביעת עוצמת הקול בשיחה זו נמסור לדרייבר מידע על עוצמת הקול הרצויה בערוצים השונים. מבנה הבקרה של שיחה זו דומה למבנה הבקרה של השיחה לבדיקת עוצמת הקול, אלא. שהפעס קוד השיחה יחיה 3. הפונקציה תיראה כך. (נסע* פהזשמטנסט מסע50) 200/01 18סט [ בלוק הנתונים // 9 1007 מס 6 שפת 6- נושאים מתקדמים. בלוק הבקרה 5 1 קוד הבקרה // 0 סע ערוץ הקלט המחובר לערוץ, 0 //, סע עוצמת הקול בערוץ 99 0 //, סע ערוץ הקלט המחובר לערוץ ב //, סע עוצמת הקול בערוץ 99 1 //, סע ערוץ הקלט המחובר לערוץ, 2 //, סע עוצמת הקול בערוץ 99 2 //‏ סע ערוץ הקלט המחובר לערוץ 3 //, סע עוצמת הקול בערוץ ל 3 //, סע 019100 [ אתחול מבנה ה-.10691. בערכים הדרוים לקביעת עוצמת הקול ///// אוון המבנה // נ(%38150%ם) 512605 - 186 אםם81במגם יחיזת משגה ₪ // = 16ת0ממפ 501008סגם בתיבה - 12 // ,12 - 0068 581008סגם עוצמת הקול - 3 3 = 181008.0066 חס התאמת ערוץ הקלט8 לפלט 0 // 0 = 0מ0עסתסטמה1.%סס1מ1סצמהס = התאמת ערוץ הקלש ז לפלש 1 // :1 = במספסתסטקה1 %ססנמ1סצמהסם התאמת ערוץ הקלט2 לפלט 2 // ;2 = 2מסעסתסטקה0%.1ס1מ1סצמהסם התאמת ערוץ הקלט5 לפלט 3 //‏ 30 = כמ6עכתםטקה100%.1מ01צמהסם עוצמת הקול בעדוץ./0. // - 102פתמבת0<- 1ס = 11006.0010860סטמ הס עוצמת הקול בעדוץ 1 // 112פתמפת6<-1ס = 1שתטנסט 1006מ1סטמהסש עוצמת הקול בעדוץ 2 // 122פתממת6<-1ס = 2שתטנסט-181006סטמהסם עוצמת הקול בעדוץ 3. // 132פתמפמ0<-1ס = 863ט2ס0181006.0טמהסם 5:018100%ה500 (0024ם) = 201288:855מת00 100%םבסגם גוזל הבקרה // ק(2019100%מתס0) 512608 = 688ע8.%מ10מבמגם שלחו את המבנה ל-8פספוו 0 0 91 עדכון הותונים שהתקבלר ////, 503005 100%מסבם = עמצצם 50ה01פצם כתבו פונקציה בשם טוואטו', הקובעת את עוצמת הקול בערוצים השונים לערכם המקסימל. כתבו פונקציה בשם פויז, המשתיקה את עוצמת הקול בערוצים השוני. פרק 14: כונן התקליטורים 60-80%) = 261 5 הפעלת השמעה השיחה בה נבקש מהדרייבר -525% להורות לכונן תקליטור לנגן סקטורים מסוימים. אינה שייכת ל-ו1001, ולכן היא בנוייה בדרך שונה. היא אינה מורכבת ממבנה חיצוני ומבנה. בקרח פנימי, אלא ממבנה אחד בלבד, בלוק השמעה (98/8/666), שאינו כולל קריאה למבנה. מבנח השיחה נראה כך. פע מע פע 6 בשמ [64)9ט9656% ממעט ג 046 מסעם 104500608 עב בצסטם וס בטסא [19108 חמשת השדות הראשונים, מייצגים את חמשת "משפטי הפתיחקיי הקבועים, כפי שהכרנר. במבנה החיצוני של-וד100. השדה 6086 צריך להכיל את הקוד 132 (על פי תרשים 14.1. אחרי חמשת משפטי הפתיחה עלינו למסור ל-%49605% שלושה ערכים. 1. התקן שאנו משתמשים בו. השדה %8086 יכיל 0 עבור תקן 1056 ו-1 עבור תקן הספר. האדום. מכוון שאת מיקום תחילת השיר שמרנו כערך 15% (תקן 456), נציב בשדה זה. 2 הסקטור הראשון שממנו אנו רוצים להתחיל את ההשמעה (השדה 3710956630 3 כמח סקטורים אנו רוצים שהכונן ינן (השדה עסו אם אנו רוצים להשמיע שיר אחד בלבד, נכניס לשדה 5191009700 את מיקום תחילת. רצועת השיר, ולשדה /ח/אטו! נכניס את אורך השיר. את אורך השיר נוכל למצוא על ידי חיסור ערך א15 של תחילת השיר מערך 15% של תחילת השיר הבא אחריו. לשם כך נוכל לכתוב פונקציה הגראאית כך. ( 7:28 128011880 מסגע20 | הצ6ה12א0מעד 4עבאם 010% אסא מפהד אם זהו לא סוף השיר, לרא את נתונ השויר הבא / 1+ שמסמט/36%ש?. 126% = שםמהטווש-. 020970) 2 שפת 6- נושאים מתקדמים. אורך השיר הא ההפרש בין התחלת השיר הבא להתחלת השיר הנוכחי //, נ(8ת1ספָ1סעםם5 .0%ב:7-מה0201ה01 5:22 %סבעם:א20) הצמסם, אם זה טוף הדק, נחזיר את ההפרש בי פוף הדיסק לתחילת השיר הנובחי. /// ( (0ת001ה251ב:0%.5ב2? - 1658006 ם2380101) הצטטם: 156 שימו לב! אם זהו השיר האחרון, לא ננסה לקרוא את המידע על הרצועה שאחריו (כי אי כזו), ונתויר את הפרש בין סוף הדיסק לתחילת השיר האחרון. אם ברצוננו להפעיל השמעה שלא תיעצר בסוף השיר, נכניס לשדה 0040880 את החפרש. בין סוף הדיסק למיקום, שממנו אנו רוצים שיתחיל לנגן אם נכניס לשדה /₪6/%0 ערך גדול מדי, לא ייגרס שום נוק. כונן התקליטור עוצר אוטומטית את ההשמעה ברגע שהוא מגזע לסוף הדיסק. כדונמה, נכתוב פונקציה המקבלת רשומת שיר, המעודכנת בנתוני הרצועה, ומשתנה נוסף. שיכיל אנות, אס ברצוננו שההשמעה תיעצר בתום השיר. הפונקציה נראית כך. 010 שעט ,80צל* מ:ה1א0בק, וסש20) ע8בל 8צפער ו מבנה בלוק ההשמעה: // מ אווך בבתים של בלוק הנתוני /// . ו יחידת משנה |: 6גמטעטפ שסעם קוד הפקודה 0 סע טוט 0 54 רו 88 שפצ התקן הרצוי 3 שקטור תחילת השיר 0 כמה סקמורים לנגן / / 1 אתחול בלוק הנתונים בערכים הדרושים להשמטת שיר /////. אורך הטבנה //‏ :(012/91968) 514668 - מ1686% 1002ע8 ב יחידת משנה 6 // 081000 קוד 132- השמעה // 132 1010 ןו 1 הפקמור הראשון -// 4 מספר הסקטורים לניגו הוא מספר הסקמורים שמביל השיר /// ד 0 במ עבג אחות, נגו עד פוף הדיסק // 501006508 ענ 2 פרק 14: כונן התקליטורים (60-80%0) == 263 שלח את המבנה ל-אטמס ו עדבון הנתונים שהתקבלר 5 = ניתן לייעל את התוכנית אם ניצור רשימה מקושרת של רשומות שירים (כמו "= ושימת האנימציה). בכל פעם שמתחלף הדיסק שבכונן, נקרא לתוך הרשימהה את המידע על כל הרצועות שבדיסק, ונחשב לכל אחתת מהן את אורכה. בדרך. זו. בכל פעם שנרצה להשמיע שיר, לא נצטרך לבקש את המידע על הרצועה הרצויה והרצועה שאחריה, ונוכל לשלוף את הנתונים ישירות מהרשימה. בדרך. זו נחסוך בשיחות (חיסכון בזמן), אך נגזול מקום בזיכרוו 6 השהיית השמעה השחיית השמעה 986), היא עצירה ומנית של ההשמעה. במצב וה הכונן יפיק לנגן הראש יישאר במקומו, וניתן יהיה לחדש את ההשמעה מהנקודה בה ההשמעה נעצרה (על. כך נלמד בסעיף 16.6 לשיחה זו מבנה פשוט. היא מכילה את חמשת יימשפטי הפתיחהי" בלבדו שפצ פע פע - פע ן שימו לב! בסוג שיחה זה, השדה 0966 צריך להכיל את הקוד 133 (על פי תרשים 46.1). הדרייבר אינו וקוק למידע נוסף, לכן שיחה וו מכילה את משפטי הפתיחה בלבד. הּ כתבו פונקציה בשם יז המשהה את ההשמעה. כדי לעצור לחלוטין את ההשמעה (כך שלא נוכל לחדש אותה מהנקודה בה הפסקנו), עלינ להפעיל פעממיים ברציפות את הפונקציה מ ברגע שהדרייבר מקבל שיחה בקוד 133 וההשמעה כבר בהשחיה, הוא מבון שברצוננו לעצור. לחלוטין את ההשמעה. 4 שפת 6- נושאים מתקדמים. הפונקציה לעצירת ההשמעה תיראזה כך. 4 0 7 חידוש השמעה השיחה לחידוש השמעה, הנמצאות בהשהיה, מכילה גם היא את חמשת "משפטי הפתיחה" בלבד, אלא שהפעם קוד השיחה הוא 136 מּ כתבו פונקציה בשם טחטפטא, המחדשת השמעה הנמצאת בהשהיה. 8 יחידה להשמעת תקליטורים ממשק היחידה . שק ליחידה המתקשרת עם כונן ה- תקליטור בעזרת אפמסטא 4 7 0 אה רות 0 7 פפיחת מג₪ הבוגף /, 4 סירת מג₪ הבוגף /, ב נילת םגש הברגף /, 43 שחרור מגש הבוגף /, 4 בי שצעל =בלם 4שחסגמתט 5מ8מקצ ו שסא 5 סה: 58חס3מהט 5מ4מקצ ילח כפולה / 0 00 954 גפתט 5מ4מצל פרק 14: כונן התקליטורים (0-80%)) = 265 מבנה אפר לתובו אנו מוענים את המירע הררוש אודות הדיפק הבובמי ///// וב (וצשם שפצ מל שגיאה 7 סט בשמ שיר הרושו 1 00צגת שפצ פפר השיר האחרור 1 שמח9פבן שפצ סוף הדיסק (בתקך שג // מ מבנה לשסירת מידצ אורות עוצמף הקול בערוצים השוגים //// השנמ שמשו פוצמת הקול בפרוץ השאל ק את שפצ עוצמת הקול בערוץ הימנר / האל שפצ וזמ הקול בערוץ השמאלי קרמו / א שפצ עוצמת הקול בערוץ הימני קרמי / הגה שפצ טפ השיר הבובמר ו צסמתמתםבש שמש פע מחחילת תשר ו וי 8 מחחילת הרימ ו שמא מבנה פמורט פל שיר //// קל סמו יר ה מיקום תחילת השיר ב-אפם // סט שמא בחרת השפ 1 1:אח00ת0מ:ף המעט מבנה 00 לקריאה ולכפיבה -אסמספע ‏ //// ו ורד בבתים של בלוק הנפובים /, הג מס יחירת משגה / עו שפצ וד המקרה מס שפצ ו ספ בשמ שר ו ו 2 42שלשמצמה שפצ בפובת פרמטר הברה /, 01955556נטתכס בשמ גודל פרסטר הפקודה /, יי ו 14 3טדספטפת מוצל ₪ 6 שפת 6- נושאים מתקדמים. 7 0 פונקציות 0 7 (64) םמצע / פונקציה הבודקת האס כונן אפכספא מותקן כראוי ומזהה את אות ה- קר ערך מוחזר - אמח אס הבדיקה חיובית ( שסמנפבוצםי שבכ+ | צמבסטאמקאנמט בגב / פונקציה המתקטרת עם אפכספא (שולחת לו בלוק גהונ נפונים פרמטרים מוטברים - בפובת של בלוק. הכתובת נכנסת למצביע מסוג שגמצ כדי שהפונקציה תתאים לכל הבלוקים 55על ,9 בשסט ‏ מטנבט בשבאם) 0200%םהמטבנשהבקט בגב / פע פונקציה המתרגמת זמן בתקן הספר האדום (5לטבופשמ) לרקות, שניות ופריימים = - הערך שאנו רוצים לתרג. (בגודל א* - וקות (מפפקצצת ע5). (בגודל מילה) יוה (פפפשצת ם)- (בגודל ביא ה ש9 - פריימים (מממקנשת ץ8). (בבודל בוה (מטנבט 8שסאט) 0158נםם420ם2צמחהמס שמא / ב בתקן הספר הארוט ל-א. (המספר הלוגי של הסקטור = שפמממ/ שכשמ55 441ק20 - אצ פומטרים מועברים - זמן בתקן הספר האדום. פרק 14: כונן התקליטורים (80%-פ6) = 267 (מטנבט 54סא,) 9.8200%מסא12םצפטהכם שמא - פונקציה הפמירה ומן בחקן אמצ ל (המספר הלוגי של הסקטור = שפשמא: ש0מ95 [ממגק12 = אש (בהממאמס מנץם) עצפ שגמ " פונקציח המטפלת במגש הכונן 6 = שלוף את המגט (מתבמממס מצעל) למכנ מע בגב 5 פונקציח המטפלת במגש הכונן 09535 1065ם- םוב שגמ 0 פונקציה השואבת מידע אודות הדיסק הנוכחי שבכונן. (שיר ראפון;אחרון ומוה (08בעלי 50ה1םמבעל לסטצלם) מה:,מבשלאטם בגב ל פונקציה הטואבת מידט אודות שיר פפים (השדה =שששמ/ש-משע צריך להכיל את מפפר השיר שעליו ברצונבו לקבל מלדע 8 שפת 6- נושאים מתקדמים. (08בצלי כזה1א-בצל במת0ם) 0%בצ4100ב 12 מב / פונקציה הבורקת האם סראק מפוים הוא מפוג שיר 5 אמסיס אמאה / פונקציה השואבת מידע אודות 99ב הבונ שרד מוחור - בקרת מצב הכוגן (בגודל מילה בפולה) כב-ב..), / פונקציה הבודקת האם מגש הכוגן פהוח (15פ9) 8-:מכ1עמצפב ממ / פונקציה הבודקת האם מגש הכוגן געול ( 4בשעל מ+ה/4באא משטצצ: ) מה:במטמס שגמ / פונקציה השואבת מידע אודות מלקום ראש הבונ 8 =50צם מתב / פונקציה הבודקת האמ ההרחשה תק ערך מוחזר - אסת 86 החרחשה תקלה פרק 14: כונן התקליטורים (60-80%) = 269 . (9%51 ב!הנשתש01) סמתו5) ממטנ0/טפם שגמ - פונקציה השואבת מידע אודות עוצמת הקול בערוצים השוגים פומטרים מועברים - כחובת של מבנת פוצמת קול (9%51 פזהשתש01) משמתו5) מהטנ0/0שם שגמ 5 פונקציח הקובעח אח עוצסת הקול בערוצ. פומטרים מועברים - כחובת של מבנה עוצמת קול (1מ9 85ה61ששג2? 5במב0ם) משמנטטגננת בגב - פונקציה הקובעת את עוצמת הקול בערוצים השונים לערכם המקסימלי פומטרים מועברים - כחובת של מבנת פוצמת קול (7001 85ה63שצ1? לבמתס2) וטא .גב ₪ פונקציה הפשתיקה את פועמת הקול בערוצים השוגים פומטרים מועברים - כחובת ל סבנת פוצמת קול ( %בעל מ6ה1א0בצל משטצצ: ) היהַהבנאסבצל שמא 8 פונקציה הפחזירה אורך של שיר ב-א פומטרים מועברים - בנ( (802:לממ0צוהס ממעל ,מפשלי 62ה1מבה מבטמ6ּ) טג בגביר - פונקציח להשפטה שספצלי - בהובת של מבנה (מעודכן) מפוג בזהבאשבא 5 אהסקנהם - האמ לגגן רק שר אחדר (6פ ערכו ישקרי, ננגן עד לעצירה או סוף הדיפק) 6 שפת 6- נושאים מתקדמים. 9 מפמצט שגמ / וניה המטחה את העמטה (9038) קסופ גמ / פונקציה הפוצרת את ההשמטה. () משוצפה מצב / פונקציה לביטול השחיה. מימוש היחידה . חידה המתקפרת עם בונן באמצעות הקליטור כו . 7 0 הצורות 0 ו פפיחת מגש הבהבף / סירת מג₪ הבוגף /, נילח מג₪ הברבף /, שחרור מגש הבוגף /, פרק 14: כונן התקליטורים (80%-פ)) = 27 בו /פמצל ‏ 2355 בפמ-גפתט 5משממצה מה שמא מפסה: ב-חש3פהט +מממקע מילה כפולה / ו מבנה אפר לתובו אנו מוענים את המידע הדרוש אודות הדימק הבובחי ///// וב ו שוגפ שפצ מל שיאה 1 שמש בשמ חיר הרושו ג ממעל טפ השיר האחרוף // ש9פבג שפצ סוף הדיסט (בתקף שג // מ 1 מבנה לשמירת מידצ אורות עוצמ? הקול בערוצים השוגים ///// הנבל ממ פוצמת הקול בפרוץ הפסאל / ל שפצ עוצמת הקול בטרוץ הימני / תחאה שפצ וזמ הקול בערוץ השמאלי קרמו / א שפצ עוצמת הקול בערוץ הימני קרמ / האל שפצ א ממטסס טפ השיר הבובמי ו ו פב ממחילת השיר 1 הי 8 מחחילת הרומק / שמא ₪ מבנה למידט צל שיר /// | באל ממט ו מסטמאמסף ממ מיקום תחילת השיר ב-אשם // לבט שמא בטרת השיר 1 1צאמס0תסמפף ממ מבנה 00 לקריאה ולכפיבה -אסמספא ‏ //// 0 ו אורך בבתים של בלוק הנתובים /, הו ממ לחירת מגה םמצע וד הפטודה / מס שפצ ו ספ בשמ ו ו ו 2 לבשלשמצפה ממ 2 שפת 6- נושאים מתקדמים. בחובף פרמטר הבקרה ו בורל פרמטר הפקודה // שור ו 7 0 פונקציות 0 ו )םאלס מע / פונקציה הבורקף האס ה-+מכספא מותקן כראוי ומוהה את או בונן ה-תקליטור ערך מוחזר - אמח אס הבדיקה חיובית הפטלת מסיקה 268 עס פרמטר 2500 / )086 אפ ה-אממספוו מותקן וגמצא בוגף / 03 4 שמור את אוח הבגר הר אמ שחר החור קר (3) תצמטפל 4ב ( שסמנפבוצם' שבכצ | צמבסטאמסאנמט שגמ / פונקציה המחקשרת עפ ה-צמכםפא (שולחת לו בלוק נהונים) פומטרים מועברים - כתובת של בלוק נתוגים הכתובת נכנפת לחצביע מסוג בצמ כדי שהפונקציה תהאים לכל הבלוק. פוסטר הפטיקה / שב בו ו ו החיסט של בלוק הנתוגים / [08נ9בובם) ע0 ל - אפ א פמק פרק 14: כונן התקליטורים (80%0-פ6) = 273 הסגמנט של בלוק הנפובים / 10ב ם) םשב לד = 5. ספ המלת הפפיקה // - ו(4:5 3-0 8מ033 24אם) 6פטהב 99 ועט ,5' שעמ א" בצכט ‏ טנב 4:כאט) ש0כ02םלםסםנ :הנקה בגב של פונקציה המחרגמת זמן בתקן הספר הארום (?5משא8) לרקות, שניות ופריימים שטנפט - הערך שאנו רוצים לתרגם (בגודל מילה כפולה) א* - וקות (מפמצאצג על). (בגורל מ"לא שד - פגיות (פפמצמצת ע). (בגודל ביא 9 - פריימים (ממפסששת +פ). (בגודל בי תקן הספר הארום <‏ צעמבוממו / פירוק ערך הפריימים / ל פורק פרך השבלות // 000 - שר פירוק ערך הדקות // :16 << (0410000א0 5 בטנבא) - אלה ( נמ :סא 58מ0פב0מ שה אש הלס שמא 7 פונקציה הפמירה ומן בחקן הספר הארום ל-אש (המספר הלוגי של הסקטור = שפשמא! ש0מש9 [ממגק22 = אש פומטרים מועברים - זמן בתקן הפפר הארו התבל (בשל מע רגו את ערך הפפר הארום// נ(שממז': ‏ 0מל: ‏ הג |ממגב)) 42-0-המצהנמהא מפפר הפריימים / שמשל = אפ 7 750 5 שש (8שמא.)-+ אפ ים בשנייה,60 שניות בדקה) //‏ 60 + 75 * המא (מ:60) -+ א ות 75 פה (משאלו את ביל גייס - 150 וחו) / יי ו 4 שפת 6- נושאים מתקדמים. ב א 120009058 צמחהכס שמא / ו בפקן 58 ל-חספר הארו (המספר הלוגי של הסקטור = =פמממה שכשמ55 441ק20 - אצ מפפר הפריימים העודפים לאחר חלוקה לשביות / גח ממחצל החסר את הפריימים העורפים // הממחל -- ממגא חלושה לשניות (בשנייה 75 פריימים) // 2 מפפר השניות הפורפות לאחר לוקה לרקות / ג הפר את הפגיות העורפות / שפ ה טגה חרוט לרטות ]1 נמ = מל למפצל (8מאש 8( ( 0.9 6( 0 095 תצמטמ (במממממס ממעל) עמצק בגב פונקציה המפפלת בפגש הכונן ברק הגפבים / 515% טב 20058 משמום אחחול מבנה ה-10011 בערכים הדרושים לטיפול בפגש הכובף ///// שורד המבגה // (280591062) 1580%, - 12 8106%בטמם ירת משגה 0 מ איה - 1ב 12 065 סטמ הבקרה ה"א הפקורה //‏ נבהבתמכם) (בזסאם) = ש:מצטבת01צאהב0 ע8106בטמם גודל הבקרה 5 1 = מפץט 81068בטמם פרק 14: כונן התקליטורים (80%-פ6) = 275 שלחו את המבנה ל-צמםשמ // 1 50ב )אנ שרכן שח הסטטוס 10 (ממממממס מצעם) לססמעמצף בגב 5 המטפלת במגש הכוגן פונקציה בוק הנחוגים ו 95310 10052 סנא בלו הבקרה / 8 ור הברה ו 3 מס ממ גפילח/מחרור ו שממתשמס ממ 1 אתחול בלוק הנתונים בערכים הדרושים לסיפול במגש הבוגף ////‏ אורך החבגה ]1 (08םנפבטמס) 506-ג, - תסה12 8106בט םה ירת משגה 0 = הטמל בס תיבה - 11 ו 12 = 004 81062בטם מנפול הגש - ב אה הפקודה הרצוי 1 המשכ = ההמממס 131055 00 ממ 0 (054א2) - ש:מקלת1בקטהס0 81062בט מ גודל הבקרה // -‏ :(12105%מ:אתכם) 215556 = שממל 6סב8בט םה שלח את המבנה ר-צממספת //// )אנ שרכן שח הסטטוס 00 (3ס9) מוה1מצגסומם בגב . פונקציה השואבת מידע אודות הדיסק הנוכחי שבכוגן. (שיר לאוג אחרוף ומוה 6 שפת 6- נושאים מתקדמים. ברק הגפובים / (0%פנפבטבם 30091 מממא בדו הבטרה / ו ור המקרה פס מע ספ הש" חרפו .גת שמש מספר השיר האטרוף // םמצע פופ הלפק 12.05 אמאה מס ן אחחול מבנה ה-:1005 בערכים הדרושים לקריאת אינפורמציה צל הרימק ///// אורך המבגה / (91002ב20) 5806ג, - 12 8105%בטמם רות משגה 0 מ ו 52 0 81068בטמם ידט על הדימק - 0ב // 39 = מ6כ0 0181062 את 2000 (בצמאם) = 6-8:5ת01צטמכ0 8106בט מ גודל הבקרה // -‏ :(55%נ2נססטתכס) 6ממצגם - מממ 81052בטמם שלחו את הסבנה ל-אמטמא ///// (81905ב:405) ש00שא0צנב שדכגו את מבנה הרימ ///// (מספצלי מ+ה1ת-בעע מסמצצ:) מ:הנאבבקצאמם גב / (השדה 5פסמ/1538 צריך להכיל את פספר השיר שעליו ברצוננו לקבל מידא) ברק הגפובים / (5%פ51 טב 20051 משמום בדו הבקרת / | ור הבטרה / פס סע מספר השיר הפ בוק // 2 מממאמבצצט שמש מיקום חחילת המיר // קבט שמא בטרת חיר יי 1 אתחול מבנה ה-מ100% בערכים הדרושים לקריאח אינפוומצית פד השיר //1// אוו המבפה / (91002ב280) 580%ג, - 12 8105%בטמם חלרת משגה 0 0 ו 02 סטמ פרק 14: כונן התקליטורים (80%-פ)) = 3277 חווט פל שר - בבק אה מספר הטיר לבדיקה //‏ (:משממנצמפמדכ-%-1:3-ממלמאא0 :ל .:01510אמנם 010 אהכ00 (4שכא2) - 5ש:44ת1מתטהס0 62ס81בט םה גודל הבקרה // -‏ :(18106%מ:אתכם) 215525 = בממעל 6סב8בט מ שלחו את המבנה ר-צשמספת ////, 5ב )אנ צדכון הנתוגים שהחקבלו ////, בבקרה התקבל מיקום הנקודה בפורמט הספר האדום ולכן עליגו להמירו ל-אשג // (5ה5סקשַת1קב90. 121002ס:שתכם)/4200/5015שה םטטהכם - להצסקטַהב דב80< ספא (%ספצלי כשמנאכצצל 0מעצ:) 6%מ:28:00ת2, אתב "/ פונקציה הבורקה האם טראק מפוים הוא ממוג יר סיבית מספר 6 במילת הבקרה תביל אפס אפ זהר שיר // 4 9 סק [9516) 65מ1פסבאשנטמס שמא 0 פונקציה השואבת מידע אודות מצב הכונ שוך מוחזר - בקות מצב הכונן (בגודל מילה כפולה) בוק הנחוגים ו 553105 :3005 סנא בוק הברה ב יי ור הבר ו מס שפצ בק הבוב 0 אמט שמא 1 8 שפת 6- נושאים מתקדמים. אפחול מבנה ה-10011 בערכים הדרופים לקריאת אינפורמציה צל מצב הבובף ///// אורך המבגה / (91002ב280) 15806, - ַשְה12 8106%בטמם חלדת משגה 0 מ ו 52 0 81062בטמם ידט על מצב הבוגף - 6 // 8 0לה200 (בצסאם) = 6:8:5ת1םצטחבם 8106בט מ גודל הבקרה // -‏ :(56םנ2נססטתכס) >ממצגם - ממע, 81052בטמם שלחו אף החבנה -צממטמא //// ;405328105 ) ש00שאםצנב צדבון הנתוגים שהתקברו ///1 החור את בקות מצב הבוג // (050985501 0/1 5181055 -שחסם) טי כב-ב-.), / פונקציה הבודקת האם מגש הכוגן פהוח בדו א מב הבוב ו 000 = נמשאתט הסיביה הואשונה מראה את מצב המגש // 0 ב מל רו ופי 5 (35מ9) -מסכ1עבצפ2צ מתב / פונקציה הבורקת האם מגש הבוג בדו 6 פב הבוג / 090 = נמשאתט הפיבית השנייה מראה האם המצש בעור // 0 6 ו סמל ו (0) תצמטפט 4ב פרק 14: כונן התקליטורים (80%-פ)) = 279 ( 9958 ב/410:-א לסתל. | ב)ה41-םאוכם בגב 0 פונקציה השואבת מידע אודות פיקום ראש הבונ פע מחחילת השיר והרימק ו פב שמא בלו הנפובים / 0 בלוט הבקרה 1/5 שש שור הבקרה ו 3 מס שפצ שור 2 (שמהשמצפה ממ מספר הטראק הבובמי / | צמפאמתםםמשף ממ שור ו 2 לבשלשמאמה ממ וקו מחחילת השיר / הג שפצ שגיות מחחילת השיר / יממע פריימים מפחילת השיר // %ממשמַנממצשל ממ שור ו כבשהשמצמה ממ וקו מחחילת הרימק / | שפצטַנתגא ממ שגיות מחחילח הרימק / שצצנַ01-ם ממ פריימים מחחילח הרימק // | פגםה3מאטש? שפצ הט 1 אתחול מבנה ה-30011 בפרכים הדרושים לקריאת אינפורמציה על מיקום הראש ////, אורך הסבנה //‏ :(סבנמבטמם) 06מצגם - אסה12 6ס81בטַם ויד מגה 0 = טל הט א 1 3 = 005 8102 הטפ מירט על מיקום הראש - 42 // 00 0 תכ20 (4שסא2) - 55מ::.ת1סתטהס0 81062בט מ גודל הבקרה // - :(121055מ:טתכם) 215525 = מטע, 6סב8בט מ שלחו את המבנה ל-צמםסמא // 1 בב ) אנ יבוד הנתובים שהחקבלו /1 1 25 > <-בצלה01פ5 %-1210םבטה (נכא:| + 6%בצלה1מחמצל 0%מ121צוהכט = אמ 9 * 75 * 8שב:להנהצא 018105 תס (0םם-.) ל + 75 5 6צנכ9-010 6%ם0181:סמכ0(בססא2) + סבגכהנמהמצע 12106%בצאהט = בא 350- 60 + 75 + ם-גמהפתצא 000018100 (06-.) צדכון הנתוגים שהחקבלו ////, 6 שפת 6- נושאים מתקדמים. 098 05צצם ממ פונקציה הבודקת הא התרחשה תקלה ערך מוחזר - אמח אמ החרחשה תק בריקה סיבית מספר 15 בספטוס הבקרה מפחזירה כל פונקציה לשדת שמצצפ //, שרך הפיבית להי אמא אם ההרחשה שגיאה /, 0 6 ל 9 ל 25 (1לי בזמנמתטנ0/ משממ2) משטנס/טמס שגמ / פונקציה השואבת מידע אודות עוצמת הקול בערוצים השובים פרמטרים מועברים - בתובת של מבנה עוצמת קור בלוק הנתוגים ו 5158ב 30094 שמס א בוק חבשה 5 ו שור הבקרה ו פס סע ערוץ הקלט המחובר לערוץ 0 // ה סע עוצמת הקול בערוץ פצט 0 // 3 ערוץ הקלט המחובר לערוץ ב // מה סע עוצמת הקול בערוץ פמט ב / בס שצצ ערוץ הקלט המחובר לערוץ 2 // מה שצע עוצמת הקול בטרוץ פצט 7/2 אש ערוץ הקלט המחובר לערוץ ב // מה שצע עוצמת הקול בערוץ פצט ב // בס שצע 20נפ1מצטתמס ן אתחול מבנה ה-1005 בערבים הדרושים לקריאה איגפוומציה על השיר ///// אורך המבנה // = ומ-מנעבפס) 06מצג, - 12 8106%בטמם וחיר משגה 1/0 0 ב 3 00 10אימם ידט פל פוצמת הקול - 8 // 00 0 ה200 (בצסא:) > 8:5ש6ת01צטהב0 8106בט מ גודל הבקרה //‏ :(12255%סשטהכ0) 6ממצגם - מממ 81062בטמם שלחו אף המבנה ל-אפםםמא //// 2 (8105ב:405) צנמ פרק 14: כונן התקליטורים (0-80%)) = 281 פדבון הנתובים שהחקברו /1 1 (9/51 פזהנשתשנ0/ שסמת50)| ממטנ00-ם שגמ - פונקציה הקובעח אח עוצסת הקול בערוצי פומטרים מועברים - כחובת של מבנת עוצמת קול בלו הגפובים ‏ 953810 10052 סנא ברק המקרה 3 -. חור הברה 3 מס שפצ פרוץ הקלט המחובר לטרוץ 0 /, מקה לע עוצמת הקול בערוץ פד 0 /, לפממטנסט שפצ פרוץ הקלט המחובר לטרוץ ב /, םה שפצ עוצמת הקול בערוץ פד בק בממצנסט שפצ פרוץ הקלט המחובר לפרוץ 2 /, םה שפצ עוצמת הקול בערוץ פרט 2 /, 2ממטנסט ממ פרוץ הקלט המחובר לטרוץ 3 /, 30 מקה שמש עוצמת הקול בערוץ פד בש במתטנמט שפצ 1 אתחול מבנה ה-מ300% בערכים הדרושים לקביעח טוצמת הקור /////‏ אווך הפבנה //‏ ;(מסנמבטבס) 6סמצגה - תוסה12 6סנ8בטָם תמשנ 0 = טל בס פובה - 2ב 120 = מ004 8106בטם שוזסף הקול כיוף - ב 0 ה האמח פרוץ הקרט 0 לפרט 00 2 ה האמח פרוץ הקל ב לפרט בק 1 = 1שכאטקה2 0181062אא המ האמח פרוץ הקרט 2 הפרט 2 0 מקה אה הפאמח פרוץ הקרט 2 לפרט בש 3 ה2 011004 אה פוצמת הקול בערוץ 0 //‏ - :0בשההבתסכ-נכט - מממשנ/ 1002פ1באטהמ פוצמת הקול בערוץ ב //‏ ננשההבתס< גכ - בשששנ/ 191062 אטה |פוצמת הקול בערוץ 2 //‏ 120שההבתס<-נכט - לששט1/ 1002פ1מצטהמ שוצמת הקול בערוץ 3 // כ1שההבתס< נכט - כשששנ// 9106 באהמ 2 שפת 6- נושאים מתקדמים. בורל הבקרה // -‏ :(ש5םנפנסקטתכס) |סמצגה - שמ 2מ810בטמם שלחו את החבנה ל-צממסמא //// 2 40528102 ) שאנג צדבון הנתוגים מהתקבלו ///1/ (1סע? 5ה1ממט1ם? 5בם20) משטנמלנגנת שגמ / פונקציה הקובעת את פוצמת הקול בפרוצים השונים לפרכם המקסימלי פרמטרים מועברים - כתובת של מבנה עוצמת קור 7 (נסעל פת!שמטנשט לסמצטה) ממא שגמ / פונקציה המשתיקה את עוצמת הקול בערוצים השוגים פרמטרים מועברים - בתובת של מבנה וצמ קור 0 ( סנל 2/ה91סבצל מבמצמ: | ה5מַהנאסבצד אסא / פונקציה המחזירה אורך של שיר ב-א פרק 14: כונן התקליטורים (80%-כ)) = 283 (195%5:50 50ה:סשגם ה! ממשמתםבמם:ל 0% צק) 5 ו 9% זהו לא סוף הטיר, קרא את נפוני השיר הבא / )אנט אורד השיר הוא ההפרש בין החחלת הטיר הבא להתחלת השיר הנוכחי // (8ה1סלטה:ט:ב0ס 250% מה:0לַה1צב29 א-בשלשאם/) הצמטט 6פ זהו סוף הליסק, החזר את ההפרש בין פוף הדיסק להחילת השלר הנובחי /, (פהצספמָה1-ב0 :בצעל - 1405-ב 10/0מ25) מצנט מק (מ5מ:למפסעוהס :על ,למצשל* כה1מבה מבמטם) עצג .בבר .7 פונקצית להשפטה שמשלו - כהובת של מבנה (מעודכן) מפוג םזהבא-בא 5 אהסענהם - הא לגגן רק שר אחדר אפ ערכו "שקר', נגן עד לעצירה או סוף הדיפק) מבנה בלוק ההשמעה: 7 -- אורך בנתים של בלוק הנתוגים // שא מע רות שגה ו |; מצמטממט ממעם קוד הפפורה / פס מע ב יי שור (418פמפפמה מועל חתטף הרצוי ו שמת ממע פקטור חחילת השיר / הלבטב שמא כמה פקטורים לגב / ב 8 הדרושים להשספת שיר 10 אפחול בלוק הנתונים בע אוד הטבגה ]1 [מסםנפץבנל) 506-גם - וסה2: ססבמעטבל ירת משגה 0 ה ור 132 - השמפה ]1 ב ב ו על הסקטור הראשון //נטתנכפמַהב5ה:8כ-מב:5-:500פטה802:01 סנה 4 שפת 6- נושאים מתקדמים. 4 מפפר הסקפורים לניגון הוא מספר הסקפורים שמכיל השיר //, ?)55812 - עמגאאכם 05 םעבט אחרת נגן פד פוף הדימק / הל ה-ב00<-0% בל - 00%.ב12 בה01צגם - עמגאאסא אסםמנמענט שלח את החבנה ל-אמטמא /// 1 | 9138105 גגב צדבון הנתוגים מהתקבלו ///1/ 562035 71581065 - מסמזם 1960מ: ב ו טפט שגמ / פונקציה המטחה את העמטה מבנח בלו השהיה: / ו אורך בבתים של בלוק הנתוגים // פא סע סירת שגה | מבמטממט מע טור הפקורה / פס שמש ו טוט צצמר שר 908 שצע 988105 מל ן אפחול בלוק הגה יפ הדרופים להשחיה ///// אורד הטבגה ‏ (81056שפטבל) 56-:. - הטקה12 %-810ממטמט מש 2 0 = מבחטממפ 8105מפ טמ קור 33ב - השחיה // 2 133 = 026 81055מטטמט שלח שח החבנה ל-צמטמא ///1/ ל אנ צדבון הנתוגים שהתקברו //// (38ס9) קסופ שגמ / פונקציה הפוצרת את ההשמטה. פרק 14: כונן התקליטורים (0-80%)) = 285 ים ברציפות את פקודת ההשהיה ההשסעה נפצרת לחלוסיף ////‏ 1 ל הצקה שגמ . ה מבנה בלוק ביפול השחיה: // 7 אורך בבתים של בלוק הנתוגים // שא מע יחיות משגה // |; מממטממם מע קוד המודה / 3 פס מע ו יי שור ו 2 818מוחספאל מע 1 9 אתחול בלוק הנתונים בפרבים הדרושים לביטול ההשחיה ////, אווך הפבנה // - ו(910-9ממ0:-ה) 15525: = ה5פַהכ1 %-מנפםשונ מ שג 0 0 שמ קוד 336 - ביטול השחיה / 36 שמ שלח את המבנה ר-צממספת ////‏ 01 )אנ צדכון הנתוגים שהתקבלו ////, 6 שפת 6- נושאים מתקדמים. תוכנית לדוגמה התוכנית לדומה של פרק זה 6:6קוחס6, שמצורפת בדיסק (תחת התיקיה 009459281), מראה כיצד ניתן לבנות נגן תקליטורים בסיסי בעורת היחידה שבנינו. הקבצים שיש לצרף לפרויקט כדי להריץי את הדוגמה הס: 98256 6 טסו וטא 6 6 ו-966פחס6. למידע נוסף קראו את כספח ' תרשים 16.6. לכידת המסך בזמן הרצת תוכנית הדוגמה. נסו להרחיב את נגן התקליטורים, כך שיוכל לבצע את הדברים הבאים. + קביעת ושימת שירים להשמעה 50/ מו > אפשרות להשמעת שירים באופן אקרא. + אפשרות להשמעה מחזורית (ללא הפסקהו. פרק 14: כונן התקליטורים (60-80%) = 287 פרק 15 השמעת קבצי צ/ בפרק זח נלמד להשמיע קבצי קול מסוג א4. / נלמד לזהות כתובות ומאפיוני כרטיס הקול / נלמד כיצד בנוי קובץ צהשו, / נלמד כיצד פועל מנגנון ההשמעה בעזרת הפסיקות.. / נלמד לשלוט על עוצמת הקול ואיזון הערוצים. / לסיום, נלמד להפעיל ולעצור השמעת קבצי צהו, מומלץ לחזור על פרק 5, "עבודה בסיביות", לפני קריאת פרק זה. מאפייני כרטיס הקול כדי שנוכל לחשתמש בכרטיס קול, עלינו לדעת עליו שלושה מאפיונים חשובים. 1 מהי כתובת הבסיס של ה-057 (004801ז8 5/0031 013 .= מעבד האותות. הדיגיטליים) 1 מהו ערו בקשת הפסיקה = 4696 180 8600650 0%ט1 שוח 3. מהו ערוץ הגישה הישורה לזיכרון - [החחפחס 48 (86:055 חסחטו שטוו אם שיחקתם בעבר במשחקים שפעלו ב-05, ודוי נתקלתם בשלושה מושגים אלה ונתבקשתם למלא אותם בעת התקנת המשחק, כדי שיוכל לפעול עם כרטיס הקול שמותקן. אנחנו ננסה לזהות מאפיינים אלה, בלי לבקש מהמשתמש להקליד אותם בעת ההתקנה. הדרך הפשוטה ביותר לוהות את ה-180 וה-%פ, היא לקרוא את המחרוות המתארת את. סביבת העבודה שח6חסא!ושמש) של כרטיס הקול, ולחלף ממנה את הנתונים הרצויים. נסו להקליד את הפקודה 89 במערכת ההפעלה שלכם. אם אתם עובדים תחת מערכת. הפעלה מסוג פוופחו/, פתחו חלון ₪05 (שחטוזוחפס 005) והקישו בו את הפקודת. לאחר. 8 שפת 6- נושאים מתקדמים. הקשת הפקודה, יופועו על המסך מספר שורות, המכילות את מחרוזות משתני הסביבה של. מערכת ההפעלה 10/60 מחשוזהסווח=). ראו דוגמה בתרשים 15.1 וו 99 פצכס 508086סצ 086ַצמעק-] ונא פומה אמא -6=פוה ומע פאספונאס-שומה] ה פא -535-6סמהי טפוס פשססאנא ‏ :סי פאספונא ו -ס-פצאי מס פטס ממא 0-6 באמ נה <באסמומא:=] תרשי 15 אם אתם קוראים פרק זה, אני מניח שיש במחשב שלכם כרטיס קול [רכוב על לוח האם, א. כרטיס נפרד המורכב בחרין. על כן, בתחילת אחת השורות האלו, אמורה להופיע המילה. 8פד8645. שורה זו היא מחרוות משתני הסביבה של כרטיס הקול. במחרוזת זו מופיע. לאחר סימן השוויון, רצף של ערכים ואותיות, המייצגים נתונים שונים אודות כרטיס הקול. סדר הערכים וגודל האותיות (רישיות או רגילות) אינו קבוע, אך תמיד חייבת להופיע האות. 1 ואו ) ואחריה ספרה אחת או שתיים, המייצגת את מספר בקשת הפסיקה 180 וגס האות. ₪ (או 6) ואחריה ספרה אחת, המייצגת את מספר ערו הגישה הישירה (%44). תחילה, עלינו להגדיר מבנה גלובלי שלתוכו נכניס את הערכים הדרושים. מבנה לשמירת הנתונים הנחוצים אודות כרמיס הקול /// ב מספר ערוץ הגישה הישירה לזיברו. /// תו עבמ מספר בקשת הפסיקה // 180 שגמ בתובת הבסים של ה- +8185%6 504 // |( 586 עסמב כדי לקלוט את המחרוות הואת לתוך התוכנית, נשתמש בפונקציית הספריה 96%6%, המקבלת מחרוזת ומחזירה את מחרוות ה-וחשוחחטזושה6 של אותה מחרוזת (אם היא. קיימת). 57880ת1* שגמ )| עתפססף > המצפת1ם פרק 15: השמעת קבצי ואו 3289 לאחר קליטת המחרוות המתארת את סביבת העבודה של כרטיס הקול, עלונו לחפש בה את. התו יפי או '6י, להמיר את התו שאחריו לספרה ולהציב את הספרה במבנה שבנינו. (++3 ;(מפ2פאנה) משבטמט > 4 ;0 = 1) טספ 3 (י4י -- (32 | [גן תפצפתום)) 45 - [1 + 4] 8185988 = 0 4018556מטס כך גם נעשה לאות 1, אלא שהפעם נתחשב בעובדה, שהערך המבוקש יכול לחיות בעל שתי. (++3 ;(8198א1ה) משבטמט > 1 ;0 = 1) טספ (יצ' -- (32 | [גן תפצפתום)) 45 [ יפי - [1 + 1] הספפת1ם = 15:0:.190מממטסם הערך הוא דו ספרתי / (' - [2 + 1] תפדפתה) 45 / 5-10 01556.0 יפי - [2 + 1)א0צ5ת1ם =+ 180 4818556%מסט את כתובת הבסיס של ה-057 (מעבד האותות הדיגיטליים - רכיב חומרה שנמצא על כרטיס. הקול ומהווה חלק ממנו, הסבר מפורט יופוע בהמשך הפרקן, נמצא בדרך אחרת. כתובת זר צריכה להיות ערך בין 210 ל-)2801 המתחלק ב-10%. כלומר, עלינו לבדוק מקסומום. שמונה כתובות. כדי לבדוק האאם כתובת כלעהי היא כתובת הבסיס האמיתית, עלינו לבצעע את הפעולות הבאות. 1. לשלוח ליציאה של המחשב (ווטט), שבכתובת הנבדקת בהיסט של //6 את הערך . 2 לאחר מאית שנייה, לשלוח ליציאה שבכתובת הנבדקת בהיסט של 6% את הערך ט. 3. לקרוא ערך מחיציאה שבכתובת הנבדקת בהיסט של6, ולוודא שערך הסיבית. האחרונה (97) הוא 1 לוי > לקרוא ערך מחיציאה שבכתובת הנבדקת בהלסט של 8%, ולוודאו שערכו הו 88 אם אחד משני התנאים (שבפעולות 3 ו-4) לא התקיים, א ו כתובת הבסיס של מעבדד האותות הדיניטליים (ה-59פ). שפת 6- נושאים מתקדמים. פונקציית הבדיקה תיראה כך. (485859700060% מעסת5) 85םש5820244אסשת0 16 ; (808+08,1מ )248885900‏ מעססטטם הור ; (8885900808+08,0ת) ‏ מסעסקטטםה 1 6 | 0880 -- ( 2080 (5א0ו608מ84:658100ג)מ6צספת1 ) )‏ 6 18 ( ( תתאם =- (גא0+205570060%מ3ה) מצפסםה1 ) אם הבתובת שנבדקה היא אבן כתובת הבסים של ה-80ם ///// 01 (1) סש 1 סט 1 עכשיו נפעיל את פונקציית הבדיקה על כל אחת משמונה הכתובות האפשריות, עד שנמצא. 1 +בתם ₪ = 4 עדיי לא נמצאה שום בתובת/ / 0 = 2856 :006818550 חיפום כתובת ה- 856% 1מ8ת 50‏ ///// (תטסע! 26 1>9) שנצמט [ קפיצות 1087 //‏ (((4 >> 1) + 200א0) 55םש3בה6פבפאסמהם) 16 1 = הטמל | 6-5 אם לא נמצא, החזר "קרי // (0 0 5ם - מעבד אותות דיגיטליים 5 (ז90:שטול ו5008 וגוטופ), הוא רכיב חומרה - מעבד אותות דיגיטליים - שנמצא. בכרטיס הקול. תפעול כרטיס הקול מתבצע על ידי שליחת פקודות שונות (שנכיר בהמשך. הפרק) אל המעבד הזה. לאחר שציהינו (בסעוף הקודס) את כתובת הבסיס של ת- 57פ, נוכל. לשלוח לו פקודות. פרק 15: השמעת קבצי ואו 291 נעשה ואת כך. תחילה, עלינו להמתין עד שמעבד האותות הדיגיטליים (050) יהיה זמין. כל עוד הו ינר פגוי, כאשר נקרא ערך מהיציאה שבכתובת הבסיס בהיסט של 6, ערך הייבית האחרונה בר (7פ) יהיה אחד, לכן נתכה עד שיהפוך לאפס. ברגע שמעבד האותות זמין, ניתן לשלוח אליו את הפקודה הרצויה, על ידי שליחת ערך. הפקודה ליציאה שבכתובת הבסיס בהיסט של04. הפונקציה לכתיבת פקודה למעבד האותות 5%פ, תורואה כך. (16ב 8 מעם) 16057עא 48 המתן שה-250. יהיה זמי. // (0%90 == (080 5 (0א0 + 2856 ש481565ה500) שפה1)) 5בגתט שליחת הערך ל-89ם / ופט ,אס + 26 908155688 מ סקטה 9 הערה חשובה! אם אתם עובדים תחת 005 או 95 פופשחווו ניתן להפעיל את. "= התוכניות בהקשה כפולה על קובץ ₪6 שתצרו. אך אם אתם עובדים עם 55 ופטחו ומעלה, יש להפעיל את התוכנית מתוך חלון 905 (5סם. מחחחמם), כדי שהזיהוי האוטומטי יפעל כראוי. הסיבה לכך נעוצה בעובדה. שהחל מ- 96 צאסשאווצ, הגישה למחרוזות אאשחחסיוחט. מוגבלת יותר,וניתן להגיע אליהן רק מתוך חלו 05פ. אם כך, עומדות לפנינו שתי אפשרויות. 1. במדריך למשתמש של הפרויקט, נכתוב הערה המסבירה, שיש לחרקי אותו מתוך חלו 05 2. נאפשר למשתמש להקליד בעצמו את שלושת מאפייני כרטיס הקול, במידה והזיחוי. האוטומטי לא הצליח. אם במשחקים כמו ופפ ו-6אצפ זה היה כך, גם אצלכם זה. יכול לחיות כך. 2 קבצי צא/צ שאו הוא הפורמט הנפו ביותר לקבצי קול. היתרון שבו הוא בכך, שערכי הצלילים שהוא. מייצג אינם דחוסים (כמו לדונמה בפורמט 163ו), והדבר מקל על המתכנתים בהשמעתו. ובהקלטתו. עם זאת, יתרון זה בא על חשבון נפח הקובץ. למרות העובדה, שנפח קבצי אוו גדול מהפורמטים הדחוסים, הוא עדיין נפוץ להשמעת אפקטים וצלילים קצרים. 2 שפת 6- נושאים מתקדמים. ישנם סוגים שוניס של קבצי /א0). הסוניס השונים נבדלים ב-3 מאפיינים עוקריים, והם. 1. מספר הערוצים (מונו או סטריאוו. 1 רוולוציית הסיביות - חסוט!ספפה 86 (מספר הסיביות שמוייצנות כל דגימק). קצב הדגימה = 8846 6/ק590 (גס תדר דגימה: מספר הדגימות בשנייה). יחידת הספריה, המוסברת בפרק זה, תומכת בקבצי א מסוג סחטו! 80 89 בכל. התדירויות. אמנם האיכות נמוכה, אך נפח הקבצים קטן מאוד יחסית לשאר הסוגים. חגפח. הקטן מאפשר אחסון של קבצי קול רבים בדיסקט בודד, ולכן חוא מתאים ביותר לפרויקטים קטנים בהיקפם. כאשר צריך לעבוד עס קבצים באיכות גבוחח יותר, אינכם צריבים לחשוש, כי יש לכך. פתרון. עד סוף הפרק יחיה בידכם הידע, לכתוב יחידה התומכת בכל סוג 480 שתרצו. כיצד נמיר קבצי צגשש כדי שיתאימו לפורמט הרצוי? אם יש בידכס קבצי 8ו שאינם מסוג 89% מונו, אל דאגה, כיון שניתן להמירם בקלות. כל. שעליכם לעשות הוא. 1. פתחו את הקוב בעורת תוכנת הרשמקול 8660166 50006) של 5א0שחו אם לא התקנתם תוכנה אחרת להשמעת קבצי א/, זו ברירת המחדל ללחיצה כפולה. על קוב 8/ו. אם התקנתם תוכנה אחרת, תוכלו להגיע לרשמקול על ידי תפריט. התחל>תוכניות>עורים>בידור. 2. לחצו על תפריט קוב+>מאפיונים. ייפתח חלון ובמרכזו לחצן שכתוב עליו המר כעת. (אטה פחסם), לחצר עליר 3. בתיבת הבחירה העליונה - שם (שופא), בחרו יכות רדיו /0318 800), ולחצו על. לחצן אישור 060), ה |] ₪ ופת א תושי 151 השמעת קבצי ואו 293 3 מבנה הקובץ קוב אא מורכב מבלוקים של נתונים (פאחש6%). לפני כל בלוק נמצא קוד הזיהוי של (בגודל 6 בתים), ושדה המכיל את גודל הבלוק בבתים (נם גודלו 4 בתים). מתוך הבלוקים שבקובץ, אנו מעוניינים בשלושה מהם. 1. בלוק ה-זנ. 2 בלוק פורמט קובף ה-אאוו. 5. בלוק נתוני הצלולים. בלוק ה-815%, חוא הבלוק הראשון בקובץ, ומספר הזיחוי שלו הוא 46464952/4. בכל קובט. עאוץ תקין, ארבעת הבתים הראשונים בבלוק 61%%, צריכים להכיל אות הערך /ו45563157. אם כך, נוכל לבדוק האם הקוב הוא קוב שאו תקין. נגדיר תחילה מבנה שיכיל את. תחילת בלוק 16 || טטט קוד הזיהוי של הבלוק (צ"ל - 0046464952) // ;פקעצאססנם הַהסב גוזל הבלוק // /100%5126ם הַהסב עוך פפנת (בקובץ אוו תקיןציל - 0845564157) // פפנ סב 1 [ כעת נוכל לבדוק את תקינות הקוב. (("מצ" ,שתבא10גל) תפפס? >= 115פטהה פננתטתו ,1 ,(0%ם1מתפנה) :51260 ,%סםנמתק1ת1) בבסצל || 0846464952 -! 6קע100%1 אסם1מתקנת | 45 אם זהו קובץ ואו שאי תקין/ / = (45564157א0 -! עקת אמםבמפפנת 00 ו הבלוק השני המעניין אותנו, הוא בלוק המתאר את פורמט /8/). קוד הזיחוי שלו הוא. 66% הבלוק נראה כך. בלוק פורמט קובץ ואו // )טמ קוד הזיהוי של הבלוק (צ"ל. - 0820746066 // 100 מס גודל הבלוק. // 08 שוג קובץ שה // - ו מספר ערוצי השמו // /8בממחמתס מצסתם קצב הדגימה /, 08 בתים לשנייה )525(‏ // /5002560004םמעם הַהסב יישור הסיביות בבלוק הנתונים ‏ // /סמסתת130תאססנם מעסתם חולוציית הסיביות ‏ // = /%108ט501םקוגם מעסתם הפא ן 6 שפת 6- נושאים מתקדמים. כדי למצוא בלוק זה, עלינו לקרוא מהקוב לתוך המבנה שהגדרנו, ולבדוק האס שדה קוד. זיהוי הבלוק (6פ₪6647) הוא אכן 20746666%. אס אין זה הבלוק שאנו מצפים לו, קראו. את תחילתו של בלוק אחר, דלנו לתחילת הבלוק הבא ונסו שוב ושוב עד שתמצאו את. הבלוק הרצוי ביצד נדע היכן מתחיל הבלוק הבאז לשם כך, נשתמש בשדה השני בכל בלוק - שדה גוד הבלוק. נעשח ואת כך. לפני שנקרא בלוק מהקוב+, נשמור את המויקוס הנוכחי שלנו בקובן במשתנה ומני. אם. לאוחר קריאת המבנה נגלה שקראנו את תחילתו של בלוק שאינו וח שאנו מחפשים, נקפוט. מתחילת הקוב 5556 56) לנקודה הנמצאת במרחק, שיחושב כך: נחבר את המרחק. מתחילת הקוב עד לתחילת הבלוק הנוכתי (המרחק ששמרנו במשתנה הצמני) ואת גודל. הבלוק (שנשמר בשדה 80645(26). לסיום, נוסיף שמונה בתים. תזכורת; עלינו להוסיף שמונה בתים, מכיון ששני השדות הראשונים (קוד הזיהוי וגודל הבלוק), שכל אחד מהם בגודל ארבעה בתים, נחשבים כהקדמה לקובץ וגודלם אינו נכלל בערך הרשום בשדה גודל הבלוק. נבצע כך את הקריאה. 08 )0 011 - קחפל ,1 (581006במעמפטגא) 512805 ,00% 1>בהעםפטת20) 08+, ובנ פטתר )55% (5₪ אפסט,1006.810065126%8םבתעספש קחש ;(020746066 =! מקעזאסס21 א8106םבתפספטהא) 5בגתט ן עכשיו יש בידינו כל המידע הדרוש על סוג הקוב. לפני שנוכל להתחיל בהשמעה, עלינו. למסור למעבד האותות (057), באיזה תדר אנו רוצים שיפעל. נעשה ואת באמצעות הפקודה. 60% שפועלת כך: תחילה אנו שולחים ל-057 את קוד הפקודה (6000), ולאחר מכ = את. תוצאת החלוקה של 1000000 בקצב הדגימה [819 46ק537%). התוצאה המתקבלת מחוסרת. מ-256. הפקודות הדרושות נראות כך קביעת קצב הדגימה. //// / 2 (0846) 55608 פטגון / 1000006 - 256) 6608ב 2 [168568שח83 581066 התטכ. פרק 15: השמעת קבצי ואו 295 הבלוק השלישי המעניין אותנו בקובץ, חוא הבלוק העיקרי המכיל את ערכי הצלילים. קוד. הויהוי שלו הו ו/61746164. ננדיר מבנה, שלתוכו נכניס את ההקדמה של בלוק נתוני הצלולום. הנתונים להפומעה. תחילת בלוק. /// ב קוד הזיהוי של הבלוק (צ"ל. - 0861746164 // 10 מס גודל הבלוק. // 08 [ כדי למצוא בלוק זה, נשתמש בשיטה, שהשתמשנו בה למציאת הבלוק הקודם. )011 = קתסם 8) סצק (1 טא 1, 0508591000 הסט (0861766164 =! ?8100 1066סבפ5ַַהַהְהט8) 45 ו נ(581 3126%8,8888עסטנם 0617461660 =! פסץ1א9100.א10050369100ה8601) 115מט ן 4 מנגנון ההשמעה המחזורית האם קרח לכם אי פעם ששיחקתם באיושהו משחק, ולפתע המחשב נתקעז אם למשחק. היתה מוסיקת רקע, שמתם לב בוודאאי, שיש מקרים שבהם המשחק תקוע והמקשיים אינם. מגיבים, אך המוסיקה ממשיכה לנגן כאילו הכל בסדר. נסו לחשוב כיצד וה ייתכן. הסיבה לכך נעוצה בעובדה, שמנגנון ההשמעה פועל בעורת פסיקות בלבד. כלומר. 1. ההשמעה לא תפריע למהלך התוכנית כלל (וזהו יתרון נהדר) 2 כיון שרמת פסיקות החומרה גבוחה מרמת התוכנה, גם אם היישום (הפועל ברמת. התוכנה) יפסיק לפעול, ההשמעה (הפועלת ברמת פסיקות החומרה) תימשך. בכל מחוור, ה-057 מנגן 16% ואחר כך מפעיל פסיקה, הקוראות מחוצ) וס (שגודלו 32% את 1668 הבאים (חצי מהחוצץ), הישר ל-257 (שמתחיל מיידית להשמיע אותם). אחר כך. הפסיקה קוראת מהקובץ 1668 נוספים לתוך מחצית החוצי, שתוכנה כבר נשלח ל-5ם. נגדיר תחילה שני מבנים שיעורו בהשמעה. מבנה לשמירת סמטום השמעת זומזר // || 950 185118 מצביע לקובץ ותו // האם הקובץ בהשמעה עכשיז? // ( שמ1ע12? מהג 36416בסר מספר הדגימות שנשאר לקרוא מהקובץ //‏ ; 6586פ0ע 20 136116סעי מספר הדגימות שנשאר להשמיע // ( 209621854 10 136118סעי אוו [ 6 שפת 6- נושאים מתקדמים. מבנה לשמירת נתוני הזיברון הדרושים. /// 1 בו 966 6שסמם היפ שמ מצביע לחוצץ אמום // -‏ נעם::טמתאם* הפע מיקום הקריאה בחוצץ. (מחצית ראשונה או שנייה) /// :ם?צומת מצסמם ו 3 את המשתנים שבמבנה הראשון הגדרתי כ-6/₪פוסצ. טפס היא מילה שמורה, "= שכאשר כותבים אותה לפני משתנה, היא מחייבת את המהדר לשמור ולעדכן את ערכו תמיד בתא זיכרון קבוע ולא באוגר זמני. כיון שעלול להיווצר מצב. שגם התוכנית וגם הפסיקה ינסו לשנות בו-זמנית את ערכם של משתנים. אלה, צריך יהיה להגדירם כו עדיין לא התחלנו לקרוא את נתוני הצלילים מהקובץ, לכן מספר הדגימות שנשאר לקרוא. מהקובץ ומספר הדגימות שנשארו להשמיע, זהים לגודל בלוק הנתונים. (100%5126ם 100%םב0ב0:0ה1ת2601 = 7050584 פסבםפשהה /100%5126ם 100%ם0:036ה1ת2601 = 705001268 פנםב: פה לפני שנתחיל לקרוא דגימות מהקובץ אל חוצ+ ה-א/אפ, עלונו להקצות לו תחילח מקום. בויכרון. פונקציית ההקצאה צריכה להיראאות כך. (088ט) 58:מפה30פבת 58סט [ בתובת ליניארית // 08 מצביע לחוצץ זמצר / / הפי ססעם שי דפי זיכרון בגודל 3265 = / ספ משסמב הקצאת 3288 של זיברוך 0 ((32768) 1100ב(" צבם) = 6:מםקהסד חישוב הכתובת הליניארית. /// //. (55ט8ה6?) 580 על - 02655א:מ6ה13 (055מםחס?) עקם קק + (4 >> 46:855תעבמה11) = 658במהצבסהגך חישוב דף ראשון בתוזילת החוצץ ////, 6 << 44:058,בשה11 = 1סבַמק חישוב דף ראשון בסוף החוצץ. ///// 6 << (32767 + 64%655א118835) = כמפמע פרק 15: השמעת קבצי ואו 3297 בדיקה אם נחצר גבולות הדף ‏ /// //, (62סגע -! נמַמָק) 45 [ אמ כן הקצה חוצץ אחר// -/ (32768) 1100גת(* צבתם) = +0)ממגאם תשור ת1) 966 1 6 אחרת. השתמש בחוצץ שהקצנר // :82פקתמ = +20 )ממגאם תפר המרת המצביע לכתובת ליניארית וקביעת הדף וההישמ /// //. /(62?טפגום תשט) 580 קל = 48:655תַבסה11 (0עמפום .תמו ע08 57 + (4 >> 5פםנמנתקבסה11) - 44:058ה:במהג 6 << 244:085ב0ה11 > בק תפות (פפתפאם 5 5פמעאמתעמסה11 = 05,568 תמו עכשיו, כשחוצץ הזיכרון מוכן ניתן לקרוא אליו את הדגימות מחקובא. הפונקציה לטעינת 1668 נחצי מגודל חוצ א/פ) מהקובי אל החוצץ, נראית כך (50169 מצסמ9) ע0:?6מ0בשה 48מט קרא לתוך המחצית הדאשונה של התוצץ. <= 0 = 8%פטט //, קרא לתוך המחצית השנייה של החוצץ <= 1 = 5665 //, אם הסתיימה הקריאה, צא מהפונקציה 0 /// קתש560 (0 => 20858556 פטסמופטהא) 45 אם החלק שיש לקרוא קטן מ-6%5 1., מען אותו ומלא את השאר ב"דממה" 0/4 /// (16384 > 20568586 פטטבופטהא) 45 [ 2 (128,16366, (8055656614) +565 30905 ה6)) 6שתשה 0?. סט 963 1, (4 502661 ם) דעס טמומום םשו ל 1 מ ו / = 10868526 בטטםספ הר 1 אחות, טען אותו והחטר מהמונה 1688 // 6 [ ,4 ,1 ,14 >> 2ם::גם) + עםזצטמתאם תשה) 658צ3 (016 .בגו םיפשה 4 -- 10862624, פטםב6 פאר 1 /+ את ערך המטתנה אנ מזיזים שמאלה 14 פעמים, כי 2 בחזקת 14 = 16 + 8 שפת 6- נושאים מתקדמים. למני שמפעילים את ההשמעה האוטומטית, עלינו למלא את חוצץ ה-אום (שגודלו 8א32). נעשה ואת על ידי טעינת 1668 למחצית הראשונה של החוצץ, ו-1668 נוספים למחצית. הטנייה של. ה 1 6050 עכשיו החוצ מוכן, ואפשר להפעיל את מעבד האותות בעזרת הפקודה 414 אפשור ה-59 // (בפאס) 166088 מצב ההשמעה - מנגך // 1 = 0ת2183. פט0ב6פ שה עכשיו כשה-05% מוכן, אפשר לאתחל את ההשמעה האוטומטית. (034ט) 9866ע1010060918 048 ו כדי לאתחל את ההשמעה המחוורית האוטומטית, עלינו לבצע את הפעולות המפורטות. לחן. 1 חכונו את ערוץ ואס לקריאה. הכן את ערוץ גנום ‏ לקריאה עבור אתחול השמעה אוסומטית ////// ומוס 513568הט8|50/, הסאס) מסעסקטטם (0 , 0806) מסעסקטטם ; (א. 89605 20481 |0858 = , 88א0) מסעססטטם 2. שלחו את ההיסט אל בקר אואט. שלח את ההימט לבקר תוום 0 ;פאס 4 055566.פ/ , 1 >> 08 555ם1מנתטספ) מסטסקסטםה נ(8 << 055566פ/ | 1 >> אמם 15555מנת00פ) מסטסקסטםה 3. כתבו את דף הזיכרון לבקר ואפ על פי הערו המתאים. בתוב את הדף לבקר תוום //// / (תעום. 8566 )5008481‏ מ60 גב פע ;(2206.הס/ ,0887) משפמקסטם 0/3 בפמם [בסזם ‏ ;[2206.הס/ ,083) מזפמקסטס 3 1 מממ (בס:ם ‏ ;(2366.הס/ ,082) מופמקסטט 3 3 6פמם פרק 15: השמעת קבצי ואו 299 +. קבעו את אורך חוצף ה-א1%ס ל- פא32. קבע את אודך בלוק ה-מנום ‏ 785585 (פא32) 00 ;פאס ,1 + (1 >> גא :45138%8ת808)) ממשסקטמםה ;עלס ,1 + (1 >> גת :48138%6ת800)) מצשסקטמםה (ם. 5688 081הנו50. ,0803) מזשסקטמםה 5. קבעו את אורך חוצץ ה-57ם ל- 1668 קבע את אורך הבלוק של שפם ל-35118 (מא6ב) ///// 04480 08ם:1ע 7 04380 10808עה 6 הפעילו את ההשמעה בעורת הפקודה 6 של קפם. התחל את ההשמעה האוטומטית (לסבמע18ק סשטם) ‏ /// // )5807 נש לאחר שמאתחלים את ההשמעה המחזורית האוטומטית, מתחיל ה-057 להשמיע את 668 הראשונים. ברגע שהוא מסיים, הוא מפעיל אאת בקשת הפסיקה (180, המכינה עבורו את. ה-1668 הבאים. כוצד התהליך מסתיים? נכתוב תחילה פונקציה לעצירת החשמעה המחזורית. הפונקציה צריכה לבצע שלוש פעולות. 1 לעצור את השידור מערו 9% (נעשח ואת על ידי הפקודה 60% של ל5ס). 2. להכניס ישקרי למשתנה המציג את סטטוס ההשמעה. 3 לסגור את קוב או הפונקציה תיראה כך (9018) 0%ב5ע8500718 48 ו עצור את השידור מערוץ תעם / / | (0498) 6508 גצ לא נותר עוד מה להשמיע // = 018108. פטסב6פ שאו סגור את קובץ או // 1 מס 3588 א) 01086 עכשיו אנו יודעים כיצד להפעיל את ההשמעה המחזורית וכיצד לעצור אותה, אך כוצד נדע. מתי לעצור אותהז כדי שההשמעה תיעצר לבד (ללא התערבות התוכנית), היא צריכה לעקוב. בעצמה אחר ההתקדמות. כיצד אפשר לעשות זאת? שפת 6- נושאים מתקדמים. התשובה פשוטה למדי. אנ יודעים שלאחר כל השמעה של 14%8, ה-050 מפעול את בקשת. הפסיקה. אס כך, נוכל לכתוב בעצמנו תוכנית שירות לפסיקה שג תעדכן את מונה. הדגימות שנותר להשמיע (1086018/6), וא לא נותר עוד מה להשמיע, הלא תעצור את. ההשמעה המחזורית. את תוכנית הפיקה שנכתוב, נציב במקום הפיקה המקורית, והיא. תופעל על ידי מעבד האותות. תוכנית השירות צריכה לחיראות כך (034) 505466180 מקטפעסטה3 08 [ שחרר את פורט 6 הסיביות של ה-80ם 0 / /(5א0 + 8286 :0815866ת90) ממעמקה1 הבירו בפסיקת החומרה //// (0420,/0%20) מסעססטטם בקווי בקשת הפסיקה (180) 2, 20 ו-11, הפסיקה גולשת ולכן יש לכתוב. הכר בפסיקה הגולת (עבור קווי בקשת פפיקה 10,2-בב) ‏ ///// || 10--180. ע550הנממהטס5 || 2--10.+5%6ב1ַה00) ,1 (11--190. 500818558 (0%20 ,0תאס) מסעססטטם תוכנית השירות של הפסיקה צריכה לטפל בחוצצים ובמבנה הסטטוס. תחילה נפחית 168 ממונה הדגימות שנשארו להשמעה (1086918/66), כי הפסיקה מופעלת. לאחר שה-057 מסיים להשמיע 1668. אם נשאר עוד מה להשמיע (אם לאחר הפחתה שכ. 8, ערך מונה הדגימות שנשארו להשמעה עדיין חיובי, עלינו לטעון לחוצץ ה-א/ופ את. ה-1665. אם זו המחוור האחרון שיש לקרוא (ערך מונה הדגימות שנותר להשמיע קטן א. שווה ל-01668, נשלח ל-05% את הפקודה 034 המודיעה שצריך להפעיל את תוכנית הפסיקה. פעם אחת נוספת בלבד. אחרת (אם אאין עוד מה להשמיעו, נפעיל את הפונקציה לעצירת. ההשמעה האוטומטית. טפול בחוצצים ///// אם מנך // (108ע15ט. פב 56 תמ 8+ 1 הורד 15%8 מהמונה // 4 -- 64ע7056018. פנ0ב55 הו אם ושאר מה לנגן // 0 < 68ע2006018, פטס ב6פ/תמ) 16 1 קרא מחזור לחוצץ. // (5888מפת חפן) 544805505 אם זהו המחזור האחרון // (16384 -> 68ע2050012. פטטב6פ/תא) 16 (אפאס) 160088 1 8 0 פרק 15: השמעת קבצי ואו 301 בסיום הפסיקה, עלינו לדאוג ש-₪טה יצביע על מחצית החוצ הבאה. שימו לב! אם הוא מצביע על המחצית הראשונה - ער 0, ויש להפוך אותו ל-1 כדי שיצבוע. על המחצית השנייה. אם 85/6 מצביע על המחצית השנייה - ערכו 1, ויש להפוך אותו. לאפס כדי שיצביע על המחצית הראשונת. נעשה ואת כך. 5-1 50880%ה חש סוף תוכנית השירות לפמיקה - ה-0ץ ‏ / ו עכשיו יש לנו תוכנית מוכנה לטיפול בפסיקה. עלינו לשמור אותה בתא המתאים בווקטור. הפסיקות, כדי שמעבד האותות יוכל להפעיל אותה. מיקום התא נקבע כך > אם קו בקשת הפסיקה (180) הוא 2, מעבד האותות 055 יפעיל את הפסיקה. שבתא 14 + אס קו 186 הוא 10, מעבד האותות יפעיל את הפסיקה שבתא ַא7. + אס קו 186 הוא 11, מעבד האותות יפעיל את הפסיקה שבתא 31 > עבור כל שאר קווי בקשות הפסיקה, מעבד האותות יפעיל את הפסיקה שבתא 8 + מספר קו סא תוכורת: לפני שמירת פסיקה בתא מסוים בווקטור הפסיקות, תמיד חשוב לשמור את תוכ. התא הנוכחי בתא ריק, כדי שניתן יהיה לשחור אותו בתום תוכנית הפסיקה. במקרת שלנו, אם לדוגמה תוכנח אחרת משמיעה קוב שא+, והתוכנית שלנו, המופעלת. אחריה, תרצה להשמיע קוב 4486 אחר (ולא נשמור את התוכן המקורי של התא בתא ריק. אחר), השמעת קובןי ש8/% של התוכנה החיצונית תיעצר ולא נוכל לשחור את הפעולה. א אם נשמור את התוכן הקורי של התא בתא ריק ונשחזר אותו בתוס השמעת קוב או שלנו, השמעת קוב 44 של התוכנה החיצונית תתחדש בסייום השמעת הקוב שלנו, כאילן. דבר לא קרח. אם כך, פונקציית אתחול תוכנית השירות לפסיקה צריכה לבצע שלוש פעולות. 1. לטמור את הפסיקה הנוכחית בתא ריק (לדוגמה 6104 "תא בונייםי 1. לקבוע את הפסיקה שבתבנו בתא המתאים. 3 לאפשר את ה-180 (180 60806 הפונקציה תיכתב כך (() (60158א*) סקטמפפטה: 9018)- 1010180 גמ שמור את הפיסקה הנוכחית בתא ריק מספר. 104 /// (190. 50008818562) 15ב גפ ;((71א0) 104,0000605) 500805 :2 6במם פפם ‏ (((72א0) 104,0000606) 56605 103 םפמם 2 שפת 6- נושאים מתקדמים. 1 ב ב6עם | (((73אם) 104,96060%) ; ((190. 8+500848125565) 1040960806 1 קבע את הפמיקה שלנו כפסיקת ה-0ד. // //, (190. 8566 5000881) מ50 בב /בשצם ‏ ;(38נששא ,%71ם) 5 /3שצם ‏ :(188שסא (0%72) הי /3שצם ‏ ;(88בששא ,0973 הי ((159אש/ו ,180 8%900048135%02) %םמטס0פ :052016 [ אפשר את ה-10 ו (190. 8566 5008481) מ60 בב (בסעם ‏ ;(1(4253א0) מצעמקה1 ,נהאם) מפפמקסטם :2 56 (בסעם ‏ ;(1(6251א0) מצעמקה: ,נהאם) מטפסקסטם :10 6פמם (3סעם ‏ ;(1(6247א0) מצפמקה1 ,נהאם) מופסקסטס :11 6פמם > 101 21(6א0) מטשמקה: ,21א0) מטפסקסטס :016ם5ש ((180. 004818550 | 10--180. עם55הנממהטס5 || 2--10. :200881566 0 :(251 5 (21א0)מטעסקת: ,0%21) מסצססטטם הפונקציה לשחזור הפסיקה המקורית צריכח לבצע פעולות אל. 1. להעתיק את הפסיקה מתוך תא הביניים חורה אל התא המקורי. 2. לאפשר את ה-180 (180 חפ הפונקציה תיכתב כך. [ (038ט) 655029180 018 [ שחזר את הפסיקה המקורית ששמרת בתא. 50% //, (50084818566.180) מ50צמם מע ;((0050805)104 ,71א0) ףםמטטםם :2 םפמם פצט ‏ ;((6050005)104 ,72א0) 0%ט00פ 103 6פמם /%פצמ ‏ :((609605)104, (בדאם) ה 3 ((9000508)104 ,190 ע58ב8+9000881) 0 [ פרק 15: השמעת קבצי ואו 303 . אפר את הד 1 / (190. 88185602ת500) 15ב [ ופצ :2 | (נתאס) מ (נתאם) פצפספטמם 23 56מם ;%פצם ‏ :(4 | (נגאם)מועסםה: ,נתאם) מצפססטמם :10 56מם ופצ :(8 | (נתאס)ם ונתאם) פזפספטטם :11 56מם 50 )021( || )1>>500868185665,180(( 2 פספטטס 6165 | 10 --180 :800451986 || 2. (11--180. 8560 681תמ0 :4 | (21אס) מטפסקת: ,21א0) מצשסקטמם 45 |20 בכך סיימנו לחרכיב את מנגנון ההשמעה המחזורית. מהרגע שנפעיל אותו בעזרת פונקציית. אתחול ההשמעה המחזורית, הזא יידע לפעול בעצמו ולעצור ברגע הנכון ללא תלות. בתוכנית. ממש ייפרפטום מובילה" נחוזר עד אין סוף). 5 השמעת מחזור בודד וש מקרה אחד שבו המנגנון שכתבנו בסעיף הקודם לא יפעל כראוי, נסו לחשוב מהוז אם גודל בלוק נתוני ההשמעה בקובןף 408% אינו גדול מ-1668 (מחזור אחד), תוכנית. הפסיקה שלנו לא תפעל בסופו. מכיון שאנו פועלים עם קבצי או מסוג 8 סיביות מונו (החסכוניים מאוד בנפחם), מצב זה. ייתכן בהחלט. לשס כך נכתוב פונקציה להשמעת מחצור בודד. אס גודל בלוק נתוני ההשמעה בקוב) אע אינו גדול מ-16%8, נפעיל פונקציה זו, ולא את פונקציית אתחול. ההשמעה האוטומטית. הפונקציה צריכה לבצע את הפעולות הבאות. 1. להפעיל את פונקציית ההשמעה המחצורית (למרות שזו אינה השמעה מחצורית, אנר וקוקים בכל ואת לרוב הפקודות שפיתחנו עבור הפונקציה לאתחול ההשמעה. המחאורית, אשר מטפלות ב-0148). 2. להגדיר את אורך מחזור ההשמעה כאורך הבלוק שברצוננו להשמיע (בפונקציית אתחול. ההשמעה המחזורית השתמשנו בפקודה 43 של ל5פ, כדי לקבוע שאורך כל מחזור. יהיה 8א16. הפעם נשתמש בפקודה באותו אופן, כדי להגדיר אאת אורך המחזור הבודד. כאורך הבלוק שברצוננו להשמיע. 3. להפעיל את השמעת המחור הבודד. נעשה ואת בעורת הפקודה ו161 של ופם. + נאפס את מונה הדגימות שנותרו להשמעה (108718/66). 4 שפת 6- נושאים מתקדמים. הפונקציה תיראה כך. (034ט) א80פע016018ע8160ת91 058 [ 2 ()806מב 1פס6טת1הד (0%45) 160088 (פפאם 5 88ע15קשמם,, פמטב פשמא) 0 60087 בע ;(8 << 1050012468 פ00ב56/תה) 0057 בער הפעלת מחזור השמעה בודד. //, אס 15007 אין עוד מה להשטיע //‏ 0 = 109601866 בנטבמפטתאה 6 עוצמת הקול הביטו בתרשים 15.3 המציג את מד כיוון העוצמה של מערכת ההפעלה 45ו069//. שומו לב. שניתן לכוון בנפרד את העוצמה ואת אאיזון הרמקולים בכל רכיב, ונס את העוצמה ואת. האיזון הכללי א6ד5ו. כך נוכל לעשות בקלות גם בתוכנית שלנ. תושי 153 כדי לקבוע את העוצנה והאיצון של אחד הרכיבים, עלינו לשלוח ליציאה 2244 את קוד הרכיב, ומייד אחר כך לשלוח ליצואה 2254 את משתנה שקלול העוצמה. פרק 15: השמעת קבצי ואו 305 הרכיבים המעניונים אותנו כאן. 1 עוצמת השמעת קבצי שו - קוד 4. 2 עוצמת המאסטר - קוד וונ2? נגדיר את הקבועים האלה עבור התוכנית שלנו פה 696 ו משתנה שקלול העוצמה הוא בגודל בית. ארבע הסיביות הראשונות בו (מימי מליצגות את. עוצמת הקול ברמקול הימני, וארבע הסיביות האחרונות מייצגות את עוצמת הקול ברמקול. השמאלי. הפונקציה לקביעת עוצמת הקול נראית כך (01 פע , מעפמא מ6עע) 866שהטנסט 48מ משתנה שקלול העוצמה = גמ , באיזה רביב - מעממא // (צסת, 0%226) טסוט (001 0225) סש ספוט כדי לברר מהי עוצמת הקול הנוכחית, עלינו לשלוח ליציאה 224% את קוד הרכיב, ומייד אחר כך לקרוא מיציאה 225% אאת משתנה שקלול העוצמה. הפונקציה תיראה כך. (8פמ) 56ע2) 8008 הטנס שמת (58ת, 08224) פס שסקטמם. (( (225א0) מזפספח1 ) מצנטסע סו ליצור בקר לשליטה על עוצמת הקול ולאיזון הרמקולים, אשר ייראה כמו הבקר של פפוחווי (תרשים 15.5 רמז: היעזרו בתוכנית הדוגמה של נגן התקליטורים. זו כל התורה להשמעת קבצי א/4. אני מניח שעכשיו אתם די מבולבלים מכל מה שקראותם. עד כה ומרגישים כאילו אתם יילא יודעים מה נפל עלוכם". אז אל דאגה, קחו נשימה עמוקה. וקראו בעיון את יחידת התכנות המפורטת שבסעיף הבא. אני מבטיח שהכל ייה הרבה. יותר ברור אחרי שתראו כיצד הכל מתחבר. 6 שפת 6- נושאים מתקדמים. 7 יחידת הספריה להשמעת קבצי צגעשצ ממשק היחידה (61306שח/ זוחש) מפשק לרחידה להשמעת קבצי מוסיקה מפוג אאא הערות : 1) חיחידה תזהת אוטוחטית את כרסים הקול ותמצא את כתובפו, ידה תוטכת בקבצי אא בפורטטה 1) הטיפול בהשסעת קבצי הקול מחבפע באמצטות פמיקות, לכן ההשמעה משחגה חרובי בגודל בית // על 0955 4פתפגפתט 5מ4מקצ 343:8659000665 - הכתובת לבדיקה. אמת אס הכתובת שנבדקה הא אכן כתובת הבסיס של ה-8פ. (שטנבו ממעם) 5059 בק גב ₪ פונקציה לשליחת ערך בלשהו ל-252 (:50פשסמזט בשתגט בג פרק 15: השמעת קבצי ואוו 307 ה מב פונקציה למציאת כרטיס הקול, ה-190, ות-אאם. (נמ מפעל | מ:ממא מצעט)855שאטנטט בגב 2 פונקצי לקביעת פוצמף קול שמא - הרביב שאת פוצמת קולו אגל רה (ארבע הפיביות הראשונות מריצגות את הרמקול הימני, והאחרונות את השמאלי | פמט מצעל) 55 מאטנטט ממ | פונטצית לבדיקת פוצמת טול שמא - הרביב שאת פוצמת קולו אגל רו ערך מוחזר - ביח המציין את עוצמת הקול (ארבע הסיביות הראשונות מייצגות את הרמקול הימני, והאחרונות - את השמאלו) (1סצ) %מבמץטנטבטטת גה בצמ - ונקית לאתחול השמטה מחזורית אוטומטית. (1סצ) %במץנ0 301-001 בגב 0 פונקצית לטיפול בהשמעת מחזור בודד (יחיד) 8 שפת 6- נושאים מתקדמים. םנה גב / פונקציה להקצאת חוצץ זיכרון עבור הנתונים להשמטה (204558 :20| -מ5:ב2בטה בגב / פונקציה לפעינת6/2ב (מצי מהוצץ מאל) מהקובץ אל המוא 96555 - איזו מחצית חוצץ עלינו לקרוא (4מח) שסבמץבנטפמום שגמ 0 (6גמי) 0ה1מכדי-5 לעחכים)מג בצמה פסיקה המספלת בהשמעה המחזורית, הפסיקה תוכפל אומו () (59נששאי) שקטצ-סאתג 4גסא) מפנטצת: שצב / פונקציה לאחחול פסיקת ההשמעה המחזורית פומטרים מוטברים - הנסיקה שד? 095 08590ט פה שגמ / פונקציה לשחזור פסיקת ההשמעה המחזורית המקורית פרק 15: השמעת קבצי ואו 309 . (9035) 300515055 גה1 ממ פונקציה לאפחול כרטיס הקול ((046?) 42155655ת10400ם בגב 2 פונקציה ליציאה מהיחידה (שחרור הזיכרון שהוקצה ושחזור תפסיקח המקוריה) (80:5ג3* 5בלם) לאאעפגע מב 0 פונקציה להשמעת קובץ אמאה שש:א15צת - שמ קובץ ה-א 1 > אין מספיק זיכרון, או שכרטיט הקול לא אוהחר 2- > קובץ גא איגו קיים. 3- > הקובץ איגו קובץ שמא הקיר שמ 8 פונקציה הבודקת האפ מפנגן כרגע קובץ כלשהר 6 שפת 6- נושאים מתקדמים. יחידה . יחידה להפמעת קבצי מוסיקה מסוג אא . . את ה-120 ואת פרוץ גאם. - . 2) היחידה תומכת בקבצי לא בפורמט ₪ סיביות מפסא סטנדרטר . . 3) הטיפול בהשמעת קבצי הקול מחבצע באמצעות פסיקות, לכן ההשמעה = * 7 0 הוה / 7 שפנה חרובו בבודל בוח / שצעל =בלם משתסגפתט 5מ8מקצ בוט צפגח ו ו קוד הז יהוי של הבלוק (צ"ל - 046460982) 0 0ב גודל הלוק 08ב ערך צצנת (בקובץ אגא חקין יר - 57נ85564ט) /, 0 נפאנה 1 בלוק של ורמ קובץ אמט ו קוד הזיהור של הברוק (צ"ל - 020746066) 0 סב גודל הברוק 08ב וג קוב מ שמא מפפר ערוצי השמצ / הבה מצמאם קצב הרבימה / תנקתה סב בפים לשנייה (95ם) // -‏ (במכסשמצסלממטץם שתסב יפור הפיביות בבלוק הנתונים //‏ שתמשחקננתנםכנם שמת הזולוציית הפיביות //‏ למסנטטבםצםתיגם שמת א 1 פרק 15: השמעת קבצי ואו 311 הנתונים להשחעה של חחיצת בלו / מ קור הזיהוי של הבלוק (צ"ל - 0001746164 // 81005 המב גודל הברוק / 810051550 המב 9 מבנה לשמירת הנתונים על ברטים חקור / שרוץ הגישה הישירה לזיברוף / ו רמת פרוץ בקשת הפיקה / א בתובת הבסים של ה- 55ספמ81 הממסם / שמ :גת ממט ‏ מבנה לשסירת מטטוט הפטת עמש /, 1ב מצביט לקובץ שמש | שבנמאמאי מגצ האמ הקובץ בהפמעה פכשיול // | העט 96ב מבבאמבנר מספר הרנימות שנשאר לקרוא מהקובץ // 0( 4במפשפמל הב שגבטבגבי מפצר הדג'מות טנשאר להשמיצ // ? 5ע-1לשממד 0ב שבבטבגבי 1 מבנה לשפירת גחוגי הליכרוף הדרושים /, | יברו ל 0 ב 0 מצביט לחוצץ מאם 0 5065550אט* תפצ מיקום הקריאה בחוצץ /, מ יו 7 0 פונקציות / 7 00450ת מצכהם) 55ש:12ג2510סכהם מב 0 פונקציה לבדיקת כפובת ב, 4455595000 - הכתובת לבדיקה. אמת אפ הכתובת שנבדקה הלא אכן כתובת הבטה 0081 0ל5מ-2ג) עבמקטט וי 0 ל מספטטט בי 2 שפת 6- נושאים מתקדמים. 0( 080 -- ( 2080 המשנ ת)מטשסק הב ) ) )4ב ןגס == (03 0 500:מצג)מםסשהג ‏ 6פ הכתובת שנבדקה היא אכן בתובת הבסים של ה-5פם ////, ערכן את סבוה ברסים הקול // ל וחחזר אמח ו אחות, החור לשקרי ו 1 )500 בק גב / פונקציה לשליחת פרך כלשהו ל-%ם (מם המתן שה-פפם יחלה המי //// (9890 == (0580 8 (א0 + ששל :מסבב421הט22) בצצבקהג)) מנצהאה מליחת הפרך ל-פפם ///// 50| ממ סומ 7 ות מתב / פונקציה למציאת כרטים הקול, ה-סא1, וה-אם עריין לא נמצאת בפובת בלשהי /, 5 שבל :50ב םתטמם חיפוש בהובת מל ה- =מיפבנעשתאסם ///// ו 54 0349 בצמה ו ((80 4 1) + 200א0) בשםא43גם5בםאסמת.) 8 פרק 15: השמעת קבצי ואו 313 (- 4 6 לא נמצא, החור קר / 9 חיפוש 190 ו-אא במחרוזה ה-מהשתהכצגאה. ל ה-שםושבנעשתאסם ////, יי 39% (פצצצכנל) ממ1שט. > 4 00 - ב) שב (₪0 == (32 | [3] הפמפהנם)) + 00% - [1 + 4) תפצלתו - אפ :4815558ה (%דג ‏ (פצלנתנמ) המנשט. > 4 00 - ב) שמ (יג' == (32 | [3) הפופתנם)) 4 8 ב [2 + ג הממפתנם) 4 - [ב + 1] המשצתו טפט (נמ מפעל | מ:ממא בצעל 855מתטנטט בגב מ פונטצית לקביעת פוצמף טול בצ - בית המציין את פוצמת הקול. (ארבע הפיביות הראשונות מייצגות את הרמקול הימנר, והאחרונות את השמאלי קט )סט (פמפמא שצעל) 5 מאטנטט ממ 0 פונקיה לבדיקת פוצמת קול שצשמא - הרכ'ב שאת עוצמת קולו אבו רוצים לרע ערך מוחזר - ביח המציין את עוצמת הקול (ארבע הסיביות הראשונות מריצגות את הרמקול הימני, והאחרונות את השמאלי 4 שפת 6- נושאים מתקדמים. שמא 0.224 סומ ( (59)06225פסקה: ) מצנסמ (4מח) שסשמץטנטפמוט שגמ / עצור אף השידור מערוץ ה-מאם / גא לא נוחר פור מה להשמיט / בוב מה בור את קובץ ה-אא 1 941 בבס פא )05ב 01 בת גה שגמ / חכן את ערוץ ה-גאם לקריאה עבור אהחול הפמה אוסומטית //// אפ 5955-נפשהטם4|9 | ג0א0) מטפסקאמט 2( | 0996) מספספומט 590 5955-נ5הט0858|92 | 08א0) מספסקטמט שליחת ההלמט לבקר ה-מאם //// (%שא0 6 044556 ת-א | 1 >> הא +ם6-ב21שהט50) מבפסטמט (8 << 088566 ת-א | 1 >> 26 -6215565ה500) מףפסקאמט בתיבת חדף לבקר ה-מאם //// 00 4515 20| שמא ו ספ |(96ל תשא ו0287) מצצסקלטם :5 מפצ סמ |(96ל תשא (83א0) מצצסקטטם 3 1 מפצה ספ |(96ל תשא (82א0) מצשסקטטם :2 מפצה / קביצת אורך הבלוק של ה-גאם ל-7948% (מאבב) ///// ;מעאט ,ב + (1 >> מאם.:-ס842-5הט52)) ממפסאמ :075 ,ב + (1 >> מאם.:-56-:85ה520)) ממפסאמ 5-5 פ הס ,ג080) מפפסקטמט פרק 15: השמעת קבצי ואו 315 קביעת אורך הבל וק של ה-5ט ר-38498 (באשב) 10 ד מאט) פפממטבאט ש3אט) פפםבטבאט | יי (1סצ) %בפץנ0נס 30150 בגב א פונקציה לטיפול בהשמעת מחזור בודר (יחיד) א 310 008 8פמבטבאט (ללא0 6 4-ץ-נל.ממל שנסבובטגט) פפםמטבא :8 << 64ע6018םכל פבסבומטגא) פפםבצבא הפעלת מחוור השמעה בודר ////‏ 006 58םמטבא אי פור מה להשמיט 1/7 1 קנה בגב 8 פונקציה להקצאת חוצץ זיכרון עבור הנתונים להפטעה. בפובת ליביארית 1 המב מצביפ לחוצץ ומגר / 680מפפחטלי שפצ שג ופי זיכרוף בגורל באפב , 2שפאל | נשפפל שמ הקצאת פאשל זיברוף 32 10 (22768) 5מ1נב2(* תבתם) = 68ממפח מישוב הכתובת הליגיארית ////‏ 10| שפצ (088פח1) צס ל + (4 5% םפמצנשתשבמהב 6 שפת 6- נושאים מתקדמים. וב ד ראפוף במחית החוצץ ///// 6 ל :המש 13 = במפמ חישוב דף ראשו בפוף החוצץ ///// 60 <כ (22767 + 5שקמ.3-מאהבנ) = בשמ קה האס נחצו גבולות הדף ///// ו [ (פ 96 כן, הקצה חופץ אחר. 0 (22766)-119בת(> שבתכ) > +ם0)בשמאם המ מא אחרת החמש בחוצץ מהקציגר / ה המרת המצביט לכתובת ליניארית וקבישת הדף והחימט //// (555:מ5אם תשא 20 ל 7 43555ג3מטה ג (508:מםגאב שש עעם לע + (4 >> שבמצטבה-במהבם פונקציה למפינת 165 (מצי מחוצץ מאל) מהקובץ אל החוצ 50655 - איזו מחצית חוצץ עלינו לקרוה אס הפתיימה הקריאה צא מהפונקציה ///// ו מצטסמ: (0 -> ב08-984, צמטב:מעמא) 8 אפ החרק שיש לקרוא קטן מ-685ב מצן אוחו, ומלא את השאר ב"רממה", ///// 10386 > 9.4 מל בבלםאמעמא) 4 [ 22850380 08 םש שחת 3 1 (414:ם5מל)ה-- טנא השא .א פה פרק 15: השמעת קבצי ואו 347 ותה והחסר 45ב מהמוגה / . [ 1 10 4 5ש50בם) + +ם0 )בלו השא) שפצ 1 0 / את ערך המשתנה אנ מסובבים ממאלה 4 פעמים בי 2 בחוקת 14 = 366 ד )90051800 סקטדשוהג בגב 2 פסיקה המטפלת בתשמעה המחזורית, הפסיקה תופעל אוטומטית בסוף כל מחדור. שחרר את פורט 5 הסיביות של פמט ///‏ (פא0 + 8595 :20421.5 מממסקהב הכר במסיקה החומרה ///// (020 ,0820) סקט קה הגולשת (פבור אצ 3-38,2ב) //// (12--120. 5555ב[5שהטספ||10--20:. :55--421תטב2 |(2--120 :58בב1םת:מם) 4 (020 ,080) מבצסשטט ופול בח וי ו ב א 4 [ הור 1685 מהמגת /, מ 6 נשאר מה לגבף /, 0 אא 46 [ קרא מחזור לחוצץ / ( 0 6 זהו המחזור השחרון // - - (16384 -> 4עב1לשממל בבצבטמוא) 4 (פפ?) 58םמטגאט (0 עב לפטי 8 שפת 6- נושאים מתקדמים. (() (59נאשאי) שקטצסמטתג 4גסא) מפנטצה: שגמ פונקציה לאחחול פסיקת ההשמעה המחזורית פומטרים מוטברים - הפסיקה שדגו שסירת הפיסקה הנוכחית בתא ריק מספר 304 ///// (150 058 48155ה0ם2) שמא ו פמט נ((0671) 5-ש00מט 05)104מאמ: :2 שפצ סט נ((0672) 5-ש0סשט/05)104מא290 :10 מפצ /פצט -נ(0673) 5-ש0סשס/05)104מא200 :11 מפא ((130. 0+90003515558%) 104,050+05) ממה א 9 ו קביפת הפסיקה שלבו בפפיק ה-0פצ ///// (200048155055.150) שמא [ (שפפצמ ((55נאשא ,ג7א2) מסמצצסם :2 שפצ פפצמ ‏ |(55נאשע ,2872) סמצצסם :10 מפמה (198אפא 190 -4815565ה390) 5במטמק הטמלמ ו ה 1 (4155058.190ה0ם2) שמא [ שפמצע ‏ ;(1[4253ת,ט)מםמסקהג ‏ באאף) טצסקלנם :2 שפצ שפמצפ ‏ נ(31[425,פ)מטמסקהג ‏ נאאף) מצצסקטטם :10 מפצ שממצע ‏ נ(4247[נ3,ט)משמסקהג ‏ נאאף) מצצסקטטם :11 מפצ ((90004855655.250+>1) 0 5 (0₪21)ממצסקה. ‏ 21א0) מסמסקאמט וטבמב/ש ה (11--190. 421-5585מ00ם || 10--120 -ם::.421מטסם || 2--190 :שסמבגמהמ2) 8 253 = (21ש0)ממשסקה: ‏ ב082) מספסטמט 09 0100טבפה שגמ / פונקציה לשחזור פסיקת ההשמעה המחזורית המקורית פרק 15: השמעת קבצי ואו 319 שחזר אפ הפסיקה המקורית ששמרגר בחא 104 ////‏ (10 90/15 | המט גא ו (משאט ‏ :((106)ממשהטמט (071) ממפטמ: :2 שפה שפפפ :[(194) פמט (72א0) 5םס0ש: :0ב מצ שפפפפ ‏ :[(5)104ממהטמט ו72א0) 5םמטש: וצב מצם ((104) ספטפט ,190 0062155655פ)8) 5םסעטש: נטבמבא ה 1 ו 10 90| לבא [ ובפצם ‏ ;(2 | (בהא0)ממצסקה: ‏ נהאנ) משקסקטטם :2 ממה ופצ (4 | (בת-0)ממצסקה: ונהאנ) מוקסקטמם :20 מצםה ופצ ;(5 | (בהא0)מסמסקה: ‏ 1ה-ק) מוקסקטמם :בב מצם ו ((2155655.190שַ4200>נ) | (21א0)מסצסקה: (0421) מושסקטטם נטבמבא ה 1 (11--190 --48135הכ, || 10 --190 --421556הט20 || 2--120 :מ5:ב1בתטסם) 4 6 | (ג2א0)מצצסקהג ,282) מבאסקטט (04) 5ב54ב21.ת/00 גה1 שח -/ פונקציה לאפחול כרטיס הקול. את ברימ חקור ו תת ) 46 אפ לא נמצא החור שקר / יי אחחול מוכנית הפסיקה לגר / (5535150) נאצטג הקושת זיברון לחופ ו 0 טפט אפחול המשחגים // 0 - הכנל מבטבאכטנא - --)ממה הא חקול החבצט בהצלחה / ל 098 82155585ה000 102 בגב / פונקציה ליציאה מהיחידה (שחרור הזיכרון שהוקצה ושחזור תפסיקה המקוריה) 6 שפת 6- נושאים מתקדמים. 96 מנגן, פצור // 2 5בבכעמנממכס5 (מַתגעהנם הגטבימעאא) 4 שחרור הזיכרון שהוקצה לחומ / תשא משצל שחוור פסיקת מפ ו ליי חסנל" אבהס) אמאעטנל מה / פונקציה להפפפת קובץ א 415%5? - שמ קובץ האגה 1- > אין מספיק זיכרון, או שכרטיט הקול לא אותחר 2 > קובץ אא איגו קרימ 3- > הקובץ איגו קובץ שמא תקי 0 96 מנגן, פצור //‏ ;) 6בצכעמנטמכס5 (הַתגעהנט הנטב:משאא) 4 אפ אין מפפיק ולכרון או שברטים הקול לא אותחל // - (5מ4)בתאם הצאו) 4 מ הפחלת ההשמעה היא מאמט / ל ו 22768 ,0 665במתאם 05 ממצתה את הקובץ פתף // ;('מד' ‏ מחמאמב1?)השקכ+ = מב1עט1א בבזבאמוא א לא קיים // -‏ ו(2-) מצנסש: [116ל%00 במטבטמאאו) 6 קרא את בלוט ה-צצבפ //// 7 ססנפלונם/) בבמצ טנ :0גמעק בה 6 אפ הו לא קובץ אאא תקרף ‏ = ענה 00 נמתקנט 0/9415 ספא )05ב פה / קריאת בוש הרמט ה-או //// ו 1 )45110 - שמא 90/9416 בג 06 נפ6ממ-ם?/א) 215028 210% מחם 20| בבק עשפ 595% 2108515608 0%בנ2 במדם? היקטל 630215 שנט בינ מא) אבצל 8-0 קת 100 8ם210אבת:סת00א) מ1 בא 1 פרק 15: השמעת קבצי ואו 321 הביטח קצב הדימה 0/7 ו (9355פנקחכם 0%ם521במ:ם/ואא / 1000000 - 256) פפםמצבא מצראת חחילת בוש הנתובים ////, [ א ב31 = שמ ,1 (0:0-535165%שה1ה3ט28) 21508, 5281038 בםפ0ַה:ה1ק-ם)) שמא 10 1746266 | מע א-10ם. 00805581058הה023ם) 46 ,5 + 10045355 00נ8ב:ב0זסָה:ה501יקמד נגל/0/ הטטבופטהא) אפפ דירי | מקצלאסמנם 81002ב0400ַהה3ק-2) מנצמא ‏ /9355א0מ1פ. 060528106%ַה:ה:6-2-7/-21מלסל שנב 0234-8/5- מל בבס באפ שיפשור ה-פטמ 11 נפאט) 58םבטגאט ריאת החוצצים הראשוף ‏ //// 0 1 דב ההשמעה = מצב ו = פע גל במטב ופא 6 ישנו יותר ממחזור שחר // (0 < 32568254 בבצבאפאא) 4 )תג שחרת הפעל השמטת מחוור בודר / 10 0 גלוא שמ 2 פונקציה הבודקת האפ מתנגן כרגע קובץ בלשהר משמט מק 2 שפת 6- נושאים מתקדמים. תוכנית לדוגמה התוכנית מדגימה השמעת קוב ₪84 בעזרת היחידה שכתבנו. בתחילת התוכנית מתבצע אתחול של כרטיס הקול. אס האתחול נכשל, מוצגת הודעה. מתאימה. אם האתחול מתבצע בהצלחה, מושמע קוב אוו לולאת טווו מחכה עד שייגמר השיר, או עד שחמשתמש יקוש על מקש כלשחו. ביצואה. מהלולאה מוצגת הודעה האומרת, שההשמעה הסתייימה ויש להקיש על מקש כלשהו. לוצואה. בסוף התוכנית, אגו מכבים את כרטיס הקול, כדי שיפסיק לחשמיע רעשים. אם המשתמש. לוח על מקש לפני שההשמעה מסתיימת, פונקציית הכיבוי תדאזג לעצור את ההשמעה לפנ כיבוי ברטיס חקול. הקבצים שיש לצרף לפרויקט כדי לחריץ את הדוגמה הם; 4946 ו-84469%6/ו. למידע נוסף. 7 מ הצמה אצמ [ בריקת מהחול ברטים הקול // )6ב [ ("ברטיט הקול לא ווהה !)תנק 0 0 8 "אמא 00ב ) שמאעבט 0 6( בגר לההפטעה הפתיימה, לחצו על מקש בלשהו לרציאה )תנק 0 ביבוי ברטיס חקור ו 0 פרק 15: השמעת קבצי ואו 323 8 רשימת פקודות ₪55 סעיף זה מיועד לאלה, שרוצים לבנות יחידה לתמיכה בסוגים נוספים של קבצי אוו רשימה זו כוללת את פקודות 050. עקבו שוב אחרי יחידת התכנות שבפרק זה. בכל פעם. שנשלחת פקודה ל-5% (בעזרת הפונקציה 60057/, חפשו את הפקודה ברשימת הפקודות. ונסו למצוא את הפקודה שצריכה להחליף אותה עבור פורמט 8 שברצונכם להשמיע. 9 = הערכים הנשלחים ל-/05 הם בגודל בית אחד (8 סיביות). לעיתים נרצה. "= לשלוח ל-/05, ערכים שגודלם עולה על שמונה סיביות. במקרים אלה, נפצל את הערך לחלקים של שמונה סיביות ונשלח אותם זה אחר זה. סדר השליחה. של חלקים אלה משתנה בין הפקודות השונות, לכן יש לשים לב לרשימת. השליחה. לדונמה: ניקח כדוגמה את הפקודה 48% (קביעת אורך מחזור השמעה מסוג 1668 תיאור הערכים לשליחח של פקודת זר ערכים לשלוחה; 69%, שמונה הסיביות העליונות של ערך הקטן ב-1 מאורך המחזור, בפרק וח עבדנו עס מחזורים בגודל 1668. ב-188 יש 1024 בתים ולכן 1665 = 16384 בתים. ברשימת הערכים לשליחה כתוב יערך הקטן ב-1 מאורך המחוור", לכן נפחית מערך זה אחד. ונקבל 16383 בתים. עכשיו נמיר ערך זה לערך הקסדצימלי (ניתן לעשות זאת בעזרת. המחשבון המדעי של 060% ונקבל את הערך ו300. כל ספרה הקסדצימלית תופסת. ארבע סיביות, לכן הערך שקיבלנו תופס 16 סיביות. ברשימת הערכים לשליחה, כתוב שוש. לשלוח קודם את שמונת הסיביות העליונות ואחר כך את שמונת הסיביות התחתונות, לכ נעשה ואת כך. (0848) 08ם 1 (0859) 08םט גצ ל 5 פקודה 08 פלט דגימה במוד גישח ישירה. ערכים לשליחה: //19, בית נתונים המכול את הדגימה. פקודה 264 קביעת אורך מחזור השמעה מסוג 8 סיביות. ערכים לשליחה: 144, שמונה הסיביות התחתונות של ערך הקטן ב-1 מהאורך, שמונה. הסיביות העליונות. 4 שפת 6- נושאים מתקדמים. קודה 160 אתחול השמעה מחזורית של 8 סיביות. ערכים לשלוחה: 164 יק יש להשתמש תחילה בפקודה א%. פקודה 26 אתחול הקלטה מחזורית של 8 סיביות. ערכים לשליחה: 26%. 9 יש להשתמש תחילה בפקודה א5, פקודה 20% קליטת דגימה במוד גישח ישירה. ערכים לשלוחה: 20%. ערכים לקריאה: דגימה בגודל בית. מ פקודה 4 קבועת גודל מחזור הקלטה בוד של 8 סיביות. ערכים לשלוחה: 24%, שמונה הסיביות התחתונות של ערך הקטן ב-1 מהאורך, שמונ. הסיביות העליונות. מ קודה 00 קביעת קצב הדגימה. ערכים לשלוחה: 40%,. 6 | ( (קצב הדגימה"מספר הערוצים/256000000) - 65536 קודה 40 קביעת תדר ההשמעה. ערכים לשלוחה: 414, שמונח הסיביות העליונות של התדר בהרץ, שמונה הסיביות. פרק 15: השמעת קבצי ואו 325 מקודה א קביעת תדר ההקלטה. ערכים לשליחה: ו/42, שמונה הסיביות העליונות של התדר בהרץ, שמונה הסיביות. מקודה 8 קביעת אורך המחזור להשמעה מחזורית. ערכים לשליחה: /48, שמונה הסיביות העליונות של ערך הקטן ב-1 מאורך המחזור, פקודה 08 השחיית ההקלטה. ערכים לשליחה: 4ו80, שמונה הסיביות התחתונות של ערך הקטן ב-1 מומן ההשהיה. הרצוי, שמונח הסיביות העליונות. מקודה 04 אתחול השמעה רציפה ומהירה מסוג 8 סיביות (השמעה במהירות גדולה מהרגיל. ערכים לשלוחח: 904. קודה וג אתחול השמעה רציפה ומהירה של מחזור בודד מסוג 5 סיביות (השמעה במחירות גדולה. מהרגיס. ערכים לשליחח:918. מקודה אפ אתחול הקלטה מהירה מחזורית מסוג 8 סיביות. ערכים לשליחח: 984. 6 שפת 6- נושאים מתקדמים. קודה 9 אתחול הקלטה מוחירח של מחזור בודד מסוג. ערכים לשליחה: 994. א פקודה וס קביעת הקלטה מסוג מונו. ערכום לשליחה : 404. פקודה 58 קביעת הקלטה מסוג סטריאו. ערכים לשליחה : 404. מ פקודות וול פקודות להשמעה והקלטה מסוג 16 סיביות. ערכים לשליחה .א?ט, מוד, שמונה הסיביות התחתונות של ערך הקטן ב-1 מכמות. הדגימות שבמחזור, שמונה הסיביות העליונות. - ספרה אחת (4 סיביות) הנקבעת על פי הצירוף הבא. שתי הסיביות הראשונות (0פ,91) תמיד אפס. סיבית שלישית (92) תחיה אפס למחזור בודד ו-1 להשמעה מחזורית. סיבית רביעית (03) תיה אפס להשמעה ו-1 להקלטה. מוד - משתנה מסוג בית שערכו יהיה אפס למונו ו-20% לסטריאו. 8 פקודה 0% השהיית שידור 01% מסוג 8 סיביות. ערכום לשליחה : 40%. פקודה ₪10 הדלקת ה-לם. ערכים לשליחה : 418. פרק 15: השמעת קבצי ואוו 327 ₪ פקודה 3% כיבוי ח-55ם. ערכים לשלוחה :)430. ₪ פקודה 40 חורה מהשהיית שידור 043 מסוג 8 סיביות. ערכים לשלוחה )444. 5 פקודה 05% עצירת שידור אס מסוג 16 סיביות. ערכים לשלוחה :)494. 8 פקודה 06% חורה מהשהיית השהיית שידור 0% מסוג 16 סיביות. ערכים לשלוחה :/46. פקודה 8% קביעת סטטוס ה-לם. ערכים לשלוחה ‏ 484. ערכים לקריאה : הסטטוס (00 - כבוי, 6 - דלוק). פקודה 09% עצור חשמעה מחזורית מסוג 16 סיביות בהפעלה הבאה של פסיקת השירות. ערכים לשלוחה :)494. ₪ פקודה 080% עצור השמעה מחזורית מסוג 8 סיביות בהפעלה הבאה של פסיקת השירות. ערכים לשלוחה :698. 8 שפת 6- נושאים מתקדמים. פרק 16 הקלטת קבצי צ/ למדנו להשמיע שירים מכונן התקליטורים ונם לחשמיע קבצי קול מסוג 4/44. לשלמת. נושא פרקי השמע (6חוספו, נלמד בפרק זה להקליט שירים מכונן התקליטורים לשמירה. בקבצי קול מסוג ואוא. אס אינכם רוצים להקליט שירים מכונן התקליטורים, תוכלו להקליט את עצמכם בעורת. המיקרופון, וכך לשלב בתוכנית, או בפרויקט כלשהו גם הסברים וקולות אחרים. אפטרות נוספת היא לחבר לכרטיס הקול מכשיר חיצוני, כמו אורגנית, דרך הכניסה. המסומנת בו: ח1 1:06 או 18-ה תיאור כרטיס הקול וחיבוריו ומק ₪595 כדי להפיק את מלוא התועלת מלימוד פרק זה, רצוי להכיר תחילה את. = הנושאים המפורטים בפרק 15, "השמעת קבצי ואוו" פרק 18: הקלטת קבצי ואו 329 . 1 המיקסר - זסאזו בפרק הקודם הכרנו את הרכיב 59 (מעבד אותות דיניטליים), שנמצא על כרטיס הקול. עכשיו נכיר רכיב נוסף בכרטיס הקול = 4086 (מערבל, מיקסר). המיקסר מורכב מאוגרים רבים, שכל אחד מהם בעל תפקיד נפרד, כמו למשל: עוצמת הקול. בהשמעה מכונן התקליטורים, עוצמת הקול בהקלטה מהמיקרופון, קביעת הרכיב המחובר כמקור קלט לצלילים ועוד. כדי לשנות ערך של אחד האוגרים שבמיקסר, עלינו לשלוח את קוד האונר המבוקש אל. היציאה הנמצאת בהיסט > מכתובת הבסיס, ואחר כך לשלוח את הערך הרצוי ליציאה. הנמצאת בהיסט 5 מכתובת הבסיס. הפונקציה תיראה כך. (0 סועם ,8 סעכ םא1אם18פא 48מר 90 פ6פסקטם 155056 00 ,5 + 56בם. 125502 אם נרצה לבדוק מחו ערך של אוגר מסוים במיקסר, נשלח את קוד האוגר ליצואה הנמצאת. בכתובת הבסיס בהיסט 6, ומייד אאחר כך נקרא את ערך האוגר מהיציאה הנמצאת בכתובת. הבסיס בחיסט > הפונקציה תיראה כך. (3 056 86503868 מפעה ;(9 ,4 + 556 60פבנמ4ה500) ממעספטטםה /( (9 + 51380:.8256ה90) עזעסה1 ) משמטסע לפני שנתחיל בהקלטה עלינו להועור במיקסר כדי לכוון את מקור התקלטה (כונן התקליטורים, מיקרופון או חיבור 10 6/), לכוון את עוצמת ההקלטה לעוצמה מקסימלית. ולבטל את ערוץ ההקלטה הימני (כי אגו עוסקים בקבצי קול מסוג מונט. נגדיר שלושה קבועים, שיסמלו את מקורות ההקלטה האפשריים. הערכים של הקבועים. אינס חשובים (חשוב שיחיו ערכים שונים, כדי שנוכל להבדיל ביניהם). הקלטה מכונן התקליטורים. // 8 הקלטה מהמיקרופוף // 02 הקלמה מחיבור 6-18ת13 // 5 אפ 3656 שפת 6- נושאים מתקדמים. עכשיו נכתוב את הפונקציה שתקבל קבוע של אחד המקורות, ותבקש מהמוקסר לחבר או כמקור. אין צורך להתעמק בנושא המיקסר ובמשמעות האוגרים וערכיהם (במיוחד לאור. העובדה, שזו הפונקציה היחידה בספר זה בה נעזר במיקסר), אלא רק להבין את השימוש. טל >בל0) 2215300 ממ א פונקציה לבחירת מקור ההקלטה וערכון ה-+מאצא בהא פומטר מועבר - קבוע מקור ההקלטה (00 סא אנ שאנג ביפול ערוץ ההקלטה ה 7 (0 )אא גאה חיבור הקלטה לערוץ השמאלי של הסקור הרצוי בעוצמת קול מקפימלית /, 90| שמא (1 ,)אא גשה (7 ,00 א גא ג )אא שא (255 28א0) שמאמאם צשא שא 200 ,30א0) שמאגאםאצטא 255[‏ 28א0) שמאגאם נש 20 20א0) שמאגאםאצטא ו במי ה ל פרק 18: הקלטת קבצי ואו 331 2 מנגנון ההקלטה המחזורית הסקרנים מבוניכם שהציצו ברשימת פקודות ה-057 שבפרק הקודם, בוודאי שמו לב. שקיימות פקודות הקלטה המקבילות לפקודות ההשמעה המחצורית, בהם השתמשנו בפרק. הקודס. אס כך, עלינו לנסות ולגלות מה צריך לשנות בפונקציות שכתבנו להשמעת קבצי שו כדי שיתאימו לביצוע הקלטה. לפני שניגש לפונקציות עצמן, נסו לחשוב האם חסרים לנו משתנים כלשהס + כדי לעקוב אחר התקדמות ההשמעה, השתמשנו במשתנים 1099/64 ו-1009886. הנמצאים בתוך המבנה פווגופ3/. כדי לעקוב אחרי התקדמות ההקלטה, נשתמש. במשתנה 86600664, שיכיל את מספר הדגימות שהוקלטו. נוסיף אותו למבנה. מבנה למירת סטטום השמעת ותוא / ב מצביע אל קובץ ומאו / 16נתטתוי מתצל האט הקובץ בהשמעה עכשיול // העבק פם מספר הדגימות שנשארו לקרוא מהקובץ. / 10809888 שב / / מספר הדגיטות שארו להשמי 0 מספר הדגימות שהוקלמר //. | 3500668 6ת10. אא ן כדי לעקוב אחר מחצית החוצץ שממנו אנו קוראיס, השתמשנו במשתנה ש/89, הנמצא. במבנה וחש\. כדי לעקוב אחרי מחצית החוצ שאליו נכתוב, נוסיף למבנה את המשתנה. מ/: המבנה המעודכן ייראה כך. מבנה לשמירת נתוני הזיברון הדרושים / 0 ד זיכרון / בע סמעמב היסט | 1 מעמחם מצביע לחוצץ ואט / סמ טוט* מס מיקום הקריאה בחוצץ. / ועם?צטמת מצסתב מיקום הכתיבה בחוצץ. /// ?טמא מצסמם חן עכשיו כל המשתנים מוכנים ואפשר לעבור לטיפול בפונקציות. נתחיל בפונקציה /86349. כוכור, פונקציה זו טענה נתונים מקוב 4/8 אל מחצית. קיבולת החוצ. הפעם, כיון שאנו עוסקים בהקלטה, עלינו לכתוב פונקציה נוספת שתבצע. פעולה הפוכה ותשמור לתוך קוב 18% את מחצית תוכן החוצץ. הפונקציה תיראה כך. (204855 בצבה2) -ם?)מלמחבם בגב [ א בב5בטפוא ,1 ,16284 ,(14 46 -ם2.54| + =.0לטבגאם ת./) מטבצא ערכן את מונה הלגימות שהושמפו / ו 2 שפת 6- נושאים מתקדמים. במנגנון ההשמעה המחוורי, תוכנית השירות של בקשת הפסיקה עסקה בקריאת הקוב אל. מחצית החוצץ. לכן, עלונו לשנות תוכנית זו, כך שבמקום להפעיל את הפונקציה 600806 בסוף כל מחוור, התוכנית תפעיל את הפונקציה ז₪/4%69ו. בנוסף, נחליף את המעקב אחר. מוני התקדמות ההשמעה במעקב אחרי התקדמות ההקלטה (8601666. תוכנית הפסיקה ה''משופצת" תיראה כך (שימו לב לשינויים) 04 105190ם9קה01:טבפה מקבדסטאה: גבל [ שחרר את ה-89ט 0 020 םסה המרה 929 ,0820) מספספאמט הכר בפסיקה הגולשת (עבור האנ ו 10 2,-בג) // (10--190. 421-5085מ00ם || 10--0א1 :ם::.421משסם || 2--190 :שס--ג2המם) 8 [29א9 ,0-30) מספסאמ פורת הו טלא 0 5ש59מם באמ שבור למחצית החוצץ הבאה / כדי לטעון אל וקטור הפסיקות את הפסיקה החדשה שכתבנו, נכתוב פונקציה לאתחול, כרטיס חקול להקלטה. פונקציה זו תהיה זהה לפונקציה 5006819%61אח1, אלא שעכשיר היא טוענת את תוכנית הפסיקה להקלטה ולא את תוכנית הפסיקה להשמעה. כמו כן, היא. גם מאפסת אות מונה התקדמות ההקלטה, ולא את מונה התקדמות ההשמעה. הפונקציה תיראה כך. מא את ברטים הקול / )8ב אפ לא נמצא הזר שר / וצויי אתחול ה-190 בפפיקה שגר /, (5198מרצסלקה :סש ) 49180ת הקצאת זיברון לחוצץ / מש- יי אתחול המשצביס /, אתחול כרטיס הקול ההבצט בהצלחה /, 7 פרק 18: הקלטת קבצי ואו 333 לאחר שאנו יודעים כיצד מבוצעת הקלטה, נוכל לאתחל הקלטה מחזורית. אאתחול הקלטה. המחזורית זהה לאתחול ההשמעה המחזורית 960ט/פוקפא/ח1), מלבד שני שינויים. 1. עלונו להגדיר את ערוץ ה-וזם לכתיבה, ולא לקריאה. 1. בסוף הפונקציה, נחליף את פקודת ה-05% הקיימת להשמעה מחזורית בפקודה אחרת. להקלטה מחזורית. מלבד שני שינויים אלה (שמסומנים בקו תחתי), הפונקציות וחות לחלוטין. 0005 לבמט בגב [ הכן את פרוץ גאט להקלטה מחזורית אוטומטית ////, (080 .3885 1מ004ם | 4 ,2898) פמממקטטם 01 (90א9) מבפמשטט סט | 0.54 מ0א?) מבצמשטט שליחת ההימט לבקר ה-מאם 1/7 (0859 5 084566 ת-א ,2 >> מא -מ21555מת20) עבצמקטטם 8 << 086566 :א ,1 >> הא -ם55מ1מתטמ5) מבַמקטטם בתיבת חדף אל בפר מא 1/7 90| םלג פס :(9מל תמל ( 0.87 פס :(96ל תמל | 0-8 פס :(9ל תמל 0-82 / קביפת אורר הבלוק של ה-גאם ר-18498 (באבב) 2/0 פאס ,1 + (1 ++ אב צשסם-נבהטם8)) עבמקטטם (פדאפ ,1 + (1 >> גא0-:5ט5בנפהמם9)) עבצמקטמ ; ופ 5004515558 ,ג0א2) מבמקטט קביעה שא ורך הבלוק של ה-59ם יהיה 36658 (בא6ב) ////‏ ו 5אט) 58ממטבאט 0035 59ם4טבאט החחל את ההקלטה המחדורית 12/17 :020 59מבצגא , הפעלנו את ההקלטה המחוורית ואנ יודעים כיצד היא מתבצעת, אבל שכחנו דבר. חשוב מאוד - לקבוע את תדר ההקלטה ולהכין את הקוב להקלטה. לשם כך, נכתוב פונקציה כללות להפעלת ההקלטה. הפונקציה תקבל כפרמטרים את שם. הקוב שלתוכו אנו רוצים להקליט, וקבוע המציין את המקור שממנו אנו רוצים להקליט. 4 שפת 6- נושאים מתקדמים. הפונקציה צריכח לבצע פעולות אל. 1. לקשר את המקור הרצוי (כונן התקליטורים, מיקרופון וכוי) כקלט להקלטה (בעזרת. הפונקציה 5615066 שיצרנם. 1 לפתוח את הקוב לכתיבה. 3. להכניס לקובץ בותר (הוח לכותר שהכרנו בפרק הקודס) 5 לקבוע את תדר ההקלטה (בדיוק כפי שקבענו את תדר ההשמעהו. 5. להפעיל את ההקלטה המחוורית (בעזרת הפונקציה /5₪1186016, שיצרנו כרגש. עד לסיוס ההקלטה, אין אנו יודעים מהם הנתונים המדויקים שכותר הקוב צריך לחכול. בינתיים, נכניס כותר מדומה (ריק), ובסוף ההקלטה נעדכן אותו בנתונים האמיתיים. הכותר המינימלי ביותר שיכול להיות לקובץ /0/8, מכיל את שלושת הבלוקים שהגדרנו. בפרק הקודס 815780060, ₪0319/06ז8050/ ו 69/90101981066. עברר שלושה בלוקים. אלה דרושים 46 בתים, לכן נוסיף לקוב+ 44 בתים ריקים. הפונקציה תיראה כך. (500:05 :בל: ‏ מממאף1ג?* שבתב) אאבמכסמה שמ [ ב -עטאמ מגצ אחחול מקור ההקלטה // 02 ש801!) 6 א אס הסקור שצרר ו וצויי פתח את הקובץ לכתיבה // -‏ נ(ימחל ‏ ששצ%מ31?) השקכ+ = מ11ללא בבובאמו אמ המפיחה גבשלה // ה צויי. הכנפת 64 בתים ריקים לקובץ (במקום הכותר הנכו דכ בפוף התקפה 17 של 6954160 5בפב6מעא ב ,1 עאשח4) מצבצא קביטת חרירות ההחלטה ///// 0 שא א וגח ההקלפה / המחל את ההקלטה // פרק 18: הקלטת קבצי ואו 335 3 תעצרו את הרכבת, אני רוצה לרדת מנגנון ההקלטה המחזורית האוטומטית כבר מוכן, אך כיצד נוכל לעצור אותוו. כדי לעצור את ההשמעה המחוורית, תוכנית הפסיקה צריכה לגלות מתי אנו נמצאים. במחזור שלפני האחרון, ואם זה המצב, עלינו להפעיל את הפקודה 6:4 (עצירת ההשמעה. המחזורית במחזור הבא) של מעבד האותות ל05. הפונקציה לקריאת חצי חוצץ מהקובט. זיהתה את המחוור האחרון ומילאה את שארית החוצ ביידממה" עצירת ההקלטה המחזורית אינה יכולה להתבצע מייד, כשם שאי אפשר לעצור מייד את. ההשמעה. לשם כך נפעיל את הפקודה ו4ג6 של ה-5%פ. כדי שלא נמשיך לחקליט במשך. שארית המחזור לאחר שהמשתמש ביקש לעצור את ההקלטה, נפעיל את הפקודה 40%, הגורמת להשהיה. כך נוכל להשהות את ההקלטה ברגע שהמשתמש מבקש לעצור אותח, ומייד בתחילת המחזור הבא להפוך ואת לעצירה מוחלטת של המנגנון המחזורי. בנוסף לעצירת ההקלטה, הפונקציה לסיום ההקלטה צריכה גם לכתוב בכותר המדומה של. הקובץ את הנתונים האאמיתיים הנובעים מההקלטה. כדי לדעת מהו אורך הקובץ המוקלט, נוסיף למונה הדגימות שהוקלטו, ערך המציין את מספר הדגימות שהוקלטו במחזור זה, עד שהומעלה הפונקציה (מיקומו של מצביע אס ביחס לגודל החוצא. הפונקציח נראית כך 008 09.00הם בגב [ פצירת השלרור וו 7 ?)טג קרח את מצביצ ה-גאם מבקר ה-מא ו ((1 << האפ -4915565ה500) + 1) בושסקה: - שמאהגמקגאם :9 >> ((1 << גאפ 5955-נ5תטם9) + 1) מפצכקהנ) -+ שמאהגמעגאם במות הרגימות שהוקלטה מתחילת המחוור הבובפי /////, שפירת הרגימות שהוקלסו מתחילת המחוור הגוכחי ////, 5 055% מא ו תא גדא מ ב ות זו למונה הרגימות שהושלטו ////, קביטת רב ברק פצנח 0/0 0846464952 = מקצלאבסנפ :6סבמצחנת 6 שפת 6- נושאים מתקדמים. . קביפת פרכי בלו פורמט אא //// - ו 0-00 מו 015 םתד שגר ו = 55ב8מנקח:ם 20%נפסבמצמע אגא > 5נשהתאלס 5%ם521בחסם?/ - ה5805מל:םמע2 לסנמ במצכ א הביצח צרכי חחירת בלוק הגפובים ///// - פקצ%-10פ 05581068הסמההגקט 3004680 מבטב0/56/ = %8>5-512 א-210בלבקשכהה:קם שרכון הבלוקים בקובץ //// (משם אפמ5 ,0 ,מנגלאתא פנסבצב/מא) אבצ (18ל00 מנסב55א3א ,1 ,(002נ1?2ה)58-: 2‏ תפגמ ענה2) בטבדא [פ1בלואא שנסב:5/הא ,2 ,(מסנ2טבמ:3/20)) 212505 צסבנעסבמ:ם )20| מצבא 1 ש042528105ַה:0:ק-) 21-05 ,52210-5בם)0מַהגהקשם:) מטבא ממ 009415 5-5 גא) 5מב 4 היחידה לקבצי צג/ להקלטת קבצי //ו, משתמשים ברוב הפונקציות שכתבנו ביחידה להשמעת קבצי אוו (ראו פרק קודס, פרק 015. עכשיו ניצור יחידה אש אחת, שתשלב את ההשמעה ואת. ההקלטה. לשם כך, נוסיף ליחידה של הפרק הקודם את כל הפונקציות ואת השונויים. שהווכרו בפרק וה. היחידה המלאה נמצאת בתיקיה של פרק זה (תחת התיקיה. ב פרק 18: הקלטת קבצי ואו 337 . תוכנית לדוגמה התוכנית לדוגמה מדגימה הקלטה מכונן התקליטורים. ההקלטה מתחילה ומופסקת. בלחיצה על מקש כלשחו. הקובץ המוקלט נקרא אע 0/8 הקבצים שיש לצרף לפרויקט כדי להריץ את הדונמה הם: 80.6 ו-8669486. למידע נוסף. שה נש 0938 הנמה בגב [ 010 הב ) 45 [ חול ברטים הקול נכשרי) > הבא ו ו ("פברפים הקול אותחל בהצלחה, הקש מקש בלשהו ברי להתחיל בהקלטהק") =הא 0 0 ("מההקלטה החלה, לחץ על מקפ כלשהו למיום ההקלטה") >הא בג 0 00 0 8 שפת 6- נושאים מתקדמים. פרק 17 תקשורת טורית בין מחשבים והפעלת המודם בפרק וה נעסוק בתקשורת טורית בין שני מחשבים, המחוברים באמצעות כבל טורי או באמצעות קו טלפון ומודם. / נלמד לאתחל את יציאת התקשורת (60%4), נלמד ליצור תוכנת צ'אט בין שני מחשבים, המחוברים בכבל טורי. נלמד להתגבר על שגיאות בשידור.. נלמד ליצור חייגן טלפון. נלמד להעביר קבצים בין שני מחשבים בעזרת כבל ובעזרת מודם.. אאא > פרק 17 : תקשורת טורית בין מחשבים והפעלת המודם = 339 1 תקשורת טורית תקשורת טורית חיא תקשורת אסינכרונית המאפשרת למתשב לתקשר עם התקנים. חיצוניים (כגון עכבר), או עס מחשבים אחרים המחוברים אליו, בעזרת כבל או מודס וקו טלפון. בשידור סינכרוני יש סינכרון (תיאום זמנים) תמידי בין המחשבים, המתבצע בדרך כלל על. ידי הוספת קו סינכרון שמשודר בו אות שעון (דפקי מתח קצרים, המשודרים בכל קטע של. שידור סיבית), המתאם בין השעונים (למעשה, קוצבי זמ של שני המחשבים. לעומתו, בשידור אסינכרוני, חסינכרון בין המחשבים או ההתקנים), נשמר רק במסגרת של. תו יחיד. כשלא משודר תו כלשהו, הקו נמצא במצב אדיש (606. לפני שידור תו כלשהו, משודרת סיבית התחלה 40פ 59916), המוסנכרנת בין המחשבים ומסמלת לתחנה המקבלת. שהתחנה המשדרת עומדת לשדר תו. אחרי שידור סיבית ההתחלה משודרות סיביות התו, ואחריהן משודרת סיביות עצירה טופ פ?6). כאשר השולח משדר רצף של תווים, המרווחים בין התווים העוקבים, יהיו כולם וחים ושוויס למרווח העצירה שנקבע. אס. התווים אינם משודרים ברצף ויש הפסקות שרירותיות בין תו לתו, מרווח העצירה *ימשך. על ידי חמצב האדיש. אוסף הסיביות, הכולל: סיבית ההתחלה, סיביות המידע של התו, סיבית הבדיקה וסיביות. העצירה, נקרא וסגרת (806זח). היתרון של השידור האסינכרוני הוא בהיותו פוט וזול למימוש, כי הסינכרון בין התחנות. צריך להישמר רק במשך קטעי זמן קצרים (של שידור מסגרת תו), לכן הוא יכול להיות. פחות מדויק ואינו מצריך אות שעון. החיסרון של השידור האסינכרוני הוא התקורה. (09678686) הגבוחה. התקורה מבטאת את מספר הסיביות, שאינן סיביות מידע שיש. להוסיף בכל מסגרת. במקרה זה היא כוללת את סיביות ההתחלה, העצירה וסיבית בדיקה. ב בכל מחשב מותקן כרטיס תקשורת (אחד לפחות), המאפשר תקשורת טורית חיצונית (חפשר מחבר זכר בצורת טרפו בעל ל או 25 פינים בצידו האחורי של המחשב). לכל כניסה טורית. יש שם ייחודי. הראשונה נקראת 60%1, השנייה נקראת 0012 וכוי בנוסף לערוץ התקשורת (הכבל או קו הטלפו ולכרטיס התקשורת, כדי ליישם תקשורת. טורית בין מחשבים, דרושה נם תוכנית תקשורת המתווכת בין המשתמש לבין כרטיס. התקשורת ומשמשת כפרוטוקול (אוסף כללים בין בצדדים המעורבים בתקשורת, שתפקידם. להסדיר את העברת הנתונים ביניהס). את תוכנית התקשורת נבנה בעורת שימוש בפסיקה. 1 של 8105, המספקת שירותים להפעלת כרטיס התקשורת. נעשה ואת כפי שלמדנר בפרק 3 6 שפת 6- נושאים מתקדמים. 2 אתחול כרטיס התקשורת כדי שכרטיס התקשורת יוכל לבנות מסגרת עבור כל תו שברצוננו לשדר, וגם לשדר אותה. בערו התקשורת בקצב הרצוי, צריך לאתחל אותו תחילה. בעת האתחול צריך למסור לכרטיס התקשורת פרמטרים אלה. 1 מהירות השידור. הקצב בו ישודרו הסיביות בערו התקשורת. 2 מספר סיביות המידע במסגרת . ניתן לטדר 7 סיביות נתונים עבור 85611 תקני, או 5 סיביות נתונים עבור 8511 מורחב (למידע נוסף אודות 85011, ראה פרק 5) 3 סוג הבדיקה. האס תתוסף למסגרת סיבית זוגיות זוגית 081 ח46ם), או סובית. זוניות אי-זוגית (/808 046), אד שהמסגרת תשודר ללא ייבית בדיקה (הסבר מפורט. אודות סיבית בדיקת הווגיות, ראו סעיף 2.7 בפרק 1 5 מספר סיביות העצירה. ניתן לקבוע סיבית עצירה אחת או שתיים. - בשידור אסינכרוני, תמיד משודרת בתחילת המסגרת סיבית התחלה אחת. את ארבעת הפרמטרים האלה נכניס למשתנה בגודל בית, באופן הבא. 1. סיביות 0-1 יסמנו את מספר סיביות הנתונים (? סיביות או 8. סיבית 2 תסמן את מספר סיביות העצירה (סיבית עצירה אחת או שתיים) 3. סיביות +-3 יסמנו את סוג הבדיקה (ווגיות ווגית, ל-ווגית, או ללא בדיקה). סיביות 5-7 יסמנו את מהירות השידור בסלי"ש (סיביות לשנייה) 1 בד ו 2 | שמ | 51 מתמתצוטח | 181 1 ות הו ו 1 11 מ ופרט תרשים 27.4. תואור בות מאפייני התקטורת. את האותחול נבצע בעזרת שירות מספר ט של פסיקת התקשורת הטורית 2414 פרק 17 : תקשורת טורית בין מחשבים והפעלת המודם = 341 למנו הפעלת הפסיקה. אוגר ₪ = צריך להכול ט (מספר השירות), אוגר 4 = צריך להכיל את בית מאפייני התקשורת. אוגר 6 - צריך להכיל את מספר החיבור וס עבור 600 או 4 עבור 60% את הפסיקה נפעיל בעורת ()186ו1, כפי שלמדנו בפרק 3 9 האתחול חייב להתבצע עם אותם מאפייני תקשורת בשני צידי הקישור (בשני "= המחשבים או ההתקנים המחוברים), כדי שהתקשורת תצליח. 3 בדיקת סטטוס התקשורת שירות מספר 3 של פסיקת התקשורת הטורית מאפשר לקבל מידע אודות סטטוס. למני הפעלת הפסיקה. אוגר 8 - צריך לחכיל 5 (מספר חשירות). אוגר 64 - צריך להכול את מספר החיבור 0 עבור 00%%1, או 2 עבור 6042 לאחר הפעלת הפסיקה, מוחור סטטוס התקשורת באוגרים 8% 3-3 משמעות הסיביות השונות באוגר ג, כשהן במצב ייצ" 0- כרטיס התקשורת קלט תו ממחשב מרוחק (בהמשך נלמד כיצד לקלוט אותו לתוכנית) 1 - ארעה תקלה, וכרטיס התקשורת קלט יותר מתו אחד. מכיון שבכרטיס יש חוצי עבור תו אחד בלבד, שגיאה זו מסמלת שתו אחד לפחות אבד. 2פ - בדיקת הזוגיות גילתה שגיאה במסגרת שהתקבלה. 83 - מסגרת הנתונים משובשת (סביר להניח שאין תיאום בין המהירויות של שתיי התחנות). 4 - כרטיס התקשורת קלט את חתו 8634, המסמל ניתוק ומני בתקשורת. 85 = כרטיס התקשורת אינו משדר כרגע, וניתן לשדר דרכו מסגרת חדשה. 56 = כרטיס התקשורת נמצא במצב אדיש (אונו מעים, 7 - התקשורת אינה תקינה (החיבורים אונס תקינים, או שהמחשב או ההתקן המחובר כבוט. 9 כדי לבדוק את ערכה של סיבית מסוימת נשתמש במסכות, כפי שלמדנ. "= בפרק 2 "עבודה בסיביות. 2 שפת 6- נושאים מתקדמים. שירות בדיקת סטטוס התקשורת מחזיר גם מידע נוסף באוגר ₪1 ומתייחס למודס, על כך. נרחיב בהמשך כשנלמד על המודס. כפי שראאיתם בתיאור מבנה הסטטוס המותזר באוגר 4% אס הסיבית האחרונה בו מורמת, התקשורת אינ תקינה. אס כך, רצוי שלאחר ביצוע. האתחול נבדוק את ערך סיבית זו, כך נדע אם האתחול בוצע בהצלחה. פונקציות אתחול עם בדיקה תירוה כך בית מאפייני השידור קביעת מהירות החיבור 0 0 0 0 0 0 0 0 הזות ערך המהירות שיתאים למבנה המאפייים/ / בדיקת וגיו זוגית ושתי סיביות עצירה. הגדרת היציאה. אתחול התקשוות - 0 הפעלת פסיקת התקשורת. בדיקת סמטום - 3 הפעלת פסיקת התקשורת. אם התרחשה תקלה. ,/ שו / / ,/ / 381 08מא מסצמט פמק ססעם פ ג [ 35 5 0 0 2 7 8 6 ב 1 (664קם 186 ,608 6ה1) 7 - 6185עסקסצק 3 0. 10 - :סקס צק 3 0) (2 = 0:6185קסצק 3 0) 30 = 185סעסםסצק 3 0) = 6185:סקסצק 000% 50 = 6185:סקסצק 00%) 60 = 6185:סםסק :000 70 = 6185:סמסצק 000% (0) תצטטםע + >> 6185צסק0צל = 8מ1סצסקסצק + 15סשםקספט ו 9 פצק = - ו 1% 8 1 1 /(81588 (18,21990אם) 4586 3 1 (14,41200,81960א0) 10656 (8א0 8 תב.ת.1260) ,1 ו ו 8 תקשורת טורית בין מחשבים והפעלת המודם. 16 11 [ 33 4 שידור תו כדי לשדר תו, עלינו להעביר לכרטיס התקשורת את הסיביות המרכיבות אותו ולבקש ממנו לשדר אותן. נעשה ואת בעורת שירות מספר 1 של פסיקת התקשורת הטורית [164). למנו הפעלת הפסיקה. אוגר ₪ - צריך לחכול 4 (מספר השירות) אוגר4 - צריך להכיל את חתו שברצוננו לשדר. ואוגר 6% - צריך לחכיל את מספר החיבור ( עבור 0004 או 4 עבור 60% כ" אפ התחוח כבר עדוה מסנח קשנ בעת הומת וה בקפת השידור תתבטל והמסגרת החדשה לא תשודר. כדי למנוע זאת, עלינו לבדוק. את הסטטוס לפני השידור. אם סיבית 5 אינה מורמת (התחנה משדרת כרגעו, נחכה עד שהסיבית תתרומם ורק אז נפעיל את שירות + ה] כתבו פונקציה בשם 60%ח55, המקבלת מספר יציאה (000) ותו, ומשדרת. 5 קליטת תו כאשר מחשב אחד משדר תו למחשב אחר, הסיביות המשודרות מאוחסנות בחוצט. שבכרטיס התקשורת של המחשב הקולט. לאחר שכל הסיביות מגיעות, כרטיס התקשורת. משחרר את התו מתוך המסגרת ובודק את תקינותו בעורת סיביות הבדיקה. בסוף תהליך זה, תוכנית התקשורת צריכה לקלוט את חתו וכך לפנות את החוצ, כדי שיוכל לקלוט את. כדי לדעת אס החוצץ מכיל תו המוכן לקליטה, נפעיל את פסיקת בדיקת הסטטוס ונבדוק. את ערך הסיבית הראשונה באוגר 8. כתבו פונקציה בשם %6664וגשא, המחזירה "אמות" במידה והתקבל תו חדש במלואו כדי לקלוט את התו מתוך החוצץ של כרטיס התקשורת, נפעיל את שירות מספר 2 של. פסיקת התקשורת הטורית 14% לני הפעלת הפסיקה. אוגר 8% - צריך להכיל 2 (מספר חשירות). ואוגר 6% - צריך להכיל את מספר החיבור (0 עבור 60/%1, או 1 עבור 60% 4 שפת 6- נושאים מתקדמים. לאחר הפעלת הפסוקה. אוגר ₪ - יכיל את חתו שחתקבל. הּ כתבו פונקציה בשם זג0ו6% הקולטת תו מתוך החוצץ שבכרטים התקשורת. 6 יצירת תוכנית צ'אט בין שני מחשבים עכשיו כשאנו יודעים כיצד לשלוח ולקלוט תווים, נוכל להכין בקלות רבה תוכנית ציאט. (שיחה, או סתם פטפוט) בין שני מחשבים. הציאט צריך לחיות דו-כיווני, שבו שתי התחנות. יכולות לשדר תווים. כל תו שיוקש במקלדת של תחנה אחת, ייכתב על המסך של התחנה. השנייה, ולחפך. מבנח התוכנית הבסיסי ביותר צריך להיראות כך כלעוד לא נלחץ מקש 896, המתינו להקשת תו במקלדת, או לקבלת תו מהתחנה השניי. אפ נלחץ תו במקלדת, שדרו את הת אחרת, קלטו את התו שהתקבל והציגו על המסך התוכנית הבאה מדגימה ציאט בסיסי בין שני מחשבים. חריצו את התוכנית וראו כיצד יא פועלת. כדי להפעיל את התוכנית, עלוכם לחבר את שני המחשבים בעורת כבל טורי - 1108 560181, הנקרא גכ כבל מוצלב או 1066א-11 א פרק 17 : תקשורת טורית בין מחשבים והפעלת המודם = 345 הי שה שה שה 0 0 יע <בתט 06 פה 865מקצל (פפקל שה+ ,מכס שהג) מננטגה1 שח ּ, פונקציה לאתחול הקפורת טורית בין מחשבים עם בדיקת זוביות זובית ושפר קט - המתירות בסנ ומת" בהצלחה ו"שקר" בכישלון ביף מאפייני השידור // טפט ממ קבישת מהלרוח החיבור / - יי [ -- = 5גמממקסמע :110 מצם ו 8 5גטצמקסאל :4900 שפצ -- 7 = 8גטממקסמע (9600 98 (6) מס ל 3 מבמבא 1 הזות ערך המהירות שלתאים למבנה המאפיינים // 50 4+ משבטצשקכזט - במגמצמקטאל בדיקה זוגיות זוגית ושתר פלברות פצירה / 9180 הל פמצטממקטאט | 2-שמם || בהאשמם | 4 הגדרת היציאה / וי 6 שפת 6- נושאים מתקדמים. . סמל אפחול הפקשורת - 0 ב הפעלת פסיקה התקשורת // :24159 4בא0) 86ת בריקת פטטוט - 3 ב הפעלת פסיקה התקשורת // :4158 415 14א0) 86ה אפ הפרחשה תקלח גו 6 וי סמל (05 בת ,מס 6ה:) -005המפ ממ / פונטציה לפידור תו "אמ" בהעלחה ולשקר" בכישלו שש || בהאש | 4ב ו א פש קב 6 = רישת מטטוט - ב ב הפעלת פסיקה התקשורת //‏ ו(55 25 4בא0) 86הב בל עוד החחנה משררת //‏ נ((0429 4 הב.8.8מ33) !)= מבבאצ ן שלח בי ב ה חפ השיחה ב הפעלת פסיקף החקשורת // מ ל פרק 17 : תקשורת טורית בין מחשבים והפעלת המודם = 347 (96 שבתם ,מס שתג) -בה0ט.ם ממ 8 וגצוה לקבת הר ומת" בהצלחה ו"שקר" בכישלון הגררת יפואה )7 שיא טב טפט ב בי 1 2 הפפלת פסיקת התקטורת // ו(61585 0:30 14א2) 16מהב חאו שהקבר ו ו 0 0 035 ש30:בה0 את ממ % פונקציה הבודקת האס התקבל תו חרט "אמת" אמ התקבל הו חרט ולשקר" אפ לאה ( פמט || בהאשצם | 44 ו וי טפט בדישח פוט - ב הו המלת פסיקת החקשורת // 61559(0 0ש1:. 16א2) 6פטה החור אמת אמ התקבל בית חדש // ( 5 135%.45) הצמטש 8 שפת 6- נושאים מתקדמים. מ הצפה גב / הממח מש שמאהם )תנק 8 אוחול התקפורת // ((09690מ5ם)משסטבהנו) 8 [ שק 0 ו ג בי / בל פד לא גחץ פמ 2 (כס)308105:בה0אמו 46 ()מבתנם! ) בגר לולאת המפנה ללחיצת מקש או לקבלת בית חרט יי 0 6 [ 0 שור את הפו שנקלט //‏ נ(5%,חסם)-.תכשתא אמ התקבל תו חרט // קלופ את תתו שהתקבל //‏ נמ80 מסם)-בתטט ה ג הצג את החו שהתקבל על הממך / ריר אפ הקבר המא 1 ג | תפ אם קראתם בעיון את התוכנית, ודאי שמתם לב לכך, שבכל פעם שהתקבל תו, שלחנו את. הקבוע 80%. הקבוע 806 (86%006806 056%6<), הלא קבוע מוסכם הנשלח כאישור לקבלת. מסגרת תקינה, ואילו הקבוע 888 (86%096606 %693566), חוא קבוע מוסכם הנשלח. כאשר התקבלה מסגרת לא תקינה (שהתגלתה בה שגיאה). בתוכנית הכתובה למעלה, שלחנו אישור (806) בלי להתחשב בתקינות המסגרת שהתקבלה. כמו כן, לא התיוחסנו לקבלת הודעות אישור 800) או שגיאה (אא. פרק 17 : תקשורת טורית בין מחשבים והפעלת המודם = 349 חשבו כיצד נוכל לבדוק את תקינות המסגרת שהגיעה למחשב שלנו, ולשדר 1 ָ? ז הודעה בהתאם. רמז: חזרו וקראו מהו הערך המוחזר באוגר הג . נסו לשפר את התוכנית, כך שתטפל בשליחת הודעות על תקינות המסגרת. 2 ]] = שהתקבלה, וגם תדאג לטפל בקבלת הודעות תקינות על המסגרות ששידרה. (אם מתקבלת הודעת א - היא תשלח שוב את אותה מסגרת). תוכלו ג לעצב את המסך, כך שיחולק לשני חלקים: החלק העליוןיכיל את התווים. שנשלחו על ידי המחשב המשדר, והחלק התחתון יכל את ההודעות. שהתקבלו על ידי המחשב הקולט. כיצד ניצור תוכנית להעברת קבצים בין מחשבים? כדי להעביר קוב שלם בין מחשבים (במקום תווים בודדים), עלינו למתוח את הקובף. לקריאה (בתחנה המשדרת) ולפתוח קובץ חדש לכתיבה בתחנה הקולטת. במקום להעביר תווים (שגודלם שמונה סיביות), עלינו לקרוא בכל פעם בית (9 סיביות) מהקובץ המקורי, לשדר אותו לתחנה הקולטת (כאילו היה תו רגיל), ושם נכתוב אותו בקובץ החדש. 7 המודם נכון להיום, קווי הטלפון משמשים להעברת אותות אנלוגיים (נלים אלקטרומננטים. שעוצמתס משתנה באופן רצי), ואילו הנתונים במחשב מועברים באמצעות אותות. דוגיטליים בינאריים (נלים אלקטרומגנטיים שעוצמתם משתנח באופן בדיד בין אפס. לאחד). לכן, כדי לקשר בין המחשב לקו הטלפון, דרוש מכשיר שימיר אותות אנלוגיים. לאותות בינאריים ולהיפך. מכשיר זה הוא מודפ (066%0א), ששמו מורכב מראשי התובות. של המילים ז₪406/2101-66₪08,/410 (המתייחס לפעולות אפנון ומיצרט. תהלוך שידור הנתונים מתבצע כך. הנתונים הדיגיטליים (בינאריים), מועברים מזיכרון. המחשב אל המודם בתקשורת טורית. המודם ממיר אותם לאותות אנלוגייס, ושולח אותם. דרך קו הטלפון למודם שבמחשב הקולט. המודם במחשב הקולט ממיר את האותות. האנלוגיים שמגיעים אליו בקו התקשורת לנתונים דיגיטליים, ומעביר אותם לויכרון השליטה במודם נעשית על ידי אוסף פקודות הנקראזות פקודות א (008069 דה, אשר. נקראות כך מכיון שכולן מתחילות בצירוף התווים ₪7). פקודות אלו פעילות רק כאשר תוכנית התקשורת פועלת מול המודם ועדיין לא הוקם ערוץ תקשורת אל המחשב המרוחק. הפקודות מועברות למודם בתקשורת טורית, כאילו היה מחשב שמחובר בכבל כמו בסעיף. הקודס. לאחר הקמת הקשר, הנתונים הנשלחים למודם מועברים ישירות אל מחשב היעד 6 שפת 6- נושאים מתקדמים. רו ו ה סה = 5 וו הו ] ר[תתתתתתתת ד ח מבנה הפקודה. 3 טלטון סד טלפון זא טלמון אזסדא, א אז משמעות בדיקת התקשורת עם המודם. אס התקשורת תקונה המודם זענה 0%. חיוג בשיטת חיוג מתקפים למספר ייטלפון. חיוג בשיטת חווג צלילים למספר ייטלפו. חיוג הספרה א, המתנה של מספר שניות וחיוג מספר הטלפון (מיועד. למשרדים עם מרכיה, בהם יש להקיש ספרה כלשהי לפני חיוג לק וצ נותוק התקשורת. ענה לצלצול (משמש כאשר מוהים צלצול מצד מרוחק ורוצים לענות. למודם המרוחק ולהתחבר אליו). העברת המודם ממצב חיבור לקו למצב בו ניתן לשלות לו פקודות זא. כדי לחזור לחיבור, נשלח את הפקודה אזא. כדי לנתק את התקשורת, נשלח את הפקודה חא בסוף כל פקודה יש לשלוח תו אשזוש (13 בקוד 501 פרק 17 : תקשורת טורית בין מחשבים והפעלת המודם = 51ב בתגובה לפקודות 81 המודם משדר למחשב את אחת התשובות האל חתשובה. משמעות 6 | הפקודה התבצעה בהצלחה. 8 | הפקודה היתה שגויה ולא התבצעה. 81% ₪0 | בצד השני ענו לצלצול אך עדיין לא בוצע החיבור למודם או זיחוי של גל נושאנ. קצב שידור | החיבור בוצע בהצלחה על פי ייקצב שידורי" (קצב השידור נקבע. זספאאס6 | על פי יכולת השידור של המודם האיטי בון השניים) 4/5/88 ₪0 | אין תשובה מהצד המרוחק (המודם המרוחק לא ענה לצלצול. סד 018 80 | אין צלול חיוג ולא ניתן לחייג. 5% | חקו תפוס. ₪16 | התקבל צלצול מצד מרוחק. 8 יצירת חייגן טלפון הדרך הפשוטה ביותר ליצור חייגן טלפון, היא לחתייחס ליציאת התקשורת הטורית של. המודם, כאוילו חיתה קוב (כפי שעשינו בפרק 5 כששלחנו נתונים למדפסת). אפשרות אחת. היא לעשות זאת בעזרת 630%> (ראח פרק 5 סעיף 5.6). הבעיה הלא שאקן לנד שליטה על. היציאח ש-אומו> מצביע אליה. לכן אנו עלולים, לדוגממה, לשלוח נתונים לעכבר במקום. למודם. לכן, עדיף שניצור את הקוב המדומה בעצמנ. כל מה שעלינו לעשות הוא, להגדיר מצביע מסוג מצבוע לקובץ, ואחר כך לפתוח קובץ בשם. 60 (את סימן השאלה נחליף במספר היציאה שהמודם מחובר אליה. שימו לב שיש. להשתמש באותיות גדולות). לדוגמה, פתיחת קובץ מדומה לוציאה 101פש. "0002") מסקס? > השעי מתצט לאחר הגדרת היציאה נוכל לשלוח נתונים למודם, כאולו היה קובץ. זכרו שהתוכנית לא. תפתח קוב בשם 60%%1, אלא תתייחס ליציאה הטורית 60% כאילו חיתה קוב). כדי לוצור תוכנת חייגן, כל שעלינו לעשות הוא לכתוב לקובץ המדומה את הפקודה דסזא. בצירוף מספר הטלפון הרצוי. כדי לסיים את השיחה, נכתוב לקו המדומה את הפקודה. א 2 שפת 6- נושאים מתקדמים. ג ₪ מ תצפה אצמ [ 795% 00620') השקס: - ממ.מאה ממצק [29]תבשמגם ‏ [13) הסמ שא )טמ הקט םל 0 ("ה58ג" 50/0 אהבק ל ל נסו לעצב תוכנת חיינן בעלת ממשק, הנראה כמו טלפון עס לחצנים. הוסיפו לחייגן גם ספר. טלפונים, שבו ניתן ייח לשמור מספרי טלפון רצויים, ולצלצל מתוכו. אם תרצו, תוכלו אף. לשלב את קבצי חקול, המצורפים לתיקיה של פרק וה (תחת תיקיה 00%359281), המכילום צלולים שונים שמפיק טלפון. כך, כל הקשה על ספרה במסך, תגרום להשמעת. הצליל המתאים לה. חרי לכס פרויקט תרגול מושלס, פשוט ונחמד. 9 שידור וקליטת תווים באמצעות המודם השיטה לכתיבה אל יציאת המודם כאילו היח קובץ, אאמנם קלה ופשוטה, אך היא אינה. מאפשרת לקבל את התשובות שהמודם עונה לפקודות ה-ד8 (לפני הקמת הקשר), או את. הנתונים שהמודם קולט (אחרי הקמת הקשר). לכן, אס ברצונכם לכתוב תוכנית שתשתמש. בשאר היכולות של המודם (חוץ מפעולת החיוג), עליכס לתקשר עם המודם בדיוק כפי. שתקשרנו עם המחשב המחובר בכבל טורי. נסו להפעיל את תוכנת הציאט שכתבתס, ובחרר. ביציאה שהמודם מחובר אליה, כתבו אל המודס פקודות 87, וראו כיצד הוא עונה לכם. כך תוכלו ליצור תוכנת צ'אט בין מחשבים, באמצעות המודם או תוכנה להעברת קבצים. דרך המודם. בסעיף 17.3 (בדיקת סטטוס התקשורת), הזכרנו כי בנוסף למידע המוחזר באוגר 84, שירות. בדיקת הסטטוס, מחזיר באוגר /₪ מידע המתייחס למודס, ואשר עשוי לשמש אתכם. פרק 17 : תקשורת טורית בין מחשבים והפעלת המודם = 353 . המידע נשמר באוגר וג באופן הבא, ומשמעותו מוצגת כאשר הסיבית המתאימה מורמת. 0 - סיביות חסרות משמעות. 4 > כרטיס התקשורת קיבל אישור 615 לשידור תו (56%6 10 063 5 - כרטיס התקשורת קיבל אישור 58פ. המודם או המחשב בצד המרוחק פעילים. ומחוברים לכרטיס התקשורת (/8636 561 פומפ) 6 - התקבל צלצול מקו התקשורת. 7 - מתקיימת תקשורת בין המודמים. ברגע הניתוק, הסיבית תרד ל-ם. 9 המידע בפרק זה, מתבסס בעיקר על הספר "תקשורת נתונים" של "= האוניברסיטה הפתוחה. למידע נוסף בכל הקשור לתקשורת נתונים מומלץ. לעיין בספר זה, או בספרי הוצאת הוד-עמי המפורטים בסוף הספר. 4 שפת 6- נושאים מתקדמים. נספח א' מבט מעבר לחומר השגרתי נכתב על ידי אסף שלי הלימוד בפרק זה יאפשר לאוחבי מחשבים מבט אחד קדימה, אל מעבר לחומר השגרתי. ובט קדימה'", מכיון שבפרק וח לא נלמד חומר תכנותי עיוני, אלא חומר מעשי ואפילר פיקנטי. קשח מאוד ללמוד חומר כזה מקריאה, אבל שעות רבות של חוסר שינה נחסכות, אם יש לאן לפנות, כאשר נתקלים בבעיית תכנות. בפרק וה תמצאו רשימה של מילים שמורות בשפת 6, אשר לא מקובל להזכירן במסגרת. הלימוד הסדיר, רשימת טריקים מיוחדים שתדריך אתכם להימנע משגיאות בומן ריצה אר משגיאות תחביר, ומספר טכניקות תכנות מתקדמות, אשר משמשות כלי בעל עוצמה בוד מתכנת שמכיר אותן היטב. אין לי כל כוונה ללמד חומר תכנות, ועל הנושאיים שכלולים בפרק וה לא ניתן לתת שועורי בית, או למדוד את מידת ההצלחה בעורת ציון (כמה חבל..). למעשה, השתדלתי לרכו בפרק. זה את מירב החומר שלא נסקר במקום אחר, ובכלל זה, גם מספר טיפים ועצות שנובעים. מנסיוני בפיתוח מערכות מבוססות 6. ראוי לציין, כי חלק משמעותי מהחומר שמופוע בפרק זה אינו מתאים ללומוד בבתי ספר, וחלק מהטריקים שמוסברים אפילו אסורים לשימוש, בומן שאחרים מומלצים בהחלט. מטרת הפרק להכשיר מתכנת ממוצע לעבודה רצינית בשפת 6. לשם כך, עליו להכור ולדעת. נושאים מורכבים רבים, שאינם במסלול הלימוד הרגיל. נושאים אלה מובאים ברובם על קצה המולג, ואת הלימוד האמיתי ניתן להשיג רק על ידי התנסות בתכנות ממש. ספר זה דן כולו בשפת 6, לכן השתדלתי מאוד להימנע מלהיכנם להסברים. על שפת +6%, אם כי רבים מהדברים מתאימים גם לשפה ז. עם זאת יש לציין,כי רוב החומר אינו מוגדר בהכרח כ- 6 וא תקני, אלא כולל הרחבות תואמות ל- 63 מטווד, וחלקן המכריע תואמות מהדריםם מתקדמים יותר, דוגמת 502 6 507004, 810₪ 6 או ++6 ובופו במקרים של הבדלים משמעותיים ציינתי זאת כהערה. פנו לקטלוג שבסוף הספר ובתקליטור כדי לקבל מידע על ספרים נוספים. נספח א': מבט מעבר לחומר השגרתי = 355 אודות שפת 6 כאשר לוחצים בעכבר על תפריט 11612 ועל דטס8א, נהוג לקבל פרטים על יצרן התוכנה ועל. הגירסה. אילו יכולנו לבדוק קש > זט על שפת 6 עצמה, זה מה שהיה כתוב. שמת נכתבת על ידי דיס רצ .0% שחו לוע בכתיבת מערכת ההפעלה או במעבדות בל. שמת 6 הלא שיפור של שפת 8, שנועדה לשימוש פנימי של מעבדות בל [שפת 8 - על ש ו86). השפה פותחה בתחילת שנות השבעים של המאוה שעברה (כלומר המאה ה-20). בשנת 1983. הוגדר תקן 851 של השפה ומשלב זה החלה החדירה שלה לשוק. שפת 6 פותחה כדי לאפשר. כתיבה נוחה של מערכת ההפעלה יוניקס (וח0). ראוי לציין שמהדר לשפת 6 מובנה כחלק. ממערכת ההפעלה יוניקס על גרסאותיה השונות. הפקודות שכלולות בקבצים וו.205 ו- .1//00%/5/), הן הרחבות מיוחדות למחשבי 86. (תואמי 18%). לעומת זאת, קיימות מספר פקודות למערכת 0 שאינן נתמכות בהכרת על. ידי מחשבי , כמו למשל, הפקודה 0/6 שמאפשרת לתוכנית לרוץ במקביל לעצמה. פקודה. כוו אינה אפשרית ב-205, אולס היא נתמכת על ידי מופ6חו// באופנים שונים, שביניהס. הקרובה ביותר למקור היא הנירסה של דחו תכונות שפת 6 אחת התכונות העיקריות ביותר של שפת 6, היא הפשטות שבה. אין הכוונה לפשטות עבור המתכנת (דוגמת 29% או 8356 ומטפוש), אלא דווקא פשטות עבור מי שבונה את המהדר. שמת 6 "אוהבתיי מאוד לתרגם כל פקודה ואופרטור למספר הקטן ביותר של פקודות מכונה. (או פקודות באסמבלט. בשפת 6 יש למתכנת שליטה מקסימלית על המחשב, ורק האוגרים של המעבד וחטיפול. בשפת 6 ניתן לבצע כל פקודה שהמעבד 8086 (תואכ 18%1) ממסוגל לבצע, מלבד הפקודה. 6)גוטא, אשר השימוש בה מיועד לעבודות המפעילות גרפיקה מתקדמת בלבד. יש פונקציות. ספריה שתומכות בפקודה זו, ולא קשה ליישם אותה בעורת הזזה. קריאות לפקודות משתמשות במוסכמות של מערכת ההפעלה ושל 8105. לכן, קל מאוד. להתאים דרייבר שנכתב בשפת 6 לעבודה על מחשב 6ל, ובקלות יחסית ניתן לכתוב בשפת 6 תוכנית שוכנת זיכרון - 758 865060 51 וחווד 6 שפת 6- נושאים מתקדמים. פונקציות ספריה רבות פונות אל מערכת ההפעלה = דוגמת טיפול בקבצים, מקלדת, מסך. ועכבר. הן אמורות רק לסדר יפה את הפרמטרים באונרים, לבצע את הפסיקה, ולהחזיר את. הערך המוחזר כפי שהוא, ולמעשה -- לא לנעת בערך המוחזר, כדי שיועבר הלאה. זהו יתרון עצום של השמה. תוכניות שכתובות בעזרת פקודות אלו תהיונה מחירות בהרבה מתוכניות. שמבצעות מספר בדיקות וחמרות לפני ביצוע הפסיקה עצמה ואחריה. למעשה, בשפת 6 לבל. פסיקה של מערכת ההפעלה ניתן שם, והפרמטרים סודרו לבוצוע קריאה מסודרת. תכונח נוספת וחשובה של השפה חיא, שכל משמט שהמתכנת כותב נחשב לביטוי מתמטי. כל פקודה, כל פעולה של אופרטור ואפילו כל פונקציה. בשפת 6 אין פרוצדורות, ובמקומן. פונקציות המחזירות ערך ייכלום" - 06ו. למעשה, תקן 6 88/51 מתיר שימוש בפונקציות. בלבד, ורק הפונקציה הראשית ()ח וח אינח חייבת להחזיר ערך. כדונמה לפקודה חוקות, נבחן את ח"ביטוי" המתמטי חבא. - = "1" מחושב לביטוי מתמטי, כפקודה בתוך פונקציה, ולא כהצהרה על משתנה 7 גלובל, מכיון שלפנינו ביטוי מתמטי, המהדר יקבל אותו כחוקי. תכונח נוספת היא מצביעים. למה להסתבך עם מחרוזות ומבנים שונים ומשונים, ששפות. עיליות אחרות משתמשות בהם, אם אפשר להשתמש באוותה השיטה שבח משתמשת. "תוכנת המערכת עצמה" שפת 6 משתמשת במצבועים כי כך בנויה המערכת, ואין צורך לבצע המרות שגוולות ומ כבונוס מיוחד, המתכנת מקבל שליטה מלאה על המחשב ועל הזיכרון שבו. כמו כל כלי חזק. אחר, במצביעים צריך לדעת להשתמש כראוי. המתכנת מקבל את מלוא הכלים ומלוא. הנישה אל מערכת ההפעלה ואל החומרה במחשב. מתכנת שמפחד מכך, אולי יעדיף שפות. עיליות יותר, דוגמת אלו שמבוססות על בייסיק או על פסקל. אופרטורים מיוחדים סימני דרך רבים טבועים בשפת 6, סימנים שמעידים כי מי שפיתח אותה אחב מאוד תכנות. בשפת אסמבלי. מבין הדבריס הבולטים נוכיר את השימוש במצביעים ואת השימוש. באופרטורים =%,. אופרטורים אלה משפרים את ביצועי התוכנית והם גם. מאוד הגיוניים למתכנתי אסמבלי. לדוגמה, כדי לחבר שני ערכים זה לזה, יש להציב ערד אחד במשתנה וא להוסיף לו את הערך השני. לכן, במקוס לכתוב 8-8+1 נכתוב 851 ובדומה לפקודה 1,%ג ספא באסמבלי). מהדר ללא אופטימיזציה (תכונח שקיימת במהדרים. - פונקציות שהם חלק משפת 6 ומוגדרות בקבצי הכותר. נספח א': מבט מעבר לחומר השגרתי = 357 החדשים ומאפשרת לה למצוא את הדרך חיעילה ביותר לבצע פקודות), ייבצע שתי פעולות. לפתרון הביטוי 1+-א. תחילה, הוא מחשב את הביטוי החלקי (1+א), לאחר מכן, מצוב ב- 8. הביטוי 1=+א עם האופרטור =+ עושה ואת כפקודה אחת. אס עדיין לא שמנו לב, האופרטור צריך לחיות += בשל הכתיבה 1+=א, ולא =+ בדומה. ל- 1-+א. סדר האופרטורים במקור היה כזה (+=). הבעיה היא שחיה צורך להרחיק. ערכים שליליים מסימן השוויון, אחרת לא ניתן להבדיל בין שני אופרטורים. צמודים לבין אופרטור יחיד'-=" , כך: 1- -8, כיון שאם לא חיינו משאירים רווח, חיונר מקבלים 1--א שבמקור היה 4-8-1, ואחר כך היינו יושבים שעות לדבג, כדי למצוא את. הרוח האבוד. בשל כך יצאה גירסה מחודשת של השפה (עוד בחיתוליה), שמתקנת את. דיבוג - ניוי שגיאות (מפסטט), על שם התקלה הראשונה במחשבים. בעולם, חיפושית (849) שקיצרה מעגלים חשמליים (לך תמצא חיפושית בערמת ג'וקים חשמליים בגודל של בנין. ופט - ההיפך מ פפ, או הוצאת. מ קבוצת אופרטורים נוספת הלא '++' (פלוס פלוס), ו-'--י (מינוס מינוס). בשפת אסמבלי. קיימות הפקודות 6א1 ו- 086 , שפת 6 יורשת לכן את האופרטורים ++ עבור 16 ו -- עבור 6 מהדר ללא אופטימיוציה טובח ייצור מהביטוי 1=+. את הפקודה 1,₪ סא, וייצו. מהפקודה ++א את הפקודה 16 שהיא מהירה בהרבה. דבר זה משמעותי מאוד בלולאות. מקירות, כמו לדוגמה, צביעת כל המסך בירוק. אופרטור מאוד לא אהוב, שנם הוא נובע משפת אסמבלי, חוא האופרטור הטרינר. (8ד=שלוש). קיים אופרטור טרינרי אחד בלבד בשפת 6, אשר מבצע פעולה דומה לוו של. משפט 66-). בשפת אסמבלי מבצעים השוואה, ואם התנאי מתקיים, קופצים לכתובת. מסוימת כדי לבצע משהו, אחרת ממשיכים באותה הנקודה. תוכניתן אסמבלי, רגיל לפקודה. בודדת, שמשמעותה "אס 'כן' - אז ככה, ואס 'לאי = אז אחרת". כך למשל, אם 8 גדול מ-5, ומ 0156 1-מ (25ב) 5ב משפט תנאי זה יתורגם ל. (0-פ) 5 (1-פ)? (פ<3) אין צורך לכתוב את סימני הסוגריים, אך כך נוח יותר להפריד בין הביטויים. 8 שפת 6- נושאים מתקדמים. שפה מתמטית כבר הזכרתי ששפת 6 הלא שפח מתמטית מאוד, אבל יש בח יותר מהנגלה לעון. סימן/אופרטור פסיק. לסימן הייפסיק" ,) בשפת 6 יש שימושים רבים, שחלקס אינם ידועים למתכנתים רבים. השימוש הראשון, הידוע לכולס, הוא השימוש בפסיק כאופרטור (9061309%), המפריד בו פרמטרים בהצהרה של פונקציה או בין המשתנים בהצהרת המשתנים. אולם לפסיק יש שימוש נוסף, חוא משמש ג כסימן פיסוק (/60909חפ). מקורו של שימוש. זה הואא בשפת ₪ (השפה שקדמה לשפת 6, ושפת 6 מבוססת עליה). בשפת 8 שימש הסימ פסיק כמפריד בין שתי פקודות. בשפת 6 הוחלט להוסיף את סימן היינקודה-פסיקי (6. שמשמעותו הלא הפרדה מוחלטת בין שתי פקודות, ואילו הסימן "יפסיק'" הפך להפרדה. חלקית בין פקודות, תוך שמירה על המשמעות הלוגית. זה נשמע יותר מסובך ממה שזה, ולכן ניקח דוגמה מוכרת של לולאת זמ ( 30% ,52* ,ב) 1+ שבתש) קמסתעסם מה1 122 4600159 + | + בדוגמה זו, סימני הנקודה-פסיק (,) מהווים את החלוקה הלוגית הרגילה של לולאת ז₪. ; (קידום /בדיקה;אתחול) ‏ ספ ואילו סימני הפסיק () משמשים לחלוקה פנימית, וכך מתאפשר לקדס גס את ו גס את 1. וגם את 52. הסימן נקודה-פסיק, יותר "חוקיי מהסימן פסיק, בדיוק כפי שנחוג בכללי אם כך, נסו לחשוב מה משמעות הפקודה הבאה. - [,3צצה הפקודה מציבח לתוך המערך החד-מימדי זוה בתא החמישי (מספר 4) את הערך אפס אני בטוח שרביס מכס (במיוחד אלו המכירים שפות תכנות אחרות כמו פסקל, למשל), טע בעבר וניסו לפנות למטריצה בעורת אוג אחד של סוגריים מרובעים, ולא הבינו מדוע וח לא. עובד כראוי. בשפת 6, כדי לפנות לשורה מספר 3 בטור מספר 6, יש להשתמש בשני זוגות של סוגריים. מרובעים. 4 נספח א': מבט מעבר לחומר השגרתי = 359 כאשר כתבנו [3,4), המהדר התייחס לזה כמשמעות לוגית אחת המציונת את מספר התא. בתחילת נספח זה למדנו שהפקודה. היא פקודה חוקית (חסרת משמעות אבל חוקית), ולכן גם הפקודה. היא פקודה חוקית. ולכן המהדר יתייחס לפקודה 3 כפקודה, יבצע אותה, ואחר כך ידכב אחרי הפסיק ויציב בתא מספר 4 את הערך אפס. אם הבנתם את הדוגמה הזו, נסו להבין מה תבצע הפקודה הבאאה. -+ הפקודה תציב במשתנה א את הערך 2 + נשמע מטופשז! אז מה תבצע הפקודה הבאה. ;((צססף) מס (("סףא","מאם 8116" המק0,-צמקה |) - 5 הפקודה תפתח את הקוב ותקרא ממנו תו אחד לתוך המשתנה ב. 0 זכרו שהקוד שאתם כותבים צריך להיות קריא ככל האפשר, כך שכל מתכנת. אחר שיקרא אותו יבין אותו בקלות. הגדלה/הקטנה מוקדמת/מאוחרת. למען האמת, יכולתי להשתממט בטריק מתמטי יותר מוכר: י"הגדלה מוקדמת". האופרטור. ++' והאופרטור ---> יכולים להופיע לפני, או אחרי המשתנה שעליו הם פועלים. כאשר. האופרטור '+++ מופוע לפני המשתנה, ערכו של המשתנה גדל ב- 1, והביטוי מחושב לערכו. לאחר ההנדלה, כמו למשל. ערכו של ₪ הוא 6, ונס ערכו של ה הוא: 6 5 ו בסיום הפעולה ערכו של א יהיה 6, כי הנדלנו אותו, אבל פ קיבל את ערכו של א לפנ ההגדלה, לכן ₪ יהיה שווה ל-. הנדלה מוקדמת קרויה באנגלית 16100601 פזפ, והנדלה מאוחרת קרויה 6שו₪ש:106 05פ. 6 שפת 6- נושאים מתקדמים. הצבה בתוך ביטוי הוא טריק שימושי נוסף של שפת 6, ואילו שפות אחרות מנסות להימנע. 3-9 ו בשני המקרים הראשונים ערכו של 8 הואא: 5, במקרה האחרון ערכו הוא: 4 המקרים הצבנו ב- 3 את הערך > ובל שימוש נחמד לאפשרות או, נמצא בפקודות אלו ג ימנצט ")ספ -םם) 1% ת.5116 מסטפ כו !לגא") פמק 6פגם ה(" / קיימות פקודות רבות, שרצוי לוודא כי התבצעו כראוי, לדוגמה, פקודות הפועלות על. קבצים, או פקודות להקצאת זיכרון. כדי לעבוד באופן תקין, עלינו לבדוק את הערך. המוחור מייד לאחר ביצוע הפקודה ולפני שנשתמש בו. חשוב במיוחד להקפיד על נוהל זה. בעת מעולה על מצבוע. ה ("פפש", ( 15)0(0אם ;"2654 50 1116 מא") פסם | (בצום צבחס,"פ"ום:)זתבם+ [פ5) 0106 שפת 6 מתירח להשתמש בהצבה בתוך משפט תנאי, אך יש בכך קושי מסוים. אופרטור ההשוואה והה לאופרטור ההצבה במראה ובמיקום על המקלדת. האחד כפול מהאחר, לעיתים, מתכנתים אינס לוחצים. פעמיים על המקש ואאינס מקבלים את האופרטור הרצוי. כתוצאה מכך, התוכנית לא תפעל. כראוי. דוגמה לתקלה כזו. הביטוי (5-%) תמיד שונה מאפס, לכן ערכו תמיד יהיח "אמת". ואין כל משמעות לפקודה ו ת(1)מצגסם: (5-ג) ,1 בנקודה זו הפונקציה תסתיים תמיד. המהדר יתריע על הצבה במשפט תנאי, על ייקוד מת". שאינו מתבצע לעולם. המהדר גם יכול להודיע על ביטוי שמחושב תמיד לאותו הערך. ו אפשר לפתור בעיה זו בקלות: במקום לרשום (8==5), נרשום (5==8), כי מותר לחשוות את. הערך 5 לערך של א, אך אסור לעומת ואת להציב את א ב- 5. אס בטעות שכחנו סימן '-. אחד, המהדר יודיע על שגיאת תחביר ויעצור. //10)תצטסם (8--5) ,1 0%פעם אבשתע8 //‏ נ(1)הצטסם: (מ-5) ,1 נספח א': מבט מעבר לחומר השגרתי = 361 0 מתכנת מתחיל, משקיע מינימום זמן בכתיבת הקוד. מתכנת מנוסה, ישקיע. יותר בזמן הכתיבה ויחסוך בכך הרבה יותר מזמן הדיבוג. מתכנתים מנוסים רבים מקפידים על הקפת כל ביטוי בסוגריים. הקפת ביטויים בסוגריים מונעת. שגיאות, שנובעות מקדימות אופרטורים, בעיקר בשפת +6%. הוכרתי ששמת 6 לא אוהבת לבצע הרבה פקודות, ובעיקר פקודות מיותרות. נבחן את. הביטוי הבא "אם אני נמצא בישראל ובתל-אביב, אז אני תל-אביביי". אס אני לא נמצא. בישראל, נשמע מטופש לבדוק האם אני בתל-אביב. שפת 6 לא תבדוק. נשמע מובן מאליו. האומנס? ( (1-=() טצת1סצחדו 0 בתחילה תקרא הפונקציה ()1%/86%ו1, אס הפונקציה תחזיר 1 אז סימן שאני בישראל. לאחר. מכן, תקרא הפונקציה ()6זו1, ואם הערך החוזר ממנה הוא 1 אז יודפס המשפט. אם. הפונקציה הראשונה תחזיר אפס, הרי שאין טעס לקרוא לבדיקה השנייה, ואכן הפונקציה. השנייה בכלל לא תקרא. דוגמה נוספת, מורכבת יותר: י"אם הצלחתי לפתוח שני קבצים ולהשוות ביניהס, אז אנ רושם הודעה למשתמש וסוגר אותםי. ו ופי מתצט עפ" הפקל -1ם?) | 4 ( (82ף,1ף) א ,(".א0 פמצ")פשטם (1ס )גב 012 1 הסבר: אם הצלחתי לפתוח את קוב "486.חשזצ/ףי לקריאה, וגם הצלחתי לפתוח את קובט. "1%6-שוצ/פ" לקריאה, ופונקציית ההשוואה החזירה 1, אז אני מודיע למשתמש. עד כאך הכל טוב. ברור שצריך לסגור את שני הקבצים גם אם החשווואה לא הצליחה. כלומר. הקבצים פתוחים, אבל אינם שווים. לכן יש להעביר את סגירת הקוב לאחר משפט התנאי. בכל מקרה, בלי להתחשב בכך שקבצים שווים או לא, יש לסגור אותס. אבל יש לסגור קבצים רק אאם פותחים אותם תחילה. אם הקוב נפתח, המצביע מכיל ערך, אם הפתיחה. נכשלה, המצביע מכיל אפס. לכ ו ופי ממצט 6 (("מ:","560.436עַ5")משקם?-נם?) ) 45 ( (2פף,1ף) 6 (("מ+","8680.186ע5") משםם?-2ם9) [ ,(".א0 פמצ")פשטם ,(1ם?) ספמנם? (בםף) + ,(ש?)6פמנם? (2םף) 5ב 2 שפת 6- נושאים מתקדמים. ההנחה היא, שאם פתיחת הקוב נכשלה, ערך המצבוע לקובץ הוא אפס. אחרת ערכו שונה. מאפס, ואז יש קובץ פתוח שצריך לסגור. הבעיה חלא, שאס פתיחת הקוב הראשון נכשלה. הבדיקה של התנאים תיפסק. עכשיו נבדוק אם הקבצים פתוחים. הבדיקה של הקובץ. הראשון תניב ערך אפס, כי הפתיחה נכשלה. הבדיקה של הקוב השני תניב ערך לא ידוע, כ לא היה ניסיון לפתוח אותו, והוא מעולם לא אאותחל לערך כלשהו. אפשר לכתוב כך את הקוד 92 תנטא-1ס9י ₪ "5608.088ע8") ה6פ1-50ק5) ") ה0פ2-50ס3) 16) 11 ,?02( ( (".08 פמצ") פמט | מתטא-נםף ;(1םם)1056ם, | (1ם8) + | (תנטא-2ס? נ(2ק6)1פ10ם? ) (2סף) 5 שימוש פשוט ונפו יותר ייראח באופן חבא: |" < ב ")סט | ((מכבא)0(44-!2)) ,1 הקוד בודק, האם החלוקה של א ב- ₪ נותנת ערך הגדול מ- פ. במידה ו-8 שווח ל- 8, לא תתבצע החלוקה כלל, והתוכנית לא תבצע פעולה לא חוקית. 93 אני ממליץ בחום וב לאתחל תמיד את כל המשתנים, גם אם מציבים בהם. "= ערך מייד לאחר מכן, מכיון שעלול להגיע היום שבו נשנה את הקוד, וא משתנה לא מאותחל ייצור פתאום בעיות לא מובנות, במקום שאינו קשור לוגית למקום בן התבצע השינ בנוסף, אני מציע לאפס תמיד מצביע ששוחרר בעזרת ()55!, או קובץ, שנסגר. ותמיד לבדוק, שהערך אינו אפס לפני סגירת קובץ, או שחרור זיכרון סיכום האופרטור 84 מבצע אא לוגי, ובודק את הערך שלפניו. אאם התנאי מתקיים, הוא בודק אאת. הערך שאחריו. לדונמה: נניח שנתון 88.8 א, תחילה ייבדק א ואס ערכו אינו אפס, ייבדק 8. אס התנאי הראשון אינו מתקיים, אין טעם לבדוק את השני, כי לא יכול להיות ששניהם. מתקיימים אס הראשון אינו מתקיים, לכן חתנאי כולו נכשל. האופרטור ו מבצע אס לוגי, ובודק את התנאי שלפניו. אס התנאי אינו מתקיים, חוא בודק. את השני, כי מספיק שאחד מהם יתקיים כדי שהתנאי כולו יתקיים. אס הראשון מתקיים. אין טעס לבדוק את חביטוי השני, כיון שברור שחתנאי כולו מתקיים, שחרי מספיק רק אחד. מהתנאים, כדי לקיים את הבוטוי כולו. לכן, כאשר מבצעים פוא לוגי ולא בודקים את כל. התנאים, לא מבצעים את המשפט המותנה בכלל. נספח א': מבט מעבר לחומר השגרתי = 363 כאשר מבצעים 08 לוגי ולא בודקים את כל התנאים, מבצעים את המשפט המותנה כולו. עכשיו נציג דוגמה י"משעשעתיי. הסברתי קודס לכן, שכל ביטוי בשפת 6 הוא פקודה חוקית. לכן גס חוקי המשפט הבא. טורפ ימנדט 1 פה סקס") סטש ) פס 116" 56 ((("+א","105.מצסמטם")הסם0+-ק?), ||( 31606 "%-16 00 (("1?ת") פפטם, (פ5) 19501056 כ קטע הקוד שבדוגמה, מציג ניסיון לפתיחת קובץ. אס הקוב לא נפתח, מסתיים התהליך. אם הקוב כבר פתוח, תודפס ההודעה *שהשקט 06', ויתבצע ניסוון לכתיבה. אם (1חפ. החזירה 60%, פירוש חדבר שהיה כישלון בכתיבה, אחרת יודפס "א0 חסוחו". בכל מקרה, הקובץ ייסגר אם המצביע אינו אפס (דבר שאינו סביר). אס כאן המצביע אפס, או משה. ממש לא תקין, למרות שאין שום סיבה שבעולם, שבמיקום זה, ערכו של המצביע יחיה פ. הניסיון מלמד שרצוי לבדוק כל פרט, ולצפות לבלתי אפשרי, כי הוא בהחלט עלול לקרות מסיבה שפשוט לא חשבנו עליה. 9 אמנם הטכניקות שנלמדות בסעיף זה חוקיות ותקניות, אך רצוי להימנע. = משימוש בביטויים שאינם קריאים במעבר ראשון על הקוד. במסגרת. עבודות בית-הספר, נאסר להשתמש בטכניקות מסורבלות אלו והן נזכרות. כדי לאפשר הבנה מעמיקה יותר של השפה, וכדי להקנות לך כמתכנת, את. רוב הכלים של שפת 6. נכתוב שוב את הדוגמה הקודמת. טורפ ימדק ("4פתפמס 2116")פטטם ((6המאה0סצע/8316-58",0ה100",םם)!ףהנעם?--ת0ם) ,1 וו 5 ו (0 ה5%6בצא")פשטם 1 (("ולתא") סנק 156 (קפ)6פמ1ם? (ש) ,1 4 שפת 6- נושאים מתקדמים. כאן המקום לציין מהיכן הגיעו שתי מילים מאוד מוכרות. רצוי לדעת, ש-80 ו-%044 אינן מילים שמורות, אלא שני קבועים. מצביעים מערכת מחשב מינימלית חייבת לכלול בתוכה מספר מרכובים חשובים. מעבד: בלעדיו אין ביצוע חישובים, אין בדיקת תנאים ואין ביצוע פעולות. זיכרון. בלעדיו המעבד לא יידע אילו פקודות לבצע, לא יזכור תוצאות של חישובים, ול יוכור מידע שהכניס המשתמש. קשר חוץ : המחשב חייב קשר עם העולם החיצון, אחרת לאו יהיה לו על מה להגיב, ולא יחיה. לו כוצד להגיב. מחשב מקבל קלט, לרוב פסיקה טפטזוח), שמודיעה למעבד על הקלט. המעבד מבצע. חישובים והחלטות, ושולח מידע להתקנים חיצוניים. המעבד משתמש בויכרון, כדי לשמור. נתונים שהגיעו, לטמור תוצאות בינייס של חישוביס, ולשמור תוצאות, כדי לחוור אליהם. במועד אחר. הזיכרון הוא אוסף של תאים, שכל אחד מהם נקרא בית (66/פ). המעבד הוא היחיד שמחליט. איזה נתונים יישמרו באיזה תאים. כדי שהמעבד יפנה אל תא זיכרון בודד, יקראא ממנו א יכתוב אליו, יש לתת לכל תא זיכרון שפ. כאשר פונים אל התא, המעבד מציין את שמו של. התא עבור שבב הזיכרון. תפקידו של הזיכרון למצוא את התא המסוים, ולאפשר למעבד. לנשת אליו. בפועל, 128%8 של זיכרון, הס 129 מיליון תאי זיכרון. הדרך היחידה לפנות. אליהם היא לא בשם, אלא במספר סידורי. מספרו הסידורי של תא זיכרון, קרוי כתובת. זיכרון. שפת ס, כמו כמעט כל שפה אחרת, מאפשרת למתכנת להעניק שמות לתאי הזיכרון. השונים, ומכיון שלא אכפת למתכנת היכן יושב נתון בויכרון כל זמן שהוא קיים, המתכנת. מכין למהדר רשימה של משתנים, והמהדר מסדר אותם בויכרון בצורה הנוחה לו (יחד עם. ה בשפת 6 קיימים מספר סוגים (טופוסים = 098 של משתנים, ולהם גדלים שונים בוזכרון. משתנה מסוג זגו תופס בית אחד, ומשתנה מסוג חפ תופס ארבעה בתים או יותר. כד. לפנות אל נתון בזיכרון עלינו לדעת עליו שני פרטים: מיקומו בזיכרון וגודלו בבתים, כלומר, כתובתו של הבית הראשון של המשתנה, ומספר הבתים העוקבים שהוא תופס. כאשר אנו מגדירים משתנה, אנו מצחירים על הסוג שלו. סוג המשתנה קובע, כיצד יתבצע. עליו פעולות מתמטיות וכמובן מה גודלו בויכרון. למשל: 651 5068 חס חפט ,ומס כאשר אנו מצהירים על משתנה, אין חובה לציין הא הוא 59066 אד 99066 אם לא. תציין ואת, ראוי שתבדוק מהי ברירת המחדל במערכת שבה אתה פועל. במחשב 86 מוגדר. לפ 6 85 שהוא 96. למעשה, אין חובה לציין את טיפוס המשתנה, וברירת המחדל. נספח א': מבט מעבר לחומר השגרתי = 365 כאן היא וו. להלן הצהרה של פונקציה, שמקבלת שלושה פרמטרים, שכולם מסוג 9066צ. זו, ומחזירה פרמטר מאותו הסוג בדיוק. 0 שה1 539088 ,מ 810864 ,ב שת1) [סמגתה בלי לשים לב, נהוג להשמיט את הטיפוס של הערך המוחזר מהפונקציה ()ומח. שתי ההגדרות הבאות שקולות זו לור || (9018)מצגח מת1 910054 ו ) 0מנגח בומן ההידור, מוקצות כתובות לכל המשתנים. המתכנת אינו יודע לפני ההידור מה ה הכתובות של המשתנים השונים, אך ניתן לקבל את הכתובת של משתנה, בעזרת האופרטור ₪ (האמפרסנד), כאשר הוא מופיע לפני שם של משתנה. במקום לקבל את הערך שבתא. הזיכרון, מתקבלת כתובת התא. קיים סוג מיוחד של משתנים, ששומרים כתובות זיכרון. משתנים אלה נקראזים מצביעים כיון שהערך שהס מחזיקים, הוא כתובת של משתנה אחר. הסברתי, שכדי לגשת למשתנה בויכרון, יש לדעת את כתובתו ואת גודלו, לכן כאשר. מצהירים על משתנה מסוג מצביע, יש להצהיר גס על הטיפוס שעליו הוא מצביע. המצביע. עצמו תופס תמיד את אותו גודל הזיכרון, גודל הכתובת, וללא קשר, גודל המשתנה שעליו. הווא מצביע. אם מצביע ל- 615 תופס שני תאי זיכרון, אז גם מצביע ל- 909! תופס שנר תאי. זוכרון. 9 סידור המשתנים בזיכרון אינו חייב להיות כפי שמצוין כאן. מהדר של 77 566 וגפוו למשל, יסדר את המשתנים בגבולות של (556:8009. מהדר של. בורלנד +.:6 מאפשר למתכנת להגדיר את שיטת האופטימיזציה של הזיכרו בנוסף, על מערכות מחשב שונות ומערכות הפעלה שונות גודל המשתנים. שונה. שימו לב, שלא מדובר בגודל המצביע בזיכרון אלא באיזה כתובת יכול משתנה להתחיל. נבחן את ההצחרות הבאות. ,1 צמתם תג סי פתג המשתנים יוכנסו בדרך כלל לויכרון על פי סדר הצחרה. אך שים לב שאין וח הכלל. 6 שפת 6- נושאים מתקדמים. נראה כעת את מפת הזיכרון עבור הדוגמה (הנחה כי מצבוע בגודל שנו בתים) וה - חשוב לי להבהיר, שמערך, הוא בסך הכל מצבוע עם שדה של וזכרון, ששמור במיוחד עבורו. למעשה הביט [0ו3₪ שקול לביטוי זופ*, והביטוי [41713 שקול לביטוי (877%3)*. נבחן את. ;99ב שממ ומפת הזיכרון מפת הזיכרון כוללת שני בתים של המשתנה הראשון, שני בתים של המצבוע של המערך. חמישה בתים של ציכרון ששמור, ושני בתים של המשתנה האחרון. הביטוי [41115, מתייחס. לבית הראשון של המשתנה ,. באשר אנו מקדמים מצבוע ב- 1, אנו מצפים, שהוא יצביע על האיבר הבא. מצבוע ל- ח), אמור לגדול בקפיצות של שניים, מכיון שגודל זח! חוא שנו בתים. למשל, כאשר נפעיל. את. האופרטור ++, יגדל מצביע ל- )או בשני בתים. נספח א': מבט מעבר לחומר השגרתי = 367 האמת היא, שמשתנה מסוג זחו אינו תמיד בנודל שני בתים. בתכנות של 32 סיביות (למשל. 95 ווטשחו//), משתנה מסוג וחו הוא בנודל של ארבעה בתים. כדי להיות בטוחים בגודלו של. משתנה, ניתן להשתמש באופרטור מיוחד שנקרא 30601. האופרטור /99ש> יכול לפעול על שני סוני אופרנדים. טיפוס של משתנה - למשל: (420/)003%, ואו מתקבל הגודל של משתנה בודד מאות. הטיפוס. ניתן גם לבדוק טיפוסים, שהוגדרו בעורת /666פ/ף (שונה מעט עבור ++0). משתנח שהוגדר בעזרת טיפוס מסוים, יתן את גודל הטיפוס שהגדיר אותו, או מערך יתן את. האורך הכולל שתופס המערך בציכרון, שהוא בעצם גודל הטיפוס של המערך כפול מספר. האיברים. למשל: נגדיר ;[4/]3 זחו. הפעלת האופרטור כך - (5000/)2, תחציר גודל של זז כפול 3 איברים במערך. קיים סוג מיוחד של מצביע, שמצביע לאיבר שגודלו בית אחד. להבדיל ממצביע ל- 603. (משתנה בגודל בית אחד), המצביע המיוחד הזה מצביע על תא זיכרון אחד ולא על משתנה. מסוג כלשהו. מדובר במצביע ל-040. לא ניתן לבצע פעולות מתמטיות בין מצבועים מסוגים. שונים. מצביע ל- סי מצביע על כתובת עס טיפוס לא ידוע, ובעצם הוא משתנה מסוג כתובת זיכרון. מכיון שלמצביע ל- + אין טיפוס מוגדר ניתן לחוסיף, לחסר, או לחצוב. אותו במצביע מכל סוג שהוא. המרת - אם אנו רוצים באמת לבצע פעולת מצביעים מוזרה, כמו להשתמש במצביע של וא. כדי להצביע על משתנה מסוג 9טו, או אם ברצוננו להציב כתובת ששמורה במצביע מסוג. זגו לתוך מצביע מסוג 031/, נשתמש בהמרה (648006) 1 סב ופי פתב 1086 "110סת"-:ופי צמתם ופ (*28%ב? -פט קב או אפילו כך 1-ב במשתנה /צ, שמורה הכתובת של המערך יושחיי. המשתנה | מקבל את הערך ששמור. במשתנה 5 כפי שהוא. אס הכתובת היא 126 אז ערכו של | יחיה 126. מצביעים לפונקציות שפת 6, כמו גס שפת אסמובלי, מאפשרת להשתמש במצביעים לפונקציות. ניתן לקבל כתובת. של פונקצוה, ניתן לבצע אליח קריאה, ואפילו ניתן לשמור כתובת כזו במערך או ב- ותו. ההגדרה ()%6* אחו, מצהירה על פונקציה בעלת ערך מוחזר מסוג מצבוע ל- א 8 שפת 6- נושאים מתקדמים. ההגדרה ()(אוח*) זחו, מצהירה על מצביע לפונקציה שמחזירה זח. נראאה שימוש במצביע לפונקציה בשני קטעי הקוד הבאים. הפונקציה ()86036% מקבלת מספר פעולה, ועל פי המספר, קוראת לפונקציה אחרת שמבצעת עבודה מול המשתמש. () 30811386 צעהעםמהם מה וה 106 (ובמוצס? 5מ1)ע050אפת 16 [ (בתוצס?) מ160אם [ 1081138600 עטהעם6תם) תעמם? 03 56ב ((0 6מ0507ע602תם) תעמססע :1 56מם ( 0 01078 6תם) תעסם, 2% 56ב ("ס.תנתספקבת פם 5'חמם 1015 .עמצעם"):מה1צק :016ב?םם 1 7 1 שימוש בעורת 4/6 שקול לשימוש במשפטי זו מרובים. כל בלוק של 6356 מאל השוואה. אם הנאי אינו מתקיים, עוברים לבלוק הבא, עד אשר מוצאים תנוי קלים. אס מדובר. במספר רב של בדיקות, הפעולה תארוך זמן רב מאוד. קטע הקוד הבא משפר את ביצועי התוכנית, אך גוול מעט יותר זיכרון () 31708 העשוה 16 וה 16 סמה 106 () (צלסתגם*) מתג :46שפעט (6תו17בט1שצתפפתט | -[3]עבצא | 07156 עסמה מטף שמעסחמם (ובמוצס? 5ה0502)1אפת 16 [ (() [במוס?] ע58פתסחטם) מפטםע 1 מאוד פשוט ויעיל מבחינת זמן הריצה. וכור, לבדוק אם 89/40 הוא בטווח המתאים ואונ גורס לדריסת נתונים, או שפונה לאיבר שאינו במערך. נספח א': מבט מעבר לחומר השגרתי = 369 למי שלא זוכר, המילה השמורה /666פ/1, מגדירה טיפוס חדש (66000 0/06. "הגדר את. 0% בעורת השם זי כאשר 00 הוא הצחרה חוקית, ז- + הוא השס החדש של ההצהרה. סדר הפרמטרים הפוך מזה של הוראת קדס המעבד %696. בדוגמה לעיל מופיעים הפרמטרים זה בתוך וה, אך לא רק שההצהרה חוקית אלאא חיא הדרך להצחיר על. מצבוע לפונקציה. ניתן להצחיר על מערך של פונקציות גם באופן חבא. תג תב ,)>= ()([8/]3:שתסהם*) מתב גודל מצביע עד כה הסברתי, שמצביע באופן עקרוני הוא בגודל של שני בתים. למעשה, יש אופציה. מיוחדת של המהדר שקובעת את מודל הזיכרון. במודל זיכרון 6 למשל, כל המצבועים. בגודל של ארבעה בתים. המעבד 8086, פונה אל הזיכרון בשיטת מקטע- חוסט. 50000 6066%). כל אחד מהם בגודל שני בתים. מצביעים בתוך אותו המקטע, וקוקים. להיסט בלבד. תוכניות גדולות זקוקות ליותר ממקטע נתונים לחיד, לכן יש צורך בכתובת. זיכרון מלאה של מקטע והיסט. הסבר נרחב על מיעון זיכרון,ניתן למצוא בספרי אסמבכי. לפעמים אנו רוצים למסור כתובת של נתון, או של פונקציה לדרייבר, או אל 158 ולמשל, חדרייבר של העכבר, שיכול לקרוא לפונקציה שלנו בכל פעם שנלחןי מקש). כתובת שתימסר. לתוכנית אחרת, חייבת לחיות כתובת מלאה שכוללת גם את המקטע. כתובת כזו נקראות. כתובת רחוקה [800/08 זג!, ועלינו להגדיר את המצביע ככזה. לחלן הגדרות. - יי 5 118ק)טחנם 8ב: מתג - המשתנח 9 הוא מצביע למחרוות שגודלו 4 בתים ולא 2, לא משנה מה מודל הזיכרו בשימוש, הביטוי 84 מחזיר מצביע בנודל של % בתים תמיד, והפונקציה 6/6 ממקבלת מצביעע של 6 בתים, והקריאח אליח היא קריאה רחוקה, בכתובת של ארבע בתים, כמו פסיקה. פונקציה כזו יכולה להיות מופעלת על ידי דרייבר (פונקציית 10%6%). באופן דומה למגדיר ג!, ניתן להגדיר כתובת כ- זוטח, שפירושה כתובת של שני בתים, ההיסט בלבד. כאשר מודול בשפת 6 מקושר למודול אחר שנכתב בשפת 6 או כל שפח אחרת. חשוב מאוד לתאס את הצחרת המצביעים בין שני המודולים. קיימת מילה שמורה נוספת - ַפָח - שפועלת בדיוק כמ ג!, מלבד הבדל יחיד והזא. שמתמטיקה בין שני משתנים כאלח לא תגרום לגלישה, כיון שהס מומרים לכתובת רצופה. לפני החישוב, ובחזרה למקטע-היסט אחריו נכתובת של מודל זיכרון ₪31 שבשימוש במצב. מוגן 32 סיביות). קיים סוג נוסף של כתובת בזיכרון, כתובת של מקטע בלבד. ניתן לחבר מקטע וכתובת. קרובה 60ח) כדי לקבל כתובת רחוקה. כדי להגדיר כתובת מסוג מקטע יש לחשתמש. 6 שפת 6- נושאים מתקדמים. במילח השמורה 99 . כתובת מקטע היא בגודל שני בתים. יש לציין כי המילה השמורה. 9 לא בהכרח מוכרת על ידי כל המהדרים. הרחבה נוספת לשפת ) הלא 55 65 .66 . ,65 - בעזרתם ניתן להגדיר שמצביע מסוים מאול). למקטע מסוים, למשל כך צסס* 5 שבמם אך גס בהרחבה זו אין כל התחייבות כי כל מהדר יקבל אותה, ואין לח כל קיום על מחשב. שאינו %6 (תואם 18% תכנות ברמה תחתית (6/ש-ט) עד כדי כך דרוש לרוב לתוכניתני אסמבלי, מפתחי. דרייברים, ומתכנתים שמקשרים (בשימוש ב- 06 שני קטעי קוד שנכתבו בשפות שונות. למעשה ישנם מספר מגדירים נוספים שקובעים את העברת הפרמטרים ונוהל הקריאה, אך לפני אלו נסקור כיצד משתמש המהדר של שפת 6 במשאבי המעבד שלרשותו. ניהול משאבים הוכרתי מוקדם יותר, כי שפת 6 פועלת בדומה מאוד למערכת. למעשה פונקציה בשפת 6, בנויה על פי אותם הכללים שלפיהם בנויות פסיקות של 8105, ושל מערכת ההפעלה. אוגרים כלליים א ,) ,8% ,4% הם לשימוש הבלעדי של הפונקציה. אין כל חובה לשמור. את ערכם, ולאחר חורה מקריאה לפונקציה ערכם לא ידוע (שונה עבור פסיקות חומרה, שם. ערכם לא משתנה). אוגרים 55 ,5 ,05 ,65 חיובים לחוור בערכם המקורי. אם פונקציח משנח אותם, עליה. לשחור אותס. משתנים גלובליים נמצאים במקטוע פם. משתנים מקומיים נמצאים במקטע 55, במחסנית. בתחילת טוות-ההכרה שלהס 66006 שלאחר סוגריים מסולסלים, מוקצה זיכרון במחסנית. ביציאה מטווח ההכרה, המשתנה. משוחרר מהמחסנית (פקודת אסמבלי פסט). כדי לגשת למשתנים מקומיים, ניתן להשתמש באוגר ל8, אך ערכו חייב להיות משוחזר. פונקציה תקצה משתנים מקומיים, ותשחרר אותם מהמחסנית. פרמטרים מועברים אף הם. במחסנית, אבל מכיון ששפת 6 מכירה בסוג מיוחד של פונקציות, בעלות רשימת פרמטרים. משתנה (..), דוגמת ;(.,*603)חוזפ, חרי רק מי ששולח את הפרמטרים יודע כמה. פרמטרים היו לכן, פונקציה אינה מסירה מהמחסנית את הפרמטרים שקיבלה, אלא מ שוימן אותה. האוגרים 01 ו- 51 שמורים אף הם. ערך מוחזר מועבר באמצעות חצי אוגר 8 עבור בית, אוגר 8% עבור מילה, והצירוף אאגאם. עבור מילה כפולה (ורבעה בתים). שיטה זו תואמת את פסיקות המערכת. נספח א': מבט מעבר לחומר השגרתי = 371 קישור ניתן לקשר מודול של תוכנית, שנכתב בשפת 6, למודול של תוכנית, שנכתב בשפה אחרת. כדי לבצע זאת, בין שאר הדברים, על שתי השכות להסכים על שיטה אחת של העברת. פרמטרים וביצוע קריאה לפונקציות. קיימות מספר מילים מיוחדות (שמורות) בשפת => שמאפשרות להגדיר את שיטת חקריאה לכונקציה. 66 666 -, 6666 - > 004673000 6 תוא את השיטה של שפת 6 שהווכרה לעיל. בנוסף, כל חשמות בפונקציה, מקבלים קו תחתי בתחילתם. 89631 הצחרה תואאמת שת פסקל. הפרמטרים נדחפים לפי סדר הופעתם בקריאה (בשפת. 6 נדחפים מהסוף להתחלה, כך שיישלמו על פי סדר ההופעה), כל השמות באותיות גדולות. הפונקציה אחראית לנקות את הפרמטרים, שהועברו אליה מהמחסנית. 80691 > העברת פרמטרים וניקוי מחסנית בדומה ל- 646, אבל הקריאה מהירה ממנה. השם של הפונקציה מקבל ₪ . בתחילתו, ואת מספר הבתים שמועברים בדצימלית בסופו. למשל, עבור ההצהרה ;(פ חח .50862‏ זו תתקבל פונקציה בשם 8/0062 ,.. שיטה זר בשימוש בקריאות מערכת וקריאות +54 של 060% 32 סיביות, או בקישור לשפת. יי ₪691 .. העברת פרמטרים, עד כמה שניתן דרך האוגרים. פרמטרים שהועברו דרך. המחסנית, מנוקים על ידי הפונקציה עצמה. לפני שס הפונקציה מוסיפים 60, אחרי שם. הפונקציה מוסיפים /6, ואחריו מוסיפים את מספר הבתים שהועברו במחסנית. שימוש. במשתנה, שנמצא באוגר, הוא מאוד יעיל בזמן הריצה. אין חובה כי משתנה כוה יועבר רק. כפרמטר, והמתכנת יכול להורות למהדר להכניס משתנה מקומי לאוגר. הגדרות משתנים 0/6%8: הוראה למהדר, להכניס את המשתנה לתוך אוגר של המעבד. פעולות עם משתנה. זה יהיו מהירות יותר וגם הקוד קצר יותר. באופן כללי, אין טעם להפעיל את ההגדרה על. משתנים, כאשר משתמשים במהדר עם אופטימיזציה, כיון שהאופטימייור מכניס לבד משתנים לאוגרים. כאשר לא משתמשים באופטימייור, מומלץ להכניס לאוגרים מונים של לולאות זג!, ובעיקר כאשר עוסקים בעבודה מול זיכרון המסך. ג: הגדרה כזו מצהירה על משתנה אוטומטי, שמופוע עם כניסה לטווח-הכרת (66006. ונעלם עם זציאה ממנו. זוהי ברירת המחדל ונדיר להשתמש בהגדרה זו. ופוסו ניתן להכניס יציאות 1/0 למרחב הכתובות. קיימות גס כתובות רבות שהמערכת. מטפלת בהם, למשל: כתובת המקש הבא לקריאה מהמקלדת, היא כתובת קבועה שבעורת. מצביע רחוק (/3), ניתן לפנות אליה ללא פונקציית מערכת. משתנה שעלול להשתנות על ידי. תוכנית אחרת, דרייבר, או על פי קלט מבחוץ, חייב לחיות מוגדר כ- 41/6וטצ. פירוש הדבר. הוא, שלא ניתן לשמור את ערכו באונר זמני, אלא תמיד חייבים לקרוא מתא הציכרון ולכתוב אל תא הזיכרון. 2 שפת 6- נושאים מתקדמים. +פחפס ו-81806, ה שנל מגדירים נוספים, הדורשים מעט יותר פירוט. ניהול התוכנית שפת תכנות, היא כלי בידיו של המתכנת. על המתכנת להכור את השפה, את התחביר שלה, את המילים השמורות שבה ואת פונקציות הספריה המובנות ו 6/פ), שהיא כוללת. מטרתם של כל ספרי הלימוד, היא ללמד באופן מלא או חלקי, צדדים אלה בשפה. בסעיף. זה, אינני מלמד את כלליה של שפת 6, אלא מסביר אותם ומראה כיצד על המתכנת. לחשתמש בכלים אלה, כדי לנצל את היכולות של השפה ולהגיע למימוש המיטבי בה. הי ור הידור הוא כינוי התהליך, שלוקח קובץ של קוד, שכתב המתכנת (6066, והופך אותו. לקובץ הרצה (עם סיומת 5%6) אותו ניתן להפעיל על המחשב. הידור קוב 50069 של שפת 6. מבוצע בשלושה שלבים שונים. קדם מהדר (/טצפטסטזל-516, קדם- מעבד), מבצע פעולות הכנה עבור המהדר. מהדר (₪ופחוטס), מתרגם פקודות בשפת 6 לפקודות מכונה, אבל אאינו מחליט על כתובות. בויכרו. מקשר (6ח.), מקבל מספר קבצים לאחר הידור, ומקצה כתובות זיכרון לכל הפונקציות. קדם המהדר הוא חלק משפת 6, ומסתבר שדי נדיר למצוא אותו בחלק משפות אחרות. קדס. המחדר מטפל בחצות החיצונית של הקוד, בלי להבין אותו כלל. תפקידיו של קדם המהדר, הם למחוק מהקוד את כל ההערות, כך שהמהדר יקבל קוד מקור נקי, ולטפל בפקודות. שמתחילות בסימן + בתחילת שורה. קדס המהדר פועל בלי להבין למה הוא מעתיק, מדביק. או מוחק חלקים מהתוכנית. המהדר הואא המוח שמאחורי שפת 6, והוז היחיד בתהליך החידור שמבין באמת את השפה. קוד המקור (6069), שמקבל המהדר, עבר טיפול מוקדם של קדם המהדר שביצע עליר. עריכה ראשונית. תפקידו של המהדר הוא להבין את הפקודות ולייצר קוד מכונה, שהמעבד. יכול לבצע. המהדר אינו יוצר כתובות, ובמקום זאת מכניס שמות של משתנים לתוך קוד המכונה. הקובץ שיוצר המהדר הוא בעל סיומת 082 (על שם 0880). המקשר אינו קשור בהכרח לשפת 6, תפקידו הוא לקבל מספר קבצי (08 של שפת תכנות. אחת או יותר, ולקשר אותם יחד לתוכנית אחת. תפקידו של המקשר הוא, לייצר כתובות. בזיכרון של התוכנית, ולוודא שאין כפילויות בשמות. הקוב שיוצר המקשר, הוא קובט. הרצה בעל סיומת 6% 6490/0308 = בר הרצת). נספח א': מבט מעבר לחומר השגרתי = 373 הצהרות ויישומים בין שאר תפקידיו חרבים, על המהדר לוודא, שלא השתמשנו במשתנה לא מוגדר. המהדר. לא יוכל לבצע על משתנה פעולות מתמטיות אם אינו מוגדר, ולא יוכל לקרוא לפונקציה אם. אינו יודע מה הם הפרמטרים שלה. לשם כך, קיימת הצחרת (הגדרת) משתנים, למשל. הי 3 הצהרה - ח0ט3ומ:66 - הכרזה על משתנה. הגדרה - 60ח66% - הצבת ער "7" = ראשוני במשתנה או הצהרה המשולבת בה הצבה. הצחרה כזו תופוע בקובץ מקור של 6, תודיע למהדר על קיומו של המשתנה, על סוג המשתנה, ותודיע לו לבקש מהמקשר לשמור מקוס בזיכרון עבורו. המקשר בתורו יראה. משתנה חדש בשם ג, ויקצה לו כתובת בויכרון. הבקשה לשמור כתובת חדשה למשתנה ג, מופיעה בקובץ ה- 09(661, שמעבור המהדר למקשר. אם בשני קבצי :0966 (מודולים) שונים, קיימת בקשה להגדיר משתנה כזה, המקשר ייצור הודעת שגיאה. כל קוב מקור (0₪66:) בשפת 6 יוצר קוב (פ0. אם ברצוננו להשתמש. במשתנה יחיד בכל הקבצים, עלינו להודיע למהדר על קיומו ועל הסוג שלו, אך בל שהמהדר ינסה לשמור לו מקום בויכרון, אלא במקוס זאת יודיע למקשר (6א00), לחפש. אותו במודול אחר. ניקח לדוגמה שני מודולים בשפת 6. את המודול האחד כתב חבר שלי לפני חמש שנים. יש. בו פונקציות לפתיחת קבצים ואני יודע להשתמש בהן. אאם הפונקציה לא מצליחה לפעול, אני מקבל את מספר השניואה במשתכה גלובלי, שנקרא זטזו₪ 6פו. במשתנה ה שמור מספר השניאה האחרונה שהתגלתה. המודול שכולל את הפונקציות, ייראה כך. 1 שת (פחגת 118?* עבתם)116! הפקס מ [ ",פחבה 60)8116ק0ם!) 1% 1 3 1856 ן המודול שלי, שמשתמש בפונקציות, לא יוכל לכלול את ההגדרה של המשתנה ₪001 :8 אבל אאם לא נצחיר עליו, המהדר לא זידע אויך להשתמש בו כאשר נפנה אליו, ובכלל יחשוב. שמדובר בשגיאת כתיב, כיון שהמשתנה לא מוצהר. האמת חיא, שקיימת מילה שמורה. מיוחדת שאומרת: ייככה מוגדר המשתנה, אבל במודול אחו"י, והלא חשאט. לכן, ההצהרה. במודול שלי תחיה. 9900 1886 + הצממאם אני לא יכול לאתחל אותו כאן, כיון שלא אני מצחיר עליו. אני רק מודיע למחדר שהוא. קיים. המהדר ישתמש במשתנה, וה- זאחו) (מקשר) יחפש אותו בכל המודולים. אם. המשתנה לא נמצא בשום מקום, נקבל הודעה: "08/6 ו 08 שוש" שפירושח י"משתנה חיצוני לא פתור", א "לא מצאתי את המשתנה שהוגדר בעורת חזשואפי. 4 שפת 6- נושאים מתקדמים. בדו לדיוק, נבדיל בין הצהרה (ח0160ג060), לבין הגדרה (860/000) אל מימוש. 6 6/פ). הצחרה אומרת, שמותר להשתמש באותו השם, וכיצד, ומימוש גם מבקש. להקצות לו מקום בזיכרון, וליישם אותו. למעשה, העיקרון מוכר לנו מאוד מפונקציות. 0 ו [ - יי השורח הראשונה, היא הצחרה בלבד ופירושה הוא יימותר לקרוא לפונקציה הזו ואלה הם. הפרמטרים שלה, היא מיושמת במקום אחר". המימוש שמופיע מייד לאחר מכן, מבקש. לשמור לפונקציה מקום בויכרון של הפקודות של התוכנית. אם נצהיר על פונקציה שלא. קיימת, ונבצע אליה קריאה, נקבל הודעה דומה לאו שנקבל, אם נשתמש במשתנה שאינו קיים אלא מוצחר בלבד. קבצי 63061 קבצי 266שו!, הס קבצים שבהס נהוג להכניס הצהרות בלבד. את היישום מכניסים לקוב). 6 ונהוג שההבדל היחיד בשם שלהם יהיה הסיומת. למשל לקובץ %8.6חוג! יחיח קובץ. הגדרות /.8/א*. אנ קיים קוב 16806 ימת ), אין צורך לחדר שוב אאת הקוב עם. סיומת 6, וניתן להוסיף לפרויקט קובץ (08 מהודר. למעשה כל פונקציות הספריה של שפת. 6,שמורות בקבצים כאלה שהמהדר מוצא אותם לבד. הקבצים מכונים קבצי ספריה. (פוטו), והסיומת שלהם היא 18), אבל עדיין מדובר בסוג של קוב (08. כאשר אנר מכלילים קוב ו של הספריה בעזרת הפקודה 606ח/, המהדר יודע לבד למצוא את קוב). ה-118 המתאים ל אין שום חובה לרשום את ההצהרות בקובןף מיוחד, ומותר לרשום אותן בקובץ 6 עצמו, שב הן בשימוש, אך הרבה יותר נוח והרבה יותר מסודר לנחוג כך. כדי שנוכל באמת לרשום את כל ההצחרות בקוב יחיד, קיים מנגנון של קדס המהדר והוא. ההוראה 061006/. לאחר ההוראזה, יופיע שם קוב עם נתיב ספריות מלא על הדיסק. הקשיח, או חלקי. אס השם מוקף ב- <>, קדם המהדר יחפש את הקוב בספריה של. פונקציות הספריה, ואם השם תחום ב- "י, קדם המחדר יחפש בספריה הנוכחית של. הלכה למעשה, מותר להורות לקדם המחדר לכלול קוב עם סיומת 6, או כל קובץ שהוא. בכלל. את קדם המהדר זה לא מעניין בכלל, הוא לוקח את הקובץ החדש, ומעתיק אותו כפי. שהוא לתוך הקוב שמכיל את הפקודה 6/0606, ואד עובר גם עליו. הוראת קדם מהדר נפוצה נוספת היא 666106, אשר מגדירה שם חוקי, כביטוי. למשל. 5106 09 -1 נספח א': מבט מעבר לחומר השגרתי = 375 קדם המחדר יעבור על כל הקבצים (פרט לקבועי מחרוות (+0פיי) ולהערות (/*80%-/, ובכל. מקום שיופיע חשם 607, יוכנס במקומו הערך 1-. כך יישלח הקוב למהדר, בלי שחוא בכלל. יכיר את חמילה 60%. מותר גם להעביר פרמטרים להגדרת כזו ++1צפט (1צבט)1 548 מה44601 כאן מונדר, שכאשר מופיע 406.2 ובתוך סוגריים משחו, מכניסים במקום כל זה את. הביטוי, ואחריו ++. למשל ,הפקודה הבאה. ")1 68 תתורגס ל. 0 חלק מפונקציות הספריה המוכרות ביותר של השפה הם מאקרוס כאלה. להלן דוגמה. (978,"ת%8 :הסתתם [הַתק")!ה1עק (ת1)27בסגע מהנצע מה4601 4 עבור (("ץצסחפה 05 פטם")1בום? מהגצק וקבל 3 ("צצסתפה 38% :הסתתם תהדתק")?םה1צ הבעיה העוקרית עם מאקרוס היא, שקדם המהדר מטפל בהם בלי לחבין ממש מה הוא. עושה, ואס קיימת שגיאה, היא תחיה ממש לא ברורה. למשל. 0-עפם* ;8-5 מת1 (צז)0ב15ם 44601 | ((5022) 8001680 (1ע80)ה8מ1ם) 45 שג עבור משפט התנאי האחרון, נקבל הודעות שאומרות שהמהדר מצפה לסימן י כיון שמופיע. לו תו ',: באמצע המשפט, ושלא ניתן להגדיר את 8 מחדש. וכל זאת על משפט ) פשוט. אם. היינו משתמשים בפונקציה, המהדר היה יכול לומר לנו במדויק יותר מהי הבעיה. ניהול קבצי 11669 מותר למתכנת להצהיר על פונקציה או משתנה בכל מקום בתוכנית, ומספר רב של פעמים. שורצה. המהדר מבין שמדובר באותה ההגדרה על פי השימוש בטיפוס המשתנה, אד על פר הפרמטרים של הפונקציה. קדם המהדר אינו בודק פרמטרים, ובעצם מעביר קסע של טקסט. שמופיע בתוך סוגריים. כדי למנוע משני מקרוס שונים מלהחזיק באותו השם, קדם המהדר. אינו מאפשר להגדיר מאקרו פעמיים, לא משנה מה הם הפרמטרים שלו, ומח הוא היישום. שלו. ניתן לבטל הגדרת מאקרו. 65 66 בטל הגדרה. לאחר פקודת קדם מהדר זו, 1805 אזינו מוגדר ולא ניתן לחשתמש. בו. לעומת ואת, מותר להגדיר אותו מחדש לכל ערך שנרצה. 6 שפת 6- נושאים מתקדמים. 9 המאקרו פד מוגדר כ- 1 והמאקרו 53156 מוגדר כ- 0. שפת > מגדירה אף. = את טל ואת ₪6%. אלה מיושמים כמאקרוס במהדרים הישנים יותר וכחלק. נהוג להכניס את הגדרות כל המאקרוס יחד עם כל ההצהרות לקובץ 606וו. קוב כזה יכול. להכיל קבצים אחרים נוספים, למשל: הקוב וו.95פ, יכול לכלול בתוכו את .1806 [חסוחח6ם 5/20516), כדי להשתמש במאקרו .014. הקוב ח.10, יכול לכלול אף הוא את. הקוב ח.514961, וא התוכנית שלי כוללת את שניהם, אז בעצם הכללתי פעמיים את. 066 והגדרתי פעמייים את +01, שהוא בעצם דבר אאסור. קיימת לקובץ ₪656 אפשרות לדעת אם הוא כבר נכלל, והמשתנים שלו מוגדרים : הקובט. מגדיר משתנה סתמי ייחודי לו, ובפעם הבאה שיכלילו אותו, הוא יבדוק האס המשתנה. מוגדר. אפ כן, אז הקוב כבר הוכלל פעם אחת, ואסור להגדיר את המאאקרוס שוב. נבח. א ספלפ 919065 4306 אם לא מוגדר ו/ 51005 = אז לא היינו בקובץ הזה. לכן, נגדיר את המשתנה, כך שפעם. הבאה שנעבור בקוב, הוא יחיה מוגדר. הגדרה מעשית יותר תירוה כך טל | וו יי הדוי 8 7 אס התנאי מתקיים (המאקרו לא מונדר), או כל הקטע עד ל-//%606 מוכנס לתוכנית. אם. התנאי לא מתקיים, פשוט מתעלמים מכל הקטע כאילו שחיה בהערה. רצוי מאוד להשתמש בנוהל הבא לקבצי 6406 5 < 51185 411 05 185 > ממטבסהבא 01055 311 36916 1 +צבתם מצסמאם סה :סט 8 נדגים עכשיו יישום שימושי מאוד שקיים בשימוש בפיתוח. לשם כך, נשתמש בפונקציה. שתקבל מצביע למערך, ותמלא בו את הת י- עד לסוף המחרוות (עד תו 0 נספח א': מבט מעבר לחומר השגרתי = 377 (559 *עבתס) פטחגת 111ק מתג [ פס תב 15 %015 שַה541פ סח //‏ ;(0) תצטסמט (5%פ--0) 46 > (עספי)16גמ 1 1 אפשר להגדיר מאקרו חדש בשם 8806פ, ולהגדיר אותו רק בומן בדיקות של התוכנית. כאשר אנו משחררים קובץ הרצה לשוק לא נגדיר את המאקרו 806פם. 5 *עבתס) פטתגת 111ק מתב [ 156 (6פ--0) ,1 | ((₪845)0 נ("נופת5591 ממט8 3נפטתבח 911") פמק + = !וצצ הב 18 5315 הה1צ0ם סת //‏ ;(0)תעגטםע (ע6ם--ם) 16 0 %%ע5* (עספי) שבגמ 1 1 אם התוכנית רצה במצב בדיקות, תוצג הודעת שגיאה, והתוכנית תסתיים ("/6480" שבקובט. 9/606%). השימוש הוא כזה. 3505 שמשת ספמ מש 8+ // 441 מסנמסתנת 515 שמת מבתף //‏ "ת. :5% עא" ממטנסה1ל ה [ (12) 1166בה(005%) -505 *עממם נ(86)פטתגת 1נצע 1 אם השתמשנו במערך שהוקצה, בלי לבדוק האאם באמת הוקצה ציכרון תחת מצב 6806 תוצג הודעה על המסך והתוכנית תסתיים. נשפר בהרבה את הדיבוג, א נשתמש במאקרו מובנה. לשם כך, נשתמש בתו יי בסוף. השורה, שמודיע לקדס המהדר שהמאקרו ממשיך גם לשורה הבאה. להלן היושום של. המאקרו 556א. 5980100 שם44601 1500 ג(" ")8טהבעם | (%--0) ש1 תצק זט 8 שפת 6- נושאים מתקדמים. השימוש במאקרו יחיה כך. (565 *צבם) פטהגת 11 ה -%%צ0פ* (צספ'*).בגמה 1 1 הבעיה עתה היא, שהמאקרו אינו רושם את שם הפונקציה שבה התבצעה השגיאה, לכן אי לנו אפשרות לאתר את מקור ההודעה. במקום להעביר למאקרו את שם הפונקציה. שמפעילה אותו, נשתמש במספר מאקרוס שמוגדרים כחלק מהשפה. = 16 . - מספר השורה הנוכחית בקובץ (עלול לגרום לבעיות במחדרים מסוימים). | 115 = - שם קובץ המקור בשפת 6. = 16 = - תאריך ההידור. לכן, חגירסה המלאה של המאקרו תהיה. 0 5 פפת 94616 ב / [ : ("4שפג 15 פשפהגסק 1011 הת")5םתצטם : (( עדת | ,"35 ממה תס ")]םהצט ]| (( פא 11‏ ,"מ.%5 שת11 תס "):םהצפ - ;( מעתם - ,"5 15 הס1פעשל 18טשסת"): הצמ 0 1 - 1 פפת 94616 הי נשתמש בתוכנית הבאה, כדי לבדוק את המאאקרו, בהנחה שהמאקרו 5806 מוגדר בראשית. ג [ שממש ה 0 1 הלט יחיה. 8 1108 הס 280180157855.6.. ם[טמה תס פמ 15 עשףהגסם מצטת ג 0 26 05 45 מס1פצט 8016מח נספח א': מבט מעבר לחומר השגרתי = 379 מוסכמות קיימים מספר כללים, שבהס רצוי מאוד להשתמש בתכנות. מומלץ להכיר אותם בכל. מקרה, כיון שהספריות עצמן משתמשות בכללים אלו. כלל ברול ראשון הוא, שאסור למתכנת לכנות משתנים או פונקציות בשמות שמתחילים בקו. תחתי. כל השמות שמתחילים בקו תחתי אחד או שניים שמוריס לספריות של השפה. לדוגמה: ו 510065 . מקוב ח:54406, .06 מקוב (-פטס, אר 966 . שהלא. הפונקציה, שהמאקרו 966 קורא לה מקוב ₪.54410. אין להשתמש במילים המיוחדות/השמורות הבאות. ,גנ | 16עב: | ,סצסמאם | 5ב ,260211 | /1מטא | ו גנפ ,52011 0160ב,, / 1 ו ו פע ,0001 וסמב ,פטס ,40 ,451088 ,:1(ב465 ,סנות1מהסם 85% מפמסם /+ס? ,1086! ,12186 ,תעםסאם ,11018אם ומטהם ,₪156 850 םנתמהץב. מפפחגה ,פ[מגסטת ,ְהַה10 ,זת1 ,6ת11ה1 ,15 ,מססם ,מתס1צל ,26018068 ,110מטת ,80566מ0מק ,66בט1צק ,ספמ ,צסממעמע ו תפ ותענ00ע 855 . ,0 ,סנעף ,אסעת: ,1015 ,68ב1קתם: ,150% (מסטעםם /5%ב. פה ,על 0 / התנפ ,בסה10פתט ומסותט וסממהפקעם ,48קצ: ,הטקש 6 פמתשט ,00185116 ,046 חלקן הן מילים שמורות של שמת ++6, או רק של ההרחבות המאוחרות של שפת ++6. בכל. מקרה, רצוי מאוד שלא להשתמש בהן, כדי שלא להתרגל לכך, וכדי שהקוד ייה שמיש. בעתיד אם יוחלט להעביר אותו לשפת ++6. מאקרוס יופיעו תמיד באותיות גדולות. משתנים ושמות פונקציות, ייכתבו באותיות קטנות. כיום, נהוג להבדיל בוניהם כך. שמשתנה מתחיל באות קטנה, ופונקציה מתחילה באות גדולה. נהוג נס לבחור באחת משתי. שיטות, לשלב מספר מילים בשמו של המשתנה, האחת על ידי הפרדה עם קו תחתי, והשנייה. על ידי שימוש באות גדולה, כך: (197760חנ זו 150-כ ו כס ו ז, קאפנותו ו נהוג להצהיר על משתנים לפני הצהרת על פונקציות, כיון שלרוב פונקציות משתמשות. במשתנים, וזהו הסדר שלהן גם במימוש ולא רק בהצהרה. אם דרוש שם ייחודי, נחוג לחשתמש בשם שמתחיל באות ומסתיים בקו תחתי, לדונמה. ו/וו. באופן מקביל, נחוג שלא להשתמש במשתנים שמסתיימים בקו תחתי באופן שגרתי, כדי שלא להתנגש במשתנים שמתכנתים מנסים יילהסתיר". 6 שפת 6- נושאים מתקדמים. פונקציות לא יוגדרו כמחזירות 6צ. פונקציה תמיד תחזיר ערך, שמציין האם הפעולה. הצליחה או נכשלה. מי שמזמן (זימו=קריאה) את הפונקציה, אינו חייב להשתמש בערך. המוחור, אך פעמים רבות רצוי לבדוק אותו. פונקציות ספריה שונות של עבודה עם קבצים, הדפסה וקריאת נתונים, אינן מבטיחות הצלחה, לכן רצוי מאוד לבדוק את הערך שמוחזר. מקן שיטות ההחורה העיקריות. בכושלון, או ערך שונה מ- 0 בהצלחה, לדוגה : מספר הבתים שנשלחו/התקבלו, או משוט. 1 שמסמל הצלחה. 0 בכישלון, או מצביע לכתובת קיימת בזיכרון בהצלחה, לדוגמה: (31060וח אר )חפט 255 בהצלחה, א וו שערכו 1- (65535) בכשלון, מדובר בפונקציות שאמורות לקרוא. מקוב בית שערכו נע בי ס ל- 255 כעור קיימים המאקרוס 80 ו- א מודולריות כאשר שני מתכנתים עובדים על תוכנית אחת, או כאשר מתכנת מכון פונקציות לשימוש. בעתיד, יש לשמור על מספר כללי מודולריות בסיסיים. מודול הוא צירוף של קובץ 6 וקובץ וו תואם לו. ברוב המכריע של המקרים, לשניהם אותו. מתכנן המודול יצהיר על הפונקציות אותן הוא מייצא (לשימוש מודולים אחרים), והצחרת. משתנים מיוצאים, תתבצע בעזרת המילה השמורת חזשואט. ניתן למסור ערך של משתנח בעורת פונקציה. פמט שממ ( 1ב שממ [ )2 ו בקובץ ה- ז06טוו, תהיה הצחרה על הפונקציה, אבל לא על המשתנה. באופן זה מודול אחר. יכול לקבל את ערך המשתנה, אבל לא לשנות אותו. למעשה, מודול אחר יכול להצהיר על המשתנה כ- 0 ולהשתמש בו. כהגנה קיימת. המילה השמורה 4216. כאשר משתמשים במילה 52% על משתנה גלובלי, המשתנה מוכר. רק במודול בו הוא מוגדר, ולא ניתן לפנות אליו מאף קובץ אחר. נספח א': מבט מעבר לחומר השגרתי = 381 ניתן גם לשמור משתנה גלובלי כך, שיחיה פרטי לפונקציה אחת בלבד. וט שת [ 6-00הטסם 5ה1 0200ב )תע 1 המשתנה זטט6 הוא גלובלי, לכן הוא מאותחל ל- 0 רק פעם אחת, בתחילה הריצה של. התוכנית. הפונקציה היא היחידה שיכולה לפנות אל המשתנה, וכל מה שהיא עושה הוא. להחזיר את מספר הפעמים שצימנו אותה פחות 2 מתכנת יכול גם לחגן על עצמו מפני שנלאות תכנות. הסברתי שעדיף לכתוב (5==8) ולא. ), למקרח שבו נרשום בטעות סימן שוויון יחיד, אז מתבצעת השמה אל מספר קבוע. שהיא שניאה. כאשר מדובר בשני משתנים, אין ערך קבוע, לכן משתמשים במילה השמורה. - (559 *שמתש מפתס0ס) מהצעם ממ1 [ *פבתס 0200ב (1) שג 1 13 (0) עס 1 הפונקציה מקבלת מחרוות ובודקת האאם הכתובת שקיבלה היא אותה הכתובת שהתקבלה. בקריאה הקודמת. הפרמוטר + אינו ניתן לשינוי כך ניתן להגדיר מצביע למשתנה קבוע. וש * 0086 ,ב) ואס * עבתם שפם: אין חבדל בין שני המשפטים. בשניהס אסור לבצע את ההשמה הבאה. לחצוב: 0=ם. פ*, אבל מותר. אסור לכתוב שילוב בין שתי הפקודות הללו, כלומר. סק * 60056 עבחם מפם: כיון שזו חורה על אותה בקשה של חפש. באופן זה אנו מגינים על הערך ש-ק מצביע עליו. כדי להגן על ופ עצמו, יש לרשום את המילה השמורה |חט6 ייד לפני שם המשתנה, אחר סימן הכוכבית י). כאשר * נכתב לפני 6906 כך. שמ 0056 * שמתם אסור לבצע 0=ם ומותר לבצע 0=זומף. 2 שפת 6- נושאים מתקדמים. כיון שאו בקשה שונה של 600%8, מותר לכתוב. שק 55הסס * שבח 5, או לחילופון נ"מַה80 ףתממפהסם"-צסק ספתסם * 6פהמס שממש והמשמעות היא שאאסור לבצע 0=זאט וגם אסור לבצע 0=זפ* כפי שראיתם, ההבדל הוא במיקום 60061 ביחס לכוכבית. מיתוס קיים מיתוס, שמתרוצץ בעולם המחשבים כבר מספר שנים. מחברי השפה אף חיברו ספר. שמפרט את הכללים שבח. בספר מופיעה הדוגממה הבאה. ([)9מ5 *עבמם ,[ טמַב *צמת: 5 186 הנבת פח4 + 0 מתכנתים ואיתם הספרות וקבצי העורה, אמצו את שמות המשתנים הללו שמשמעותם. מספר ארגומנטים, ערך הארגומנטים וסביבה. למעשה, בקובץ /065, הוכנסו שני משתנים. בשמות ע9ג ‏ 1- 9196 ., כך שאין צורך לחגדיר אותם כפרמטרים של ()4. אולם, כאשר. אנו מגדיריס אותס כפרמטרים, מותר לכנותס בכל שם שנבחר. הדוגמה הבאה חוקית. (בת1:2 *יצבתם ,0506 סה1) הנבת 16 / (". שנס שהפתנוסת 3 5) - 153 שמ31 מהממטסעב ") פס (שמפסאן) :")מ הצק 196 0 נספח א': מבט מעבר לחומר השגרתי = 383 טיפים מעט טיפום לדרך. אוכור כי לא כל מה שנכתב בנספח זה, מומל או מותר במסגרת בית הספר. אני ממלוי מאוד לסכם בשתי מילים וחצי, מה תפקידו של כל מודול בתחילתו. חשוב מאוד. לרטום ליד כל פונקציה מה היא מחזירה בהצלחה ונה בכישלון, וערכים חוקיים. לפרמטרים אם יש הגבלה בלשהי. תכנות הוא מקצוע מאוד תובעני, שדורש שעות רבות של תרגול ועבודה. עם ואת הלות ממלי מאוד שלא לעבוד תחת עייפות. שגיאה אחת במצב עייפות, תגרור שעות רבות של. קיים איסור על שימוש בתוכנות לא חוקיות, לכן אף אחד מאיתנו לא משתמש בהן. נית לתרגל ללא תשלום בבתי הספר הפרטיים לתכנות, כל שיש לעשות הוא, לברר היכן כיתת. התרגול, ניתן להיכנס ללא הפרעה, ולקבל גישה למחשבים עם תוכנות פיתוח מתקדמות. בעולם המחשבים של היום, לא קיים מתכנת אחד שמכיר את כל השפות, את כל מערכות. ההפעלה או את כל הפקודות בשפה כלשחי. מומלצ מאוד לרכוש היגיון של מתכנתים, ואד לנסות ולהתמקצע בתחום יחיד. גישה וו תעלה את ערככם בשוק, כאשר תפנו למצוא עבודה. תודה מיוחדת לאורן תירוש על הביקורת הבונה, ותרומתו בכתיבת פרק זה. תודה גם למשח יצחקי ולזיו איילון. בברכת דרך צלחה. אסף של 4 שפת 6- נושאים מתקדמים. . נספח ב' טבלאות 5611, מקשי בקרה ומקשי סריקה טבלאות 45611 רגיל ומורחב הערה: שים לב שאת התווים שנמצאים בטבלת 85611 המורחבת החל מקוד 127, אפשר. להציג על ידי הקלדה של ספרות + וא. את הספרות יש להקיש במקלדת הנומרית מימין. כאשר. ה- 1964 וז במצב דלוק. דהה ב 0 הק ה -- ₪ ב ו ₪ ו ה 6 ₪ ₪ ו ד מב ו ו הו ה ו ה 0 0 ו ה 2 ד ב ו ה ה ה ב ‏ ה ממממוהה 0 ה א ₪ 7 ו 8 המשה ה ה ברמ ה 0 ה במ + ₪ ה ה ברו מ 5 ₪ 0 ה במ ד ₪ 0 ו מ 00 קה מ 6 0 ה ב כ ו ה חזקבק וס הי ₪ 0 8 ה לחתה החור ד ששה מ שד הממשה 0 ה ךר 5 ו ב 3 8 הממשה 0 ו ה 0 = ₪ 0 ו ב פך ₪ ו 0 ב פך - ₪ ו 7 בו = ₪ רובב ה ב זך ₪ ג מחה! ב א ₪ נספח ב': טבלאות 5011א, מקשי בקרה ומקשי סריקה = 385 הי ו 0 או 0 זו ] 1 4 33 "| 000010 2 22 -] 90100011 3 5 5 | 0010000 8 = 3 א 001 65 5 1 | 000 6 56 3 001 -] 27 9 )| 90101000 ב 8 6 (-- 01001 = 9 1 > 0100 ] 5 42 001 = 58 ה] ,| 101100 -] 5 1 הו 55 ב -] | 0001110 586 ב 6 | 01 = 28 7 8|- 0000 0 0 6 01100011 ה 3 9 2 || 01000 2 2 0 0013 3 3 = 8% 0010100 7 3 9 01015 = 35 5 68| 00 6 3% 2 7 01 7 3 5 8 00111000 0 3 56 99| 100 ג 39 7 ב 1100 3 3 8 0 3 31 9 + 111100 ] 3 |-] 1101 5 ב ₪ << 10 5 36 -] 01 ד -] 8 68| 000000 100 6 ] א 0001 1 4 5 8 | 1000010 102 3 6% 000016 13 3 1 5 | 1000100 10% ₪ | 00006 05 5 9 = 00000 166 6 16 9000116 ג ה ד 8% 91001000 106 48 גד 1 | 001001 ג 9 ₪ 1 || 00100 12 1 ] 0001 13 ₪ 55 ₪ 0001100 ג 6 16 6 שפת 6- נושאים מתקדמים . הי 543050008 % הכה , ו 0 0 0 ד 0 ה ו ב ו 0 ה 0 ו ו ה ד 0 הד 0 ב 0 ו 0 בד הי ו 0 בו ה הת ה ו הוה הוהי הי 0 0 ] 0 ב 0 0 0 0 0 ₪ 18 70 |. ₪ ]- 8 ]- 5 6 / 8 9 =. / 2 נספח ב': טבלאות 5011א, מקשי בקרה ומקשי סריקה 37 1 עפפתצם יי 9 0 00 גד 9 הח 1100 12 1% 12 ]1101 3 ד | || 1111100 8 סד ₪ |[ 111101ס 175 פד 15 7 10גגס 16 6 16 1 דג ב ג א = 10000000 20 1 18 ב 100001 הר 5 | ג 10000010 2 42 10 ד 10000011 3 -] ה ה 10000100 0% ] 1% 10000101 5 5 1% 10000110 6 6 3% ה 10000111 = = 5 1000000 0 = 6 + 10001001 2 4 ג ד 100000 2 58 186 100001 3 5 9 10001100 8 46 10 1000016 5 |-] 1 5 1000110 6 -] 12 ו 1000111 7 = 1 1000000 = ,> ג 10000016 = 91 5 1001000 2 2 6 1001001 3 ה 17 | 1000606 8% 1 18 + 10000 5 = 9 100100 6 %6 16 10011 ל 9 פד ור 10011000 0 8 ב 101001 1 9 1% ת | 1001100 2 7 1% 10011018 = -] 155 10011100 2% - 1% 8 1001101 5 ב 9 1001110 6 = 18 0011ב זל שף 19 | 1000000 0 0 10 | 10100001 1 א 16 6 | 10100010 2 | בה 1000016 3 ₪ 16 8 | 3010000 8 ] 16 8 | 1010001 5 65 16 8 שפת 6- נושאים מתקדמים . ספה 4-0 ג = הת דוהה רת הסה! 5 4 עפמהו 0 הו בה 1 1 1 1 1 הר 0 בר 1 הדו 1 ב 1 ד 1 0 ו 1 ה 0 הו 1 1 0 10 1 ו ו 0 10 הד 1 0 1 0 ה 10 1 1 1 0 1 נספח ב': טבלאות 901א, מקשי בקרה ומקשי סריקה. 0 16 1 16 19 170 תה ג 3 8 175 16 דג 156 19 10 18 1 15 1 15 16 ג 16 19 190 11 1% 1% 8 95 16 ג 198 19 1 | ששמש - בס | אש נמגבטט הו - - 0 1 3 3 1 --0000 3 = ה 01 5 5 3 ו 3 6 4 הוה 4 ₪ 35 וה 30 ₪ 6 1 3 9 ד 1 2 א 8 8₪ סוב 1 / ה ב 3 ב 9 ה 5 מ 4 ו .= ה - הד 4 פ 9 ה 0 ₪ 5 100008 ו ₪ = ת--0 100 02 | 56 גגב 38 9 ד 10006 8 ₪ - מ 5 5 == 1000ב 6 6 20 1001 37 ₪ 2% 0000 30 = 5 גב 3 9 = ב 1006ב - = = 8-ב 53 = 25 0-5 3 - = 10015 5 = > 0ב 36 -] 5% מ 7 4 -] 0000 30 - 6 1011ב 6 מ ה :06ב ו ₪ 2 01 - | הד [ 8 0 9 4 ה 0 5 25 + ב 6 % 6 נ ב 4 ה 7 ב 36 8 - * 1001 1 9 269 ו 3 א | וס ה 1% 1 0% 3 סי = :ב 9 ₪ 2% :6 ו -] 2% ה ר ב 5 0 שפת 6- נושאים מתקדמים . טבלת מקשי בקרה (6006 ץ6א !0ח60) עשרוגי עד ₪ 5 הקסדצימלי ₪ 50 ם אוקטפי הח נה נה 5 רו הדחחת] נדחחת] החדת החחת] נחחת] החחת] וחחדת] החדת] החת] החחת] ההות וו הו ות הח הוחו הוחו דחו הווחו מחחת] החחת] נחחת] החחת] נחדת] הת החחת] ₪ הו ד דוק הי 8 חן ו ויק הי ושי השקי הו + 8 "% ה 9 %5 6 = 8 ב ו תוצור הצצ נספח ב': טבלאות 5011א, מקשי בקרה ומקשי סריקה 391 . עשרוני | הקסדצימלי | אוקטלי ₪ 5% וד > > נה ב ם רו > 59 הו ₪ אפ רו ה 58 הו ₪ 2 הו ₪ ₪ 5 % ₪ ו 99 5 בו % ה 0 0 ה 4 9 ה הו ם ה הו רו 9 דיו הו ₪ 45 הו 6 6 5 ₪3 7 1% 5 רי 05 9 הו 106 ₪ רו בו 3 בו רו 6 רו בו ב 55 נן 6 ו הדו 9 7 הו 70 10 2 שפת 6- נושאים מתקדמים החחה] החחה] החחה] הוחה] החוחה] הדוחה] החחה] החחה] וחחה] החחה] החדו הדו החדוה הדוו החדוה הו הוחו החוון הווה החדו וחדוה החדוה הדחדות] החדו וחדוה החדוה החחה] הזעו בצ בצ 6 בצ בצ בצ וצצ הו בצ בצ בצ בצ 6 בי 8 הז וצו א א 3+ בוד 5 86 7 8 רוצ עשרוגי ו הקסדצימלי ה ₪ אוקטלי | בינארי הדש ות המוש צודוחות] הו ות ג | גנט המח ות המו צדוחות] במחש ות הדות מו ות | 00 הש ה הדש וה בש ווה חן א 2+ 3 מ 5+ 6 7 8 מ מ הוויצ + נספח ב': טבלאות 5011א, מקשי בקרה ומקשי סריקה 393 תרשים מקשי סריקה רגילים ומורחבים ה ₪ ו 5 8 ] ספ 8 6-96 39 > שווך ל-0006 5630 שא 1ג50000 (לפניר נשלח הקוד 224 ₪ 8 ₪9 3 ₪ 5 4 שפת 6- נושאים מתקדמיםם . נספח ג' פסיקות עיקריות בחומרה ובתוכנה תיאור הפסיקה וחשימושים. (מספר/קוד הפסיקה מסומן בהקסה- דצימלי). חלוקה ב-9. פסיקה זו מתבצעת כאשר מחלקים ב-ם. צעד אחר צעד - 569 5006. משמשת לתוכניות מסוג פפָטם. פסיקה שלא ניתנת למיסוך (%1א). משמשת במחשב לבקרת שגלאות על של. הויכרון הראשי במחשב. נקודת שבירה - 50/0 8/69, משמשת תוכניות פסוג 86פט06 גלישה. מתבצעת כאשר בפעולה חשבונית יש גלושה. הדפסת מסך - 5090 א90. תוכן המסך מועבר למדפסת. שמור לצרכים עתידום. שמור לצרכים עתידום. פסיקת חומרה של השעוך 0 זשוחוד. פטיקת חומרה של המקלדת - 0086 /66. פטיקת חומרה ב-7א, שרשור לבקר פסיקות שני. ב-דא פנו פטיקת חומרה לכרטיס תקשורת טורי שני ו60%. פסיקת חומרה לכרטיס תקשורת טורי ראשון 60%. ז: פסיקת חומרה לכרטיס מקבילי שני נדש); א: דיסק קשיח. פסיקת חומרה לכונן דוסקטים. פסיקת חומרה לכרטיס מקבולי ראשון 1 105 669, שירותי מסך. 5, שירות לקבלת פירוט מרכיבי החומרה במחשב. 5, שירות לקבלת פירוט של גודל זיכרון קות עיקריות בחומרה ובתוכנה ‏ 395 מספר פסיקה. 0 6 תיאור הפסיקה והשימושים (מספר/קוד הפסיקה מסומן בהקסה- דצימלי). 8105, שירותי גישה לכוני דיסקטים/דיסקים. 5 שירותי תקשורת טורית ל-60%0, 604 05 שירותי כונן קלטות [טייפ), יכרון 05666 5 שירותי מקלדת. 05 שירותי תקשורת מקבילות 2ש, גד 5 כניסה ל-8986 הצרוב ב-80%% על הלוח הראשי. 05 שירות אתחול למחשב 1066 6060 5, שירותי זמן: קביעת שעון מערכת, שעון ומך את ואועקה. 105 פסיקה הנגרמת מלחיצה על צורוף המקשים 0/1%863%. 8105 פסיקת שעון המתבצעת 18.5 פעם בשנייה. 5, אתחול מערכת הוידאו לאופני הפעולה שונים. 5 ברמטרים של מערכת כוני הדיסקטים. 05 אתחול טבלת התווים הגרפיים להצגה גרפית. 5 סיום תוכנות. 05, שירותים בלליים של מערכת ההפעלה 205. 5 כתובת סיום תוכנית. משמשת לחורה למערכת ההפעלה. 05פ, כתובת יצואה לתוכנית בלחיצה על 0148636 05, תוכנית לטיפול בשניאות קריטיות. 05, שירות לקריאה ישירח מהדיסק/דיסקט. 05, שירות לכתובה ישירה לדיסק/דיסקט. 05פ, שירות לסיום תוכנית והשארתה בויכרון כ-58ד 05, תוכנית שירות המציינת ש-005 במצב מנוחה ומצפה לקלט. 5 כתובה מהירה (9010498 9451 5 ממשק רת 0000 1 8 5 שמור 5, טעינת תוכניות לזיכרון תחת 05ם. 6 שפת 6- נושאים מתקדמים. . תיאור הפסיקה וחשימושים. (מספר/קוד הפסיקה מסומן בהקסה- דצימלי). 5, שירותים מורכבים. שרת הדפסות זא981, ופרמטרים שוניס של. תוכניות כמו א5516א, 94888 ועוד. פטיקת שירות לטיפול בעכבר. 05 במתטבי 81 משמש כהפניה לגישה לכונן דיסק/דיסקט. פסיקות 8105. פרמטרים לגישה לדיסק קשיח במחשבי דא ומעלה. שמור לפסיקות משתמט. פסיקות חומרה של בקר פסיקות שני במחשבי זא ומעלה. ממשק ל-8105 של כרטיס תקשורת [8105 0401%שא. זיכרון הרחבה 5%0606. שירותי זפשזם 6שוום של הזיכרון פסיקות חומרה של בקר פסיקות שני במחשבי זא ומעלה. שמור לשימוש 84516. שמור לשימוש המפרש - זזטזטזטוח1 84516 מנוי לתוכניות משתמש. נספח ג': פסיקות עיקריות בחומרה ובתוכנה ‏ 397 נספח ד' כתובות מוחלטות ב-₪4% לשימוש 8105 הכתובת (א6ת) בי בי 3 1 ה 0 0 1 ב ב 3 3 1 0 3 1 0-3 1 0 3 6 1 הי שימושים. מרחב פסיקות. כל פסיקה 4 בתים, סהי"כ 256. כתובות של עד 4 מתאאמי תקשורת טורית (001%). כתובות של עד 4 מתאמי תקשורת מקבילית (ז. פירוט של כל מרכיבי החומרה העיקריים במחשב. דגל אתחול. גודל הזיכרון בפועל בכפולות של 16. דגלו מצב של המקשים המיוחדים במקלדת. מצביע לראש התור של המקלדת. מצביע לסוף התור של המקלדת. תור למקשים שנלחצו במקלדת וטרם נקראו. פרמטרים לחיוויים מכונני הדוסקטים. אופן פעולה נוכחי של מתאאם המסך. מספר העמודות להצגה במסך. כמות הבתים הנחוצה להצנת מסך אקטיבי 2896 כתובת התחלתית במתאם המסך של הדף האוקטיבי. מיקום הסמן בדף 0 במסך. מיקום הסמן עבור דפים 1 עד 7 אופן ההצגה של הסמן על גבי המסך. כמות דפי הטקסט שניתן להציג על גבי המסך. כתובת התחלתית במרחב קלט/פלט של כרטיס מסך. ערך של טבלת הצבעים (₪8₪06 ז0ו9ס). 4 בתים שמחזיקים את ערך השעון של המערכת. דגל של שעון מערכת המציין שחלפה שעת חצות. 8 שפת 6- נושאים מתקדמים. נספח ה" אוגרים קיומים במעבד 26 אוגרים (696/66'), אשר כל אחד מהם הינו בגודל של מילה אחת. 26 סיביות). כמו בזיכרון, כך גם האוגר מכיל נתון, אשר אפשר לקרוא אותו, או להחליפר באחר. כיבוי המחשב גורם לאובדן הנתונים שהיו באוגר. האוגרים משמשים לשמירת נתונים, לביצוע פעולות חשבוניות ופעולות לוגיות, להעברת. נתונים אל הזיכרון וממנו, ועוד. לכל אוגר יש תפקיד, אולם בכמה מהאוגרים משתמשים למטרות דומות. ניתן לחלק את. האוגרים ל-4 קבוצות, על פי התפקיד שלהם. אוגרים כלליים (5ז691556 2056וטק |013ח00) - | ₪ | ₪ ] אאשחשא [ = א -. - -- = [--7 א - לרשותנו 4 אוגרים כלליים. נבחין שכל אחד מהאוגרים ניתן לחלוקה לשני חצאי אוגר. לכל מחצית אוגר יש סימון של אות ויהי של האוגר ולידה האות + או +. החלק השמאלי מסומ. באות ו כדי לציין 01 (החלק "הגבוה" של המספר) והחלק הימני מסומן באות | כדר לציון וס (הערך ייהנמוךי). 1 אוגר א - אוגר זה מכונח גם צובר או אקומולטור (משתמשים בו לסיכום מספרים). החלק השמאלי נקרא וא [ לציון ) והחלק הימני נקרא א נ1 עבור אפ 2 אוגר 8% - אוגר הבסיס. החלק השמאלי נקרא ו/8 וחימני 8. 3. אוגר 6% - אוגר המונה. החלק השמאלי נקרא 64 והימני ₪. + אוגר אפ - אוגר הנתונים. החלק השמאלי נקרא וזם והימני ום. למעשה, על ידי חלוקח וו קיבלנו 12 אוגרים שונים. ניתן לפנות למשל לאוגר אא, השלם, אר לכל אחד משנו חצאיו: או 81, או אזגר8, וכן הלאה. נספח ה': אוגרים 3996 אוגרי המקטע (5ז691500 %ח5090) 1 -. 0 ו 5. אוגר 05 - אוגר מקטע הקוד. מכיל את כתובת ההתחלה של התוכנית. 6. אוגר 05 - אוגר מקטע חנתונים. מכיל את כתובת ההתחלה של מקטע הנתונים. אוגר 55 - אוגר הנתונים נוספים. מכיל את כתובת תחילת הנתונים הנוספים (אם. ישנם). 5 אוגר 55 - אוגר המחסנית. מכיל את כתובת תחילת המחסנית (יוסבר בהמשך). אוגרים מצביעים (5ז69156 זס)חוסק) - ה - ו 9 אוגר 51 - אוגר מצביע מקור. מצביע על כתובת תא זיכרון מבוקש. 0 אוגר 01 - אוגר מצביע יעד. מצביע על כתובת תא זיכרון מבוקש. 0 1 אוגר 0ם - מצביע הבסיס. משמש כמצביע על כתובת תאי הזיכרון במחסנית. 12 אוגר 55 - מצביע המחסנית. מצביע על כתובת תא הציכרון בקצה המחסנית. 0 3 אוגר 15 - מצביע פקודה. זוהי הכתובת של ההוראאה הבאה לביצוע. אוגר הדגלים (ז6915%0ז 51895) מ[ 1% אוגר ז - אוגר הדגלים. מכיל 9 דגלים (סיביות) הנמצאים במצב אחד או אפס לוגי. הם. מתארים מאפיינים מסוימים בפעולה האחרונה שבוצעה על ידי היחידה. אריתמטית-לוגית (40א) של המעבד. שפת 6- נושאים מתקדמים. נספח ו" הרצת תוכניות הדוגמה במהדר 3% ++60/6 ספיוטד | מרבית התוכניות בספר זה עוסקות בפסיקות. דבר זה אפשרי רק בעזרת מהדר התומך בכך (מהדר המותאם לסביבת 05פו, כגון 3.0 ++6/6 ספוד 806ווספ או 3.1 00% פפוטד 4חגוסם. גרסת 06:) של 8010806 (למרות שיא מיועדת ל-005) אינה מתאימה, בו השאר מכיון שהיא אינה תומכת בהקצאות נדולות של זיכרון והידור במודל. 6 הנחוצים להידור הפרויקטים בנושאי המולטימדיה. הגדרת מאפי המהדר תוכניות הדוגמה המצורפות בתקליטור הן ברובן פרויקטים הדורשים משאבי ויכרון נרחבים יותר מברירת המחדל של המהדר. מסיבה זו, עלינו לבצע מספר שינוייס בחנדרות. המהדר כגון הגדלת מודל הציכרון מ-ע70. ל-1496 והגדלת ה-506 699ף ל-6408. לשם כך, עקבו אחר הוראות הבאות ושנו את ההגדרות כך שחלונות ההנדרות ייראו בדיוק. כפי שהן נראות בתמונות שבנספח זה. אין צורך לשנות הגדרות אלו בכל פעס מחדש: עליכם לשנות את ההגדרות רק בפעם. הראשונה עס תחילת קריאת הספר, והמהדר יזכור את השינוייס שביצעתס. נספח ו': הרצת תוכניות הדוגמה / 401. 1. הגדלת מודל הזיכרון בחרו בתפריט פחסווקס > פוטס > )וטס 6066 (תרשיים 1 תוטים ג ושנו את המאפיינים כך שייראו כפי שהם נראים בתרשים 2. תוטים ג 2 שפת 6- נושאים מתקדמים. 2. הגדלת ה-65016זחד זה זב ל-64000 בחרו בתפריט 091605 > ז6/קחזט6 > ה00זחפ 6006 030668 (תרשיים 5) תושים 3 ושנו את המאפיינים כך שייראו כפי שהם נראים בתרשים 4. תושים % נספח ו': הרצת תוכניות הדוגמה | 403. 3. הגדלת ה-26ו5 ₪463 ל-640. בחרו בתפריט פחסופס > ז6פפטפטס (תרשים 5) ושנו את המאפיינים כך שייראו כפי שהם נראים בתרשים 6. 4 שפת 6- נושאים מתקדמים. 4. עדכון מיקום הספריות כדי שהמהדר יוכל למצוא את קבצי יחידות הספריה, יש לוודא שחוא יידע מהו מיקומס. המדויק. לשם כך, בחרו בתפריט 0005 > 0065שזוס (תרשים ל). תוטים ד ודאו ששני השדות הראשונים מכילות את המיקום הנכון. אס, לדוגנוה, המהדר שלכס. מותקן במיקוס *סטו0:1" השדות צריכים להיראות כפי שהס נראים בתרשיס 5. נספח ו': הרצת תוכניות הדוגמה / 405. פתיחת תוכניות הדוגמה למני שנוכל לחדר את תוכניות הדוגמה, עלינו להעתיק את תוכן הספריה 80059281. מהתקליטור המצורף לספר זה, אל הדיסק הקשיח. היכן נמצאים הקבצים הקשורים לספר זה? התיקיה הרלוונטית לספר זה; 59281 800%5. תחת תיקיה 59281 80085 : (החלף את האות א באות הכונן המתאימה) תמצא תיקיות. משנה: תיקיה עבור כל פרק: תיקיה 01 עבור פרק 1, תיקיה 02 עבור פרק 2 וכך הלאה. תוכניות הדוגמה של פרקים: 1, 2, 3, 5, 6 17-17 חן תוכניות רגילות ולכן נפתח אותן. בתוכניות רגילות בשפת > תוכניות הדוגמה של פרקים: 4, 8, 9, 10 14, 13,12, 16, 15 ו-14 הם פרויקטים המשלבים. יחידות [(09) וקובץ ראשי המאחד בין היחידות (אשר תוכנו הודפס בספה). לכך, עלונר לפתוח אותם כפרויקטים. העתקת קבצי המקור לדיסק הקבצים נמצאים בתיקיה 08559281פ :% מסודרים לפי תיקוות - תיקיה עבור כל פרק. כדי להעתיק את הקבצים לדוסק. 1. לחצו על לחצן התחל, תוכניות, סייר 60005הוע 2. הצינו את תוכן התיקיה 800% אשר בתקליטור. 3 סמנו את התיקיה 59284 וגררו אותה לתיקיה כלשחי בדיסק 6 (למשל 8086 מכיון שמקור הקבצים הוא התקליטור, הס מסומנים לקריאה בלבד. רצוי לשנות מאפין זה בדרך ור 1. דרך הסייר היכנסו לתיקיה בדיסק, שבח נמצאים הקבצים שהעתקתם. 2 סמנ קובץ מסוים או את כולם על-ידי.00+8, 3. הציבו את סמן העכבר מעל הוור המסומן ולחצו לחיצה ימנית בעכבר. >. מתפריט הקיצור בחר מאפיינים. 5 בטלו את הסימון בתיבה קריאה בלבד (דאגו שתיבה זו תחיה ריקה), 6. לחצו על החל, לחצו על אישור 1 לחצו על לחצן התחל, תוכניות, הפגייה ל-005-פו 2. בחלון 005 רשמו: 5 *.*ופ, /0/60100 | + ז- חנו 6 שפת 6- נושאים מתקדמים. . שימו לב, כל הפעולות שהוזכרו עד כח הן פעולות שעלינו לבצע באומן חד פעמי כדר להתאים את המהדר לתוכניות הדוגמה הדורשות זיכרון נרחב, וכדי לאפשר למחדר לחדרר את התוכניות בכונן המאפשר כתיבה (ולא קריאה בלבד כמו כונן התקליטורים). בהמשך נלמד מהן הפעולות שעלונו לבצע בכל פעם שנרצה לפתוח תוכנית לדוגמה. כדי להריץ אחת מהתוכניות הללו עליכם לבצע את הפעולות הבאות. 1. לפתוח פרויקט חדש בתוך ספריית הפרק המתאים. שימו לבו חשוב שכל הקבצים של הפרויקט יימצאו באותה ספריה בה אנו פותחים את. הפרויקט ולכן הקפידו לציין את מיקום ספריית הפרק המתאים. נעשה ואת בעורת תפריכי 661טזל > סוק השס (תרשיים 9). תושי פ אחר כך נקליד את מיקום ושם הפרויקט. לדונמה אם העתקנו את תוכן הספריה. 1 מהתקליטור למיקום "0:80086" ואגו רוצים לפתוח את תוכנית הדוגמה של. פרק 10, נקליד: (0[06זט010ט:6 (תרשים 10). נספח ו': הרצת תוכניות הדוגמה / 407. תושי 0 2. לצרף לפרויקט שפתחנו את הקבצים הנחוצים נבחר בתפריט +6פ[טול > חפו1 866 (תרשים 11). תושים ג בתיבה שתיפתח נבחר בכל קבצי הקוד הנחוצים (על פי הרשימה שבסוף כל פרק תחת. הכותרת ייהקבצים שיש לצרף לפרויקט כדי להריץ את התוכנית לדוגמה'), ונלחף א0. 8 שפת 6- נושאים מתקדמים. נספח ז' התקליטור המצורף קרא את קובץ 06פ.פס0₪ בתקליטור כדי לקבל מידע מעודכן על תכולת התקליטור המצורף. קרא בנספח ו' כיצד להעתיק את קבצי המקור הרלוונטים לספר זה. + קטלוג 1086 - קטלוג ספרי המחשבים האינטראקטיבי של הוצאת הוד-עמי. לשם. קריאת הפרקים לדוגמה יש להתקין את תוכנת 86206 800031 86096 אשר מצורפת. בתקליטור. הוראות התקנה בהמשך. הקטלוג מומלץ לצפייה באמצעות זשזט!קש ז6חפזח1 נירסה 5, המצורפת בתקליטור. הוראות התקנה בהמשך. התקנת שתי התוכנות קלה וניתנת לביצוע באמצעות קישור ישירות מה; > מספר תוכנות עור שימושיות (תחת התיקיה 508516 ,4 19909 אס מנהל התקן כונן התקליטורים המותקן הוא 16 סיביות - ייתכן שתראה רק. 8 תווים ראשונים של שם קובץ (במידה שהמקור ארוך יותר). הסיבה: כונני תקליטורים במהירות 4א עובדים עס מנהל התקן שעבד בסביבת. 5 ו-3.11 606 ויכול לעבוד גם עם 95 606ח/, למעט חיכולת לוהות. קבצים עם שמות ארוכים. הפתרון: להתקין מנחל התקן 32 סיביות (אם קיים), או לקנות כונך תקליטורים חדש ולוודא שמצורף אליו מנחל התקן 32 סיביות. נספח ז': התקליטור המצורף = 409. התיקיה הרלוונטית לספר זה שים לב: בתיקיה 80085 יש מספר תיקיות המוכילות קבצי תרגול לספרים בהוצאת. הוד-עמי. שם התיקיה בנוי ממספר הדאנאקוד הנמצא בעטיפה האחורית של הספר. (לדוגמה: דאנאקוד 259-2016 יופיע בתיקיה כ- 59168) התיקיה הרלוונטית לפרק זה. 0 ראה הוראות בנספח ו' כיצד להעתיק את הקבצים לדיסק הקשיח וכיצד להריץ את התוכניות.. 3 023% - התקנה יש להתקין תוכנה זו כדי לקרוא ולחדפיס את הפרקים לדוגנוה, אליחם ניתן לגשת. באמצעות קטלוג ₪7 (שהתקנתו תוסבר בהמשך). התוכנה גם מאפשרת חיפוש בעברית. ובאנגלית במסמך המוצג. בנוסף, בעורת תוכנה זו תוכל לקרוא את המסמכים שההוצאה. מפרסמת באתר האינטרנט. התוכנה פועלת במערכות הפעלה. חא ומעלו 1. לחץ על לחצן התחל ובחר באפשרות הפעלה. בתיבת הטקסט הקלד את הפקודה. 81 86:00 4006 76מ501 :% (החלף את האות % באות. המייצגת את כונן התקליטורים שלך) ולחץ על אישור. 3 אשף ההתקנה מתקין את הרכיבים הנדרשים. עליך ללחוף על 6א6א, 866008 ו-אאסא. פעם נוספת כדי לסיים את ההתקנה. > בסיום ההתקנה עשויה לחופיע על המסך תיבת דו-שיח התנגשות בין גירסאות ומייד אחר כך להיעלם. במקומה תופוע על המסך תיבת הודעה של תוכנית ההתקנה. ל על. אישור ובתיבת הדו-שיח התנגשות בין גירסאות ששבה להופיע לחי על כן, כדי לשמור. את גרסת הקוב שלך. 6 שפת 6- נושאים מתקדמים. . קטלוג !ודו הוצאת הוד-עמי גאה לבשר על קטלוג ₪1 העושה שימוש בטכנולוניות אינטרנט. מתקדמות כדי לחביא לך את המידע על ספרי המחטבים המקצועיים שלנו בלחיצת עכבר. מומל לצפייה בעזרת 540016 זשחושוה1 008)%! מגירסה 5 ומעלה. בעורת קטלוג זא תובל. > לעיין במידע על ספרי ההוצאה מתי שתרצה (לחיצה כפולה.... והו). > לעבור במחירות ובקלות בין הקטלוג וחיישום בו אתה עובד. > לעוין במידע על כל ספר וספר. > לצפות ואף להדפיס פרק לדונמה. > לנווט את דרכך בקטלוג ולחוור ולהתרענן בכל נושא בכל רג הקטלוג מומלץ לצפייה בעזרת זפזסוקא5 זטחזפוח! מגירסה 5 ומעלה.. 1. הכנס את התקליטור לכונן. 1 לח התחל ובחר הפעלה. 3 בעורת לחצן עיון סמן את הקוב 8אפ.ק5960 אשר בתיקיה הראשית של התקליטור המצורף. + לח פתח. 5. לחץ אושור המחירון המעודכן של ספרי ההוצאה נמצא באתר האינטרנט |.60.וחח3-₪סח.שועו 1 ודא שתקליטור הוד-עמי נמצא בכונן התקליטורים. הפעל את הסמל עם הכיתוב קטלוג ספרי מחשבים בהוצאת הוד-עמי שעל שולחן העבודה. נספח ז': התקליטור המצורף = 411. מה עוד בתקליטור? הוצאת הוד-עמי מפיצה תוכנות אלו כבונוס ללקוחות ההוצאה, וינה מתיימרת לגבות. תשלום עבור התוכניות המצורפות וזו לתמוך בהס. בכל שאלח לגבי תוכנה הנמצאת בתקליטור, יש לפנות למפתחי התוכנה (כל תוכנה בנפרד). כפי שמצוין בקבצי העורה של התוכנה המדוברת. הקבצים הם גרסאות שיתופיות [16//586מח5) וחופשייות [16מ/604ת5). גרסת 6//816/מ/5 מאפשרת לך, המשתמש, לבדוק את יעילות התוכנה ואת תאימותה. לעבודה אותה אתה מבצע. אס נמצאה התוכנה מתאימה לצרכיך, עליך לשלם למפתחיה. תשלום סמלי (לפי הרשום בקבצי העורה של כל תוכנה ותוכנה בנפרד) כדי לקבל רישיון מלא לשימוש בה. קבלת רישיון לשימוש בתוכנה יפתח בפניך מיגוון אפשרויות שלא עמדר לרשותך בהפעלת גרסת ה-503161066. התקנת תוכנת גלישה לאינטרנט 5 זסזס!קא= 86%ז%6ח1 +0501זסוון תוכנית ההתקנה מוהה את נרסת מערכת ההפעלה ומתקינה את גרסת הדפדמן הדרושה. מומלץ להסיר גירסה קודמת של 0016 ושחוזת1, א קיימת. 1. הכנס את התקליטור לכונ 2 לח על לחצן התחל ובחר באפטרות הפעלה. 3 לחא על לחצן עיוך > בחר בכוגן התקליטורים בתיקיה 50803181185 ובקוב בשם 56709.546. 5. לחץ על לחצן פתח. לחץ על לחצן אישור 6. פעל לפי ההוראות על המסך. % לפני ביצוע שדרוג מ-95 פוויסטחווו ל- 98 פאוסטחווו בעברית (זו בה התפריטים בעברית. 2 שפת 6- נושאים מתקדמים. הלהס קוב וה יתקין במחשב 2 גופנים בעברית לשימושכס. בסיום ההתקנה יש לבצע את. הפעולות הבאות. 1. לחץ על התחל, הצבע על הגדרות, ובחר בלוח הבקדה. 2 לח לחיצה כפולה על הסמל גופגים. 3. תח את תפריט קובץ ובחר באפטרות התקנת גופן חדש. 5 עבור לתיקיה 56888)חס/ גם. 5. לח על לחצן בחר הפל (סהי"כ יש בתיקיה 2 גונים) 4 ודא שתיבת הסימון העתק נופנים לתיקיית הגופנים מסומנת. 7 לחץ אישור 8 סגור את חלון התיקיה 5חסא. 5 סגור את חלון לוח הבקרה. בעת, מוכנים הגופנים לשימוש בכל התוכנות המותקנות במחשב שלך: 076 אפ וט לזטאוטפ ונכ בתוכנות גרפיות, כגוך סל 5700 מק ר-ק0ח5טוטהק. הגופנים נקראים לוזט2-זח7 ו-ק6ם>-ד וופיעו בתחתית רשימת שמות הגופנים (בדרך כלס. הרי דוגמה שלהם. ק6ז-| וחד א דאר אש לו ייצ עו 4357/50 10 קוטכ-ווחד 1 זהוזהטויכךרמם/ ןְ50ף<ץרֶרשת1234567590 נספח ז': התקליטור הוצורף = 413. אפדפא במקום לרשום !01.69.1ופ-808:אואיו+/ :שפח פשוט רישמר הוד-עמי והכה אאתם באתר. במטרת לחגיע לאתר מסוים באינטרנט, שכתובתו אונה ידועה, אנו משתמשים בדרך-בלל. באחת משתי דרכים. ניחוש של כתובת האתר ו/או פנייה לאינדקס או למנוע חיפוש. שתי הפעולות הן מסורבלות וגוולות זמן ואנרגיה מיותרים. ניחוש הכתובת מחייב הקלדה. של הכתובת המלאה באנגלית בדיוק מושלס, והוא עשוי להיות הלוך גוול אמן, במיוחד. כאשר לא מצליחים למצוא את האתר בניסיון ראשון או בכלל. עם אטושו לא צריך לנחש כתובות או לנלוש למנועי חיפוש כדי להגיע לאתר מסוים ברשת: פשוט מקלידים את שם האתר בעברית בחלון הכתובת בדפדפן, ומגיעים אליו ישירות. אפשרויות השימוש במערכת גלישה ישירה לאתר על-פי שמו או על-פי נתונים הקשורים בו. מקלידים בחלון הכתובת של הדפדפן שם של אתר או חברה או מילות מפתח הקשורות. באתר (בכל סדר שהוא), ומניעים אליו ישירות. לדוגמה. + מקלידים הוד-עמי או הוצאת הוד-עמי או ספרי מחשבים ומגיעים ישירות לאתר. הוצאת הוד-עמי לספרי מחשבים. + מקלידים בנק דיסקונט - ומניעים ישירות לאתר של בנק דיסקונט. + מקלידים סלקום או 052 - ומגיעים ישירות לאתר של חברת סלקום . + מקלודים עכבר העור - ומגיעים ישירות לאתר של העכבר,. + מקלידים 444 - ומגועים למודועין 184 של בוק;. התחברות למערכת הניתוב החדשה של ישראל כל שעליכם לעשות כדי להתחבר ל-0615%! הוא להתקין תוכנה קלה וחכמה. 1 יש לסגור את כל התוכנות הפתוחות כולל הדפדפנים הפועלים. 2 מתוך = סיור 6005חואו ‏ הפעילו ‏ את הקוב 6, 0 0 שבתיקיה 3. פעלו בהתאם להוראות. בומן ההתקנה התוכנה מוהה את הדפדפן/ים שמותקנים במחשב, וחיא תפעל עם כולם. מייד אחרי סיוס ההתקנה תוכלו להתחיל לגלוש חכם ובעברית. 4 שפת 6- נושאים מתקדמים. המערכת שקופה למשתמש, כלומר היא יימתלבשתיי על הדפדפן הרגיל ואינה נראית כלל. אין צורך להפעיל אותה או לבצע פעולה כלשחי כדי להשתמש בה: פשוט מקלידים את שם. האתר המבוקש בשדת הכתובת של הדפדפן, ומגיעים ישר אליו. התוכנה אינה מפריעה לעבודה רגילה עם הדפדפן. היא נכנסת לפעולה רק כאשר מקלודים. נתון שאינו כתובת אינטרנט רגילה (080). כאשר תקלידו .06-8001.60ח.אאש תגלשר ישירות לאתר הוצאת הוד-עמי, בדיוק כפי שנהנתם לגלוש לפנ התקנת התוכנה (ללא. מעורבות המערכת). אך אס תרצו, תוכלו להקליד הוד-עמי בשדה כתובת ולהגיע במחירות. לאותו אתר בדיוק. נספח ז': התקליטור המוצורף = 45. יה ראשית 50376 (רשימה חלקית ועשויה להשתנות) הערה: תוכנות להן יש גירסה מיוחדת עבור 2000 5ו0%חו/) יסומנו בתיקיה ששמה מסתיים. ב- א2 (למשל, בתיקיה 16 נמצא קובץ התקנה לתוכנה זו המתאיים לכל גרסאות 608 ובתיקיה 160% נמצא קובץ התקנה עבור מערכת ההפעלה 2000 פאוס4חוו בלבד). בדרך כלל לחיצה כפולה על שם הקובץ המפורט ברשימה מפעולה את תוכנית ההתקנה. שם תוכנה. תיאר אבמטטא ₪000 | תוכנה לצייה בקבצי וט חשצוף חמ | מחיקת קבצ 61 שאי צורךבהם. הי 00 | תונח לתקטורת 186 | תוכנת הצאט תמופולרית בותר ברשת. 66 | תוכנה הטאמטרת גישה בערית 006 00 030% | תוכנה לציר, עצוב ופיד תמונות. 1/5 אס | תונותשורות עור א9וסחו פחאח/ו | תוכנה להשמעת קבי 63 ומוסיקה פקואו | וכית למריסה/רחיסה של קבצים. שו | וכית לצייהבקבצי 6 קרא את קובץ 06פ.פ6א0 בתקליטור כדי לקבל מידע מעודכן על תכולת התקליטור המצורף. קרא בנספח ו' כיצד להעתיק את קבצי המקור הרלוונטים לספר זה. 6 שפת 6- נושאים מתקדמים. אינדקס 6 פא ג ג = 45 זסא 5 5 5045 אסא 0 בו 6 0 0ב 0 כוור ודו שו 9 0 6 א אוגר שש דגלים 55 ₪5 מדומה 56 מצביע הפקודה 55 פה ח0משוטצתן - מ מקטע 57 900 מקטע קוד 55 9000608 6066 -05. >> 37 << איגוד 28 חס אוגריס מדומום 56 8865 מצביע 3 אינדקס 417 אנימציה 215 חח חלוקת תמונה . 219 יצירת חוליה לכל מסגרת 216 מחיקת רשינות מסגרות 219 מסגרת 215 806 פונקציות (ראה פונקציה) שקופות 215 45/66 אסמבלר 55 ו 1 מוכלל 62 10/06 שילוב פקודות בתוכנת. 62. ב בדיקת זוגיות סיביות. 50 (ראה סיבית) בות 36 פוט ג גופך 91 156 00% וצורה 156 פונקציות (ראח פונקציה) שילוב בתוכנית 155 גלילת מסך 114 001000 גרפוקה 143 6 צבעים 143 6 (ראה קוב 885 1 15 1 1 0 3 אפקט 151 גוונים 150 נופנים 156 (ראה גופף. דף וירטואלי 15 (ראה דף וירטואלט. החלפה בין מודים 146 השחיה 193 לוח צבעים 150 84606 000 מימוש יחידה 168 ממשק יחידה 162 פונקציותת (ראה פונקציה) 8 שפת 6- נושאים מתקדמים. . צוור עיגולים 48 ציור קוויס. 1%6 שתילת פיקסל על המסך 1% תותח אלקטרונים 153 ד דף וירטואלר 15% 2006 ומטמו פונקציות: (ראה פונקציה) ה הנדלה/הקטנה עצמית 23 הדפסה 0 מסך 90 פונקציות 91 וגילה 91 הכרוות והצחרות. 2 הסבה בכוח 23, 38 624000 הקצאת זיכרון 35 דונמית 38 [ וקטור פסיקות 56 / זמן 19 שח מימוש יחידה 209 ממשק יחידה 207 עדכון ומן ותאריך 19% פונקציות (ראה פונקציה) פסיקה 8% 203 קוצב שניות 200 קריאה משעון 005 297 קריאת זמן ותאריך 1% קריאת תאריך משעון 205 198 שבב קוצב הזמ 285 שעון פנימי 203 ח חוצץ מסך 123 חלונות 161 אינדקס 419 ט טווח הכרה ומשך חיים של משתנה 33 60780 806 6קסו מוד 09 מסך 105 (ראה מסך טקסטו. *חידה 12, 65 ו ו מימוש 66 חסובותטתשופהה, ממטק 66 1366ה ם כונך 97 006 מעבר לאחר 7 מצואה זפ כונן תקליטורים. 242 60-80%. זטטאע 106 251 0 10 1 7ב אתחול והפעלה. 247 שוחה עם 168 הסבר מונח 243 השהיית השמעה 126% השמעה 362 חידוש השמעה 265 פתיחה וסגיר 258 שחרור ונעילה ‏ 259 מידע על התקליטור 257 מידע על מיקום ראש 257 מידע על מצב כונך 256 מידע על שיר 253 מימוש יחידה 271 ממשק יחידה 265 ספרים צבעוניים 1%, 65 עוצמת קול 55 260 ערך 150 245 פונקציות (ראה פונקציה) 6 שפת 6- נושאים מתקדמים. . (שמור) 251 9 תקנים 6% 2 ו 1 כותר 183 6066 ל לוח צבעים. 183,150 0906 זסו0. לולאה 6 0 6 6 מ מבנה 28 שטעצ מצביע 3 מדפסת 79 מוד טקסט 109 08 4 מודם 339, 350 חס פקודות 41 250 60806 זא שידור וקליטת תווים 3353 מחסנית בשיטת 1150 164 מחרוות 37 בקרה 2% מצביע 36 מטה-מעלה 32 פש-פוו מילה 54 616 כפולה 54 0086 מימוש 66 חסוומוחטוחשוטוה, ממשק 66 301866 מסגרת 215 מ (ראה אנימציה) מסך וירטואלי. 130 236 מסך טקסט 109 גלולה 116 0100 העתקה והזזה של מלבן טקסט 111 חוצוף 123 חלונות 110 מחיקת תוכן 10 אינדקס 4215 סמן 112 עבבר 127 (ראח עכבה) צבעים 109 מסכה 36 56 מעבד אותות דיגיטליים 288, 191 90665601 59081 08088 - ספם. מעלה-מטה 31 0-0000ט מערך 26 חד-מימדי 26 מצבוע 36 רב-מימדי 26 מצביע 35 שוחו למבנים ואיגודים. 37 למערך ומחרוות 36 רחוק 123 א מקלדת 79 מקש דביק 1 מקשי חיצים 4 קוד 8501 79 קוד ויהוי 8 6066 ע%6 קוד סריקה 5% 6066 6/9690 קודי סריקה מורחבים 8% 60065 600 /%6 000660 מראה תוכנית 75 משתנה ‏ 80406 גלובלי 35 הפכפך 36, 297 08006 חיצונר 66 חושא טווח הכרה ומשך חוים. 33 6.0000 806 56006 לוקלי 36 סטטי 4 06 ערך בונארי 58 רגייסטר 34 9 שם 71 . נתוב 95 תוא קליטה 99 2 שפת 6- נושאים מתקדמים. . ס סובות 43, 54 6 בדיקה 369 ץג בדיקת ווגיות. 50 606% עמ בדיקת ווגיות אי זוגית. 51 666% עמק 04 בדיקת אוגיות זוגית. 51 66%ף) /806פ חטאט. הווה 37 התחלה 360 חפ מסגרת 360 1806 עצירה 340 ספ פעולות לוגיו. 445 רוולוציית סיביות 293 8650/00 86. ספורה, שיטות 43 אוקטלו 43 הקסדצימלי 43 עשרונר 33 ספריה 07/93 יצירת חדשה 8 מחיקה 99 מעבר זפ ע עיקרון הסתרת מידע 66 1606 6078/₪ ספוטה עיקרון מודולוריות 65 6086 00806 עכבר 127 בדיקת לחצנים 129 בדיקת סטטוס 129 המרת קואורדינטות 130 יהוי 27 מימוש יחידה 135 ממשק יחידה 133 מציאת מיקום לחיצה/שחרור אחרון 30 מרחב תנועה 131 פונקציות: (ראח פונקציה) עכבר גרפי מונפש 236 הנפטה 238 יצירת מצביע 28 ממשק 230 פונקציות. (ראח פונקציה). ערך בינארי של משתנה 8 אינדקס 423 הדפסה 55 פּ פונקציה 39 א = 297 סב 1 0 0 1 2 ב בי - 1 ג יו 0 0 0 0 בי ו 1 1% 1 1 0 ו 69 7 7 0 0 לפ 9% ו סב ו 8 08 6 68 0 ו 4 שפת 6- נושאים מתקדמים. . 6 166190 6 08197 ו ו ב 67 1 167 0 0 1 0 31 029 06 6 ו 09 0 ו 1 הייו ו ו היוור 1 167 0 ב ב - 0 0 0 ב 6 סלב ו 6 לב טוט 165 סלב 10 ו 1 16159 שאמו 18 155,185 164 1 5 ב 0 0 3 0 ה 71 ו ב 0 0 0 01 1 20% זפ 10 1 208199 9 60 0ב 0 1 0 שגופ 201 09 39291 1 גפ 1 וק גל 71ב 0 09 7 יר 0900 0 0 וד 26 0 0 0 6 שפת 6- נושאים מתקדמים. . 0 1 1 ו 293 07ב ו מבנה 29 מטה-מעלה 32 0-0 מעלה-מטה 31 0-00 ספריה 110-117 קריאה ל- 38 תיעוד 7% פסיקה 55 ופטזושאהו 03 הפעלה 58 וקטור 56 חדשה 59 קיימת 59 תוכנית שלרות: 55 8040006 50/68 ופטחוטותן - 158 פעולות לוניות בסיביות 45. פעולות מתמטיות. חילוק מקוצר 47, 48 כפל 37 כפל מקוצר 8 זב ב ב ב וק לב פוט 7 בסיסית 3 הכרוות והצחרות. 22 הצבות 3 מבנה 21 קלט/פלט ב פרווקט 65 יצירה 65 מרכיבום 47 אינדקס 427 6 0 על פי כתובת 29 35 804066 עט. עלפי ערך 25 35 06 צ צבעים (ראח גרפיקת) ה קבוע 040% 0 3 קוב 38, 93 100 16 א בינארי 30 מבנים (רשומות) 0 מערכים 40 נתונים פשוטים 40. גישה 31 הגדרה, פתיחה וסגירה 38 העתקה 104 טקסט 35 כתובת נתונים בקובץ טקסט 35 מאפיינום: 9% 00005 מחיקה 106 מצואה 100 תווזה ב- 1 תיעוד 7% קובץ טאפ 183 הצגת תמונה 186 מבנה 183 מימוש יחידה 290 ממשק יחידה 188 מפת סיביות 183 פונקציות ראה פונקציה) ציור תמונה 186 8 שפת 6- נושאים מתקדמים. . קריאה 18% לוח צבעים. 185 מכותר 185 תמונה 18 שקיפות 187 קובף וו 9,288 הקלטה 329 מיקסר 330 זשאוה עצורה 336 פונקציות (ראח פונקציה) השמעה 285 0 0 0 המרה לפורמט אחר 293 השמעה מחוורית 296 השמעת מחזור בודד 30 יחידת ספריה 307 ברטיס קול 288 מבנה הקוב 19% מימוש יחידה 311 מעבד אותות דיגיטליים. 288, 294, 336 ם. סביבת עבודה 288 זחטוחחס את ערו בקשת פסיקה 288 180 ערוץ גישה ישירה לויכרוך 288 אואם. פונקציות (ראח פונקציה) קצב דגימה 293 886 006 רוולוציית סיביות 293 86000000 6 קוד 8501 79 קוד סריקה 5% 6066 60 6 קול (ראח כונן תקליטורים; ראה קוב אא. קלט/פלט, פקודות 23 1 רב ברירה 25 תא רשימה מקושרת דו-כיוונות. 216 16 00600008 0. אינדקס 429 ש שם משתנה 71 שעון [ראה ומןו. שקופות 215 3/6 (ראח אנימציה) ת תאריך (ראה זמף. תוכנית, מראה 75 תיעוד 73 מובנה 73 פונקציות 7% קוב 7% קוד 73 תיקיה 93 0106 (רואה ספריה) תמונה (ראה קוב ל8%; ראה אנימציה) תנאים 25 תקליטור (ראח כונן תקליטורים) תקשורת אסינכרונית 340 תקשורת טורית 339 אתחול כרטיס תקשורת 341 בדיקת סטטוס תקשורת 34 חיונן טלפון 357 וציאת תקשורת 339 60. כבל טורי 339, 345 00% ₪1שפ מודם (ראה מודם) מצב אדיש 260 ₪6 סיבית בדיקה 380 98 חמ סיבית התחלה. 360 94 טופ סיבית עצירה 360 96 סו צאט 345 68 קליטת תו 344 שידור תו 344 תקורה 350 0/8606 שפת 6- נושאים מתקדמים. .