תכנון ותכנות יישומי מחשבים

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

OCR (הסבר)
תנכנון ותכנות יישוכוי כוחשבים יצשחק עמיהוד .5א - ,.. ה‎ /-/-/-.-/ְ/-/ְ-=ְ ְ /--- | תכנון ותכנות יישומי מחשבים 5חסו631)|ק זסוטקו 60 01 שַהוהוהוהזסזק שההּ ה054ס 5 כל הזכויות שמורות למחבר 5 4660צז₪650 ₪015 || אין להעתיק או להשתמש בחומר הכלול בספר בלי? רשלון מהמחבר יטות תיפח פריהת אוו*- הודפס בישראל [86ז5| הו ס6!חוזק מהדורה 1 - דצמבר 1975 הדפסה 2 - מרס ‏ 1976 הדפסה 3 - אוגוסט 1978 הדפסה 4 - מרץ - 1985 הוצאת יהודיעמיי ת. ד. 560 רנות-גו -- ו ו = קוו .‏ 4% ד -‏ ראוד ד רו רו 933 03! > מוקדש להורי פנחס ומלכה זכרונם לברכה המר | א יי', 4 א 0 / הק3את גידול משק המחשבים בישראל מעיד על הצורך הגובר באמצעים מתוחכמים לעיבוד נתונים. אנו עדיט להרחבת היקף השימוש במחשבים ולהעמקתו: מעיבודים שעיקרם מיון של נתונים ועריכתם להדפסה, לעדכון קבצים ומאגרי נתונים, לשילוב של מערכי יישו- מים למערכות כוללניות אינטגרטיביות והפעלת עיבוד בתקשורת. התקדמות זו הביאה לגידול בדרישה לבעלי מקצוע מתאימים: מתכנתים, מתכננים ומנתח? שיטות. תכנון ותכנות יישומי מחשבים מלועד ללימוד השלבים הראשונים בעיבוד נתונים אוטומטי: תכנון ותכנות. הוא מציג את עקרונות הנושא וממשיך בתיאור ולימוד מפורט של שפות התכנות המבוקשות כיום בשוק המחשבים הישראלי, המלנהלי והמדעל כאחד. החומר המוצג מכוון להכשיר את הקורא לתכנת עבודות מקובלות בעיבוד נתונים מינהלי ומדעי, כשנקודת המוצא היא שלא נדרשת ידיעה מוקדמת בנושא זה. הספר מיועד להיות לעזר לתלמידים בבתי הספר ומאפשר גם לימוד עצמיל. הספר ותוכנו בגלל השוני הרב בדרישות הלומדים ובשיטות ההוראה בבתי הספר, ערוךן הספר בצורה מודולרית אשר תאפשר גמלשות בלימוד החלקים השונים: חלק ראשון - מבוא לעיבוד נתונים, חלק שני | - אלגוריתמים ותרשימי? עיבוד, חלק שלישי - תכנות פורטרן אואזתסץ חלק רביעי - תכנות קובול 01 חלק חמישי - תכנות 5.ל. 1 ךוק בחלק הראשון מוצגים בקצרה עקרונות מערכת עיבוד נתונים, תאור המחשב ויחידות וו | ה שע יי הוור יו וו ו ודי זו וו הדרד*דחחה. 7-7 ד קֶלט/פלט, תהליכי תכנון ותכנות, שפות תכנות ומערכת הפעלה. בחלק השני מוסבר נושא האלגוריתם ומתוארים שלבי ההכנה של תרשימ? זרימה ותרטימים מלבניים. תרשימים אלו הס תאור התהליך הלוגי של התכנון וסיכומו ומהוים חלק מתעוד התוכנית. ההצגה בחלק זה מבוססת בעיקר על פתרון בעיות בתחומי עיבוד טונים. החלקים הבאים של הספר מוקדשים להוראת תכנות בשלוש השפות העיקריות הנפוצות במערכות מחשבים בינוניים וגדולים: פורטרן (אג0018?) - ליישומים מדעיים, קובול (60801) - לייטומים מינהליים ו-5.ל.1 (21/1) - ליישומים מינהליים ומדעיים כאחד. החומר הנלמד מלווה במספר רב של דוגמאות ובפתרונות של בעיות להסבר ולהמחשה. תכנות בניב כלשהו של שפה מכוון להפיק תוכנית אשר תופעל במחשב מסויים, בפיקוח מערכת הפעלה מוגדרת ותשתמש בשיטות ארגון הקבצים האפשריות במכלול זה. מכיון סכוונת הספר ללמד את יסודות התכנות בניבים שונים של השפות, השתדלתי לטמור על כלליות ההצגה של הנושאים השונים כדי שיתאימו לתחום רחב של מחשבים ומערכות הפעלה. מסיבה זו גם הצגתי את שיטת ארגון הקבצים הסיקוונציאלית (181:ה560₪6) בלבד כדי להמנע מהרחבת היריעה לתחומי ציוד, מערכות הפעלה ותוכנה טל היצרנים השונים. כדי להפעיל את התוכנית במחשב מסויים צריך הלומד לקבל מידע על נוהלי ההפעלה הנהוגים במתקן שבכו הוא עומד להריץ את עבודתו ועל כרטיסי הבקרה (681605 101:ח60) הנדרשים. מכיון שמחשבי חכרת י.ב.מ. הם הנפוצים ביותר, הוזכרו ציוד ושפות תכנות טל חברה זו, וזאת מבלי לפגוע בכלליות ואפשרות ההתאמה גם למערכות מחשבים של יצרנים אחרים. כל חלק בספר יכול להחשב כיחידת לימוד עצמאית, אולם מומלץ להתחיל בשני החלקים הראשונים ואח"כ לעבור, לפי הצורך, ללימוד שפת התכנות הרצויה. במקרים מסויימים שבהם יתקשה הלומד בפרק כלשהוא בשפת תכנות אחת, מוצע לע:י:ן בהסברים הכלליים לאותו נושא בחלק הדן בשפת תכנות אחרת. כחומר רקע וכמבוא בנושא עיבוד הנתונים האוטומט? מומלץ הספר "המחשב האלק- טרוני ועיבוד הנתונים" מאת המחבר, אשר מתאר בהרחבה את עקרונות המערכות האו- טומטיות לעיבוד נתונים, את המחשב האלקטרוני ומרכיביו, עקרונות התכנות, שפות תכנות ומערכות הפעלה, התארגנות להתקנה של מערכות לישומי מחשב, ניתוח ותכנון מערכות, הפעלת מערכות מחשבים, ונותן דוגמאות ליישומים בשטח? מינהל ומדע. באשר למינוח המקצועי בספר, השתדלת? להשתמש בשפה העברית ככל שניתן. במקרים בהם המונח העברי אינו נפוץ או שאינו מוסכם הצגתי גם את המונח באנגלית, ובמקרים מסויימים השתמשתי במונח האנגלי בלבד. בכתיבת הספר סייעו בידי? חבר? לעבודה בחברת י.ב.מ. בישראל, והרינ?ל מודה להם על כך: לחיאל האן - אלגוריתמים ותרשימ? עיבוד; דן פלדמן - תכנות אהתדתס0ת; דני גלבוע - תכנות 60800 ; אלי שלו - תכנות ז/מק. תודתי נתונה לחברת ?ל.ב.מ. על הרשות להעזר בפרסומלה ולהציג את התמונות בחלק ראשון של הספר. | לצחק עמלהוד רמת-גן, חשון תשל"ו אוקטובר 1975 תוכן תפ['[יס עמ' חלק ראשון: מבוא לעיבוד נתונים 1 פרק 1: מערכת אוטומטית לעיבוד נתונים 5 מהו עיבוד נתונים; השלבים בעיבוד נתונים; מהי מערכת אוטו- מטית לעיבוד נתונים; מהו מחשב אלקטרונ?; *ליצוג נתונים במחשב; שלטות ספירה במחשבים; יצוג תוים, מלים והוראות; שיטות לרישום נתונים; הכרטיס המנוקב; סרט מגנטי?; אחסון לגישה ישילרה; קריאה מגנטית וקריאה אופטית; המדפסת. פרק 2: תהליכי תכנון ותכנות 24 שלבים בהפעלת מערכת עיבוד נתונלם; תכנות והידור (ם118610ק00₪); תהליך הכנת תוכניות; שפות תכנות; מערכת הפעלה. חלק שני: אלגוריתמילם ותרשלמ? עיבוד | 19> פרק 1: תרשימים ואלגוריתמים 41 תאור אלגוריתמים; ארבע בעיות. פרק 2: תרשים זרימה 46 בעיה א': דווח; בעיה ב': עדכון קובץ פרל?טים במחסן; בעיה ג': ניהול מלאי, חשבונות ספקים וחשבונות לקוחות. פרק 3: תרשים מלבנל 58 בעיה א': הדפסת רשומות מקובץ; תרשימים לביצוע פעולות חישוב פשוטות; בעיה ב': חיבור שנ? משפטים והתנייה; בעיה ג': סיכום סדרת מספרים בלולאה; בעיה ד': תרשים עם פעולות קלט/פלט; בעיה ה': תרשים מלבנ? עם תהליכי חישוב רבים; בעיה ו': זהוי קבוצה. - חלק שלישל: פרק 1: פרק 2: פרק 3: פרק 4: פרק 5: תכנות פורטרן- א4ג0878ץ 9 מרכיבי שפת פורטרן 11| [. נָיבים ואלפבית של השפה; מספרים קבועים ומשתנים; ביטויים אריתמטיים; משפטי השמה ומושג השויון; משפטי בקרה; משפטל התנייה (?1); משפטי התנייה אריתמטיים; משפטי התנייה לוגיים; טופס הקידוד. פעולות קלט ופלט והגדרת נתונים 9> הוראות לקריאה וכתיבה ומשפטי איפיון (208441); איפיון קידום שורות במדפסת; איפיון 1 למספרים שלימים; איפיון ץ למספרים ממשיים; איפיון א לציון מרווחים; איפיונים אלפנומריים; כפולות של איפיוני שדה; תרגילים; קידום רשומות; הוראות עם הכרזת יחידת קלט/פלט; הכרזת נתונים (ג247). מערכים ולולאות 13 מערכים - וקטורים ומטריצות; ההוראה א510א21/8; לולאות; תכנות בעיה; הוראה ביצוע לולאות - 20; הוראת ההמשך 5טא11א60; קידום האינדקס בהוראת 20; קריאה וכתיבה של מערכים; תרגיל; לולאות מוכלות. תוכניות משנה (8₪5זקסצקסט5) 10 מבנה תוכנית; פונקציה בנוייה או פונקצית ספריה; פונקציות הוראה; שגרה (6ם%1טסזפט5). תרגיל סיכום 1399 עמ' חלק רביעי: תכנות קובול - 00802 147 פרק 1: שפת התכנות קובול 19 מאפייני השפה; מרכיבי השפה: מערכת התוים, אותיות עבריות, מלים שמורות, טופס הקידוד, חוקי? הפרדה, מבנה התוכנית; תוכנית הקורס. פרק 2: א1510ט1 א1684710עזדאמסך 188 פרק 5: פרק 4: פרק 5: תאור ומבנה; שם התוכנית - פ1 20024%1; שאר המשפטים. אסד5דטדס זדא<אספדטאם 100 כללי. אס0ז5דטנס גאפ 11 תאור ומבנה; תאור שדות א580110 6-5708408א1א₪08: רמת השדה, שם השדה, מבנה השדה; הגדרת מבנה השדה 107088ק: הגדרה בסיסית, הגדרה של שדות מספריים; עריכת שדות מספריים להדפסה: הגדרת שדה ערלכה; הגדרת שדה עם ערך התחלתי 74108: הגדרה בסיסית, שם עם תוכן של תו אחיד; הגדרה מחדש לשטח זכרון פ5מא1עמעעת; תרגיל מסכם להגדרת נתונים. א1510טדם מתטסטססתק 12 תאור ומבנה; כללי כתיבה; תחילת וסיום התוכנית; הוראות קלט ופלט בסיסיות; הוראות קלט - 400827; הוראות פלט - צ2ג0ע215; תרגיל; הוראת העברת נתונים - מט0א; כללי העברת נתונים; העברה מרובה; הוראות לביצוע פעולות חשבוניות; חיבור - כ422; היסור - 5087401; כפל - צנקדדשא; חילוק - מספצט1כ; פעולות חשבוניות מרובות והוראת 002078; תרגיל מסכם לפעולות חשבוניות; ליטרלים (1156818) בהוראות; הוראות הסתעפות; הסתעפות לכתובות קבועות 10 60; שנול 18 פרק 6: פרק 1: פרק 2: עמ' | כתובת בהוראת הסתעפות 41788; תרגיל להוראות הסתעפות; משפטי התנייה: מבנה משפט ההתנייה 17; התנייות יחסיות 203 מותרות; תנאיל והיפוכו באותו משפט 8פ5מע-ע12; התניות עם אופרטורים לוגיים; תרגיל מסכם לפעולות חשבוניות ומשפטל התנייה; שגרות - 68ם1טסמסט8; השגרה בתוכנית; 26 ההוראה 21.788; ההוראה 20708% הבסיסית לקטע אחד; ההוראה 208208% עם תחום קטעים, ביצוע חוזר לפ? מונה, ביצוע בהתנייה; ביצוע בהתנייה של אינדקס; טבלאות: תאור ומבנה; הגדרת איברי הטבלה - 000085; תרגיל מסכם לשגרות וטבלאות. קלט ופלט בקבצים 223 הגדרת קבצים; הכרזת קובץ ויחידת קלט/פלט 500807; הגדרת תכונות הקובץ - כ?; הגדרת רשומת קובץ; תרגיל הגדרת קבצים; הוראות לעיבוד קבצים; פתיחת קבצים - א028; הוראת קריאה - כגמת; קריאת רשומה לשטח אחסנה אחר (70א1); הוראת כתיבה - 8ך81ח; הוראת כתיבה משטח אחסנה אחר (20%); הוראת כתיבה למדפסת; סגירת קבצים - 01058; תרגיל מסכם לקלט/פלט ; חלק חמישי: שפת התכנות פ5פ.ל. 1 - ד/מַק יסודות השפה - 20/1 21 הקדמה; מרכיבי השפה: התכנות, קבוצת התוים של השפה, מלים מפרידים מרווחים והערות, מזהים, פסוקי התוכנית, קידומות לפסוקים, מבנה תוכנית, דוגמת תוכנית 1/מק. הגדרת נתונים 28 סוגי נתונים: נתונים במחרוזות, נתונים מספריים, נתונל תויות; קבועים ומשתנים; פסוק ההכרזה - 0158קקע - לנתונים: תכונות משותפות, ערך התחלתי?; הגדרת תכונות מחרוזות; תכו- נות של נתונים מספריים; הגדרת נתונים מספריים עם נקודה קבועה: מבנה הנתונים, מבנה פסוק ההכרזה, דוגמאות, תכונות של קבועים מספריים, הכרזת ערך התחלתל. פרק 3: פרק 4: פרק 5: פרק 6: מרכיבי תכנות בסיסיים 208 ביטויים חשבוניים: הערכה של ביטויים, השימוש בסוגריים; פסוקי השמה; קלט/פלט בסיסי; קלט/פלט בשיטת 41כ2: קלט, פלט; קלט/פלט בשיטת 11571: קלט, פלט; תרגיל מסכם: הבעיה, תאור התוכנית, הסבר. הוראות פיקוח 209 מבוא; הוראות הסתעפות בלתי מותנית: הסתעפות לכתובת קבועה, הסתעפות לפ? משתנה תוית; הוראות התנייה: ביטויי השואה, ביטויים לוגיים, פעולות במחרוזות סכיות, דוגמה; פסוק ההתנייה - 17: פסוק? התנייה עם ביטויי השואה, הוראות 1 מוכלות, פסוקי התנייה עם ביטויים לוגיים; תרגילים; פסוק 0 לבקרת לולאות: ביצוע ללא חזרה, התנייה לפי ביטול השואה, התנייה עם משתנה פ?קוח (אלנדקס), כללים לתכנות הוראת 0ע2, הוראות 20 משולבות, לולאות מוכלות; תרגיל. הוראות נוספות לקלט פלט ולעריכה 201 קלט/פלט בשיטת 7זַקע: רשימת נתונים ורשימת מבנה; רשימת מבנה (118%6 0:₪85ס+): תאור מחרוזות תוים, תאור מחרוזות סביות, תאור תמונת תוי-עריכה, מרווחים בהגדרת מבנה, הגדרות מקובצות; תכנית עריכה - 1010%88ע2, הגדרות אפשריות בתבנית העריכה, דוגמאות עריכה; השלמות לקלט/פלט בסיסי: צע60, עךא5%, מס6גע, מאךת, א0000; תרגיל. ארגון נתונים במערכים 16 תאור המערך והגדרתו, הגדרת המערך; התיחסות לא?ברי מערך; הוראות קלט/פלט בסיסיות למערכים: הוראות מסוג 4 286₪8₪8, הוראות מסוג 41566866 1185, הוראות מסוג 4 סמם81ע; תרגיל; ביטויים המכילים מערכים; פעולה בין מערך למערך; טיפול בחלקי מערך; ערך התחלתי לאיברל מעררךר; תרגילים. פרק 7: פרק 9: 4 פרק 8: ביבליוגרפיה = =. עמ' ארגון נתונים במבנים 4 תאור המבנה והגדרתו, הגדרת משתנה מבנה, תרגיל; מערך של מבנים; ביטויים עם מבנים: מבנה וסקלר, מבנה ומבנה; תכונות נוספות בהגדרות נתונים: התכונה פעאצץסכע, התכונה עאזע, התכונה 8זַד7זא1. קלט ופלט ברשומות 3 עקרונות העיבוד ברשומות; מאגרי קלט ופלט; הגדרת תכונות קובץ; ברירות מחדל בהגדרת קובץ; דוגמאות להגדרת קבצים; טיפול בקובץ מוגדר; סיום עיבוד קובץ קלט; הוראות קלט ופלט לקובץ רשומות; תרגיל; עיבוד הרשומה בתוך מאגר. מבנה תוכנית 3 106% 80052088ע2; שגרות; פונקציות 106% א01ט5 תקפות הגדרות מזהים; פונקציות בנויות; התערבויות במהלך ביצוע תוכנית. 21 - .--")3" חלק ראשון: מכובוא לעיבוד נתונים פרק ו: אערכת 6!6!אשית ]איב!3 [תווים. מהו עיבוד נתונים עיבוד נתונים הינומושג נרחב ביותר המשמש לתאור סדרה של פעולות מתוכננות על נתונים בכדי להשיג תוצאה נדרשת. הגדרה קצרה יותר תהיה: הפיכת נתונים למלדע. הנתונים (28%8) הם בטוי לעובדות מסוימות שעשויות להלות בעלות משמעות שמושית למקבל אותן. צרופן של עובדות אלו בצורות שונות וקביעת השייכות ביניהן לבין עובדות קודמות שנאספו, מהווה את פעולת עיבוד-הנתונלם (קת28%8-21066551) הנותנות את התו- צאה - המידע (תסג+גחצס+ת1). נובע מכך שהמידע הוא הידיעה המשתמעת מתוך הנתונים. מכיון שהמטרה הסופית היא אסוף ידיעות לשם קבלת החלטות בנושאים שונים, הר? שהנתונים חליבים להיות רלוונטיים לאותם נושאים, מדויקים ומוגשים במהירות בזמן הנדרש. יש לציין שחומר המהוה מלדע לדרג מנהל? אחד יכול להיות נתונים לדרג אחר. כדוגמא לכך נקח את התנועות הכספיות בחשבונו של לקוח בבנק המשמשות כנתונים לידיעת יתרת החשבון. זהו המידע עבור הלקוח; עבור מנהל הבנק מהוות כל היתרות נתונים לידיעת מאזן הבנק. השלבים בעיבוד נתונים תהליך עיבוד נתונים מורכב משלשה שלבים עיקריים: א. הזרמת נתונים למערכת העיבוד וקליטתם; ב. עיבוד נתונים; .‏ הפקת הפלט הדרוש (מל?דע). ו 5 == מסמכו דווחים ומסמכים מודפסים נתונים לעיבוד נתונים שמורים נוסף מעיבוד קודם הפקה (פלט) עיבוד הזנה (קלט) צ : הזרמת נתונים למערכות העיבוד וקליטתס הנתונים המוזנים למערכת נאספים ממסמכי מקור שונים, כגון: - טופס הוצאה ממחסן, טופס רישום שעות עבודה או טופס בו רושם הרופא את פרט? המחלה של החולה. הזנת הנתונים למערכת מחייבת העכברתם ממסמכי המקור לצורת קלט המובנת למערכת העיבוד. אמצעי הקלט הראשוניים הם הכרטיס המנוקב, סרט הנייר המנוקב וכן מס- מכים מודפסים או כתובים במיוחד (בשיטת הקרילאה האופטית ובשיטת הקריאה המגנטית). הנתונים המוזנים למערכת חייבים להיות מהימנים ככל שניתן להשיג. כשה- נתונים מתקבלים ממסמכי המקור עצמם, מידת מהימנותם גבוהה יותר כי כל טיפול בהעברת נתונים ממסמך למסמך בצורה ידנית הוא מקור לשגיאות. מסיבה זו פותחו המתקנים לקליטת מסמכי מקור, כמו קורא המסמכים האופטל. בנוסף למערכת הבקורת החיצונית של מסמכ? המקור לפני המרתם לכרטיסים או סרטים מנוקבים, נערכות בשלב הקלט הבדיקות הבאות: א. שלימות - האם הנתונים נתקבלו במלואם? דוגמא: בכרטיסים המשמשים לחישוב משכורות עובדים חייבים להיות כל הנתונים לחישוב. אם חסר אחד הנתונים, למשל מספר המחלקה בה עבד עובד מסוים, לא תחושב לו המשכורת. ב. סבירות - התאמת הנתונים למושגים קבועים. דוגמא: נתון מספרי אסור שיכלול אותיות. תאריך צריך להיות סביר כלומר במסגרת 12 חדשים, 31 יום בחודש. ג התאמה - התאמת נתונים שונים זה לזה מבחינה מהותית. דוגמא: גליונות תשלומ? המשכורות במחלקה במפעל כוללים את פירוט משכורות העובדים וסכום המשכורות הכללי. בעת הקליטה נבדקת ההתאמה הכספית של הסכומים החלקיים (המשכורות) לסכום הכללל. כמו בכל פעולות בדיקה אל אפשר להבטיח בשלב הקליטה בקורת מושלמת. המשך הבקורת יעשה בשלב עיבוד הנתונים. שלב זה הוא אמנם מאוחר מדי, אבל לעתים אין אפשרות לאתר סוג מסוים של שאיאות אלא בו. עריכה - השלב האחרון בקליטה הוא עריכת הנתונים ומיונם לפנ? מסירתם לעיבוד. עיבוד הנתונים עיבוד הנתונים כולל פעולות שונות שהן: א. פעולות אריתמטיות פשוטות ומסובכות; ב קבלת החלטה המבוססת על קריטריון כמותי. ‏ זהו שלכ המסקנה לאחר השואה של תוצאות חילשוכ כל שהוא אל נתון קבוע; ג. הסקת מסקנות וחזוי התפתחית עתידה על סמך מכלול נתונים מתקופה קודמת (כאן נכנס אלמנט החישוב הסטטיסטל). שלב עיבוד נתונים כולליפעולות ביקורת שונות. מגמת פעולית אלו להבטיח ככל האפשר מהימנותם של נתונים שעומדים לעבר, ולפעול בצורה כזו שחדחה את הנתון השגוי או לפחות תאפשר את תיקון השגיאה בשלב פעילות אחר. הפלט מערכת הפלט מיוערת לספק את התוצאות המתקבלות תוך כדרי? עיביד הנתונים: דו"ח, מסמך או נ?תוח סטכיסטי כל שהיא תוצאות אלו יש למסור בצורה הניתנת להבנה ולשימוש על ידי מקבליהן, ולכן נידעת חשיבות מלוחדת לקביעת הפלט הדרוש ולכוון המערכת להשגת מטרה זי אם כי נראה לכאירה ששלב העיבור הוא מרכזי בשל- בי הפעי,ות, אין להתעלם מכך שמטרת הקמת המערכת היא קבלת הפלט ולא עלבוד הנתו- נים, שהוא רק אמצעי להשגת המטרה המושג "פלט" משמש גם לכנוי התיצאות של תהליכי עיבוד המשמשים לתהליך חוזר במחשב. הפלט מתקבל על אמצעי אחסון מגנטלים או כרטיסים מנוקבים שהמחשב *כול ל"קרוא" בתהליכ? עיבוד חוזרלם. מהי מערכת אוווומטית לעיבוד נתונים מערכת אוטומטית לעיבוד נתונים משלכת בתוכה את כל הפעולית והשלבים הנרר- שים כדי לבצע את המשימה של עיביד נתונים. המערכת צריכה לענות על הבעיית של עיבוד נתונים ע"? מיכון בעזרה ידנית מינימלית, כאשר המגמה היא להגר?ל את הלחס בין עבורת מכונה לעבודה ידנילת. בריר אם כן, שישנם דרגות שונות של אטומציה במערכות לעיבוד נתונים המבוססות על סוג הצילוד העומדר במרכז המערכת ומקנה לה את התואר "אוטומטית" | קיימת מערכת של מכונות משרדיות להנה"ח ומערכת משוכללת ליותר לעיבוד נתונים בשלטת הכרטלס המנוקב. שלב אוטומציה גבוה יותר הושג ע"? הפעלת מערכת עיבוד נתונילם שבמרכזה עומר המחשב, כמעבד הנתונים היחיד במערכת. כל מעוכת לעיבוד נתונים, ללא הבדל הסוג והציור, ?כולה לבצע את כל העבו- דה המוטלת עליה בתנא?ל שיופעלו נוהלים מתאימלם המכטלחים הזרמת נתונים נכונים (קלט) בזמן הדרוש ותקבענה המטרות אותן צריכה לשרת המערכת (הפלט הדרוש). לש יהידת קכוד כרכית הפכר העות יחיזית <הטון "עיני כיכינת כתיבת במעיכת תכטורת סוט סמטי חרשים מערכת לעיבוד נתונים אוטומטי נתוניס מקווייס והוראות 7 הההההקטה חחח הההקפך]'"קחוק | ההההחקפן : וההווהההוהופמטהההמב',,. | ששש יחידת חתרשים פעולות המחשב לזכור שיש הבדלים מהותיים ביחס לכושר הבצוע וכתוצאה מכך גם לדרישות שאפשר להציב בפני כל מערכת. בהמשך נתאר את ההרכב של מערכת עיבוד נתונים המבוססת על מחשב אלקטרוני ונעמוד על חשיבות המרכיבים השונים. מהו מחשב אלקטרונ? (000%62ח60 16ת0ל160%ם) המחשב הוא התקן המסוגל לקלוט נתונים, לעבד אותם לפ? תכנית מוכתבת ול- ספק את התוצאות הדרושות. תכונות המחשב 1. כושר לקלוט ולטפל בכמויות חומר גדולות במהירות רבה ולהחזיק אותן בנפח קטן ; 2. יכולת לבצע פעולות מתוכננות מראש על אותם נתונים לפ? קריטריונים מוג- דרים מראש ע"י השימוש בתכנית המאוחסנת (%ק66ת00 תהעקסץ?7 550266); 3. אפשרות לשנות את ההוראות תוך כד? מהלך הפקודות בהתאם לקריטריונים שונים; 4. יכולת למסור אל מחוץ למערכת את התוצאה הסופית בצורה הדרושה לשימוש בנל- אדם (דוחים) או לשימוש נוסף ע"י המחשב עצמו (קבצים מגנטלים). במחשב פותחה המערכת הלוגית המאפשרת, יחד עם המערכת האריתמטית, לבצע פעולות מורכבות כמעט ללא הגבלה. היחידה הלוגית מעניקה למחשב את אחת מתכו- נותיו החשובות אם לא החשובה שבהן: היא מאפשרת לו ברירה ובחירה בין דרכי פעו- לה שונות, ומקדמת אותו לקראת דמלון למוח האנושל. אמצעי הקלט והפלט של המחשב שונים ומגוונים, החל ממכונות העובדות בקצב מכני, כגון מדפסת, קוראת ומנקכבת כרטיסים, וכלה בסרטים ודיסקים ומערכות את- רות שהקריאה והכתיבה בהם היא מגנטילת. אמצעי הקלט והפלט נמצאים במרוץ כדל להדביק את התפתחות המערכת המרכזית של המחשב, מבחינת מהירות העברת הנתונלם ומהימנותם. יצוג נתונים במחשב המחשב הינו מכונה משוכללת ומיוחדת אבל לא יותר ממכונה. המלוחד שכה הוא האפשרות להפעיל אותה בצורה כזו שנדמה יהיה לנו שלפנינו מוח אנושי, ואמנם תכופות נקרא המחשב בשם "מוח אלקטרונ?". הסבות שהניעו לכנותו בשם זה הן: כו- שר הקליטה של נתונים, יכולת השמלרה (אחסון) שלהם, כושר העבודה (אריתמט? ולוגי?) - יי פ * 4 יי יוה 1 הי רתוות יצוג של נתונים בזכרון וכושר ההבעה (הדפסה למשל). במסגרת זו נדון בשיטת ה וא מבצע את הפעולות המחשב ובמתקני האחסון החיצוניים שלו, ונראה באיזו דרך ה האריתמטיות והלוגיות המקנות לו את עוצמתו. תה אנו משתמשים בשפתנו להבעת מושגים במלים הידועות רק לנו, המשתמשים באותה שפה ולא לאחרים ששפתנו אינה ידועה להם. כך גם משפחות המחשבים "משתמשות" באו- צר סמלים וקודים מוסכמים לקשר בינן לבין האדם. לכל משפחה שלטת לצוג נתונים המיוחדת לה, ובה היא משתמשת לשמירתם במתקן אחסון חיצוני לשמוש נוסף. כדי לה- ביא את נושא עיבוד הנתונים למישור של שיתוף פעולה, קיימת אפשרות להעביר את הנתונים לשיטת יצוג כזו שתתקבל על-ידי כל משפחות המחשבים: הכרטיס המנוקב הוא דוגמה טובה לכך, ובמדה פחותה יותר הסרט המגנטל. שיטות ספירה במחשבים אחסון נתונים במחשב וחישובים המתבצעים בו יכולים להעשות בכמה שיטות ספירה: א. השיטה העשרונית המקובלת בידנו כשיטת ספירה (40א561). ב. השיטה הבינרית (צתגא8]1). בשיטה העשרונית מיצגים כל מספר ע"י סדרה של ספרות מ-0 עד 9. בטשיטה הבינרית קיימות שתי ספרות בלבד: 0 ו-1. הסיפרה הבינרית נקראת סבית (ז1ק01 קְזַ8ת811-81). כל סיפרה בינרית במספר מליצגת חזקה של 2 וערכל הפו- זיציות במספר (מימין לשמאל) אינם נמדדים בכפולות של 10, אלא בכפולות של 2, כלומר 16,8,4,2,1 וכו'. בשיטה הבינרית מספר הספרות רב ואינו נוח לשמוש ולכן מתארים את המספר הבינר?ל בשיטה אוקטלית (ספרות 0 עד 7) או שיטה הקסדצימלית (ספרות 0 ... 9, 8, ם,") שאינן אלא חזקות של 2 (8 = 27 ;: 16 = 2 מן הראוי לציין שבחיי יומיום אנו נתקלים בשיטות ספירה נוספות כגון שיטת הספירה העברית והלטינית שבה ערכים מספריים מוקנים לאותיות ה-א"ב. שיטת ספי- רה אחרת היא זו המקובלת בשעון (כפולות של 12). לדוגמה נציג את טבלת המספרים העשרוניים וערכיהם בשלטות השונות. ליצוג ספרות אוקטליות דרושות 3 ספרות בינריות, ובהתאמה - לייצוג ספרות הקסדצימליות דרושות 4 ספרות בינריות כפי שמתואר בטבלה. ספרות דצימליות מיוצגות גם הן ע"? 4 ספרות בינריות, אם כל אינן מנצלות את כל התחום (הערכים מ-10 עד 15). עשרונית בינרית אוקטלית הקסדצימלית ו בי צתהאזת 0 תאזמ אפת 0 0 0 0 1 1 1 1 2 10 2 2 5 11 3 5 4 1000 4 4 5 11 ל 5 6 110 6 6 7 1 7 7 8 100 10 8 9 11 11 כ 10 120 12 4 11 11 15 8 12 100 14 6 15 11 15 פ 14 10 16 5 15 11 17 ץק 10 20 1,100 16 4 21 111 17 12 2 1100 18 15 23 11 19 14 24 10 20 הארילתמטיקה בשיטות ספירה שונות 41. הלבו חיבור מספרים בשיטה הבינרית זהה לחיבור בשיטה העשרונית. כמובן שיש לקחת בחשבון ש-1 + 1 = 0 ועוד נשוא של 1, או: 1 + 1 + 1 = 1 ונשוא של 1 וכד'. דוגמה לחיבור מספרים בשיטות השונות: בשיטה הבינרלת בשילטה העשרונית (43) 101011 5 (55) 110111 + 5 + (98) 1100010 0568( 2. כפפל בחיבור לא רואים בבירור את יתרון השלטה, אולם לוח הכפל הבינרי פשוט לאין ערוך לעומת זה של השילטה העשרונית, וכולל 4 אפשרויות בלבד: 0 א 0 > 0, 0 א 1 > 0, 1 א 0 = 1,0 א 1 > 1. דוגמה לכפל בשיטות השונות: הק רלק הרצק ,היח "יו בטשיטה הבינרית בשיטה העשרונית (86) 1010110 6 )5( 4‏ 101 < 5 < : 120 420 : 000 10 (430) 110101110 ע"י הוספת 0 בצד ימין של מספר עשרוני אנו כופלים אותו ב-10 והוספת 0 במספר בינרי כופלת אותו ב-2. יצוג תוים, מלים והוראות במחשב יצוג מספרים בשיטות ספירה יצוג מספרים בשיטה העשרונית, המקובלת במחשבים שונים, הוא למעשה *צוג ו הקסדצימלי בו כל ספרה מלוצגת ע"י 4 ספרות בינרלות בשיטת (0661081 4 עעהת81) 10 ההבדל בין שיטה זו לשיטה הבינרית הטהורה הוא בכך שבשיטה הבינרית מבחין המח- שב בכל סבית בפני עצמה בעוד שבשיטה העשרונית הוא קולט את הקבוצה של 4 סביות כסיפרה אחת. לדוגמה: המספר 869 מיוצג בשיטה העשרונית במחשב ע"? הצירוף הבא: . 1 / 0110 / 1000 בשיטה הבינרילת יראה המספר כך: 1100111011 מהדוגמה הזו אנו רואלם שהמספר הבינרי? דורש פחות ספרות בינריות ככל שהוא גדול לותר. זהו י?תרון נוסף לי?תרוו החשוב של פשטות המעגלים במחשב לבצוע הפעולות 3 האריתמטיות. את המספר הבינרי שתארנו קודם, אפשר לרשום ביצוג הקסדצימלי בצורה הבאה: : הקסדצימלי 338 - 1011 / 0011 / 11 (חלוקה לארבע סביות) ן - אותיות וסימנים במחשב ברוב המחשבים מלוצגים התוים בקבוצות של 8 סביות ועל-ידי כך אפשר לתאר 6 צרופים שונים. : בדומה לכרטיסים מנוקבים, בהם יש נקוב ספרות ונקוב עילי (שורות 0,א,/) כןך גם כאן מחולקות סביות התו לשני אזורים: 4 סביות לתאור ערך מספרי? ו-4 סביות לתאור קבוצת השיוך של התוים. ₪ - !| - סנפרה תיוצג ע"* ערכה ההקסדצימלי וארבע סביות השיוך 1111 התוים ‏ עד 1 יתוארו ע"י ערך מספרי 1 עד 9 וסביות השיוך 1100; התוים 1 עד 8 יתוארו ע"י ערך מספרי 1 עד 9 וסביות השיוך 1101; התוים 5 עד 2 יתוארו ע"? ערך מספרי 2 עד 9 וסביות השיוך 1110; שאר האפשרויות שלא באו לידי בטוי בטבלה זו מתארים תוים שונים כמו * ; : | - 6% וכו'. לאפשרויות יצוג רבות אין תאור גרפי מוגדר. כדי לחסוך באחסון לתאור הספרות המסתפקות ב-4 סביות בלבד, הנהיגו במחש- בים הפועלים בשיטה העשרונית דרכים לחסכון ע"י אחסון שתי ספרות בתו אחד. שיטת יצוג התוים שתוארה מתיחסת לאחסון הנתונים בזכרון הפנימ? של המחשב ובאמ- צעי האחסון החיצוני?: סרטים, דיסקים ומתקנים דומלם אחרים. המלה של המחשב הנתונים השמורים בזכרון המחשב נמצאים בקבוצות של סביות (81715), הנק- ראות "מלת מחשב" (סת0סא תפדטשק)60%). | קיימים מחשבים בהם הקבוצה או יחידת אל?נ- פורמציה זו קבועה וקיימים אחרים בהם קיימת גמישות מסויימת. מלת המחשב הקט- נה ביותר המקובלת היא זו שמספר הסביות בה יכולה ליצג תו אחד לפחות. במחשבים אחרים מלת המחשב גדולה הרבה ?לותר ויכולה להכיל יותר תוים. תו אלפנומרי אחד מלה בת תו אחד 8 7 6 5 4 3 2 1 8 סביות מלה בינרית מלה בת 32 2 31 30 222222229 102003040 סביות הפניה אל הנתונים הנמצאים בזכרון נעשית על-ידי שמוש בשיטת הכתובות. לכל קבוצת סביות הקטנה ביותר שניתן לפנות אליה במחשב יש כתובת. הכתובת הינה המספר הסילדורי של הקבוצה בזכרון המחשב: הראשונה הלא 1, השנלה - 2, וכן הלאה. ‏ גודל הזכרון הפנימי של המחשב מוגדר ע"י הכתובת של ה"מלה" האח- רונה בו. את זכרון המחשב והנתונים המאוחסנים בו נ?לתן לדמות לארון תיבות המכתבים אשר בבית הדואר. לכל תיבה יש כתובת ומפתח מלוחד, רק לבעל המפתח לש גישה אל התיבה, לשם מילויה או לשם הרקת תוכנה. ההוראה של המחשב המחשב מופעל ע"י סדרת הוראות הקרויה תכנית. ההוראות הנן מרכיבים ראשו- ניים של פעולה שאפשר לסדרן בצירופים ובסדר רצוי על מנת להפעיל את המחשב לבצוע העיבוד. הן חייבות להיות חד-משמעיות ובעלות ערכים כמותיים ולא איכותלים. שיטות לרישום נתונים זכרון המחשב מוגבל בתכולתו לעומת כמות הנתונים המיועדת לעיבוד, ועל כן הם נמצאים במתקני האחסון החיצוני. כדי להביא את הנתונים אל הזכרון יש להזין אותם ולפלוט אותם שוב לאחר העיבוד. קיימים אמצעים רבים לאחסנת נתונים, מהם המיועדים להעברת נתונים חדשים אל המחשב ומהם המיועדים לקלוט נתונים שעובדו במחשב בשלב אחד ולהחזירם אליו לשלב עיבוד שנל?. המחשב יכול לקלוט נתונים מכמה צורות אחסון: כרטיס מנוקב, סרט נייר מנו- קב, סרט מגנט?, מתקני אחסון בגישה ישירה (דיסק מגנטי), טופס מודפס בדיו מג- נסית וטופס לקריאה אופטית. שיטת רישום הנתונים שונה בכל אחת מצורות האחסון האלה, אולם מתקנ? הקלט של המחשב הופכים את קוד הרישום לקוד אחיד המקובל באותו מחשב. ‏ הנתונלם המוד- פסים בדיו מגנטית ובאותיות לקריאה אופטית ניתנים לקר?אה ע"? האדם. במדה פחו- תה יותר ניתן לקרוא נקובים או פענוח על הכרטיס. בשאר צורות האחסון ובמל?וחד בסרט המגנטי ומתקנ? גישה ישירה - המחשב בלבד יכול לקרוא את הנתונים. בפרק הזה נעמוד על שיטת רישום הנתונים בכל אחת מצורות האחסון שהוזכרו. - |3-- הכרטיס המנוקב בשלב ההזנה הראשוני גדולה חשילבותו של הכרטיס המנוקב, ה"גשר" בין לשון האדם ולשון המחשב. הכרטיס המנוקב הוא אחד מאמצע? הקלט החשובים ביותר. הוא נושא הקלט הרא- שונ?ל שאותו יכול מתקן קלט של מחשב ל"קרוא" ו"להבין". הוא משמש כנושא קלט ישיר למערכת עיבוד נתונים כאשר הוא מוזן אליה, או כנושא קלט עקיף, כאשר נתו- ניו מועברים לאמצע? אחסון אחרים ומהירילם לותר (סרט מגנטי, דיסק וכד') ומהם מוזנים למחשב. הכרטיס המנוקב משמש לכמה מטרות: א. אמצעי הזנת נתונים למחשב; ב. אמצעי לאחסון נתונים; ג. אמצעי להעברת נתונים ממכונה למכונה (הסיבה: קוד הנקוב בכרטיס אחיד לכל המשתמשלם) ; ד. אמצעי להזנתן של תכניות למחשב. מקובל לקרוא לכרטילס בשם 008ם8 דזא0 (יחידת רישום) ואמנם כזה הוא. בכל כרטיס מנקבים קבוצת נתונים המהוה ?חידה לוגית אחת או לעתים שתי קבוצות, אולם נמנעים מכבנית יחידות לוגיות הגולשות מכרטילס לכרטלס. כאשר עושלם זאת מנקבים בכל הכרטיסים המהוים לחידה לוגית אחת מספר זהוי אחילד. הכרטלסים "נקראים" ביחל דת קלט - קורא כרטלסים 8אמכמת-6402. כאשר הפלט הנדרש בעבודה הוא כרטלסים מנו- קבים מבוצעת הפעולה במנקב כרטיסים - א6אעשק כ68. מבנה הכרטיס המנוקב הכרטיס המוכר הוא בן 80 טורלם, אולם נמצאלם בשמוש גם כרטלסים בעלי מספר טורלם אחר. הכרטיס המקובל מכיל עד שמונים תוים (ספרות, אותיות וסימנים מלו- חדים) המנוקבים בו בזה אחר זה, משמאל לימין לפ? קוד קבוע. מספר טורים שבהם מנוקב נתון אחד (סכום, שם, מספר קטלוג? וכד') נקרא?לם "שדה". אוסף שדות המה- וים קבוצת מלדע מוגדרת כמו, למשל, מספר קטלוגי, שם פרלט, מחיר וכמות במלאל - נקראים "לחידת רלשום לוגי?ת" או "רשומה". הכרטיס מכיל 80 טורים, כאשר בכל טור אפשר לנקב תו אחד בלבד. טור? הכר- טלס מסומנים משמאל לימין בשורה התחתונה. קוד הנקוב כולל אחד, שנים או שלושה נקובים בטור כדי לתאר תו נתון. כאשר אין נקוב בטור מסולם, מבטא אותו הטור את התו "רלק" (%ת518). כוון הנקוב משמאל ל?מין בהתאם לכוון התנועה של הכרטיס במכונת הנקוב (מימלן לשמאל). כרטיס מדריך מנקבת כרטיסים "כו 012844 וז 1506 6כ-+ .5 050 אלפ והועטט ד5סביקטאזיו הנ 1 67 80ה0123456769% 3 6 0 ו 2 - ו יטהזוהדגבא0153455739 ו וו וווווווָה ו | , 1 . | וו ווה וו 0 %-- וס ווון וו 1ננ//-"-"-""""-""-])],]] 7 5 וו הור רו 48ם > שו ו יאר ייה יליו 1 0 ררואורווווווווווושווווווועו1רוווגועו 1 רנרו וו!וונוווומווו ורי כ ג*ננננננו 7 ככבכקנכרנינ:ן1:יו,רכככנגכןנכנרנננגםנננננננו:ננכרנייגנןונו ))) התתתסססששעש]/)])ְףְְְ 0 ו ו 5055511555 5553555, וכ ודון 5335 ו ו + 1000000 )000030000 0300)])1000060]00000005]0000000) ורווקווטוווווקוווומופוקהדונווקוווווווגווווול וימווווו:וַוייוווייףי:וייוו,רוווווייו למ וו וווינןןווווווווווןיו'ווווווןוו03)וובוו:4):0ןו0:וו0 ייוקוץווווווויוווווושורוו]ו4הורוווווווווי ווונווו]ווווווווןווווונירי ה "> )205 )טש פפ99ק7-0-940497 -ה >[ 42-55 ₪7 ההי 8ב לי שדה ז טזה ו טדה ה | שדה ך שדה ג שדה ב שדה א דוגמה לכרטיס מנוקב (ראה הסבר) / 1 נקוב עילי נקוב ספוות - 15 - בכל טור בכרטיס אפשר לנקב 12 נקובים שונים. 10 נקובים מסומנים במספרים 0 עד 9. בראש הכרטלס יש מקום לשני נקובים נוספים, הנקראל?ם א,% או נקוב 11 ונקוב 12 (* ליד ה-0 ונקוב % מעליו). הטורים שנוקבו מפוענחים אוטומטית ע"י המנקבת וערכם מודפס בראש הכרטיס. הפענוח באנגלית או עברית, האותיות העבריות ניתנו בדוגמה רק לשם הסבר. שיטת הנקוב המקובלת בכרטיסים הלא שיטת 862 שבה מקסימום האפשרויות הוא 4 ומספר הנקובים בטור הוא 1, 2 או 3. במחשב? 370 של חברת י.ב.מ. הורחבה מסגרת אפשרויות הנקוב בכרטל?ס והונהגה שיטת 580016 שבה ניתן לנקב בטור אחד מס- פר נקובים, מאחד עד ששה. כל טור מלצג תו אחד או ערך בינר? של תו אחד בן 8 סביות, תאור השדות (ראה דוגמה מצורפת): שדה א: טורים 1 עד 10. בשדה זה נוקבו הספרות מ-0 עד 9, בכל טור נקוב אחד בשורה המתאימה לערך הספרה. שדה ב: טורים 11 עד 37. בשדה זה ניתנות במקביל האותיות הלטיניות לעומת האותיות העכריות. האות העברית א חורגת מן הכלל של שני נקובים והיא מקבילה לנקוב של הסל?מן 8 באנגלית (נקוב אחד בלבד). שדה ג: טורים 38 עד 50. בשרה זה נוקבו סימנים אחדים מן המקובלים כגון: + * או %. שדה ד: טורים 51 עד 56. בשדה זה נוקבה המלה 1582. כוון הנקוב משמאל לימין מתאים לכוון הכתיל- בה הלטינית. שדה ה: טורים 58 עד 62. בין השדה הקודם לשדה זה ?לשנו טור אחד רלק. כאשר תוכף הכרטלס יוזן למח- שב יכנס למקום המלועד לטור 57 הערך המיצג את התו "ריק". כאשר תוכן הכר- טיס יודפס מן המחשב במדפסת, טור 57 בשורת ההדפסה להלה ריק. בטורים 58 עד 62 מנוקבת המלה ישראל, משמאל לימין כמובן (לארשי). הפענוח בראש הכר- טיס הוא באותיות האנגליות המקבילות. כאשר יש להדפיס תוכן שדה אב' עברי? יש להפוך במחשב את סדר האותיות על ?ד? הוראה מיוחדת (56ע6עת1), או ע"י סדרת הוראות כאשר אלן הוראה מלוחדת לב- צוע ההפיכה הזו. לכן המלה לארשל בכרטיס תודפס כ-ישראל במדפסת. טשדה ו: טורים 67 עד 73. בטדה זה בן 7 טורים מנוקב מספר בן 5 ספרות. דה / קו פר טני אפסים כדי להציבו במקום הנכון בשדה. | סיפרת היחידות או הנק - לש לנקב בצד שמאל טל המס העשרונית נקבעים לפי הגבול הימני של השדה. שדה ז: טורים 76 עד 79. א שדה זה מורכב מ-4 תוים שונים: שת? אותיות, סיפרה וסימן *. קריאת נתונים מכרטיס הנע במתקן נעשלת ע"? מברשת מתכת שנמצאת מעל הכרטיס. הפולס החשמלי נוצר ממגע המברשת בגליל הנמצא מתחת לכרטלס בכל פעם שיש ₪ מועבר הלאה לעיבוד. ישנם מתקנים לקריאת כרטיסים עם מנגנונ? קרלאה פו בהם קרן אור (ולא מברשת) מזהה את הנקוב. המתקנים המשוכללים לקרלאת כרטיסים ב" מחשבים עובדים במהירויות שונות, מ-300 עד 2000 כרטיסים בדקה, בהתאם לדרישטות ה- מערכת וסוג הציוד. כדי לתת מושג על הנפח שתופסים כרטלסים נציין את מלדותיהם: גודל הכרטיס בערך 19 < 8,5 ס"מ; עובי של ס"מ אחד ?תקבל ע"? 55 כרטיסים; קופסה המכילה 2000 כרטיסים ארכה (ברוטו) כ-40 ס"מ, ותכולתה בתוים - 160,000. לשם השואה נציג את הסרט המגנטי שרחבו % אינטש וצפיפות ההקלטה עליו 1600 תוים לאינטש, כלומר, תכו- לה של 20 כרטיסים מלאים על סרט באורך של אינטש אחד. קופסה של 2000 כרטיסים נשמרת על סרט מגנטי באורך של 100 אינטש (2.5 מ' סרט). מנקבת כרטיסים כטמכונה מדפיסה נתונים היא כותבת אותם בצורה שעין אדם רגילה לקרוא. כאשר המכונה צריכה לרשום אינפורמציה אשר תנתן לקריאה ע"? מכונות אוטומטיות לעיבוד נתונים יש לנקב אותה. קיימים סוגים שונים של מכונות נקוב. המכונות הנפוצות היום הן בעלות לוח מקשים עברי או אנגלי ומקשים לסימנים מיוחדים, הזנה אוטומטית של כרטיסים ואפט- רות העתקה מכרטיס אחד לכרטיס הבא אחריו. המכונות המשוכללות יותר יכולות לפענתח את הנקוב ולהדפיסו על ראש הכרטיס. כוון הנקוב הוא ככוון כתיבת מספרים וכתיבה בלועזית. אל לכך, אינפורמציה אי'ב מופיעה בצורה הפוכה, משמאל לימין במקום מימין לשמאל, ובשעת הדפסה יש לדאוג להפיכת כוון שדה נתונים ע"י הוראות מ?וחדות למכונת ההדפסה. תפוקת נקבנית במכונת הניקוב כ-200 כרטיסים לשעה. סרט מגנטלי במערכת מחשב אלקטרוני לעיבוד נתונים משרת הסרט המגנטי בכמה משימות. אפשר לומר שהמשימה העיקרית והיחידה היא אחסון נתונים וההבדלים מתיחסים למט- רות השונות של האחסון. מהימנות רישום הנתונים וקרילאתם, גמישות הרישום וכושר העברה גבוה של נתו- נים מחד, נוחיות תפעול ומחיר נמוך לחסית מאידך, הביאו לידי כך שהם מקובלים כ- אמצע? אחסון בכל מערכות המחשבים, גם באלה המבוססות על אמצעי אחסון בגישה ישירה. משימות האחסון הן: א. אחסון נתונים קבוע: בתפקידו זה ממלא הסרט המגנט? את מקומם של הכרטסות למל- ניהן המקובלות בעבודה ידנית, במכונות להנהלת-חשבונות או במערכת מכונות לכר- טיסי נקוב. ב. העברת נתונים בין תהליכי עיבוד: למטרה זו משמש הסרט המגנטל כאמצעי הפקה ו- הזנה של נתונים. העברת הנתונים אינה חייבת להתבצע מלד והסרט משמש על כן כאמצעי אחסון של נתונים לפרק זמן קצר או ארוך בהתאם לצורך. ג. הזנה של נתונים חדשים למערכת: במחשבים בינוניים וגדולים התגברו על אלטלות פעולתם של אמצעי ההזנה האלקטרו-מכנלים (קוראל כרטיסים מנוקבים, קורא סרט נייר מנוקב, קוראי מסמכים מגנטיים ואופטיים) ע"? העברת הנתונים ממתקנלם אלו אל סרט מגנטי. העברה זו נעשית במתקן מיוחד,במחשב קטן, או בעבודה מק- בילה במחשב גדול בשלטת קת1תתה8צקסצק₪015:1/ והסרט המגנטי הנוצר מוזן לתהליכ?ל הקלט של הנתונים. כדי לחסוך את העברת הנתונים מכרט?סים ומסרט נייר אל סרט מגנטי פותחו מתקנים לכתיבת נתונים באופן ישיר על סרט מגנט? שבהם נעשית פ- עולה זהה לפעולת הנקוב. 0 מירווח 7 מילרווח גוש נתונילם 4" 0% ד. הפקה של נתונים סופיים: הסיבות שהביאו להזנה של נתונים לתהליכים באמצעוג, סרטים הם אשר הינחו בהפקתם אל סרט מגנט? וממנו, בתהליך נפרד, למדפסת. ה- פקה באמצעות מדפסת הקשורה ישלרות לתוכנלת מקובלת במחשבים קטנים ובינונלים בלבד, ולא במחשבים הפועלים ב-קת1תהה8לקסצק11גו/. הנתונים מוקלטים בסרט מגנטי בשיטה מגנטית בקוים זעירים לרוחב הסרט. לכל. תאור טכני של כונן סרט מגנטי (י.ב.מ.). כונני סרטיס מגנטייס +" צ, לכ -=2 צ ו יאג 5% שש על א ₪ יי ).דע ו ג + 0 .--ע% 1 5 יי " 4 -* - .ּ. > -- הר תשבוכ שו 8 - !9 - נקודת מיגנוט כזו קוראים "סבית". ההקלטה הזו נשמרת לזמן רב וניתנת ל"קרלאה" ע""י מתקן הסרט המגנטל פעמים רבות. בזמן ההקלטה הבאה של נתונים על אותו סרט נרשמים הנתונים החדשים על הקודמים ללא צורך ב"מחיקה" של הנתונים הקודמלם. התוים נרשמים לרוחב הסרט (ע"? צרוף של סביות) בצפיפות של 800 או 1,600 תוים לאלנטש בהתאם למבנה ולדרישות המתקן. הנתונים נרשמים כתוים אלפנומריים או חלק ממלת נתונים בינרית. לגבי מתקן הסרט אין כל הבדל בכך מכיון שהוא קולט ומזין נתונים במספר סביות קבוע, בהתאם למספר הערוצים בסרט. בסרטים המגנטיים הנפוצים קיימים 7 או 9 ערוצי רלשום של. נתונים. 6 או 8 מיועדים לרישים הסביות של תו אחד והערוץ הנוסף משמש לבקורת מתום (צד2481). בזמן רישום הנתונים בסרט משלים המתקן את מספר הסביות בכל תו למספר זוגי או אל-זוגי כפי שנדרש. בזמן הקרלאה נבדקת מהלמנות הקרלאה באופן אוטומטי ע"? בקורת מספר הסביות בשלטה דומה. רישום התוים על הסרט אינו רציף לגמרי (כפי שנעשה הדבר בסרט הנייר למשל), אלא נעשה בקבוצות כאשר ביניהן אזור רלק, לא מוקלט. הסיבה לכך נעוצה במהי?רות התנועה המקובלת של הסרט הנמצאת בתחום 75 עד 200 אלנטש לשנלה. מתקן הסרט דו- רש מרחק מסויים לתאוצה לפנל התחלת העברת הנתונים ומרחק עצירה, כאשר הוא נדרש להפסיק את העברתם. אורך המ?רוח בין גוש?ל נתונים קבוע ונע בין 0.5 אלנטש ל- אינטש אחד בהתאם למתקן. בסוף כל גוש נתונים לש בד?קת מתום לאורך המאפשרת ב- קורת נוספת על שלימות הקרלאה. סביות המתום נרשמות באופן אוטומט? בזמן כתיבת הנתונים ונבדקות אוטומטית בזמן קרלאתם. הסרטים המגנטלים מגוללים בגלילים ברוחב % אלנטש ובאורך של 2,400 רגל. קבולת סרט מגנטי עם גוש? נתונלם של 2000 תוים בצפיפות של 556 תוים לאלנטש הלא 3 מליליון תוים, בצפיפות של 800 הקכולת היא 18 מלליון תוים ובצפיפות של 1600 תוים לאינטש הקבולת מגיעה ל-31 מלליון תוים. מהירות העברת נתונים בסרטלם מגנטיים נעה בתחום שבין 15,000 תוים עד 0 תוים בשניה, ואף מגיעה ל-1,250,000 תולם בשניה. אחסון לגישה לשלרה הסרט המגנטיל מקובל על כל החכרות המליצרות מחשבים כאמצע? אחסון של נתונים. בנוסף לו פותחו מתקנים נוספים המבוססים גם הם על שיטת הרישום המגנטית, אולם שלטת פעולתם וצורת הרישום בהם שונה. המטרה העיקרלת של פתוח המתקנים האלה הינה גישה ישירה אל כל נתון הרשום' במתקן האחסון. את האפשרות של גישה אל כל נתון אפשר להדגים על-יד? התקליט בפטיפון לעומת % ?. .6 . ] .10 - מ יהאל,.,י, .2 .-.... ויו .רוט | |)ל/ 3 0 מסלולים (10 לצלינדר) מספר מטתנה של גושי נתוניס - ג - ח 8 2 -0 1" 5 5 ד ! 8 5 ' 8 5 5 ו = תּ | 9 ְ כב כ 5 : . ₪ 5 5 3 =" פ ו 2 5 "ו ם ם סכ 0 פי 4 - + 5 = = = ₪ > 5 > ם 2 8 5 5 ח | 5 - : -] % -ה"ה. = 9% ז 5 00 ₪4 א ב - 2! - סרט מגנטל ברשמקול. בתקליטים גדולים מקובל להקליט מספר רב של שירים בזה אחר זה. לכל שיר מוקצב מספר מסלולים קבוע ואנו יכולים להשמיע את השיר השלישי למשל על-ידי כוון הכפתור למספר שלוש. הזרוע של הפטיפון תנוע אל המקום המדוייק בו מתחיל השיר השלישי, כפי שדרשנו. לא כן המצב בסרט של רשמקול, עלינו להשמלע את השיר הראשון והשנל כד? להגיע אל השילר השלישי. כד? להתגבר על כך הותקן מד-סרט ואפשרות של דילוג ללא השמעת השירים אולם אלו הן ורלאציות על סרלקה רצופה של השירלם עד למקום המבוקש. דוגמה נוספת, אם כי לא זהה לגמרי, יכולה להיות בכרטסת יד בעלת חוצצים לכל קבוצת כרטלסים. כאשר מחפשים כרטיס מסוים אפשר לחשב את מקומו בכרטסת ולפ- נות ישירות אל הקבוצה בה הוא נמצא ורק אז לסרוק באופן רצוף כל כרטיס בקבוצה. איך ישילמה שיטת האחסון במתקני? האחסון של המחשב? אחסון נתונים רצילף (1665/ש26 5502826 181+זצת6גו56) שיטת האחסון הרציפה קללמת בכל מתקנ? האחסון המגנט?ים (וגם בכרטסות של כרטיסים מנוקבים וסרט? נייר מנוקבים). הנתונים נרשמלם במתקן האחסון לפי סדר הפקתם בתהליך המחשב ועל כן גם אפשרות הקריאה הינה ברציפות. לדוגמה: כרטסת תושבים מסודרת לפ? מספרי תעודת הזהוי. בכד? להגיע לנתו- נים השייכים לתושב כל שהוא יש להתקדם ולפסוח על הנתונים של כל התושבים שמספר הזהוי שלהם קטן ממספר הזהוי המבוקש. פעולה זו כרוכה בקרילאת הנתונים ממתקן האחסון של המחשב, ופעולת השואה במחשב של מספר? הזהוי המתקבלים אל מספר הזהול הנתון. כתוצאה מפעולת ההשואה נמשלך בקרלאה אם מספרי הזהוי קטנים מהמספר ה- מבוקש, נפסיק את הפעולה אם הם גדולים ממנו (הוא אלנו קלים בכרטסת) או נבצע את התהליך כאשר מספר שנקרא שוה למספר המבוקש. אפשר לראות מדוגמה זו ששלטת העיבוד הזו מחיליבת מלון הנתונים המוזנים למטרות עדכון של נתונים במתקן אח- סון רציף, לפל סדר הנתונים המאוחסנים. אחסון נתונים בגישה ישלרה (26/%1665 5602886 266655 66%ש1כ) שילטת האחסון הזו קלימת במתקנלם מסוג הדיסק המגנט? או התוף המגנטל, בהם הנתונים מסודרלם במקומות קבוע?לם והגישה אליהם נעשית באופן לשיר לפי '"כתובתם". יש גמישות רבה בשילטות הגישה הישירה אשר אלנה תלויה ביכולת המתקן בלבד אלא מבו- ססת גם על תכנלות מתאלמות במטרה להקל ולפשט את הטפול בנתונים: קלימת אפשרות לגישה ישירה ממש ע"? הצבת כל נתון במקום קבוע; בשלטה אחרת ניגשים לאזור שבו - 22 - נמצא הנתון המכוקט ואז סורקים ברציפות אזור קטן יחסית של המתקן; שיטה נוספת היא לרטוס את הנתונים ברציפות ולנהל אינדקס מראי-מקום, ואז לבצע את הפניה ּ- לנתון בטני שלבים, קודם חפוש כתבתו באינדקס ואח"כ חפוש הנתונים עצמם בגישה *- יטירה. אחסון הנתונים בגישה ישירה יכול להתבצע כאשר אפשר לתת כתובות לאזורלם טונים במתקן האחסון. בנוסף לכך צריך להיות אמצעי? המאפשר לראש הקרלאה/כתיבה להגיעצ א כל נתון, באופן יטיר ובמהירות, מבלי שיצטרך לסרוק את הקובץ לשם כך. יתרונותיה של טיטת האחסון בגישה ישירה רבים: היא מאפשרת עיבוד נתונלם בודדים מתוך אוסף נתונים רב בזמן קצר באופן יחסי לזמן שהיה נדרש לעלבודם ב- טיטת האחסון הרציף. קריאה מגנטית וקריאה אופטית הטאיפה לקלוט במחשב מסמכי מקור, בכדי לחסוך בהוצאות הסבתם לכרטיסים או סרסים מנוקבים ובכדי להגיע למהימנות גבוהה יותר, מצאה את פתרונה בהפעלתם של קרוא הסימנים האופטי והקורא המגנטל. שיטת הקריאה המגנטית מבוססת על רישום התוים על נייר בדיו מל?וחדת ובתב- נית מוגדרת טאותה יכולה המכונה לזהות ע"י גישוש. לצורך רישום הנתונים בדיו מגנטית מטתמשים במדפסות מיוחדות או במתקני הטבעה המשמשים כאן כמכונות נקוב כרסיסים מנוקבים. גודל המסמכים המשמשים לקריאה מגנטית זהה בדרך כלל לגודל כרטיס מנוקב. חטיבותם טל המסמכים לקריאה מגנטית בכך שניתן להטביעם מראש בבית דפוס ולהוסיף בעת הצורך רק נתון אחד או שנים כדי להשלים את כל הפרטלם לפנל העבר- תם למחשב לעיבוד. הטמוש בדיו מגנטית מקובל בבנקים עבור פנקסי השלקים: כל פרסי הטיק מוטבעים מראש, כולל מספר החשבון. כאשר השיק נפרע מוסיפים רק את הסכום ע"י הטבעה בבנק עצמו ושולחים אותו למסלקה לעיבוד נוסף (מלון, קלט למח- סב). טיטת הקריאה האופטית שונה משיטת הקרלאה המגנטית. הלא באה לפתור את בעית הקלט למחשב, במיוחד במסמכים שהודפסו ע"? המחשב כהודעות ללקוחות לתשלום, וחזרו אל המחשב כאשורי תשלום לאחר שהפעולה בוצעה (תשלום חשמל, אגרות וכד'). מהקני הקריאה האופטיים יכולים לקרוא רישום עיפרון והדפסת מכונה ומוגבלים לספ- רות ומספר תוים נוספים בלבד. , המדפסת המדפסת היא אמצעי הפלט החשוב ביותר מכיון שהיא מעבירה את המוצר המוגמר של תהליך העיכוד לצורה שניתנת לקרלאה, לעיון ולהערכה ע"י בני-אדם. מכחי?נה טכנית מורכבת מערכת ההדפסה המקובלת ממנגג'נון עם מסילה שכה נעות חוליות שבכל אחת מהן חרוטים שלשה תוים מתוך האותיות, הספרות והסימנים של השפה שבה מדפיסים (עברית או אנגלית). לעומת המסילה עם החוללות נמצאים מקשלם, מקש אחד לכל עמודת הדפסה אפשרית. כלומר, מספר התוים בשורת ההדפסה שוה למספך המקשים. (בדרן כלל כ-130). הנייר שעליו מדפיסים וסרט הפחם נמצאים בין המקשים למסילת החוליות ("שרשרת"). בזמן שמתבצעת ההדפסה לפי? הוראת תוכנית המחשב, מכה המקש המתאים אל עבר החוליה הנמצאת מולו באותו זמן וכך נוצרת תמונת האות הרצויה על הנייר. החוליות נושאות תוים שונים והן נעות כל הזמן במהירות במסילה, ועל כן נדרשת סינכרוניזציה בין האות הנמצאת בעמודת הדפסה מסוימת לבין מועד ההקשה של המקש באותה עמודה. ‏ כאשר כל המקשים בעמודות ההדפסה השונות השלימו את פעולתם - הסתימה הדפסת שורה והנייר מקודם לשם הדפסת השורה הבאה. נייר ההדפסה הוא רציף ומאפשר הדפסה של כ-1000 דפים ויותר ללא עצירה. קצב ההדפסה - כ-1000 עד 2000 שורות בדקה. המדפסת מבצעת פעולה אוטומטית של הדפסת שורות הנשלחות אליה מהמחשב, ולכן התוכנית צריכה להכין את מבנה השזרה ותוכנה בצורה אשר תאפשר קר?אה נוחה. כלו- מר, הנתוניס צריכים להיות ערוכים עם כותרות בסדר הגיוני, בפיסוק מתאים, רווחים בין שדות, עם סיכומים וסיכומי ביניים ועוד. מעוכת הדפסה במחשב י.ב.מ. '‏ מדפסת טורות מחירה י.ב.מ./1401 ]גוו 1 -‏ 24 - סרק 2: תהויכי תכןון ותכןות התהליכים של תכנון ופתוח מערכת תוכנה מכוונים לבניית אחד המרכיבלס העִיקריים טל מערכת עיבוד הנתונים - התוכנה (826א%+50),. תהליכים אלו כוללים מספר טלבים, המתחילים בשלב הצגת הצורך למיכון תהליכי עיבוד נתונים ומסתייס בטלב ההפעלה טל המערכת לפי דרישותיו של הצרכן המזמין אותה. שלכים בהפעלת מערכת עיבוד נתונים הטלב הראשון בתהליך הוא שלב סקר הישימות (ץ6טז5 ץ+111ל6851+) שבו מוג- דרת הבעיה טלטמה מתכוונים להפעיל מערכת עיבוד נתונים. בשלב זה נבחנת גם האפ- טרות להטיג את המטרה בשיטות מיכון במחשב וכדאיות הפעלת המ?כון. השלב הבא הוא הבחינה (817515ת8 5%6₪8ק5) שבו עורכים בדיקה מפורטת של הנושא שמתכוונים להפעיל במחשב (ניהול מלאי, תהליכי גבית תשלומים, סקר דעת קהל וכד') ומציגים פתרון. זהו תכנון מפורט של השיטה לבצוע העכודה במיכון הכולל הגדרת הקלט, הפלט, פעו- לות העיבוד והקבצים. לאחר השלמת התכנון .נעשה התכנון (קתנתמהצקסצק), שהוא למעטה מתן ההוראות למחשב לבצע את פעולות העיבוד הנדרשות. את התוכניות (פמגזקָסזק) הנכתכות מנפים משגיאות (קת1ק2קטל66) ובודקים עם נתוני נסול 665%). (6388 כאשר הפעלת התוכניות עם נתוני נסוי נותנת את התוצאות המבוקשות "מרי- צים" את התוכנית עם נתוני קלט אמיתיים. שלב זה, אם עבר בהצלחה הינו שלב הפעלת המערכת שבו עוברים הנתונים מתוכנית העיבוד הראשונה הקולטת את הנתונים ועד לאחרונה - המפיקה את הדוחות הרצויים. ייק ₪ יר 4 1 9% 2 ה 5% 0% ב 4 שש -=--2% . ל ג - " 5 1 7 7 05 ור 5 .| האת - | ב ב := רל 4 ש נתוני הבעיה . . / שלבי פתרון בעיה בעזרת מחשב הרדרדה דד בחלנה ההצעה לשלטת עיבוד הנתונים מוצגת במסמך "תיק הבחלנה" או "אפיון המער- כת". לאחר אלשורו פונים לתכנון.מפורט של מערכת עיבוד הנתונים, תכנות והפעלה. תיק הבחינה מחולק לשני חלקים עיקריים: - תיק התהליך; - תיקי המהלכים. א. תיק התהליך מתאר את הנושא בכללו ומפרט את השלבלם השונים (המהלכים) שלש לבצע כדי להשלים את כל העבודה הדרושה למלוי המשלמה. תיק התהליך משמש ל- תאום בין המהלכים השונים כתהליך ומפרט את מערך זרימת הנתונים בשלבי הקלט, העיבוד והפלט. מקובל להציג את התהליך באמצעות תרשים זרילמה (>צַת6 אס1ת). התרשים הוא אמצע? נוח לתאור הפתרון הלוג" לבעיה וממחיש את הקשרים שבין המשימות והשלבים השונים בבצוע התהליך. שילטת ההצגה ע"י תרשימים מהוה דו- קומנטציה סטנדרטית, מסודרת ונוחה להבנה ולשמוש. ב. תיקל המהלכילם הלנם מסמך תעודתי מדוייק: הם מהוים פרוט לת?ק התהליך ומלו- עדים לשמש בסיס לתכנות ומקור נתונ?ם לחיד אודות כל מהלך. תיק המהלך מפרט את כל הנחות היסוד עליהן מושתת המהלך ומספק את כל הנתונים וההסברים הדרו- שים, לעתים גם בעזרת דיאגרמות, תרשימים ונוסחאות. בחלקו השנ? הוא מפרט בעזרת תרשימילם טפסים את שלבי התכנית, צורה ומבנה של נתונ? קלט/פלט ומציין את *לחידות המחשב המשתתפות בבצוע. ההצגה בתיק המהלך נעשית בעיקר בתרשלם המלבנ? (ח28ק18ק 8106%) הנלתן כאן בצורה פונקציונלית של תאור הקשר הלוגל בין הפעולות השונות לפתרון הבעיה. תיק" בחילנה - סכום השלטה המוצעת השיטה המוצעת ע"? הבוחנים מוצאת את בטויה בתיק? הבחינה. התאור הכללל של השיטה נלתן בתאור ה"תהליך" של העיבוד. התהליך מפורט ל"מהלכ?ם" - שלבים בעיבוד הנתונים - שלש בהם פעולת קלט אחת ופעולת פלט אחת. בתאור מהלך יש לציין את הפרטים הבאל?ם: - 26 - 4 דוגמת תרשים תהליך לעדכון מלאי מחטנים והכנת חשבונות לקוחות מלאי מעודכן חופר לוווחיס + ל בפרסי הלקוחות 6 | ץ" == מעווכן 1 ₪ קבצים: א. קבצי אב בסרטים מגנטיים: מלאי, הזמנות פתוחות, לקוהות. ב. קובץ תנועה בכרטיסים מנוקבים. ג. קבצי פלט במדפסת. ד. קבצי בינים בסרטים מגנטיים.. 4 - 27 - א. מטרה - מטרת תהליך העיבוד ומקומו בתהליך עיבוד הנתונים. ב. קלט | - תאור הנתונים המתקבלים, שיטת הבדיקה וצורת עריכתם להמשך העיבוד. ג. פלט | - צורת ערלכת הפלט (דו"חים) המיועד להדפסה ולמסלרה לבני אדם, ומב- נה הפלט המלועד למהלכי עיבוד נוספים. ד. עיבוד - הפעילויות הלוגיות המתבצעות בתהליך עיבוד הנתונים במהלך זה. ה. קבצים - תכולת "כרטסות הנתונים" של המערכת. תאור שיטת העדכון. את תהליך העיבוד מקובל להציג בעזרת תרשילמ?ל זרימה. את הקבצים מתארלם לפי האלמנטים המרכיבים אותם. תרשימ? זרלמה תרשים זרימה של שלטה הינו הצגה גרפית של שיטת עיבוד ההופכת נתונים ממסמכ? מקור ונתונים בסיסיים למסמכים סופיים. התרשלמילם השונים באים לשרת מטרות אחדות: . 1. תרשילם התהליך המבוצע ע"? הבוחן מתאר את השלבים בבצוע המשימה, מפרט את עיקר נתוני הקלט והפלט ואת הקבצים המשתתפים בכל מהלך ומהלך. 2. תרשים המהלך המבוצע ע"* המתכנת מפרט את העיבוד בכל מהלך. המתכנת מסת- מך בעבודתו על תרשים מהלך כללי-פונקציונאלי, שעיקרו - הפתרון הלוג? של הבעיה. חשיבותו של התרשים בכך שהוא: 1. עזרה לפתוח התכנית - מסייע לנתוח הבעלות הלוגיות על יד? הצגת השלבלים ה- לוגיים לפתרון. 2. מסמך של התכנית - מוסר את עיקרל הנושאים בצורה ברורה וחד-משמעלת. 3 הדרכה ועזר בקידוד (כתיבת ההוראות) - כתיבת התכנית נעשית על פ?ל התרשלם. יש להדגיש את חשלבותם של התרשלמים השונים בהלותם דרך הצגה אחידה, מוסכמת ו- מקובלת על כל העוסקים בעיבוד נתונים במחשבים. תאור קבצים שדה (1610") | - נתון מוגדר כלשהוא. רשומה (866026)- נתון אחר או יותר המהוים שלימות אחת: "רשומת עובד" מכ?לה את שם העובד, כתובתו, מספרו האלשי, מצבו המשפחת? וכד'. רשומת פרלט במחסן מכילה את מספרו הקטלוגי, מחיר הקניה שלו, מחיר המכירה, כמות במלאי, נקודת הזמנה וכד'. - 9% א אד חח דד זע דהה דר | - 28 - קובץ (116?) - אוסף הרטומות המתיחסות לנושא אחד. למשל: קובץ פריטים במחסן, קונץ מרשס התוטבים המכיל את רשומות כל התושבים בארץ, קובץ סטודנטיס וכד'. תכנות ותידור מה זה תכנות? נהוג לעתים לקרוא למחשב "מוח אלקטרוני". אולם זהו מוח טפש, חסר אלנ- סליגנציה, כושר מחטבה ודמיון, וחסר כוטר יצירה. מערכת המחשב *כולה לבצע הו- ראות במהירות עצומה, היא יכולה לבצע בקורות ולציין שגיאות בפעולתה התקלנה. אולם המחשב איננו יכול לעלות על מוח האדם, אשר בשלב זה של התפתחות המחשבים עדיין מכוון אותו בפעולתו, ומבצע עבורו את החשיבה המוקדמת. נוכל להגדיר את המונח "מחטב" בצורה הבאה: "התקן המסוגל לקלוט נתונים, לעבדם לפי תכנית מוכ- תבת ולספק את תוצאות העיבוד"; אולם לא נשתמש במושג "מוה" או "חשיבה". פיתוח התכונות הפיסיות של המחשב אינו מאפשר עדיין את נצולו. המחשב ניתן להפעלה ע"י הוראות הנמצאות בזכרון הפנימי? ומוזנות אוטומטית לפי סדר אל יחידת הבקרה המפענחת אותן ופועלת לפיהן. מערכת ההוראות לבצוע סדרת פעולות במחטב נקראת "תכנית", והכנתן - "תכנות" (קת1תתהץקסץקץ). שפת מחשב ושפת תכנות טפת המחסב היא הצורה בה נמצאות ההוראות בזכרון המחשב. אפשר לכתוב כל תכנית בטפת המחשב ע"י שמוש בקודים שלו עבור הפקודות ושמוש בכתובות זכרון מו- חלטות. שיטה זו אינה טובה ויעילה לכתיבת תכניות גדולות ומשתמשים בה לעתים לתכניות בעלות מספר קטן של הוראות בלבד. יש לזכור שבמחשבים הראשונים שנבנו היתה זו הדרך היחידה להכנת תכניות והזנתן לזכרון. כתיבת תוכניות בשפת המחשב הינה פעולה קשה וממושכת הצופנת אפשרויות רבות לטגיאות. ככל שהמחשב משוכלל יותר וככל שדרישות הבצוע מורכבות ומסובכות יותר, נעטית כתיבת התוכנית ממושכת יותר ויקרה יותר, עד כדי כך שהיא מהוה חלק ניכר מתוך ההוצאה הכללית להחזקת מחשב. כדי להתגבר על בעיה זו החלו לפתח שפות לשם כתיבת תכנלות (תהעקַסע? 66ע500) אטר תהיינה נוחות לשמוש ועם זאת אפשר יהיה להפכן לשפת-מכונה (0828₪+? 05166%) המפעילה את המחשב. הפיכת תכנית בשפת מקור לתכנית בשפת מכונה נעשלת בעזרת תכ- נית הידור המתאימה לשפת התכנות שבה נכתבה תכנית המקור. הקלות ה?חסלת של כתל- "8 - 29 - בת תכניות באמצעות שפות אלי יצרה מצב בו אין מעלים על הדעת כתיבה בשפת המכ.- נה ורואים שפות אלו כהשלמה הכרחית למכונה. התכונות של המחשב אינן נבחנות אל- פוא רק לפי התכונות הפיסיות של המכונה (8870668176) אלא במדה רבה לפי התכונות של השפות - התוכנה (816א50+5). קיימות רמות שונות של שפות תכנות (מלשון "תוכנית") בהתאם למידת קירבתן לשפת המכונה או לשפת אנוש (שפות עיליות). בשפות תכנות אלי מקנה התוכניתן ל- הוראות כנויים או ערכים סמללים תוכנית עיבוד הנקראת מהדיר | (ש1162קח60) קוראת את התוכנית שכתב התוכניתן כנתונים והופכת אותה לתוכנית בשפת מחשב כנריש לשם בצוע. פעולת ההידור נעשית בכמה שלבים. לצורך הדגמה נבחין בשני השלבים העיקר?ים: בשלב הראשון מתרגמת התכנית את ההוראות ומקצה את שטחי הזכרון לפי הסדר שהוג- דרו, החל מכתובת הזכרון שנקבעה ע"? המתכנת. באות: זמן היא מכינה טכבלת הה?לחסיםת של התויות לכתובות הזכרון. בשלב שני היא מחליפה בגוף כל הוראה את התילות ה- מסמלות כתובת, בכתובות הזכרון אשר נלקחו מהטבלה אשר הוכנה בשלב הראשון. הסבת תכנית משפת מקור לשפת מכונה טפס" תוכנית מקוו 1 מהדיר : מערכת "א עְ - הפעלה מחשב: תוכנית מקיר בדיסק הידור התוכנלת מגנטל | ספרית * תוכניות תוכנית חדפילס בשפת המכונה החוניבל ! (בכרטיסים או בספרית התוכניות) - 30 - תהליך הכנת תוכנית תהליך הכנת תכנית למחשב כולל שלשה שלבים: הכנת תרשים לוגי של המהלך (ת8?ק013 8106%), כתיבת הוראות התכנית (קהג600), ונפוי התכניות משגלאות ע"ל נסוי במחשב (קת21קט65כ). הכנת התכנית נעשית כשלבים אחדים. בתכנית פשוטה קטן חלקם של השלבים המטפלים בפתרון הלוגי של הבעיה, לעומת חלקם בתכנית מורכבת, שבה הפתרון "ה- תכנותי" הוא חלק נככבד מהמאמץ המושקע בכתיבת התכנית. א. עריכת תרטים מלבני ובדיקתו עריכת תרטים מלבני מפורט לפי תרשים המהלך הכללי (פונקצלונלי) שבתיק המהלך. בחרטים זה יש לתאר את פעולות המהלך בדרג של הוראות למכונה ואת הש- מוט בטגרות שבאות מספרית התכניות הכללית אושנכהבו על ידי התכניתן לצורך ה- תכנית. כמו כן יש לפרט את נוסחאות החשוב לשלביהן. תרשים מלבני שמלועד ל- תכנית שתכתב בשפה יוצרת אינו צריך להיות באותה מידת פירוט כתרשים לכתיבת תכנית בשפה סימלית. כאטר מסתימת הכנת התרשים יש לערוך "בדיקות שולחן" (66%ת6 65%) כדל לודא מספר דברים: 1. התרטים המלבני תואם את תרשים המהלך הכללי מבחלנת השיטה; 2 תאור נכון של הנוסחאות ושמוש בקודים ובסמולים כפי שנדרש; 5. בצוע כל הפעזלות האחרות שנדרשו בתרשים המהלך הכללל; 4. הבדיקות הלוגיות אשר בוצעו בתרשים - נכונות (פעולות ההשואה והמסקנות הנובעות מהן). הבדיקה נעשית ע"י בחירת כווני פעולה שונים בתרשים, ומעקב צעד צעד ב- עזרת מספר דוגמאות של נתונים. יש להדגיש שבשלב זה על התכניתן להחליט החל- טות טונות הקטורוח בארגון האינפורמציה ובבצוע בדלקות שונות ותגובות עליהן. בחלק מהמקרים הקשורים בשיטה הוא פונה לעזרת הבוחן. תוך כד?ל הכנת התרשים ה- מפורט חייב התכניתן לנהל רשימות לגבי הדברים האמורים לעיל, כד? שניתן *היה להסתייע בהם בשעת הפעלת התכנית ב. כתיבת התכנית והידור התכנית נכתבת בטפת התכנות של המחשב שבו היא תופעל. שלב הכתיבה - 3[| - של התוכנית, הקידוד, הוא רישום ההיראות לפ? התרשים המלבני את ההוראית רוש- מים בטופס קידוד המתאים ל"שפה" שבה נכתבת התוכנית | כל שורה בטיפס מליעדת לנל- קוב בכרטיס אחד, ועל כן מספר העמורות בשירה הוא 80 - עמודה לכל טיר בכרטיס לאחר שכותבים את התוכנית מנקבים אותה בכ-טלסים ומזינים איתם למחשב שבו מופעל מהדיר (:6002116) המתאים לשפה שבה נכתבה התוכנית, למשל א8₪%ז08ת, ]0080 אי 1/זק. המהריר מתיחס אל תוכנית-המקיר כאל נתונים ותהליך העיביר שלו הצא הפקת תוכנ:?ת בשפת מכונה. המהריר בודק את תוכנו של כל כרטיס יאם אינו "מבין" הוראה כלשהי יבדרך כלל מפני שההוראה לא נכתבה בהתאם לכללי שפת התכנ ת) ו.א מוד?ע בתרפיס התוכ- נית על קיוּם שגיאה. המתכנת מתקן את השג?אית ימגיש את הזיכנית להידור ניסף כאשר אין ייתר שגיאות מפיק המהדיר את התוכנית בשפת מכינה, שא:תה אפשר לקבל בכרטיסים מנוקבים או בדיסק מגנט?ל בקובץ (ספיית) התוכניות. התיכנית בשפת המכונה מ?לועדת להזנה למחשב לבצוע ג. הרצות נפוי התוכנית - קתגקקטט6קת נפוי התוכנית פרושו שלש צוררך לבצע בדיקה של התיכנית יל"נקית" ממנה שגיאות אפשריות | כלומר, למרות שהתוכנית תורגמה ע"י המהדיר ללא שגיאית יתכן שהיא לא תפיק את התוצאות המבוקשות. המחשב מבצע כל הוראה כפ? שהיא נכתכת, ועל המתכנת לדאוג לכך שהוראות התוכנית שלו תריינה משמעותיות ותשתלבנה בתהליך עיבור נכון. אם המתכנת מתכוון להדפיס שם של אדם י"בטעות" כתב היראה להדפסת גילו או כתובתו תתקבל תוצאה שאינה נכונה. כדומה אם רצה לכפול שנ? מספרים ובטעות חיבראותם. המחשב אינו יכול לגלות שגיאה מסיג זה. לפעמים כתובה ה:. ראה שאינה ניתנת לבצוע כמו למשל חילוק באפס. במקרה הואשין - תודפס תוצאה שאילנה רצויה ובפעם השנלה - יודיע המחשב על "שגיאת בצוע" (אספהס תגזקסנק) ויפסיק את בצוע התוכנית. המהדלר לא ?כול לגלית מצב של חילוק באפס מכיון שהנתונים מתקבלים רק בשלב הבצוע. בתהליך הנפוי מבצעים הלכה למעשה את כל הפעולות והבדיקות הנדרשות בתוכנית, גם אלו שהן ?וצאות דופן ועתירות להתבצע בחומר אמיתי רק לעתים נדירות ?ש לטפל בכל סוגי הקלט שהמהלך עתיד לקבל, ולבצע את כל סוגי הפלט על י?חידות האחסון המגנט? ובהרפסה ‏ יש להזין קלט עם שגיאות מכוונות לבדיקת עצירת התיכנית וההתרעה על שגיאות כמות החומר היא קטנה באיפן ?*חס? (עשרות או מאות כרטיסים או רשומית), 4. 9 -ההחחרררדרתר דד ז-- 4 "ישן .אל - 32 - אולס מייצגת, על כן הכנתו לנסוי היא פעולה אחראית וחשובה. את הפלט של הרצות הנסוי צריך לבדוק בקפדנות רבה, כי לא כל חומר מודפס ומנוקב במבנה נכון, הוא גם נכון בתוכנו. סדרת הרצות הנסוי משמשת לנפוי התוכנית משגיאות, או בשפה המ- קובלת - קַתגאַקטל06 והנתונים המשמשים לנסו? - 08%8-765%. ד. נסוי המהלך כחלק מתהליך שלם תהליך עיבוד נתונים לפתרון בעיה מסוימת מורכב בדרך כלל ממספר מהלכים/ תוכניות. לאחר בדיקה ונפוי של כל תוכנית בנפרד יש לבדוק רצף שלם של תוכניות, החל מהתוכנית הראשונה המקכלת את הנתונים ועד התוכנית האחרונה המפיקה את הפלט הסופי. בתהליך עיבוד קובץ יתרות חשבונות בבנק יכולים להיות המהלכים הבאים: תוכ- נית קלט של התנועות (משיכות והפקדות), תוכנית מיון, תוכנית עדכון קובץ היתרות, תוכנית הדפסת דפי חשבון. פלט של המהלך הראשון (קלט) מועבר למהלך הבא לעיבוד וכן הלאה, עד להפקת הדווח הסופ?. בתחילה נבדק. התהליך עם נתוני נסוי אשר הוכנו ע"? התוכניתן או הכבוחן. לאחר שנסוי זה עובר בהצלחה מבצעים "הרצה" של התהליך עם נתונים אמיתיים ולאחריה - הפעלת מערכת עיבוד הנתונים לבציע העכודה הדרושה. שפות תכנות ספות תכנות סמליות השפות המקובלות ביותר הן אלו הנקראות 60265א1 צ85500)80 או 0655085מק שיטת הכתיבה בשפה כזו נקראת "כתיבה בקור מנמוני" (6גתסמ6ת/), קוד נוח לזכרון בשפות אלו משתמשים בסמלים וקצורים בעלי משמעות ליצוג הפקודות ובשמות סמליים משתמשים לציון הכתובות. בזמן כתיבת התוכנית קובע התוכניתן שמות סמליים (תויות - 185615) לקטעי תוכניות, לשדות ולנתונים, מונים וטבלאות אשר בזכרון המחשב. הפניה לנתון או לקטע התוכנית נעשית לפי התוית שנקבעה לו. התוכנית המתרגמת מקנה לתוית ערך מספרי, בהתאם לכתוכת ההוראות והנתונים בזכרון המחשב. > - 33 - לתויות אפשר לתת מובן הקשור בתפקידם כגון "?תרה", "תנועה", "סימן בקורת", "כתובת" (התוית ניתנת בשפה האנגלית). קטעים רבים בתוכנית בשפת מכונה מורכבים מהוראות אחדות שבאות למלא משימה אחת כגון כפל שני מספרים, עריכת נתון מספר? להדפסה ועוד. נראה היה שאפשר יהלה להכליל מספר הוראות אלו בהוראה כללית אחת בכדי להסוך בכתיבה ולהקטין את מספר השגיאות ואז נבנו כלים לצורך זה. המהדיר נותן לתוכניתן אפשרויות שונות לנוחיות ולחסכון בכתיבה ע"? שימוש בספרית תוכניות קבועה ל"איסוף" תוכניות נוספות ושילובן בתוכנית. בספרלה זו מוחזקות תוכניות סטנדרטיות המבצעות פעולות מוגדרות כגון: בדיקת נומריות של נתונים, קריאה של סרט מגנטי ובדיקה של שגיאות קריאה אפשריות, העלאת מספר בחזקה וכיו"כ. תוכניות אלו נקראות שגרות (65ת1+טסעלט5). שפות יוצרות השפות היוצרות (8841085א65) נקראות כך משום שבנגוד לשפות התוכני?ת הסמ- ליות אין הן מתרגמות הוראות אלא יוצרות אותן על פי הנחיות או משפטים לוגיים. שפות אלו נקראות גם שפות תכנות עיליות (65קַגוקת18 61צ16 הקג1). במרוצת השנים שעברו מאז הופעל המחשב הראשון בחוגות שכוונו ע"? המפעיל, הופעלו שלטות ונוסו דרכים שונות להכנת התוכנית למחשב. המטרה שהנחתה את המתכ- ננים בשטח זה היתה להתרחק ככל האפשר מצורת הכתיבה בשפת מכונה, או בשפה סמלית (ץ01ח4556), שהיא דמוית-שפת-מכונה. השאיפה היתה להעצר בשלב של נסוח הבעיה ע"י התרשים הפונקציונלי ולהפוך אותו לתוכנית מבלי? לרדת לפירוט נוסף. כלומר לכתוב את הפעולה הדרושה ב"שפת בני-אדם" תוך כדי שימוש בשמות סמליים - 34 - לערכים ולכתובות בזכרון המחשב. ע"י כתיבה בשפת בני-אדם נראה שאפשר למנוע את רוב הטעויות הטכניות הכרוכות בכתיבת התכניות ולהתרכז בפתרון הבעלה הלו- ואמנם נוחה וגם ברורה צורת כתיבה זו של תכנית בשפת 60805, למשל: 3ותא / (82ש48טא + 1הםפטא) = [עטפמת מדטקו0ס כאשר יש לחבר שני מספרים ולחלק את התוצאה במספר שלישי, ואת תוצאת החלוק גית. להעביר לשדה שטמו ז6500ת ' או .פאזושסת-צןקזדוטא 70 60 5055 , 5 70 2 פאא 4 70 1 ספא 8 > א תך כאטר יס להשוות שני מספרים ואם תוצאת ההשואה היא שויון יש לחבר לראשון-1 ולטני-2. אם התוצאה אינה שויון, יש לעבור לשגרת כפל מסוים. השפות היוצרות בקבוצה זו מבוססות על מילון בשפה האנגלית הכולל מאות אחדות של מלים ובעל חוקי דקדוק מ?יחדים. קיימות למעשה שתי קבוצות של שפות: לכתיבת תכניות מדעיות הוכנו השפות את0817ת ,42608 ולכתיכת תכניות לע?בוד נתונים בשטח המינהלי הוכנה שפת 60802. שפה המשלבת את התכונות העיקריות של שתי הקבוצות האלה היא 25/1 של חברת י.ב.מ.. כתיבת התכניות בשפה האנגלית הקרובה לשפת המתמטיקה או לנסוח מקצועי של בעית עיבוד נתונים דורשת הכשרה קצרה לעומת ההכשרה הדרושה לכתיבה בשפה סמ- 'ית החסכון בתקופת ההכשרה ובזמן הכתיבה רב וחשוב השנויים התכופים בתכ- יות של עיבוד נתונים מכתיבים אף הם שמוש בשפה משוכללת ונוחה להכנסת שנו- -ים. יתרונות השמוש בשפה לוצרת רבים, ונמנה את החשובים שבהם: 1 רישומים - אפשר להסתפק בפחות רישומים הקשורים בקידוד ובהסברים אחרים מכיון טהתכנות עצמו נעשה בשפה ברורה; אחידות - התכנית ברורה יותר לאנשים המטפלים בתכניות ומעדכנים אותן. סטנדרטיזציה - הכתיבה הקצרה והברורה ע"י שפה מאפשרת שליטה על צורת כתל- בת התכניות ע"י אנשים שונים; מהירות - כתיבת תכנית בשיטה זו מהירה פי שלוש בערך מכתיבה בשפה סימלית. זמן פנוי - תקון שגיאות בתכנית קל ומהיר ילותר מכיון שהשגיאות הן לוגיות בעיקר ולא שגיאות הקשורות בכתיבת התכנית עצמה; הדרכה והכשרה - הכשרת אנשים לכתיבת תכניות מהירה *ותר. - 35 - - מערכת הפעלה מערכת הפעלה - 575668 8ת628%1ק0 - של המחשב כוללת אוסף של תוכניות ,שירות ותוכניות להידור שפות (5ע1!0קח0)0). מלכלול השרותים הזה מופעל בפיקוח של תוכנית בקרה (תהעקסצק 1סע%תס6) הנמצאת כל הזמן בזכרון המחשב. ההתפתחות הגדולה שחלה במהלרות עיבוד הנתונים במחשב הותירה בפיגור את שיטות העבודה שהילו קיימות. זמנו של המחשב המשוכלל יותר הוא יקר יותר, ולאור זאת פותחו שלטות עבודה חדשות שנועדו לצמצם, אם לא לבטל כליל, את הזמן שבו היתה מערכת המחשב כולה, או אחד ממרכיביה, בלתי מנוצלים. מערכת ההפעלה מיועדת להשגת מטרות עיקריות אלו: 1. הגדלת הספק המערכת, שהוא סה"כ כמות העבודה המתבצעת בפרק זמן נתון; 2. הקטנת זמן התגובה של המערכת, שהוא הזמן החולף בין הגשת עבודה לבצוע לבין מועד קבלת תוצאות העיבוד. 3. שליטה על ?*חידות האחסון במערכת לאבטחת התוכנלות והקבצים מפנ? פגיעה. בנוסף לכך נותנת המערכת שרותים להקלת העבודה ושיפור השליטה של מנהל לחידת המחשב, התוכנ?תן ומפע?ל המחשב. שרותים של מערכת ההפעלה החלק המרכזי במערכת ההפעלה הוא תוכנית הבקרה (ת8עקסעק 01ע%ת60) אשר נטענת למחשב במכוון על ידי המפעיל כאשר הוא מתחיל את פעולת המחשב. התוכנית נטענת מספרית התוכניות של מערכת ההפעלה הנמצאת בדיסק מגנטי. מכאן ואילך מועבר נלהול פעולת המחשב אל תוכנית הבקרה אשר דואגת להפעלה סדירה של המחשב אולם נמצאת כל הזמן בשליטת המפעיל - האדם. שליטה זו מתבצעת באמצעות לוח הבקרה ומכונת הכתיבה הקשורה למחשב, אך בעיקר באמצעות הוראות הפיקוח של העבו- דות השונות (01ע%2ת60 100). כאשר תוכנית הבקרה פועלת היא טוענת לזכרון תוכ- ניות שרות שונות אשר נדרשות במהלך בצוע פעולות הבקרה והשליטה או עבודות המש- תמש. 36 - אחד התפק?ד?ם החשובים של מערכת ההפעלה הוא הפיקוח על זרם הפעלה רצופה של העבודות. כלומר, הזנת עכודות חדשות לבצוע באופן אוטומטי מקורא הכרטיסים ללא התערבות המפעיל. הוראות הפיקוח המוזנות יחד עם התוכניות והנתונים מאפשרות לתוכנית הבקרה ל"דעת" מה נדרש לעשות: לבצע הידור של תוכנית, לבצע הידור של תוכנית ולהפעילה מיד עם נתונים המצורפים לה או נמצאים בסרט או דיסק מגנטי, לבצע טעינה של תוכנית מספרית תוכניות ולהפעילה עם נתונים כלשהם וכד'. מערכת ההפעלה מודיעה למפעיל, (באמצעות מכונת הכתיבה הצמודה למחשב, על העכודה המתבצעת בהתאם להנחיות הוראות הפיקוח). היא מאפשרת לו, במקרים מסוי- מים, להגיב או להזין פרמטרים הנדרשים לבצוע תוכנית מסוימת, לבטל תוכנית ועוד. כאשר צריך להרכיב או להסיר סרטים מגנטיים או דיסקים מגנטיים מקבל המפעיל הודעה אימה. שרות חטשוב נוסף של מערכת ההפעלה הוא פיקוח ותאום פעולות קלט/פלט. העברת הנתונים בין יחידות קלט/פלט לבין זכרון המחשב כרוכה בפעולת תאום. תחל- לתה ביצירת הקשר אל יחידת קלט/פלט כאשר מופיעה בתוכנית הוראה לקריאה או כתל- בה. אם הקשר נוצר (אלקטרונית) יכולים הנתונים לעבור. כאן יש לפקח על כמות הנתונים שעוברים בהתאם להוראות התוכנית ועל בדיקת אמינות ההעברה - כלומר, אם יש שגיאות אם לאו. שרות אחר של מערכת ההפעלה מכוון להפעלה של תוכניות אחדות במקביל. מכיון שתוכנית אחת אינה מנצלת בדרך כלל את כל משאבי? המחשב שהם הזכרון, יחידת העיבוד וכל יחידות קלט/פלט, אפשר להפעילם לסרוגין לשרותם של תוכניות אחדות. פעולה זו נעטשית ע"* הטענת תוכניות אחדות לזכרון והפעלתן. הקצאת השרותים לכל תוכנית לפי סדר עדיפות נעשה ע"* מערכת ההפעלה. האפשרות לפעולה מקבילה של תוכניות קיימת מכיון שתוכנית מפסיקה עיבוד מדי פעם כדי לבצע פעולות קלט או פלט מ?חל- דה מסוימת. כאשר היא משחררת את יחידת העיבוד, מנצלת אותה תוכנית אחרת אשר באותו זמן משחררת את מנגנון הטיפול ביחידות קלט פלט, וכן הלאה. שרות נוסף הוא השמירה על קבצי נתונים וספריות תוכניות מפני כתיבה לא מכוונת אשר יכולה לפגוע בהם. פעולה זו נעשית באמצעות "סיסמאות" שאינן אלא הוראות מיוחדות של התוכנית או של מפעיל המחשב המתירים התחלת פעולת כתיבה בקו- בץ נדרש. הפעלת תוכנית בפיקוח מערכת ההפעלה --י ו 0ממ/---ג(*"; לשם הפעלת התוכנית צריך לבצע שתי פעולות עיקריות: א. הידור (תס1ז113קח60), כלומר תרגום תוכנית המקור לתוכנית כת-בצוע. לכל שפת תכנות יש מהריר המיוחד לה. ב. הטענת התוכנית והפעלתה עם נתוני הקלט. בזמן נפוי תוכניות מבצעים הידור והפעלה של התוכנית ברצף אחד. ‏ לכן יש לכלול בחבילת הכרטיסים המוגשת למחשב את תוכנית המקור ואת נתוני הקלט לתוכנית. כדי להורות למחשב (יותר נכון: למערכת ההפעלה הנמצאת בו) מה ואיך רוצים להפעיל עם חבילת הכרטיסים יש להוסיף לכרטיסים אלו גם הוראות הפעלה. הוראות ההפעלה שונות לכל מחשב והן תואמות למערכת ההפעלה הנמצאת בו. תאור כללי לחבילת הכרטיסים שיש להגיש לבצוע הרצה במחשב: 1. כרטיס הוראת בצוע עבודה כולל את שם 2% 08 העבודה, פרמטרים להגבלת זמן בצוע וכמות נייר שתודפס ופרמטרים תמחיריים 2 כרטיס פיקוח להפעלת המהדיר 2-4 6שאם 6 3. כרטיסי מקור של התוכנית כפי שנוקבו 5 <אגתססאק 0 מתוך טפסי התוכנית 4 כרטיס סיום סטנדרטי לקובץ כרטיסים 40 1 5 5. כרטיס פיקוח להפעלת התוכנית לאחר 146 6מאם | תק שעברה תהליך הידור 6. כרטיס? נתונים המשמשים קלט להפעלת 5 דאס דטקא1 התוכנית 7. כרטיס סיום סטנדרטי לקובץ הכרטיסים 4 1 54 - 38 - רכ ₪35 9 0 7 = > = האס זהו כל הסוד ! - ו חלק שנל: אלגוריתמים ותרשימי עיבוד - 4[ - פרק ו: תרשיאים |א]ג₪!ריתאיס מהו תרשים תו:כנית עבודה למחשב (אשר נכתבת בשפת תכנות כלשהיא) מורכבת מסידרה ארוכה של פעולות מאורגנות, בסדר הגיוני מסויים. תכניות כאלו לרב ארוכות ומורכבות, ולעיתים המעבר מפעולה לפעולה אינו ישיר, או קבוע, ולכן גם מספר ההסתעפויות בתכנית הוא רב. שומה על כותב תכנית שכזו לתאר את עבודתו ב"ראשי פרקים", כי התאור המילולי, אשר תלוי בכושר ההתבטאות של הכותב - יכול להיות מסורבל ולא ברור די צרכו. ייראשי פרקים" אלה יירשמו בתוך צורות הנדסיות שונות (מלבן, מעויין, מקבילית וכו') אשר יחוברו ע"י חיצים. צורת הצגה זו נקראת תרשים עבודה. מבחילנים בין שני סוגי תרשים עבודה: ו תרשים זר:מה (ד8הה6 אס)]) 2) תרשים מלבנ? (מ4ה6הופ א8106) ת א ו ר א ל ג ו ר י ת מ י ם תרשימי הזרימה והתרשימים המלבניים מכוונים בדרך כלל, בהקשר שלפנינו, לתאר תהליכי עיבוד נתונים. השמוש בתרשים ומדת הפרוט שלו מכוונת למטרה שאותה רוצה להפיק מכין התרשים. בנוסף לתאור תהליכי עיבוד נתונים אפשר לתאר בעזרת תרשימים גם אלגוריתמים - תהליכים לוגיים לפתרון בעיה כלשהיא. סדרת הצעדים הדרושים לפתרון מפורטים בתבניות התרשים השונות. להלן מספר דוגמאות שאינן מתהחום עיבוד הנתונים. השתדל לעקוב אחר התהליך, על משמעות התבניות השונות נעמוד בפרוט בפרק הבא .42 א ור ב ע בע ירות 7 בעיה א': מציאת הערך הקטן מתוך 3 מפתחות טונים בגודלם, יש למצוא את המפתח הקטן ביותר מבין | מסקנה : ג. המפתח הקט סוף מסקנה: (%. ב. המפתח הקטן בעיה ב' : קביעת יחסים בין 3 ערכים תכנית לאפשרויות הלונות של היחסים בין הערכים א,ב,ג. עם מספר החלטות מינימל?ל א = גדול ב = בינוני ג = קען ג = גדול א = גדול ג = בינונ?ל ב = קטן א = בינונ? ב = קטן ב = גדול א = בינונל ג = קטן כן לא ב = גדול ג = בינוג? א = קען | התחלה א. המפתח הקטן התחלה ג = גדול ב = בינונל א = קטן -- בעיה ג'-נשים קנאיות קיץ אחד בילו שתי משפחות את הופשתן השנתית על שפת האגם והשתכנו בבתים סמוכים הנשים, שהיו שתיהן קנאיות, החליטו שאסור שאחד מהבעלים יצא לשיע באגם עם אשת חברו בלי העוזרת. מאחר שהסתבר שהעוזרת היא בחורה נאה, החליטו השתיים שגם עמה בלבד אסור לאחד מהבעלים לצאת לשיט. חשמלאי התקין מערכת איתות חשמלית, אשר פעלה בין בית הסירות וחדר* המגורים של שני הבתים. בכל אהד מהדרי המגורים היו מנורות בשני צבעים - אדום וירוק. האדום סימן סכנה ויידלק ברגע שאחד מהבעלים יפר את ההסכם. הירוק יידלק בכל שאר המקרים - היינו, אין סכנה. שתי הנשים הטילו על האחראי לסירות להפעיל את האיתות בהתאם להסכם. יש לתאר את אפשרויות היציאה לשיע בתרשים זרימה. אין לא סכנה ד כן אין לא לא לא סכנה ור | כן כן כן | התחלה לא כו אין סכנה , לא אין סכנה סכנה צ בעִיה ד' - איך לקום בבוקר 25 מר א' מתעורר בבוקר עם צלצול השעון המעורר. 4 הוא מתמתח ומנסה להעיר את אשתו. החוזר 3 פעמים על שתי פעולותיו האחרונות. יוצא ממיטתו ומסתכל דרך ההלון. אם הוטך בהוץ - מעלה אור בחדר. הוא מעיף מבט במד-החום. כטיט פחות מ -20% אך יותר מ - 0%ו, מדליק את התנור. אם ההום פהות מ - 09!, הוזר למיעטתו ובשלב זה מסיים את הנסיון לקום בבוקר שכזה. כשמד-החום מראה 20% או יותר, הולך מו א' להתרחץ וניגש לאכול ארוחת-בוקר. אם זקוקה אטתו לכסף, נותן לה 20 לירות. במקרה שהם נשואים יותר מחמט שנים - יוצא למכוניתו. נטואים פחות מחמש שנים - נותן נשיקה לאשתו. נטואים פחות משנה - נטיקה נוספת לאשתו. בהכנסו למכונית בודק מר א' האם רשיון הנהגות נמצא אצלו. אם איננו-הוזר הביתה לקחתו. אם רשיון הנהגות בידו, נוסע מר א' לעבודה. + לתאר את תוכן הספור בעזרת תרשים. , צלצול שעון > כ לא נשק אשתך להעיר את האשה כ האם הערת 3 לא 6 פעמ*ם כן נשק אשתך צא מהמטה צא למכונית כן הרלק אור לא חזור הביתה לא עב "7 הפעל תנור סוף אפטר? כן 0 0 תן 20 ל"? 4 סרק 2: תר6'א' פריאת תרשים זרימה הינו תאור גרפי סכימטי של תהליך הכולל: הקלט לסוגיו השונים, שלבי העיבוד אותם הוא עובר במחשב, ולבסוף - הפלט. הסימנים הסטנדרטיים לתרשים זרימה הם: כרטיס מנוקב סרט נייר מנוקב סרט מגנע? דיסק מגנעטי | | אמצעי להצגה חזותית (מסך) 00 0 )]][ ך )ו מסמך מודפס קלע ידני (לדוגמה: לוח מקשים) אמצעי אחסון מגנטי, המחובר למחשב (סרט מגנעי, תוף מגנע?). אמצעי אחסון היצוני, אינו מחובר למחשב (כרטיס מנוקב וכו'). עיבוד ידגב? עיבוד במחשב ) מיון, חשובים, עריכת נתונים השוואות וכד'). .+ 4% רז ההק דרוו ד החדו זה הו " .. . פעולת עזר (לא תחת הפקוח של ה - 67% ) 6 מיון כרטיסים = חץ המקשר את הצורות הטונות. הפעולה הנדרשת נרשמת בתוך הצורה ההנדסית. - 49 - בעיה א' - דוויח ו | תאור הבעיה א. נתון: קובץ מלאי בכרטיסים, כרטיס לכל פריע. ב. עיבוד: 1) להפיק דו"ה מודפס לפי מספר קטלוגי עולה, עבור כל הפרלטים שבמחסן. 2) לבדוק את רמת (כמות) המלאי ולהטוותה לרמת מינימום מותרת (שנ? שדות אלו נמצאים ברשומת הפריט בכרעיס). אם רמת המלאי שוה או נמוכה מרמת המינימום - יש לנקב כרעיס הזמנה עבור אותו פריע. ג. הערה: הקובץ אינו ממויין לפי מספר קטלוגי של הפריט עקב תהליך עיבוד קודם. 2 תרשים הזרימה עיבוד במחשב דו''ה מודפס כרטיסי הזמנות 2 3 ניתוח הפתרון: 4 בפתרון זה ניתן להבחין בקלט המקדים פעולה כלשהיא, ובפלט - שהינו תוצאה שְ של תהליך העיבוד. בתהליך זה פלט של פעולה אחת (מיון) משמש כקלט לפעולה הבאה (עיבוד). כל שלב של פעולה יכול לקלוט יותר מקובץ - קלט אחד, וגם הפלט יכול להיות מגוון ומורכב מקבצים אחדים. הקלט יכול להיות קובץ באמצעי אחסון מסוג אחד (כרטיסים למשל) והפלט - קובץ באמצעי אחסון דומה או שונה (כרטיסים, תדפיס, סרט מגנטי וכד'). בעיה ב' - עדכון קובץ פריעים במחסן ו. תאור הבעיה א. נתון: קובצי הקלע: קובץ אב - סרט מגנע? קובץ תנועות - כרטיסים בלתי ממויינים 3 עיבוד: יש לעדכן את קובץ האב לפי כרטיסי התנועות, לפני העדכון יש לבצץ בדיקות לוגיות. ג. הפלע: קובץ אב מעודכן דו"ה מודפס של התנועות | שוברי תנועה (קובץ תנועות) 2. תרשים הזרימה | ניקוב-שובר? תנועה אק קלע במחשב דו''חה תנועות ₪ תנועות להמטך העיבוד מיון התנועות סרט תנועה ממויין לפ?: מס' פריט, סוג תנועה, תאריך . עדכון קובץ פריעים דוייה עדכון קובץ הפריעים קובץ פריטים קיים (אב) קובץ פריעים מעודכן (בן) 0 = 0-0 3 ניתוח הפתרון תרטים הזרימה לתאור הייטוםכולל מספר שלבים. ג. בדיקת הנתונים ממסמכי המקור. בבדיקה זו נבדקים פרטים טכניים שונים הקטורים בריטום הפרטים השונים במסמך כגון: אסמכתא, סוג פעולה, תאריך, מספר קטלוגי ועוד. כמו כן נבדק, עד כמה שאפשר הרישום עצמו: למשל האם התאריך רשום בצורה נכונה, האם המספר הקטלוגי מכיל את כל הספרות הדרוטות וכדומה. העברת הנתונים מטפסי המקור לקלט קריא במחשב, ע"י תהליך ניקוב בכרטיסים. בדרך כלל מועבריםהכרטיסים המנוקגים בתהליך בקורת. תהליך זה זהה לתהליך הניקוב אולם המכונה אינה מנקבת אלא מטוה את פעולת ההקשה של המפעילה אל הניקוב בפועל בכרטיס. בכל מקרה של אי התאמה ניתנת התראה והמפעילה יכולה לתקן את הכרטיס השגוי. קליטת התנועות במחשב ובדיקות לוגיות של הנתונים: בדיקת חוקיות רישום נתונים טונים, בדיקות התאמה של מונים שונים בתנועה , בדיקת סימולים וכד'. הפלט טל מעבר זה כולל: ו) דו"ה תנועה אשר מפרט את כל התנועות שהתקבלו ומציין את התנועות טהועברו להמשך העיבוד כקובץ תנועה ואת התנועות שנפסלו. 2) דוייה תנועות שגויות אשר מפרע את התנועות השגויות ומציין במפורש 2 את השגיאות שנתגלו. אנשי הביקורת יבצעו את התקונים הדרושים ויחזירו את התנועות האלו לתהליך העיבוד. מיון קובץ התנועות לקראת עדכון קובץ הפריט. המיון יבוצע לפי מפתח הרטומות בקובץ הפריע, במקרה זה - המספר הקטלוגי. בנוסף לכך יש למיין גם לפי סוג תנועה (ניפוק, קבלה, החזרה וכד' ) ולפי תאריכים. מפתחות מיזו אלו נדרטים כדי לקיים את הלוגיקה הנבונה של פעולות העדכון. המיון כולו נעשה במעבר אחד - במפתה מיון אשר מורכב מכמה שדות: מס' קטלוגי (ובתוכו) סוג תנועה (ובתוכו) תאריך. - 53 - למהלך העדכון מוזן קובץ התנועה הממויין וקובץ הפריטים הקיים. ממהלך זה יופק קובץ פריטים מעודכן. המושגים קובץ "אב" וקובץ "בן" מתיהחסים לתהליך שבו מופק קובץ הדט מעודכן מקובץ קודם. קובץ ה''בן" ישמש במהלך העדכון הבא כקובץ 'אב" ליצירת קובץ 'בן" חדש. בתהליך העדכון מופק גם דו"ה עדכון אשר מפרט את כל הפעולות טנעטו בכל פריט ופריע. הדו"ה מציין את היתרה הקודמת והיתרה החדשה לשם בקורת הרישום ואפשרות בקורת במהסן. לדו"ח אפשר לצרף הריגים ושגיאות שנתגלו במהלך העדכון. מה 0000000000 ששאמאאשאאמשאה .הממאטההממקחיעטמממאמאה . מ . -י--- 4 - > > החחתה ו . " - 54 - בעיה ג' - ניהול מלאי, חשבונות ספקים וחשבונות לקוחות ו ניהול המלא? - א. קלט: קובץ התנועות וקובץ המלאי. ב. עיבוד: עדכון הרשומות בקובץ המלאי אשר יכולל שינוי , הוספה וביטול. חטובים טונים הנדרשים בעדכון. בתהליך העדכון מתבצעות פעולות טונות שמתיחסות לכמויות הפר?ט במלאי וגם לנתונים אחרים תאוריים כגון: שם הפריע, מחיר, יחידת מדה, ספקים מורשים לפריעט, נקודת הזמנה וכד'. ג. פלט: קובץ מלאי מעודכן, דו"ח עדכון מלאי. דוייחה המלאי מכיל לכל פריט נתונים על: יתרת הפתיחה, התנועות טבוצעו ויתרת הסגירה. הדו"ח יכול לפרט כמויות במלאי וערכים כספיים, מקרים חריגים כגון ירידה ממלאי מינימום, תנועת מלא? גדולה מערך נתון. ניתן גם לציין את הפריטים שלא חלה בהם תנועה במשך זמן רב (לפי תנאי הבעיה) לציון מלאי מת, ועוד. . ניהול קובץ ספקים ולקוחות א. קלט: | קובץ תנועות וקובץ ספקים ולקוחות. ב עיבוד: הישוב יתרת הזכוי/היוב בהתאם לצורך והוצאת חשבונות. רכוז הטבונות. בתהליכי עיבוד מסוימים אפשר להפיק גם הוראות תשלום ולעדכן בהתאם את חשבון הבנק אשר מנוהל במערכת. ג. פלט: קובץ ספקים ולקוחות מעודכן, דו"חות שונים. הדו"חות המופקים יכללו רשימות של היתרות ההתחלתיות בחשבונות ספקים ולקהות עם פירוט התנועה והיתרה הסופית לכל חשבון. דוייחות אחרים יספקו ריכוז של החשבונותיויציינו את היתרות הסופיות בהתכים לפי דרישת המשתמש. בנוסף לכך יוכל המחשב להפיק חשבונות זכוי/היוב אשר ישלחו לספקים או ללקוהות בהתאמה. 3. תרשים הזרימה שלב א' : קלט תנועות למחשב לקוחות: ספקים: ניפוק, החזרה קבלה, החזרה תשלומים תטלומים תנועות מנוקבות נא ב רא 2 ב ב 2 ב מחשב: מעבר קליעה וביקורת דוחייה שגויים שלב ב' : ניהול המלא? מיון קובץ התנועות מעבר ניהול המלא? דו"ח מלא? התרעה על חריגים יי ניהול חטבונות ספקים ולקוחות מיון קובץ התנועות ובץ ספקים ולקוחות עודכן 3 - 7 נתוח הפתרון: תרטים הזרימה לתאור היישום כולל מספו שלבים: שלב א' - קליטת התנועות במחטב. שלב ב' - ניהול קובץ המלאי. שלב ג' - ניהול קובץ ספקים ולקוחות. השלב הראשון מכיל את כל הפעולות הדווטות להעבות מסמכי המקור הטונים אק קלט קויא במחשב, לבדיקת התנועות והפקת קובץ תנועות "טובות". כל התנועות השגויות תרשמנה בדו"ח השגויים אשר יועבר לבדיקה, לתקון וחזרו לתהליך הקלט. שלבים ב' וג' מתחילים בפעולות מיון. בקובץ התנועות כלולות תנועות שונות אשר חלקן מיועדות לעדכון קובץ המלאי בלבד וחלקן-לעדכון קובץ הספקים והלקוחות בלבד,וחלק מהתנועות יכולות לפעול על שני הקבצים. מכיוון שכל התנועות כלולות בקובץ אחד יש למיין את אותו הקובץ פעמיים, עבור על אחד ממהלכי העדכון השונים - ולפי סדר המיון הנדרש ע"י הקובץ שאותו מעדכנים. המיון הראש? יהיה - מספר הקובץ. בתוכו לפי המיון הראש? של הקובץ ובתוכו לפי שדות נוספים בהתאם לנוהל העדכון. מיון התנועות לעדכון קובץ המלאי יהיה לפי מספר כּייט בתוכו תאריך ובתוכו סוג תנועה (קבלה, ניפוק וכד'). הערה: בבעיה קודמת בצענו את המיון לפי מספר פריע, סוג תנועה ובתוכו תאריך, כפי שנדרש באותה בעיה. מיון התנועות לעדכון קנבץ ספקים ולקוחות יהיה לפי מספר ספק/לקוה, בתוכו תאריך ובתוכו סוג הפעולה (תשלום, חיוב וכו') . אם ישנם ברטומה שדות נוספים החשובים לסדר העדכון יש לכלול גם אותם במיון. ן | , | | סרק 3: תרש'ם אזכו' תאור סכמט של עיבוד הנתונים, המוצג ע"י תרשים הזרימה, מספיק עבור הדרגים המנהליים, טעיסוקם אינו קטור ישירות לעיבוד נתונים. מובן מאליו שאין תרשים כזה מספק את המתכנת, שתפקידו לכתוב תכנית מפורטת, לפיה יבצע המחשב את העבודה. תרטים מפורט טל פעולות המחשב נקרא תרטים מלבנ?. הסימנים המקובלים לתרשים המלבני הם: התחלה / סוף הגדרות, פעולות הכנה עיבוד פעולות קלע, פלט טאלה או נקודת החלעה נקודת חבור מעבר אל/מ-דף אחר ו חץ המקשר בין הצורות בעיה א' - הדפסת רשומות בקובץ . תאור הבעיה א. נתון: קובץ סטודנטים בסרט מגנטי. לכל פטודנע יש רטומה. ב פלט: דו'י'ה המכיל את רשימת כל הסטודנטים, כל אחד בטורה נפרדת. ג. עיבוד: הדפסה. יש לעצור בסיום פעולת ההדפסה. 2. תרשים הזרימה לבעיה יחי יבוד מרכזית סרט חידת ע ד מדפסת עיבוד פלט 3 התרשים המלבנ? מפרט את שלבי הע?בוד. 1 התחלה העבר וערוך רשומה בשטח . .8 נתוהח הפתרון ב. ר. התחלה - כל תרשים מלבני מתחיל בסימן זה. החץ מקשר אותו אל השלב הבא. הגדרות - בהגדרות נוהגים לציין שני סוגי הגדרות: הסוג הראשון מתיחס לסביבה העיבוד ( זא6אא0א!צא; ). כאן יש לציין אילו יחידות קלט ופלט ישותפו בעיבוד זה. (היות וכלל זה אינו יטים לגבי כל שפות התיכנות - בחרטים המלבני לא ייכתב דבר, פרט למלה "הגדרות"). הסוג הטני מתייחק אל הטטחים (טדות) במחשב, להם זקוק עיבוד ספציפי זה. בדוגמה טלפנינו הראינו שני שדות כאלו בטם א! ‏ ו - זעס . בקבוצת פעולות זו כלולו גם "פעולות התחלה" ( הס|:ג2!ו3!+!הו) שונות. פעולות ההתחלה המקובלות הן איפוס מונים או הקניית ערכים התחלתיים למטתנים, הדפסת כותרות ופעולות טונות אחרות הנדרשות לפי תנאי הבע?ה. בדרך כלל פעולות אלו מתבצעות פעם אהת בלבד בתהילת התוכנית, ואין חוזרים עליהן. קרא רשומה - זוהי פעולת קלט, (ולכן היא מסומנת בתוך מקבילית) בה נעטית העברת הנתונים מכונן הסרטים אל הזכרון הפנימי במחטב. עם ביצוע פעולה זו מועבר תוכן הרטומה הראשונה לשדה בטם א|. העבר וערוך רטומה בשטה ז/0 - פעולה זו(המצויינת בתוך מלבן) גורמת להעברת הנתונים לשדה בשם ז00, פעולה זו - הכוללת עריכת השורה בתבנית השורה המודפסת - הכרחית במקרה שלפנינו כי הנתונים נכתבו על הסרט ללא רווחים בצורה צפופה ולוא היינו מדפיסים אותם, כפי טהם מצויים על הסרע - ספק אם יכולנו להבין את הכתוב. הדפס טורה - זוהי פעולת פלט (טוב מקבילית) הגורמת להעברת הנתונים אל המדפסת, קידום הניר לשורה הבאה והדפסת הטורה על הניר. סיעוף לנקודה / - בטלב זה של העיבוד בצענו את כל הפעולות הדרושות לקריאת רשומה אחת מן הסרע והדפסתה על ניר המדפסת. ברור, שלגבי הרשומות הבאות עלינו לחזור על הפעולות הללו. יותר נכון על פעולות 5 - 3. נכָנה את פעולת הקריאה כפעולה מס' /, ואזי נוכל למטוך חץ מי'הדפס שורה" אל עגול ובתוכו נרשום את הסימן 4, שהוא נקודת חבור עם העגול , ליד פעולת הקריאה. - 6! - מעתה תחזור המערכת על בצוע הפעולות 3,%,5 בהתאם להיצים המקשרים את הפעולות הללו ביניהן: תקרא רשומה, תערוך אותה כפלט, תדפיס אותה על המדפסת וחוזר חלילה. עד מתי נהיה מעונינים בבצוע במהזור של פעולות 5,4,3 ? כמובן, עד סוף הקובץ, עד שנשלים את הפעולות המתיחסות לרשומה האחרונה שבקובץ. על הסרט המגנעי נמצא סימן מיוחד, המציין את סוף הקובץ והמערכת תבחין בכך תוך כדי קריאת הסרע. הדרוטות לבצוע יש לציין ליד פעולת הקריאה את הפעולות במצב של זהוי "סוף" הקובץ. במקרה שלנו - לעצור. סוף - פעולה זו נמצאת מימין להוראת הקרלאה, ומחוברת עם חץ '"מקווקו" אל התחנה האחרונה.לעתים נבדק סוף הקובץ במפורש ע"י שאלה . מעל החץ נוהגים לציין ]60 (סוף קובץ- 6!|!ו] +0 6ה=) או (רשומה אחרונה - ₪660:6 185% ) . תרשימים לבצוע פעולות חישוב פשועות בדוגמאות הבאות נניח תהליכי חישוב פשועים אשר מהוים קטע ממערך תוכנית מורכב יותר. הבעיות שתוצגנה מיועדות להדגים את הבניה הלוגית של תהליך העיבוד. בפעולות קריאה של רשומות הנחנו שטהתוכנית הסטנדרטית של המחשטב המפקחת על בצוע פעולות הקריאה מזהה את הרשומה האחרונה (במבנה סטנדרעי) המציינת את סוף הקובץ ואשר אינה מכילה נתונים כלשהם. לפיכך, בצענו סיעוף מתוך הוראת הקריאה. כאשר הכרטיס האחרון בקובץ אינו במבנה סטנדרטעי של המערכת יש לבדוק אותו במפורש. נניה למשל שבכרטסת סטודנטים מכיל הכרטילס האחרון את המספר 999999 בשדה מספר סעודנט. התרטים יראה כך: מס' סטודנע שוה פעולות סיום התוכנית ו >7=-- המוה -קהמהמהטקותההטהכקחחהה 0 יי -- - .גג במוד || אצת וער 2 1 א מטהמטיש שישה ה חאה -- 4 בעיה ב' - חבור שני מספרים והתניה יש לחבר שני מספרים ‏ | ו- 8 . אם הסכום אינו זוגי, סיים את העבודה: אם הסכום הוא זוגי, חלק את הסכום ב - 6 וסיים. האם הסכום חלק סכום זוגי ב - 6 התרטים הנכון הוא תרשים המטפל בכל תנאי הבעיה. כאשר ניסוח התנאים והפעולות מדוייק ובהיר ומספר הצעדים הנדרשים הוא הקטן בי ותר, אפטר גם להגדירו כתרשים עוב. בעיה ג' -סכום סדרת מספרים בלולאה , תאור הבעיה יש לסכם את כל המספרים מ - 1 עד 5. פעולה זו * <קעולות חבור של הערכים ו עד 5 בהתאמה,כדי לשלוט על מספר הפעולות |ווצ.. -הן זאת בעזרת מונה, אשר יורה על סיום כאשר ערכו יגיע ל - 5 . כאשר מסכמים למונה יש לאפט אותו לפני תחילת הפ' * איפוס מונה נהוגה במכונות סיכום פשוטות וכן יש לנהוג גם במחשב. התחלה 2 התרשים המלבנ? אפס מונה הוסף ו למונה חבר מונה לסכום המונחים "מונה" ו"סכום" מציינים את הפעולה הנדרשת על ידנו. למעשה בשני המקוים מבוצעת פעולת סיכום למונה, או בשפת המחשב - פעולת חיבור למשתנה . 7 5 ו מווצע 4 3 בדיקת התרשים נתוני ניסוי. ה פ ע ול ה ו. אפס סכום 2. אפס מונה 3 הוסף ו למונה 8. ובר מונה לסכום 5. האם מונה = 5 ? - לא 6. הוסף ו למונה 7 ובר מונה לסכום 8 האם מונה = 5 ? - לא 9. הוסף ו למונה 0. חבר מונה לסכום 21 |[ >ווי. - חבר ו למונה - חבר מונה לסכום - האם מונה = 5 ? - כן - סוי התוצאה הנכונה 5 כדי לבדוק אם התרשים עונה על תנאי הבעיה יט לבדוק אותו בצורה מסודרת בעזרת בבעיה טשלפנינו אין נתוני קלט וע"כ נתחיל מיד בתרשים. לצורך הבדיקה נכין טבלה שתכלול בצד אחד את הפעולה המבוצעת ובצדה השני את מצב המונה והסכום. ( [ 1 2 (=ו+1) )1+2=( 3 )2+!=( 3 6 (=3+3) 5 (=1+א4) )10+5=( 15 בעיה ד' - תרשים עם פעולות קלט/פלט רוב העיבודים במחשבים אינם כה פשוטים. הדוגמא הבאה תציג טיפול ברטומות קלט פלע. ו. תאור הבעיה א. נתון: אל הספריה של אוניברסיעה מסויימת מגיעים כל הספרים החדשים,כאשר אל כל אחד מהם מצורף כרעיס מנוקב. באוניברסיטה שלש פקולטות: מדע? הטבע, מדעי החברה ומדעי הרוה. מבנה הכרעטיסים: שנת 1 שם המו"ל |הוצאה | שם המחבר | שם הספר לאור ₪ העיבוד: יש לקרוא את הכרטיסים, להדפיס דו"ח שבועי לפי מבנה , הנתון להלן. יש להעלות את רשומת הקלט על סרט מגנעי לצווך העיבוד החדש? (חיוב מחלקות, זכוי בהנהח"ש וכד') בתהליך העיבוד המוצג כאן אין מיון קודם של הקלע, לפיכך יודפס הפלט לפי סדר רשומות הקלע. הסיכומים ינתנו בסוף הדו"ח במרוכז. - 66 - : יְ ג. פלט: מבנה הדו"הח המודפס ניתן להלן: ספריות באוניברסיעה - דו"ח שבוע? כ שטם המחבר שם הספר -- : 0 ו בסוף הדו"ח יט להדפיס את סה"'כ הספרים, שנתקבלו עבור כל פקולטה באוניברסיטה (טבע, חברה או מדעי הרוח). אם חסר קוד הפקולטה בכרטיס - יט להדפיס כוכביות בשדה הפקולטה ולהדפיס "שגוי - חסר שם הפקולטה" . הפקולטה המזמינה 2. תרשים הזרימה: ה - | קובץ כרעיס? הספרים מיון במחשב לפי פקולעה וטשם הספר המוזמן קובץ ממויין דו"ה מודפס 3 התרשים המלבני יציג את שלבי העיבוד במחשב, הפקת הדו"ח והסרט לעיבוד החודטי. יש להדגיש את הנקודות הבאות: ו. מונים: בתחילת העיבוד אפשר להגדיר שדות, שימלאו תפקיד של מונה. לפי נתוני הבעיה אפשר גם לדאוג לערך התחלתי, שמונים אלה יכילו. בדוגמה שלפנינו המונים יאופסו בתחילת העיבוד. יש לתת לכל מונה שם מיוחד, שונה מכל שם אחר בתכנית. [ 2. עריכה: כאשר הפלט הוא דו"ה מודפס. יש לערוך את השדות השונים כך, שהשורה | תהיה נוחה לקריאה ותכיל בדיוק את הנתונים שרוצים להדפיס (לא פחות, אך גם לא יותר), העברת שדות שונים לשדות הפלט וסדורם עם מרווחים מתאימים - נקרא. עריכה. 3. בפתרון שלפנינו התעלמנו מבעיית הכותרת ומספור הדפים. מ עפ ותו -י / , ---ודיי ה - רו םשלו - || > שש שש י מקרא : ז - מונה מספר הספרים לפקולעה 'עבע" " " - ₪4 " ייחברהיי ו" ייר וח'י זסז - סה"כ מספר הספרים שהוזמנו . הוסף ו למונה ך הוסף !ו למונה 4 הוסף ו למונה ₪ העבר ''טבעיי לשדה פקולטה העבר 'יחברהיי לשדה פקולטה העבר 'רוחי לשדה פקולטה - 8 התחלה העבר וערוך מונים א,ה,ך בפלט 7" | | חשב: 3+8+ז=דסד העבר וערוך זסד בפלט ערוך והעבר כוכביות לשדה פקולעה ו"שגו להערות ערוך והעבר שמות הספר והמחברים לשדות בפלט בדיקת התרשים המלבנ? כדי לבדוק אם התרשים, או הפתרון המוצג ע"י התרשים, עונה על תנאי הבעיה ?ץש לבצע בדיקתו בעזרת נתוני נסוי. בבעיה המוצגת ישנן פעולות עיבוד המבוצעות עם נתוני קלעט. נתוני הפלט כוללים דו"הח מודפס שגם אותו יש לבדוק לפרעיו. דוגמא לנתוני קלט לבדיקה: שנת [ 2 : | וצ שם הספר שם המחבר הוצאה שו מחיר | 7 המזמין לאור הזמנה | ו אב ו מחבר | ו7ו מול | 4% |-.5! | 3 אב 2 מחבר 2 3 מול 2 6% | -.30 | 2 אב 3 מחבר 2 יל מול 2 8 |-.2!ן [ אב 4 מחבר 5 0 מול 4 4 |-.או 4 אב 5 מחבר 6 3 מול ו 4% |-.5! 3 אב 6 מחבר 3 8 מול 3 1% |-.0! -ר-הרוירטר ויו - - . - 70 - 5. דוגמא לדו"ח הפלע הצפוי בתהליך העיבוד הפקולטה שם המחבר המזמינה טבע מחבר ו רוח מחבר 2 חברה מחבר 2 טבע מחבר 5 אאאאאא מחבר 6 רוח מחבר 3 חיוב לפקולטה - עבע סהייכ חיוב לפקולטה - חברה סהייב חיוב לפקולטה - רוח סהייכ סהייכ ו שגיאה במספר הפקולטה שם הספר אב | אב 2 אב 3 אב 4 אב 5 אב 6 .9 ל"'? .ן ל'? . 40 ל"? . 81 ל''? מחלר !5.- - 71 - בעיה ה' - תרשים מלבני עם תהל?כי חלשוב רבים ---- הדוגמא הקודמת היתה אופיינית ל"עיבוד נתונים מינהלי". מכנים כך נוהל עיבוד בו פעולות קלט ופלט רבות ואילו החיטובים ופעולות אחרות של יהידת העיבוד במחטב מועטות יחסית. בדוגמא הבאה מוצגת בעיה מסוג שונה. בבעיה זו יש פעולות עיבוד רבות יחסית לפעולות הקלט והפלע. | .1 2 תאור הבעיה א. נתון: כרטסת עובדים במפעל. הכרטסת מכילה פרעים שונים על משכורות העובדיו לצורך חישובי משכורת. הכרטסת מכילה כרטיס לכל עובד. ב. עיבוד:יש לקרוא את קובץ הכרטיסים ולחשב: א) המשכורת הממוצעת במפעל. ב) המשכורת הנמוכה ביותר. ג) המשכורת הגבוהה ביותר. / || ג. פלע: יש להדפיס את שלשת המספרים המבוקשים, עם כותרת מתאימה בראש הדף. ‏ הכותרת תכיל את תאריך העיבוד ושם הדו"ח. התרשים המלבנ? מקרא : |אזעז - סיכום מספר העובדים במפעל ואוא - שדה לשמירת ערך המשכורת הנמוכה ביותר. |אאא | - שדה לשמירת ערך המשכורת הגבוהה ביותר " - סיכום ערכי המשכורות של העובדים המפעל. 8 - ערך המשכוות הממוצעת במפעל. התחלה הגדרות; אפוס מונים אזסד, א הערה 1 * העבר מטכורת ל - |אוהא וגם ל-|אגה הערה 2 ** חשב ממוצע לתוך א%/ הוסף | למונה גדסד העבר וערוך העבר מטכורת ל - |אוא העבר מטכורת ל - |אגא הוסף משכרת למונה ₪4 הסברים הערה ו: שגרה (רוטינה) בתחילת התרשים מופיעה צורה הנדסית חדשה: מלבן עם שני קווים בצד. זהו סימן לטגוה (רוטינה) שהיא סדרת הוראות, שפירוטן מופיע במקום אחר. להכנסת הטגרה לתרטים מטרה כפולה: מצד אחד היא מפשטת את התרשים במקום לסרבל אותו, ומצד אהחר הטגרה היא סדרת פעולות שעשויות להתבצע מספר פעמים בתכנית וע"כ אפשר להסוך את כתיבתן ההחוזרת. בדוגמה דלעיל נתיחס למקרה הראשון (מניעת סירבול) פרוט השגוה: ו נקוי שטח ההדפסה. 2) הוספת ו למונה ועריכתו בשעה ההדפסה. 3 העברת ועריכת הכותרת בשטח ההדפסה (כולל תאריך) %) הדפסת הכותרת. 5 נקוי שטח ההדפסה. הצגת השגרה כקטע תכנית, שיתבצע מספר פעמים תובא מאוחר יותר. אם הדו"ח גולש מעל קיבולת של דף אחד תהיה פנייה לשגרת הכותרת בכל מעבר אל דף חדש . הערה 2: העברת המשכורת ל - |א!וא ‏ ול-!אגאהא . במשטך העיבוד המשכוות הנמוכה ביותר נמצאת בשדה !א!8/ והמשכורת של כל עובד החדש מושוית אל תוכן שדה ואוא, אם המשכוות הנבדקת נמוכה מתוכן השדה !א!4% היא מועברת ל - !|א!א . (התהליך דומה לגבי מציאת המשכורת הגבוהה ביותר ולהעברתו ל - |אג). אולם קיימת הבעיה של המשכורת הראשונה , אותה לא נוכל להשוות למטכורות קודמות. במקרה כזה נעביר את המשכורת הראשונה ל - |א!א, כי עד המשכורת הראטונה ועד בכלל היא הנמוכה ביותר, ומקומה לכן ב - |א!א . לפי אותם שקולים המשכורת הראשונה היא גם המשכורת הגבוהה ביותו, לכן נעביר אותה גם ל - |אג . - , + שקיי הדודו י-- וח . ג. - 78 - כדי להמנע מבצוע פעולות קריאה אחדות באותה תכנית אפשר להכין מראש את ערכי המונים |אגא ו - |א!א כדי שאפשר יהיה להשוות אליהם את הרשומה הראטונה. התרטים המלבני טל הבעיה יהיה כעת: התחלה אפוס אזסז, 2 ועברף..פָלמונה ואו ; ס..ס למונה |אגא הוסף ו למונה |דסד העבר משכורת ל - |אוא העבר משכורת ל - | אה הוסף משכורת למונה ₪4 בעיה ו' - זהוי קבוצה קיימים ייטומים רבים, בהם העיבוד מתבטא בקריאת רשומות רבות בעלות אותו מספר זהוי ובהדפסת /=[/=/=--/-=-=-₪-/-/נ:נ:ת--;:..-- |( ססס ו" שורת סכום אחת, לכל קבוצה וקבוצה. ן 1. תאור הבעיה ו א. המכון לרווחה חברתית עורך מחקר על ההוצאות וההכנסות של מטפחות מטכבות חברתיות שונות באוכלוסיה. בשלב מסויים של המחקר רוצים לחשב את ההוצאות הממוצעות לנפט במשפחה, בתקופה מסויימת. ראש המשפחה נתבקש לרטום כל הוצאה במסמך נפוד ולהגיש למכון. ב. במכון ניקבו את המסמכים בכרעיסים במבנה הבא: ההוצאות מספר בל''?ל הנפשות במשפחה לאחר המיון עוברים הכרעיסים, אל המחשב לשם עיבוד. בסוף העיבוד יש להדפיס שורה אחת לכל משפחה לפי המבנה הבא: יי ח וצ אות בסוף הדו"ח יש להדפיס שורה, ובה מספר המשפחות שהשתתפו בשלב זה של המחקר. 4 2. תהליך הפתרון / במקרה טלפנינו הקלט מורכב מקבוצות - קבוצות טל כרטיסים, כאשר כל קבוצה מזוהה עם צ מספר הזהוי של ראש המשפחה. בזמן קריאת הכרטיסים נעביר את תוכן הכרטיס הראשון של הקבוצה לפלט, וכל הכרטיסים טיבואו אחריו - יוטוו (ע"י מספר הזהוי - מכיוון שהם ממויינים!) אל המספר של הכרטיס הראשון. אם מתברר טהכרטיסים שייכים לקבוצה אחת, נצבור את הסכומים במונים. אם יתגלה כרטיס עם מספר זהוי טונה (המסמל קבוצה חדשה - .מטפחה הדשה ) אזי נפסיק לצבור את ההוצאות, נחשב ונדפיס את המידע הדרוש לגב? הקבוצה שזה עתה נסתיימה. רק לאחר מכן נפנה לכרטיס החדש, המסמל כאמור קבוצה חדשה. חפיס הלבנ הגדרות, אפוס מונים אפס מונים סד , הצא : ערוך שדות קלט בשטח 2 הפלט הוסף הוצאות למונה |אזסד הכר + זסד חשב: )8- מס' נפשות הוסף ו למונה | צווהה: העבר וערוך שהזסז ,א/ה בשטח הפלט כרטיס אחרון הוסף ו למונה צנשומה- העבר וערוך )אזסז ,2/8 בשטח הפלט העבר וערוך שדה צ+!|והה] בשטח הפלט לכל בעיה -- פתרון ! -78- חלק שלזשל: תכנות פורטרן אזקס ה |( *כ'* 4( | 0% םג ב פרק ו: ארכ'ב' 0פת פורטרן בפרק זה נדון בשפת התכנות הקרויה פורטרן (א%אמ087ת). שם זה נגזר מראשל התיבות של עס+513א78₪4% 088018 - "מתרגם נוסחאות". שם שפת התכנות מצביע על כך שמדובר בשפה לתכנות מדעי. ואכן, כללי הכתיב של השפה מזכירים את הכתיב המתמטל? המקובל. פרק זה מכוון לערוך "פגישת היכרות" עם השפה ולתת לקורא את ההבנה והיכו- לת לדעת "מה" ו"איך" אפשר לעשות בעזרת שפה זו. הקורא המעונין להרחיב והלעמיק ידיעותיו בתכנות פורטרן ימצא ספרות עניפה בנושא הן בעברית והן באנגלית. שפת פורטרן הינה שפת תכנות עילית (80826ה18 קתנתתהצקסצק 61צ16 תקגה). לכאורה, שפת פורטרן אינה תלויה במחשב מסויים, ותוכנית אשר נכתבה בפורטרן ניתנת להרצה בכל מחשב שיש לו מהדלר (ע6000116) של השפה הזאת. אולם למעשה, אין הדבר אפשרי מכיון שיש פקודות מסויימות שהן תוספות שהוסיפו חברות מחשבים שונות לשפה; לכן אפשר לומר שיש לפורטרן מספר "נלבים". על כן יש צורך לפנות לחוברת הפורטרן המתאימה למחשב שבו מתכוונים לעבוד. הניב אשר נתרכז בו קרוי פורטרן 1% (צ1 אג78ז08%?) והוא המקובל כשפת הפור- טרן התיקנית. כמו לכל שפה אחרת כן גם לפורטרן יש אלף-בית ממנו מרכיבים את המללים, המספרים, הַָביטויים והמשפטים הכלולים בשפה. האלף-בית של פורטרן כולל את הסימ- נים הבאים: סימנים אלפבתיים: אצצט ד 5 ץק כ אאא קת 6 קפסכ 86 ג 27 1 שים לב, כותבים רק באותיות גדולות. על האות 0 (או) רושמים לוכסן כדי להבדילה מהספרה 0 (אפס). סימנים מספריים: 9 8 7 6 5 4 3 2 1 0 - סימנים מיוחדים: % () ,. / * - + בניב פורטרן של י.ב.מ. נכלל גם הסימן ' (גרש). עתה ניגש להכיר כמה מהמרכיבים החשובים ביותר של שפת פורטרן אשר %אפשרו להבין ולכתוב תוכניות פשוטות בשפה זו. מספרים קבועים ומשתנים שיטות להצגת מספרים בפרק זה נדון בשתי שיטות חישוב: שיטת הנקודה הקבועה (%ת201 66א1ת) ושיטת הנקודה הצפה (+ת01? קת108%1ת). בשיטת הנקודה הקבועה מאוחסנים המספרים במלֶת המחשב כמספרים שלימים. מיקומה של הנקודה העשרונית הוא מימין למספר. הצגה זו מגבילה את תחום המספרים, בהתאם ל"גודלה" של מללת-המחשב. ע"י שינוי יחידת המדה אפשר להציג כל מספר כמספר שלם, כמו למשל להציג ושקל בגרמים במקום בקילוגרמים. החישובים מתבצעים בדרך דומה לדרך הבצוע של חשובים אריתמטיים. כדי להתגבר על בעיה זו נוצרה שיטת הנקודה הצפה. בשיטה זאת מלצגים את המספר על-ידי מנטיסה ומעריך (ראה הסבר מושגים אלה להלן). מללת המחשב מחולקת לשניים: חלק אחד מכיל את המעריך והחלק השני מכיל את המנטיסה. שיטה זו מאפשרת לאחסן תחום גדול יותר של מספרים אם כי מפסידים דיוק, במספר הספרות המשמעותיות. הטיטה דורשת מעגלים אלקטרונים שונים מאלה אשר דרושים בחישוב בשיטת הנקודה הקבועה.. בפורטרן וגם במחשב מיוצגים כל המספרים בעל? נקודה עשרונית בשיטה הנקודה הצפה. ההפרדה הבסיסית היא בין המספרים השלימלם (5ע686פצת1) שהחישובים בהם נעשים בשיטת הנקודה הקבועה לבין המספרים הממשיים (5ע6פועוח 681) אשר החלשובים בהם נעשים בשיטת הנקודה הצפת. ישנה הבחנה נוספת בהצגת המספרים: בין קבועים שהם ערכים מספריים אשר לא משתנים בזמן ביצוע החישובים, לבין משתנים אשר ערכם יכול להשתנות בעת ביצוע .)וו-חתּתָּּ2 0999000000 0000000 - 83 - התוכנית. ההכחנה האחרונה זהה למעשה לזאת המקובלת באלגברה. בהצגת המספרים נבדיל, אם כן, בארבעה הסוגים הבאים: קבועים שלמים, קבועים ממשיים, משתנים שלמים, ומשתנים ממשיים. א. קבועים שלמלם (%5ת5%8ת00 67ק62זת1) קבועים אלו מיוצגים על-ידי סדרה של ספרות ללא נקודה עשרונית. המספר המקסימלי המותר של ספרות שונה במחשבים השונים, והוא נע בין 10 ל-14. דוגמאות לקבועים שלמים: 2315 , 7987 , 132. סימן ה"-" (מ?נוס) חייב לבוא לפנל המספר כאשר המספר הוא שלילי, למשל: 735- , 15- . אם המספר הוא חיובי יכול לבוא לפניו סימן ו "+" אך אין הכרח לרשום אותו. כך למשל 127+ ו 127 מייצגים אותו מספר, וייקלטו ע"י המחשב בצורה זהה. המושג "פסיק" (,) אינו קיים בהצגת מספרים כדי להדגיש את האלפים וכד'. יש לשים לב לעובדה שנקודה עשרונית אסור שתופיע בהצגה של קבוע שלם. חסרונה של הנקודה העשרונית הוא אשר מורה למחשב שהנתון הוא קבוע שלם ושהחישובים ייעשו בשיטת הנקודה הקבועה. ‏ זכור: בפורטרן יכולה להיות למספרים 3.0 ו-3 משמעות שונה אם כי ערכם שוה. ב. קבועים ממשיים (%5ת8+5%ת60 641א) הקבועים הממשיים מלוצגים ע"י סדרה של ספרות עם נקודה עשרונית. גם כאן המספר המקסימלי של הספרות משתנה ממחשב אחד למשנהו. הכללים לגבי סימן ה-"+" וסימן ה-"-" הם כמו לגבי קבועים שלמים. דוגמאות לקבועים ממשיים: 17.8+ , 1392.5- , 15.7 , 0.723. הנקודה העשרונית יכולה לבוא לפני המספר: למשל 513. אשר פירושו הוא 0.513, או אחריו: .1725 והכוונה ל-1725.0. קיומה של הנקודה העשרונית מורה שהמספר "ממשי?" והחישובלם אשר מספר זה קשור בהם יבוצעו בשיטת הנקודה הצפה. דרך נוספת להצגת המספרים הממשיים היא ההצגה המעריכית (אקספוננציאלית). את המספר 173000000000 נוכל להציג באריתמטיקה המקובלת כ-1011א1.73. המספר הכופל את החזקה של 10 קרוי מנטיסה, והחזקה אשר בה יש להעלות את 10 קרויה בשם מעריך (אקספוננט). הצגה דומה להצגה האלגברית המתוארת לעיל קיימת גם בפורטרן: המספר 1.. 1 ירשם בפורטרן כך: 1.73511. נרשמת לשמאלה של האות 5 והמעריר נרשם לימינה. המעריך הוא מספר שלם ואין להוסיף לו נקודה עשרונית. אם המעריך טלילי, יבוא לפניו הסימן "-" (מינוס). למשל המס- פר 2. 0 ירסם כ- 0.975-12. מעריןך חיובי אפשר, אך אין הכרח, לציין ע"י הסימן "+". כך למשל 721.25+07 ו-721.2507 ו-721.287 מליצגים אותו המספר. 8 מסמלת את בסיס החזקה 10, המנטלסה בשיטת ההצגה המעריכית במחשב מקבלת המנטיסה ערך קטן מ-1, ובהתאם לכך נקבע ערכו של המעריך. המשתמש מציג את המעריך לפ? חזקות של 10 אולם במחשב מוצג המעריך לפי חזקות של 8,2 או 16. להלן מספר דוגמאות נוספות של מספרים ממשיים הכתובים בצורה מעריכית: ערכו של המספר הצגה בצורה מעריכית הצגה במחשב 0.2 13 1 0 .2 7 .1 09 0.3 10 17 9 -7 .8 - 5 4 13 100 .. משתנים שלימים (81180165/ ש626:ה1) המשתנים השלימים מלוצגים על-ידי צירוף של אחת עד שש אותיות ו/או ספרות, ואסור להכליל בשם של משתנה סימנים מיוחדים. התו הראשון המרכיב את שמו של המשתנה השלם חייב להיות אחת מהאותיות א, !!, 2ע, א, 1, 1. שאר התוים יכולים להיות צירוף כלשהו של אותיות וספרות. דוגמא לטמות חוקיים של משתנים שלימים: תתקא ; 712 ; א ; דאע160 הערה: בניבים אחדים של פורטרן (למשל ב-026) יכול המשתנה להיות בן 7 תוים. ד. משתנים ממשיים (%81185165/ 80681) הכלל לבניית שמות של משתנים ממשיים דומה לזה של המשתנים השלימים. ההבדל היחיד הוא שהתו הראשון בשם של משתנה ממשי חייב להיות שונה מהאותיות | א, א, 2ע, א, 1 1. למשל: 8178 ; ₪0 ; 0007 ; א ; א2857. כל אלה הם שמות חוקיים של משתנים ממשיים. פעולות חשבון פעולות החשבון "המוכרות" לפורטרן הן הפעולות האלגבריות הרגילות: חיבור, חיסור, כפל, חילוק והעלאה בחזקה. אולם לא כל סימני הפעולות זהים לאלה של האלגברה. סימני הפעולות בפורטרן הם: + חיבור - חיסור * כפל / חילוק ** העלאה בחזקה סכום של שני מספרים 3 ו-8 מיוצג בפורטרן ע"י 4+8, הפרשם ע"י 8-, ומכפלתם תכתב כך 8*. חובה לרשום את סימן הכפל שלא כמו באלגברה, .בה מותר לרשום 8 . המנה 4:8 תכתב כ-4/8 ואילו 5 (8 בחזקת 8) ירשם כך 2**8. לא קיימים סימנים מיוחדים להוצאת שורש למשל. פעולה זו תוצג ע"י פעולת העלאה בחזקה כמו 3**0.5 כדי לבטא שורש רבועי של 8. פעולות כמו אינטגרל או סיכום סדרת מספרים יוצגו ע"י פונקציה מתאימה, כפי שיוסבר בהמשך. ביטויים ארילתמטיים כללי הבנייה של ביטויים אריתמטיים בפורטרן דומים מאד לכללי הבנייה של ביטויים אריתמטלים במתימטיקה. נתבונן בהשוואה בין מספר ביטויים הכתובים בכתיב המתימטי המקובל ובכתיב של פורטרן: פורטרן כתיב מתימטי מקובל 1 3.0*6-+ 0+ 2 2+8**2**ג 7 3 5 **(8*) 8 4 א0פ*5. 0 50% 5 א*2+3**[+1 3+ 6 דאט0/ (.4+2) 2 .- י .ו - 86 - אפטר להשאיר תו ריק (%ח518) בין משתנה לבין סימן הפעולה החשבונית או סוגרים, כדי להקל על קריאת הביטוי. אסור כמובן לעשות זאת בין אותיות של שם משתנה או בין שתי הכוכביות של סימן העלאה בחזקה. דומה טשטבלה משווה זו מוכיחה שאכן הצגת ביטויים בפורטרן הלא "טבע?ת" למדי. עם זאת, יש ללמוד את הכללים השונים הקשורים בבניה נכונה של ביטויים אריתמטיים - וכל זאת כדי שנוכל להגדיר למהדיר במדויק מה כוונתנו, ולאלזה ביטוי אנו מתכווניס. כלל 1: כל הקבועים והמשתנים בביטוי אריתמטי חייבים להיות מאותו סוג: כולם שלימים או כולם ממשיים. היוצא מן הכלל היחיד יצויין בכלל מספר 2. בניבים רבים של פורטרן, כמו למשל אלו הפועלים במערכות 360 ו-370 של 18% מרשים מידה מסויימת של ערבוב שלימים וממשיים באותו ביטולי. הבה נחזור לדוגמאות שראינו קודם. בשורה הראשונה מופיע הביטו? 5:6 :תחיבתו של ביטוי זה בפורטרן תהיה 3.0*6 (או 3.*6) וזאת משום העובדה ש-6 הוא משתנה ממשי. לכן, לפי כלל מספר 1 יש לרשום את הקבוע 3 בצורה של קבוע ממשל, כלומר 3.0 או .3 . בדוגמא מספר 5 מופיע א%י:3 אשר יכתב בפורטרן כ-א%*3. מכיון ש-% הוא משתנה שלם ירשם גם הקבוע 3 כקבוע שלם, כלומר: ללא הנקודה העשרונית. כלל 2: בפעולת העלאה בחזקה, יכול מעריך החזקה להיות מספר שלם או מספר ממשל מבלי להתחשב במספר שמעלים בחזקה. זאת שלא כמו בכלל 1, המחייב הצגה אחידה של המספר. לדוגמא: כל הבטויים האלה הם חוקיים אית . יש ' 0.5**א ** דא 6 5**ת כלל 3: הפעולות בפורטרן מתבצעות לפי סדר העדיפויות הבא: א. העלאה בחזקה ב. כפל וחילוק ג. חיבור וחיסור פירוש הדבר שאם לא ניתנת למהדיר כל אינפורמציה נוספת על הסדר בו עליו לבצע את הפעולות (בעזרת סוגריים, למשל, כפי שמוסבר בכלל הבא) יבוצעו פעולות החזקה, אחריהן פעולות הכפל והחילוק ולבסוף פעולות החיבור והחיסור. פעולות - 87 = == בעלות אותה העדיפות מתבצעות משמאל לימין. הבה נדגים כלל זה. ‏ יהיו 4=5.0, 8=2.0, 0=7.0. הבטוי 8-3.*6 יחושב בשלבים הבאים: | (1) 21.0 = 3.*7 (עדיפות הכפל גבוהה מזו של החיבור והחיסור) 2.0-21.0 =-19.0 )2( הביטוי 3/8*6 אשר בו הפעולות הן באותה עדיפות יחושב משמאל לימין. כלומר: 5./2. = 2.5 )1( 2.5"7. 5 17.5 )2( נתבונן שוב בדוגמא זו. הפעולות שהן בעלות אותה עדיפות חושבו משמאל לימין. הביטוי 8*6/( מתאים אם-כן לביטוי 7 בכתיב המתימטל המקובל. אבל אללו רצינו לחשב את ל הרי שהיינו צריכים להשתמש בסוגריים כדי לשנות את סדר העדיפויות ולרשום את הביטוי כך: (4/)8*6. השימוש בסוגריים מוסבר בכלל הבא. כלל 4: משתמשים בסוגריים כדי לצ?ין פעולות שיש לבצען תחילה כפי שמקובל בארית- מטיקה. סדר הפעולות הנתון ע"י כלל 3 ניתן אם-כן לשינוי כהתאם לרצונו של המתכ- נת. אם יש "סוגריים בתוך סוגריים", יחושב תחילה הביטוי בסוגריים הפנלמלים ואחריו הביטוי אשר בסוגרלים החיצוניים. לאחר שחושבו הביטויים בסוגרלים ימשיך המחשב לבצע את הפעולות החשבוניות לפי כלל 3. דוגמא: כדי לחשב את הביטוי .3/(כ-7.*)4 - ( 2.*))4+8(**2+6**3 כאשר: .2=4, .60=3, .8-2, .1= יבצע המחשב את הפעולות הבאות: (1) 1.4 (8+) (2) .9 **.3 8(**2+/) (5) . 527**, 5 6**3 (4) ...9 8(**2+6**3+) (5) . 2.*25,=72 (2*))1+8(**2+6**3 (6) 1-2 פ-4 (7) .1" (.3-).7 (ס-7*)4 (8) .7 . 3/ (ם-7*)4 (9) )6 . 3 (ם-7*)4-(2*))4+8(**2+6**3 4 - 88 - כלל 5: סימן של פעולה חשבונית אינו יכול להקדים את סימן ה-"+" או סימן ה-"-". אכל מהחר להשתמש בסוגריים כדי להקיף את הקבוע או המשתנה אליו מתייחס הסימן. לפי כלל זה אסור: 18 ,0+-1 ,8-+/ , 8-*/ ויש להחליפם ב: (8-)/3 ,(1+)-1 ,(8-)+3 ,(8-)*ה משפטי השמה ומושג השויון הביטוי האריתמטי הוא צרוף של איברים הקשורים ביניהם בפעולות חשבון. לאחר בצוע החיטוב של הביטוי יש להקנות את הערך המתקבל למשתנה כלשהוא כדל טאפשר יהיה להמשיך ולהתיחס לערך זה בהמשך. קביעת ערן של ביטוי למשתנה נעשית ע"י הוראה הנקראת "משפט השמה" זת6ת6ז3ז5 זת6תתק1551). מבנה משפט ההשמה דומה למשפט השויון האלגברי וצורתו הלא: בטו" אריתמטי = משתנה -צד השמאלי של השויון יופיע רק משתנה אחד. ‏ "הביטוי" יכול להיות גם הוא משתנה או מספר בודד. לדוגמא: 5 > א 25 + [א000 = פרושו של מושג השויון (=) במשפט ההשמה הוא: חשב את ערך הביטוי המופיע בצד ימין של ההוראה וקבע למשתנה אשר מופיע בצד שמאל את הערך שחושב. למשל, אם למשתנה בשם 1 יש הערך 3 ובתוכנית יופיע המשפט 1+7=% תתבצע הפעולה הבאה: הביטוי בצד ימין יחושב כ-3+7, היינו 10. ותוצאה זו תהיה הערך החדש של המשתנה %. באופן דומה: ערכו של משתנה בשם 50% הוא 5.0 וערכו של משתנה בשם א הוא 0 יט לחשב את א + 58 = 5% הפעולה הראשונה תהיה חישוב %+50%, כלומר .7.=12+.5, ולאחר מכן - קביעת ערך זה למשתנה 50%. שים לב שבמשפט זה ניתן הערך החדש למשתנה 50% והוא שי?נה - 89 - את ערכו הראשון. אם בהמשך התוכנית תופיע הוראה זהה א+!5!3-=|/!5, תהיה הפעם התוצאה חיבור של .12 ל-.7 והתוצאה .19 תקבע כערכו החדש של 58%. בשיטה זו משתמשים כדל ליצג מונה: אם חוזרים על ההוראה 1+%-א או 1=1+1 פעמים אחדות, היא גורמת בכל חזרה לשנוי (או העלאת) ערכו של המשתנה ב-1. בדרך כלל יהיו כל המספרים והמשתנים במשפט בעלי אותה שיטת יצוג - מספרים שלימים או ממשיים. החלשוב של הביטוי יבוצע לפי שיטת הייצוג של המספרים המו- פיעים בו והערך הסופ? ינתן למשתנה שהוא בעל שיטת יצוג זהה או שונה. כאשר מספר שלם מועבר למשתנה ממשי, ערכו של המספר לא נפגע. אולם, כאשר מעבירלם מספר ממשי למשתנה המליצג מספר שלם נקטע החלק העשרוני של המספר. לדוגמא: - אם 8=2.6 וכותבים 8-א יהיה ערכו של א בסוף הפעולה - 2 בלבד. - אם מחלקים מספרים שלימים מאבדים את החלק העשרוני של התוצאה גם אם מעבירים אותה למשתנה ממשל. - אם מחלקים שני מספרים ממשיים ומעבירים את התוצאה למשתנה שלם - מאבדים את החלק העשרונ?י של התוצאה. לדוגמא: 5=, 8=3 ומחשבים 8/-/ ערכו של א יהיה 1. לאחר הכרת אבני היסוד של השפה: האלף-ב?ת, המילים (קבועים ומשתנים), הפעלים (פעולות החשבון) והמשפטים (משפטי-השמה) אפשר לכתוב תוכנית לפתרון בעיה. ת ר ג * ל: יש לכתוב תוכנית לפתרון המשואה הרבועית 2 6>0+א5פ+ אב שמא - "6/0 / כאשר .8=2, .5=3, .1-=0. פתרו כ = ו המשואה הוא % 2 1* את הביטול 6 מקובל לכנות "דלתא". כדי לכתוב את התוכנית בפורטרן יש לכתוב את שמות המשתנים השוני?ם באו- תיות גדולות. כמו כן רושמים שמות משתנים 1א% ו-2א% בהתאמה עבור השורשים (אפשר לרשום גם שמות אחרים) כאשר הספרות הן בגובה האות ולא כמו בסימון אינדקס. הידש ₪ / / / /-/-/222!)!)/7/7- 00 | התרת הבעיה בפורטרן תיכתב בצורה הבאה: 8**2-4.*/*6("*5)=%כ (8+0512(/)2."8-)=1א (ה*.1(/)2ם8-0-)=2א נסה נא להבין בעצמך את הכתוב ושים לב לדמיון שבין כתיב הפורטרן לכת+ב האלגברי המקזבל. הוראות התוכנית מציגות בשלבים את דרך הפתרון והן מבוצעות בזו אחר זו לפי סדר כתיבתן. ההוראות הרשומות כאן מכוונות לפתרון המשואה והן אינן מייצגות עדיין תוכנית שלימה. שלשת המשפטים הראשונים של התוכנית קובעים את הערכים של דמי המשואה הרבועית: ההוראה .3-2 קובעת לָמשתנה בשם ‏ את הערך .2. וההוראות .8-3; .1-=6 קובעות את הערכים של המשתנים 8 ו-6 בהתאמה. -17) המשפט הרביעל מחשב את הבלטוי | 486-"9/ וקובע את ערכו למשתנה בשם מםק. ולבסוף, שתי השורות האחרונות מחשבות את שני השורשים של המשוואה ומאחסנות את התשובות במשתנים %1 ו-2א בהתאמה. משפטי בקרה הביצוע הרגיל של הוראות התוכנית הוא לפי סדר כתיבתן, בזו אחר זו. לעיתים יש צורך לחרוג מסדר ההוראות כדי לבצע הוראות אחרות, להפסיק את ביצוע התוכנית או לבצע פעולות אחרות ביצוע פעולות אלו נעשה ע"י משפטי בקרה (%5ת5%8%606 01ע%ת60), אשר כו- ללים הוראות שונות: הוראות דילוג, משפטי תנאי, הוראות עצור והוראות המשך ועוד. הפתרון שהוצג עד כה למשוואה הריבועית אינו שלם. נבחרו מקדמים 4,8,6 כאלה שעבורם 0 <46 - 2 כלומר, למשוואה אכן יש שני פתרונות. לפני ביצוע החלשוב - 9! - יש לבדוק את ערכו של ביטוי זה כדי לדעת אם ניתן לחשב ממנו את השורשים, אם לאו. אפשר להטיל על המחשב את ביצוע הבדיקה, ולפעול בהתאם לתוצאתה. כלומר לעבור לקטע תוכנית אשר יבצע את החישוב המתאים כאשר תנאי מסויים מתקיים. לשם ביצוע הבדיקה: השואה, החלטה וסיעוף לקטעה תוכנית נדרש יש צורך להעזר במשפטי הבקרה המתאימים. כדי שאפשר יהיה "לעבור" או "להסתעף" לקטע תוכנית אם מתקיים תנאי מסויים יש צורך לזהות את ההוראה הראשונה בסדרת הוראות זו. הזהוי נעשה ע"י מספר הוראה או תוית (18561). מספר ההוראה, או התוית, הוא מספר שלם בן 5 ספרות לכל הלותר, והוא ירשם לשמאלה של ההוראה עצמה. בדרך כלל תנתן תוית רק להוראות שמעונינים בזיהויין, וכמובן שאין לתת לשתי הוראות את אותה התוילת. לא חייב להיות כל סדר בכתיבת מספר? ההוראות. הוראה עם תוית יכולה להיראות כך: 17.2*6- **ם= 5 4+ =א 208 כדי לעבור אל הוראה רצויה ?לש להשתמש בהוראת הסיעוף ת 70 600. כאשר תח הוא מספר ההוראה שאליה מסתעפים. לאחר ה"סלעוף" אל ההוראה ת ימשך ביצוע התוכנית מהוראה זו. זהו סיעוף בלתי מותנה, שלא כמו במשפטי ההתניה שבהם קיימת אפשרות ברירה. כדי לעצור את ביצוע התוכנית יש להשתמש בהוראת העצירה ל510. בהגיע התוכנית להוראה זו לופסק ביצועה והפיקוח יעבור אל תוכנית הניהול (מערכת ההפעלה). בכתיבת תוכניות קיימות שתי הוראות נוספות, שאינן חלק מהתוכנית אלא מיועדות למהדיר: ההוראה סא חייבת להיות האחרונה בכל תוכנית פורטרן, שלא כפקודת ה-?510 | אשר גורמת להפסקת הביצוע של התוכנית, ל-פאם אין כל משמעות מבחינת הביצוע של התוכנית. היא מציינת למהריר שזהו הסוף הפיזי של תוכנית המקור וכרטיסים שיבואו לאחר מכן אל?נם כרטיס? התוכנית. אלו יכולים להיות כרטיסי בקרה נוספים למחשב, נתונים לתוכנית, תוכנית אחרת וכו'. בניבים מסויימים של פורטרן (למחשבי 626) יש להקדים את התוכנית בהוראה 0684%אק. המכנה של ההוראה הוא: (דשקזש0 ,ושקא1) 6תגת א4ה6קהק הוא שם התוכנית, משתנה בן 7 תוים כאשר הראשון ביניהם הוא אות. בסוגריים מציינים ד0?א1 ,זע?7ז00 כאשר התוכנית נדרשת לבצע פעולות 6חהת קלט ופלט. לדוגמא: (זחשקדטק , דטקא1) ומסק מטפטי התנייה מסשפט התניה מורה למחשב לבדוק ערכו של ביטוי או של משתנה ולהסתעף להוראות רצויות בהתאם לתוצאות הבדיקה. קיימות צורות אחדות למשפט?י התניה. המשפט הבסיסי הוא משפט "אם" +ת6ת6ז5:3 "1. משפטי התניה אריתמטלים מבנה משפט התנאי האריתמטי הוא בת ,בת ,ות (8) ם1 כאשר 8 הוא ביטוי אריתמטי ו--ת,,ת ות מספרי הוראות. תמיד יהיה סיעוף בביצוע הוראה זו והתוכנית לא תמשיך אוטומטית להוראה העוקבת. בזמן ביצוע הוראה זאת מחושב ערכו של הביטוי האריתמט?ל 8 ואז: א. אם 8>0 תבוצע ההוראה שמספרה ות ב. אם 8-0 תבוצע ההוראה שמספרה כת ג. אם 8<0 תבוצע ההוראה שמספרה בת באמרנו "תבוצע ההוראה שמספרה .ח", למשל, כוונתנו היא שמסלול ביצוע 1 התוכנית יעבור להוראה ה וימשיך מאותה נקודה ואילך. דוגמא: 29, 3, 18 (5.0-א) ת1 פירושו אם 5.0>0-א עבור להוראה מספר 18 והמשך משם את ביצוע התוכנית אם 5.0-0-< עבור להוראה מספר 35 והמשך משם את ביצוע התוכנלת אם 5.0:0-א אבור להוראה מספר 29 והמשך משם את ביצוע התוכנית - 93 - נתרגל את נושא משפטי ההתניה כבפתרון הבעיה הבאה: יש לחלק את המספר ]101 במספר זא600 ולבדוק את התוצאה. אם המנה היא מספר שלס - יש להפסיק; ואם המנה כוללת ערך עשרוני - יש להוסיף את המשתנה 8 ל-זא600, לחלק ולבדוק שוב. שורה . 15 דד . 4> 60081 5 דאעק0/דקד-דוטפפת | 50 דןט5פת=א ,1‏ (דט5עה-א) קך 8 דאט-זאט60 - 1 0 ד 60 | 2 פא > 00 0 ₪5 ₪ 000 ₪001 ₪ שש - הסבר לתוכנית: בטורות 1, 2, 3 נקבעו ערכים התחלתיים לבעיה. תוצאת החילוק בשורה 4 תתן מספר ממשי (כולל חלק עשרוני). בשורה 5 מעבירים את המספר למשתנה שלם, וע"י כך יאבד החלק העשרוני שלו. הבדיקה "1 בשורה 6 מכוונת להשוות את הערך של המשתנה לערכו של המשתנה 8550/7. אם החלק העשרוני היה שונה מ-אפס לא יהיה שויון ויבוצע סיעוף להוראה מספר 1. אם החלק העשרוני שוה לאפס, השויון יתקיים ויבוצע סיעוף להוראה 2 (בשורה 9)והתוכנית תסתיים. בהוראה מספר 1 בשורה 7 מוסיפים ל-1א600 את הערך 8, ובשורה 8 מבצעים סיעוף בלתי מותנה אל ההוראה מספר 50 שבשורה 4. נחזור לפתרון המשוואה הריבועית, ונוסיף בדיקה של הביטוי 2-4.**0יי8 ושאר משפטי הבקרה הדרושים. התוכנית המשופרת תיראה כך: ששששי 1 .= 2 .4 3 2-=0) 4 8**2-4,*(*6=-50מם 5 3 (0050)ת1 6 ((*.8/)2-=1א | 9 7 2=1<א 8 5 0ד 60 9 ' 05150**0.5=מק | 25 10 (1(/)2.*8כ+8-)=1< 11 (1(/)2.*4םכ-8-)=2א 12 | 5 135 סאם הסבר לתוכנית: הביטוי שרוצים לבדוק הוא 8**2-4.*(*6. מחשבים אותו בשורה 4 ומאחסנים אותו במשתנה בשם 5050. בשורה 5 בודקים את ערכו של משתנה זה. אם הערך הוא אפס פירושו שלמשוואה שני פתרונות זהים הנתונלם ע"?ל אל "7 ו" ולכן פונים להוראה מספר 9 בשורה 6 המחשכת את 1א. כיוון ש-2א שווה ל-1; מבצעים את ההוראה בשורה 7 אשר מעבירה ל-2א את ערכו של 1א. לאחר חישוב שנל הפתרונות פונים לפקודה מספר 5 (בשורה 12) ומסיימים. אם ערכו של המשתנה 251506 הוא חיובי,פונים להוראה מספר 23 (שורה 9) המחשבת את 05 אשר ערכו נתון ע"י 25150 וממשיכם בחישוב 1א ו-2א. לאחר זאת מגיעים להוראה מספר 5 (בשורה 12) ועוצרים. הערה: הקורא בודאי שם ליבו לעובדה שמספרי ההוראות אינם חליבים להופיע בסדר עולה. כל מספר (פרט ל-0) בעל 5 ספרות או פחות - מתקבל. משפטי התניה לוגיים משפט התנאי אותו הכרנו עד כה בודק את ערכו של ביטוי אריתמטי ביחס ל-0 (קטן, גדול או שווה), ופונה להוראה הבאה בהתאם לתוצאת ההשוואה. משפט התנאי הבא שנלמד קרוי "משפט התנאי הלוגי" (%ח6ח586 "1 101681) והוא שונה מקודמו בכך שאינו בודק ביטוי אריחמטי אלא ביטוי לוגי. היינו, הוא בודק האם הביטוי המתאים הוא "נכון" או "לא-נכון", או אט יחס מסוים מהקיים. צורתו של משפט זה הילא: %ת6ח5%8%6 (ת65510+קא6 1021681) ת]. %ח8:606:ת5 הוא הוראה שיש לבצעה אם הביטוי הלוגי שבתוך הסוגריים הוא "נכון", כלומר אם התנאי הכתוב בתוך הסוגריים מתמלא. לאחר ביצוע %צת6ת55356 תמשיך התוכנית במשפט העוקב, אלא אם זהו משפט 70 60 המורה על סיעוף. אם הביטוי הלוגי "אינו נכון", כלומר התנאי אל?נו מתמלא - תופנה התוכנית להוראה העוקבת את משפט 15 ולא הכצע את %צת5%4%676. ל-זת6ת5:8%6 ישנם מספר כללי כתיבה: למשל, הוא אינו יכול להיות משפט תנאל. קיימות מספר צורות של ביטויים לוגיים. להלן יוצגו הבילטויים המשמ- שים להשואת יחסים של ערכים מספריים. ברשימה זו מייצגים 4 ו-8 משתנים או ביטויים ארילתמטיים או ערכים קבועים - פירושם של הביטויים רשום לצלדם: 4 שווה ל-8 1וףם 8. 2 4 לא-שווה ל-8 1 ססא 8. פא. ג 4 גדול מ-8 ח1(8 צ68%6ע6 8. 4 גדול או טשווה ל-8 1 עס ע0768%6 8.. 4 קטן מ-8 תהּתך 0655 2.8 4 קטן או שווה ל-8 1 עס 655 8. . הערה: הנקודות (.) צריכות להיות צמודות לסימני היחס נבהיר את השימוש בהתניה הלוגית בעזרת מספר דוגמאות: 0 ד 60 (צ.61.א) אן 0 ד 60 בכניסה למשפט ה-"1 יושוו הערכים של * ושל צ. אם א גדול (ממש) מ-צ (כלומר, אם הביטוי צ,61.א הוא "נכון") תפנה התכנית לבצע את ההוראה טמספרה 50. ואל?ל!ו אם המשפט "לא נכון" (היינו אם * קטן או שווה ל-+) תופנה התוכנית להוראה מספר 70. דוגמא נוספת: 0 (1*.17.12) תך 8=4 .0 אם 1*3 קטן מ-12 אזי ינתן ל- הערך 3.0, ולאחר מכן יבוצע המשפט 8=4.0 ואילו אם ערכו של הביטוי 1*1 גדול או שווה ל-12 לא יבוצע המשפט 4=3.0, אלא נפנה מלד למשפט העוקב, היינו, לביצוע המשפט 8-4.0. אפשר לסכם את האמור לעיל בתרשימים הבאים: "נכון" "לא נכון" או: יי "לא נכון" - 97 - אפשר לבנות ביטו? לוגי מצרוף של ביטויים הממלאים תנאים שונים. הבדיקה של הוראת "1 תתיחס לביטוי הלוגי המורכב. צרוף של ביטויים יכול להעשות באמצעות אחת מהוראות הפעולה הבאות: '"לא'' . דקא. י'ג ם'"' . סאא. ייאו .3 העדיפות לבצוע ההוראות היא בסדר כתיבתן לעיל. הנקודות (.) חייבות להופיע צמודוית להוראות הפעולה. דוגמא: אם 3 שוה ל-8 וגם 6 גדול מ-2 יש לבצע סיעוף להוראה 50. 0 70 600 (6.67.5.מא.0.8ם.א) 1 כלומר, הסיעוף יתכצע רק כאשר שני התנאים מתמלאים. בצורה דומה אפשר לכתוב: 7 קד 60 ((ם.מא.1*2.27.5(.08)8/2.3)) חך כאן יבוצע הסיעוף כאשר לפחות תנאי אחד יתמלא ("או"). הסוגריים החובקים כל ביטוי לוגי רצויים לשם בהירות אולם אינם הכרחיים. עד עתה הצגנו את הוראת "1 עם הוראת סיעוף אחת או משפט המתבצעים כאשר התנאי? הוא "נכון". אם התנאי"לא-נכון" - מתבצעת ההוראה העוקבת. קיימת אפשרות נוספת להצגת המשך בצוע ההוראות לאחר הוראת ת1: ח,<; (ת21765310קא6 1021681) ק[ כאשר הביטוי הלוגי "נכון" - יבוצע סיעוף להוראה שמספרה %. אם הביטו? "לא נכון" - יבוצע סיעוף להוראה שמספרה ת. לדוגמא: 7,25 (8.50.6) 15 הסיעוף להוראה 7 יבוצע כאשר 5 שוה ל-6. הסיעוף להוראה 25 יבוצע כאשר 8 אינו שוה ל-6. דימע" 7 , : | - 98 - טופס הקידוד - דוגמאות התוכניות שהוצגו עד עתה נרשמו בצורה חופשית, ללא הקפדה על המבנה. ָ כדי למסור את התוכנית למחשב יש לנקב את ההוראות בכרטיסים אשר משמשים קלט לתוכ- נית המהדיר (+6000116). את ההוראות יש לנקב במבנה מוגדר ולשם כך משתמשים בטופס קידוד. הטופס מורכב משורות וטורים, בכל שורה נרשמת הוראה אחת בלבד, ובהתאם לכך ינוקב כרטיס אחד לכל שורה. בכל שורה 80 עמודות או טורים, המקבילים ל-80 הטורים של הכרטיס. כל תו (אות, ספרה או סימן) ירשמו בטור אחד, בנפרד. רווח בין תוים נוצר כאשר לא נרשם דבר והטור ריק או את518. לכתיבת התוכנית בטופס הקידוד מספר כללים: הקלט למהדיר נרשם בטורים 1 - 72:וכולל את שדה מספר ההוראה, שדה סימון-המשך ושדה ההוראה: א. הטורים 1 עד 5 נועדו לכתיבת "מספר ההוראה" או "תוית" - 18061. מספר זה הוא בעל 5 ספרות לכל היותר ורצוי לרשום אותו מוצמד לצד ימין של השדה. ב את ההוראות רושמים בטורים 7 עד 72. כתיכת ההוראות בטורים אלו היא חופטית למדי. המהדיר מתעלם ממרווחים בין המילים השונות היוצרות את ההוראה. כך למשל יכולה ההוראה 3=8+6/3.0 להכתב כך, עם מרווחים: 0 3 6 + = 4 אסור לרשום מרווחים בין התוים של שם משתנה או מספר, למשל אסור מא 60! במקום מאשא. צורת הכתיבה תיבחר על ידי המתכנת לפי נוחיותו. ג. לעתים ההוראה ארוכה יותר ממספר הטורים המותר ומעונינים, או נאלצים, להמשיך את כתיבתה בשורה הבאה. כתיבת תו כלשהו בטור 6 (וניקובו) מורה למהדיר | כי ההוראה הרשומה החל מטור 7 היא המשך של ההוראה בשורה הקודמת. כשורת ההמשך | אסור לרשום דבר בטורים 1 עד 5. בשאר המקרים ישאר טור 6 ריק. טורים 73-80 אינם מתורגמים על ידי המהדיר כהוראות פורטרן, אלא נועדו לנוחיותו טל המתכנת. בדרך כלל רושמים בהם את המספר הסידורי של השורה ואפשר גם שם התוכנית. ‏ שים לב: אין הכוונגּ ל"מספר ההוראה". לנוחיותו של האדם הקורא את התוכנית רצוי להוסיף הסברים בגוף התוכנית. כאשר רושמים 6 בטור 1 "מבין" המהדיר שלפניו שורת הסבר שיש להדפיסה בלבד אולם לא לתרגמה לשפת-מכונה. - 99 - סרק 2: 80!!!ת ק]6 60/2 תּגִּרת |תו[יס כל התוכניות שהוצגו עד כה יכולות לפתור בעיות שאינן דורשות הזנת נתונים. בפתרון המשואה הרבועית, למשל, נקבעו ערכי המקדמים ,6,8 בתוך התוכנית עצמה. גם בבעיות האחרות נקבעו הנתונים בתוכנית מראש. הנתונים היו יכולים להגיע לקטע התוכנית במהלך העיבוד אילו היתה תוכנית זו קטע מתוכנית גדולה יותר. בבעית המשואה הריבועית עדיף היה לו יכולנו להורות למחשב לקרוא את ערכל המקדמים מתוך כרטיסים מנוקבים, למשל. פעולה זו היתה חוסכת לנו תקון התוכנית והידורה מחדש עבור כל סדרת מקדמים. בנוסף לכך אנו מעונינים שהמחשב ידפיס את פתרונות המשואה 1 ואת 2א. הוראות לקריאה וכתיבה ומשפטי איפיון לשם ביצוע פעולות קריאה וכתיבה זקוקים לפקודות קלט ופלט. בפורטרן קיימות מספר פקודות למטרה זו. כאן נלמד רק שתיים מהן: 1%, ,ת פאפת %, ,גת ךדאזאקץ ההוראת 852 מלועדת לקריאת נתונים מיחידת קלט. בצורתה הנוכחית, כל הוראה תגרום לקריאת כרטיס מנוקב אחד (או רשומה אחת של נתונים). אפשר לקרוא את כל 80 הטורים של הכרטיס ללא כל קשר לטופס הקידוד המיועד לכתיבת הוראות התוכנית. ההוראה 1א81? מלועדת לפלט נתונים בהדפסה. כל הוראה תגרום להדפסת שורה אחת במדפסת. רוחב שורת ההדפסה (מספר הטורים) בדרך כלל 132 עמודות. ישנו רוחב הדפסה שונה בהתאם למדפסת. את עמודות ההדפסה מונים מצד שמאל של השורה (עמודה מס' 1). בשתי הפקודות הללו, ת הוא מספר ההוראה (תוית) של משפט האיפיון ו-115% הר זו "ערל מו - !00 - הוא רשימה של שמות המשתנים אותם מתכוונים לקרוא או לכתוב. המשתנים ברשימה מופרדים ע"י פסיקים. משפט האיפיון "מסביר" למחשב כיצד עליו לקרוא או להדפיס את המשתנים שב-115% ומיד נשוב ונדון בו. בתוכנית המשוואה הריבועית, למשל, יש לקרוא מתוך כרטיסים מנוקבים את 4, 8 ו-6. ההוראה המתאימה לכך תהיה: 6 ,8 ,0 ,100 פגתם ולהדפסת התוצאות 1< ו-2א נכתוב: 2 ,1א ,101 דאזאק המספרים 100 ו-101 הם מספרי הוראות האיפיון המגדירות את שדות הקלט או הפלט בהתאמה. הצורה של הוראת האיפיון בפורטרן הלא: (,5 7 59 51) זאוש0ת ת ח הוא מספר הוראה המתאים למספר בהוראת ה-8540 או ה-דַאזאק. 1, 2.. הם האיפיונים השונים המגדירים את המשתנים. בודאי זכור לקורא כי המשתנים יכולים להיות שלמים או ממשיים, ולכן חייבים 'היות לפחות שני איפיונים שיאפשרו לנו לקרוא שני סוגים אלה. ‏ בנוסף לכך קיימים איפיונים לשדות אלפנומריים ולהגדרת רווח בין שדות. להלן נדון רק באיפיונים הבסיסיים. ההבדלים העיקריים בין האיפיונים לקריאה וכתיבה הם: א. רווחים'בין שדות: השדות ברשומת קלט בכרטיס צמודים בדרך-כלל, ללא רווה ביניהם. בהוראת האיפיון להדפסה יש לדאוג לרווחים בין השדות במכוון, ע"ל איפיון המרווח (א) או ע"י ציון שדה הגדול ממספר הספרות שבמספר (המספר מוצמד לימין תחום השדה). ב. נקודה עשרונית: בשדה של מספר ממשי ברשומם קלט יכולה, אך לא חייבת, להרשם הנקודה העשרונית. כאשר הנקודה אינה רשומה יוגדר השדה לפי האיפיון של אותו שדה (*?). בהדפסה תודפס תמיד הנקודה העשרונית ולכן השדה צריך להכיל תו נוסף לצורך זה. בהדפסה יש להבטיח שדה בגודל מספיק גם לסימן. איפיון קידום שורות במדפסת משפטי האיפיון מיועדים להגדרת נתונים: מבנה שדות בקלט ובפלט,כולל שדות להדפסה.אולם בהדפסה יש צורך לפקח על קידום הנייר כדי להדפיס את השורות לפל אוניברסיטת חיפת הספרית - !0! - תיכנון הדוח או הטופס המודפסים. הוראות הבקרה העיקריות למדפסת הן קידום הבָייר בשורה אחת, קידום הנייר בשתי שורות, או קידום הנייר לראשית הדף הבא. ההוראה ניתנת ע"י תו-קוד באיפיון אלפנומרי בתחילת כל שורת הדפסה. בתחילה תבוצע הוראת הכקרה, ולאחריה תבוצע הדפסת השורה. . תוי הקוד הם: 1 לקידום הנייר לדף חדש 0 לקידום הנייר בשתי שורות ריק לקידום הנייר בשורה אחת (קידום רגיל). לדוגמא (הסבר למבנה האיפיון ראה להלן): קידום לדף חדש: (....,181) דגאת0קת ‏ 5 או (....,*1*) דגאת0ץ ‏ 5 קידום בשורה אחת: (...., 18) 07 8 או *,....(‏ *) דהושקק - 8 אפשר לחסוך את תו-הקוד לקידום שורה אחת אם האיפיון הראשון בשורה גדול מהשדה המספר? המוכל בו. במקרה זה יהיו תוי אתג13פ משמאל למספר, כנדרש להוראת הבקרה. איפיון 1 למספרים שלימים האיפיון שנועד להגדרת המשתנה השלם צורתו הלא: שז א הוא מספר שלם המביע את מספר הטורים (רוחב השדה) בכרטיס המנוקב או בדף המדפסת שיוקדשו למשתנה זה. המספר | צרין להיות מספיק גדול בכדי להכיל גם הסימנים "+'' או "-" אשר עשויים להופיע עם ערך המשתנה. למשל אם המספר הוא 123 - אז האיפיון 14 מתאים. בקלט - 14 מציין שהנתון מנוקב על פני 4 טורים בכרטיס, מהם טור אחד מלועד לסימן ושלושה טורים לספרות. אפשר לקרוא גם את המספר 21 לפי אותו איפיון. במקרה כזה לש לדאוג שספרת היחידות של המספר (הספרה 1) תרשם בטור הימנ? של השדה. הפ 0-ה ל , הממו פפמממוארה!' 8-ו - !02 + להמחשה נוספת נניח שדרוש לקרוא שני מספרים 1, 1 כאשר ל-1 לכל היותר 4 ספרות (ואולי גם סימן), והשני של 9 ספרות לכל היותר (ואולי גם סימן). אם המספרים חיוביים איןיצורך בהגדרת טור נוסף לסימן. המשתנה הראשון 1 ינוקב בחמישה הטורים הראשונים בכרטיס והשני בעשרה הטורים הבאים. ההוראה לקריאתם הלא: 1 סגאמת (110 ,15) דגאק ‏ 3 אם הנתונים הם 15-734,1=21 הכרטיס המנוקב צריך להלות: 6 7 8 9 10 11 12 13 14 15|16 17 8 כיון ט1-6 הוא בעל שתי ספרות ואילו השדה המתאים הוא בן 5 טורילם בכרטיס, יש 'הצמיד את המספר לצד הימני של השדה. ‏ כנ"ל לגבי המספר השני. | איפיון ההדפסה דומה במבנהו לאיפיון הקריאה. אם השדה גדול במכוון לעומת מספר שיודפס בו, יווצר רווח בין המספרים, כפי שנדרש בהוראות הדפסה. לדוגמא: יש להדפיס את המספרים 84=* ו-169-% עם רווח של 2 טורים ביניהם. הוראת האיפיון של השדה הראשון תהיה 12 ושל השדה השני - 15, כדי לכלול 2 טורל רווח. מכיון טיש להשאיר תו ראשון בשורה כתו-קוד להוראת קידום הנייר, נרשום גם את האיפיון הראשון גדול מהנדרש עבור השדה: א,א,9 דאזאק (15 ,13) 1גושקץ ‏ 9 שורת ההדפסה תהיה: 9 6 1 4 ₪ | קד לא מופיע 9 5 בהבהדפסת א א שורה איפיון " למספרים ממשיים האיפיון המתאים למשתנה הממשל צורתו הלא 6.אץ. א מציין את רוחב השדה (מספר הטורים בכרטיס שמוקדשים למשתנה, או מספר טורל - 103 - ההדפסה שמוקדשים לו), 4 מציין את מספר הספרות שמופיעות מימין לנקודה העשרונית. המספר 173.2- למשל יוגדר עם האיפיון 6.1" שהרי זקוקים ל-6 טורים: 1 - עבור הסימן, 3 - עבור ספרות השלימים, 1 - לנקודה העשרונית, 1 - עבור הספרה שמימין לנקודה העשרונית. גם במקרה זה יכול מספר הספרות של המספר להיות קטן מהאיפיון אשר בעזרתו הוא נקרא או נכתב. לדוגמא: 8 ספאמ (7.3,74.1ק). דאתקץ - 5 לפי האיפיון מוקדשים למשתנה 4 7 טורים ראשונים בכרטיס והוא מכיל 3 ספרות אחרל הנקודה העשרונית. למשתנה 8 מוקדשים 4 טורים, עם ספרה עשרונית אחת. המשתנה 4 ינוקב עם הנקודה העשרונית. המשחנה 8 ינוקב ללא הנקודה העשרונית. בקלט - הנקודה העשרונית אינה חובה. בכל מקרה שהיא מופיעה בניקוב - היא גוברת על איפיון הפורמט המתאלם לאותו שדה. 1 2 3 4 5 6 7|8 9 10 1 ערך המשתנה לפי האיפיון: 2.05 8-|2.1 הוראת האיפיון להדפסה, דומה להוראת האיפיון לקרלאה. לדוגמא: הא?פיונים להדפסת המספר 5.38- והמספר 98.7 הם: 2 (5 גודל השדה, 2 ספרות מימין לנקודה העשרונלת) 1 (בהנחה שהמספר חלובי תמיד). יש לזכור שמספר ממש? נשמר בזכרון המחשב ללא נקורה עשרונית אלא בשיטת הנקודה הצפה עם מנטלסה ומעריך חזקה. ‏ ולכן - אלפיון השדה קובע את מבנה ההדפסה. בזכרון המחשב מנוהל מספר ממש? עם ספרות רבות לאחר הנקודה העשרונית, בדרך כלל מעל הדרוש לנו. האיפיון קובע את מספר הספרות העשרוניות אשר יופלע בהדפסה, | לדוגמא: אם במחשב נשמר מספו חילובי שערכו הוא 57.83497 (למשל תוצאת חלוק או כפל) ורוצים להדפיסו רק עם שתי ספרות, יהיה אלפיון ההדפסה 5.2ת והשדה המודפס להיה 57.83. - 108 - מרווח בין שדות מודפסים אפשרי ע"י קביעת איפיון גדול מגודל השדה הנדרש עבור המספר. דוגמא להדפסת משתנה שלם ומשתנה ממשל+ 6 ,אא ,15 זאזאק (12.4ת ,110) ד.ת 15 שני המשתנים יודפסו לפי סדר הופעתם באותה שורה. הראשון,*א , בעשרת הטורים הראשונים של השורה (משמאל) והמשתנה השני, 480, ב-12 הטורים הבאים במבנה עם 4 ספרות מימין לנקודה העשרונית. איפיון %* לציון מרווחים איפיון זה נועד לאפשר הגדרת מרווחים בין שדות המופיעים בהוראת האיפיון. והוא דרוט כאשר יש להדפיס מספרים עם מרווחים ביניהם. כגון: 9 5 . 8 - ו ו 3 1 צורתו הכללית של האיפיון: את, כאשו תח הוא מספר המרווחים שלש להשאלר. נתון ש-13=%, 19.35=% ו-8.939-% אז ההוראה | א,ץ,א,פ דאזאק (75.3 ,א5% ,5.2" ,א3 ,12 ,א4) דגאתקץ 9 .גרום להדפסת השורה הרשומה לעיל: 3 מרווחים (מרווח ראשון הינו תו קוד), מספר שלם, 35 מרווחים, מספר ממשי, 5 מרווחים ולבסוף מספר ממשי נוסף. באופן דומה יבטא האיפיון * בהוראת קריאה את העובדה שברצוננו לדלג על קריאתם של מספר טורים בכרטיס. אם הכרטיס הנקרא הוא: הניקוב: סורי הכרטיסים: | 10|11 9 8 6|7 5 2|3|4 1 אז ההוראה 0 ,10 פאפת 9 (4.2ת ,3% ,11 ,א2) 007ת 10 תגרום לכך שהמשתנה 1 יקבל את הערך 9 (שהרי 2% בתחילת משפט ה-084.(1ת | אומר לדלג על 2 הטורים הראשונים בכרטיס) ואילו 0 יקבל את הערך 5.27 שהר? 3% אומר לדלג על שלושת הטורים 3, 4 ו-5. - 105 - איפיונים אלפונומריים , , *,' עד עתה עסקנו באיפיונים מספריים ובאיפיון המרווח. בכתיבת תוכנית דרושים איפיונים להגדרת שדות אלפנומריים בקלט או בפלט. האיפיון ג, מיועד לבצוע פעולות קלט ופלט עם משתנים. האיפיונים 3, *,' (גרש) מיועדים בדרך כלל לבצוע פעולות פלט נתונים המוגדרים בהוראת האיפיון עצמה. דוגמא לקריאת והדפסת נתונים אלפנומריים: תספא ,אאא ,25 פהשה (424 ,416) 500027 25 הוראה זו תגרום לקריאת שני שדות אלפנומריים, האחד באורך 16 תוים והשני - באורך 4 תולים. הוראת ההדפסה תספג ,טאאא ,30 דאנתק , (424 ,416 ,א1) ך0₪447ץ 30 תגרום להדפסת שני שדות אלו. שים לב לעובדה שבמחשבים שונים קיימות מגבלות לגבי האורך המותר לאיפיון שדה אלפנומרי. 3 3-8 > 7074 עאזקד ,םא ,9 דאזאק (77.2 ,א2 ,48 ,א2 ,ך טק דש 02 15 15 17 ה15) דשקת 9 ההדפסה תבוצע בדף חדש ותראה כך: ,א,א,. א,א,א,א, , .4 א.א.ג. א ,ג | 07 ,ד,0,0, 1,5, ,8.1.5 ,ד, (תו-הקו | וכו וכו הווה = שדה נומרל שדה אלפנומרל שדה אלפנומרי? מהוראת / האיפיון האיפיון 8 מציין שבהוראת האילפיון כלולים תוים אלפנומריים והם נמצאים מל?מין לאות 8. במקרה זה סה"כ - 15 תוים כפי שרשום בהוראה (המספר שלפני ה-8). התו הראשון הוא תו קוד למעבר לדף חדש. במחשבים מסוימים אפשר לכלול תוים אלפנו- מריים בהוראת האיפיון ע"י כתיבתם בין שני כוכבונים (*): (77.2 ,2% ,38 ,2% ,*דשקדט0ק 15 11415*) דגאמ0ץ 9 אפשר גם לכתוב איפיון הדפסה בצורה זו, כדי לכלול הסבר לנתונים המודפ- סים: (72:ם, 6, א .4 (א2 ,420 ,:ם, א |א, ד.א .םעד 5 158 ,א4 ,180) זגאו0ץ 777 4 15 =. 7 % - 106 - או (14 ,2% ,7.3ם (*:05תסט) * ,78.3 ,*:םהדקך* ,*ס*) דָאא0₪? 888 כפולות של איפיוני שדה במקרים רבים נמצאים בקלט או בפלט מספר שדות רצופים בעלי מבנה זהה. אפשר לייעל מעט את כתיבת הוראת האיפיון ע"י שימוש בגורם הכפל. יש לקרוא מכרטיס 3 מספרים שלימים, כל אחד בשדה באורך של 5 טורים, ושישה מספרים ממשיים כל אחד משדה באורך 10 טורים עם 4 ספרות אחרי הנקודה העשרונית. נוכל לבצע זאת בשימוש בהוראת האיפיון הבאה: (6"10.4 ,315) קת 99 ו כלומר, עם גורם כפל 3 של השדה 15, וגורם כפל 6 של השדה 10.4ץ עתה נרְצה להדפיס שלשה משתנים, כאשר בין אחד לשני יש רווח של תו אחד | לא,אא ,תא אא,אא הוראת האיפיון להדפסה תהיה: (75.2 ,א1 ,75.2 ,א1 ,5.2ת) דהאחקץ 999 הוראה זו אפשר לכתוב כך: / ((8א1 ,5.2ת)3) דגאת0ץ 999 כלומר, חזרה 3 פעמים על האיפיון של המשתנה ואיפיון המרווח שלאחרלו. תרגיל: נחזור פעם נוספת לתוכנית המשוואה הריבועית והפעם נרשום אותה בצורתה הסופית: בשורה הראשונה מבקשים לקרוא את המשתנים ,6,8 מכרטיס מנוקב לפל הוראת איפיון מספר 100. אם נסתכל בהוראה זאת נראה שמקדישים עשרה טורים לכל אחד מהמשתנים ומרשים דיוק של 3 ספרות אחרי הנקודה העשרונית. כאשר 8-0 מחשבים את הפתרונות ומדפיסים אותם בפקודה מספר 10 לפי הוראת איפיון מספר 101. מדפיסים אותם בשדות של 15 טורים עם 4 ספרות אחרי הנקודה העשרונית. בתוכנית זו נוסיף גם הערות להבהרת הפעולות ותאור מילולי של השדות המוד- פסים. ראה את התוכנית בדף הבא: '₪י 9 חווט מַהו654 אה התדה0] | ת.]כיי- 9 רש ₪ 9 וו - 7 - = ה הררה == * ו מ זא]וא]זגז5 אגזזזס] ל 1 . , ו : : : = : (- . - 2 - -- ד ה - -- ₪ - -- לד , לא 6 4 2 |פא א 6 ₪650 || 0068 ק 1+8%4650א0 אש|דתט60 6אךד <; | כר0'ס |ה+חל כר0'6 | ] הל ' ר6'ס | א , ' כ 1 | 00 0 5 . 0 וע - 9 (% | 4.3860 - 2 יי - 33 כ זי ₪ פיי 0 /- ב 7 אש/רש |שה | )- 098 . " % | ו 50.5 )5 ם %8+.5) (:6 +9-) = מ2.3%)/ (:8-55-) |= - 2[ = שו א )₪3 206 שת'פן. . / 0 07 אש )323(₪‏ | 7 (40.3,"10.3], 5.3)₪) דקה04 יר 2 | (%.45ק,45.4מ) דתח4) / --7- -. 300 0- 7-ה הרו ורוה - -06 8-0 ה . '.ו. , " - . ינ : .ו 4 < 8-ה = . 7 ייוו א 2 מ א 5 שה ₪75 000 7 ₪250 50 5 לפשה == - ₪--- ו = .8% 9 5 '.. . . *"י. .. 2-ה "0 מ .ג היבי ה דורו הוחדי. תרגיל: נתונה כרטיס אחד. סטודנטיות. לספירת מספר הסטודנטים. התוכנית: 0000000 0000 שש -- 2-5 = ₪ ₪35 הסבר: 3-1 תורוש‎ 4 10-8 - - 108 - כרטסת המכילה פרטים אישיים של סטודנטים. עבור כל סטודנט מנוקב בטור 5 של הכרטיס ישנו סימון זכר/נקבה: 1 עבור סטודנטים, 2 עבור הכרטיס האחרון בכרטסת מכיל את הסימון 9 בטור 5. יש לכתוב תוכנית הסטודנטים ומספר הסטודנטיות, להדפיס את שני המספרים ואת סה"כ 00 0=אמא 0=אאוז אמ5] ,4 פאתת 5 (11,א4) 007 5 70 60 (20.9.אם15) חק[ 1-1 1.אמא-אמא (50.1.אם15) םת 1.אאג=או1 (0.2.א155) ת1 5 70 00 אא1 ,אמא ,1078 ,6 דאזתק 25 (13, =אמאק6 , א13,2, =אואוו4 ,א1=,13,2הזקדמ6 ,180) דתאפס 6 לק סאם - איפוס מונים: כללי, סטורנטים, סטודנטיות - קריאת כרטיס. קיראים רק את המספר מטור 5 של הכרטיס ועל כן לש צורך לדלג על 4 הטורים הראשונים (א4). מכיון שהמספר הוא שלם מעכירים אותו למשתנה המייצג מספר שלם. - בדיקה לכרטיס אחרון (9 במשתנה א155%). אם הגענו לכרטיס אחרון עוברים לפעולות הסיום של התוכנית בהוראה 25 (שורה 11). - ספירה כללית של סטודנטים וסטודנטיות: הוספת 1 למונה. - ספירה נפרדת של סטודנטים וסטוינטיות לאחר בדיקת הסימון בשדה אם15 (טור 5 של הכרטיס). לאחר הבריקה וההשואה מסתעפים להוראה 5 בשורה 4 - קריאת כרטיס נוסף 11 - 109 - בשורה 8 בודקים את הסימון !1 וגם אם התשובה חיובית עוברים לבר?- קת סימון 2 (בשורה 9) למרות שאין לכך כל משמעות, וגם לא נזק או שגיאה. עשינו זאת לשם הפשטות. למעשה אפשר לעבור לאחר תשובה חיובית בשורה 8 (כלומר הכרטיס הוא של סטודנט) לקריאת כרטיס חדש. מדפיסים את התוצאות בשורה אחת עם הסבר לכל ערך מודפס: השדה 1078 הוא 70141 - סה"כ הסטודנטים. השדות אש ו-1 הם אמא ו-אשאקא בהתאמה. שים לב שבעוד אשר בתוכנית הופיעו המשתנים כמליצגים מספרים שלימלם, אין לכך כל חשיבות כאשר מדפיסים את התוצאה עם הסבר. מכנה שורת ההדפסה: אאא=אתאק- -, אאא-אםו- - , אאא= 1 דד השורה הזו תודפס ברווח של שתי שורות מקודמתה על פ? קוד דילוג השורות 0 (אפס - 180) אשר מופלע בראש השורה. מספר התוים אשר יודפסו כהסבר לכל ערך מבוקר ע"י איפיון 84 - וזהו המספר המופיע משמאל לאות 8₪. שים לב לעובדה שאם רוצים להשאיר רווחים צריך לדאוג לכך ע"? תוי רווח (%ת18פ) או ע"י האיפיון א. - 0ו! - קידום רשומות הוראת האיפיון מגדירה בדרך כלל מבנה של רשומה פיזית אחת: את השדות המנו- קבים בכרטיס אחד או השדות המודפסים בשורה אחת. כאשר רשימת המשתנים בהוראת קלט/פלט ארוכה ממספר השדות המוגדרים בהוראת האיפיון תבוצענה אוטומטית פעולות קלט/פלט נוספות לפי אותה הוראת איפלון עד להשלמת רשימת המשתנים. אפשר להגדיר בהוראת האיפיון פעולה אשר תגרום הפסקת הטיפול ברשומה הנוכחית והתחלת הטיפול ברשומה הבאה. כלומר השדות הבאים המוגדרים בהוראת האיפיון יודפסו בטורה חדשה או יקראו מכרטיס חדש. הוראת הקידום היא הקו הנטוי (/). לדוגמא: 7 =2 9 =8 8 דאזאק (78.1, /,6*,//,78.1א1פגאמה 1*) 0₪7ת 100 צורת הפלט הנובעת מהוראת ההדפסה עם הוראת האיפיון 100 תהיה: טורת כותרת בראש הדף (קידום נייר = 1): סאזפאספת לאחר קידום של שתי שורות: 202.7 לאחר קידום של שורה אחת: 9. 84 הוראות עם הכרזת יחידת קלט/פלט עד עתה הצגנו פעולות קלט מכרטיסים ופלט במדפסת, בהנחה שיחידות אלו מוג- ררות בקביעות כיחידות הסטנדרטיות של המערכת. אולם, במערכת המחשב ישנן יחידות קלט ופלט נוספות מסוג סרטים מגנטיים, דיסקים מגנטיים, מנקבת'כרטיסים, מכונת כתיבה ויתכן גם קוראת כרטיסים ומדפסת נוספת. בהוראות פ2םת ו-דַא81ק שהוגדרו אין כל התיחסות למגוון יחידות אלו. כדי להפעיל יחידות קלט ופלט שונות מהסטנדרטיות יש להכריז עליהן בהוראת 532 לקריאה ובהוראת מד%%1 לכתיבה, בצורה הבאה: - זווו - 1% 18016ע4ץ (0208%+ ,%גתט) פהתת 1% 18016ע8ט (08%ע0ס+ , %גתט) שד1אח +גחט - מספר שלם או משתנה שלם המציין את ההגדרה של היחידה במחשב. % + - מספר הוראת האלפיון. % 16סַגַנעאץ - רשימת המשתניסם שאותם רוצים לקרוא או לכתוב. ההגדרה המקובלת של יחידות קלט ופלט הלא: 5 - קוראת כרטיסים (במחשבי י.ב.מ.) 6 - מדפסת וָ" " ( 7 - מנקבת כרטילסים ( | " 4 ( 9 - *חידות קלט ופלט שונות. -- כל מספר מתיחס ליהידה מסוימת כפי שהוגדרה במחשב. בדרך כלל ההגדרות הן סטנדרטיות כדי להקל על הפעלת התוכנית בכל מחשב. כדי שהתוכנית לא תהיה תלויה ביחידת קלט ופלט שהוגדרה בה ובהנחה שהוראות קלט ופלט נרשמות בתוכנית פעמים רבות אפשר להשתמש בשיטת ההגדרה הלוגית ליחידות ע"'י משתנה: 6 א) פהסת בתחילת התוכנית תרשם ההוראה המקנה ערך למשתנה 1א1: 5 או: 29 1 יגדיר יחידת קלט - קוראת כרטיסים, 1אז כדי להגדיר יחידת קלט - סרט מגנטי מסוים. לסרטים מגנטיים יש הוראות מלוחדות אופייניות: זגתט פאזאמא - גלגול הסרט לתחילתו +גחתחט 86%52405 - החזרת הסרט ברשומה אחת +בתט תםזספאם - כתיבת סימון "סוף קובץ" - !|2 - הכרזת נתונים - 28%8 משתנים מקבלים ערכים בצורות אחדות: ע"י הוראת השמה של מספר קבוע, ע"י הוראת השמה של תוצאת ביטוי אריתמט? או ע"י פעולת קלט. המשותף לצורות אלו הלא העובדה שמתן הערך למשתנה געשה בזמן בצוע התוכנית. אפשר להכין מראש, בזמן הידור התוכנית, ערכים במשתנים, וזאת באמצעות ההוראה 284%8. ערכים אלו יכולים להשתנות במהלך התוכנית. את ההוראה 28%8 לאחר הכרזות אחרות המופיעות בראש התוכנית, ולפני הוראות הבצוע. מבנה ההוראה: /417 א א /30, 7/א,.,1 אדאס 843 הוראת ההכרזה - רשימת משתנים מופרדת בסימן פס?ק (,) - קו נטןי - רשימת ערכים מופרדת בסימן פסיק. סדר הערכים וסוגם צריך להתאים לרשימת הערכים. - קו נסוי להכנת מערך, אפשר להשתמש בהוראה הבאה: (7)₪ א510אמאזפ /*6, 9/ (7, 1=1, (1)א) דגס האיבר הראשון יקבל את המספר 9 וכל 6 האיברים הבאים - את המספר 2. ה ה == = * !13 = סרק 3: אפרכיס !!!]ות מערכים - וקטורים ומטריצות בבעיות מדעיות יש לעסוק, לעיתים קרובות, במערכים של מספרים (וקטורים, מטריצות, טבלאות) ועל כן שפת התכנות צריכה "להבין" מושגים אלה. באופן פשטני אפשר להגדיר מערך כאוסף של מספרים. מכבנה המערך המערך הראשוני הוא מערך חד-ממד? או הוקטור. נתון, למשל, אוסף המספרים הבא: בכתיב המתימטי נסמן את הוקטור באות 8, למשל, ולאיברים של הוקטור נפנה ע"ל הוספת אינדקס לשם הוקטור. כך, למשל, יסמן ן8 את המספר 15 בדוגמא לעיל, - את 93 וכד'. סימון דומה לוקטור קיים גם בפורטרן. שס הוקטור נקבע לפי הכללים של בחירת שם למשתנה. אם הוקטור הוא וקטור של מספרים שלימים - השם חייב להתחיל באחת האותיות א,א,2,%,1,71; ואם הוא וק- טור של מספרים ממשיים - יתחיל השם בכל אות אחרת מאלו שצויינו. האינדקס לציון האיבר המסויים בוקטור יירשם בתוך סוגריים הצמודים לשם הוקטור. כך (1) יציין את האיבר הראשון בוקטור , (2)5 יציין את האיבר החמישי וכו'. האינדקס של וקטור אילנו חייב להיות קבוע: (4)1 יציין את האיבר ה-1 בוקטור. דוגמא מורככת יותר היא המערך הרו-מימדי הקרוי גם בשם מטריצה או טבלה. למשל : 1 12 9 5 5 4 8 2 7 המטריצה מורכבת ממספרים הערוכים בשווות ועמודות. גם הפעם משתמשים בשם, למשל 8, כדי לציין את המערך כולו. וכיצד נפנה לאיבר מסויים במטריצה? (8)2,3 מציין את המספר הנמצא בשורה השניה ובעמודה השלישית של המטריצה ‏ , כלומר, המספר 5 בדוגמא שלפנינו. ובאופן כללי יציין (8)1,01 את האיבר של המטריצה 8 אשר נמצא בשורה ה-1 ובעמודה ה-1. - 8ו1 - ההוראה ת510ת6ח1פ כדי שנוכל להשתמש במערכים השונים, יש להורות למהדיר מיהם המערכים - לפל שמותיהם וממדיהם. ההכרזה המוקדמת של ממדי המערך נובעת מן העובדה שעל המהדיר לסמור מראש, בזמן בנית התוכנית, מספר מספיק של תאי זכרון עוקבים עבור כל המערך. משתנים רגילים, אינם חייבים להיות צמודים זה לזה. ההכרזה על מימדי מערך נעשית ע"י ההוראה הבאה: א ,צ ,ט אק51אמאזפ כאשר א,צ,ט הם השמות של המערכים: כל מערך רשום עם המספר המקסימלי של האיברים הכלולים בו. כך, למשל, ההוראה (8)100 א510אפאנזפ מכריזה כי 0( הוא מערך חד-מימדי הכולל לכל היותר 100 איברים. וההוראה (8)07,4 ,(4)4 א510א5א1 | מכריזה כי ‏ הוא וקטור של 4 איברים ואילו 8 היא מטריצה בעלת 7 שורות ו-4 עמודות (סה"כ 28 איברים). נטים לב לכך שמספר האינדקסים של מערך בהוראת ה-א510א01/0 חייב להיות זהה למספר האינדקסים בזמן השימוש במערך אם הוראת ה-א510א0145 היא: (23) אק51אמאזס אסור לנסות ולפנות לאיבר (4)2,4 שהרי 8 הוגדר כוקטור והפניה אליו הלא כאל איבר של מסריצה. כמו כן מובן שאסור לחרוג מתחומ? הגדרתו של המערך. אסור לפנות אל (8)24 כיון שהוראת ה-א510א21/5 מגדירה את 8 כוקטור בעל 23 איברים לכל היותר. פעולות אפשריות עם מערכים הן: (+,6)1 + (8)8 = (5) 1+ (1)א = (1)א 0 קד 00 (0.7ם.(1) מאקא) ת;ז ל ו ל או ת לעתים יש צורך לכבצע באופן מחזורי סדרת הוראות. למשל, בסיכום של סדרת מספרים יש לחזור על פעולת החיבור עבור כל אחד מהמספרים עד לסלום הסדרה. כאשר יש לחשב ממוצע ציונים של תלמידים, יש לקרוא את הרשומות (כרטיסים) - 5ו!ו! - של כל התלמידים. בכל רשומה נמצאים נתוני הציונים של כל תלמיד ועל פיהם מחושב הממוצע. פעולות הקריאה, החישוב וההדפסה של התוצאות תחזורנה עד לסיום כל קובץ הנתונים. נלמד עתה איך לכתוב תוכנלת אשר בה נדרשת חזרה על סדרת הוראות. ההוראות יכולות להיות קבועות ואחידות עבור כל הרשומות המעוכדות, או שאפשר להתנות את ביצוע כולן או חלקן בהתאם לנתונים משתנים המתקבלים בפעולת הקריאה, או תוך כדי ביצוע ההוראות. "הלולאה" (קסס1) הינה חזרה על סדרת הוראות יבמחזוריות. הבקרה של הלולאה, או מספר הפעמים שחוזרים על סדרת ההוראות, נקבע ע"י אינדקס או תנאי אחר כפי שיוסבר בהמשך. תכנות בעיה נפתור בעיה פשוטה בעזרת נוהל הלולאה: נתון מערך % בן 100 אלברים. ?לש להכניס בו את המספרים 1 עד 100 בהתאמה. שורה (100)₪ א510אמואז1פ 1 1(1)א 4 2)) 1 41 1 4 0ד 60 קד 2 סאם 00001 00 00 ₪ בבעיה זו נדרש מערך ועל כן נכריז עליו בעזרת ההוראה א510א₪א1כ המגדירה מערך א בן 100 איברים המיועד להכיל מספרים שלימים. בשורה 2 נקבע ערכו. ההתח- לתי של האי?נדקס ל-1. אינדקס זה יהיה המספר הסידורי של האיבר בטבלה. נשתמש בו גם כערך המספרי המוכנס לאל?ברי הטבלה. בשורה 3 מעבירים את הערך של האינדקס אל האיבר המתאים במערך. בפעםס הראשונה יהיה 1(=1)א ובפעם השנלה: 8)2(=2 וכן הלאה עד 100(=100)א. בשורה 4 - !16 - נבדק ערכו של האינדקס. אם 1 קטן מ-100 (זאת אומרת שהביטוי שבסוגריים הוא שלילי) יש להמשיך בקידום האינדקס (בשורה 5) ולחזור לתהליך בלולאה (משורה 6 אל ההוראה 4 בשורה 3). בטורה 7. אם 1 שווה ל-100 יש לסיים את התוכנית לפי ההוראה בקביעת הערך להשוואח בהוראה "1 (שורה 4) יש לשים לב אם קידום האינדקס והפעולה (לפי שורה 3) מתבצעים לפני או אחרי הוראת ת1. הבה ונפתור בעיה נוספת: חיטוב ממוצע וסטיית תקן של אם נניח שהסדרה היא בת 172 אלמנטים אז הנוסחאות ממשיים. 1712 2 41 11 112 2 - 2 קַ 11 כאטר 8..1=1,...,172 הם המספרים הנתונים, 8 הוא הממוצע המספרים ,8 מנוקבים כל אחד בכרטיס בפורמט 10.3ץ. סטיית התקן. את התוכנית ולאחר מכן נסביר אותה. סדרה של מספרים המתאימות הן: 1 א יי 12 1 02 2 - ו-0% הוא הריבוע של נכתוב תחילה ה הזזטז פַהו604 אהדה0] 2/1 חיש!ל | אאן 0 יו ורוי [ 7 "] סברת. 324': וד | ל הר החדה ההה הררה || ההק הרקה = היחה יד 7 =: ס66 .40/57 : 0 ומוי הקמפוון הו 0 7087 60 20/57 .. |=: חן חס ] ד 1 1 +---+ -.+-| 6 / 6בחט5 > 51656 אא 656 סש פע | "+ י ו | 4 : 4-4 - 0 דששא .ו שלש ₪5 ד =-י--- קל ו 0 06-4006648 44 4 ו ₪ ףנ ג ?כ מ ו נכ נכ וכ | --- 2 הד ₪ 6 ]₪ ₪ 0 0 א א ו . - >> -. - !1!8 - המשתנים 5% ו-50%50 יכללו לקראת סוף ביצוע התוכנית את סכום המספרים ואת סכום הריבועים שלהם. מאפסיס מונים אלו בתחילת התוכנית (שורות 1, 2) ובכל פעם שקוראים מספר ,8 מוסיפים אליהם את המחובר המתאים. המשתנה השלם 1 נועד לספירת מספר ה-.8-ים שכבר קראנו וגם אותו מאפסים בתחילת התוכנלת. הוראה מספר 5 קוראת את המספר .8 (לפי פורמט 100). לאחר שקראנו מספר, מוסיפים את ערכו ל-50% (שורה 5) ואת ריבועו ל-50%50 (שורה 6), ולבסוף מוסיפים 1 למונה 1 (שורה 7). לאחר ביצוע ההוראה 1=1+1 כולל 1 את מספר המשתנים שקראנו. כעת בודקים את ערכו של הביטוי 1-172 (בשורה 8). אם הוא קטן מ-0 (כלומר: 1 קטן מ-172) יש עדיין משתנים שלא קראנו ולכן פונים שוב להוראה מספר 5 כדי לקרוא את המספר הבא. אם 1-172 שווה ל-0 או גדול ממנו הרי שקראנו כבר את כל 172 המספרים ואפשר לפנות לחישוב הממוצע וסטיית התקן. הדבר נעשה בהוראה מספר 10 (בטורה 9) וההוראות הבאות אחריה. לאחר קריאת כל המספרים ,8, כולל 58% את סכום המספרים הללו. הממוצע 0%8₪% מחושב בפקודה מספר 10 על ידי חלוקת 50% ב-172.0. ממוצע הריבוע מתקבל מחלוקת 50%50 ב-172.0. ריבוע סטיית התקן 51650 מחושב (בשורה 10) על-ידל? 2-*תם/-.50%50/172 = 51650 לבסוף, מקבלים את סטיית התקן 516% על ידי חישוב השורש של 51650 (בשורה 1) ומדפיסים את הממוצע 4%5 ואת סטיית התקן /510% בפורמט 200 (בשורה 12). נסתכל שנית על ההוראות שבין הוראה מספר 5 והוראה מספר 10; את ההוראות 4 + 508 = 53 4*.2 + 5050 = 50050 זרים ומבצעים עבור כל משתנה 4 שקראנו. מצב זה בו מבצעים מספר פעמים אותה סדרה של הוראות הוא ה"לולאה". הבקרה סל הלולאה (קביעת הרגע שבו יש להפסיקה) נתונה על ידי ערכו של המשתנה 1 (האלנ- דקס של הלולאה) הסופר את מספר הפעמים שהלולאה בוצעה. כיון שלולאות מופיעות בתוכניות מספר רב של פעמים קיימת בשפה הוראה מיוחדת - 20 המפקחת על ביצוע לולאות. הוראה ביצוע לולאות - ₪0 ההוראה 00 מאפשרת למתכנת לבצע סדרה של פעולות חוזרות בלולאה ולפקח על ביצוע זה עד לסיומו. הפיקוח על ביצוע הלולאה מתאפשר ע"? שימוש באינדקס אשר - פוו - משתנה בין שני ערכים קבועים מראש. המבנה הכללי של ההוראה 0כ2: , ,רת ,ות = 1 א 0 ההוראה 20 נרשמת כראש סדרת ההוראות של הלולאה. א - המספר (תוית) של ההוראה האחרונה באותה לולאה. 1 - מייצג שם של משתנה שלם - האינדקס. כת,וֶת - קבועים או משתנים שלימים - תחום ההשתנות של האינדקס. ( - קידום האינדקס, לא חובה לרשום. (ברירת המחדל היא קירום של 1 ). משמעות הוראה 20 היא: בצע בלולאה את כל ההוראות החל מההוראה העוקבת את ההוראה 20 ועד הוראה % ועד בכלל, כאשר האינדקס של הלולאה הוא 1 והוא משתנה / בפעם הראשונה שהלולאה מתבצעת מקבל 1 את הערך ות ובכל ביצוע נוסף מתווסף 1 ל-1 עד אשר מגיע ערכו ל-,ת. לאחר מכן נפסק ביצוע הלולאה והבקרה עוברת להוראה אשר אחרי ההוראה שמספרה - אפשר ומותר להשתמש ב-1 גם כדי לבצע חישובים התלויים ב-1. למשל, אם מעונינים לחשב את סכום הריבועים של 100 המספרים השלימים הראשונים נוכל לעשות זאת כך: 0 = מא 0 5 0 1**2 + מאקא = םאקא 5 דוגמא נוספת: נכתוב מחדש, בעזרת ההוראה 20, את התוכנית להכנסת 100 מספרים (מ-1 עד 100) במערך בן 100 אל?ברים. (100)א אק51אמאנזפ 0 5 0 1 = (1)א 5 קד סאם ההוראה המרכזית בתוכנית היא 1(=1)א. בהוראה זו מעבירים ערך 1, משתנה, אל האיבר המתאים בטבלה. ‏ בתוכנית זו לא צריך לטפל בקידום הא?נדקס כפי שנעשה בתוכנית הקודמת מכיון שהוא מבוקר, אוטומטית, בקידום של 1 ע"י ההוראה 06כ2. - !20 - הערך ההתחלתי שלו הוא 1 והערך האחרון - 100. התוכנית שכתבנו לחישוב הממוצע וסטיית התקן יכולה להכתב גם בצורה הבאה: .0 .0 72 10 ספ 4 ,100 סגםא +51 =ו50 2**+%50=50%50א 50‏ 10 4 /5%>ם/ 2**תם/-. 172 /51650>5150 5. 516%=51050**0 510% ,מת/ה ,200 זאזאק קד (10.3:) דַאאתק? 100 (10.3ת ,10.3ת) אק 200 סאם בתוכנית זאת משמש 1 רק לבקרת הלולאה. ערכו של 1 קובע אם להמשיך בביצוע הלולאה ואם לאו. הוראת ההמשך ם0א1דא60 לעתים אי אפשר לסיים את הלולאה בהוראת ביצוע, מכיון שהיא אינה מתבצעת תמיד. מקרה זה קיים כאשר בתוכנית ישנם משפטי התניה המובילים אל סוף סררת ההוראות בלולאה, ואינם צריכים לבצע כל הוראה שהיא, אלא לקבל הפנלה אל תחללת הלולאה. לצורך זה קיימת הוראה 08א11א60 - הוראת המשך - אשר נרשמת בסוף הלולאה ונושאת את מספר ההוראה המתאים. היא אינה מכצעת דבר אלא גורמת להחזרת הפיקוח אל תחילת הלולאה, אם האינדקס טרם הגיע לגבול העליון, או אל הפקודה הבאה אם תנאי זה התמלא. אפשר למשל, לכתוב את תוכנית צבירת רבועי המספרים מ-1 ער 50 בצורה הבאה: 0=שאפא 0> 9 8 2**א+םא0א=פאא פטאנזא60 9 - |2ו- תרגיל נתונה טבלה באורך 100 איברים. יש למצוא את הערך הגבוה ביותר ולהעבירו למשתנה 516. את מספר האיבר היחסי בטבלה יש לשמור במשתנה ק5ם%. התוכנית להתרת הבעיה: שורה (4)100 א510אוזס (816=8)1 1>קסטא 0 > 888 מס 8 קד 60 ((816.65.4)1) תך (1)א>816 1=קמא פטאז דא 888 קד סאם ₪ 0000 000 ₪5 ₪ - כ בשורה 1 קובעים את שם המערך ואת גודלו. בשורות 2 ו-3 קובעים את תנאל ההתחלה של הבעיה: במשתנה 816 מציבים את הערך הראשון של המערך ובמשתנה קםםא, את המספר 1 בהתאמה. שורות 4 עד 8 מהוות את הלולאה: ההוראה 2/0 בשורה 4 היא הוראת הלולאה וההוראה 05א11א60 בשורה 8 היא הוראת המשך המהווה ציון סוף הלולאה - מספרה 8, כפ? שמוזכר גם בהוראת 20. האינדקס של הלולאה משתנה מ-2 עד 100. התחלנו ב-2 כי אילן צורך להשוות את הערך הראשון בטבלה לעצמו. ההוראה המרכזית בשורה 5 משווה את הערך של המשתנה 816 אל הערך התורן במערך, בהתאם לערכו של אינדקס 1 ((1)). אם הערך של המשתנה 816 גדול או שווה לערך של המשתנה התורן במערך - אין כל שנוי ועוברים להוראה מספר 888(םטא1דא60) בשורה 8. זהו סוף הלולאה, ומכאן נחזור להוראה שלאחר ה-20 אם האינדקס 1 טרם הגיע לערך הגבוה שלו - 100. אם התנא? בהוראה 1 לא מתמלא - כלומר הערך של האיבר במערך גדול מ-816, מעבירילם אותו למשתנה 816 ואת מספרו הסדור? למשתנה קפא (שורות 7,6). עוברים להוראה פטא11א60 המחזירה לראש הלולאה. עם סיום הלולאה עוברים להוראה ?510 בשורה 9 ומסיימים. - 2 קידום האינדקס בהוראת 22 קידוס האינדקס בהוראת 00 נעשה בדרך כלל בצעדים של יחידות, כלומר: 1, 2, 3 או 19,18,17 וכו'. לעתים יש צורך לקדם את האינדקס בדלוג שונה, למשל בזוגות. | לדוגמא: יש לחשכ את סכום כל המספרים הזוגיים מ-22 עד 48 ולהדפיס את הסכום. התוכנית: 0=א 2 5 0 1א=א 5 א ,9 דאזאק (14) דג)שקץ 9 במקרה זה השתמשנו באופציה של הוראת 20 והיא ציון הפרמטר השלישי של האינדקס - פרמטר הדילוג. כלומר ערכי 1 יהיו 26,24,22 .... 48. בצורה דומה אפטר לקבוע לאינדקס הלולאה די?לוגים אחרים. קריאה וכתיבה של מערכים כאשר יש צורך לקרוא סדרת נתוניףם לתוך טבלה או כאשר יש להדפיס נתונים מתוך טבלה - משתמשים בהוראות קריאה וכתיבה של מערכים. הוראות קריאה וכתיבה יכולות להופיע בתוך לולאה ככל הוראת ביצוע אחרת: דוגמא לקריאה והדפסה: 5=א א,1>א 7 00 4 ,999 סאסק 5. 5 *(=8 8 8 ת*אזתק 7 לולאה זו תבוצע 15 פעם (לפי ערכו של א): קריאה של ערך 4 מכרטיס, כפל והדפסה של התוצאה. שים לב שערך הגבול של האינדקס מוצג כמשתנה שערכו נקבע במהלךןך התוכנית, לפני הכניסה ללולאה. - !23 - דוגמא להדפסת נתונים מטבלה: נתון וקטור 8 בן 20 איברים שיש להדפיס את ערכיהם. ההוראה ז[א281? תבוצע בלולאה 100 פעמים: התוכנית: 0 335 00 (1)א ,50 זאזחק מטאז דא 33 (....) דאאחקץ 50 כיון שפעולות קלט-פלט הקשורות במערכים הן תדירות למדי מאפשרת השפה צורות נוספות של פקודות קריאה - כתיבה המיוחדות לטיפול במערכים. הדבר מתבטא בהכנסת הלולאה לתוך ההוראה. הצורה שתתאים לקריאת הוקטור 4 בעל 20 האיברים תהיה: 7" (1=1,20 ,(4)1) ,50 דאזתק ופירושה: הדפס לפי פורמט 50 את האיברים (2)1, (2)2,... (20) של הוקטור (. באופן כללי יהיו ההוראות לקריאה וכתיבה של וקטור חד-מימדי מהצורה: (-ת, ְת=1 (.(1)%) ,א ספאתת (-ת, ְת=1 ,(ג)ץ) ,א דאזחק כאשר ‏ % - הוא המספר של הוראת האיפיוןת צ - הוא שם הוקטור אותו אנו מעונינים 9 ות ו-רת מציינים את תחום האיברים בוקטור % אותם יש לקרוא או לכתוב. ‏ איברים אלו יכולים להיות קבועים או משתנים שלימים. לקרוא או לכתוב אם בתוכנית מופיעות הפקודות 2א 4 ואחר כך הפקודה (9,א-1 ,(1) ז215) ,100 פגפת (15) דגאחקץ 100 יתבטא הדבר בקריאת האלמנטים (1151)4 , (2151)3 , (157)62 אשר כל אחד מהם מנוקב בכרטיס נפרד, בחמישה הטורים הראשונים שבו. - |24 - תרגיל: נתונה כרטסת המכילה ערכים, ערך אחד בכרטלס. בראש החבילה לישנו "'"כרטלס. מדריך" שבו מנוקב מספר הכרטיסים (עם ערכים) בכרטסת והשנה שבה היא הוכנה. פעולות העיבוד הנדרשות: א. אם התאריך נמוך מ-1975 יש להדפיס הודעת שגיאה ולהפסיק את העבודה. ב. יש לסכם את הערכים המנוקבים בכרטיסים ולחשב את הממוצע. את התוצאות יש להדפיס בסיום העבודה. מבנה הקלט: "כרטיס מדריך": ערך א מנוקב בטורים 1 - 2 תאריך (שנה) "35 - 6 כרטיס נתונים : ערך א* מנוקב בטורים 1 - 7 כמספר ממשי עם 2 ספרות עשרוניות. מבנה הפלט: הודעה על שגיאה בכרטיס מדריך: אאאא :1975 אועזך 1555 מדהם מע1ת.תקתתם תוצאת החישוב: אא. אאאאא=ם0חם/- -אא, אאאאאאאא=1 ד0ד- -אא>א 2 רווחים 2 רווחלם - |25 - התרשים המלבני (לבקרת לולאה ע"י הוראת :1) התחלה איפוס מונה סיכום 00 2 2 11( חשב ממוצע סכם במונה א+707%=אד0דך 11 (4)] כן - !26 - ] 04.94) אוו אטו 2 א בי ו ו 1 0 כ בב לו ו 0 . '10/'/490 ,!4*0-% - -! . 2 -- 7-7 7 דט טנ 125 | 060 קר | ו י/ .217674050 ה 0 / 6דם18 (א,4 5% 66ן!. | ) (284 12 דה + ן - פד 66 1 -. 6ד1540) ץע | | ו | ךר =7 7+ ה הד 57 80 הדו ' 6ד%כך1 2 דאו%?? 01 דפ וא 16 1 ,1 ) דה 664 6 | 50 . =] *..5--=-=1 . לדגי וו | 94 ₪ : ב*50 :4-- 007.22 .ו א 4 אדשד : = 9 ה א .. ' 6 אדן|. / ב *"א " ]>< וו יי א א 7 | 39041 1/406.- וקו וטו וו הרחויי, שש שש ₪ 0 שצאם ₪ א 7 אשד 5 070 27 ל 1% אש ץז סד |א ,+ = | דד ₪ , -א5% 1 ד ו - החוד )| דור רה הד ד-ן שה 2 5 ץ א )ו 5 : ץצ ונ . 11 כ --- ]7-7 שדאסב % -האוא קן 6 50 19) 60 . 177 סדדיךד--- 1 ₪ -- | - 46 - 7% 1-3" אה (67.3) דההםסם| !2 / + 3 = |א דטדן |66 4 א / ודפד. = ו .| מצ5,אד)ד 7 א ןא ץן. ד%ה. , א 4ו) דגתג;ץ | 5 בר אנ + 0500505 ה = - -- ה 3% ,19 - 5 - - .- ₪ הד-רה--- ----.י ---- - + יי (י9-= *-.* - |27 - הסבר לתוכנית 51ם7ח1 שורה 1 - שם התוכנית - 177857. הוראת הנחייה למהדיר. 2 - תנאי התחלה: איפוס מונה. 3 - 8 - קריאת כרטיס מדריך ובדיקת התאריך. אם התאריך שוה או גדול מ-1975 ממשיכים ואם התאריך נמוך מ-1975 מדפיסים הודעה ומפסיקים. 9 - תנאי התחלה לפני הלולאה המרכזית בתוכנית: הצבת האינדקס על ערכו הראשוני. 0 - הלולאה המרכזית בתוכנית: קריאת כרטיס, חכור הערך * למונה אדשד, בדיקה לסיום קריאת הכרטיסים. בכל בצוע של הלולאה משוים את האינ- דקס לערך א (מס' הכרטיסים לפי הנתון). אם האינדקס נמוך מ-א מוסי- פים 1 לאינדקס וחוזרים לראש הלולאה, ואם האינדקס שוה ל-א עובר?ם לקטע הסיום. 6 - קטע הסיום של התוכנית: חישוב הממוצע והדפסת שורה. 20 - הוראת הנחייה למהד?ר שזהו סוף התוכנית. הסבר לתוכנית 01002 בתוכנית זו מבוקרת הלולאה המרכזית של התוכנית ע"להוראת 20 (שורות 12-9). בתוכנית זו נחסכות 4 הוראות אשר שלמשו בתוכנית הקודמת לבקרת הלולאה, ונוספה ההוראה 20. 1 .- |28 - ' לולאות מוכלות כלומר, בתוך קטע תוכנית המהוה קיימת אפשרות להכיל לולאה בתוך לולאה. אפשר לתאר זאת בצורה לולאה אפשר להכיל לולאה המקיפה חלק כלשהו של ההוראות. סכימטית בצורה הבאה: לולאה א לולאה ב -- ו 12 נדגים עתה כיצד ניתן לקרוא ערכים לתוך מטריצה. נשתמש בדוגמא זו למטרה נוספת - להראות איך אפשר להפעיל לולאה בתוך לולאה. תרגיל: נתונה מטריצה בעלת 2 שורות ו-3 עמודות. הערכים מנוקבים בכרטיסים, בכל כרטיס - ערך אחד. יש לקרוא את הכרטיסים ולרשום את הערכים בתוך המטריצה. (2,5)א1תדא אַ10פאשוזס 2 9 0 3 8 00 (1,2)א1פדא ,100 סגסם ב | * פטאזדאקס 8 פטאזזאקס 9 לפנינו שתי לולאות: לולאה א היא "החיצונית" ולולאה ב היא "הפנימית". בפעם הראשונה כשתבוצע לולאה א יינתן ל-1 הערך 1. וכאשר תבוצע הלולאה ב יינתן ל-2 הערך 1. לאחר מכן תתבצע ההוראה 82.2 לקריאת האיבר (1,1)א47₪1א. הוראת המוצא טל הלולאה ב היא מושא1זא00 8 אשר תגרום להוספת 1 לאינדקס 1 ותחזיר את הפיקוח לראשית הלולאה ב, כלומר כעת 2->1. הוראת הקריאה תתיחס כעת לאיבר (1,2)אזַם18)/. האינדקס [ יקודם שוכ והוראת הקריאה תתיחס לאיבר (1,5)א1ַאך7א. כלומר, נקראו כל האיכברים בשורה הראשונה במטריצה. כאן מסתיימת פעולת לולאה ב והיציאה ממנה מובילה אל הוראה משא11א60 9. הוראה זו גורמת לקידום האינדקס 1 ב-1, כלומר 1=2 והיא מחזירה אותנו אל ראשית הלולאה, אל ההוראה 1=1,35 8 0. - 129 = ושוב חוזר התהליך כאשר האינדקס 1=2 והאינדקס 1 משתנה מ-1 ועד 3. תהליך זה יגרום קריאת האיברים של השורה השניה במטריצה:(2,1)א1תך); (2,2)א1חדאא; (2,3)אזחדוו. עם סיום הלולאה 1 שוב נעבור אל הוראת מטא1זא060 9 אשר תקדם את 1 ל-3 ותפעיל את הלולאה 1 כאשר 1 משתנה מ-1 עד 3 לקריאת האיברים של השורה השלישית במטריצה. נקודות המוצא של הלולאות א ו-ב הן סמוכות, ומכיון שאין טוני בין ההו- ראות בנקודות המוצא של שתיהן, אפשר ללכד אותן בצורה הבאה: 2 4 0 3 4 00 , (1,2)א1תדוא ,100 סגפת / ב פטאזזאק6 4 אפשר, במקרה זה, לרשום את התוית 4 ליד ההוראה 822 ללא צורך כהוראת משא1דא60: 2 4 00 3 = 4 50 (נ,1)א1תדוא, 100 פאםת ‏ 4 את הוראות בצוע הלולאה לקריאת המטריצה אפשר לכלול, כפי שראינו קודם, בהוראת ה-852 (או בהוראת ם17תא או [א281 כאשר מדובר בפלט). בצורה זו: 2 5 00 (3, 2=1, (1, 1) א1תדוא) ,100 פגאפת ‏ 5 (3710.1) 00407? 100 או בצורה זו: (2,, 1=1, (5, 1=1, (1, 1) אדפדגוא) ) ,100 פגפח בצוע הפקודות מתכטא בקריאת איברי המטריצה לפי סדר השורות: 1 קבוע בערך ראשון וערכי 0 משתנים בכל התחום שלהם, 1 מתקדם לערך הבא ושוב משתנים ערכי ‏ וכן הלאה, עד גבול התחום של 1. אפשר לכתוב את הערכים לפי הסדר הבא: , (2,1)א1תדא , (1,3)א1תדגו , (2, 1)א1חדגוא , (1,1)אזתדהא , (3,2)אזחדו , (3,1)א1תדגו , (2,3)א1חדגו) , (2,2)אזפדא . (3, 3) אדא כדוגמאות הקודמות הנחנו שבכל כרטיס מנוקבים 3 ערכים, כלומר - שורה אחת במטריצה. כדי לקרוא את כל המטריצה יש לקרוא 6 כרטיסים (3א2). אם מנוקב בכר- טיס ערך אחד בלבד וכך יוגדר גם בהוראת האיפיון, לא תשתנינה ההוראות לקריאת המטריצה. הוראת 862 תחזור על עצמה 3 פעמיס כדי להשלים קריאת 3 ערכים עבור שורה אחת. כלומר, הוראת האיפיון קובעת כמה פעולות 8:29 תבוצענה למעשה כדי להשלים את רשימת המשתנים אשר מופיעים בהוראת ה-552 (וכן בבצוע הוראות פלט). [] - 130 - סרק 4: ת!כ[י!ת א6/ת- 8גת3זקס+קס וס מבנה תוכנית תוכנית עיבוד מורכבת מקטעים שונים המבצעים משימות שונות בתהליך העיבוד. קטעים מסוימים בתוכנית יכולים לחזור על עצמם, כמו למשל חישוב שורש רבועי, הדפסת כותרת דף חדש, חישוב פונקציה טריגונומטרית מסוימת, מציאת הערך הגדול מתוך ערכים נתונים ועוד. גם אם קטע מסוים לא חוזר על עצמו באותה תוכנית, נמצא שהוא הוזר בתוכניות שונות. כדאי אם כן, לשמור את אותם קטעי תוכָניות ולנצלם שוב ושוב ללא צורך בכתיבה מחדש. קטעים אלו הן תוכניות משנה - פתגעקסצקטסט5. תוכניות המשנה נשמרות בספרית תוכניות (/ל11078 תעקָסצק) והתוכנית הראשית, "קוראת" להן. תפקידו של המתכנת לדאוג לשילוב הלוגי שלהן כתוכניתו והמהד?ר (ע6000116) מטפל בשילוב הפיזי שלהן. ספרית תוכניות המשנה נתונה לשימושו של כל אחד והוא פטור על כן מלכתוב את אותן התוכניות מחדש, אם הן מתאימות לצרכיו. נתכונן בנוהל השילוב של תוכניות המשנה ובשיטה בה מבוצע העיבוד בעזרת התהליך הסכימט? הבא: ->-ע תוכנית ללה התחלה ראשית ל תוכנית משנה 1% , תוכנל , "קריאה? 7 - - -ו3! - בשעת הפעלת התוכנית הראשית מבוצעות ההוראות השונות בזו אחר זו, עד אשר מגיעים להוראת "קריאה" לתוכנית משנה. בנקודה זו, מבוצע מעבר להוראה הראשונה בתוכנית המשנה וממנה ממשיכים בבצוע ההוראות בזו אחר זו עד אשר מִסִימים אותה. כאן חוזרים אל התוכנית הראשית, אל ההוראה העוקבת את הוראת הקריאה לתוכנית המש- נה. מכאן ממשיך תהליך העיבוד בתוכנית הראשית עד לסיומה או עד אשר פוגשים שוב בהוראת קריאה לתוכנית המשנה הנוכחית או לתוכנית משנה חדשה. קיימים סוגים אחדים של תוכניות משנה, נדון כאן בכמה מהן. פונקציהיבנויה או פונקצית ספריה כל העוסק בתכנות מדעי נתקל לעיתים קרובות במספר פונקציות כגון הפונקציות הטריגונומטריות, לוגריתמים, שורש ריבועי וכיו"כ. כדי להקל על המתכנת מצורפת לפורטרן ספריה של תוכניות אשר מחשבות פונקציות כאלה ואשר אפשר לשלבן בצורה פשוטה לתוך תוכנית הפורטרן. הפניה לתוכניות אלה, הקרויות "פונקציות-בנויות", מתבצעת על-ידי ציון שמה של התוכנית והפרמטרים הנדרשים לצורך החישוב. התוכנית לחישוב השורש הריבועי, למשל, נקראת 5081. אם קיים בתוכנית יתנה בשם א ומעונינים לחשב את %/=צ' תיכתב ההוראה באופן הבא: (א)1ת50-ץ לשם חישוב הפונקציה סינוס נכתוב: (ק)א51-דך כלומר, כתיב המזכיר שוב את הכתיב המתימטי. המשתנה של פונקציה-בנויה יכול להיות קבוע, משתנה, או ביטוי אריתמט כמו-כן מותר לקרוא לפונקציה של פונקציה. למשל: ((2**ץ+2**א)7ת50)א2=51 פונקציה בנויה יכולה להופיע גם כחלק של ביטוי אריתמטל: ( (א) 2+005**א)5007+(א)א3.0*51=ץ סיפרית הפונקציות הכנויות שונה בניבים השונים של השפה, אם כי רובן קיימות בכל הניבים. > |32 = פונקציות נוספות נפוצות הן: (*)קאם - לחישוב הערך 6 בחזקת א<; (א%)45 - למציאת הערך האבסולוטי של א; (%)410010 - למציאת הלוגריתם העשרוני של א; ועוד. הפונקציות האלו מטפלות בערך ממשי בודד (ע6לחטגת 8681) והתוצאה גם הלא ערך ממשי?. יש פונקציות הפועלות גם על ערכים שלימים (6865צה1), ואז מוסיפים את האות 1 משמאל לשם הפונקציה, למשל: (א)4=1485. כללי כתיבה של פונקציות: כל מתכנת יכול לכתוב בעצמו פונקציות ולהוסיפן לספרית התוכניות. נציין, כאן מספר כללים אשר יאפשרו לנו לכתוב פונקציות פשוטות: 1. פונקציה יכולה לטפל במשתנה אחד או יותר (פרמטרים), אולם תמיד היא מחזירה ערך אחד בלבד. 2. ההוראה הראשונה בתוכנית הפונקציה מציינת את שמה ולאחריו, בסוגריים, רשל- מת הפרמטרים. הערך הסופי מתקבל למשתנה ששמו כשם הפונקציה. 3. הקריאה לפונקציה היא לפי שמה כשלאחריו נרשמים הפרמטרים בתוך סוגריים. 4. הפרמטרים הנמסרים לפונקציה צריכים להתאים בסוגם (משתנים ממשים או שלימים), מספרם ובסדר הופעתם לפרמטרים המופיעים בהגדרת הפונקציה. שמות המשתנים הנמסרים לפונקציה אינם בהכרח זהים לאלו המוגדרים בה ולכן חשובים הסוג, המספר והסדר. 5. חזרה מהפונקציה אל התוכנית הראשית היאע"י הוראת אתטדעת. סוף התוכנית המהווה את הפונקציה נקבע ע"י הוראת סאם. נשתמש בכללים אלו לשם כתיבת פונקציה: נתונה כרטסת של 150 תלמידים. בכל כרטיס מנוקבים מס' התלמיד, שם התלמלד ו-3 ציונים. יש לחשב את ממוצע הציונים ולהדפיסו. כתיבת התוכנית: - 133 = התוכנית הראשית תטפל בקריאה והדפסה של הנתונים. תוכנית-המשנה תבצע חישוב ממוצע של 3 ערכים ותמסור את התוצאה לתוכנית הראשית. הפונקציה: הסבר: (3א,2א,1א) העג אק1צסאטת 1+2+3<=א 3 אאנודפת סאפ שם הפונקציה הוא 4% (מספר ממשי) והיא מקבלת 3 פרמטרים של 3 מספרים שלימים. תוצאת החישוב של הפונקציה מקנה את התוצאה למשתנה ששמו כשם הפונקציה. התוכנית הראשית: הסבר: 7 0 99 0 ,6 ,5 פגפת 0, ד1, א) הצא=1גדקד דד ,8 ואזחק יונ (312) ד03: (4.1ת, =325017 78) דגאחק: סאת התוכנית מכצעת בלולאה, 150 פעם, קריאה של כרטיסים לפי איפיון מס' 5, חישוב מסוים והדפסת תוצאת החישוב לפי איפיון מס' 8. בתהל;ך החישוב מופעלת הפונקציה 4% אשר הוכנה על ידנו קודם לכן. הפרמטרים הנמסרים לה הם שלשה ערכים שלימים א,'1, 2 שנקראו מכרטיסים. הפונקציה היא הערך הממשי הבודד 2%% המהווה את הממוצע שלהם. 1 תודפס בהוראת זא81ק2 העוקבת. את המספר 5.0 והתוצאה / תוצאת החישוב של אל ערך זה נחבר - 136 - פונקצית הוראת המתכנת יכול לכתוב לעצמו פונקציות פשוטות שניתן להכילן בביטוי אריתמטל אחד. פונקציות אלו נכתבות בראש התוכנית בה הן מיועדות להפעלה ואינן דורשות כל הכנה מי?וחדת או תווך של ספרית התוכניות. לדוגמא: נשתמש בפונקצית-הוראה לטם חישוב של סכום שורשים רבועיים של שני ערכים נתונים. מבנה התוכנית: (דטקחק, חקא ) 5 4אאאסקהק (צ) 5+ (א) 5007-= (צ, א)ותו5 8 ,4 ,5 פאפת 6 0ד 00 (00.8.) תך 5. 8(*7, 6=50%)4 8 6 סאם הסבר: פונקציה 50% מקבלת שני ערכים ממשיים ומחשבת את סכום השורשים שלהם. בתוכנית היא מקבלת למעשה את הערכים ‏ ו-8 אשר נתקבלו ע"י הוראת פגמת. הערך היחיד שמוסרת הפונקציה נכנס לתהליך החישוב של המשתנה 6. הכללים העיקריים לכתיבת הפונקציה הם: 1. הגדרת הפונקציה היא ע"י ביטוי יחיד אשר בו מופיע שם הפונקציה ולאחריו בסוגריים - רשימת הפרמטרים. מימין לסימן הטויון מופיע ביטוי אריתמטל. 2. פונים אל הפונקציה ע"? הכרזת שמה כשלאחריו בסוגריים רשימת הפרמטרים המתאימים בסוג ובסדר לאלו המופיעים בהגדרת הפונקציה. ‏ הפונקציה מחזירה ערך יחיד שסוגו כשם הפונקציה (משתנה ממשי או שלם). 3. אפשר להשתמש בפונקציה בתוך פונקציה. 4. הגדרת הפונקציה טובה רק בתוכנית בו היא נכתבה. 5. את הגדרת הפונקציה רושמים לפנל הוראות הבצוע של התוכנית. - 135 - שגרה (6תג+טסצסלט5) שגרה היא תוכנית משנה אשר מיועדת לכצע סדרה מוגדרת של פעולות. אפשר לפנות אל שגרה מתוך התוכנית הראשית או מתוך שגרה אחרת. בכל פניה אל שגרה לש לציין בסוגריים את רשימת המשתנים המועברים אליה כנתונים ואת רשימת המשתנים שמקבלים ממנה עם תוצאות. שמות משתנים אלו מוכרים בתוכנית הראשית. נראה אחר כך שכאשר מכינים שגרה צריכים לציין בהוראת הכותרת שלה גם כן רשימת משתנים, אשר מקבילה לרשימה אשר נמסרת לה בשעה שפונים אליה מתוך התוכנית הראשית. נדגים את השימוש בשגרה בעזרת דוגמא פשוטה: יש לקרוא 5 כרטיסים שכהם מנוקבים ערכי אורך ורוחב של מלבנים. יש לחשב, בעזרת שגרה, את השטח ואת ההיקף של כל מלבן ולהדפיס את התוצאה. התוכנית הראשית: (דטקדטק, דטקא1) 6416 אאחסקתק 0 1 5 8 7 פגפת סיעוף לשגרה (חחעתק, תתה, פ, א) ם,החץ 64 תחעאסק, המת 10 דאזתק 1 זיוב (273.1) זגאחקץ 7 (1. 4, = דועת קל63, 1 .5ם, =גמתה7405) דגאחק? 10 סאם השגרה: (4ד6א.1, מתה, צ, א) מאתץ מאדדט0ת509 צ*א=אמתג (צ+א) *2=תק אתטידתת פאם הסבר: התוכנית הראשית נקראת 64106. היא קוראת מכרטיסים את ערכ? האורך והרוחב של המלבנים שצריך לחשב. בכל כרטיס לשנם שני שדות , 8 אשר קוראים אותם לפל > /-- -=-==-- | * 136 - הורא 6 יוראת איפיון מס' 7. כל התוכנית הראשית מכוקרת ע"י הוראת הלולאה 0ע אשר מב צעת אם גוף התוכנית חמש פעמים, פעם אחת עבור כל כרטיס, החל מההוראה העוקבת את הוראת 20 וכולל ההוראה שהתוית שלה היא 1 (ההוראה דַא81?). כאשר צריך לבצע את החישוב מתבצע סיעוף אל השגרה אשר מיועדת למטרה ז!. הסיעוף או הפניה אל השגרה נעשה בעזרת ההוראה 6411 כאשר לאחריה נרשם שם השגרה (0ת?) ולאחריו, בסוגריים, רשימת הפרמטרים. במקרה זה כוללת רשימת הפרמטרלט ארבעה משתנים 8, 8, פתג, 78/88. שני המשתנים הראשונים ברשימה נושאלם את נתוני הבעיה וסני המשתנים האחרונים ברשימה יחזירו מהשגרה את תוצאות החלשוב. נניה שהשגרה בוצעה ועכשיו, כאטר חוזרים ממנה יש לנו שני מטתנים (האחרוניס ברשימה) שבהם יש ערכים לפי תנאל הבעיה. עתה עלינו להדפיס את התוצאות לפי הו- ראת איפיון 10. בהוראה זו הקדמנו לפני כל מבנה את ההסבר השייך לו, בעזרת האי- פיון ₪ (שים לב למספר שמטמאל לאות 1 המציין את מספר התוים שמימין לאות 1). הדפסת התוצאה תופיע ברווח טל שתי שורות מהשורה הקודמת (מכיון שהתו הראשון בסורה - תו הקוד - הוא 0), ותוכנה יהיה כזה: א אא-תחק 5 א. אאא>אפתג + לאחר השלמת בצוע הלולאה (לפ? ההוראה 20) 5 פעמים, עוברים להוראה העוקבת את הוראת 1א281. הוראה זו היא 5102 וכאן מסתיימת התוכנית. בתוכנית כלולות שת? יוראות האיפיון (00%47?) אשר אפשר לרשום אותן בכל מקום, לפני ההוראה פאם זציינת למהדיר את הכרטיס האחרון בתוכנית. נעבור עתה אל השגרה: ההוראה הראשונה בשגרה היא הוראת הכרזה מא71ד508800 כשלאחריה מופיע שם השגרה (₪:84"), ולאחריו בסוגרי?ים רשימת פרמטרים. רשימת הפרמטרים שהופ?עה בהוראת 1 הפונה לשגרה מקבילה לרשימה זו. שמות הפרמטרים אינם חייבים להיות זהים אולם סוגם, מספרם והסדר שלהם חייבים להיות זהים. הסגרה מניחה שנתוני הקלט מתקבלים בפרמטרים א, ץצ והיא משתמשת בהם לחישוב התוצאות 455, 677₪א1 המליצגים את השטח וההלקף. החזרה מהשגרה היא ע"? ההוראה אאש7פת. בסוף השגרה, כבכל תוכנית מופיעה ההוראה פא" המיועדת עבור המהדיר. - 37! - דוגמא נוספת: יש לעבד נתונים סטטיסטיים ולהפיק דוח. הנתונים מתקבלים בכרטיסים, 8 שדות בכרטיס, אשר כמה מהם יכולים להיות אפסים. יש למצוא בכל סדרה (כרטיס) את הערך הקטן, הערך הגבוה ואת הממוצע. כמו כן יש לציין כמה ערכים שאינם אפס קיימים בכל סדרה. את התוצאות יש להדפיס עבור כל כרטיס. התוכנית הראשית תטפל בקריאה ובהדפסה ובפעולות אחרות הנדרשות ממנה. השגרה תבצע את החישובים והבדיקות לפי תנאי הבעיה. [ | | | | התוכנית הראשית: | אק | (8)א אק51אמואזם | | | השגרה: / יד דד מא טק 50 (805)8ד א510אמאזס פאם הסבר: התוכנית הראשית קוראת את הנתונים מכל כרטיס אל וקטור בשם ‏ בעל 8 אלבריס. כדי שהשגרה תוכל לבצע את החישוב על 8 ערכים אלו יש להעביר אליה את הידיעה על וקטור זה בצורת פרמטר. השגרה עצמה צריכה לדעת לטפל בוקטָור ועל כן צריכה להיות - 138 - שם הוקטור יכול להיות קיימת דרך בה גם כן הכרזה א510א01/0, כפי שקיימת בתוכנית הראשית. שונה (כך יהיה המצב בדרך כלל) אולם מספר איבריו צריך להיות שוה. להעביר לטגרה את מספר איברי הוקטור אשר ידוע בתוכנית הראשית, אולם לא נטפל בזאת כאן. בהוראת 06411 בתוכנית הראשית יש פניה לשגרה 5141 עם פרוט של 4 פרמטרים: הראשון - פרמטר קלט - שם של הוקטור המכיל את הנתונים והשלשה הבאים - פרמטרים לפלט. במשתנים אלו תועבר התוצאה מהשגרה לתוכנית הראשית. שים לב שהפרמטר האחרון א מציין מספר שלם, בעוד השאר מציינים מספרים ממשלים. בהוראת 5א50880011 של השגרה רשום שמה - 5141 ולאחריו רשימה של 4 פרמטרים המקבילים בתכונותיהם וסדרם לאלו שבהוראת 6411. לאחר הוראת 8א508%0071 רשומה הוראת א510א/01 המכריזה על ממדי הוקטור 74805. כללי כתיבה של שגרות 1. כפי שראינו, בכל שגרה יש הוראת הכרזה מא50880071, כשלאחריה שם השגרה ורשל- מת פרמטרים. הפרמטר?לם הם משתנים שלימ?לם וממשיים. רשימת פרמטרים זו הינה הדרך (לא היחידה!) להעברת נתונים בין התוכנית הראשית אל השגרה ולהיפך. 2. קוראים לשגרה בעזרת ההוראה 601, כשלאחריה מופיע שם השגרה ורשימת פרמטרים המתאימים לדרישות התוכנית הראשית שממנה פונים לשגרה. הפרמטרים ליכולים להיות משתנים או מספרים קבועים. הסוג, הסדר ומספר הפרמטרים חייב להיות זהה לרשימה שבהוראת מא50880071, אולם אין חשיבות לשמות המשתנים. 5. הכניסה לשגרה מתוך התוכנית הראשית היא בהוראת :0641. החזרה מהשגרה היא בהוראת את(8510 שלה הממשיכה את בצוע הפקודות שלאחר הוראת 631. מותרות מספר הוראות את(וזפ בשגרה כשם שמותר כמה הוראות 51/2 בתוכנית ראשלת. הערה: ישנן שגרות עם יותר מכניסה אחת. במקרה שלפנינו הנחנו שההוראה הרא- שונה בשגרה היא זו שלאחר ההוראה מא50880071. = 139 - סרק 5: תרף] סיכוס תאור הבעיה בבחירות לנשיאות המועדון עמדו לכחירה 5 מועמדים אופן ההצבעה של כל בוחר נוקב על כרטיס קלט באופן הבא. טורים 1 - 7 מס' ת.ז. של המצביע 8] - 20 שם המצביע 5 המספר הסדווי של המועמד לנשיאות (1 עד 5) את כרטיסי הבוחרים ריכזו לחבילה אחת ובסופה הוסיפו כרטיס ריק. כתוב תוכנית שתבצע את הפעולות הבאות: תדפיס את נתוני הקלט, תקבע כמה אנשים השתתפו בבח?רות ותדפיס את התוצאה, 1 2 3 תקבע ותדפיס מי מבין המועמרים זכה וכמה קולות קבל, 4. תחשב את יחס מספרי הקולות של הזוכה לשאר המועמדים ותדפיס את התוצאה. יש לתת לדו"ח כותרת בראש דף חדש, ולאחר מכן להדפיס את גוף הדו"ח. ‏ לש לתת הסבר לנתונים שיודפסו, לדוגמא: אאאא עסתתנא ‏ ע0+ 0%65? התרת הבעלה: 1 מבנה כרטיסי הקלט, עם שמות השדות: מספר ת.ז. שם המצביע של המצביע 8 סימון כרט?ס אחרון: הכרטיס האחרון בקלט לשא את הסימון 0 (אפס) בטור 25 (שדה 11) תרשים מלבני התחלה לולאה-בצוע חמש פעמים 5, 1=1 איפוס המערך : 1(0)א הדפסת שתל שורות - 0 ספירת המשתתפים בהצבעה שמירת מספר הקולות של מועמד ראשון ומספרו הסידורל (1)א = קוקז 1 = דסז לולאה לבחירת הזוכה 5 = ך שמירת מספר הקולות של המועמד (ד)א = קאק1 שמירת מספר סידורי של המועמד 107 = 1 הודעה: מספר הזוכה מספר הקולוה 1/0 ולאה לחישוב לחסי הקולות 5 = 1 ש ב) << הדפסת שורה יחס קולות זוכה/מועמד [ן = 2 ל / 5% 41 6ס פא | | | | = 00 + ( תכנות הבעיה + א 2 ן א ((*-+)5(,3*,5-%)5%,80,(%-%)4,9 -----%,א3, (זעַקזעַס,זטקא])א6)א 068.4ה2< (5)א א510א:מזס 00 37 |,5 0))א 8 זאזןאק ב*,א40,וןהן)ואתאסם: 9 זאזאק אן)זגאאס, 2, (ג0,]1| 6.0 (|ו10,7*,1ג,17)זגהמס: 0 0ז 60 (1,)102,50,0 141 )א 046 ₪1 72 0 0סן זא[קץ (|17,3*,10,6<,1,א13,3,א0,4הן)זאההקס: 9 סז 60 (ן|)הבקהסן 00 11 5 35 סז 60 ((1)א,108<.16):ן וו 0ז 60 (1)הבקמסן ]=זסן 5 זא 6 זא [ןנוק (*65ז0+ +,13,+זק1|,5%,*4665,%*%04 8םאא]ה*,0ה|)זגתאס, ו זאזאק ((*=36)5, ה3ן)זאאהס, 00 268 5 (ז10)אבט 6)59)[( 6 זאזאק (0*,1|[,*5*,]5.,0א םזעצ*,* / *,0*,11א 6ז0צ*, האן)זאתאס, "עא 1 זא 6 קסז5 סא 5 17 8 9 9 10 00 2 5 253 24 53 53 .יי 6 2.1 2.15 5 ]2 2.1 יי 23| 2068 2006 יי 3 64| 0.6 0.7 2 2 4 5.5 5.7 7[ 77 53 3 5 77 10 52 4 4[ 6ץץ 2.0 00-[][]נ. - |83 - הסבר לתוכנית שורה 1- התוכנית הופעלה במחשב 626 שבו יש צורך להקדיסם את תוכנית הפורטרן בהוראה 2800%4%. שס התוכנית אם/]). 2- הכרזה על מערןך חד-ממדי % בן 5 איברים. במערך זה נצבור את מספר המצ- ביעים עבור כל מועמד. האיכר הראשון מיועד למועמד הראשון, האיבר הטני - למועמד השני וכן הלאה. 35- איפוס המונה לספירת מספר המשתתפים בהצבעה. 4 הוראת לולאה. לולאה זו מלועדת לאיפוס איברי המערך כדי שאפשר יהיה לצבור בהם את מספר המצביעים לכל מועמד. 6 הדפסה של שתי שורות כותרת להדפסת נתוני הקלט: אחת טכסט ואחת קוי הדגשה. הכותרת הראשונה תודפס בראש הדף לפי קוד קידום הנייר = 1 (181). השורה השניה תודפס בצמוד לה לפי קוד קידום הנייר א%תג18ס ( 18). שים לב לרווחים שבין חלקי הכותרת. יש לשמור על רווחים אלו כאשר כותכים את הוראת האיפיון להדפסת שורות הנתונים (שורה 16). 0 קריאה של כרטיס נתונים. קוראים שלשה שדות לפי תנאי הבעיה. 2- בדיקה לכרטיס אחרון, אם המספר בשדה 11 (טור 25 בכרטיס) שוה ל-אפס. אם התנאי מתקיים מכצעים סיעוף להוראה מס' 150 בשורה 18. אם התנא? אינו מתקיים - ממשיכים בהוראה העוקבת. 3- ספירת מספר המצביעים עבור כל מועמד: מוסיפים 1 לאיבר המתאים במערך א. 4- ספירת מספר המצביעים: מוסיפים 1 למונה. 5 הדפסת שורת נתונים. מוסיפים גם את השדה 58א%0א בצד שמאל כדי לציין מספר סדורי (אשר אינו מופיע בכרטיס). הוראת האיפיון צריכה להתאים לאיפיון הדפסת הכותרת (בשורה 7). 7- חזרה לקריאת הכרטיס הבא, 8- להוראה זו מגיעים כאשר מסתיימת קריאת נתוני הקלט (לפי הבדיקה בטורה 2). מכאן ואילןך מבצעים פעולות המתבססות על נתונים וערכים שנמצאים בזכרון המחשב. הפעולה הראשונה הנדרשת היא לבחור את המועמד הזוכה: מעכירים למשתנה עזר זמני (10%) את מספר המצביעים עבור המועמד הרא- שון. כאן דרושה הוראה נוספת, אשר חסרה בטעות. נעמוד על כך בהמשך ונסביר את משמעות השגיאה. 9 לולאה להשואת מספר המצביעים עבור המועמדים לבחירת המועמד הזוכה: אם המספר שבאיבר המערך קטן או שוה מהמספר שבמשתנה העזר :10 אין 225 299 -7 - 186 - משנים אותו. אך אם המספר שבמערך גדול מהמספר במשתנה - מעבירים אותו למשתנה 10% ואת מספרו הסידורי למשתנה 10% (שורות 23-22). כאן גילינו את השגיאה: צריך היה לרשום את ההוראה 101=1 לאחר ההוראה (1)א-10% שבשורה 18. במצב הקיים, אם הזוכה הוא המועמד הראשון המש- תנה 101 אינו מכיל את המספר 1 כנדרש אך אם המועמד הזוכה אי?נו הראשון המשתנה 101 מקבל את המספר הסידורי? הדרוש. הדפסת הודעה על הזוכה: שורת טכסט ושורת הדגשה. בקטע זה מבוצעת לולאה לחישוב והדפסת יחסי הקולות של המועמד הזוכה לשאר המועמדים. מעבירים את הערכים ממשתנים שלימים (%568625ת1) למש- תנים ממשיים (8641) לבצוע החישוב. בלולאה זו חישבנו גם את יחס מספר הקולות של הזוכה לעצמו, לשם הפשטות של התכנות. הוראה 5107 עוצרת את העבודה בתוכנית זו ומעבירה את הפיקוד למערכת ההפעלה אשר תטען תוכנית אחרת ותפעיל אותה. הוראה פא מציינת את סיום הוראות התוכנית (הוראה זו אינה הוראת בצוע אלא מיועדת למהדיר). תדפיס הפלט - 145 - א 1 5 --% ₪ 20 21 2א 2א 2 2א 2סא א5אא[אי =זסצ 6זסצץ 6זסץ =זסץ 6 א (,זא6סן .= פ1צאס ווו|וון 2 05%46א 25 3 23 צז0א 2+ +אפצסא.א? 7 | 6 אאאט0 הי 1 0%א%א1 7 1[ 0 א₪6 2" זא )א 7 0 ,0,ג 1 ]אאא ] 207 א1)ג;זט 52 1272 0%ס 1 !1 6 16א 002 ;הז 0 אש 86, 0 | א )0% אא 1-1 056 8% 7 ואטץ+ א]₪ 9 זז ץצ 60 2205 6א 86 .א 22072 5 9 זק666,. 007777777 131/500סא >זסט / 2סא שזסש 0 | שזס0ץצ / 0 שזסצ / 0 פשזסצ / 0 שזס0ץ / 2א =זסץ - 146 - הסבר לפלט התוכנית הדוח מודפס בראש דף חדש, שבראשו יש שורת כותרת ומתחתיה קוי הדגשה: סקא :]אא . דאמפןז . א .א - מספר סדורי של המצביע .זאמס] - מספר ת.ז. של המצביע - שם המצביע 0 - מספר המועמד עבורו הצביע . בגוף הדוח שהוא תדפיס נתוני הקלט ישנן 21 שורות, ברווח כפול. ראה את קוד דילוג השורות בהוראת האיפיון 100 שבתוכנית. לאחר הדוח המפרט את פרטי? ההצבעה של כל משתתף מופיעה שורה המציינת את המועמד שזכה. זהו מועמד 2 שעבורו הצביעו 9 חברים. לשורה זו יש שורת הדגשה. בסוף הדוח יטנן 5 שורות שבהם נרשמו יחסי הקולות של המועמד שזכה לשאר המועמדים. כאן מסתיימת התוכנית ועמה גם הדות. ס יכ ו ם בפרקים האחרונים תיארנו את התכונות הבסיסיות של השפה פורטרן. התל?אור מספיק כדי שהקורא יוכל לכתוב תוכניות פשוטות ולהבין תוכניות הכתובות בפורטרן אולם אין הוא מכיל את כל האפשרויות וההוראות של השפה. כפי טציינו במבוא כוונתנו היא לתת הכרה ראשונית וכללית של השפה, מעין סיור מהיר דרכה. אנו מקווים כי פרקים אלו נתנו ללומד הבנה של המושג שפת תכנות בכלל, וסל האפשרויות הגלומות בשפת פורטרן בפרט. חלק רבל?על: תכנות קובול 0% - !89 - פרק ו: 6כת התכןת קובול מאפייני השפה השם 60801 בנוי מראשי התיבות של השם: 86 021685666 80518655 תסתה60 ההגדרה של שפת קובול הלא: - שפת תכנות - המשמשת לעיבוד נתונים מל?נהלי - ואילנה תלויה במבנה מסויים של מחשב. נפרט את שלשת המאפיינים האלו: א. שפת תכנות שפת קובול שייכת לקבוצת שפות התכנות העיליות. השפות העיליות מיועדות להקל על עבודת התכנות על ידי שימוש במשפטים בניב של השפה האנגלית הברורים ככל האפשר למשתמש. המהדיר מתרגם את משפטי השפה לתוכנית בת-ביצוע (תאעקסעק 05[66%). לכל מחשב יש מהדיר מתאים אשר מפיק מתוכנית המקור, הנכתבת על ידי התוכניתן, את התוכנית אשר משתמשת בפקודות המלוחדות לו ועל כן יכולה לפעול בו בלבד. קובול הינה שפה שמשפטיה דומלם מאד לאנגלית וגם אדם ללא ידיעה מוקדמת יכול להבין משמעותם של משפטים אלה. ‏ כדוגמא נציג את משפטי קובול הבאים: .1 קד 60 פאם דג עג-2דפטקא פגמת .04מ53ומוו 5 ד 60 18 אגודד תמדהמת6 15 612 קן . 4אפ64-מאשא שד 1 ספא ₪155 .15 2 6א1שהטפא הפדעה 4מח5- דמאטפפת מדנחא וס . השחט5- פאקא שד 2 ספה וו קד 60 50 > ד50080-פאסא 15 . דממ דקא- פאז ד50800 אפק:פמק == א .₪7 - !50 - התוכנית מורככת מאוסף של משפטים המסתיימים בנקודה (.). קטע תוכנית זה כולל כמה פעולות: קריאת רשומה מקובץ, בדיקת שדה 612, הדפסת שורה והחלטה על מעבר לדף חדש. בזמן קרילאת הרשומות מהקובץ נעשית בדיקה לסוף הקובץ ואז מסתעפים לקטע התוכנית 158א1ת. עורכים בדיקה של שדה 612. אם הגיל גבוה מ-18 עוברים לקטע התוכנית 6105, ואם לא - מוסיפים 1 למונה חכרי הגדנ"ע, וממשיכים. בקטע התוכ- נית 0105 מדפיסים את הרשומה לאחר קידוםס הנייר ב-2 שורות. מוסיפים 2 למונה השורות, ובודקים אם הגיע ל-50. אם המינה קטן מ-50 - ממשיכים בקרלאת רשומות ואם לא - מבצעים שגרת-כותרת הכוללת מעבר לדף חדט וכו'. שים לב טשמות שדות, מונים וקטעי תוכנית נכתבו במלים עבריות בתעתיק אנגלי (חופשי). אין כל חובה לנהוג כך, אך צורה זו נבחרה כדי להקל על הקורא המשתמש בשפה העברית. ב. ספה המיועדת לעיבוד נתונים מינהלי הטפה כוללת הגדרות נתונים והוראות לביצוע תהליכי העיבוד השונים. מאלו יש להדגיש את המשפטים וההוראות לטיפול בשדות במבנים ובקשרים שונים, וכן את הוראות העריכה להדפסה. ‏ עיבוד נתונים מינהלי מאופיין ע"י פעולות קלט ופלט רבות ומגוונות הכוללות עריכה להדפסה לעומת פעולות חישוב ועיבוד פשוטות יחסית. ג. אי תלות במחשב מסוים תוכנית המקור הנכתכת בשפת קובול עוברת תרגום והופכת לתוכנית בת-ביצוע ע'"י התוכנית המתרגמת (ל60₪0116) המותאמה למחשב ולמערכת ההפעלה שבה הליא תופעל. לטפת קובול "ניבים" שונים אשר נקבעו ע"? היצרנים השונים של המחשבים. כל "ניב" מכיל את השפה הסטנדרטית הבסיסית אשר מועשרת באפשרויות נוספות המיו- עדות לנצל את התכונות המיוחדות של כל מחשב. כך, שהשפות קובול אשר מופעלות במחשבים של יצרנים שונים, ולפעמים אף אצל אותו יצרן מחשבים, אי?נן זהות לחלו- טין. מכאן שאין אפשרות לקחת תוכנית-מקור אשר יועדה מלכתחילה להפעלה במחשב'* אחד ולהפעילה במחשב אחר ללא תקונים ושנויים מסוימים. - ו5!ו - ככל שמצטמצמים בתכונות הסטנדרטיות הבסיסיות של השפה, השנויים הנדרשים מעטים יותר ואפשר לראות את התוכניות כבלתי-תלויות במחשב. 0 שפת הקובול המקובלת כיום בתעשית המחשבים הינה :6080 5א, אשר מותאמת לסטנדרט הלאומי של ארה"ב (0826ת5%8 81ת3%10/ ת6-168(ת/),וגם היא, כאמור, אינה זהה לכל המחשבים ולמערכות ההפעלה. מרכיבי השפה מערכת התוים להלן פירוט התוים המוכרים ע"י קובול: ספרות 9 | מקף או סימן חיסור - אותיות לטיניות (אותיות "גדולות" בלבד) 2-| כוכבית או סימן כפל . גרשיים " | סימן חיבור + סימן שויון = | נקודה ופסיק : גרש ' | סוגר ימני ) גדול מ- < | סוגר שמאלי ( קטן מ- > | סימן דולר 6 פסיק , | נקודה או נקודה עשרונית . קו נטוי או סימן חילוק / | תו רווח (א%ת18פ5) 2 הסימן המקובל לסימון תו רווח בקידוד הוא ?/. בטופס המשובץ אין צורך לצי?ין זאת אלא די להשאלר משבצת ריקה. שדות המוגדרים כאלפנומריים ?כולים להכיל תוים שונים מאלו שברשימה. מכיון שתוכן שדות אלפנומריים "שקוף" לשפת הקובול, תהיה זו אחריותו של המשתמש לכך שתהיה שרשרת הדפסה מתאימה במדפסת לשם הרפסתם. אותיות עבריות שפת קובול אל?נה מכ?רה באותיות עבריות והתוכניות נכתכות באלפבית הלטיני. עריכת דוח"ות בעברית והדפסתם נעשית ע"י כך שמציגים אות לטינית לכל אות עברית. - !52 - שיטה זו מקובלת לצורך הדפסת כותרות, קבועים וגם תוכן שדות בקלט, פלט ובקבצים. בעת ההדפסה יש לדאוג לכך שבמדפסת יהיו שרשרת או תוף המכילים את התוים העבריים במקום, או בנוסף ללטיניים. להלן ייצוג האותיות העבריות ע"? אותיות לטיניות. שים לב שיש רק אותיות במבנה דפוס בגודל אחד (אין אותיות גדולות וקטנות): : <רכש כל + צ ₪ 9 ₪ ₪ ₪3 > ₪ <> > טש ו ₪ ₪ ₪ טפט > > ש 4 ₪ שצ ו - 04 ₪6 ₪ ₪000 2 ₪3 א - ₪ ו הדפסה בעברית: בהקשר לשימוש בשפה העברית במחשבים ישנו נושא נוסף הדורש טיפול: הפיכת כיוון השדה האלפבתי. בקלט מוזנים השדות האלפבתיים משמאל לימין, כלומר ...ג ב א, לפי כיוון התנועה של הכרטיס במנקבת, או לפי כיוון ההזנה באמצעים אחרלם. ‏ לגבי האנגלית אין כל הבדל מכיון שזהו כיוון הקריאה הרגיל. בטכסט עברי יש צורך להפוך את כיוון האותיות בשדה לצורך הדפסה כדי שאפשר יהיה לקרוא את תוכנו. כלומר, יש להציגו כ-א< ב ג... וכו'. ישנן דרכים אחדות לטפל בנושא זה, למשל ע"י העברת השדה, תו תו, אל השדה המקבל. ברוב המקרים משתמשים בשגרות תכנות סטנדרטיות של המערכת. המתכנת מכין את השדה המקורי, ומוסר לשגרה את כתובתו ואת כתובת השדה שבו יתקבל הטכסט "'"ההפוך". בשעת החזרה מהשגרה מכיל השדה המקבל את הטכסט בצורה הרצויה, מלמין לשמאל. נושא זה לא טופל בקורס. שים לב שקבועים בעברית אפשר לרשום מלכתחילה בכיוון הרצוי ואז אין צורך בהפיכה. = 153 " מלים שמורות שפת הקובול משתמשת באוסף של מלים הנקראות "מלים שמורות" (0+65א 604צע2656) לצורך הגדרות והוראות. אסור להשתמש במלים אלו שלא למטרתן, כמו למשל כשמות של משתנים. עם זאת, שנוי קל במלה השמורה מאפשר שימוש רגיל שלה, כמו למשל 6400 היא מלה שמורה אולם 63111 מותרת בשימוש. להלן לדוגמה, כמה מלים שמורות. רשימה מפורטת תמצא בספרות המתאי?מה ל"'נ?ב" של שפת הקובול שבו תשתמש. הספת 0 5 מ 60 ספ צזקזיהוטו 0 פד ב 0 אמתה אדא גד ממסתמת 0 צןק15ס ד פאם 7 7 ככלל אפשר לראות כל מלה במבנה ההוראה כמלה שמורה של השפה. כלומר אי אפשר להגדיר שמות של שדות עם מלים שמורות. המתכנת בשפת קובול כותב את התוכנית בטופס במבנה מלוחד. מתוך הטופס מנקבים את התוכנית, שורה לכרטלס, ואת חבילת הכרטיסים שהיא התוכנית בשפת מקור - מזינים לתוכנית המתרגמת. 40 ?06010 ד!. |/-6 6 78 פד 8 - 17006 אק 7 | מצאם ‏ | שו/.4 0 | | 6 2 | 2 |[ 8 [ק 6 34 1, ו --=>=[-*];-;][-[- :[:[ ת[ז7ה 0 0 סס אטאסן .₪ קד א מטש | .60 0 2 וצעשאפ1 3 אואחאספ: 000 | . 55 | ...אד פגסק ו ו - 1585 = תאור הטופס: א) 3 השורות הראשונות הן למידע בלבד וא?נן מלועדות לניקוב. ב) טורים 1-6 משמשים לספרור שוטף של שורות (כרטיסי) התוכנית. מילוי טורים אלו אינו נדרש ע"י השפה אך הוא חיוני לנוחיות עבודתו של המתכנת. ספרור הטורות המומלץ הוא כדלקמן: טורים 1-3 מספר דף הקידוד טורים 4-5 מספר השורה בדף בשיטה זו אפשר להשתמש בטור 6 להוספת כרטיסים בעתיד - עד 10 כרטיסים נוספים בין כל 2 כרטיסים מקוריים. כאשר רושמים טורים אלו, יבדוק המהדיר של שפת קובול את סדר הכרטיסים לפי מספרם הסידורי, ובהודעת השגיאה "יתריע" על סדר משובש. ג) טור 7 משמט לסימון המשכיות של הגדרת תוכן שדה. כלומר, הוא מיועד למקרים בהם גולשת הגדרה כזו מעכר לתכולה של כרטיס אחד. צריך לסמן בו תו כלשהו. ד) טורים 8-72 משמשים לכתיבת התוכנית. בטורים אלה קיימים שני אזורלים: אזור א (4) מתחיל בטור 8 (חובה להתחיל לרשום בטור 8). אזור ב (8) מתחיל מטור 12 ואילך (אפשר להתחיל לרשום בכל טור באזור זה, החל מטור 12 ועד סופו - בטור 72). החלוקה לאזורים נדרשת ע"י חוקי הכתיבה של קובול והשימוש בהם יוסבר בכל מקרה. ה) טורים 73-80 משמשים לרישום | זיהוי התוכנית ויהיו שוים בכל כרטיסי התוכנית. בסורים אלו ירשום המתכנת את שם התוכנית או את שמו למשל. לודגמה: לסדרת התוכניות לניהול מלא? אפשר לרשום: 4- זא:/אז 8 דאם/אן או, לתוכניות להנה"ח אפשר לרשום: זךםמא-את 0% אעטצזא- את אעאפ -את חוקי הפרדה לספת תכנות, כמו לשפה רגילה, יש כללי כתיבה המאופיינים ע"י מבנה המשפטים, הסדר של המלים במשפט, סימני הפיסוק וכד'. חלק מלימוד השפה הוא הכרת חוקי ההפרדה; = פפן = אשר אותם יש לשנן היטב ולהקפיד בישומם. כל סטיה מכללי הכתיבה תגרום לשגיאה בתוכנית: א. מרווח מפסיק בכל מקרה את המלה הכתובה לפניו, כלומר אינו יכול להיות חלק ממלה. לדוגמה: // 0/812< אינה מלה אחת בגלל המרווח המפריד בין המלה 2 ווהמלה %/82. אפשר לכתוב /0%072< או ץהלדךם/0א, אם דרוש. ב. לפני ואחרי כל סימן אריתמטי וסימן שויון (= + - * /) יבוא מרווח. לדוגמה: 6 - 8 + 1 = ג 607015 כשהסימן אינו מסמל פעולה חשבונית אלא סימנור של מספר, הוא ייכתב משמאל למספר וצמוד אליו, לדוגמה: 420+ או 20-. ג. לפני פסיק (,) ונקודה (.) המופיעים במשפט? הקובול לא יהיה מרוות. אחריהם חייב להיות מרווה. לדוגמה: ... 70 60 .ם 70 6 משסא ,8 סד 4 מעסון כל משפט בשפת קובול מסתיים בנקודה והיא חייבת להופיע. פסיק אפשר לרשום כדי להפריד חלקי משפט לשם בהירות והוא אינו משפיע על משמעות המשפט מבחינת שפת קובול. נקודה עשרונית ופסיק המופיע בשדה עריכה של מספר הינם יוצאים מהכלל ואחריהם לא יהיה מרווח. במקרה זה הם שייכים לרצף התוים. ד. בכל מקרה שיש להשאיר מרווח אחד, אפשר להשאיר מספר כלשהו של מרווחים. מבנה תוכנית תוכנית קובול מורכבת מארבע חטיבות עיקריות (5א21%1510) המופיעות בה בסדר קבוע כדלקמן: 1. א1510עזם א0סזד60זתזדאמסץן חטיבה זו מכילה נתוני זיהוי של התוכנית ושל המתכנת. 2. א0ז51ז/זפ זא:*אסתז/את חטיבה זו מתארת את האמצעים הנדרשים ע"? התוכנית: - תאור המחשב - תאור יחירות קלט/פלט חטיבה זו מאחדת את כל הגורמים התלויים פיזית במחשב מסויים, ולכן כאשר מתכוונים להעביר את התוכנית להפעלה במחשב אחר יש לבצע כאן מספר שנויים. 3. א1510ענס גדאפ חטיבה זו מכילה את המידע שיעובד ע"י התוכנית: - רשומות הקלט/פלט - שדות עזר - קבועים (5זת5%8ת60) - 156 - 4. א01/1510 םאטסע6סאק ‏ חטיבה זו מכילה את הפעולות הדרושות לעיבוד המידע, כלומר "הוראות" קובול. תוכנית הקורס קורס זה בקובול מיועד להקנות לקורא ידע בסיסי בשפה כדי שלוכל לכתוב ולהבין תוכניות פשוטות ובינוניות. מסיבה זו התרכזנו בעיקר בשיטות ארגון קבצים ובמשפט? העיבוד העיקריים ונמנעגו מלהציג נושאים שבהם יש הבדלים בין "ניבי" שפת קובול מחשבה זו הנחתה בהשמטת נושא ניהול הנתונים בדיסקים מגנטל?ים, מכיון ש- השונים. עם זאת - כל נושא זה מורכב ומחייב ידע רב נוסף בשיטות ארגון נתונים בדיסקים. שנכאמר לגב? סרטים מגנטיים יכול להתאים לשיטת ארגון סיקוונציאלי בדיסקים. מומלץ שהקורא יפנה לספרות הכללית כדי למצוא את ההשלמות וההרחבות הדרושות להכרת השפה בשלימותה (ראה ביבליוגרפיה). המלצתנו לפנות לספרות זו רק לאחר נס- יון מעשי מסויים ברמה של השפה הנלמדת בקירס זה במהלך ההסברים להכרת השפה ואפשרויות?ה ניתנו דוגמאות ותרגילים שונים. חלק מהמקרים מהווה התרגיל השלמה לחומר הנלמד וכולל הסברים והבהרות החורגים מהסבר הדוגמה עצמה. הקורא מתבקש לשים לבו לכך כמה מהתרגילים כוללים רק קטע מתכנות הבעיה, בכדי להקל על הקורא ולא להכביד עליו בפרטים לא רלוונטייט לנושא הלימוד. בנוסף, הוצגו מספר תרגילים בשלימותם כד? לאפשר לימוד ההצגה והתכנות של בעיה שלימה. שפת קובול מתאימה במיוחד לתוכניות מינהליות ולכן רב בה החלק המוקדש להג- דרת נתונים, קבצים ודוח"ות. מאחר ואין אפשרות לבצע תוכנית כלשהי ללא הגדרות אלה, חלקו הראשון של הקורס מוקרש רובו ככולו להגדרת נתונים. שיטת הכתיבה להלן מספר הסברים על שיטת הכתיבה של הוראות קובול - כפי שתמצא בפרק זה: בהצגת המשפטים של השפה מופיעות לעתים בסוגריים מלים הכתובות עברית. ‏ מלים אלו תפקידן להראות לקורא מהו המרכיב שיש לכתוב נמקומן בגוף המשפט. למשל: (שם קטע) 70 00 = |57 = במקום (שם קטע) ייכתב שם של קטע תכנות שיענה על החוקים המתאימים לשמות קטעים לדוגמה: .1602 70 60 הסוגריים אינם חלק מהמשפט אלא באים לתחום את התאור העברל. חלקי המשפטים שיתוארו בתוך סוגריים גדולים כפולים הינם חלקים שחובה לבחור באחת מהאפשרויות המוצגות בתוכם. סוגריים אלו אינם שייכים לשפת קובול, לדוגמה: 5 תח 0185 06% 5 תו , פירושו שהמשפט הנ"ל ניתן לכתוב בשני אופנים (וחובה לבחור באחד מהם): .5 ת 5א1 60 8.008 או .5 ת 5א1דא60 806% סוגריים מרובעים אינם שייכים לשפת קובול, אלא מציינים חלק משפט שברשות כלומר, שאפשר להשמלטו מתוך המשפט. אפשר לכלול בסוגריים גם כברירה בין אחת מכמה אפשרויות: .₪ + 4 = [סמסאטקת] 151/02ת מדטקוק6 בדוגמה: את המלה 5םסא8₪00 אפשר לכלול או להשמיט לפי הענין. - !58 - פרק 2: א10זפזצזס אסזג16ץז]אתפן תאור ומבנה חטיבה זו מכילה את נתוני הזהוי של התוכנית ושל המתכנת, ויכולה להכיל פרטי זהוי והסבר נוספים. המטשפט א01%1510 א%71;1647110א108 הוא המשפט הראשון בתוכנית, ויכתב כשאר שמות ה-5א01%1510 באזור א (מסור 8). לאחריו תרשם נקודה. שאר המשפטים ירשמו אחריו, אף הם באזור א כשלאחריהם נקודה. המשפטים הכלו- לים ב-א01/1510 הם: | .א1%1510ם א10ד16ת1דאטפן , '6ֶתַהת-48-קסצכ' .ס60821-1קהק .66 . הקת ה . 66ת6זת56 .א110א 11 דפאז .ת6ת56 .אםדד1הא-5ד .6 .1150 6080- ד .6 . 5500817 .6 . 5אתעאתה סם התוכנית - .06844-10אק זהו משפט חובה וחייב להיות המשפט השני בכל תוכנית קובול. המשפסט מציין את שם התוכנית ומאפשר זהוי חד-ערכי שלה. הזהוי מיועד לשם אחסון התוכנית בספרית התוכניות ולשס הטענתה לזכרון המחשב לביצוע. כללי הכתיבה של "שם התוכנית" הם: - עד 8 תוים, ורק אלפבתיים ומספריים - התו הראשון חייב להיות אלפבתי | - לפני ואחרי השם יבוא גרש (צמוד לתו הראשון והאחרון). - 1589 = שאר המשפטים שאר המשפטלם הינם רשות, ולא החייבים להופיע בתוכנית. הם מספקים מידע כללי כמו שם המתכנת, מלתקן המחשב בו פותחה התוכנית, תאריך כתיבתה והרצתה של התוכנית, ונתונים כלל?ים אחרים. אם כותבים אחד ממשפטים אלו, הוא ייבדק ע"? המהדיר ולכן חייב לענות על דרישות השפה: | | - שם המשפט ייכתב באזור א (מטור 8) - ללא שגיאות כתיב. - בסיום כל משפט תרשם נקודה ואחרלה מרווח אחד לפחות. 0 - המשפט | בהמשך ייכתב בטכסט חופשי כרצון המתכנת, אך חי?יב להסתיים בנקודה. דוגמה: 4 2 8 . א1510צזס א16710ת1דאטסז . !1די .פך1-ַגתס6אק . 1אשא41 . אשת . 74 .אפדד1אא-מדגס . ק-מש1ת 60 אק1דאק-א1 תחק 0: . 5אתגאתה . - 160 - פרק :3: א0ס1זפזזס זאאאאס אצאצ כ ל ל י חטיבה זו בתוכנית קשורה קשר הדוק עם זהוי יחידות קלט פלט והגדרת קבצים. הוראות חטיבה זו יפורטו עם תאור נושא הקבצים מאוחר יותר. בשלב הראשון של הצגת התוכנית בקובול נשתמש באמצעי קלט/פלט ובשיטות הזנה והפקה של נתונים שאין צורך להגדירם במפורש. נשתמש בדרך כלל בקלט כרטיסים וב- פלט מכונת הכתיבה של המפעיל. פלט בשיטה זו טוב להודעות בלבד ולא להפקת דווחים. למכונת הכתיבה למשל אין אמצעים לשליטה על קידום הנייר כפי שנדרש כבמדפסת ומהל- רותה מתאימה לקצב עבודת אדם. קבצים בנפח גדול נמצאים בסרטים ובדיסקים מגנטל?ים ואלו דורשים הגדרות מפורשות. יתרונה של ההצגה הזו בכך שהתלמיד יכול להתרכז בלימוד מבנה הנתונים וההו- ראות של השפה מבלי לטפל בהגדרת הקבצים שהיא בעיה טכנית בעיקרה. כמו-כן מאפשרת סיטה זו לפשט את הצגת הפתרון לבעיות השונות הניתנות במהלך הקורס. הגדרת יחידות קלט ופלט וקבצים תלויה גם במחשב ובמערכת ההפעלה שבה תופעל התוכנית, ולכן יש לפנות לקבלת הסברים נוספים אל הספרות המתאימה. - 16! - פרק 4: אסז5זצזס ג זג תאור ומבנה ה-א1%1510כ 047 מתאר את הנתונים שיעובדו ע"י התוכנית. נתונים אלו כו- ללים: א. נתונים הנכללים ברשומות קלט/פלט הנכנסות או יוצאות מהזכרון של המחשב ב. נתוני ביניים המתקבלים בתהליך עיבוד הנתונים (לדוגמה: תוצאות ביניים של הישוב מסויים) ג. קבועים (קונסטננטות) שהוגדרו ע"י המשתמש. ה-א51%1510 0418 מתחלק למספר פרקים - 5א5₪0110: א. א550710 25ע]1? הוא הפרק בו מתוארים קבצי הקלט/פלט המשתתפים בתוכנית: תאור הרשומה, מכנה הגוש, תויות וכד'. פרק זה יפורט מאוחר יותר, בנושא קלט/פלט. ב. א520110 6-570%�5א1א0%סא הוא הפרק בו מוגדרים שדות עזר, קבועים ואף רשומות. המשפטים המתארים את ה-א01/%1510 וה-א520110 ייכתבו באזור א, עם נקודה בסופם. 4 8 |22 .אקז15צזם אדא .א550710 מתזץ . א5561710 6-5700465א1אתא תאור שדות - א550710 6-5708₪.65אזאאסא תאור שדות כולל את המרכיבים הבאים: רמת השדה (נ6סתטת 61צ16) 3. שם השדה מבנה השדה. - 162 - רמת השדה שדות יכולים להיות שדות עצמא?לים העומדים בפני עצמם (כמו קבועים או מונים) ויכולים להי?ות שדות המאוגדים בשדה אחר או ברשומה. לדוגמה: רשומה של קובץ התו- שבים מכילה את השדה "כתובת" של כל אזרה, מכאן שהשדה כתובת הוא חלק מתוך שדה גדול יותר שהוא הרשומה. ‏ שדה "כתובת" יכול לאגד בתוכו מספר שדות אחרים כמו שם רחוב, מספר בית, עיר ומיקוד. ַיחסים אלה בין השדות (שדה מאגד, שדות מאוגדים) מתוארים ע"י מספרים שנק- ראים רמות השדה (5צ+6סתות 16/61). כלל היחסים בין השדות הוא: שדה בעל מספר רמה גדול יותר כלול (או מאוגד) במלים אחרות בטדה אחר שמספר רמתו נמוך יותר (מספר קטן יותר) ושהוגדר לפניו. אפשר לומר ששדה עם מספר רמה גבוה יותר כלול בשדה אחר, או מהווה חלק משדה אחר שמספר הרמה שלו נמוך יותר. לדוגמה: | כתובת | - | 4208855 03 מס' בית - תתפ4עטא 04 שם רחוב - ₪7שת57 04 הטשדה 4208055 מאגד שנ? שדות | 8מפאא, 7מם51 מכיון שמספר הרמה שלו נמוך . תר משלהם והם רשומים אחרלו. השדות 85%/א, 518557 הם בעלי רמה שוה וכלולים יחד בטדה 008055. נדגים את מכנה הרשומה ורמות השדות ע"? תאור רשומת פרטלם אישיים בקובץ תושבים: רשומת תושב = |83 = ניתןו להתיחס לכל הרשומה כאל שדה אחד שתוכנו נתוני התושב. את הרשומה ניתן לחלק (תת-חלוקה) לארבעה שדות: מספר זהות, שם התושב, כתובת, תאריך-לידה. כל אחד מארכעת השדות הינו חלק מהשדה ששמו "רשומת תושב" ומהווה תת-חלוקה שלו. לכן מספרי רמת השדות האלו להלו גבוהים מרמת-השדה טל רשומת התושב (כלומר, מספר גדול יותר). השדה "שם התושב" אינו כלול בשדה "מספר זהות" ואינו מהווה תת-חלוקה שלו ולכן מספרי רמות שנ? השדות האלו יהיו זהים (אותו מספר). השדה "שם תושב" מתחלק בחלוקת משנה לשדות "שם פרטי" ו-"שם משפחה" המהווים 9. חלק ממנו. מכאן שמספר רמת השדות "שם פרט?" ו"שם משפחה" יהיו גבוהים מאלה של "שם תושב". ד. באופן אנלוגי? יהיו מספרי רמת השדות "רחוב","מספר בית" ו"מיקוד" גבוהים ממספר רמת השדה "כתובת". אם נציין את מספרי רמת השדות במספרים נמצא שלשדות הנ"ל מתאימים המספרים הבאים: רמה 1 - שדה "רשומת תושב" רמה 2 - שדות "מספר זהות", "שם תושב", "כתובת", "תאריך לידה". רמה 3 - שדות "שם משפחה", "שם פרטי", "מיקוד", "מספר בית" ו"רחוב". אפשר לתאר את הרשומה בצורה הבאה (תאור מדוייק בקובול ראה בהמשך). תושב 1 מספר זהות 2 כ שס תושב שסם משפחה 5 שס פרטל 5 כתובת 2 מיקוד 6 וש מספר בית וע שם רחוב תאריך לידה 2 שרה שמחולק לשדות אחרים ("מאגר") נקרא נתון קבוצתי - תח6ף] קטסע06 לדוגמה. - 168 - 'יכתובת". שדה שא?נו מחולק לשדות אחרים נקרא נתון אלמנטרי - 166 /ל8זצת6ה16ע, לדוגמה: "מיקוד". השדות מוגדרים בקובול זה לאחר זה, כל אחד בשורה נפרדת. שדה שמספר רמתו גבוה יציין תמיד תת-חלוקה של הנתון הקבוצתי בעל מספר הרמה הנמוך ממנו שהוגדר לפניו (דוגמה ראה להלן - בסעיף הבא). מספר הרמות החוקיים בקובול הם: מספר 01 - מספר הרמה הנמוך ביותר המוקדש להגדרת הרשומה השלימה. מספרים 02-49 - משמשים להגדרת שדות שמהווים תת-חלוקה של שדה אחר. המספר 77 - מוקדש לנתונים אלמנטריים עצמאיים, כלומר שאינם מהווים חלק מָנתון קבוצתי (לדוגמה: קבוע או שדה המשמש כמונה). בחירת המספרים בין 02-49 הינה חופשית. אין חובה לבחור במספרים עוקבים, אן יש לשמור על כללי חלוקת השדות ע"י ציון מספר גבוה יותר כשנדרש בלבד. את כל השדות המוגדרים ברמה 77 (נתונים אלמנטריים) יש להגדיר לפני? הגדרת שאר הרמות, מיד בתחילת ה-א500110 6-571005א1א08%א של ה-א510ז/זכ גדאפ. שם השדה שם השדה (או "שם משתנה") ניתן ע"י המתכנת כד? שיוכל להתיחס לאותו שדה בעת עיבודו. שם השדה מתיחס לשדה עצמו ולא לתוכנו ברגע מסויים, כך שאותו שם יכול להתיחס לערכים שונים ככל שאלה יתחלפו בתוך השדה במהלך העיבוד. לדוגמה שדה 8 יכול להכיל בתחילת העיבוד את הערך 5 ולאחר מכן את הערך 168. שם שדה יכול להיות מורכב מאות?ות, ספרות ומקף וחליב להכיל לפחות אות אחת. לדוגמה: | ₪אא ,1ַ7(חק-5% - שם שדה חוקי 5,.. 7 - שם שדה לא חוקי כי אינו מכיל אות בראשו. שם שדה חוקל 5)א - שם שדה לא החוקי כי זו מלה שמורה של הקובול 11 15717 את שם שדה לא חוקי כ? מכיל מרווח רההמ ה --- - 165 - שם השדה מוגדר לאחר מספר הרמה, כשמרווח אהד לפהות מפריד ביניהם. אין להשתמש באותו שם ליותר מאשר שדה אחד, מכיון ששם השדה צריך להיות חד-משמעי. את השם אפשר לכתוב כמלה לועזית או בתעתיק של המלה העברית, כפי שנהגנו ברוב המקרים. אם יש צרוך להגדיר שדה אך אין התיחסות אליו בתוכנית (למשל חלק מרשומה שאין לה שימוש בתוכנלת מסויימת) אפשר לתת לו את השם 210088. שם זה הינו שם כללי פיקטיבי שמאפשר הגדרת גודל ומבנה השדה אך לא מאפשר פניה אליו. מותר להש- תמש בשם זה יותר מפעם אחת בתוכנית. לדוגמה: הגדרת רשומת התושב המתוארת בסעיף הקודם: פ| . . 5134 01 . 17ז1ט15245-2ו 5 . 511-70511 05 . 1 51 11א- :571 07 . זדאק-אמהם 07 דמשקזא 035 . 11100 05 . 45-8811ק15א 05 . שקחפה 05 05 91-41 . שים לב: א. הרמה 01 נכתבת באזור א. שאר הרמות באזור ב (החל מטור 12) בכל טור שהוא. ב. רישום הרמות הגבוהות בטופס בצורה מדורגת (הזזה ימינה) אינה הכרחית, אך היא נוחה ומאפשרת לראות ביתר קלות את הלוקת השדות. ג. החלוקה של השדה//105!1-5115% נעשתה ברמה מס' 07 ואילו חלוקת שדה דַם/0ז]א נעשתה ברמה מס' 05. עובדה זו אינה מפריעה כלל כל עוד נשמר הכלל שנתונים אלמנטרים יהיו במספר רמה גבוה מהנתון הקבוצתי שלהם. ותו מו תתו .= ..-. - !66 - השדה 510-1053%% אינו כלול ב- 4158-2817 ולכן אסור שמספר רמתו להיה | שש" גבוה יותר. אך מותר היה לקבוע ל- %7058-515% רמה 02 כל עוד מספר זה גבוה מהנתון הקבוצתי שלו (במקרה זה /(/825!8) ולא גבוה מהנתון שלפניו שאינו נתון קבוצתי שלו. אם היינו קובעים ל-%/.51821-1058 מספר רמה 02 חייבים היינו לשנות גם רמתם של הסדות 10%₪1א ו-81017-78 ל-02 כי אם לא נעשה כן מספר הרמה שלהם *היה גבוה יותר מרמת /51104-7105%, כלומר שהם יוצגו כתת-חלוקה שלו, מה שאינו תואם את המצלאות. ה. בסוף כל משפט הגדרת שדה יש נקודה הצמודה אל האות האחרונה של המשפט. מבנה השדה בתאור מבנה השדה קובעים את הנתונים הבאלים: - אופי? השדה - אורך השדה א. אופי שדה אופיו של שדה יכול להיות אחד מהבאים: מספרי - שדה שיכיל מספרים בלבד ("נומר:?"). אלפביתי | - שדה שיכיל אותיות, מקפים ומרווחים בלבד. אלפנומר? ‏ - שדה שיכיל כל תו שהוא יט לקבוע במדוייק אופיו של כל שדה בגלל הסיבות הבאות: [) אם השדה הוגדר כאלפביתי או מספרי ובזמן ההתיחסות לאותו שדה בעת הביצוע של )2 )3 התוכנית, תוכנו הרגעי אינו מתאים לאופי שהוגדר, הדבר יגרום להפסקת הרצת התוכנית תוך ציון שגיאה מתאימה. ‏ למשל, מכיון שמבצעים פעולה חשבונית עם אותיות וסימנים. שדה שמשתתף בפעולה חשבונית כלשהי חייב להיות מוגדר כמספר? - אחרת מתקבלת הודעת טשגיאה בעת הידור התוכנית (ת2113:10ח60). חוקי העברת נתונים משדה לשדה, באיפן כללי, הם: - לשדה אלפנומר? אפשר להעביר שדה מכל סוג. - לשדה מספרי אפשר להעביר רק שדה מספר? - לשדה אלפביתי אפשר להעביר רק שדה אלפביתי ו וו קיית ררה כ.-חרר. - !67 - אופיו של שדה מוגדר על ידי תוים מוסכמים כדלהלן: האות 3 מציינת אופי אלפביתי האות א מציינת אופי אלפנומרל הספרה 9 מציינת אופי מספרל. ב. אורך השדה אורכו של שדה נקבע על פי מספר התוים המירבי שניתן לאחסן בו, והוא יוגדר ע"י מספר התוים המוסכמים המתארים את אופ? השדה. לדוגמה: שדה אלפנומר? שאורכו 5 תוים יוגדר ע"י אאאאא. שדה מספרי שאורכו 3 ספרות יוגדר ע"י 999. הערה: הגדרת השדות המספריים המוצגת כאן מתיחסת לשדות מספריים מסוג צ(1ץ5ז. אלו הם שדות שמכילים מספרים במבנה הקלט או מספרים מוכנים להדפסה, כלומר כל ספרה מוצגת בזכרון כיהחידה נפרדת לפ? צרוף הסביות המתאים שלה מבלי לעבור הסבה לשיטת המספרים המקובלת במחשב. ברוב המחשבים לא נעשית פעולת החישוב במספרים עשרוניים אלא באחת משלטות הייצוג: השיטה הבינרלית, השיטה של הנקודה הצפה (ת1סק 8ַת108:1+) ושיטת הדצימל? המקובץ (4661081 86%66ק). כאשר מבצעים פעולת החישוב בשדה עשרוני "חיצונ?" - מבוצעת באופן אוטומטי, ע"י הקובול, הסבת השדה לשיטת הייצוג הנהוגה במחשב והח- זרת התוצאה למבנה עשרוני כפי שנדרש בהגדרה. כדי למנוע את בזבוז הזמן הכרוך בהפיכה זו הנעשית פעמים רכות בתוכנית, ומסיבות נוספות, מוחזקים המספרים בקבצים בשיטה השונה מהשלטה העשרונית. בנושא זה - עיין בספרות המתאימה לניב הקובול המתאים למחשב שאתה מקבל את שרותיו. קיימים שדות מספריים מסוגים נוספים, אשר מיועדים לביצוע פעולות חשבוניות: 1 שדות בינריים - שדות אלה אינם כוללים ספרות עשרוניות אלא מספרים בינרי?ים, כלומר מספרים המורכבים מהספרות 0 ו-1. ערך השדה מתקבל ע"י חזקות של הבסיס 2 2) שדות מסוג הנקודה הצפה - שדות אלה מוצגים ע"י שבר הקטן מ-1 (מנטיסה) ומע- החד החדה הטמה רודה ד הרקת - 168 - ריך חזקה (אקספוננט). ערך המספר מתקבל ע"? מכפלת הבסיס המועלה לחזקה במנטיסה. לדוגמה: המספר 63 יכול להיות מוצג ע"? 0.65 א 52 כש-0.63 הוא המנטלסה ו-2 - האקספוננט. מספרים אלה מאפשרים תצוגת מספרים גדולים מאד או מספרים קטנים מאד (ע"י של- מוש באקספוננט שלילי). :) שדות מסוג דצימלי מקובץ - שדות אלה מנצלים את העובדה שכל ספרה עשרונית ניתנת להצגה בארבע סכיות (01%5). בשדות אלה מוחזקות 2 ספרות בכל בית בזכרון (6זַעס : 5155 8) כשהסימן מופיע בסוף המספר כלומר בחצי הימני של הבית הימני ביותר (4 סביות). הגדרת מבנה השדה - ₪ת(670זק הגדרה בסיסית הגדרת מבנה השדה נעשית על פי כללי השפה בעזרת מלת המפתח תת(ד6זק או 6זק. מלת המפתח תופיע לאחר שם השדה ולפני הגדרת אופיו של השדה וגודלו. לדוגמה, שדה אלפנומרי בגודל 8 תוים ובשם 5425 יוגדר כך: אאאאאאאא |פתטד6זק / 8 77 0 | יומר, אפשר לכתוב 21617008 או בקיצור 2716 (ללא סוגרלים). כאשר השרה ארוך ומכיל יותר מתו אחד, אפשר להשתמש בשל?טת "מקדם הכפלה". מקדם-ההכפלה הינו מספר המופיע בסוגריים צמוד לתו המציין את אופי השדה ומורה את מספר הפעמים שהתו צריך להופיע. לדוגמה: אאאא אפשר לרשום כ-(4)א 9 אפשר לרשום כ-(9)0)3 או: . (8)א 16 5828 77 - 169 - תרגיל: יש להגדיר בתוכנית 2 קבועים מספריים באורך של 10 ספרות כל אהד בשם 1 פאסו(. 2 מא0ו/ בהתאמה. יש להגדיר גם רשומה לפתיחת חשבון בנק במבנה הכא: מספר לקוח - שדה מספרי באורך 8 ספרות. שם הלקו - מחולק ל- שם פרט? - אלפביתי באורך 10 תוים שם משפחה - אלפכביתי באורך 10 תויס פרטל פתיחת השבון - שנ? שדות משנה: שם הפקיד הרושם ותאריך שם הפקיד הרושם - אלפנומרי באורך 15 תוים תאריך מחולק ל- יום - 2 ספרות חודש- 2 ספרות שנה - 2 ספרות תאור גרפי? של הרשומה: . רשומת לקוח שם לקוחה מספר לקוח - 170 - קטע התוכנית המתארת את הרשומה: 12 8 .א0ז1/15ם א16710ת1 זאטטז . '6111תד' .מ1-אהסקתק . א01/1510 דאמאאקאוד טאם .א7ז15עזס אדס . א10 55671 605ג5710₪- 6א1א הק .(9)10 16ק | נםאקון 77 . (9)10 16ק | 2מאקון 77 א 5 01 .(9)8 16ק 4ג0א.1-תהת15א | 5 . חס -5 . (10)א 6זק 1 06 . (10)א 16ק | (4קח15 06 35 קדזהתא.‎ . (15)א 16 פנאג? 04 .אד 04 . 16 | אקצ 09 .9 16 5%מסקם 09 .4 16 אאג53 09 - 17! - שים לב: א. שדות עם נתון אלמנטרי שאינם חלק מנתון קבוצתי הוגדרו ברמה 77 לפני שאר הרמות. ב. בנתונים קבוצתיים ירשם מספר רמת השדה ושם השדה בלבד. אסור לרשום את תאור אופי השדה ומבנהו. נתון קבוצתי (כלומר, שדה המתחלק לשדות אחרים) יהיה לעולם בעל אופי של שדה אלפנומרי ואורכו ייקבע על פ? סה"כ אורכי השדות שכלולים בו בתת-החלוקה. למשל: השדה 144814 יהיה אלפנומרי (למרות שכל השדות הכלולים בו מספריים) ואורכו יהיה 6. השדה /118? יהיה אלפנומרי ואורכו יהיה 21. השדה /551]18 יהיה אלפנומרי ואורכו 49. ג. בסוף כל משפט הגדרה יש נקודה. א. ‏ שמלרת הסימן של שדה מספר?י שדה מספרי שהוגדר ע"י מספר תשיעיות (כמספר הספרות של השדה), כפי שתואר לעיל, יכיל תמיד מספר בערכו המוחלט. מכאן נובע שאם נעביר אל שדה זה מספר שלילי, הסימן ייעלם וערכו של השדה ליה?לה למעשה חלוביל. כדי לשמור על סימנו של המספר הנמצא בשדה ?יש להוסיף את האות 5 לפנל התשיעיות וסמוך לספרה השמאלית. האות 5 הנוספת א?נה מגדילה את השדה. דוגמה: מספר בן ארבע ספרות עם שמירת סימן, המספר יוגדר כדלהלן: 3.2 מהתטדשזק 5 77 ב. קביעת מיקומה של נקודה עשרונית אם המספר המוגדר אינו מספר שלם, יש לציין מיקומה של הנקודה העשרונית. ציון מיקום זה מסל?יע בביצוע נכון של פעולות חשכוניות בהם נוטל חלק המספר המוג- דר. הנקודה העשרונית עצמה אינה נמצאת בשדה המספרי השמור במחשב ולכן מציינים למעשה את מלקומה הלוגי בשדה - היא נקודה עשרונית מדומה. - !72 - ציון המיקום ייעשה ע"י האות %, האות %, כדוגמת האות 5 אינה מגדילה את הסדה ואינה באה "על חשבון" ספרה של המספר ("התשיעיות"). לדוגמה: הגדרת מספר בן 6 ספרות, מהן שתיים מימין לנקודה העשרונית, עם שמירת הסימן של המספר: ,9 766606 \15א4 77 או: ,9 160 אאק415א 77 או: . (59)4(%9)2 16ק הק15 77 ז כו ור שפת קובול אינה מכירה בנקודה עשרונית המופיעה כתו בשדה מספרי?. אחסנת הנתונים בזיכרון ובקכצים הינה ללא הנקודה ורק המקום הלוגי שלה נשמר בתאור השדה. אם בקלט ישנם נתונים מספריים עם נקודה עשרונית (כתו), יש לבטל אותה לפני ביצוע כל פעולת חישוב ועיבוד בשדה זה. כאשר מתכוונים להדפיס שדה מספרי אשר חייב להכיל נקודה עשרונית - יש לערוך אותו במיוחד למטרה זו. לאחר העריכה אין זה יותר "טשדה מספרי" ואסור לערוך בו פעולות חישוב עריכת טדות מספריים להדפסה מבנה שדות אלפנומריים בשורת ההדפסה זהה למבנה השדה בזיכרון המחשב וב- קבצים. בשדות מספריים אין הדבר כך, וזאת מפאת השוני שקיים בין מבנה הנתונים המספריים לביצוע פעולות חישוב ועיבוד,לבין מבנה אותם הנתונים בהדפסה. נתונים מספריים במחשב יכולים להרשם בשיטות מספריות שונות: השיטה הדצל- מלית במבנה תוים, שיטה דצימלית מקובצת, שיטה בינרית ושיטת הנקודה הצפה. בהד- פסת שדות מספריים צריךן קודם כל להציג את השדה בצורה דצימלית כפי שנדרש ע"י המדפסת. השלב השני הוא "עריכת השדה" (8תג:661) לשם: א. החלפת אפסים מובילים במרווחים (לדוגמה הדפסת 5 ולא 005). ב. הכנסת נקודה עשרונית במקום הנכון, בהתאם להגדרת המספר. ג. ציון סימן שלילי אם תוכן השדה הוא מספר שלילי עריכת שדה מספרי נעשית ע"י העברת השדה המיועד לעריכה אל שדה אחר שהוגדר במיוחד לעריכה (156₪ 0%%ק6). העברת השרה תעשה ע"י הוראת העברה (20/8) רגילה - 73 - כשהשדה המקבל יהיה שדה העריכה אשר מבנהו מוגדר בצורה מיוחדתלצורךןך זה. לאחר ההעברה, השדה השולח אינו משתנה (כרגיל) והשדה המקבל יכיל את המספר הערוך להד- פסה. השדה הערוך איננו שדה מספרי (כי הוא כבר מכיל מרווחים וסימנים מיוחדים כמו נקודות, פסיקים וסימן המינוס) ולכן אסור לעשות בו חישובים או השוואות ארית- מטיות. הגדרת שדה עריכה שדה עריכה מגדירים בעזרת ההוראה 7161085 כפי שמגדירים שדות אחרים. בשדות עריכה קיימים תוים נוספים, מיוחדים, שמטרתם לציין את דרישות העריכה בשדה. ‏ את התוים מצ"ינים בצורה הבאה: א. תו 2 יבוא במקום תו 9 ויציין הפיכת אפסים מובילים למרווחים. מאחר והאפסים המובילים נמצאים משמאל למספר, יופיע גם התו 2 תמיד משמאל לתו 9 הראשון. אפסים שיופיעו מ?מין לספרה שאינה אפס לא ליהפכו למרווחים כי אינם אפסים מובילים. דוגמה: . (9)4 16ק 5428 77 .9 160ק 54088 77 554 מכיל את המספר 0023. אחרי ההוראה של העברת 554 ל-54258 יהיה תכנו של 58288: 25פס. להלן מספר דוגמאות נוספות: תוכן 540588 תוכן 50258 לאחר ההעברה 100 10 2(0> 20| 500 200 0020 00 שים לב: מכיון שצויין 9 אחד במבנה 5288, מימין, נשאר אפס אחד במקום זה ולא הפך לתו-רווח (5). - 174 - ב. נקודה עשרונית (.) תצויין במקום הרצוי, לפי ערכו של המספר, והיא תופשת תו בשדה העריכה בזיכרון ובשורת ההדפסה. בזמן ההעברה של שדה מספרי אל שדה העריכה נעשית התאמה בין הנקודה העשרונית למעשה לבין הנקודה הלוגית המצויינת על יד? האות % בשדה הטשולח. לדוגמה: שדה 505 הוגדר כ-9)4(%99, כלומר 4 ספרות לשלימים ו-2 ספרות ימניות עשרוניות. בטבלה שלהלן ניתנות מספר דוגמאות להעברת 5425 אל שדה עריכה 54058. תוכן 54095 הגדרת שדה עריכה 54068 תוכן 54258 לאחר ההעברה 1 6 (9)4 1000 2) 00 (2)4 0 3) 00 9. 2229 2. 0טפט 4) 4 9. 2229 4. 10 5 00 9. 2229 00( 66 07 9. 2229 40 7 04 / 22.09 4סט 8 ס0 222.2 טסספטסט סים לב: - 2 לא יצויין לעולם מימין ל-9. - אם התו 2 צויין מימין לנקודה העשרונית וישנם אפסים מובילים עד הנקודה העשרונית,גם הנקודה תתורגם למרווח (דוגמאות 8,7). - הגדרת 54258 קובעת את מספר הספרות שימין לנקודה העשרונית. כאשר יש טשוני בין מספר הספרות העשרוניות בשדה זה וב-(5425, העריכה מו- סיפה אפסים או משמיטה ספרות בהתאם למקרה (שורות 6,4-1). יהיה התו הימני ביותר של הגדרת השדה במשפט ה-167085ק. חוקי פעולתו הם הבאים: - אם השדה שלילי, הסימן יופיע בהדפסה. - אם השדה ח?ובי, הסימן יוחלף במרוותח. - 475 - דוגמה: 54 מוגדר (6)4 8 מוגדר -2299 (5 תוים בשדה) תוכן 54288 תוכן 54258 לאחר ההעברה (חיובי) 00 05 (שלילי) 00 -5100 ד. פסיק (,) משמש להפרדת ספרות האלפים במספר. חוקי פעולתו של הפסיק בשדה העריכה הם: - אם משמאל לפסיק הוחלפו אפסים במרווחים, יהפך גם הפסיק למרווח. - אם משמאל לפסיק יש ספרה השונה מאפס, ישאר הפסיק במקומו. דוגמה: | 58425 מוגדר (9)4 8 מוגדר 2,229 (בשדה 5 תוים) תוכן 54254 תוכן 54258 לאחר ההעברה 0 0 100 10 0 0000 בדרוגמאות הראשונה והשלישית הפך הפסיק לתו ס. קיימים תוים נוספים לעריכת שדות מספר?ים, ועליהם יש ללמוד בספרות המתאימה. הגדרת שדה עם ערך התחלתי - תטא? ההגדרות שבהן טיפלנו עד עתה היקצו לכל שדה שטח מתאים בזיכרון. תוכן השדות לפנל הפעלת התוכנית א?נו ?דוע ואין להניח לגביו דבר. כך למשל, שדה שישמש למונה חייבים לאפס לפני פעולת הס?כום הראשונה. לעתים יש צורך בהגדרת שדות עם ערך התחלתי כמו קבועים שונים, מונים מאופסים, כותרות לדוח"ות ועוד. הגדרת תוכן התחלת? לשדה נעשית,ע"י הוספת המלה מט%10/ לאחר תאור המבנה = = --= = 5- ₪ - !76 - (08₪ז160?) של אותו שדה: (תוכן השדה) 05₪]ג% 99 6זַק חא 77 למטל: .7 1/0 99 6זק 6אקא 77 משפט זה מציין שערכו ההתחלתי של השרה 6א0)/ בן 2 ספרות הוא 27. הגדרה בסיסית את תוכן השדה מציינים כבצורה שונה לשרות מסוגים שונים: א. שדות מספריים הכללים בקכיעת תוכן התחלתי לטדה מספר? הם: - תוכן השדה יכול להכיל ספרות (0-9), נקודה עשרונית וסימן אריתמטי בלבד, כל תו מאלו נרשם בטור נפרד בטופס הקידוד וינוקב בטור נפרד בכרטיס. - הסימן האריתמטי יצויין משמאל למספר וצמיר לו סימן + אין צורך לכתוב. סימן - יכתב תמיד - אם מספר הספרות קטן מגודל-השדה יוספו אפסים משמאל לספרות השלימים ומימין לנקודה העשרונית, כדי לשמור על ערכו הנכון של השדה בהתאם להגדרת מבנהו. - אם מספר הספרות גדול מגודל-השרר, יקוצצו ספרות שמאליות ביותר שמשמאל לנקו- דה העשרונית וספרות ימניות ביותר שמימין לנקודה העשרונית, בהתאמה. - אם צויינה נקודה עשרונית, תעשה התאמת ספרות בין נקודה זו לאות % שצויינה במבנה ה-7]06108₪5 | אם הנקודה העשרונית אינה מסומנת, מניחים שהיא רשומה מימין לשדה המוגרר. רוגמאות הערך המתקבל בהתאם להגדרת 616 הגדרה 0)סוון - 0 שטשעגץ (9)4 16ע מסג5 77 0 + 0 - עה (9)4 16ק מכג5 77 0 - 0 - םט]גצ (59)4 16ק מסה5 77 42 * 53 0]% (59)4 160ק 5405 77 0 0010 + 0 שט]!ג% 59)4(%99 16 505 77 1 6100 + 4 100 טע]ג 59)3(%99 16ק מסג5 77 0 *+* .2 טע]אע פפ/(59)4 16 מסג5 77 (09 3456 זי סכרכין :|)|ה 59)4(99 10ק מפא5 77 שיב לב שהערך המתקבל אינו שוה תמיר לערך הרשום בהגררת :]0]ג, מכיון שערך זה אינו תואם את הגרוה השרה כ- |101₪0, * 177 - ב. שדות אלפבתיים או אלפנומריים הכללים לרישום ערכים של שדה אלפנומרי הם: - תוכן השדה יכול להכיל כל תו שהוא, מלבד גרש. בשדות אלפבתיים - רק אותיות, מקף ומרווח. - התוכן המוגדר יוגבל בגרש מימין ומשמאל. - אם מספר תוי התוכן המוגדר קטן ממספר התוים המגדירים את אורך השדה, השדה יושלם עם מרווחים מימין לתוכן המוגדר. אם השדה קטן ממספר תוי התוכן-יקוצצו תוים מימין. דוגמאות: ב'8.9ג' מטעהץ (4)א 16זַק 5405 77 .'*' מעןהט (10)א 16ק מפג5 7? . 'אוקנ' מטנהצ (5)א 16ק שאאא 77 שדה עם תוכן של תו אחיד ניתן להגדיר תוכן התחלתי של שדה שכל התוים בו זהים, מבלי? לחזור עליהם מספר פעמים כאורך השדה. האפשרויות הן אלו: א. .5408 %108 ימלא את כל השדה בתוכן התחלתי של מרווחים. .2 20 תוכן התחלתי של אפסים. ג. .4105/-₪8108 %1205 תוכן התחלתי של תוים עם הערך הבינרי הגבוה ביותר במערכת המחשב (בי ב.מ./370 התו 'ץץ'א). ד. .8טת2/-1008 %108 תוכן התחלתי של תוים עם אפסים בינריים ('00'א). הּ. .'תו' ]א %105 כשבין הגרשיים יצויין אותו תו שימלא את השדה המוגדר. ש הערה: לשדות נומריים ניתן לציין /258 108 בלבד. דוגמאות: .5465 מט]גץ (6)א 16ַק 5081 77 .0 מטעגט (59)8 10 582 77 '*' םע מט1הצ (7)א 10ק 54283 77 במקרה האחרון נקבל שדה בן שבעה תוים עם ערך התחלתי של שבע כוכביות (*). - !78 - הגדרה מחדש לשטח זיכרון - 5שא1תמקקת לעתים מתעורר הצורך להגדיר מחדש שטח זיכרון שהוגדר קודם לכן. (לדוגמה: סוגים שונים של רשומות במבנים שונים שנקראות לאותו שטח בזיכרון). הגדרה מחודטשת זו נעשית ע"? משפט 65א3₪00"1, שנוסף להגדרה המחודשת כדל להדגיש שהגדרה זו אינה מקצה שטח נוסף בזיכרון. מבנה ההגדרה: . [תאור שדה] (שדה 2) 5מא₪₪001 (שדה 1) (מספר רמה) לדוגמה: שדה מסוים ברשומה מכיל, לפ? קוד מסוים המופיע ברשומה, שני ערכים שונים: - מספר תעודת זהות של העובד או - שם המחלקה בה הוא מועסק. טדה באורך 7 המוגדר כשדה נומרי לצורך מספר תעודת הזהות ואותו שדה מוגדר כטדה אלפנומרי לצורך שם המחלקה. אפשר להגדיר מחדש גם קבוצות של שדות, לדוגמה תאריך ?כול להיות מוגדר: יום, חודש, שנה או: יום בשנה, שנה. .דאס 035 .9 6זק צאם 04 .9 6זק אדאקא 04 .9 6זק ההםמצ 04 .75אס 5פא[]תפססת םדכ-אמא 035 .9 76 תאפצ-א1-צגאפ 04 1 6 04 .א 6זק 8 04 ל 79) = שים לב שבמקרה זה הוראת 865א20071 לא ניתנה לשדה אלמנטרי ולכן היא לא כללה את תאור השדה. בכל מקרה ההגדרה החדשה אינה מקצה שטח זיכרון בהמשך להגדרה הקודמת אלא מגדירה מחדש אותו שטח זיכרון שהוגדר כבר. אפשר לבצע מספר הגדרות מחודשות בזו אחר זו. כללי ההגדרה המחודשת של זיכרון הם: - ההגדרה המחודשת תבוא מיד לאחר ההגדרה הראשונה. - אסור להגדיר מחדש שטח המוגדר ברמה 01. (ראה בדוגמה הבאה כיצד מתגברים על מגבלה זו כשרוצים להגדיר מחדש רשומות שלמות: מגדירים רמה גבוהה יותר, פיקטל- בית, המיועדת רק לצורך זה). - אורכו של השטח בהגדרה החדשה לא ל*היה גדול מאורך השטח שהוגדר בהגדרה הראשונה. תרגיל מסכם להגדרות נתונים תאור הבעיה הגדר שטח זיכרון שיכיל לסרוגין שתי רשומות במבנה שזנה. ברשומה ב' *כו- לות להיות שתי אפשרויות לחלק מהשדות. הרשומות מתיחסות לפרטי חשבונות של לקו- חות: רשומה א': סוג רשומה ‏ - 2 תוים מספר לקוח - 6 תוים כתובת לקוח - 20 תוים (רחוב - 8, מספר בית - 3, עיר - 9). רשומה ב': סוג רשומה ‏ - 2 תוים מספר לקוח ‏ - 6 תוים שם לקוח - 10 תוים סוג חשבון ‏ - 2 תוים (*) מספר חשבון - 8 תוילם (*) מספר החשבון יהיה מספר אחד בן 8 ספרות או 2 מספרים נפרדים בני 4 ספרות כל אחד, לפי סוג החשבון. - !80 - פתרון התרגיל תאור הרשומות: רשומה א' כתובת הלקוח מספר סוג רטשומה ו ב סוג מספר | מספר סוג שם לקוח 9-4 אפשרות 1 חשבון | השבון | חשבון רשומה רשומה מספר סוג ב' מספר סוג ו יי אפטשרות 11 חשבון חשבון לקוח רשומה הגדרת הרשומות תהיה כדלקמן: - 01 07 רטומה א .550-105 02 ,אא 716 -506 04 . (9)6 16ק -0(41א1-תגק15א 04 .8-דט/קדא 04 . (8)א 16 ג-שסאמת 06 . (9)3 16ק ג-15248-8417א 06 . (9)א 16ק ג-18 06 רשומה ב . זא -וז5ת 55א1תםסתא ד5-גותותפתת 02 , אא 216 506-8 04 . (9)6 16ק 0441-8א14-תהק5זון 04 . (10)א 16ק 5-אפו51 04 16ק 8-א55380ה-506 04 ב-אפשרות 1 . 81- חפה-52א 04 . (9)4 216 1-ה-א 06 . (9)4 216 8-2- 06 ב-אפשרות ז[ך . (9)8 16ק 45-85-51 5מא1תמסמת 2מ5-5מ3-ק5א 04 0 ₪0 0000000000 22-7272742 5 ₪ 00 = ₪ 0 2- > |8| < הערות: א) בדוגמה יש הגדרה מחדש (שורה 17) בתוך שטח שהוא בעצמו הגדרה מחדש של שטח זיכרון אחר (שורה 9). הדבר חוקי בהחלט ואין הגבלה למספר ההגדרות מחדש המותרות, כל עוד שומרים על כללי ההגדרה. ב) בכל מקום בתכנית ניתן להתיחס לכל אחד מהשמות שהוגדרו בשתי הרשומות בלי קשר לרשומה נמצאת בזיכרון באותו רגע. כלומר, כל השדות "קיימים" ומוכרים והבחירה בין הרשומה הראשונה לבין השניה היא לוגית לאחר בחי- נת סוג הרשומה ע"? המתכנת. ג) ברשומה ב' אפשר היה להמנע מלהגדיר את השדות סוג הרשומה ומספר הלקוח (שורות 11-10) כי אלה שדות שנמצאים בדיוק באותו מקום בזיכרון שבהם נמצאים סוג הרשומה ומספר הלקוח שברשומה א', וגם ניתן להתיחס אליהם באותו שם. במקרה כזה אפשר היה לנהוג כך: ברשומה ב' לציין 11188 באורך השוה לסכום האורכים של שני השדות הראשונים (8 תוים), ולהגדיר מחדש רק את החלק השונה של הרשומה, ולא את כולה כפל שנעשה. כלומר: . 157 -ותהפתת 5מא1קתכפת דתם-תהזפטת ‏ 02 . (8)א 16ק תתןתזץ 04 . (10)א 16ק 5₪5%4-5 04 0% - |82 - פרק 5: א10פזש1 מא זסמ6סגק תאור ומבנה א0ז5ז/זם 0650088 הינה החטיבה המרכזית של התוכנית המכילה את הוראות העיבוד של הנתונים, כלומר - את גוף התוכנלת. החטיבה מורכבת מקטעי תוכנית או סעיפים (פתקבּדַקְ78?8), הקטעים - ממשפטים (665ח%6צת56), והמשפטים - מפסוקים (%5צת06ח558%6). החלוקה לקטעים הינה לוגית על פי צרכ? כל תוכנית ותוכנית, והיא מאפשרת למתכנת לרכז קבוצות הוראות בקטע אחד ולהבדילן מקטעים אחרים של תוכניתו. לכל קטע יש שם-קטע (6תַּת-תַקבּדקְג4ק) אשר מאפשר להתיחס אליו בהוראות הפנייה או הסתעפות, כלומר להפסיק בצוע רצוף של הוראות לפל סדר כתיבתן בקטע אחד ולעבור לפי הצורך לבצוע הוראות בקטע תוכנית אחר. אפשר לראות את סדרת ההוראות הכלו- לה בקטע אחד כמו שגרה (סברוטינה) שאפשר לבצע אותה ע"? קריאה בשמה (שם-קטע). בכל קטע ישנו משפט אחד או לותר ובכל משפט - פסוק אחד או לותר. כל משפט חייב להסתיים בנקודה הצמודה אל התו האחרון שלו. הפסוק הינו הוראת ביצוע אחת עם כל האופרנדים והמציינים שלה. זהו צרוף של מלים וס?מנים המהווה יחידה לוגית אחת. לאחר הפסוק (בצמוד לתו האחרון שלו) יכולה לבוא הפרדה ע"ל תו רווח, פסיק וגם נקודה. במקרה האחרון הפסוק הינו גם משפט. דוגמה לקטע תוכנלת: .א1510עז1ם ממטס6קתק 7 6171866 כםםק5 צם 5מטקת צעקזדעטוא . פסאגד15ס .אמתא-דאזתק 70 ד50שא מע - ₪5 = = ₪ = 5 = 5 ₪ 9 = - בתוכנית ישנו קטע (05א2151) שבו מחושב המרחק על פי מכפלת זמן הנסיעה (₪008₪5) במהירות (5?5580). שדה התוצאה (8250121) מועבר לשדה המתאל?ם (ם5ת-דאזתק) בשורה המיועדת להדפסה. בקטע ישנו משפט אחד המורכב משני פסוקים המופרדים בפסיק. בסוף הקטע (המשפט האחרון) ישנה נקודה. - |83 = כללי כתיבה א. שם קטע שם הקטע *כלול אותיות (4-2), ספרות (0-9) ומקף. הוא יתחיל באות ולא יהיו בו מקפים רצופים. השם נכתב באזור א (כלומר החל מטור 8) ולאחריו נקו- דה, שאחריה מרווח אחד לפחות. ההוראה הראשונה של הקטע יכולה להכתב באותה שורה (אותו כרטלס) של השם או בשורה שאחריו. ב. ‏ משפטילם ופסוקים - הוראות קובול משפטי קובול נכתבים באזור ב (מטור 12 ואילך) במבנה חפשי תוך שמלרת הכלל שבין מלה למלה יפריד לפחות מרווח אחד. המבנה החפשי מתבטא במספר חפשל של מרווחים בין המלים, במעבר חפשי (ללא כל סימון מיוחד) משורה לשורה ואף באפשרות לכתוב כל מלה בשורה נפרדת. כלומר, למתכנת יש אפשרות לכתוב את התוכ- נית בצורת עריכה שתקל עליו את עבודתו. ניתן להשתמש בפסיק (,) להפרדה בין פסוק אחד למשנהו בתוך המשפט. הפסיק נועד לנוחות הקריאה ואין לו כל תפקיד לוגי. הפסיק יכתב צמוד למלה שלפניו ולאחריו - תו רווח אחד לפחות. לאחר המשפט האחרון בקטע, כלומר לפני "שם-קטע" חדש, החליבת לבוא נקודה. נקודה חייבת להיות גם בסיום משפטי התנייה ("1). אם לא רושמים נקודה בגוף הקטע, הופכות כל ההוראות לפסוקים של משפט אחד. הנקודה נרשמת, כמו הפסיק צמוד למלה שלפניה ועם תו רווח אחד לפחות אחרלה. אם נצמצם את הגדרת התוכנ?ת ל"סדרת הוראות המלועדות לבצע פעולות עיביו מוגדרות" נוכל לכנות את א10ַ1%15 0620085אק כ"חטיבת תוכנית העיבוד". א. תחילת התוכנית כאשר מערכת ההפעלה מעבירה את הפיקוח אל התוכנית והלא נכנסת לפעולה, מתבצעת בה ההוראה הראשונה הרשומה בקטע הראשון בחטיבה זו. כאן יש להעיר שלמעשה תתבצענה הוראות רבות לפנל הוראה זו, אולם הן"שקופות" למשתמש. הוראות אלו כלולות במבוא של כל תוכנית קובול והן קשורות לנלהול התוכנית ע"י השפה - 1884 - ואין למשתמש שליטה בהן. המהדיר של קובול משלב קטעי תכנות שונים במהלך תוכנית המשתמש המיועדים לניהול התכנות ולביצוע פעולות אשר המשתמש בשפה עילית פטור מהן. פרטים על כך אפשר לקרוא בספרות המתאימה לשפת קובול, במיוחד בחוברות העוסקות בתאור המבנה הלוגי של התוכנית מבחינתו של המהדיר. ב. סיום התוכנית בניגודילהוראת הפתיחה שאינה מי?וחדת אלא זו הכתובה ראשונה, יש הוראה מילוחדת לסיום התוכנית ולהעברת הפיקוח חזרה אל מערכת ההפעלה: אטא 5102 הוראה זו היא ההוראה האחרונה שתתבצע, אך אלנה בהכרח ההוראה האחרונה הכתובה בתוכנית. הוראה זו יכולה להופיע יותר מפעם אחת בתוכנית. .0 ד א ספא .א6456 8 2 . אק151/זת מהטס65קאק 1 . 605018 אקתץ 6005 4 7ק665א .אסא 2 .116% 70 60 1 = 0005 ת1 5 ו 4 -החחקחרר--- פּ . אע 5100 6 7 8 9 . דאפא 70 02 הסבר: ההוראה הראשונה שתתבצע בתוכנית כתובה בשורה 2, והיא תכצע קריאת נתון ממכונת הכתיבה של המפעיל ותעביר אותו לשדה 6005. אחר כך תתבצע בדל- קה אם .0005=1‏ אם כן - יבוצע סיעוף אל קטע התוכנית א6856% (בשורה 7) ומשם (משורה 9) יבוצע סיעוף אל קטע התוכנית זאםא (בשורה 4). בסיום קטע התוכנית הזה ישנה הוראת סיום התוכנית (בשורה 6). אם התשובה במשפט ההתנייה (בשורה 5) היא שלילית, תמשיך התוכנית בקטע דאםא (בשורה 4). - 85! - הוראות קלט ופלט בסיסיות בשלב זה של התכנות בקובול נשתמש באמצעי קלט פלט (מכונת הכתיבה של מפעיל המחשב, קוראת ומנקבת כרטיסים ומדפסת) ובשיטות בהזנה והפקה של נתונים ללא צורך בהגדרה מפורשת. הוראות הקלט והפלט בעצמן מגדירות את היחידה ואת הפעולה הנדרשת. שיטה זו טובה למקרלם בהם כמויות הנתונים קטנות כגון הזנת קודים לתוכנית, הזנת תאריך, הודעה מהתוכנית למפעיל, דווח על שגיאות או על חריגים, התרעות ועוד. בנפח גדול של נתונים נשתמש בהגדרת קבצים ביחידות קלט ופלט מגנטיות כגון סרטים ודיסקים. בדיסקים שיטות אירגון הנתונים יכולות להיות שונות מהשיטה הסודרת (181+ת560016) ובכל המקרים - ניהול ופיקוח על פעולות קלט ופלט כוללים אפ- שרויות רבות יותר וחלקם נעשה ע"? מערכת ההפעלה. הוראה זו משמשת לקבלת נתונים מהמפעיל בעת ביצוע התוכנית, באמצעות מכונת הכתיבה או הצג שלרשותו, או לקריאת כרט?סים מנוקבים. אין צורך להגדיר קבצים. להוראה שתי צורות: א. קריאת כרטיסים מנוקבים: .(שם שדה) 40671 כל ביצוע של ההוראה גורם לקריאת כרט?ס אחד בקוראת הכרטלסים. תוכנו של הכרטיס מועבר לשדה (רשומה) בן 80 תוים ששמו צויין בהוראה והוגדר ב-א01/1510 אזַגכ. המתכנת חייב לקבוע בעצמו את מבנה הכרטיס האחרון בקובץ ולבדוק לאחר כל קרל?אה אם כרטיס זה התקבל, ואז להפסיק את הקריאה (זוהי בדיקה ל"כרטיס אחרון"). ב. קריאת נתונים מעמדת המפעיל: .5018א60 ₪0%? (שם שדה) 4600571 המפעיל מקבל איתות שעליו לספק נתונים מעמדת הפיקוח שלו. התוים שיוזנו על ידו באמצעות לוח המקשים ?ועברו לשדה המצויין בהוראה. מספר התוים שהמפעיל ידרש לתקתק יקבע על פי אורך השדה כפי שהוגדר ב-א1%1510כ ₪078. = - |86 - הוראות פלט - צ(%ק15 להוראה זו שלש צורות בהתאס לאמצע? הפלט שאליו מכוונים את הנתונים. א. (שם שדה) צ8/%ק15 תוכנו של השדה (שורה) יודפס במדפסת. ‏ ביצוע כל הוראה 151 גורם להדפסת שורה אחת במדפסת. ‏ אין כל אפשרות לפקה על ההדפסה, כמו דילוג לדף חדש להדפסת כותרות וכ"ד, שהן פעולות ההכרחיות בהדפסת קבצי דוחות. ב. 5018א00 א0ק0 (שם שדה) צג1ק15 תוכן הטשדה יודפס במכשיר הפקוח של מפעיל המחשב. ג. 011)א0ק5צ5 אסקט (שם שדה) 15218 תוכן השדה ינוקב בכרטיס מנוקב. תרגיל יש לקרוא כרטיס מקוראת הכרטיסים, להוסיף לו תאריך הביצוע ולהדפיסו. התאריך יסופק על ידי מפע?ל המחשב. מבנה הפלט הוא: פאס דאזחץ אא/אא/אא | (תוכן הכרט?ס 80 טור?ם) תאריך | 3 רווחים התוכנית: 5 .א1/1510ם אק 647זתזדאמפן .יי .06844-10ה; .אק151ץזם דאס .אק501 57080405- 6א1אקו .יטאס זא1תק' םעה (10)א 16ק מ5546/א ‏ 77 .פדהם-5זותא 01 . (80)א 16ק 15זַ8גא 05 .5 מש" (3)א 16ק תם1ע1ת 035 . (8)א 16ק ם7ס 035 .א1%1510ק ם65008קחק | 10 ₪ 2 ו0 0 1 00 כ . 4-1דמא 11 . 115אא 66277 12 . 60501 א0ק0 55405 צה1ק15ם 15 .0 אסשת מדגכת 7ק605 14 . 115-5818ַא צג0ק15 15 . אעא- 5107 16 3 - 187 - הסבר: שים לב למבנה התוכנלת הכולל: - סדר החטילבות - 5א1510ַ/זַ - כתיבה באזורים , 8 - סימני פיסוק והפרדה בשורה 5 מוגדר שדה אלמנטרי בודד בקוד 77, אשר מכיל ערך התחלתי המיועד לשמש ככותרת שורת הנתונים שתודפס במהלך התוכנית. בשורה 6 מופיעה הגדרה של נתון קכוצתי הכוללת את כל השדות המיועדים להדפסה. הנתונלם האלמנטריים שלו הם 715ת% ו-מ7כ. אל שני שדות אלה נקרא את הנתו- נים כמפורט בהמשך. בשורה 8 מוגדר שדה של 3 תוי רווח להפרדה בין שני שדות הנתונים בשורת ההדפסה בשורה 10 מוגדרת חטיבת התוכנית המכילה את הוראות הביצוע וכה סעיף אחד ששמו ניתן בשורה 11. מהלך התוכנית כולל: קריאת כרטיס מנוקב לשדה 8115 (שורה 12), הדפסת השדה 8 במכונת הכתיבה של המפעיל (שורה 13), קריאת שדה תאריך שיוזן ע"ל המפעיל במכונת הכתיבה (שורה 14) ולבסוף-הדפסת השדה 4115-2758 כולו (שורה 5) המכיל את השדות 15ַ1תא ו-75א2. בשורה 16 ישנה ההוראה האחרונה בתוכנית והיא גם ההוראה האחרונה שתתבצע. משמעותה - הפסקת ביצוע התוכנית והעברת הפלקוח על מערכת ההפעלה. הוראת העברת נתונים - ₪06 המבנה של ההוראה: (שם שדה 2) 70 (שם שדה 1) מעששא ההוראה מעבירה את תוכן שדה 1 לשדה 2. תוכן שדה 1 נשאר כפי שהיה לפנל ביצוע ההוראה, ותוכן שדה 2 מכיל התוכן החדש שהועבר אליו. יש לזכור שאין זו פעולת "העברה" ובמובן המקובל אלא פעולת העתקה,מכיון שהנתון ה"מועבר" נשאר במקום שהיה בו לפני הפעולה. - 188 = כללי העכברת נתונים א. העברות מותרות אל שדה שהוגדר כאלפנומרי מותר להעביר נתונים משדה כלשהו (מספרי, אלפבתל או אלפנומרל?). אל שדה אלפבתי מותר להעביר נתונים משהה אלפבתי בלבד, ובהקבלה - אל שדה מספרי מותר להעביר נתונים משדה מספר? בלבד. ב. קצוץ והארכה: א. טדות אלפנומרים ואלפכתים: אם השדה המקבל ארוך מהשדה המוסר, התוים הנותרים מימין לנתונים שהועברו, ימולאו במרווחים. - אם השדה המקבל קצר מהשדה המוסר, יקוצצו התוים מימין מכיון שההעברה נעשית לפי תוים משמאל לימין. ב. שדות מספריים - אם השדה המקבל קצר מהשדה המוסר, יקוצצו הספרות המש- מעותיות כי העברת הספרות היא מימין לשמאל (מלבד הספרות שמימין לנקו- דה העשרונית בהן ההעברה היא משמאל לימין). | - אם השדה המקבל ארוך מהשדה המוסר, יתווספו אפסים משמאל לספרות השלמים ומימין לספרות הרצימליים כדי לשמור על ערכו האריתמט? של המספר. בהעברת שדות מספריים נעשית התאמה מלאה של מיקום הנקודה העשרונית של הטשדה המוסר והשדה המקבל כדי לשמור על ערכו הנכון של המספר. אם מספר הספרות מימין ומשמאל לנקודה העשרונית שונה בשני השדות - יקוצצו או יתווספו ספרות כפי שהוסבר קודם. העלרה מרובה אם רוצים להעביר תוכן שדה אחד למספר שדות ניתן להשתמש באופציה המורחבת: .... (שם שדה3) (שם שדה2) 710 (שם שדה1) מ/סא תוכן שדה 1 יועבר לכל השדות שיצויינו במשפט. לדוגמה, העכרה של 707.4 ל-3 שרות: כ-מא11 1-מא11 ד 8₪ד0ד מטקוא - !89 - דוגמאות: = .ו !₪ ₪ ההוראה היא דמם 70 ההק מטקא הגדרת /?.]4 הגדרת 8574 תוכן 4? | תוכן 887 לאחר ההעברה (59)4 (59)7 14 24 9 9 9 909 9 9 2+ 0+ (3)א (6)א 50 ד (4)א אא 0 38 הסבר: 0-0 = ₪ שדה 851 גדול יותר ולכן התווספו אפסים משמאל למספר שהועבר אליו. שדה 851 קטן יותר ולכן קוצצה הספרה השמאלית של המספר שהועבר. המספר הועבר בהתחשב במיקום הנקודה העשרונית, כלומר - שמירת ערכו 452.00. שדה אלפביתי הועבר לשדה גדול ?ותר ולכן התווספו מרווחים מימין. שדה אלפביתי, הועבר לשדה קטן יותר ולכן נקצצו תוים מצד ימין. חוראות לביצוע פעולות חשבוניות הוראות קובול הבסיסיות מאפשרות ביצוע 4 פעולות החשבון. כל פעולה תרשם כפסוק נפרד ותפיק שדה תוצאה אחד. אפשר גם להשתמש בהוראה מורכבת 60/2015 לבי- צוע סדרה של פעולות לשם קבלת תוצאה אחת לכולן. חיבור - ככ א. להוראת החיבור צורות אחדות. הוראת חיבור של שני מספרים: (שם שדה )2‏ 70 (שם שדה1) מכ תוכן השדה הראשון לחובר לתוכן השדה השני. התוצאה מתקבלת בשדה השני (במקום הערך שהיה בו קודם). דוגמה: .8 ד אא ספא - 190 > שדה 88 שדה 4 לפני ביצוע ההוראה 5 3 לאחר ביצוע ההוראה 8 3 כבשאר ההוראות המבצעות פעולות חשכוניות, שני השדות חייבים להיות מספריים, הן בהגדרתם והן בתוכנם, בעת ביצוע ההוראה. ב. הוראת חיבור של מחוברים אחדים: (שם שדהת) 6א61%1 ... (שם שדה3) (שם שדה2) (שם שדה1) ספ בצורתה המורחבת מחכרת ההוראה תוכן כל השדות שמשמאל למלת המפתח ומעבירה את התוצאה אל השדה שצויין מימין למלה 6א61%1 (שם שדה ת). שדה זה אינו משתתף בפעולה ותוכנו הקודם נמחק כאשר נכתכת בו תוצאת הסיכום. לדוגמה: מםם 6אז 0 פס 06 88 ג ספה משמעות ההוראה: 02 + 06 + 28 + גא > םם סיכום השדות מועבר לשדה 5ם. ג. הוראת חיבור עם התניית מצב שגיאה: ..... 70 ... ססא (פסוק קובול) 8008 5125 א0 .ו +- פפג אפשר להשתמש בהתניית מצב שגיאה בכל אחת משתי הצורות הקודמות של הוראת ספא. התוספת 0%תאם 5125 א0 מאפשרת לגלות אם היה אובדן ספרות משמעותיות (גלישה - אס62+1צ0) בעת ביצוע הפעולה, כלומר אם התוצאה שנתקבלה גדולה מאורך השדה המקבל אותה. אם היתה גלישה יתבצע פסוק הקובול שנכתב בהמשך למלת המפתח ת08תגם 5125 א0. הוא יכול להורות על ביצוע חישוב אחר, הדפסת הודעה מתאימה או אף הפסקת הביצוע של התוכנית. אם לא היתה גלישה, ביצוע התוכנית יימשך החל מהמשפט הבא אחר? הנקודה המסיימת את פסוק הקובול שצויין בהמשך ל-880%8 5125 א0. שים לב, הוראת חיבור עם התניית שגיאה היא משפט המחיזיב נקודה בסופו. - |9פן = דוגמה: .8 ד 2580 םטקא מקתתם 5128 אש 88 שד גא פס - 1 .0ם 70 66 מטש 2 אם נוצר מצב של גלישה בעת ביצוע הוראה (1) השדה 88 יאופס כתוצאה מהפסוק הרשום בהמשך ל-880%ת 5125 אס. לאחר מכן תמשיך התוכנית בביצוע המשפט בשורה 2. אם לא היתה גלישה לאחר החיבור, התוכנית תמשיך להתבצע החל מהמשפט שאחר? הנקודה, כלומר המשפט בשורה 2. משמעות קטע תוכנית זה הוא שכאשר יש גלישה בשדה 88 - מאפסים אותו וממ- שיכים. שים לב! אם לא משתמשים באופציה 28808 5125 א0 אי אפשר לגלות מצב של אובדן ספרות משמעותיות. ד. ‏ הוראת חיבור עם עיגול התוצאה: [ ...תקאתם 5125 אק] ספמסאטקת .... פסה מלת המפתח כתסא800 גורמת לעיגול התוצאה כשהשדות המעורבים מוגדרים עם ספרות עשרוניות. עלול להיות קיצוץ של ספרות שמימין לנקודה העשרונית כאשר הגדרת השדה המקבל את התוצאה מכילה פחות ספרות עשרוניות במכוון. למשל בשדה של ערך כספי אין צורך ביותר משתי ספרות עשרוניות. גם בהוראה זו אפשר להוסיף את התניית מצב השגיאה של גלישת נתונים. לדוגמה נתונים השדות הבאים: 3 מע 59)4(/99 16ק גא 77 4 מסט1ג 59)3(%99 16ק 88 77 ,49 6זק 06 77 א. לאחר הפעולה .60 6א61/1 88 ג ספה התוצאה האמילתית תהיה 180.57 אך מאחר ושדה 66 מוגדר עם ספרה אחת בלבר מימילן לנקודה העשרונית, יתבצע קיצוץ ונקבל: 180.5. ב. לאחר הפעולה .סעםסאעקת 66 6א61/%1 88 גג ספג במקום קיצוץ יתבצע עיגול על ידי הוספת 5 בספרה הימנית ביותר "המקוצצת" והתוצאה תהיה 180.6. - !92 - דוגמה נוספת: 1 מטגעג 59)3(/99 16ק גג 77 .1 מעעג 59)3(/99 6זק 88 77 סק 00 77 הוראות הביצוע הן כמו בדוגמה הקודמת, אולם כאן התוצאה האמלתית הלא 3. אם נוסיף 5 לספרה הימנית ביותר, הנקצצת, נקבל 180.58. מכאן שבשנל המקרים, בקיצוץ ללא עיגול או בעיגול, נקבל את התוצאה 180.5. חיסור - 50818467 ו להוראת החיסור צורות אחדות. א. הוראת חיסור של שדה אחד משדה שנ?ל?: (שם שדה2) 0%את (שם שדה1) 508184607 תוכן שדה 1 יופחת משדה 2 והתוצאה תתקבל בשדה 2. ב. הוראת חיסור עם תוצאה בשדה אחר: (שס שדה3) 6א61%1 (שם שדה )2‏ 808 (שם שדה1) 5087867 תוצאת ההפחתה של שדה 1 משדה 2 תתקבל בשדה 3. בשדה 1 ובשדה 2 לשמרו הערכים הקודמים. ג. הוראת חיסור עם התניית מצב שגיאה ועם עיגול התוצאה: בשני מקרים אלה ניתן להשתמש באופציה 208 5122 א0 ו-פפסאעטסת כמו בהוראות החיבור. דוגמאות: . סםסאטקת דםם אסשת קמע 508767 .61 6א61%1 דםם אשתת םע ד6אדפט5 . 08ד16סאז-505 76 1 טקא הקתתם 5125 אק דםם אקתת תמע 5087807 > |93 - שים לב להבדיל בין שתי האפשרויות הבאות: .0 70 דמם מטקא .דפם אקתת המע דסגתדפ50 (ב .1 6א61/1 דםם אקפק תמןא דסגתדפע5 (ס בשני המקרים נקבל ב-61/5₪ את תוצאת החיסור: 881 פחות "215. במקרה (8) התוצאה תהיה גם ב-851 בעוד שבמקרה (5) תוכנו של 851 נשמר ויישאר כפי שהיה לפני ביצוע ההוראה. כ פ ל - צזקזהושא להוראת הכפל צורות אחדות. א. הוראת כפל של שני גורמלם (שם שדה2) צ8 (שם שדה1) צעקזדעח; מכפלת שדה 1 בשדה 2. תוצאת הכפל מתקבלת בשדה השנל. ב. הוראת כפל כאשר התוצאה מתקבלת בשדה אחר (שם שדה3) 6א61%1 (שם שדה2) צ8 (שם שדה1) צעקזדעטא תוצאת המכפלה של שדה 1 בשדה 2 תתקבל בשדה 3. שדה 1 ושדה 2 ישארו ללא שינול. ג. גם בהוראות הכפל ניתן להשתמש באופציות פמפאע0ת ו- מ0תאם 5128 א כמו בהוראות חילבור וחיסור. דוגמה: פפפאטקת 58 6א61/1 גג צפם גא צמקזדעט .8 70 0ת25 מעטקא תקתתם מ512 אש ההוראה הנ"ל מעלה את המספר שבשדה 4 ברבוע (4 כפול 4) ומעבירה את התוצאה מעוגלת לשדה 58. אם שדה זה קטן מלהכיל את התוצאה (כלומר ספרות משמעותיות אבדו), לאופס השדה 88. - 198 - חילוק - 0%]%זפ 2 ו 4-ו א הוראת חילוק של שני מספרים: (שם שדה2) 70א1 (שם שדה1) זז שדה 2 מחולק בשדה 1 והתוצאה מתקבלת בשדה 2. ב. ‏ הוראת חילוק עם תוצאה בשדה אחר: (שם שדה3) 6א61%1 (שם שדה2) 6דא1 (שם שרה1) מפזץזס תוצאת החילוק תתקבל בשדה 3. ג. ניתן להשתמש באופציות 50כא₪00 ו-08אאתם 5125 אס0. 5125 במקרה של חללוק יתקבל כאשר מבוצע חילוק באפס. ד. בהוראת החילוק אפשר לשמור את השארית. לשם כך אפשר להוסיף בהוראה: (שם שדה4) המפאזגאאתת ... דוגמאות: < וני =אזדך 1 .7 א6א66א611 50% 0דא1 0708את מס1זם + זעט5מ "ה תסראת .אא 5552 6א61%1 ם6אג157 שזא1 מאזדך מפ1%1 +מםםק5 = פעולות חשבוניות מרובות וההוראה - 5ךשק60י ההוראה 60/0075 מאפשרת לבצע סדרת פעולות השבוניות במשפט אחד ולקבל את התוצאה בשדה אחד המוגדר בהוראה. מבנה ההוראה: 1[ 51275 אק] (ביטוי חשבוני) = [פםסאטשת] (שדה 1) מחוקא60 תוצאת הביטוי החשבוני מתקבלת תמיר בשדה 1 אשר רשום ליד ההוראה מד0ק;א60. הפעולה החשבונית בין השדות מצויינת ע"י אחד מהאופרטורים החשבוניים ולא ע"ל? מלים כמו בהוראות החשבוניות הבסיסילות. משני ציד? האופרטור חייב להיות תו = כפן = רווח אחד לפחות. האופרטורים המותרים: חיבור + כפל * | העלאה בחזקה ** חליסור - | חילוק / | (שתי כוכביות צמודות) סדר ביצוע הפעולות לפי הכללים המקובלים באלגברה: - העלאה בחזקה מתבצעת ראשונה, - חילוק וכפל מתבצעים לאחר מכן, - חיבור וחיסור מתבצעים לאחרונה. מקרה פרט? של ההוראה מ075ק%א60 הוא כאשר במקום הביטוי החשבוני נרשם שם של שדה אחד בלבד. ‏ פעולה זו מקבילה לפעולת ההוראה 0/5. אך יש לזכור שבהוראה 5 מותר להעביר שדה מספרי בלבד. למשל: | .0284ם1ק = כמםק5 מתוק60 פרושו ששדה 57552 מקבל את ערכו של פםם15ת. דוגמאות: א. םם / ספ - 06 + 88 > ג מדטקק6 שים לב לרווחים שמשני צידי האופרטורים. סדר הפעולות: חילוק, חיבור או היסור, ולאחר מכן העברה לשדה 4. ב ספפ * 06 + 88 = 22 מחוק;60 בתחילה תתבצע המכפלה 2 * 606, אליה יחובר השדה 88 ולאחר מכן תועבר התוצאה לשדה 4. סוגריים אפשר לשנות את סדר ביצוע הפעולות החשבוניות ע"י שימוש בסוגריים, כמקובל באלגברה. אין הגבלה למספר הסוגריים אך נעשית בדיקה אם יש מספר שוה של סוגרלים ימניים ושמאליים. הפעולה שבסוגריים הפנימיים ביותר תתבצע לראשונה, ולאחר מכן - זו שבסוגריים החיצוניים לותר, וכן הלאה. דוגמאות: א. פס * (66 + 88) = ג מדטק60 בתחילה יתבצע החיבור ואחר כך הכפל. - 196 - ג 2 ** (6 * (8 + )) = א וקוק סדר הפעולות: חיבור, כפל, העלאה בחזקה. ג. פ / ((צ * 8) - א) = א מדטקואק6 סדר הפעולות: כפל, חיסור, חילוק. הסוגריים יכולים להיות צמודים לשם-השדה או צמודים זה לזה,: אולם צריך להיות תו רווח אחד (לפחות) בינם לבין האופרטור החשבונל. ‏ תרגיל לפעולות חשבוניות נתונים השדות המספריים "15 ,867 ,61850 ,דמוגכ. יש לחשב שדה +צ₪] לפי הנוסחה: דפןגם * (61050 - 7ם8 + תם)ג) = ]ו 1 + 01050 התוצאה ב-+₪] דרושה עם עיגול. במקרה של גלישת התוצאה יש לאפס את השדה צם]. א. תכנות התרגיל . 8 .א0ז501 6-5708�5א1 את 1 660ךק תםתג 77 91 760 םת 77 .9 סץק ממא61 77 .(59)5 6זַק דמוא 77 1 סנק עצה 77 ₪ ₪2 ש 1רר .א1/1510 םאטפפ6קאק . פפסאטקת צ₪] 6א61/1 807 70 תמא פסג . םמפאטקת צמ אקתץ 2מא61 ד0ד508 5 אק ספמסאטקת צמה צם דמעהס צעקזדצוםא 10 . צפע ד ₪0מ2 מעקא הקתתם 11 .דפ ד מא61 פסה 12 . פפסאטקת צספה קדאז דםם מסזטזס 1-5 00 - !97 - הסבר: משתמשים בשדה התוצאה הסופי +15 לביצוע כל פעולות הביניים. לאחר חלשוב הערך שבסוגריים (שורות 9-8) כופלים אותו בשדה 22181 (שורות 11-10). אם יש "שגיאת גודל" (ת0תתם מ512) מאפסים את השדה ₪ |ןממשיכים. מחשבלם את הסכום במונה (שורה 12) ו"הורסים" את השדה 557 אשר אין זקו- קים לו יותר. לאחר מכן מחלקים את הערך של המונה מ-+₪] במכנה הנמצא ב-881 (שו- רה 13). תוצאת החילוק תהיה בשדה צםה,מעוגלת. ב. חישוב השדה +18 אשר נערך קודם לכן בשלכים, יבוצע במשפט אחד באמצעות ההוראה שקוא0ס6. = ספסאטקת צמ] םהוק6 (887 + 02א61) / דמ1הת * (20₪2ת6 - דםת + קם1ג)) וצמ קד 0תמ2 מטקא תקתתם 5125 אק ליטרלים (11+62815) בהוראות ליטרלים הם קבועים (%5ת5%8ת60) ומשתמשים בהם במשפטי קובול ב- אס0ז5ז/זס מתשפם6סתק בלי שהוגדרו קודם לכן ב-5108%65 6א1א908%% עם ערך התחלת? (10₪צ). הופעת הקבוע בהוראות גורמת להגדרתו האוטומטית ע"י המהדיר. הליטרלים יכולים להופיע במקום "שם-שדה", אך אינם יכולים להופיע במקום "שם-שדה" שמקבל את התוצאה של הפעולה. הליטרלים הם משני סוגים: מספריים ואלפנומריים. חוקי כתיבתם זהים לחוקי כתיבת ה-%4108₪ במשפטי הגדרת שדות (5:ת1070ץ7). כאשר יש מספר עם סימן חיובי אפשר להשמיט את הסימן, אך סימן שלילי יש לכתוב תמיד כשהוא צמוד למספר, משמאלו. דוגמאות: .אא קד 1 מעקא (הסימן + צמוד לסיפרה) ד 1+ מעטקא (אלפנ ומרל) .5 0ד 'דמתפדקא' מטקא .מאקא שד 1 ספא = 498 = . 5408 6א61/1 25 קדא1 5 פפזצזס . םשסאקת םאקא אקתת 1.5 ד60תד508 ,5 / 8 * 7 = 4 75ך600 אך אסור: . דמתמדקא' 70 מכא5 מצשא .7 70 5 ספא במקרים אלו מופיע ליטרל במקום שדה שמקבל את התוצאה, ולכן אסור הדבר. ליטרלים יכולים להופיע גם כקבועים בעלי תו אחיד המוגדרים ע""ר המלים הבאות: 'תו' 812 | תטםה/-₪168 220 מט1צ-ק1 | 546 . פאשא שד 250 מעקוא . 510 70 205ק5 מעקא . 505-6070107 0ך '*' מ מצסא הוראות הסתעפות הוראות התוכנית מתבצעות בצורה רציפה בזו אחר זו על 5פ? סדר כתיבתן בתוכ- .ית. הוראות הסתעפות משמשות להפסקת הרצף ולמעבר לקטע אחר בתוכנית. הסיעוף מתבצע תמיד אל ראש הקטע ("שם-הקטע") . הסתעפות לכתובות קבועות - 106 60 א. הסתעפות רגילה (לא מותנית): . (שם קטע) 710 60 ההוראה מעבירה את פיקוח ביצוע התוכנית לקטע (תקְבּעקַּלהק) ששמו צויין בהוראה. ההוראה הבאה שתתבצע תהיה ההוראה הראשונה בקטע שאליו מתבצע הסיעוף. ב. הסתעפות מותנית בערך שדה . (שם שדה) א 6א1סאםפקמ2 ... (קטע 3) (קטע 2) (קטע 1) 76 60 = 97 = הוראה זו הינה הסתעפות מותנית על פי תוכן שדה נתון ("שם-שדה"). השדה חליב להיות מספר? ולפי ערכו יקבע הקטע הסידורי ברשימה שאליו יתבצע הסיעוף. אם הערך = 1 יבוצע סיעוף לקטע הראשון שברשימה, אם הערך = 2 יבוצע הסיעוף לקטע השנ*י ברשלמה, וכן הלאה. אם ערכו של השדה קטן מ-1 (אפס או שלילי) או גדול ממספר שמות הקטעים שברשימה - לא תתבצע הסתעפות וההוראה הבאה שתתבצע תהל?ה זו שרשומה לאחר הוראת ההסתעפות. דוגמאות: 1 1 .2אקוא קד םאקוא פפה .8 70 4 משקו .2 ₪ 62 . 41 .אא 70 00 .2מאקא קד 252 מעק .תת 512 אק 2םאקא קד 1 פפא ‏ .2גדםא .1 1 00 000044 0-00 ₪; הסבר: יש לבצע את סדרת ההוראות הכלולות ב-1םא ולאחריו להסתעף ל-12םא (שורה 4). עם סיומו של 142:% מסתעפים ל-%811 (שורה 8). מבצעים קטע זה ומסתעפים ל- דא (שורה 6). וכן הלאה, כלומר זוהי לולאה אינסופית שבאה להציג סיעוף בין שלשה קטעים. 2) . . פאקא 6ד 1- :טקא 1 . 000 2 . אא קד 1 כפפג 3 . פאקא א0 6אזפאמקפס 88 2 0ד 62 4 . 1200 ד 60 5 == ו 6 7 7. 22=== הסבר: דוגמה זו מיועדת להציג אָיעוף המותנה בערך של שדה מסוים. בפעם הראשונה 1 11. .ןו גוו !ווו 1 - 200 - 0 = מא0א (שים לב לשורות 3,1) ולכן לא תתבצע ההסתעפות המותנית (שורה 4), אלא ההוראה הבאה שלאחריה (שורה 5) שהיא הוראת חזרה לראש הקטע - 1007. בפעם השניה 1 = םאסא ולכן תתבצע הסתעפות לקטע 2. שינוי כתובת בהוראת הסתעפות בדרך כלל כתובת ההסתעפות קבועה בהוראה 10 00. ישנם מצבים בהם לש צורך לשנות את כתובת ההסתעפות של ההוראה באופן דינמי, במהלך ביצוע התוכנית. פעולה זו מתבצעת ע"? ההוראה 8ם75ך41. . (שם קטע 2) 0ך 5םם6קתק 70 (שם קטע 1) התדוה "שם קטע 1" - שם סעיף שיש בו הוראה ... 10 60 יחידה ובלתי-מותנית. "שם קטע 2" - שם סעיף כלשהוא בתוכנית. לאחר ביצוע ההוראה ת4118 תשתנה הכתובת בהוראה 10 60 (הנמצאת ב"שם קטע 1") אל: . (שם קטע 2) 70 60 (שם קטע 1) דוגמה: 8 2 1 ד 00 .אא -1 . פאקא 0ד 2580 מצקא .00 2 .88 70 פםם6קאק 70 ג תמדא 3 ------ .88 4 הסבר: כאשר התוכנית תגיע בפעם הראשונה ל-2, תתבצע הסתעפות ל-06. שם תבוצע הוראת טפצס בשורה 2. בסוף הקטע תוחלף כתובת ההסתעפות של 3 ע"י הוראת אםך7/: הוראת הסיעוף לקטע 66 שהיתה במקור תוחלף להוראת סיעוף ל-88. בפעמים הבאות כשהתוכנית תגיע ל- תבוצע הסתעפות לקטע 88, אלא אם כתובת ההסתעפות תוחלף שוב ע"י הוראה 41158 במקום אחר בתוכנית. השימוש בהוראת 115% מלועד בעיקר למטרות הבאות: א. בתור מתג (ת1%6א5). עפ"י תנאים מסויימים מפנים את ההסתעפות למקום זה או אחר בתוכנית. ב. לביצוע פעילות חד-פעמית בתוכנית (ראה בדוגמה לעיל). לאחר ביצוע קטע מסויים מחליפים את הוראת הסיעוף כדי שלא לחזור עליו פעם בוספת. - 20[| - ג. השימוש בשגרות (סברוטינות) סגורות, ל"דריכת" כתובת החזרה של השגרה. במקרה זה השגרה תסתיים פקטע שכל הוראתו 10 060. לפני כל הסתעפות'לשגרה תופעל הו- ראה לשינוי כתובת ההסתעפות הזו כדי לשוב לקטע הרצוי. תרגיל להוראות הסתעפות יש לקרוא קובץ כרטיסים. בכל כרטיס מנוקבים השדות סא1 ו-4157. יש לחבר את תוכן השדה "415 אל המונים 1שא0, 2מא0סא, 53א0ו/ על פי הערך של השדה פאז (1, 2 או 3) בהתאמה. אם תוכן שדה פא] שונה מ-1, 2 או 3 יש לחבר את השדה "15 אל 4מאסו. פתרון התרגיל ראה בטופס הקידוד המצורף. הסבר: בפתרון זה כלולה דוגמת תוכנית. שים לב לעובדה ששמות חטיבות ללא פרוט חייבים להופיע (שורה 1-05). בצד שמאל של הטופס נרשמו בעמודות המתאימות מספרי הדף והשורה. המהדיר בודק את מל?ון השורות בזמן קליטת התוכנית להידור. סימון השורות מאפשר התלחסות המתכנת אליהן. סדר חטילבות התוכנית ופרקיה ח?יב להשמר בהתאם לדוגמה זו. בפרק המתאר את הנתונים (510865 6א₪08%1) מוגדרים ארבעה שדות מספרלים עבור המונים, במבנה של שש ספרות שלמים ושת? ספרות עשרוניות, עם שמירת סימן (5). הערך ההתחלת? של השדות האלו הוא אפס, בהתאם לפרמטר של 7108 (שורות 1-08 עד 1-11). החל משורה 1-12 מתואר מבנה הכרטיס המנוקב. יש פרוט רק ל-2 השדות המענינים אותנו, אשר נמצאים בטורים הראשונים של הכרטיס. שדה כא1 הוא נומרל בן ספרה אחת ושדה "415 הוא נומרי? עם ארבע ספרות לשלימים ושתי ספרות עשרוניות. שאר טור? הכרטיס אינם חשובים ועל כן מוגדרים כ-11188?. שדות אלו הם נתונים, אלמנטריים של הנתון הקבוצתי %2187. שים לב לרמות השדה ולאופן כתיבתן. תאור השדות ניתן רק לנתונים אלמנטריים. החל משורה 1-17 מפורטות הוראות התוכנית אשר ב-א1/1510 מתטסם6סתק. בקטע ‏ 517 (שורה 1-17) מבוצעת קריאת הכרטיס. מיד לאחר הוראה זו ישנה הוראת הסיעוף המותנה (שורה 1-18): לבצע סיעוף אל הקטע שבכו יבוצע החיבור - בהתאם לתוכן השדה פא1. שים לב למבנה הוראת הסיעוף המותנה לפי ערך השדה. אם ב-פא] ישנו ערך השונה מ-1, 2 או 3 לא ?"בוצע כל סיעוף והתוכנית תמשיך בהוראה העוקבת - יג 1% 4 -ש .46 2ז 8 -₪ 460 ד 4- 442.6 -ש 74 (- 74063 ו יי ו ז ו ב 0 2-8 = ₪- |466ד 4 ו 1446 1 2 - - 0 היוס= 0ה'600 608₪0% אפן סמל , ו 06062 08060245 ששא ו 9.0.ה6 .6 ד *ה0,4ה,י 4 . 0 9 2 ו 17 וא | 0 ו ה ,‏ זוזג זר 6060 . % ; שומ . 6 ₪ ,וצו עשטודג6או: 0 196 004016 א 2 , , 2 ו'וו6ק2גד' .29-ה22 7606 016 04 - , בוצוצ*4% 6אגוע 68ה96089 5-7 600 ,0ץאדטה 0%10%6 ב 26:% ,ע:דד |4>- דהה 00%086 בשצופוטים ד.6ה.ק; |וןץא5 0010960 . - - .6078 ץ 5 דג 060! 1 ו באשויד566 66א048 57 -6א|א44 1010 2 יאו אלו 0 6עא 0 259)4(%5%% 606 1 6 ש ]א וֶן ט0% 1 .ב וו ..ָ 013 א;ששאע 889)6(3%8. 6,ץ. 2 דר 090) : בבר ב .1 6טט2אצ -29)6(73593 5:6 3-1 זן 6סו! . 2 60 206א+ -99ץ()59)0 6,/ 9% 777 6+!) ב מהואההעאמאו בקסקהן שק היתש הסה | ,60/6 020 וש מו ריש 6ו וע 01 0 030000 - .8-2 (29068 או? א 8:6 , 02 ...שש זה -200ל);- ₪/] א1266<. 05: 0 0 ווק .אקו5וציוכ 665966 +6ץ 1160 וו / ₪ עובווי 36667 וזדאגזפף 10/! עע עקץ %6ו5א*5576 -9%93 4002 2594 70 66 .=-ג -- .0 0/0 % .דההדב פד 69% -,ל6אץח ‏ אד ,406 55ה / 7 > ב אד 70 606 .61עה קד 2065 822 ,2054 221190 . : .דאאז5 עד 68 .80062 שד +516א 8055 .:% 0וג+4+. ב 00 באז שז 67 .63)אקה 6 *86%6 825 .2523 001120 4 שמ לבפ מכ ורי כ = בער .אי יי פיי ה 000008 רצי 5% "0 > 4 ולי - 203 - סיכום ל-54א0א (שורה 1-19). לאחר מכן יבוצע סיעוף לא מותנה לראש הקטע 5787 לקריאת כרטלס חדש. בקטעים 201 , 8202 , 8203 מבוצע הסיכום של השדה "415 למונה המתאלם לערך שהיה ב-0א1. לאחר מכן מבוצע סיעוף אל 5187 (שורות 1-20, 1-21, 1-22). שים לב שהתוכנית עדיין אינה שלימה בכך שאינה בודקת לכרטיס אחרון ולכן גם אינה מסתיימת. ‏ היא נמצאת במחזור אינסופי של קריאת כרטיסים ועיבוד. מקובל לכנות זאת מצב של לולאה (ק100) אשר עלולה להגרם לפעמים ע"י שגיאת תכנות. משפטל התנייה מבנה משפט ההתנליה - א[ משפט התנייה מורה למחשב לבדוק ערכו של ביטוי או של משתנה ולבצע הוראות רצויות בהתאם לתוצאות הבדיקה. ההוראות שאותן מבצעים יכולות להיות פסוקי ביצוע של השפה ו/או הוראת סיעוף. צורתו הכללית של משפט ההתנליה הלא: ,(משפט קובול) [אמו1] (תנאי) אך "משפט קובול" יתבצע רק כאשר התשובה ל"תנאי" תהיה חלובית, כלומר, כאשר התנא?ל מתקיים. אם המשפט כולל פסוקים שבסופם הוראת סיעוף - יבוצע סיעוף. ואם המשפט כולל הוראות ביצוע אחרות הן תבוצענה בזו אחר זו, ולאחריהן יבוצע המשפט העוקב. כאשר התשובה ל"תנא?" היא שלילית, כלומר, כאשר התנאי אינו מתקיים לש דילוג על "משפט קובול" עד הנקודה שלאחר? הפסוק האחרון במשפט ההתנייה. ההוראה הבאה שתתבצע תהיה במשפט שלאחר נקודה זו. מכאן, חובה שתופיע נקודה בסיומו של משפט התנייה ("1) מכיון שיש לה תפקיד לוגי משמעותל?. שים לב שהמלה אמ היא רשות, אינה חי?יבת להכתב במשפט ואפשר להשמלט אותה. דוגמה: . פאקא 0ד 2580 מעקא .מאקא 0ד 5 פפא (תנאי) םך .פאשא קד 2 פפג - 208 - הסבר: אם התנאל מתקיים, יבוצע הפסוק מאסא 70 5 ספג, ולאחריו המשפט מאסא 10 2 0כ. בסיום ביצוע קטע זה ערכו של המשתנה מא0א י*יהיה 7. אם התנאי לא מתקיים, לא יבוצע הפסוק ...5 ספ ועל כן ערכו של מאסא בסיום יהיה 2, מכיון שיתבצע דילוג במשפט התנאי עד לאחר הנקודה שבסופו. פסוקי הקובול שבהוראת ה-1% יכולים להיות כל פסוק חוקי של השפה המורכב מהוראה אחת או מספר הוראות. לדוגמה: 8 קד 4 מטקא אפחטד (תנאי) "1 (8 4 צג1ק5זס ספפאטקת 66 ד 3 פפא . דט/קא 70 00 .0 אסקט ' צט530 צגאדי צאק5זפ .ךתא 0ד 60 (תנאל) ת1 (ס . אתתא-דאזתק 70 דמשקדא תעקא בדוגמה הראשונה בנוי "משפט קובול" ממספר פסוקים כשבסופם הוראת הסיעוף זחטסדא 70 60. שים לב שלאחר הוראה זו מופיעה נקודה (.). הוראות אלו תתב- צענה רק כאשר התשובה לתנאי היא חלובית. כאשר התשובה שלילית- תבוצע ההוראה ... צאאד' צה1ק5זס. בדוגמה השניה משפט קובול הוא הוראת סיעוף בלבד. אם התנאי לא ?תקיים תבוצע ההוראה ... ₪/0. התניות יחסיות מותרות פסוק התנאי במשפט גורם להערכת מצב היחס בין שני משתנים או בין משתנה וליטרל מספרל. א. יחסים בין שדות את ביטוי היחס אפשר לציין בכמה צורות. בנוסף אפשר לצרף גם את הביטול סא להוראת השלילה. (שרה 2) אע תמדאמת6 [דקא] (שדה 1) או: (טדה 2) > [דקא] (שדה 1) - 205 - (שדה )2‏ אהד 12855 | [דשא] (שדה 1) או: (שדה 2) > [[שא] (שדה 1) (שדה )2‏ 706 ₪004₪ [זשא] (שדה 1) או: (שדה 2) = [זשא] (שדה 1) דוגמאות: ,50 70 60 54082 אוד תמדהת6 5251 תך אם ‏ 54081 גדול מ-54282 יש להסתעף לקטע "50. . מאקא ד 2580 תטקא אמחד 0 > מאקא :1 אם 5א0א קטן מאפס יש להעביר אפסים ל-מא0ס₪. . 100 קד 60 4 70 מהע0סם דשא 53 תז אם 54253 אינו שוה לערך (ליטרל) 4, יש להסתעף לקטע ת200. ב. בדיקת סימן של שדות מספריים ערך השדה חלובי/לא חיובל מטזדז5קק [דקא] (שדה) ערך השדה הינו אפס/אינו אפס םת [דקא] (שדה) ערך השדה שלילי/לא שלילי מצנד סא [דקא] (שדה) דוגמאות: . ה6מתפווסת קד 60 אמזד מטזד51קק נ1פאקא תא[ אם ערכו של 81א40 ח?ובי לש להסתעף לקטע 64מה5מ. . 605018 אקקט 'ק570' צה1ק15ס 280 דקא 5צ0פ-תםדאטקס תך אם ערכו של 5+צ158-80א0600 אלנו שוה לאפס, יש להדפיס בקונסול את המלה ?510. . 702494 70 0 מטקא םט6011פא 24ק0ד תז אם השדה 1024 הינו שלילי יש לאפס אותו. ג. בדיקת אופי הנתונים בדיקה אם השדה מספרי/לא מספר? 6 טא [דקא] (שדה) בדיקה אם השדה אלפביתי/לא אלפביתי 16 ן[דקא] (שדה) - 206 - דוגמאות: .אקתתת קד 60 6זתמעא דשא 615 אך אם השדה 611 אינו מספרי (כלומר מכיל גם אותיות או סימנים) יש להסתעף לקטע הסתאם. .6000 70 1 ת/קא 16דם8הק אפ תך אם שדה 5113 הינו אלפביתי יש להעביר 1 למונה 6005. תנאי והיפוכו באותו משפט ... ₪56 ... חך . (משפט קובול2) 5158 (משפט קובול1) [א₪ז1] (תנאל) ‏ ת1 משמעות המשפט: אם התנאי מתקיים, יתבצע משפט קובול 1 ואם לא - יתבצע משפט קובול 2. ההוראה הבאה שתבוצע היא זו שלאחר הנקודה. אם התנאי לא מתקיים, יתבצע משפט קובול 2 בלבד, וההוראה הבאה תהיה זו שאחרי הנקודה. כל משפט יכול להכיל פסוק אחד או לותר. המלה א11 אלנה חובה ואפשר להשמיט אותה. דוגמה: בדזפ קד 1 םטשא 16תאטא קא-674106 תך תתם-דא6 70 2580 משקא 1.8 1 78 2580 מעקא .אתם-דא0 קד 1 מטקא שים לב: אופן הכתיבה המוצג כאן לפיו נכתכות הוראות בשורות נפרדות, אלנו חובה אך נעשה לשם נוחיות תוך כדי ניצול אפשרות הכתיבה החפשית של ההוראות. כל ההוראות נכתבות באזור 58, מטור 12 ואילך. הדוגמה הנ"ל מתארת את המצב הבא: - 207 - האם 0א-674.06 נומר?? 1 דנה + 1 תתם-7א6 + 0 התניות עם אופרטורים לוגיים קיימת אפשרות לקשור במשפט התנייה מורכב מספר תנאים ע"י אופרטורים לוגיים של חיתוך (או - 08), אלחוד (וגם.. - פאא) ושלילה (07א). במשפטי התנייה אלו האופרטורים הלוגיים הם בנוסף לאופרטורים ה?חסיים והבדיקות האחרות המותרות בקובול. מבנה משפט ההתנליה: ,[(משפט קובול2) 8055](משפט קובול1) (תנאל 2) [דסא] -- (תנאי 1) ת1 התשובה למשפט ההתנייה המורכב תהיה חיובית רק כאשר התנאים יתקיימו בהתאם ליחסים שבהם ובינלהם, ורק אז לתבצע "משפט קובול 1". כאשר משתמשים באופרטור החיתוך 08 דל שאחד משני התנאלם הקשורים ביניהם באופרטור זה יתקיימו כדי? שהתשובה תהיה חילובית ויבוצע "משפט קובול 1". כאשר משתמשים באופרטור האיחוד 80 חייבים שב התנאים הקשורים ביניהם באופרטור זה להתקיים כדי שהתשובה תהיה חיובית ויבוצע "משפט קובול 1". במשפט התנייה מורכב זה קיימות האפשרויות הבאות: - 208 - - אפשר לכתוב מספר תנאים בזה אחר זה כשביניהם אופרטורים לוגיים שונים. התשובה למשפט ההתנייה תהיה חיובית כאשר כל התנאלם יתמלאו. - אפשר להוסיף את האופרטור 07א, למשל כ > 6 דסא סאא 8 = (2. 8 = / מתקיים וכאשר תק = 6 אינו מתקיים. - אפשר להשתמש באופציה ...2155 כמו במשפט התנייה רגיל. כלומר: כאשר דוגמאות: א. .מאקא 0ד 2580 מטקא 6 = 5 פאא 8 = א תך העברת אפס ל-5א40 תתבצע רק כאשר שני התנאים מתקיימים (בגַלל האופרטור סא כלומר כש-6 = 8 = 3. שים לב שבתנאי אחד אפשר להשוות שני ערכים בלבד. 3 . מאקא 0ד 2580 תטקא 6 = זקא 8 8% ם >= ג תך במקרה זה די בכך שאחד התנאים יתקיים או ש-8 = / ו/או ש-6 / 8. שים לב: התנאי הראשון והתנאי השני (וכן הלאה) חליבים להיות מותרים ע"? השפה כפי שתוארו בסעיף הקודם. לדוגמה: א. . 7 602 60 > ג פאא 5 = 4 תך המשפט חוקי כי שני התנָאים מותרים. כאשר שני התנאים יתמלאו יבוצע הסיעוף אל . 3 .5 70 00 6 = כאגא 8 = א חך המשפט לא חוקי כי 0 = אינו תנאי מותר. - .0 7 00 םעצ05171ק2 08 5 > א חך המשפט לא חוקי כי מש205111 בפנ? עצמו אלנו תנא? מותר. המשפט הזה צריך להכתב כך: . 0 ד 60 ם%זד051ץ ‏ 05 5 > א חך כלומר: כאשר 3 קטן מ-5 או 0 הוא חיובי יבוצע סיעוף אל ק6000. סדר הפעולות במשפט התנייה מורכב: במקרה של משפט מורכב המכיל את האופרטור פא וגם את האופרטור 08% לופעל תמיד האופרטור סא לפנ? האופרטור 05. אם רוצים לקבוע את התהליך הלוגי בשונה מכלל - 209 - זהי.-- אפשר להשתמש בסוגריים. כלל זה דומה לכלל האלגברי לשימוש בסוגויים. לדוגמה: ב.. םעד םא 525 פאגא 0 = םמאקשא 05 5 < א ;ךז במשפט זה יבוצע תחילה ה-פא ולאחר מכן ה-08%. אפשר להציג זאת בעזרת סוגריים בצורה הבאה: 1קצ 70 60 ((ש/1ד68מא 5305) סאג (0 = מאש)) 05 (8 < ג) קז כלומר: אם 3 גדול מ-8 או (0%) אם 0 = 8א40 וגם (פאג) הערך של 525 הוא שלילי, רק אז אפשר להסתעף לקטע 01ץ. תרגיל מסכם לפעולות חשבוניות ומשפטי התנייה תאור הבעיה נתון קובץ כרטיסים המתאר תנועות בחשבון לקוחות של מוסד כלשהוא. תנועות תשלום או החזר המתיחסות לתשלום מאופיינות על ידי קוד פעולה מתאים. יש לבצע בדיקות לוגיות של נתוני הקלט, לחשב את היתרה החדשה לכל חשבון ולהפיק דוח מפו- רט לכל חשבון ושורת סיכום לכל הדוח. להלן פרוט הבעלה: א. מבנה כרטיסי הקלט: טורים 6 -1 מספר לקוח טור / קוד כרטיס (1 או 2) טורים 8-15 יתרה קודמת (שתי ספרות עשרוניות) טור 16 קוד פעולה (1 - החזר) ., (2 - תשלום) טורים 17-22 סכום תשלום/החזר (שתי ספרות עשרוניות) הכרטיס האחרון בקובץ יצויין ע"י * (כוכבית) בטור 1. שארית הכרטיס לא תכיל נתונים. ב. ‏ כל כרטיס (רשומה) יבדק בדיקות לוגיות. יש לדלג על כרטיסים שגויים ורק לספור אותם לשם דווח בסיום התוכנית. הבדיקות הלוגיות של הקלט הן: או: - 210 - - השדות מספר לקוח, תשלום/החזר - צריכים להיות מספריים, - שדה קוד כרטיס צריך להכיל את הספרות 1 או 2, - שדה יתרה קודמת צריך להיות חיובי . לכל כרטיס שעבר את הבדיקות בהצלחה תחושב יתרה חדשה לפי הנוסחה הבאה: יתרה חדשה = יתרה קודמת + (פלוס) תשלום. ?לתרה חדשה = יתרה קודמת - (מינוס) החזר. משמעות הסכום בשדה סכום תשלום/החזר נקבעת לפי הקוד שבשדה קוד - פעולה. אם שדה היתרה החדשה הוא שלילי יש להרפיס הודעת שגיאה למפעיל, לדלג עליו, ולא להעבירו לסיכום היתרות ולהדפסת הפלט. הפלט של תוכנית זו יכלול שתי קבוצות דווח (במדפסת). 1) דוח יתרות חדשות אשר שבו שירה לכל לקוח. כל שורה תכיל מספר חשבון והיתרה החדשה (שתחושב). 2) שורת סיכום בסוף הדוח אשר תכיל את הפרטים הבאים: סה"כ כרטיסים בקובץ הקלט, סה"כ כרטיסים שגויים, סה"כ (סכום) יתרות חדשות. פתרון הבעיה תאור הקלט והפלט והגדרת שדות לתכנות 1 מבנה הכרטיס סכום תשלום/החזר 2 מספר לקוח - 100441 קוד כרטיס - 05א יתרה קודמת - 8%[םצ (ללא נקודה עשרונית ממשית) קוד פעולה - 80%ק-05א סכום תשלום/החזר - !51 (ללא נקודה עשרונית ממשלת) 2) שורת הדפסה של דוח היתרות (שים לב למיקום הנקודה העשרונית): לתרה חדשה: : וו 0-ד צ- אמא ס-1 - 11 * 3 שורת הדפסה של סיכום היתרות ו | |-דשתדפו, , וצ 3 השא 5 0- דד 6-0 9-ו 6 שורת הדפסה של הודעת שגיאה , :-צזז 1 -- דט צ-0 א -ם הערה: "מעל" שורות ההדפסה נרשמו הקבועים שיודפסו על ידי התוכנית. "מתחת"' לשורה רשומלם שמות השדות שערכיהם יועברו לצורך הדפסה. ב. תרשים מלבנל התחלה הגדרת שדות, איפוס מוניס הוסף 1 למונה כרטיסים 2!2 - ב העבר להדפסה מונה סה"כ כרטיסים העבר להדפסה מונה סה"כ שגויים העבר להדפסה מונה סה"כ יתרות א כן הוסף 1 למונה שגויים קוד /. כן| הפוך סימן פעולה של שדה סכום לא חשב יתרה: יתרה קודמת+ סכם יתרה חדש למונה סה"כ ?תרות להדפסה - העבר מספר לקוח ויתרה חדשה ומר ה ההששר 1 )1 )2 )5 64 )5 = 2|3 = הסבר לתוכנית קובול ו התוכנית כתובה בטפסי הקידוד של קובול. הקפד גם אתה לרשום כל תו במשבצת נפרדת, להקפיד על מרווחים, לכתוב באותיות גדולות, לרשום את המשפטים בצורה נכונה באזורים 8 ו-8 (טורים 8, 12 בהתאמה) וגם - לרשום נקודה בסוף כל משפט. כל שורת קידוד מסומנת במספר סידורי. סדר ה-5א01%1510% בתוכנית הינו קבוע: אסז6תןזזאפפן - דא:אאסת]צאם - ד - - שמות כולם חייבי?ם להופיע גם כאשר אין פירוט ב-א01/1510 מסוים, כמו למשל בשורה 1-03 (אשר טרם נלמד). הגדרת שדות ורשומות ניתנת ב-א526110 6-5108405א1א08א (שורה 1-05). את השדות האלמנטריים ברמה 77 (שורות 1-06 עד 1-09) מגדירים לראשונה, לפני הגדרת רשומות או נתונים קבוצתיים אחרים. שדות המיועדים לשמש כמונים (שורות 1-06 עד 1-08), וחייבים להתחיל עם ערך אפס, יוגדרו כ-2880 %4108. אם אינם מוגדרים בצורה זו, ערכם ההת- חלתי אינו ידוע בתחילת התוכנית. אפשר לאפס מונים אלו בתחילת התוכנית (א1/1510ם 0650085קק) ע"י ההוראה ... 70 2520 מץסא. שדה 578-810458+ מחושב במהלך התוכנית ועל כן אין צורך לאפס אותו תחילה. שדות אלו מוגדרים כנתונים אלמנטריים ברמה 77. הנתונים הקבוצתיים שהוגדרו ברמה 01 הם רשומת הקלט (מבנה הכרטיס), 5, רשומת ההדפסה של הודעת שגיאה על יתרה שלילית - (4004, רשומת ההדפסה של היתרה החדשה לכל לקוח - 5808, ושורת הסיכום של הדות - ת518-דההטתפ. בכל נתון קבוצתי קיימלם נתונים ברמת שדה גבוהה יותר (רמה אחת בלבד). בשדות אלו ניתן תאור השדה. בשורת הסיפום של הדוח לש הגדרת ערך התחל- תי של שדות כמרווחים (52468) וקבועים אלפביתיים בהתאם למבנה שורת ההדפסה (שורות 1-20, 2-03, 2-06, 2-08, 2-10). 66 7 8 )9 )10 )1 - 2!84 - בשורה 1-12 נמצאת הגדרה של שדה קיים ע"י משפט 85א8200"1. ההגדרה הזו יכולה להתיחס רק לחלק מהשדה שאותו מגדירים מחדש: השדה 1%044% הוא בן 6 תוים וההגדרה החדשה (או הנוספת) מתיחסת רק לספרה אחת, השמאלית ביותר, המיועדת לבדיקת "כרטיס אחרון". בטשורות ההדפסה ישנם שדות עם תוי עריכה (1-21, 2-04, 2-11). השדה שאותו עורכים הוא שדה עם ערך כספי המכיל בתוכו נקודה עשרונית ממשית. בהדפסה רוצים לבטל את האפסים המובילים ולכן ישנו תו העריכה 2 משמאל. בשורה 1-21 ישנו תו עריכה מינוס (-) המאפשר הדפסת סימן "שלילי" ליד הערך המספרל. - תוכנית הביצוע מתחילה ב- א1/1510 מ008ם₪06ת, בהוראת קריאה של כרטיס אל הרשומה 4%115א ובדיקה אם זהו הכרטיס האחרון בקובץ הנושא את הסימן * (שורות 2-13, 2-14). אם הוא האחרון - עוברים לקטע הסיום של התוכ- נית - 50% (שורה 3-10). אם הכרטילס אינו אחרון מוסיפים 1 למונה הכר- טסיסים ומתחילים בבדיקות הלוגיות. הבדיקות הלוגיות מתוארות בשורות 2-15 עד 2-18. כאשר מתגלית שגיאה עוברים לקטע התוכנית 5401 (3-08). בקטע זה סופרים את מספר השגיאות וחוזרים לקריאת כרטיס חדש (2-13). שים לב לאופן כתיבת התנאים המור- כבים: בדיקת שני תנאים בהוראה אחת. כל הכרטיסים שאינם שגויים עוברים להמשך העיבוד, החל משורה 2-19. בודקים את סוג הפעולה כדי לדעת איך לחשב את היתרה החדשה. מכיון שבהוראה זו אין סיעוף, הרי בכל מקרה תבוצע הוראת 00%2075 (2-20) כלומר אם התשובה ל-15 היא חיובית וגם אם היא שלילית. הכפלת השדה 5184 במספר (1-) באה כדי להפוך את הסימן שלו ולאפשר חל- שוב היתרה החדשה כמתואר בשורה 2-20. כלומר,אם השדה א5]8!8 מ?יצג החזר הערך שלו יהפך לשלילי ויסוכם (כלומר בסימן -) אל שדה יתרה קודמת. בשלב זה עורכים בדיקה אם היתרה החדשה שלילית .)2-21(‏ אם היא שלילי?ת מעבירים את מספר הלקוח והיתרה לשורת ההדפסה של השגיאה (2-22, 2-23). מדפיסים הודעה למפעיל ועוברים לקריאת כרטיס חדש (לשורה 2-13). אם היתרה אינה שלילית (כלומר, חיובית) מדלגים על כל ההוראות שבמשפט ‏ חך (עד הנקודה) וממשיכים בהוראה העוקבת בשורה 3-03. את היתרה החדשה מסכמים אל שדה סה"כ יתרות (3-03) לאחר החישובים מעבירים את שדות מספר לקות ויתרה חדשה (שחושבה) מעבירים לשדות > חך12 א ו = 2|5 = טופס קרו וו ו > בי ב 6 הח וך- זוי .4) ו | > .68ו5|וצות אא<וד6|)4וזע%פ1 '%ו6ה)ד' .8-29ג50660] 6 = : )1+ ד7א6העשם |ן%צ;)+ 6 5 : .א)'פו'צום הדג2 : וי מ ₪ .וה 566 ד -6ש |א 2 עא :1 6ט]א ל 020( (0306 60| - !|41ן1א-)קאצת -77 .0 6שש שא40ץ (%)9 6 ו560- 6ש.צתח דו .69 6ע2םתץ 59)1(/95‏ 6|ו? זטהז;ץ-אא5 לד .69 6טש,ץ 3%ץ(55)4 701060 0 8א5ג5באא)-הבדאז כול 6 8.55 0 5 ים 400 לבב -. 0 .דא 01 6 ו אט%גש 03 .א 6 ו 0 ו אא 668 עהט.) -ץ ₪146 05% .א 0|6 8 03. (29)6 6ו0 . 8אד6ץ - 03 - : שלוו 206 2060-0608 2.03 2.. ₪ 230 6 ו הטא5- ב0 : 05722 0006 0 2266 בס 6 .]ו 0 / - (5)6 616 אוטאו:-5 02 וא 5 9 אצ (49+)צ 6|] 6% 6 . -77229.99 >|, תאדר)ץ-5 02 -+.- -ה- ₪ --- ₪ > החוד = - ה ההההההההההההההההההההההההואה)הההרהסה'ה)/ה)השה בה -בההלה שטוו כטהו ינמנ וכביו'2בהת2-. שש .בהר היירט 0 ווה | "קוו 3 וי ו | יי /- - . 4 5804 1 .(9)6 6ו7 200 2-6 )א)טאאן 050 6 6טששאץ אא 6|) 6 --0%. 00000 2/6 684-0ץ-ש6ע 05 ; 0 | .- הטאו407-5ט5%8 01 '-+0א/א לדרכו טא (40)צ 6 8א2468ו₪ 03 שא ה . [4 )5 6|) / -אג5 03 | '-הוש0ח5 | ' 6ט*ץ (45)* שוץ 201666 | ג 0 בי . (%)5 6|? 03 ( ו ב'-דק%7ד6ץ "0 ' 4106ץ (60+): 016 0 04468 8-0 י .ב 24 022 7:?:1715.08 6 // ק-770)7 0% . 0 .1 0 -/ ב 000 .ש50ו%,5ם 46 ט06660] .1 שז 6 'א' = עאט. 60 בד וש =1 .פודגגוא ד1/660607 7ק66]| .14 - ש6שעפא שד 1 פ5ג // 6)5|6אעטע דעע חשאב 06 6| א>הטע דטע ההטאה. 222 0-42 5:%6%0 עד 2.6% שד . 2 < 605א 084 1 > 5א ,1 8 שד 68 6ץוד664א אגד6ץ 10 .- באש 5 2 27 כ|דוטת 4. > 760%.4/-00א ,2 . 7 + 84א0ד6/ > 8אבא58אא-.3ד6ץ מ דט 607 טניכק)ממתו = 42 6עודא6:חא 40572 אא-הב9דאץ 12 ו אאגטאא,-פ עד א2טא8: 6:עצה, ד 07 שד ו ו 8 % . - -- - . 6 ש ספט ל ו ₪₪ד 66 7)ץ-אא5 סד תא5 ה5גה-44ד6ץ ם25 .-אאש0א40 שד 4עא24 6עאה. .-- - ו 07 9 א 6-6 עד (אג5פאה-4)ד6ץ ‏ 6%6ה 2. . ה כטא5 7ץ%744ו5 1 קד 66 י . . 61 אא -6עשת קד 4 םס| - : ו שד 6 + >' 07 שז 01א1א -%עאפק ש6קפת ו יו 7% סמפמד וש06אא5-פאקון 6ע+ה ו : .7-דסחדץ שז זקקד)ל-א(ג5 )30% .ו]ש,ו5- 7ה8ַעא5 50.87 וס .וטא 0שד5 * -ד 4 . 56 ה ידדה הירדד ' . = 216 = בשורת ההדפסה (3-04, 5), מדפיסים את השורה (3-06) ומסתעפים להוראת הקריאה (3-07) לקריאת כרטיס חדש (2-15). 2) קטע סיום התוכנית (שורות 3-10 עד 3-14) מתבצע כאשר מתגלה הכרטיס האחרון. כאן עורכים את המונים בשדות של שורת הסיכום של הדוח, מדפי- סים את השורה (3-06) ולבסוף - מס?ימלם את התוכנית ע"? ההוראה אע ל570. 3) הערה: בפתרון זה השתמשנו בהוראות 466877 ו-+18ק215. הוראות אלו מלו- עדות בדרך כלל לקריאת כרטיסים בודדים ולהדפסת שורות בודדות. ראה גם פרק "קלט פלט בקבצים". שגרות - 65ת1+טסץסט5 השגרה בתוכנית שגרה או סברוטינה הינה קטע בתוכנית אשר מבצעים אותו פעמים רבות, ומגיעים אליו בדרך כלל ממקומות שונים בתוכנית. השונה בין שגרה לבין קטע תוכ- נית אחר הוא בכך שלאחר ביצוע השגרה מתכוונים לחֶזור לאותו מקום בתוכנית ממנו בוצעה ההסתעפות אליה. את מסלול ביצוע ההוראות אפשר לתאר בצורה הבאה: כלומר לאחר ביצוע השגרה חוזרים להוראה העוקבת להוראת הסיעוף אליה, או אל כל הוראה אחרת בתוכנית. הבעיה המתעוררת בניהול השגרה הינה קביעת כתובת הסיעוף (שם קטע) בהו- ראה האחרונה שלה, המכוונת להחזיר את הפיקוח אל ההוראה הרצויה למשתמש. כלומר - דרוש מנגנון לשנוי דינמי של הכתובת בהוראת הסיעוף. ההוראה 41758 מאפשרת לשנות את כתובת הסיעוף לכל כתובת רצויה בתוכנית. = 277 = מכיון שברוב המקרים מתכוונים לחזור להוראה העוקבת בלבד, ישנה הוראת קובול מיוחדת לצורך זה - ההוראה /258084. הוראה זו חוסכת מהמתכנת את טרחת כתיבת הוראת הסיעוף בסוף השגרה והשנוי של הוראה זו בכל פעם שצריך לבצע סיעוף אל השגרה. ההוראה - 4]788 ההוראה 41758 מאפשרת לשנות את כתובת הסיעוף ביציאה מהשגרה אל כל כתו- בת רצויה. לאחר ביצוע הוראת השנוי של כתובת היציאֶה הזו, מבוצעת הוראת סיעוף אל השגרה: שם קטע של . (שם קטע רצוי) 70 0ם6קתק 10|הוראת הסיעוף המד ביציאה מהשגרה . (שם קטע שגרה) 10 60 לדוגמה: 8 4 .1 מ םם6קאק 0ד 5088-ת50 תםתדוה . 8א50980071 70 60 | מטשא .8001 .2 פמ את קך 500-5088 המד]ג . םא1 5098001 78 60 2 ספא .2א800 <> מטקו . פא1ד508₪0 0 000 000000 000 - 11 50035088. 60 10 507-5088. הסבר: השגרה מתחילה בשירה 9. כתובת היציאה שלה (בשורה 11) מכוונת אל עצמה כמצב התחלתי, אשר במהלך התוכנית תתבצע הוראת 21788 (בשורה 1) אשר תשנה את כתובת היציאה של השגרה ל-800%1 , ולאחר מכן לתבצע סיעוף לסברוטינה (בשורה 9). בסיום השגרה יבוצע סיעוף ל-1א846 (שבשורה 3). במהלך התוכנית תשנה הוראת תפך)] (בשורה 5) את כתובת היציאה של השגרה ל-2א846%,ואח"כ יתבצע סיעוף. לאחר סיום השגרה תחזור התוכנית לקטע 2א6ג8. " הערה: ההוראות 758] ו- 10 60 אינן חייבות להיות צמודות. - 2|8 - ההוראה 58:08%? מאפשרת לבצע סיעוף לשגרה ולחזור להמשך ביצוע התוכנית ללא שימוש בהוראות 417585 ו-70 60. מכנה ההוראה: ,(שם קטע) %ח0תתמק ההוראה מבצעת סיעוף אל הקטע המצויין בהוראה. לאחר השלמת ביצוע כל ההוראות הכלולות בקטע זה תכוצע הוראת סיעוף של התוכנית לבצע ההוראה העוקבת את הוראת ה-208:08%, ולאחריה תמשיך בסדר ההוראות. הוראת 758084 מוסיפה, ביוזמתה, את הוראת הסיעוף הדרושה בסוף הקטע המוגדר בהוראה. הדרישה היחידה לקיום פעילות הוראה זו הלא שהקטע שאליו מבוצע סיעוף לא יכלול הוראות סיעוף אל מחוץ לקטע, אך אפשרי סיעוף אל ראש הקטע עצמו. ‏ אם קיימת הוראת סיעוף אל מחוץ לקטע, ואם היא מתבצעת (למשל כתשובה חיובית להוראת סיעוף מותנה) - יפסק מחזור ה-08%ת258 והתוכנית תמשיך לפי כתובת הסיעוף בקטע האחר, ולא תחזור להוראה שלאחר ה-58"08%?. הסיבה לכך-ההוראה מכירה קטע אחד בלבד, ומכיון שהסיעוף התבצע אל קטע אחר הוא אינו נמצא בשליטתה. דוגמה א': .1 |ת0תת סק . פאקוא קד 1 פסג - 00 .5784-1א ---- 2/5 2 608 .2-דםא הוראת 5808%? תגרום לביצוע סיעוף אל 7-1םא. בקטע זה תתבצענה שתל ההוראות שמרכיבות אותו. ההוראה הבאה שתתבצע היא םא30( 70 1 22 הרשומה מלד לאחר ההוראה את0תקםק. שים לב שמשפט 08₪4אםק כולל הוראה זו בלבד. דוגמה ב': = 2[9 = .6 |אח0ץאפק 1 .עןםז; שד 1 מעשא 2 ==-- 10/80 16 200 .06% 70 00 0 = 50 חך ---- 400 ---. 60%00075 -.- - קד 000010000 00 ₪ ₪ 9 | 0108. --== הסבר: ההוראה 25"08% (שורה 1) תגרום לסיעוף אל הקטע 616 (שורה 3) ולביצוע הפקודות הכלולות בו: לאחר ביצוע הפקודות מם/40 ו-420 (שורות 4,3) יבוצע משפט ההתנייה "1 (שורה 5). אם התנא? לא מתקיים (כלומר 0 % 5428) יתכצעו ההוראות שלאחר הוראת ת1 (שורות 6, 7) והתוכנית תחזור להוראה שלאחר ה-58708%ק בשורה 2, ותמשיך. אולם, אם התנא? מתקיים, התוכנית תבצע סיעוף לקטע א68356 (שורה 9) ותצא ממסגרת הקטע שהוגדר להוראת ה-2287081. התוכנית תבצע את ההוראות בקטע א6866% ותמשיך הלאה בהתאם להוראות ולא תחזור להוראה שלאחר ה-5800%%ת, לשורה 2. הערה: הקטע אליו מסתעפים ע"? ההוראה 2287084 הינו קטע רגיל לכל דבר ולכן אפשר גם ל"עבור" דרכו במהלך ביצוע סקונציאלי של הוראות. לדוגמה: 7 . שאקו! קד 2580 מעסא 1 .1 וטק 2 .שאשא קד 1 פסג 5 .1 4 .פאקא קד 2 פפג 5 .אע 510 .5085 6 הסבר: מאפסים את םמא0א (שורה 1). הוראת 08%ת28ק2 מבצעת את ההוראות אשר כלולות ב-%214-1 (שורות 5-4). ההוראה בשורה 5 מכוונת להוסיף 2 ל-8א0א. עם סיומה - 220 = חוזריס להוראה העוקכת את הוראת 22870%%1, כלומר לשורה 3. הוראה זו מכוונת להוסיף 1 ל-5א%0 (אשר כעת ערכו הוא 3). ההוראה העוקבת שייכת ל-1-.1םא וה?א מוסיפה 2 ל-5א0א (שורה 5). עם סיום קטע התוכנית בשורה 6 ערכו של מא0/ הוא 5. שים לב: בדוגמה זו ההוראה אש₪% ?510 חייבת לקבל "שם קטע" (למשל - "50) כדל להפריד אותה מהקטע הקודם (%514-1) אשר מתבצע כשגרה. אם לא הלה להוראה זו "שם-קטע'', הרי שבזמן ה-228708% היינו מגיעים להוראה זו והתוכנית היתה מפסיקה, ואז תוכנו של מא%0 היה 2. ההוראה 208708% עם תחום קטעים לעתים מורכבת השגרה מסדרה של קטעים רצופים המהוים לצורך מסויים יחידה לוגית אחת. אפשר לבצע קטעים אלו כשגרה אחת על ההוראה המתאימה: ((שם קטע2) עד (שם קטע1) אתסקממק ההוראה גורמת לסיעוף ל"שם קטע 1". החזרה לפקודה העוקבת תהיה רק לאחר גמר "קטע 2". מספר הקטעים יכול להיות שניים ויותר, אך הם חייבים להיות רצופים, וללא סיעופים אל מחוץ להם, מאותה סיבה שהוזכרה בהוראת 28-08%ק הבסיסית. דוגמה: .2 טאחד אא אתס;תטק .אחדמצ - 518% = מ5825 מדטקא0ק6 .גג .8 ד 00 םל671סא 5405 ת[ .4 קד 02 .אאאת5 קד 1 מעקא . . 558 קד 25870 מטקא .88 .אאא1ז5 0ד 2 מטסא . 605018 אקקט '67023' צ 15 04 -------- .סס הסבר: הוראת 28:08%? מכוונת לביצוע הקטעים , 88, 606. הסיעוף מתבצע אל הפקודה הראשונה בקטע הראשון - 3. עם סיום ההוראות בקטע 0606 תבוצע חזרה אל ההוראה שלאחר ה-258508%. שים לב שישנה אפשרות לבצע סיעופים בין קטע אחד = 22[| = לשני: בקטע 3 ישנה הוראת הסיעוף המותנה המאפשרת סיעוף לקטע 88, וגם הוראת סיעוף ללא התנייה - לקטע 06. אולם בכל מקרה - היציאה האחרונה צריכה להיות מסוף קטע 66. הוראת הסרק - 17אם בכתיבת שגרה הכוללת מספר קטעים יש צורך לעתים בקטע אחרון, פיקטיבי, שאינו כולל הוראות. קטע זה מיועד רק לנקז אליו הוראות סיעוף שונות המכוונות אל כתוכת היציאה של השגרה. בקטע זה צרלכה להיות הוראה כלשהיא שאינה מבצעת דבר. הוראת סרק זו הינה ההוראה 17א2. לדוגמה: .8 טתחד ג אתקתתסק 2 008 .4 --.--. 200 .8 ד 60 8 < 0 ת1 .א .88 --דדדדה--- 66 במקרה זה, כש-8 < ( לא דרושה כל פעולה נוספת בשגרה אלא להסתעף לכתובת היציאה שלה, וממנה לחזור להוראה הבאה לאחר ה-228708%. היציאה מהשגרה מבוצעת בקטע 88(558 (₪₪ד...) אך מכיון שאין צורך לבצע כל פעולה שהיא בקטע זה, משתמ- שים בהוראת ה-7[א₪. ביצוע חוזר לפי מונה ,5 ת [(שם קטע2) עטאות] (שם קטע1) אתסתמפק הוראה זו מאפשרת לחזור על ביצוע שגרה מספר פעמים לפי הערך - ת. רק לאחר השלמת ביצוע השגרה מספר פעמים כנדרש, תהזור התוכנית להוראה שלאחר ה-%פ0תאתק. השגרה יכולה לכלול קטע אחד בלבד או מספר קטעים אם משתמשים בפרמטר - - 222 - (שם קטע 2) (77180. פרמטר זה הינו רשות. . שאקות ד 2580 פטס 1 . 5א ד 5 510 אחקתתטק 2 .םאקוא קד 1 ספא 5 .אטף 5102 4 .םאקא 70 2 פפא .518% 5 הסבר: מאפסים את 5א%0 (שורה 1). הוראת 258708% (שורה 2) תגרום ביצוע הקטע 1% חמש פעמים. ההוראה בקטע 510% (שורה 5) מוסיפה 2 ל-5א40 ולכן ביצועה 5 פעמים יגרום שבמונה יהיה הערך 10. ההוראה הבאה לביצוע היא בשורה 5 (ההוראה שלאחר ה-5"08%?) והילא תוסיף 1 ל-5א₪0. עם סיום התוכנית בהוראה בשורה 4 הערך של םאסא יהיה 11. מספר הפעמים לביצוע השגרה יכול להיות ערך קבוע כבדוגמה זו, או דינמ? לפי ערכו של שדה מוגדר. כלומר, במקום ערך מספרי קבוע יש לרשום שם-שדה שאופיו מספרל. מספר הפעמים שהשגרה תתכצע מותנה בתוכ השדה ברגע הביצוע. את ערכו (תוכנו) של השדה אפשר לשנות באופן דינמי במהלך ביצוע התוכנית. דוגמה: .9 ם6708זק 60097 77 . 6 דא0ק6 88 שתחד הג אח0תאמק ביצוע בהתנייה (תנאי) 8זדאע [(שם קטע2) שחו1] (שם קטע1) |ש0תתמק הוראה זו משמשת לביצוע חוזר של שגרה עד לקיומו של התנאי המוגדר בהוראה. התנאי הוא כל תנאי המותר במשפט ה-15. בדיקת התנאי נעשית לפני כל הסתעפות לשגרה. דוגמאות: .3 < מאקא ת1דאט גדפא ַאחקתתטק . ם611%פא 54825 ת1דאט הדנמא את0;תמק .₪ = 4 12דאט הדמא את0תאמק = 223 - הסבר: כאשר התוכנית מגיעה להוראת2"08%? היא בודקת אם התנא? מתקיים. אם הוא לא מתקיים, לבוצע סיעוף ל-1םא. עם סיום ביצוע ההוראות שב-1:% תחזור התוכנית להוראת59ת58"0? ותבדוק אם התנאל מתקיים - אם אינו מתקיים יבוצע שוב סיעוף וחוזר חלילה. אם התנא?י מתקיים בהגיע התוכנית להוראת ה-%ת08"0ק2, (גם בפעם הראשונה), לא לתבצע שום סיעוף והתוכנית תמשיך בהוראה הבאה לאחר הוראת ה-08%4תקמק. ביצוע בהתנייה של אינדקס ביאוץ רהתנייה שה ורי [(שם קטע 2) ש148₪] (שם קטע 1) 0₪4תקהמק (שם שדה אינדקס) 6א1]צאקה./ ת 1 ו . ) שם שדה לערך | 0 תח 2 == == צם שם שרה לקידום . (תנאל) זדאט בהוראת)/258608? זו ההתנייה לביצוע מורכבת משני אלמנטים: אינדקס משתנה ותנאי בדיקה שלו. ההוראה קובעת תוכן ראשוני לשדה האינדקס המוגדר ב-6א1+ת% ובודקת את קיום התנאי. ‏ אם התנא?ל מתקיים - עוברת התוכנית להוראה שלאחר ה-228:08%1. אם התנאל לא מתקיים מבוצע סיעוף לשגרה הכוללת קטע אחד או יותר כמפורט בהוראת 08%תתםק. לאחר מכן, מקּּדם האינדקס והתוכנית חוזרת לבדיקת קיוס התנאי, וחוזר חלילה עד לקיום התנא?. את שדה האינדקס יש להגדיר כנתון אלמנטרי באופ? מספר? הערר ההתחלתי של האינדקס נקבע ב-80%": אם צויין מספר - זהו הערך ההתחלת? של האינדקס ואם צויין שם שדה, תוכננ של השדה יהיה הערך ההתחלתל. הקידום של האינדקס נקבע לפי הערך הנמסר ב-+8: אם צויין מספר - זהו הערך שאותו יש להוסיף בכל פעולת קידום של האינדקס, ואם צויין שם שדה - יש לקחת את תוכנו. דוגמה א': . .99 16ק מאקא 77 .9 210 050707ד 77 ד צם 1 את מאקא 6א1צחתגט 1גדםא ןתק0תתמק .0 < מאסא תזזאט הסבר: - 224 - מסלול ההוראה מתואר בצורה גרפית: קבע ערך התחלתי 1 לטשדה שאשא האם וויא 6 הוסף תוכן / ל- : 0<פאא 1 -- רת צא להוראה לאחר ה- את0תתסק שים לב ששדה 1058787 מוגדר כשדה שאופיו מספרל. דוגמה ב': .9 216 אפסא1 77 4 16ק אא-5781 77 אמסא 6א1צתגאץ גדסא אתק;תמק קא-1תד5 אקחץ 5 צם .7 < אמספאן םזזאט הסבר: לפני ההסתעפות הראשונה ייקבע ערך התחלתי של השדה אמפא1 עפ"י תוכנו של הטשדה 0א-51481, אשר אופיו מספרי. לאחר השלמת ביצוע הקטע בפעם הראשונה ובפעמים הבאות, יתווסף לשדה אמפסא1 המספר 3. ההסתעפות ל-74:% תופסק כשהערך של אפפא1 יהיה גדול מ-27. הערות: אופציה זו משמשת במיוחד לעבודה בטבלאות כפי שיוסבר בפרק הבא. קיימת אופציה מורחבת של ההוראה לטיפול בשניים או שלשה אינדקסים. אופציה זו יש ללמוד בספרות המתאל?מה. תאור ומבנה טבלה היא אוסף של מספרים, שמות או ערכים הקשורים לנושא אחד. מרכלבל הטבלה נקראים איברים והם יכולים להכיל נתון אחד, או יותר, לפ? המקרה. אלברל הטבלה מסודרים בסדר כלשהוא: בלתי ממויינים, ממויינים ברשימה (טבלה חד-ממדית) או ממויינים בצורת לוח של עמודות ושורות שיש יחס ביניהם, כדוגמת לוח הכפל (טבלה דו-ממדית). טבלאות י?כולות להיות באורך קבוע, כמוסבר בפרק זה, או באורך משתנה. אפש- רויות נוספות לניהול טבלה ראה בספרות המתאלמה. דוגמה לטבלה: שם הטבלה: מחירי פרלטים איבר 1 שם פריט1 מחיר 1 איבר 2 שם פריט2 מחיר 2 איבר 3 שם פרלט5 מחיר 5 טבלה זו היא במבנה רשימה (חד-ממדית). כל איבר מורכב משנ? שדות: שם פריט ומחיר. כל האיברים זהים במבנה שלהם ושונים בתוכן. שים לב שאיברי הטב- לה צריכים להיות מוגדרים ברציפות באחסנת המחשב. הגדרת איברי הטבלה - 060085 א. מופע ומבנה איבר? הטבלה טבלה מגדירים ב-6-5108658א08%1א באופן דומה להגדרת רשומות. שם הטבלה מוגדר באזור 4 כרמת שדה 01. פרוט האיברים ניתן באזור 8, ברמות שדה גבוהות יותר. מכלון שכל איברי? הטבלה זהים במבנה, אפשר להגדיר במפורט את המבנה של אחד מהם ולציי:ן את מספר הפעמים שהוא חוזר על עצמו. האיבר של הטבלה יכול להיות בעל שדה אחד, בעל מספר שדות ברמת שדה שוה אי כמה שדות ברמות שדה שונות. - 22₪ = מספר הפעמים שאיבר הטבלה חוזר על עצמו בטבלה מצויין ע"? מלת המפתח 5 המופיעה במשפט ההגדרה של השדה. אסור לצל?ין 060085 ברמת שדה 01. להלן הגדרת איברי טבלה עם שדה אחד: . (שם הטבלה) 2 . (מבנה השדה) 216 ח 000085 (שם שדה) 2 1 - רמת השדה של הטבלה, (שם הטבלה) - כשמו מאפשר התיחסות אל איברי הטבלה כמכלול אחר, 2 - רמת השדה של איברי הטבלה , (שם שדה) - כשמו. שם השדה של איבר הטבלה 7 ת - מספר הפעמים שהשדה (האיבר) מופיע בטבלה 0 6 - יש לתאר את מבנה השדה, דוגמאות: 1) טבלה שבה כל איבר מורכב משדה אחד בלבד .פד 01 . (4)20 16ת 50 060085 דאפפטד5 03 שס הטבלה רשום ברמת-שדה 01 ופרוט השדות ברמת-שדה 03. שם השדה של איבר הטבלה הוא [א51005 והוא מופיע בטבלה 30 פעם. המבנה - (20). מכאן שאורך הטבלה הוא 20 א 30 = 600 תוים. 2) טבלה שבה כל איבר מורכב משני שדות: .7 01 .0 000085 צמאקא 05 .(9)4 6זק 1 05 4 16ק ₪6 05 שם הטבלה הוגדר ברמת-שדה 01. בטבלה 20 איברים המוגדרים כנתון קבו- צתי צפאסא. | צפאסא מורכב משני שדות 1₪, 06 לציון לירות ואגורות. שים לב שמבנה השדה ניתן ברמת-השדה הגבוהה ביותר (כלומר המפורטת ביותר), כמקובל. - שם הטבלה: 0157 - שם כל איבר: צמאסא - ל שני / בכל איבר שני שדות: ע1, 46 0 אלברים - אורך כל איבר 6 תוים רכ בטבלה - אורך כל הטבלה (6א20) 120 תו?ם טבלה זו הינה חד-ממדית, כדוגמת רשימה, באורך קבוע. = 177 - ב. אינדקס הטבלה שמות השדות זהים לכל האיברים של הטבלה ולכן אם מוזכר שם כזה בהוראה, המהריר לא ידע לאיזה מהאיברים להתיחס. ‏ לכן, בכל התיחסות לשדה (או לשם האיבר) בטבלה יש לציין לאיזה מאיברי הטבלה הכוונה. ‏ הציון ייעשה ע"י אינדקס בסוגריים כדלקמן : (אינדקס מספרי) שם-שדה ולדוגמה. ‏ ... 70 (3) ₪גא פלצקא ההתיחסות במשפט זה היא לשדה ששמו 4415א הנמצא באיבר השלישי של הטבלה. ‏ שים לב שהפניה היא לשם האיבר בטבלה ולא לשם הטבלה. צורת כתיבה זו אינה נוחה תמיד כי ההוראה תתיחס תמיד לאיבר השלישי. בתכנות דרושה פנייה דינמית לאלברי הטבלה כדי לאפשר מעבר על הטבלה בלולאה (ק100), כלו- מר להשתמש באותן הפקודות כדי לטפל בכל האיברים. לשם כך משתמשים באינדקס משתנה במקום אינדקס שהוא מספר קבוע. האלנדקס מוגדר כשדה מספרי אשר מקבל ערכים שונים במהלך ביצוע התוכנית. ההתיחסות לשדה זה כאינדקס מכוונת לערך שיש בו בזמן הבי- צוע של ההוראה. דוגמאות: 1) .4 + ג = תספותזא 5ד0ק60% . אמתג-דא1חק 70 (משפוגאטא) םגא תטט שרה 8מ8ו()א מחושב בהתאם להוראות הבעיה. כאשר הוא משמש כאל?נדקס תהיה פנלה אל איבר הטבלה שמספרו שוה לערך של 858אעא בעת ביצוע ההוראה מטצס8א. 2) יש לבנות טבלה של מספרים זוגיים מ-0 עד 100. הפתרוך: .(9)4 16 תפגץ ‏ 77 | .0 מטעגץ (9)3 216 פאסא ‏ 77 -2 5ממפואטא-אתצם ‏ 01 35 (9)3 716 50 006085 605% 03 4 6א צתהץ ה/]טגד-1101ו9 ואקץהמק .ק00ס1 5 1 אשח; ]הגע 0 .0 <> תהאט ע[דאט 1 ז8 .אש לש51 8 חאשי 2-10 מתג ‏ ]צה]-ועםו | 9 (חג) וע[הט 10 מאקוא 5 סוא 00| - 226 - הסבר: האינדקס %48 (שורה 1) מוגור כנתון אלמנטרי? מספרי. שדה 8א%40% מלועד לחל- שוב הערך של המספר הזוגי שיש להעביר לטבלה. הטבלה מוגדרת ברמת שרה 01 (שורה 3). מכיון שאי אפשר לציין 066085 ומבנה שדה ברמה זו, יש להגדיר נתון אלמנטרי 008% במכנה של 3 ספרות אשר מופיע 50 פעסם בטבלה (שורה 4). התוכנית (שורה 5) כוללת הוראת 2880/08%%4/ מירכבת לביצוע השגרה הכלולה בקטע התוכנית %1גד-1101 (שורות 10-9). הוראה זו תפעיל את השגרה מספר פעמל?ם כאשר האינדקס %4% משתנה מ-1 בקידים של יהחירה עד אשר יהיה גרול מ-50. כלומר כאשר יגיע ל-51 יופסק המחזור, והתוכנית לא תעבור לביצוע השגרה אלא תעבור להוראה העוקבת להוראת 258"08%, אל ההוראה א80 "510 (שורה 8). זכור שקידום האינדקס נעשה לאחר ביצוע השגרה. בשגרה (שורה 9) מוסיפים 2 אל השדה 5א%0 (אשו ערכו ההתחלתי 0, לפי שורה 2) ומעבירים אותו אל האיבר הסידורי בטבלה בהתאם לערכו של האינדקס 8/ בעת ביצוע ההוראה. בפעם הראשונה %18-1 ילכן מתכוונים לאיבר הראשון (6085%)1, אח''כ ערכו מקודם ל-2 ואז איבר הטבלה הוא (6085%)2 וכן הלאה. תרגיל מסכם לשגרות יטבלאות מטרת התרגיל להציג שימוש בטבלאות ובהוראת 58:04%;. תאור הבעיה נתונות שתי כרטסות של חברי מיעדון ספורט. כרטסת אחת כוללת את רשימת החברים, והכרטסת השניה - את רשימת החבוים ששי?למו את מיסיהם השנתילם. ‏ יש לבדוק כמה חברים טרם שילמו את מיסיהם ולהרפיס מספר זה בסיום העבורה. כאשר ישנו חבר ששילם את מיסיו ואינו מופיע ברשימת החברים, או כאשר יש לחבר דווח כפול על תשלום מס אין להתיחס לכך, אלא לדלג על הכרטיס (הסיבה - לפשט את הבעיה. כך אין נוהגים במצלאות). הקלט: א. מזינים תחילה את כרטסת החברים ולאחריה - כרטסת - 229 = כרטסת חכרי המיעוון במבנה הבא: טור 1 : קוד כרטיס (:1). טורים 2-9: מספר זהות. שאר טורי הכרטיס לא רלוונטיים בתרגיל זה. כרטסת חכרי המועדון ממויינת לפי מספר תעודת זהות, כרטיסים. כרטסת חכרים ששלמו מסיהם במבנה הבא: טור 1 : קוד כרטיס (-2). טורים 2-9: מס' זהות. שאר טורי הכרטיס לא רלוונטיים כתרגיל זה. כרטסת משלמי המיסים אינה ממויינת. ויש בה עד 200 משלמי המיסים. בכרטיס האחרון של שנ? קבצי הנתונים מנוקבת כוכבית (*) בטור 1 ואין בו נתונים. הצגת דרך הפתרון: בשלב זה ננתח את השלבים העיקריים בפתרון הבעיה: א. הגדרת טבלה של 200 אלברים, בהם נאחסן את מספר? תעודות הזהות של החכרים במועדון. זה שילם מסיו. נציין תו נוסף בכל איבר לציון עובדת התשלום כאשר נמצא שחבר ב. קריאת כרטסת החברים ומילוי אבר? הטבלה עם מספרי תעודת הזהות. ג. קריאת כרטסת משלמי המסים, חיפוש בטבלה, וציון עובדת התשלום כאשר מוצאים חבר עם מספר ת"ז מקביל בטבלה, או דילוג על הכרטיס (זהו בדרך כלל מצב של שגיאה). ד. סריקת הטבלה לספירת החכרים שטרם שילמו מסיהם, והדפסת מספר זה במכונת הכתיבה של המפעיל. - 230 - תרשים מלבני.: 9) ץ יציאה לשגרה הגדרית ואיפוס יי > -- 7 שגרה לספירה/ | 508% מונים הוסף 1 / חבירים ששלמי למונה חברים לפי הטבלה ששלמי לצ י אה קרא כרטיס המרה הדפס מספר ₪ חכברים ששלמו ,72-ה ₪ ה הוסף 1 לגבול הטבלה העבר מספר העכד 1 זהות לאיבר הטבלה זהות שוה לטבלה לסימן תשלום העבר 0 י לסימן -תשלום תוכנית קובול - 23| * . 8 .א1%1510 א16110ת דאטתן] . '611אהאדי .מ1-ג06₪מק .א1510/ז0 דאשאאשת זז טאם .א1510ע1 בדגת .א10 5561 5710800 - 6א1 או .0 האל (9)3 6זק מאטוא 77 .0 ]אצ (9)3 216 2דאח 77 .0 מטעגצ (9)3 16ק עעע 6‏ 77 .5 תא -[0 .א 16 פשא 02 . (9)8 216 25807 02 . (71)א 16[ 8ם1[ץ 02 .אד 01 .0 000085 608584 05 . (9)8 16ק ד-1[ַ28₪0 05 .א 16 ך-אאאז51 05 . א1%1510 מתטסם6קתץ . .8 72 60 'ז' > פקא ת1 .15דךתגא דקת66 .םת .אמא 70 00 '2' > פשא תך . (60002) ד-01וו20 ד דטון25 מטקוא .םטע6 שד 1 פפה .0 שד 60 .(עטצ6) ד-אא51 שד '0' מטשא .2 ד 2580 מטקוא . דאמא (12ג8) 20807.1 = דטו/28 ת1 .2דגת 0ד 1 ספא .001 קז 60 (2דגת) ד-אהא51 0ד '1' מטסא קד 60 (2דגת) ד-דעוו28 > ך0ם2 תן .ו ד 00 .101 ד 60 עטט6 > 2דגת קן ג תת 2זגת 6א1צתהט 508 אתק:תמק .5:08 בצ לט < 12 1דאט . 501א60 אקקט פאקוא צג1קפוס . אטת 5107 שאקוא 10 1 פעה '1' = (2דגת) ד-אגא51 15 .5088 ₪ שת ]| ₪ שח וך:השון ות ו וו 1 ווונ :ו - 232 > הערות לפתרון התרגיל הגדרות של שדות ברמה 77 קודמות להגדרות של שדות ברמות האחרות. (שורות 6-8). כל איבר בטבלה מכיל שני שדות, ולכן צריך להגדירו כנתון קבוצתי. מכיון שרמה 01 אסור לצי?ין את המלה 0060085 צריכים להגדיר נתון קבוצתי לצורך זה - 0% ובתוכו להגדיר את שני הנתונים המרכיבים אותו. (שורות 135 עד 16). הסבר ללוגיקה של התוכנית: )1 )2 )5 לאחר קריאת הכרטיס בודקים אם זהו הכרטיס האחרון (שורה 18). אם כן - מסתעפים לקטע 5508 (בשורה 27) שמבצע ספירת החברים שטרם שילמו. אם קוד הכרטלס = 1 (כלומר אלנו = 2) זהו כרטיס חבר שאת תוכנו יש להעביר לטבלה (שורה 19). האינדקס (6%0) שמצביע על האיבר הסידורי בטבלה, מקדמים אותו ב-1 (מכיון שהתחיל מ-0) ומעבירים את מספר הזהות שבכרטיס לשדה המתאים של הטבלה (שורות 21-20). את הסימן לתשלום השליך לאיבר זה מאפסים כי טרם קבלנו הודעת תשלום עבור התושב הנדון. חוזרים לקרי?את כרטיס חדש. בסיום קריאת כרטיסים קוד 1, יכיל 1 את מספר האיברים בטבלה. אם קוד הכרטיס 2, חייבים לסרוק את כל הטבלה מהאיבר הראשון (1) ועד האיבר האחרון שמולא ע"י הכרטיסים בקוד 1. מספר אי?בר זה נשמר בשדה 2 (שורות 26-22). הסריקה נעשית בעזרת האינדקס ₪412 המשתנה מ-1 עד הערך 6%02 (שורות 23-27). אם נמצא שמס' תעודת זהות בכרטסת החכרים ששילמו מתאימה למספר ת"ז בטבלה מסמנים באותו איבר את עובדת תשלום המיסים. אם לא נמצא, כלומר הסריקה עברה כל הטבלה בלי למצוא תעודת זהות מתאימה, מדלגים לכרטיס הבא (כאמור - זהו מצב של שגיאה אשר בעבודה רגילה מקובל לדווח עליו). עם גמר קריאת כל הכרטיסים מסתעפים ל-5"08 שם סורקים את כל הטבלה תוך ספירת התושבים ששילמו את מיסיהם (שורות 27 עד 29, 32). מספר זה לש להדפיס בסוף העבודה (שורות 30, 31) ולאחר מכן - לסיים את התוכנית. סריקת הטבלה נעשית ע"י שגרה 5088 (שורה 32). םך"ךְץ]ן]"/)]/7-]/.]------- <‏ ₪ ₪][][]₪]/ << ,ה ההה"[*'1 ה ס-ח-/ש//...₪..== סרק 6: ק!6 !619 בקב3'ס עד כה הכרנו את הוראות קלט/פלט 60827 ו-צג1ק15ע. אלה הן הוראות פשוטות שיכולות לשמש במהלך תוכנית לקריאת כרטי?סים בודדים או להדפסת שורות מעטות במיו- חר אמורים הדברים לגבי מכונת הכתיבה האיטית. כשעוסקים בקבצי כרטל?סים גדולים ובדוחות מירכבים עם עריכה (כותרת בראש רף, רווחים וכד') יש צורך להשתמש בהו- ראות קלט/פלט המאפשרות טיפול בכל יחידות קלט/פלט כולל אמצעי קלט/פלט מגנטיים כמו סרטים ותקליטים. חשוב יותר הוא השרות לבריקת תויות כותרת וסיומת של קבצים, ביצוע שרותי קידום נייר במדפסת, הפודת כרטיסים בקוראת הכרטיסים ועוד. היחירה הבסיסית בקלט/פלט היא הקובץ. כדי לשתף קובץ בתוכנית יש לבצע שתי פעולות: הגדרת הקובץ וכתיבת הוראות לעיבורו. הגדרת קבצים הגדרת קבצים נעשית בחלקה ב-א1%1510 דאשאאסת1/אם ובחלקה ב-א1/1510כ גדגפ. הכרזת קובץ ויחידרת קלט/פלט - 551607 משפט זה קובע שם לקובץ ואת הקשר הלוגי בינו לבין יחידת קלט/פלט. המשפט ייכתב ב-א1%1510 דא₪אסת1/אם, ב-א550710 צטקדטס-]עשקא1, תחת הכותרת 2 00 -מםןןץ. 8 .א511510 א160710ת1דאפסז . 1די .10-אחסקחץ . א01%1510 דאשאאקתז/אם .א550110 דטקדטש- דטקא1 .1 אק5-6זץ ----551501 ==-- 581,001 בכל תוכנית חייב להופיע משפט 581801 אחד עבור כל קובץ. מבנה המשפט הוא כדלקמן: (שם יחידת קלט/פלט) 70 א45516 (שם קובץ) 55007 - 234 = "סם הקובץ" הוא שס לוגי שנקבע ע"ל המתכנת וישמש לזיהו? הקובץ בכל הפניוות אליו בתוך התוכנית. "שם יחידת ק/פ" הוא כינוי לוגי ליחידת קלט/פלט (למשל כונן סרט מגנטי, כונן דיסק מגנטי, מדפסת וכד') שאליה קשור הקובץ. הכינוי הלוגי יכול להתיחס ליחידה פיזית לפי הגדרה קבועה במערכת ההפעלה, או שאפשר לשנות הגדרה זו ע"י כרטיסי פיקוה מתאימים. בכל מקרה, הכינויים וההגררות שונים בדרך כלל ממתקן מחשב אחד למשנהו. להלן תאור הקשר בין שם הקובץ ליחידת קלט/פלט: שס הקובץ ליחידת קלט/פלט לוגית יחידת קלט/פלט פיזית משפט הגדרה או כרטיסי פיקוח 5 של מערכת ההפעלה למשל: קובץ "מלאי", קשור ליחידת ק/פ ג, שהיא כונן סרטים ת. כדוגמה יוצגו מספר משפטים המתאלמלם למערכות י.ב.מ./370. אך יש לזכור שמשפט 55150671 מותנה בסוג המחשב ובמערכת ההפעלה שבהם פועלת התוכנית ויש לכתוב אותו בהתאם להנחיות בכל מערכת. - קריאת קובץ כרטיסים: .א1ת5-6-08-2540% 70 א205510 05ת6-אמא 551507 או בקיצור: .א1ם6 קד א45510 6805-אפא 50507 8 מצלין את סוג יהחידת הקלט/פלט ואת השם הפיזי של קורא הכרטיסים. 5 מציין את שיטת עיבוד הקובץ, כאן - קובץ סיקוונציאלי, א]םת6 - כינוי לוגי של יחידת קלט/פלט. - קריאה/כתיבה של קובץ בסרט מגנטל: .קאד ד א45516 ם/זת-תםד5א 551007 - כתיבת דוח (קובץ) במדפסת: . דאתקץ5צ5 70 א45516 5אמד1-ת2157-0 67מ500 אפשר להשמיט את התאור המפורט של יחידת קלט/פלט ולציין רק את הכינוי של היחידה הלוגית אשר מוכר למערכת ההפעלה מכיון ששאר תכונות היחידה ידועות לת = 235 =* הגדרת תכונות הקובץ - משפט פץ הגדרת תכונות הקובץ נעשית ב-א1510ש1 4 משפט כ" (תסגזק1ל6560כ 16ג") נכתב ב-א580110 1125ת המופיע לפני ה-א550110 6-5708465א₪08%1 שהכרנו עד כה. לכל קובץ שמוגדר ע"י משפט5515067 יש לכתוב משפט 8" מתאלם. במשפט פץ מספר מלות מפתח שחלק מהן חייבות להופיע וחלק מהן יכולות להופיע. הנקודה המסיימת את משפט ה-5" תופיע לאחר הפסוק האחרון. .א1/1510ם דגס .א0ז5507 תעזת (שם קובץ) פ?? ‏ 1 חובה פת פא ד ו 5 6000עת סג 2 חובה ,(קוד) 15 005 6א51ת60מת 3 רשות 615 , ב (מספר) 5א741א60 א8706% 4 רשות , 0070865 (מספר) 5א41זא00 פתק6סת 5 חובה . (שם רשומה) 15 6082שת דהפ 6 חובה הסבר למבנה ההוראה: שורה 1: השם 5" נכתב באזור . שאר מלות המפתח נכתבות במכנה חופשי באזור 8. (שם הקובץ) הוא אותו השם שנקבע במשפט ה-551₪01 ב-א1/1510 זאשאאסא1עאת. שורה 2 (חובה): .. 1488 - פסוק מגדיר את התוית של הקובץ. האפשרויות הן: פתאפא5 - תוית סטנדרטית פפדדס - ללא תוית כלל. האופציה 0017755 חייבת להופיע לגבי קבצים המתיחסים לקוראת כרטל?סים ומדפסות, ויכולה להופיע לגבי קבצים המתיחסים לסרטים מגנטלים. קבצים על גבי דיסקים מגנטיים חייבים להיות עם תוית סטנדרטית, שורה 3 (רשות): ... 6א1כא60תת פסוק קובע מבנה הרשומות בקובץ: ה(קוד) יכול לקבל אחד מהערכים הבאים: <] - הרשומות הן באורך קבוע (64א1ת), - הרשומות הן באורך משתנה (516ל8218/), / - הרשומות במבנה לא מוגדר (68ת46+1ת/). אם פסוק זה אינו מופיע לגב? קובץ מסויים - התוכנית מניחה רשומות מסוג %. ----7-- = ה - ₪ - 236 - שורה 4 (רשות): פסוק ... א81206% קובע את אורך הגוש (9106%) של הקובץ. אורך הגוש נקבע ע"י מספר הרשומות שבו (5060825 ת) או ע"? מספר התוים שבו (07085ת.6 ת)) הפסוק לא יופיע כשהקובץ הוא במבנה 106%64לתט, כלומר רשומה אחת לבלוק וכאשר הקבצים הם במבנה רשומות בלתי מוגדר (664ת46+1תט). פסוק זה הוא חובה לקובץ הערוך בבלוקים. שורה 5 (חובה): הפסוק ... 00%2ע קובע את אורך הרשומה בקובץ. כאשר הרשומות הן באורך קבוע - זהו אורך הרשומה. כאשר הרשומות הן באורך משתנה או לא מוגדר - זהו האורך המקסימלי האפשרי. שורה 6 (חובה): הפסוק ... 247 מציין את שם הרשומה אשר תוגדר מיד בהמשך למשפט פץ. זוהי רשומת קלט לאחר קריאתה (בקבצי קלט), או רשומת הפלט לפנל כתיבתה (בקובצי פלט). בהגדרה זו מתיחסים לרשומה הבודדת. כאשר התוכנית קוראת בלוקים (למשל מסרט מגנט?) היא "מפרקת" אותם ומעבירה לשטח הרשומה את הרשומה הבאה בתור. כאשר כותבים בלוקים, "מלקטת" התוכנית את הרשומות לבלוקים ורק כאשר הבלוק מושלם הוא נכתב למעשה ביחידת הפלט. כרטיסים ושורות הדפסה קוראים וכותבים ברשומות בודדות. וגדרת רשומת קובץ להגדרת רשומה הקשורה לקובץ יש מספר כלללם: א. הרשומה חייבת להיות ברמה 01, ויכולה להכיל פרוט לרמות גבוהות יותר, אם נדרש. ב. אי אפשר להשתמש בהגדרה חוזרת של שטח הרשומה ע"י משפט 5מא1עמסטת. אי אפשר להשתמש בהגדרת %20₪ בתאור המבנה ע"י מתט107ק. (הגדרת 108/ דרושה בעיקר להצגת קבועים ברשומות להדפסה). מסיבות אלו נוהגים לפעמים לטפל ברשומות ב-510%08 6א₪08%1 ולהגדיר את רשומות הקובץ כשדה אחד במבנה אלפנומר?, למשל: . (ח)א 216 (שם רשומה) 01 תרגיל הגדרת קבצים יס לכתוב את חלק התוכנית המגדיר את שני הקבצים הבאים: 1) קובץ על סרט מגנטי, תוית סטנדרטית, אורך רשומה 40 תוים ואורך גוש 400. 2) קובץ כרסיסים מנוקבים. 237 - 7 5 . 7 7 א45510 6115 551507 , פתהפאד5 15 = 16 מפקוא 6אדפתקספת 05 10 פא1הצאק0 81008 , 5םד0 תו 40 5א1הדאקס פתק6פת אמת-957ם5 15 פתקספת הדגס . (19)א 16ק ₪אא 02 . (20)א 216 20855 02 פפדדזו 15 = 15 םפקוא 6א01אק6סם 5 80 5א1 6 5ת60סת .6715-3054 15 פק6עת הדגס . (80)א 6זַק אמַתא- 6827115‏ 01 הסבר: א. ( 8 אקז1/15ם א16710תזדאמסז . 'יא21דא/א' .ס1-ו4ח6קתק . א1/1510 צאשהאקתזעאם .א50110 דטקדטט- דטקאז . 01דא60-מעזץ א45510 ז[םתם5 551007 .אק151/זס ד .אק50710 מתזץ פתק6סת תפ ךדַשאםת5 .סץ = ₪ 000₪ 0 ₪001 שש 2-22 = ₪ ₪! 3 .אתתא-זתת 5‏ 01 .9 16ק פשא 02 2-0 -- ת0 ₪0 00-01 פתק6סת םפג1 6715 פת = ו 3 א טסט ₪ ₪ ₪ כ 4 בשורות 7-5 מוגדרים הקבצים: קובץ 55887 אשר ?ופעל ביחידה 55003 (המציינת כונן סרט מגנטי) וקובץ 68115 אשר יקרא מיחידה 7ק51צ5. בשורה 10 מוגדר הקובץ בסרט מגנטי, בהתאם לדרישות הבעיה. אורך הבלוק (שורה 12) צוין ככפולה של מספר הרשומות ולא כאורך פיזי. כאשר הקובץ בנוי מרשומות באורך משתנה או במבנה לא מוגדר מציינים את אורכו המקסימלי ע"י מספר התוים ולא ע"י מספר הרשומות. לקריאה/כתיבה בסרט. בשורה 14 מוגדר שם הרשומה המלועדת - 238 - ג. רשומת הסרט מפורטת בשורות 15 עד 18. שים לב שאורך הרשומה הוא 40 תוים כפי שצויין בשורה 13. ד. קובץ הכרטיסים מוגדר בשורות 19 עד 22. לקובץ זה אין תוית ואין מבנה נלוקים. שס הרשומה ניתן בשורה 22. ה. רשומת הקלט של הכרטיסים מפורטת בשורה 23. לרשומה שדה אחד בלבד בן 80 טורים. הוראות לעיבוד קבצים פחיחת קבצים - אעשק0 הוראת 025% היא ההוראה הראשונה שחייבת להתבצע עבור כל קובץ, ואין להתחיל בקריאה או כתיבה ללא הוראה זו. ההוראה גורמת להכנת הקובץ לעיבוד. בקבצי קלט ופלט בכרטיסי?ם ובקובץ פלט במדפסת ההוראה אינה מבצעת דבר. בקובץ קלט בסרט מגנטי? מבוצע גילגול הסרט לתחילתו, והתוית נקראת ונבדקת. בקובץ בדיסק מתבצעת בדיקת התוית. בקובץ פלט בסרט מגנטי ובדיסק נכתבת (או מתעדכנת) התוית של הקובץ, והקובץ מוצב במקום הפיזי המיועד לכתיבת הבלוק הראשון. מבנה ההוראה: . (שם קובץ) 3 אק (שם קובץ) הוא שם הקובץ שצויין במשפט 551501 ובמשפט פ". ההגדרה של סוג הקובץ (קלט או פלט) מיועדת לבדיקת ההרשאה לביצוע פעולות קריאה או כתיבה. אפשר לציין מספר קבצים בהוראה אחת, ואף קבצים מסוגים שונים, אך בכל רטשימה יש לכלול רק קבצים מאותו הסוג, לדוגמה: .א8-א15 004 צט0ק0070 המזפהא 21דמטקא דטקאז אמק הוראת קריאהּ - פג₪5 קריאת רשומות מקובץ נעשית ע"? ההוראה פגםת: . (משפט קובול) פאם 871 (שם קובץ) פגאתת - 239 - הוראה זו תקרא רשומה מהקובץ ששמו צויין בהוראה. משני מקרים: לאחר ביצוע ההוראה יתכן אחד א) היו רשומות בקובץ - הרשומה שנקראה נמצאת בזכרון בשטח שצויין לאותו קובץ במשפט ה-פ" ( -. 15 800080 078), ואשר הוגדר מיד בהמשך למשפט ה-0ת המתאים לקובץ. ב לא היו יותר רשומות בקובץ - כאשר מגיעים לסוף הקובץ מתבצע משפט הקובול שצויין בהוראה בהמשך ל- ... סאט 41. חוכה לרשום ...פא ₪71 בכל הוראות פאפת או לא לרשום כלל. אם לא רושמים- חובת בדיקת סוף הקובץ מוטלת על התוכניתן. דוגמה: .אעת 5702 פאם 47 33וקא1 פאתה קריאה של רשומות מקובץ 073א1. כאשר מגיעים לסוף הקובץ מסתיימת התוכנית. ,את 70 60 פאם זה 5א5460710אחד פגמת קריאה של רשומות מקובץ 5א5406110א18₪. בסיום קריאת הקובץ יבוצע סיעוף לקטע התוכנית 158א1ת. הסבר לאופן הקריאה של הרשומות: כאשר קריאת הרשומות מתבצעת מקובץ שהרשומות בו נפרדות (66א106%פתגט) מתבצעת פעולת קריאה פיזית בכל הוראת 8:42 כמו למשל בקריאת כרטלסים מנוקבים. כאשר קרילאת הרשומות מתבצעת מקובץ שהרשומות בו מקובצות בבלוקים (106%64) נוהל הקריאה הוא: בהוראת הקריאה הראשונה מתבצעת ע"י קובול פעולת קריאה פיזית אל תוך שטח שמוגדר אוטומטית ואילנו מוכר למשתמש. לאחר מכן נעשית פעולת קרלאה לוגית שהילא העכרת רשומה אחת מהבלוק אל שטח הזכרון שהוגדר ע"י המשתמש. בפעולת הקריאה הבאה תבוצע שוב פעולת קריאה לוגית. כאשר הסתיימה קריאת כל הרשומות בבלוק, תבוצע שוב פעולת קריאה פיזית ולאחריה פעולה לוגית וחוזר חלילה, עד לסיום הקובץ. קריאת רשומה לשטח אחסנה אחר (70א1): הוראת 85428 תגרום תמי?ד לקריאת הרשומה אל הרשומה של הקובץ המוגדרת לאחר משפט 0ת. כאשר צריך להעביר את הרשומה לעיבוד בשטח נתוני?ם אחר (ב-5108405 6א1א908) או לשטח רשומת פלט כלשהיא, משתמשים בהוראה 80/8. ן 4 3 ) 2 - || - 240 - אם הוגדר לדוגמה: .. אנאעזאד פץ 1 76 פועאד-א 01 . א5506110 6-5708₪�5א1א0₪ 0 (םאא-אמא - 01 . אזסזונזאד פאפא אמחג-אמא 70 פנזווזאד-5 מטלקוא כותבים: ניתן להשתמש בברירה 70א1 במשפט 852 כדי לבצע שתי? פייולות אלו במשפט אחד: . (משפט קובול) | פאם 41 (שטח אחסנה) [קדא1] (שם קובץ) פגםםת 4תחה-אפא קדאז אזפזונזאד פאפת .אע 5102 פאם זג ולדוגמה: הוראת כתיבה - %8176₪ כתיבת רשומות בקובץ (כולל הדפסה) נעשית ע"י ההוראה 178ג. .(שם רשומה) ‏ ₪176 בהוראת ‏ %%115 אין מציינים שם הקובץ אלא רק את שם הרשומה אשר צויין במשפט פ" (במלת המפתח ... 15 ₪608 27) של הקובץ. תאור הרשומה ניתן בהמשך למש- פט פת. לדוגמה: ‏ ,₪64אה.ז00 175א₪ הרשומה שנמצאת בעת ביצוע ההוראה בשטח מ5ת001-4 תכתב בקובץ אשר 007-885 הוא שטח הרשומות שלו. מכאן יש להסיק שהמתכנת צריך להכין את הנתונים לפלט ברשומה סהיגדיה כרשימת פלט. הסבר לאופן הביצוע של הוראת הכתיבה: כשם שהוראת הקריאה אינה מבצעת תמיד קריאה פיזית, כך הדכר גם בהוראת הכתיבה. כאשר כותבים רשומות לקובץ שהרשומות בו נפרדות (106%66פחט) כמו למשל במדפסת, תבצע כל הוראת כתיבה פעולה פיזית של כתיבה בקובץ. כאשר כותכים רשומות לקובץ שהרשומות בו מקובצות בבלוקים תבוצע פעולת כתיכה לוגית עד אשר "יתמלא" הבלוק, ורק אז תבוצע פעולת כתיבה פיזית. הכתיבה הפיזית - 28! - "שקופה" למשתמש והוא אינו מטפל בה, כשם שאין הוא יודע מתי מתבצעת פעולת קרי?אה פיזית. הבלוק המלועד לצבירת הרשומות נשמר בשטח הקובול מחוץ לשליטת המשתמש. בכתיבה קיימת בעיית הכלוק האחרון אשר עשוי להיות מלא כחלקו ועליו להכתב עם סיום התוכנית. פעולה זו מבוקרת בעזרת ההוראה 61055 כפי שיוסבר. הוראת כתיבה משטח אחסנה אחר (אקתת) יי ונתנ אה קיימים מצבים בהם הרשומה המיועדת לפלט נמצאת בשטח אחסנה כלשהוא לאחר עיבוד, עריכה או כרשומה קבועה (למשל כותרת להדפסה), או שהיא נמצאת בשטח רשומת קלט. לצורך בי?צוע ההוראה מ4175/% יש להעביר תחילה את הרשומה הרצויה אל שטח רשומת קובץ הפלט. כדי להקל על התכנות אפשר לבצע שתי פעולות אלו במשפט אחד: . (שטח אחסנה) 80%" (רשומת קובץ פלט) תדזאא לדוגמה, במקום לכתוב: .אא5 70 -ותוזפמת משקא . ח(ת51 ךז אפשר לכתוב: . 4- ₪511 |[אקתץ 5 תדזחו שיטת עבודה זו דרושה במ?וחד בקבצים המיועדים להדפסה מכיון שבהם יש צורך להדפיס שורות במבנה שונה אשר עורכים אותן ב-6-5108405א1א%08%, או שורות כותרת והסברים שונים אשר מוגדרות גם כן בפרק זה של חטלבת הנתונים. כאשר משתמשים בשלטת עבודה זו לגבי קובץ מסויים, צריך להגדיר את מבנה רשומת הקובץ בצורה הבאה: -. ךףמםמק פץ . (ת)א 6זק דַם1מק-דגותוזפית - 01 כאשר ת היא אורך הרשומה בתוים. כללי העברה של ברירת 80%" הם כללי העברה של שדה אלפנומרי: התוים מועברים החל מהצד השמאלי של השדה, אם השדה המקבל ארוך מהרשומה המועברת אליו הוא יתמלא בתוי רווח מימלן, ואם הוא קצר מהרשומה המועברת - התוים העודפים ל?קוצצו. - 242 - הוראת כתיבה למדפסת הכתיבה במדפסת כוללת שתי פעולות עיקריות: פיקוח על קידום הנייר והדפסת השורה. במחשבי י.ב.מ. מקודדת הוראת הפיקוח כבצורת תו ראשון בשורת ההדפסה,תו זה אינו מודפס. לאחר תו זה רשומים שאר התוים בשורה, כאורך שורת ההדפסה המותרת במדפסת. לדוגמה, שורת הדפסה המלועדת להדפסת 5 תוים ראשונים של האלפבית תוגדר באורך כולל של 6 תוים, בצורה הבאה: .פאז-דאזאק 01 ,א 6זק הםןת]ץ; 02 , '605פ' מעעהל (5)א 6זק אזאס 02 הוראת הפיקוח לקידום הנייר ניתנת בהוראת ההדפסה ₪175 והמהדיר, הוא אשר מתרגם אותה לתו-פיקוח ומעביר אותה למקום המתאים בשורת ההדפסה. הוראת ההדפסה יכולה לקבל אחת מהצורות הבאות: . (מספר) 6א1א051710ק תמדך2 (שם רשומה) מדזאא .5 (מספר) 6א61אעס 758" (שם רשומה) מדזאא .5 (מספר) 6א61אהעס מת0שמם (שם רשומה) מדזאא וראות אלו מכוונות לב?צוע ההדפסה ולקידום הנייר במדפסת: א. ההוראה | 6א[ַא051110ק 7788 תגרום לקידום הנל?יר לפני הדפסת השורה במספר השורות המצויין. האפשרויות הן 1, 2, 5. כאשר רושמים 0, תבצע המדפסת קידום הנייר לדף חדש לפני הדפסת השורה. קידום הנייר לדף חדש מונחה ע"י "סרט מוביל" המותקן במדפסת. סימון השורה הראשונה הוא בדרך כלל בשורה השלישית מראש הדף. ב. שתי ההוראות האחרות מאפשרות קידום הנייר במספר שורות (עד 100) כמצויין בהוראה. ההוראה המאפשרת הדפסת השורה לפני קידום הנייר היא יעילה יותר מבחינת קצב ההדפסה. כאשר מספר = 0 מבוצע קידום הנייר לדף חדש. בכל מקרה שמציינים קידום של מספר שורות יהיה הרווח בין שתי השורות המוד- פסות קטן ב-1 ממספר השורות שצויינו בהוראה. למשל: אם מציינים מספר = 2, פרוש הדבר קידום הנייר ב-2 שורות, כלומר שורה אחת רווח ובשורה השניה תבוצע ההדפסה (זהו "רווח כפול"). איתור של סוף דף יכול להיות ע"? ספירת מספר השורות ובדיקת מספר זה לעומת קבוע - 283 - נתון. בדף הדפסה סטנדרטי יש 66 שורות, אך כמובן שמפסיקים את ההדפסה מספר שורות מתחתית הדף. קיימות אפשרויות נוספות לבדיקת מצב "סוף דף" אך לא נדון בהן במסגרת זו. אם לא מציינים את ברירת קידום הנייר לקובץ המיועד למדפסת יוסיף המהדיר אוטומטית תו "קידום של שורה אחת". ‏ אך אם צויינה ברירה זו בהוראה - יש לרשום אותה בכל משפטי מדזאא. סגירת קבצים - 62055 בסיום העיבוד של כל קובץ יש לבצע את ההוראה מ012055. הוראה זו משלימה את תהליך העיבוד בפעולות סיום אחדות, הכרחיות: בקבצי קלט ופלט בכרטיסים ובקובץ פלט במדפסת לא נעשית כל פעולה. בקובץ קלט בסרט מגנטי? או בדיסק מגנטי נעשית בדיקת התאמה של מספרי הבקורת בתוית הסיום של הקובץ אל המספר שחושב בזמן ביצוע הקרלאה של הקובץ. במקרה של אי התאמה מודפסת הודעת שגיאה. בקובץ פלט בסרט ובדיסק גורמת הוראת הסגירה לכתיבה פיזית של הבלוקים האחרונים הנמצאים בזכרון. במהלך העיבוד בלוקים אלה לא נכתבים עד אשר הם "מתמלאים" ברשומות, מה שלא קיים תמיד בסיום העיבוד. לאחר כתיבת הכלוקים האחרונים נכ- תבת תוית הסיום של הקובץ הכוללת מספר? בקורת שונים. בקבצים בסרטים מגנטיים מבוצע גם גלגול הסרט (בקלט או פלט). מבנה ההוראה: ... (שם קובץ) (שם קובץ) 623058 שים לב שאין צורך לציין את סוג הקובץ מכיון שעובדה זו ידועה לתוכנית ממשפט אפקס. | תרגיל מסכם לקלט ופלט נתון קובץ קלט בסרט מגנטי שמבנה רשומותיו הוא: 8 -1 מספר זהות 0 נתונים שונים ב כ 5 - 288 - יש לכתוב קובץ פלט בסרט מגנט? אשר יכיל את הנתונים של רשומת הקלט ובנוסף, בכל רשומה, את המספר הסידורי שלה ואת תאריך העיבוד, במבנה הבא: 8 -1 מספר זהות 0 נתונים שונלם 4 מספר סידורי של הרשומה 0 תאריך העיבוד את תאריך העיבוד מקבלים מכרטיס אשר בו מנוקב התאריך בטורים 1-6. בסיום העבודה יש להדפיס במכונת הכתיבה של המפעיל את מספר רשומות הפלט (המספר הסידורי האחרון שהתקבל). תרטים מלבני (כללי): קבצים רשומות בנית הרשומה בשטח הפלט - 245 - התוכנית: .א1/1510ם א160710תזקאמפן ףזטקאזי .פז- :1 א0101510 דא5א180עאם קאז 11 1 ₪ א55160 -- קא1 ששו 1 ₪ א5516 | <דט0 [60םם ודקזפצ5 קד א5516 15דהגא זשפעם . א1/1510 . א10 5501 = 15 מפקא 6אזפתק6מת פתהפאאד5 15 כח60סת עמפגן סקא 5 10 5א41דא60 806% 5 50 5א71א60 פת60עת .אפתא-א1 15 פתק6עת גדהס . (50)א 6זק גפתא-א1 דגס 11 פץ 01 פתהפאגד5 15 כתק6סת עמפג1 קדט ? 15 05קא 560186 5 0ַ60 5א71א60 כת60סת 5 20 5א741א600 א806% .תא-007 15 פתק6סת דגס .א8-דע . (50)א 16ק מ 3 . (9)4 16ק | 512081 5 . (9)6 6זק 108תאאד 5 פץ 01 פפדד ווק 15 פתק6שת 1850 5זך ץ 15 5קא 6א6001סת 5 80 5א741א600 תק6סת .אא 15 פתקס6מת הדאס פץ ה שה - 2846 - . אא . (6)א 6זק פךאם 02 .(74)א 6זק 108ץ 02 209| 1 210 211 . א556110 6-510805א1 0 |212 .₪ מט]ג" (9)4 16ק חאו 213| 7 .א%1510ז םהטפשססחק |214 . שק דטקד0ק 15דתגא קא1 דשקא1 א5ת0 . 1000 0ך 60 פסאם 7 15דתהא סאחם 25 216 .0 70 00 סאם ₪27 קאז סגםת 00 |217 .תג-007 0דך הפחה-אז מעצסא .1 קץך מאעוא מצשוא .פאשא ד 1 פסג .106אהאד קד פדהפ פעפוא .7 0ך 60 .אג-ד00 מךד1תא 2108 219 220 221 .5א סדק קאז 61055 |.505 |222 .םאקא '=00805ם₪ דטסדט0 עהדקד' צאג.ןקפנס . אטא 5107 223 224 = 27 = הסבר לתוכנית - א. מבנה התוכנית כולל את החטיבות לפי הסדר הקבוע שלהן בתוכנית. .וו ב. בחטיבה הראשונה - א16710ת11א105 - נמסר רק שם התוכנית - 'דט0א1' בשורה | 2. הגדרת שם התוכנית הינה חובה. ג. בחטיבה השניה - דאם.אס0ת1/אם - נמצאת הגדרת הקבצים בפרק צעקדטס-דטקאז תחת הכותרת 18052א1125-60? (בשורה 105). בתוכנית מוגדרים שלשה קבצים בשלש יחידות קלט/פלט ע"? הוראות 581801 לכל אחד מהם. קובץ ?א1 הוא קובץ הקלט ביחידה שכנוייה המוכר למערכת ההפעלה הוא 55021 (הגדרה זו מתאלמה למערכת הפעלה ספציפית במחשב י.ב.מ.) והיא מוגדרת ככונן סרט מגנט? מסוילים. קובץ הפלט 0012 כינויו 55022 והוא מוגדר גם כן על כונן סרט מגנטי אחר. קובץ הכרטיסים 8115% נקרא מיחידה שכינויה 7ך5+512 והילא מוגדרת כקוראת הכרטיסים. ד. החטיבה השלישלת - 2212 - כוללת את תאור הקכצים והרשומות שלהם כפרק (א520110) מ/1ת, ומונים ושטחי עבודה אחרים - בפרק מ6-510840א1אחסו. לכל קובץ יש משפט מ" המגדיר אותו, ולאחריו תאור מבנה הרשומה: 1) קובץ פא (שורה 111) הוגדר עם תויות סטנדרטיות, אורך רשומה קבוע ("), 0 רשומות לבלוק, 50 תוים לרשומה. שם הרשומה של הקובץ היא פת-א1 ותאורה ניתן בהמשך, בשורה 115. רשומה זו מכילה שדה אחד בן 50 תוים. בבעיה שלפנינו אין צורך לפרט יותר. 2) קובץ 001 (שורה 116) הוגדר עם תויות סטנדרטיות, מבנה רשומה קבוע, רשומות באורך 60 תוים, 20 רשומות לבלוק. שם הרשומה של הקובץ הוא | תא-001 ותאורה ניתן בהמשך. | רשומת הפלט בשורה 201 001-8 כוללת פרוט של השדות המרכיבים אותה ולכן שמה הכללי ניתן ברמה 01 כנתון קבוצתי. פרוט השדות ניתן ברמה 03: השדה הראשון 012 יכיל את תוכן רשומת הקלט אשר תועבר אליו, השדה 512081 - את המספר הסידורי? שיחושב, והשדה 1401084 - את תאריך העיבוד שיועבר מכרט?ס מנוקב. 3 קובץ 48115א (שורה 205) אינו מכיל תויות כותרת, רשומותיו באורך קבוע, באורך 80 תוים. שם הרשומה הוא אא. שים לב שלא צויין גודל הבלוק מכיון שהרשומות אינן מקובצות בבלוקים. הרשומה (שורה 209) אא מוגדרת כנתון קבוצתי ברמה 01. הפרוט כולל שנ? שדות: 2418 (שאותו נעכיר לרשו- מת הפלט) ושדה אחר שמוגדר כ-111/88ץ כ? אלנו חשוב לנו. - 248 - 4) בפרק שטח העבודה (שורה 212) מוגדר שדה אחד המיועד להיות מונה למספר הסדורי ש. הרשומות. 5 שים לב שסדר הפסוקים במשפט 8 אינו קבוע. אפשר להפריר פסוק ממשנהו בפסיק, אולם בסוף המשפט חייבת לבוא נקודה. תאור רשומת הקובץ חליב להופיע בהמשך למשפט 0" שאליו היא שייכת. החטיבה הרב?עית - 280680085 - כוללת את הוראות התוכנלת. 1) ההוראה הראשונה (שורה 215) היא ההוראה א0?5 לפתיחה הקבצים. בהוראה אחת אפשר לציין קבצי קלט ופלט, אולם יש לקבצם בסמוך למלת המפתח דטקא1 או 0[7ק00)1 בהתאמה. 2), הוראת הקריאה לכרטיס (216) תגרום להעברת תוכנו לרשומה א%% שהוגדרה (שורה 209). אם מגיעים לסוף הקובץ מסתעפים לקטע 100. הכוונה זו אינה דרושה וניתנה לשם הסבר בלבד: מכיון שבמקרה שלפנינו יש צורך לקרוא כרטיס אחד בלבד, לא נחזור להוראת הקריאה לכרטיס ולכן לא נגיע למצב בו תתקבל התשובה של סיום הקובץ, וגם לא ?תבצע הסיעוף לפי...סאם ך07. 3) בשורה 217 מבוצעת קריאת רשומה מקובץ הקלט. כאן ההוראה ...סאם 81 הינה רלוונטית. בסיום קובץ הקלט נעבור לקטע "50 שבו תבוצענה הפעולות של סיום התוכנית. 64) מהלך התוכנית מתואר בהוראות הבאות (218 עד 220): העברת רשומת הקלט לשטח הפלט, הוספת 1 למונה המספר הסידורי, העברתו לשדה 5120081 והעברת התאריך מרשומת הכרטיס לשדה הפלט המתאים. עכשיו אפשר לבצע את הוראת פד לקובץ הפלט (שורה 221) ולחזור ל-ק100 כדי להמשיך בקריאת רשומות הקלט. בהוראת הכתיבה מציינים את שם הרשומה בלבד, ללא שם קובץ. 5 כאשר הסתיימה קריאת כל רשומות הקלט עוברים לקטע 505 (שורה 222). מבצעים סגירת הקבצים. בהוראה 01055 לא צויין סוג הקובץ אלא רק שמו מדפיסים במכונת הכתיבה לידיעת המפעיל את המספר הסידור? האחרון שהתקבל עם הסבר מתאים, ומסיימים בהוראת אשת ל570. חלק חנןילשל: תכנות 5.ל.ו |/ | - 25! - סרק ו: 'ס!3!|ת ה6פה-]//,זק ה ק ד מ ה שפת התכנות 2:/1 פותחה באמצע שנות הששים ע"י חברת י.ב.מ. וע"? איגוד המשתמשים בציוד י.ב.מ. בארה"ב. בפיתוח השפה הושם הדגש על שתי נקודות: א. התאמה לעיבודים מינהליים ועיבודים מדעיים כאחת.. ב. ניצול מירבי של תכונות המחשבים החדשים מסדרת י.ב.מ./360 ו-י.ב.מ./370, בני הדור החדש. השאיפה לכלול בשפה אחת את האפשרות לעיבודים מינהליים ומדעיים, כדוגמת האפשרויות הקילמות בשפות קובול ופורטרן, והוספת תכונות נוספות יצרו שפה רבת- מרכיבים. ‏ רבוי המרכיבים לא פגע בפשטות*המבנה והלוגיקה של השפה, אך הוא דורש מהמשתמש לנהוג בתבונה בבחירת המרכיבים השונים הדרושים לו בכל מקרה. ל-1,/1ק יש ניבים אחדים בהתאם למערכת ההפעלה ולמהדורה של המהדיר. החומר שלפנינו מבוסס על מרכיב? השפה הבסיסלים של המהדיר 51₪1265קס 21/1. מהדיר זה כולל את מירב התכונות החדשות של השפה והוא הנפוץ כעת. חשיבותו רבה ביכולתו לבצע אופטימיזציה של הקידוד המופק בתהליך ההידור כדי לקבל תוכנית יעילה ככל האפשר מבח?נת תפושת הזכרון וזמני הביצוע. שפת התכנות 2/1 הינה שפת תכנות עילית, המאפשרת למתכנת ל"התבטא" במשפט? השפה האנגלית. ‏ אך גם כאן ישנן אפשרויות להרחיב ולקצר, וכאן אנו מגיעים לאחת התכונות של 22/1 - הכתיבה התמציתית. במסגרת זו כלולים קיצורים של מלות מפתח של השפה, שימוש בסמלים וסימנים בהוראות ב?צוע, והעיקר - שימוש ב"ברירת-מחדל". ברירת-המחדל (מס1>קס 5ם1ט8+46%) הינה ברירה אשר מותר להשמלט אותה מהגדרה או הוראה מכיון שהמהדיר מציג תמ?ד אפשרות מוסכמת ידועה. למשל, אם לא מגדירים מכנה של נתון ההנחה הלא שהוא במבנה דצימלי, אם לא מגדירים שיטת ארגון בקובץ מניחים שהוא במבנה סיקוונציאלל. בחרנו להציג את שפת התכנות בדרך אשר תאפשר למתכנת להתחיל לכתוב תוכניות פשוטות, ע"י ל?מוד המרכיבים הבסיסיים ההכרחלים, ורק אח"כ הוספנו הרחבות המאפ- שרות פתרון בעיות מורכבות יותר. נסינו לשמור על העקרון של כתיבה בטכניקה - 2982 = פשוטה אשר מבט?חה את מידת הבהירות של התוכנית ובעקיפין - גם את אמלנותה ויעילותה. מרכיבי השפה ה ת כ בו ת כתיבת תוכנית ב-1/1? הינה פשוטה ונוחה, בעיקר מכיון שהמגבלות על הקידוד הן מזעריות. תוכנית ד/:ק2 בנויה מפסוקים (58ת6ח55856) המתבצעים לפי סדר כתיבתם בתוכנית. הפסוקים כוללים הוראות ביצוע, הגדרות לקבצים ונתונים והוראות פיקוח שונות (הו- ראות הסתעפות, הוראות התניה ועוד). הפסוק מהווה צרוף של מלי?ם (0585ט), מפרידים (4611₪166:8) בין המלים, מרווחים (%8ת518) והערות (65ח6תם0ס6), והוא חייב להסתיים בנקודה-פסיק (;). דוגמאות לפסוקי תוכניות: הגדרת נתון ; (6) 084246758 2275 מתה561כ 5סוק השמה ;4 + 6א0: = פאס הוראת הסתעפות ;ד 76 60 הוראת פלט ; (40098559 ,₪אהא) 1157 דטק הוראת התנייה 8 24.5 = 17 את פסוקי התוכנית כותבים בדף הקידוד בצורה חופשית וללא מבנה מוגדר. דף הקידוד מקביל למבנה כרטיס מנוקב ומכיל 80 עמודות. את הפסוקים כותבים בעמו- דות 2 עד 72, ללא הגבלת מיקום; עמודה 1 אינה בשימוש ואסור לכתוב בה; בעמודות 3 עד 80 אפשר לכתוב קוד זהוי של התוכנית ומספר סידור? לשורות (כרטלסים). אפשר לגלוש בכתיבת פסוקים משורה לשורה, והכת'בה בשורה העוקבת לכולה להתחיל בכל עמודה שהיא. פרטי התוכנית והתוכניתן 0 זהוי 72|73 פסוקי התוכנית 0 ,11 6 ; (א41א) 5א02710 מפפטפטססתק :787 ₪7 24714 )4, 3(; 5 +. 0 252 + 5 7. 0 5. 0 - 2983 - תאזר דף הקידוד מתיחס לכתיבת הוראות השפה בלבד. ‏ זכור כי נתונים לתוכנילת אפשר לכתוב ולנקב בכל אחד מ-80 טורי הכרטיס. קבוצת התוים של השפה קבוצת התוים מכילה 60 תוים: תוים אלפבתיים בשפה האנגלית, ספרות עשרוניות, תוים מיוחדים. א. 29 תוים אלפבתיים - הכוללים את תוי האלפבית האנגלי? (אותיות "גדולות" בלבד) ושלשת התוים %, /, 8 לתכנות ב-215/1 משתמשים בתוים אלפבתיים בשפה האנגלית. קלט ופלט של תוכניות 22/1 יכולים לכלול נתונ?ם באלפבית עברי. האלפבית העברי מוצג במקום תוים באלפבית האנגלי לפי טבלה מוסכמת.,להדפסת דוחו"ת בעברית יש לטפל גם בהפיכת כוון התוים כמוסבר בפרק "שפת התכנות קובול". ב. 10 ספרות עשרוניות - 0 עד 9. ג. ‏ 21 תוים מלוחדים - אשר לרבים מהם יש תפקידים בשפה, ועליהם נעמוד בהמשך, בהקשר לכל נושא. מרווח (מסומן כ-% בכתיבה) (תו רווח) סימן האחוז % סימן השוילון או ההשמה - נקורה ופסיק : סימן החילבור + נקודותיים : סימן החיסור - סימן ה"לא'' דד הכוכבית או סימן הכפל 9 סימן ה"ו-" 8 לוכסן או סימן החילוק / סימן ה"או" | סוגר שמאלי ( סימן ה"גדול מ-" > סוגר למנל ( סימן ה"קטן מ-" > פסיק , : מקף (בגובה בסיס האות) - נקודה עשרונית או בינרית : סימן השאלה ? גרש . אפשרי צרוף של שני סימנים כדי ליצור משמעויות חדשות כמו .למשל >> מציין "קטן או שוה", או הצרוף של שת? כוכביות ** המציין "העלאה בחזקה". - 258 - מלים, מפרירים, מרווחים והערות המלים של השפה שייכות לאחת משתי קטגוריות, מזהים (1+16:5:ח166) וקבועים (58ה858ת60). המזהים הם שמות של שדות ונתונים, תויות להוראות וכד' והקבועים הם ערכים מספריים. התוים המיוחדים המוגדרים כמפרידים מחולקים לשתי קבוצות:למפרידים (8ז8%8:0ק56) ואופרטורים (68:0%5ק0). מבין המפרידים נציין כאן במיוחד את התו נקודה-פסיק (;) המסיים פסוק 1/מת, ואת הסוגרים התוחמים מלים בפסוקים מסוימים ומשרתים בבטויים במשמעותם הרגילה באלגברה. האופרטורים כוללים את התוים המשמ- שים להגדרת פעולות אריתמטיות ופעולות השוואה. מלים עוקבות בפסוק אפשר להפריד ע"י מפריד אחד או יותר ו/או ע"י מרווחים. לדוגמה: 124 יחשב כמזהה אחד אך הצרוף ₪ 2/ע יחשב כשני מזהים בגלל המרווח המפ- ץְ+< יחשב כשני מזהים הקשורים ע"י סימן החיבור +, וזה זהה ריד בין שתי מלים; . את המרווח אפשר להוסיף בכל לצרוף עץַ + א כאשר סימן השויון + מוקף במרווחים. מקום בין מלים שונות או בין מלים ומפרידים | הערות אפשר לכתוב בכל מקום בו להערה אין כל מבנה ההערה אפשר להשתמש במרווח, כלומר בין שתי מלים או בין מלים ומפרידים. משמעות עבור המהדיר והיא מיועדת, כשמה, עבור המתכנת כהסבר בלבד. הוא: /* גוף ההערה */ דהי?נו טכסט באורך תוים כלשהוא בין שני סימני ההפרדה המוכרים */ לציון תחילת הערה,ו- /* לציון סוף הערה. לדוגמה: ;4 /* 5א6210014710 אגך 70 אסאגתם */ 76 60 מ ז ה י ם + מזהה (+511106ח166) הוא מלה או קבוצת מלים המהוברות במקפים, והוא נוצר על ,ידי המתכנת כדי לתת שם או תוית לקובץ, לפסוק בתוכנית, לקבוצת פסוקים, לשדה ברשומה, ועוד. יצירת המזהה נתונה ביד? המתכנת וצריכה להעשות לפי כללי הכתיבה: מזהה עטוי להיות תו אלפביתי בודד או מחרוזת תוים אלפמריים (תוים אלפבתיים וספרות) ו/או מקף. משני צידיו של המזהה ישנם מרווחים או מפרידי?ם אחרים מותרים. התו הראשון של המזהה חייב להיות אלפביתי. מספר התוים במזהה אסור שלהיה גדול מ-31. דוגמאות למזהלם: 2 ,5808 4547קכג( 50% ,3 1009 ,2מתצת ,ג - 7595 - סוג אחר של מזהים כולל את מלות המפתתח בשפת התכנות. מלת מפתה (4:סשע6א) הינה מזהה, אשר בהופיעו בהקשר המתאים הינו בעל משמעות לתוכנית התרגום. מלת המפתח עשויה לציין הוראת פעולה או הגדרה של נתונים. דוגמאות: עאאז6טת ,(תהעת ,דכ 657 ,70 60 לחלק ממלות המפתח יש גם שם מקוצר בו אפשר להשתמש במקום השם הרגיל. דוגמאות במקום 01488עכ, הט במקום ש6אזצתג7. פסוקי התוכנית פסוק בתוכנית 1/1? משמש להגדרה, הוראת ביצוע, או להוראת בקרה. הפסוק יכול להיות פשוט או מורכב בהתאם למכלול הפעולות שהוא מבצע. *פסוק פשוט מכיל את גוף הפסוק והוא מסת":ים כמפריד נקודה-פסיק (;). סוגי הפסוקים: א. פסוק עם מלת מפתחת (6ת6ת558:6 6צסטץ6א) מכלל מלת מפתח (אחת או יותר) לציון ההוראה או התפקיד של הפסוק. לדוגמה: מלת המפתח: 0 60 ;597 170 60 שתי מלות מפתת: אםל0 ,(מתנק ; (4נתפנא1אד) 5ע1ץ אטלס ב. פסוק השמה ( 858560605 5ח6מחק8881) מכיל את סימן ההשמה (=) ואינו מכיל מלת מפתח. לדוגמה: ;0 + 5 > ב = אאא ג. פסוק רלק (6ח5%866₪6 1טח) מכיל רק את המפריד נקודה-פסיק (;) ומשמעותו "אין פעולה". "/ לדוגמה פסוק השמה ופסוק ריק; 1 + 5 = ב + פסוק מורכב מכיל פסוקים פשוטים אחדים המהוים את "גוף הפסוק" ולאחריהם לש נקודה-פסיק. בקבוצה זו כלולים פסוקי ההתנייה 1 ו-א0. לדוגמה: +-5 = ג ומד 5 < ג ש1 פסוק ההשמה 6 + 8 = 3 מוכל בתוך הפסוק המורכב ע1. * קבוצות (8קטסמפ), קיימים מצבים בהם נדרש לראות קבוצת פסוקים כיחידת ביצוע אחת. לשם כך הם מוגדרים כקבוצה כאשר בראשם הפסוק 20 ובסיומם הפסוק ספאם. לדוגמה: ;0 ; (פסוק 1) ; (פסוק 2) ; סאם - 256 - , לכל אחד מסוגי הפסוקים אפשר להוסיף קידומת (א6+1צק 5ת868%6₪6). הקידומות משמשות כתויות זהו? (א*6+1צק 18561) או כקידומות התנליה (%8ח858%06₪0 ת60041510). תפקיד התוית לזהות את הפסוק כדי שאפשר יהלה להתיחס אליו במקום אחר בתוכ- נית, כמו למשל לצורך סיעוף. התוית נרשמת לפי כללי כתיבת "מזהה", לפנ? המשפט והיא מופרדת ממנו בנקודותיים (:). לדוגמה, ;ג פע + 4-כת = 2 : 1א אפשר לרשום לפסוק אחד לותר מתוית אחת, לדוגמה: ; ...3 5 < 4 תע: :78כ ₪57ך :1002 בנושא קידומות התנליה (68א6+1צק מס81:1ח60) נדון בשלב מאוחר יותר. מבנה תוכנית פסוקים של השפה מיועדים לקריאת או כתיבת נתונים, לביצוע פעולות אריתמ- טיות, לבצע השואות ולפעול בהתאם למסקנות ההשואה והם כוללים גם הוראות הגדרה לקבצים ונתונים. פסוקים אחרים מלועדים לפיקוח על מסלול ביצוע התוכנית. התוכנית מורכבת, מאוסף של פסוקים המוגדר כבלוק (5106%). תוכנית אחת יכולה להבנות מכמה אוספ? פסוקים כאלה, או מכמה בלוקים, מסוגים שונים. בכל תוכנית קיים בלוק אחד המוגדר בצורה הבאה: ; (א1גא) 5א02710 250052085 :(תוית 1) ... פסוקי התוכנית .... ... פפוק? התוכגית .... ((תוית 1) פאם בראש הבלוק מופיע הפסוק 800820885ע2, אשר במקרה זה מלווה בהגדרה (א441) 5א02710 לציון העובדה שזהו הבלוק הראשון בתוכנלת, או תחילת התוכנית. לפסוק זה רשומה תוית זהוי שהיא שם הבלוק או שם התוכנלת. בסיום הבלוק מופיע המשפט שבו מלת המפתח פאע ואשר יכול לכלול את תוית הזהוי של הבלוק בהמשך גוף המשפט, אולם אין זה חובה. - 257 = דוגמת תוכנית ד/:ק מטרת התוכנית לקרוא מספר שדוון מכרטיס מנוקב. אם הערך של השדה א הוא אפס, יש להדפיסו, ואם אלנו שוה לאפס יש לחשב את סכום השדות 2, 5, 6, כ ולחלקו ב-א ולהדפיס את התוצאה. 1 ; (א1אא) 0271085 מתפטפפסשתק :5008 2 ;(א,2ע,4,2,06) 2474 0607 5 ;(א) 5418 דטע אעאד 0 = א קך 058 0; 4 5 ;א/ (פ+4+5+6) = א5 6 ; (א5) 5878 דשק 7 ; פא 5; 8 2 ;ל סאם בשלב זה נכתבו רק הוראות הבילצוע המטפלות בפתרון הבעיה. שים לב לצורת הכתיבה: המבנה שבו נכתב קטע התוכנית נקבע על יד? המתכנת לנוחיותו. בדרך כלל מעדיפים לכתוב רק פסוק אחד בשורה ולכתוב פסוקים שונים בהזזה לשם בהירות. ה ס ב ר בשורה 1 רשום פסוק הפתיחה של הבלוק הראשון של התוכנית. יש לו תוית 507700, שזהו גם שם התוכנית. בשורה 2 רשומה הוראת קריאה של 5 שדות מתוך הכרטיס. בפסוק זה ישנה מלת המפתח 8 סשס. בשורה 3 לשנו פסוק מורכב (פסוק התנייה) שבו נבדק ערכו של א. אם א שוה ל-0 מדפיסים אותו לפי? הוראת הפסוק 221 0ע2. אם א אינו שוה ל-0 מדלגים על הוראת ההדפסה בשורה 3 ועוברים לביצוע הפסוק שבשורה 4. בשורה 4 מופיע הפסוק 0כ2, המציין תחי?לתה של קבוצת פסוקים (בשורות 5, 6) שיש לבצע אותה כהמשך להוראת ההתנליה ₪058 (כאשר 0 + א). בסוף קבוצה זו מופיע המשפט פאטע (שורה 7). בשורות 6,5 מופיעה הוראת החישוב של הערך א5 והדפסתו. בשורה 8 ישנה ההוראה 5102 המפסיקה את פעולת התוכנית (אפשר להשמיטה אם היא האחרונה בבלוק). בשורה 9 רשום הפסוק לציון סילום הבלוק/התוכנית. = - 258 - סרק 2: הּגַבָּרת |ת!![יס ס וג ל נבכת וני ם אפשר לסווג את ההוראות המבוצעות ע"? המחשב לשלוש קבוצות: א. הוראות לוגיות - המטפלות ברצף של תולם (8ש666בזַ8ת6) או ברצף של סביות (5188), ב. הוראות אריתמטלות - המטפלות בנתונים מספרלים, ג. הוראות פיקוח - הקובעות את סדר ביצוע ההוראות בתוכנית. לשלוש קטגוריות אלו של סוגי הוראות, אפשר לסווג בהתאמה את סוג? הנתונים: נתונים במחרוזות (285ת85:1), נתונים מספריים (848%8 16צ6מטח) ונתונ? תולות (180615). לכל סוג של נתונים לשנם מאפיינים המגדירים את תכונותלו. נתונים במחרוזות המחרוזות כוללות שת? קבוצות נתונים: נתוני תוים (0188תג08) ונתונל ביות (511). מחרוזות התוים כוללות בעיקר את נתוני הקלט המוזנים מאמצעים החיצונלים (לדוגתה כרטי?ס מנוקב) ואת נתוני הפלט המועברים להדפסה. נתונים שונים בקבצי המחשב אשר אינם משמשלם לפעולות חשבוניות (למשל שם, כתובת, תאריך, קוד?ם) נש- מרים בדרך כלל בצורת מחרוזות תוים. אך נתונים מספרלים אשר מלועדים לפעולות חיטוב חייבים לעכור הסבה אל צורת ה?יצוג הדרושה לפעולות חשבוניות (דצימלי, או בינרי). נתונים מספריים אחרים יכולים גם כן לעבור הסבה לפי הענין. מחרוזות הסבילות מי?יצגות תנאי כן, לא (0/1) או א0/תע0, והן משמשות בעיקר בפעולות לוגיות. ד ו ג מ א ו ת: המחרוזת כוללת צרוף כלשהוא של תוים או סביות, בהתאם לענין, המוצגים בין שני גרשים. תכונת אורך המחרוזת נקבעת על פי מספר התוים או הסביות אשר בין הגרשים. במחרוזת תוים מותר כל צרוף של תוים של השפה: *5-3'‏ 2צא' , '45.8' ,'טצטג-עד' , '6פג' - 259 - אס אחד מתוי המחרוזת הוא גרש יש לרשום אותו פעמיים, בצורה הבאה: 8' ירשם במחרוזת כ- 'מ''גי' במחרוזת סביות מותר כל צרוף של הספרות 0, 1 ובנוסף יש לרשום את האות 8 מימין לגרש הימני התוחם את המחרוזת: 5 , 100110'8' כאשר ישנה במחרוזת סדרת תוים או סביות החוזרת על עצמה אפשר לרשום כך: 'פג'(3) =*- 'פגפהפג' כלומר, מחרוזת תוי 88 מופיעה 3 פעמים. גורם הכפל מופיע בסוגרים לפני המחרוזת. לדוגמה: | )2('101'8‏ --- 101101'8! 77 נתונים מספריים הנתונים המספריים מייצגים ערכים המשמשים בפעולות אריתמטיות, והם כלוליםט בשתי קבוצות עיקריות: נתונים בינריים ונתונים עשרוניים. כל קבוצה כזו מחולקת לקכוצות משנה: הצגה בנקודה קכועה והצגה בנקודה צפה. הנתונים העשרוניים מוצגים ע"י רצף של ספרות עשרוניות, כל אחת בת 4 סביות. הנתונים הבינריים מציגים את ערכי המספרים בשיטה הבינרית ע"י רצף של סביות (0,1). מבנה המספר יכול להיות עם נקודה קבועה רמלונית. בשיטה זו רואים את המספר כמי שמכיל ערך שלם בלבד או מספר קבוע של ספרות מימין לנקודה. כל פעולה שתעשה עם המספר תתיחס להגדרת המקום של הנקודה, אשר אינה מופיעה בזכרון המחשב, אולם המהדיר "זוכר" היכן היא נמצאת (ולכן היא "דמיונית"). שיטת החישוב עם נקודה קבועה מקבילה לשיטת החישוב הידנלית. המספרים המוגדרים בשיטת הנקודה הצפה בנויים משני חלקים: מנטיסה ואקס- פוננט. שיטת ייצוג זו נהוגה בפעולות אריתמטיות בעבודות מדעיות בלבד. ד ו ג מ א רות: מספרים עשרוניים יופיעו בצורת כתיבתם, ללא תוספת, אך מספריט בינריים לרשמו בצורת כתיכתם בתוספת האות 5 מימין למספר. ‏ דיוק המספר נקבע על פ5י מספר הספרות שלו ומיקומה של הנקודה העשרונית. מספרים עשרוניים עם נקודה קבועה: ‏ 25.35 5- 175 מספרים בינריים עם נקודה קבועה: 1 8. 1 8 -. ₪ 9-00 אל - 260 - מספרים בשלטת הנקודה הצפה ילוגדרו כך: מספרים עשרוניים: 3 שערכו 100200 2+ שערכו 0.5 מספרים בינרלים: 5תץ ששערכו 8. 0 1110005 וכרעש‎ 8 נתוני תויות התויות מיועדות בדרך כלל לתת שם לפסוקים שיש לפנות אליהם במהלך התוכנית ע"? הוראות סיעוף. עם סלום הידור התוכנית מציינת התוית בדרך כלל כתובת ממשלת בזכרון שכה נמצאת הוראת המחשב. כאשר תויח מוגדרת כנתון - אפשר לשנות את ערכה במהלך התוכנית, ולפיכך אם ישנה הוראת סיעוף אל תוית כזו, יבוצע מדיל פעם סיעוף אל כתובת אחרת בהתאם לערכה המשתנה של התוית באותו זמן. תויות משמשות גם כשמות לנתונילט (156₪5 6858 +0 פ6ַהַהם) המופלעים בתוכנית. אלו י?כולים להיות נתונים בשדות בודדים או נתונים המאוגדילם בשדות במבנה רשומה. במקרה זה אפשר לתת שמות לרטומה כולה או לרלקים שלה בהתאם לצורך. ד ו ג ם אוה נתונ"ל תויות מוגדולם כמזקים. 2 היא נתון-תוית. ;0 :508 עז, שאגא, 555הכ22, 265, 571105 - הם נתוני-שדות ברשומה של פרטים אלישלים. קבועים ומשתנים נתונים בתוכנית יכולים להופיע באחת משת? צורות כמשתנה (185016זַ78) או כקבוע (5ם5958ת60). המשתנה הוא שם סמלי לכתובת זכרון אשר מכילה את הנתון ואשר ערכו, ובהתאמה - ערכו של המשתנה, עשוי להשתנות במהלך ביצוע התוכנית. בחירת השם הסמלי הינה ברשות המתכנת וכפופה לכללי כתיבת מזהים. קבוע הוא נתון המופיע בתוכנית בערכו הממשי ואינו ניתן לשינוי במהלך הביצוע. ‏ תכונות הקבוע משתמעות מצורת כתיבתו בתוכנית, כקבוע של מחרוזת תוים, - 26[| - .. -7-- ₪ר- קבוע מספרי או כקכוע תולת. הפסוק הבא מתאר ביטוי אריתמט? והוא מכיל משתנלם וקבועים: - א * ל.5 + צתק >= [א 1א, דתת , א הם משתנים; 5.5, 10.5 הם קבועים. משמעות הפסוק כמשמעותו באלגברה, כאשר התוצאה הסופית מתקבלת במשתנה 1א. בניגוד לקבועים המוגדרים כתוכנית, יש צורך להגדיר במפורש את התכונות של המשתנים, וזאת נעשה ע"?* הפסוק 2₪01898. מטרת ההגדרה להציג את התכונות בזמן הידור התוכנית כד? שהמהדיר יוכל להשתמש בהוראות המתאלמות בהתאם לסוג ואופי הנתונלם. פסוק ההכרזה - 280185 - לנתונים הכרזה של תכונות נתונים נעשית ע"י פסוק ההכרזה 014%8מכ (או בקיצור ע6כ). אפשר להגדיר תכונות נתונים בקלט ופלט גם בצורה שונה, עליה נעמוד בהמשך. הגדרת התכונות של הנתונ?ם נעשית ע"? מלות מפתח של השפה. מבנה פסוק ההכרזה: ; ..., (תכונות 2) (שם 2) , (תכונות 1) (שם 1) מתגת6טע "שם 1", "שם 2" הם שמות משתנים בתוכנית. "תכונות" הם רשימת מלות המפתח (אחת או יותר) המגדירות את תכונות המשתנה. בין מלות המפתח לש להפריד במרוות אחד לפחות. בין הגדרת תכונות של משתנים לש להפריד בפסיק. בסיום הפסוק יש לרשום נקודה-פס?ק. הערה: את פסוק ההכרזה אפשר לרשום בכל מקום בתוכנית, גם בין פסוקי הוראות. דוגמה: , (8) תאא01מפ פפא1ע 24977 םתג61סס , (30) 030788 א556912710ס ((6,2) 801% סמאנ1ץ מסנתק בדוגמה זו 9817ַ2ת, 98105ת2, א550812710כ הם שמות משתנים המוגדרים בפסוק ההכרזה. התכונות הן: סוג הנתון - ע4א501כ פפא1ץ, 03840758 ובסוגרים - מספר התוים/סביות של המשתנה. תכונות משותפות פסוק ההכרזה מאפשר להכריז על קבוצת משתנים בעלי תכונות זהות ללא צורך בחזרה על תכונותיו של כל משתנה. מבנה פסוק ההכרזה הוא: = 262 - ,(תכונה א) (... שם 3 ,שם 2 ,שם 1) את 6טכ ; ... (תכונה ב) (שם) לדוגמה: (25) 08440788 (70087א ,1ש58) מתהסטס הכרזת תכונות משותפות יכולה להעשות בצורות נוספות אשר לא נעמוד כאן על כולן. ערך התחלתל התכונה 41זד17א1 (או בקיצור 17א1) אשר מוזכרת בפסוק ההכרזה מציינת ערך התחלתי (קבוע) אשר ינתן למשתנה. מבנה ההוראה ; (קבוע) ע1718א1 (תכונה) (משתנה) שת סט קבוע אשר מופיע בתכונת 111א1 יכתב לפי כללי כתיבת קבועים (ראה בהמשך). לדוגמה: ((0) דזאז (3) עגא01טס פפא1ת 541 מפהוסטס ;('אאסנ') 7ד1א1 (א) אמדז6בתהת6 פהא כלומר, הערך של משתנה 50% ?היה אפס, והערך של ₪עאא יהיה א108. בטלב זה נעמוד בעיקר על הגדרת התכונות של שני סוגי נתונים: מחרוזות תוים ימספרים עשרוניים עם נקודה קבועה. הגדרת תכונות מחרוזות מחרוזות אפשר להגדיר כתוים - 08480758 (או בקיצור 6085) או כסביות -517. תו במחשבי י.ב.מ. הינו צרוף של 8 סביות המוצגים ב-66ץפ (בית) אחד בזכרון המחשב, והוא יכול, כנתון, להכיל צרופים נוספים לאלו המותרים והמוכרים בקבוצת התוי?ם של השפה. נתונים המוגדרים כתוים הינם במבנה מתאים להדפסה ואינם דורשים כל עריכה שהיא. הגדרת המחרוזת נעשית בפסוק ההכרזה 85א₪01ע בצורה הבאה: 6 ן = (..., שם 2, שם 1) מאה6טס כאשר "שם 1", "שם 2" וכו' הם שמות משתנים, ו-ם הוא מספר עשרוני המציין את מספר הסימנים במחרוזת אחת או בכל אחת מהמחרוזות הנמצאות ברשימת המשתנים. לכל המח- רוזות ברשימה ישנן אותן התכונות. לדוגמה פסוקי הכרזה עם משתנה מחרוזת אחד: ; (25) 014040708 שאגא מאה 6מכ - 263 - - שדה 0₪/אא מכלל 25 תוים. ; (18) 817 000885 מתהו0מכ - שדה מחרוזות בינרי 060285 מכיל 18 סביות. לדוגמה פסוקי הכרזה לקבוצת משתנים בעלי תכונה משותפת. בפסוק הכרזה אחד אפשר לכלול שתי הגדרות שונות: ;(4) 817 (א45 ,0025) ,(30) תג03 (55מתסכ2 ,שאהא) מתגוסטס - המשתנים ₪/אא ו-4229255 הם מחרוזות תוים באורך 350 כ"א, - המשתנים 0028, 445% הם מחרוזות סכיות באורך 4 כ"א. שים לב שלכל המשתנלם באותה רשימה יש תכונות זהות. אם אורך המחרוזת אינו קבוע, מציינים בפסוק ההכרזה את האורך המקסימל? האפשרי ואת מלת המפתח 6א1צתט0. לדוגמה, שדה 4228555 אשר יכול להכיל עד מקסל- מום 50 תוים יוגדר בצורה הבאה: ;6אזצתגט (50) 035 55מתסכג מתגסטס הגדרת ערך התחלתי למשתנה יכול להעשות ע"י התכונה ג11זא1, לדוגמה: (('א1עפסא') ד1א1 (6) תגא0 [עעתך5 מתג6טס ; (10110'8') צעזא1 (5) 511 א5גא אם הקבוע גדול באורכו מאורך המשתנה - יתווספו תוי רווח מימין, ואם הוא ארוך לותר - יקוצצו תוים מימין. אפשר להשתמש בגורם הכפלה כאשר תו או מספר תולם חוזרים במחרוזת, לדוגמה: ; ('50(''32)) (100) 0848 גאסטפ ספ כלומר התוים 45 יהחזרו 50 פעם במשתנה 206% באורך 100 תוים. תכונה נוספת למחרוזות נקבעת על ידי מלת המפתה 1010%88ע2, אשר מיועדת בעיקר להגדרת נתונים מספריים הערוכים להדפסה, או לקלט נתונים. את ההסבר של תכונה זו נדחה לפרק הדן בעריכת נתונים. תכונות של נתונים מספריים לנתונים מספריים המשמשים בפעולות חשבוניות ישנם המאפיינים הבאים: וזאאזססת - מספר המוצג בשיטה עשרונית (בקיצור - 2860). או צפגאזת - מספר המוצג בשיטה בינרית (בקיצור - אך5). פעאזץ - מספר בשיטת הנקודה הקבועה או זע - מספר בשיטת הנקודה הצפה וגם:ם661810מק (דיוק) - מספר הספרות של המספר. בשיטת הנקודה הקבועה מציינים - 268 - גם את מספר הספרות שמימלן לנקודה. לדוגמה: מספר עשרונל 1 שערכו 38795.46 המכיל 7 ספרות מהן 2 ספ יח עשרוניות יוגדר כך: ; (2, 7) סשאדצק ,6141 .10141 מתהסטכ כאשר המספר א?לנו מכ?ל ספרות עשרוניות אפשר להשמיט את המספר המציין את הספרות העשרוניות. הגדרת שדה בינרי: (2, 20) פמאזץ צתגאז5 מאקא ברירת המחדל ב-1/זת אין צורך להגדיר תמיד את תכונותיו של כל משתנה בתוכנית. תכונות של משתנ?ם שונים יכולות להיות מובנות מתוך ההקשר או מצורת כתיבתם בתוכנית. במקרים מסוימים אפשר להגדיר רק חלק מהתכונות, מכיון שמלכתחילה נקבעה להם תכו- נה משלימה אם לא מגדירים תכונה אחרת. כאשר לא מגדירים את כל תכונות המשתנים, מניחים שתכונות מסוימות מיוחסות להם. ‏ זוה? "כרירת המחדל" או "ח0ס1םקס 16ט46+8". א. כאשר אין הגדרת תכונות למשתנה, נקבעות תכונותיו לפ? האות הראשונה של השם: - אם האות הראשונה היא אחת מהאותיות 1 עד א המשתנה יוגדר כ-כטא1ץ צתגא81 (כמו בפורטרן). למשל פתפתעא, 18, 345א. - בכל שאר המקרים הגדרת המשתנה היא 087ק ‏ גא61מכ. אם מציינים רק מגאאת6טע או צתפגאז2, ההנחה היא שהמספר מסוג דאס0עק. ג. אם מציינים רק פעאזץ או 1047ת2, ההנחה היא שהמספר מסוג א61כ. קיימת ברירת מחדל גם עבור דיוק המספרלם, השימוש בברירה זו אינו מומלץ למתחילים. בהמשך נדון בנתונים עשרוניים בשיטת הנקודה הקבועה. ‏ שיטת ?יצוג זו עונה על השמושים ביישומים ניהוליים, והיא גם נוחה להצגה. המשתמש בשפה ליישומים מדעיים יבחר בדרך כלל את השיטה הבינרית בנקודה קבועה או בנקודה צפה. הגדרת נתונים עשרוניים עם נקודה קבועה מבנה הנתונים שיטת ההצגה העשרונית המוזכרת כאן היא 81ח2661 6%66ע2, שבה מקבצים שת?ל ספרות לתוך 6מצפ (בית) אחד בן 8 סביות. חצי הבית הימנלי ביותר של השדה מכיל את הסימןו של המספר. מכיון ששדה יכול להכיל מספר שלם של בתים יש לחשב את גודלו - 265 - לפי מספר הספרות בצורה הבאה: מחלקי?ם את מספר הספרות ב-2 ומוסיפים 1. אם מספר הספרות היה איזוגי ינוצל כל אורך השדה, אך אם היה זוגי - תתוסף הספרה אפס בחצל השמאלי של הבית השמאלי בשדה. בשדה אין נקודה עשרונית פיזית (כלומר - תו). ידיעת מקומה של הנקודה הינה באחריותו של המהדיר השומר נתון זה בטבלה שהוא מכין. לדוגמה: אורך השדה - 3 בתלם. בית 1 בית 2 בית 3 ייצוג כל ספרה או סימן הוא ב-4 סכביות. מבנה פסוק ההכרזה הצורה הכללית של פסוק ההכרזה עבור משתנים עשרוניים עם נקודה קבועה: ((6,ת) 01% פעא1ת (שם-משתנה) | שתגת6טכ ; ... ,סעאדץ (6,ת) 261% (שם-משתנה) בפסוק הצהרה אחד אפשר להצהיר על יותר ממשתנה אחד. לאחר "שם-המשתנה" הנקבע ע"? המתכנת, תבוא רשימת תכונות, בסדר כלשהו. רשלמה זו המכילה את מלות המפתח פפא1ע ו-501%כ2 וכן זוג מספרים עשרוניים בתוך סוגריים זוג המספרים קובעים את דלוק הנתון בזכרון. | ? מציין כמה ספרות יכיל הנתון, ו-ף מציין כמה מהספרות הן מ?מין לנקודה העשרונית. הנקודה העשרונית אינה חלק מן הנתון עצמו, דהיינו אינה תופסת מקום פיזי בזכרון - היא "נקודה מדומה", או "נקודה לוגית". "זכירת" מקום הנקודה העשרונית בכל אחד מן הנתונים נעשית ע"י המהדיר. בין מלות המפתח בפסוק ההצהרה המגדירות את התכונות *היה לפחות מרווח אחד. אם רוצים להצהיר על ?ותר ממשתנה אחד בפסוק ההצהרה אחד יש להפריד כל הצהרה ע"? פסיק. ערכו המקסימלי? של ת - מספר הספרות בשדה - המותר במחשב *.ב.מ./370 הוא 5. ערכו של ף אלנו מוגבל כפי שיוצג בהמשך. להלן מספר דוגמאות לאפשרויות שונות של הכרזת הנתונים: דוגמה 1: ; (7,2) ג61%סס פשא1קע מ6גתפטג מתה61מס המשתנה 888408 מוגדר כעשרוני עם נקודה קבועה ודיוק (7,2). דהיינו, המספר המירבי של ספרות ב-4/88405 הוא 7, מהן שתיים מימין לנקודה העשרונית. =. בש ' - 266 - כל נתון שיועבר למשתנה 4728265 יוסב למבנה המתאים לנתון עשרוני עם נקודה קבועה. החלק השלם של הנתון יועבר ל-4/08208₪ ספרה ספרה מימין לשמאל, החל מן המקום המדומה של הנקודה העשרונית. השבר העשרוני יועבר ב-47284068 ספרה ספרה משמאל לימין, החל מן המקום המדומה של הנקודה העשרונית. אם מספר ספרות השלם קטן מזה המ?ועד, יושלם המקום הנותר באפסים מובילים אם מספר ספרות השבר קטן מן המקום המיועד, יושלם הנתון באפסים נגררים למשל, אם נעביר ל-2/28405 את המספר 1234.5, יכיל השדה את הנתון בצורה שים לב (משמאל). (מימין). הבאה: +01234,50, כאשר החץ מורה על המקום הלוגי של הנקודה העשרונית. שבשדה סה"כ 8 תוים: 7 ספרות+סימן, וארכו - 4 תוים. אם מספר הספרות של החלק השלם ו/או של השבר העשרוני גדול מן המוגדר, ל?קו- צצו ספרות משמאל (מן החלק השלם) או מימין (מן השבר). למשל: אם נעביר ל-4/08468 את הנתון 123456.789-, יהיה ערכו של 208868 לאחר ביצוע ההשמה 25456.78-. כתוצאה מאובדן ספרות של החלק השלם (ספרות משמעותיות) מתקבל מצב-הריג (ת0ס61ק66א6). בזמן ביצוע התוכנית. אפשר להתנות עצירת התוכנית או סיעוף לשגרת בדיקה במצב כזה. דוגמה 2: ;זססת (6) פעאזק סדג ,פמא1ת (6,0) עתגאזסטכ ד57שא2דא1 פתגסטס למשתנים 57ת758א1 ו-5718 דיוק זהה - 6 ספרות שלימים - למרות צורת הקידוד השונה. אפשר לותר על ף אם הנתון שלם (כלומר 0 = %). דוגמה 3: ; (3-,4) 14 0מ פעא1ץ 64584 מתה61טס ערך שלילי של ף מציין שהמקום הלוגי של הנקודה העשרונית הוא שלשה מקומות מימין לספרה הימנית של הנתון. זהו מצב שבו שומרים רק את הספרות החשובות של המספר והספרות הימניות הן תמיד אפסלם. למשל, המספר 645% הוא 1234 אולם ערכו האמלתל הוא 1234000. בנושא זה ראה הדיון במספרים בשיטת הנקודה הצפה (בחלק פורטרן). דוגמה 4: ;ונעת (2,5) פשאזת סאטס1טנק 6888מכ בדוגמה זו, גדול ערכו של ף מזה של ?. הדבר מציין שמקום הנקודה העשרונית הוא 6 - 267 - מקומות משמאל לספרה הימנית של הנתון. כלומר, כאן נשמרות הספרות החשובות של המספר (שערכו קטן) והספרות משמאל הן אפסים. למשל, המספר בשדה פאספזט1כ הוא 12 אולם ערכו האמית? הוא 0.00012. ראה גם הדיון במספרים בשיטת הנקודה הצפה (בחלק פורטרן). תכונות של קבוע?ם מספרי?ים קבועים עשרוניים עם נקודה עשרונית קבועה מוצגים ב-212/1 בדרך המקובלת, לדוגמה: 9, 23.56-, 495.0. תכונותיהם של מספרים אלו נובעות מצורת הצגתם בתוכנית: פעאדעץ עגאת6פכ. מידת הדיוק נקבעת לפי מספר הספרות, לדוגמה: דיוק הקבוע 9 הוא (1), דיוק הקבוע 23.56- הוא (4,2), והדיוק של 495.0 הוא (4,1). הכרזת ערך התחלתל אחת מתכונות המשתנים הינה הערך ההתחלתי שלהם. ההכרזה נעשית ע"? התכונה בכבדוגמה הבאה: ((99.99) ע13דזא1 (4,2) עגא61טת פעאצץ אגא מתוזסטס ; (0) ד1א1 (6) עגא61מפ פפאצע פאקא כלומר, אגא יקבל את הערך 99.99 והמשתנה 5א0א יקבל את הערך 000000 (6 אפסים). שים לב שהקבוע הרשום כתכונה של "הערך ההתחלתי" צריך להכתב לפי כללי כתיבה של קבועים מספר?ים. - 268 - פרק 3: ארכיבי תכ[!ת כסיסיים ביטוילים חשבוניים ביטוי (ח68810:ק6%) מכיל צרוף של קבועים, משתנים ואופרטורים. ק?למלם בטויים מסוגים שונים, ואחד מסוגים אלו הוא הביטול החשבונ? בו האופרטורים מייצגים את הפעולות החשבוניות. הערכה של ביטויים (ם65810צקאע 0% תסדסַאג1בטם) חישובים נעשים ב-1/ת באמצעות השימוש בחמש פעולות החשבון הבסיסיות: חיבור (+), חיסור (-), כפל (*), חילוק (/) ופעולות מעריכיות --העלאה בחזקה (**). השימוש באופרטורים של כפל, ח?לוק ופעולה מעריכית, זהה לחלוטין לזה הנהוג בחשבון, אך לכל אחת מפעולות ה-(+) וה-(-) עשויים להיות שני מובנים: ציון סימן של אלבר או קישור של שנ? איברים. כאשר האופרטורים (+,-) משמשים לקישור של שני איברים בביטוי חשבוני, למשל 24+5, נקראת פעולה זו םס851ל6קס %1%ת1. כאשר משתמשים באחד משנל אופר- טורים אלו משמאל לאיבר בודד של ביטוי, כגון א-, נקראת פעולה זו תכ851מ6קס א611%צק.. לדוגמה: ה-(+) בביטוי א;**א-צ+ הוא א6+1צק וכזה הוא ה-(-) בביטוי הבא: 3-**ג*2. בביטוי צ-+א להיה ה-(+) א1%+ת1 וה-(-) א6+1ץק. ניתוח והערכה של ביטוי חשבוני נעשה בתהליך הבא: הביטוי כולו, החל מהתו הראשון שמימין לסימן השויון וגמור במפריד (;) שבסוף הפסוק, נסרק משמאל לימין כדי לקבוע באיזה פעולות משתמשים ובאיזה סדר. הערכת הבלטוי מבוצעת על פ? סדר עדיפות קבוע. הפעולות בעדיפות ראשונה מתבצעות לפ? הסדר מלמל?ן לשמאל, והפעו- לות בעדיפויות אחרות - משמאל לימין: עדיפות ראשונה - העלאה בחזקה (**), א6+1צק (+,-) עדיפות שניה - כפל (*), חילוק (/) עדיפות שלישית - א1+ת1 חיבור (+) וחיסור (-) תוצאות הביניים של התהליך נשמרות עד להשלמת הערכת כל הביטוי וקבלת התוצאה הסופית. דוגמת פסוק עם ביטוי חשבונל: סדר העדיפות הוא: - (א6+1צק) ,*(כפל) ,+(חיבור). 4 = 5 + )-0( * 3 = 289 = דוגמה נתון הביטוי הבא. יש לחשב את ערכו. ;א*א/2-4*01**כ/םּ*א*>+4**ץ- | 1) פעולות בעדיפות ראשונה בביטוי הם צ-, 4**צ- ו-2**ע. פעולות בעדיפות רא- 1 שונה יבוצעו מימין לשמאל, ומכאן, ראשית יבוצע 22 ותתקכל התוצאת (החלקית) 1ם. 2) הפעולה הבאה בעדיפות ראשונה שתבוצע הליא "ץצ והתוצאה - 52. 3 הפעולה האחרונה בעדיפות ראשונה היא הפיכת הסימן של 62. 8 64) כיון שלא נותרו פעולות בעדיפות ראשונה, יחזור הפיקוח לתחילת הביטוי כדי לבצע את הפעולות בעדיפות שניה משמאל לימין. ראשית תתבצע המכפלה א*% ותוצאת | הביניים תשמר ב-53. 5 53 יוכפל ב-5 והתוצאה תשמר ב-54. 66 ₪4 ל*חולק ב-61 ("פ) התוצאה תשמר ב-55. 7 בשלב זה תתכצע המכפלה 4*61 והתוצאה תשמר ב-56. 8 6 לחולק ב-א והתוצאה תשמר ב-7ם8. 9 ₪7 יוכפל ב-א והתוצאה תשמר ב-58. 0) מאחר שאין יותר פעולות בעדיפות שניה יחזור הפיקוח לתחילת הביטוי לביצוע הפעולות בעדיפות שלישית, משמאל לימין. ראשית לחובר 52 ל-₪5 והתוצאה תשמר ב-59. 1) 68 יחוסר מ-69 והתוצאה תשמר ב-610. 2) הפעולה האחרונה היא השמת התוצאה 510 למשתנה המכיל את התוצאה הסופית של הערכת הביטול. השימוש בסוגריים כאמור, הערכת הביטוי תתבצע לפי סדר כתיבתו ולפי כללי? העדיפות לביצוע הפעולות השונות. לעתים יש צורןך לשנות את סדר ביצוע הערכת הביטוי, ואז משתמ- שילם בסוגריים. הסוגרלים מחלקים את הביטוי השלם לביטויים חלקיים ומאפשרים הערכה של כל חלק בנפרד. התוצאה הסופית היא שילוב של כל התוצאות החלקיות. אפשר לקבוע סוגריים מוכלים בתוך סוגריים. בכל מקרה יבוצעו הסוגריים הפנימ?ים ביותר לראשונה. הערכת ביטוי בתוך סוגריים נעשית לפי כללי הערכת ביטויים חש- בוניים, ותחשב כתוצאה חלקית לצורך המשך העיבוד. נחזור לדוגמה הקודמת כדי להדגים את השימוש בסוגריים. נוסיף לביטול שבדוגמה הקודמת סוגריים ועתה יכתב כך: , ; (א*;)/(2-4*01**(ק/ם*א*ת ))+4**ץ- - 270 - סדר הערכת הביטוי? *היה: 1) 4**צ- יבוצע ראשון והתוצאה תשמר ב-1ם. 2) הבלטוי? החלק? בסוגרי?ים הראשון משמאל יסרק כדי להחליט על סדר ההערכה. בתוך סוגריים אלו ישנו ב?טוי חלקי נוסף, גם הוא בסוגריים ולכן הוא יוערך בתחילה. תוצאת הביטוי כ/פ5*א*% תשמר ב-62. 3) הפעולה הבאה שתתבצע היא 62**2, התוצאה היא 3ם. 4) 4 יוכפל ב-61 והתוצאה תשמר ב-54. 5 64 יהחוסר מ-53 והתוצאה תשמר ב-55. בשלב זה סיימנו אח הטיפול בחלק הביטול הראשון, אשר ערכו שמור עכשיו ב-5ם. 6) חלק הביטוי הבא הוא א**, מכפלה זו תתבצע והתוצאה תשמר ב-56. 7 צורת הביטוי כעת הלא 55/56+ 51. תחילה יבוצע 55/56 והתוצאה תתוסף ל-61 ותועבר למשתנה המכיל את התוצאה. בביטויים החשבוניים אפשר להשתמש בסוג אחד של משתנים או במשתנים מסוגים טשונים. שימוש במשתנים מסוג אחד מפשט את התוכנית ומעלה את אמינותה. מאידך, קיימים מקרים בהם חובה להשתמש בביטוי אחד במשתנים מסוגים שונלם. המהדיר מזהה עובדה זו ועורך "הסבה" בין סוגי הביטויים השונים בזמן ההידור או בזמן ביצוע התוכנית. ההסבה תבוצע לפי תכונות המשתנה המקבל את התוצאה. פסוקי ההשמה העברת נתונים בזכרון המחשב נעשית ע"? השמה (%ח6מת88518) של ערך ביטול (ם68810זקא6) למשתנה מסויים. הביטוי שאת ערכו מעכירים למשתנה יכול להיות קבוע, משתנה או ביטוי המייצג פעולות חשבוניות. פסוק ההשמה - 6ח8%86006 5מ6משחק3861 - הוא הפסוק העלקר? המשמש למטרת העברת נתונים, והוא מאופיין ע"? סימן ההשמה (=) ואינו מכיל מלת-מפתח כלשהלא. משמאל לסימן ההשמה מותר לרשום רק משתנה. | שימושים של פסוק ההשמה: א. העברת ערך של קבוע מספרי למשתנה ‏ ;57.3 = מ0זפק. ב. העברת ערך של קבוע מחרוזת: ‏ ;'2צא' = 6008 ג. ‏ העברת ערכו של משתנה 1א1 למשתנה 50% ;1א1 = 508%. המשתנה 1א1 נשאר ללא שינוילי. ד. העברת ערך ביטו?: ‏ ;11+12(/3)= ג7101. הערך של תוצאת החישוב של הבלטוי החש- בוני המופיע בצד ימין של סימן ההשמה מועבר למשתנה 784כ7. אפשר להשתמש בפסוק השמה אחד בכדי לבצע העברת נתונים ליותר ממשתנה אחד, = 27| - לדוגמה, ;פאשא = אג ש ,1א ערכו של 5א0א *ועבר לשני המשתנים הרשומים משמאל לסימן ההשמה, וזאת כאילו ה?ינו כותבים: ;אא = 1א ;מאשא = אה טח תכונות הביטוי שמימין עשויות להיות שונות מאלו של המשתנה שמשמאל לסימן ההשמה. לכן, עשוי פסוק ההשמה לשמש גם למטרות הסבה ועריכה. תרגיל: יש לחשב את הערך של: (2+6 ) - 40708ץ * 5 טטז ל נתוניס ערכ? המשתנ?ם: 207108 שוה ל-22, 4 שוה ל-18, פע1גט שוה ל-2. = דפס התוכנ?ת: ]2 = 26108ק 2 = 1 ;2 = שטעוהל ((2+6 ) - 0708גע * 5) = צעטפעת = ₪ הסבר: שורות 1, 2, 3 הן פסוקי השמה המקנים לשלושת המשתנים את הערכים לפי תנאל? הבעיה. בשורה 4 ישנו פסוק השמה המכיל ביטוי? חשבוני. שים לב לצורת הצגת הבל- טול החשבוני בתוכנית, ולסוגריים התוחמים את המונה כולו לצורך חילוק במכנה. בסיומו של כל פסוק ישנו המפריד נקודה-פסיק. כתיבת הפסוקים חופשית ורווחים יכולים להופיע בכל מקום שהוא בין מזהים ומפרידים. . -- קלט פלט בסיסי בשם הוראות קלט/פלט (בקיצור - ק/פ) מכנים את ההוראות הגורמות את מעבר הנתונים בין אמצעי אחסנה (של נתונ?ם) חיצוניים כגון, סרטים מגנטיים, תקליטים מגנטיים, כרטיסים מנוקבים, נליר ומסופים לבין זכרון המחשב. ‏ יש ב-0/1ק מגוון רחב של הוראות ק/פ והשלמוש בהן מותנה ביישום בו משתמשים. 272 - ביישומים מדעיים המטפלים בכמויות קטנות של נתונים במבנה פשוט נשתמש בהו- ראות מסוג 1/0 0:16:66 ח55+68. ביישומים נלהוליים, בהם גדולה בדרך כלל מור- כבות הקכצים ויש חשיכות רבה מאד לצורת ארגון הנתונים ולאופן אחזורם, נשתמש בעיקר בהוראות מסוג 1/0 0160566 86606. נדון בתחילה בהוראות 1/0 666ת0:16 ת68ץ:5 כיון שהן פשוטות יותר והשימוש בהן אינו דורש הכנות רבות. הוראות קלט/פלט בשיטת 68₪צ:5 מבצעות, בנוסף לפעולה העלקרית שלהן, גם פעו- לת הסבה של נתונים מספריים. בקלט, מוסבים נתונים מספריים לפ? תכונות המשתנים המפורטים בהוראה. בפלט, מוסבים המספרים מהצורה שבה הם מוצגים במשתנים אל מח- רוזת תוים הניתנת להדפסה. מחרוזות תוים נשארות ללא שינוי (מחרוזת תוים מוג- בלת בגרשים). קיימות שלוש צורות להוראות ק/5פ מסוג 5::68₪: א. העכרת נתונים לפ? שם-משתנה פטק5פט0/:טקה1 458-21:66566כ. שיטה זו מיועדת להעברת מספר נתונים קטן, כאשר כל נתון מופיע בשמו ובערכו. ב. העברת רשימות נתונים פטק:ט0/:צטקת1 215666860-:18/. בשיטה זו אפשר לבצע קריאה וכתיבה של נתונים רבים, ברשימות ערכים בלבד. ג. העברת נתונים במבנה פטקפט0/+טקחת1 015-01:66666ע. שיטת ק/פ זו מאפשרת שליטה על מבנה הנתונים בקלט ובפלט, בכל הוראה והוראה. כל הוראה צריכה לכלול את הפרטים הבאלם: א. שם הקובץ של הריט או קובץ הפלט. בדוגמאות הבאות נשתמש בקבצים הסטנדרטלים של מערכת ההפעלה לקלט ופלט, קורא-הכרטיסים והמדפסת, אשר אי?ן צורך להגדירם במפורש בהוראה. המהדל?ר בוחר בהם כברירת-מחדל. ב. רשימת המשתנים אליהם לועברו הנתונים מקובץ הקלט או שמהם ?ועברו הנתונים אל קובץ המלט. תכונות המשתנים מוגדרות בנפרד. בהוראות מסוג 2858-215:606568 אפשר לותר על רשימה זו, כפי שלוסבר בהמשך. ג. מבנה הנתונים בקלט או בפלט. פרמטר זה דרוש רק בהוראות מסוג 1:66566כ-:41ם. בפרק זה נדון בהוראות מסוג 2858 ו-156 בלבד = 213 > קלט/פלט בשיטת אדגת הוראות קלט פלט בשילטת 2868 (1/0 03:8-21:6060566) מאפשרות העברת נתונים לפי שם משתנה. רשימת הנתונים בקלט ורשימת הנתונים בפלט כוללת את שם המשתנה ובצמוד לו, במבנה של פסוק השמה, את ערכו של המשתנה. ערך המשתנה רשום כקבוע. ק ל ט המבנה הכללי של הוראת קלט מו הסוג הנ"ל הוא כדלקמן: ; (רשימת משתנים) 2271 657 דוגמה להוראת קלט: ; (צתסדאטטא1 ,6458 ,₪גא) בד 657 הוראה זו תגרום לקריאת שלושה נתונים מתוך קובץ קלט סטנדרטי של מערכת ההפעלה אשר מוגדר בדרך כלל בכרטיסים מנוקבים. כאשר רשימת המשתנים אלנה כלולה בהוראת 681, תכוצע קרלאה של כל המשתנים הנמצאלם ברשימת הנתונים בקלט, כפי שיוסבר להלן. הנתונים יופיעו בכרטיס המנוקב במבנה הבא: 2 אתא ,6258=34593 ,'48602'=שעהא דהיינו, הנתונים מנוקבים במבנה של פסוק? השמה | המבנה חופשי למד? וחלים עליו כללי הכתיבה הבאים: א. בין נתון לנתון ברשימת הנתונים יבוא מרווח אחד לפחות ו/או פסיק. ב. שמות המשתנים בהוראת הקלט וברשימת הנתונים בכרטיס צריכים להיות זהים. שמות שאינם זהים לא לשתתפו בפעולת הקלט, כלומר נתונים אלו לא יקראו לזכרון המחשב. אולם כאשר ההוראה אל?נה כוללת שמות-משתנים, תתבצע קריאה של כל הנתונילם שברשימה. ג. בסוף רשימת הנתונים המתא?מה להוראת קלט אחת יבוא המפריד (;). הרשימה לכולה לכלול יותר מכרטיס אחד. ד. סדר הופעת הנתונים ברשימה, אלנו חליב להיות זהה לסדר כתיכת המשתנים בהוראה פ ל ט המבנה הכללי של הוראת פלט מן הסוג הנ"ל הוא כדלקמן: ; (רשימת משתנלם) 247 דטק - 278 - דוגמה להוראת פלט: ; (שטזהט ,(מש6זתק ( מאעאא 4תדנ) דפ דטק הוראה זו תגרום לכתיבת שלושת הנתונים הנ"ל על קובץ הפלט הסטנדרט? של מערכת ההפעלה המוגדרת בדרך כלל כקובץ הדפסה במדפסת. הנתונלם יודפסו ברשימה במבנה הבא, לדוגמה: 5>עט 8108=20.5ת 'דדתגת 1ש54'=שעגא אמדך שם המשתנה וערכו יודפסו במבנה של פסוק? השמה, אשר דומה למבנה רשימת הנתונלם בקלט. המשתנים וערכיהם מודפסים בזה לאחר זה בשורת הדפסה אחת או לותר, בטורים קבועים: 1, 25, 49, 23, 97, 121. בסוף רשימת הנתונים המודפסים מופיע המפריד "נקודה-פסיק". קלט/פלט בשיטת 157 הוראות קלט/פלט בשיטת 121571 (1/0 66666ש1כ1215%5-2) מאפשרות העברת נתונים לפי רשימות של ערכים. הוראות אלו דומות להוראות קלט/פלט בשיטת 2858. ההבדל הוא בכך שכאן מופיעים הנתונים ברשימות הקלט והפלט בערכיהם בלבד ללא שמות המשתנים. שמות המשתנים נמצאים בהוראות התוכנית בלבד. בשילטת 1566:866ע115%5-2 יכולים להופיע ברשימות הקלט והפלט קבועים מסוג *ספרים או מחרוזות תוים כמו בשיטת 35:8-21566:66כ2. בשיטת 11586 אפשר לציין רטשימת המשתנלם בהוראה גם ביטויים חשבוניים, כפי שיוסבר בהמשך. המבנה הכללי של הוראות ק/פ בשיטה הנ"ל הוא כדלקמן: ; (רשימת משתנים) ‏ 12151 687 ; (רשימת משתנים) 12157 צשק ק ל ט "רשימת המשתנים" בהוראת ‏ 621 היא רשימה של משתנים שאליהם יש לבצע השמה של הערכים המופיעים ברשימת הקלט בקובץ. המשתנים ברשימה מופרדים האחד מן השנל ע"י פסיק (,), כבדוגמה הבאה: ; (000₪ ( צ717א004 ,פתפוטא) 2157 607 הוראה זו תגרום לקריאת שלושה נתונים מקובץ הקלט והשמתם במשתנים שברשימה בסדר בו נרשמו. | דהיינו, הנתון הראשון בקלט יושם ב-אמפאטא השני ב-צצדצאגטס0 - 275 - והשלישל ב-060258. ביצוע הוראת הקלט יסתיים בנקודה זו, כיון ש"רשימת-המשתנלם" חמה אם רשימת הנתונים בקובץ הקלט תהיה במבנה הבא ....,'456' ,213 ,9532 ואז לאחר ביצוע הוראת הקלט, יהיה תוכן המשתנה תממטא-9532, תוכנו של צצזעאאט להיה 213, וזה של 6025 יהיה '256'. מבנה הנתונים בקלט בשיטת 1151 שונה ממבנה הקלט בשיטת 12כ. באחרון הקלט הוא במבנה של פסוקי השמה דהלינו: שם המשתנה, סימן ההשמה וערך המשתנה. לכן, אין גם חשיבות להתאמה בין סדר רשימת הנתונים בהוראת הקלט לבין סדר הנתונים בקלט עצמו. בשיטת 1/0 66868ש11586-21 לא מוזכר שם המשתנה בקובץ הקלט ולכן ההתאמה נעשית לפ? סדר רשימת המשתנים והערכים שבקלט. בין נתון לנתון בקלט *כול לבוא המפריד פסיק (,) או מרווח אחד לפחות. פ ל ט רשימת הנתונים ברשימת הוראת הפלט נבדלת מזו של הוראת הקלט בכך ש"הנתון" יכול לבוא בכמה צורות: קבוע, משתנה, ביטוי. הפלט מכיל תמיד ערך סופי ולכן, אם "הנתון" הוא קבוע יכתב ערכו של הקכבוע, אם "הנתון" הוא משתנה - *כתב ערכו הנוכח? של המשתנה, ואם "הנתון" הוא ביטוי (כלשהו), ערכו יחושב והתוצאה תועבר לפלט. דוגמה: ; (4(*3-צ) ,122.25 ,א) 0152 צטק הוראה זו תגרום להדפסת שלושה נתונים: הנתון הראשון יהיה תוכנו הנוכחי של המש- תנה א, הנתון השנ?* שיכתב ?היה 122.25, והנתון השלישי שיכתב יהיה תוצאת הבלטו?ל החשבונ? 4(*3-צ). ההבדל השני, אם כך, בין 1/0 1185-21:66566 לבין 0 2458-21:66666₪ הוא בכך שהאחרון מגביל את רשימת הפלט למשתנים בלבד. הנתונים יכתבו בקובץ הפלט במקומות קבועים בשורה, כמו ב-1/0 258-2166666 אולם בהבדל נוסף. כאן לופלע רק תוכן הנתון ללא שמו. תרגיל לש לחשב ממוצע של 4 מספרים הנתונים בכרטיס מנוקב. השתמש בשיטת 0 1:66866כ-464כ. הקלט: = 1=0 20= 0=א התוכנית: בשלב זה ננ?ח שהמשתנלם יופיעו בזכרון עם תכונות לפי? ברירת המחדל, * 276 - לכן אפשר להמנע מהגדרה מפורשת שלהם. ; (א341) 5א710ק0 תתטפע06תק :2/0408 ; (%,1,א,א) 2474 0 ; 6 / (%+,1++א) =2408 ; (פט8) 414 דטק ; ספאם א. הפסוק הראשון בתוכנית הוא פסוק 80000088ת2, שבכו מצוי?ן משמאל שם התוכנית פסגתתסטא, ומימין - רשימת פרמטרים אשר במקרה זה מכילה את מלת המפתח א1א לציון החלק הראשון של התוכנית אשר מקבל את הפיקוח ממערכת ההפעלה. התוכנית מסתיימת בפסוק פאם. ב. הוראה הקלט 681 תקרא את הנתונים שבקלט, בהתאם לרשימה שבסוגריים. הוראת הפלט צַ0ע תדפיס את התוצאה 4278. ג. הוראת החישוב היא פסוק השמה המכיל ביטוי חשבינל. בסוגריים כדי לציין שפעולת החיבור תבוצע לפני פעולת החילוק. בביטוי החשבונ?" השתמשנו הפלט: ; 56 =2478 שים לב שבסוף רשימות הנתונים בקלט ובפלט מופיע המפריד "נקודה-פסיק". תרגיל מסכם מטרת התרגיל לסכם את נושא פסוקי ההשמה והוראות קלט ופלט בשיטות 4 ו[-21:60566-415%. הבעיה: יש לקרוא ציונים של תלמידים המנוקבים בכרטיסים, לחשב את הממוצע המשוקלפ ולהדפיס את התוצאה. הקלט והפלט במבנה גדַגכ. תאור התוכנית: התוכנית קוראת 5 ציונים ב-5 מקצועות לימוד, מחשבת את ממוצע הציונים ומדפיסה את חמשת הציונים ואת הממוצע. לאחר מכן קוראת התוכנית מספר נוסף (גורם שיקלול), מוסיפה אותו לציון הראשון והשלישי, מחשבת את הממוצע המשוקלל ומדפיסה שוב את חמשת הציונים ואת הממוצע. הקלט לתוכנית ינוקב בשני? כרטיסים כמפורט כאן. את הנתונים אפשר לנקב בכל מקום שהוא בכרטיס. יש לשמור רק על ההפרדה בין נתון אחד לשני בפסיק ו/או < 277 > במרווח, ובסיום הרשימה (כאן בכרטיס השנ?) צריך להופיע המפרל?ד נקודה-פסלק. (כרטיס שנ?) (כרטיס ראשון) 55=89; 012 51=82, 52=94, 53-76, 1, פלט התוכנלת ?לופיע במספר שטורות, ברציפות. בסיום כל רשימת משתנים הכלולה בהו- ראת 2071 אחת יופיע המפריד נקודה-פסיק. התוכנלת: 6 74:80 .3 78082 ולו דא1)תעו4*‎ גד סד פא הד -'צוטהח.הד ס 26 )אד 0 ההש מד 0 כ ה.ג- > ד .מו 9 547 8 208 512 7 6 206 8 . 81=א:ץ ; 5 8 =א10:4 9 10 0% 0 6 ו | 2 1 ו 2 (55, 53 דופ הד6א. .> 1 42 + :)8%-5 -53-9%-55( /5 , 0 כו 57,583 4 )דוע דטל]. ומוה הלק ₪ ?)דא דא ; 78ד46]) + 344 > 1 7 ? 08ז46? 5 5-53 | 6% ץק = 5-0 -=-- / הו רודה ל - 278 - הסבר לתוכנית התוכנית נכתכת בטופס בן 80 טורים במבנה חופשי, בטורים 2 עד 72. טור מס' הטורים 73 עד 80 מוקדשים לסימון זהוי התוכנלת: בטורים 1 אינו בשימוש ב-1/מק. ובטורים 78 עד 80 נרשם מספר סדור? של השורות 3 עד 77 נרשם קוד התוכנית עזג שלם לב שהמספריס חליבים להיות בסדר עולה אולם רצוי שלא יהיה עוקבי?ם טורים 73 עד 80 אינם נבדקים ע"? המהד?ר, ואלנם שנכתבו. (כדי לאפשר תוספות בין השורות). שייכים לתוכנית. הפסוק הראשון בתוכנית 2/1 הוא 00000858תק. כאן כולל הפסוק את שם התוכנית 1 ואת הפרמטר א41 המציין שזהו הקטע הראשון בתוכנית. ההגדרה של המשתנים בתוכנית נעשית בשורה 30, בעזרת הפסוקמת) זט או בקי- צור - 201. המשתנים 51 עד 55 הם באותו מבנה ואופ? ולכן לוגדרו במקובץ, כפל שמתואר בשורה 30. בשורה 50 מוגדר המשתנה א₪8? (עבור הממוצע): אורך השדה 4 ספרות, הספרה הימנית היא ספרה עשרונית. כל המשתנים הם/61%.7טת פמאצע. ההגדרה של כל המשתנים *כולה להעשות בפסוק אחד אשר משתרע על מספר שורות, בין הגדרה אחת לשניה רושמים פסיק ובסוף הפסוק נקודה-פסיק. בשורה 90 רשומה הוראת הקלט של 5 משתנים. שים לב שלמרות שהם מנוקבים בשנל 'רטיסים אין זה משנה לגבי התוכנית. היא תקרא את הכרטלסים עד לקבלת המפריד נקו- ו-פסיק. חישוב הממוצע הפשוט נעשה בשורה 110. שים לב לסוגריים הקובעים שפעו- 'ת החיבור תתבצענה לראשונה ורק אח"כ - פעולת החילוק. הוראת הפלט אחת בשורה ג13 תדפיס את 5 המשתנים ואת הממוצע שחושב. שים לב שההדפסה תבוצע במספר שורות, עד להשלמת כל המשתנים שברשלמה. בשורה 150 ישנה הוראת קלט של המשתנה 460108ע. מכיון שהכרטיס כבר בזכרון (ע"י פעולת קריאה קודמת) תשמש הוראה זו להעברת הנתון אל התוכנית. בשורות 170, 0 מחברים את גורם השיקלול לציונים 51, 53. בשורה 200 מחשבים את הממוצע המשוק- לל, ולאחר מכן מדפיסים את התוצאה. בסיום ביצוע התוכנית יש להעביר את הפיקוח למערכת ההפעלה. ‏ לצורך זה משתמשים בהוראה 5709 (שורה 230). כאשר זוהי ההוראה האחרונה בתוכנית, לפנל ההוראה סאם, אפשר להשמלט אותה. ההוראה האחרונה הנכתבת בתוכנית היא פסוק ספאם, אשר אפשר להוסיף לו מימין את שם התוכנית, כפ? שמופיע בתרגיל. הערה: אם רוצים להשתמש לקלט ופלט בשיטת 1157, אפשר להחליף את מלת המפתח ג1גכ שבהוראות, במלה 1.157. הקלט והפלט יהיו ללא .שמות המשתנים, אלא יופיעו רק הערכ?ם המספרי?ים שלהם. בנוסף, אפשר לרשום במקום המשתנהא₪3ת שבהוראת דט את כל הביטוי החשבונל. = 279 * פרק 4: ה!ר1%6ת פיק!מ מ ב ו א התוכנית מתבצעת כרגיל לפי סדר הפסוקים המרכיבים אותה. הצורך לשלנוי סדר הביצוע קיים כאשר נוצרים תנאים בהם יש להפסיק ביצוע רצף הפקודות ולעבור לקטע תוכנית רצוי, לדלג על קטע תוכנית, לחזור ולבצע קטע תוכנית לפי התניות כלשהן וכד'. של?נוי רצף זרימת הביצוע נעשה ע"י הוראות פיקוח. הוראות הפלקות הבסיסיות ב-1/1? הן: 70 60, ע1 , 20 ובהן נדון בפרק זה. הוראות הסתעפות בלתי מותנית הסתעפות לכתובת קבועה הוראת 70 60 (או 60710, ללא רווח בין המלים) גורמת להסתעפות בלתי מותניה אל פסוק מסוים בתוכנית. המבנה הכללי של ההוראה הוא: ; (תוית) 706 00 ה''תוית" חייבת להיות שם של תוית מוכרת בתוכנית, אחרת אין שום משמעות להוראה. דוגמאות: ;1 78 609 1 60710 ;0 007 הפסוק השליש? תקף בתנא? שבתוכנית יופיע המזהה 6010 כתוית של אחד הפסוקים. הערה: בדרך כלל לא נוהגים להשתמש בשם שהוא חלק מהשפה למטרת תויות או משתנלם, אולם כאן זוהי דוגמה נוספת לגמישות הרבה בתכנות בשפה זו. דוגמה: ; (דאאעף ,5108?) זגפ 687 :46418 ; 487 8105*00 ק=מט.1 ע ; (0810₪) 2478 דטע ;א61 70 00 ------- :"אמא בדוגמה זו תשנה הוראת 70 60 את סדר ביצוע התוכנית: לאחר הוראת עטק לא תתבצע ההוראה בתוית צאמעא, אלא הפיקוח לועבר להוראה א2021. הסתעפות זו תתבצע בכל > 280 - 5 שביצוע התוכנית לגיע להוראת 70 60. הסתעפות לפ? משתנה-תוית הוראת 6010 שתוארה מללצגת הסתעפות לתוית (כתובת) קבועה. קיימלם מצבים בהם נדרש לבצע במהלך התוכנית הסתעפות לתויות שונות ע"? אותה הוראה 6010. הס- תעפות כזו נעשית ע"י השימוש ב"משתנה-תוית". הצורה הכללית של הוראת הסיעוף ה?א: ; (משתנה-תוית) 78 00 הגדרת "משתנה-התוית" תעשה בפסוק 2801888 והיא יכולה (ברשות) לצילן את כל שמות- התויות שאת ערכיהם ?*כול המשתנה לקבל במהלך התוכנית, לדוגמה: 1 [.....תוית, תולת ] (משתנה-תולית) וני כאשר רוצים שמשתנה-התוית יכיל ערך (כתובת) של תוית כלשהיא, לש להשתמש בפסוק השמה, ; (תוית) = (משתנה-תולת) 1 השימוש במשתנה-תוית נדגים בעזרת הדוגמה הבאה: ורה 1 ;םא (פתם ,דאסא ,122 ,21) פאהתך מתה1סמכ 2 = 78485 3 ;(0 ,2 ,4) 472 687 :007 4 ---ה--- 5 תד 10 60 6 ההרה- 7 7-7---- 21 8 ;פתם = פ5אגאך 9 10 60 10 חחרדרה-- ------ 11‏ :11 12 ------- נתתע הסבר: המשתנה 5א79 מוגדר כמשתנה-תוית. אפשר להגביל את הערכים שאפשר להעביר למשתנה-תוית בזמן ביצוע התוכנית באמצעות פסוק ההצהרה. ‏ אופציה זו אלנה חובה, אבל השלמוש בה עשוי לייעל את התוכנית במונחים של זמן ביצוע, אך בעיקר - לשמש תעוד לתוכניתן על כוונותיו בתוכנית. - 28[| - בדוגמה הגבלנו את ערכ? 188485 האפשריים ל-1אתא, 22, 11 ו-תתע. בכל מקרה, הערכים המועברים ל-5א184 הליבים להיות מסוג תוית. בפסוק השני יקבל %5 את הערך 12 ולכן, בפסוק 5 תתבצע הסתעפות לפסוק 7, בעל תוית 12. בפסוק 8 מועבר ערך חדש ל-5אגת1 - התוית תתע. לאחר ביצוע הפסו- קים 3, 4 תתבצע הסתעפות נוספת, והפעם לפסוק 12, הנושא את התוית תתם, מכיון שמשתנה התוית 5א718 מכיל את ערך התולת תאם. בדוגמה זו הושמטה כל הלוגיקה אשר כוונה את ההחלטה להקנות למשתנה-התוית ערך זה או אחר. למשל, במצב של שגיאה בתוכנית ינתן. למשתנה-התוית 5אג18 הערך אתע כד? שיבוצע סיעוף לקטע התוכנית המטפל במצבי שגיאה. הוראות התנללה לעתים קרובות יש צורך לבצע פסוק אחד או קכוצת פסוקים רק כאשר תנאי מסויים מתק?לים. ‏ כלומר, ?לש להסתעף מרצף ההוראות לאחר הערכת ביטוי כלשהוא. אם התנאל לתקיים יבוצעו הפסוק או הפסוקים במסלול אחד של התוכנית, ואם התנאל אינו מתק?לים - תמשיך התוכנלת בביצוע מסלול אחר של הוראות. הוראת ההתנייה ע1 מבצעת את הערכת הביטוי המשמש כתנא? ובהתאם לתוצאות ההערכה ממשיכה בביצוע ההוראות. בפסוק ההתנייה תע1 אפשר לכלול בלטויי השוואה וביטויים לוגיים שונים. תוצאת ההערכה של בלטוי?ים אלו עשויה להי?ות התשיבה "כן" או התשובה "לא", או בשפה אחרת, הבלטו? עשוי לה?ות "נכון" (6ט:5) כאשר התנא? מתק?ים ו"לא-נכון" (8186+) כאשר התנאל אינו מתקלים. התשובה קובעת את המשך מסלול הבלצוע של התוכ- נית. למשל: נתונה רשימת תלמ?דלם וציוניהם. לכל תלמלד מחושב ממוצע הצילונים ונבדק מול ערך קבוע (הציון "עובר"). אם הממוצע גבוה מצלון "עובר" - רושמלם את התלמלד ברשלמת התלמלד?ם שעוברים לשלב הלימוד הבא, ואם ציונן הממוצע נמוך מציון "עובר" - מדפלסים עבורו מכתב הודעה והזמנה לבחינה בע"פ. ביטויי השואה פעולות ההשואה מציגות יחס השואה בין גורמים. על פעולות המציגות ?חס לוגי בין גורמים נעמוד בהמשך. פעולות ההשואה האפשריות הן: =. 000: . 1-4 = 282 = גדול מ- > לא שוה ל- =ר- לא גדול מ- <ר- קטן מ- < גדול מ-, או שוה ל- ‏ =< לא קטן מ- > שוה ל- .- קטן מ-, או שוה ל- => לבניית ביטויי ההשואה הכוללים פעולות אלו אפשר להשתמש במשתנים וקבועים. הצורה הכללית של ביטו? ההשואה הלא: משתנה משתנה גורם היחס 2 ב ) ולחס) 3 קבוע | לדוגמה: 5 =< צ17דאהט) בביטוי זה מושווה ערכו של המשתנה צ117א008 ל-15. אם ערכו של צצ1לאגט0 גדול או שוה ל-15 הביטוי יהיה "נכון", אחרת - "לא נכון". 2**צ-% =>(5/א)**(1+2) בדוגמה זו יקבע ערכו של הביטו? החשבוני שמשמאל לגורם היחס, אח"כ *קבע ערכו של הביטוי החשבוני מימין לגורם היחס, ולבסוף ?ושוו שת? תוצאות הבינ?י?ם זו לזו. ההשואה של נתונים מספריים נעשית בדרך אלגברית. ערכים שליליים קטנים וערכים חיוביים. ביטויים לוגיים לביטויים שהצגנו בסעיף הקודם ואשר ערכם עשו? להיות "נכון" או "לא-נכון", נוהגים לקרוא גם בשם "ביטויים לוגיים". תוצאת ביטוי לוגי מאוחסנת בזכרון המחשב כתוצאת ביניים במהלך הערכה של ביטו? מורכב, או כתוצאה סופית של ביטו?. תוצאת הביטוי הלוגי מאוחסנת בסוג של נתונים הנקרא נתונים לוגיים. נתון לוגי נקרא ב-212/1 בשם מחרוזת סביות (8ח851 516). מחרוזת סביות מוגדרת כרצף של סביות אשר כל אחת מהן יכולה להיות במצב של 1 או 0. תוצאה של ביטוי לוגי נשמרת בנתון מסוג (511)1. פעולה לוגית שערכה "נכון", תיוצג ע"י 1'8', פעולה לוגית שערכה "לא נכון" תי?וצג ע"י 0'5'. דוגמה: 1 ;(511)1 2 ,(511)1 5 מתגססס 2 **2 < צ + א = 28 5 ;א = % = ם - 283 = המשתנה 5 בפסוק 2 ליקבל את הערך 1'5' אם צ+א גדול מ-27, או את הערך 0'85' כאשר התנאי אינו מתקלים, כלומר צ+א אינו גדול מ-22. המשתנה 1 בפסוק 3 יקבל את הערך 1'5' אם א->א, או את הערך 0'5' כאשר א אי?נו שוה ל-א. סימן = הראשון משמאל בפסוק 3 הוא סימן ההשמה, והסימן = השני? משמאל הוא סימן "שוה ל-". כדי להקל על "קרלאוּת" התוכנית רצוי היה לכתוב את פסוק 3 כדלקמן: (א=/)=1. דוגמה זו ממחישה את העובדה שלמרות החופש הרב בכתי?בה לש לנהוג במשמעת כלשהיא כדי להעלות את בהל?רות והבנת התוכנית. פעולות במחרוזות סביות ביטוי לוגי הלנו רצף של מחרוזות סביות מסוג משתנים או קבועים המופרד?ם ע"?" פעולות של אופרטורים לפעולות לוגלות (בוליאניים): ד- לא, | 6סת 6 וגם, 6ח8 [] או, צס (קו זקוף) האופרטורלם "או", "וגם" הם מסוג א1+ה1, כלומך פועלים על צמד מחרוזות. האו- פרטור "לא" הוא א6+1צק, כלומר פועל על מחרוזת בודדת. תוצאה של פעולה בין שתי? מחרוזות היא מחרוזת סביות באורך המחרוזות המש- תתפות בפעולה. כאשר המחרוזות שוות בארכן, יהיה אורך מחרוזת התוצאה כאורך מחרוזות אלו. כאשר המחרוזות שונות באורכן - יתוספו (זמנית לצורך הפעולה) למחרוזת הקצרה סבלות 0 מלמין. מחרוזת התוצאה תהיה באורך המחרוזת הארוכה שביניהן. כאשר בבטוי לשנן מחרוזות אחדות תבוצע הפעולה בין שתי מחרוזות (לפ? סדר עדיפות שנדון בו בהמשך) ומחרוזת התוצאה תופעל עם המחרוזת הכבאה, וכן הלאה. פעולות-מחרוזת מבוצעות על המחרוזת או המחרוזות המשתתפות סבית אחר סבית משמאל לימין. כל סבית במחרוזת התוצאה מקבלת ערך על פ? הטבלה הבאה: "לא" 8 '"לא'' 4 סבית סבית במחרוזת במחרוזת 8- 4- 8 4 4 "או" 5 | 4 "וגם" 8 *..- = - 288 - דוגמה: נגדיר את המחרוזות הבאות: ((311)6 א445 ,(811)66 3527 אשתה1סמס ; (911)6 00082 ,(811)6 60081 נציב את הערכים הבאים למשתנים: ,011010'8' = ;פה ,101111'8' =60281 ;'001011' =60282 זזפת הוא המשתנה שלכיל את מחרוזת התוצאה של הביטויים הבאלים: א. אפאר- = [עפת "לא'' משמעותו "היפוך" הסביות של המשתנה א845%, ולכן ערכו של 8511 *היה 100101'5'. 5 2 ₪6 00281 = עעפ5ת מחרוזת התוצאה תכלול כתשובה "נכון" כאשר באותו מקום ?לחס? בשתי המחרוזות הנבד- קות ישנה הספרה 1. מחרוזת 60251 מכילה 11 מחרוזת 60252 מכילה 1 ולכן מחרוזת התוצאה 8501 תהיה 1 . 5% | 00282 = 57 מחרוזת התוצאה תכלול כתשובה "נכון" את המצבים שבהם ?לשנה הסבית 1 באחת משת? המחרוזות. מחרוזת 60052 מכ?לה 1 מחרוזת 45% מכילה 0 ולכן מחרוזת התוצאה תהיה 1 ד. ולדוגמה, פעולה עם קבוע: 101'5' 8 אפגא = צעפת מחרוזת הקבוע קצרה ממחרוזת א45%א, ולכן יתווספו לו, זמנית, 3 אפסים מלמלן. הערך הזמנ? שלו יהיה 101000'8', כלומר מחרוזת בת 6 סביות כאורכה של מחרוזת אפגא. התוצאה של פעולה זו תהי?ה 001000'85'. אם בביטוי מחרוזת לש יותר מאופרטור אחד יש צורך להגדיר את נוהל הערכת הביטוי. ‏ הביטוי יוערך משמאל לימין לפ? סדר העדיפות של האופרטורים: האופרטור "לא" (34) הוא בעל העדיפות הגבוהה, אחריו "וגם" (8) ואחרון "או" (|). = 285 - השימוש בסוגריים מאפשר שינוי סדר הערכת הביטוי בהתאם לתנאל הבעיה. בדוגמה הבאה שולבו הסוגר?ים להצגת סדר העדיפות בהערכת הביטול: 0 זהה ל- (4|)880 | 85 זהה ל- 6| (488) 0 ר זהה ל- (580) | (8 -=) 48-8|0- זהה ל 6| ((4(8)48 ה) לסיכום נציג את סדר העדיפות של ביצוע פעולות בביטויים הכוללים אופרטורינ חשבוניים, אופרטורים להשואה ואופרטורים לפעולות לוגיות: העדיפות הגבוהה ביותר - א6+1טק ‏ + א6+1ץק *א / * - א1+ם 1‏ + א%1ח1 < -1> >= = =ר-‎ <= < -ר<‎ 6 העדיפות הנמוכה ביותר | פסוק ההתנייה - 1 בהוראת 11 נשתמש כדי לבחור כפעולות אלטרנטיביות על סמך תנאים שונים המתגלים במהלך ביצוע התוכנית. אפשר להשתמש בהוראת 15 באחד משני? האופנים הבאים: ; (יחידה-1) אמעעך (ביטוי) ק 1‏ .1 ;(יחידה-2) 5155 (יחידה-1) אפאך (ביטוי) ק] ‏ .2 "יחידה" היא פסוק יחיד, קבוצת פסוקים או א8106 א5501. בשלב זה נתיחס רק לאפשרות של פסוק יחיד. קבוצת הפסוקים מוגדרת ע"? פסוק 20, שנדון בו בהמשך. 0% א5861 מהווה יחידה נפרדת בתוכנית, וגם בה נדון בהמשך. בביצוע פסוק "1 נעשית תחילה הערכת "הביטוי". הערכת הביטוי יכולה לתת תוצאה "נכון" המציינת שכל התנאים בביטוי התמלאו, או - תוצאה "לא-נכון" המציינת שתנא? הביטוי לא התמלאו. כאשר "הביטוי" הוא נכון תבוצע תמ?ד "יחידה-1" הרשומה לאחר מלת המפתח אפאך, ולאחר מכן - הפסוק שרשום לאחר הוראת ע1. אם יחידה-1 כללה את ההוראה 0 - יבוצע סיעוף בהתאם. ו ד אהששדיד מרדרעו 0027 ד ד ד הצא שש וקרע א שו - 286 - כאשר הבילטו? הוא לא-נכון, יש הבדל בב?צוע בשתי הוראות ע1 שלמעלה: בהוראה זז הראשונה - יבוצע הפסוק שלאחר פסוק ע1. בהוראת 18 המורחבת - תבוצע *הל?דה-2 הרשומה לאחר מלת המפתח 58ע, ולאחר מכן (אם היא לא כללה את ההוראה 6010) *בוצע הפסוק שלאחר פסוק א1. את האפשרויות הקיימות אפשר להציג בעזרת התרשימים הבאלים: (יחידה 1) אמחך 15-77 *-- המשך התוכנית "---(יחידה 1 16 60) >= =-- המשך התוכנית (לחידה 1) אממך. =- המשך התוכנית י ( הלדח 2 טמוק שבח א "-- (יחירה 1 76 60) אסטך +-- המשך התוכנית 5 + -19 % פסוקי התנייה עם ביטויי השואה ;(5) מגא861 פמא1ץ א מתה6מכ ;(%*) 418 081 (א- >= א אשמך 0>א עך ; (8) 84ד1אפ צטשץק אם א% שלילי, תבוצע "י:חידה-1" שהלא במקרה זה, בדוגמה זו, נבדק ערכו של א. פסוק בודד ב-21/1. בפסוק זה הופכים את סימנו של א, לאחר מכן מודפס ערכו של אם א אינו שלילי? "יחידה-1" לא תתבצע ורצף הפיקוח יעבור מיד לפסוק 4. -. 3 ; (5) 2861840 פפא1ע (צ,א,אגא) 85ג61מכ ;(צ,8) 2418 681 ;צ=אגא אפטך צ>א עז ;א-א4 2055 ;(צ,א,אגא) 2418 צטץ בדוגמה זו יש להציב ב-א%4%א את הערך הגדול מבין שני הערכים ב-א וב-צ. אם צ>א מוצב ערכו של צ ב-א%גא, אחרת מוצב ערכו של א ב-אגא. בסיום מודפסים ערכל אאא, א, צ. 8 ;דאנתת 10 00 אפאד 110110'8' =ר- אפגא ע1 בהוראה זו נבדק ערכו של המשתנה 45%א, ואם צרוף הסביות שלו אינו שוה לקבוע הבינרי הנתון - יבוצע סיעוף אל התוית זַא81?, - 287 - הוראות ?1 מוכלות אפשר להכיל הוראות ע1 בתוך הוראות ע1. מצבים אלו נדרשים כאשר באחד מהזרועות של הוראת 1 יש צורך לבצע הוראת ע1 נוספה, שיטה זו אפשרי?ת ואינה מומלצת. (יחידה) אטע (ביטוי) פך אמעאדך (בלטוי) עך ; (לחידה) 058 ;(יחידה) 058 ובדוגמה: 0 < צטזתפ-500 8 18 =< 405 קז 0 < 1641שט עד אמחך ;% 26 60 אפאך 030% 10 60 58עם ;1 + א =א 8פ5ם ₪ = ₪ בשורה 1 רשומה הוראה 19 עם ביטוי מורכב הכולל ביטוי לוגי בעל שני חלקיט. הביטוי *היה "נכון" כאשר 465 ?היה גדול או שוה ל-18 וגם 506-58101 יהיה גדול מ-70. כאשר הביטוי "נכון" יעבור הפיקוח לשורה 2, ואם הביטוי "לא-נכון" יעבור הפיקוח לפסוק 2258 בשורה 5, בפסוק 1388 שבשורה 2, רשומה הוראת 1 אחרת הכוללת ביטוי השואה. אם הביטוי "נכון" יבוצע הפסוק אשא1 בשורה 3, ואם הוא "לא-נכון" יבוצע הפסוק 8 בשורה 4. לכאורה, אפשר היה לרשום בהוראת *1 אחת את כל התנאים. אולם שים לב שלשנם מסלולי פעילות שונים כאשר מתקיימים תנאים שונים: כאשר כל התנאים מת- קיימים עוברים ל-0%. כאשר רק השנים הראשונים (גיל וסוג-בריאות) מתקיימים - עוברים ל-א0880, וכאשר הם אינם מתקיימים עוברים לשורה 5, ופוסחים על בדיקת המשקל. פסוקי התנליה עם ביטויים לוגיים א. ;0% 16 00 אתות 5 8 ג תך ;,דאזת? 10 600 58ם כאשר פעולת "וגם" של שנ? המשתנים 4, 5 נותנת את מחרוזת הכוללת "סביות 1", אחת או ?לותר, יש לבצע את הסלעוף לתוית א0880%. אם כל סבלות התוצאה הן 0, יבוצע סיעוף אל צאזתק. 8 - 288 - ב. (2 > 00085 | 2000 => צת541) 8 5 =< אסתסמדטס קך ;05 160 60 אקוד מכיון שהאופרטור "או" (|) הינו בעדיפות נמוכה תחמנו אותו בסוגריים ועל כן פעולת "או" תבוצע לראשונה. אח"כ תבוצע פעולת "וגם" (68) עם הבלטו? הראשון שבפסוק. משמעות הפסוק ע1 הלא: אם מספר הילדים גדול או שוה ל-5 וגם קיים אחד מהתנאים (או) המשכורת קטנה או שוה ל-2000 או מספר החדרים קטן מ-2 יש להסתעף לכתובת 5טא80. כל אחד מביטוי? ההשואה מפיק תוצאה בצורת נתון לוגי, סבית 1 או 0 בהתאם לתו- צאות ההשואה: התשובה "נכון" מפיקה סבית 1 והתשובה "לא נכון" מפיקה סבית 0. האופרטורים "או", "וגם" פועלים על סביות אלו. תרגיל יש לסכם במשתנה 8א0א את המספרים מ-1 עד 75 ולהדפיס את התוצאה. התחלה תרשים מלבני: 1+א א א + א - א לא / כן הדפס = 289 = התוכנית: ; (אנא) 0211085 מתטפעסקתק :60081 ;0% = מאקא .0 = א 1 + א = א :א461 ;א + עאקא = אאקא ;01 20 00 אחוד 75 =- א עך ; (פא6א) 5413 זט2 ;סאק 60001 0 0 ₪ ₪0 הסבר: בתוכנית זו אין הכרזה של נתונים והם נבחרו לפי ברירת המחדל, בהתאם לאות הראשונה של המשתנים - צתגאזת פמאךק. שורות 1 ו-8 הן תחילת וסיום התוכנית. בשורות 2, 3 נקבעים תנא? התחלה - איפוס 8א40 המשמש לצבירת הסכום ו-א שהוא המספר התור ואשר מסכמים ל-8א0א, בפסוק א1 בשורה 6 ישנה התני?יה שונה מזו שבתרשים, מטעמ? נוחות התכנות. את התוצאה מדפיסים בהוראת 281 201. אם ההו- ראה האחרונה המתבצעת היא כפאע אין צורך לרשום לפניה 5102. תרגיל לש לחשב שכר עבודה לפ? התנאים הבאים: התעריף לשעת עבודה רגילה הוא 78גת. מעל 8 שעות עבודה התעריף הוא ב-50% גבוה ליותר. לש לקרוא מכרטיסים את הערכים מספר-עובד, מספר שעות, תעריף ולהדפיס את מספר- עובד, שכר. בכרטיס האחרון מכיל השדה מספר-עובד את הערך 9999. התוכנית: ; (א41) 5א02110 פאטפמסקתק :צ54189 ; (עזאת ,₪0095 ,60א אגא) 2157 007 : צפתדק ;פזאדץ 10 00 אוד 9999 = אא אגא קז 2. 1*מדגת*(₪0095-8) + מדגת*8 = צגק אגגד 8 < 5תטס0ם 15 ;ות * 40085 = צג? שפמם ; (צגץ ,6א אאא) 2474 לטק ]1 ₪ 00 ;0 :158אזץ ; סאם = 290 = הסבר: מיד לאחר הוראת הקריאה נבדק השדה 0א אגא כדי לדעת אם זהו הכרטלס האחרון, ואז מבוצע סיעוף אל 158א1ת. אם לא - נערך חישוב השכר בהתאם לתנאי הבעלה. בפסוק ע1 מוכל ביטוי חשבוני אשר מליצג את החישוב כאשר 8 < 278ת2. בפסוק 8פ5סע כלול החישוב לשעות רגילות. כדי לפשט את התרגיל לא נכללה כאן הכרזת נתונים. נתון קובץ קלט בכרטיסים אשר מכילים פרטים על תלמידי ביה"ס. הפרטלם הכלולים ברשומת כל תלמיד הם: מספר שנת הלמוד בביה"ס, ציון סימסטר א' באנגלית, ציון סימסטר ב' באנגלית, ציון סימסטר א' במתמטלקה וציון סימסטר ב' במתימטיקה. אם התלמיד בשנתו הראשונה בביה"ס יש לחשב ולהדפיס את ציונו הסופל (שהוא ממוצע בין שני ציוני הסלמסטר) רק באנגלית. אם התלמלד בשנתו השניה ואילך יש לחשב ולהדפיס את ציונו הסופ? באנגלית ובמתימטיקה. כדי לפשט נציג את התוכנית לטיפול בכרטיס אחד בלבד. מבנה כרטיס קלט (בשלטת 4556-21166566) 1975, 73, 81, 4, 8 77 1 )735 + 12 )84 + 78( 2 77 1 התוצאה 77 תודפס בטור 25 בשורת ההדפסה, והתוצאה 81 תודפס בטור 49 בשורה. התוכנית ; (א41א) 5א02110 200 :50028 ((4) תגא01עת פמאדץ תגחצ מסם ; (2) ג4ת0פכ פטאדע (52 ,51) ;(52 ,51 ,תגמצ) 1157 607 (81+582(/2)) 10151 צטק ]0 אסאד 1 < תגתצ עך (52 ,51) 2157 007 ; (2/ (91+52)) 01517 דטק ; פאם 00000000 ש פפעאש - כ - 291 * הסבר: פסוקים 1 ו-11 חייבים לבוא בכל תוכנית 21/1. פסוק 1 הוא הפסוק הפותח כל תוכנית ב-20/1. תוית הפסוק - הכרחית והיא מהווה את שם התוכנית. פסוק 11 הוא פסוק הסיום של התוכנית. כאשר רצף הפקוח מגיע לפסוק הנ"ל, מסתיימת התוכנית, גם אם אין הוראת ?510 לפניו. בפסוק 2 השתמשנו במלת המפתח 061כ שהיא השם המקוצר של מלת המפתח מתגוסעכ. בפסוק 4 קוראת התוכנית שלשה נתונים מהכרטיס: השנה, ושני ציוני האנגלית. בפסוק 5 מבוצע חישוב הממוצע וההדפסה ע"? הוראת 2157 צשק. בפסוק 7 נבדק התנא? של מספר שנות הלימוד, ואם הוא גדול מ-1 מבוצעת קבוצת הפסו- קים הכלולה במסגרת הוראות 20 עד פא₪ (עד פסוק 9) ואח"כ עוברת התוכנית לפסוק 10. אם התלמיד בשנתו הראשונה,עוכר רצף הפיקוח מיד לפסוק 10 והתוכנית מסתיימת. אם 1 < 545צ, יבוצעו הפסוקים 8 ו-9. שים לב שהקריאה של שני השדות הבאים נעשית מאותו הכרטיס. ההבחנה היחידה לכך היא מספר השדות או הנתונים שנקראו בפעם קו- דמת ואשר נקראים עכשיו. פסוק 0כע לבקרת לולאות פסוק 0ע מאפשר לקבץ מספר פסוקים ליחידת ביצוע אחת. את קבוצת הפסוקים אפשר לבצע כיחידה אחת פעם אחת, או מספר פעמים בלולאה, בהתאם להנחיות בפסוק 0. רק לאחר השלמת הביצוע כנדרש עובר פיקוח התוכנית לפסוק שלאחר הקבוצה. תיחוס קבוצת הפסוקים נעשה ע"י הפסוק 20 בראשה וע"י הפסוק פאע בסופה. המבנה הכללי של קבוצת פסוקי 0כ2, הכוללת שני? פסוקים הוא: (פסוק 1) (פסוק 2) ;פא ביצוע ללא חזרה כאשר פסוק 0 אינו מכיל כל פרמטרים פרט להוראה 20 עצמה, תבוצע קבוצת הפסוקים פעם אחת בלבד. השימוש בשיטה זו נפוץ בפסוקי ההתנייה *1, כאשר כתוצאה מהערכת הביטוי יש לבצע יותר מפסוק אחד בזרוע אתא או בזרוע 81058 של ההוראה. לדוגמה: = 292 = ואמתזד 4=20 קך ;צ + 2 * 4 = 6 ; (0) 2418 דטק ; פאע ;---- 2058 התניליה לפ? ביטוי השואה בהערכת ביטוי השואה הנתון בפסוק 0כ2. ; (ביטוי השואה) שזוחז 0 ;פסוק 1 בהוראה מסוג זה מותנה ביצוע הלולאה ;פסוק תח ;סאק שמוש זה בהוראת ה-20 גורם שקבוצת הפסוקים 1 עד ם תחזור ותתבצע כל עוד ערך ביטו? ההטשואה הוא "נכון". כאשר ערך הביטוי יהיה "לא-נכון" הפיקוח מועבר לפסוק הבא אחר? פסוק עאע. כל חזרה על קבוצת הפסוקים 1 עד םח נקראת לולאה (1882). דוגמה 1 ; (5 = 0088) שדוחו 0כ 2 ; (עשא ,זכ ,0028) 231 0% 3 ;א + 504 = 508 4 ; (אטא ,5478) 5378 דט 5 ; פאט קבוצת הפסוקים 2, 3, 4 תתבצע כל עוד ערכו של 0028 יהיה שווה ל-5. כאשר ערכו ?היה שונה מ-5 לועבר רצף פיקוח התוכנית אל הפסוק הבא לאחר פסוק 5. יס לזכור שהתנאי נבדק לפני ביצוע הלולאה, ומכאן שהוא נבדק גם לפני הביצוע הראשון שלה. ולכן, אם ערכו של 8 שונה מ-5 לפני ביצוע פסוק 1, לא יתבצעו כלל פסוקים 2, 3, 4. דוגמה נתונים שני ערכים ‏ ו-2, יש להוסיף להם את הגורם 0.1 ו-0.5 בהתאמה, עד אשר מכפלתם תהייה גדולה או שוה ל-35 (או, להוסיף כל עוד המכפלה קטנה מ-35). לשם הדגמה נציג את התכנות בשיטת פסוק ההתנייה ע1 ובשיטת פסוק 0פ. ו ו ו 1 א. פסוק ק1: 21. + 2 = 2 :ספב 5% +25 = 2 או 35 > 5 * 4 קך ;תע 10 60 ; (4,9) 41 צדטק ----- :"אמא ב פסוק 0כ: ;(35 > מ2*5) שמזזחו 20 :פפג 1 + /2 = 2 +25 = 5 ; פאע ; (3,2) 5813 עטק ------ : ץאמא ביטוי ההשואה בפסוק 20 מורה שהלולאה (או קבוצת הפסוקים) תתבצע מספר פע- מים כל עוד המכפלה 4*5 תהייה קטנה מ-35. עם סיום הלולאה לעכור הפיקוח להו- ראה צשע2, ולאחריו לפסוק שתויתו צאתא, התנייה עם משתנה פליקוח (אינדקס) הפילקוח על ביצוע הלולאה נעשה על ידי משתנה פ?קות. משתנה הפיקוח מקבל ערך התחלת? מסויים אשר מקודם בכל ביצוע של הלולאה עד אשר הָוא מגיע לערכו המקסימלי. בשלב זה מופסק התהליך והתוכנית ממשיכה בביצוע ההוראה שלאחר פסוק פאם. ;[(ביטוי-3) צת] (ביטוי-2) 10 (בלטוי-1)=(משתנה) 20 פסוק -1 פסוק -ת ; סאק ביטוי -1, ביטוי -2 וביטוי -3 הם ביטויים אריתמט?ים ומייצגים ערכים מספריים. כאשר רצף התוכנית מגיע בפעם הראשונה להוראת 20, מקבל ה"משתנת" את ערך "בל- טוי-1", וערכו מושוה ל"כיטוי 2"; אם ערך זה קטן או שוה לערכו של "ביטו? 2" מתבצעת קבוצת הפסוקים 1 עד ם. הוראת כאע מחזירה את הפלקוח להוראת 0כ2, שס מתווסף ערכו של "ביטוי -3" ל"משתנת", ושוב מתבצעת ההשואה ל"ביטוי -2" וכך הד 4-2 - > . >] רשוה ₪ .וו ר החטה תוי ה ₪חההח ה ה 3 - 298 - הלאה. ‏ כאשר ערכו של "משתנה" גדול מערכו של "כי?טוי-2" מועבר רצף הפיקוח לפסוק לאחר הוראת פאם. הערה: 1) אם ערכו של ביטוי-3 שוה ל-1 - אפשר להשמלט את הפרמטר: (ביטול-3) צת. 2) אפשר לכתוב את האיברים בפסוק בסדר שונה, למשל: ;(ביטוי-2) 16 (ביטוי-3) צ5 (ביטוי-1) = (משתנה) 60 דוגמת 1 ;1 צ8 25 70 1 = 5שא1דא םס 2 ;(1) 24714 607 5 * (0.02 + ך) = 5 4 ;(5) 157 דטק 5 ; פאם 6 החחה- בדוגמה זו תתבצע קבוצת הפסוקים 4-2, במשך 25 פעמים. | פעם הראשונה לקבל המשתנה 85א1זא את הערך 1, ערכו יושוה ל-25:; ובפעמים הבאות *תווסף בכל פעם הערך 1 ל-₪5ע1ַצא. כאשר ערכו של 5מַא11א יהיה 26 לא תתבצע קבוצת הפסוקים 2-4 והפיקוח יעבור לפסוק 6. כללים לתכנות הוראת 29 א. תחום הלולאה: מותר להסתעף מתוך תחום ה-20 אל מחןץ לתחומו. ערכו של משתנה הפיקוח נשמר וזהו ערכו האחרון לפני ב?צוע ההסתעפות. אסור להסתעף לתוך תחום של הוראת 20 מבלי לעבור דרך הוראת ה-20 עצמה, פרט למקרה של פסוק 20 ללא התניית חזרה (;0פ). צם 15 10/76 = א 9פ = 279 = ב. אפשר להשתמש במשתנה הפיקוח של הוראת 20 בתוך תחום הלולאה או מחוצה לו, לדוגמה: ; (0?258) 2418 007 צמם תםקקע 70 0 = א 0 (2**א ,א) 1157 דטק ;ספאם בדוגמה זו לודפס כל מספר בין אפס לבין ערכו של המשתנה 02288 בהפרשים של 0.25 בין מספר למספר, יחד עם הערך הרכועי שלו. קטע מפלט התוכנית יהיה (לא רשום במכנה מדוייק של הדפסת 2157): 0-5 0.5 5 25 0.5 0.5 100 100 15 1.5 15 2.5 1.5 5.5 2.0 4000 ג. כאשר ערכו של "ביטוי 3" קטן מאפס תתכצע הלולאה אם ערכו של "משתנה" קטן מ"כיטוי 2". לדוגמה: (5- צ5 6 70 25 = צ 8 קבוצת הפסוקים תתבצע עד אשר ערכו של צ יהיה קטן מ-6 (דהיינו 5 = ץ). ד. הסתעפות מתוך תחום הלולאה אל ההוראה כא₪ מותרת, ואינה שונה מהמקרה בו מגיעים להוראה זו ברצף התוכנית. הפיקוח בלולאה יעבור לראש הלולאה (להוראת 0), ערכו של "ביטוי 3" יתווסף למשתנה הפיקוח ומחזור הלולאה המכוקר על ?ד? הוראת 0ע ימשך. בדוגמה שלפנינו יבוצע הסיעוף אל הוראת פא כאשר ערכו של אפ גדול או שווה ל-120 וגם א5 קטן או שוה ל-130 (כלומר 130 6 א5 > 120): 2א צם 150 18 5(*3+א) = אך 0ס ;1 + א5 = א5 ,509 70 00 אמגך 130 => א5 8 120 =< אפ 15 + א75 = א5ץ ; פאת:50 שים לב שבהוראת 20 שבדוגמה נכללו גם ביטויים ולא רק משתנים וקבועים. המשתנ.: א, א צריכים להכיל ערכים מבוקרים לפני הכניסה להוראה 0ע. אך יקבל בתח?לה את ערך הביטוי 5(*3+%) ואח"כ, בכל מחזור של הלולאה יתווסף אליו הערך 2/א עד אשר ערכו יהיה שוה או גדול מ-150. = 296 = ה. הסתעפות מתוך תחום ה-0ע2 לראש הלולאה, להוראה 20 עצמה, זהה למצב בו מגל?עים ברצף הפיקוח הרגיל להוראת 0כ2. ;3 צם 11 70 20 = א 0כ :אפדת ;ועעדת 10 00 אחגד 0 > 2 חך ; פאק אם ערכו של 2 יהיה קטן מאפס תתבצע הסתעפות ל-את71ת דהיינו, א יקבל שוב את הערך 0 (הערך ההתחלי) וכל תהליך ביצוע הוראת ה-20 יחזור על עצמו. ו. הערכת הביטויים בהוראה נעשית פעם אחת בלבד במשך ביצוע הוראת ה-0כ2, וכל שינוי בערך המשתנים המופיעים בביטויים הנ"ל אינו משפיע על ערכם. ל"ביטוי-1" יש משמעות רק לביצוע הלולאה בפעם הראשונה. דוגמה = % = 1 = צפ א 10 1 > 1 28 > ₪ 7 = א 1 = ; ספא ערך הביטויים 1, א%< ו-1 יחושב רק בתחילת ביצוע הוראת 20 וערכם לשמר במשתנים זמניים. משך כל זמן ביצוע הלולאה יהיה ערכו של "ביטוי 2" - 20 וזה של "ביטולי 5" יהיה 2, למרות שכבר בביצוע הלולאה הראשונה משתנה ערכם של א ו-ם. ז. אם משמלטים בקידוד את "ביטוי 2" ולא משמיטים את "ביטוי 5" לא תתבצע כל השואה אוטומטית כדי להפסיק את ביצוע הלולאה. במקרה זה צריך המתכנת לבצע בדל- קה כלשהי ולהתנות המשך הביצוע בבדיקה זו. אם משמלטים גם את "ביטוי 2" וגם את "ביטוי 3" תתבצע הלולאה רק פעם אחת, לדוגמה: 5 = א 0 ; סאק לולאה זו תתבצע פעם אחת בלבד כאשר ל-א יש את הערך 25. הוראות 20 משולבות א. בהוראת 20 אחת אפשר להתנות את ביצוע הלולאה בשני תנאים שונים: לפי ביטוי השוואה ולפל משתנה פיקוח. מבנה ההוראה: ; (ביטוי-4) 71108 (ביטוי-3) צ5 (ביטוי-2) 106 (ביטוי-1) = (משתנה) 20 פסוק 1 פסוק ם ; פא זהו שילוב של שתל צורות הקידוד של ההוראה. כאשר נשתמש בצורת קידוד זו תתבצע קבוצת הפסוקים 1 עד ם עד אשר יתקיים אחד משנ? התנאלם: או שערכו של ה"משתנה" יהיה גדול (או קטן) מ"ביטוי 2", או ערך "ביטוי 4" *היה "לא נכון". הדוגמה הבאה תמחלש אפשרות זו: ;( >> א) םת1וח 2- צפ 4 70 22 = א 8כ ; פא ערכו של א ישתנה מ-22 עד 4 בקפיצות של 2-, וערכו של א מושיה בכל חזרה לערכו של 1. כאשר ערכו של א יגיע ל-2 ו/או ערכו של א יהיה קטן או שוה ל-12, יופסק בי- צוע הלולאה והפיקוח יעבור לפסוק הבא אחרי הוראת ,₪%2‏ "בלטוי 4" מוערך רק אם השואת ערכו של א ל-4 מורה על המשך ביצוע ההוראה. ב. בהוראת 20 אחת אפשר לתת תהומלם שונים ותנאים שונים לביציע קביצת הפסוקים הכלולה בלולאה. לדוגמה: ; (1=0) 88 7 70 2 ,11+א ,10+א ,(0.5 > צ) מ5ת1טאט א 70 5 > 5 0 בדוגמה זו תתבצע קבוצת הפסוקים בכמה מחזורים: - במחזור הראשון כאשר % יקודם מ-5 עד א בקפיצות של 1 וכל עוד ערכו של צ קטן מ-0.5. - במחזור השנ? כאשר א יקבל את הערך 10+א וקבוצת הפסוקים תתבצע פעם אחת. - במחזור השלישי, כאשר א% יקבל את הערך 11+א וקבוצת הפסוקים תתבצע פעם אחת. - במחזור הרביעי כאשר א לקבל ערך התחלתי 2 ויקודם עד 7 וכל עוד ערכו של 2 שוה ל-0. ו > 298 > שיטת קידוד זו זהה בדיוק לקידוד הבא הכולל סדרה של הוראות טע, אולם הוא חוסך את הכתיבה החוזרת של ההוראות: ;(0.5 > צ) שת1וחו א 16 5 =,א 6 ; סא ש ב <> ו כ9] ב .ב 1 4-ז = 4 ₪ ₪ ו כ - זכור: השמר מפני "התחכמויות" וכתיבה מסורבלת. למרות האפשרויות הרבות לשללוב הוראות ופעולות מן הראוי לשקול את היתרונות של הכתיבה התמציתית לעומת היתרו- נות של בהירות ודיוק האפשריים בכתיבה פשוטה יותר. תוכנית פשוטה נוחה לותר לנפוי, ובסופו של דבר - מאפשרת תגובה מהירה ילותר לדרישת ביצוע של משימת על- בוד הנתונים. | לולאות מוכלות קבוצת הפסוקים השייכת להוראת 20 אחת יכולה להכיל הוראת 20 אחת או לותר. לדוגמה: ;1 צת 100 170 1 = 1 8 1 - = | 2 ;5 70 1 = א 8 3 ב 8 ; פא 5 - שמשמש 2 ;8 70 2 = 1 0 7 .4 ד 1 = א 8 8 4 ₪ ₪ ; עאם 10 ; סאק או 17 = 299 = הכלל לכתיבת הוראות 20 במתכונת זו הוא כדלקמן: כל הוראת כאע תוחמת את הוראת ה-20 הקרובה אליה ביותר. בדוגמה הקודמת פסוק 5 תוחם את פסוק 5, פסוק 10 תוחם את 8, פסוק 11 תוחם את 7, ופסוק 13 תוחם את פסוק 1. מכאן ברור גם שמספר הפעמים שיבוצעו הפסוקים 1 עד 13 אינו זהה. בכל לולאה של הלולאה החיצונית (פסוק 1) לבוצעו 5 לולאות של ה-20 בפסוק 3, ו-7 לולאות של ה-20 בפסוק 7, ועל כל לולאה של זה האחרון יבוצעו 4 לולאות של ה-20 בפסוק 8, ובסה"כ יבוצע כל פסוק מספר פעמים לפ5? הפירוט הבא: פסוקים 12-13, 6-7, 2-3 יבוצעו 100 פעמים. פסוקים 4-5 יבוצעו 500 = 100 * 5 פעמים. פסוקים 8-11 יבוצעו 7 פעמים. פסוקילם 9-10 יבוצעו 2800 = 100 א 7 א 4 פעמים. תרגיל נתון קובץ כרטיסים המכיל ערכים שונים. הערך הראשון הוא מספר הערכים בקובץ. לדוגמה: 124 25 1% 3 יש לקרוא את הנתון הראשון א, ואח"כ בזה אחר זה את א הערכים א. הנתונים מנו- קבים ברצף במבנה 1151. כל המשתנים הם מסוג 01%40אכ פשא1ע: המשתנה א הוא בן 2 ספרות והמשתנה <* הוא בן 5 ספרות מהן 2 עשרוניות. יש לחשב עבור כל א את החזקות 2 עד 0 ולהדפיס אותן במכנה הבא: 3 2 ,על ת, 3, ערך ‏ א, 2) ערך 5 ** א כלומר, הערך של א יודפס במבנה 24% ומעריכ? החזקות וערכי? א בחזקה יודפסו במבנה 2157. התוכנית 1 ; (א441) 02110685 פתטפע06גת :250218041 ;(5,2) עעא1ע א ,(2) פטאזע א עספ ;/* עןפהדתהט 80דא00 עגפת */ (א) 0151 051 ;א 10 1 = ז 0כ :פגמת ; (8) 2157 007 ; (א) 2418 דטק ;א = צ /* 1002 א110ג 63100 5115 טשא */ 76 2 = 2 20 :6400 ;א*ץצ = צץ ; (צ,1) 2151 צש? ;/* 1002 0416 */ פאע ;/* 1002 316 */פאק ; פא ₪ ₪ = ₪000 פצ ₪ 2 ₪ ₪2 ס ₪ ₪ ₪ < הסבר ו ו ו ו ו 9 2 ₪ ו --- 10 11 פאם- - 300 - פסוק הפתיחה של התוכנית. שם התוכנית הוא 4שעפסגק. פסוק הגדרה של המשתנים א, % בהתאם לתנא? הבעיה. שנ? המשתנים הם דצימליים עם נקודה קבועה. אפשר להשמלט את מלת המפתח גא1סעע ולרשום רק פאאצץ. קריאה של המשתנה הראשון של הנתונים. א מייצג את מספר המשתנים א אשר נמצאלם בקובץ. בפסוק זה כלולה גם הערה למטרת הסבר הפעולה. תחילת הלולאה הראשית של התוכנית. סיום הלולאה בהוראה פאע בשורה 13. את הלולאה יש לבצע א פעמים (יש לקרוא ולעבד א ערכים א מהקובץ). משתנה הבקרה של הלולאה הוא 1 והוא משתנה מ-1 עד א בדילוגים של 1. קריאת ערך % מתוך הקובץ (בשיטת 2157). הדפסת ערך % שקראנו בהוראה הקודמת (בשיטת ג47כ2). העברת ערך * למשתנה צ להמשך העיבוד וכדי לא "להרוס" את ערך % אשר להיה נחוץ לנו בהמשך. הערה להסבר. תחילת הלולאה לחלשוב החזקות של המשתנה א. על לולאה זו יש לחזור עבור כל ערך א שמתקבל. ‏ לולאה זו מוכלת בתוך הלולאה המתחילה בשורה 4. סיומת בהוראת עאע בשורה 12. משתנה הבקרה של הלולאה הוא 1 והוא משתנה מ-2 עד 0 ועל כן הלולאה תתבצע 9 פעמים. חישוב החזקה ע"י מכפלה. הדפסת מעריך החזקה וערך החזקה עבור א בכל ביצוע של הלולאה. כאשר יש מקרה, כמו שלפנינו, של הוראות פעאא עוקבות אפשר "לחסוך" הוראות ע''י כתיבת הוראה אחת עם תוית הפסוק הפותח את הלולאה החיצונלת בלותר. למשל: ----- 20 :8540 20 :0410 ;עגפת פאא כלומר, הוראת כגפת עאםע תסגור את הוראת 20 הפנימית (עם תוית 626) וגם את הוראת 20 החיצונית (עם תוית פגמת). בדוגמה שבתרגיל אפשר להשתמש בהוראת עאע של הבלוק (בשורה 14) לתחום גם את הלולאות ע"?* הכתיבה 280914 פאע ולהשמיט את ההוראות פאם בשורות 11, 12. - 30! - פרק 5: ה!רא!ת [|וספות 1ק61 619 / !אָריכת קלט/פלט בשיטת ז501 בהוראות קלט/פלט מסוג ז28 ו-1181 הקלט והפלט הם במבנה ובציוה מוגדדים בקלט הנתונים מופרדים זה מזה, ובפלט ההרפסה הם מורפסים בטויריף קביעים | בטיטה גזגת נילווה גם שם-המשתנה בקלט ובפלט. בשלטת 5211 (1/0 261:-61,60:60‏ אפשי להגדיר כפ? הצורך את מבנה הנתונים בקלט ובפלט בכל סוג קיבץ שהוא. שיטה 1* דומה לשיטת קלט ופלט הנהוגה בשפת התכנות פורטרן. בשיטת +17כע יש למתכנת שליטה מלאה על רון קריאת הנתינים מקובץ הקלט על עריכת הנתונים בקובץ הפלט | המבנה הכללי של הוראת ]221 היא. לקלט - ; (רשימת מבנה) (רשימת נתונים) ₪211 601 'לפלט - ; (רשימת מבנה) (רשימת נתונים) 2211 טק כללי הכתיבה של רשימת הנתונים (1155 ב085 זהים לכללי הכתיבה של רשימת המשתנים בהוראה מסוג 1181, ולכן לא נחזיר עליהם כאן. ובקצרה. ב-שימה 'י אפשר לכלול משתנים, קבועים או ביטויים המיתרים בשפה, לדוגמה. 3, 'מתתד0ת', 3-, 5, 5א0א, 2צא, ג*3. לדוגמה: ; ( (20)א) (45אא) 5017 681 שדה ₪%גא בכרטיס מתחיל בטור 1 והיא באווך של 20 תוים. ; ((5()5)8,2א0א) 17כם זט2 שדה תא0א יודפס באורך של 8 תוים הכוללים נקורה עשרונית ישתי ספרות עשי:ניית רשימת המבנה (118%6 10:₪85) כוללת את התאיו של הנתינים המיפיעים בישימת הנתונים, ובנוסף - גם הוראות פיקוח שונות תאור הנתונים כ.לל את סיג הנת ן (מספר?, אלפביתי) ואת אורך השדה. הוראות הפלקוח כיללית מעבי לוף ח-ש, שייה חדשה ומרווחים. קלט/פלט בשיטת 82017 הינו נוח ופשוט מכי:ן שהגדרות המבנה סמיכית לושימת הנתונים וכוללות אפשרויות רבות לעריכה. אילם זכור שיטה זו טובה לכמית קטנה של נתונים. למטרת קלט ופלט של כמות נתינים רבה יט להעדיף שיטות עבייה אחרות - עבודה במבני?ם (568ט65ש8:5 ) כפי טיוסבר בהמשך. : . "שישיוי ה ו - 302 = רשימת נתונים ורשימת מבנה הנתונים בקובץ שנקרא ע"? הוראת ₪017 או נכתב ע"י הוראת ₪217 אינם מופרדים אחד מן השני, ע"י פסיק או מירווח. בהוראות 5017 נחשב כל תו בקלט או בפלט כחלק מן הנתונים ועל כן יש לתארו ברשימת המבנה. לדוגמה, חמישה נתוני קלט המנוקביס בכרטיס ברציפות בסדר הבא: 10925 1 השדה הראשון הוא המספר ‏ 10925.101 השדה השנל הוא המספר 29 =7% השדה השלישי הוא המחרוזת אאסנ השדה הרביעי הוא המספר 200 0 החמישי הוא המחרוזת 1011101 בהוראת 5217 יש צורך לתאר את סוג ומבנה הנתונים בפלט או בקלט: יש צורך לציין במפורש ש-א0(0₪8 הינו מחרוזת תוים, דבר שהיה מילותר בקלט בשיטת 24174 או 57. בשיטות אלו נהוג לרשום למשל 'א10%8' בין גרשים. בזמן ביצוע פעולה מסוג 5217 נעשה זיווג בין רשימת הנתונים לבין רשימת המבנה (פרט למבני פיקוח) לפי מיקומם הסידורי ברשימה. לדוגמה: ;((2)6 ,(5)א ,(2)ע ,(5)א ,(78())15גת ,208 ,(מאהא) דדסם צטק הנתונים ₪אא, 208, 2415 יכתבו בקובץ הפלט לפי תאורל המבנה (4)15, (2)ע, (2)6 בהתאמה. מבנה א מיועד לפיקוח על מספר תו? הרווח בין השדות. אם רשימת הנתונים ארוכה מרשי?מת המבנה, יחזור הפיקוח לתחילת רשימת המבנה עד לסיום רשימת הנתונים. לדוגמה: (((8)20 ,(172()2)05,2 ,82ע2 ,171 ,1תק)17כם 607 1 יקרא לפי פורמט (5,2)ק, 111 יקרא לפי פורמט (4)20, בנקודה זו הסתיימה רשימת המבנה ולכן יחזור הפיקוהח תחילתה. הערך 282 יקרא לפי מבנה (5,2)ע ו-172 יקרא לפי מבנה (2)20. אם רשימת הנתונים קצרה מרשימת המבנה, דהיינו הסתיימה רשימת הנתונים ועדיין יש פריטים ברשימת המבנה, לא יבוצעו אלה האחרונים. לדוגמה." .((5)ת ,(10)א ,(4)10 ,(2)א ,(2)ת ,(2)א ,(02)ת)(0,צ,ך)צדפת צטע א הוא מבנה פיקוח לקביעת מרווח בין שדות. השדה 1 יכתב לפי מבנה (2)ע, צ יכתב - 303 7 לפי מבנה (2)? ו-6 יכתב לפי מבנה (8)10. בנקודה זו יועבר הפיקיח על רצף התוכ- נית להוראה הבאה, דהיינו לא תהיה שום התייחסות למבנה (10)א ולמבנה (5)ת רשימת מבנה (1156 02;₪35ס1) רשימת המבנה מכוונת לתאור מבנה הנתונים בקלט ובפלט: א. תאור מחרוזת תוים. ב. תאור מחרוות סביות. ג. תאור תמונת-תוי-עריכה (107086ק). ד. תאור מערכים. בקבצי פלט להדפסה כוללית רשילמות המבנה הוראות מיוחרות לעריכת תכנית ההר- פסה ועליהן נעמוד בהמשך. רשימת המבנה נלתנת בסוגרילם, מיד לאחר רשימת המשתנים, הניתנת גם היא בסוגרים. בין היחידות השונות שברשימה ישנם פס?קים (,) להפרדה. סדר היחידות ברשימה צריך להתא"לם לסדר המשתנים שברשימה. תאור מחרוזת תוים (8ה555:1-:8056ת608) א. תאור תוים אלפנומרים מחרוזת נתונים מתוארת ע"? התו 8 ובסוגרים מספר המציין את מספר התוים בשדה. לדוגמה (4)5 מצי?ין שדה אלפנומרי באורך של 5 תוים. הגדרה זו מקבילה להגדוה (5) 0684840788 בפסוק 88ג501ע. לדוגמה, יש לקרוא או לכתוב את הנתונים הבאים במכנה תוים: 1%29ַ0-ע78 15/10/75 בשרשרת תוים זו שלשה שרות: תאריך, שם העיר תל-אביב ומספר בת? הקולנוע בעיר. פסוק 8017 לקריאה או כתיבה *היה: --ן ; ((24)2 ,(8)8 ,(₪445()8)8א61 ,0188 ,מזהכ) דזנסם 2 ב. תאור מספרים לתאור מספרים עשרוניים עם נקורה קבועה משתמשים בהגדרת המבנה (4,א)ת2, כאשי ? מציין את אופי? הנתון, ט את אורך השדה בתוים, 6 - את מספר הספרות העטרוגיוץ (בימין המספר). הנקודה העשרונית יכולה להיות ממשית או לוגית בפלט, ירשם המספר בימין השדה ואם הוא קטן מאווך השדה יתיוספו מ. .ל ם, . ד 2 4 *-7--- - 308 - רווח. אם אין ספרות עשרוניות אפשר להשמלט אה הפרמטר 4, אם 4 גדול מ-0, כלומר ישנן ספרות עשרוניות, תרשם גם הנקודה העשרונית. אם המספר מכיל פחות ספרות עשרוניות מהמקום הפניי כשדה - יתווספו תוי אפס מימין. אם המספר שָלילי ירשס הסימן מינוס (-) משמאלו. אם ישנם אפסים "מובילים"(משמאל לספרות השונות מאפס) הס יוחלפו כתוי רווח בקלט, הנק.דה העשרונית יכולה להיות רשומה או משוערת (לוגית). כאשר הנקורה 1 העשרונית רשומה היא תקבע את ערך ומכנה המספר גם אם אלו שונים מהגדרת המבנה. אם הנקודה העשרונית אינה רשומה - מיקומה הלוגי יקבע ע"י הגדרת המבנה. לד. גמה: (6.2)? יגריר שדה מספרי שאורכו 6 תוים ושתי הספרות הימניות הן שבר עשרוני | בפלט תתווסף תמיד הנקודה העשרונית ובקלט היא אינה חייבת להופלע. דוגמאות לשדות. הנתון בקלט נתון במחשב הגדררת השדה ערך השדה במחשב הנתון בפל:ט 3. 57 . - (4,1)ת 3 . 206 / . (4,2)ץ 26 2 7 25- (5,1)ת . 73- " 2|,9 (4,2)ץ - 0. 2 > שים לב שכל יחידה ברשי?מה מורכנת מתי המבנה ובסוגרים - מספר התוים בשדה. כל יחידה מופרדת מקודמתה בפסיק. כל הרשימה נמצאת בסוגרים. בסוף הפסוק רשום המפריד נקודה-פסיק. בדוגמה זו לא הצגני את אפשרות הרילוג בקלט על שדות לא דרושים או רווחים בין שרות בפלט אם אורן השדה הרשום ברשימת המבנה קטן ממספר התוים של המשתנה, ?קוצצו התוים מלמין. ואם אורך השדה גדול ייתר - יתווספו מימין תוי רווח להשלמת המב- נה המוגדר. ד: גנגה לקלט: הנתון הגררת המבנה תכולת השדה גהונה 9 (4)6 הת 46 (4)7 סלט0ס12340 *-%-א (3)ב *-% בפסוקי פלט ("טל) אפשר להשמלט ברשימת המבנה את ציון האורך של השדה ולהסתמך על הקביעה האוטומטית של המהדיר לפי מבנה השדה בהוראת 8אא2₪01. לדוגמה: אם ערך השדה במחשב הוא (0₪25)4 וברשימת המבנה רשום התו 8 בלבד (ללא ציון אורך) יכתבו בפלט 4 תוים. אפשר להשתמש בשיטה זו גם לקלט: אם נתון '2506' אפשר להגדלר מבנה 4 (ללא ציון אורך) כדי לקרוא את שלשת התוים. - 305 - בהוראות קלט ופלט השונות נעשית הסבה של הנתונים, בעיקר אמורים הדברים לגבי נתונים מספריים, בין צורת הייצוג של השדה לפי רטימת המבנה לבין ההגדרה שנעשתה בפסוק מת61טע או להיפך. מספרים בשיטת הנקודה הצפה מוגדרים בצורה שונהָ אשר לא נעמוד עליה כאן. תאורמחרוזת סביות (קת86?1 516) מחרוזת סביות מתוארת ע"י הגדרת המבנה (ש)5, כאשר ש הינו מספר הסביות/תוים בשרשרת. כדי להציג מחרוזת סביות משתמשים בתוים 0 ו-1 בלבד. על כן, שרשרת בת ת סביות תיוצג בקלט ובפלט ע"? מחרוזת של ם תוים 0 ו-1. לדוגמה: ; ((5)5) (8פ060) דצדפס 6₪% השדה בקלט מכיל 5 תוים 1,0 המליצגים סביות בהתאמה. בפלט - יוצג השדה גם כן כצרוף של תוים 1,0 בהתאמה. תוים יקוצצו מימין או שתוי אפס יתווספו מימין כאשר השדה קצר או ארוך מהנתון המספרל. בפלט אפשר להמנע מציון מספר התוים בשדה, והוא יהיה לפי הגדרת המשתנה בתוכנית. אם הנתון בקלט מוגדר כמחרוזת אפשר לותר על ציון האורך. תאור תמונת תוי-ערלכה (6:ש2168) המבנה של הגדרת תוי עריכה לשדה הינו: 'הגדרת התמונה' ? כוונת תוי העריכה להציג את תמונת הנתונים ואת הפעולה שיש לבצע עבור כל תו ותו. למשל: ('2'999 , '44423'ס)(208 ,(מעגא)ד1פע [זסס השדה ‏ 4/8₪א מוצג ע"? 5 תוים אלפבתיים והשדה 268 ע"י 3 תוים מספריים:(ם)018. תוי עריכה המבצעים פעולה על שדה נתון הם ץ, 2, %, - ואחרים, כפי שיוסבר בסעיף עריכת נתונים, לדוגמה: ;('222.9'ת)(דא000) צנפט צטק שדה %1%א000 הינו מספרי? ובעריכתו לפלט לוצבו תוי רווח" משמאל במקום אפסים, נקוד עשרונית תוצב במקום המתאים בשדה, מימין לנקודה העשרונית תהיה ספרה עשרונית אחת. לדוגמה: שדה שערכו במחשב 0057,835 (כמובן בלי נקודה עשרונית פיזית) יוצג בפלט כ-57.8. 0 - 306 - תאור מערכים פסוק קלט/פלט מסוג 517 ושינושו עבור מערכים יודגם בפרק "מערכים". מרווחים בהגדרת המכנה הגדרת מרווח (ט)א מיועדת לבקרת רצף התוים: בקלט - יש לדגל על מספר תוים כמפורט בהגדרה, ובפלט - מציבים תוי רווח כמספר התוים בהגדרה. לדוגמה, אם רצף התוים בקלט הוא 927936 וההוראה הל?א: ;((1)ת, (3)א, (2)ת) (צ,א) ד017 607 נקבל במחשב את 92=א ואת 6=ץ. אם נדפיס את א, צ לפי ההוראה ;((1)ע, (1)א, (5)2) (צ,א) צדכם דטק נקבל את הספרות תת כאשר בין ה-2 וה-6 ישנו רווח אחד. הגדרות מקובצות ההגדרה המקוכצת מתיחסת הן לרשימת הנתונים והן לרשימת המבנה: א. אפשר לכלול בפסוק אחד מספר רשימות: (רשימת מבנה) (רשימת נתונלם) (רשימת מבנה) (רשימת נתונים) דצדפש לטק לדוגמה: ;((8)4, (8,2)ע:(מע2,א)((7)ע, (2()2)3צא, 56) דדכם לטק ב. כאשר לנתונים אחדים מבנה זהה אפשר להגדיר את המבנה ע"? גורם כפל מתאים: ; ((רשימת מבנה)ח ) (רשילמת נתונים) דזכם 667 לדוגמה: ;((84)9 ,(70)7,2 0217)04,8,0,0()3 007 המבנה של שלשת השדות הראשונים הוא (7,2)ע. מבנה השדה האחרון הוא (4)9. :(((08,3ת , (2,()0)20)4)05,צ, א)דדסס דטק כאשר נדרשת חזרה על יותר מיחידת מבנה אחת, צריך לחבוק את כל אקבוצה בסוגריים. בדוגמה שלפנינו המשתנים א, צ ו-2, א הם בעלי מבנה זהה בהתאמה, לכן חזרנו על הגדרת המבנה של א%, צ פעמיים. שים לב לזוגות הסוגריים בהגדרת המבנה. גורם החזרה יכול להרשם לפני הגדרת המבנה באחד משני אופנים: כביטוי הנותן ערך מספרי, ואז יש לרשמו בסוגריים, או כקבוע מספרי, ואז חובה להפרידו במרווח מתו הגדרת המבנה. ‏ למשל: (12)ת(5*5) או: (8)3 7. * 807 = תבנית עריכה - 8א6070זק העריכה הפשוטה ביותר של נתונים נעשית ע"? הוראות קלט/פלט מסוג 157, 4זאת או 217ע. הן מבצעות בקלט הסבה של שדה תוים מספרי לשדה מספר? בייצוג בל- נרל או דצימלי כמקובל במחשב, ובפלט - הסבה של שדה מספרי כפי שהוצג במחשב אל שדה תוים. ברוב המקרים הסבה זו אלנה מספיקה, ודרושה אפשרות להגדיר תבניות עויכה מורככות יותר. תבנית עריכה של נתונים דרושה בשני? מקרים: א. בהוראות קלט/פלט מסוג 41:60560 5217, ע"? הציון 2. ב. בהגדרת תכונות נתונים, ע"י הציון 2107088 (או בקיצור - 16ק). עוצמתה של תכונת העריכה של הנתונים מתבטאת בעיקר בהוראות פלט להדפסה, כפי שיוסבר בהמשך. את התכונה 210108 או 2 רושמלם בצורה הבאה: 'הגדרה' 1070%5ע או 'הגררה '? '"הגדרה" היא מחרוזת תוים הרשומה בין שני גרשים ומסמלת את אופי העריכה של הנתון. כל תו במחרוזת מקביל לתו בשדה הקלט או שדה הפלט, ולכן אורך המחרוזת זהה לאורך השדה שבו מטפלים. מושג העריכה של הנתונים מקובל בשפת קובול, גם כן בשם 2107088?. אפשר לפנות לפרק זה לדוגמאות והסברים נוספים. הגדרות אפשריות בתבנית העריכה נכלול כאן את האפשרויות העיקריות בלבר. א. הגדרות אפשריות לקלט ולפלט: התו המקביל בשדה יכול להיות מספרי בלבר. התו המקביל בשדה יכול להיות אלפביתי בלבד. התו המקביל *כול להיות מכל סוג שהוא. . "ף < << > נקודה דצימלית לוגית. כלומר היא "מוצבת" במקום היחסי כבתוך השרה דוגמאות: '9909' 101085 ג 80185ם ; '9%ג' 10 5 - 308 - - שרה 4הוא בן 3 תוים מסוג ספרות בלבד. הספרה הימנית הינה שבר עשרונל. - שדה 5 מכיל 4 תוים מהם: שניסם שמאליים-אלפבתיים, אח"כ ספרה אחת והתו הימנל ביותר יכול להיות מכל סוג שהוא. ב. הגדרות אפשריות לפלט בלבד, ומכוונות בעיקר למטרת פלט הדפסה: יש להציב תו מרווח (%ח518) במקום המקביל בשדה. 5 תו זה מציין שיופיע הסימן + או הסימן - משמאל לשדה, בהתאם לערכו. + רק אם ערך השדה הוא חיובי או אפס יופיע הסימן + משמאל למספר. - רק אם ערך השדה הוא שלילי יופיע הסימן - משמאל למספר. 2 אם משמאל של שדה מספרי ישנם אפסים מובילים הם יוחלפו במרווחים. .* תו זה פועל כמו תו 2 אולם במקרה זה י?וחלפו תוי אפס בתוי‎ * נקודה עשרונית תוצב במקום המקביל בשדה. פסיק יוכנס למקום המקביל בשדה. / לוכסן יוכנס למקום המקביל בשדה. דוגמאות עריכה: השדה המקורי 53 9.9 7.3 השדה המקורי הותאם לתבנית העריכה. 15 9 99990 22200 בשדה המקורי ישנן 5 ספרות שלימלם ללא ספרות עשרוניות. בתבנית נדרשה ספרה עשרונית ורק 4 ספרות שלימים. +3 +9 13 08 9+ 8+ רק סימן + אחד נשמר בסמוך למספר. 2- 9 12 נדרשה הדפסת סימן + 5 99*** 5*" אפסים הוחלפו בכוכביות -1 -9 -1 5 פ "9 5 04 תבנית עריכה זו מתאימה לתאריך. 14 99 14 15 9.9 5 48 2 מרווחים קיימים בין הספרות 8 ו-9. 6 9 6+ בתבנית הוגדרו רק 2 ספרות. 2208 99 00 במקור לא נכללו ספרות עשרוניות ולכן תבנית העריכה השדה הערוך הערות לעריכה הוכנסו אפסים. בתבנית צויינו רק 3 ספרות שלימים ולכן נשמטרה הספרה 2 (השמאליח) משדה המקור. - 309 - השדה המקור | תבנית העריכה| השדה הערוך הערות לעריכה 15 2222 15 תוי 2 מציינים החלפת אפסים במרווחים, והם באים במקומן של ספרות 9 בתכנית. 34 22222 24 אפסים משמאל הוחלפו במרווחים. 0000 222.2 מרווחים כל השדה הוחלף במרווחים כולל הנקודה העשרונית. 000 229.9 0.0 רק תוים שמקבילים להם תוי עריכה 2 הוחלפו במרווחים. 1086 2.9 2.200 בשדה המקור" יש רק ספרה עשרונית אחת. ספרות השלימים שלא נכנסו לתבנית - הושמטו. גורם חזרה במקרים בהם ישנה בתבנית העריכה סדרה של תוי עריכה זהים אפשר לציין תו אחר בלבד וגורם-חזרה. גורם החזרה הינו מספר שלם הרשום בסוגריים לפני תו העריכה גורם החזרה ותוי העריכה נמצאים בין גרשיים כנדרש בתבנית. לדוגמה: '4299'ץ זהה ל- '3(4)2(9)'ק '9,9אאאאא' 2107088 זהה ל- '5(*9.9)' שתטשך0זק הגדרת תכונות שדה נתונים שדה עריכה 2101088 מאפשר להגדיר תכונות של שדה נתונים. למשל, כאשר בק?; לשנו רצף של תוים ויש לקלוט אותו, ובאותה עת לבדוק אם השדה אלפביתי או נומרל אפשר לתכנת בצורה הבאה: נתון: 3844560 צא 19 תבנית העריכה: '9)4(4א(4)'ץק '6(9)2(4)'ק המשמעות: 4 תוים שונים .1 ספרה 4 ספרות 4 אותיות 2 אותיות ערך של שדה מספרי אפשר להציג בשני אופנים, על ידי התכונה 561% ספא1ץ, וע'"י התכונה 2107085. בשני המקרים הצגת המספר במחשב שונה: במקרה הראשון ההצגה היא דצימלי-מקובץ (4661081 6ַ6ַא6ק), ובמקרה השני - בצורה של תוים בורדים בצורה מתאילמה לפלט הדפסה, למשל. ערך המשתנה בשני המקרים הבאים יהיה זהה: ; (5,2) זע 6 2 כ 00 ;'9990799' 7107085 5 6 == . . = 310 - השלמות לקלט/פלט בסיסי בפרקים קודמים הצגנו שיטות קלט/פלט מסוג 57904%: דגכ, צ5דם, צצסם. הטתמשנו בצורה הפשוטה והכללית של ההוראה. הנחנו שהקלט והפלט בשיטות אלו מתבצע מ- ואל יחידות קלט/פלט סטנדרטיות מוגדרות של מערכת ההפעלה (בדרך כלל קורא הכרטיסים והמדפסת), ובפלט המכוון למדפסת לא חרגנו מהאפשרויות הסטנדרטיות של עריכת הנתונים. אפשר לכלול בהוראות אלו פרמטרים נוספים לשם הרחבת אפשרויות העיבוד: הגדרת קובץ קלט וקובץ פלט השונים מקבצי המערכת, או דילוג לרשומה חדשה. בקובץ המלועד להדפסה יש אפשרויות נוספות לדילוג לדף חדש, לשורה רצוייה, או לטור רצוי בשורה. הצורה הכללית של ההוראות היא: להוראות קלט: דג (שם קובץ) טתזק ו 6 דזפם (רשימת נתונים) (שם קובץ) - 0/9 ; (ביטוי)- פ]5% שר לרשום את האופציות הרצויות בכל סדר שהוא. לדוגמה: ;(5) ע5%1 (צת0דאמטא1) אתצדץע דג 07 להוראות פלט: דהפ (שם קובץ) שדק ןו 6 דזספם (רשימת נתונים) ; (ביטוי) שק בהוראת הפלט עשת המתייחסת לקובץ הדפסה אפשר לציין חלק מהאופציות הבאות, או את כולן: 74 (שם קובץ) מע1ע | 0757 דשק דזסט (רשימת נתונים) 2 (ביטול) שאזז ; (ביטוי) 5% = 3|| > בהוראות מסוג 17כע כלולים הפרמטרים בתוך רשימת המבנה, בין הגדרות השדות. בנוסף אפשר לכלול בהוראת 821 גם פרמטר: (ביטוי) א60109. דוגמאות: ;(2צא) 1157 (2) ע1א5% (דת0קעת) אמצק צטע (ב ;(7) מא11 468 (55מתסכ2 ,נעגא) עגפ (5דאט000) מענץ צטע (ס (0א 2408 ,'כעת0ססת קשא') צדכס (פפצפגא) מתצע צטע (6 ;((2)3 ,(20)א ,4 ,(2) מעא1ע ,(מסגת) האופציה: (שם קובץ) צ6050 אופציה זו, היכולה להופיע רק בהוראת הקלט 081, מציינת שיש לכתוב את נתונל הקלט בדיוק במבנה בו הם כתובים בקובץ הקלט, על קובץ הפלט ששמו מצויין בהוראה. אם אין מצלינ?ם שם של קובץ פלט, מניחה תוכנית המהדיר שהקובץ הוא קובץ הפלט הסטנדרט? של מערכת ההפעלה. לדוגמה: ; (ל+אזתץ) צ002 (צ,א) 4זגפ (שאקסא1) תנק 007 מיד לאחר קריאת הנתונים א ו-צ מקובץ הקלט הם *כתבו, בדיוק במבנה כו נקראו, על קובץ בשם צאזאק. האופציה: (ביטוי) :5% האופציה 5%17 מציינת טיפול בשורה (או רשומה) חדשה בקובץ. הביטוי בסוגרלים מוערך ומוסב למספר שלם שט. הכתיבה או הקריאה יבוצעו בשורה (או רשומה) ה- מן השורה (רשומה) הנוכחילת. ‏ אם לא כותבים "ביטוי" או אם 0=> יניח המהדיר 1>ח עבור קובץ שאילנו קובץ הדפסה. לגבי קבצי הדפסה, אם ערכו של שט אינו גדול מאפס, יודפסו הנתונים באותה שורה בדף ההדפסה, אופצית ?5%1 תתבצע לפני העברת הנתונים המצויינים ב"רשימת הנתוני?ם", אפילו אם נרשמה אחריהם. לדוגמה: ; (4) ע5%1 (4,5,0) 1157 (10115) ממדק צטק הוראה זו תגרום לכתיבת תוכן הנתונים א, צ ו-2 מתחילת השורה הרביעית לאחר השורה הנוכחית. ;(3) ע1א5 דטשק הוראה זו תגרום לקידום הכתיבה בקובץ הסטנדרטי בשלש שורות. האופציה: 22608 אפשר להשתמש באופציה זו רק עבור קובץ הדפסה. היא מציינת מעבר לתחילת דף חדש בקובץ ההדפסה. אופציה זו, אם מופיעה, תתבצע לפני כל אופציה אחרת בפקודת הפלט. ב - אוה - האופציה: (ביטוי) אאןם אפשר להשתמש באופציה זו, רק עבור קובץ הדפסה. הביטוי בתוך הסוגריים מוערך וערכו מוסב למספר שָלם - ש. האופציה תגרום להכנסת שורות ריקות בהדפסה, כך שהכתי- בה תבוצע בתח?לת השורה ה-> מתחילת הדף. אופציה זו מתבצעת לפני? כל העברת נתונים, אפילו אם נרשמה לאחר "רשימת נתונים". כאשר משתמשים ב-8א121 וב-22468, יתבצע ה-2405 קודם. לדוגמה: 1 (2,+צ,א) 2157 (42) מאזן צטק ההוראה תגרום למעבר לתחילת עמוד חדש, ומשם למעבר לשורה 42 בעמוד ואח"כ יכתב תוכן הנתונים א; צ ו-2 על קובץ הפלט הסטנדרטי. האופציה: (ביטוי) 6910 אופציה זו מופעלת בהוראה מסוג ₪817 בלבד. כותבים אותה ברשימת המבנה. הביטוי מחושב וערכו מוסב לערך שלם ש. ערך זה מציין את המקום היחסי? מתחילת הטורה שבו יש לרשום את הנתון הבא ברשימה. לדוגמה: ;((2)ת ,(25) א%ש06001 ,(6)8,2)ת) (11),2כם דטק הנתון 8 יכתב בתחילת הרשומה משמאל, ובמקום ה-25 מתחילת הרשומה יכתב הנתון 5. בקלט - יקרא הנתון 8 החל מהמקום ה-25 מתחילת הרשומה. אופציה זו מאפשרת לדלג על תוים ברשומות קלט ופלט. השוני מתו המבנה א הוא בכך שכאן מדלגים אל מקום יחסי מתחילת הרשומה בעוד שעם תו א מדלגים על מספר התוים הרשום עם תו המבנה. - 3|3 - תרגיל: לש לכתוב תוכנית הקוראת כרטיסים, כאשר כל כרטיס מכיל שלושה שדות: א. מס' פריט (מחרוזת בת 5 תוים), ב. מחיר ליחידה (במבנה של 84.84), ג. כמות שנמכרה (במבנה של 84484). כל כרטיס מייצג מכירה. הנתונים נוקכו מכנה המתאים לקריאה באמצעות 1/0 641:66066 156/. יש לחשב את ערך המכירה (המחיר ליחידה מוכפל בכמות שנמכרה) ולהדפ?ס שורה עבור כל כרטיס שנקרא. השורה תכיל את השדות הבאי?ם: א. מס' פריט, ב. מחלר ליחידה, ג. כמות שנמכרה, ד. ערך המכירה. בתחילת הדו"ח יודפסו כותרות מתאימות. סוף הקובץ לאופיין ע"י כרטיס (אשר אין לעבדו) המכיל בשדה מס' הפריט חמש כוכביות. בסוף הדו"ח יש להדפיס את סה"כ ערך המכירות. דוגמה לקלט עבור התרגיל: '81574' '90548' י'15820' 5 2.43 דוגמה לפלט; ו צאט 10-00 דתאק 00 5שבטבת תת- 10 0 :פטטנהאט 707 - 314 - ; (א41) 5א02710 תתטפעסשתק :54105 1 , (5) 015 מממא מתג סעכ , (4,2) א61מכ פטאדק ₪ , (3) אס פעאזץ צדדיד'אג טף , (9,2) עאוא01מפ פטאדץ יו )2( ;‏ 060131 כסאזץ תממותוא-10005 3 1 (3) מא1ת מסגת 207 ; ('שטעגט' ,'צד1דאהט0' ,'ש0נתק צדאט' ,'תמשוא אמקד') 4 1 (4) שאד צטשק :('-'(5),'-'(8),'-'(10),'-'(11)) 5 ;0 = 7018 6 ;1 צם 1 = תעםשא 20028 20 7 ; (צד21אהטס ,מ10פק ,(תהממעא) 1157 001 8 /* הדגס תפש 6א */ אפ '*'(5) = תתנפתא קך 9 ; 50 10 7 (2) ע1א5% צטשק ; ((0701ד, ':שט נגט ,071ד') 11 תק 02 פאש 108 60 12 ; פאק 13 :ד 18 ;0 5 ; 117 105*00תק = מטנהט 16 ד = 7018 17 1 (1) ק1א5 לטק ; (פט,נט, צד1 דאב טס, מ6דחק, פםםתוא) 8 ; פאם 19 ; פאק 20 פאתש :אגת00את 08 כאם הוראות ההדפסה בפסוקים 3 ו-4 יגרמו להדפסת כותרת בראש הדו"ח. את מלת המפתח 2468 אפשר לשלב בכל הוראת פלט לקובץ הדפסה (1/0 5:68₪ם8 בלבד). משמעותה: עבור לתחילת דף חדש. סדר רישום ההוראה 22408 אינו משנה, היא תתבצע ראשונה תמיד. את ההוראה (ם)8א11 אפשר לשלב גם כן בכל הוראת פלט לקובץ הדפסה. משמעותה: עבור לתחילת השורה, ה-ם-ית בדף ההדפסה. סדר רישום הוראה זו אינו משנה, היא תתבצע " 912 = ראשונה אלא אם כן נשתמש ב-2205, ואז 2405 תתבצע קודם ואה"כ 8א121. בצוע פסוק 3 אם כן, יתנהל כך: בתחילה יתבצע מעבר לדף חדש, לאחר מכן יתקדם מנגנון הכתיבה לשורה השלישית בדף ואז יכתבו ארבעת הנתונים בטורים 1, 25, 49 ו-73. אפשר היה לרשום הוראה זו כדלקמן (3) מאזע (-בש1) 2157 דטק וסדר הביצוע היה זהה לזה בפסוק 3 בפסוק 4 נשתמש ב-(8)4א11 כדי לעבור לתחילת השורה הרביעית בדף ההדפסה. אי שימוש ב-(4) 8א11 במקרה זה היה גורם לכך שהנתון הראשון ברשימה (11 סימנל -) היה מודפס בהמשך שורה 5, דהיינו בטור 97. לאחר ביצוע פסוקים 3 ו-4 לודפסו בשורה 3 ארבעה קבועי מחרוזת תוים ובשורה 4,בדיוק מתחתם,רצף סימנ? - באורך המתאים. פסוקים 3, 4 ו-5 *תבצעו פעם אחת בתוכנית. פסוקים 7 ער 18 לעומת זאת, מהווים את חלק התוכנלת החוזר על עצמו ותלוי במספר הכרטיסים בקובץ. הוראת ה-20 בפסוק 6 תגרום לביצוע חוזר של פסוקים 7 עד 18 ללא תלות בתנאל כלשהו. לאחר קריאת תוכן הכרטיס הבא בפסוק 7 נבדק השדה "מס' פריט". אם תוכנו הוא ו אין יותר נתונים (במקרה זה כרטיסים בקובץ) -ונבצע את פסוקים 10, 11. בפסוק 10 מודפס ערכו הסופי של המשתנה 7014 ולפניו, קבוע מחרוזת תוים במרחק 2 שורות מן השורה האחרונה שהודפסה. דילוג זה על שורות נעשה ע"י השימוש בהוראה (ם)5%12. אפשר להשתמש בה בכל הוראת קלט/פלט מסוג 1/0 5::68₪ לגבי קובץ כלשהו. משמעותה: יש לדלג על ם רשומות. במקרה של קובץ הדפסה זהה הרשומה לשורה. אם יש עדיין נתונים בקובץ נבצע את פסוקים 15-17. בפסוק 15 מחושב ערכו של 105ג?. בפסוק 16 מתווסף ערכו של 5ש1גט לתוכן השדה 7012 אשר בו אנו מסכמים את כל ערכי המכירות. בפסוק 17 מודפסים כל הנתונים הקשורים במכירה החל מתחילת השורה הבאה. השימוש ב-(5%12)1 במקרה זה מבטיח שרביעית הנתונים תודפס החל מתחילת השורה הבאה למרות שבשורה הנוכחית יש מקום (בעמודה 97) להדפסת נתון נוסף. לפסוק 20 - סוף התוכנית - נגיע מפסוק 11, אשר יתבצע כאמור לאחר קרלאת כרטיס הנתונים האחרון. - 3!6 - 9 6: אר8ן |תו[ים באארכים ב-2/1 קיימים שני סוגי נתונים: נתונים בודדים ונתונים מקובצים בתוך מעוך או מבנה. משתנה המייצג נתון בודד נקרא משתנה סקלר? (08+18516 צע56818) ובסוג זה של משתנים עסקנו עד כה. משתנה המייצג אוסף נתונים נקרא משתנה מערך (18916ז8/ עְ8זץ3) שיקרא להלן מערך, ומשתנה מבנה (08+18516 6צש66טש56) שיקרא להלן מבנה. תאור המערך והגדרתו נוח לעתים לקבץ נתונים, או משתנים בודדים, ברשימות או בטבלאות חד-ממדיות או רב-ממדיות (למשל טבלת לוח הכפל), ולהתיחס אליהם כאל קבוצה מוגדרת. כדוגמה אפטשר לראות טבלה/רשימה של סוגי מכוניות האפשריות להשכרה, ובה - פריטי הרשימה. לטבלה יש שם כולל. איבריה מסודךים ברשימה סידורית וכוללים את הערכים הרצויים. כך, בשורה הראשונה ירשם שם המכונית ע09%9ע, בשורה השניה - 50517 וכו' כמפורט בשרטוט: עת6תע|(1) 6285 אפשר לרשום את ערכי הטבלה הזו בצורה הבאה: האיבר הראשון: 'כתפ0ע' = (60285)1 האיבר השנ? ‏ : '505174' = (0285)2 האיבר השלישל: 'ןגזע'= (3) 6285 אפשר לקבץ קבוצת נתונים למערך אחד אם לכולם תכונות זהות. מערך הוא אוסף חד או רב מילמדי של אלמנטים או איברים שלכל אחד מהם מבנה זהה. רק המערך בכללו- תו מקבל שם, וההתייחסות לאיברים מסויימים במערך נעשית ע"י ציון מקומם היחסי במערך, כפי שמתואר בדוגמה הקודמת. בטבלה 0855 האיברים הם במבנה של מחרוזות תוים, אך אפשר לכלול בטבלה כל סוג נתונים שהוא: נתונים מספריים, נתונ? מחרוזת תוים או מחרוזת סביות, תויות, מערכים. - .ייצ %. . + וצר ד 7 - הגדרת המערך איברי הטבלה חי?יבים להיות רצופים כקבוצה אחת ולכן יש להגדיר במפורש את הטבלה ותכונותיה ע"י פסוק ההכרזה: ;(תכונות איברי הטבלה) (תכונות מבנה הטבלה) (שם הטבלה) מת01322מכ בהוראה אחת אפשר להגדיר יותר מטבלה אחת, בדומה להגדרת משתנים. - "שם הטבלה" יכתב לפי כללי כתיבת מזהים (משתנים), - "תכונות מבנה הטבלה" הם ביטויים המציינים את מספר האיברים בטבלה ואת ממדלה. בטכלה רב ממדית, ירשם ביטוי לכל מימד. את תכונות המבנה רושמים בסוגריים. - "תכונות איברי הטבלה", הן הגדרות תכונות של המשתנים שבטבלה. לכולם תכונות זהות. את הטבלה 06485 שהצגנו קודם נגדיר בצורה הבאה: ; (8) פפך0גתחס (3) 0425 פתג01מס דוגמה נוספת: (6,2) גואדסמס פמא1ץ (6) פמעתגט ע0 157 מתהמסטס ;(8) צתגא51 ססאדץ (4,2) שעפגך בדוגמה הראשונה מוגדר מערך בשם 5פט1גט 07 1151. המערך הוא בעל מ?מד אחד ומכיל שישה איברים. כל אחד מן האיכברים הוא בעל התכונות (6,2) גא01טס פפאנץ. בהמשך הדוגמה מוגדר מערך שני בעל שני מימדים המכיל 8 איברים (2א4) וכל אחד מן האילברים הוא בעל התכונות (8) צאגא81 פפא1ק. המספר או המספרים העשרוניים הרשומים מלד לאחר שם המערך בתוך סוגרייס מהווים את תכונת ה"מלמד" (56ש15ת8:5 ה510ה6ה41). | תכונה זו חייבת להכתב מלד לאחר שם המערך עם או בל? מרווחים מפרידים. תכונת המל?מד מספקת גם את מספר המימרים וגם את התחום (88מטספ) של כל מימד. תחום המלמד הם ערכי תחילת המימד וסופו. היקף (5ת6:א6) המימד הוא מספר האיברים הכולל את התחום העל?ון והתחום התחתון של המימד. ציון של מספר אחד בלבד בפירוט המימד במשפט ה-5ת02מק, פירושו שהתחום התחתון של המימד הינו 1. בדוגמה הראשונה, המערך 0241085 ע0 12151 הוא בעל מימד אחד כאמור, התחום התחתון של המימד הוא 1 והתחום העליון הוא 8, היקף המימד הוא 8. בדוגמה השניה המערר 8 הוא בעל שני מ?מדים. התחום התחתון של המימד הראשון הוא 1 ותחומו העליון הוא 4. התחום התחתון של המימד השנ?ל גם הוא 1 ותחומו העליון הוא 2. 5 7- 7-ה ה - 8ו3 - אם התחום התחתון של המימד שונה מ-1 יש לציין זאת במפורש ע"י ציון שנל התחומים כשהם מופרדים ע"י? המפריד (:), כבדוגמאות הבאות: ... (2:11) מעתץ ; (2:6 ,4 ,1-:3-) 7 בדוגמה הראשונה 07807051 הוא מערך עם מלמד אחד, תחומו התחתון והעליון הינם כ- ו-4 בהתאמה, והיקפו 10, וזהו גם מספר איברילו; בדוגמה השניה 722508 גם הוא מערך חד מימדי והיקפו 10, אולם תחומ? המימד שלו שונים, והם 2 (תחום תחתון) ו-11 (תחום עליון). בדוגמה השלישית 44 הוא מערך תלת-מימדי; תחומי המימד הראשון הם 5- (תחתון) ו-1- (עליון) והיקפו 3. תחומי המימד השני הם 1 (תחתון) ו-4 (עליון) והיקפו 4. תחומ? המימד השלישי הם 2 (תחתון) ו-6 (עליון) והיקפו 5. מספר המימדים המירבי המותר הוא 15. הערך המזערי של תחום תחתון הוא 8 והערך המלרבי של תחום עליון הוא 32767. התיחסות לאיברי מערך תחומי ומימדי המערך קובעים את צורת ההתייחסות והפניה לאיברים מסויימים בו. נתייחס לדוגמה הבאה: ; (3) מאאז6טכ פטאזץ (5)א 6 נניח שברצוננו לשים בחמשת איברי א את הערכים הבאים בהתאמה: 45, 972, 5, 122, 255 פעולה זו נבצע ע"י חמישה פסוקי השמה כדלקמן: 51 = (5)א% ;972 = (4)א נ5 = (3)א ;122 = (2)א ;25 = (1)א כל אחד מן המספרים בתוך הסוגריים המופיעים אחרי שם המערך הינו ציון (5ק556*1ט5).. הציון המופיע אחרי שם המערך, עם או בלי מרווחים מפרידים, מזהה איבר מסוים במערך.. דוגמה למערך חד-מימד?ל: ;(2) 861481 כטפא1ץ (3:2-)צ מת2וסמכ האיבר הרביעי בטבלה זו הוא (0)צ מכיון שהאיבר הראשון הוא (3-)צ. התייחסות לאיבר הרביעי, לשם הדפסת ערכו בחזקת 3, תעשה כך: ;.(0(**3)צ) 0157 צטשסק דוגמה למערך דו-מימדל: ;(4,2) עתגא61מכ כפעאנקע (3,4) מעפ2ד מפפהתסמס מערך דו-מ?מדי אפשר לתאר בצורה גרפית; למימד הראשון נקרא שורות ולשני - עמודות או טורים. התייחסות לאחד מאיבר? המערך 1508 תעשה ע"י קידוד שני ציונים: ציון השורות וציון העמודות. לדוגמה: האיבר הנמצא בשורה השניה וכעמודה השלישית יצויין ע"י (2,3) 51₪ד7, וזה הנמצא בשורה השלישית ובעמודה השניה ע"י (3,2) ₪ וַמגד. המחשה גרפית זו אין לה ולא כלום עם צורת ארגון איברי המערך בזכרון המחשב. המערך מאורגן בזכרון לפי סדר המ?מדים. כלומר, המימד השמאלי ביותר ברשימה הוא קבוע ושאר המימדים משתנים מהתחום התחתון ועד העליון. לדוגמה, במערך דו-מימדל ₪: ((2,1) מתפהד ,(1,4) מתפגד ,(1,3) מ1פהדך ,(1,2) 808ד ,(1,1) שתפגך (3,4) מתתהד ,... ,(2,3) מעתהך ,(2,2) ממתגך תכונת "ציון" של איבר במערך היא (15,0) 501% פפאזץ. לכן, אם הוא משתנה - יש להגדירו או להשתמש בברירת המחדל למשתנים. הציון המופיע יחד עם שם המערך אינו חייב להיות מספר קבוע, אלא כל ביטוי תקף ב-21/1. כאשר ערך הביטוי אינו מספר שלם, יוסב ערכו לנתון בעל התכונות (15,0) צתגא51 סספאךץע, עם השמטת החלק העשרוני של הערך המוסב דוגמאות: א. בדוגמה הקודמת הגדרנו את 18815. התייחסות לאחד מא?ברי 188]5 יכולה להעשות ע''ל (2**א ,א/(4+א)) 505גד אם ערכם של א, א , א ,א הם 1, 5, 12, 7 בהתאמה, אזי התייחסות תהיה למעשה לאיבר (3,1) 2208ד. שים לב ש-א+א שוים ל-19, ותוצאת החילוק 19/5 הלא 5 כאשר הושמט החלק העשרוני. ב. נניח שהגדרנו מערך כדלקמן: ;(5) 8613040 פשא1ץ (20 ,20 ,20) דשא שת 61מם דרוש שכל איבר במערך יכיל את ערך מכפלת שלושת הציונים המזהים את מכהותו ב. נוך, - 320 - מעין לוח כפל תלת-מי?מדי?-20*20*20 | קטע התוכנית שיבצע זאת יהיה: 1 ,1 70 1 = א 26 :062 0 1 = 1 76 0] 2 28 = 1 70 7 3 4 ;,ן]*ך*א = (ע,ד,א) הצע 5 ; 1007 פאם בדוגמה זו מופעלות הוראוח 20 מוכלות, כל אחת מהן פועלת על אחד מהמימדים של הטבלה 8/.7?. | ההוראה בשורה 1 פועלת על המלמד הראטון, ההוראה בשורה 2 - על המימד השני וההוראה בטורה 3 - על המימד השלישי. סדר הפעולה יהיה כדלקמן: : ישתנה 12 מ-1 עד 20. 1 ושוב ישתנה 1 מ-1 עד 20, וכך הלאה עד אשר כאשר 1 = ו ] . א אח"כ 1 = < 1 = % ,20= 1 ושוב ישתנה 2 מ-1 עד 0. אח"כ 2 = % ,1 = 1 ו-12 ישתנה מ-1 עד 20. הצרוף האחרון א ַיהיה 20= % ,20= 20,1 = 1 והפעולה תפסק. שים לב שבדוגמה זו ישנה הוראה פא₪ אחת, אשר נושאת את התוית של הוראת 0 החיצונית ביותר. ג. נניח שהוגדרו שלושה מערכים כדלקמן: ;(6) 01%41מכ פמאדע ((6)10 ,(50)10 ,(4)5) מתגסטם בשלב מסוים בתוכנית יש צורך להעביר אל 4 את מכפלת כל איבר זוגי של 5 באיבר הזוגי המתאים לו ב-6. דהיינו, את (8)2("*6)2 יש להעביר אל (2)1, (5)4(*0)4 אל -(8)2 וכך הלאה. קטע תוכנית שיבצע זאת, ?היה: 5 ד 1 = 1א 28 ; (6)1*2* (5)41*2 = (24)01 ; פאם 1 ישתנה מ-1 עד 5 לפי אלנדקס איברי המערך 8. האינדקס של מערכים 5 ו-6 ל?שתנה מ-2 עד 10 בדילוגים של 2 לפי המכפלה של 1*2א. הוראות קלט/פלט בסיסיות למערכים א. הוראות מסוג - 1+66%686כ2 2868 1) מבנה ההוראה לקלט: ; (רשימת נתונים) 28478 (שם קובץ) שתדץ 6087 - 32[| - ברשימת הנתונים שבהוראה אפשר לציין את שם המערך שלתוכו מתכוונים לקרוא את הנתונים מהקובץ. שם המערך ירשם ללא כל ציון. נבקובץ הקלט ירשמו הנתונים בצרוף שם המערך וציון האיברים. לדוגמה, נתונה הגדרת טבלה דו-מימדית : ;(4) ססא1ץ (2)5,8 68 נניח שבתוכנית יש לקרוא נתונים לתוך האיברים הבאים של ג: (405,3 ,(1, 401 , 40351 .(2)2260 הוואת הקלט לקריאת הנתונים מתוך קובץ הקלט הסטנדרט? תהיה: ;(ג) 2414 67 הנתונים בקובץ הקלט ירשמו בצורה הבאה, בכל סדר רצוי (אך למען הבהירות רצו?ל שיהיו מסודרים כצורה הגיונית כלשהי): ]5פ- = (4)5,8 ,666 = (4)1,1 ,12- = (2)3,5 ,7 = (24)6)2,4 2) מבנה ההוראה לפלט: ; (רשימת משתנים) 2278 (שם קובץ) 8ת1ק דעק ברשימת הנתונים שבהוראה אפשר לרשום את שם המערך או איברים בודדים מתוכו לפי הדוגמאות הכאות: ההוראה ; (8) 5478 (דט0קד00) מע1ת דטק הגרום את כתיבת כל איברי המערך 2 בקובץ 00120 לפי הסדר בו הם מאורגנים כבזכרון, דה*ל%3: 1-"(4)5,8 774" (4)2,2 ,3-=(2)2,1 ,...,2)1,2(=77 ,1,1(=666) ההוראה ; ((4)8,3 ,(4)1,5) 2278 (דעטפ5עת) 105ת דטק ווגרום לכתיבת שני האיברים שברשימת הנתונים. נתון קטע התוכנית ;8 70 1 = 7ט0 0 ;(( 007 ,2)) גדא דטק ; פאם קטע תוכנית זה יגרום לכתיבת כל איכר? השירה 2 של המערך 8. בצורה דומה אפשר לכתוב חלק מאיבר? שורה, וכל או חלק מאיברי טור כלשהו. ב. ‏ הוראות מסוג - 2166566 1155 1) מבנה ההוראה לקלט: ; (רשימת נתונים) 2157 (שם קובץ)ש:1ץ 057 ברשימת הנתונים שבהוראה אפשר לקודד את שם המערך, או שמות איכרים מסוימים מתוכו. - 922 - כאשר רושמים רק את שם המערך יקראו הנתונים לכל איבריו. לדוגמה: ,(7) תגאס (10)א ,(2) תגגס (5)8,10 סכ ההוראה ; (8) 2157 (אך1) מעצק 007 תגרום לקריאת 10*8 = 80 נתונים מקובץ א1 והשמתם באיברי 5 לפי הסדר בו הם מאורגנים בזכרון. נניח שהנתונים בקובץ אינם מאורגנים בסדר בו מאורגנים איברי 8 בזכרון (שורה אחר שורה), אלא בסדר הפוך, דהיינו עמודה אחר עמודה. במקרה זה א? אפשר לרשום רק את שם המערך אלא יש לפקח על סדר קריאת הנתונים. דרך אחת לעשות זאת תהיה: (8 70 1 = נ 6כ (א%,5)1))) 2157 (א1) אמק 61 ;.((10 10 1 = ; 28 הנתונים" של הוראת קלט/פלט בשיטת 1157 אפשר לרשום ביטויים זה, רשומות שתי הוראות 20: הוראת * 20 הלא החיצונית והו- כלומר איברי השורות 1 ישתנו מהר יותר מאיברי העמו- שים לב שב"רשימת והוראות. במקרה ראה 1 20 מוכלת בתוכה. דות . 2) מבנה ההוראה לפלט: ; (רשימת נתונים) 12157 (שם קובץ) טתדע דטק ברשימת הנתונים שבהוראה אפשר לקודד גם את שם המערך ו/או שמות איברים מסויימים מתוכו, וכמובן ביטויים או קבועים. ההוראה ;(5) 1157 דטק תגרום לכתיבת כל איברי מערך 5 (שורה אחר שורה) בקובץ הפלט הסטנדרטי של מערכת ההפעלה. ההוראה - (8 0ד 1 = 4 0כ (א,א20) ,(א)א)) 1157 (5תגט) תמדק צטק ;((10 16 1 = א 8כ תגרום לכתיבת תוכן איברי א ו-5 בסדר כדלקמן: האיבר הראשון של א ואח"כ כל אל- ברי העמודה הראשונה של 5, לאחר מכן האיבר השני? של א ואיברי העמודה השניה של 5 וכך הלאה. שים לב שההוראה % 20 הינה החלצונית וההוראה % 20 היא ההוראה המוכלת לפיכך כאשר 1 = א תבוצע הכתיבה של (1)א ושל כל 8 האיברים (לפי 4% 0פ) אח"כ יהיה 2 = א ותבוצע הכתיבה של (%2א ושל כל איברי שורה 2 של בתוכה. אשר במערך 8. המערך 5 וכך הלאה עד אשר 10 = א. - 323 = ג. הוראות מסוג - 215:6605%664 416ק הוראוה מסוג זה דומות באפשרויותיהן להוראות מסוג 156. רשימת הנתונים בהוראה 217ע נכתבת כבצורה דומה לכתיבתה בהוראת 1151. באשר לרשימת תכנית הנתונים (0%*₪86+), נשמר הכלל שכל תכנית ברשימה זו צריכה להקביל לנתון הנמצא ברשימת הנתונים. כאשר רשימת הנתונים ארוכה מרשימת התבנית, תחזור רשימת התכנית על עצמה עד להשלמת רשימת הנתונים. אם רשימת הנתונים קצרה מרשימת התבנית, תסתיים פעולת קלט/פלט כאשר תסתיים רשימת הנתונים. אם נתונה טבלה 142918 בת 5 איברים, יש לרשום את ההוראה הבאה כדי לקרוא לתוכה 3 איברים: ;((4,1)ת 2‏ 3 ) (3 70 1 = 1 20 (1) ש50ג7) דזסם 687 תרגיל התרגיל הבא ממחיש את השלמוש והטיפול במערך חד-מימדי. נסוח הבעליה: לש לקרוא 250 נתונים מספריים, כל אחד בגודל מירבי של 7 ספרות עשרוניות, לתוך מערך חד-מימדי. הקלט במבנה של 1/0 118%6-61:66866. יש לסרוק את איברי המערך, למצוא ולהדפיס במבנה של 1/0 28%58-41:66566 | את הערכים הבאים: המספר המלזערל במערך ואת המספר המירבי במערך. פתרון: 1 ; (אזאא) 5א02710 500ת :55208 7 (7) זאא01מכ פמפא1ץ (250) 5תפשא 600 )7( ,‏ מגא61מס פפאנע (אגוו, אזונ) ; (3) עאא01פכ פטאנזק אפפאז ; (85פאשא) 2157 007 ; (1) פתפתא = אגא , אזא ,0 76 2 = אפסא1 0 אפעד אנא > (אפפא1) פתספותא קז ; (אפפא1) 85פפושא = אזא 7 אפטך אגא < (אפפאך) 85פפותא קז ; (אשסא1) 5תמפותוא = אא ₪( ₪ ₪0 -ש ; סאם ; (*א, א1ע) 478 דטק 10 ,5308 פאם 328 - הסבר: בפסוק 2 מוגדרים כל המשתנים הנחוצים לביצוע התוכנית. הראשון, 85שפתא, הוא מערך חד-מימדי בעל 250 איברים, אשר יכיל את סדרת המספרים. המשתנה השני, אךא, יכיל בסוף ביצוע התוכנית המספר המזערי בסדרה. 0% יכיל בסוף ביצוע התוכנל?ת את המספר המלרבי בסדרה. | אספא1 ישמש כמשתנה פיקוח בפסוק 5. ביצוע פסוק מס' 3 יגרום לקריאה של 250 מספרים מקובץ הקלט הסטנדרט? אל 250 איברי המערך. לאחר שהמספרים מצויים כולם בזכרון המחשב (במערך) אפשר לסרוק איבר אחר אלבר במערך, ולהחליט מ? ביניהם הוא המספר המיזער? ומיהו המספר המלרבי. ההחלטה נעשית על סמך השואה. כיון שאל אפשר להשוות את כל המספרים במקביל, נקבע באופן שרירותי שערכו של איבר מס' 1 במערך 5תעפשא הוא בעל הערך המיזערי והמירבי ונעביר לכן את ערכו אל א41 ואל אאא בהתאם (פסוק 4). הדבר הבא שיש לעשותו הוא סריקת כל אחד מאיברי המערך והשואתו אל אא ואל אא. אם ערכו של איבר מסוים קטן מערכו הנוכחי של | א1א, יקבל המשתנה אצא את ערכו של אותו איבר (פסוק 6). אם ערכו של איבר מסויים גדול מערכו הנוכחי של אגע , יקבל המשתנה א./1 את ערכו של אותו איבר (פסוק 7). סריקת כל איברי המערך (החל מן האיבר השנ?ל) נעשה ע"י הוראת 20 (פסןק 5 עד פסוק 8). ביצוע פסוק 9 יגרום להדפסת התוצאה בקובץ הפלט הסטנדרטי. השימוש ב- 0 215660066 2858 מבטיח, שגם שם המשתנה יודפס, ע"י כך נוכל לזהות אלזה משני המספרים שיודפסו הינו המספר המיזערי ואלזהו המספר המירבל. ביטויים המכילים מערכים "ביטוי המכיל מערכים" הלנו ביטוי המכיל לפחות מערך אחד ותוצאת הערכת הביטוי - גם היא מערך. מערך יכזל להשתתף בכל ביטוי פרט לביטוי הראשון בהוראת עז. ביטויי מערך יכולים להופיע בזרועות אמאך או ש8פ5עם. דוגמאות: א. פעולות א*6+1מק של + או -: תוצאת פעולות מן הסוג הזה הינה מערך עם אותו ₪ מספר מלמדים ותחומי המימדים כמו של המערך המשתתף בפעולה. = 325 = א ו-צ מוגדרים כמערכים כדלקמן: ;(5) ענגאות6טת פעאצעץ (2,3) (צ,א) מתהתסטם נתון המערך % 2- 10 9 15 8 2 לאחר ביצוע הפסוק נ;א- = צ להיה ערכו של צ 12 0- 9- 5- 8 2- ב. פעולה בין מערך לבין נתון בודד (סקלר) תפיק מערך עם אותו מספר מלמדים ותחומ?ל מימדים כמו של המערך המשתתף בפעולה. נתייחס לדוגמה הקודמת ולפסוק ‏ ;4*א = צ ערכו של צ לאחר ביצוע הפסוק, יהיה 8- 20 56 00 2- 08| דהיינו, כל איבר של א מוכפל ב-4. דוגמה נוספת תתייחס לדוגמה הקודמת ולפסוק (1,2)א*א = א. ערכו של א לאחר ביצוע הפסוק יהיה 0- 1000 00 10 0- 2200 שים לב! רק שנ? האלברלם הראשונים מוכפלים בערך הראשוני של (1,2)א שהוא 10 כיון שלאחר הכפלת כל איבר של א ערכו מושם שוב ב-א, יהיה ערכו של (1,2)א לאחר גמר ה"טיפול" בו - 100, ומכאן והלאה יוכפלו האיברים הנותרים ב-100. פעולה בין מערך למערךר כאשר לותר ממערך אחד משתתף בביטוי, חייבים להתקיים התנאים הבאים: 1. לכל המערכים יהיו אותו מספר מימדים. 2. התחום העליון והתחתון של המימד המתאים בכל מערך יהיו זהים. דוגמאות ; (2) מגאז6מס ספמאצע (0,5()2,8,ת) מתגסטס ערכו של ת הוא ( 25 7 9 10 7 8 5 20 ערכו של 0 הוא ‏ 61 3 5 8 18 2 28 11 דד ד וחרט הח התאר רהר 7-7 א. לאחר ביצוע הפסוק ;0 + ץק = ת יהיה ערכו של 5 86 10 14 18 25 20 3 1 סכום האיברים המתאימים ב-2 ו-) מושם בא?בר המתאים ב-ת5. הפסוק הבודד 0+? = 8 מקביל לסדרות ההוראות: ;2 10 1 = 11 26 ;1 70 1 = 122 9 ;(11,12)תע + (11,12)תק = (001,12)ת ;סאע ;פאע אבל אין הוא חוסך בשום אופן זמן ביצוע! ב. לאחר ביצוע ;0*ץ = ת להיה ערכו של 3 | 1525 21 5 020 16 96 120 440 הכפלה של כל איבר ב-2 באיבר המחתאים לו ב-0 והשמת ערך ההכפלה באיבר המתאים ב-ת. ההערה לעיל יפה גם כאן. יש לזכור כי כפל זה בין מערכים אינו בשום פנים ואופן כפל מטרלצות אלגברי! ג. נתונה ההגדרה והנתונים הבאים: (,(3) זגו61מכ פעאצץ (2)א עס ((8) צתגאזם סעאזק (2)(צ,2) ;(1) 817 (2) ערכו של א הוא ‏ 2 1 ערכו של צ הוא ‏ 3 6 וערכו של 2 הוא 10 2 לאחר ביצוע הפסוק: < 2"**(ץ + א) = 1 יהיה ערכו של 2 0'8' פ1'5' 12)1(=1 מליצג 1+6(**2) גדול מ- 2*0, 2(0) מליצג 2+3(**2) אינו גדול מ-10*10. . נתונה ההגדרה הבאה של מערך, ושימושו בפונקציה: ;(7) גוסמ צגקע (5,10) (2,צ,א) מתגתסמס ; (2+א) 5081 = צ | - 327 - פונקציות בנויות ב-12/1ת2 המקבלות מערך כארגומנט, מחזירות מערך. בדוגמה האחרונה | ה | כל איבר ב-צ יכיל את השורש הריבועי של סכום שני האיברים המתאימים לו ב-א וב-2 בנושא פונקציות ראה דיון בהמשך. טיפול בחלקי מערך ציה יובהר להלן באמצעות הדוגמאות: א. נניח שהגדרנו מערך דו מימדי כדלקמן: ((4) 0320758 (15 ,10) 1תג שתגו6מס אפשר להתייחס לחלק מן המערך, נניח לכל השורה החמישית, כתת-מערך, העומד בפני עצמו, וכל הכללים הקשורים במערכים, חלים גם עליו; / ;((*,5) 21) 2157 לטק הוראה זו תגרום להדפסת כל השורה החמלשית של 4%1. התו כוכבית (*) מציין:כל היקף אותו מימד בו מופיע התו. ב. נניח שהגדרנו מערך תלת מימדל: ;נגז0פת פסא1ץ (5,4,8) עגא מתגת0מכ ע"י ההתייחסות (2,*,*)א מתקבל מערך דו מלמדל?. ההתייחסות (*,*,*)%41 הוא, כמובן, התייחסות לכל המערך. אפשר להתייחס לחלק ממערך ע"י. שלמוש באופצית ת5860:10 650589 השימוש באופ- | ערך התחלתי לאיברי מערך אפשר להקנות לאיברל המערך ערך התחלתל ע"י שימוש בתכונה 1718%0א1. בסוג. העוקבים את התכונה רושמים את רשלמת הקבועים שאת ערכיהם רוצים להעביר לאיברי המערר. | דוגמאות: א. ; (עתם ,0800 ,עגעת ,7ת2ג57 ,11) דזא1 עשפג1 (585)5 0 האיבר הראשון בטבלת התויות 505 לקבל את הערך 21, (5%05)2 יהיה 57481 וכן הלאה. ב. הסדר בו הקבועים מושמים באיברי המערך נקבע עפ"י ארגון המערך בזכרון המחשב נתון המערך הבא: (5,2) 561% פסא1ץ (3,4) 5ע60זתק ספ ;(150.50 ,099.99 ,895.22 ,149.00 ,022.15) צַזא1 - 3208 - למערך 281085 12 איברים, אולם רק לחמישה מִהָם ניתן ערך התחלי. אלו הם חמשת האיברים הראשונים של 281085 כפי שהם מאורגנים באחסנה, דהיינו ל*נתנו ערכים רק לאיברים הבאלם: .(2,1) 1008תת ,(1,4) 1085אק ,(1,3) 89 ,(1,2) 86 ,|, (1,1) 6085זאק ג. באמצעות גורם החזרה אפשר לשים קבוע אחד כלשהו ביותר מאיבר אחד. גורם החזרה חייב להיות מספר עשרוני שלם בתוך סוגריים. דוגמה: (6) ונטס 641עע (10,100) 516 עס ; ((3(5.9)) (20)/ ,920(0)) 8 דדדאד 0 האלברים הראשונים של 816 יקבלו ערך התחל? 0. האיברים הבאים לקבלו ערך התחלי המורכב מ-20 חזרות של המחזור 3(5,9) דהיינו 5,5,5,9 - סה"כ 4=80א20 איברים. ד. כדי לדלג על איבר או קבוצת אילברים נשתמש בתו (*) כבדוגמה הבאה: (9(0) ,*(3) ,6(0)) צדאז מג4ת0טפ פטאנע (6,3)צ עס ת האיברים הראשונים של צ יקבלו ערך התחלי 0, בשלושת הבאים לא יושם שום ערך 6% הנותרים יושם הקבוע 0. ה. כאשר רוצים להשתמש בתכונת ה- 8ג111א1 למערך המכיל מחרוזות יש לזכור כל בקידוד קבוע מחרוזת אפשר לציין גורם חזרה ומשמעותו שונה. לדוגמה: ;('3('2)) 1תאת 6אצצתגאט (5) פמצ6גתגוס (558)5 מתתסטס רק (1) 588 יקבל ערך התחלי של '222' והאיברים הנותרים לא יקבלו כל ערך התחל?! כדי "להתגבר" על בעיה זו יש לקודד בצורה הבאה: ;('5()3('2)) צ1את 6א1צתהאט (7) תמצסגתגג0 (558)5 מתהתסטם ואז יקבל כל איבר של המערך 588 את הערך '222'. דרך נוספת וחילופית למקרה הזה תהיה: +(('5()'222)) דזאז סאנצפגט (7) אעדסגתהאס (55)6)5 מתה6מכ דהיינו, הקבוע נתון בסוגריים. תרגיל יש לכתוב תוכנית למיון סדרת מספרים בסדר עולה. כל מספר הוא בן 4 ספרות. גודל מקסימלי של הסדרה הוא 50 מספרים. יש לקרוא א מספרים,למיין ולהדפי?ס את הסדרה הממויינת. בראש סדרת המספרים למיון נתון הערך א המציין את מספר האלברים. 829 = י התוכנלת: 1 ; (א1א) 5א02110 עפטפסס0פק :5087 2 ;(4) סעאנע (מד ,(4)50) מתג.זסמס 3 )((5)4) ((א קד 1 = 1 6כ (1)) ,א) דדסת ך6₪ 4 2 - א 78 1 = א 26 :א 5 ;+- א 170 = 1 20 :5 6 ; (1) = קשמד :50 אפווד (1+נ)ג < (1) סד 7 ; (4)1+1 = (4)1 8 ; שוסץ = (4)1+1 9 ; פא 10 /*ם*/ ; פאט 11 /*א*/ ; סאם 12 (5)ת?)(א 70 1 = 1 0 (6))1 צזסט לטק 13 /* 5091 4ת00פק */ ; פאק בשורה 2 ישנה הגדרת הנתונים: הטבלה 4 היא בת 50 איברים (מקסימום) והמש- תנה שאמחד. המשתנים הם מסוג ג4א601טקת פמאזק באורך 4. מכיון שהתכונות זהות, חבוקה רשלמת הנתונים בסוגריים ויש רק הגדרה אחת של התכונות. הוראת הקריאה (שורה 3) קוראת מקובץ הקלט הסטנדרט? את הנתונים לפי שיטת דנספע. רשימת הנתונים כוללת את א (המציין 'את מספר האיברים בסדרה) ואת איברל הטבלה. קרלאת האיברים הינה בלולאה (1 20) אשר מגדירה את א האיברים של הטבלה מ-(4)1 עד (א)8. מבנה הנתונים בקלט הוא 4 ספרות ((4)ת, התבנית רשומה פעם אחת בלבד והיא תחזור עד להשלמת רשימת הנתונים. שים לב לחביקת זוגות הסוגריים בהוראה. שים לב שהמשתנה א לא הוגדר, וכמוהו גם 1, א , 1 בהמשך - כולם מקבלים את תכונות ברירת המחדל צפגא21 פקאנק. הלולאה הראשית מתחילה בשורה 4. האינרקס % משתנה מ-1 עד 1-א שהוא האיבר שלפני האחרון. סיום הלולאה בשורה 11. הלולאה הפנלמית מתחילה בשורה 5 ומסתיימת בשורה 10. האינדקס בהוראה 20 משתנה מ-1 עד %-א. פרוש הדבר שבפעם הראשונה לביצוע הלולאה התחום העליון של השתנות האינדקס הוא 1-א. בפעם השנלה, כאשר 2=א, ?היה הגבול העליון 2-א, וכן = 330 = הלאה - עד אשר 1-א-א ואז הערך העליון יהיה 1(=1-א)-א. בכל פעם נוספת של ביצוע הלולאה תסרק סדרת מספרים קטנה יותר מכיון שבכל פעם "דוחפים" את המספר הגבוה ביותר בסדרה אל סוף הסדרה. ההשואה של זוגות מספרים והחלפת הסדר שלהם כאשר המספר הגדול, איבר 1, נמצא לפני איבר 1+1- הן הפעולות העיקריות בתוכנית, שורות 9-6. אם אלבר 1+1 גדול מאיבר 1]. לא נעשית כל החלפה שהלא. בסיום ביצוע מיון המספרים לפי סדר עולה תבוצע הדפסת הסדרה בהוראה 207 בשורת 12. הדפסת הטבלה מבוצעת ע"י לולאה הרשומה ב"רשימת הנתונים". *ודפסו א איברים בלבד, בהתאם למספר האיברים שנקראו. מבנה הנתונים להדפסה - 5 ספרות: כלומר 4 ספרות יוקדשו למספר עצמו ואחת תהיה מרווח. התבנית מופיעה פעם אחת והיא תחזור על עצמה עבור כל האיברים שברשימת הנתונים. שים לב שהאינדקס 1 נוצל פעמיים בתוכנית זו, אולם ללא כל חשש של הפרעה, כי הוא סיים את תפקידו לפני שהשתמשו בו פעם נוספת. התרשים: וגדרות - 33! = תרג יל נתון קובץ המכיל פרטים על פעילות מכירות של חברה במשך השנים 1973-1971. יש לערוך טבלה אשר תציג את המכירות בכל חודש בכל אחת מהשנים. בנוסף יש לסכם את המכירות לכל שנה. תאור הנתונים: בכרטיס ראשון מנוקבים חודש? השנה בראשי-תיבות. בכל אחד משלשת הכרטיסים הבאלם מנוקבים נתוני המכירות לפי סדר השנים בכל חודש, כלומר - המכירות בחודש לנואר בשנים 1973-1971, מכירות בחודש פברואר בשנים אלו וכן הלאה. 006 65טג .זט א צגונתק תות קאד 6 265 246 253 197 208 213 204 199 186 234 120 חחח חחח חחח חחח חחח ה-- --- --- --- 202 208 179 8 250 051 הרה הרס ה שאה === === 230 246 226 מכיון שבכרטיס הראשון ימנוקבים הנתונים ברצף, ללא רווחים אפשר *היה לקרוא אותם בהוראת ₪517 בלבד. בשלשת הכרטיסים הבאלם השדות מופרדים ועל כן אפשר יהיה לקרוא בהוראת 15%/. תאור הפלט: 11 12 113 16 24 120 אגנ 223 204 19 פטץ 23 177 208 מ 253 208 23 0 2008 2004 2000 0-5 ".ה . ]04.4 .0 ו וז רה '-2 ]₪ן-] =[ + ו .- 0 5 7 72 | / ד ב - 1 ו ו ו ו . ו "גארד קיו (916) ו ב 5 ור ע'-ו5 ,2 ]4 14 שר ו .5 ,(5 ) :וק (313/ : 71/ 2 6% יי ]| 4% - לי > 522 5 7 ( 071/ :%+971+) 25גד קד | ' | ] 0 א | 2 י [ ;(8)3*א6 (41) אזע,צת 0 ₪ 7 ₪ 2 ] 4 : יי (י 2 0 --/- | /צ 946? ששא ד6א57 +/ ;866? דטק !| 10?% בע - -] 7 לכ 3 ו 0 72 ד 6560 דע , ש : . . .. . ?ו |[ ./ = ;0 וא> דט? ה . 0., ן 7 /צ 616א4ד )זז 5 +/ 0 8 43 ( ) עד ) דו69 ד06 % ( הג 7 : (בק437 6ד /137.* ף 558 (%,1) 5))) ד5ום דוש % ו % ;(( 44 %ד 4 - 2 50 י | 0 4 (0 = 5ן:הד,ד | : 4 6 2 + ,. , /* 47425ד 6דטקת64 20% 76806 דען4] שד 16607 +/ | 1 6 / / 0% 5 3 2 ה י/ יְ י/ - מ - ב יי 0.47 || 68 ל ש דא 6 0-2 = = 3 . ₪ 5 5 כב 2-4 - ₪ וא /צ* 506 אדמטת 6168 דשום" ץד גנוו +: 2 2+ <ד 4 1 6 -12.. | %ג52-6:א - ית *+%3-51וה ו ו -((7) 5 ) ( (1)אזטשא 41 דוס6 זע וו .%: א (( בַל43 שד 911 > % 54 (>,1) 55265 ]) ) ] 6 / . 4!% > 1 (46) 6 (5)) כ ) > 6 /+ פעמדעקד שד 34% + 1 3 -%,470) = אק . ... ] / ) ;(>,1) 58665 + [,|] 5.אדסד + (א) 6%הז9ד ‏ 1 ה;. | . . . . . - ₪ פה . 9 | | 4 הצ , פעם // 1% ג 4.5 | 7 ב .0 :| 9 , ו | י, 6 4 .ד | | | "/ ( 5שאזשד ‏ '59מדשד' ), דו5פא . י 5 די * +. ; ((ט))ץ ,(וו)ץ ,8 ,((1) 8וא5 )). . +6 ג -ג6וח /% ו 0 /* 00604 06 600 / ;5 | ) פשאו = 333 * התוכנית ראה בדף הסמוך. הסבר - פעולות קלט ופלט מתבצעות בקכצים הסטנדרטיים ולכן אין צורך להגדירם. - בשורות 5, 4, 5 מוגדרים מערכים עבור הנתונים. את הנתונים נקרא למערכים אלו, נערוך בהם את החישובים ואח"כ נדפיס בהתאם להוראות התרגיל. מערך 54185 הינו דו-מימדי. תחום השורות הוא 1 עד 12, ותחום העמודות הוא 1971 עד 1973. בצורה זו קבענו מימדים משמעותיים מבחינת המשתמש, לנוחיותו. מערך 54185 הינו בהיקף 3 = 3:6 איברים. בשורה 7 ניתנה הוראה לקידום הנייר במדפסת לדף חדש. בשורה 9 ניתנה הוראת פלט מסוג 801 להדפסת כותרת לעמודות. שים לב שבתחילה יש רווח של 7 תוים מתחילת השורה ואח"כ מודפסת הכותרת שכה שלשה מספרים. לאחר ההדפסה מבוצע קידום הנייר בשורה אחת כדי שיהיה רווח בין הכותרת לגוף הדו"ח (שורה 11). קריאת שורת שמות החודשים מבוצעת בהוראה 5017 מכיון שהם מנוקבים ברציפות ללא הפרדה. לאחר מכן מבוצעת קריאה של נתוני המכירות. אינדקס א* (שורה 15) הוא בלולאה הפנימית ועל כן משתנה מהר יותר מאינדקס 1 אשר בלולאה החיצונית. בצורה זו תבוצע הקריאה של הנתונים כל חודש עבור כל אחת מהשנים. בדף שני של התוכנית נמצאות הלולאות המרכזיות לביצוע החישוב וההדפסה: בשורות 7-1 מבוצעת הדפסת שם החודש ונתוני המכירות באותו חודש בכל אחת מהשנים. נדרשת פעולת 5%12 לקידום הנייר לשורה הבאה. בהוראה אחת אפשר לכלול מספר קבו- צות נתונים, כאן הופרדה רשימת החודשים מרשימת הנתונים ולכל אחת מהן רשימת תבנית נפרדת. בלולאה פני?מית בשורות 13-9 מבוצע סיכוט של נתוני המכירות של כל חודש אל שלשת המונילם השנתיים. בשורה 11 מבוקר האינדקס של איברי? המערך 54085 ע"ל האינדקס של הלולאה הפנימית א, וע"י האינדקס של הלולאה החיצונית 1. שורה 15 תוחמת את הלולאה החיצונילת. לולאה זו תבוצע 12 פעם, לפי מספר החודשים עם סיום החישוב מבוצעת הדפסת התוצאות יחד עם הדפסת קבוע המציין את משמעות השורה. בתבנית ההדפסה נדרש דילוג של שתי שורות, כלומר שורת רווח ובשורה השניה תבוצע ההדפסה. שים לב שכאשר נתונה ברשימת הנתונים מחרוזת תוים בגרשיים איו צורך לציין את אורך השדה בתבנית (רשום 8 בבלד). כמו כן, אין צורך לציין ברשימת הנתונים של מבנה את מימדיו כאשר כותבים את כולו. ברשימת התכנית נרשם (11)ק ואח"כ (2")10 כדי לכוון את ההדפסה מתחת לעמודות (הואל נא לבדוק ולהיו-ב- בפן). - סיום התוכנית בשורה 21. הי . ו וו ו 1 . -3- - ווק ושווון - 338 - סרק 7: >רגן [ת!ו[ים באכ!יס ב-1/ת2 קיימות דרכים אחדות לאהחזקת אוסף נתונים, ואחת מהן הינה במשתנה מבנה (78518516 6שט65שץ565). צורה אחרת לאחזקת אוסף נתונים הינה במשתנה מערך (14516זַג7 צְ3צץץ/) שנדון בפרק קודם. תאור המבנה והגדרתו משתנה מערך הינו מעין טבלה, חד- או רב-מ?מדית, שבה כל האלברים שוים במב- נה שלהם. על כן אפשר לציין שם אחד למערך כולו, ולכל אחד מאלבריו לתת ציון מספרי למקומו היחסי בתוך המערך. לדוגמה, בטבלה חד-מימדית: האיבר הראשון, השני וכו', או בטבלה דו-מימדית: האיבר שבשורה השלישית בטור החמישי וכו'. משתנה מבנה מייצג אוסף של נתונים שיש ביניהם קשר לוגי, כפי שזה קיים במערך. אולם כאן -- האיברים יכולים, ובדרך כלל הינם, בעלי תבנית (85משס+) שונה: איברים מספריים מסוג ודיוק שונה יחד עם איברים של מחרוזות תוים וסביות. לכן כל איבר מקבל שם נפרד יחודי לעצמו וכך מזהים אותו בתוך המבנה. השימוש במבנה מקובל בעבודות מינהליות המטפלות ברשומות הכוללות נתונים מסוגים שונים. לדוגמה, אוסף נתונים של חשבון לקוח בבנק, הכולל: מספר החשבון, שם הלקוח, כתובת הלקוח, יתרה, תאריך פעולה אחרונה. הנתונים אינם הומוגניים וכוללים ערכים מספריים ומחרוזות תוים ולכן אינם יכולים להיות מערך, אך בכל זאת מהוים יחידה לוגית אחת ששמה "חשבון לקוח" - או בשפת התכנות - מבנה (6שט66שע50). השוני העיקרי בין מערך לבין מבנה הינו בעובדה שהמבנה הינו גם מבנה הירארכי של איברים, אשר כל אחד מהם יכול להיות נתון בודד או אוסף של נתונים זהים בצורה של מערך. מבחינה זו אפשר לדמות את המבנה לספר: לספר כולו יש שם אחד, הוא מחולק לפרקים אשר לכל אחד מהם שם ?חודי, הפרקים מחולקים לסעיפים שגם להם שמות ייחוריים, סעיפים מסויימים עשויים להיות מחולקים הלאה לסעיפי משנה וכו'. לפנינו מבנה הירארכי של ספר: שם הספר - 32302 - במכנה ההירארכי ישנן מספר רמות. הרמהיהגבוהה ביותר הינה שם המבנה, ולכל || רמה נמוכה *ותר לש שם הכולל את המבנה החלקי שמתחתיה. ברמה הנמוכה ביותר בכל ענף של המבנה ישנם נתונים אלמנטריים (156₪8 ץ5:8ת6מ616). מאוגדים בנתונ? מבנה (156₪8 6תַטש66טע56). הנתונים האלמנטרייס ראה גם הדיון בקובול בפרק ם1510ט21 2:8 - "תאור שדות". הגדרת משתנה מבנה בדוגמה הקודמת הצגנו דוגמה למבנה הירארכי. כעת נעבור להצגת ארגון הנתו- [ נים במבנה ולצורת הגדרתם. 1 כדוגמה נקח את רשומת הלקוח בחשבון עו"ש בבנק. רשומה זו כוללת את השדות הבאים: 1 (9) 018 שא 40007 .ב (15) 05 שעגא 1457 .םס (10) 6% גא 7פת1ת .6 (20) 618 צפעתדם .6 (4) 018 6א .6 (10) 08% צדזם .1 (8,2) תהא01מפ פטאזץ ות .2 (6) 68.8 5 .ת אפשר לתת לרשימת נתונים זו שם, למשל 1א200600 ואם נכתוב את ההוראה ;(7א40000) 241 687 נרצה שהיא תגרום לקריאת כל איברי המבנה, כלומר - כל השדות, אל זכרון המחשב. נוח לפעמים לאגד את הנתונים/השדות בקבוצות לוגיות קטנות יותר וברמות, כבדוגמה הבאה: 7 0 . | ההתיחסות אל המשתנה %א6600 הינה אל כל איברי המבנה. ‏ פנייה אל 608א841/4 > 3238 > הינה אל נתון זה בלבד, אך פנייה אל 2228055 למשל, מתכוונת אל שלשת הנתונים צדעעתל5, סא, צ617. במבנה זה ישנן רמות שונות של הירארכיה לשמות: שם המבנה הראשי ברמה הרא- שונה נקרא 6שהא 6צט6ם6טע55 4[0%/, שמות המבנים המשניים ברמות הנמוכות יותר הם 8 ש6סעטם6טע56 טסםת31, וברמה הנמוכה ביותר בכל ענף של המבנה נמצאים שמות הנתונים האלמנטרי?ים - 88₪65/ ץ?58ת16₪6ע. שמות אלו יכולים לייצג נתון רגיל (סקלרי) או מערך. רק הרמה הנמוכה ביותר מכילה נתונים (4858) של ממש ולכן יוגדרו תכונותיהם. הרמות הגבוהות יותר מ?יצגות שמות קיבוציים לרמות הנמוכות יותר. תיאור ארגון המבנה נעשה בפסוק ההכרזה 012%858שע. ההגדרה מקבילה למבנה ההירארכי של שדות המבנה. מגדירים את המבנה ההירארכ? ע"י? שימוש בספרור הרמות. ספרור הרמות מתחיל במספר 1 עבור המבנה הראשי?, ומספרים גדולים מ-1 ניתנים לרמות הנמוכות יותר. מספרי הרמות אינם חייבים להיות רצופים. מבנה-משנל ברמה כלשהי םח מכיל את כל השמות עם מספר-רמה הגדול מ-ח, הנמצאים בינו לבין המבנה-המשני עם מספר רמה השוה ל-ם או קטן מ-ם. מבנה הרשומה של חשבון הבנק: א 0 0א| דמפתד5 | דפתדץ || 1457 (6) (8,2) (10) | (8) (20) (10) (15) (9) הגדרת המבנה בדרך הבאה: (7א 40000‏ 1 מת ומס (9) 0845 0א 40071 2 ,שא 2 ,(15) 608.8 7 3 ((10) 0845 | פַפִתָדַק 3 5 2 ((20) 085 דמתת 57‏ 3 , (4) תג1ן6 סא 3 , (10) 088 דדוש % (8,2) ,מגאזסעפ פפעא1ץ | מ0א2414 2-5 ; (6) 18 פדג ‏ 2 = 337 - בדוגמה זו 01 הוא המכנה הראשי, א ו-4228855 הינם מבנים מש- ניים, שאר המשתנים הם אלמנטריים ורק הם תופסים מקום כבאחסנה הראשית ולכן רק אותם נתאר ע"י תכונות המתארות את סוג הנתון ואורכו. שים לב שלאחר כל הגדרה של משתנה יש פסיק. בסיום פסוק ההכרזה ישנו המפריד נקודה-פסיק. תרגיל: רשומת ‏ ציונים של תלמילד כוללת את הפרטים הבאים: מספר תלמיד, שם משפחה ושם פרטי, הכתה בה לומד התלמיד, ציונים בשלושה מקצועות. בכל מקצוע ישנם שלשה ציונים המפרטים את ציון המגן, ציון הבחינה וציון סופל. דאס הגדרת הרשומה תהלה: דאעסטז5 1 עשתמ (6) 08 0 3 , אא 3 ))6 1 , (15) גו (1051ץ 4 , (3) 05 5 3 05 3 , (3) טעתפסון 4) ((3) 91818 4 ((3) ואו 4 ; (2) ,2801441 ספאדצט בדוגמה זו הוצגו מספר אפשרויות נוספות בהגדרת מבנה: א. בשדה ₪שאגאא חבקנו בסוגריים את 1457 ואת 21857 מכיון שיש להם תכונת מבנה זהה - (15) 48ה0. ב. בשדה 6824285 הבקנו בסוגריים את שלושת המקצועות כשם שעשינו עבור שדה >> קה לה הרה הטמו הריד לוחי הו הדחה ה הר 7 יי - = 0 ו קה קייר וו ו --ייה 3 - 338 - ;אאא. במקרה זה בכל מקצוע ישנם שלשה ציונים במערך (טבלה) ולכן נרשם הציון (3), כמו למשל: (3) שמתפשם. אפשר לכתוב את המשתנים בפסוק ההכרזה בשורה אחת וברצף, לדוגמה: (דפ5תזק 4 ,1457 4) ,שאהא 3 ,(6) תגג0 0א57 2 , דאמסטד5 1 שתה61טס ,(159) 6848 שמות שדות במבנים שונים יכולים להיות זהים, אולם זכור, שם של מבנה חייב להיות ייחודי. כאשר שמות של שדות אלנם יחודיים אין אפשרות לפנות אליהם בהו- ראות השונות שבתוכנית אלא אם מגרירים אותם ע"י שם המבנה. לדוגמה: ו 1 מתהתסטכת (5) 614 ; (7) ספאצץ וש 1 5תג61מכ נ(טג) צזה 8 2 ; (8) 0118 השדה 5 נמצא בשני מבנים שונים ולכן נפנה אליו בצורה הבאה: שדה 8 של מבנה הוא 4.5 ושדה 5 של מבנה א הוא 5 א. לשדות 6, 2 אפשר לפנות ללא שם המבנה, לדוגמה: )7 + 6 = 5408 מערך של מבנים לעתים מורכב מערך ממשתני-מבנה ולא ממשתנים סקלריים. במקרה כזה אפשר להגדיר מערך של מבנים (568ש5סט5:2 0% עְה8ץצג). 12/8 הינו מערך חד-מימד? של מבנה המפורט כרמות הנמוכות מ-1: (5) מעפהד ‏ 1 מתה6מפ (2) 44 - א) ((2) פםא1ת | ,(588 -- 4 ופרושו, שאוסף הנתונים לפי סדרם בזכרון הוא: 11,. (1) 44 (1) ,זפ (2) 44 58| (ג) גג (2) ₪,ז9ד (2) 444 88| (1) גגג (3) 74905 מכיון ששם שדה ברמה נמוכה מופיע מספר פעמים במערך 122508, צריך להגביל אותו ע"* הרישום של מספר ה"איבר" במערך. השדה 8 באיבר השני של המערך ירשם כך: 142518)2(.5, כלומר המספר הסידור? של האיבר, נקודה ושם השדה. שדה 4 הינו מערך ועל כן האיבר הראשון של שדה 4 באיבר השלישי של המערך 1908 יכתב כך: (4)1. (491.5)5ד1. ביטויים עם מבנים אפשר לבצע פעולות שונות עם מבנים. בעקרון, הפעולה נעשית לכל איבר בנפרד, לפי סדר האיברים במבנה. מכנה וסקלר הפעולה הפשוטה בלותר הינה פעולה של המבנה עם סקלר. לדוגמה, נתון המבנה: (א 1 מ5ףם30גת0מס ((3) פסאזת 5 2 ;(8,2) פעא1ק 0 .2 ההוראה ‏ ;2 + 4 = 4 מתיחסת לכל המכנה ומבצעת את ;2 + 0 = 0 ;2 +25 = 25. ההוראה ‏ ;8 + 5 = 5 גם כן חוקית, וכן גם ההוראה 2*7.2;‏ > 6. שתל ההוראות האחרונות מתבצעות עם המשתנים האלמנטריים של המבנה, בעוד שהדוגמה הקודמת התיחסה אל המבנה כולו. ו ו ו ן - 340 - מבנה ומבנה פעולות בין שני מבנים מורכבות יותר, וכוללות למעשה שתי קבוצות פעולות: פעולות השמה ופעולות אריתמטיות. א. פעולת השמה ?כולה להתבצע בין מבנה למבנה, בין מבנה-משני אחד למבנה-משנל אחר או בין משתנים אלמנטריים של המבנים. כאשר מעבירים מבנה אחד בשלמותו אל מכנה אחר או מבנה-משני אחד אל מבנה- משנ? אחר, הם חייבים להיות זהים באלבריהם. | לשמות של המשתנים ברמות הנמוכות אין כל משמעות בהוראת השמה. נתון לדוגמה: (א 1 שתג61טכ ((6,2) סטאזת 5 2 ₪ 2 ;(5) 0848 (ם 3 ,2 -3) + 1 אפג0מכ (6,2) סטא1ק א 2 ו 2 ;(5) 085 (צ 3 ,א 3) מכיון שהמבנים זהים בכל איבריהם: סדר האיברים, סוג הנתונים וגודלם - אפשר להעביר את כל מבנה 8 אל מבנה 3% בהוראה אחת: ;8 = א המשתנים האלמנטריים 8, 5 , 6 יועברו בהתאמה אל המשתנים האלמנטריים א, א, צ. העברת שדה בודד ממכנה אחד לשני תבוצע למשל כך: ₪ = א. ההוראה 0 = 5.א (צריך לציין .8 מכיון שמשתנה 8 נמצא גם במבנה ) תגרום לאיפוס האיברים ‏ א, צ במבנה א. ב. פעולות אריתמטיות הקשורות במבנ?ם אינן שונות מפעולת ההשמה, הן מתבצעות על האיברים השונים בזה אחר זה. ג. פעולה חורגת מדרך הפעולה של טיפול בכל איבר ואיבר לפי? הסדר נעשית ע"? הציון םגא צא נתונים שני מבנים של פרטי תלמידים וציוניהם במקצועות שונים: ךדאפסטד ‏ 1 סנאזאד 1 ₪אא -2 אא 2 65 2 טפגא 6‏ 2 אזגא 3 8 אא | 3 8 שא | 3 מופזם 3 אסתפפם 3 שטתפמט ‏ 3 6 3 צתסךפזא 3 אהזגא ‏ 3 - 341- ההוראה: צפ ,כ1)נ1ד = דאתסטד5 תגרום להעברת השדות האלמנטריים ממכנה 14118 אל השדות המקבילים ב-עאמפט51, כלומר: ₪שאעגא, אדא מכגתס, 158ס0אם.מכגת6, חשעתפעה.פכגת6. | שדות שאינם מתאימים ישארו ללא שינוי. אפשר להתיחס גם לחלק? מבנה כמו למשל: ;א צפ , מכגת6.סדנדד = מפגת6. דאפפטד5 אפשר גם לבצע פעולות אריתמטיות עם הציון וגא צת. ד. שימוש במבנים בהוראות קלט/פלט אינו שונה מפעולות אחרות: ; (פ1412/1) 151 687 לבצע את קריאת הנתונים אל תוך המבנה אשר הוגדר בדוגמה הקודמת. אפשר גם לכתוב . ; (68428. 7א5סט51) 5414 צטק תכונות נוספות בהגדרות נתונים התכונה פפאצעפכ: תכונה פעאזעפעת (בקיצור - תספ) מציינת שמשתנה סקלר, מערך או מבנה מוגדר באותן כתובות הזכרון של משתנה אחר. לדוגמה: , (10) 0835 0157 מתג01מכ ;7 פתאדצעטס (10) תגג) שעגא כלומר, שדה ₪/4א ושדה 11571 מתיחסים לאותם הנתונים, אשר אפשר לפנות אליהם בשני שמות. אפשר גם לחפוף חלק של שדה, לדוגמה: , (25) 015 שעאא סתגס0טס אאא פפאנקפפ (15) תגוס שא 1.457 ; (16) א051710ק מאגא פפאדעפכע (10) תגא6 שעגא זפאזע התכונה 8א07%: תכונה זו מציינת שהמשתנה המוגדר מקבל בדיוק את התכונות של משתנה אחר. המשתנה לכול להיות מכל סוג שהוא. לדוגמה: מז 81008 1 מתגת0טכ (8) גו | 0412100 2 וטא 2 ((30) תג08 זעתפעת 3 (40) 0645 61158אם -3 ; (8,2) סשאזק מפסזגק ‏ 2 ;אד א5700 מאזע א5100 צשא -1 שתגת6עס "ה הדחה 97 רהה = ו - 342 - ל-51006%.-עא יש המבנה הבא: (5700% שא -1 , (8) 0448 0 2 ,אא 2 ((30) תגוס חשתפסת 3 (40) 01125 61158אם -3 ;(8,2) ססאדע מס6זתק 2 התכונה 840ז7זא1 תכונה ‏ 18ד1א1 (או צ1א1) הוזכרה בהקשר למשתנים סקלריים והיא מיושמת גם במשתני מערך: לדוגמה: ; ('טאפפגת מפטפקא') תג1דזא1 (12) תגג6 מעגא מתהזסטפ כנתון השמה בפסוק עם תכונה 1%א1 אפשר לכלול קבועים, ביטויים ופונקציות. דוגמה למשתני מבנה: 1 שפהסטכ ((0) צזאד 8 2 ,(3) 0 2 ((0) צזאך. פ 3 ; (3(0)) צַזאך ₪ 3 ;('4500' (10)) דעא1 (א) ת4.א6 (15) א בי במבנה 3 מוגדרים כל השדות בכרירת המחדל שלהם. שדה 5 יאופס. מבנה-משני 6 הינו מערך בן 5 איברים, ולכן איפוס שדה ע כפי שהוא רשום יגרום לאיפוס (6.2)1 בלבד, בעוד אשר שדות 8 יאופסו בכל שלושת איברי המערך, כי נרשם בתכונה דצאד הציון (3). במערך % יקבלו רק 10 האיברים הראשונים את הערך פ6פג. / / ₪ ו .-* - 383 - סרק 8: ק!60 !6019 כר6ואות עקרונות העיבוד ברשומות הוראות קלט ופלט בשיטת ₪ח68ז55 כונו הוראות "קלט ופלט בסיסיות". הן טפלו בעיקר בשדות או בנתונים בודדים מתוך רצף הנתונים. אמנם אין כל מניעה לפעול עם הוראות אלו על רשומות, אך למטרה זו ישנן הוראות מתאימות ונוחות יותר. אלו הן הוראות מסוג 1/0 5866מ2660%6-016. | שלטת קלט ופלט זו דומה במידה רבה לשיטת קלט ופלט של רשומות בקבצים הנהוגה בקובול, והקורא מופנה אל הדיון בנושא זה. היתרון החשוב בשיטת קלט ופלט ברשומות היא העברה ישירה ללא הסבה של נתונים מיחידת קלט לזכרון המחשב ומזכרון המחשב ליחידת הפלט. יש לזכור שבשיטות קלט/פ; אחרות בוצעה הסבה של נתונים מספריים מייצוג של מחרוזת תוים לשיטת המספרים הפני- מית במחשב (דצימלי, בינרי) בהוראת קלט, ולהיפך - בהוראת פלט. שיטת העיבוד ברשומות מקובלת בעיקר בקבצי המערכת המיועדים לעיבוד חוזר, ועל כן הם שומרים את הנתונים במבנה הדרוש לעיבוד במחשב, מכיון שממילא אינם מיועדים לטיפול של בני-אדם. ההסבה אשר נעשית מרשומות במכנה קלט אל שיטת העי- בוד במחשב וכדומה בהסבה לצורך פלט, הינה יעילה ?ותר ע"י פעולת השמה, מאשר ע"? הוראת קלט/פלט. כלומר, נתונים מספריים המנוקבים בכרטיס יקראו למחשב במבנה של תוים, והם יוסבו למבנה דצימלי או בינרי פנימי ע"י פסוק השמה. וכדומה-- בבי- צוע פלט להדפסה, למשל. מאגרי קלט ופלט לצורך פעולות קלט ופלט בשיטת רשומות נדרש מאגר או שטח זכרון אשר יקלוט את רשומת הקלט או ישמש לאחסנת רשומת הפלט עד לכתיבתה. לצורך זה משמש שטח הזכרון המוגדר כמבנה ע"י הוראת ההכרזה. עבור קריאה וכתיבה ביחידות כמו קורא כרטיסים ומדפסת שיטה זו נוחה ומספיקה. אך לא כך הדבר במתקני אחסון מגנטיים מהירים. הרשומות בקובץ הנמצא במתקן מגנט? (סרט, דיסק) מאוגדות בבלוקים. כל בלוק מכיל קבוצה של רשומות, וזאת כדי לייעל את פעולת הקלט/פלט ולחסוך בשטת אחסנה בסרט או בדיסק. כאשר מבצעים פעולת קריאה יקרא בלוק שלם אל הזכרון לשטת הדוה 757757 פחהקיה ה דה רה רוי דטה טטר דיר רוחה הרהט קרועה התה הטרה ו 4 זו ו 0-ו זה הדה ידה ויח "דרוו דהרדר ודד הוחררד - 348 - שיוקצה מראש ע"י המהדיר. כל פעולת קריאה נוספת תעביר למבנה את הרשומה הבאה עד לסיום הרשומות בבלוק. אז יקרא הבלוק הבא, וכן הלאה... . בביצוע פעולת פלט, תועבר הרשומה אל שטח הבלוק המוקצה בזכרון. כאשר הוא "יתמלא" הוא יכתב בקובץ, רשומה חדשה תכתב בראש הבלוק וכן הלאה. הוראת 01058 לקובץ פלט תכתוב את הבלוק האחרון גם אם אלנו 'מלא". מקובל בדרך כלל ש?ה?ה יותר מבלוק אחד לקלט או לפלט. והסֶבה - מכיון שמערכת ההפעלה *כולה לנהל פעולות חופפות היא מבצעת "קריאה" של בלוק חדש מראש בעוד התוכנית מטפלת בבלוק הקודם. אח"כ מוחלף הפיקוח, התוכנית מטפלת בבלוק שנקרא ומערכת ההפעלה "מכינה" בלוק חדש. כדומה בפעולת פלט - מערכת ההפעלה כותבת את הבלוק ליחידת הפלט בעוד התוכנית "מכינה" עבורה בלוק חדש. פעולת מערכת ההפעלה "שקופה" למתכנת. ביצוע הוראת פתיחה לקובץ קלט, תגרום לבדיקת התוית שלו ע"? מערכת ההפעלה, ואם מתאילם - תציב אותו על ראש?ת הנתונים לקריאת הבלוק הראשון. הוראת סגירה לקובץ פלט תבדוק את תוית הסיום של הקובץ לפ? נוהלי המערכת. ביצוע הוראת פתיחה לקובץ פלט, תרשום תוית חדשה בראשית הקובץ ותציבו בצורה מתאימה לכתיבת הבלוק הראשון. הוראת הסגירה תכתוב את הבלוק האחרון שעדיין לא הושלם, ולאחר מכן - את תוית הסיום של הקובץ. הגדרת תכונות קובץ בפרק קודם הוצגו כמה מהתכונות החשובות של הקובץ אשר התיחסו בעיקח 4 הסטנדרטיים של המערכת הפועלים בשלטת 1/0 86:68₪. לקבצים ישנן מספר תכונות המאפיינות אותם הן מן הבחינה הלוגית והן מהבחינה הפיזית. התכונות הלוגיות להגדרת קובץ הן: פלט/קלט/עדכון, ש?לטת 56:68₪ או 4, שלטת עיבוד רציפה או לשירה, שימוש במאגרים וכד'. התכונות הפיזיות מציינות את שיטת הארגון הפיז?ל של הקובץ, מספר המאגרים, מבנה רשומות ובלוקלם וכפד'. ההבחנה הראשונה בין סוגי קבצים הינה בצורת הניהול שלהם, ע"י התכונה %אאתתפדם או כ55608. לכל אחת מתכונות אלו נלוות תכונות אחרות. ‏ נציין רק חלק מהן: - 345 - 0 פפחסססת 0 גד סוג הפעילות שד סקט דטפקדטס /דטץאד דטקדטס דטקאך לקובץ הרפסה בלבד דצאנפץ שיטת עיבוד וז ד זז ז דא שימוש במאגרים ועט ארגון פלזל ‏ . (רשימת תכונות) דא א0ת1עאם (רשימת תכונות) דאשאסתנטאםת - קיצור של 8118₪א58008 הוא 550 - קיצור של 1א₪,א0ת1טאם הוא עטאם - קיצור של ספםתתץקטת הוא לטפ נבהיר בקצרה את רשימת התכונות: - "סוג הפעילות" מציין את ההרשאה להפעיל על קובץ הוראות קלט/פלט מסויימות. אם ניתנה הרשאה ל-207א1, לא תורשה פעולת דש2 בקובץ זה. - התכונה 1א251 לקובץ בשיטת 55568 מאפשרת להפעיל או "לדכא" הוראות פלט ספצי- פיות למדפסת. כאשר מדכאים פעולות אלו (5%12 למשל) אפשר לבצע פלט אל קובץ מגנט?ל או כרטיסים ללא צורך בשינוי ההוראות. - "שיטת העיבוד" מורה שהגישה לרשומות תהיה לפי סדרן או לפי מפתח זהוי. במקרה השני - נדרש ציון של המפתח בהוראות קלט/פלט. - "שימוש במאגרים" נדון בתחילת סעיף זה. הוא מיועד בעיקר לקבצים מגנטיים בשי- טת עיבוד רציפה. - "ארגון פ?ז?" גורר אחריו רשימת תכונות כפי שנפרט בהמשך. הגדרת תכונות פיזיות לקובץ נעשית ע"י המציין דא₪א0א18טאע בהגדרת הקובץ. במערכות הפעלה שונות יש שונ? ברשימת התכונות, מכיון שבכמה מהן אפשר להגדיר את התכונות ע"? פרמטרים הנמסרים למערכת ההפעלה בזמן ביצוע התוכנית. הגדרת תכונות זו מספקת למהדיר את המלדע הדרוש לו לשם קביעת השיטה ופקודות ,:מכונה הנדרשות לקלט ופלט של הנתונים. הקורא ליטיב אם יפנה בנושא זה לספרות המתאימה, ובמיוחד לחוברות הנושאות את השם 0146 5'צ6מהצפקסץץ 0/1ק. רשימת התכונות למציין /אם הינה ארוכה. נזכיר כאן את החשובות שבהן, המאפיינות את מבנה הרשומה ואורכה ואת גודל הבלוק. וי ו +77 הירד ה ה דה הררדרר ה ותחההה. 2% ש>/*--> - 346 - 5 או ? רשומות בודדות באורך קבוע. 8 או 585 רשומות באורך קבוע בבלוקים באורך קבוע. % רשומות בודדות באורך משתנה. 5 רשומות באורך משתנה בבלוקים (באורך משתנה). ע רשומות במבנה לא מוגדר. (ח) 3505125 אורך הרשומה בתוים. אורך קבוע או אורך מקסימלי. (ח) 5128א]2 אורך הבלוק בתוים | אורך קבוע או אורך מקסימל?ל. (ם) 8077285 מספר המאגרים לבלוקים של הקובץ (אפשרי יותר מ-2). ספאפסאז/תטז55007א54/60ץ//גא610ת שיטת הארגון הפיזי של הקובץ. ברירות מחדל בהגדרת קובץ בדרך כלל אין צורך לצי?ין את כל רשימת התכונות ואפשר להסתפק בציון תכונות המפתח בלבד, אשר גוררות ברירות מחדל שונות. כאשר לא מציינים דבר, משתמעות התכונות הבאות: (5501) ת18זא55000 ,דטקא1 ,578548 - כאשר מגדירים נוספת התכונה 0 - כאשר מגדירים 013861 נוספת התכונה פפאםץתטפאט קובץ המוגדר בשיטת ניהול 8550608%80, כלומר קובץ רשומות, יקבל את רשימת התכו- נות הבאות כברירת מחדל: .א ,פשתטשעקקעטם ,0ה11א500 דוגמאות להגדרת קבצים הגדרה מלאה לקובץ: פפתםץלטת דטקדטק כ6008םת 5500 מתדת צתקדאתטאד מתגסמס (((2) 8077585 מט008580071 (2400) 58125א21 | (120) 051258עת | פק) עאס קובץ צ098דאמטא1 הוא קובץ במבנה רשומות שיעובד באופן רציף כקובץ פלט, עם מאגרים לבלוקים; הרשומות והבלוקים הם באורך קבוע, אורך הרשומה 120 תוים ואורך הבלוק הוא 2400 תוים, הארגון הפיזי שלו הוא רציף, ומוגדרים עכבורו 2 מאגרים לבלוקים. אפשר להשמיט חלק גדול מהתכונות ולציין: דטסטקךטק כפקסעת מתדע צתשדאמטאז מחהסטכ ((26400+ 5125א21 (120)- 05125ם2 | פ5ק) שאק - 387 - הגדרה נוספת: טא מדהפעקט 5802 אנדץ צ5169ט מסס את תכונות הקובץ מגדירים בפסוק ההגדרה ...1/8 8ת013עכ2. אולם אפשר להגדיר את תכונות הקובץ גם בפסוק הפתיחה אא?0, פרט להגדרת התכונות הפיזיות - דאמאאסתנטאט. דוגמה: ;,פםעתםץקטת 5502 דטקות כתאסעת (₪5גא) מענק א5ק0 הוזכר שחובה, ורצוי מבחינתו של המתכנת, לבצע פתיחה של כל קובץ בתחילת העיבוד. אך אם פעולה זו לא מכוצעת וחסרות הגדרות בפסוק ההגדרה של הקובץ, יניח המהדיר שהקובץ נושא את התכונות המתאימות להוראות קלט ופלט המופעלות עליו. לדוגמה, אם נכתב 68% - מניחים צטתפא1, אגם575; הוראות עגפת ו-8118ח יגררו תכו- נות 50082 ואת התכונות הנלוות לה. טיפול בקובץ מוגדר כאשר. מגדירים פעולות קלט ופלט בקבצים השונים מהקבצים הסטנדרטיים של המערכת יש לבצע מספר פעולות הכנה לקראת העיבוד שלהם: א. הגדרה ; (תכונה) מתזע (שם קובץ) שת01%טס - "שם הקובץ" נרשם לפי? כללי רישום מזהים (ללא סוגרלים). - "תכונה" (בסוגריים) יכולה להיות צשפא1, 001207 או 8דגפ?ט (תכונה המאפשרת קלט ופלט). התכונה דאז5ת יכולה להחליף את התכונה 001201. כאשר ישנן בהוראת הפלט פעולות המכוונות למדפסת, כגון 1א5% או 2208, הן תופעלנה רק כאשר ההוראה מכוו- נת לקובץ הפלט הסטנדרט?, או כאשר מוגדרת התכונה 1א]ת2?. דוגמה: דאנתץ תנע דמוקק מתגוסטסס ;דטקאך פעזע גטאך ב. פתיחה וסגירה כדי לבצע עיבוד קובץ השונה מהקובץ הסטנדרט? של מערכת ההפעלה יש לבצע שתי הוראות: - 348 - ; (שם קובץ) עזצע אשת פתיחה - לפני? ביצוע פעולה כלשהיא ; (שם קובץ) ₪5 6105=₪5 סגירה - לאחר סיום הפעולות בקובץ כאשר קובץ משנה את תפקידו במהלך התוכנית, וחשוב לציין זאת, אפשר לרשום את התכונה בהוראה א0?8, כבדוגמה הבאה. אם לא רושמים את ההוראה 6058 במפורש, "נסגרים" הקבצים אוטומטית עם סיום התוכנית. "שס קובץ" ירשם בסוגריים. תרג יל תאור הבעיה רשום כהערה, בגוף התוכנית: ; (א1141) 0011085 מתטפטסשתק :דצטשאד אק שו עךנט סאג אעזע קא1 פ57 אפתת 5אתמפתא 3 פגספת :הקאס */ /* אד דאזתתק פאה 5תתפטא מפפוד עגפת אחז . צאגא55-2 6311 ם,זדץ (םשא1ת (2,24,2,6,צ,א) סתה זסטכ א ;(2,צ,א) 2157 607 ;ד (צאגא2) טתזע א₪ק0 ;(2,צ,א) 2157 (צא%אא2) טשענץ דעק ; ( צא2118)2%4 61055 ;דצטפאן (צאגא2) מע1ת אםק0 4,2,0(0) 1157 (צאגא2) מענק ‏ 6007 /* 207 5ת0עע פא121 ומא 70 512 */;קזא5 (5,60,) גדגכ דטס ; (צאגא2) 2115 00058 ;דעטשא1 פאט הסבר: - הקובץ צא2%4 יוגדר ליחידת ציוד המאפשרת קלט ופלט, כמו למשל סרט מגנט? או דיסק. - קובץ צאג2% מוגדר כ-115? בלבד. את התכונה הוא יקבל בהוראת א8ק0. - כאשר "פותחים" קובץ כ-20%א1 אפשר לפנות אליו בהוראות 681 בלבד, וכאשר פותחים אותו כ-007201 אפשר לפנות בהוראות 201 בלבד. - לאחר "סגירת" קובץ אי אפשר לפנות אליו בהוראות קלט/פלט. - הוראת א0?5 מציבה את הקובץ כדי שאפשר יהיה לקרוא אותו מתחילתו. הערה: בשלב זה כללנו רק את התכונות הבסיסיות של קבצים עבור עיבוד בשילטת 68₪ז56. - 389 - סיום עיבוד קובץ קלט ישנם ציונים מוסכמים לסיומות של קבצי קלט: בכרטיסים - זהו הכרטיס המסומן עם */ בטורים 1-2, בקבצים בסרטים ובדיסקים - תויות סיום. מערכת ההפעלה לכולה לזהות סיומת זו ולהפנות את הפיקוח, ללא התערכות המתכנת, אל קטע תוכנית מוגדר המטפל במצב של סיום הקובץ. ההוראה לביצוע פעולת הבדיקה והפעולות הנלוות אליה נכללת במסגרת "פסוק:י התניה - אס0". פסוק ההתנליה לסל?ום קובץ קלט *להיה: ;(פסוק/ים) (שם קובץ) שתזקסאע א6 ולדוגמה: ;420 70 60 (גטאד) ע1זקפאם אש או: ;א9001 (2דשט0א) פתזעפאם א0 ;5זאזת 10 60 ; פאם את הפסוק ...םתזעעאם א0 אפשר לרשום בכל מקום בתוכנית. אולם בדרך כל; רצוי לרשום אותו בתחילתה, יחד עם ההגדרות האחרות. במהלך התוכנית אין כל טל- פול בנושא סיומת הקובץ והסיעוף אל קטע התוכנית המטפל בנושא זה יעשה אוטומטית ע"י הכוונת הפסוק ...שתזעפאםת אס0. - הוראות קלט ופלט לקובץ רשומות הוראות קלט ופלט לקובץ רשומות הן: קגסת, 178ח, המקבילות להוראות 601, טע לקובץ 8668₪. מבנה ההוראות: ; (משתנה) 70א1 (שם קובץ) שעזק פגאת ; (משתנה) 804ת (שם קובץ) עתק שדזאח - "משתנה" יכול להיות משתנה סקלרי, משתנה מערך או משתנה מבנה. - "שם קובץ" ו"משתנה" ירשמו בתוך סוגריים. ולדוגמה, הוראות קלט/פלט: ; (5551%0) 70א1 (5דומפטד5) מעתצץ פגתת ; ((אזטפעת) אסתת (צת1570ע) מתדק מצדתח 8 עה ה רהה הררה 7 = = החדה דה 00-03-33 ן = 0כה = נדגים תוכנית המבצעת פעולות קלט/פלט: התוכנית קוראת רשומות מקובץ, וכותכת את הרשומות אל קובץ פלט. אין כל פעולות עיבוד פרט לספירת הרשומות והדפסה בסיום העיבוד. 1 2 3 6 5 6 7 8 9 10 11 12 הסבר: ; (א1אא) 5א00710 שתטכםע6שתת : עטפת ((0) דזא1 (2) ספאדץ כתטדק מתה61טת ,דזתגת 1 , (8) 65 115248 2 (מסזתץ 2 (8,2) פסאזק ‏ מז 3 ; (7,2) סמאדע %פט 3 ;,דטתדט0) פודע 58 ,(דסקאד מתדץ 4 מתהסטת ;0 716 60 (ג4) מתנעסאם א6 ;עפקסעת (25) םודק ,עת0ס6עת (ג2) מעדקע אמת0 ;(דזת8ת) 0דא1 (ג4) שזנע פגסעת | :פת /* 5עת009עת ע0 שא דא000 */ ;1 + תמדק = פממדץ ; (28917) אסתץ (55) מעדע מצדתח ;עתפ 10 609 ; (פעזט1ץ) 5478 עטק :507 (98) סעדע ,(4) תדע 00058 /* 0044תע 05 פאם */ ;דחאפת פאם א. ‏ בפסוק ההכרזה בשורה 2 ישנה הכרזה של סקלר עם ערך התחלתי אפס, ושל מבנה רשומה. הקבצים מוגדרים בשורה 3. בשורה 4 נרשמה ההתנייה למצב של סלום קובץ הקלט, במקרה זה תבוצע הסתעפות לכתובת ע50. בשורה 5 פותחים את שני הקבצים. שים לב שאין צורך להגדיר את התכונות: פספמקקטת ,7ַ712אמט5000. התוכנית מתחילה בהוראת הקריאה והיא נמצאת בלולאה (שורות 9-8-7-6) מבלל להזדקק לבדיקת מצב של סיום הקובץ. מצב זה נבדק אוטומטית בכל פעולת קרלאה בהתאם לפסוק א0 שקבענו. את רשומת הקובץ קוראים לתוך הרשומה 249577 ומשם גם כותבים אותה. בסיום העיבוד של הקלט מדפיסים את המונה פ181ע (שורה 10) ואח"כ סוגרים את הקבצים (שורה 11). ויו .'ו.-רדי-וד.-- .יי השק יח וקו הח הח > עיבוד הרשומה בתוך המאגר פעולת קריאה של רשומה אל שטח הרשומה, או פעולת כתיבה של רשומה מתוך שטח הרשומה גוררת פעולת העברה אשר אפשר, וברוב המקרים גם רצוי, למנוע אותה. כלומר, אפשר לעבד את הרשומה בהיותה במאגר הקלט, או לערוך אותה ישירות אל תוך מאגר הפלט. מכאן משתמע שהשיטה מתאימה לקבצים המוגדרים: עטם, 580₪, כ608עת5.כדי לבצע את העיבוד בצורה זו נדרשת ידיעה על המקום של הרשומה "התורנית" כבלוק הקלט או בלוק הפלט. משיגים זאת ע"י שימוש במצביע (ץ8פת+סק). דרושה הכרזה של משתנה כמצביע לרשומה במאגר,וכנוסף - לציין את השימוש בו בהוראות המתאימות. כדי לפעול עם מצביע נדרשות שתי פעולות הכרזה: האחת - הכרזת המצביע: ;58דא01ק (משתנה) 6%8858טכ "משתנה" הוא מסוג צתגא51 פמאזץק. ;תדע ]א 60155 אם לא מגדירים את המצביע הוא מוגדר כברלרת מחדל כאשר המהדיר מזהה את השימוש בו. ההכרזה השניה הינה הכרזת הקשר של המצביע אל הרשומה שאותה הוא משרת. ההכרזה נעשית בצמוד לשם הרשומה, למבנה הראשי - ברמה 1, עם המציין; (מצביע) 84552. , (א) פ5455 אג?58 1 פתג501ס , (20) 0128 סופ 2 ; (30) 0805 10081 2 א הוא משתנה-מצביע הנקרא 16לַ14זט 58566 ותפקידו להצביע על המקום המתאים של הרשומה התורנית בבלוק. הוראת הקריאה הלא: ;(מצביע) ‏ 587 (שם הקובץ) 18ק פגספת כמו ; (%א) 557 (צ1שג) 18ע פגסת "המצביע" הוא המשתנה המצביע על מקום הרשומה במאגר (במקום לבצע את העברת אנתו- נים אל שטח הרשומה). המתכנת מניח שמכנה הרשומה כאילו מוצב בתוך הבלוק החל מהכתובת המוגדרת על ידי "המצביע". הוראת הכתיבה למקרה זה אינה 8178 אלא 100218. משמעותה - איתור מקום הרשומה התורנית בבלוק הפלט בכדי לאפשר עריכת הנתונים "כתוכה". הוראת 00475.] בודקת אם עדיין יש מקום בבלוק. אם הבלוק "מלא" ->הָוא יכתב בקובץ והמצביע יורה על תחילת בלוק חדש. -7ה7<>-> -- -7--.. ו 7 = --- "20007 2 .2 0ְְְְָץ ו - .49 שמשב 2-7 ו - 352 - ; (שם הקובץ) את1ק (מצביע) 581 (שם רשומה) 06278 "סם רשומה" הינו המבנה המוכרז בפסוק א6148מכ. "מצביע" הוא המשתנה הקשור באותה רשומה. לדוגמה: ; (א1251150) שונע (0) 7ע5 א2ק522 06278 כאשר המתכנת בוחר לעכד את הרשומה בתוך המאגר, מחוכתו להעביר את השדות הרצויים לו מהמאגר או אל המאגר ע"? פסוקי השמה מתאימים. בעיקר אמורים הדברים לגבי קובץ פלט, שסם הוא חליב לאפס או להציב תוי מרווח בשדות שלא מועברלם אליהם נתו- נים אחרים. תרגיל נתון קובץ לקוחות המפעל. יש להכין קובץ פלט אשר יכיל את רשומות הספקים החייבים מעל -.10,000 9. יש לתכנת הוראות קלט/פלט לעבודה בתוך המאגרים. מבנה הרשומה נתון בגוף התוכנית. 1 ; (א441) 0271085 פפטפפסשאק ‏ :6057 2 (עפתעקלטעת כת60עת מת1ק תעדפגאא 6 3 ;םעט 00707 פתפסמת מעדע דשטשט 4 ((%) 284582 0057806 1 0 5 (6) סעא1ץע 6א4007 2 6 (25) 018 עעגא 2 2 8100 7 7 ָ פאד11 (א) כ0ע5ג25 דמתמק ‏ 1 6 6 ;אנע 70 60 (8פד5גא) מע1עפאםת א0 10 ;(א) 507 (5ם4457) םע פגספת :דַ2ד5 11 .4 אמוד 10000 < 608אג1ג58 0057880 קז 12 (0007) 105קת (א) 551 דשוסץ 100878 3 ;פאם ;0051880 = דע וחק 60 16 1; 14 5 (40007) פזנע 02058 | :אדק 16 ;1 פאס הסבר: - מכיון שהעיבוד נעשה במאגרים, הופעלו בהוראות המציינים 58580, 50%, 78ג00. - הגדרת הקבצים בשורות 3-2 נעשתה בהנחה של ניצול ברירת המחדל. - בשורה 59 מוגדרת רשומה 7ַ8זע? של קובץ החובות במבנה זהה (8א11%) לרשומת קובץ האב. הציון 5א1] אינו מעתיק את תכונת הרשומה 88580. לכל רשומה מצביע נפרד. - התוכנית תפתח ותסגור אוטומטית את הקבצים שאין עבורם הוראות מפורשות. - עיקר התוכנית הינה הלולאה בשורות 10 עד 14. - 353 - סרק 9: אכ[הּ תכוית התוכנית מורכבת מאוספים של פסוקי הגדרה, פסוקי ביצוע ופסוקי בקרה. אוסף פסוקים הכולל ?חידה לוגית אחת מכונה כלוק (5106%). קיימים ב-1/1? בלוקים משני סוגים: 5106%8 220022085, 5106%5 א61ט5. 80050085 1066 | 5 - הלנו נוהל המכיל אוסף של פסוקים המכָוונים לבצע מטרה מוגדרת. בכל תוכנית קיים נוהל מרכזי אחד לפחות, ולכן הגדרת הנוהל המרכזי והראשון של התוכנית הינה: ; (א441) 0071085 מפטפמ06תק בהגדרה זו השתמשנו בדוגמאות ובתרגילים שהוצגו עד עתה. אפשרויות נוספות לנוהלים הם נוהלי-שגרות ונוהלי-פונקציות אשר נעמוד בהמשך על התכונות והאפשרויות העיקריות לכתיכתם. הקורא המעינין להרחיב ידיעותיו יפנה לספרות המומלצת. שגרות אפשר לכלול בתוכנית נוהלים נוספים אשר אפשר לכתוב ברצף עם הנוהל הראשי או בנפרד. כאשר הם נכתבים בנפרד הם יכולים לעבור הירור ונפוי נפרד, ורק בשלב הסופי הם מצטרפים לנוהל הראשי ע"י פעולת ז01ם אא1/] של מערכת ההפעלה. נוהלים משניים הינם בדרך כלל שגרות המכוונות לבצע פעולה מסויימת מוגדרת, החוזרת על עצמה פעמים אחדות בתוכנלת, או שהן חוזרות בתוכניות אחדות ועל כן נכתבות פעם אחת בלבד. כל נוהל מהווה יחידת תוכנית סגורה ועל כן אפשר'לחזור בכל נוהל על אותם השמות של המשתנים ללא חשש לרב-משמעויות. הפרמטר של הנוהל הראשי הוא הציון אזגא. בנוהלים משניים ישנם גם כן פרמטרים, הכוללים את רשימת המשתנים המועברים בינם לבין נוהלים אחרים. הפרמטרלם, או המש- תנים, צריכים להיות שוים במבנה וכסדר, אבל שם הפרמטר עצמו אינו חשוב. ו אב 4 ו - - 358 - פנייה של נוהל אחד אל נוהל אחר נעשית ע"י ההוראה .681, בעלת המבנה הבא: ; (רשימת פרמטרים) (שם הנוהל) 641 - "שם הנוהל" הינו התוית שלפני פסוק א0%כע06מק. - "רשימת הפרמטרים" ניתנת בסוגריים וכוללת את שמות המשתנים. אפשר לרשום גם את התכונות של המשתנה המוחזר. רשימה זו אינה קיימת, אם אלנה דרושה. חזרה מנוהל הינה ע"י ההוראה אתטצעת. השימוש בהוראה זו אינו חובה אם היציאה מהשגרה הינה בהוראה פאק. תרשים להצגת הסתעפות בין נוהלים: נוהל משני נוהל ראשל (4,5,0) מתט0מ00ת :אאאא (אזגא) 5א7106ק0 עפטפע06פק :אסק פסוקי התוכנית פסוקי התוכנית ; פאק ; סא הנוהל המרכזל: ; (אדגא) 5א02710 5פט0פ65קתק :57497 ((5,2) סמאדע (4,2,0) מתג6טכ ; (10) 6128 א קריאה לשגרה: ; (4,4,0) מטנגט .61 ;7 פא השגרה: ;(צ,א,א;) עפטסעסקתק :טטסעהל ((10) תג א מתג,סקס ;(5,2) סמאצק (צ,א) סיום השגרה: 4" ; אפדקת פפאע הור - 2 ו 0-77 --- - 355 - פונקציות לעתים נוח להשתמש בשם נוהל בתוך ביטוי ארלתמטי, כלומר שלא בעזרת ההוראה ץ]ן. נוהל זה מוכר כנוהל-פונקציה מכיון שהשימוש בו דומה לשימוש ב"פונקציה- בנויה". דוגמה להפעלת פונקציה 1/ח% למכפלת שני מספרים: .1 + (2 ,20102ת) דוטא = 07 מכיון שהנוהל מוזכר בתוך הפסוק ושמו מופיע בו בדומה לכל משתנה אחר, צריך להגדיר את תכונותיו כפי שמקובל עבור משתנים. בנוסף צריך לציין את רשימת המשתנים/פר- מטרים המועברים בינו לבין הנוהל שהוא מוכל בו. מבנה ההוראה: ; (תכונות הפונקציה) (רשימת משתנים) 26002088 :(שם הנוהל/פונקציה) לדוגמה: ;(6) 047ת (201082ע ,1א0דס0גת) מתטפתסשתק :ץח חזרה מנוהל-פונקציה חייב להיות בהוראה אתטצעת המחזירה ערך של משתנה. מקובל להשתמש בהוראה א1/8עת המלווה בביטוי שערכו מועבר אל הנוהל אשר קרא לפונקציה. אפשר לכתוב את ההוראה גם בתוך משפט, לדוגמה: ;(1) אתענעת אחעות 5 = ג קך דוגמה לנוהל-פונקציה לחיבור 2 מספרלם: ; (7,2) סעאצע (4,5) עתטסע66גץ :כפפג ; (7,2) סחאנק (4,5) מתת01טכ ; (8 + 4) אתפטדעת ;פאק בנוהל הראשל נפנה לפונקציה בצורה הבאה: ; (א1אא) 02710685 פתטפעסשת? | :א ; (6,2) פטא1ץ (2,ת) סתג. ומס ;(2,2) ככ = ת ;(פ) 1.57 צשק ;פא 567 6% כדוגמת 106% 00988ת00ת2, גם בלוק א2861 תוחם אוסף של פסוקים בתוכנית. אולם שלא כקודמו שיש לו שימושים מגוונים, מ?ועד בלוק א8861 למטרת הגדרת תקל- הממי <)-.*.אש. 2 יא ₪ - 396 - פותם של מזהים (שמות). מקוכל להשתמש בבלוק זה בפסוקי התנייה ...א0. המבנה הכללי של הבלוק הוא: ;אזסעת :(תוית) (פסוקי התוכנית) ; סאק הכניסה לבלוק א5801 הינה ברצף ההוראות של התוכנית, או ע"י הוראה 78 60 אם יש לו תוית. התוית אינה הכרחית. שמות הרשומים בתוך בלוק א8861 תקיפים בתוכו אולם אינם תקיפים מחוצה לו. תקיפות הגדרות מזהים בדוגמאות הקודמות נכתבו נוהלים שונים מסוג 20052088 ברצף, אך לא ניתנה דוגמה של נוהל אחד המוכל בנוהל אחר (כדוגמת לולאות 20 המוכלות זו בזו). בדוג- מאות אלו כל הגדרה תקיפה בתוך הנוהל שלה בלבד. בדומה לא הצגנו דוגמאות של הכלה של בלוקים מסוג א2₪0601. כאשר ישנם נוהלים המוכלים זה בזה יש להקפיד על הכללים לתקיפותם של ההגדרות ל המזהים (המשתנים). כללים אלו מפורטים בספרות בנושא 68שאא +0ס ת1610ת6602ת. פונקציות בנויות פונקציה מפיקה ערך חדש עבור כל ערך או קבוצת ערכים אשר היא מקבלת. פונק- ציה המפיקה שורש ריבועי למשל, מקבלת ערך א כלשהו ומפיקה ערך אחר שהוא שורש של א. הערך המתקבל ע"י הפונקציה נקרא ארגומנט. הפונקציה יכולה לקבל ארגומנט אחד או יותר, אכל תפיק (או תחזיר) ערך אחד בלבד. דוגמה לפונקציה המקבלת יותר מארגומנט אחד היא פונקציה המחזירה את הערך המירבי מבין אוסף ערכי הארגומנטים המועברים אליה. צורת הגדרת פונקציות ע"? המתכנת הוסברה בפרק "מבנה התוכנית ב-1/מק". פונקציות בנויות (5ח6510חש1 ם115-1ט2) הן חלק של השפה ואלה הן בדרך כלל פונק- ציות בעלות שימוש נרחב. השימוש בפונקציה בנויה נעשה ע"* קריאה בשמה. הארגומנטים לפונקציה נרשמים למשל, 50251 הוא שמה של פונקציה בנויה המחשבת ומח- בסוגריים הבאים אחרי השם. שימוש לדוגמה בפונקציה זירה את השורש הריבועי של ערך הארגומנט המועבר אליה. ;(1ת)5081 + 2 = א משמעות הביטוי: השורש הריבועי של 21 יחושב ע"י הפונקציה 5081, ערך זה יתוסף לערכו של 1 והתוצאה תושם ב-א. הארגומנט לפונקציה כנויה יכול להיות ביטוי מסוג כלשהו. ובמקרה של 5081 לדוגמה: + 5/א) 5081 = ץצ פונקציה המקכלת יותר מארגומנט אחד היא הפונקציה אגא. לדוגמה: ; (10-א,0, ?)אגא = מטעגט 57שצ6זמ לפונקציה 4% יועברו במקרה זה שלושה ארגומנטים. ערכו של ע, ערכו של 2 וערך הביטוי 10-. הפונקציה תחזיר את הערך המירבי מכביניהם. ערך זה יושם במשתנה שסז:-- 57 ו. נהוג לסווג את הפונקציות הבנויות לפ? הקטגוריות הבאות: א. אריתמטיות, ב. מתימטיות, ג. טיפול במחרוזות, ד. טיפול במערכים, ה. שונות. הסכר לחלק מןו הפונקציות הבנויות ב-1/%? ימצא הקורא בפרקים הבאים. סקירה על פונקציות נפוצות השימוש בפונקציות בנויות נפוץ מאד בעבודות מדעיות, ולמעשה לרוב נוהלי החישוב המקובלים ישנן פונקציות מוכנות. נזכיר כאן רק את הפונקציות הטריל- גונומטריות (א51, 005) ואת הפונקציות הלוגריתמיות. קבוצה נוספת של פונקציות האופיינית למערכות עיבוד נתונים מינהלי הן הפונקציות לטיפול במערכי נתונים והפונקציות לטיפול במחרוזות נתונים. פונקציות לטיפול במערכים: % - סכום כל איברי מערך. ססתץ צאה ,410 ספאט150 ,פאטספא ,אנכ מכפלת איברי מערך. סריקת סביות במערך לעומת "מסכה" נתונה. הצגת תחימ? מימד של מערר. פונקציות לטיפול במחרוזות: מז6אם] - אורך מחרוזת נתונה. 7% - שליפת חלק ממחרוזת לפי דרישה. אעפא1] - סריקת תוים או סביות במחרוזת לעומת "מסכה" נתונה. ₪ תד - החלפת תוים או סביות במחרוזת נתונה לפי קביעה מראש. בפונקציה זו אפשר להשתמש לתרגום קודים למשל ₪ - ביצוע פעולה בוליאנית רצונית על מחרוזות. ו דרי -.- ₪ מו וווז 2 : !ו פת - 358 - לכל הפונקציות שהוזכרו ישנה רשימת ארגומנטים (סקלרים או מערכים) - אך אלו לא הוזכרו כאן. שתי פונקציות נוספות נפוצות הן: ₪ - מחרוזת תוים המציגה את הזמן הנוכחי (לפי שעון המחשב) עד דיוק של אלפיות שניה. ₪ - מחרוזת תוים המציגה את התאריך (לפי הנתון במחשב) לפי: יום, חודש, שנה. התערבויות במהלך ביצוע תוכנית התערבויות (8ת610]קטמזץ6פת1) הינן אירועים בלתי מתוכננים אשר יכולים לחול במהלך הביצוע של התוכנית. תוכנית שתוכנתה ועברה הידור עדיין אינה מבטיחה פעולה תקינה. כדל? להבטיח זאת מבצעים נפוי המכוון לנפות את השגיאות העלולות להשאר, אולם למרות זאת יכו- לים להיות מצבים שא? אפשר לאתרם והם מותנים בנתונים המוזרמים בתוכנית. עד זאן - הצד השלילי, אך ישנם גם מצבים ידועים ומוכרים אשר המתכנת מצפה להם,אולם, גלל האקראיות שבהופעתם עליו להכין את האפשרות לטפל בהם מחוץ למסלול הרגיל של זוכנית. נזכיר כאן את האלרועים הנפוצים ביותר בתוכניות: 0 0)- גלישה של ערך מספרי בשיטת הנקודה הצפה מעל ומתחת לגבולות אס,[עתטטספמאדץ 8 - נסיון לחלק ערך מספרי באפס. הטשדה. ו גלישה של ערך מספרי בשיטת הנקודה הקבועה מעל קיבולת השדה. א598510/א00 -.הסבה לא נכונה של נתונים מספריים, או גלישה מתחום קיבולת השדה. א (שם קובץ)א,ז1עפאם (שם קובץ)ע46תעפאם - סיום דף ההדפסה בקובץ פלט למדפסת. נדרשת הוראה למעבר לדף חדש. מציין של מערך גולש מתחומו. מצב של סיום קובץ קלט. כדי להשתמש באפשרות השליטה בהתערבות צריןך לרשום פסוק התניית התערבות בצו- רה הבאה: ;(יחידת תכנות)(אירוע) א6 - "יחידת תכנות" היא פסוק תקף ב-22/1 או בלוק א8561 (אך אסור קבוצת ס0ת). בתוך בלוק א5561 אפשר לכלול הוראות כלשהן ללא מגבלה. רצוי לרשום פסוק זה בקבוצת ההגדרות שכתחילת התוכנית. לדוגמה: ;0 70 60 מעתנעפאת א6 (8 ; (1ע9ע5) 01055 :א61עת פזזקפאת א6 (ס ; 09 ; פאק פוענץ 70 2280 מטקא :א01ע5 מפנט1כ0ת20 א6 (6 ; אמא 18 00 ; פאק תרגיל סיכום נתון: שנ? קבציס של מחירוני פריטים: מחירון בלירות ומחירון בדולרים. לכל פריט יש רשומת מחיר בלירות ורק לחלקם - מחיר בדולרים. יש לייצר מחירון אחד לכל הפריטים וגם להדפיסו. התוכנית: בדף הבא. הסבר לתוכנית: קבצים רציפים מוגדרים במבנה רשומות בבלוקים באווך קבוע. העיבוד מבוצע בשטח הרשומה. רשומות מחיר בלירות יקראו אל רשומת 601, אשר תהיה גם רשומת קובץ הפלט לאחר עדכונה. רשומת מחיר בלירות היא אטך1. התניית סוף קובץ מחירון בלירות מבצעת הסתעפות לסוף התוכנית. סיום המחירון בדולרים לפני סיום המחירון בלירות הינו מצב שגיאה אשר ידווח, ותבוצע הסתעפות לסוף התוכנית. קובץ הפלט להדפסה מוגדר למדפסת. רשומת הקובץ 61זַאת? הינה במבנה מותאם לעריכת פלט הדפסה. תו ראשון הוא תו בקרה לקידום שורות במדפסת. כאן ננצל את ברירת המחדל שלו - קידום שורה אחת. שני משתני תויות מיועדים להעברת פיקוח התוכנית לתוית הרצויה:יכאן - קריאת רשומות בקבצים כפי הצורך. לאחר קריאת הרשומות נערכת השואה ועדכון רשומת הפלט (6₪1): מוסיפים מחיר בדולרים או מאפסים את השדה כאשר אין מחיר כזה. כאשר לפריט אין רשומה בלירות מפסיקים העיבוד ועוברים לסיום התוכנית, ללא דיווח שגיאה (רצוי לדוות). לאחר סיום העדכון כותבים את הרשומה בקובץ הפלט, מעבירים אותה לרשומת העריכה להדפסה וכותבים למדפסת. בסיום התוכנית - סגירת הקבצים. | | | | -- -00 0 7-ה ד .> = <הכא + --= - = 4 | 1 ₪ 6 0 040 - "ןה 7 -]- 501 |דש | 666295 006 (ז|0 10687086 הך - 1 כל 90 5 5 וי (%6 4%.) |56 )64.5 ... ] + ששו ז0) 29 5 ההטין לוש | : ו ]| + 15% 7 - 7 = 6 שק -₪ ו -- ,499 | 6640 1 2 8 - 0 ]| ,]5 ,1% 60 )או --6 21 8 -:] | וו ה וו ו 2-ה - ו | 1 בש ₪ ג . -131 ודה ו |ם 6 8 : ]7‏ שש ,606 א% . ו םי 6 4 | . וב עד 0 | .| .| ווהווון : ב , [ > | |*+.-. 1 +24 -- | 67 5 -- 6 2 ₪5 ₪ 6 = 1-2 | /א 1467 ור | | 6 0% ד 6641 - 6 הדתןי יון || השועו עד 68 ;(ד,> דא )א ש = - 1 שיין ני]ו7ן]ו)]'] :].. :| = = משוטו סו ו כחו וידרו המאו ₪ וו אא לצב 1+ יי 5 1 1 .₪ ו ל %- ?) ( 67866 |[499+) 6 לוו 7-17 קט 007086+ ₪ = ו כ <|ן |[ 68 65 הזופ 6 די 4 7 4 ].|וןו. /א שם662 א/ ב( )) " 09 66 0|, ,יר דר ר]. ומעו וו יוו ו |(4%)- > |-.56ק5 - .]4‏ ]. יצ וא א ה מוקרו. 7 6 . 6/6 28 22 .: = ]| --..4--------..--- ,|( ./)|. + 201 5 וה 7-54 - 0 אי יי | | | . 3 006 ו וקא 94 דין].ן:]..,. | . | 2 2482 |( 066 וי [רווו] [4 ו].1. .| ,)| דא66ט ,16607 |) : 7 |'ו0וןוו0ו]... | ;1'ום | ו 1 ]. ---- ב )| ששו ' ו = | -[|.]'ידלן. [ .1 .11 -ד6%) ק חא .| ו ופא+7 7 | :ג ו ו | | ג 4: כ גי (ז0569) וה 2... :1. שצ - 08 ;עפ הפאד קעת,. ה6דד = 0ק%] 1 "5 --- | וו 7 או ה : . . | תהאטר | 2 5דואא .פה ש6.. ץ + - .> ₪06 . בא ] [ ]1 :; ק / ו בא ]| ]| וו וא 3 .2 אותיין אד % .א 16" > ה 6 6ם ]---- = ----ץ 71009848 67 6056 -, 698 52 = 6066 2 6 7 108/)- 0 הסץ ו / 6 1 זטס 6דו4ש */ | |( 6 ) התע (969ד2]). - 6 : ד וש | ב ₪ 6 4 > 6 2 ,ד = 4/487607.- --] -- 54 5066 טד |/6 2 ד אחא א ]| / ( ז0ש0 % 6 |6 דוש 2 ו 6 ( ד ,דש ,161 ] 62656 :ששו ב |" ב |--- ו בי - ו ל ייב | . 4 "| --- .. הת -.- - . - דיר רד ה לכ וח יי הד הרה == יו. |וווו..- ור ל - - ----- = לה הרוש 7 ה 97 דיה שש 0 5% ...0 2 - 36[ = / ' 0. 5 כיזיוְגַרְכִיתִּ בנושאים הנדונים בספר זה ישנה ספרות עניפה של מחברים שונים, ובעיקר - של לצרני המחשכבים. הרשימה הבאה כוללת רק חלק מתוך המבחר הרב העומד לרשות הקורא בשפה האנגלית, והיא כוללת חלק רב מהחומר הקיים בשפה העברית. רשימת הספרות מחולקת לנושאים, כדי להקל על הקורא את העיון בה. הספרילם המומלצים סומנו בכוכבית. א. מבוא לעיבוד נתונים ותרשימי? זרימה **1. עמיהוד, יצחק. המחשב האלקטרוני ועיבוד הנתונים. הוד-עמי, 1968, 1975. **2. פורסייט, קינן, אורגניק, שטנברג. יסודות תכנות מחשבלם. המכון לאמצעי הוראה 1974 (תרגום). .3**‏ -. יסודות עיבוד הנתונים האלקטרוני בשיטת הלמידה המתוכנתת. הוצאת המכון לפריון העבודה והי?צור, 1973. 4. בעל-שם י. יסודות תורת המחשָבים. המכון לאמצעי הוראה, 1970. 5. - פרקי קריאה בעיבוד נתונים. בהוצאת המכון לפריון העבודה והייצור, 7. 6. פינטשוק י. מחשכים אלקטרונלים - כיצד הם פועלים. הוצאת סדן והמכון לפריון העבודה והייצור, 1967. 7 -. מילון למונחי עיבוד נתונים. הוצאת איגוד ישראלי לעיבוד אינפור- מציה, ירושלים, 1975. **8. אריאל, צבי. מערכת /370 - ספר ללימוד עצמי, י.ב.מ. ישראל בע"מ, 1, פ1975. **9, 4 ואוצסל .508%008 8ה06881סיל1 2058 19% סל מספלסט0סינסמ1 .- 0. . 606וח000מם/ ע0] 5010000 ע0%6ק007 .(66150%) ת4118 ,ש6ת1666ע , ,ה00ח00 12568.0 ת1168510ל2₪? 655ת61ט2 4 1, ₪411 5166ת6ץ? .8מ006887ע2 20%0 50 מסללסג0סנ?מ] ‏ .7.3 018010164 31 2. 4 ,3111 ש8ל160 .%מ6סהָסושא ה00לחינס/ה 1‏ .8.2 סתג:זגון ה 5, ,ת0:8510קץ00 08588 01ל6ת00 .00456028 21971201 %0 0%108ש0ס52מ1 מ4 .- ן 0 מדלצסץ ְ .1** .2** .5** .6 .1"** ₪ ₪0 - 362 - נושאים משולבים . 14וחקסינטסינ] ינס%וקחס0 000 8ה22000881/ 2050 .865 64ת8 תהתת685 :1 , .60ת1 ,(%8ל6ת2₪0115 ,שטסת 6 שסקצגה 1 6 0055תל56:ט2 .00068קמ20 0072006 .0 מ2666 ת06:50ת58 1 ,.2660 (58ש:6ת115פטק) . 68ַהָפָמ20 בַהלחזתסינפָסע2 0+ מ0לס6א0סעסמ1 | .7ץ₪6516 .חח ת666:50ק .1 , .16 6166-81811ת6צק2 1 726:1606 .2201600 6עבסטל][50 0 הַדִַסמסא .₪ ק1111ת2 צ286ם6א 2% > 16% ץתה8קמ0ס6 200% ת606ע₪8 .8קע6טסעע הַמלהמוסינטסינת ‏ . עמת16] 1608816 1 , .6ת1 פלד ישראל. מבוא למחשבים למרעי החברה - בחינות ופתרונות. מפעל הטשכפול, אוניברסיטת תל-אביב, 1974. תכנות פורטרן אדיר, יואל. שפת מחשב לתכנות מדעי אג20818. הוצאה פרטית, קרית ביאליק, 1973 סלומון, דוד שפת תכנות 10 אג8זת0ק. אקדמון, ירושלים, 1971. התס[ .ההתהחתסעפָסעע 40ת2001 0+ 00706 4 .כ 28161 ב60:86%6א .1 , -6תג פת50 8 ץ116א 2פת ]0 0070080078ת ?0‏ .5 6:688ה2 8%15קק111ת2 ,.[ 886ת60] :16מ2גא 0 ,.6ת1 116680-1111 .48ת7ת0ע 01 1 ,156 .(עַ5040 []/56) 525758/360 188 עסץ] טל1 אגתעתסת .- 3 מדתסע ,188 .ַהָמָהמ20 /1 ק4תעתסע 180/370 0מםב 198/360 .- :0 מתסץע ,020 .1880045 48ת78ת0ע .- 702 תקמססע ,020 .₪00001 6806ע6[0ת אגתדתסת .- .וח 367020806 - 208148 5085608 ₪607 8 הוסינינות .- .קץ60 פתקטסעחטת .607 פהקטסצצט2 .ע6מ2602-[561 8 0ת7ת20 8הפגסינינום .- . 001 00מ6[020ת - 207008 8וח856טַ5 81700 8 הטסינינות .- .ק00 פתקטסמחטת 1 מפמסע תסא .48ת2ת0ע2 שעצ%מ06 תסא..- - 363 - ד. תכנות קובול .1973 5א4 ללימוד עצמי (בעברית). י.ב.מ. יטראל בע"מ,‎ 60802 .- .1** יסודות קובול למערכות בינוניות, תמכין נציגת חברת פהשטסצצטת.‎ .- .2 .0ש066ה18קהק .2 מ711118 6םמ8 םמסא58 .4 68ם18‎ 4081 8 .5 הַה2חחהשינטסיבן‎ . ?:605166-8811 160. , 1: ע₪116 מה10 -.קה1חחשינטָסיםן 00802 סל 00706 4 .0 מ60:86%6א‎ 6 8 .4 04 ,.6מ1 5 8 ,.6ם1 1811 226051066 .5072177260 00802 .8.7 8ם1צסק 6. 0510001 0ספינסוע/ ו508%0 הָח1ססינסק0 218% 515204/360 אפ1 .- . 94 ממסץ .00802 550000026 7 50201 0510717 ה00+ינסות4 5/8567 הַה%17+0ע6ק0 51520%/360 אפד .- 4 ממתסץ .00902 . ְצ00 פהקטסצצטת .00902 10 הַת59ינ0-00ס1? .- 9. .1 96000]פת 00902 8ַח856שַ5 81700 8 הסינינות .- .0 אהתשטסמצטת2 0. .7 06ה6ע26[]0 - 00902 8%078ש5 9700 פושסינינות .- .10צסק:00 8הקטסצצטת .1‏ ,ת8610:סק60 2868 01צםת00 ,7שמתשא 108למוינס0][ה1 007ה06 00802 .- .0 מדנסק 2. .0 תממססץ ,020 .1085015 00802 .- <0 .0 מתסץ ,020 .₪001 36026806 00802 .- 4. .1 מתסע ת6א .00802 (ימ06 ת0ק .- 5. .8 .102% 5000085 00902 שינוזמ06 תס .- .4** - 368 - 1/זת . 90/070צופָושת בַה1הקהסיבָסיל] .188קטסע .1 עזג 6ת אהבצ? ,28:65 4 , .160 114211 6166ת6זק .83 תממססץ 154 .ינשחמלינבת 7/עק 4 .- . פינסהחוקסינטסיל ‏ 7 10סינסוחחס00 עס] 20/1 %0 00706 4 .- מפתסץ ,18% . פָה17קחס6 50100%11%6 מ החוחחשינטסיות 2/1ע 0+ 006[סיל1 .- 2 ועסע ,18% 5. 6סחסי6]0ת סִהָאהֶתס0ע :00211028 הַה025770%921 000 000%006 1/עע 05 .- .9 91 תמקמססע ,18% .407 .6 8' ינסוחקסינטסינץ 'נ110חס0 נ%7020ק0 1/עק 05 .- 641 תשסץ ,18% 51 מתסע ,184 .00001 6[020806ת 6פְסמָוסעת 1/עע 205 .- .6 07 שוש 4 ,הָמלחחשיבָסיע 20/1 .% 667816 ,(שצססת61ט 3 ,.צ.א ,1111-ש160:8 500 ,.3 ,2008 6ת8 ,.א ( הטהטפהצ ,.9] 067818 ,(קצס6לת61ח 4 ,.ץ.א ,צ₪116 .2/1ק 8 בַתחחשיןטסית -< ומר תו - יימ | 4 2 - ---%0--" ' 1-7 7 ה[ 5 3ןל / אופיברסיטת תיפו: / . :0 / / ה ( ו 5 4 . / | ה( . . "0 - יש 2 ב ו . 7 ו .ו 1 יישומי מחשבים ן ו ו ו ו ויפ = .6 - הועבר מטספרייףי". . אוניברסיטת חיפה