שפת התכנות FORTRAN IV – מהדורה שניה

חוברת זו נוצרה כתוצאה מסדרת הרצאות שנתנו בשנים תשכ"ט-תש"ל באוניברסיטה העברית לתלמידים מכל הפקולטאות.

OCR (הסבר)
אקדמון בית ההוצאה של הסתדרות הסטודנעים של האוניברסיטה העברית 7-7] , דוד שלומוו התכנות +! אאא אס מהדורה שניה ירושלים תשל"ג דוד סלומון 8 ב ש שפת התכנות צו אאאזקהס- מהדורה שניה אקדמון בית ההוצאה של הסתדרות הסעשודנטים של האונזברסיטה העברית ירושלים, תשליב -וקְפו כל הזכויות שמורות 9 60 5הפוח ו|4א צולם ונדפס באופסט האמנים, ברנשטיין את חן, ירושלים מ ב ו א חוברת זו נוצרה כתוצאה מסדרת הרצאות שנתנו בשנים תשכ"ט- תש"ל באוניברסיטה העברית לתלמידים מכל הפקולטאות. החמר המובא כאן מהוה מבוא לשפת ה- ]4 תיתסע , וכולל את כל הדברים הבסיסיים המאפשרים כתיבת תכנית. על מנת לשמור על כלליותה של החוברת, לא הוכנסו לתוכה, במידת האפשר, תכונות האופיניות למחשב מסוים. ברוב המקרים יספיק החמר הכלול כאן לעבודה שוטפת ובמקרה של בעיות מורכבות יוכל הקורא לפנות לספרות המומלצת כאן. תודתי העמוקה נתונה למר מ. לב על עזרתו הרבה בכל שלבי כתיבת החוברת. ספרות מומלצת: א א03784ע 0 מסנססט0סע)מ1 :ם160286%62א ,כ [פותגע (1 .= א 01167 ,1 .,שתותנהנהצק ס:2] 4 .60 במעסע ‏ .360 13%1 626 עס+ 14 6ם3 11 אג תצתסע (2 024 .0 ב1168010מטוש ‏ ,6400 0260 86 עס+ 1 אג ת תס (3 פרק 1: פרק 2: פרק 3: פרק 4: פרק 5: פרק 6: פרק 7: פרק 8: פרק 9: פרק 10: פרק 11: תוכ קבועים ומשתנים, מבנה טופס קלדוד . בטוילם אריתמטל*ם ומשפטי לחוס . קפיצות בתכנית . בטול"ם לוגילם "‏ 18 - לוגל". משתנים בעלי אינדקסים. חזרות בתכנית, הפקודה 0ש. קלט - פלט. פורמט שדה שדה שדה שדה ₪5 ₪ < ₪ - שדה תכניות משנה., סוברוטינות פונקציות פונקציות בנולות מבנה של עבודה ( מס ). גדלים אלפמר?לם. הפקודה ‏ 478כ. פורמט ‏ 4 סרטים מגנטיים. מושג ה- 2116 עמוד "022 55 פרק 12: דוגמאות. שיטת | תספתַכ8ת2-תס:ששאא בעית שמונה המלכות חשובים סטטיסטיים חפוש בטבלה נספח מספר 1 נספח מספר 2 פתרונות לתרגילים 3 16 פר ק 1 קבועים ומשתנים, מבנה טופס קידוד מחשב הוא מכונת חישוב ואינו מכונת חשיבה. הוא מסוגל לחשב (במהירות ובדיקנות) אולם אינו מסוגל לחשוב. לכן כל המחשבה חיבת להעשות ע"י האדם המשתמש במחשב. כדי לפתור בעיה בעזרת מחשב לא מספיק להסביר לו מהי הבעיה ולתת לו את הנתונים. הוא אינו מסוגל לחשוב ולכן לא ימצא דרך לפתרון הבעיה. כדי לפתור בעיה בעזרת המחשב יש קודם כל לפתור אותה לבד. משפט זה נשמע כאילו הוא מכיל בתוכו סתירה אולם הכונה היא שיש לפתור את הבעיה רק באופן עקרוני, כלומר למצוא נוסחה שתוביל לפתרון. נוסחה זו אפשר להגיש למחשב והוא ימצא את הערך המספרי .שלה (כלומר יחשב את המספר, או המספרים שהם הפתרון המבוקש). 2 לדוגמא, יש לפתור את המשואה הרבועית 0= 4 + 3% -"2%. על מנת לבצע זאת בעזרת המחשב יש קודם כל לפתור באופן כללי את בעית המשואה הרבועית ס = 6 + אס + - , לקבל את הבטוי / ( 6 = | + ס- ) = > ולהגיש בטול זה למחשב, המחשב יכול לחשב את ערכיו של הבטול לגבי ( 4 = 6 3-=5 8252 ולקבל את שני הפתרונות המבוקשים. כל מה שהמחשב עשה היה רק חישוב של נוסחה, כלומר ביצוע פעולות אריתמטיות על נתונים מספריים וקבלת תוצאה סופית שהיא מספר. המחשב לא הי.ין שהוא פתר משואה רבועית ולמעשה הוא גם לא פתר אותה. כל מה שהוא עשה היה חישוב ערכה של נוסחה ע"י ביצוע פעולות אריתמטיות. כדי לפתור בעיה בעזרת מחשב יש לכן לבצע ארבעה שלבים. 2 61 הבנת הבעיה. מחשב לא ?וכל לפתור בעיה שהתכניתן עצמו לא הבין אותה. 2) התוית הצעדים לפתרון. יש לערוך רשימה של צעדים שביצועם יוביל לפתרון. 3) רישום הבטויים המתמטיים אותם יש לחשב בצעדים השונים. 4) כתיבת אותם בטויים למחשב בצורה אותה הוא יכול לקרוא ולהבין. ביצוע השלב הרביעי הוא למעשה כתיבת תכנית למחשב. התכנית היא אוסף של פעולות אלמנטריות המבוצעות ע"י המחשב אחת אחת ושבסופן מתקבלת התוצאה המבוקשת. כדי שהמחשב יוכל לבצע את הפעולות יש להגיש לו אותן בשפה אותה הזא יכול להבין. לשם כך יש לכל מחשב שפה (או שפות) אותה הוא יכול להבין. כאן תתואר השפה הנקראת ‏ %ת7תסע (לכבוד המלים ם8[3)10ת128 ב[טם::0 ) שהיא שמושית מאוד ומובנת ע"י רוב המחשבים הקימים כיום. שפה זו נוצרה בשנים 1956-57 ועברה מאז כמה שלבי התפתחות. באופן עקרוני לא צריכים להיות הבדלים בשפה בין מחשב למחשב ותכנית הכתובה מ05723ע צריכה לעבוד על כל המחשבים המבינים שפה זו. למעשה יוצרים ההבדלים במבנה בין מחשב למחשב, הבדלים קטנים ומגבלות קטנות בשפת ה- את ידתסע בכל מחשב. לכן תכנית ₪08754% שעובדת על מחשב אחד, חתדרוש אולי כמה שנויים כאשר ירצו להפעילה על מחשב אחר. כאן תתואר השפה מתוך זיקה למחשב המורכב באוניברסיטה העברית (מסוג 6400 6 ) ולכן יופיעו פה ושם הערות המתארות מגבלות או תכונות של השפה שהן אופיניות רק למחשב זה. כמו בכל שפה קימות גם ב- 4 סיתס₪ אותיות (הנקראות סמלים יסודיים או קרקטרים יסודיים), קימות מלים המורכבות מהאותיות וקימים חקי דקדוק בעזרתם מרכיבים משפטים מהמלים. הקטע המינימלי בתכנית שהוא בעל "מובן" הוא משפט ( 6מ6מ61:ב:5% ). כדי להבהיר את משמעות המלה "מובן" יש להשוות את המשפטים בשפת ה- 05784%עש למשפטים בשפה המתמטית הרגילה. משפט מתמטי רגיל הוא סטטי. הוא מציין עובדה אולם אינו 2 2 דורש לבצע כל פעולה. לדוגמא: הזהות 8-5 = (ס-) (ס+) מתארת עובדה הנכונה לכל שני מספרים ס 3, אולם זהות זו אינה דורשת לחשב את אחד האגפים או כל דבר אחר. מ במתמטיקה אפשר לומר שאם קים 0 = 0+א8% אד קים ‏ ב7= א. זוהי דרך לפתרון המשואה אולם כאן אין כל פקודה האומרת לפתור את המשואה. זהו רק ציון עובדה. בשפת ה- אהבפדתסת , לעומת זאת, מהוים המשפטים פקודות שיש לבצען. כל משפט (פרט ליוצאים מן הכלל בודדים) מכיל בתוכו פעולה ( 3600 ) שיש לבצע אותה. כאן אין משמעות למשפט כמו ‏ 55 - ש' = (ס - 8) (ס + 8) אלא רק למשפטים מהצורה: חשב את (ס - ) (ס + 8) 2 9 חשב את 7-0 3-0 וכו". משפט בשפת ה- ‏ 754%ת0ע ‏ יכול להיות לדוגמא: אם 0 = 0 + א 8 אז עשה כך וכך... . בשפה המתמטית הרגילה נוהגים לפעמים לכתוב בטויים שאינם חד-משמעיים, מתוך כונה שהקורא יבין את המשמעות מתוך ההקשר 2 2 בו נכתבו הדברים. לבטוי המתמטי | ( ₪7 + "גם) ם1 יכול להיות המובן של - + "= .ם.1 ויכול להיות המובן של 4 הלוגריתמוס הטבעי של שי + ב . בשפת ה- א4ת תע חיבים המשפטים להיות חד-משמעיים. המחשב לא יכול להבין משפט מתוך ההקשר בו הוא מופיע, מכיון שהוא אינו מסוגל להבין מאומה. לכן, משפט בעל "מובן" בשפת ה- ‏ אב תצתכסע הוא משפט הכתוב לפי כללי הדקדוק של השפה (ולכן הוא חד-משמעי) ואומר למחשב לבצע איזשהי פעולה. הסמלים היסודיים בשפת ה-- א4 8 ת תע מתחלקים לשלוש קבוצות. 1) האותיות הלטיניות הגדולות ( 8 08181 - 4. 2) הספרות 0-9. 3) הסמנים המיוחדים ‏ 8 . ,כ = ( ) / % = + על מנת להבחין בין הספרה אפס לבין האות 0, נכתבת האחרונה בצורה ‏ ₪ . הסימן 5 בא לצין את הסימן הריק ( | %ם18ס ). הסמן הריק הוא אות חוקית בשפת ה- א4 2007 ופרושה, להשאיר מקום ריק על גבי כרטיס הניקוב או על גבי ניר ההדפסה. על מנת למנוע בלבול נרשמה כאן האות 5 בכל פעם שצריך היה להשאיר מקום ריק. האות ‏ ן עצמה איננה אות גדולה ולכן אינה סמל יסודי בשפה. המלים הראשונות שנכיר בשפה הן שמות של קבועים ושל משתנים. כדי להבין את המשמעות של "קבועים" ושל "משתנים" 2 נתבונן בבטוי 0-6 . בטוי זה מכיל את המספרים 2,4 ואת האותיות | 6 ,5 ,3 . כל אחת מהאותיות מיצגת מספר שערכו עלול להיות שונה בכל פעם. ה"קבועים" בשפת ה- ‏ %א₪027124 נותנים אפשרות להכניס מספרים לתוך המשפטים של השפה. ה"משתנים" שבשפה נותנים אפשרות להכניס אותיות המיצגות מספרים, ממש כמו בבטויים . האלגבריים הרגילים. הקבועים מתחלקים לשני סוגים. שלמים וממשיים. הגדרה: קבוע שלם הוא סדרה של אחת עד שמונה-עשרה ספרות עשרוניות, שלפניה יכול לבוא סמן. דוגמאות: 384155537 + 456 3 - 1. כאשר הקבוע הוא חיובי אפשר להשמיט את סמן ה + . הגדרה: קבוע ממשי הוא סדרה של אחת עד ארבע-עשרה ספרות עשרוניות, המכילה נקודה עשרונית או מעריך עשרוני או שניהם, ולפניה יכול לבוא סמן. הצורות הכלליות של קבוע ממשי יכולות להיות בוש 35פם. 55 2ע,ם 75 פם.םת ם. .ם ת.ת דוגמאות: 5. .1 2.06 0.1 2 -7.8 -.9 ₪ -7 57 1-2 האות 522 (מהמלה | 6ת6תסקאש ) פרושה שיש לכפול את המספר בחזקה שלמה (חיובית או שלילית) של עשר. לדוגמא: 7- ₪ .9- פרושו המספר הממשי -9.10 7 המשתנים מתחלקים גם הם לשני סוגים, - שלמים וממשיים. מאחר וגודל משתנה מכיל בכל פעם מספר אחר, הרי שאי אפשר לתת למשתנה שם שיהיה מורכב מהמספר אותו הוא מכיל, (כפי שזה נעשה בגדלים קבועים) אלא יש להמציא שם המורכב מקרקטרים של אאפצתסת . שם של משתנה חיב להתאים לכללים הבאים: 1. שם של משתנה מכיל בין אחד לשבעה קרקטרים. 2. הקרקטרים המותרים הם רק אותיות וספרות ולא סימנים מיוחדים. 3. הקרקטר הראשון בשם הוא אות. / 1% 4. שם של משחנה שלם חיב להתחיל באחת מהאותיות הבאות: א א 1 . שם של משתנה ממשי חיב להתחיל באות אחרת. 4 הערות: 1) לכלל מס" 4 קים יוצא מן הכלל שיתואר בעמוד 25. 2) ארכו המקסימלי של השם יכול להיות שונה משבעה קרקטרים, במחשבים אחרים. דוגמאות: אגפצתשת א אנא לפא 08055 1 צא< 04%40 605141 327 10 40 א בא את המשפטים בשפת ה- ‏ 20278438 רושמים על טופס מיוחד הנקרא טופס קידוד ( % ₪מ0061 ). כל משפט נרשם בשורה (או בכמה שורות), ואח"כ מנקבים את תכנו של הטופס על כרטיסי ניקוב. כל שורה בטופס מתנקבת על כרטיס. מאחר וכרטיס ניקוב מכיל 80 מקומות לניקוב הרי שכל שורה בטופס חיבת להכיל 80 מקומות (80 משבצות). בזמן כתיבת התכנית יש להקפיד שכל קרקטר יכנס בדיוק למשבצת אחת. הקרקטר ₪ נרשם ע"ל השארת משבצת אחת ריקה. כל שורה בטופס מחולקת לארבעה שדות. 1) מקומות 1-5. משמשים כדי למספר את המשפטים במספרלי זהוי ( ץ6סמנט)1 6מ6ב:5%866 ). 2) מקום 6. משמש לסמון המשכיות ( 613010 00 ). 3) מקומות 7-72. משמשים לרישום המשפט עצמו. 4) מקומות 73-80. משמשים למיספור שוטף של כרטיסי התכנית ( שמוסתסטף50 ). תאור השדות: 1 כל משפט בשפה יכול (אולם בדרך כלל אינו חייב) להיות מזוהה ע"י מספר. מספר זה מאפשר לפנות אל המשפט ממקומות אחרים בתכנית. מספרי הזהול מורכביסןפאחור עד חפש ספרות/והם אינם חייבים להופיע בסדר שוטף או בכל סדר שהוא. אסור ששני משפטים יזוהו ע"י אותו מספר זהול. 2) כאשר משפט מסוים ארוך ואינו נכנס לשורה אחת על הטופס, אפשר להמשיכו בשורה הבאה. למעשה יכול כל משפט להשתרע על עשר שורות (שורה מקורית ומקסימום תשע שורות המשך). על שורות ההמשך יש לציין שהן מהוות המשך של השורה הקודמת. לשם כך כותבים במקום השישי בשורה, קרקטר כלשהו (פרט 6104476 לקרקטרים | 0 סמ ). קרקטר כלשהו המופיע במקום השישי בשורה, מראה שהשורה היא המשך של השורה הקודמת. 3) המשפט עצמו נרשם במקומות 7-72. אם הוא ארוך מדי, אפשר להמשיכו החל ממקום 7 בשורה הבאה, אולם יש לסמן המשכיות ע"י כתיבת קרקטר כלשהו במקום 6 בשורת ההמשך. סמן ההמשכיות מופיע רק בשורות ההמשך ולא בשורה המקורית. 4) מקומות 73-80 אינם חלק מהתכנית והמחשב כלל אינו מתיחמ אליהם. הם משמשים למיספור שוטף של השורות. מיספור זה חשוב משתי סיבות: א. הטופס מנוקב על חבילת כרטיסים ואם רוצים למצוא כרטיס מסוים בחבילה זו, הנוח ביותר הוא למצאו בעזרת המיספור השוטף שלו. ב. אם הכרטיסים בחבילה מתפזרים, הרי קל לסדר אותם שוב ע"י מיונם (במכונת מיון) לפי המיספור השוטף. כללי הכתיבה על טופס הקידוד הם פשוטים. קיים למעשה רק כלל יחיד האומר שהכתיבה על הטופס היא חפשית פרט לכך שאסור לחרוג מתחומי השדות שצוינו. כתיבה חפשית פרושה שאין צורך להתחיל לכתוב מתחילת השדה, אפשר להשאיר רוחים באופן חפשי בין מלה למלה ואפילו באמצע מלה, אפשר להדביק שתי מלים ואפילו את כל המלים במשפט. דוגמאות: 1) אם מספר הזהוי של משפט כלשהו הוא 105 אזי מספר זה יכול להרשם בכל מקום שהוא בין המקומות 1-5 בשורה. כל הצורות הבאות 05 מפ1 15055 5 10505 הן חוקיות. 2) המשפט14 12 00 הוא משפט בשפת ה- 4% דתסע ואפשר לרשום אותו בצורות הבאות: 4 0 | 001714 4 שכולן חוקיות. כרטיס הערה ( 6ב ). אפשר, בכל מקום בתכנית, לרשום שורה שתכיל רק הערה ולא משפט ב- 09154%ע . הערות כאלה חשוב לכתוב כדי להבהיר את מבנה התכנית לכל אדם הקורא אותה. כדי להודיע למחשב ששורה מסוימת מכילה הערה ולא משפט, רושמים את האות 6% בעמודה ‏ 1. כאשר המחשב פוגש את האות 6 בעמודה ‏ 1 == הוא "מבין" ששורה זו אינה מכילה משפט ואינו מתיחס אליה. גם בשורה כזו מותר לרשום רק קרקטרים של אג ת תע ולא שום סמל אחר. פרק 2 פעולות אריתמטיות, בטויים אריתמטיים ומשפטי יחוס הקבועים והמשתנים נוצרו כדי לאפשר כתיבת נוסחאות מתמטיות בשפת | א0212ע בצורה שתהיה דומה ככל האפשר לכתיב המתמטי המקובל. לשם כך יש ליצור בשפה גם פעולות ארלתמטיות, וקימות חמש כאלה. חבור +, חסור - , כפל * , חילוק / והעלאה בחזקה **, יש להבין שסימן ההעלאה בהזקה הוא סימן יחיד המורכב משני קרקטרים. אין חשש לבלבול בינו לבין שני סמני כפל מאחר ושני סמני כפל אינם מופיעים לעולם ברציפות אחד אחרי השני. רק חמש פעולות אלה קימות בשפה, וכל חישוב יש לפרק לשורה של פעולות אלה. הגדרה: בטוי אריתמטי הוא צרוף של קבועים, משתנים, פעולות השבון וסוגריים, שיש לו ערך מספרי יחיד. הבטוי יכול להכיל גם פניות לפונקציות (ראה עמוד 68 ). על מנת שלבטוי יהיה ערך מספרי הוא חייב לקיים את הכללים הבאים: 1) שתי פעולות אריתמטיות לא תבואנה אחת אחרי השניה. 2) בטויים בעלי עדיפות בחישוב חייבים להכנס לסוגרים. 3) ללא סוגרים קיים סדר עדיפויות בביצוע הפעולות. קודם הבוצענה ההעלאות בחזקה, אח"כ פעולות הכפל והחילוק ולבסוף פעולות החיבור והחיסור. 4) שורה של פעולות כפל וחילוק ללא סוגריים תחושב משמאל לימין. כלומר ‏ %6 4/0 יחושב בתור 0 %( 2/ 4) ולא בתור (6 2%) 4/‏ . נן 5) אם הבטוי האריתמטי מכיל רק גדלים שלמים יהיה ערכו שלם, אם הוא מכיל רק גדלים ממשיים או אם הוא מכיל גדלים שלמים וממשיים,יהיה ערכו ממשי. המקרה היחיד בו אסור לערב גודל ממשל וגודל שלם הוא העלאת גודל שלם בחזקה ממשית. כלומר 3**2.5‏ הוא בטול אסור ובמקומו יש לכתוב 3.*%2.5. דוגמאות: הנוסחאות המתמטיות הבאות, נכתבות בתור בטויים אריתמטיים: %3ב מ 3 4%53- או (פ-)*4 (ס-) 8 .+34 או 2 + 34 2 + 8 7-85 או (5 + ב) - (ס + 8) - (2 +4%%)1 "ל ? (6 + 2/2)%*ב (₪+ %. (כע+6)/ 4% 4 6/ס ב ((6+א)+4%)2% ((6+א) 5+א) 34 ((0 +2/)3.1 + 1)/ 4 כ---- + 8//)1 הערה: הבטוי האריתמטי ‏ 1 / 1 מכיל רק גדלים שלמים ולכן התוצאה שלו היא מספר שלם. ‏ במקרה והתוצאה היא בכל זאת לא שלמה (כמו במקרה 3/2) יקצץ המחשב את התוצאה עד למספר השלם הקרוב ביותר. לכן 3/2 נותן 1 בתור תוצאה. עובדה זו עלולה להיות חשובה כפי שמראה הדוגמא הבאה: 4> 4 * 1= 4 * 3/2 ואילו 6= 12/2= 3/2 א 4 12 כלומר הערך של בטוי מהצורה 6+ שונה מערכו של הבטוי 1א ד . תרגיל: הפוך את הנוסחאות הבאות לבטולים אריתמטילם: 6 -->-- 1 הו ו +(צ + א) ) 62 / : 2+ 6 , תרגיל: כל אחת מהנוסחאות שלמטה תורגמה לבטוי אריתמטי הכולל שגיאה (או שגיאות). מהן? 5 -- 42 )6+2( 4 %%(8/ש) 1/2--5(5 ( -6 בטוי אריתמטי יכול להיות מסובך ביותר, בכל זאת הוא אינו מהווה משפט שלם ב- אע . הסיבה לכך היא שבטוי אריתמטי מכיל נוסחה, אולם אינו מכיל הוראה למחשב לחשב את הנוסחה ואינו אומר למחשב מה לעשות עם המספר שהוא תוצאת חישוב הנוסחה. כדי להשלים בטוי אריתמטי למשפט שלם יש לכן להוסיף שני דברים. א. להורות למחשב לחשב את הבטול. ב. לומר למחשב מה לעשות עם התוצאה. דברים אלה נעשים ע"י מש* יחוס אריתמטי. צורתו הכללית של המשפט הלא 6 = 8 כאשר 8 הוא שם של משתנה, 6 הוא בטוי אריתמטל. המשמעות - זו פקודה למחשב האומרת לו לחשב את הבטוי האריתמטי 6 ולהעביר את המספר שהוא תוצאת החישוב, לתוך המשתנה שבאגף שמאל. לאחר בצוע המשפט יהיה למשתנה ‏ 8 הערך של הבטוי האריתמטי, וכל ערך קודם שהיה לו, ילך לאיבוד. 13 דוגמאות: 61 1 אגף ימין הוא הבטוי האריתמטי הפשוט 1. המחשב , מכניס את ערכו של אגף ימין (המספר 1), לתוך המשתנה השלם 1. התוכן הקודם של 1 נעלם ומעתה יכיל | ]1 את המספר 41 2) =1 כאן ערכו של אגף ימין הוא המספר השלם הנמצא בתוןך המשתנה ‏ 1[ . מספר זה עובר גם לתוך המשתנה 1 והוא יהיה להבא ערכו של המשתנה 1 (עד השנוי הבא של 1). ערכו של 1 אינו משתנה. על מנת שלמשפט האחרון תהיה משמעות חייב ‏ 1 להיות מוגדר (כלומר להכיל מספר שלם כלשהו). אם ‏ 7 אינו מוגדר, המחשב יודיע על שגיאה ויפסיק את בצוע הובגו . / 63 1+ 7 = 1 כאן ערכו של אגף ימין גדול באחד מהערך של [7. לכן אם ‏ 1 הכיל 2 , יכנס לתוך 1 המספר 3. 4) 1+ ך = ך לתוך ‏ 1 יכנס הערך שהיה לו מקודם פלוס 1 לכן אם ‏ 1 הכיל מקודם 5 יהיה בו כעת 6. הדוגמא האחרונה מראה את ההבדל בין סמן השויון ב- א4 8 דתסע לבין אותו סמן במתמטיקה. במתמטיקה יש לסמן השויון משמעות סטטית. הוא מודיע על קיומו של שויון ותו לא. כאשר כותבים ‏ 5 = 2 מתכונים לכך ש- 0 3 שוים לא רק בגודלם אלא גם באופים. שניהם מספרים או שניהם וקטורים וכו". אם קיים ‏ 5 = 38 אזגם 8 = ס אם 0 + א = 5 + 8 אז מהנחת השויון אפשר למצוא את 4 ) קימים מחשבים שאינם מפסיקים את העבודה במקרה כזה. 14 לעומת זאת ב- ‏ 4%ת027ע | לש לסמן השולון משמעות דינמית. הוא מהוה אופרטור הגורם למחשב לבצע פעולה מסולמת ואינו מראה על קיומו של איזהו שויון. סלמן השויון הוא הוראה למחשב לחשב את אגף ימין ולהכניס את ערכו לאגף שמאל. אגף ימין הוא בטוי אריתמטי ואגף שמאל הוא משתנה. לכן אין לומר שהם שוים. כמוכן 1= 1 הוא משפט חוקי ואילו 1 = [ הוא משפט שאינו קיים בשפה. המשפט ‏ 1 + א = 23 אינו מאפשר לנו למצוא את ערכו של % אלא אומר שערכו של < יוגדל ב-1 והמספר שיתקבל יוכנס למשתנה | 4 במשפט יחוס יכולים שני האגפים להיות שונים באופלם. ‏ אחד יכול להיות ממשי והשני שלם. במקרה ‏ % =[ (אגף ימין ממשי ואגף שמאל שלם) יקוצץ ערכו של אגף ימין עד לשלם הקרוב ביותר ושלם זה יוכנס לאגף שמאל. במקרה 1 א יהפוך ערכו של אגף ימין לממשי ומספר ממשל זה יוכנס לאגף שמאל. דוגמאות: | 53.5 1 לתוך ‏ 1 יוכנס 3. 5= א לחוך 35 יוכנס.5. דוגמאות: המשואות המתמטיות הבאות 23 6- 2ב 4 2 4 א 8+ 1075) ב 7 7 ₪5 8% = ן ""(69 ₪ | פץ - ל 6 נכתבות בתור משפטי יחוס (%*%% 2/0 **4 +(א1./)2%- 45 קש 2 4 =>זע 7. *א(4 אא א 4% + 6 - ₪ .1) = ץצ 15 תרגיל: מה השגיאות במשפטי היחוס הבאים? כ-] ש ['ש ה 4 2% -/ .1 = 2 א*פנא*4) 7+ -ץ. תרגיל: חשב את ערכו של אגף ימין ומה נכנס לאגף שמאל בכל אחד מהמקרים: . 5 // 7 175 + 2 (.5/2.%010.4 | 10/4 1% 4 2% = 4 ₪ 74 - 4 90| (100%)99/100 > 1 6 + רו 6 = יצ הו יְ - לסיכום: משפט יחוס אריתמטי משמש כדי להכניס נתונים מספריים לתוך משתנים. צורתו | 6 = 8 | כאשר 6-| בטוי אריתמטי, 8- שם של משתנה. זהו המשפט הראשון שאנו מכירים בשפה והוא גם אחד המשפטים השמושיים ביותר. 8") > 4 4%): - 85.7), 3 כב פיק יי .. ) 16 פרק 3 קפיצות בתכנית המחשב מבצע את התכנית, פקודה אחר פקודה לפי הסדר בו מופיעות הפקודות, כלומר לפי הסדר בו נרשמו הפקודות על הטופס. בהרבה מקרים מעונינים לדלג על פקודות מסוימות או מעונינלם לחזור ולבצע פקודות מסוימות פעם נוספת. לכן יש לספק פקודות (או משפטים) מיוחדות שתאפשרנה לחזור בחזרה או לקפוץ קדימה ולבצע פקודות שלא לפי הסדר בו הן מופיעות. ו הפקודה הראשונה מסוג זה נקראת "17 08 ללא תנאי". צורתה הכללית ם 7/7 00 | כאשר ‏ מ הוא מספר זהול של פקודה כלשהי בתכנית. המשמעות - במקום לבצע את הפקודה שאחריה- /1 07 , קופץ המחשב לפקודה שמספרה ם , מבצע אותה וממשיך לבצע ממנה. מקרה זה מתואר סכמטית בציור. החצים מראים את סדר בצוע הפקודות. : 4ב 76 6% הפקודות באזור המסומן, לא תבוצענה. ד ----- . . טּ ו ל 6( - . ' : כאשר כותבים ‏ 3[1 78 00 חיבים לדאוג לכך שתימצא פקודה שמספרה 31 ורק פקודה יחידה כזו. הפקודה השנלה מסוג זה נקראת מ קד 7 מחושב". צורתה הכללית: 1 (ם.... ,כמ ,וֶם) קד 07 17 כאשר צת...כם וֶם הם מספרל זהוי של פקודות. ‏ 1- | שם של משתנה שלם כלשהו. המשמעות - אם המשתנה השלם | 1 מכיל את המספר 3. יקפוץ המחשב לפקודה שמספרה 3 . באופן כללי - אם ‏ 1 מכיל את המספר ‏ ,1 *יקפוץ המחשב לפקודה שמספרה ,דֶם . לדוגמא - 5 = וא א ,(17 ,1002,1 ,3 ,1 ,279) 27 ₪0 המחשב יקפוץ לפקודה מספר 1 (הפקודה שמספרה הוא חמישי ברשימה). יש לדאוג לכך שהמשתנה השלם יכיל מספר הנמצא בתחום הנכון. בדוגמא שלמעלה יכול ‏ 11 להכיל רק מספר בין אחד לשש. במקרה הכללי יכול 1 להכלל רק מספר בין 1 ל % . ערכו של < אינו מוגבל. שתי פקודות אלה מהוות משפטים בשפה מכיון שהן פקודות שהמחשב "מבין" ומבצע. הדוגמא הבאה היא תכנית שלמה ב- | 2027124 -. תכנית זו קוראת שלושה מספרים לתוך המשתנים | ,4,3, א ומבצעת פעולות על 5 84 לפי ערכו של א . אם 0 = א מודפסים ערכל 4 . אם 1= א מחושבים משתנים חדשים ‏ ₪ כ 60 לפי הנוסחאות | 0/0 > ₪ 22 +42 5 כ 2 + 65 , ומודפסים ערכל שכ 0 . אם 2 = א , מחושבים ₪ םס 6 לפי הנוסחאות 5.0 545-25ס 60-4-5 ומודפסים ערכל ₪ פ 6 . 8 42 א 686ע 1+ א > א א (10,20,30) 12 ₪02 8 ,4 תוצק 10 ₪ דנ ב 5+ ג 05 20 2 2% +2 %*ב > כ פס = ₪ ע ,2 6 ומתנעק 0 0 30 6 > 2 - 8 2 3 %ם - 2 >4% >= כ פ/6 = מ ש ,2 ₪0 תנע 0 40 כ א ₪ הערות: | הפקודות | תוצק 2686 נכתבו באותיות קטנות מאחר ועדיין לא תוארה צורתן הכללית (ראה פרק 7). 2) הפקודה כ פרושה שנגמר בצועה של התכנלת ועל המחשב לעצור. פקודה זו יכולה להופיע בכל מקום בתכנית (לא דוקא בסופה) ויכולה להופיע כמה פעמים בתכנית. בדוגמא שלמעלה מופיעה הפקודה פעמיים וזה מכיון שהחישוב נפסק בנקודות שונות של התכנית בהתאם לערכו של א 19 3) הפקודה כ א ₪ חיבת לבוא בסוף התכנית ומשמעותה היא - נגמרו כרטיסי התכנית והכרטיסים הבאים הם מסוג אחר, (כרטיסי נתונים או כרטיסים של תכנית משנה). 4) לתוך המשתנים ‏ - 3 8 א נקראים ערכים מספריים ע"י הפקודה | 2686 . פקודה זו קוראת את המספרים מכרטיס מיוחד הנקרא כרטיס נתונים והמסופק ע"י התכנלתן יחד עם התכנית. 5) הפקודה 1+ א = א גורמת לכך שערכו של א יגדל באחת ויהיה לכן בין 1 ל 3 . לכן א יכול לשמש בתור משתנה בפקודה א ,(010,20,30 27 ?0, הפקודה השלישית הגורמת לקפיצות בתכנית נקראת 6 א - אריתמטי". צורתה בם ,בת ,וֶם (6) ע1 כאשר 6 - בטול אריתמטי, וֶם - מספרי זהוי של פקודות. המשמעות - אם ערכו של הבטו" 6 הוא שלילי - קפוץ לפקודה שמספרה ות . אם הוא אפס - קפוץ לפקודה שמספרה כת ואם הוא חיובי - קפוץ לפקודה שמספרה | בָּם . דוגמא: 0 (1 - א) תפז במקרה זה יקפוץ המחשב לפקודה 10 אם ‏ 1 - א שלילל א כלומר אם ‏ 1% קטן מאחד. הוא יקפוץ לפקודה 20 אם ‏ 1 ולפקודה 30 אם 1<א . הערה: פקודה זו אפשר לרשום בדוגמא הקודמת במקום שתי הפקודות נ+.א-א א (30 ,20 20610 02 20 או .5 בטויים לוגיים | " א1 - לוגל" קיימים בטויים המטפלים במספרים (או בגדלים בעלי ערך מספרלי) אולם להם עצמם אין ערך מספרי. בטויים כאלה יכולים להצהיר משהו לגבי ערכים מספריים, משהו היכול להיות "נכון" או "לא נכון". לדוגמא: הבטול 3 ] מטפל בגדלים המספריים 3 ך כ ּ אולם לו עצמו אין ערך מספרי. הוא טוען שהמשתנה 1[ מכיל מספר הגדול משלוש. הבטוי יהיה "נכון" אם ] באמת מכיל מספר גדול משלוש. הבטוי יהיה "לא נכון" בכל מקרה אחר. בטויים מסוג זה יקראו בטויים לוגיים ונראה איך הם נכתבים בשפה. ראשית מוגדרות שש פעולות יחוס. אלה הן הפעולות 4 .עשס. .שעא. .0ע. .מתע. .79ע. הן משמשות להשואה בין שני גדלים מספריים (בין שני בטויים אריתמטיים) ומשמ עותן - . פרושו קטן מ- מ78 1,688 .. פרושו קטן שוה 1 1,658 .4. פרושו שוה 61 | .פא. פרושו לא שוה 1וף 6%סון | . פרושו גדול או שוה 1 012686062 | . פרושו גדול | מ- מהג7 68%62ע17) | ההשואה נעשית ע"י כתיבת פעולת יחוס בין שג בטויים 7 אריחמטיים. , 21 לדוגמא: צ .0סע. א . בטול זה הוא בטוי יחוס והוא י*היה "נכון" אם המשתנה ‏ 3 מכיל מספר השוה למשתנה צ . דוגמא : 7-2 .מס. א +5 +17 שני האגפים מהוים בטויים אריתמטיים. הבטוי כולו יהיה "נכון" אם אגף שמאל הוא גדול או שוה לאגף ימין. על מנת לאפשר שימוש גמיש ויעיל בבטויי היחוס, הופכים אותם לבטויים לוגיים ע"* הכנסת שלושת הפעולות הלוגיות. פעולות אלה הן .דקא. .4. .כ א 4 . לדוגמא: הבטוי הלוגל ז.ת 2.0 יהיה "נכון" אם 4 או 2 (או שניהם) יהיו שליליים. הבטוי הלוגל 5 .1.3 יהיה "נכון" אם ‏ 1[ גדול משלוש וגם קטן מחמש. הבטול הלוגי 0 א.. יהיה "נכון" אם 2% קטן מ-10. הגדרה: בטול לוגי הוא צרוף של בטויי יחוס ופעולות לוגיות, צרוף שאין לו ערך מספרי אולם תמיד יש לו ערך "נכון" או "לא נכון" ( 6ט2 או 6 ). הערות: )| שתי פעולות לוגיות לא תבאנה אחת אחרי השניה פרט לשני המקרים הבאים .צעא..עאג. או צאקא. .8]. (במקרים אלה באות שתי נקודות אחת אחרי השניה ברציפות). 2) בבטוי לוגי אפשר להשתמש בסוגריים אולם ללא סוגריים יבוצעו הפעולות בסדר העדיפויות הבא. תחללה יחושבו הבטויים 22 האריתמטיים, אח"כ בטויל היחוס, אח"כ (יזסא. , אח"כ .עאב. ולבסוף .]. 6) 4.02.2 פרושו 4 או 5 או שניהם. דוגמאות: 1) 1+צ.סם.א .1.08-צ.ספ.א כאן מחושבים תחילה הבטויים האריתמטיים 1רצ 1-צ (שהם מספרים). אח"כ בטויי היחוס 1+צ.0ע.א ‏ 1-+צ.₪0ע.א (שערכיהם "נכון" או "לא נכון") ולבסוף הפעולה ‏ .8/. 2) 3,;, פא .5 .פאג .4.0.0 כאן מחושבים בטויי היחוס, אח"כ הפעולה .עתא4. ולבסוף הפעולה .. לכן ערכו של הבטו?ל הוא כאילו הוצבו הסוגרי"ם הבאים 3 א .פאג .4.20.0). חשוב לשים לב לנקודה זו מאחר והצבת הסוגריים בצורה שונה, למשל כמו בדוגמא (3 .6.067 .0.88.מא.ת).פאג .4.0.0 משנה את ערכו של הבטול. הערה: הפעולות .9/. .כעא4. מופיעות בין שני בטויי יחוס בצורה (...) .עא 6...(.4‏ ילו .עשא. מופיעה משמאל לבטוי יחוס ופעולתה להפוך את משמעותו של הבטוי.(. . .) . דקא . בטויים לוגיים משמשים במשפט אחד בשפה. המשפט נקרא ‏ " 18 - לוגל". צורתו הכללית 5(() ע1 כאשר - 1- בטוי לוגי, 5- משפט אחר ב- | 43% 20575 . המשפט 5 יכול להיות משפט כלשהו בשפה פרט ל " 18 לוגי" ופרט למשפט ייקָם'" (ראה פרק 6). המשמעות - אם הבטוי הלוגי ‏ 1 שבסוגריים הוא "נכון", יבוצע המשפט ‏ 6 והמחשב ימשיך בפקודה הבאה. 23 אם ‏ 1 הוא "לא נכון", ימשיך המחשב בפקודה הבאה ולא יבצע את הפקודה ‏ 5 דוגמא? 1=0 4.02.0(11) תז אם 0 יהיה 1 =1 אחרת ו יהיה 10 7 דוגמאות: 3 00 (1/2.5.1.) סז 570 (%2א ...7+ א) ענ דוגמא: חישוב הפונקציה 5 5 + א 0 0+ 5 א 5 - % 686ע 5 + א = צ (3.5 .ם1. א) פז 5 - א = צ (3.5 .9. א) פז צ )6תועק 577 כעאםע תרגיל: חישוב הפונקציה 20 >> 0 1 0 20 0 = (%) צ 0+ אא 40 1+ רמז יש לקרוא את 3% למלק אם הוא בתחום בין אפס לחמשים. אם לא, יש לעצור. אחרת יש לבדוק אם 0 לא אם לא, יש לחשב ‏ 1 - = צ ולהדפיס את צ. אחרת, יש לבדוק האם 0 |, אם לא, יש לחשב 0= צ ולהדפיס את % . אם כן, יש לחשב .1 = צ ולהדפיס את 4 פרק 5 משתנים בעלי אינדקסים עד עכשיו טפלנו במשתנים שכל אחד מהם הכיל מספר יחיד. לעתים רוצים שמשתנה יחיד יכיל הרבה מספרים וקילמת אפשרות כזו בשפה. אפשר להגדיר כל משתנה כמשתנה בעל אינדקס, ואז שמו של המשתנה מלצג כמה ערכים מספריים. ההגדרה נעשלת ע"י פקודה מיוחדת הנקראת ‏ "א510א:!א1כ" . צורתה הכלל? ...(ממד) 2 ( ממד) וג א510אש)אז כאשר .. .כמ וֶ הם שמות של משתנים, והממדים הם קבועים שלמים חיובילם. לדוגמא: (112) 2 ,(45) 0 ,(13) 2 אטנפאפוענכ . פקודה זו מגדירה את :12 א כמשתנים בעלי אינדקסים. 3% מכיל בתוכו 13 מספרים, 62 יכול להכיל ,45‏ ,1 יכול להכיל 111 מספרים. הפקודה א/זפאם)אזת מגדירה משתנים בעלי אינדקסים והגדרה זו אינה ניתנת לביטול. משתנה שהופיע בפקודה אקזפאםאזת , כלומר שהוגדר כמשתנה בעל אינדקס, יהיה לאורך כל התכנית משתנה בעל אינדקס ואי אפשר יהיה להשתמש בו כבמשתנה פשוט. הפקודה אשזפאם אנת שונה עקרונית מכל הפקודות שראינו עד כה. זו פקודה שהמחשב אינו מבצע אותה. כאשר המחשב מגיע לפקודה זו הוא "רושם לפניו" שמשתנים מסוימים הם בעלי אינדקסים והוא מתיחס אליהם כך לאורך כל התכנית. | הוא אינו מבצע כל פעולה לאחר קריאת פקודה זו ולכן נאמר שזו פקודה שאינה לביצוע. 25 פקודת ה- אקזפאם/אזס | חייבת להופיע בראש התכנית לפני כל הפקודות הרגילות (פקודות לבצוע). בהקשר לפקודה | א918א5)א1כ | ראוי להזכיר את הפקודות תפתעששעשצא1 . גם הן פקודות שאינן לביצוע ותפקידן הוא להקנות מעמד מסוים (מעמד של שלם או של ממשי) למשתנים מסוימים. לדוגמא: הפקודה 4% ₪ תשסטשצא] הופכת את המשתנלם > 4 % למשתנים שלמים והם ישארו שלמים לכל אורך התכנית. ( 6 הוא מראש משתנה שלם ולכן מיותר להכניס אותו לפקודה | תשש צא1, אולם זו א*לנה שגיאה). הפקודה 1,)50(,3 ,2241 הופכת את המשתנים 3 ,1 למשתנים ממשיים וכן הופכת את ,1 למשתנה בעל אינדקס. במקרה כזה אין להכניס את ,1 גם לפקודה אשזפא פאז . הפקודות .1 ת<תשטעשצא1 הן פקודות שאינן לביצוע וחיבות להופיע בתתחילת התכנית. כאשר משתנה %‏ מוגדר כמשתנה בעל אינדקס יש להתיחס אליו בתכנית כאל משתנה בעל אינדקס. יש לציין את שמו וכן את האינדקס שלו. האינדקס אומר לאיזה מבין המספרים המהוים את המשתנה, מתכונלם. לדוגמא: (50) << א₪ק51א₪ אנכ כאשר רוצים להקנות ערך מספרי למשתנה 3 יש לציין לאיזה מבין 50 ערכי ‏ 3% מתכונים. הפקודה .14 = (3) א תכניס את הערך ‏ .1 למקום השלישי במשתנה ‏ %< . הפקודה 26 1 = % אינה חוקית כי לא מצוין בה לאיזה מבין ערכי % מתכונים. בפקודה אאעפאם)אזסם| חייב האינדקס להיות מספר שלם אולם כאשר משתמשים במשתנה לאורך התכנית, אפשר להשתמש באינדקס שהוא בעל מבנה מסובך יותר. פקודה כמו 13 = (1) 3% היא חוקית בתנא" שהמשתנה 1 מוגדר ומכיל מספר בין 1 ל 50 (מספר שהוא בתחום של המשתנה % ). הפקודה ‏ ץצ > (13 - 1 +5) 3 גם הלא חוקית בתנאי שהבטול האריתמטי | 13 - 521 מקבל ערך בין 1 ל 50. באופן כללי יכול האינדקס להיות מורכב מקבועים שלמים, משתנים שלמים פשוטים (חסרי אינדקסים) או צרוף של אלה. המשפט .5 =( 2) 8 לא חוקי מכיון ש- 2 ממשי ולכן לא יכול לשמש כאינדקס. יק 18% המשפט .4 > ((3) 1) 2% אינו חוקי מכיון ש- ‏ 1 הוא משתנה בעל אינדקס ולכן אינו יכול לשמש בעצמו כאינדקס. דוגמא: נתון משתנה ‏ < בעל 20 מקומות ויש לסכם את 20 המספרים הנמצאים במשתנה זה. התכנית תהיה: (20) 8 אקנפאם)אזת % 680 11 0 = :50% (() % + אש5 = אש5 5 1 1% =1 07 5 10 00 (20 .1₪.) עז ]אש פמנצס כ 57 פאפ הסבר: כאשר המחשב מגיע בפעם הראשונה לפקודה (1)א%+ אס5 = אש5 נמצא בתוך ‏ 1 המספר 1 ובתוך ואשספ ‏ יש אפס. לכן ערכו של אגף ימין הוא (1)%+ 0 וערך זה נכנס למשתנה ואטספ . בפעם השניה נמצא בתוך ]1 המספר 2 ובתוך ][אשם יש (1)א ולכן ערכו של אגף ימין הוא ( 2) % +( 1)% וערך זה נכנס למשתנה ואטפ . בפעם העשרים נמצא בתוך 1 המספר 20 ובתוך ‏ :5% יש (19)א ...+ (2) א + (1)< . לכן ערכו של אגף ימין הוא (20) א + (19) א +...+ (1)< וערך זה נכנס למשתנה 50% לאחר הפעם העשרים לא מתקיים התנאי 0 ולכן לא מתבצעת הפקודה 5 7/0 06 . בפעם זו יעבור המחשב לפקודה עס , ידפיס את התוצאה ויעצור. הערות: 61 בפקודות ]מועק ,2686 הופיע המשתנה ‏ 3% ללא אינדקס. דבר זה יוסבר בפרק 7. 2) הרעיון בתכנית הוא לחזור על אותה פקודה (הפקודה ()א%+ אש5 = אַ50) 20 פעם. זה נעשה ע"י הגדלת 3 )4 |28 האינדקס ‏ 1 באחד ובדיקה אם הוא קטן או שוה 20. אם כן, אזי חוזרים על החישוב, אם לא, העבודה נגמרת. כאשר כותבים ( 1 )2 חיבים לדאוג לכך ש- 1 יכיל מספר בין 1 ל 20. כלומר 1 ימצא בתחום של <. דבר זה נעשה כאן מכיון ש- | 1 מתחיל מאחד, גדל בקפיצות של 1 ואינו עולה על 20. בכל מקרה בו משתמשים במשתנה בעל אינדקס, יש לדאוג לכך שהאינדקס ימצא בתחום של המשתנה. אם רוצים לסכם משתנה ‏ 2% המכליל לא 20 אלא 20000 מספרים יש לשנות רק שתי פקודות בתכנית. 5 70 20000(02 ,1.5 .12)1 ,(20000) א אמ51 אש שנס דבר זה מדגים את היתרון הגדול שיש בשימוש במשתנים בעלי אינדקסים. מותר להשתמש גם במשתנים בעלי שנים או שלושה אינדקסים. לדוגמא הפקודה (13,2,7) ןא , (35,4) ץ | אק51אמוענת מגדירה משתנה ‏ צ בעל 140 אלמנטים שאפשר להסתכל עליו כעל מטריצה בעלת 35 שורות ו 4 עמודים. המשתנה ]1 מכיל 2 מספרים ואפשר להסתכל עליו כעל אוסף של 7 מטריצות מסדר ככ 13. 29 פרק 6 חזרות בתכנית, הפקודה כ בפרק הקודם הופיעה דוגמא של תכנית הכוללת חזרות. התכנית חזרה 20 פעם על הקטע (1) א + אש5 = אשפ5 5 1+ ך 5 27 02 (20 .1.5 .1) פז מושג זה של חזרה על קטע בתכנית הוא בסיסי ושימושי מאוד, ולכן קימת פקודה מיוחדת בשפה, פקודה שבעזרתה אפשר לבצע בקלות חזרות על קטע בתכנית. הפקודה נקראת ‏ / . היא בעלת שתי צורות כלליות 31 ם כ 3 ם כ ב ,כב ,וֶת ה כאשר ‏ מ" מספר זהו" של משפט בתכנית. 1- שם של משתנה שלם כלשהו. ב כָגת וֶבת - קבועים שלמים חיוביים או משתנים 2 % שלמים פשוטים (חסרי אינדקסים). לדוגמא: 2 = 7 5 2 1 = אא 317 כ 5 = 1.1 60 קסע אם 3 אינו מופיע אז המחשב מניח שערכו הוא 1. המשמעות: המחשב יבצע את שורת הפקודות, החל מהפקודה שאחרי ה- ‏ 20 ועד הפקודה שמספרה ‏ םת (כולל אותה), 20 מספר פעמים, כאשר המשתנה 1 מקבל את הערכים מ- ומת עד כָתת בקפיצות של 3. המשתנה 1 יקבל את הערכים 7 2 כמ במ + 1 תת 1 ו שורת הפקודות החל מהפקודה שאחרי ה- | 206 ועד הפקודה 3 + ות ומ שמספרה ם , נקראת הטוח של ה- | 20 . דוגמא: שימוש בפקודה סְ לסיכום שורת מספרים. (10)< א10פאש)עזס 0/0 < 8 0 = 50% 0 =1 2 0כע (ג)< + 50% = אש5 2 % %מועקם 5 עאםע דוגמא זו מראה כיצד השימוש בפקודה 0 מפשט את התכנית. הטוח של ה- ל כולל כאן פקודה אחת בלבד. )א + 50% = אש50 2 והיא מתבצעת עשר פעמים כאשר בכל פעם גדל 1 ביחידה אחת. ע"י שנוי של פקודה אחת בתכנית שלמעלה, אפשר לקבל תכנית שתסכם לא את כל שורת המספרים, אלא רק את המספרים שבמקומות האיזוגיים, (המספרים הראשון, השלישי, החמישי, השביעי והתשיעי). השנוי הוא 2, 10, 1= 1 2 6ע כעח יעלה ‏ 1 מאחד עד עשר בקפיצות של שנים. בקפיצות אלה יקבל ‏ 1 את הערכים 1,3,5,7,9. 1 לא יכול להגיע 311 לערך 10 ולכן יעצר בערך 9 שהוא הקרוב ביותר ל-10 (ראה כלל 6 להלן). כללים לשימוש ב- 8כ2. 1 הפקודה הראשונה בטוח של 90 חייבת להיות פקודה לבצוע, כלומר אסור שתהיה אקץשאאזת פמסמעצאז או משהו דומה. 2) מותר להכניס טוח של | 26 בתוך טוח של | 2 אחר, אולם רק בצורה [ או בצורה [ לדוגמא: 5 > 8 100 8 0 >=1 3 8 אוו 100 - - - 0 =1 30 8ע 5 >1 30 קכע - - - - 30 אסור להכניס טוח אחד בתוך טוח שני בצורה 5 ּ; למעשה מותר ליצור רשת שלמה של טוחים אחד בתוך השני כמו בדוגמא: 2 3) | אסור שהפקודה האחרונה בטוח של תהיה אחת מהבאות 7 00 פשוט או מחושב ]1 אריתמטל או לוגי 7 ו ד4את0ת עאם אתטצפעת 2 אם בכל זאת צריכה פקודה כזו להיות אחרונה בטוח של 2 (פרט לפקודה ‏ תע המופיעה רק בסוף התכנית) אפשר לרשום אותה במקומה ולסים את הטוח בפקודה שטא1עא00. פקודה זו אינה מבצעת שום דבר. היא אומרת למחשב להמשיך בביצוע התכנית והיא נוצרה רק כדי לאפשר הכנסת פקודות מסוג שובי 7 בסוף טוח של 8אסש. דוגמא: הטוח הבא אינו חוקי 5 > א 100 קע 0 2 1/2.0(00 .(א)א) 1 100 ולא יתבצע ע"י המחשב. התיקון חייב להיות 5 >= א 100 פע 0 17 1/1.0(07 . (א)א) פז עטאזעא]/6 100 3 כעת פקודת ה- 18 אינה אחרונה בטוח ולכן הטוח חוקי. 4) בתוך הטוח של (ע מותר להשתמש במשתנה ‏ 3 (וכן ב- 3 כב וֶג אם הם משתנים) אולם אסור לשנותו. לדוגמא: א 1-2 5 %כ שימוש במשתנה 1 , מותר פ = 2 (01.50.3) שז שימוש במשתנה | א , מותר א = * שנוי של 1 , אסור 5 1 שנוי של 6 , אסור א 2686 4 . שטאנזצאסס 5 5) על מנת לחזור על הטוח של ה- ‏ 0כע מספר פעמים כמבוקש, יש להיכנס לתוך הטוח דרך הפקודה ‏ 0ע כניסה כבדוגמא הבאה היא לא חוקית. : 2 0 3 2 =1 50 נם 3-7 - . 50 7 - - לעומת זאת, כאשר נמצאים בתוך טוח של 7 ,( אפשר לקפוץ החוצה ולחזור בחזרה. לאחר קפיצה כזו ממשיך הטוח להתבצע. 34 דוגמא: 0 =1 5 6ע . 1 0 | 20 ₪0 -- -0- 10 שטאנזצאפס 5 30 -- - 7 0 6) המשתנה ‏ 1 עולה מ- וָגת בקפיצות של 3גמת ולא תמיד יכול להגיע ל- = . במקרה כזה יגיע ‏ 1 לערך הקרוב ביותר ל- כ (וקטן מ- כָמת ) אליו הוא יכול להגיע. לדוגמא: 5 = 138 6כע > יקבל את הערכים 11, 6, 1. דוגמאות לשימוש בפקודה 2כע 1) נתונה שורה של 20 מספרים בתוך משתנה צ . יש למצוא את המספר הקטן ביותר מבין ה-20 ולהחליפו עם המספר הראשון מביניהם. במלים אחרות - יש להעביר את המספר המינימלי למקום הראשון ותוך כדי כך אולי להחליף את המקומות של מספרים אחרים. התכנית תהיה (20) ץצ א6זפאפ:אזס % 686ץ 0 752 30 0 0 קד 02 ((1) צ.1(.1₪) ץ) תפז (1) קל = ץש 5 (₪ צ=(1) צ צַ-(0 ץ פנזאזיא 6 30 בלו עאםפ הסבר: המספרים (20) ל )2(,...,‏ מושוים עם המספר הראשון %)1(‏ ע"י ‏ " 18 לוגי" . אם המספר הראשון (1) + קטן (או שוה) מהמספר הנוכחי ( 1) ץצ אזי הולכים לפקודה 30 (כלומר לסוף הטוח של ה- 28 ) וממנה חוזרים אוטומטית לתחללת ה- ₪8 . אם המספר הראשון (1) + גדול מהמספר הנוכחל ( 1 )+ אזי שני המספרים מוחלפים, והקטן מביניהם נעשה הראשון. ההחלפה נעשית ע"י שלושת הפקודות ע)צ5ך (() צ=() צ 1=() 7 המשתמשות במשתנה 7 הממלא כאן תפקיד של משתנה ביניים. בכל מקרה, כאשר מגיעים לפקודה 30 בטוחים שבמקום הראשון נמצא המספר הקטן מבין שני המספרים שהושוו. לאחר תום כל ההשואות, בטוחים שבמקום הראשון נמצא המספר הקטן ביותר מכולם. 2) נתונה שורה של 20 מספרים בתוך משתנה ‏ % . יש למיין אותם בסדר עולה. התכנית היא 9 =1 30 6 [1 36 0 = 7 30 0 0 ₪/((1)ץ, 1.5 .(ז) ץ) פז ()צ= ץך () %=)צ צ>(1) צ+ מטאז אס 30 50 כעאפ הסבר: התכנית מכילה שני טוחים של 20 , אחד בתוך השני. הפנימי מביניהם זהה בצורתו ל- ‏ 24 שבדוגמא הקודמת אלא שפה כתוב ‏ 1 במקום 1. בשלב הראשון של ה- 20 החצונל יקבל ‏ 1 את הערך 1 ולכן ה- | 28 הפנימי יהיה זהה לזה שבדוגמא הקודמת. פעולת ה-| כ הפנימי תהיה לכן העברת המספר המינימלי למקום הראשון. בשלב השני של ה-| 0 החצוני יקבל 1 את הערך 2 ולכן ה- ]2 הפנימי יקבל את הצורה הבאה. | 0 > 7 30 פע 0 5 6 ((1), 15 ,(2)ץ) עז (2) = ץש (ז) צ= () ץ =[ ד עטאז א 30 כלומר זה יהיה קטע של תכנית שיבדוק את המספרים במקומות 0.. ,+ ויעביר את המינימלי מביניהם למקום השני. 17 בשלב השלישי של ה- | 8ע יעבור למקום השלישי המספר שהוא המינימלי מבין 18 האחרונים. בצורה כזו משיגים מיון של 20 המספרים כך שהמינימלי הוא במקום הראשון והמקסימלי במקום העשרים. 3) יש לחשב את הבטול 2 - 9 / כאשר ‏ 3% מקבל את הערכים 2.2...3 2.1 2 ולהכניס את 11 התוצאות לתוך משתנה צ בעל 11 מקומות. התכנילת היא (11) צ אקזפאאזם 0 = 10 8כע 1 .0 = א 5. %%*(2 4% א - 9) =(19 - 6 צ 10 הסבר: 1 מקבל את הערכים 21...30, 20 הפקודה | 1 = 2 גורמת לכך ש- 2% יקבל את הערכים 4. .1 , .20 הפקודה 04 = א גורמת לכך שבסופו של דבר יהיו ב- % הערכים .3 ... 2.2 2.1 .2 שהם הערכים הרצויים. את תוצאות החישוב מכניסים לתוך (19 - 1)צ ולא לתוך (1)צ וזה מכיון ש- 1 עולה מ-20 עד 30 ואילו ‏ צ+ מכיל את האלמנטים (11) צ% --(2) + (1)+ץ -. האעדקס 19- ך משתנה מ-1 עד 11 ומביא לכן לתוצאה הרצויה. 4) כאשר רוצים לכתוב שבו המשתנה קטן בקפיצות (במקום לגדול) אפשר להשיג זאת ע"י הוספת פקודה יחידה, לדוגמא 8 0 =1 7 8ע 1- גג > 11 1 הוא משתנה שירד מ-10 עד 1 בקפיצות של 1. תרגילים: 1) נתונים שני משתנים (100) / , (100) צ לכתוב תכנית שתחשב את (ע) ש (1) צ-7 גודל זה נקרא המכפלה הסקלרית של הוקטורים טר רצלצ. 2) נתונים המשתנים (3,7) 3 , (3,7) 4 לכתוב תכנית שתכניס לתוך ( 1 4)1 את הסכום( 1 2)1 + ( 420)1 פעולה זו נקראת חבור המטריצות ‏ 3 ,48 3) נתונים המשתנים (5,8) 6 , (6,8) 3 , (5,6) 4 לכתוב 5 תכנית שתכניס לתוך ( 1 1 )6 את (1 ,)2 +( א )2-2 ו=> פעולה זו נקראת כפל המטריצות 3 ,4 . 39 פרק ל קלט - פלט כל הפקודות שנלמדו עד עכשיו הן בעלות מכנה משותף אחד . אלה הן פקודות פנימיות, פקודות המבוצעות בתוך המחשב. ביצוען או אי ביצוען של פקודות אלה אינו משנה דבר מסביב למחשב. יש לכן צורך בפקודות נוספות, פקודות שתהיינה חיצוניות, כלומר שתקשרנה בין המחשב למה שנעשה סביבו. הקשר בין המחשב לעולם החצוני מתבטא בקריאת נתונים מבחוץ לתוך המחשב ובהדפסת תוצאות מהמחשב החוצה. קשר זה מתבצע באמצעות שתי הפקודות | צאזתע כשבאשעת. הפקודה עאעם קוראת נתונים מבחוץ (צורת הגשת הנתונים לתכנית תתואר בפרק 9) ומכניסה אותם לתוך משתנים של התכנלת. הפקודה ‏ 7א₪91 מדפיסה את ערכיהם של משתנים מהתכנית ויכולה גם להדפיס כותרות. הצורה הכללית של הפקודות היא 6% ,ם כשאפת % םמ עאזתע ם היא מספר זהוי של פקודה הנקראת פקודת 27 ושתתואר להלן. % היא רשימה של משתנים המופרדים ע"י פסיקים, רשימה היכולה לכלול | 18 פנימי. דוגמאות: %, ככגבפת זו פקודה הקוראת שלושה מספרים מכרטיס נתונים (שהתכניתן 20 חייב לספק אותו יחד עם התכנית), מכניסה את הראשון למשתנה 4 , את השני למשתנה ‏ 1 ואת השלישי למשתנה ‏ < לאחר בצוע הפקודה יהיו במשתנים % 1 23 המספרים החדשים, וכל מה שהיה בהם קודם, יעלם. בדוגמא זו ה-- 118% הוא 1% ,4 וחייבת להיות פקודת דבואתת שמספרה 5. הפקודה 2 ,1 (3) :א ,13 עאזתק מדפיסה (לפי | 202%/471 מספר 13) את המשתנה (3)/ (האלמנט השלישי של המשתנה ]א ), את המשתנה ַ ואת המשתנה | 2 חשוב להבין שקריאת נתונים מבחוץ נעשית אך ורק לתוך משתנים. הדפסת תוצאות החוצה יכולה להיעשות או מתוך משתנים או בצורה של הדפסת כותרות (דבר זה יוסבר בפירוט בסעיף על פורמט 11 ). לתוך הפקודות צאזתע כבאעת אפשר להכניס 0 פנימי כפי שמראות הדוגמאות הבאות (13 =1 () ב) 77 כגמת כאן יקראו שלושה מספרים שיוכנסו לשלושת המקומות הראשונים. במשתנה ‏ 43 (15) ,(2,4 = 1 ,(1) א) ,8.2 עאזתס כאן יודפסו (לפי הסדר) (15)א (4)א (3)א (8)2 2. ה- 20 הפנימי סגור בתוך סוגריים, מכיל רשימה של משתנים, אח"כ פסיק ואח"כ בטוי מהצורה בת ,כמ ,ות = ,1 | כמו ב- ‏ 208 הרגיל. דוגמא: (2 04 =1 ,) 6 ,2 5 ,₪ 4) ,5 כבסת הנתונים יקראו לתוך המשתנים הבאים (משמאל לימין) 211 4 )1( 2)1( 6)1( 4)3( 3)3( 6)3( - - - ---4)9( 2)9( 6)09( דוגמא: (6 ,5 =1 (1)א) ,(1,2 =1 ,)8) ,1 צאזתק כאן קיימים שני ‏ 20 פנימיים המופרדים אחד מהשני. קודם 'מתבצע כל ה 26 הראשון ואח"כ כל השני. המספרים שיודפסו יהיו (משמאל לימין) (4)6 (8)5 (4)2 (4)1 יתכנו גם כמה ‏ 28 פנימיים הנמצאים אחד בתוך השני. ה- ‏ 20/8 הראשון מכיל רשימה של משתנים, אח"כ פסיק ואח"כ במ ,כגת ,וֶת1 =ע. במקום אחד מהמשתנים שברשימה אפשר לרשום שוב טע פנימי שני. דוגמא: (3 ,1 = 001(,1 ,(2 ,1= 7 ,(5)01) (() ג) ,2 שגמת המשתנה השני שברשימה מוכל בתוך 20 פנימי והמספרים שיקראו מבחוץ יוכנסו למשתנים הבאים (משמאל לימין) 4)1( 5)11( 2)1,2( 6)1( 4)2( 2)2,1( 3)2,2( 6)2( 4)3( 2)3,1( 2)3,2( 6)3( דוגמא: (1,3 = (1,2 = א.(1,א) א )) 81 עאזתק כאן קיימים שני 6ע פנימיים, אחד בתוך השני והמספרים | שיודפסו הם (3 ,)2 (1,3)א (6,2א (1,2)א (2,1)א (1,1)א בפקודה ‏ ₪תמ2₪4 אפשר לקרוא מספר לתוך משתנה ולהשתמש במשתנה זה כבר באותה הפקודה. דוגמא: 0 40(1=1) 20 סגאפת 142 באותה פקודה קוראים קודם מספר לתוך המשתנה ]א ואח"כ משתמשים באותו משתנה בתור גבול עליון של [פן פנימי. פורמט כאשר קוראים מספרים מכרטיס, יש לפרט למחשב באילו עמודות בכרטיס מופיע כל מספר, מה מספר הספרות שלו ואם הוא אינו שלם, כמה ספרות אחרי הנקודה העשרונית הוא מכיל. כאשר מדפיסים מספרים יש לפרט למחשב באיזה מקום על הניר להדפיס כל מספר וכמה ספרות להקדיש לו. כל הפרוטים האלה נתנים למחשב ע"י פקודת הפורמט. פקודה זו אינה גורמת לביצועה של פעולה כלשהי, אלא היא מהווה אוסף של פרוטים, של ספציפיקציות למחשב, איפה ואיך להדפיס או מהיכן וכמה לקרוא. לכן נחשבת גם פקודה זו בין הפקודות שאינן לביצוע. דוגמא: שלושה מספרים מנוקבים על כרטיס נתונים בצורה 7 47 - ן כאשר מגישים כרטיס זה למחשב, הוא אינו מסוגל לנחש איפה מתחיל ונגמר כל מספר ולכן יש לפרט לו זאת. אפשר למשל לומר לו שהמספר הראשון מתחיל מתחילת הכרטיס, ארכו שמונה מקומות והוא מכיל שלוש ספרות אחרי הנקודה העשרונית (הנקודה וסימן המינוס נכללים בספירת המקומות). המספר השני מתחיל מיד אחרי הראשון, ארכו ששה מקומות והוא בעל שתי ספרות אחרי הנקודה העשרונית. השלישי מתחיל מיד לאחר השני ומבנהו זהה לזה של השני. אינפורמציה זו נכללת בפקודת הפורמט ובעזרתה קורא המחשב את שלושת המספרים 102.51 137.89 123.456 - מהכרטיס ומכניס אותם למשתנים המתאימים. 43 הצורה הכללית של הפקודה היא (שדה, ... , שדה, שדה) צגועת0ת ב מ - הוא מספר זהוי (חיב להופיע), הפורמט מורכב משדות המופרדים ע"י פסיקים וסגורים בסוגריים. כל שדה מתיחס למספר אותו רוצים לקרוא או להדפיס והוא מפרט: א) האם המספר שלם או ממשי. ב) מה מספר המקומות שהוא תופס על הכרטיס או שיש להקציב לו על ניר ההדפסה. ג) כמה מבין מקומות אלה הם אחרי הנקודה העשרונית. שדה ‏ 1 צורתו הכללית - שן כאשר = מספר שלם חיובי. משמעותו - המספר הבא שיקרא (או יודפס), הוא שלם ותופס שי מקומות כולל הסימן. לדוגמא - את המספר 168- יש לקרוא (או להדפיס) בפורמט 4 . דוגמא: כרטיס נתונים ועליו שלושה מספרים מנוקבים בצורה ו שתי הפקודות 8% כאפמת (14,11,12) דהואת0ע | 5 תגרום לכך שהכרטיס יקרא לתוך המחשב, למשתנה ‏ 1 יכנס המספר 1234, למשתנה 1 יכנס 5 ולמשתנה >- 6. פקודות אלה מבוצעות ע"" המחשב בשלבים הבאים: 1) הפקודה ‏ ₪8 גורמת לקריאת הכרטיס. 2) המספר 5 גורם לכך שהמחשב יתיחס אל פקודה מספר 5 כאל פורמט ויתחיל לעבור על הפורמט משמאל לימין. 44 3) השדה הראשון הוא 4 ולכן יקח המחשב את התוכן של ארבע העמודות הראשונות על הכרטיס ו"כניס אותו למשתנה הראשון ‏ 1 ברשימה. 4) השדה השני הוא< | 11 ולכן יקח המחשב את התוכן של העמודה הבאה (החמלשית) בכרטיס ויכניס אותו למשתנה השני 1 ברשימה. 65 השדה השלישל הוא | 12 ולכן יקח המחשב את התוכן של שתי העמודות הבאות (ששית ושביעית) בכרטיס ויכניס אותו למשתנה השלישי 5 ברשלמה. 66 בשלב זה מגיע המחשב לסוגר הימני של הפורמט (המצין סוף פורמט) וכן לסוף רשלימת המשתנים בפקודה ‏ אשת . דבר זה מסמן למחשב שנגמר ביצועה של פקודת הקרלאה, והוא עובר לפקודה הבאה בתכנית. שדה ‏ 2 צורתו הכללית - 4. שר כאשר 4 שי שלמים חיוביים המקימים ס <4<>. משמעותו - המספר הבא שיקרא (או יודפס) הוא ממשי, ארכו ‏ ש מקומות והוא מכיל 6 ספרות אחרי הנקודה העשרונית. ש המקומות יכולים לכלול סימן ונקודה עשרונית. לדוגמא: כרטיס נתונים שעליו מנוקב 4 - שי שתי הפקודות 2 כאפת (4.0ע 5.1 ע,6.3 ע) צגאתסת 17 יגרמו לכן שלתוך המשתנה ‏ 3% יכנס המספר הממשי 14.547, לתוך ‏ צ' יכנס 31.5 - ולתוך ‏ 2 יכנס ‏ .4444. 45 הערה: כאשר ס= 6 (כמו בשדה 3.0 2 ) לא חיבת להופיע הנקודה העשרונית. המספר יכול להיות מנוקב על הכרטיס כמספר שלם (ללא הנקודה), אולם קרלאתו בפורמט ‏ ?3 גורמת לכך שהוא יכנס לתוך המשתנה כמספר ממשי (שאין לו ספרות אחר? הנקודה). שלבל העבודה של המחשב במקרה זו יהיו זהים לשלבים שחוארו מקודם. < הדש‎ צורתו הכללית א ש , כאשר ש שלם חיובל. משמעותו - דילוג על ש מקומות. כאשר מופיע שדה זה בפורמט של קריאה, ידלג המחשב על המקומות המתאימים בכרטיםס ולא יקרא אותם. כאשר הוא מופיע בפורמט של הדפסה, ישאיר המחשב ש מקומות רלקים בשורת ההדפסה וימשיך להדפיס משם. דוגמא: כרטיס נתונים שעליו מנוקב ו שתי הפקודות א כפאפת (1,א1 12 ,3% 5.0ע ,5.2.1% ע) דגאתקע 20 תגרומנה לכך שהמספרלם 1 15 1 - 7 יכנסו למשתנים א 1 ה 0 בהתאמה שלבי העבודה של המחשב יהיו במקרה זה: ו המלה 8842 גורמת לקריאת הכרטיס. 2) המספר 20 גורם לכך שהמחשב יתיחס אל פקודה מספר 20 כאל פורמט. .. 3 )4 65 )6 7 8 9 )10 16 השדה הראשון ‏ 5.2 2 גורם לכך שהמספר בעמודות 5 בכרטיס ל*כנס למשתנה הראשון ‏ 62. השדה השנל 1% גורם לדללוג על העמודה הבאה (עמודה 6) בכרטיס. השדה השלישי 5,0 א גורם לכך שבתוכן של חמש העמודות הבאות (עמודות 7-11) יכנס למשתנה השני ₪ . השדה הרביעי % 3 גורם לדילוג על עמודות 12-14 (המחשב אינו קורא את האותיות המנוקבות שם). השדה החמישי 2 1[ גורם להכנסת התוכן של עמודות 6 למשתנה -1. השדה השישי | א 1 גורם לדילוג על עמודה 17 (בה מנוקב סימן מינוס). השדה השביעל 11 גורם להכנסת התוכן של "עמודה 18 למשתנה ‏ א, כעת מגיע המחשב לסוגר הימני של הפורמט וגם לסוף רשימת המשתנים. דבר זה גורם לסיום פעולת הקרלאה. דוגמא: המשתנים מהדוגמא הקודמת מודפסים עם רוחים ביניהם. הפקודות תהילנה א פ*אזתכע (11 ,א ,4.0.1%8,12ע ,1% 5.2ע 0 1) דגאת0ע ‏ 30 כל אחד מהמספרים מודפס כשמצד שמאל שלו יש רוח אחד. שורת ההדפסה נראית 1 "013.47 כאשר ‏ 0 פרושו מקום ריק על הניר. הערה: המשתנה 2 נקרא בפורמט 0 אולם מאחר ואינו מכיל ספרות אחרי הנקודה, הרי שמספיקים ארבעה מקומות על הנלר בכדי להדפיסו. לכן אפשר להדפיסו בפורמט 4,0 ₪ |17 שדה כו צורתו הכללית - | 84.ש ₪ כאשר 4 שש שלמים חיובי"ם המקימלם ס ל 6 קלש. משמעותו - המספר הבא שיקרא (או יודפס) הוא מספר ממשי, ארכו ש מקומות, הוא מכיל 6 ספרות אחרי הנקודה והוא רשום בעזרת מעריך. לדוגמא: יש לקרוא את המספר 3 .... 0.00 - מ שש אפשר לנקב אותו על כרטיס ולקרוא אותו בפורמט 65.62 2 , אולם מאחר ורוב הספרות בו הן אפסים, הרי יותר נוח לנקב אותו על הכרטיס בצורה 58 -₪ 0.5713 - ולקרוא אותו בפורמט [4.ו1 -/ צר הכתיב 8 - ₪ 0.5713 - פרושו 58 ---. פורמט ‏ 5 מצפה למצוא על הכרטיס מספר ממשי שאחריו האות ש ואחריה מעריך עשרוני. במקרה של פורמט ‏ ₪ מסמן ש את האורך הכללי של המספר, כולל האות ‏ ₪ והמעריך. ‏ 8 מסמן את מספר הספרות שאחרי הנקודה ואינו כולל את המעריך או את האות 125 . פורמט ₪ נוח לשימוש במספרים גדולים מאוד או קטנים מאוד, שרוב ספרותיהם הן אפסים. תכונות של שדות מספריים. שלושת השדות ער ע 1 הס מספריים, כלומר משמשים לקריאת והדפסת מספרים והם בעלי התכונות הבאות. >|8 [) בקריאה של מספר מכרטיס, יכול הכרטיס להכיל ספרות, סימן וכן נקודה (במקרה של מספר ממשי) או האות ‏ 12 . במקרה שהכרטיס מכיל משהו אחר, יודיע המחשב על שגיאה ויפסיק את בצוע התכנלת. לדוגמא: כרטיס ובו מנוקב. 4 4 3) נסיון לקרוא כרטיס זה בפורמט 4 , יגרום לכך שהמחשב לודיע על שגיאה ולעצור. 2) מקומות ריקים על הכרטיס אקויולנטיים לאפסים. לדוגמא: הניקוב 1 1 יקרא בפורמט 3 1 בתור המספר 1. 3) בהדפסה, עלול השדה המוקצב למספר, להיות גדול מארכו של המספר. במקרה זה יודפס המספר בצד ימין של השדה וצד שמאל שלו ישאר ריק. לדוגמא: 4 >= 2 2 אצת (7.1 ת) 41ועאת0ע -2 המספר 2 דורש להדפסתו רק חמשה מקומות ואללו הפורמט מקציב לו שבעה מקומות. לכן יודפס המספר כשמצד שמאל שלו שני מקומות ריקים. 13.4 - סס . 4) אם השדה המוקצב למספר, קטן מארכו של מהספר, יודפס כוכב * בצד שמאל של השדה ויתר המקומות בשדה ימולאו בספרות המתאימות. לדוגמא: 5 = 2 2 אנת (4.1 ע) דהאת0ת 3 יודפס ‏ %4.5 19 65 בהדפסה של משתנה ממשי אין צורך להדפיס את כל הספרות שאחרי הנקודה. אפשר להדפיס רק חלק מהן ואז המחשב מדפיס את המספר כשהוא מעוגל. לדוגמא: 4 = 2 2 אנת (5.2 ע) דאת/תע 4 יודפס המספר 24.79. אם לעומת זאת מבקשים להדפיס יותר ספרות אחרי הנקודה מאשר יש למספר, יודפסו אפסים. לדוגמא: 7 = 2 2 את (5.2 ע) צגואת/ע 4 יודפס 70. דוגמא: תכנית הקוראת שני כרטיסי נתונים, מבצעת חישובים על הנתונים שקראה ומדפיסה תוצאות. ככאפת 5 + 42 = 0 2+ > כ כ /50ם 1 כתכאעמעת 1 11 נ1% 12 ,74,562 צאזפק (26.4 ,10.2 ע ,77.2 תע ,6.2 ע ,6.2 ע) דגואת0ק -7 50 5 ,8-7 תחדתס (18 ,16 ,14 ,14) דצעאתקעת 8 5 (13 ,613 דבאתטת 5 (5,2 ע 4% ,5.2 ש) דגואתקת ‏ 3 כעאם הערות: 1) פקודת הפורמט אינה חיבת לבוא ליד פקודת | שא1תק/כ אפת המתאימה, אלא יכולה להופיע בכל מקום שהוא בתכנית. 2) כאשר, במהלך ביצוע התכנית, מגיע המחשב בפעם הראשונה לפקודת ‏ מ2₪4 כלשהי, הוא יקרא את כרטיס הנתונים הראשון. כאשר הוא מגיע בפעם השניה לפקודת 2מ23₪4 כלשהי, הוא יקרא את כרטיס הנתונים השני וכו". בדוגמא האחרונה הגיע המחשב קודם לפקודה ‏ ,3,484 כגסעת ולכן קרא את כרטיס הנתונים הראשון לפי פורמט 3. כרטיס זה חייב לכן להכיל שני מספרים ממשיים, הראשון בעמודות 1-5 והשני בעמודות 10-14. בשאר העמודות יכול הכרטיס להכיל קרקטרים כלשהם. פקודת ה-| 3241 השניה שפוגש המחשב היא 71 כגעת ולכן הוא יקרא את כרטיס הנתונים השנל לפי פורמט מספר 5. כרטיס זה חייב לכן להכיל שני מספרים שלמים, הראשון בעמודות 1-3 והשני בעמודות 4-6 . שאר העמודות יכולות להכיל קרקטרים כלשהם. התכניתן שכתב את התכנית, יודע כמה פקודות ‏ ₪82 היא 51 מכילה, לאיזו מהן מגיע המחשב ראשונה, לאיזו הוא מגיע שניה וכו*. מכאן יודע התכניתן כמה כרטיסי נתונים תקרא התכנית ועל ידי איזו פקודת | ₪81 יקרא כל כרטלס. במלים אחרות, התכניתן יודע באיזה פורמט קוראת התכנית כל אחד מכרטיסי הנתונים, ועליו להכין את הכרטיסים כך שכל אחד מהם יתאים לפורמט לפיו הוא נקרא. על כרטיס הנתונים אין צורך לנקב את מספר פקודת הפורמט המתאימה, או את מספר פקודת ה- עת32₪4 | אוכל דבר אחר. על כרטיס הנתונים יש לנקב רק את הנתונים, וזאת לפל הפורמט בו יקרא הכרטיס. אם כרטיס נתונים נקרא לפי הפורמט ( 3 1 ,% 35 ) יש לנקב בו את המספר בעמודות 36-38. בכל מקרה יש להתאים את כרטיס הנתונים לפורמט לפיו הוא נקרא. אין צורך להתחיל לנקב את הכרטיס מעמודה 1 או מעמודה 7 או מכל עמודה אחרת. שדה תע צורתו הכללית ש% ... [3 8 ש כאשר ש שלם חיובי, ... 31 קרקטרים כלשהם (כולל בלנק). דוגמא: 6 2 ב 3 5 פן. 1 4. המשמעות: שי הקרקטרים המופיעים אחרי ‏ 11 יודפסו על הניר כמות שהם. שדה זה משמש להדפסת כותרות. אפשר להדפיס בעזרתו כל קרקטר שהוא, אולם הוא אינו שדה מספרי כי אי אפשר להדפים בעזרתו ערכים של משתנים. 2 דוגמא: .41 = 5 5 ,1 צלאזתק (72.0ת ,= אמםע3) צגאת0ע 1 יודפס 5 = אם. יש לשים לב לכך שגם בלנק נספר בין הקרקטרים שאחרי ‏ 11 וזה יוצא מן הכלל לחקי הכתיבה של השפה האומרים שאין חשיבות לבלנקים . הזזת שורה על הניר (6201ת60 082218₪6). כל פקודת צאזתש מתחילה להדפיס מתחילת שורה חדשה. לעתים רוצים להשאיר רוח כפול בין השורה הנוכחית לקודמת, או רוצים להדפיס את השורה הנוכחית בתחילת דף חדש. לא קיימות פקודות מיוחדות בשפה לשם כך, ומבצעים זאת בעקיפין. הדבר האומר למחשב איזה רוח להשאיר לפני הדפסת השורה הנוכחית, הוא הקרקטר הראשון של שורה זו. הקרקטר הראשון של כל שורה אינו מודפס והמחשב מפרש אותו כהוראה האומרת מה המרחק של שורה זו מהשורה הקודמת. קיימות ארבע אפשרויות. 6 הקרקטר הראשון הוא ‏ +. במקרה זה לא יהיה רוח בין השורה הנוכחית לשורה הקודמת. 2) בקרקטר הראשון הוא בלנק. במקרה זה יהיה רוח רגיל בין השורה הנוכחית והקודמת. 3 הקרקטר הראשון הוא אפס. במקרה זה יהיה רוח כפול בין השורה הנוכחית והקודמת. 3 4) הקרקטר הראשון הוא 1. במקרה זה תודפס השורה הנוכחית בתחילת עמוד חדש ושארית העמוד הקודם תישאר ריקה. אם הקרקטר הראשון בשורה שונה מארבעת אלה שצוינו, ידלג המחשב על מספר שורות לפני הדפסת השורה הנוכחלת, ודילוג זה יבוצע לפי "שרירות לבו" של המחשב, כלומר אין לדעת על כמה שורות ידלג. דוגמא: 4 צאזתכ (צמתסשע0א 1ע 8) צגאת0תע - 4 יודפס יא בתחילת עמוד חדש. הספרה 1 לא תודפס מכיון שהמחשב מפרש אותה כהוראה לקפוץ לעמוד חדש. דוגמא: 1 | 2 2 לעאזפק (5.1 ע) 1אתפקתע 1 לודפס 3.1 ס בתחילת עמוד חדש. זה מכיון שהמחשב מפרש את הספרה 1 כהוראה לקפוץ לעמוד חדש. הפורמט הנכון הוא (ג.5 תע , א1) קתע 1 השדה ‏ 3% 1 יוצר בלנק בתחילת השורה וזה אומר למחשב להשאיר רוח רגיל בין שורה זו לשורה הקודמת. יש לכן להקפיד שכל פורמט להדפסה לא יתחיל בשדה נומרי אלא ברוח (שדה ‏ % ) או בכותרת (שדה 3 ). הערה: מספר הקרקטרים המכסימלי שאפשר להדפיס בשורה, שונה ממחשב למחשב. במחשב שבאוניברסיטה מספר זה הוא 136. מכיון שהקרקטר השמאלי אינו מודפס הרי שנשארים לכל היותר 135 מקומות בשורה. אם מנסים להדפיס יותר מזה, יודיע המחשב על שגיאה ולפסיק את העבודה. 54 גורם חזרה (86%02'/ ב601010ק6ת) אפשר בצורה נוחה לחזור על שדה (או קבוצת שדות) המופיע בפורמט. במקום הפורמט (6.1 תע ,6.1 תע ,6.1 ש) אפשר לכתוב (6.1 ע 3). המספר 3 נקרא גורם הומי | 2 1% במקום הפורמט (15 ,3% ,2.0,13ע ,32 ,2.0,13ע ,א1) אפשר לכתוב (15 ,(3% ,13 ,222.0 ,6א1) כאן גורם החזרה הוא 2 ולכן יחזור המחשב פעמיים על כל השדות הרשומים בסוגריים, ורק לאחר מכן ימשיך לשדה ‏ 15 . יכולים להיות כמה גורמי חזרה בפורמט, אולם עליהם להופלע אחד אחרי השני ולא אחד בתוך השנל. מותר לכתוב (- - (- -) 4- 7 70 -)3,- -) 147את0ע ואסור לכתוב [6= (> * כ( 8.7 ד ה)/ 2 )ו רקורד הדש רקורד חדש מסומן בפורמט ע"י קו נטול /, המשמעות - בקריאה, לעבור לכרטיס הבא. בהדפסה, לעבור לתחילת השורה הבאה. דוגמא: 1 ,15 עאזתק (4 ,4.1 ,21/18 ,3 ,2 פצ3) דגואת0ע 15 ההדפסה תהיה בת שתי שורות 4 = [= 12.2 - 1 5 דוגמא: שתי הפקודות צ,3 פאפת (10.3 ע 2// 10.3 ש 2) ד'ה]נפסע 31 יגרמו לכך שערכי המשחתנים 5 ,4 יקראו מכרטיס אחד, וערכי המשתנים ‏ צ ,3 יקראו מהכרטיס הבא. תכונות נוספות של פקודת הפורמט. 61 כאשר קוראים מספרים בפורמט ‏ ₪ או 2 , לא חייבת להופיע נקודה על הכרטיס. במקרה כזה קובעים ערכי ‏ 6 ש . לדוגמא: כרטיס ועללו מנוקב 1)] אפשר לקרוא אותו בפורמט 1 ואז הוא יקרא בתור 690.1. בפורמט 2.4.2 הוא ליקרא בתור 69.01. בפורמט 4.4 2 הוא י*קרא בתור 0.6901. כאשר קיימת אי התאמה בין ערכי | 4 ,ש לבין מיקומה של הנקודה על הכרטיס, קובע מיקומה של הנקודה. לדוגמא: כרטיס ובו מנוקב ] אפשר לקרוא בפורמט 5.2 ע ואז יקרא המספר 69.01. אפשר גם לקרוא אותו בפורמט 5.3 ע או 5.5 2 וכו.- בכל המקרים יקרא המספר 69.01. 2) אם קיים (10) 4 אק51אפואזת אז הפקודה (1,10 =1 ,()א) ,3 סהסת תקרא 10 מספרים לתוך המשתנה 8 . במקרה כזה אפשר לכתוב 4 ,3 עבעת ופקודה זו תעשה אותו דבר. 56 כלומר כאשר רוצים לקרוא לתוך כל האלמנטים של משתנה מסוים, אפשר לותר על ה- 08( | הפנימל. לגבי משתנה בעל שני ממדים קיים דבר דומה. לדוגמא: אם (3 ,10) < אשנזפא פאז אז שתי הפקודות (1,3 = 110 =1 ,(ם) א)),10 לאזתס 10% תאזתק הן זהות. כלומר הפקודה 10% עאזתע מדפיסה את כל האלמנטים של המשתנה ‏ 30 כאילו היא כוללת שני 120 פנימילם שמהם הפנימי הוא על האינדקס הראשון, והחצוני, על האינדקס השני. הקשר בין ליסט ופורמט. כאשר קיימת אל" התאמה בין ארכה של רשימת המשתנים ( 115%) ובין ארכו של הפורמט, קובע ארכו של הליסט. א: אם הליסט קצר מהפורמט, לא יגיע המחשב לסוף הפורמט. דוגמא: 0 ,164 עגפת (2,0ע ,4.2 ע ,23.1 2) 021 16 הליסט מכיל שלושה משתנים ואילו הפורמט מכיל ארבעה שדות. במקרה זה יהיו שלבי העבודה של המחשב כדלקמן: 1) המלה עת₪4 גורמת לקריאת כרטיס. 2) המספר 16 גורם לכך שהמחשב יתיחס אל פקודה מספר 16 כאל פורמט. 3) שני השדות הראשונים 3.1 2 2 יותאמו למשתנים ‏ ,4 . השדה השלישי 4.2 ע יותאם למשתנה ‏ 600 57 4) לאחר קריאת המספר המתאים לתוך המשתנה ‏ 6 , מגיע המחשב לסוף רשימת המשתנים וזה מציין לו את גמר פעולת הקריאה. המחשב לא יגיע לכן לשדה הרביעי 2.0 ע ושדה זה לא ישפיע על פעולת הקריאה. ב: אם הליסט ארוך מהפורמט, יבצע המחשב את פקודת הקלט/פלט בצורה רגילה עד שיגיע לסוף הפורמט. בנקודה זו יבצע המחשב שתי פעולות. 1) יעבור לרקורד חדש (כלומר יקרא כרטיס חדש או יעבור לשורה חדשה). ! 2) יחזור לתחילת הפורמט. לאחר בצוע פעולות אלה ימשיך המחשב לבצע את פעולת הקלט/פלט על המשתנים שנשארו בליסט. דוגמא: % אאתתכ (ע 5 2 ,13 ,א1) צא4אתקע 4 שלבי העבודה של המחשב יהיו במקרה זה כדלקמן. , 1 האלה צאזתפקע גורמת לכך שהמחשב יתחיל להדפיס מתחילת שורה חדשה. 2) המספר 4 פרושו שפקודה מספר 4 היא פקודת פורמט. 3) השדה | 1% גורם לכך שהרוח בין השורה הנוכחית לשורה הקודמת, יהיה רוח יחיד. 4) שלושת המשתנים 0 ,1 מודפסים לפי שלושת השדות 1 ; 2 13 + 5) כאשר המחשב מגיע למשתנה הרביעי 6 , הוא מוצא שהפורמט נגמר. לכן מבצע המחשב שתי פעולות. הוא חוזר לתחילת הפורמט ועובר לשורה חדשה. 58 כעת ממשיך המחשב בהדפסה. השדה ‏ 1% שבתחללת הפורמט אומר שוב להשאיר רוח יחיד. המשתנה 1 מודפס לפי השדה 3 וכאן נגמרת רשלמת המשתנים, כלומר נגמרת פעולת ההדפסה. הערה: מאחר והמשתנה הרבלעי | מודפס לפ" השדה הראשון שהוא ‏ 13 , חייב משתנה זה להיות שלם. פקודת הדפסה מהצורה טם ₪ 4 עאזאתכ תגרום לשגיאה מאחר והמשתנה הרביעי ₪ , שהוא ממשי, יודפס לפי השדה הראשון ‏ 13 , שהוא שלם. דוגמא: (19 =1 (17 = ,(21)ם)) ,5 סאפת (4.1ע7) ד4ואת0ע - 5 כאן כולל הליסט 63 משתנים ואילו הפורמט רק 7 שדות. שלבי הפעולה יהיו: 1) שבעת המשתנים הראשונים בליסט, (7 ,1 3 = = = (8 ,301 (1 ,51 יקראו בפורמט 41. 2) בנקודה זו *גיע המחשב לסוף הפורמט אולם הליסט עדיין נמשך. לכן יקרא המחשב כרטיס נוסף, יחזור לתחילת הפורמט ויקרא לתוך שבעת המשתנים הבאים (7 )2 - = = (2 ,202 (1 ,5)2 לפי הפורמט 41. 3) תהליך זה יחזור לגבי כל קבוצה של שבעה משתנים, ומאחר שקיימות תשע קבוצות כאלה הרי שבסה"כ יקרא המחשב תשעה כרטיסים. בסיכום: פקודת קריאה זו תגרום לכך שהמחשב יקרא תשעה כרטיסים ומכל כרטיס יקרא שבעה מספרים. מספרים אלה יוכנסו 9 למשתנים (7 ,50 - - - (2 2/1 (1 ₪05 כלומר לשורה ה- ‏ 1 של המשתנה ₪3 . פקודה כזו מהווה לכן שלטה נוחה לקריאת מטריצה של מספרים לתוך משתנה בעל שני ממדים. מנקבים כל שורה של המטריצה על כרטיס נתונים, וקוראים בעזרת פקודה אחת כרטיסי נתונים שמספרם שוה למספר שורות המטריצה. פרק 8 תכניות משנה ( 8 בה יע סש כ סג6) כשם שהשימוש במחשב בא כדי לחסוך עבודת חישוב, כך השימוש בתכניות משנה בא כדל לחסוך עבודה בכתיבת תכניות. כאשר קטע מסוים בתכנית צריך להתבצע הרבה פעמים, שואף התכניתן לכתוב את הקטע רק פעם אחת ולחזור על ביצועו של אותו הקטע מספר פעמים כנדרש. דבר כזה אפשר לפעמים לבצע בעזרת הפקודה 7 ,( אולם יש מקרים בהם נוח יותר לכתוב את הקטע בתור תכנית משנה. דוגמא: תכנית שבה רוצים לחשב סינוסים של שלוש זויות. הפתרון הפשוט ביותר הוא לכתוב מערכת של פקודות לחישוב סינוס, ליצור שלושה העתקים של מערכת פקודות אלו ולהכניס כל העתק למקום בתכנית שבו נדרש חישוב של סינוס. ההעתקים להיו שונים זה מזה רק בערכה של הזוית שאת הסינוס שלה יש לחשב. שיטה זו אינה גרועה למקרה של שלוש זויות, אולם היא כמעט בלתי אפשרית למקרה של שלוש מאות זויות. | במקרה כזה יהיה צורך ליצור שלוש מאות העתקים של הקטע המחשב סינוס, והעתקים אלה ינפחו את התכנית ללא צורך. הפתרון הפשוט למקרה כזה הוא לכתוב קטע של תכנית המחשב סינוס של זוית שערכה נמצא במשתנה ‏ 3% . קטע זה יכתב בתור תכנית משנה ופרושו של דבר הוא שבכל פעם שיש לחשב סינוס, יוכנס ערכה של הזוית המתאימה לתוך המשתנה 8 , התכנית תקפוץ לחכנית המשנה, הסינוס יחושב ותכנית המשנה תחזור לתכנית הראשית לנקודה שממנה בוצעה הקפיצה. 1 הסכמה הבאה מראה תכנית שממנה קופצים פעמיים לתכנית משנה. בפעם הראשונה מחושב סינוס של .1 ובפעם השניה, סינוס של של 6.3 תכנית משנה תכנית ראשית <=1 פאע תכנית המשנה חוזרת בכל פעם לנקודה ממנה בוצעה הקפיצה. קיימים שני סוגים של תכניות משנה. תכניות משנה מהסוג הראשון נקראות סוב-רוטינות ( 8וטטסצסט5 ), ומהסוג השני, פונקציות ( | 8מ610סתטת ). סוב-רוטינה. זוהי תכנית משנה שקופצים אליה בעזרת פקודה מיוחדת הנקראת . צורתה הכללית (- - -,פרמטר,פרמטר) שם ‏ ,641,1 או שסם .041.1 2 אחרי המלה ,6041,1 | מופיע שמה של הסוברוטינה ואחריו יכולים להופיע פרמטרים, מופרדים ע"?* פסיקים ומוקפים סוגרלם. המשמעות: המחשב יקפוץ לסוברוט"נה ששמה צולן בפקודה, ימסור לה את ערכי הפרמטרים ולאחר שזו סיימה את פעולותיה, יחזור לתכנית הראשית לנקודה ממנה קפץ. הפרמטרים שבפקודה 6041,1,‏ יכולים למלא שני תפקידים. הם יכולים למסור נתונים לסוברוטינה או להחזיר תוצאות שהסוברוטינה חישבה. דוגמא: סוברוטינה לחישוב סינוס ששמה 5שאז ולה שני פרמטרים. הראשון הוא ערכה של הזוית והשני הוא משתנה שלתוכו יש להכניס את התוצאה. פקודת קפיצה לסוברוטינה זו יכולה להראות (צ ,31.2) 5שא51 ,641.1 המשמעות - על המחשב לקפוץ לסוברוטינה, היא תחשב את סינוס של 31.2 רדיאן ותכניס את התוצאה למשתנה ץ ‏ . כאשר יחזור המחשב לתכנית הראשית, ימצא במשתנה צ% המספר המתאים ואפשר יהיה להשתמש בו. אפשר גם לכתוב (צ,א) פטא1פ 041.1 ואז יחושב סינוס של המספר הנמצא במשתנה ‏ 35 והתוצאה תוכנס ל- ץ . אפשר גם לכתוב (2 ,3.5 + א) 05א51 ,041.1 ואז יחשב המחשב את הבטול האריתמטי 3.5 + 3 ימסור את התוצאה לסוברוטינה וזו תחשב סינוס של התוצאה ותכניס אותו למשתנה 2 . פרמטר המוסר נתונים לסוברוטינה יכול להיות בטוי אריתמטי אולם פרמטר המחזיר תוצאות מסוברוטינה חייב להיות שם של משתנה. 3 דוגמא: סוברוטינה בשם עס שתפקידה לפתור משואה רבועית. לסוברוטינה זו נרצה למסור את שלושת מקדמי המשואה וכן שני משתנים שלתוכם היא תכניס את שני הפתרונות. לכן יהיו לה חמשה פרמטרים. פקודות קריאה לסוברוטינה זו יכולות להיות למשל: (2א ,1א ,0 ,ב ,4) פס ,61.1 (72 ,1ע 0 ,2 .35 -א.,19) פס 01 (ט ,5.3.0 - ,2 ,ג) מס 6411 שלושת הפרמטרים הראשונים הם שלושת מקדמי המשואה (ולכן יכולים להיות בטויים אריתמטיים). שני הפרמטרים האחרונים הם שמות של משתנים ממשיים שלתוכם יש להכניס את התוצאות. הפקודה הראשונה בכל סוברוטינה חייבת להיות בעלת הצורה (- - -, פרמטר, פרמטר)שם ₪שא50880071 או . : שם פאזיט0 505 אחריה באות פקודות רגילות ולבסוף הפקודה עאפע בין הפקודות בסוברוטינה יכולה לבוא הפקודה אתתשסצסת . פקודה זו יכולה להופיע כמה'פעמים בסוברוטינה ופרושה שנגמר ביצוע העבודה ועל המחשב לחזור לתכנית הראשית. דוגמא: סוברוטלנה בשם חס שתפקידה לפתור משואה רבועית. (72 ,71 ,03 ,02 ,01) פס פאזט50550 0 79 00 (0.מא.נס) עז 2-.- > ןל 1 =2ק אפטסדפת 64 3 01% 4% 27 > 029 = 150 10 0 (1500) ש1 (01 *2)/ 02- = 71 20 921 אתפטעצספת 0 תאצפש 30 (0015ת א1,5ק)א60 1411) 42ועתע 1000 ו (* 2)/ (5, +* 150כ + 02 -)= 71 40 (4 *5)/ (5. + 150% =.02 -) = 12 אתפסצפת פא פ סוברוטינה זו נכתבה כך שהיא תקבל את מקדמי המשואה ₪ ,2 ,2 בתור שלושת הפרמטרים הראשונים שלה (שסומנו כאן 3 02 01) ותחזיר את התוצאות דרך שני הפרמטרים האחרונים 2 ,1ע. שלבי ביצוע החישוב הם 1) בדיקת המקדם הראשון ‏ 021 . אם הוא אפס אזי המשואה איננה רבועית אלא ממעלה ראשונה והפתרון היחיד הוא ‏ 03/02 -. פתרון זה מוכנס למשתנים ‏ 72 71 וחוזרים (ע"י הפקודה אפסצפת ) לתכנית הראשית. 2) מחושבת הדיסקרימיננטה ‏ 0 איג 2-4 22%%) של המשואה. 3) אם הדיסקרימיננטה אפס, עוברת הסוברוטינה לפקודה 20, מחושב הפתרון וחוזרים לתכנית הראשית. 655 4) אם הדיסקרימיננטה שלילית, עוברת הסוברוטינה לפקודה 30, מודפסת הודעה האומרת ששרשי המשואה מרוכבים והעבודה מופסקת. 5) אם הדיסקרימיננטה חיובית, עוברת הסוברוטינה לפקודה 40, מחושבים שני הפתרונות וחוזר*ם לתכנית הראשית. הערות: 1) בתוך סוברוטינה מותר להשתמש בפקודות עאזתע פגאפת. 2) מותר להשתמש בפקודה 502 בתוך סוברוטינה. במקרה זה לא תחזור הסוברוטינה לתכנית הראשית אלא העבודה תיפסק. משתמשים בפקודה זו כאשר מגלים שגיאה בתוך הסוברוטינה ומעונינים להפסיק את העבודה. 3) הפרמטרים של הסוברוטינה (במקרה שלנו ( 12 ,21 ,03 ,02 ,01 ) אינם הפרמטרים שעליהם יתבצע החישוב. כאשר כותבים את הסוברוטינה, אין לפרמטרים אלה ערכים מספריים. רק כאשר קוראים לסוברוטינה, כלומר רק בזמן בצוע הפקודה 041,1,‏ , מקבלים פרמטרים אלה את הערכים שנותנת להם הפקודה ,6481,1. לדוגמא: הקריאה (21 ,2 ,א ,2.5 ,.1) 0 ,641.1 נותנת לפרמטר ‏ 01 את הערך ‏ .1, לפרמטר | 22) את הערך 2.5 ולפרמטר | 23) את הערך שנמצא במשתנה ‏ 3% . הפרמטרים 2 1 הופכים להיות זהים למשתנים 1 2. בקריאה הבאה לסוברוטינה | ₪) , יכולים חמשת הפרמטרים שלה לקבל ערכים אחרים. החישוב אינו מתבצע לכן על הפרמטרים של הסוברוטינה, אלא הוא מתבצע בכל פעם על פרמטרים אחרים (הפרמטרים שמוסרים לסוברוטינה בזמן הקריאה). לכן נקראים הפרמטרים של הסוברוטינה בשם פרמטרים פורמליים. 6 הפרמטרים המופיעים בפקודה ,6041,1 | הם הפרמטרים האמלתילם שעליהם מתבצע החישוב. הם נקראלם פרמטרים אקטואללילם. אפשר להעביר לסוברוטינה בתור פרמטרים, משתנים בעלי ממדים. : לדוגמא: (15 ,8)ו ,(2)200 ,(4)30ג ‏ (3 ,5610 ,(4)100. א516אפואס ב (2 ,(15)א ,3 ,10 ,2 ,4) 505 ,041.1 עאם (ש ,א ,א ,2 ,א) 505 פאנצט0פפט5 (50)ש ,(א ,)20 ,(100)< א0זפאפועזס עאם בדוגמא זו מועברים לסוברוטלנה 65 שלושה משתנים בעלי ממדים. 4 הוא וקטור בעל אורך 100. הוא מועבר לסוברוטינה בתור הפרמטר הראשון. בתוך הסוברוטינה הוא נקרא ‏ 3% ושם הוא שוב מופיע בפקודה את , כדי להודיע לסוברוטינה שהוא בעל ממד. 5 היא מטריצה מספר 3 * 10. היא מועברת לסוברוטינה יחד עם המספרים 10,3 המציינים את ממדיה. ביחד הם מהווים את הפרמטרים השני, שלישי ורביעי בפקודה ,6041,1 . / בתוך הסוברוטינה נקראת המטריצה בשם 2 והממדים נקראים ‏ א א . 2 מופיעה בפקודה אא )זכ עם הממדים | א ,א . זהו היוצא-מן-הכלל היחיד, לכלל האומר שהממדים בפקודה אקזפאמואזת הם קבועים. 07 היוצא-מן-הכלל אומר שכאשר מופיעה הפקודה | א516אמ!)אזכ בתוך סוברוטינה, יכולים הממדים להלות משתנים, אולם משתנים אלה חילבים גם הם להיות פרמטרים של הסוברוטינה. לדוגמא: תיתכן הקרלאה הבאה (2 ,(15) א ,15 ,8 ,ו ,4) 505 .0411 כאן מעבירים לסוברוטינה את המטריצה ‏ ₪ (עם הממדים שלה) במקום המטר"צה . ;א הוא וקטור בעל אורך 0. כאשר רושמים (415 בתוך הפקודה 1 פפרוש הדבר שמעבירים לסוברוטינה את המספר היחיד הנמצא במקום ה-15 בוקטור א . כאן לא מעבירים משתנה בעל ממד אלא רק מספר יחיד. לכן מספר זה אינו מופיע בתוך הסוברוטינה בפקודה 516%א8]אזק . 2 הוא וקטור בעל אורך 200. הוא מועבר לסוברוטינה בתור הפרמטר הששי. בתוך הסוברוטינה הוא נקרא | ₪ , ושם ארכו הוא רק 50. קיים כלל האומר שכאשר משתנה ביעל ממדלם מועבר לסוברוטינה, חייב גדלו בתוך הסוברוטינה להיות שוה לגדלו בתכנית הראשית או קטן מזה. לכן הוקטור ‏ 2 יכול לעבור לסוברוטינה בתור וקטור באורך 0 או בכל אורך שהוא שלא יעלה על 200. בתוך סוברוטינה יכולים להופיע משתנים בעלי ממדים, שאינם פרמטרים של הסוברוטינה. לגבי משתנים אלה קיימים כל הכללים הרגילים. לדוגמא: | (א ,צ,) כ.1) 5א1ד505800 (24) א ,(13) ע א0זפאואזס . , פעאע 08 א הוא משתנה בעל ממדים, אולם אינו מופיע כפרמטר של הסוברוטינה. זהו משתנה פנימי של הסוברוטינה שאינו מועבר לה מהתכנית הראשית. פונקציות פונקציה הלא תכנית משנה שהקריאה אליה איננה מתבצעת ע"? פקודה מיוחדת אלא ע"? הזכרת שמה במשפט יחוס אריתמטל. התוצאה שמחשבת הפונקציה חוזרת אל התכנלת הראשלת כשהלא קשורה לשמה של הפונקציה. תוצאת החישוב של הפונקציה חייבת להיות מספר יחלד. תוצאת החישוב של סוברוטינה יכלה להיות כמה מספרלים. דוגמא: תהי ‏ 267 פונקציה בעלת שני פרמטרים. הפקודה (צ עסאת = 2 הלא משפט יחוס אריתמטי. המחשב מבצע משפט זה בשלבים הבאים: 1[) הוא קורא לפונקציה ‏ ₪אע . נותן לה את הפרמטרים ץ* 8, והפונקציה מחשבת מה שמחשבת. 2) בחזרה מהפונקציה נמצא המספר, שהוא תוצאת החישוב של הפונקציה, בתוך משתנה ששמו כשם הפונקציה | ע)אע 3) המחשב מחשב את אגף ימין. במקרה זה ערכו של אגף ימין הוא הערך שחישבה הפונקציה (או הערך של המשתנה 1שאק ). ערך זה מוכנס למשתנה 2 המופיע באגף שמאל. דוגמא: 8 - (.15 + א ,30) צסאע 5 2 . שלבי הביצוע של המחשב יהיו: 61 חישוב הפרמטרים של הפונקציה. ערכו של הפרמטר הראשון הוא 30, ושל השני ,15 + %. 69 2) קריאה לפונקציה. 3 בגמר החישוב של הפונקציה נמצאת תוצאת החישוב בתוך המשתנה עצסאע. 64 חישוב אגף ימין 8 - עשאע והכנסת הערך שלו למשתנה ‏ 2 . הערות: [) תוצאת החישוב של הפונקציה מוחזרת בעזרת שמה של הפונקציה ולא בעזרת פרמטר. לכן כל הפרמטרים של פונקציה הם פרמטרים המוסרים נתונים לפונקציה ולכן כולם לכולים להיות בטויים אריתמטיים. בטויים אלה מחושבים לפני הקריאה לפונקציה. 2) הקריאה לפונקציה מהווה חלק מבטו"י אריתמטי (ראה הגדרת בטוי אריתמטי בפרק 2). לאחר הקריאה לפונקציה מתיחס המחשב אל שמה של הפונקציה כאל משתנה רגיל המשתתף בבטוי האריתמטי. 3 פרמטר של פונקציה הוא בטוי אריתמטי, ובטוי אריתמטי יכול להכיל קריאות לפונקציות. לכן יכול פרמטר של פונקציה להכיל בעצמו פניות לפונקציות אחרות. דוגמא:| תהיינה | ₪2 ₪1 פונקציותה. המשפט (8 (2)130ע 0 1ע = צ הוא משפט יחוס הקורא לפונקציה 1 כאשר הפרמטר השני שלה הוא קריאה לפונקציה - 82 . צורת כתיבת הפונקציה המשפט הראשון הוא (- - -, פרמטר, פרמטר) שם אקזענסאטע אח"כ באות פקודות [%[209174 רגילות, שביניהן לפחות 70 פקודה אחת בעלת הצורה - - - = שם. בסוף, הפקודה עאסש . החזרה לתכנית הראשית היא ע"י | אתשצלעת. דוגמא: פונקציה ואס המקבלת בתור פרמטר משתנה בעל ממד ומסכמת את אבר? המשתנה. (וא ,4) אטש5 אק1ע2שאטת (0א) 4 אאנפא עאזס 0 = 50% א >101 0כ () 4 + אספ5 = אס5 10 אתפשסצפת עאם 4 מופיע בפקודה אפאשאזת עם ממד משתנה. שמה של הפונקציה משמש גם כמשתנה שלתוכו מוכנסת התוצאה. מסיבה זו יש לבחור לפונקציה שם שיתאים לסוג התוצאה המתקבלת. אם התוצאה היא מספר שלם, חייב שמה של הפונקציה להתחיל באחת מהאותיות | א)א,1אז1: קריאה לפונקציה | ]58% יכולה למשל להיות כבדוגמא הבאה: (89) 2 ,(16) < א/זפאופעאזת 1 +(89 ,2) טפ + (16 ,א) ואס5 = ץצ לתוך המשתנה ‏ % נכנס סכום 16 אברי הוקטור ‏ 3 , 89 אברי הוקטור 2 ועוד המספר 1. 71 כל תכניות המשנה של תכנית ראשית חייבות להופיע אחרי כרטיס עאש של התכנית הראשית, ואין חשיבות לסדר הופעתן. הקשר בין תכנית ראשית לתכנית משנה נעשה באמצעות הפרמטרים. משתנה המופיע בתכנית ראשית ואינו משמש פרמטר בקריאה לתכנית משנה, אינו מוכר לתכנית המשנה והיא איננה יכולה להשתמש בו או לשנות אותו. לדוגמא: : (צ,א) 25 .61.1 וי עאת (8 ,4) 48 פא1זי5029001 153 המשתנה 1 מופיע בתכנית הראשית וגם בסוברוטינה. הוא אינו מופיע בתור פרמטר של הסוברוטינה ולכן הוא משתנה פנימי שלה. במלים אחרות, המשתנה ‏ 1 בתכנית הראשית והמשתנה ‏ ]1 בסוברוטינה הם משתנים שונים ושנוי של אחד מהם אינו משפיע על השנל. אא62 המצב המתואר בסעיף הקודם יכול להשתנות אם המשתנה ‏ 1 יוגדר ב-0//א6 . 2 הצורה הכללית של הפקודה היא | פקודה זו מאפשרת לתכנית משנה לקבל משתנים מהתכנית הראשית שלא באמצעות פרמטרים. דוגמא: 14,6 אא , , (2 ,צ ,א) אפס ,641.1 ₪ פעאם (2 ,צ,א) אפס פאנצט 525 )60 פא המשתנה 1 בתכנית הראשית יהיה זהה למשתנה 1 בסוברוטינה מכיון ששניהם נמצאים במקום הראשון בפקודה א . המשתנה ‏ 8 בתכנית הראשית יהיה זהה למשתנה | 3 בסוברוטינה מכיון ששניהם נמצאים במקום השני בפקודה אש:א06% . המשתנה ‏ 6 בתכנית הראשית לא יהיה מוכר לסוברוטינה כי ה- א00%///8 שלה מכיל רק שני משתנים. קיימים הכללים הבאים. 1) ארכו של ה- אאא6 בכל תכנית משנה יכול להיות . קטן או שוה לארכו בתכנית הראשית. 2) המשתנים המותאמים באמצעות ה- א60%/010% יכולים להיות שונים בשמותיהם אולם חייבים להיות שוים באופים , 3) משתנה יכול לקבל ממד בפקודה אא אולם אז אסור לו להופיע גם בפקודה | א10פאפואזכ . 3 דוגמא: (200) 2 ,4 אק למשתנה ‏ 2( אסור להופיע בפקודה אקץזפאמ/עזת . / פונקציות בנויות התכונה החשובה של פונקציה היא שתוצאת החישוב מוחזרת באמצעות שמה של הפונקציה ולא באמצעות פרמטר. תכונה זו אפשר לנצל בצורה הבאה. יכול תכניתן לכתוב פונקציה לחישוב סינוס. הפונקציה תיקרא אז5 ויהיה לה פרמטר אחד, המספר שאת הסינוס שלו יש לחשב. אפשר להעתיק את כרטיסי הפונקציה (החל בכרטיס אקזעסאטסע וכלה בכרטיס תאש ) ולתת את ההעתק לאדם אחר. אותו אדם יכול לקרוא לפונקציה ולהשתמש בה למרות שאולי אינו יודע איך היא כתובה ובאיזה שיטה היא מחשבת. מאחר וחישוב של סינוס הוא חישוב שימושי, הרי הגיוני יותר יהיה להכניס את הפונקציה לזכרון של המחשב כך שכל תכניתן יוכל להשתמש בה ע"י עצם הזכרת שמה במשפט יחוס אריתמטי. דבר כזה ניתן לבצוע והוא בוצע לגבי כמה פונקציות שמושיות. בפונקציות אלה אפשר להשתמש מבלי שיהיה צורך לכתוב אותן מחדש. הן מצויות תמיד בתוך המחשב או, במלים אחרות, הן בנויות במחשב ואפשר תמיד להשתמש בהן. פונקציות כאלה נקראות פונקציות בנויות. כדי להשתמש בהן צריך לדעת רק מה שמן ומה הפרמטר (או פרמטרים) שלהן. הטבלה להלן מתארת את הפונקציות הבנויות החשובות ביותר. 74 תאור. 0 אקספוננט 6% (<) 1% לוג טבעי % ם1 (א) 41.00 לוג על בסיס 10 א 18 (8) 10 41.00 סינוס % ם51 (%) אז5 קוסינוס 605% (%) 605 ערך מוחלט | | א| (%) 485 ערך מוחלט של משתנה שלם (ג) 1425 הפיכת משתנה שלם לממשי () 1081ע שרש 3 (6₪ 501 הפונקציה ‏ 148 מקבלת בתור פרמטר, משתנה שלם, ונותנת בתור תוצאה, מספר שלם. הפונקציה 21.07 מקבלת בתור פרמטר, משתנה שלם, ונותנת בתור תוצאה, מספר ממשי. פרט לכך מקבלות כל הפונקציות שלמעלה, פרמטר ממשי ונותנות תוצאה ממשית. קיימות עוד פונקציות בנויות שהן פחות שימושיות והן מפורטות בנספח מס" 1. לגבי תכניות משנה קיים הכלל החשוב הבא: כל תכנית משנה יכולה לקרוא לתכניות משנה אחרות, אולם אסור לתכנית משנה לקרוא לעצמה, וכן אסורה שרשרת של קריאות (כמו ‏ 8 קוראת ל- 2 ,‏ 2 קוראת ל- 60 ,‏ 6 קוראת ל- 8 ). ו 0 שמ=%תהתההתתהו פרק מבנה של עבודה | ( 165) בפרק זה יתואר המבנה של עבודות ( 1008 ) המוגשות למחשב 6400 026 . עבודות המוגשות למחשבים אחרים יכולות להיות שונות לחלוטין במבניהן ופרק זה אינו מתיחס אליהן. קיים הבדל חשוב בין כתיבת תכנית למחשב ובין הגשת עבודה למחשב. עבודה ( 705 ) למחשב, כוללת בתוכה תכנית, נתונים לתכנית וכן הוראות למחשב לגבי בצוע התכנית. לכן המושג של עבודה ( 105 ) למחשב הזא כללי יותר ממושג התכנית. במחשב 6400 026 מורכבת כל עבודה מקטעים ) 8 ) המופרדים זה מזה ע"י כרטיס מיוחד. כרטיס זהנקרא | כתקס6םת - ש0 - פעאש והוא בעל ניקוב מיוחד (ניקוב 7-8-9 בעמודה 1). סוף העבודה מצוין גם הוא ע"י כרטיס מיוחד הנקרא א710 4/את0פא1 - ע) - פאם ההוא בעל ניקוב 6-7-8-9 בעמודה 1. הקטע ( | 866026 ) הראשון בעבודה מכיל כרטיסי הוראות ( 858 01ע006 ). כרטיסים אלה מכילים אינפורמציה האומרת למחשב מה יבוא בקטעים הבאים של העבודה. הקטעים הבאים עלולים להכיל תכנית (כתובה ‏ %[08784ע או בשפה אחרת), או מספר תכניות, והם עלולים להכיל נתונים לאותן תכניות. להלן יתוארו כרטיסי ההוראות של עבודה המכילה תכנית אד ת. 76 כרטיס ראשון: עמודות 1-10 שם התכניתן . עמודות 11-20 שם העבודה . שמות אלה יודפסו אח"כ *חד עם תוצאות החישוב ויאפשרו לתכניתן לזהות את עבודתו בין כל העבודות הנפלטות מהמחשב. כרטיס שני: עמודות 1-6 מכילות (5) אשסת. כרטיס זה אומר למחשב שהקטע השני של העבודה מכיל תכנית אגתדתסת. כרטיס שלישי: עמודות 1-4 מכילות .-. כרטיס זה אומר למחשב שעליו להפעיל את התכנית אם אין בה שגיאות לוגיות או תחביריות. כדי להבין את משמעותם של שני כרטיסים אלה, יש להבין את הדרך בה מבצע המחשב תכנית אע . באופן כללי כולל הביצוע שני שלבים. בשלב הראשון עובר המחשב על כרטיסי התכנית ומנסה לגלות בהם שגיאות לוגיות או תחביריות. אם לא נתגלתה כל שגיאה, חוזר המחשב לתחילת התכנית ומתחיל לבצע אותה, פקודה אחר פקודה. אם נתגלו שגיאות, לא יתחיל המחשב לבצע את התכנית. המעבר הראשון מתבצע ע"י קריאת כרטיס (5) אסת . אם לא נתגלו שגיאות, מוכן המחשב לבצע את התכנית במעבר השני, אולם הוא יעשה זאת רק אם יהיה כרטיס ,0 שיאמר לו שהתכניתן מעונין בהפעלת התכנית. במידה ויהיה רק כרטיס (5) אשת , יעבור המחשב על התכנית פעם אחת ולנסה לגלות בה שגיאות. הוא לא יבצע אותה. 7 קיימים שני סוגי שגיאות, לוגיות ותחביריות. שגיאות לוגיות הן שגיאות העלולות לגרום לכך שתכנית לא תעבוד למרות שכל הפקודות שלה הן נכונות מבחינה תחבירית. לדוגמא: הפקודה א נכונה מבחינה תחבירית, אולם פקודה זו עלולה לגרום לשגלאה לוגית אם היא נמצאת בהקשר לא נכון. הקטע הבא מכיל פקודה זו ויש בו שגיאה לוגית. השגיאה היא שהמחשב לא יוכל להגיע לפקודה ‏ .3 = %‏ כאשר הוא יבצע את התכנית. הוא יבצע את הפקודות אחת אחרי השניה, וכשיגיע לפקודה שלפני ‏ .3 = %‏ , יקפוץ משם לפקודה מספר 0 וכך לא יגיע אף פעם לפקודה ,3 = 3 . זו שגיאה לוגית שהמחשב יכול לגלותה למרות שאינו יודע מה עושה התכנית ומה תפקידו של המשתנה 2% . הקטע הבא 0 16 ₪008 4 4 אינו מכיל שגיאה לוגית, מכיון שהמחשב יכול להגיע לפקודה .4 = 3% אם קיימת באיזשהו מקום הפקודה 4 20 ₪0. שגיאות תחביריות הן עבירות על כללי הדקדוק של השפה. לדוגמא: הפקודה א 1 84 מכילה שגיאה תחבירית מכיון שחסר בה הפסיק בין מספר הפורמט והליסט. 08 לאחר כרטיסי הקטע הראשון מופיע כרטיס פת)6פּת - ת) - עאש , אחריו באה התכנית המתחילה בכרטיס ]קת ונגמרת בכרטיס ‏ עתאש , אחריה באות תכניות המשנה (אם יש) המתחילות כל אחת בכרטיס מאזנטתב50 או אקזעסאטע וגמרות בכרטיס עאע . לאחר כרטיס | עתא₪ של תכנית המשנה האחרונה יש שתי אפשרויות. 1) אם יש כרטיסי נתונים, יבוא כרטיס ₪009 - ע) - סאפ , אחריו כרטיסי הנתונים ואחריו כרטיס אקזצ אתא - 2 - פאם. 2) אם אין כרטיסי נתונים, יבוא כרטיס אוד אתא - ת) - פאפ. כללים אלה מסוכמים בסכמות הבאות. עבודה הכוללת תכנית עם נתונים: - - שם (5) אטת 14 66 - - !א50084כ פא - - ₪א50580011 יְ : כעאפ 19 - - א210סאשתע עאם 6-8 כרטיסי נתונים ב0ס1)המנץ 0ס+ת1-+ס- 68 עבודה הכוללת תכנית בלי נתונים: - -שם (6) אטסת 14 - -60ת6 - - 1ג54084כ עאםפ - - אקנעסאטע פאס אקזעסאטע כעאע ב018)10+ת1-+60-0 יש לשים לב לכך שכרטיסי ההוראות מתחילים מעמודה 1. כרטיסי ההוראות אינם כרטיסי ‏ %[02788ע , הם אינם מהווים חלק מהתכנית אלא משמשים הוראות למחשב לטיפול בתכנית. 020 בדומה גם כרטיסי הנתונים אינם כרטיסי 0278ע . הם אינם חלק מהתכנית אלא הם נתונים שהתכנית קוראת. לכן גם כרטיסים אלה לא חייבים להתחיל מעמודה מסוימת אלא המבנה שלהם נקבע ע"י הפורמט שלפיו הם נקראים. אם כרטיס נתונים נקרא ע"י הפורמט (315 , % 14) אזל הכרטיס צריך להתחיל מעמודה 15 ולהגמר בעמודה 29. ניקובים הנמצאים על הכרטיס לפני עמודה 15 או אחרי 29, אינם מהוים שגיאה אולם המחשב לא יקרא אותם. 1 פרק | 10 גדלים אלפמריים כל הקבועים והמשתנים שתוארו עד עכשיו היו מספריים. על גדלים אלה אפשר היה לבצע פעולות אריתמטיות או להשוות ביניהם ממש כשם שמשוים מספרים. המקרה היחיד בו הופיעו גדלים לא מספריים היה פורמט 11 . פורמט זה משמש להדפסת כותרות ולכן אפשר להדפיס באמצעותו כל קרקטר שהוא ולא דוקא מספרים. כדי לאפשר שימוש נוח בגדלים לא מספריים, קיימים ב- %מ087%8ע קבועים ומשתנים אלפמריים. גדלים אלה אינם מכילים מספרים ולכן אין לבצע עליהם פעולות אריתמטיות. הם מכילים קרקטרים כלשהם (אותיות, ספרות או סימנים מיוחדים) ואפשר רק לקרוא אותם מכרטיסי נתונים, להדפיס אותם או להשוות ביניהם כפי שמשוים מלים. (אין משמעות לשאלה האם גודל אלפמרי אחד גדול או קטן מהשני, אלא רק לשאלה האם גודל אלפמרי אחד שוה לשני או שונה ממנו). הגדלים האלפמריים מתחלקים לקבועים ולמשתנים. הגדרה: קבוע אלפמרי הוא בעל הצורה | ( מ32...8 [3 11 ם) כאשר ‏ ם מספר בין אחד לעשר (במחשבים אחרים יכול ערכו המקסימלי של מ להיות שונה מעשר), 3 ...31 קרקטרים כלשהם. דוגמאות: 1) (‏ 381246 ) זהו קבוע אלפמרי המכיל את שלושת הקרקטרים 42260. 2 2) ( 043 ,4) זהו קבוע אלפמרי המכיל את ארבעת הקרקטרים | 3 % ס, הקרקטר ‏ 5 נספר כמו כל קרקטר אחר וזהו יוצא מן הכלל לחקי הכתיבה של השפה (האומרים שבלנק יכול להופיע בכל מקום ואינו נחשב). 3) (2363) זהו קבוע אלפמרי המכיל את שני הקרקטרים 3 6. הוא מכיל רק ספרות ובכל זאת איננו קבוע מספרי. ערכו של הקבוע איננו המספר 63 אלא שני הקרקטרים 3 6. הגדרה: | משתנה אלפמרי הוא משתנה המכיל קרקטרים ולא גודל מספרי. שמו של משתנה אלפמרי כפוף לכללים הרגילים אולם הוא אינו חייב להתחיל באות מסוימת. גם המשתנה 1 וגם המשתנה צ יכולים להיות משתנים אלפמריים (אם הם מכילים קרקטרים). המחשב אינו יודע אם המשתנה ‏ 1 הוא משתנה שלם או אלפמרלי. התכניתן חייב לדעת, לגבי כל משתנה, אם הוא מכיל מספר או קרקטרים. אם משתנה מסוים הוא אלפמרי, אין לבצע אתו פעולות חשבון. במידה ובכל זאת מכניסים משתנה אלפמרי בתוך בטוי אריתמטי, המחשב לא יצין שום שגיאה אולם התוצאה לא תהיה נכונה. משפט יחוס אלפמרי זהו משפט מהצורה (ם82...9 [8 1 ם) = 8. כאשר אגף שמאל הוא שם של משתנה (ממשי או שלם) ואגף ימין הוא קבוע אלפמרי. דוגמאות 1) (,<₪1 6 = 3 משפט זה מכניס את שלושת הקרקטרים , 8% !1 למשתנה 1 והחל מכאן יהיה ‏ 1 משתנה אלפמרי. במהלך התכנית אפשר להפוך את 1 שוב למשתנה מספרי, וזאת למשל ע"י משפט מהצורה 7 = ךז 2) (מע1)= < משפט זה מכניס את הקרקטר היחיד ₪ (בלנק) למשתנה %. 3) (ג231)=ננא משפט זה מכניס את שני הקרקטרים !11 למשתנה | 011 . משתנה זה הופך להיות אלפמרי למרות שהוא מכיל רק קרקטרים ספרתיים. לאחר בצוע הפקודה שלמעלה לא מכיל המשתנה 1 את המספר 11 או כל מספר אחר ואין לבצע עליו פעולות. חשבון. במחשב 6400 026 יכול כל משתנה אלפמרי להכיל עד עשרה קרקטרים, במחשבים אחרים עלול המספר להיות שונה. אם מכניסים למשתנה אלפמרי פחות מעשרה קרקטרים, ישלים המחשב את מספר הקרקטרים לעשרה, ע"? הוספת קרקטרים ריקים (בלנק). דוגמא: ‏ 1) (%ע1)=א המשתנה ‏ 1% יכיל את הקרקטר >= ועוד תשעה בלנקים , 2) (0 ₪ 1=)1 המשתנה 1 יכיל את הקרקטר ₪ (בלנק) ועוד תשעה בלנקים (כלומר בסה"כ עשרה בלנקים). הפקודה | 878כע פקודה זו משמשת להכנסת קבועים (מספריים או אלפמריים) לתוך משתנים. הפקודה מתבצעת לפני תחילת בצוע התכנית. 44 הצורה הכללית / 61186 /‏ 1156 4 47. כאשר % היא רשימה של משתנים, 1% -- רשימה של קבועים. דוגמאות: 1)/ 30.5 -, (2100), .1/ 3.0 ,4 ג ידע פקודה זו תכניס את הקבוע .1 למשתנה 3 , את הקרקטרים 6 למשתנה ‏ 2 (שיהפוך להיות משתנה אלפמרי) ואת הקבוע 5 - למשתנה - 0 . 2 (4) 4 א0זפאמאזת /. -.1.,3.5/ ג ג גכ 4 מוגדר כמשתנה בעל אורך 4. הפקודה 4714 מכניסה ערכים מספריים לארבעת המקומות במשתנה - 3 3) (10) 4 אאזפאעאזת (4 ,1 = 1 ,(4)1) 4 4ס כאן ‏ 4 הוא בעל עשרה מקומות והפקודה 4784 מכניסה ערכים רק לארבעת המקומות הראשונים. כאשר מופיע בפקודה 2478 משתנה בעל ממד, חייב המשתנה להופיע בפקודה אעתפאם/אזת לפני שהוא מופיע בפקודה ‏ 24718 . פרט להגבלה זו יכולה הפקודה | 4784כע להופיע בכל מקום בתכנית אולם היא מבוצעת רק פעם אחת, בתחילת בצוע התכנית. ּ 5 דוגמא: ב כאשר המחשב יגיע 59 20 ... אכ לפקודה מספר 20 הוא ------90 ידלג על הפקודה ‏ 2 27כע (שבוצעה בתחילת בצוע התכנית) וימשיך בפקודה מספר 50. משתנה שקבל ערך בפקודה ‏ 470 יכול אח"כ לקבל ערך אחר (ע"* משפט יחוס למשל). אסור להכניס משתנה גם לפקודה א)אוא)6 וגם לפקודה .'4 פורמט 4 על מנת להדפיס משתנה אלפמרי, או לקרוא קרקטרים מכרטיס לתוך משתנה אלפמרי, קיים בפקודת הפורמט שדה מיוחד הנקרא . 3 הדש‎ צורתו הכללית ש 4 , כאשר ש - מספר בין אחד לעשר (במחשבים אחרים שונה בדרך כלל ערכו המקסימלי של ש ). המשמעות: לגבי קריאה - המחשב יקרא | שש קרקטרים מכרטיס הנתונים ויכניס אותם לתוך המשתנה המופיע בפקודה עהמפת . משתנה זה יהפוך להיות אלפמרי. אם ‏ ש ‏ קטן מעשר ישלים המחשב קרקטרים ריקים (בלנקים) בתוך המשתנה. לגבי הדפסה - | שץץַָ קרקטרים יודפסו בשדה המתאים על הניר, החל מצד שמאל של השדה. 6 דוגמאות: 61 3 ,12 כאמת (44) %41ת0ע 12 אם כרטיס הנתונים הוא 3% 2 1 אזי יכנסו למשתנה 3 ארבעת הקרקטרים 8% 1 ואחריהם ששה בלנקים. 2 3 ,2 צאזתק (2 4 ,א 1) דצגאתקע 2 ההדפסה תהיה - 12 המשתנה 3 מכיל ארבעה קרקטרים אולם מותר להדפיס רק חלק מהם. בדוגמא 2 הודפסו שני השמאליים. 3 3 3 צאזתק (5 4 ,א 1) צגאת0ע 3 ההדפסה תהיה טס א 2 . משתנים וקבועים אלפמריים יכולים להופיע בתוך בטויים לוגיים, אולם רק עם פעולות היחוס ישא. .0 . דוגמא: ‏ 1) 5 = א ((0 8 4 1 3) .8.50 0 פז 2) (4 ם 1)= 4 23 סגמפ (1 4) 41ואת0ע 2 7 (2 .פא .4) תפז פס 6 גדלים אלפמריים משמשים לקריאת כותרות מכרטיסים, להדפסת כותרות, לציור גרפים ולהשואות לא מספריות. הדוגמאות שלהלן מראות כיצד ניתן להשתמש בגדלים אלפמריים למטרות אלה. 7 1) כרטיסי נתונים מנוקבים בפורמט הבא: בעמודות 1-4 אחת מהמלים ,א , 507 בעמודות 5-14 מספר ממשי בעל שלוש ספרות אחרי הפסיק. יש לקרוא את כרטיסי הנתונים ולחשב שורש או סינוס או לוגריתמוס של המספר המופיע בכל כרטיס, לפי המלה המתאימה המנוקבת בו: התכנית היא: , כגאפת 10 (44,210.3) 202%47 100 5102 ((פא335) .0 .ש ) עז (( 5037 = א ((435091) .₪0 . ש) ב ( א51 = א ((א3051) .ס ₪ .ש) עז % שו ,200 עאזתכ (4 ,28 ,211.3 ,44 ,1%) 08%47ע 200 0 0 עאם לאחר כרטיסי הנתונים מוסיפים כרטיס ובו מנוקבת המלה כאאפ בעמודות 1-3. התכנית קוראת כל כרטיס לתוך המשתנים ‏ ]ו (אלפמרי) זנז(ממשי). אם לתוך ‏ ₪ נקראה המלה עאש ‏ , התכנית עוצרת. אחרת בודקת התכנית אם נמצאת ב- 64 אחת מהמלים א51 5087 ומחשבת את ערכו של 3% בהתאם. 08 הערכים של אש ₪ מודפסים והפקודה האחרונה 0 22 ₪7 פרושה לחזור ולקרוא את כרטיס הנתונים הבא. 2) הדפסת גרף. לעתים נוח להציג תוצאות של חשובים מסוימים לא בצורה הרגילה של טבלה אלא בצורה גרפית. אפשר להדפיס גרף בעזרת המחשב ע"י הדפסת קרקטרים על הניר, כך שהרושם הכללי יהיה של קו. בדוגמא נראה קו גלי שהתקבל ע"י הדפסת + יש הקרקטר ‏ + מספר פעמים "ה הקו אינו רציף כמובן אולם כאשר מסתכלים עליו ממרחק מספיק, מקבלים התרשמות של קו ולא של אוסף קרקטרים. כאשר רוצים לציר שני גרפים על אותו דף, אפשר להבחין ביניהם על ידי שימוש בקרקטרים שונים. אפשר גם לציר צירים ע"? שמוש בקרקטר - בשביל ציר - % ובקרקטר ‏ 1 בשביל ציר ץצ התכנית הבאה מצירת גרף של סינוס שלם לאורך הדף. (ג10) אז.1 א10פאפעאזס 1 = 1 10 8 (טם18) = (ז) אז.1 10 9 = 1 100 0 1 = %3 0 >= א 5 + 50 +(א) א51 = 1 9 (13%) = (1) אזו1 אז, 0 צאזתפס (10141 ,3% ,2 .6ע) תע 1000 (ט1) = (1) אז,1 100 ו כעאםע .0 הסבר: הגרף צריך להראות כבציור. ההדפסה של הגרף נעשית שורה שורה כאשר בכל שורה מדפיסים את הערך של הזוית (בין אפס לשני רדיאן) ומדפיסים נקודה אחת של הגרף. 5% פקודת ההדפסה היא אז, 000 צאזתכק % הוא ערכה של הזוית. שלושת הפקודות 9 =1 100 6כע : 1 א 0 / א >= א גורמות לכך שהמשתנה | א יקְבל ערכים מאפס עד 6.28 בקפיצות של מאית. אז/] הוא וקטור בעל 101 מקומות המודפס בפורמט (ג41 101). הרעיון בתכנית הוא להכניס לאחד המקומות בוקטור אז1 את הקבוע האלפמרי (* 111), ולשאר המקומות להכניס בלנקים. בצורה זו נותנת הדפסה של | א1,1 , שורה שבה מופיע כוכב אחד. 00 כל מה שנותר לקבוע הוא מקומו של הכוכב בוקטור א לכל שורה ושורה בהדפסה. מקום זה נקבע ע"י הפקודה 5 + 50 %(א) א51 = 1 הסבר: הגודל (%) א51 | מקבל ערכים בין .1- ל.1+ הגודל 50 * ( %) א51 מקבל ערכים בין .50- ל.50+ . הגודל .51 + .50 * ( א) א51 מקבל ערכים בין .1+ ל .101+ כאשר מעבירים גודל זה למשתנה ‏ 1 יקבל ‏ 1 ערך בין 1 ל 101. לפנינו טרנספורמציה לינארית של % םגפ , טרנספורמציה המעבירה כל ערך של הסינוס לערך בין 1 ל | 1. הפקודה (* ₪ 1)= ( 1) אז,1 מכניסה כוכב לוקטור אן,1 במקום המתאים לסינוס שחושב (מתאים לאחר הטרנספורמציה ). בסה"כ מקבלים הדפסה של 629 שורות שבכל אחת מהן מספר (שהוא ערכה של הזוית המתאימה) וכוכב הנמצא במקום המתאים לסינוס שחושב. תרגילים: 1 ציור גרף של סינוס לרוחב הניר כלומר: |79 כאן יש בכל שורה של ההדפסה בדרך כלל שני כוכבים (אולם יש מקרים של כוכב אחד ומקרה של שלושה כוכבים). 2) ציור מעגל. לתרגיל זה יש לקחת בחשבון שהמחשב מדפיס שש שורות לאינטש 1 ובתוך כל שורה נכנסים עשרה קרקטרים לאינטש. לכן היחס בין מספר השורות (1) שהתכנית תדפיס לבין מספר הקרקטרים (,1 ) בכל שורה צריך להיות - = + . כל יחס אחר יתן 3 אליפסה במקום מעגל. 92 פרק ו1 סרטים מגנטיים מאחר ולמחשב זכרון מוגבל, הרי עלול להיוצר מצב שבו גודל הזכרון לא יספיק כדי לאחסן את כל הנתונים הדרושים, במקרה כזה אפשר להשתמש בסרטים מגנטיים כדי לאחסן עליהם נתונים. במחשב מורכבים סרטים מגנטיים כמו ברשמקול וההבדל העקרונל הלחידי הוא שברשמקול נעשית הכתיבה על הסרט באופן רציף ובמחשב נרשמים הנתונים קרקטר אחרי קרקטר. הקרקטרים ארוזים בבלוקים שארכם ניתן לשנוי ובין בלוק לבלוק קים רוח ריק על הסרט. בשיטת עבודה אחת רושמים את הנתונים על הסרט בחלקה הראשון של העבודה, אח"כ מגלגלים את הסרט לתחילתו והחלק השני של העבודה יכול לקרוא מהסרט את הנתונים. שיטה זו משתמשת בסרט בתור טיוטא ( [5028+6). בשיטת עבודה שניה רושמים את הנתונים על הסרט בעבודה אחת ואח"כ שומרים על הסרט ואפשר להשתמש בו לעבודות אחרות. עבודות אלה יכולות לקרוא את הנתונים שעל הסרט וכן יכולות להוסיף עליו עוד נתונים. בשיטה זו משתמשים בסרט בתור אוסף אישי של נתונים והסרט חיב להיות שמור לאדם אחד. אפשר לכתוב על סרט (ולקרוא ממנו) אינפורמציה משני סוגים. סוג ראשון הוא תוכן של משתנים בזכרון. סוג שני הוא כותרות. כדי להשתמש בסרט יש קודם כל לקבוע על איזו יחידה יהיה הסרט מורכב. לכל מחשב יש מספר יחידות (או כוננים ) עליהן אפשר להרכיב סרטים והן ממוספרות במספרים סדוריים המשתנים ממחשב למחשב. ארבע הפקודות הראשונות שנראה הן: 33 % (מ ,א) ספת 6 (ם ,א) פנידיד ט %*% 52409 = פצאנזשפאּ כאשר 7% מספר היחידה (הכונן) עליה מורכב הסרט, ם - מספר של פקודת פורמט, % - רשימה של שמות משתנים מופרדים ע"ל פסיקים. קריאה וכתיבה על סרט דומות לקריאה והדפסה רגילות וקימים שני הבדלים חשובים. 1) לא קים המושג של שורות ולכן בכתיבה על סרט מהוה הקרקטר הראשון חלק מהאינפורמציה הנכתבת ואין לו משמעות מיוחדת. 2) קים המושג של רקורד על הסרט. בקריאה מכרטיסים היה הרקורד - כרטיס. בהדפסה היה הרקורד - שורה. בכתיבה על סרט סימן סוף הרקורד הוא מיגנוט מיוחד והוא נרשם כאשר המחשב מגיע לסוף של פורמט או לקו נטול בפורמט. אורך רקורד מוגבל בדרך כלל ובמחשב 6400 6026 | אינו יכול לעלות על 136 קרקטרים. דוגמאות לקריאה וכתיבה: 61 (1,10 = 1 ,(1)א) (1000 ,1) 5 צנתש (15.7 15.7/5 ע5) 20914 1000 על כונן מס" 1 נכתבים שני רקורדים, כל אחד בן 75 קרקטרים. 2) ( = ,()צ) 2 (3,500) ספת (2, 13/2095) 41א0ע 500 94 מכונן מס" 3 נקרא רקורד המכיל את המספר :1 ואח"כ נקרא רקורד המכיל .1 מספרים, כל אחד בן 5 קרקטרים. בזמן כתיבת הרקורדים יש לדאוג לכך שגודלו של .1 לא יעלה על 20 (ראה הסבר כללי בעמ" 56). % עתאנשפת פרושו לגלגל את הסרט שעל כונן ‏ >< לתחילתו. %* 4052402 פרושו להזיז את הסרט שעל כונן | 5 רקורד אחד בחזרהה, כרטיס ]4% 28008 : במחשב 6400 6020 יש לצין מראש את מספרי הכוננים שישתמשו בהם במשך התכנית. דבר זה נעשה ע"י הכנסת כרטיס ]א4ת00תת שהוא הכרטיס הראשון בתכנית. צורתו הכללית (פרמטרים) שם]4% 20003 הפרמטרים הם מהצורה 1 כאשר %מספר כונן בו משתמשת התכנית. השם הוא שם התכנית והוא כפוף לכללים של שמות משתנים. דוגמא: תכנית בשם 5+7עך המשתמשת בכוננים 1,3 מתחילה בכרטיס (14253 ,14281) 51פע אב פס0 תכ . אם התכנית קוראת כרטיסים יש להוסיף את הפרמטר שטעצאת , אם היא מנקבת כרטיסים יש להוסיף את הפרמטר | 08%62כ ואם היא מדפיסה תוצאות יש להוסיף גם את הפרמטר 035ע0₪71 (פרמטר זה רצול להכניס לכל כרטיס 4% 002מכ ). אם אין כרטיס 4% 002 פק תבין זאת התכנית כאילו קים הכרטיס ( צססצדט0 ,טקא ) 200248 , (כלומר תכנית שאין לה שם ואינה משתמשת בסרטים). 5 מושג ה- | 2116 : 6 על סרט מגנטי הוא אוסף של אינפורמציה העומד בפני עצמו. גדלו של ה- 6 אינו מוגבל, הוא יכול להיות קטן מאוד ויכול גם להשתרע על כמה סרטים. אפשר לרשום כמה | 21165 על סרט כך שכל אחד מהם יכיל אינפורמציה מסוג שונה. התכניתן קובע בהתאם לנסיונו איזה אינפורמציה כדאי להכניס ל- 2116 וכמה 6 לרשום על הסרט. בסוף כל | 2116 נמצא סימן מיוחד הנקרא | 4116 - +01 - 6₪מ6 (או %שהּמז 16 ). במחשב 6400 020 | אפשר להבחין בסימן זה בעזרת הפקודה 2 ,ןם (א ,502)ש1. המשמעות - אם פקודת הקריאה האחרונה מכונן * קראה את הסלמן של סוף | 2116 אז הפקודה -- ע₪0)ע1 תגרום לקפיצה אל הפקודה שמספרה | [ם. אחרת תתבצע קפיצה לפקודה שמספרה כם. דוגמא: 6 (300 ,1) עת254 10 (323.0) 47את0ע 300 0 0 (1 ,ע0) עז זהו קטע של תכנית הקוראת נתונים מכונן 1. בקריאה רגילה של נתונים עוברת התכנית מהפקודה 0% -- 0%ש)1 לפקודה 20, 0 00 שם מעובדים הנתונים ואח"כ מתבצעת 7 100 קפיצה לפקודה 10 לקריאת הרקורד הבא. פאע כאשר נקרא 816 - 0% - 68 , עוברת התכנית מהפקודה ‏ -- 08)אע לפקודה | 100 ועוצרת שם. % פ,1זעעאם זו פקודה הרושמת 5116 - +0 - 6מ6 על הסרט שבכונן ‏ 5% . בצורה זו סוגרים את ה- | 4116 לאחר שנסתימה כתיבתו. 96 דוגמא: זהו קטע של תכנית הקוראת 10 = ז 0 כ 0 כרטיסי נתונים ומעלה (1,8 = 1 ,(1) 4) ,100 כעהמת אותם על סרט בתור ‏ 4116 . (3 ,10ע82) דדב ]אתסתע 100 בסיום הקטע נסגר ה- 1116 (1,8 = 1 ,(1)) (1,100)מינ תא 10 ע"ל 86 - 01 - 6ם6,. 1 מ זזיעתאם 7 פ ר 12 דוגמאות שיטת מספגק23 - מספש6א למציאת שרש של פונקציה. נתונה פונקציה (%) . שרש של הפונקציה הוא מספר 0 המקום 0 =(0א)ע . דוגמא 0 25 -2א 5 (א) תע . שרש של פונקציה זו הוא המספר 5 או המספר ל-. שיטת ניוטון - רפסון נותנת שרש של הרבה פונקציות, זוהי שיטה פשוטה ולכן קל לתכנת אותה, אולם היא כפופה לכמה הגבלות מתמטיות (שלא יפורטו כאן) ולכן אינה טובה לכל הפונקציות. השיטה היא איטרטיבית כלומר חוזרים בה על אותו תהליך כמה פעמים, ובכל פעם מתקרבים יותר לפתרון המבוקש. במלים אחרות, אם 1 הוא קירוב מסוים לפתרון, אז קיים תהליך הנותן מספר 4 שהוא קירוב יותר טוב מ -‏ 21 (גא) ע ' התהליך הוא - 1 ם %. ךר (3) יס 1 11 דוגמא: 5 -5א = (א) תע כאן = (א) 'ש ולכן תהליך ניוטון - רפסון יהיה 5 - 12 = מע = בג 2 5 בתור קירוב ראשון נבחר באופן מקרי את המספר 2. נסמן | 2=ן% ואז הקירוב הבא 2 ינתן ע"י 2 98 2 1052 ל 7 = ו 9" 091 5 הקירוב הבא 3 יהיה ₪ 2 - 422 | . 5 - 57.25 2-5 27 = בא 8 ליכ 22 שתי החזרות (איטרציות) הבאות תיתנה 1 = פא 4 = 4א כך מתקרבים למספר 5 שהוא כאמור, שרש של (א%) ע דוגמא: 6 + 0% + 2 א3=(א)ע כאן מ + א = (א) '₪ | ולכן יהיה תהליך ניוטון - רפסון ו ₪ בל סט + 28% 2 תהליך זה ימצא שרש של | (א) ע | כלומר אחד מהפתרונות של המשואה הרבועית 0 = 6 + אס + 2 , דוגמא: ב - 2א = (א) 2 | כאשר 8 - מספר חיובי שי או + א%ץ- = 3% ולכן נותנת שיטת ניוטון - רפסון אפשרות נוחה נתון. שרש של פונקציה זו יקיים 20 - לחישוב שרש. תהליך האיטרציה יהיה כאן 14[ = 201 ₪ 2-7 = 5 כדי להתחיל תהליך איטרציה של ניוטון - רפסון יש לבחור קירוב ראשון | וא כלשהו. ‏ " ו יכול להיות למשל המספר 1, רצוי לבחור בתור קירוב ראשון, מספר שיודעים עליו שהוא מאותו סדר גודל של הפתרון, אולם אם אי אפשר לעשות זאת, הרי שאפשר לבחור קירוב ראשון כלשהו. בזמן בצוע האיטרציות מתקרבים לפתרון אולם עלול לקרות שהפתרון המדויק לא יושג אף פעם. עלול לקרות ש-(1א) ע 9 תקרב לאפס אולם לא יתאפס. במקרה כזה יש לדאוג לכך שהעבודה :-5סק כאשו הפתרון המקורב הוא מספיק מדויק. כמלים אחרות יש להפסיק כאשר (%1) 2 מספיק קרוב לאפס. שיסה פשוטה הנותנת זאת היא חישוב | ( ;ן:א)ע לאחר -- איטרציה ובדיקה האם ( ++%1) ₪ *מספיק" קרוב לאפס. שיטה זו מחיבת חישוב של הפונקציה ‏ 2 לאחר כל איטרציה, י הסרון ניכר. חישוב הפונקציה ש ‏ עלול להיות מסובך :זול זמן מחשב. שיטה שניה מתבססת על העובדה שככל שמתקרבים לפתרון =דויק, הולכת מהירות ההתקרבות וקטנה. במלים אחרות, ההפרש -1 שני קירובים עוקבים הולך וקטן. לאחר כל איטרציה מחשבים את ההפרש | ג- -4:א | =פסיקים את העבודה כאשר ערכו של הפרש זה מספיק קטן (נאמר לפך == '-10), שיטת ניוטון - רפסון אינה מובילה תמיד לפתרון. קיימות ב קציות לגביהן אפשר לבצע את התהליך מבלי להתקרב לפתרון. --- בבקרים כאלה יהיה ערכו של ההפרש | | :א -‏ 0144 | תמיד בדול פאפס, ויש להפסיק את העבודה לאחר מספר מסוים (קבוע בראש) של חזרות. גם נמידה ומוצאים שרש של הפונקציה, יתכן שיש לה עוד שרשים. שיטת ניוטון - רפסון אינה אומרת כלום לגבי שאר השרשים צילם לפעמים אפשר למצוא שרש אחר ע"י בחירת קירוב התחלתי וא אחר, התכנית הבאה היא תכנית כללית לחישוב שרש של פונקציה כלשהי (א) 2. התכנית מתחילה מקירוב התחלתי ‏ 1 ומסילמת 100 6 כאשר ההפרש ‏ | :א - 4, :% | קטן מ- 107%. אם תוך 0 חזרות לא קטן ההפרש מ- 709 נפסקת העבודה והתכנית מדפיסה את המלים שסאפסתפעצאס אא . (עטסשצט ,1טפאן) תא ג תספתק ,1 = 0 0 = 1 10 06כ (%0) 27 / (0א)ע - 0א = נא 0 0 (6 - 1.8 .1₪. (0א- 1א)429) פז , 1 = 80 10 0 פאזתפע (פסאפסתש טאק /א 3 15) 41א08ע 1000 5 -(1א)ע = ץצ 20 צ,1א 1100 עאזתפ (9.5ע2 ,215.8 ,א1) תע 1100 5 כעאע (< ע אעסאטתע , פא (6) צע אקנעסאטע פא לתכנית מצורפות שתי פונקציות עצערוע > מחשבת את הפונקציה 101 ₪2 מחשבת את הנגזרת שלה. פונקציות אלה יכולות להיות כלשהן, כלומר יתכן שיהיו 5 - %5 = תע 528 9 ואז התכנית תחשב שרש רבועי של 25. יתכן שיהיו 6+אם+.אב -ת 0 5+ 2% >= לע ואז התכנית תחשב שרש של המשואה הרבועית 2 0 = 0 + 0% + 87ב . בעית שמונה המלכות נתון לוח שחמט ועליו שמונה מלכות. הבעיה היא לסדר את המלכות על הלוח באופן שאף מלכה לא תאיים על אף מלכה אחרת. הסבר: כל מלכה מאיימת על השורה, העמוד והאלכסונים (או האלכסון) בהם היא נמצאת. כדי שאף מלכה לא תאיים על האחרות, היא חייבת לעמוד לבד בשורה, בעמוד ובאלכסונים (אלכסון) שלה. מאחר ולוח שחמט מכיל שמונה שורות וכל מלכה חייבת לעמוד לבד בשורתה, יוצא שכל שורה חייבת להכיל בדיוק מלכה אחת. מאותם שקולים נובע שכל עמוד חייב להכיל בדיוק מלכה אחת. תכנית המנסה לפתור את הבעיה יכולה לכן לעבור על פני לוח השחמט שורה שורה. בכל שורה תציב התכנית מלכה ותדאג לכך שהיא תוצב בעמוד ריק. נוסף לכך יש לדאוג שלא יהיה איום על המלכה דרך האלכסונים בהם היא עומדת. / התכנית המודגמת כאן מכילה וקטור בשם | 105 בעל שמונה מקומות. במקום ה-/1 בוקטור זה נמצא מספרו של העמוד עליו ניצבת המלכה הנמצאת בשורה ה- 16 . וקטור בשם ‏ 14% מכיל במקום ה- % שלו,1 - אם העמוד ה- ‏ ₪ תפוס, 0 - אם הוא פנוי. - יי 152 בצורה זו יכולה התכנית להציב כל מלכה בעמוד פנוי. לגבי האלכסונים. מלכה הניצבת על הלוח בשורה ה- 1 ובעמוד ה- ‏ ] , ניצבת על שני אלכסונים. אחד מהם הוא אוסף כל המשבצות לגביהן הסכום נ+ך קבוע, האחר הוא אוסף כל המשבצות לגביהן קבוע ההפרש ‏ 1-7 . התכנית מכילה שני וקטורים (8) פטאצאא (105)8ק. כאשר מוצבת מלכה בשורה ה- ‏ 1 בעמוד ה- 71 מוכנס הסכום 1+1 למקום ()15ע וההפרש 1 - 1 למקום () פטסא1וא . בצורה זו יודעת התכנית באיזה אלכסונים נמצאת המלכה שבשורה ה- ‏ 1 . התכנית מתחילה מהערך 1 = 1 מכניסה מלכה לשורה ה- ‏ 1 , בודקת מהו העמוד הראשון הפנוי בשורה זו ובודקת אם שני האלכסונים המתאימים פנויים. אם נמצא מקום כזה בשורה ה- ‏ 1 , מכניסה התכנית את המלכה למקום זה ומסמנת את העמוד המתאים ואת האלכסונים המתאימים כתפוסים. לאחר מכן מוגדל ‏ ךַ באחד והתהליך חוזר. אם בשורה ה- 1 לא נמצא מקום פנוי, חוזרת התכנית לשורה ה- 1-1 , מזיזה את המלכה הנמצאת שם למקום פנוי אחר ושוב חוזרת לשורה ה- 1 . לאחר בצוע התהליך על שמונה השורות מודפס הוקטור | 73 וכן מודפס לוח השחמט עם המלכות במקומות המתאימים. יורקו ורוו ורוו .ור 13 : טק ד )בה 8ג066סס (11)8, (05%8א1א, (60548, (8)אגה, (8)קטד 8 זא 8 106 00 05)1(=0א1א-(050)1:₪=(1)אהה-(1)סטד 11 0 סז 60 (1,)1.00.9 (1)אטז-4 0 סז 60 (1:)4.20.0 2(>0)אגת 3.1 0 0ז 60 (16)0.60.9 0 70 60 (6.0א,(0)אגא):1 1 11 11 1:)18.50.0( 60 70 70 8 660 00 0 0 60 ((א)050א0₪.081.50.₪01.(א050/ק.1.50קנ);ד 5 זא 0סס נ-(1)אטך 1( )אהת 1 = 1 )5 0)ס 1 (5)1טא1 141 0 סז 60 1(0)אטז 11 0 סז 60 8 זאזאהק (//131,812) זגאאס; 2 120 0ם ( ה11)7(=)1-(11)5-(11)1(=11)3 (+11)60-11)08(=)183-(11)8-(11)2 (1)הטז=א (180)=(א)11 1 זאזהק ++01,278,++41,18,203,א4)1,+ 728 (+33)13,א1) זההפס; (+11)50=1107(=)18-(11)3-(11)1 ( 11)6(511)8(=)18-(11)4-(11)2 (1+1)הטזבא (180)=(א)ז1 1 זאתאק 8, 19 ++41,273,+5)10,+ 8 (+33)13,א1) זהההס; 0 זאזקק ((+33)10,א1) זההףס; בניו סאם 10 10 50 00 70 10 100 100 10 120 1200 100 0:3 003 00 00+ 05? 000, 000, 00 5 100[7 00 01 0011 00.2 03 000" 0008 06 000 000 02 00%: 05 05 000 ס(000 000 006 006 000 ש>ש-10 033 055 0007 005 5 03 000 02 006 08 08% 000 00 2 1 5 86 3 7 2-6 ++++++++++++++++++++++++4++++++++ +++++ +++++ +++++ +++++ ₪6 + +++++++++++4+++++++4++4++++++++++++++++ + +++++ ++0++ +++++ +++++ +++++++++++++++++++++++++++++++++ ++0++ +++++ +++++ +++++ + +++++++++++++++++4++++++++++++++++ + +++++ ₪ +++++ +++++ +++++ ++++++++++++++++++++++++4+++++++++ +++++ +++++ +++++ 0 -+++++ + +++++++++++++++++++++++++++++++++ + ++3++ +++++ +++++ +++++ +++++++++++++++++++++++++++++++++ +++++ +++++ +++++ ++0++ + ++++++++++++++++++4+++++++++++++++ + +++++ +++++ 0ב +++++ +++++ +++++++++++++++++++++++++++++++++ 155 חישובי ממוצעים, סטיות חקן ומקדמי מיתאם , התכנית הבאה קוראת חמשה טורים של מספרים, מחשבת את הממוצע ואת סטית התקן של כל טור ומחשבת את מקדמי המיתאם של כל טור עם כל הטורים האחרים. הממוצע א של טור המספרים ג ניתן ע"י הנוסחה 127 = שק . סטית התקן | + ₪ ניתנת ע"י הנוסחה 2) - 27:25 ₪ ₪ מקדם המיתאם | את בין שני טורי המספרים נ1צ ‏ 21 ניתן ע"י הנוסחה = 17 1 = קל ץ67 ₪ התכנית קוראת כרטיס ובו הערך של םת (ארכו של כל טור מספרים). לאחר מכן היא קוראת כרטיסים שבכל אחד מהם 5 מספרים. מספרים אלה מתוספים לוקטור %‏ , ורבועיהם מתוספים לוקטור ‏ 25 לאחר קריאת הכרטיסים מכיל כל אלמנט בוקטור ‏ 3% את סכום המספרים של אחד הטורים,וכל אלמנט בוקטור 65 , את סכום רבועי המספרים של אותו טור. נוסף לכך מתוספות המכפלות המעורבות של המספרים מכל כרטיס, למטריצה ‏ 5 . בשלב הבא מחשבת התכנית את הממוצעים בוקטור ‏ 3% , את סטיות התקן בוקטור | 35 ואת מקדמי המיתאם במטריצה ‏ 2 . הוקטורים 6 ,% מודפסים ולבסוף מודפסת המחצית השמאלית התחתונה של המטריצה ב (שהיא סימטרית ולכן אין צורך להדפיס את כולה). 16 (זטקזטס, זטשון )אפמא 4באט(טל (30)5(,8)05,5א, (5)א, (ל)ז 51080ש4ט 0 ]זאזאת (41) זגהאס; 35 6 30 5)15א=(1)א-(1)ד 59 חן חחהָ )] ,0 100% 0ג6ה (13) זגוונוס: הונ ,3 30 ז,:כן: הגספ (%9"5.2) זגהקב: ז,ן0קן [3שלק (5%57.,2,א0) זגרוס; 00 2% 51,5 (נ)ז+ונ)א>-(()ת (נ)ז*(נ)ז+(5)0א-(5)0* 5 6064 90 (.)ז*()ז+(א,0)-(0,()ם יי 00 46 5 א/ו(1])א>|ו])א ((1)א*(])א-3)1(/8א)ז1(=50% )פא 5 טכ 30 12 5 00 ((()5א*(0((/)%5)1)א*(1])א-א/ו1,2)-)-ונ,ן)₪ 5*,אוו דן זאזהק (/.-6005 .11310048,א0.,957.2///13 .85(ה5,557.2/6א341454) זבההץ (כ,1690,)1.,1-1 ז4:אם (5]177,א-) ]גת , 9 > סט (1,1-נ,(9,1,)9%)1,0ר15 ו3ם]וט (?.557,א2,3%],א1) זגןו0> הכז 6 יי | 3 0003 007 07 201 5 ס[0 ,0 2 ט גנ 2005 6 00%1 20001 0%7 007 20001 43 6 טטחטגט 93 205 0007 0-2" 53| 15 05 נכ0%1% 07 0-17 כמןטח הה1 טטט ?2 1 ו %1 3 שנ0 ת .2 .3 .68 .0 .0 .00 .00 2.00 2.000 583.21 535.21 %89 75 5.5% 0 48.86 85.20 8 2.38 .2 58 7.59 .8 .1 5 .9 .2 3 0.2 .5 62.23 03.%92 59 160.99 128.90 7 0008. 2 5 4 1-00 .8 1400 .2 .39 100 .88 .7 .0 177 .1 .0 5.0 15 0-00 5 2 .7 0-22 2 פאהסת 5. 2, 8% = ₪ ₪ רש . ב- 4 18 חפוש בטבלה. נתונה טבלת מספרים ולש למצוא האם מספר 48 נתון מופיע בה ואם כן איפה. השיטה הפשוטה היא לעבור על כל הטבלה מספר אחרל מספר. השיטה נקראת חפוש לינארי והיא טובה לטבלאות קטנות. בטבלאות גדולות עלול חפוש כזה להיות בזבזני בזמן מחשב. שיטה מהירה יותר, הטובה לטבלאות גדולות היא שיטת החפוש הבלנרל. שיטה זו טובה רק לטבלאות הממוינות בסדר עולה ועקרונה הוא כדלקמן. משוים את המספר 8 למספר הנמצא באמצע הטבלה. אם 8 גדול ממספר זה אזי עוברים למחצית העליונה של הטבלה. אם 8 קטן מהמספר האמצעל אזי עוברים למחצית התחתונה של הטבלה, אותו תהליך חוזר על עצמו לגבי המחצית שנבחרה. גם שם בוחרים מספר אמצעי, משוים אללו את 8 ובוחרלם רבע עליון או רבע תחתון. כך מחלקים את הטבלה המקורית לחלקים הולכים וקטנים עד שמגיעים לחלק המכיל מספר יחיד, אם מספר זה שוה ל- 4 הרל שהחפוש נגמר, אחרת 4 אינו בטבלה. שיטה זו מהירה בהרבה מהחפוש הלינארי. חסרונה הוא שדרוש מיון מוקדם של המספרים בטבלה, הסוברוטינה שבדוגמא מקבלת טבלה % באורך ‏ א ומספר צ169 שאותו יש לחפש. התוצאה מוכנסת למשתנה | כת:1א . אם המספר שב- צשא אינו נמצא בטבלה, מכניסה הסוברוטינה מספר שלילי לתוך כת:א וחוזרת. המשתנים | .1,020 מכללים את הגבולות העליון והתחתון של חלק הטבלה שבו מחפשים בכל שלב. הדפסת התוצאות מכילה שנל חלק"ם. בתחילת כל חלק מודפס ערכו של א (11 בדוגמא) והמספרים שבטבלה. 1.09 בחלק הראשון מחפשת התכנית את המספרים 11 - -,1,2 בטבלה בשליטה הלינארית. בחלק השני מחפשת התכנית את אותם המספרים בשיטה הבינרית וזאת לאחר מיון הטבלה. המספרים 6,7,8,10,11 אינם מופיעים בטבלה ולכן מודפסים לידם ערכים שללליים. 110 (,4)2 גשה (א,1-ז,(])2),א,0הר] טג5א 1-3 (2,?5:4.0]) ז4ה07* 107% 09000 (ז)א),ת, 0רון זהןפס הכמת (1.,2558,0],.אן) ז%44+0ה: 15105 3 5 פג.אזן אך 1,2,...,%9 9049695 שחז 322998 ₪ א,ן-ג 17 0 בי ]1 ך[0 (א,א.ג,"580340ד: 0466 00 *,00,5ק2ן [מקק ש1 00 (ד1%,52.0,1) [גה?ה; 1400 0006 --- 8 006אז פטז ז509 ---60 1-א-1ח 00%6 1אוי=1 20 00 000 141 01 8 2% 00 000 0 טז 60 ((10.02.200)),ד 0 (ך)5, טלפטהם (נ)ג-ון)ג 1 =-ונ). .00% וז זה 0? כ ררה (1-108,(ז)00.0,)2ו זאךאם 052 ₪00 צפגאזה א1 !,...,1.2 45שהה0א באז 56068 6 04 הד 0 017 1 0001 (א,,4, )ה ק50זה 02606 002 8 |א18פפ הד 5 6נז ש%ג"0ם טא) 002 020 ופו:,א,ז,דצ:א)ה+5א1. ם.[זטספוט> +-א<,(מ)א 46שמ 007 ה17-רוז רן 00 007 זסטזד95 (+5א.20.(מו1)א);ד 0 השא ז 6 10 02 1 זן 0000 א4טזפס 005 נש >01 ו (ב01,אוא,ציא)ה6לכהזכ עזזט320ע9 זב (9)א ב%א 7 ו זהֶהרם 1 0007 2 (אט%+ה0:)16זה 16 1 840 ((0ג1)א-צא):1 4 אמטזתס 20 10917 1-1 הד הטמה צע שז 60 2 11 :004 הש בי פי ט] 600 (008.-68.6ז)12 "5 +?00ים 0-זץ 000027 אבהטזפס ,000 נא) הביסרס 0 9 3% 15 1 % ב 9 5 6% 11 זד 1 1 2 5 + 6-6 5-3 1- 65 41 ז7 1- % .30 1- 10 1- 11 3%( 5ן| 9 5 5 . בַ ?2 1 0 118 1-3 20% 1-5 6 -% 7 5 8 65 8- ז 8 % 9( ג 1-0 גנ - נספח מס" 1 רשימת הפונקציות הבנויות הערה: רשימה זו כוללת את הפונקציות הבנויות הקיימות ברוב המחשבים. עם זאת אפשר למצוא בכל מחשב פונקציות נוספות שאינן כלולות ברשימה זו. הסברים על פונקציות אלה אפשר למצוא בספרי העזר של כל מחשב. שם- תאוב. פרמטר | ערך (%) 425 ערך מוחלט מ מ הערך של הפרמטר (...,2א,1א)1א411/4 | המקימלי מ מ הערך של הפרמטר (...,1,%2א)1א4/1 | המינימלי מ 7 מ () דע הפיכת הפרמטר לממשי () 135 ערך מוחלט ש-* ש הפיכת הפרמטר לשלם (6) עאז תוך כדי קיצוצו מ ש הסימן של 11 כפול (11,12) 15100 בערך המוחלט של 2 1 ש ש הסימן של 51 כפול (2< ,1א) 510% בערך המוחלט של 2< מ מ הערך של 1 1 כשהוא (12 ,11) סא מחושב מודולו 2 1 ש ש (%) 4605 6 ברדדיאנים | מ מ (41.00:3)0% לוגריתמוס טבעי מ מ שם (10)8 41.00 (8) א491 (8) 4714 (א) כאם (%) אז5 (א) 5097 (8) 74 (8) זא ד 112 תאור לוגריתמוס על בסיס 10 26 ברדיאנים 8 ברדיאנים 6% סינוס ברדיאנים א 66 > טנגנס היפרבולל ברדיאנים פרמטר ₪ שש שש שש כל 3 נספח מס" 2. המשפטים בשפת. אג ת ע'תססע 1) משפט יחוס אריתמטי (עמוד 12) צורתו 6 = 8 כאשר ‏ 8 שם של משתנה ‏ , 6 - בטוי אריתמטי. הבטוי האריתמטי 6 מחושב, ותוצאת החישוב מועברת למשתנה 8 . 2) " שד 00 ללא תנאי" (עמוד 16) צורתו ם 0020 כאשר ם היא מס" זהוי של פקודה. המחשב יקפוץ לפקודה שמספרה ‏ םמ , יבצע אותה וימשיך ממנה. 6 "-- 70 00 מחושב" (עמוד 16) צורתו 1 ,... ,2ם ,ןֶם) 0 6 מ הם מספרי זהוי של פקודות, 1 הוא שם של משתנה שלם. אם ‏ 3 מכיל את המספר , יקפוץ המחשב לפקודה שמספרה | ומ , יבצע אותה וימשיך ממנה. 4) פסָ5 (עמוד 18). 65 עאפ (עמוד 19). " )6‏ א - אריתמטי" (עמוד 19). צורתו ב ,כת ,ןְם(6) ע1 6 היא בטוי אריתמטי, הם מספרי זהוי של פקודות. המחשב יקפוץ לפקודה שמספרה וֶם אם ערכו של 6 הוא שלילי, לפקודה שמספרה כ אם 0 = 6 ולפקודה שמספרה | בם אם 6 חיובי. 7" 18 - לוגי" (עמוד 22) צורתו 18)1(5 , כאשר 1 הוא בטוי לוגי, 8 הות משפט שיכול להיות משפט כלשהו פרט ל " א1 לוגי" ופרט ל "כ ". אם הבטוי הלוגי 1 הוא "נכון", יבוצע המשפט 8 . אם 1 "אינו נכון", יעבור המחשב לפקודה הבאה מבלי לבצע את 58 . 8 9 )0 )12 )3 )4 14 א0זפאעאזת (עמוד 24) צורתה הכללית .. . ,( ממד ) 12 ,( ממד )וג א10פאעואזס עגמת פמתסספלאז (עמוד 25) מקנות מעמד של שלם או ממשי למשתנים מסוימים. " 6כע " (עמוד 29) צורתה הכללית בז,כם ג = 3 םמ 0 או כ ,וגת = 1 ת 50 המחשב יבצע את שורת הפקודות החל מהפקודה שאחרר ה" פֶּם " ועד הפקודה שמספרה ‏ (כולל אותה), כאשר המשתנה ‏ 1 גדל מ ומ ל- כ בקפיצות של בג " דאזסק סשת " (עמוד 39) צורתן הכללית % כגס 5 .מ עאזת מ הוא מספר פקודת פורמט. | 1:85 הוא רשימה של שמות משתנים. פורמט (עמוד 42). הצורה הכללית (... , שדה, שדה )091/47ת םמ ם הוא מספר זהוי החיב להופיע. ",611 " (עמוד 61) צורתה הכללית (... ,פרמטר, פרמטר ‏ ) שם ,0641,1 או שם ,041.1 המחשב יקפוץ לסוברוטינה ששמה צוין בפקודה, ימסור לה את ערכי הפרמטרים המתאימים ולאחר שזו תגמור את פעולותיה, יחזור המחשב לתכנית הראשית, לפקודה שאחרי ה- ‏ ,041,1. " אפטצפת" (עמוד 63) בעזרת פקודה זו חוזרים מתכנית משנה לתכנית הראשית. 15 5) " א0:אוא00 " (עמוד 71) הצורה הכללית %ננ 6 המשתנים המופיעים ב- ‏ 1186 יהיו משותפים לתכנית הראשית ולכל תכנית משנה בה יופיע ה- אאא 6) משפט יחוס אלפמרי (עמוד 82) צורתו הכללית (ם432...8ןג11ת) = 8 אגף ימין הוא קבוע אלפמרי והוא נכנס למשתנה שבאגף שמאל. 17) 4 דגס (עמוד 83) : צורתו הכללית ה דגס % היא רשימה של משתנים. % היא רשימה של קבועים. פקודה זו מכניסה את הקבועים לתוך המשתנים ועושה זאת רק פעם אחת בתחילת התכנית. 116 פתרונות לתרגילים עמוד 12: ה 3 * (צ+א) - 1(ץ + א) ס 2*כ + 2/0606 7049932 הקל ) )(/ 2 + 6 +.8% אפשרי רק כאשר ‏ 1 ממשי 5 == ד% / (0**2 /%2אץ - 1) / -צ צ-) - 3( 1 | עמוד 15: ערכו של הערך הנכנס אגף ימין לאגף שמאל .3 2% 4 5 5 1 54 .5 ./ 1 1 43 5 4 0 0 1 עמוד 23: 68 > 02 (.50.ס %.ת) 0 תן 0 09.20.00 .א) עד .1 בש 00 עמוד 38: 61 )2 17 0 78 0₪.40.(00.א) תפ 10 0>צ 0 ₪6 .1>צ 20 צ שמתנעס 30 5 עאםפ (100)ו ,(100)צ אקזפאשנאזת 0= 65 0 = 1 10 כ (ג)ש*()ץ + 5 =5 10 5 )תגוע כו עאם (2)3,7 ,(4)3.7. א510אאזת 3 = 1 10 קכ 7 = 07 לע (2)21 + (4),1 = (1 )4 10 4 תנוע ג כעאם 3 | | עמוד 90: 1 188 (8 ,6)5 ,(8 ,2)6 .(6 ,4)5. א18פאמאזס 5 >31 קסע 8 >= 31 8 6)1(>0 6 = 8 3 קס (1,) 5*(א,) 2+ (60.1 = (60,1 6 שתוצס 5 כעאפ (104)א1/11 ,(1.)104 אש1פאפאזס 1 ך 9.6 = 1 10 שם 1 א 0 א = א .54 (א) א81 - 26.5 = (1) ,1 11 ד 1 = 30 ַם . 6 20 = 4 (סח1) = (1) אז.1 (-18) = (1) א11 (26 .50 .1)פז (*₪)= (0 אנע (1.0(.50.1) פז ₪ ,1000 עאזפס (10441 ,א1) 47)את0ת גו כעאם 10 20 20 10 19 תכנית זו מצירת את הגרף על פני 51 שורות. בכל שורה מודפסים 104 קרקטרים ולכן המרחק בין כל שני קרקטרים חיב להתאים לשש מאיות רדיאך (בי 270 ₪ 6.24= 104.0.06). בחלק הראשון של התכנית מקבל המשתנה % את הערכים מאפס עד 4 בקפיצות של 06. % ם51 עובר טרנספורמציה לינארית ההופכת את ערכי הסינוס (בין 1 - ל 1 + ) למספרים שלמים בין 51 ל 1 . מספרים אלה מוכנסים לוקטור ,1 וכעת מכיל האלמנט (1,)1 | את מספר השורה (בין 1 ל 51) בה חיב להיות כוכב במקום ה- 1. בחלק השני של התכנית מודפסות 51 שורות. לפני הדפסת כל שורה עוברת התכנית על הוקטור ,1 ובודקת היכן יש להכניס כוכבים לשורה זו. 2) (131)א1.1 א0זפאפאזס 0 = א א = 5 תאת > ת 1 = 10 6 (6₪0= כ) אז11 10 א,0201=1כ 2 - 1 = ץצ 4+ > ץצ .0 (צ*צ - ת) 507 = א 8% +6.5 =11 12 = 66.5 - 4 (18%) = (12) אע = (11) אז11 120 (1131 =1 ,(6א11) ,1000 עאזתס (13141 ,א1) ץ'4ואת0ע 1000 (0ע1) = (12) א211 = (11) אז/1 20 ו עאםע ב ב ו ו ו הדפיס אקדמון טל 3625374 ירושלים