- שנה: 1999
- מחבר: אבא אנגלברג
- מו"ל: הוד-עמי
- פורמט: ספר
- נמסר ע"י: הוצאת הוד-עמי
- תגיות: MS-Access
OCR (הסבר)
97 66655
סדנת לימוד
הוראות מדויקות להתקנת התקליטור והפעלת התוכנות
נמצאות בנספח
עורך ראשי: יצחק עמיהוד
בדיקה, עריכה מקצועית ועיצוב: אניקה סוא
עיצוב עטיפה: סטודיו מצגר
שמות מסחריים
שמות המוצריס והשירותיס המוזכריס בספר הינס שמות מסחריים רשומיס של החברות שלהם. הוצאת
הוד-עמי עשתה כמיטב יכולתה למסור מידע אודות השמות המסחרייס המוזכרים בספר זה ולציין את
שמות החברות, המוצריס והשירותים. שמות מסחרייס רשומיס (8א118067081 6015%0760ז) המוזכריס
בספר צוינו בהתאמה.
7 606655, 95/98 8/צ0!סח1// הינם מוצרים רשומים של חברת )1670501
הודעה
ספר זה מיועד לתת מידע אודות מוצרים שונים. נעשו מאמציס רבים לגרוס לכך שהספר יהיה שלם
ואמין ככל שניתן, אך אין משתמעת מכך כל אחריות שהיא.
המידע ניתן ''כמות שהוא'' ("5! 45"). הוצאת הוד-עמי אינה אחראית כלפי יחיד או ארגון עבור כל
אובדן או נזק אשר ייגרם, אם ייגרם, מהמידע שבספר זה, או מהתקליטור המצורף.
לשם שטף הקריאה כתוב ספר זה בלשון זכר בלבד. ספר זה מיועד לגברים
ונשים כאחד ואין בכוונתנו להפלות או לפגוע בציבור המשתמשים/ות.
ב טלפון: 09-9564716
ב פקס: 09-9571582
ב דואר אלקטרוני: |60.1.וח00-31ח62ס!)חו
נ) אתר באינטרנט : |ו.60.וחובּ-סח. שעצצ
/ 97 66655
סדנת לימוד
פרופ' אבא אנגלברג
1 560
-=-] הוצאת הוד-עמי ו
לספרי מחשבים ה
קסח8אזס/ 24 / 97 66655
0ז06|06ָח= 08 .סק ץֶם
בח וחוג .] :זסזו=
)6(
כל הזכויות שמורות
הוצאת הוד-עמי
לספרי מחשבים בע''מ
ת.ד. 6108 הרצליה 46160
טלפון: 09-9564716 פקס: 09-9571582
|ו.0ס. והח00-8ח6סזחו
אין להעתיק או לשדר בכל אמצעי שהוא ספר זה או קטעים ממנו בשום צורה ובשום אמצעי
אלקטרוני או מכני, לרבות צילום והקלטה, אמצעי אחסון והפצת מידע, ללא אישור בכתב
מאת ההוצאה, אלא לשם ציטוט קטעים קצרים בציון שם המקור.
הודפס בישראל 1999
0 5זחפוה ווה
.+ | ואה-פסה
28 ,6108 .0.8.ש
9 ,5
מסת'יב 965-361-205-0 65|
תוכן עניינים מקוצר
ביביליוגרפיה 8
מבוא |[
פרק 1: צעדים ראשונים |
פרק 2: מבני פיקוח 8
פרק 3: מערכים |[
פרק 4: פרוצדורות ||
פרק 5: שפת שאילתות
סטנדרטית (.)563) 7[
פרק 6: ניפוי תוכניות ו
פרק 7: חיבור לטפסים ה
נספח: התקליטור המצורף 0
אינדקס 8
אינדקס לועזי -[ 0
תוכן עניינים מקוצר | 5
6 8 97 200655 - סדנת לימוד
תוכן העניינים
ביביליוגרפיה +:-+-1.-...4.--.. 15
מו
1 צעדים ראשונים............... 21
מבנה הקוד 0
תצוגות שונות של המודול 2
ניווט במודול בתצוגת המודול המלא 2
ניווט במודול בתצוגת שיגרה |[
בניית תוכניות 0 2
הרצה והידור תוכניות ב
שמירה, הדפסה ויציאה מ-608655 ספ 2
כללים למתן שמות ב ל 2
משתנים 0
אופרטוריס מתמטיים 2
סוגי משתניס 0
שיטות נוספות לקלט ופלט בתוכניות 2
פקודת א5080/! - הרחבה ב
עריכה 2 ל שר 2
מחרוזות 2
קליטת מחרוזות בלמ כ
אופרטוריס למחרוזות 0
משתנים בוליאנייס ב --- 20
תאריכים 0
משתנים מסוג זח8וז8/ שש 20ב ב ב 1
איפוס משתניס 0
פונקציות שמספקות תוצאה מסוג 1ח8!ז8/ ל
תוכן העניינים - 7
יתרונות וחסרונות של משתנה מסוג +ח8ז8/ - 2
קבועים (00518018)) 0
2 מבני פיקוה.................. 53
הסתעפות מותנית 2
פקודת =| ||
לולאות 0 7
סס 7
לולאה ללא גבול עליון 0
הסתעפויות חד כיווניות 0
פקודת 56!606% 6702-5154
3 מער כ כ]
מערכים במימד אחד: וקטור .1
מערכים דינמייס 5 ל
שימוש במערך חד-מימדי ל
בעיית הפלינדרוס ||
משתנים רב-ערכיים בשני מימדים 0
חיפוש במערכים || |
מיון במערכיס 9
רשומות 7-ו
4 פרוצדורות ..............55222 95
מבוא 0
שגרות ל
ארגומנטיס מסוגיס שוניס ב
ארגומנטים אופציונלייס 1
טווח ההכרה של משתנים ופרוצדורות 1
ההבדל בין פונקציה לשיגרה 1
8 8 97 200655 - סדנת לימוד
שפת שאילתות
סטנדרטית ()560) ...........111
רשומות וטבלאות - ו
יצירת טבלאות 11
מילוי טבלאות 0 116
עריכה .100
שאילתות פשוטות 1
שאילתות בטבלאות קשורות כ 0 12
שאילתות סיכוס :1250
תוצאות ייחודיות וחלקיות 1
שאילתות בחירה ושאילתות פעולה 1
שאילתות איחוד ||
שאילתות משנה וש סקט מש עפ שש 0 2-0 5 164
מחיקת רשומות מטבלה 1
מיון בטבלה ב ב 169-222
חיפוש בטבלה 1
+אסאסחות (וגס ז9זו0חו=, טסוטסזקוסחוח, 35% 01חו=) 1
פעולות על תחומים ב 1
ניפוי תוכניות ................ 167
מבוא 0 ב 2 2 םב ששב לט מל עב בלש מע 7-5 10
קביעת נקודות עצירה 0
צפייה במשתנים 7
חיבור לטפסים................171
בניית מסד נתונים 11
בניית לחצן להוספת רשומות 1
שיפור הלחצן להוספת רשומות 1
שינוי מצב טופס עובדים לייקריאה בלבד'י 1
בניית לחצן לשמירת רשומות 1
ביטול אפשרות העריכה 17
תוכן העניינים - 9
תיבה משולבת לאיתור רשומה מסוימת |[ || ||
סינון לפי טופס 1
קבוצת אפשרויות לסינון נתוניס 1
קביעת ערכיס כתוצאה מעדכון שדות מסוימיס בטבלה 1
הפעלת שגרות באמצעות צירוף מקשים --נ |
אימות נתונים 1
הוספת ערכיס לתיבה משולבת - 0
איתור רשומה רצויה בעזרת תיבת דו-שיח 1
התקנת תיבת דו-שיח בצורה אלטרנטיבית 1
שימוש בתיבת דו-שיח בדוחות 1
הצגת טבלאות קשורות 7
בניית שאילתות בעזרת טופס 1
נספח: התקליטור המצורף .... 187
מה בתקליטור! 187
קטלוג פ0 - הקטלוג הצבעוני האינטראקטיבי של הוד-עמי..... 188
קטלוג !ד - קטלוג צבעוני 190
התקנת קטלוג !ד 1
01 - התקנה 1
ספרים לדוגמה 2
חושביס חלונות - הפעלה 0 0 200
מבחן אישי - התקנה 202
התקנת ערכת מבחניס מלאה ל-7/97 6זס/ 2
הפעלה - מבחן אישי הוד-עמי 0
מה עוד בתקליטור! 2
חא קפזחס- 20
₪8 - מימד חדש בתצוגה - יס המלח ממעוף הציפור 20
התקנת תוכנת 4.01 זפזס|קאם 6%חז6זח! 60סזסוו 2
התקנת תוכנת 5 זפזס!|קאם 6%חז6זח! 608סזסוו 206
היכן נמצאים הקבציס הקשוריס לספר זה! 20
תיקיה ראשית 8ז8עו501 (רשימה חלקית) 207
0 22 97 2008558 - סדנת לימוד
3 3359 .3-3 33489 כ
תוכן העניינים
11
ק!כ₪ !קכ !0
סטכ 2% א0'3 שמ מ48'כי ממפש4ת
[תכי!!ן/| 46 אשככות פפסש4ת
5 פטוס0ח:/ /- 98 פשססחו), /46
30 ]כן,ת 97 066655.
כמ !כןות אמ6'אות 6 קתאסכ'יע
+מ3!כמ. מח!אכם [פמ!כןת
6א!מק[!מ פאמ06 46ק.
ש4 כן, 'ימכן 6כפאסכיע 6מ₪2ק 49
3 כ אמ06 246 /מי! 6![/ע 689
א מא!03'ע 909ל.
4 22 97 200855 - סדנת לימוד
יבלי ו
ביבליוגרפיה
פצהם-1ו2 ,חו5% 1 החפוזוו/ ,06וטסזססט5 פשוססחו/ זסז 97 00655( ]וספסזסווט 3
₪855, 7
5 ||68 ח8/= ,5100 ע0 5160 28516 |808ו//00655// |ספסזסוו 3
5 )50סזסוו
,6 ,55578 וע סח חזוה5 0061 ,חהוההוח8זטסזק 0 / 95 60058 3
.0 0768585 אסז/
ביבליוגרפיה | 15
מבוא
(0ו285 |1808/) היא שפה שפותחה על ידי חברת 4ספסזסוו/, במטרה לשמש
כשפת עזר אחידה עבור היישומים השוניס שמהוויס את חבילת 97 021166 80סזסוו.
שפה וו קיימת במספר גרסאות שונות. כמוצר בודד, 6 285!0 |908ו היא אחת
מהשפות הפופולריות ביותר, והיא מהווה מתחרה רצינית לשפת ++6, במיוחד בתחוס
התוכנות העסקיות, כאשר מהירות התגובה היא לא הגורס העיקרי. ביישומי 028806:
0זס), |08א= (-406895 מיושמת גרסת : 84ש - חסוזהסו|קק4 זסז 289510 |1808/, לצד
שימוש במאקרוט כאפשרות לשיפור ולחיזוק ביצועי היישומיס. חשיבות 88 / מודגשת
בעיקר ב-60855, משוס ששפה זו מנוצלת היטב לבניית מערכות סגורות, כאשר חלק
מהביצועיס הרצוייס מחייביס שימוש בשפת עזר.
מבנה הספר
בארבעת הפרקיס הראשונים של הספר מופיע הסבר ממצה ומקיף לעולס התכנות
ב-84/. שלושת הפרקיס האחרונים, 5, 6 ו-7, מסביריס את השימוש העיקרי ב-₪)/,
כגיבוי וחיזוק לביצועי 60895. פרק 5 כולל הצגה שלמה של שפת -.501, ושימושה
ב-84/ ובמסדי נתונים של 97 400855. פרק 6 עוסק בניפוי הקוד. פרק 7 מציג את
השימוש ב-84/ באובייקטיס השוניס של 97 608655, למשל טפסים ודוחות.
למי מיועד הספר
ספר זה מיועד לשני סוגי מפתחים.
למפתח שחשיפתו הראשונה לעולס התכנות היא באמצעות 027008 אספסזסוו/.
למפתח זה מומלץ לקרוא בעיוןו את ארבעת הפרקיס הראשונים, למלא אחר
ההוראות הכתובות בספר, ולהריצ את התוכניות המודגמות. מומלץצ גס לבצע חלק
מהתרגיליס שבסוף כל קטע, כדי להעמיק את הידע במושגיס החדשים.
למפתח בשפות אחרות, למשל פסקל או ++6, או אפילו 28510 |808ו/ (לא 4/),
המעוניין לנצל את הידע הקודס שלו להשתלטות מהירה על 803 של ₪60655.
למפתח מסוג זה מומלץ לעבור ברפרוף על הפרקיס הראשונים, ולהקדיש את
עיקר תשומת הלב לפרקים 5, 6 ו-7. כן מומלצ לו להריצ מספר תוכניות בפרק
הראשון, רק כדי להבטיח שהוא מבין כיצד מריציס תוכניות ב-83/, ולהריצ
מספר תוכניות בפרקים 2, 3 ו-4.
מבוא | 17
תוכניות וקטעי קוד המופיעים בספר
כל קטעי הקוד המופיעיסם בספר זה, לקוחים ממסד הנתונים 00897.008זק
שבתקליטור המצורף. כן צורף לתקליטור מסד הנתוניס העץחם ז08ז שנבנה
באמצעות האשף, לשימוש בפרק 7. תוכל להשתמש במודוליס בשלמותם, כדי לחסוך
זמן, ולמנוע טעויות הקלדה במהלך העבודה עס הדוגמאות שבספר.
התקליטור המצורף
בתקליטור המצורף תמצא את תיקיית מסדי הנתוניס של ספר זה - תיקיה בשס 59236
הנמצאת תחת התיקיה 5א₪00%. בנוסף, תמצא בו את הקטלוג הצבעוני של הוד-עמי,
מאמריס לדוגמה ותוכנות חופשיות. להרחבה על תכולת התקליטור ואופן השימוש בו,
פנה לנספח.
מוסכמות המיושמות בספר זה
בספר וה יושמו מספר מוסכמות (רובן מוסכמות המקובלות במרבית ספרי ההוצאה):
ב פקודות ושמות תפריטיס יופיעו בטקסט מודגש.
3 ביטוייס ומונחיס חדשיסם יופיעו גס הס בטקסט מודגש.
= צירופי מקשיס המיועדים להקשה בו-וּמנית, יופיעו כשסימן החיבור (+) מחבר בין
קיצורי שמות המקשים, כך: %+0%1.
= קטעי קוד יופיעו על רקע אפור, כך:
אד 0ז36|]
8 2 97 20085858 - סדנת לימוד
כן יופיעו הסמליס הבאים, לציון:
א רמז
% סמל זה יופיע מימין לרמז או טיפ.
אזהרה:
0 סמל זה יופיע מימין לאזהרה.
תרגול:
סמל זה יופיע מימין לתרגילים שבגוף הפרק.
0 הערה:
סמל זה יופיע מימין להערה.
33359 23499
מבוא | 19
פרק 0
צעדים ראשונים
כדי להריץ תוכנית ב- 2859160 |1808/ של 400655, אנו צריכים להיכנס ל-060895
מ- 95/98 8/שס0חו/ באמצעות הצעדיס הבאים:
1
2
לחץ על התחל (5187).
לח על תוכניות (פוח8זטסזק).
בחר 266655 01070504 (הסדר תלוי בהתקנת 460655, ובשינוייס שערכת
בתפריט התחלה), באופן חליפי, אם יש קיצור-דרך על שולחן העבודה, לתצ עליו.
בתיבת הדו-שיח שתופיע, בחר את מסד נתונים ריק (08180856 ע1קוחם), ולח
על אישור.
נווט לתיקיה (0!08=) המתאימה, הקלד את השם הרצוי, למשל פוחפזחסזם,
ולח על צור (076816).
תיבת הדו-שיח שתופיע מהווה את התפריט הראשי של 4608585. בתיבה מספר
כרטיסיות הנקראות: טבלאות, שאילתות, טפסים, מודולים וכולי. לענייננו רלוונטית
הכרטיסיה מודולים. לח על מודולים ובחר חדש (שפא).
[<]ם]; | 6 :-: 0097 צפם
| ו שא פסהבו 5? | 5וסק6ה 5 | פוחזס= 5] | פסוזפנוס ₪ | 5
| תכנות 6 וטס ₪850
| פס 6|וססזי] הַהוּחחוָס₪
וו
6וס1! לפזו=
| % . 5
חק6|ה הספויז
סז
6 וס
ד
5% 5-5 5 0 5 5 6 %
זז וזזט
פרק 1: צעדים ראשונים | 21
בחלון שייפתח יוצגו שורת התפריט וסרגל הכליס. תפריטים תוכל להפעיל על ידי
לחיצה על שס התפריט בשורת התפריטים, או הקשת )| בצירוף האות המודגשת בקו
תחתי שבשס התפריט. בבחירת אפשרות תפריט, נפתח תפריט משנה (או תיבת
דו-שיח). האפשרות הרצויה בתפריט המשנה נבחרת באופן זהה.
[0 40 : 400016 51ז] - 00055 050/1זסווא 5
פפ אפוחוצ פסקד | ה אפ וסנת ופ א ₪6 |
08 ||₪ -*]|
5 טוה 0 8 03100858 88 מווזםס הטוס
ו ומאש הסוטס.
00
(090 63/0953 40 הסט תה
"הזב סז 035% 30055 לסוח חח %5 וחד" אססספות
8
בק -.41. הסוטחווה.
6טבוזבוי 500 3 הַוז|6פכ' 5 45 פפהסספסה וחום 1
(" ץז" ,סחחפ אסם זנוסח!" ,"סַ553טוחו 3 זוהם") א90וטוסח1 = 6פהסספסה 2.
"839 הו 65פיזהזק" ,65 ,ספהסספח אסמטפוין 3
הסח טר
00 42 טוחה
וו ז =
חבז 45 חפ ,ו3ספוח50 וזום 11
,"03 3 זוחפ")9א90!וקח1 = 50008 21
הפחד (35 1503065090 +1 31
1 + (100 (1 - (60805וחס1937)5)) = חפ
ב
"טס סו" = 90%
ו
".098 0פיופסכ" ,65 הפס ספא 41
הסח סח
8 + בן=
]= |אאטא הר רו כ
3135 35 ח| 301
(פום ,"ח0ט63/0./3 והי
להלן התפריטיס והאפשרויות הזמינות בהס:
4
> > > ₪
3
קובץ (1!8=) - לפתיחת מסד נתוניסם אחר, לסגירת מסד נתונים גּה, לשמירת מסד
נתוניס וּה, לשמירת התוכניות במודול (או חלק מהם) כקובצ טקסט או ושוד,
להדפסת התוכניות (או חלק נבחר מהן) אשר במודול.
עריכה 010) - להעתקה או העברת חלק מהטקסט ממקוס למקוס במודול זּה, או
למודול אחר, לחיפוש והחלפת טקסט, להכנסת טקסט פנימה או החוצה.
תצוגה (עוסו/) - לקביעת חלון העבודה (רגיל או ניפוי), סרגלי הכלים, ולעזרה
בסריקת אובייקטים.
הוספה (5611ח!) - להוספת פרוצדורות (הליכים) או קטעי טקסט למודול הנוכתי,
או להוספת מודוליס חדשים.
אתר באגים (הָט760כ) - להידור וניפוי התוכניות.
הפעל (חטף) - להרצת התוכנית.
כלים (100|9) - להוספת אפשרויות מסוימות ולקביעת התנהגות המערכת.
חלון (שססחו//) - לחלוקות שונות של החלונות כך שניתן לראות יותר מקטע אחד
של מסד הנתונים בו-ומנית.
עזרה (ס!38) - מספק עזרה בתחביר הפקודות ושימוש במסדי נתונים, כולל
ב- 28516 |1508/.
סרגל הכלים שמופיע בחלון הפתיחה של המודול כולל סמלים לשימושיס נפוציס
מאוד. בהעברת הסמן על סמל, תופיע תווית שמסבירה את משמעותו.
22
84 97 400655 - סדנת לימוד
מבנה הקוד
קוד 28810 |808ו/ מורכב משלושה חלקים:
הצהרות (9חסו91ז90|9),
פונקציות (פחסו)סחגת),
תת-שגרות (65חטטסזסט5).
תצוגות שונות של המודול
אפשר לראות את הפרוצדורות במודול צמודות אחת לשנייה כאשר קו מפריד ביניהן,
תצוגה וו נקראת תצוגת מודול מלא (שש6ו/ 6וטססו |ו₪0), וניתן לראות אותן כל אחת
בנפרד, כשכל פרוצדורה ממלאת את כל המסך, תצוגה זו נקראת תצוגת שיגרה
(ש6ו 6ז0000ס0זק). כדי לעבור בין התצוגות השונות יש ללחוצ על הלחצניס
שבתחתית ובשמאל המסך. כדי לגשת לשיגרה כלשהי, בחר את שמה מתיבת הרשימה
שבראש ובימין החלון.
ניווט במודול בתצוגת המודול המלא
הניווט מתבצע בעזרת חיצי הגלילה, חיצי לוח המקשים, קְטַפָח, הספח, 6חסורוהא,
0ח=", או הזוזת תיבת הגררה שבין חיצי הגלילה.
ניווט במודול בתצוגת שיגרה
כדי לנווט בתצוגה זו, הקש חספ כשהסמן בשורה האחרונה במסך האחרון של
השיגרה (אס השיגרה גדולה ממסך אחד), כדי להגיע לשיגרה הבאה. הקש סשַפק
כשהסמן בשורה הראשונה במסך הראשון של השיגרה כדי להגיע לשיגרה הקודמת.
בניית תוכניות
| בפתיחת חלון הקוד נמצא בראשו שתי הצהרות. ההצהרה הראשונה:
5 0 86 086₪8 00 הסק0, מתייחסת לסדר ההשוואות במחרוזות,
* ליר:.. והשנייה : +סווקאם חסטקס, מכריחה אותנו להגדיר את סוג כל משתנה
שנשתמש בו. שתיהן מקובלות עלינו, ואפשר להשאירן כמות שהן. נלחץ על הח שליד
הלחצן בצד שמאל של סרגל הכלים, בתפריט שיופיע נבחר הליך (8זט60ס6סזס), או
בצורה חליפית, נבחר הליך (6016ססזק) מתפריט הוספה. בתיבת הדו-שיח שתופיע,
נשאיר את ברירת המחדל פונקציה (חסווסחט=) ונקרא לה 00. יכולנו גס להקליד בגוף
חלון הקוד את המילים ()400 חסוזסחט= ולהקיש זפזח=, מבלי ללחוץ על הלחצן להוספת
הליך (שיגרה). המשמעות הספציפית של פונקציה תתבהר בעתיד. בשלב וה, די
שנתייחס אליה כאל מסגרת שממלאים כדי לאפשר הרצת תוכניות. את לחצן
פרק 1: צעדים ראשונים | 23
האפשרות עבור טווח (06ח8) נשאיר בברירת המחדל שלו - ציבורית (סו|סטם).
משמעות אפשרויות אלו היא ששיגרה ציבורית ניתנת לקריאה מכל מודול במסד
הנתונים, כאשר שיגרה פרטית (ש16פעוזק) נגישה רק מהמודול בו היא מוגדרת. שגרות
פרטיות מאפשרות לנו לתת אותו שס לשגרות המופיעות במודוליס שוניסם במסד
הנתונים. כעת לח על אישור.
תוכנית 400: הפונקציה הראשונה שנבנה.
()00 חסטסחט= סווטטק
!68 8 85 זססטקר 60 6 8חו05 .00 6|קחחפאם '
'שימוש במחשב כמחשב כיס
5 + 6 א15090!
חסט6חט= 6ח=
הסבר לתוכנית 400: בשורה הראשונה מופיעים שס וכותרת הפונקציה: ()00. הגרש
בשורה השנייה מסמן שהטקסט שלאחריו הוא רק טקסט הערה, אס שורה שלמה היא
הערה, אפשר לכתוב את המילה !₪5 בתחילת המילה. ההערה מספרת לנו שבתוכנית
הראשונה נשתמש במחשב כבמחשבון. כתבנו את ההערה באנגלית ובעברית. כדי לעבור
לעברית, נלחצ על הלחצן חם שבשורת המשימות ונבחר 48 (או, בצורה חליפית, נקיש
+ ו-+וח5), כדי לחזור לאנגלית, נלחץ שוב על הלחצן שבשורת המשימות, או נקיש
שוב את צירוף המקשים. הפקודה האופרטיבית היתחידה בתוכנית היא:
5 + 6 א9000], שמשמעותה היא שנדפיס את התוצאה בחלון המיועד לתשובה.
בשורה האחרונה מופיעה הסיומת הסטנדרטית של הפונקציה (חסטסחט= 0סחם).
הרצה והידור תוכניות
מ להרצת הפונקציה, לחצ על הלחצן לך/המשך (08ח%ח0/00)) שבסרגל הכלים,
הקש 5=, או בחר לך/המשך מתפריט הפעל.
₪ כדי לוודא שלא שגינו, נבצע הידור (חס80!וקחז60) שהוא פעולת תרגוס. אס
שגינו, 000698 תצביע על השגיאה. לדוגמה, שנה את 500% ל-א0סם 830,
והדר את הפונקציה על ידי בחירת העבר קומפילציה של מודולים טעונים
(000|69!/! 108060 6וק60) מתוך תפריט אתר באגים (הַטס6כ) או לחיצה על הלחצן
המתאים. נקבל הודעת שגיאה, וכאשר נאשר את קבלת ההודעה, המילה 53400
תואר. נתקן את האיות ונבצע שוב הידור, ונראה ש-200885 כבר אינה מתלוננת.
4 842 97 400088 - סדנת לימוד
שמירה, הדפסה ויציאה מ-66655/
אחרי שהרצנו את התוכנית הראשונה, נרצה לשמור אותה. סגור את המודול על ידי
בחירת סגור (01056) מתפריט קוב (פ8וו=), או לחצ על א בצד ימין למעלה של חלון
הקוד (דאג ללחוץ על % שבחלון הפנימי ולא בחיצוני, כדי לא לסגור את 00695
עצמה). בהודעה שתופיע לח כן, כלומר, אתה רוצה לשמור שינויים במודול1. הקלד
את השס הרצוי, נקרא למודול תכנות. בעתיד, כדי להיכנס למודול הרצוי, בחלון מסד
הנתוניס, נאיר את המודול הרצוי ונלחץ על עיצוב. אם קיימות כבר מספר פרוצדורות
במודול ותרצה להיכנס לפונקציה שבנינו, תלחץ על הח שליד תיבת הרשימה
6 זז שבימין חלון הקוד (העבר את מצביע העכבר מעל הת כדי להציג תיאור
כלי - סוד|ססד ובו שס התיבה), ותבחר את שס הפונקציה מהרשימה שתוצג.
אפשר גם לשמור את הפרוצדורה מבלי לסגור את המודול, על ידי לחיצה על הלחצן
המתאים בסרגל הכלים, בחירת שמור (6צ58) מתפריט קוב (118=), או הקשת 6י.
אפשר להדפיס שיגרה (שיגרה/פרוצדורה/הליך - לעניין ספר וה, כולס
במשמעות 6זט0060זק) על ידי בחירת הדפסה (חוזש) מתפריט קוב (פוו=),
הקשת ם", או לחיצה על הלחצן המתאיסם בסרגל הכלים. בשתי הדרכיס הראשונות,
ניתנות כמה אופציות להדפסה. הראשונה היא הכל, כלומר להדפיס את כל המודול,
השנייה היא עמודים, כלומר הדפסת עמודים מסוימים, והשלישית היא להדפיס
רשומות נבחרות, כלומר רק את הרשומות שנבחרו מראש לפני הפנייה להדפסה (שיטת
הבחירה תוסבר בהמשך).
אפשר לצאת מ-4/66655 על ידי בחירת יציאה (אם) מתפריט קובצ (8ו=), או לחיצה
על % שמופיע בצד ימיו למעלה של החלון החיצוני.
כללים למתן שמות
מודולים ופונקציות :
אורך השס עד 64 תוויס
אסור לכלול את התווים !יי אנ יי
אסור שהשסם יהיה מילה שמורה.
דרישות נוספות לפונקציות :
השס חייב להתחיל באות
אסור לכלול רווחיס בתוך השס
= השם חייב להיות ייחודי במודול.
פרק 1: צעדים ראשונים | 25
משתנים
התוכנית הראשונה הדגימה כיצד המחשב פועל, אבל לא הצדיקה את השימוש
במחשב, שהרי מחשב כיס מסוגל לעשות אותו דבר. עוצמת המחשב מבוססת על
היכולת שלו לעבוד עם משתנים. משתנה הוא השם שנותניס למקוס בזיכרון שיוכל
להחזיק את הערך שנציב בו. בעזרת משתניס ניתן לכתוב תוכנית כללית שתעבוד בלי
קשר לערך המדויק של הנתונים. רק בעת הרצת התוכנית, מציביס את הערך המדויק
של כל משתנה, ומקבלים תוצאה מדויקת. לו החיינו מזיניס ערכים שונים היינו
מקבלים תוצאה שונה, בלי שום צורך לשנות את פרטי התוכנית. שם משתנה חייב
להתחיל באות, אורכו עד 40 תווים, והוא מורכב מאותיות, ספרות ו- יי 'י (בדרך כלל
מפרידים בין מיליס על ידי אותיות קטנות וגדולות, למשל חחאוםזסח!חסו, ולא
חחום 01 חזחסוש).
תוכנית 01:
(ז%600ח1 45 2וחט)סחו ,ז0606ח1 35 1 ותטצשחו)01 הסטסחטת 6וופטק
]68/00 8 85 זס6טקר 60 6 8חו05 .₪01 6|קוחפאם '
' שימוש במחשב כמחשב כיס
2חטחו + 1 ףשחו 8 " :5| 5זסטהטח 6 01 החפ שח ד" אס 50
חסססחט= סח
הסבר לתוכנית 401: תוכנית ו דומה לתוכנית הראשונה, מלבד השינוייס הבאים :
9 בכותרת הפונקציה, בתוך הסוגריים נרשוס את שמות המשתנים, שייקראו
הזחו ו-2התואזחו. הס מוגדריס כמשתנה מסוג 6861+ח!, ואת אומרת: מספר
שלם. חייבים להגדיר למחשב את סוג המשתנה, כדי שהמחשב יידע כמה מקוס
להקצות לו. למשל, למספר שלס המחשב מקצה 2 בתים, שבהם אפשר להחזיק
מספרים מ: 32,768- עד 32,767. בהמשך נראה שלמשתנים מסוגים שונים
המחשב מקצה כמויות שונות של מקוס. שס כל משתנה מסוג ז6606ח! מתחיל
בקידומת )חו, כדי שכנראה אותו נזהה מייד את סוגו. כאשר כולליס שמות
משתניסם בכותרת הפונקציה, המשתניס נקראיס פרמטרים (פזסו6ַחחִ8ּזבּק).
9 בגוף התוכנית, במקוס 5 + 6, שנקראים קבועים (19ח519ח00), נכתוב
2חטאזחו + 1 וחט)זחו. פקודה זו גורמת לכך שנוכל למצוא את סכוס כל שני
ערכים שנזין במקוסם 1וחטאשחו ו-2וחטצחו.
= בפלט שילבנו גס מלל, כדי שמשמעותו תהיה ברורה. את המלל הקפנו בגרשיים,
והפרדנו בין המלל והתוצאה באמצעות הסימן 8, סימן וה מחבר את המלל
והתוצאה למחרוזת אחת. עשינו זגאת משום שהפעולה 980% מסוגלת לפלוט
רק מחרוזת אחת. שים לב שהכנסנו רווח בסוף המלל לפני הגרשיים, כדי שבפלט
יופיע רווח בין סוף המלל והתוצאה המספרית.
6 82₪/ 97 200088 - סדנת לימוד
אי אפשר להריצ תוכנית וו כפי שהרצנו את התוכנית הראשונה, משוס שהתוכנית
דורשת ערכיס עבור שני המשתנים 1חטףזחו ו-2חטףזחו, והשיטה הראשונה אינה
מאפשרת הזנת נתוניס. במקוס השיטה הראשונה, נבצע את הצעדיס הבאים:
1 לחצ על הלחצן חלון איתור באגים (שססחו/ פָטססכ), בחר אופציה זו 3
מתפריט תצוגה או הקש %00.
2 בחלון שמופיע, בחלק התחתון, כתוב: (24,56) 401 ? והקש זסזחם, כאשר הסמן
הוא בסוף המשפט. כמובן, מותר לרשוס כל שני מספריס בתנאי שסכומס נמצא
בטווח המותר למספר שלס.
אופרטורים מתמטיים
בתוכנית הקודמת השתמשנו באופרטור מתמטי אחד, '+''י. ניתן להרכיב ביטויים
אריתמטיים על ידי שילוב מספר משתניס או קבועיס בעזרת אופרטורים מתמטיים.
למשל, ג + 7 הוא ביטוי אריתמטי המשלב את המשתנה // עס המספר השלם 7 בעזרת
האופרטור 'י+''י. בביטוייס אריתמטיים ניתן להשתמש באופרטורים שלהלן:
= סוגריים: 0
= פונקציות : יוסבר בהמשך
העלאה בחזקה: א
שליליות: ואת אומרת - כאופרטור על אופרנד אחד, למשל - או 12-
9 כפל: *
9 חילוק: /
חילוק שלס: (ואת אומרת: התוצאה של 4 7 היא 1 ואין מטפליס בשארית)
= שארית: ססו (זאת אומרת: התוצאה של 4 ₪ם0ס/! 7 היא 3)
9 חיבור: +
9 חיסור: -
הסדר בו הצגנו את האופרטורים אינו מקרי. הוא משקף את סדר הקדימויות. דוגמה:
5 / 15 + 15 שווה ל-18 ולא ל-6, משוס שקודס מבצעים פעולת חילוק ומקבליס 3,
ואחר מוסיפים 15. אם נוסיף סוגריים, שהס בקדימות העליונה ונכתוב 5 / (15 + 15),
הערך באמת יהיה 6, משוס שקודסם מבצעיס את תוכן הסוגריים, דהיינו פעולת חיבור
שתוצאתה 30, אחר מחלקים ב-5.
פרק 1: צעדים ראשונים | 27
סוגי משתנים
כפי שהזכרנו, בעבודה עס משתנים מסוג זפַפָסוח! אנו מוגבליס למספריס ותוצאות
שאינס חורגיס מטווח המספריס השלמים. מה אס הבעיה מחייבת מספריסם גדוליס
יותר! קיימיס עוד 5 סוגי משתניס מספריים והם:
| שג | | שות = = דוגמה עם קידומת נכונה | בית =
5 טח וכ
ממשיים עד -/+ 3.4 בחזקת 38 56 85 הטח050ח5 וזו
ו
י
ממשיים עד -/+ 4.9 בחזקת 324 06 88 החטח00!50 חזום
4 ספרות עשרוניות עד -/+ 922 | עסחפזזטו0 85 וחטח60זטס חחום
טריליון
0-25 6 885 ההטח160עם חחום
נוכל עכשיו לכתוב תוכניות עס סוגיס שוניס של משתנים ונתוניס.
תוכנית 802: חישוב אורך וקטור.
ז סח 5 1 ,שחו ,0606ח1 5 1אסחו)202 הסטסחטת 6וופטק
(%60061ח1 5 2 ,שחו ,ז0006ח1 5 2אסחו
סע 3 01 הזחח6! 6 חהווסחו=] .302 6!קרתהאם '
'שימוש במחשב כמחשב
56 5 הז0ַח6 81ַח5 וחוס
(2 */ (2 שחו - 1/שחו) + 2 * (2אשחו - 1אשחו))זס5 = 60% 501
רזחש 1פח5 8 " :15 ז0סס6ע 6 01 הזחש סד" אס 5
חסססחט= סחם
0 =
בתוכנית 402 כללנו מספר חידושיס והם:
= חלוקת פקודות ארוכות למספר שורות: בסוף השורה הוספנו לפחות רווח אחד,
אחר הקלדנו את התו יי יי והמשכנו את הפקודה בשורה הבאה. גם הערה אפשר
להמשיך כך.
= לא כתבנו את כל המשתנים כפרמטרים. התוצאה, שתיקרא חִזְחְח1.6סָח5, הוגדרה
כמשתנה בתוך התוכנית בעזרת פקודת הצהרה (1ח6ח5%916 ₪ח800ז60|8).
כשכותבים את פקודת ההצהרה: 6ופֶחו5 35 חִזְחֶח0 ופָח5 חזום, התוכנה מכירה
את המשתנה חזַחָח0 1פָח5 כמשתנה מסוג 6ְוַפָחו5. המילה וחום מודיעה שאנו
עומדיס להצהיר על משתנה, ומכתיבה למחשב להקצות לו מספיק מקום בזיכרון.
= הפקודה: (2 * (2ץ)חו - 1 /זחו) + 2 * (2אשחו - 1אחו))ז50 = חְוּפַחס.1סֶח5 נקראת
פקודת הצבה (%ח518%0700 זחס6ות55!0), משום שמציבים את ערך הביטוי
האריתמטי שמופיע בימין הפקודה במקוס הערך הקודם של המשתנה שמופיע
בצד שמאל. בצד שמאל של פקודת הצבה חייב תמיד להופיע שס משתנה.
8 82/ 97 200088 - סדנת לימוד
במקוס להצהיר על משתנה בתוך התוכנית, יכולנו לייחס את התוצאה לשם
הפונקציה, כמו שעשינו בתוכנית 403. שיס לב להבדליס בין 402 ו-403 :
9 מוסיפים את המילים פופָחו5 48 בסוף הכותרת ב-803. משמעות המילים
היא שהתוצאה, שתאוכסן בשם הפונקציה, היא מסוג פופָחו5.
אין בורך להגדיר את המשתנה תְִפַח.ַפָח5.
בפקודת ההצבה רושמיס את שסם הפונקציה בצד שמאל, והוא מחליף את
המשתנה חִזְחַח6. 1חָח5 שבתוכנית 02.
פקודת א5080%! אינה נחוצה, שהרי התוצאה מוחורת עס שס הפונקציה,
וכבר ביקשנו אותה בפקודת הרצת התוכנית: (₪03)10,02,22,76 1.
.0 הערה:
בנוסף לפונקציה 50 להוצאת שורש, יש פונקציות מתמטיות נוספות,
למשל חו5, 008, ועוד. את פרטי פונקציות אלו, ופרטי פונקציות
מתמטיות אחרות ניתן לראות על ידי לחיצה על הלחצן סורק
האובייקטים (זספשסזם 801[פ0), בחירת הערך 84/ בתיבת הרשימה
בצד שמאל למעלה של חלון סורק האובייקטים, בחירת :₪3 מתוך
החלונית השמאלית 6!8855865, ובחירת הפונקציה הרצויה בחלונית
הימנית. תיאור מפורט של הפונקציה יופיע בקטע התחתון של החלון.
תרגיל 1:
כתוב פונקציה שמקבלת כקלט את מספר שעות עבודה ושווי שעת
עבודה של פועל, ופולטת את השכר המגיע לו.
תרגיל 2:
בתרגיל הקודם, נניח שמס הכנסה הוא %א, והמשכורת כוללת כל
חודש החזר הוצאה נלווית עבור ביגוד, כאשר המס אינו חל על ביגוד.
הרחב את הפונקציה בהתאם.
תרגיל 3:
כתוב פונקציה שמקבלת כקלט את גובה האדם באינצ'ים ופולטת את
גובהו בסנטימטרים. זכור שאינץ' אחד שווה ל-2.54 סנטימטרים.
תרגיל 4:
על המרת שקלים לדולרים נגבים דמי עמלה. כתוב פונקציה שמקבלת
את הנתונים הבאים: חו|850989ח5 - מספר השקלים, 02ח9 ח5 -
אחוז העמלה, בדרך כלל הוא נע בין 1/8% ל-1/2%, ז88ה05ח5 -
השער הנוכחי, כלומר מספר השקלים בדולר אחד. פלט הפונקציה יהיה
מספר הדולרים שיתקבלו תמורת השקלים.
פרק 1: צעדים ראשונים | 29
תרגיל 5:
כתוב פונקציה שקוראת שני מספרים: מידות מלבן. הפלט יהיה היקף,
שטח, ואורך האלכסון. יש לכלול הערות, כדי להסביר את המשתנים
ושיטת החישוב. הפלט יהיה משפט שיציג את משתני הקלט והפלט.
תרגיל 6:
כתוב פונקציה שקוראת שני מספרים: בסיס, ואורך היתר במשולש ישר
זווית. הפלט יהיה גובה המשולש, סינוס, קוסינוס, וטנגס הזווית שבין
היתר לבסיס. יש לכלול הערות, כדי להסביר את המשתנים ואת שיטת
החישוב. מבנה הפלט יהיה משפט שיציג את משתני הקלט והפלט.
תרגיל 7:
כתוב תוכנית שמקבלת כקלט אורך, רוחב, ועומק של תיבה מלבנית.
כתוב פונקציה שמחשבת את: שטח הדפנות מימין ומשמאל, שטח הגג
והבסיס, שטח הדפנות מלפנים ומאחור, נפח התיבה. אם מ"ר של נייר
אלומיניום עולה 30 שקל, כמה יעלה לעטוף את כל התיבה?
תרגיל 8:
תלמיד קיבל 3 ציונים במשך הסמסטר. כתוב תוכנית שתחשב את
ממוצע הציונים, ההפרש שבין כל ציון והממוצע, הסטייה המוחלטת
(כלומר הערך המוחלט של ההפרש) של כל ציון מהממוצע, ואת סטיית
התקן של הציונים. סטיית תקן של 3 הציונים 1א, 2א, ו-3א מוגדרת כך:
+ + )3 = ח0א810ח 811/81
תרגיל 9: 3)03-2
כתוב תוכנית שמקבלת כקלט מספר א, ומחשבת שורש, ריבוע,
ומכפלה ב-5 וב-10 של 3 המספרים שלפני א, ו-2 המספרים שלאחריו.
תרגיל 10:
נתון רדיוס מעגל, כתוב שיגרה שמדפיסה את הקוטר, השטח, וההיקף.
תרגיל 11:
כתוב פונקציה שמקבלת כקלט טמפרטורה = בסולם פרנהייט,
ומחשבת את המספר המתאים בסולם צלסיוס. נוסחת המעבר היא:
= = 9/5 * 6 + 2
תרגיל 12:
כתוב פונקציה שמקבלת מספר חשבון בבנק, יתרה קודמת, וכמות
הכסף להפקדה או למשיכה. הפלט יהיה היתרה החדשה בחשבון.
0 82/ 97 400088 - סדנת לימוד
* תרגיל 13:
% כתוב פונקציה שמחשבת את עלות הדלק לנסיעה, כאשר נתון מחיר
ליטר דלק, מרחק הנסיעה, וקילומטרז' המכונית לליטר דלק.
תרגיל 14:
כתוב פונקציה שמקבלת משקל אדם בליברות, ומדפיסה את משקלו
באונקיות, בקילוגרמים ובגרמים. לידיעתך, ליברה אחת שווה ל-16
אונקיות ול-0.45359 קילוגרמים.
שיטות נוספות לקלט ופלט בתוכניות
תוכנית 404: שיטות נוספות לקלט ופלט.
()04// חסטסחט= סווטטק
.60% ]סח 24 455106 .|63 6הסחכ 3 01 הז0ח6! 6 5מהַב|ט08|6 '
זז 5 88ח5שחו הזוס
הז 5 האהכסחו חחוס
חן 5 השוהח5חו וחוס
חן 5 חה66זכססחו הזוס
(0 ,"שעת התחלה" ,"באיזו שעה התחלת לדבר") %אסט)טסח1 = 88ח5זחו
(0 ,"דקת התחלה" ,"באיזו דקה התחלת לדבר") %אסםזטקח1 = 8)הסטחו
(0 ,"שניית התחלה" ,"באיזו שנייה התחלת לדבר") %א0פ)טסח1 = 8ץוחח5זחו
(0 ,"אורך השיחה" ,"כמה זמן שוחחת") %אסטלטסח1 = ח66ז0סחו
ה66ז00ח! + הץוהחהפטסחו = 8שוהח5זחו
0 8ץוחחפלחו + האהכסחו = 8אהכסחו
0 סס1!] השוחחפטסחו = 8שוחח5זחו
0 8א08+חו + 88ח5שח! = ההח5זחו
0 סס1!] 8אהססחו = )בשחו
4 100!] 88ח%5ח! = ההח5זח!ו
8 סח ; " שעת סיום השיחה: " זחוזק. פטס
8הסשחו ; " דקת סיום השיחה: " זחוזק. פטס
הוחח5לחו ; " שניית סיום השיחה: " זחוזק. פטס
חסטס6חט= 6ח=
הסבר לתוכנית 404: תוכנית זו קולטת את השעה, דקה ושנייה של תחילת שיחה, וגס
את אורכה, ומחזירה את השעה, דקה ושנייה של סיוס השיחה. אנו מתחילים עס
פקודות הצהרה עבור המשתנים. את תוכן כל אחד נקלוט בעזרת פקודה חדשה:
אסםזטסח!ו, שגורמת לכך שתיבת קלט תופיע על המסך ותאפשר קליטת ערך משתנה
מסוג כלשהו. לפונקציה אספזוקח! שלושה פרמטרים, הראשון הוא התוכן שיופיע
בתיבה, השני הוא הכותרת והשלישי הוא ברירת המחדל. במקרה שלנו, קבענו ברירת
פרק 1: צעדים ראשונים | 31
מחדל 0 לכל המשתנים, ונתנו לכל תיבה שאלה וכותרת מתאימה. חישבנו בעזרת
פקודות הצבה המורכבות מביטויים אריתמטייס את זמן סיוס השיחה, והוצאנו אותו
כפלט. בדוגמה זו השתמשנו בפקודה חדשה לפלט, זחוזח.פָטס6כ. פקודה זו מסוגלת
להדפיס מספר שורות אחת אחרי השנייה, מבלי לדרוש את אישור המפעיל לאחר כל
שורה, כמו שזה מתבצע בפקודת א9080!]. גס פה, שילבנו מלל עס הפלט כדי
שמשמעותו תהיה ברורה, ודאגנו שיהיה רווח אחד בסוף המלל כדי להפריד בין המלל
והתוצאה המספרית. הפעם, הפרדנו בין המלל והתוצאה בנקודה פסיק, סימן הגורס
לשני הפלטיס באותה שורה להופיע צמודיס כתוצאה מפקודת +חוחזק.פָטס6כ. בעזרת
הפקודה +חוזק. 8009 אנו יכוליס להציג את כל הפלט בבת-אחת.
פקודת א5980)/ - הרחבה
פקודת א5420!\ שבה השתמשנו בתחילת הפרק, יכולה לקבל 3 פרמטרים, כפי שניתן
לראות מתוכנית 805. תחביר הפקודה המורחבת נראה כך:
"התקדמות ב-400655" ,65 ,"הפקודה עם כל 3 הפרמטרים" א5480!!
הפרמטר הראשון הוא המחרוזת שתוצג בתיבה, הפרמטר השני הוא קוד הצגה,
והשלישי הוא כותרת התיבה. הפרמטר השני מבוסס על הקוד כדלהלן: 0 - לחצן
אישור, 1 - לחצן אישור וביטול, 64 - סמל מידע (תמונת האות 1 ). אס מחבריס את
הקודיס 1 + 64, נקבל 65, ותוצג תיבת הודעה עס סמל מידע ולחצני אישור וביטול.
קיימיס קודיס אחרים, אך כל סכוס הוא ייחודי. כדי לראות את הקודים האחרים,
סמן את המילה א8400%!, והקש 1=, או בדרך חלופית: בתפריט עזרה, בחר תוכן
ואינדקס (08%ח! 0ח8 %5ח000%0), לחצ על הכרטיסיה אינדקס, הקלד בתיבת הטקסט
הריקה את המילה 15080%, ולחצ עְ8!ס9וכ₪ או הקש זפוח=. שיס לב, שעבור הפרמטר
השני ניתן להשתמש בסכום של קבועים בעלי שמות המצייניס את השפעתם. למשל,
בדוגמה שלנו יכולנו לכתוב:
"התקדמות ב-260655" ,חסוהוזסזח1פ/ + |66ח68)טע ,"הפקודה עם כל 3 הפרמטרים" א5480!
הקבוע הראשון מחליף את הקבוע 1, והשני את הקבוע 64. הקידומת פצ מרמות על
6 |808!/.
תוכנית 805: פקודת א8980!.
()805 חסססחט= סווטנוק
" התקדמות ב-000655 " ,65 ,"הפקודה עם כל 3 הפרמטרים" א5480!
חסססחט- סחם
תרגיל 15:
עבור על התרגילים הקודמים, ושפר את הקלט והפלט בעזרת השיטות
החדשות שהוצגו.
2 8/ 97 200088 - סדנת לימוד
עריכה
לפעמים, בעת הקלדת התוכנית, חלה שגיאת הקלדה שדורשת תיקון. לפעמיס אפשר
להעתיק קטע מתוכנית מסוימת לתוכנית הנוכחית ולחסוך זמן. לפעמים רוצים לחפש
מילה מסוימת בתוכנית קיימת כדי לזכור כיצד לתכנת קטע כלשהו. את כל הדבריס
האלה ניתן לעשות בעזרת העורך של 0 / 00055.
4
3
מחיקת תווים: אפשר למחוק את התו שלפני הסמן על ידי הקשת !8 (שקייס
פעמייס במרבית המקלדות). אפשר למחוק את התו האחרון שלפני הסמן על ידי
הקשת 280650808 (בשורה העליונה של המקלדת, עס חצ הפונה שמאלה). כמובן
אפשר לחזור על הפעולה מספר פעמים, כדי למחוק מספר תוויס אחד אחרי השני.
בחירת קטע: לפני שמוחקים, מעתיקים, או מעבירים קטע, יש צורך לציין באיוה
קטע מדובר. פעולה זו נקראת בחירה או חסו56!601, והיא נעשית באחת מהדרכים
הבאות:
= מילה: לחץ לחיצה כפולה על העכבר.
שורה: לח בצד השורה, או גרור את העכבר על פני כל השורה. המשך לגרור
על השורות האחרות.
קטע כלשהו: לחץ על הלחצן השמאלי של העכבר בתחילת הקטע, הקש
וח5, ואחר לחץ על לחצן העכבר בסוף קטע הבחירה.
כל המודול: בחר ||/ 59/9061 מתפריט עריכה, או הקש 4י.
מחיקת קטע : אחרי סימון הקטע, מוחקים אותו על ידי הקשת |₪8.
העברה והעתקה: העברת קטע מוגדרת כהעברת שטח נבחר ממקוס אחד למקוס
אחר באותה שיגרה או בשיגרה אחרת. הקטע נמחק ממקומו המקורי, ומועבר
למקוס החדש. בהעתקה, הקטע מועבר למקומו החדש, אך גס נשאר במקומו
המקורי. העברה מורכבת משתי הפעולות גזּירה והדבקה, העתקה מורכבת משתי
הפעולות העתקה והדבקה.
גזּירה: העתקת הקטע מחלון העבודה ללוח של פאוססחו/ המכונה 0זהּסםסווס,
ומחיקתו ממקומו המקורי. הפעולה מתבצעת (אחרי בחירת קטע) על ידי: לחיצה
בלחצן המתאיס בסרגל הכלים, הקשת א, או בחירת גזור (001) מתפריט עריכה
0ו0ם). (הסימן * מציין הקשה על מקש 01% בשורה התתחתונה של לוח המקשים,
ואס כן א*, משמעותה הקשת א בזמן שמקש 601 לחוצ גס הוא).
העתקה : העתקת הקטע מחלון העבודה ללוח מבלי למחוק אותו ממקומו המקורי.
הפעולה מתבצעת (אחרי בחירת קטע) על ידי: לחיצה בלחצן המתאיס בסרגל
הכלים, הקשת 6 או בחירת העתק (עץ600) מתפריט עריכה (501).
הדבקה: העתקת קטע מהלוח לחלון העבודה. הפעולה מתבצעת על ידי: לחיצה
בלחצן המתאיס בסרגל הכלים, הקשת %/* או בחירת הדבק (עְ0ק00) מתפריט
עריבה (5011).
פרק 1: צעדים ראשונים | 33
בנוסף לדרכיס שהוזכרו, ניתן להעביר קטע על ידי בחירת הטקסט ואחר גרירתו
למקוס הרצוי. ניתן גם להעתיק קטע על ידי בחירת הטקסט, ואחר גרירתו
למקוס הרצוי בוּמן שמקש 0% לחוצ.
תיקון טעות: אס טעית בומן מחיקה, העתקה, העברה, או הדבקה, אפשר
להתחרט על ידי: הקשת 2י, בחירת בטל (סטח() מתפריט עריכה, או לחיצה על
לחצן בטל (ססחש). כדי להחזיר מה שביטלת, אפשר לבחור: בצע שוב (₪600)
מתפריט עריכה, או ללחוץ על הלחצן בצע שוב (4600). אפשר להפעיל בטל כמה
פעמים שרוציס כדי לבטל אחת אחת את כל הפעולות שעשית מאז תחילת
העריכה או ההקלדה, ואפשר גם לשחזר אותן אחת אחת.
חיפוש: כדי למצוא מילה מסוימת בשיגרה או במודול, הקש =* או בחר חיפוש
(0חו=) מתפריט עריכה ו0). אחרי החיפוש הראשון, אפשר להמשיך את החיפוש
על ידי הקשת 3ת.
החלפה: כדי למצוא מילה מסוימת, ולהחליף אותה במילה אחרת: הקש 4*, בחר
החלפה (₪60!368) מתפריט עריכה (50). אחרי ההחלפה הראשונה, אפשר
להמשיך את ההחלפות אחת אחת על ידי לחיצה בהחלף (4601306), או לוותר על
החלפה מסוימת וללחוץ את הלחצן חפש את הבא (אסצז חסחו=). אפשר גס להחליף
את כל מופעי המילה על ידי בחירת החלף הכל (||/ 590!806).
מחרוזות
משתנה אינו חייב להחזיק רק ערכיס מספריים. הוא יכול גס להחזיק שמות, סוגי דס
או כל ערך מילולי אחר. משתנה זה הוא מסוג מחרוזת (חַח5%), והוא יכול להחזיק עד
5 תווי (בתיס) טקסט. מחרוזת מוצגת תמיד בתוך גרשייס. כבר שילבנו מחרוזות
בתיבת הקלט אסם)וסח! וגס בפלט בפקודות +חוז=. 600כ ו-אסם 80.
קליטת מחרוזות
נבנה עוד פונקציה. קודם נעתיק את התוכנית הקודמת על ידי העברת הסמן עליה
והקשת 6י. נפתח פונקציה חדשה, ונקרא לה 406. כאשר הפונקציה נפתחת, נקיש א
והפונקציה המקורית תופיע. בנקודה זו, נתחיל לשנותה, עד שתוכנה יהיה
כבתוכנית 06/.
תוכנית 406: התוכנית השלמה
הגדרת משתנה המחזיק מחרוזת ' 50108 85 56ח₪6500 הזוס 1
("ריק" ,"תיבת קלט למחרוזת" ,"הזן מסר") אסט?)טכח1 = 56ח₪6500 2
" התקדמות ב-260655 " ,65 ,6500056 אסם 50 3
הסבר: בשורה הראשונה, חוכ מצייןו שאנו עומדיס להגדיר משתנה בשס 86ח6500,
ומסוג פַחוז51 (מחרוזת). אורך המחרוות אינו מוגדר, והמשתנה יקבל ערך כתוצאה
4 842/ 97 400088 - סדנת לימוד
ממילוי המחרוות במספר מסוים של תווים. כדי שאורך המחרוזת יהיה קבוע, כותביס
ח * פָחוז51, כש-ח הוא האורך הרצוי.
המספר בתחילת השורה אינו הכרחי והוא נקרא מספר שורה (זפסוחט\ 8חו1). אפשר
גם להוסיף תווית ((1.809), שהיא שם ולאחריו נקודתיים.
בשורה השנייה, קלטנו ערך בעזרת אסם%טסח!, והכנסנו אותו למשתנה 56ח₪68500.
בשורה השלישית, הוצאנו כפלט את התוכן שהזנו למחשב כתוצאה מהשורה השנייה.
אופרטורים למחרוזות
האופרטור היחיד שיש לו משמעות בהקשר של מחרוזות הוא פעולת + (או 8) המאפשר
קישור (ח0סו00₪68%0081) של מחרוזות. יתרון השימוש באופרטור 8 שהוא אינו
דו-משמעי, שהרי אין לו משמעות כלשהי בחיבור אריתמטי, רק בקישור מחרוזות.
פעולות נוספות מופעלות על מחרוזות בעזרת פונקציות.
תוכנית 807: שימוש במחרוזת.
()07 חסססחט= שווסטק
58 5 0266זח136! וחוס
0חו50 45 5001 וחוס
58 5( +50 הזוס
590 5 28חם וחוס
1 5 0288 ,1056007 45 וחסא8ו חחוס
("ה" ,0%)10ח501 א5000\ :ה
("")56 א00 ₪150 :8
"860" + (65)%זח6 א0ם ₪150 :6
"ץ00 6000 8 וחה 1" = 266סזח30₪ :ם
₪: 500 = ]6%)]180070260, 4(
=: 506 = ₪100%%)]36070266, 3(
4 01 הזחַח6! 8 36 +וב56' (4 ,8 ,70266חה1109)1136] = 28רחם :₪
(וו50 חן 13) הזטס6ז] 63771806 300 ,65חו| 06הזהק56 60 וחס
(וו450 חן 10) 61660חו! סחה וח6
= (10)%זח6 8 (13)%ז 0 .8 +50 8 " :15 6חהוחחו60ס שד" אס8 ₪50 :₪
= (10)%זח0 .8 (13)%זח6 8 501 8 " :15 60ח6 סחד .8 "
8וחם .8 ":15 1006 שת ך .8 "
| חו 0818 +56 0 3|50 6 ,0חו50050 8 007860 60 ץ|חס +סח 560 6 ץח טוח וח
חס 6 חב 01 6%! 6 חס 5וה6קקבּ 6 6856 הסוח חו ,0ַהו050ט5 6 חו הסוסבסס| 5060106 בּ
" 080" = (4 ,8 ,70266ח186/)%סוו :1
זי + " :15 80חו50 60חַהבח0 6חד" אס ספ :3
.50 8 ]0 ה0%6ח6! 66 65חר06607 ח6 | הסטסחטז סד '
(136070260])ח6 1 8 " :15 507189 ושח 6 01 הזח6! סד" אס 50 :>
פרק 1: צעדים ראשונים | 35
הסבר:
50058 8 01 הס 68ס! 6חל פַחווסחו זס+ 50ח1 6פט '
8חו50 הסעוף 8 06ופח1 '
("ץסט" ,70266ח15₪)1186 = וחסאפו : |
הסאה 8 " :15 חס6300ס! סד" א80 פוא :ו
5 0 ה6300ס! הסוחצו וחסז 585 הסוחעש 5₪ח1 01 הס 500000 ב '
ח066 85 הסטהסס! 8חודוב50 ב' ("1" ,7026%ח116! ,3)ספח1 = וחס6בו :א
6 0608056 0 06 |!ושו |טפסז 06 1 זט3/1 15 3 66חו5 .0060ב *
0 ז'חסעצ'
החסה ₪ " :15 הסוה6ס! סד" אס 50 :0
חס 56600 3 5 פוחל ' (0 ,"שְסם" ,260סח6בּ1!] ,5)1ח1 = וסאפ :ק
60 15 ה0ו0080! חחוד5%91 6 6ז6] . הסטסחטז ₪6 זס '
0 ,5605101/6 6856 15 הספוזה קר 60 6 58/5 0ח6 6 8% 0 שחד '
6 ,0 01 50680ח1 1 השועו סט 480 . "סט" חח +'הסצו 6 6זסה '
.560516 6856 ח066 8/6 +סח 6!טסצ הספוזהקרס6 '
(רח0א13) 5 + " :15 חסטהסס! סד" אס8ספו :₪
6 סל הוח ה
₪: 18610266 = )(0856%)" 6000 08" (
| "0ח6" .8 (0261ז86|)רחז ד | 8 "50" ₪ " :15 וחו 168 סחד" 150% :5
= (10)%זח0 .8 (9)13זח6 6
| "0ח6 " .8 (70261ה186)וחוזד₪ 8 " :15 חחוש %חוז סחד 6"
= (10)%זח6 8 (13)%זח6 86
"חס" .8 (0260ה186])רחו ד 8 "5006" ₪ " :15| חחוש ופוסל החד .8 "
"אני ילד טוב ירושלים" = 1186070260 ₪
: 500 = 1 609)]1806070260, 3(
(7 ,40%9)1186070266ו₪ = +50 :
4 0 ה0%ח6! 8 3% +זהז5' (7 ,5 026%זח0)86ו1] = 28וחם :/
= (10)%זח0 ,8 (9)13זח6 8 +1הז5 8 " :15 סהוחחופס סד" אספספון :א
= (10)%זח6 8 (4)13זח0 86 501 8 " :15 606 סחד 6"
חח 8 ":5| 100!6 סד 8"
חסטס6חט= 6ח=
9 2: הפונקציה (ז008,ח)98ח57 בונה מחרוות באורך ח המורכבת מ-ח הופעות של
2
16
התו ז008. פה בנינו מחרוזת המורכבת מ-10 הופעות של האות 4. פונקציה דומה
היא: (ח) 5080689 שבונה מחרוזת של ח רווחיס.
58: לכל תו יש ייצוג מספרי פנימי במחשב. שס הקוד הוא קוד ו850. הפונקציה
(ז80)08/ מציגה את הקוד עבור ז8ח0. פה הצגנו את הקוד עבור האות 4 שהוא
5 (אך הקוד עבור 8 הוא 97).
84 97 400655 - סדנת לימוד
3
3
6: הפונקציה %זח6 היא ההופכית של הפונקציה ₪86, כלומר, נתון קוד |ו₪50 של
תו כלשהו, והפונקציה מחוירה את התו עצמו. הארגומנט 65 יחזיר את התוצאה
, כפי שכבר ראינו בסעיף הקודם. בנוסף, קישרנו את המחרוזת ₪00, כך
שהתוצאה הסופית תהיה הצגת 0 86ג.
ח-ם: מגדיריסם מחרוזת בשם 0260זח80!. הפונקציה (026%,4זח076)!80 |
שולפת את 4 האותיות השמאליות ביותר במחרוזת (ח8 ), הפונקציה
(₪0019)!13677020%,3 שולפת 3 אותיות ימניות במחרוזת (שֶספ), והפונקציה
(7026%,8,4ח05)//30ו1/! שולפת את 4 האותיות האמצעיות החל ממקוס 8 (0000).
הכוונה היא שבעת ההצגה, ההתחלה, האמצע והסוף יופיעו בשורות נפרדות. כדי
לגרום לכך, מוסיפים את שני התווים המיוחדים - הזט₪36% 0878806
ו-1100-680. היות ואי אפשר להזין תוויס אלה באמצעות לוח המקשים,
מוסיפים את קוד |ו80 שלהס למחרוזת להדפסה.
4 הפונקציה (02668,4זת10%)!80/] יכולה להופיע לא רק בצד ימין של
המשוואה, כדי לשלוף תוויס ממקוס מסויס במחרוזת, אלא גס בצד שמאל, וזאת
כדי להחליף את 4 התוויס החל ממקוס 8, בתוויסם שמופיעים בצד הימני של
המשוואה, במקרה שלנו האותיות 080. שיס לב שמספר התוויס המחליפיס
(3 פה) לא חייב להיות שווה למספר האותיות המוחלפים (4 פה).
א: הפונקציה 15% מחזירה את אורך המחרוזת כמספר שלס, שמשלבים עס
מחרוזת התיאור.
.0 הערה:
הפונקציה 56% הופכת ערך מספרי למחרוזת, ושמה רווח לפניו.
הפונקציה 054 עושה אותו דבר, אך מבלי להוסיף רווח. פונקציות אלו
נחוצות עבור פונקציות שמסוגלות לעבוד רק עם מחרוזות.
א-1: עד עכשיו, שלפנו תוויס ממקוס מסויס במחרוות. הפונקציה
(300702612!, 7026+1ח5%7)/130ח1 יודעת כיצד לחפש 26%2סזחס3! (פה עססם)
בתוך 7026%1ח1806]. התשובה היא ערך מספרי שאומר באיזה מקוס במחרוות
הראשונה נמצא התו הראשון במחרוזת השנייה (התשובה היא 0 אס המחרוזת
השנייה לא נמצאת כלל במחרוזת הראשונה).
ס-א: הרחבה של זופח|: (2612סזח36!, 026+1זח136, ח) ז1פח!. הוספנו פה את
הפרמטר ח שמסמן מספר שלם, ומשמעותו היא שהחיפוש יתחיל רק ממקוס
מספר ח במחרוזת.
ב-ם: עוד הרחבה של שפח!: (א,02602זח36)!, 02611ז7ח30!],ח) זופחו. הפרמטר
הרביעי 6 מוחלף על ידי 0 אס מבחינים בין אותיות לועזיות גדולות וקטנות. אס
לא מקפידים, א שווה ל-1 (ברירת המחדל).
א: הפונקציה (284סזחס8)) 0886( הופכת את כל התוויס לאותיות רישיות.
פרק 1: צעדים ראשונים | 37
5: הפונקציה (70281ח80!/) חחוזו 1 מורידה רווחים מוביליס בצד השמאלי של
מחרוזת, כאשר הפונקציה (+026זח )!86 וחוו3 מורידה רווחיס מהצד חימני,
והפונקציה (0261זח86/) חזוזד מורידה רווחיס משני הצדדיס.
א-1: את הפונקציות האלו ראינו כבר במחרוזות המורכבות מאותיות לועזיות.
כשהמחרוזות מורכבות מאותיות עבריות, למרות שהאותיות מופיעות מימין
לשמאל, הן מאוחסנות משמאל לימין, ולכן הפונקציה 3( 7026%ח68)!30 |
מחזירה את המילה "'אנייי שמופיעה בצד ימין (אך מאוחסנת בשמאל) ולא את
האותיות יליס", וכדומה לגבי (7 ,026%זח18)/)46ח9, שמחזירה את המילה
ייירושלים'י שמופיעה בצד שמאל אך מאוחסנת בצד ימין.
תרגיל 16:
כתוב שיגרה שקוראת שם אדם, גובהו בס"מ, ומשקלו בקילוגרמים.
השיגרה מדפיסה את הנתונים שקיבלה, ובנוסף מחשבת ומדפיסה את
הממוצע של מספר הקילוגרמים לכל מטר גובה, עם כותרת מתאימה.
תרגיל 17:
כתוב פונקציה שמקבלת כקלט מחרוזת שמכילה את הנתונים הבאים:
שם פרטי, שם אמצעי, שם משפחה ושם חיבה, אשר מופרדים זה מזה
ברווח אחד או יותר. הוצא את הפלטים הבאים:
: שם פרטי
: שם אמצעי
: שם משפחה
: שם פרטי ושם משפחה
: שם חיבה ושם המשפחה
: שם פרטי, אמצעי ושם משפחה
₪ 3 ₪ 0 ₪ <
: שם משפחה, פסיק ושם פרטי
משתנים בוליאניים
לעיתים יש צורך להעריך את היחס בין שני מספריס ולפעול בהתאס לתוצאה. למשל,
מה התשובה שתצפה לקבל לשאלה: ייהאם 4 שווה ל-8!יי האפשרויות הן שהמספריס
שוויס, או שאינס שווים. אפשר גם להשיב: פטזד (נכון) או 8!56= (שגוי), בהתאמה.
ב- 8 606895 שומרים תשובה כזו במשתנה בוליאני (6|סףוזה/ ח00|68ם), אשר
מקבל אחד מן הערכים שהזכרנו, 6טזד או 8156]. יש גם ערך מספרי הקשור ל-8|56=
והוא 0, כאשר כל ערך אחר קשור ל-6טזד.
8 82₪/ 97 200088 - סדנת לימוד
תוכנית 408: משתנים בוליאניים.
(ז%006ח1 45 2וחט)סחו ,ז0606ח1 35 1 התטאשחו)08 הסטסחטת 6וופטק
5 000% 6ז66|8 ד
חס 5 0 ססט , ח68!ססם 5 |הטוסםססס ,ח00!68ם 5( ||הההפססט חחוס
2חטטזחו > 1וחטףסחו = ||הוחפסספ
2חטאחו = 1וטשחו = |הטףםסספ
2חטףסחו < 1וחטצשחו = סופסספ
5 ססט ;" :5 56006 6 חהר6 זס||הרח5 15 זססוחטח 5%זו סד" +חוזוס. פטססס
הט סס ;" :5| 60ח5660 606 600815 זססוחטח 56זו סד" +חוזס. פטססס
0 ;,;" :5 566006 6 ח8) זסל68 15 זססוחטח 5%זו סד" +חוזס. פטפסס
6 > סטזך = ||ההחפסספ
||הההפסססט אחוזק. סטססס
6 < 6טזך = ||ההחפססםפ
||ההחפססס >חוזק. פטטסס
חסט6חט= 6ח=
הסבר: הגדרנו שלושה משתנים בוליאנייס. באמצעות פקודת השמה משתנה בוליאני
יכול לקבל את הערכים השמוריס שד או 8156=. אפשר גס להציב תנאי בצד הימני
של המשוואה. גס תנאי מקבל את הערכים פטזד או 8!58= בלבד, והערך המתאים
מועבר למשתנה הבוליאני באמצעות פקודת ההשמה. המחשב יכול לחשב תנאי פשוט
(חסוו0חס6 6!מוחו5) הבנוי כך: ביטוי אריתמטי, יחס, ביטוי אריתמטי. היחסיס
האפשרייםס הס:
= שוויון
<> אי-שוויון
< גדול מ-
4
/(
2
=< גדול או שווה ל-
9 > קטן מ-
3
=> קטן או שווה ל-
התנאי צריך להיות כזה שאפשר לקבוע את נכונותו. כלומר, הערכים המשווים צריכיס
להיות מאותו סוג. אי אפשר להשוות משתנה בוליאני שערכו פטזד עס משתנה ממשי
שערכו 10.97. מאידך, אפשר להשוות שני משתניסם בוליאנייס. הערך 6טזד נחשב
כקודם (י'קטן'י) לערך 8156= (הערך המיוחס על ידי המחשב ל-81!56= הוא 0, כאשר
הערך המיוחס ל-8שזד הוא 1-). ביטויים אריתמטיים אשר מהוויס חלק מתנאי
יכוליס להכיל קבוע או משתנה אחד, או להיות מורכביס יותר, כמו למשל:
0 ] - ה6180 <> (|ק * 4 - הסת0) * 1808%2. אפשר לשלב שני משתנים,
קבועיס או ביטויים אריתמטיים על ידי אופרטוריס אריתמטיים, כדי לקבל ביטויים
פרק 1: צעדים ראשונים | 39
אריתמטייס מורכבים. כך גס אפשר לשלב יחד תנאים פשוטיס בעזרת האופרטוריס
הבוליאנייס פאג, 0₪, ו- דסא כדי לקבל תנאים מורכבים (5ח0ס0ו0ח00 א6!|קח 00).
הערך המיוחס לשני תנאים פשוטים המשולבים על ידי התנאי סאג יהיה פד רק אס
כל אחד משני התנאים יהיה פטזד. מאידך, הערך המיוחס לשני תנאיס המשולביס על
ידי 08 יהיה 8|96 רק אס כל אחד משני התנאים הוא 8!856=. האופרטור דכא פועל
על תנאי אחד בלבד והופך את הערך שלו מ-6טזד ל-56ו8=, ולהיפך. האופרטור 08
מחזיר ערך 6טד אם אחד משני הביטויים הוא 06זד, כאשר האופרטור 50% מחזיר
ערך 6טזד אס לשני הביטויים הבוליאנייס שהוא פועל עליהס יש אותו ערך (6טזד או
6). נניח שהכנסנו את הערכים של שני תנאיס שוניס למשתניס =ססס ו-סססם.
הטבלה שבהמשך, אשר נקראת טבלת אמת (!ס8ך הוטזדך) מסכמת את השפעת
האופרטוריס השוניס על המשתנים האלה.
₪ זסא ₪0 הס ק 0 סאא ק 1" כ
6 6טזך פטזך 6טזך 6טזך
6 6טזך 6 6 6טזך
6טזך 6טזך 6 8טזך 6
6טזך 6 6 6 6
תוכנית 809: התוכנית שיצרה את טבלת האמת.
()09/ חסטסחט= סווטטק
5 ח₪ !000 6זה!60כ ד
008 45 000 ,ח00|68ם 45 קססט חזוסם
"ס" ,"כ" ,"ףס סאג סש" ,"ס חס ס" ,"סש דסא" זחוזס. פטטסס
%חוזק. פטססס
סד = 0000 :סטזד = קסספ
קססט %ס ,000 זז קססט ,0ססט סח קסספ ,0סספ ,ססססם >חוזק. פטטסס
6 = 0000 :סטזד = קססט
קססט %ס ,0ססם זז קססט ,0ססט סח קסספ ,0סספ ,ססססם 6חוזק. פטטסס
סד = 0000 :₪856 = קססםפ
קססט %ס ,טסט זז קססט ,0ססט סח קסספ ,0סספ ,סססס >חוזק. פטטסס
6 = 0000 :8|56= = קססםפ
קסספ %ס ,0ססם זז קססט ,0ססט סח קסספ ,0סספ ,סססס >חוזק. פטטסס
חסט6חט= 6ח=
הסבר: נניח ש- שווה ל-5, 5 שווה ל-10, ו-6 שווה ל-2. אזי הביטוי:
(1+6 > 8+7) פאה (7*6 > ג)
מהווה תנאי מורכב. ערך התנאי הפשוט השמאלי הוא 6טזד, מפני ש-8 שערכו 5,
באמת קטן מ- 0*7 שערכו 14. ערך התנאי הפשוט השני: 6+ > 7+ הוא 8|86=,
מפני שערך 7+ הוא 17, שאינו קטן מ-4+6 שערכו 7. מאחר והתנאי השמאלי סטזד
0 82/ 97 200088 - סדנת לימוד
והתנאי הימני 8|56= והס משולביס על ידי סאג, ערך התנאי המורכב הוא 6פו8=.
ביטוי אריתמטי הוא שילוב של אחד או יותר קבועיס או משתניס מספריים באמצעות
אופרטור אריתמטי. בדרך דומה ניתן להגדיר ביטוי בוליאני (חסו655זקא= ח00!88)
כשילוב של תנאי אחד או יותר, ושל משתניס או קבועיס בוליאניים (הכוונה למיליס
ד או 55 1=), באמצעות אופרטוריס בוליאניים. ערך ביטוי אריתמטי יכול
להיות כל ערך בתחוס המספריס שהמחשב יכול להחזיק. לעומתו, ערך ביטוי בוליאני
מוגבל לשני ערכיס בלבד, 6טזד או 8|!56=. על אף התחוס המצומצם של ערכו הסופי
(פטזד או 8156=), ביטוי בוליאני יכול להכיל יותר אופרטוריס מאשר ביטוי אריתמטי,
שהרי תנאי מכיל ביטוייס אריתמטיים (עס אופרטוריס אריתמטיים) וגס אופרטוריס
של יחס. בביטוי בוליאני, אפשר לשלב יחד מספר תנאים על ידי אופרטוריס
בוליאנייס. בשל המספר הרב של אופרטוריס אשר אפשר לכלול בביטוי בוליאני, יש
צורך להוסיף על חוקי הקדימות המקובליס. הסדר הכללי הוא שלאופרטוריס
אריתמטיים יש קדימות הכי גבוהה, אחר באים האורפטורים של יחס, ולבסוף
האופרטוריס הבוליאנייס. סדר הקדימות של האופרטוריס הבוליאניים, בינס לבין
עצמם, הוא כדלהלן:
3 זסא % הסא
3 סאאגא 3 /0ם
4% 08
עכשיו נוכל לראות שבדוגמת התנאי המורכב שהוצגה קודם:
(1+6 > 8+7) סאג (7*6 > ג)
הסוגרייס היו מיותריסם, משוס שהאופרטוריס הלוגייס היו מופעליס בכל מקרה רק
לאחר האופרטוריס האריתמטייםס.
תרגיל 18:
כתוב פונקציה שקוראת שני זוגות מספרים שלמים ומוציאה פלט של
6זך או 8!56= עבור כל אחד מהתנאים הבאים:
האם שני הזוגות זהים?
2 האם האיבר הראשון והאיבר השני שווים בשני הזוגות?
האם האיבר הראשון בזוג הראשון שווה לאיבר השני בזוג השני,
או האם האיבר השני בזוג הראשון שווה לאיבר הראשון בזוג
השני?
פרק 1: צעדים ראשונים | 41
תרגיל 19:
חברת אל-על רוצה לגייס אנשי ביטחון מקרב תלמידי האוניברסיטה.
הדרישות שלה הן כדלהלן:
% זכר
גמר 85 נקודות לקראת התואר
> גובה למעלה מ-1.8 מטר
משקל מעל ל-70 קילוגרם.
הקלט מורכב מ-5 נתונים:
מספר סטודנט
מין (זכר או נקבה)
מספר נקודות שסיים באוניברסיטה
9 גובה
משקל
כתוב פונקציה שמוציאה כפלט את המשפט הבא:
סטודנט אאא מתאים להיות איש בטחון: אאאא (6טזד או 8|56=)
תרגיל 20:
בשאלה הקודמת, מוכנים לקלוט גם נשים העונות לדרישות הבאות:
% נקבה
גמרה (8 נקודות לקראת התואר
גובה למעלה מ-1.7 מטר
משקל מעל ל-55 קילוגרם.
מבנה הקלט כפי שתואר בשאלה הקודמת. כתוב פונקציה שמוציאה
כפלט את המשפט הבא:
סטודנטית אאא מתאימה להיות אשת ביטחון: אאאא (6טזד או 8|56=)
תרגיל 21:
חברה להפצת ספרים מקבלת הזמנות ושולחת ספרים. לקוח קבוע
משלם רק כאשר הוא מקבל את הספרים בדואר ("טיפול מיוחד"). לקוח
רגיל חייב לשלם לפני ששולחים לו את הספרים ("טיפול רגיל"). לקוח
נחשב כקבוע אם הוא מקיים את התנאים הבאים:
קונה סחורה שערכה עולה על 8,000 ש"ח לשנה
בעבר שילם את כל החשבונות בזמן (תוך 30 יום)
בעל וותק של יותר מ-5 שנים.
חברת ההפצה מוכנה לתת טיפול מיוחד גם ללקוחות שמקיימים את
2 ;82/ 97 200088 - סדנת לימוד
השילובים הבאים:
4 (1) ו-(2)
4 (1) ו-(3)
4 (2) ו-(3)
9 (2).
כתוב תוכנית שתקבל כקלט:
ערך הסחורה שהלקוח קונה במשך השנה.
האם בעבר הלקוח שילם את החשבונות בזמן? (כן או לא)
מספר השנים שהלקוח קונה ספרים מן החברה.
כתוב פונקציה שמוציאה כפלט את המשפט הבא:
תן ללקוח טיפול מיוחד: אאא (פטזד או 56ו8=)
70/ רמז:
לפני כתיבת התוכנית, צמצם את מספר התנאים ל-2.
תאריכים
משתניס יכוליס להיות מסוג ₪846 המחזיק תאריכיסם. האופרטוריסם '+יי ו 'י-יי גורמיס
לחיבור וחיסור ימיס מתאריך כלשהו. ניתן גם להפחית תאריך אחד מתאריך שני
בעזרת האופרטור *-'י כאשר שני האופרנדיס הס מסוג 816. הסוג 0816 מחזיק גס
זמן במבנה 1 /: 55.וחחח.חח, ואפשר לחבר זמניס אחד לשני, או להחסיר זמניס
אחד מן השני, כאשר האופרנד הראשון נחשב כשעה בשעון, והשני נחשב כמספר של
שעות, דקות ושניות להוספה או להורדה מהאופרנד הראשון.
תוכנית 410: קליטת משתני שיחות.
(280 5 ה06ח6 030 ,806 5 ||10)080-3 חסטסחט- סווסטק
.60% ]סח 24 45516 .63 6הסחכ 3 01 הז0ח6! 6 5מ0ַ3|ט68|6 '
6 5 סו דכ ,0816 5 08050 חחוס
וזח 080 + ||08063 = 0ח08%5
090 ;" שעת סיום השיחה: " לחוזם. פטטסס
אואזק 1:02:45 21/31/97 = סוחו הס
6וחו 86 ;" תאריך ושעת סיום השיחה: " לחוזס. פטטסס
חסטסחט= 6ח=
פרק 1: צעדים ראשונים | 43
הסבר: תוכנית זו קולטת שני זמניס, האחד - זמן התחלת שיחה, והשני - אורך
השיחה, כפי שעשינו בתוכנית 404. במקוס תוכנית ארוכה, החלק האופרטיבי של
תוכנית זו תופס שורה אחת בלבד. מריציס את התוכנית על ידי הזנת שני הזמניס
כקבועים, כדלהלן: (40:12:55% ,812:23:23%) 10, כאשר ערך הפרמטר הראשון
מציין את שעת התחלת השיחה, והשני מציין את אורך השיחה. שיס לב שקבוע מסוג
6 מחתייב סולמיות משני צידיו. מחבריס את שני הקלטים, ומקבליסם את זמן סיוס
השיחה. החלק השני של התוכנית מציג איך להגדיר קבוע מסוג ₪846 שמחזיק תאריך
עס ומן.
תוכנית 411: שימוש בפונקציות שונות לביצוע מניפולציות על תאריכים.
()411 חסחטסחטת סווסטק
6 25 08062 ,0866 5 בסו חחוס
6 5 אזס/חם ,2306 5 62ז3כ/עע6 ,סה ₪5 ססהסצוסו חחוס
1 5 וטוא ,6006ח1 35 5ץהכסחו ,56007ח1 5 5השחסויטחו ,1000067 5 5זהס שחו חחוס
5 8 הרס ,100067 5 3ח8ח5 ,060067ח1 5 0000657 ,0606ח1 5 וחסץ חזוס
1 5 ץזסח66 חחוס
58 5 הסוב ד וחוס
6 8 6וחו %ה656זק הוחו ד
%חוד 8 "השעה היא: ".86 (13)%זח6 8 816% 86 " התאריך הוא:" אס0ף5! :ה
וס 8 "השעה והתאריך הם: " אס508ו! :8
.5 50086000 0חה 8008 זס1 560 6 ח68 6ס6וחרטוזה 6|סוחוס '
6: 0806 = 2806 + 5
6 ₪ " :5ן זה צוס]" א80 ספ :םס
5 - 2806 = 0805א :₪
6 8" :5| סה וס" אסם ₪50 :=
5 )0 01076066 6ח% 6ח1זז0610 0+ 50086000 06 8 08605 2 '
6 - 2806 = 5שְ08שחו :כ
5 ןזח 8 " :15 0107066 0875 )0 זססרטח 6חוד" אס8 פוא :₪
5 זס 5 סרח 508600 300 חחוסו0א *
60 56 5ז68ץ 300 פה6חסוח 800 סד'
5 זס עְעעץץ ,פוטחסוח זס) וח ,08/5 סז 2806400:0 56 089605 800 סד'
6 כ - 0875 זס? ץז606558ח זסח '
6 ז הז סל ("0") 0875 25 05ב (806כ ,25 ,"0" )סה = 2ססהסא :ז
2 הא " :פן 2806 צוסא]" 500% :3
5 ץ חחו0ו0א *
הזוק 0ף ("עְעְעץץ") פזהסץ 10 05ְב' (ססהכ ,10 ,"עְעעץץ" )0 הכ = אזסששסחם=
אזס/ ח= 8 " :אזסצו סחם" 580% :>
]וכ 66 ₪56 ' ,08065 2 ה66ש60כ 685 זס 5ה6חסוח חן 0076006 6 6ה[רז606 סד '
5 2 חה660ש000 695 ]0 וסוט הסחסחט '
(זס/\סחם ,0806 ,"עְעעץץ") וכ סוה = 5זבס סח : |
4 842/ 97 400088 - סדנת לימוד
5 2 ח660ש000 5חזחסרח +0 זססרתטא ד
(6זס !סח ,0866 , "וח") וכ = פהשהסואשחו :1
5 סו )ו טכ ,/666558ח +0ח - 68/5 +0 זסטותטא '
(8זס/וסח= ,0806 ,")ו הכ = 5שהססחו :
זו 86 " :5זהס/ץ חן סח 80560" אסספו₪ :0
5חסוי טח 8 " :5הסחסרח חו שוח 30560|ם" 5080 :ק
5 ₪ " :0875 חו סח 182560ם" א0ס0 150 :₪0
.6 ,68175 -[68|6008 חן 0100076006 6 +0 5חסט ח! 6850765 הסטסחט) 010676066 זה6ץ סד '
1 סוט 1995 - 1996 '
5 סו 6 +0 %ה06ח0626ח1 '
6 הזכ 0 ("0") 035 355 3005 355 + 86 = 62הסשוסא :₪
(28062 6 ,806כ ,"נְעְעץֶץ") וכ = 635 /שחו :5
סח 8 " :פזהסץ חו סח 560סבום" א80 ספ ₪
,((6) הזחסוח ]0 08 078605א6 הסוזסחט הסאכ שחד '
(חז) הזחסוה ,(צ) 66803 , (0) זסדוהטף ,(עץץץץ) זהסץ ,(ץ) זפסץ זס עְה0*'
((ח) סז טחורח ,(ח) זטסח ,(שעו) 66%עש'
60 הכ 6 חס 0חוו0ח6ק06 )5(, 500060 '
הסוח 8 ₪56 ח68 6 זסססרתפזהכן הזו 03008 ]0 56680חז '
הסח 66628 56 ח69 עש זס66רחהזהק הזוטו 080608 ]0 50080חז '
הסטסחט ה)חסו] 56 ח63 רח זס66רחהזהק השוו %'608ז08 )0 50080חז '
השח 68 ₪56 ח63 עְעץץ ז0ז6רחפזהכן הסו\ 0300284 01 |56680חז '
.66 ,76508 15 3 ,ץְה0סחס!] 15 2 ,ץ08חט5 15 1 ' (אוסא ,"צו")אהקסהכ = וחטא :ו
הא 8 " :15 ץ0083+ 666צו סו ]ס 083 סד" א0ס8ףפוז :
(אוסא ,"0")בק06הכ = וטא :/
הטוא 8 " :15 0008 הסוח 6 01 ץ03 סד" אספספו :א
.086 38 ס6ח! 5זסטוח וח 65הַחַּח6 [הוז656הכ ד
(11 + 26 ,2 - 12 ,7 + 1990)|ו280056 = 6והסצוסאן :ץצ
6 8 " :5| 0876 0051760 סחד" א80 50 :2
(8%6כ שש6)ץהכ = וחסץ :א
(86 שו6)ח חס = ה0065ת0 :₪8
(08%6/ו687)6 = 8ח508 :00
(8006כ צוס1])ץ66628/ = 8טעהחפ5הטוחסץ :ספ
0005 ₪ " :15 הסוח שד" ,8 (13)%זה6 8 הס 8 " :15 צְ03 סד" אספספוא :שם
8 " :5| 66%/ 6 ]0 ץ08 סד" 8 (13)%זח6 .8 8ח08ח5 8 " :15 זהסץ סד" אס ספוא :==
וס
6|/ 0806 8 60 6ט|8/ 5710 8 5סחַחַה8ח6 הסט6חטז 6ט| 6הכ שחד '
"17/8/44" = סוד :00
( הסוב ד)6ט|3 2306 = שסהפצוסא :חח
אס 8 " :5| 0866 0651760 סד" אפ :זז
|ז00ו| 0866 6חל פחופט כ 15 0866 3 6ח068 60 או 005% %6 ,6פזטוסס זס '
70% = הכ עס :33
פרק 1: צעדים ראשונים | 45
אסא 8 " :5| 0806 0051760 סח ד" א80 50 :66
506 60 160 /ח 60 06 68 זס 0/6 0863 3 15 +הסרחטסזה 65 ]| 65חורת 066 ()90806'
(06 ,"ה300|ט63|6 עז0חה06" ,"306 3 זססחם")אסט6טקח1 = ססהכצעצסא : | |
1 + (100 (1 - (080עש087)06/)) = /זנסח66 :או
"0600 606זו5סכ" ,65 ,ץז ח60 אס ף5וו
חסט6חט= 6ח=
הסבר:
4
שש > > > + >
שש > > >
46
4: הפונקציה ₪816 מחזירה את התאריך הנוכחי, הפונקציה שחזוד מחוירה את
השעה הנוכחית. התו הקשור לערך 13 ב-|!|450 גורס לפלט לעבור לשורה הבאה.
8: הפונקציה שסא מחזירה את התאריך וגם את השעה הנוכחית.
6-ם: חיבור ימיס לתאריך.
ם-=: חיסור ימיס מהתאריך.
6: הפרש הימים בין שני התאריכים.
|-: בעורת הפונקציה 080600 מוסיפים ימים, חודשים, או שניס.
1-ך: הפרש בימיס, חודשיס, או שניס בין שני תאריכיס בעזרת הפונקציה
הוססהס.
-א<: פונקצית 08%008₪ מוציאה מידע מסוגיס שוניס מנתון מסוג סו8.
צ-2: הפונקציה |₪08%665618 מאפשרת בניית ערך מסוג 0816 על בסיס מספריס
שלמים עבור השנה, החודש והיוס. הפונקציה מבצעת גס חישובים, ואס מספר
הימיס או החודשים גדול מדי, היא מעבירה את וה הלאה ליחידה הבאה, דהיינו
לחודשים ו/או שנים, בהתאמה.
"=- : דרכים מקבילות להוצאת מידע מנתון מסוג פו8.
וו-66: העברת מחרוזת בצורת תאריך למשתנה מסוג סִזַה.
: טעינת משתנה מסוג 0816 בערך קבוע.
-: קליטת תאריך, וקביעת המאה של אותו תאריך. כזכור, הפונקציה ₪8)6
מחזירה את התאריך הנוכחי כברירת המחדל עבור תיבת הקלט.
תרגיל 22:
בתרגול הבא, קלוט כל תאריך מחוץ לשיגרה.
כתוב שיגרה המציגה את היום בשבוע בו נולדת?
כתוב שיגרה שמציגה בכמה שנים אביך מבוגר ממך (א).
כתוב שיגרה שמציגה בכמה חודשים אביך מבוגר ממך (+).
84 97 400655 - סדנת לימוד
כתוב שיגרה שמציגה בכמה ימים אביך מבוגר ממך (2).
היום ועוד א שנים, ייפול באיזה תאריך?
היום ועוד + חודשים, ייפול באיזה תאריך?
היום ועוד 2 ימים, ייפול באיזה תאריך?
ש ₪ > > >
היום ועוד א שנים, + חודשים ו-2 ימים, ייפול באיזה תאריך?
משתנים מסוג זחסויום
משתנה מסוג +חוז8/ יכול להחזיק משתנה מכל אחד מהסוגים שהוזכרו קודסם,
כלומר, נומריים, מחרוזות, תאריכים, ובוליאניים. בנוסף, גסם אס משתנה מסוג
+חוזה/ תורגס לסוג מסויס, אפשר לשנות את סוגו כתוצאה מדרישות התוכנה.
תוכנית 412: שימוש בסוג וחאוז83 /.
()412 חסטסחטת סוופטק
6מץ דץחהזבּצ חזוס
]060 6 15 הסוחועט ,%חהוזה/ 85 6קץ דץחב/זבּע וחוכ סש +הס|הּצוט6 '
59 0 6| 0 סז הסופזשהס6 '
4 = ססץ דץח בע :₪
"456 +0 +00 6ח 15 ".8 6כץ דץחזה/ = 6כץ דץחזה
סמ דץח זה זחוזק. סטססס
5 50 6 01 ה0ו80ה06800ה60 '
"18.89" = 6קץ דשחה בע :8
"34" + 6כץדץחזהע = 6כץ דץחזהש
6מץ דץח זה זחוזק. סטססס
6 סרח סף 80|6וזה/ 500 6 +0 הסופז/חסס '
"18.89" = סְסִץְדעְחהזאע :0
4 + 6סץ דץחזהּע = 6קץ דץחמזה
סמ דץחמ זה זהוזק. סטססס
6 6וזסרתטח 60 8חו50 6רץ 01 הסופזסטהס6 '
9 = ססץדץחהזהע :כ
"34" + 6כץדץחזהע = 6כץ דץחזהש
שמ דץח זה זחוזק. סטססס
6 8ח5 סש 80|6וזהע 6וזסרהטח 6 +0 הסופזסטהסס '
9 = ססץדץחזהּט :₪
"34" 8 6קץץחזהע = 6כץ דשחהזה
סמ דץח בע זחוזק. סטססס
(2 6006) 006 ז606זחן 65חורחז06%0 '
פרק 1: צעדים ראשונים | 47
5 + 34 = 6סץ[ץחזהט :=
(6סץ דץחהזהע)6קץ דזה/ זחוזס. פטססס
(3 6006) 0/6 ז606סח! חס| 65ח060001 '
7 = ססץ ]ץחזה/ :3)
(6סץ דץחזהע)6קץי דזה/ +חוזק. פטססס
(5 6006) 006 000016 0600701065 *
7 = ססץ ]ץחזהּע :רו
(6סץ דץחזהע)6קץ דזה/ זחוזס. פטססס
חסט6חט= 6ח=
הסבר: שיס לב שלא הגדרנו את סוג המשתנה, משוס ש-%ח88/ הוא ברירת המחדל.
לכן, בפקודה כמו: ז1606ח! 85 6 ,8 ,4 וחוסם המשמעות אינה ש: ג, 8, ו-6 הס מסוג
ח!, אלא ש-ג ו-5 הס מסוג זחאוז8/ ורק 6 הוא מסוג שלס.
2
4
2
4: לאחר ההצבה הראשונה, סוג המשתנה הוא מספרי, אך כתוצאה מהקישור
בשורה השנייה, הסוג הופך למחרוזת.
8: לאחר ההצבה הראשונה, סוג המשתנה הוא מחרוזת, ובפקודת ההשמה
השנייה מתבצע קישור מחרוזות המספק את התשובה 18.8934.
6: לאחר ההצבה הראשונה, סוג המשתנה הוא מחרוזת, ובפקודת ההשמה
השנייה, התוכנה מבינה שהיא צריכה לשנות את המשתנה לסוג מספרי כדי לחבר
את שני המספרים ולקבל 52.89.
פ: לאחר ההצבה הראשונה, סוג המשתנה הוא מספרי, ובפקודת ההשמה השנייה,
התוכנה מבינה שהיא צריכה לשנות את המחרוות ''34'י לערך מספרי, כדי לחבר
את שני המספריס ולקבל 52.89.
=: לאחר ההצבה הראשונה, סוג המשתנה הוא מספרי, ובפקודת ההשמה השנייה,
התוכנה מבינה שהיא צריכה לשנות את סוג המשתנה למחרוזת, כדי להפעיל את
האופרטור 8 ולקבל 18.8934. שיס לב שההבדל היחיד בין כ ו-= הוא שהשתמשנו
באופרטור מחרוזות 8 ב-=, כאשר ב-₪ השתמשנו באופרטור + של מספרים.
=-3: סוגיס שוניס שהמשתנה מסוג +ח8וז8/ מקבל. הפונקציה 6סעץדז3/ מיועדת
להודיע על הסוג הנוכחי של משתנה שהוגדר כ-%ח88//..
סייכום :
3
2
3
[8
5 ממירה משתנה מסוג %ח8וז8/ לסוג המתאים, בביטויים אריתמטיים
ובקישוריס (59ח0ו81ח0816ח00).
8 יגרוס לקישור מחרוזות, ויהפוך ערך מספרי למחרוזת כדי לבצע את המטלה.
+ יגרוס לחיבור אס שני הערכיס מספריים, או אם אחד מספרי והשני מחרוזת
שמכילה מספרים. אס שניהס מחרוזות, הוא יבצע קישור (חסו8%ח08+0ח00). אס
אחד מספרי והשני מחרוזת שלא ניתן להפוך למספר, תיגרס שגיאה.
84 97 400655 - סדנת לימוד
איפוס משתנים
יש 4 סוגי משתניס מאופסים, והס:
4
3
0 - ערך מספרי. ברירת מחדל עבור משתניס מסוגים מספריים כולל סוג מטבע.
מחרוזות באורך אפס (05חוו5 חזְחָח1.6 0ז26) - ברירת מחדל למחרוזות. מסומן
ב- יייי בפקודת השמה.
ריק (עָקְוחם) - ברירת המחדל עבור משתניס מסוג +חאוזה8/. הערך משתנה ל-0 או
למחרוזת באורך אפס, אס הוא מהוה חלק מביטוי, לפי סוג הביטוי.
ווט - ערך השדות במסד הנתוניס שלא הוזנו בהס נתוניס. רק משתנה מסוג
+חוזה/ יכול לקבל ערך זה, בעזרת פקודת השמה. הפעולה מתבצעת באמצעות
הצבת המילה השמורה |וטא, או ביטוי שערכו |וטא, בצד ימין של פקודת ההשמה.
תוכנית 813: סוגי איפוס שונים.
()13 חסטסחט= סווטטק
הוה / 15 0/6 61306 ' 63קץ דשחהמזהע ,62קץ דץחזהּע ,6קץ דץחה ובע הזוס
(0 ]0 6ט|8ש 5חזטס6ז הסססחט) סכץ דזהט) 5ץ8צ 2 חו קוח6 15 6קץ דץחזהע 8% פהטהסו0ח '
(6כץ ד חב זהע)/ס 155 זחוזק. פטס :ג
/קותםפע = (6קץ דשץחהזה/)סץ דזה/ ,(סקץ דץחההזבע)סקץ דוה/ צחחק. פטטסכ :8
8|6ע 069016 0 3550065 06 )תוזע '
4 + סכץ ]ץחה = 6קץ דץח הצ :6
6טטססטע = (6סץ דשץחמזה/)סקץ דוה , (6קץ דשץחהמזה/)סקץ דוה ,6קץ דשץהה זע 6חחחק. פטס :פס
308 קחש 6 6 0% 6065 ,0 60 זס ,0ח501 ה00ח6|-260 8 60 +ההוזע 6 0חו500 '
""= 6כץ[ץח זע :₪
(6קץ דץחוהע)סקץ דזה/ (6קץ דץחהמזב)/סקות155 זחהוזק. פטססכ :=
רחש + 18865 +חה1זה/ זסרסחה 60 +חהוזהע 66 8הוח35510 ץוח '
2 הזה = 06 הזע :6
(6כץ ץח והע)/ס 155 +החק. פטטסכ :₪
5 סקס 66רתרטוזה רטוע !טח !סז 6 8665 סחהפזסכס ווטח ץחה '
ווט = 6סץדשץחמזהט :1
4 - סכ הזע = 6קץ דשחה הט :3
סמ דץח זע חחחק. פטס :>
1 הזז הסוחעט 6ק/שוהע זס ,5!וטח 8ה060600 זס? הסטסחנ |וטא15 '
= (6מץ דשחזהּ/)6קץ דזה/ (6קץ דשחה זהּצ)סקץ דז3/ , (סקץ דץחהוהּץ)ו|טוא15 +חחק. פטטסכ : 1
ווטפצ =
פרק 1: צעדים ראשונים | 49
= ((8) ז860ז6ק0 50108 חטו 6חפזססס ווטא '
58 ה600%|-2070 35 30060060
"|%6חהץ" = 62כץ דץחזפט :ו
2 ץח הזה .8 6קץ דשץחהמזהע = 63קץ דשץחהמזבּע :א
(63ס/ ץח זהע)6קץ דזהּ/ ,63 דץחה ובע 6חחחק. פטססס :0
חסטס6חט= 6ח=
הסבר:
3
20
8-4: הערך ההתחלתי של משתנה מסוג )זחפּוז3/ הוא ריק. הפונקציה 1 =5!
תחזיר את הערך נכון (פטזד), והפונקציה 6סעץדז3/ מחזירה ערך 0, שהוא קוד
הסוג ריק - עזקוחם. הקבוע שקוחםסצ מוגדר עבור הפונקציה 6סץ דז9/ וערכו 0,
ולכן הביטוי האחרון יחזיר ערך נכון (6טזד).
0-ם: כאשר מחבריס מספר ממשלי למשתנה ריק מסוג +חפוזה/, המשתנה מסוג
+חוזה/ מקבל כברירת מחדל ערך ממשי 0. הפונקציה 871/06 / מחזירה כעת
ערך 5 (המכונה 6|פטוסספט) המסמל משתנה ממשי.
ם-=: גס אס משוויס משתנה +חוז3/ למחרוזת ריקה, הוא לא חוזר להיות ריק.
במקרה זה, הוא נשאר להיות מסוג מחרוזת (8סעץדז3/ של 8, המכונה פְַחופס)ע).
6: הדרך היחידה להחזיר משתנה +חפוזה/ להיות ריק היא על ידי השוואתו
למשתנה +חוז8/ אחר שעדיין ריק, כלומר, לא קיבל אף פעס ערך כלשהו.
|- א : כשלמשתנה +חאוזה/ ערך ווטוא, תוצאת החיבור למספר ממשי תהיה ווגואא.
1: הפונקציה |וטואפ! מגלה אס משתנה מסוג 881 / שווה ל-ווטא. הפונקציה
6 3 תחזיר ערך 1 (ווטאפט) אס ערך המשתנה מסוג +ח8ז9 / שווה ל-ווטא .
0ס-: משתנה מסוג +חהח8/ שערכו ווטא יכול להיות מקושר למשתנה מסוג
מחרוזת, אס האופרטור המקשר הוא א8, והמשתנה נחשב מחרוזת באורך 0.
6 3 / מחזצירה ערך 8 (מחרוזת).
.0 הערה:
קבועים נוספים עבור הפונקציה 6קץדו8 הם: עסחסזזטססט, 6והססץ,
ו-ח68|ססםטץ. כדי לראות את כל הקבועים של פונקציה זו, עיין בתפריט
עזרה, אינדקס, תחת הפונקציה 6פְעדזג/.
84 97 400655 - סדנת לימוד
פונקציות שמספקות תוצאה מסוג זחסויום /
רוב הפונקציות עבור מחרוזות שראינו, יכולות להתחזיר ערך מסוג 8801 /. ההבדל
היחיד בין פונקציה שמחזירה מחרוזת ופונקציה שמחזירה ערך מסוג זחפוז9ּ/, הוא
שכותביס את הראשונה עס סימן 5 בסוף השסם. היות ומשתנה מסוג חפוז9ּ/ יודע
לשנות את סוגו בעת הצורך, מומלצ להשתמש בו בעבודה עס משוואות. לפונקציות
הבאות יש גירסה למחרוזות עס סימן 5 בסוף, וגירסה בלי סימן %:
%חוך 9% 5% | 0%
%חזוזך וס 5 5% 2%
%)) 5% 5חוזז %חחז]) | סח
יתרונות וחסרונות של משתנה מסוג זחסויוס
יתרונות:
= אין צורך להתייחס לסוג המשתנה.
משתנה וה הוא הסוג היחיד שמסוגל לקבל על עצמו ערך ווטא. היות ושדות
בבסיסי נתונים יכוליס להיות ווטא, ניתן לבדוק את ערכס רק באמצעותו.
חסרונות :
9 הוא מאט את קצב הביצוע, משוס שעל 4008585 לקבוע בעצמה את סוג המשתנה.
מאפשר למפתח לבצע שגיאות שהיו מתגלות לו סוג המשתנה היה נקבע במדויק.
58 תקבע סוג אפשרי לפי הקוד שכתבנו, ולא תמיד הוא יהיה הסוג שרצינו.
קבועים (600510015)
מותר כמובן להשתמש בקבוע מבלי להצהיר עליו מראש. אך מומלצ להשתמש
בהצהרת 00058%, באופן דומה להצהרת וחוכ על משתנים. כאשר מצהיריס על הקבוע
מראש, מונעיס משס גה לקבל כל ערך, חוצ מהערך הנקוב, ובוה שונה הצהרת 608%
מהצהרת וחוכ. ישנס שלושה סוגי קבועים :
קבועים סמליים הבנויים בעזרת פקודת +5%ח60: בוניס קבוע סמלי בשל אחת
מהסיבות כדלהלן:
כאשר משתמשים בקבוע פעמים רבות במשך התוכנית (במיוחד, אס הוא
מספר ארוך, למשל 3.1415926536=ח), קל יותר להגדיר אותו פעם אחת
בתחילת התוכנית, ולהימנע מכתיבה חוזרת ומטעויות אפשריות.
אם משתמשים בקבוע פעמים רבות בתוכנית, והוא עשוי להשתנות מדי פעם
בין הרצה להרצה. אפשר לשנות רק את הצהרת 000% ולא את כל
האזכוריס של אותו קבוע בתוך התוכנית.
פרק 1: צעדים ראשונים | 51
9 כדי למנוע כפל משמעויות לשם, כפי שמקובל בתפיסת התכנות המבני.
הגדרת שס כ-6008% מונעת ממנו מלשמש למטרה אחרת.
אם יש חשש שמשמעות הקבוע לא תובן, השס שניתן לו עשוי לעזור. למשל,
השס א דה בפקודת ההשמה שלהלן מסביר הרבה יותר מהמספר 25
בגירסה השנייה של הפקודה:
8 + 5080 * זטוח5 = 6%זס5%הוו .1
5 + 580% * זטוח5 = 6%זס5%הו! .2
קבועים פנימיים ל-84668655: קבועיס המוגדרים על ידי המהדר של 008858(.
למשל, כפי שראינו בפונקציית 6סץדז8/, לכל תוצאה אפשרית יש שם. גם עבור
הפעולה 080% ראינו שקיימיס קבועים פנימיים.
קבועים המוגדרים על ידי מערכת ההפעלה: למשל 8!86= ,סטזד ו-ווטא.
תוכנית 414: הגדרת !059 כקבוע.
(6!טטסכ ₪5 14)00|₪80105 חסטסחט= 6וופטק
6פטסכ 5 6וחטוס/!00 ,6|סטסכ 5 68זהוסס חזוס
)2005% 0501 =" 06
2 */ 00|580[05 * 6501 = הסזהס
3 / 4 * 3 */ 0018301005 * 6501 = סוחטוסעוט
| ;("אא.4א" ,68ז !00 )זהו חס ;" :15 הסזה " זחוזס. סטססס
("% .9%" ,שוחטוס/| 0)ז8וזס= ;" :15 סוחטוס/"
חסטס6חט= 6ח=
הסבר: הקידומת 05 מסמנת שמדובר בקונסטנטה (קבוע). הפונקציה )חזזס=
מאפשרת להדפיס את התשובה עס שתי ספרות עשרוניות בלבד. המחרוזת 44.44
נקראת מחרוזת פורמט, ואומרת שלפני ואחרי הנקודה עשרונית תופענה שתי ספרות.
אס יש יותר משתי ספרות לפני, מאפשרים גלישות, שהרי אף אחד אינו רוצה לקצצ
מספרים משמעותיים מהתוצאה. יש הרבה סמליס שאפשר להשתמש בהסם במחרוזת
הפורמט (עיין בעזרה, אינדקס, +החחזסת=, ואו בחר מתוך 4150 566 את הכניסות
הבאות : 8)5וחזס= 6וז6וחטא] 60ה2611 ז056, 305 הזוס חצ 60ה61 ז56ש,
5חזס-] 6וחו ד/3+6 60ה611 ז056ש).
תרגיל 23:
עבור על התרגילים 2-4, 10 ו-14 והשתמש בקבועים לפי הצורך. דאג
גם שכל תוצאה תהיה בעלת 2 ספרות עשרוניות בלבד בעזרת פקודת
פורמט.
3359 339
2 82₪/ 97 200088 - סדנת לימוד
-
מבני פיקוח
מבני פיקות (070010765 !%0ח00)) מכילים פקודות שמשפיעות על כיוון זרימת
התוכנית. הפקודות שהשתמשנו בהן עד עכשיו התבצעו בצורה סדרתית, אחת אחרי
השנייה. פקודות פיקוח מאפשרות שינוי בכיוון ורימת התוכנית, ומאפשרות
הסתעפויות ולולאות. מבני פיקוח הס משני סוגים: הסתעפויות מותנות (מבנה =!|
ו- ₪01 551) ולולאות (ם !!ח/צ..סכ ו-זסת). יש גם פקודה להסתעפות מוחלטת
(ס007) שהשימוש בה אינו מומל.
.0 הערה:
בפקודות הבאות אפשר לכתוב יותר מפקודה אחת באותה שורה אם
מפרידים בין הפקודות באמצעות נקודתיים (: ).
הסתעפות מותנית
פקודת 1
מבנה בסיסי:
חסחחד ביטוי בוליאני =1
פקודות
56
פקודות
₪06 +
פרק 2: מבני פיקוח | 53
תוכנית 801: דוגמה לשימוש ב-=].
()801 חסטסחט= סווסוק
ץח זט 5 5 חספ ,60007ח1 05 [8ו00/5060 חחוס
("0" ,"58|65 |506018" ,"500 665 |50608 01 ₪ חפט זסשח=")אסט)טסח] = |00/506083
6 חו 85 ,0 <> |00/506008 8חוץ58 0+ +חס|ה טוט ' הסח ד |3ו5060/סס זז
0 = פטח80
6
0 = 5טח80
+ 0חם
ההש זס 8ַהו50 ץ|חס 8665ז הסססחט 655806 סד '
50 60 )ה רחזס= ,)ההזה 60 )טוח 65 פספַחַהח6 +הוחזס- '
"5וחס 6816018060" ,65 ,("00.%%" ,5טחסם )חס אס 50
חסססחט- סחם
בתוכנית 801 נקלוט את כמות המכירות המיוחדות שביצע סוכן. אם הסוכן ביצע
מכירות כאלו, מגיע לו בונוס של 5500, אחרת, לא מגיע לו בונוס. הפונקציה )החחזס=
הופכת את הבונוס למספר עס סימן % בצד שמאל. הסימן % מאפשר לקצצ אפסיס
מובילים, כלומר אס יש רק ספרה אחת, רק מקוס אחד בצד שמאל של הנקודה
העשרונית יתמלא, ואס יש 3 ספרות, כמו פה, 3 מקומות ייתפסו. הספרה 0 מימין
לנקודה העשרונית מבטיחה שספרה כלשהי תופיע במקום וּה, כך שבמקרה זה שתי
ספרות תופענה בצד ימין של הנקודה העשרונית.
מבנה =! מורכב:
חסחד ביטוי בוליאני =1
פקודות
חסחד ביטוי בוליאני )561!₪]
. . . [פקודות
6 ן
[פקודות
]+ 0חם
הסבר: הביטוי ז/56!₪ מופעל אס הביטוי הבוליאני אינו שווה ל-6טזד. שלוש הנקודות
(; . . שנקראות 0518ו1!!ם) מציינות שמותר לחזור על הביטוי לפי הצורך.
תוכנית 802: דוגמה לשימוש ב-]!5!86.
()802 חסטסחטת סו|סגוק
5 655!חו ,ה)חסוח %א6ח 66 )0 08 זז 6 חס 06 15 אססט מ '
ץ08חט5 וס ץ8008ס '
6 5 0306 6טכ ,086 45 ססהסץחה וס
(8006 ,"חס68!60|3 שוכ סה" ,"0300 3 זסזחם")צאספ6טסח1 = 6והסץחא
(1 ,1 + (8%6ץח )חס , (806 ץח )הס ץ)|ה656הכ = סוהססטס
הפחד 1 = (608%6טכ)ץ66608/ זז
4 22 97 20085858 - סדנת לימוד
1 + 60366טוכ = 66הססטס
חסחד 7 = (60806ט)ץ66%08/ 50|
2 + 260866 = 6זהס6וס
+ 0
"86 6טכ 08/60|3060" ,65 ,6הכ6טכ א0 50
חסט6חט= 6ח=
בתוכנית 802 אנו קולטים את התאריך בעזרת אספ+טסח!. הפונקציה |8165608כ
מסוגלת לקחת שלושה מספרים שלמים, אחד עבור שנה, אחד עבור חודש, ואחד עבור
יוס, ולהפוך אותס לפורמט תאריך תקין. אס מספר החודשים גדול מ-12, או מספר
הימים גדול מ-31, פונקציה זו יודעת להוסיף יותר משנה או מחודש, בהתאמה.
הפונקציות 681 ו-ח)חסו/! מסוגלות להוציא את השנה והחודש כמספרים שלמים
מתוך תאריכים תקינים. תאריך החורת הספר הוא בראשון לחודש, ולכן אנו מכניסיס
1 כפרמטר השלישי בפונקציה |2816568. אך איןו אפשרות להחזיר ספר בשישי או
בשבת, ולכן, אס הראשון לחודש הוא ביוס שישי, מוסיפיס 2 לתאריך ההחזרה, ואס
הוא בשבת, מוסיפיס אחד.
תוכנית 803: דוגמה נוספת לשימוש במבנה ז! מורכב.
()203 חסטסחט= סווטנוק
רטו\ אסס 3 05!וטם 35 6ווחצ ,"5" ַחו655זק זס 6006 6 15 6 וח
חו "פס" 6
הסחד (65ץפע = (|650068066 טע + הסספסטכ)טע ,"האם אתה מוכן?")א5080וא) זז
"לחצת על כן" 15080
6
"לחצת על לא" א15080!
+ 0חם
חסססחט- סחם
אנחנו משתמשים ב-8480%ו בצורה חדשה, לא כפקודה אלא כפונקציה שמחזירה
ערך. הערכים שהפונקציה מחזירה תלויים בלחצן שעליו לחץ המשתמש בתיבה
המוצגת, לפי הקודים דלהלן:
1 נלתצ אישור
2 נלתצ ביטול
33| נלתצ בטל
4. נלחצ נסה שנית
5 נלחצ התעלם
6. נלתצ כן
7 נלתצ לא.
פרק 2: מבני פיקוח | 55
בפונקציה זו השתמשנו בקבועים פנימייס של 4668955. אנו משתמשיס ב-א9080! עס
קוד 35, ואת אומרת עס סמל אזהרה (סימן שאלה, עס קבוע פנימי ח%0פ6ט0)סע), ועס
הלחצניס כן, לא, ובטל (קבוע פנימי |ו08ח08ס654צסע). בפקודת =| אנו שואליס את
המשתמש אם הוא מוכן, לאחר תגובתו אנו מודיעים עליה. תשובת כן גורמת לפונקציה
להחזיר ערך 6 (65צסע), כשכל תשובה אחרת מתורגמת כאות שהמשתמש אינו מוכן.
מבנה בסיסי (חייב להופיע בשורה אחת):
0.
[ פקודות 56|₪] פקודות | ח6חד ביטוי בוליאני 1
הערה:
במבנה זה, כשהפקודות ב-ח8חד ו-₪158 מופרדות על ידי נקודתיים, אך
כל המבנה מופיע בשורה אחת (אפילו אם השורה ממשיכה לשורה
הבאה על ידי שימוש בסימן = ), אין צורך ב-9/1ח=.
תרגיל 1:
בתרגיל זה, קלוט תאריכי קלט מחוץ לשיגרה.
= כתוב שיגרה שמציגה בכמה שנים (א), חודשים (+), וימים (2)
אביך מבוגר ממך.
היום ועוד א שנים, צ חודשים ו-2 ימים ייפול באיזה תאריך?
תרגיל 2:
כתוב תוכנית שמקבלת כקלט שני מספרים שלמים ג ו-8, ומוציאה
כפלט משתנה בוליאני שערכו ם)חד, אם 8 מתחלק ב-4 ללא שארית.
הערה: ניתן לכתוב שתי גרסאות כמענה לשאלה זו, אחת ללא שימוש
בפקודת =!, ואחת עם.
תרגיל 3:
כתוב תוכנית לקריאת קבוצות של 3 מספרים המייצגים את אורכי
צלעות המשולש. הפלט לכל קבוצה הוא אחת מההודעות הבאות:
= הצלעות מהוות משולש שווה צלעות.
הצלעות מהוות משולש שווה שוקיים.
הצלעות מהוות משולש שונה צלעות.
23
הצלעות אינן יכולות להרכיב משולש (זאת אומרת סכום האורכים
של זוג כלשהו, קטן מאורך הצלע השלישית).
6 22 97 2008585 - סדנת לימוד
תרגיל 4:
כתוב שיגרה שקוראת זוג מילים באנגלית ומדפיסה אותן זו ליד זו לפי
סדר אלפביתי, משמאל לימין. למשל, שתי המילים 6000 ,9
תודפסנה בסדר הפוך, אך שתי מילים אלו: פָסם פופ תישארנה בסדר
זה. דאג שבפלט יהיו 5 רווחים בין המילה הראשונה לשנייה.
תרגיל 5:
נתונים שלושה מספרים: ג, 8, ו-6. כתוב שיגרה המדפיסה אותם
בסדר עולה.
לולאות
ספ
מבנה ראשון:
[ביטוי בוליאני [וטחט|6!וח/+] סס
[פקודות]
[סס זזואם]
[פקודות]
קסס |
תוכנית 804: שימוש במבנה ראשון של סם.
()₪04 חסטסחט= סווטגוק
ז לח 5 +הטס6 חחוס
60% = 1
(10 => %חט60) סווח/ סס
אס0 6018%6רחרח1 החסז? סחועוסו/ פעשסו|ה' %חט00 ;"ספירה במספר:" +חחק. 8טססכ '
= דמזסשוויז//ם1/ זס ,חסחסטס '
"503006 6!וח/ ספ" ,1 6הטס6 8 " :36 פחהסהטס6" אס 50
1 + +חט60 = %חטס60
קסס |
חסט6חש= 6ח=
פונקציה וו מוסיפה 1 ל-+חט00 בכל מעבר בלולאה, ומדפיסה את הערך המעודכן של
+חטס0ס, כך שהיא מדפיסה את המספרים מ-1 עד 10. הפלט נראה כך:
ספירה במספר: 1
ספירה במספר: 2
ספירה במספר: 3
פרק 2: מבני פיקוח | 57
ספירה במספר: 4
ספירה במספר: 5
ספירה במספר: 6
ספירה במספר: 7
ספירה במספר: 8
ספירה במספר: 9
ספירה במספר: 10
דוגמאות נוספות:
תוכנית 805: איתור הגורם המשותף הגדול ביותר של שני מספרים.
()205 חסטסחט= סווטגוק
1 35 8 ,00067ח1 5 ג חחוס
("הזן מספר שלם, בבקשה")אספזטסח1 = ₪
("הזן עוד מספר שלם, בבקשה")א0פלטכח1 = 8
8 <> ס6ווחצ סס
8 < ה סווחש סס
8 = 4
קסס |
< 5 סווחצ סס
-5 = 8
קסס |
מס |
.8 "הגורם המשותף הגדול ביותר שוה ל: " א15080!
חסססחט= 0חם
נניח שיש למצוא את הגורס המשותף הגדול ביותר של שני מספרים: :00
(ז8610- הסוח 00 02768%1651)). כדי לעשות זאת, נתבסס על האלגוריתס של אוקלידוס
שאומר:
= אם א הוא 60 של ג ו-8, אז ההפרש בין שני המספרים מתחלק ב-א.
9 ₪05 של שני מספרים זהים שווה לאותו מספר עצמו.
ההוכחה לכלל הראשון נובעת מהעובדה, שאס א הוא 0607 של ג ו-5 זה מחייב שיהיו
שני מספריס 41 ו-21, כך ש: 41א=ג ו-81א= ומכאן נקבל: (9)281-81=ה-2.
המשמעות היא, שההפרש 8-4 מתחלק ב-א. הכלל השני מובן מאליו. השיטה המוצעת
לחישוב 007 היא תהליך חוזר של חישוב ההפרש בין שני המספרים הנתונים,
והחלפת הגדול שבהם על ידי ההפרש, עד ששניהם שווים. לדוגמה, נתוניס המספריס 3
ו-5. אס 5<ג, נחליף את 4 בהפרש ם-. נשווה את 5 לערך החדש של ג, ונמשיך
8 22 97 2008588 - סדנת לימוד
להחליף את הערך הגדול בהפרש שבין המספר הגדול למספר הקטן, עד שנגיע למצב
שבו שני הערכיס שווים. כעת קבלנו את 067 של זוג המספריס המקוריים ג ו-8.
תוכנית 06: שינוי צורת השם.
(2060 חסטסחט= סווטגוק
? ,חר 60 פטס טס סחה הההססוה ||וא ההסל 6או| 6החבח 6 ח6 חב 0865 '
58 5 סרה50 וחוס
0חו5₪ 5 6וחב5זו= וחוס
58 5 סרתהּוזסוו וחוס
0חו5 5 8536 1 וחוס
0חו50 45 זבח6 וחוס
1 5 החַח6 1 חחוס
1 5 הס630ס | הזוס
1 = ח06800] :1
("" ,"סידור השם" ,"בבקשה להזין שם פרטי, אמצעי ומשפחה") א680טקח1 = 6וח5718 :2
(6רח5013)וחוז ד = 6ות503 :3
(6הח5073)ח6 ]1 = הזח | :4
(1 ,סח600%)50713 1 = 6וח53זו :5
(" " ,6וח5)578ח1 = חסטהסס] :6
7: 0087 =""
חפ 01 זסטרחטח 3 6זה 6זסר) ססר ' " " <> זְהּח6 |וטחט סס :8
1 + חסטהסס | = חסטהּסס |
(1 ,ח0ו063 ] ,6רח50%3)סון = זהבּח6
קסס |
זה = סשוחה)סו] :9
(" " ,6ח5013 ,1 + ח0300ס 5₪)1ח1 = חסחפסס ]| :10
""= זה8ח0 :11
""<> זבח6 |טח ספ :12
1 + ח0ו0680 1 = חסוטהסס |
(1 ,חסו0680.] ,6ח0)50%3ו1!] = זבח6
קסס |
(1 + ח0 068 ] - ה00ח6 .| ,6ב50)%ח₪10 = 6ותבּ350 | :13
6וחהו ₪ " " .8 6וחה5זו 8 " ," 8 350036 | אס90 150 :14
חסססחט- סח
תוכנית 806 קולטת את השס חיים יעקב כהן, ופולטת כ: כהן, ח י. הסבר לפי שורות:
9 2 הזנת שס פרטי, אמצעי ומשפחה.
9 3: הורדת רווחיס משני הצדדים.
9 4: קביעת אורך המחרוזת החדשה, לאחר הורדת הרווחים.
3
5: האות הראשונה בשס הראשון היא התו השמאלי ביותר במחרוזת החדשה.
פרק 2: מבני פיקוח | 59
ש > > >
6: מחפשיס את מיקוס הרווח הראשון.
8: היות ויש אפשרות שיש יותר מרווח אחד בין השס הראשון והשני, ממשיכיס
להתקדס עד שמגיעיס לתו ששונה מרווח.
9: התו ששונה מרווח הוא התו הראשון בשס האמצעי.
0: מחפשים את הרווח הראשון לאחר השס האמצעי.
2: כמ 7-8.
3: שם המשפחה הוא החלק הימני של המחרוות, החל מהתו הראשון ששונה
מרווח לאחר השס האמצעי.
תוכנית 807: קביעת מספר המילים במשפט.
> >
"
(8070 חסטסחטת סוופוק
א חן זה 05זסצ שרח צוסח 65חור0660 30 56006006 8 8865 '
50 5 06ח00ח56 50 הזוס
0חו50 5 6וחב53זו= וחוס
58 5 סרחהוזסוו וחוס
9חו50 5 8536 1 וחוס
0חו5 5( זבח6 וחוס
5 5סזס/שוחטצ! הזוס
1 5 הס630ס | הזוס
1 = ח06800] :1
("" ,"מספר מילים" ,"בבקשה להזין משפט שלם")א0)טקח1 = 5756006006 :2
" "+ (507560%6006)וחוז ך = 5056000066 :3
0 = ח06300 ] |טחש ספ :4
( " ",5075600006 ,ח0 068 |)5₪ח1 = חס סט | 5
1 + 05זס/רח] = 5סזס/ותטאז 6
7: - 087 =""
(507560%06066)ח6 | < הסטהסס] זס " " <> זבּח6 וטחט ספ 8
1 + חס80סס | = חסוטהּסס | 9
1
(1 ,ח0סו068 | ,560060066 507)סון] = זה 0
ססס |
0 3% 66060 0 = 0 068 ]1 הסחד (06ה06חה50'56)ח | < ה06800] + | :11
ססס |
5ז וח 8 "מספר המילים במשפט הוא: " א15090] :12
חסססחט- סח
2: קליטת המשפט.
3 הורדת כל הרווחיס בהתחלה ובסוף, ואז הוספת רווח אחד בסוף.
4: רווח מסמן סוף מילה. המשתנה חסו008% .]1 יהיה 0 אם לא מצאנו מה שחיפשנו,
במקרה שלנו, רווח. לכן, נמשיך את הלולאה עד ש :06800 .1 שווה 0.
5: מחפשיס את הרווח הראשון.
0 22 97 20085858 - סדנת לימוד
9 6: מוסיפים 1 למספר המילים.
9 7-10: לוקחים בחשבון את האפשרות שיש יותר מרווח אחד בין מילה למילה.
3 1: אס גמרנו את המשפט, מוציאה אותנו מהלולאה החיצונית.
צורה שנייה - לפחות ביצוע אחד
סס
[פקודות]
[ספ זוא₪]
[פקודות]
[ביטוי בוליאני (|טח|ף!וח/)] קסס!
תוכנית 808:
(08)0 חסטסחט=
ז לח 5 +הטס60 חחוס
1 = %חט00
סס
"ספירה במספר" שחט600 שחוזק. פטס
"550000060 |סח/ סם" ,1 6חט60 8 " ספירה במספר" א80 50 '
1 + 600% = 6חטס60
0 < זחט0ס60 ושח קסס1
החסטסחט= 6חם
זהה לדוגמה הקודמת, אך הבדיקה מתבצעת בסוף, ולכן גס אס נתחיל בערך התחלתי
1 עבור +%חט00, הפונקציה תרוצ לפחות פעס אחת, ותודפס תוצאה 11. בדוגמה
הקודמת אס נתחיל בערך התחלתי 11 עבור +חט00, לא תודפס תוצאה כלשהי.
צורה שלישית, פשוטה יותר אך ללא אפשרות של יציאת חירום
סח6\. . .6!וחע
ביטוי בוליאני 6!וח/
פקודות
חצ
פרק 2: מבני פיקוח | 61
פקודה בה הערך ההתחלתי והסופי מוגדרים כחלק מהמבנה עצמו
א זס
[)ח סרחה 5060] 35%| 0 ד 5%ז₪ = זס)חטס6 וס
[פקודות]
[זסת זואם]
[פקודות]
[ז6זחנוסס] +אס]
הסבר: המונה זס)חטס6 מתחיל מהערך 175%, ועולה בצעדיס של )+חטסוחה 50400 עד
שהוא מגיע לערך +85!, או נפסקת הלולאה.
תוכנית 09:
(090 חסטסחט=
590 45 5חג/ ,ז0606ח1 5 6הטס6 חחוס
0 סך 1 = 6חטס0 וס
+חטסס ;"זה פַחסחטס6" >חוזק. פטססס'
כ
"50000000 6 זס-]" ,1 606 .86 "ספירה ב: " א80 150
("האם אתה רוצה לראות עוד אחד (כ/ל)?")א%80טקח1 = ₪05
+ סחו! 1 .ץ68 68/6| סז 0806 זס- אש הפחד "ל" = פחה זז
00% )אסא
חסססחט= סחם
עוד פקודה שמדפיסה את המספרים מ-1 עד 10. בדוגמה זו רואים שימוש ב-ק855
להשמעת צליל קצר, וב-זס= א= לביצוע יציאה לא מסודרת לפי רצון המשתמש.
תוכנית 810:
()210 חסטס6חט=
חן 5 1ח1 ,66067ח1 25 זססט וחוס
1 560 1 סד 5 = זססט0 זס=
טס סד 1 = 1ח1 וס
5 8ו0ח5 806ו60רהרח1 עעסו/ ' ;1ח1 +חוזס. פטססס
11 )אס
שחו! ששח 0 סף ספ' >חוזק.פטססס
זס 0 אסא
חסססחט- סח
דוגמה שמציגה זס= מקונן, כלומר זס= פנימי בתוך זס= חיצוני. זס= חיצוני מגדיר ערך
התחלתי 5 למשתנה 58 ד0)0, כאשר זס= פנימי מדפיס את כל המספרים מ-1 עד 5.
אחר זס= חיצוני מחסר 1 (1- ק516) ממשתנה חם ד0 והערך משתנה ל-4. זס= פנימי
מדפיס את כל המספרים מ-1 עד 4. התהליך ממשיך עד שערך ז0)9 = 1 ואז הלולאה
הפנימית מדפיסה את הערכים מ-1 עד 1, דהיינו, רק ערך אחד.
12 22 97 2008588 - סדנת לימוד
לולאה ללא גבול עליון
על אף היעילות והנוחות של השימוש בפקודת זס=, לא תמיד היא עדיפה על הפקודה
6|וח/ סכ. למשל, בתוכנית לחישוב משכורות עובדיםס, אס לא ידוע מספר העובדיס
בומן כתיבת התוכנית, אי אפשר להשתמש בפקודת זס=. שיטה אחת לטפל במקרה
כזה היא להגדיר דגל (פָ!=) שיקבל על עצמו את הערך 1-. מזיניס את שיעור השכר
לשעה של כל עובד. כאשר מזיניס את הערך 1- עבור השיעור, וה מסמן לתוכנית
שהגענו לסוף הנתונים, ואנו רוציס לצאת מלולאת העיבוד.
תוכנית 811:
()811 חסטסחטת סווסוק
0 6 600815 96 +טסחו 606 [סחט 0868 זטקחו 680 '
קסס! 66 חן 0ח3 קסס! 6 6076 ,6סום %ה06ח55906 ז+טסחו 606 סחופ 65זוטס6 '
' 507/65 395 38 0 1- = 00108%8ח5 605%
6חו5 45 58/31 ,6ַחו5 5 5זטסר! ,8!6חו5 5 ₪866 חחוס
("מה שיעור השכר לשעה?")א00)טקח1 = ₪866
8 <> ₪806 סווח/ סם
("כמה שעות עבדת?")א600קח1 = פזטסר]
6 * פזטסר = ע58|31
("00.%%" ,ץז58|3)הוחזס= .8 "המשכורת שלך היא: " א0ם 150
("מה שיעור השכר לשעה?")א600טקח1 = ₪806
קסס |
חסססחט- סחם
במקרה זה קוראים פרטי עובדים עד שמגיעים לעובד האחרון, מזיניס בשבילו ערך 1-
(0010818ח=) עבור השיעור (5818). ערך זה מוציא מהלולאה, והתוכנית מסתיימת.
דרך אחרת לטפל במקרה שמספר הנתונים לא ידוע מראש, היא להגדיר משתנה מיוחד
שישמש כדגל. לאחר כל פעס שמעבדים נתוני עובד, שואליס אם יש כוונה להמשיך. אס
התשובה שלילית, מגדירים את ערך המשתנה שמשמש כדגל כ-1- (000108%9ח5).
תוכנית 812:
()812 חסטסחט= סו|סוק
3 זז 600 0168005ח 0!6ה ובע 8300 606 [סחט 0368 זטקחו 680 '
6 30 |8ו5060 3 0חוח060 65זוטס6 '
' 507/65 35 38 0 1- = 00108%8ח5 005%
6חו5 5 58/31 ,6חַחו5 5 פזטסר! ,6פַחו5 5 ₪865 חחוס
זח1 05 פב וחוס
08 = <> 80 סווח/ סס
("מה שיעור השכר לשעה?")א%00טקח1 = ₪806
("כמה שעות עבדת?")א600קח1 = פזטסר]
6 * פזטסר = ע58|31
פרק 2: מבני פיקוח | 63
1 1
("00.%%" ,ץז58|3)הו וס .8 "המשכורת שלך היא: " 00% 150
הסח ד (65ץפע = (|66ח6514068 ץע ,"האם סיימת?")א5080וא) זז
₪008 = 88
6
0 = ₪30
+ 0חם
מס |
חסססחט- סחם
אס המשתמש לותצ על כן כאשר מופיעה תיבת ההודעה (א115080), התוכנית מגדירה
את ערך המשתנה != ל-1- והלולאה אינה מתבצעת בפעס הבאה.
תרגיל 6:
הדפס רשימה שתכיל את א, ?א, וסכום כל המספרים השלמים מ-1
עד א עבור 1>=>=25. הפלט ייראה כך:
א ?א 1 עד א
1 1 1 1
2 4 14 3
0 הערה:
כדי להציב את המספרים בעמודות, טוב להשתמש בפקודת (ח)פהד
שקובעת שהביטוי הבא יופיע בעמודה ח. למשל, אם נכתוב:
5 ;(90)20? ;3 ;(10) טםז זחוזק. פטטסס
המשתנה 8 יופיע בעמודה 10 והמשתנה 5 יופיע בעמודה 20.
תרגיל 7:
כתוב שיגרה שמקבלת כקלט את המספר א ומדפיסה !א (א עצרת).
] ]
(לדוגמה: !4 שווה 1*2*3*4).
תרגיל 8:
הרחב את השיגרה בתרגיל 7 כך שהיא מקבלת מספר לא קבוע מראש
של מספרי א, ומחשבת לכל אחד את !א.
תרגיל 9:
כתוב שיגרה שמוצאת את השלם הגדול ביותר, שהריבוע שלו קטן
מ-555, 142.
4 22 97 4008858 - סדנת לימוד
תרגיל 10:
בסופרמרקט מסוים נותנים הנחה 5% על כל קנייה שסכומה מעל
לסכום שמוגדר כ"נקודת הנחה". כתוב שיגרה שקוראת רשימת
מספרים אשר הראשון בהם מציין את נקודת ההנחה, ושאר המספרים
מציינים את מחיר המוצרים שנקנו. ציין בפלט אם לקונה הגיעה הנחה,
ומהו הסכום הסופי לתשלום ללא הנחה, ועם הנחה.
תרגיל 11:
חזור על התרגילים 7-10 תוך שימוש בפקודת =! במבנה בסיסי, והנח
שסדרת נתוני הקלט אינה קבועה מראש, ולא רק במקרה אחד.
תרגיל 12:
כתוב שיגרה שמקבלת כקלט ספרה 8 ומספר שלם 8. הפלט הוא
משתנה בוליאני שערכו ם(|חז, אם הספרה ג היא אחת מהספרות
שמרכיבות את המספר השלם 8.
תרגיל 13:
הרחב את השיגרה בתרגיל 12 כך שהיא מקבלת מספר לא קבוע
מראש של זוגות מספרים ג ו-5 ומוציאה פלט מתאים לכל זוג.
תרגיל 14:
כתוב תוכנית אשר מקבלת כקלט סדרת זוגות מספרים. המספר
הראשון הוא ציון התלמיד בהיסטוריה והשני הוא ציון אותו תלמיד
במתמטיקה. הפלט יכלול שני ערכים: מספר התלמידים שקיבלו ציון
גבוה יותר בהיסטוריה מאשר במתמטיקה, ומספר התלמידים שקיבלו
ציון גבוה יותר במתמטיקה מאשר בהיסטוריה.
תרגיל 15:
כתוב שיגרה שקוראת תמליל באנגלית ומדפיסה אותו כפלט, כך שכל
אות מוחלפת על ידי האות שבאה אחריה באלפאבית: האות 6 מוחלפת
באות כ וכולי ו-2 מוחלפת על ידי ג.
תרגיל 16:
קלט תוכנית שירות לבורסה מכיל 3 נתונים, למשל:
שם מניה מחיר היום מחיר אתמול
פיתוח לייזר 19 17
תעשיית מחשבים 2211 2007
כתוב שיגרה שמדפיסה רשימת המניות שעלו או ירדו ביותר מ-10%.
פרק 2: מבני פיקוח | 65
תרגיל 17:
בכתיב אנגלי, הכלל הוא שהאות ! קודמת לאות 5, חוץ ממקרה שזוג
זה בא אחרי האות 6, ואז הסדר הוא 5 לפני |. כתוב שיגרה שקוראת
תמליל ובודקת אם כלל זה מתקיים. אם אינו מתקיים, השיגרה
מדפיסה את המילה השגויה.
תרגיל 18:
קרא משפט אשר מסתיים בנקודה (אבל ייתכן נקודות אחרות במשפט),
ותכנן את הפעולות הבאות:
" מצא את מקום הרווח הראשון, והכנס אותו למשתנה בשם:
הסח 6 /ה.
1/ מצא את האות הראשונה במילה האחרונה, והכנס אותה למשתנה
בשם אחסזהּח6גאּווו.
ספור את המילים במשפט.
תרגיל 19:
כתוב שיגרה שקוראת ומדפיסה תמליל (כמחרוזות, כאשר כל שורה
היא מחרוזת), ומחשבת את הערכים הבאים:
מספר השורות בתמליל
מספר המשפטים
= מספר המילים
אפשר להניח שכל משפט מסתיים בנקודה ורווח וזהו השימוש היחיד
של זוג תווים זה. אפשר גם להניח שמילה מורכבת אך ורק מאותיות.
הסתעפויות חד כיווניות
?7זססוטחהסחו! |!4!806 ס זס
דוגמה:
50 זסעסקוא5 3010
הפקודה מעבירה לשורה בעלת התווית.
6 22 97 2008558 - סדנת לימוד
תוכנית 813: שימוש בפקודה זססוחטחסחון/סחהה|306! 6010 זסזזם הס.
.00 זסזוס חס 01 6|קוחהא6' ()813 חסטסחט- סווסטק
5חסקקבח זהחצ 506 0ח3 0303 080 חו זטס /
ץח 5 5 חספ ,66007ח1 05 [8ו0/5060 חחוס
6 070 זסזם הס
("0" ,"58!65 |8ו5060" ,"50/0 65 |50668 01 /₪ הט זסשח=")אסט)טקח] = |3ו005060
6 חו 85 ,0 <> |00/50608 8ַחוץ58 0+ זחס|העוטוסם' הסה ד |3ו5060 00 זז
0 = פטח80
6
0 = 5טח80
+ 0חם
ההש זס ַהו50 ץ|חס 8665+ הסססחט 655806 סד '
50 0ף )ה רחזס= ,)ההזה 60 +טוקח! 65 5ספַחהח6 +הוחזס- '
"5וחס 6816018060" ,65 ,("00.%+" ,5טחסם )חס אס 50
חסססחט- זוא
-- ו
= 8 (4)13זח6 8 "לא הזנת ערך מספרי" א15080!
= 8 (13)%זח6 8 זסטוחווא.זזם .8 "מספר הטעות: "
חססקו56סק.זום .8 "תאור הטעות: "
חסטסחט= סחם
כאשר מתרחשת שגיאה, בעזרת פקודה זו התוכנית מסתעפת לתווית מסוימת
(655806!!זסזזם) בשיגרה. הצגנו הודעה מתאימה וברורה יותר מההודעה המופקת
אוטומטית. בנוסף, הצגנו מספר שגיאה (זססותטא.זזם) ותיאורה (חסטקוז650כ.זזם).
בסוף גוף השיגרה, הוספנו את הפקודה חסווסחטת )ואם. פקודה וו מוציאה אותנו
מהשיגרה לפני הקטע הנקרא 1655808!זסזזם, המיועד לביצוע רק במקרה שגיאה.
אפשר לנסות את הפונקציה הזו על ידי הזנת נתוניס לא נומרייס ל-אס+טסחו.
פקודת +56|66
פקודה זו היא הרחבה של מבנה =!. =! בסיסי מיועד לשתי תוצאות אפשרויות, כאשר
האפשרות הראשונה בולטת יותר. מבנה 581866 מטפל במספר אפשרויות, כאשר
הטיפול בכולן מתבצע במקביל.
המבנה הכללי
<ביטוי לבדיקה> 6856 -506|60
<רשימה להשוואה> 6856]
[פקודות
6 0856]
[פקודות
ס6חם
פרק 2: מבני פיקוח | 67
ערך הביטוי לבדיקה חייב להיות ערך שלם, כולל ערך בוליאני ששווה ל-0 (שגוי, 1-
(נכון)) או מחרוזת.
רשימה להשוואה היא אחת או יותר מהפריטים הבאים, מופרדים על ידי פסיק :
9 ביטוי
9 ביטוי סד ביטוי
9 ביטוי <אופרטור> 5!, כאשר האופרטור הוא אחד מהיחסים :
]) < =|> =|>|<|]><|= [
תוכנית 814:
()814 חסטסחט-]
זז 5 06 וס
("בן כמה אתה?")אספזטסח1 = 06
6 60856 50|606
1 6856
"אתה רק יכול לרכב באופניים!"א80 150
4 ,3 ,2 6856
"אתה רק יכול לרכב באופניים!" א15080!
3 סד 7 ,6 ,5 6856
"אתה רק יכול לרכב באופניים!" א15080!
5 פַחואוסח5 01 ץעו סשטהתחססןת '
4 > 15 0856 '
"אתה רק יכול לרכב באופניים!" א080פ8 '
6 > 15 6856
"אתה רק יכול לרכב באופנוע!" א15080!
6 6856
"אתה יכול לנהוג ברכב!" א15080!
6% סחם
חסטס6חט= 6ח=
בדוגמה זו הצגנו מספר דרכיס להצגת תנאי 6886. לפי הגיל נקבע אם מותר לרכב
באופניים, באופנוע או ברכב. בביצוע, ייבחר רק 6856 אחד, הראשון שמתקיים.
8 ₪( 97 200655 - סדנת לימוד
תוכנית 815:
()815 חסטסחט-
זז 5 2וחטא ,1 חצ חחוס
58 35 5חה ,00 חחוס
("זס הנוח 3 26 6856!ק")אסססטסח1 = 1וחטא
(" טח זסר%סחה 6כ/ס 6856!ק")אסם6טסח1 = 2וחוא
("? / זס ,* ,- ,+ +חפוו טסץ סס")אספסטקחז = קָס
.5 |09ו630 60 8605 וסקס |8ז60!| 8005|פחהוד' (ק6856%)0 = מס
(ק0) 6856 50!666
"5 ןק" ,"ססג" ,"+" 6856
(2חחט] + 1וחטא)507% = 5ח
5 + " 15 " + (2חחטף)5₪9 + "פטוס " + (1 חחטצ)57% אס8 50
"5(אזו" ,"ד דם ופ" ,"-" 6856
(2החט\ - 1וחטא)57% = פחה
5 + " 5 " + (2חחוט])5₪ + "פטחורח " + (1 חוטצ579)1 א80 50
"פם ודד" ,"ץצ |קדד וטוא" ,"*" 6856
(2וחוט] * 1רחט\)57 = פחה
5 + " 5 " + (2חטא579)1 + "פסרח " + (1 חוטצ5₪9)1 אס 0פוו
"סדאז" ,"=ס1/זס" ,"/" 6856
(2החטא / 1וחטא)507% = פחה
5 + " 5 " + (2חט))50% + "ססחו " + (1וחטצ)5₪9 אס0ם ספ
6 60856
0קסם
8 ,".ז8)0 06 6077666 3 זסצופח3 +'חסוס טסץ" אס 0פוו
ס6סחם
חסססחט= סחם
תוכנית וו מחקה מחשב כיס על ידי קליטת שני מספרים, אופרטור אחד וחישוב
התוצאה המתאימה.
תוכנית 816:
()216 חסטס6חט=
לח 45 3 חחוס
ח00!68 5 זסזזם וחוס
6חו5 5 58/31 ,06חו5 5 5זטסר! ,6ַחו5 5 ₪866 חחוס
("מה שיעור השכר לשעה?")א00)טקח1 = ₪806
("כמה שעות עבדת?")א00שקח1 = פזטסר]ן
("איזה יום בשבוע (7..1)?")אספשטקח1 = עְהס
ץ8 6856 50|605
5 סד 1 6856
חס ך 8 => פוטס )1
5וטסר] * ₪866 = ע58|37
פרק 2: מבני פיקוח | 69
6
(8 - פזוטסר) * 1.5 * ₪866 + 8 * ₪80 = 5837
+ 0
6 6896
חסחד 5 => פוטסה ]1
5וטסר] * ₪806 = 58|37
6
(5 - 5זטסר]) * 2 * ₪866 + 5 * ₪306 = /58|3
+ 0
567
פזטסר] * 3 * ₪80 = 5837
6 0856
סד = זסזום
סח
חסחד זסזום +
"לא הזנת ערך בין 1 ל-7 עבור היום" א15080!
6
("00.%%" ,ץז58|3)הוזס= .8 "המשכורת שלך היא: " 500%
+ 0חם
חסטס6חט= 6ח=
ביוס רגיל השכר הוא 150% לכל שעה נוספת (מעל 8 שעות), ביוס שישי השכר הוא
% לכל שעה נוספת (מעל 5 שעות) ובמוצאי שבת השכר הוא 300% לכל שעת עבודה.
תוכנית 817:
()817 חסטסחט-]
9חו5 5( עְ8כ וחוס
ח68ו00 5 זסזזם וחוס
6חו5 45 !58 ,06חו5 5 פזטסר! ,6ַחו5 45 ₪865 חחוס
("מה שיעור השכר לשעה?")א00)טקח1 = ₪806
("כמה שעות עבדת?")א600קח1 = פזטסר]ן
| אססזטסח1 = עְהס
("איזה יום בשבוע (ראשון,שני, שלישי, רביעי, חמישי, שישי, או מוצאי שבת)?")
ץ8 60856 50|606
"חמישי" ,"רביעי" ,"שלישי" ,"שני" ,"ראשון" 6856
חס ך 8 => פוטסה )1
5זטסר] * ₪806 = ץ58|37
6
(8 - 5זטסר]) * 1.5 * 306 + 8 * ₪36 = עזב|58
+ 0חם
0 02 97 2008585 - סדנת לימוד
"שישי" 6856
חסחד 5 => פוטסה ]1
פזטסר] * ₪366 = /58|37
6
(ל - פזטסר]) * 2 * ₪866 + 5 * ₪966 = +58|31
+ 0
"מוצאי שבת" 6856
פוטס * 3 * ₪906 = /58|3
6 6856
סד = זסזום
6% ס6חם
חסחד זסזום +
= 8 "לא הזנת אחד מן הערכים" 80% 150
"ראשון, שני, שלישי, רביעי, חמישי, שישי, מוצאי שבת"
566
("00.%%" ,עְז3|ה5)הזוס=] .8 "המשכורת שלך היא: " א0ם 150
+ 0חם
חסטס6חט= 6ח=
כמו תוכנית 816, רק שהמשתנה עבור פקודת 561601 הוא מסוג טחוז1ס.
תוכנית 219:
()219 חסטסחט=
1 5 3 חחוס
ח200!68 5 זסזזם וחוס
ח00!68 35 הסזס!וח6 וחוס
6חו5 45 58/31 ,6ַחו5 5 5זטסר! ,6ַחו5 5 ₪865 חחוס
("מה שיעור השכר לשעה?")א00)טקח1 = ₪866
("כמה שעות עבדת?")א600קח1 = פזטסר]ן
("איזה יום בשבוע (7..1)?")אספ6טקח1 = עְהס
"האם יש לך ילדים למטה מגיל 5 - 5( ך או 55 |4-?")אסםשטקח1 = חסזס!ות6
חהסחד ה6זס!וח6 +ס! 6חה 5 => עְ8כ 6חה 1 =< עס )1
חס ך 8 => פוטס +1
5וטסר] * ₪806 = ץ58|37
6
(8 - פזוטסח) * 1.5 * ₪966 + 8 * ₪366 = /58|3
0
הסח ד השזס!וח6 6חג 5 => עְ8כ 0חה 1 =< שבכ )₪156
חס ך 8 => פוטסה )1
פטס * ₪806 = /58|3
6
(8 - פזטסרז) * 1.75 * 806 + 8 * ₪966 = 58|37
0
פרק 2: מבני פיקוח | 71
הסחד ה6זס!וח6 +ס 0חג 6 = עה 556
הסח ד 5 => פוטסה )1
פטס * ₪306 = /58|3
6
(5 - 5זטסר]) * 2 * ₪966 + 5 * ₪30 = /58|3
+ 0חם
הסחחד ה6זס!וח6 0חג/ 6 = עה ]5561
הסח ד 5 => פוטסה )1
פטס * ₪806 = /58|3
6
(5 - 5זטסר]) * 2.25 * ₪816 + 5 * ₪966 = /58|3
+ 0חם
הסחד ה6זס!וח6 +ס\ 0חג 7 = עְהכ 556
פוטס * 3 * ₪366 = /58|37
הסחחד ה6זס!וח6 0חג/ 7 = עה 1561
פטס * 3.25 * ₪806 = /58|3
6
סד = זסזם
+ 0חם
חסחד זסזזם +
"לא הזנת ערך בין 1 ל-7 עבור היום" א15080!
6
("9%.00" ,ץז58|3)זהוח וס .8 "המשכורת שלך היא: " א00 150
+ 0חם
חסטס6חט= 6ח=
בדוגמה גו השתמשנו בפקודת 5158/1. פקודה זו מאפשרת מספר משתנים לא מוגבל,
לעומת פקודת 58!801, המוגבלת לביטוי אחד בלבד. בדוגמה, אס לעובד יש ילדים,
התעריף עבור שעות נוספות גדול ב-25% מהתעריף במקרה שאין ילדים.
תרגיל 20:
כאשר המחשב מוציא רישיון נהיגה, הוא בודק את גיל הנהג. אם הוא
בטווח 18-30, מודפס על הרישיון שיש להיזהר מאוד מנסיעה מעל
המהירות המותרת. אם הגיל בטווח 31-50, מודפסת הערה שיש
לחדש את הרישיון כל 3 שנים. כשהגיל בטווח 51-60, מודפסת הערה
שיש לחדש את הרישיון כל שנתיים, ואם הנהג הוא מעל לגיל 60,
מודפסת הערה שיש לחדש את הרישיון כל שנה ולעבור בדיקה רפואית
כל שנתיים. הכן שיגרה שתקלוט תאריך לידה של הנהג, ותדפיס את
ההודעה המתאימה.
2 2 97 20085858 - סדנת לימוד
תרגיל 21:
העלות למשלוח חבילות דואר בארץ מבוססת על 3 קריטריונים:
1. מקום היעד:
3 ₪ - מקומי
+ ם - עיר גדולה (ירושלים, ת"א, חיפה, באר שבע)
+ א - עיר קטנה, מושב, קיבוץ, וכולי
2. משקל:
9 א - קל (פחות מקילו)
3 | - ממוצע (בין קילו ל-10 קילו)
+ 6 - כבד (למעלה מ-10 קילו)
3. שירות:
4 ם - רגיל
> ם - אקספרס
התעריף נקבע לפי נקודות, שנקבע להן ערך שקלי. הטבלה הבאה
מאפשרת לחשב את המחיר למשלוח. בחלק העליון של הטבלה
מופיעות כל התמורות השונות של יעד, משקל וסוג שירות. בחלק
התחתון נרשם התעריף בנקודות. כתוב שיגרה שמקבלת כקלט את
מקום היעד (א, =, א), משקל בקילו, סוג השירות (=, א) והערך
השקלי של "נקודה". השיגרה תפיק כפלט את המחיר למשלוח.
5 | 5 | << א )<< א
יעד ₪ א א ם
משקל 6 6 | = א ₪ 66 א< א א א| 606
שירות ם
:'(
וח
קל
:'(
וח
:(
וח
ח|) <| | ><
וח
קל
וח
| ק
= חח
=| 25| ק) <>
6 נקודות
2 נקודות א % א| א
0 נק' + 2 % *
לקילו מעל ל-20
0 נק' + 2 % %
לקילו מעל ל-20
2 נק' לקילו %
3 נק' לקילו % % /
6 נק' לקילו % % א
8 נק' לקילו %
פרק 2: מבני פיקוח | 73
תרגיל 22:
במשחק מזל, אדם מהמר א שקלים ובוחר פתק. אם הפתק ירוק הוא
מפסיד את כספו. אם הפתק חום הוא זוכה ב-150%, ואם הפתק ירוק
הוא מקבל 300%. כתוב שיגרה שתקלוט את סכום ההימור וצבע
הפתק שנבחר, ותוציא כפלט את סכום התמורה שהאדם זכאי לה.
תרגיל 23:
קיימים נתונים לגבי צבע השיער (שחור, חום, ג'ינג'י, בלונדיני) וצבע
העיניים (כחול, חום, ירוק) של אוכלוסיה כלשהי, שגודלה לא ידוע
מראש. כתוב שיגרה שתוציא כפלט את גודל האוכלוסיה, ואת אחוז
האנשים שיש להם כל צירוף של שיער ועיניים, למשל אחוז האנשים
בעלי שיער חום ועיניים ירוקות.
4 ;82 97 20085858 - סדנת לימוד
-
מערכים
מערכים במימד אחד: וקטור
מנהל עבודה מודאג שהפועלים מבלים בסוף השבוע, ומאחרים לעבודה ביוס ראשון.
כדי לתעד את טענתו, הוא רוצה לראות אס סכוס שעות העבודה הטיפוסי של שעות
העבודה של כל הפועלים יחד בימים ב' עד ה' גבוה יותר מסכוס שעות העבודה ביום א'.
תוכנית 601:
()601 חסטסחטת סו|סוק
5פזטס1] ,51006 5 54זטסר ,6וחַחו5 25 53זטסר] ,06חו5 5 2פזטסו ,6וחַחו5 5 51זטסרז חחוס
6פחוס ₪5
56 5 פזטח ד ,16חחו5 5 סע ,016חו5 35 פסטד ,6וחַחו5 35 חסוז ,6חחו5 5 חט5 חחוס
ז סח 5 זססהטס6 חחוס
2 סד 1 = 6060 זס=
("כמה שעות עבדת ביום ראשון?")אססזטסח1 = 1פזטסר]ן
("כמה שעות עבדת ביום שני?")א0פ+טסח1 = 2פזטסר]
("כמה שעות עבדת ביום שלישי?")אספזטסח1 = 53זטסו]
("כמה שעות עבדת ביום רביעי?")אסם)טסח1 = 4פזטסו]
("כמה שעות עבדת ביום חמישי?")אסט)טסח1 = פפזטסר]
1 טסו + חט5 = חט5
2 טס + חס = חסוו
3 + פס = פ6טך
4 + 060 = 060 1
5 + פזטחד = פוטחד :10
כו
= 8 (13)זח6 8 חט5 8 "יום ראשון סכום השעות: " א500!
= 8 (13)זח0 8 חסוא 8 "יום שני סכום השעות: "
= ₪ (13)זח6 8 65טד 8 "יום שלישי סכום השעות: "
= 8 (13)זח6 8 60/ 8 "יום רביעי סכום השעות: "
(13)זח6 8 פזטחד .8 "יום חמישי סכום השעות: "
חסטסחט= סחם
5 0 007 7 שה שש כ
פרק 3: מערכים | 75
בתוכנית זו יש ריבוי משתניס וריבוי פקודות. יש הקבלה בין המשתניס 81זטס3 עד
5 המתבטאת בפקודות 1-5. גס המשתניס חטפ עד פזטחד מקבילים, כפי שנראה
בפקודות 6-10. פקודות אלו והות כמעט, כאשר ההבדליס היחידים ביניהן הס
השינוייס שחייביס לבצע כדי שאותה פקודה תטפל ביוס אחר בשבוע.
ניתן לפתור את בעיית ריבוי המשתניס אס ניתן שס אחד לכל קבוצת משתנים. למשל,
לקבוצה 81זטס עד 85זטס נוכל לקרוא פזטסו] ולהבדיל ביןו משתנה למשתנה בתוך
הקבוצה על ידי הוספת מציין 00ו50050) בסוגרייס. בהתאם לכך, המשתנה פזוסר]
הוא משתנה רב-ערכי או מערך (עְזזה), כי הוא מורכב מ: (1) פזטסו], (2)פזטסוז,
(3)פזנוסר]ז, (4)פזגוסרז, ו-(5)פזטסר.
עתה, נוכל לכתוב (!)פזטסו! כדי לתאר איבר כלשהו של המערך פזטסוז. נתייחס
למכלול הערכיס במערך זה אם ניתן ל-|, בגה אחר זה, את תחוס הערכיס מ-1 עד 5.
נוכל לתאר את המערך פזטס] גם כגוש כתובות (תאים) רצופות בזיכרון המחשב, כפי
שמוצג בתרשים הבא.
(5)5זטס] (5)4זטס (5)3זטסו] (5)2זגוס1] (5)1זטוסרן
1 4 3 13 17
גס את המשתניס חט5 עד פוטחד נוכל לקב כקבוצה (מערך) בשס פַעְףכ. אם נשתמש
במציין (. כדי לתאר איבר כלשהו במערך, נוכל לכתוב (0)פ5עְ88.
לאחר ההגדרות שכתבנו, כל אחד מהשמות פזטסר] ו-5ץ8 מייצג קבוצת ערכיס
הסדוריס באה אחר זה במערך חד-מימדי, אשר נכנה אותו רשימה 150 6 או וקטור
(ז8610 /).
תוכנית 602: שיבוץ המערכים פזטס ו- פצֶ₪8 בתוכנית הקודמת כדי לקבל תוכנית
משופרת.
()602 חסטסחטת סו!סגוק
56 5 (5 סד 1)פזטסו וחוס
6חו5 45 (5 סד 5)1ע8כ וחוס
הז 5 2 זט הטוס ,06067ח1 45 1זססהטס6 חחוס
2 סד 1 = 6061 זס=
5 10 = 606012 זס=
(2זס%חס6 .8 "כמה שעות ביום עבדת ")אספזטסח1 = (2זס6הטס5)0זטסו]
(2ז%0חהט5)00זוסר) + (2ז0הט28/5)60 = (2זס6חטס6)פעהס
אסא
כ
5 סד 1 = 60601 זס=
(0071ח5)00ץ8כ .8 "שוה ל:" 8 1זס)חטס6 .8 "סכום השעות ביום: " א80ף5!!
אסא
חסססחט= 6חם
6 82₪/ 97 400088 - סדנת לימוד
כשס שמצהיריס על משתנים, כך יש להצהיר על מערכים. בהצהרת המשתנים מציינים
שכל אחד מהשמות פזטסר ו-5ץ08 הוא מערך בן 5 איבריס ממשיים מסוג פוַפָחוס.
טווח המציינים של כל אחד מהמערכים הוא מ-1 עד 5, כפי שמופיע בסוגריים. כל
איברי מערך אחד חייבים להיות מאותו סוג, שהרי יש רק מילת תיאור סוג אחת
(פַופָחופ במקרה זה) עבור כולס. שיסם לב ששתי פקודות זס= מחליפות את הפקודות
בשורות 1-10 בגירסה הקודמת של התוכנית. אס הרווח אינו נראה גדול, תאר את
המצב לו רצינו לחבר נתוניס עבור 30 יוס ולא 5 ימיסם. מספר השורות בתוכנית 601
היה גדל ל-60, כאשר מספר השורות בתוכנית 002 היה נשאר כמות שהוא.
0
הערה:
אם לא נציין בפקודת חזום את טווח המציינים (למשל (5 סז 1) פזטסו),
אלא נציין רק (5) פזטסח, המהדר יבין שאנו רוצים להגדיר 6 משתנים
בווקטור, ממוספרים מ-0 עד 5. אם כן נציין טווח, נוכל לבחור כל ערך
שלם, כולל מספרים שליליים, למשל: 6- סד 13- עבור קצוות הטווח.
תרגיל 1:
כתוב שיגרה שמקבלת 5 איברים של וקטור כקלט, ומחליפה כל איבר
בסכום כל האיברים הקודמים לו הכולל גם אותו איבר עצמו.
תרגיל 2:
כתוב שיגרה שקוראת וקטור לא מסודר של 10 ערכים שלמים חיוביים,
כאשר חלק מהערכים חוזרים על עצמם. הפלט יהיה אותו וקטור באותו
סדר, כאשר כל ערך מופיע בדיוק פעם אחת. כל ערך החוזר על עצמו
יוחלף ב-0. למשל, אם הווקטור המקורי הוא (מימין לשמאל):
7 17 8 15 9 14 3 15
וקטור הפלט יהיה:
7 007 03149
תרגיל 3:
בתרגיל הקודם, קבץ את כל הערכים הייחודיים בהתחלת הווקטור,
והצב 0 במקומות האחרונים של הווקטור, מבלי לשנות את סדר
הערכים. בנוסף, הוצא כפלט את משתנה פטסוחחטא שערכו יהיה
שווה למספר האיברים בווקטור המקורי שאינם חוזרים על עצמם.
למשל, אם הווקטור המקורי הוא (מימין לשמאל):
7 17 8 15 9 14 3 15
וקטור הפלט יהיה:
87 314917
כאשר ערך פטףוחשוחטאז יהיה 7.
פרק 3: מערכים | 77
טעינת מערכים
לפעמיס הנתוניס שרוציס לטעון למערך ידועיס מראש, כמו נתוני טבלה. למשל,
במקרה של שכר עובדים, כדי לקבל את השכר עבור שעות נוספות ביוס מסוים,
משתמשיס בנוסחה הבאה: +50806ז08פוו/! * ]5808 * 58101סאזסה8 ח5זטוחס. השכר
(שיעור) לשעות נוספות שונה מיוס ליוס. כמובן, יכולנו להגדיר מערך ולטעון את
הערכיס אחד אחד, כדלהלן:
(7 סף 1) זטוח5 וחוס
5 = (1) זטוח5
5 = (2) זטוח5
5 = (3) זטוח5
5 = (4) זטוח5
5 = (5) זטוח5
2 = (6) זטוח5
3 = (7) זטוח5
דרך יותר קצרה היא להשתמש במשתנה מסוג 1ח8וז8/, יחד עם הפונקציה החדשה
ץֶאזזה, שטוענת את כל המערך לתוך משתנה זה, ומאפשרת קריאת הערכים במערך
בצורה המקובלת. תוכנית 0021 מדגימה שיטה זו.
תוכנית 6021:
זה / 5 ז|690כ * זטוח5 חחוס
(3 ,2 ,1.5 ,1.5 ,1.5 ,1.5 ,1.5) שְהזזה = זטוח5
7 = זסת
(1) זטוח5 זחוזק. פטססס
אסא
מערכים דינמיים
מערך דינמי הוא מערך שמספר איבריו יכול להשתנות, משוס שאיננו יודעיס מראש
לכמה איברים נּדקק בהמשך התוכנית. היתרון העיקרי במערך דינמי הוא שאין צורך
להגדיר מערכים גדוליס כאשר בסופו של דבר איננו משתמשים ברוב האיברים, ולכן
המקוס שהוקצה להם הולך לאיבוד. השלביס בהגדרת מערך דינמי הס כדלהלן:
1 הגדר מערך ללא מימדים, למשל:
35 () ץהז 56 ד הזוס
2 בשלב שתוכל לקבוע את גודל המערך, השתמש בהצהרה החדשה: 36018
כדלהלן:
(16 סך 4) ץ8זו 50 ד והוכס6א
8 ;8/ 97 200088 - סדנת לימוד
שיס לב שבשלב וה אסור להגדיר את סוג הנתוניס, אותו חייביס להגדיר בפקודת
חחום המקורית. הגבולות התחתונים והעליונים אינס חייביס להיות ערכיס
קבועים. הס יכוליס להיות משתניס שנקראו בתוכנית.
3 לאחר שהגבולות הוגדרו פעס אחת, ניתן להגדירס שוב בהמשך בעזרת פקודת
וחוס6ףא. הבעיה העיקרית היא שהנתוניס הקיימיס במערך יאבדו כשנגדיר את
המערך בפעס השנייה, אלא אס מוסיפים את המילה 6/ז658זם, כדלהלן:
(ק0 סד 1) ץ8ז 650 ד 6507/6זק הוהוס6א
שימוש במערך חד-מימדי
נניח שמורה בודק מבחן ורוצה לתת לסטודנטים ציוניס יחסיים. לציון הנמוך ביותר
הוא קובע ערך 0 ולציון הגבוה ביותר הוא קובע ערך 100. כל שאר הציוניס יחושבו
באופן יחסי בתוך תחוס זה. למשל, אס הציון הגבוה ביותר הוא 72, ייקבע לסטודנט
זה ציון 100. לסטודנט שקיבל את הציון הנמוך ביותר - 63, יינתן ציון 0. סטודנטיס
שציוניהס בתוך התחוסם 63 עד 72 יקבלו ציוניס בין 63 ו-72, מפוזריס באופן יחסי
למרחק שלהם מ-63. הנוסחה המתאימה לחישוב ציון יחסי היא:
ציון יחסי = 100 * (ציון - ציון נמוך) (ציון גבוה - ציון נמוך)
תוכנית 603:
()603 חסטסחט= סווטטק
1 35 ()78065 חחוס
20068 45 0010868חם חחוס
הז 5 וס | ,1060017 5 חתפו חחוס
ז סח 5 א06ח1 חחוס
זז 5 זססהטס6 חחוס
6חו5 5 806ז0!בחו0ח5 וחוס
0 = וס :0 = הפו
]סח וטח סס
1 + א06%ח1 = א06ח1
(10068 70 278065)1) 6567/6זק והוכס6א
("הזן ציון של תלמיד")אסט)טסח1 = (06%ח78065)1)
(₪78065)18068 = 10 הפחד הפו < (8א678065)1006 זז
(06%ח6178065)1 = צוס 1 הסח ד שוס | > (א06ח678065)1 ]1
("האם הגענו לסוף הנתונים (6טזד או 8156=) ")אסט)טקח1 = 00108%68ח=
קסס |
א סד 1 = סח 60 זס=
(שס 1 - ח8וה) / (שס] - ( 6חט78065)60ס) * 100 = 8!07806חוח5
= 8" הוא: " 8 זסזחט600 .8 "הציון היחסי של תלמיד מספר " א80ף15!
("40.00" ,8!07806חו-0ח6)5ה וס
כ
חסססחט= סחם
פרק 3: מערכים | 79
בהתחלה, הציון הגבוה רשוס כ-0 והנמוך כ-100. בכל קריאת נתונים, מעדכנים את
האינדקס העליון של המערך, שהרי הוא דינמי. לאחר קריאת הנתון, מעדכניס את
הציון הגבוה והנמוך ביותר, ומכניסיס את המספר החדש למערך.
תרגיל 4:
חזור על תרגילים 1-3, כאשר גודל הווקטור אינו ידוע מראש, כלומר
השיגרה תעבוד נכון עבור וקטור בגודל כלשהו.
תרגיל 5:
כתוב שיגרה שמקבלת כקלט נתונים על כמות הגשמים הממוצעת בכל
חודש, ומפיקה כפלט:
כמות גשמים ממוצעת בשנה.
החודש הגשום ביותר.
החודש השני הגשום ביותר.
2
.
3 החודש שבו ירדה כמות הגשמים הקטנה ביותר.
2 ההפרשים בין כמויות הגשמים שירדו בכל חודש לבין כמות
הגשמים הממוצעת בכל החודשים.
בעיית הפלינדרום
פלינדרוס (פוחסזסחו|הק) הוא כינוי למשפט, אשר אפשר לקרוא אותו משני כיווניס
ולקבל אותה תוצאה, בתנאי שמתייחסים רק לאותיות ומתעלמים מרווחים ומתווי
פיסוק. למשל המשפט : ה08₪ ח'] ,הבּ30ו הוא פלינדרוס.
תוכנית 604:
()604 חסטסחט= סווטטק
59 5 50 וחוס
הַחו5 45 פַחוש5טט5 וחוס
1 5 01ח= ,06067ח1 5 500 חחוס
59 45 סזס/ץ6א וחוס
1 5 ה0חַח6 1 הזוס
חן 5 106 ,156067 5 הססבּסס | הזוס
59 45 ()5ז60 | וחוס
1 = חסו0680 |
("" ,"פסוחסזסחו!הק ","בבקשה להזין את המחרוזת לבדיקה")אסט)טטח1 = 5₪
(58)ח ] = ה0%ח6 |
(1 ,חס680ס.1 ,0%)50ו1] = 5050108
וח ]| => חסטפסס | סווח סס
5 וס חב |(8רח5 3060015 ' הסח "2" => פַחו5סט5 6חה "ה" =< פַחוח5טטפ ]1
1 + 106 = 106
0 82/ 97 200088 - סדנת לימוד
(106 סד 60501 | 6567/6זק והוססא
500508 = (6075)1.06 |
+ 0חם
1 + הס0ו0630] = חסו3סס |
(1 ,חסו680ס.] ,0%)50₪ו1] = 8ח50501
קסס |
1 = 500%
6 = 501
(6075)001 | = (5)50ז00 | סח 01ח₪ > 505 סווחש סס
1 + 56 = 5096
1 - 01חם = 01ח₪
קסס |
הסח ד ₪01 =< 508% ]1
"8 " = 0זס/\ץ66
56
"ז'חפ!ו " = 0זס/ץ6
+ 0חם
"6רחסז0חו!8 3 " .8 זסשץ6א .6 50 אס 50
חסטס6חט= 6ח=
בחלק הראשון של התוכנית, קוראים את המחרוזת לתוך מערך דינמי שנקרא 1.880078.
מעביריס למערך את התוויס החוקיים ללא פיסוק. בחלק השני, משוויס את התוויס
שהס במקוס סימטרי בהתחלה ובסוף המערך כדי לראות אס הס זהים. אס התשובה
חיובית, המשפט מוצהר כפלינדרום, אחרת, מודיעים שהוא אינו פלינדרוס.
תרגיל 7:
תרגיל 6:
כתוב שיגרה שקוראת רשימת שמות ומדפיסה אותם בסדר הפוך.
כתוב שיגרה שמקבלת כקלט שורות תמליל באנגלית, מכניסה אותן
למערך ומדפיסה. אם צירוף התווים "אא" מופיע בתחילת השורה, היא
תודפס בכניסה של א מקומות מימין, כאשר א הוא מספר בין 1 ל-120.
תרגיל 8:
השיגרה הבאה מטפלת באיתור פושעים לפי שתי קבוצות נתונים:
3
2
כרטסת 5 הפושעים הידועים למשטרה, שכוללת את הנתונים:
שם, גובה, ומשקל. אפשר לקרוא נתונים אלה למחשב מכל מקור
חיצוני אחר, או אפשר לקבוע את ערכם כחלק מהשיגרה.
תיאור הפשע, הגובה והמשקל המשוערים של הפושע.
כתוב שיגרה שתדפיס את תיאור הפשע ואת שמות החשודים בביצועו.
החשודים הם אנשים שגובהם חורג בפחות מ-5 ס"מ מהגובה המשוער
ומשקלם חורג בפחות מ-5 קילו מהמשקל המשוער של מבצע הפשע.
פרק 3: מערכים | 81
משתנים רב-ערכיים בשני מימדים
המערכים פזטסח ו-5צֶ08 מייצגיס ערכיס סדורים בואה אחר זה במערך חד-מימדי,
במבנה רשימה או וקטור. קיימות קבוצות ערכיס המסודריס במבנה מערך דו-מימדי
(ץ8זז/ |החסופחסוחו0-סעצד). מערך וה נקרא טבלה (8018 ד) או מטריצה (אז89!).
נדגיס באמצעות תוכנית את השימוש במערך דו-מימדי. במפעל מסויס קובעיס את
משכורות עובדי המנהלה כפונקציה של שנות הוותק בתפקיד, ושל רמת ההשכלה.
הנתוניס ערוכים בטבלה שבהמשך ומייצגים את האחוו שבו יש לכפול את השכר
הבסיסי כדי לקבל את השכר לכל עובד.
השכלה פחות מ-5 ותק בין 5 ותק בין 10 יותר מ-15
שנות ותק ל-10 ל-15 שנות ותק
בלי בגרות 100 15 100 175
בגרות 15 100 175 200
תואר 1 או יותר 0( 175 200 2205
תוכנית 605:
()605 חסטסחט= סווטטק
005% 8850583 = 0
לח 5 (4 סד 1 ,3 סד 1)/ה!53 וחוס
ח200|68 45 0010868חם חחוס
10606 5 זסס ואס ,1600 5 2 ,0606ח1 5 1 חחוס
5 ו סוה56 ,06067ח1 5 הסחפסטסם
56 45 /זה|ה5|החו= וחוס
9 0010 זסזזם חס
"הכנס את הטבלה לחישוב משכורות "א15480!
3 70 1 = ה06800= וס
5סז פחס!ה זטסח1' 4 סד 1 = שהסוחס5 זס
₪ "הזן את הערך המתאים לשורה: ")אסט)טסח1 = (ו סוח56 ,ח6800ט0ם)/58|8 :0
(ש סוח56 86 " ולטור: " ,6 06800
כ
אסא
9 010 זסזזם חס
0 סח וטחש ספ
("הזן את מספר העובד")א00)טקח1 = זססותטא6אזוס
:0
("הזן קוד עבור השכלה - בין 1 ל-3")א00)טקח1 = ח06800=
("הזן קוד עבור ותק - בין 1 ל- 4")א0פ)טסח1 = / סוח56
2 82/ 97 400088 - סדנת לימוד
8510583 * (100 / (שוסוחס5 ,הס בסט0ם)/583) = /ב|53!החו=
/ז!58|החו= .8 " הינו: " .8 זססחטצזסאזס\ 8 "השכר הסופי עבור פועל מספר " א5000!
9 010 זסזיום חס
:00
("האם הגענו לסוף הנתונים (6טזד או 8|56=)")אסט)טוקח1 = 00108%68ח=
|00
חסססחט- זוא
"הזנת אינדקס מחוץ לטווח. נסה שוב" א480פ1 :99
56 09
"הזנת ערך לא נומרי. נסה שוב" א₪5480 :9
656 609
"חייבים לכתוב =(חד או 55 |ג=" א80ףפוז :999
56 9
חסססחט- סחם
הצהרת משתניס עבור מטריצה, דומה להצהרת משתניס עבור וקטור. בהצהרת
המשתנים דרושיס שני זוגות מספרים, כדי להגדיר את תחוס הערכים של שני
המצייניס. הזוג הראשון מתייחס לתחוס השינוי של אינדקס השורות בטבלה, והזוג
השני מתייחס לתחוס השינוי של אינדקס העמודות, כאשר הם מופרדים על ידי פסיק.
שורה 019ח60: מצייניס איבר בשורה !| ועמודה (. על ידי ((,!) /58|31, בדוגמה זו
(ץוזסוח56, חסו0081ו58|317/)0. המשתנה ח006800= בלולאה החיצונית מקבל ערכיס
מ-1 עד 3. כאשר 1 = ח0068%0ם, המשתנה עווזסוח56 שבלולאה הפנימית משתנה מ-1
ל-4. כלומר, ארבעת המספריס הנקראיס תחילה הס: (58!8/)1,1, (1,2)עזבו58,
(58|87/)1,3, ו-(58|87/)1,4, הכתובים בשורה הראשונה של הטבלה. אחר כך ערך
0068000 שבלולאה התיצונית עולה ל-2, ושוב, ערך עוסוח56 עולה מ-1 ל-4
בלולאה הפנימית. לבסוף, ערך ח0סו₪00081 בלולאה החיצונית יהיה 3, ו-שוסוח56
ישתנה מ-1 ל-4 בלולאה הפנימית במהלך קריאת השורה השלישית.
הפקודה זסזזם חכ מופיעה 3 פעמים, כל פעם לפני שגיאה מסוג אחר. פעם אחת היא
מפנה אותנו לשגרת שגיאה שמבקשת שהמשתמש יזין ערך מספרי, פעם לשגרת שגיאה
שמבקשת שהמשתמש יזין ערך בטווח מסוים, ופעס לשגרת שגיאה שמבקשת
שהמשתמש יזין ערך בוליאני. בכל מקרה, הפקודה 60019 6506 (למשל) מחזירה
למקוס השגיאה הספציפית ומאפשרת עוד הזדמנות להזין את הנתוניס בצורה נכונה.
תוכנית 606:
()006 חסטסחט= סווטטק
חן 5 הרטוס ,7ז0606ח1 5 פאוס₪ חחוס
1 5 2 ,006ח1 5 1 חחום
זז 5 ()ההטפאוס וחוס
חן 25 ()והט5וס6 חחוס
חן 35 ()אוחהו הזוס
("כמה שורות תהיינה במטריצה")אספשטקח1 = פאוס₪ :1
פרק 3: מערכים | 83
("כמה עמודות תהיינה במטריצה")א0פ+טסח1 = פחוחט!ס6 :2
(5חוחט!ס6 סד 1 ,פאס סד 1)או130] 6/ה56סזק והוססח
(5\ס סד 1)והט5/ס₪ 507/6סזק והוססח
(5הוחט|ס6 סד 1)רט60!5 6567/6זק והוס6א
5\סח 0ד1 = 1 זס :3
סז פחסו3 +טקח1' פחוחטוס6 סד 1 = 2 זס=
(נ .8 " ולטור: " 86 8.1 "הזן את הערך המתאים לשורה: ")אסטוטסח1 = ( ,1)אוהו₪
אסא
וכ
5 סד 1 = 1 זס :4
5חוחט!ס6 סד 1 = 2 וס
(כ ,1)או8 + (1)תטפצשסם = (1)וחטפשוסא
(כ ,1)או13] + (()חחטפ!|ס60 = (2)וחטפ|ס6
אסא
וכ
5 סד1 = 1 וס :5
5חוחט!ס60 סד 1 = 2 וס
;(3 ,1)אוזה1 זחוזק. פטס
אסא
;" " זחוזק. פַטססס
(1)החטפאוס לחוזק. טססס
וכ
%חוזק. פטס
5וחט!60 סד 1 = ( זסת :6
;(2)רח60!5 %חוזק. סטססס
וכ
חסססחט- סח
בתוכנית זו אנו מוצאיס את סכוס השורות והעמודות במטריצה. התוכנית משתמשת
במערכים דינמיים כדי לקבוע את גודל המטריצה, שלא נקבע בומן כתיבת התוכנית.
שורות 1-2: קליטת מספר השורות והעמודות במטריצה.
שורה 3: קליטת תוכן המטריצה לפי שורות.
שורה 4: בניית סכוס השורות והעמודות.
שורה 5: הדפסת השורות וסכוס כל שורה בסוף השורה.
שורה 6: הדפסת השורה התחתונה המכילה את סכוס העמודות.
4 842/ 97 400088 - סדנת לימוד
תרגיל 9:
נתונה מטריצה במבנה ריבוע קסם (פזהטף5 סִַסָ8), שבו סכום
המספרים שווה בכל שורה, בכל עמודה ובכל אלכסון, למשל:
6 1 8
7 5 3
2 9 4
כתוב שיגרה שמקבלת כקלט את מימדי הריבוע ואת ערכיו, ובודקת אם
הוא ריבוע קסם.
תרגיל 10:
ריבוע לטיני הוא מערך של א*א שמכיל מספרים, כך שמספר כלשהו
אינו מופיע יותר מפעם אחת בשורה או בעמודה. הריבוע הבא עומד
בדרישות אלו:
4
1
2
3 1
כתוב שיגרה שבודקת אם מערך בגודל א*א הוא ריבוע לטיני.
109
10%
5-כ
תרגיל 11:
האחד בינואר 1998 חל ביום חמישי. כתוב שיגרה שמדפיסה את לוח
השנה 1998 + א (עבור כל א). פלט לחודש מסוים צריך להיראות כך:
8 עזפזטחה3
1 ח= טחך 0 טך חסוו חטס
1 2 3
4 5 6 7 8 9 10
1 12 13 14 15 16 17
18 19 20 21 22 23 24
11 020 29 28 7 26 255
תרגיל 12:
כתוב שיגרה שמקבלת כקלט מערך דו-מימדי (א,!) חטץו2ד אשר מכיל
את הציון (מ-0 עד 10) של סטודנט !| בשאלה א. קלוט גם את הווקטור
|8אח8ו/! שמחזיק את שקלול שאלה 6 בחישוב הציון הסופי. כתוב
שיגרה שתוציא עבור סטודנט | את הציון המשוקלל שלו.
פרק 3: מערכים | 85
5% תרגיל 13:
%5
מוסד לגמילות חסדים מנסה למכן את חלוקת הכספים למשפחות.
כתוב שיגרה שתקבע סכום שמקבלת משפחה על פי הטבלה הבאה.
נתוני הקלט הם:
> טבלה לקביעת השכר
= רמת ההכנסה של המשפחה
מספר הילדים במשפחה
<> ילדים 1 2 3 4 5 6 ומעלה
הכנסה 4
עד 10,000 0 | 7,000 | 12,000 | 16,000 | 21,000 | 25,000 ועוד
0 ו/ילד נוסף
9 | 2,000 | 5,000 | 7,5000 | 9,000 0 | 13,000 ועוד
0 /ילד נוסף
9 | 1,000 | 2,800 | 4,800 0 1,000 0 ועוד
0 /ילד נוסף
9 | 1,000 | 1,800 | 3,000 4000 00 0 ועוד
0 /ילד נוסף
9 | 800 0 | 2,500 12,000 12,000 0 ועוד
0 /ילד נוסף
9 | 500 00 10 2,000 20000 0 ועוד
0 /ילד נוסף
מעל 60,000 0 0 0 0 0 0
חיפוש במערכים
חיפוש - סריקת כל האיבריס במערך כדי למצוא את האיבר, או האיבריס, שמסיימיס
תנאי מסויס, או שוויס לערך מסוים. יש שתי שיטות נפוצות לחיפוש איברים במערך.
השיטה הפשוטה ביותר היא חיפוש ליניארי (ח0ז668 זהסחו1), החיפוש היעיל ביותר
(במיוחד למערכים גדולים) נקרא חיפוש בינארי (ח068970 עזהּחום).
לא נחזיק מערכים גדולים ב-600885//. אס קיימים נתוניס רביס, נחזיק אותס כטבלה
(עיין בפרק 5). קיימת פקודת חיפוש על טבלאות, ולכן אין צורך לתכנת את החיפוש.
נשתמש במערכים לכמויות קטנות של נתוניס, ונוכל להסתפק בחיפוש ליניארי.
חיפוש ליניארי מתחיל באיבר הראשון במערך ומתקדם לסוף, עד איתור האיבר הרצוי.
6 82₪/ 97 400088 - סדנת לימוד
תוכנית 607:
()007 חסטסחט= סווסטק
()5ז6םותוו]סהסחק הזוס
ח200|68 45 0010868חם וחוס
56 וס
ז 1 5 65רח3ּרחגו ,1060001 5 א06ח1 חחוס
ח68ו200 5 28חוח וחוס
6חסח0!60ל חו 08%8 +טסחז '
08 חח וטח סס
1 + 06%ח1 = אס0ח1
הסו5ח6רחו0 35| 6+ חס 5הסט6חו ץ|חס 6/ו656זק סוסא '
(069ח1 סד 1 ,2 סד 1)פזסטוחט]סהסחק 6567/6זק והוססה
("הזן שם החבר")אסט)טסח1 = (068ח1 ,1 )5זסותטצסחסחק
("הזן מספר טלפון של החבר")אסט)טסח1 = (068ח1 ,5)2זסטותט!סחהסחק
חסוד (65ץפע = (|651 68066ץפע + הסטפסט0)פע ,"האם סיימת?")א080פוא) זז
6 = 5001086
6
6 = 5001086
+ 0חם
מסס |
6 = 500010868
10% = 5ס6חתהּ\רחטא]
6 0ח60!ץ ₪6 חן 65רחהח זס? ה0ז608 '
008 וטח סס
6 = ה2וחוח
("הזן שם החבר שמחפשים")אסט)טסח1 = 566086
1 = א06%ח1
(28רחוח 0% 0חג/ פסרתהּרחט] => א06ת1) סווחצ סס
החד (06%ח1 ,1 )5זסרתטף6 הסח = זסעה הסח 1
סד = ה2וחוח
6
1 + א06סח1 = אססח1
+ 0
ססס |
חס ד 28וחוח ]1
(068ח1 ,5)2 רחא סק .8 " " .8 זז 5668 8 "מספר הטלפון עבור " אס598ו
6
" אינו ברשימה".8 50600867 8 "מספר הטלפון עבור " א5480!
+ 0חם
הסח ד (65ץפע = (|65 08066צפע + הסחפסט0פע ,"האם סיימת?")א5080!וא) זז
סד = 50010863
6
6 = 5001086
+ 0חם
ססס |
חסטס6חט= 6ח=
פרק 3: מערכים | 87
בקטע הראשון, קוראיס נתוניס לתוך רשימת שמות חבריס ומספרי הטלפון שלהם,
המוחזקים במערך. בעזרת הביטוי ₪16561/6 מותר לשנות את ערך המימד האחרון
בלבד, ולכן סידרנו שהמימד המשתנה יהיה דווקא המימד השני. בקטע השני,
משתמשיס בחיפוש ליניארי כדי למצוא שמות חבריס מסוימים, ולהוציא כפלט את
מספר הטלפון של כל אחד.
.
%
תרגיל 14:
בארגון מסוים המשכורת המירבית נקבעת לפי שנות ותק, כפי שמוצג
בטבלה. אם שנות הוותק הן מעל 25, או פחות מ-3, אין חובה לנהוג
לפי כללים אלה.
שנות ותק משכורת מירבית
3-5 5
20 18
83 10
0 11000
205 10
כתוב שיגרה שמקבלת כקלט שמות עובדים ושנות הוותק שלהם.
הפלט יהיה דוח המכיל את שמות העובדים והמשכורת המירבית
שלהם על פי שנות הוותק. בסיום יש להדפיס את מספר העובדים בכל
קבוצת ותק.
תרגיל 15:
לתוכנית המטפלת בהשבת אבדות, יש שני סוגי קלט:
תיאור המציאה, שם המוצא, ומספר הטלפון שלו.
שם המאבד ותיאור האבדה.
אם קיימת התאמה בין תיאור האבדה לבין תיאור המציאה, התוכנית
מדפיסה שורה עם הפרטים הבאים:
תיאור האבדה, שם המאבד, שם המוצא ומספר הטלפון שלו.
כתוב שיגרה שקולטת קלט מהסוג הראשון לתוך מערך, ומחפשת את
האבדה המתאימה לכל שורת קלט מהסוג השני.
8 8/ 97 200088 - סדנת לימוד
מיון במערכים
מיון - פעולה של סידור איבריס לפי תכונה מוגדרת, כמו למשל לפי הערך שלהם.
אפשר למיין בשני סדרי מיון (065ח560₪/8 8ח001!801):
3
2
סדר עולה (ז08ז0 בַחו0ח568/) - לאחר מיון, האיבר בעל הערך הקטן ביותר יהיה
הראשון ברשימה, והאיבר בעל הערך הגדול ביותר יהיה האחרון ברשימה.
סדר יורד (ז06זכ (חו0ח6506כ2) - לאחר מיון, האיבר בעל הערך הגדול ביותר
יהיה הראשון ברשימה, והאיבר בעל הערך הקטן ביותר יהיה האחרון ברשימה.
יש מספר שיטות מיון. כפי שהזכרנ, לא נחזיק מערכים גדולים ב-460855, אס יש
נתוניס רבים נחזיק אותס כטבלה. קיימת פקודת מיון עבור טבלאות, ואין צורך
לתכנת את המיון. נשתמש במערכים עבור כמויות קטנות של נתוניס, ונוכל להסתפק
בשיטה שנקראת מיון על ידי בחירה ליניארית (חסו58!601 זהּסחו | עפ פַחוז60).
במיון על ידי בחירה ליניארית, אנו מניחיסם שקיימיס במערך מספר ערכים (למשל,
הא וחטא) שאינס מסודרים. בכדי למיינס, עלינו לבצע את הצעדיס הבאים:
1
נציב 1 במשתנה חִ8ִ81א, המיועד להצביע על הערך הקטן ביותר במערך. נשווה
את: (חה818א,1) פזססחטאפחהסתם עם: (1,2) פזססוהטאפהסתק ונקבל אחת
משתי התוצאות האפשריות הבאות:
9 (ה1,4818) פזססהטאפחסת =< (1,2) 8זססוחטצפהסחש. במקרה כוה,
ח8ז8 א יישאר 1.
9 (ה1,4818) פזססותטף6הסת > (1,2) 8זססוחטאפהסחש. במקרה כוה,
ח8זא יקבל את הערך 2.
נשווה את: (ח1,4818) פזססוחטצפהסתק עס: (1,3) פזססמטסהסתק. אס
(ח818א,1) 5ז6ס הגוא הסח > (1,3) פזססהטא6חהסתק, אז ח4818 יהפוך להיות
3, אחרת הוא יישאר ללא שינוי.
נמשיך כך עבור: (1,4) 8ז6סוחטא6חסחם, (1,5) פזססוחטא6הסתק, עד שנשווה
את: (פ6חהא;וחטצ,1) 8זססהטא6חהסחק עס: (ה1,4818) 8זססהטצ6חהסתס.
לאחר כל השוואה, האינדקס ח4818 יצביע על האיבר שערכו קטן יותר. לאחר
ההשוואה האחרונה, האינדקס יצביע על האיבר הקטן ביותר, והמשתנה
(ח4818, 1) 8זססוהטצ6חסחק יכיל את הערך הקטן ביותר מבין כל 65וחף8חחטצ
הערכים שבמערך.
עתה יש להחליף את (1,1) 5זפסוטואהסחק ב- (ה1,4818) פזססוטוצפהסמם.
כתוצאה מההחלפה, האיבר בעל הערך הקטן מכל האיבריס נמצא במקוםס
הראשון במערך. כך מסתיים המעבר הראשון (0855 8%זו=).
המעבר השני דומה לראשון, אלא שמציביס 2 במשתנה ח8%9א, עורכיסם את
החיפוש מ: (1,3) פזפסוחטצז6חסח; עד : (65חוהּאוהטא, 1) >זססהטטא6הסתם, כדי
למצוא את האיבר הקטן ביותר מבין 1 - פ65חִףּא)"וחט] איברים שאחרי האיבר
הראשון. כזכור, האיבר הראשון נבחר במעבר הראשון כבעל הערך הקטן ביותר.
פרק 3: מערכים | 89
.6
האיבר הקטן ביותר שנמצא עכשיו יוצב לפי ערכו במקוס השני במערך, ויהיה
השני בסדר המיון.
במעבר השלישי, מציבים 3 במשתנה ח4818, וממשיכים כמו קודסם. במעבר
האחרון, ח8)8 יקבל ערך התחלתי של 1 - פ6ו8חטא. נשווה את הערך
שנמצא באותו מקוס, שהוא השני מהאחרון, לערך שנמצא במקוס האחרון,
וכאשר נסדר את שני הערכים האחרונים, המערך יהיה מסודר במלואו.
תוכנית 608: מיון על ידי בחירה ליניארית.
00
()608 חסטסחט= סווטטק
()5ז6םוהוו]סהסחק וזו
ח200|68 45 0010868חם חחוס
2 וחד ,1קוחס ד וחוס
5 5סרחה רחא ,ז0606ח1 5 2א06ח1 ,1050067 5 א06ח1 חחוס
1 5 חבז43 וחום
6חסח6!60? חו 08%8 +טסחז '
08 חח וטח סס
1 + א06ח1 = אססח1
הסו5ח6רחו0 35%| 6+ חס 5הסח6חו ץ|חס 6/ו656זק סוסא '
(06%9ח1 סד 1 ,2 סד 1)פזסטוחט]סהסחהק 656/6זק והוססה
("הזן שם החבר")אסטזטסח1 = (068ח1 ,1 )5זסותטצסחהסחק
("הזן מספר טלפון של החבר")אסט)טסח1 = (068ח1 ,5)2זססותט!סחסחק
הסח ד (65ץפע = (|65 68066צפע + הסחפסט0פע ,"האם סיימת?")א5080!וא) זז
6 = 0010868
6
6 = 5001086
+ 0חם
מקסס |
10% = 5סוחהּוחטאז
זזס |החוףוזס חו )טס )חוזק '
%חוזק. פטססס
"זז |החופוזס" +חחק. פטססס
הוחא סד 1 = אססח1 זס=
(068ח1 ,5)2זסטרח )הסח , (א06ח1 ,1 )ססר טא הסתק שחוזק. פטססס
אסא
| 6006 ל חן 65חחהּח +זסס '
1 - 5סחחּ וטא סך 1 = אססח1 וס
106% = 6808
וטא סד 1 + א06ח1 = 2א06ח1 וס
החד (ה8ז68 ,5)1זססוהט]סהסה > (2א06ח1 ,1)פזסטותטסהסהק זז
2 = 6800
0
8 97 400655 - סדנת לימוד
כ
חסחד א06ח1 <> חםזבא ]1
(068ח1 ,1 )טר אס הסחק = 1קותסך
(18068 ,5)2ז6טות)6הסחק = 2קוחסדך
(ח8%9א ,1 )5זסטרתט6הסחק = (א06ח1 ,1 )5זסטרתט)1סחסהק
(ח8%8א ,5)2זסטותט6הסחק = (א06ח1 ,5)2זסטרתט)1סחסרק
1ח ד = (ח808א ,1 )5זסטרתט)1סחסרק
2 ד = (ח808א ,5)2זסטרתט)1סחסרוק
+ 0חם
כו
%חוזק. פטססס
"50160" זחוזק. סטטסס
הא וטוא סך 1 = א06ח1 זס=
(068ח1 ,5)2זסטרט)61 הסח , (א06ח1 ,1 )5זססוט]סהסתק זהוזק. פטספטס
כ
חסססחט- סח
רשומות
עד עכשיו, עסקנו בנתוניס מהסוגיס הבאים:
מספרים ממשיים.
מספרים שלמים.
ערכים מסוג סַחחוְדַפזּהכ.
2
4
ערכים בוליאניים.
2
= ערכים מסוג מטבע.
1
מחרוזות של אחד או יותר תוויס.
בקבוצת נתוניס שיש קשר לוגי ביניהס וכל נתון הוא מאותו סוג, נוכל להחזיק את
הקבוצה במערך, ואס יש קבוצות רבות כאלו, אפשר להחזיקן במערך דו-מימדי. אבל,
לעיתים יש צורך לטפל בקבוצת משתנים שמרכיביה הס מסוגים שונים. למשל,
בדוגמה הקודמת, התייחסנו לשס ומספר טלפון. משוס שהגדרנו את שניהס כסוג
+חהוזהּ/, יכולנו להחזיק אותס באותו מערך. אבל אס נתייחס לשס כמשתנה מסוג
מחרוזת, ולמספר טלפון כמשתנה נומרי, תהיה לנו קבוצת נתוניס שמחזיקה נתוניס
קשוריס מסוגיס שוניס. קבוצת נתוניס כזו נקראת רשומה (59000), וכל איבר בה
נקראת שדה (18!]0=). השדות ברשומה אינס צריכיס להיות מאותו סוג. קבוצת
רשומות העוסקות בנושא מסויס מוחזקת כטבלה, כמו למשל קבוצת תלמידיס.
פרק 3: מערכים | 91
מגדירים רשומה בחלק ההצהרות (חס80ז60!8כ) של המודול. להלן הצהרה עבור
רשומת נתוני טלפון:
0 קד
0חו50 5 שוחבּו]
פחס | 35 זסטרחטאז
6מץד סחם
שס הרשומה הוא 4606010 6חסחם, ושמות השדות הם: 6וחחפּא ו-זססחחטא.
תוכנית 609:
22
()609 חסטסחט= סווטטק
600 הסח 5 ()5זסטוחט)1סהסחק וחוס
ח200|68 45 0010868חם חזוס
2 וחד ,1קוחס ד וחוס
5 65רחה וטא ,06007ח1 5 2א06ח1 ,1050067 5 א06ח1 חחוס
1 5 חבז43 וחום
6חסח0!60? חו 08%8 +טסחז '
08 חח וטח סס
1 + א06%ח1 = אססח1
הסו5ח6רחו0 35%| 6+ חס 5הסט6חו ץ|חס 6/ו656זק סוסא '
(068ח1 סד 5)1זסטוחט)]פהסחק 6567/6זק והוכססה
("הזן שם החבר")א00)טסח1 = 6וח3). (5)10068זס םרת אס הסח
("הזן מספר טלפון של החבר")אסט)טסח1 = וטוא (5)10068ז6 םרת אס הסח
הסח ד (65ץפע = (|65 08066צפע + הסחפסט0פט ,"האם סיימת?")א5980!וא) זז
6 = 50010868
6
6 = 50010868
+ 0חם
מס |
106% = פסתתףּ1רחגוצ]
זז |החוףוזס חו )טס 6חוזק ד
%חוזס. פטססס
"זז |החופוזס" +חחק. פטספס
וטוא סד 1 = אססח1 זס=
6חה. (א5)1006זסס רהוטסהסחק להוזק. פוטס
זס וטא (5)10068זסס רט]סהסתק זהוזק. פטס
כו
| 6006 ל חן 65חהח +זסס '
1 - 65וחּוחטוא! סד 1 = א06ח1 זס=
1% = המלא
וטו סך 1 + 106% = 2א06ח1 זס
8 97 400655 - סדנת לימוד
חח ד 36 . (ה+8 )5 רסחל > 886 (5)1006%2זסטרתטסהסחק 1
2 = 4808
+ 0חם
סא
הסח ד א06ח1 <> המלא ]1
שוחה (5)18068זסטוהט]סהסחק = 1קוחסדך
זו ט. (א06ח5)1זס טר )הסח = 2קוחסד
( הזז רהוצ הסחק = (א06%ח5)1זסטרתט)1סחסרוק
( הזז רהוצ הסחק = (א06%ח5)1זסטרתט)1סחסרוק
1 ד = 6רח3. ( הסה א )זט טרתט)1ס הסרק
2 וח ד = זססרח טוא ( הסה א )5 זס טר טס הסרוק
+ 0חם
כ
%חוזק. פטססס
"5060" זחוזק. סטטסס
הוחא סד 1 = אססח1 זס=
6חה). (א5)1806זסט רת ט)סהסחק %הוזק. ופסכ
וטא (5)10068זסס רוס הסתק זהוזק. סטוסטס
כ
חסטסחט= סחם
התוכנית דומה לתוכנית 008, אך נתוני מספרי הטלפון מוחזקים כרשומות במערך.
אנו מצהיריס בפקודת וחוס שהמערך מחזיק איברים מסוג 0ז64600הסחק, שהס
רשומות.
שיס לב שההתייחסות לכל שדה ברשומה נראית כך:
6. (8א06ח1) ה86זההרח-וח6ח5
למשל,
36 . (068ח5)1זסטרתט)6 תסרוק
למעט שינוי וה, התוכנית והה לתוכנית 608. הרבה יותר טבעי להחזיק את הנתונים
כמערך רשומות מאשר כמערך דו-מימדי שאיבריו הס מסוג 1ח8ז8/, כדי שאפשר יהיה
להחזיק באותו מערך שמות ומספרים.
פרק 3: מערכים | 93
תרגיל 16:
נניח שעבור כל פועל במפעל מסוים, קיימים הנתונים הבאים:
4% שם
משכורת
אחד משלושת הציונים: א, ב, ג המגדירים את איכות עבודתו.
נתונים אלה אינם ממוינים. יש לקרוא אותם למחשב, לערוך את הפלט
הנדרש, ולהציג אותו.
הפלט הוא רשימת עובדים ממוינת בסדר אלפביתי של שם העובד.
נתוני עובד כוללים שם, משכורת וציון. במקום קוד הציון, יש להדפיס
את כינויו: 'מצוין' במקום 'א', 'טוב' במקום 'ב', ו'ממוצע' במקום 'ג'.
תרגיל 17:
נתון וקטור של ערכים לא מסודרים. כתוב תוכנית כדי למצוא את
החציון, המוגדר כערך האמצעי של הווקטור. שלבי הפתרון:
מסדרים את א האיברים בסדר עולה.
אם א הוא אי-זוגי, החציון הוא הערך שמספרו הסידורי הוא
2(+א).
3 אם א הוא זוגי, החציון הוא ממוצע שני האיברים שמספריהם
הסידוריים הם 2/א ו-2+1/א.
תרגיל 18:
קלוט מטריצה ובה הנתונים הבאים על עובדים:
שם העובד,
מספר האישי שלו,
עיר מגורים,
4% סו
הוצא את הנתונים האלה ממוינים לפי הסדרים הבאים:
לפי שם העובד,
לפי מספרו האישי.
לפי סו, מהגבוה לנמוך.
בנוסף, הוצא רשימה של שמות העובדים ומספרם האישי, מקובצת לפי
עיר מגורים. שם העיר יופיע ככותרת, ומתחת לכותרת כל עיר יופיעו
שם העובד ומספרו האישי ממוינים לפי שם.
3 3-59 33 23459 כ
4 842/ 97 400088 - סדנת לימוד
4
פרק 0
פרוצדורות
מבוא
קטע הוא חלק לוגי של אלגוריתס לפתרון בעיה, שאפשר לתחוס אותו כיחידה שלמה.
באלגוריתמיס שיש בהםס חלקיםס שיש לבצע פעמיס אחדות במהלך הפתרון, השימוש
בשיטת הקטעים יכול לפשט את המבנה הלוגי של הפתרון ואת התכנות. בתוכניות
שהודגמו עד עכשיו, הוצגה רק האפשרות לכתיבת קטעים בגוף התוכנית, בדרך כלל
בצורת לולאה. יש לכך מספר חסרונות :
אם התוכנית ארוכה, קשה יותר להבדיל בין המהלך העיקרי שלה לפרטים. כאשר
נוקטיס בשיטה זו, יש ללמוד את כל התוכנית, לפני שאפשר לטפל בחלקיס שלה.
כאשר יש צורך לבצע קטע תכנות פעמים אחדות, כותבים אותו מתחילתו עד סופו
בכל מקוס שהוא דרוש. כדי להתגבר על בעיות אלו, משתמשים בשיטות תכנות
של שגרות (פ6השטסזסט5) ופונקציות (פחס0סחטת). אפשר לכנות שגרות
ופונקציות בשס הכולל פרוצדורות (65זו|0660ז5), המתאר תוכנית לביצוע פעולה
מצומצמת שכיחה, או פעולה אשר חוזרת פעמים אחדות בתוכנית העיקרית.
בהמשך נלמד מתי ואיך להשתמש בפרוצדורות.
שגרות
תוכניות 02כ01-0:
()201 חסטסחט= סווסטק
033 ]0 600 0168005ח1 6!טה ובע 30 606 |סחט 0363 זטקחו ₪680 '
6ה הש 380 506013 3 8הוח06 5סזוטס6ק '
' 507/65 395 8 0 1- = 00108%8ח5 005%
לחז 05 הו וחוס
8 <> הַבּן= 6!וח/\ סס
2 |68
2
פרק 4: פרוצדורות | 95
הסח ד (65פע = (|06ח65 68 טע ,"האם סיימת?")א5880!א) +
00088 = 80
6
0 = ₪80
+ 0חם
סקס |
חסססחט= סחם
()002 560 סווטטק
6חו5 5 58/31 ,6חו5 5 פזטסר ,8!6ַחו5 5 ₪866 חחוס
("מה שיעור השכר לשעה?")אספ)טסח1 = ₪806
("כמה שעות עבדת?")אספזטסח1 = פוטסה
6 * פזטסר = ע58|31
("00. 5%" ,ץז58|3)וחזס-] .8 "המשכורת שלך היא: " א5480!
50 0ח=
וג וה של תוכנית (201) ושיגרה (202) מפריד בין שני חלקי תוכנית 812. שיגרה ₪02
מכילה את הקטע לחישוב משכורות, והתוכנית הראשית 001 מכילה את הלולאה
המנהלת את התהליך. הפקודות שמרכיבות את השיגרה 02 הוצאו מ-01, ומהוות
שיגרה נפרדת. ב-01, מתייחסים לפקודות אלו על ידי כתיבת ()02כ ||08 או 02.
תוכניות 03-004:
66
()₪203 חסטסחט= סווטגוק
033 01 600 0168005ח1 6!טה ובע 130 606 |סחט 0963 זטקחו 680 '
6 זע 030 |506608 3 0חהוח060 65זוטס6 '
0 38 85 567/65 ' 1- = 0010868ח₪ 605%
לחז 05 פב וחוס
08 = <> 80 סווח/ סס
(38|-)04 ||68
חסו 656 6עהבחזסס|ה 8 04 '
0סס |
חסטסחט= סחם
(ז%600ח1 5 ח3|-)04 טטפ סווטגוק
033 ]0 600 10168005 6!הה בע 130 6 |סחט 0368 זטקחו 680 '
6 וזה 030 |8ו5066 3 0חוח060 65זוטס6 '
0 38 85 56/65 ' 1- = 0010868ח₪ 60056
6חו5 45 !58 ,6חו5 5 5זטסר ,6ַחו5 45 ₪86 חחוס
5 38 החוכ '
0008 <> 80 6ווח סכ '
("מה שיעור השכר לשעה?")אסטשטסח1 = ₪866
("כמה שעות עבדת?")אספזטסח1 = פוטס
6 * פזטסר = ע58|317
("4.00+" ,ץ53|31))הוזזס=] .8 "המשכורת שלך היא: " א15480!
84 97 400055 - סדנת לימוד
חסחד (65ץפע = (|651 680068 ץע ,"האם סיימת?")א540!א) זז
00088 = 80
6
0 = ₪80
+ 0חם
קסס|'
ספ 0חם
בווג 01-002כ, השארנו את השאלה לגבי המשך הביצוע בתוכנית הראשית, 01.
בדוגמה זו העברנו שאלה זו לשיגרה. אבל כדי שהתוכנית הראשית תדע את התשובה
לשאלה, אס יש המשך או לא, מעביריס את התשובה בעזרת פרמטר או ארגומנט
שנקרא פָ9!=. כאשר כותביס בתוכנית הראשית 203 את (פָ9!=) 204 |ו639, או רק
9 04כ, הערך של 89!= מועבר מהשיגרה לתוכנית הראשית.
תוכניות 06כ05-0:
()205 חסטסחטת סוופוק
טס 30 ההוח 60 |!ו\ ההסל 6או! 6החהח 6זח6 חב 8665 '
\ כ ,608
58 5 סהה50 וחוס
0חו5 5 6וח53זו= וחוס
58 5 סרחהוזסוו וחוס
9חו5 5 8536 1 וחוס
ז 1 5 ה0חַח6 1 וחוס
1 5 הסםהסס | הזוס
1 = חסו0680 |
("" ,"סידור השם" ,"בבקשה להזין שם פרטי, אמצעי ומשפחה")אסש)טסח1 = 6וח508
(507186)רחוז ד = 6וח53
(06ח5013)ח6 1 = ה0%ח6 |
(1 ,6)50306 | = 6וח8פזו=
(" " ,06ח507)507183ח1 = חסטפסס |
5חה || 01 0 0665 ' (הס630ס | ,6חב06)50%כ ||68
(1 ,ח0ו063 | ,6רח507%3)סון = שרתבּאזסון
(" " ,50710306 ,1 + חסטהסס |)5ח1 = חסטפסס |
(ח06800 ] ,6ח06)5073כ ||68
(1 + הס ה00 ] - ה0%ח6 | ,6ח₪100%)507%3 = 3508006 |
סוחהסוי] 8 " " 8 ס6וההא5זו-] 8 " ," 8 6ח3503. | אסם וו
חסטסחט= סחם
(ז10%006 5 106 ,חַחו5 35 6ה06)50%3כ טטפ סווטגוק
0חו5 45 זבח6 וחוס
"" = 6087
(6רח508)ח6 ]1 < 1.06 זס " " <> זְבּח6 וטחט ספ
1 + 106 = 106
פרק 4: פרוצדורות | 97
(1 ,1.06 ,06ח110)501%8] = זהח6
קסס |
6 076) 66060ח' 0 = 106 הסחד (6וח508)ח6 1 < 106 +
60 66 3% 5חהופ 01 %סןה '
50 0ח=
זוג וה מבוסס על תוכנית 806 שמסדרת שמות המתקבליס בצורת : 00865 חוץ|/
חזוחח5, ומעבירה אותסם לצורת: 6 ג ,ח1חח5. השיגרה 206, שהוצאה מתוכנית 806,
מבטלת רווחיס עד לתו הבא שאינו רווח. את השיגרה הזו קראנו פעמייס מ-05כ, ולכן
היה כדאי להעביר את הקטע לשיגרה כדי לשפר קריאות ולחסוך בקוד.
תוכניות 06כ07-0:
(ז10%006 5 106 ,חַחו57 35 6ה06)50%3כ טטפ סווטגוק
0חו50 45 זבח6 וחוס
"" = ]68
(6רח508)ח6 ]1 < 1.06 זס " " <> זְבּח6 ושח סס
1 + 106 = 106
(1 ,1.06 ,06ח0)501%8ו1] = זב
ססס |
60 66 3% 1365 01 310% סזהּ 6זסז ]| 66066ח' 0 = 106 הסחד (6רח50%8)ח6 1 < 106 וז
טפ 0חם
()207 חסטסחטת סווסוק
א חן זה 05ז]זס שרח צוסח 65חו06%07 300 56000006 8 0865 '
500 45 66ח06ח50756 וחוס
0חו5 5 6וחב53זו= וחוס
58 5 סרחהוזסוו וחוס
9חו50 5 8536 1 וחוס
5 5זס/שוחוצ! וס
1 = ח0סו0680 | 105001 5 חסטפסס | חזוס
("" ,"בבקשה להזין משפט שלם", "מספר מילים")א0ם)טסח1 = 5056000006
" " + (505600066)וחוז ד = 5756086066
0 = ח00פסס !| וטח סס
(" " ,5756056066 , חסו68ס 5)1ח1 = חסוהסס |
1 + 05זס/\רחטא] = 65זס/ותטאז
5 678 ץחה 01 0 06% ' (הסו680ס.] ,66ח06ח06)50756כ וו68
קסס |
5 טא 8 "מספר המילים במשפט הוא: " א5080!
חסטסחט= סחם
זוג זה מבוסס על תוכנית 807 שסופרת את מספר המילים במשפט. השיגרה 06
הוצאה מתוכנית 207, והיא אותה שיגרה שהוצאנו מתוכנית 806, וזה מדגיש עוד
יתרון של השימוש בשגרות, הרב-שימושיות של אותן שגרות.
8 82/ 97 400888 - סדנת לימוד
תרגיל 1:
נקלוט נתוני עובד על מספר שעות העבודה לחודש, ונתוני עובדים על
שיעור התשלום לשעה. הכן תוכנית שקולטת נתונים אלה, מדפיסה את
השכר המגיע לכל עובד, ומוציאה כפלט את ממוצע מספר השעות
שהעובד עבד בחודש, ואת ממוצע השכר ששולם לו. השתמש בתוכנית
ראשית ומספר שגרות.
תרגיל 2:
שיעור המס על הכנסה של אדם נשוי עד 5,000 שקל הוא 20%, ועל
כל הכנסה מעבר ל-5,000 שקל, הוא 40%. על הכנסה של אדם בודד
המרוויח עד 2,000 שקל הוא 10%, ועל כל הכנסה מעבר ל-2,000
שקל הוא 60%. כתוב שתי שגרות, אחת לאדם נשוי והשנייה לאדם
בודד. בתוכנית הראשית קלוט מצב משפחתי (בודד או נשוי), ורמת
הכנסה. התוכנית הראשית אמורה לקלוט נתונים עבור מספר לא קבוע
מראש של אנשים, ותיתן כתוצאה את מס ההכנסה שכל אחד חייב
לשלם, וגם ממוצע ההכנסה ומס ההכנסה של כל העובדים שנקלטו.
תרגיל 3:
כתוב שיגרה לקריאת מחרוזת המציינת מספר בינארי והפיכתה למספר
עשרוני.
רמז: מספר בינארי 100 שווה ל: ?0*2+'1*22+0*2
ארגומנטים מסוגים שונים
יש שתי דרכיס איך להעביר ארגומנטיס: לפי התייחסות (08ח361070 עם), ולפי ערך
(6טו8 עֶם).
משמעות הדרך הראשונה - לפי התייחסות - היא שהנתוניס בתוכנית הראשית
ובשיגרה הס אותס נתוניס, ומה שמועבר לשיגרה אינו נתון שתופס מקוס מיוחד
בויכרון, אלא מצביע לנתון המקורי. כל שינוי המבוצע על ידי השיגרה ישפיע על ערך
המשתנה בתוכנית הראשית. זה הרצוי בדרך כלל, וזו גס שיטה מהירה לעבודה, משוס
שאין צורך להעתיק כמויות נתונים גדולות אלא רק מצביעים, שהס כתובות של
נתוניס. שיטה זו היא ברירת המחדל.
פרק 4: פרוצדורות | 99
תוכניות 08-009:
()₪208 חסטסחט= סווטנוק
6טטסס ₪5 6|ספוזה/וסט חחוס
8 = 6|טפוזה ופ
6סהחהּ/וס0 ;" :סזסוסם" זחוזק. פטטסס
6 חחו!|68 01 5/האו סעבח3!50 (09)001/8118016כ |ו68 '
6סהה וטס 209 6הסטסזסט5
6סהחה/ס0 ;" :זסאה" זחוזק. פטטסס
חסססחט- סחם
(6!טטסכ 45 זססותטצ;|09)00 טטפ סוופטק
(3 / 1) */ זססוחט!ופ0 = וססותטצזוט
ספ 0חם
זוג וה, שמחשב את השורש הריבועי של מספר, מציג 8 לפני קריאת השיגרה ו-2 לאחר
קריאתה.
משמעות הדרך השנייה - לפי ערך - היא שמעביריס עותק מהנתוניס בתוכנית הראשית
לתוכנית המשנית, וכל השינוייס שיתבצעו יהיו על העותק בלבד. ערך המשתנה
המיוחס לתוכנית הראשית לא ישתנה. שיטה זו איטית יותר וגם אינה מחזירה את
הערך שלשמה קראנו את השיגרה. היתרון היחיד של שיטה זו הוא, שאם אין צורך
בערך החדש של המשתנה בתוכנית הראשית, שיטה זו מגנה עליו בתוכנית הראשית
ומשמרת את ערכו המקורי.
תוכניות 11כ-210: שימוש במילה |8ץ8 לפני הגדרת הפרמטר בשיגרה כדי לגרום
למעבר הפרמטר לפי ערך.
()210 חסטסחטת סווסווק
6סטסס ₪5 6|טפוזה/וסט חחוס
8 = 6|טםוזה/|פ
6סהחהּ/ס0 ;" :6זסוסם" זחוזק. פטטסס
סח טסזס 5 606 סחו!|68 01 הצ סעְטְבּח3!50 (6וט11)001/811כ |ן68 '
6ספוזה/וס0 11
6סהחה/0 ;" :זסאה" זחוזק. פטטסס
חסססחט= סחם
(6!טטסכ 5 זססותטזוטס |3ץ11)5כ טטפ סווטגוק
(3 / 1) */: זססוחט)1!פ0 = וססותטזוס
50 0ח=
התוכנית תדפיס את הערך 8 גסם לפני וגסם אחרי משוס שערך המשתנה 6!ספוז8 /ש|פס
אינו משתנה בתוכנית הראשית, גם לאחר ביצוע השיגרה. רק אס נבקש תדפיס מתוך
השיגרה עצמה, נראה ערך שונה עבור הפרמטר.
0 ;8/ 97 400858 - סדנת לימוד
תרגיל 4:
חזור על התרגילים הקודמים, ודייק לגבי סוג הפרמטרים, כך שרק
פרמטרים שחייבים להשתנות יוכלו להשתנות.
ארגומנטים אופציונליים
ארגומנטיס יכוליס להיות גס אופציונליים, כלומר, אין הכרח לכלול את כולס בזמן
הקריאה לשיגרה. כדי להפוך ארגומנט לאופציונלי, מוסיפיסם את המילה השמורה
8ח0וזק) לפני הגדרתו בכותרת השיגרה. אס ארגומנט כלשהו מוגדר כאופציונלי, כל
הארגומנטיס המוגדריס אחריו חייביס גס להיות מוגדריס כאופציונליים.
תוכניות 12-013:
()012 חסטסחטת סוופוק
5070 5 507510005 ,236 5 60סוסעח0301 ,316 5 0862310 חחוס
1/1/96%+ = 000ו0/0ח0801
3/2/96%א = 08608|0
30 ,50510005 13 :ג '
0 ,50750909= :5075686 ,080170/01660= :03070 013 :5 '
5-ו ,08010/016060= :0300 13 :6
(050)08010/01060 8 " :ססוסטח1 ז0 2806 " 8 (13)זח6 8 5750005 אסט 50
חססס6חט= 6חם
(ץ0803 |החסטכ 0 ,866 5 08070 ,0חוז5 ₪5 ז0ז13)5075 טטפ סווטגוק
הסח ד (ש8)08%28חו55ו151 +
"סוהקח()" = 575%8%
הסחד 30 < עח03071 - ץ03023 ]561
"306 | ההק" = )50750
6
"0" = 507506
+ 0חם
50 0ח=
כפי שנראה בשיגרה, הפרמטר 28008 הוא אופציונלי. כדי לדעת מה לעשות כאשר
הוא אינו כלול בקריאה לשיגרה, משתמשים בפונקציה פַחו15/155. פונקציה וו יודעת
לגלות אס ערך עבור אותו ארגומנט הגיע לשיגרה, ואס לא הגיע היא מאפשרת לנו
לקבוע מה לעשות. במקרה שלנו, המשתנה 5175181 יקבל ערך של סוףסח. שיס לב,
שהסוג של 08008 אינו מוגדר בשיגרה. היות וברירת המחדל עבור הסוג הוא
+חהוזהּ/, וה כאילו הגדרנו אותו כ-+חפוז3/. הפונקציה פְַחו95ו15 מקבלת ארגומנט
מסוג +ח18ז3/ בלבד, ולכן הגדרנו אותו כך.
שורה 4: קריאה לשיגרה 213. הארגומנט האחרון, שהוא אופציונלי, לא נכלל,
וכתוצאה מזה הערך שיופיע ב: א80 50 יהיה: סוףקחש.
פרק 4: פרוצדורות | 101
שורה 8: דרך אלטרנטיבית לקרוא לשיגרה. השתמשנו בארגומנטיס בעלי שמות
(פ1ח6וחטז 0פוחהבּ). לפי שיטה זו, בזמן הקריאה לשיגרה רושמיס את שס
הארגומנט כפי שהוא מופיע בהגדרתו בשיגרה, אחר את הסימון =: ולבסוף את הערך
המועבר לארגומנט, אס הוא משתנה או קבוע (בדוגמה שלנו הוא משתנה). יתרון שיטה
זו הוא שאפשר לכתוב את הארגומנטיס בזמן הקריאה לשיגרה בסדר כלשהו, ואס יש
פרמטר או פרמטריס אופציונליים, לא כולליסם אותס בקריאה לשיגרה. במקרה זה
כללנו את כל הארגומנטים, והתשובה שווה ל: 316 | וק"
שורה 6: כמו שורה 5, רק שלא כללנו את הפרמטר האופציונלי, ולכן התוצאה היא
כמו בשורה ג/.
תוכניות 14-015: תוכנית ראשית ושיגרה, כאשר יש שני ארגומנטים הם אופציונליים.
()214 חסטסחט= סווספוק
5 3זהק ,00007ח1 35 2זהק ,%6067ח1 5 1זבּק חוחוס
0 = כזבק
3זהק , ,1זהק 015 : '
3:7 ,1זהק=:1 בק ,3:=37הּזהק 015 :₪ '
1 =:1 הּזהק ,3:=37הּזהק 15 :6
1זהק א0 15
חסססחט= סחם
= סטפ סו|סטק
(00061ח1 5 3 ההזה |ההסטק 0 ,100067 45 2הובזהק |ההסטק ,106067 45 1 ההבזהק)15ס
חסחד 300 < 3וחהזהק * 2חפּזבּק ]1
0 = 1חתהּזְבק
6
0 = 1חתהּזְבק
+ 0חם
2חהזהק .8 " = 2חהזהכ" 15080
50 0ח=
שורה ג/: החסרנו את הארגומנט השני אך לא את השלישי. כדי להראות שהשני חסר,
רושמיס שני פסיקים, אחד ליד השני, במקוס שהיה צריך להופיע הארגומנט השני.
כאשר ארגומנט חסר ולא משתמשיס בפונקציה (חו8185!, הארגומנט שחסר מקבל
את ברירת המחדל עבור אותו סוג. היות וסוג הארגומנט החסר פה הוא ז906+ח!, ערכו
מתקבל כ-0, ולכן ₪81 פה מקבל ערך 100.
שורה 5: שימוש בארגומנטיס בעלי שמות. היות והמכפלה של 087802 ו-3ח4ז8ק
היא מעל ל-300, 981871 יקבל את הערך 300.
שורה 6: השמטנו פה ארגומנט אחד, אבל היות ואנו עובדיס עס ארגומנטיס בעלי
שמות, לא כללנו את הארגומנט שלא רצינו לכלול. כשנרצה להעביר לשיגרה מספר לא
ידוע מראש של ערכים נשתמש במילת העזר: /ץ8זח 9ז3ק כדי לעזור לנו לבנות מערך
דינמי. סוג המערך חייב להיות +חוז3ּ/. עץ8זז וזה חייב להיות תמיד הארגומנט
האחרון, אך מותר לכלול לפניו כמה ארגומנטיס שרוציס.
2 ;8/ 97 400858 - סדנת לימוד
תוכניות 16-017:
()216 חסטסחט= סווסוק
5 ,14 ,13 ,"חיים" 17
חסטסחט= סחם
ההזה / 5 ()3065זחו הזז םוחה זה ,0ַחו5 35 סהב17)50%כ טטפ סווטגוק
+חהוז3/ 5 זפצ חחוס
זז 5 שחו הזוס
זז 35 והטפלחו ,6ופַחו5 5 פע 0ח5 חחוס
ס6וחה )507 +חוזק. סטססס :ג
זנ ח1 זה/ ח86ם זס= :8
זע זחוזק. פטססס
זע )אסא
(8065ז0חו)סהטסט/ סד 0 = שחו זסת :6
(01חו)83065זסחו זחוזק. פטססס
(01חו)8065ז6חו + וחטפסחו = וחטפזחו
כ
(1 + (8065ז00חו)0חט0!) / ההטפסחו = 0/8ח5 :םס
טחַח5 +חוזק. פטססכ :5
ספ 0חם
בפונקציה ₪216 קוראים לשיגרה 217, עם מחרוזת אחת (הארגומנט הראשון,
ייחיים'י), ועוד 3 ארגומנטיס, אך יכולנו לכלול כל מספר ארגומנטיס רצוי.
שורה : הדפסת הפרמטר הראשון, השס.
שורה 8: גודל עֶ8זז/ח8ז3= אינו ידוע, ולכן נשתמש בפקודה ₪80 זס=, שמתאימה
למערך דינמי שגודלו אינו ידוע. ₪80 זס= יכולה לעבוד עס משתנה )+ח8וז9/ בלבד.
שורה 6: במערך דינמי ניתן גס להשתמש בפקודת זס= רגילה, כאשר גודל המערך
נקבע בעזרת הפונקציה: (8085זכ%ח!) סחטסס, כאשר 6חטספ מחזירה את מספר
המצביע הגדול ביותר שבשימוש במערך 102378065ח!. (הפונקציה 6חטספ ]1 מחזירה את
מספר המצביע הנמוך ביותר). שים לב שהערך הראשון ב-ץ8זו/ובּזהק מאוחסן
באיבר מספר 0.
שורות 0-5 : חישוב הממוצע.
תוכניות 18-019: דרך מקבילה לחישוב ממוצע של מספר ציונים לא ידוע.
()₪218 חסטסחט= סווסטק
033 01 600 10168005 6!טה ובע 130 66 |סחט 0963 זטקחו 680 '
6 030 |8ו5066 3 0חהוח060 65זוטס6 '
0 38 85 56/65 ' 1- = 0010868ח₪ 60056
זז 5 ()3065זבחו הזוס
(678065)0חו וחו6א
5 2 5סוש6זכן 0ף %+ח6|העו6 5 פוחז - 06001ח1 5 (8065)0זחו תופס '
לחז 45 פב וחוס
פרק 4: פרוצדורות | 103
008 <> 80 6ווח/ סס
("הזן ציונים?")א80)טסח1 = ((78065ח0)1 חס )8065 ז6חו
החד (65ץפע = (|68ח6514068 פע ,"האם סיימת?")א5080!א) זז
00088 = 80
6
0 = ₪80
(1 + (%078065חו)0חט3065))(50ז6חו 7/6ו656זק והוססה
+ 0חם
ססס |
()8065זסחו ,"חיים" 19
החסטסחט= 6ח=
(ז105006 5 ()65ט|ה/סחו ,חַחו50 ₪5 6ַה19)50%3 טטפ סווטגוק
%חהוזהּ/ 5 זהּ/סחו חזוס
+חהוז3/ 5 זפצ הזוס
זז 5 שחו חזוס
זז 35 והטפלחו ,6ופַחו5 5 פע 0ח5 חחוס
ס6וחה )50 +חוזק. סטססס :ג
()8|65/סחו = זהּ/סחו :₪
זהסחו ח1 זפצ ה80ם זס- :6
זע זחוזק. פטססס
זבּע )אסא
(זה'זחו)0חטספ סד 0 = שחו זס :ס
(סחו)זה/טחו זחוזק. פטססס
(שחו)ז/טחו + ותטפסחו = וחטפזחו
כ
(1 + (זהזחו)חט0ספ!) / ההטפסחו = 0/8ח5 :₪
50 זחוזק. פטססכ :=
0 = וחטפזחו :3
(65ט|8/חו)0חטספ סד 0 = שחו זס= :₪
(1חו)65ט|ה/סחו זחוזק. סטססס
(01חו)65ט!3/חו + וחטפסחו = וחטפסחו
כ
(1 + (5סט|0/3חו)0חטסם) / הזטפטסחו = החפ :1
0 חפ לחוזק. טטססס :3
ספ סחם
בדוגמה זו, בתוכנית הראשונה אנו קוראים את הציוניס אחד אחד, ומזיניס אותס
לתוך מערך דינמי. בכל הוספת ציון, מגדיליס את המערך הדינמי ב-1. מעבירים את
המערך הדינמי מסוג ז16060ח! לשיגרה 019 כפרמטר.
שורות 5-0: הפקודה ח₪80 זס= עובדת רק על משתנים מסוג )חאוזה/. כדי להפוך את
המערך 81065/חו למערך מסוג +ח8וז3/, מותר להשוות אותו למשתנה מסוג +חפחה//,
בדוגמה ז8זחו. המשתנה ז8/זחו הופך להיות מערך מסוג +חפוז8/ באותו גודל של
המערך 8!085/זחו, ולכן אפשר להתייחס אליו כמערך מסוג +ח8וז3/ בפקודות 0-5.
שורות (-6: טיפול ישיר במערך 8!085/)חו כמערך מסוג שלם.
4 8₪/ 97 400888 - סדנת לימוד
תרגיל 5:
כתוב תוכנית שמקבלת מספר ומדפיסה אותו. לידו, היא משרטטת קו
המורכב מהסימן מקף (-), שאורכו יחסי לערך המספר (היסטוגרמה).
רמז: קלוט את הנתונים לתוך מערך דינמי. בסוף הקליטה, עבור
לשיגרה כדי לגלות את המספר המקסימלי, ומצא את הגורם שיתרגם
את המספר לערך בין 0 ל-50. הכפל כל מספר בגורם זה, והזן אותו
כקלט לשיגרה שתדפיס את ההיסטוגרמה.
תרגיל 6:
כתוב שיגרה שמנתחת תוצאות מבחנים.
נתוני הקלט:
תשובות כל סטודנט (מערך). התשובות הן מספרים מ-1 עד 4.
= מספר זהות של כל סטודנט.
= מפתח התשובות (מערך), שהוא אוסף התשובות הנכונות.
פלט השיגרה הוא ציון הסטודנט בבחינה, המחושב לפי מספר
התשובות הנכונות מחולק במספר השאלות. חלק את השיגרה לשיגרה
ראשית הקוראת לשגרות משניות. השיגרה אמורה לעבוד עבור מספר
שאלות שאינו ידוע מראש, וגם מספר סטודנטים לא ידוע מראש.
תרגיל 7:
שכתב את הדוגמאות והתרגילים על חיפוש ומיון שהוצגו בפרק הקודם,
כך שבכל מקרה השיגרה הראשית תחולק לכמה שגרות-משנה.
תרגיל 8:
מיזוג מוגדר עבור שני מערכים ממוינים אשר רוצים לאחדם למערך
אחד שגם הוא יהיה ממוין. יש שתי דרכים לבצע מיזוג:
קרא את שני המערכים לתוך המחשב, הפוך אותם למערך גדול
אחד, ומיין את המערך הגדול.
> קרא את שני המערכים לתוך המחשב. עבור דרך האיברים
המקבילים בכל מערך לפי הסדר, ושים את הקטן בכל זוג במערך
החדש. כאשר כלים האיברים באחד מהמערכים, אפשר להעתיק
את איברי המערך השני למערך הממוזג בלי בדיקות נוספות.
הכן שתי שגרות ראשיות, אחת לפי כל שיטה. לכל שיגרה ראשית, הכן
את שגרות המשנה הדרושות.
פרק 4: פרוצדורות = 105
טווח ההכרה של משתנים ופרוצדורות
טווח ההכרה (50006) - באיזה תחוס המשתנה מוכר. משתנה שנוצר בפרוצדורה נגיש
רק באותה פרוצדורה, ונקרא משתנה מקומי (|008)). ניתן להגדיר משתנה נוסף
בפרוצדורה אחרת באותו שס.
תוכניות 20-021:
()₪220 חסטסחט= סווטגוק
8חו5 5 6החב0)3 וחוס
"שסכ החוה8ח6" = 6וחה])אט
1
"סזו0ס6סזק הו18!" ,0 ,6רחה אס אסם 5
חסטסחט= 6חם
()21כ טטפ סוופטק
6טס 5 סוחס וחוס
7 = 6חחהבס
"סח טסז 5" ,0 ,6רחהזאס אס 15
סט 0ח=
הגדרנו משתנה בעל אותו שס בתוכנית הראשית ובשיגרה, למרות שתוכנס וסוגיהס
שוניס. בתוכנית הראשית, המשתנה מחזיק את ערכו המקורי למרות שהרצנו את
השיגרה. אורך החיים של משתנה מקומי הוא כל עוד הפרוצדורה בה הוגדר מתפקדת
עדיין. ביציאה מהפרוצדורה, המשתנה מאבד את ערכו וחוזר לברירת המחדל.
משתנה מודולרי (ז0!3סו/) - משתנה שניתן לראותו מכל פרוצדורה במודול. משתנה
זה נוצר כאשר מצהיריס עליו בחלק ההצהרות (9ח0סו280]8/81) של המודול, אך יש
להקצות לו ערך רק בפרוצדורה. הוא מחזיק את ערכו עד סוף ביצוע היישום.
תוכניות 22-023:
()022 חסטסחטת סוופוק
"0" = ץח8קות00)אט
3
"6ז660סזק הפו" ,0 ,ההקר 600 אס 150
חסססחט= סחם
()023 סטפ סו|סטק
"סחטטסז 5" ,0 ,חק 000 אסם 5וו
"הח0056" = חקו 0)00אט
50 0ח=
6 ;8/ 97 400858 - סדנת לימוד
בשיגרה מדפיסים את תוכן המשתנה /ץח00708:א1 שניתן בתוכנית 22, ובתוכנית
הקוראת מדפיסיס את תוכנו כפי שתוקן בשיגרה. רואיס שיש גישה למשתנה מכל
פרוצדורה במודול.
משתנה סטטי (0ו5181) - משתנה מקומי ששומר את ערכו בין קריאה לקריאה. במקוס
להגדיר אותו בתוך הפרוצדורה בעזרת חזום, משתמשים במילת העזר 5%900.
תוכניות 24-025:
()224 חסטסחט= סווסנוק
5
5
חסטסחט= סחם
()025 טפ סווטגוק
5 זב/חו הזוס '
5 זב/חו 5906
1 + זפחו = זבּ/חו
"סחסטסז ט5" ,0 ,זהּ/סחו אס וו
50 0ח=
כאשר מגדיריס את המשתנה בעזרת וחוכ, הערך 1 מוצג פעמיים, אך כאשר מגדיריס
את המשתנה בעזרת 51800, בפעס הראשונה 1 מוצג, ובפעס השנייה 2 מודפס. גס
פרוצדורה יכולה להיות סטטית אס כותבים את המילה 51866 לפני שס הפרוצדורה.
התוצאה מהוספת מילה זו היא שכל המשתניס בפרוצדורה יהיו סטטיים, אפילו אס
הגדרנו אותס כרגיל ללא החלפת מילת ההצהרה וחוכ במילה 0ו5%91.
משתנה ציבורי (סו|פטם) - משתניס הנגישים גם ממודוליס אחרים, בנוסף למודול בו
הוגדרו. משתנה ציבורי נוצר על ידי הצהרה בחלק ההצהרות (ולא בפרוצדורות), כאשר
מחליפים חחום במילה 6ו!פטק. אבל אפשר להקצות לו ערך התחלתי רק בפרוצדורה,
ולא בחלק ההצהרות. לכן, כדאי ליצור את כל המשתניסם הציבוריים במודול אחד,
ולהגדיר פרוצדורה באותו מודול בו יינתן ערך התחלתי לכל משתנה ציבורי. גס
פרוצדורה יכולה להיות מוגדרת כציבורית, אס מוסיפים את המילה סו1פט₪ כמילה
הראשונה בהגדרת הפרוצדורה. אס מוסיפיס את המילה 86עוז₪, הפרוצדורה תהיה
נגישה רק לפרוצדורות באותו מודול בו הוגדרה. אס לא מגדיריס לה סוג, ברירת
המחדל היא שהפרוצדורה היא ציבורית.
גס קבועים (19ח59%9ח600) המוגדרים בעזרת 60786 בחלק ההצהרות יכולים להיות
מלוויס במילת העזר 6וטוזח, ואז הס תקפיס רק במודול בו הוצהרו, או ס6ווסטש
(ברירת המחדל), ואז הס תקפים בכל המודוליס בבסיס הנתוניס.
פרק 4: פרוצדורות | 107
הערה:
השתמש במשתנים ציבוריים רק כאשר זקוקים להם במודולים שונים.
אפשר להוסיף קידומות לציון סוג המשתנה כדלהלן: ח (מודולרי), 9
(גלובלי - ציבורי), ו- -5 (סטטי). משתנה מקומי יהיה ברירת המחדל,
ולכן לא נקציב לו קידומת.
ההבדל בין פונקציה לשיגרה
ההבדל בין פונקציות ושגרות הוא בעיקר בדרך השימוש בהס.
תוכניות 26-027:
()226 חסטסחט= סווסטק
2 = 66000501חו 005%
4 = 502ח6600חו 005%
חן 5 6חט-סס שחו הזוס
(000502חו ,501ח60שחו)227 = 6חט-ס טח
"הססחט= פחופט פזסטרחט! 2 ]0 הטפ" ,0 ,6חט-ס טחו אס 150
חסטס6חט= 0ח=
חן 5 (060067ח1 ₪5 שחו ,60067ח1 ₪5 1שחו)027 הסטסחטת 6וופטק
שחו + 61חו = 27
חסססחט= סחם
פונקציה מחזירה ערך. כתוצאה מזה, היא חייבת להופיע בצד ימין של פקודת השמה,
כאשר בצד השמאלי נמצא המשתנה שיחזיק את ערך הפונקציה.
היות והפונקציה עצמה מיוחסת לערך מסוים, יש לפונקציה סוג. בסוף כותרת
הפונקציה 27, רואיס את המיליס זסַטָ6ח! 35, שמסמנות שהערך שייוחס לשס
הפונקציה עצמה יהיה מסוג זפַפָסוח!. היות ויש ערך לשס הפונקציה, השס עצמו (27כ)
חייב להופיע בצד שמאל של פקודת השמה בתוך הפונקציה, כדי שהיא תקבל את הערך
הרצוי. כמובן, לפעמיס איננו רוציס לקבל התזר מפונקציה. במקרה כזה, לא חייביס
לכתוב את סוג התוצאה בכותרת הפונקציה, וזה יהיה כאילו כתבנו +חהח8/ 5ה, שזה
ברירת המחדל. וה מסביר איך עבדנו עד עתה עס פונקציות, ואף פעם לא כתבנו את
סוג התוצאה בכותרת. עד עכשיו השתמשנו בפונקציות כתוכניות ראשיות שלא היו
צריכות להחזיר ערכיס לתוכנית קוראת כלשהי.
8 ;28/ 97 400858 - סדנת לימוד
תוכניות 28-029: ביצוע אותו תפקיד בעזרת שיגרה.
()228 חסטסחט= סוופוק
2 = 66000501חו 005%
4 = 6000502חו 005%
לחז 5 טפס שחו חחוס
טטלס זח! ,502ח00חו ,1זפחס6חו 29
"סחטסז 5 סחופט 5זססוחט! 2 +0 הטפ" ,0 ,פטפזס טחו אס 150
מסססחט= 6ח=
(ז0606ח1 5 0% סח ,6067ח1 5 2סחו ,7ז606שח1 35 01חו)29 טטפ 6וופטק
שחו + 1סחו = 0% חח
ספ 0חם
בתוכנית הראשית איננו צריכיס פקודת השמה כדי לקלוט את התוצאות, אך אין ערך
כלשהו המיוחס לשס השיגרה, ולכן אנו חייבים לקבל חזרה את התוצאה בעזרת
ארגומנט נוסף בתוך השיגרה עצמה שקראנו לו פט5!ס וחו.
תרגיל 9:
כתוב פונקציה שמחשבת רווח ממכירת מוצרים. נתונים:
מספר פריט (1 עד 10) - א,
מחיר הפריט (5),
תאריך (כ),
= הכמות שנמכרה באותו תאריך (6),
"
עלות שיווק משתנה (וא) עבור כל יחידה, השונה עבור כל סוג של
פריט.
השתמש בפונקציה זו בתוכנית שמדפיסה את הרווח ממכירת כל סוג
בכל תאריך, וגם את הסכום הכולל של הרווחים בכל תאריך.
רמז: יש להבדיל בין שני סוגי קלט:
קלט המאפיין כל סוג של פריט: א, =, ₪
קלט המשתנה מיום ליום: א, 6, פ.
פרק 4: פרוצדורות | 109
תרגיל 10:
זה 35 (ז6006זחו 85 ח ,600זחו 35 ()הוהטסא ,חַחז5 35 מ50) מטחסס
היא פונקציה שתכתוב לחישוב סכום ריבועי האיברים בשורה ח או
בעמודה ח של המטריצה חוחטז6א. אם "5" = פָטפ מחשבים את סכום
ריבועי האיברים בשורה ח, ואם "ַּ" = פָט5, מחשבים את סכום ריבועי
האיברים בעמודה ח. השתמש בפונקציה החטח560 בתוכנית שקוראת
מטריצה של שלוש שורות ו-4 עמודות, ומחשבת את סכום הריבועים
של כל שורה וכל עמודה. בפלט יש להציג את המטריצה המקורית,
ובסוף כל שורה - את סכום הריבועים באותה שורה. בתחתית כל
עמודה, יש לרשום את סכום הריבועים באותה עמודה.
תרגיל 11:
כתוב פונקציה שמחזירה את מספר הספרות במספר שהיא מקבלת
כקלט.
תרגיל 12:
כתוב פונקציה שבודקת אם ספרה מסוימת כלולה במספר. השתמש
בפונקציה זו בתוכנית שמגלה באיזה מספרי | בין 1 ל-100 נכללת
הספרה 6 (בין 0 ל-9) ב-ו, ב-?| וב-5!.
359 393 23-59 כ
0 ;8 97 400858 - סדנת לימוד
פרק 0
שפת שאילתות סטנדרטית
(;631)
רשומות וטבלאות
כדי לטפל בקבוצת משתנים שמרכיביה הם מסוגים שונים, הגדרנו את המושג רשומה.
למשל, אס מחזיקים נתוני עובד, אין זה נכון להניח שהרשימה כוללת שמות בלבד.
סביר יותר להניח שיש ברשימה נתונים שוניס עבור כל עובד: מספר עובד, שם, תאריך
לידה, כתובת, מצב משפחתי, שכר או מרכיבי שכר וכדומה, אשר כל אחד מהס מוצג
כסוג שונה. כפי שהוזכר קודם, קבוצת נתוניס כזו נקראת רשומה (460010), וכל איבר
בה נקרא שדה (180=). השדות ברשומה אינם חייבים להיות מאותו סוג נתוניס.
קבוצת רשומות העוסקות בנושא מסויס נקראת טבלה (18018). למשל, טבלת עובדיס
יכולה להחזיק את רשומות כל העובדיס.
יצירת טבלאות
קיימת שפה מיוחדת לבניית טבלאות והפקת מידע מהסםס. שפה זו נקראת
6 6 0870ח6+3 (5001).
המבנה הכללי של פקודת בניית טבלאות ב- 501 היא:
50| ₪6|0) 6החהּח 8016 ₪ |פהד ₪ ד65
כלומר, לאחר המילים = 1פאד 035415 כותביס את שס הטבלה הרצויה, ובתוך
סוגרייס את רשימת השדות שיהיו בטבלה, כולל סוג כל שדה, כאשר השדות מופרדיס
ביניהם בפסיקים.
פרק 5: שפת שאילתות סטנדרטית (.501) | 111
תוכנית 41: בניית משפט 501 שיוצר טבלה.
36 680 ()1ה חסטסחט= סווטטק
58 5 6רח30!63 50 ,0חו507 5 50/36 ,ה800!68 45 0ססססספ ,8ַחו5 5 57501 וחוס
05% 066006 60 הפוצו סט סו 606 ]| 66060ח' אס 6ות050ס₪ זסזזם הס :1
זטססס ||וו זסזזם סח 08% 50 6156 *
5% סח ]| ,6החבח 15 הַהוטבח 6!ה+ 0ח3 /הסטף פטסועסזק 6פ8זס '
2: 50 0/6 = "0708000050"
3: 507 3016036 = "6500700758"
36 5006 ,3606 6!60600[66כ. סוחס :4
3016136 5077 ,30!6 861 606000[665ו6כ. 0וח6סס :5
6 | טפוש חר 30067 .5001 החופט 90!6+ 3 0856 0ם ה עה החזססוב '
30636 8.57 " 6|ס3 ד קסזכ" = .57501 '
' 66!660[ 8016 5750 , 506/16, 060
הפחד 000ססם ץז '
506 חק 0. חס '
6י
"הח6|ססזק" א5080 | '
+ םי
6וחפח ץזסטף 30 שבח 8016+ צוסח הספחז '
| 8 30|6186 507 .8 " 30!6 ד 076806" = .50501 :6
8" טא דסא (20) 6% 3536 | ,ץצ צהה ווק 106006 זחו8 6057 1066067 10006"
6 ",(20) )6% והטז66 50 , | שא סא 6חו 6 08%6 5 ,(20) 6+ סוחה5זו- -"
"(שחסזזטס %פסכ ,(10) 6% 210 ,(20) 6% 6010/5000 "
060 ,/ 5000 , 5750 30/6 5616607 :7
הסח ד 000ססס ]1 :8
500/36 סט הס וחספ
6
"החס!טסזק" 580%
+ סחם
חסטסחט- 0חם
הסבר לפי שורות :
1. לפני שנבנה טבלה חדשה, יש לראות אס קיימת טבלה בעלת אותו שס, ולמחוק
אותה (צעד 5). אך מה יקרה אס נבנה טבלה זו בפעס הראשונה. אס ננסה למחוק
אותה, נקבל הודעת שגיאה. כדי לנטרל הודעה כזו, נודיע בשורה זו לא להתייחס
אליהן.
2: מחרוזת המחזיקה את שס השאילתה (עְז6ט2)) שניצור כדי לבנות קוב.
3: מחרוזת המחזיקה את שס הטבלה שניצור.
2 282 97 4006585 - סדנת לימוד
5 00700 נקרא אובייקט. אחרי הנקודה נרשוס את שס השיטה (0סח:6),
שהיא: 616+6000[606. שיטה זו מוחקת אוביקטים שוניס, כאשר הארגומנט הראשון
מציין את סוג האובייקט למחיקה (טבלה, שאילתה, טופס, דוח, מאקרו או מודול),
והארגומנט השני מציין את שס האובייקט מהסוג שצוין כפרמטר הראשון.
בשורות ההערה שנציג, נשתמש בפקודה אחרת (ב- 501) כדי למחוק את הטבלה.
הפורמט עבור פקודה זו הוא:
שחת 6וטמ+ קסחס
בניית השאילתה להפעלת פקודה זו תוסבר בהמשך.
6: להלן הפקודה לבניית טבלה. מיליס שמורות נכתבו באותיות רישיות:
,ץצ צה הזאק 16006 דאזז ₪ 605 16606 100006) 6רח וס ד 5 ם ופחד = ך-6
1 |( דא סו 806 5030866 ,(20) דא ד 6רח8 זו | , | ןוא דסא (20) אד 3586 |
((שחסזזט0 זטסכ , (10) דא ד קו2 ,(20) דא ד 610/56 , (20) דאם ד והט66 57
301086 דט מחזיק את שס הטבלה שנבנה. בסוגרייס נרשוס את השדות וסוגיהס.
68 - מספר הזהות. סוגו מוגדר כ-16081ח!. הביטוי +חו5%89ח60 מאפשר להגדיר
מפתח ראשל (ע46 עזהחוזק) שגס שמו 6008 (אבל יכולנו גס לתת לו שס אחר).
586 | - משתנה מסוג טקסט 0א76) שיכיל עד 20 תווים. הביטוי וטא 61 אוסר
עלינו להשאיר שדה זה ריק (כי כך יקבל ערך | 1(א).
8 - תאריך הצטרפות הלקות. נציין את סוגו כ-06ו28%61 ונציין שחייביס
למלא ערך זה.
+ - משתנה מסוג מטבע (עְסח6זזגוס).
0 הערות:
. פקודה זו אנו חייבים להגדיר כמחרוזת. היות וחלק מהמחרוזת
מורכב ממשתנה, וגם אסור להמשיך מחרוזת אחת לשורה הבאה,
אנו מפרקים אותה לחלקים, ומחברים ביניהם בעזרת 6.
במקום לתרגם את הפקודה למחרוזת, יכולנו ללחוץ על הכרטיסיה
שאילתות ולכתוב אותה במתכונתה המקורית כשאילתה חדשה
בתצוגת 501. גישה זו לא טופלה פה.
במקום לכתוב פקודה ב-801, יכולנו ללחוץ על הכרטיסיה
טבלאות ולהגדיר את השדות בצורה אינטראקטיבית. גישה זו לא
טופלה פה.
במקום צ=א ץצח ג/ווחק, ניתן לכתוב את המילה שטסואש, ואז
יוגדר אינדקס ייחודי. על משמעות אינדקס ייחודי, וגם על כיצד
לבנות אינדקס לא ייחודי, ראה להלן את תיאור פקודת 655415
אפשסצו.
פרק 5: שפת שאילתות סטנדרטית )501.( 113
" 0.
כשיש מפתח ראשי כפול, ולא בודד, לא נגדיר אותו צמוד להגדרת
שדה, שהרי אינו שייך לשדה כלשהו. במקום זאת, נגדיר אותו
לאחר כל השדות, דוגמה: נניח שהמפתח הוא שם משפחה + שם
פרטי. הגדרת הטבלה תיראה כך:
(20) ]א ד 350806 1 ,ז%606ח1 106006) 6ההופוטב 5 = וד = דה=6
, |1() דא שוחו [ 306 50866 , (20) דאם ד שוח3פזו , | וטוא דסא
+ ,(10) דאםד כו2 ,(20) דאם ד 6150906 ,(20) דא ד וטא 5
(6רח3 )1-5 36 35% 1) ץצ א צה תוזח 106 דאז מ 605 , (עשהסזיטס
7: קריאה לשיגרה 8018 5818011 שמרכיבה שאילתה שניתנת להרצה.
8: פתיחת השאילתה אם הורכבה בלי בעיות.
תוכנית 58!801180!6: הכנת הגדרת שאילתה. אחרי שהשאילתה מוכנה, אפשר להריץ
אותה על ידי פתיחתה.
,50 5 5070086 ,0ח51 5 |6)5756006וס3 561660 טטפ סווטגוק
(ח800!68 5 36606061
6 5ב 00 החוכ :1
5 01 וחוכ :2
()00זח6זז0 = 00 565 :3
(86 חכ 06/6105 0.0768 = ]0 56% :4
5: 006.50. =
41: '566 00] = 0.0760 6 061)50008706, 50756006((
6: 6
סד = 1460067066 :7
2 כפי שמגדירים משתנים מסוג נומרי וטקסטואלי, ניתן גס להגדיר משתניס
המסמליס אובייקטים כמו בסיסי נתונים, טבלאות, טפסים, דוחות, וכולי. בשורות
אלו הגדרנו משתניס לשני אובייקטים, בסיס נתונים (סַ8355ַ2818) והגדרת שאילתה
8089 - לא להתבלבל עס תוצאות השאילתה, שהן בעצס טבלה). אובייקטיס
נוספיס הס !301806 ד (הגדרת טבלה), /+₪6607056 (תוכן טבלה, או תוצאות שאילתה)
ו-16|0=.
3 כדי לטעון ערך למשתנה מסוג אובייקט, משתמשיס בפקודת 560, ולא בפקודת
השמה פשוטה, כמו שעשינו עד כה עס משתנים רגילים. %08ח8זוט6 טוען את מסד
הנתוניס הנוכחי לתוך המשתנה בצד שמאל של המשוואה.
4. השיטה 07881600(08/06% יוצרת הגדרת שאילתה ריקה, ונותנת לה את השס
שמופיע בסוגרייס (אס לא נרצה לשמור את השאילתה, נוכל להשמיט את הארגומנט
ב-0768%602067/0681).
5: השמת המחרוזת שמחזיקה את .5001 לשאילתה.
4 8 97 400088 - סדנת לימוד
הערה:
אפשר לשלב את שורות 4 ו-5, כפי שעשינו בשורה 41. אפשר גם
להשמיט את שם השאילתה ב-4 וב-41 ובמקומה לרשום מחרוזת ריקה
(""), השאילתה תתבצע, אך לא תישמר. היא תיחשב כשאילתה זמנית
(עזפט) עזפזססוחד).
6: סגירה ושמירת הגדרת השאילתה.
7: משתנה בוליאני גה הופך להיות 6טחד רק אם נגיע לסוף שיגרה זו. אס קיימת
שגיאה בשיגרה, למשל אס פקודת .501 אינה תקינה, השיגרה לא תסתיים, המשתנה
יישאר עס ערכו המקורי (8|58=), ובתוכנית הראשית תופק הודעת שגיאה.
0
הערה:
את תוצאות התוכנית שלנו נוכל לראות בכמה מקומות במסד הנתונים.
את השאילתה 0788160081 נוכל לראות אם נבחר בכרטיסיה שאילתות.
ניתן ללחוץ על עיצוב כדי לראות תצוגת עיצוב, ואז ללחוץ על הלחצן
תצוגה שבסרגל הכלים כדי לראות תצוגת 501 וגם תצוגת גיליון
נתונים. את הטבלה עצמה נוכל לראות אם נלחץ על הכרטיסיה
טבלאות. ניתן ללחוץ על עיצוב כדי לראות תצוגת עיצוב, כלומר את
מבנה הטבלה.
לאחר שראינו כיצד ליצור שאילתה עס פקודת .5001 היוצרת טבלה, כדאי לציין שניתן
להפעיל את פקודת .501 בעזרת השיטה 80016א₪ מבלי ליצור שאילתה פורמלית
(תוכנית +|14). תוצאת ביצוע בצורה ו היא כמו תוצאת ביצוע שאילתה זמנית.
תרגיל 1:
הכן טבלת עובדים בעלת 3 שדות: שם (מפתח), שכר, וציון במבחן
כניסה.
תרגיל 2:
בספריה מנהלים את מלאי הספרים. רשומת ספר כוללת את הפרטים
הבאים:
9 כותר
3% מחבר
שם המו"ל
שנת הוצאה לאור
מספר סידורי
הכותר והמחבר יחד מרכיבים את המפתח הראשי. בנה את הטבלה
המתאימה.
פרק 5: שפת שאילתות סטנדרטית (.501) | 115
תרגיל 3:
בבית ספר מחזיקים את הנתונים הבאים על הסטודנטים:
שם פרטי
שם משפחה
מספר זהות
מספר ילדים במשפחה
מקצוע האב
מקצוע האם
שנות לימוד של האב
שנות לימוד של האם
ש ₪ ₪ > > > + > >
ציון ממוצע בלימודים
המפתח הוא שם משפחה + שם פרטי. בנה את הטבלה המתאימה.
מילוי טבלאות
לאחר שיצרנו את מבנה הטבלה, נרצה למלא אותה בנתוניס.
תוכנית ()20066:
()00166 הסטסחט-
5 חס 03560 306|כן זסקסזק 606 חן 3660וכ 6 |וואו 6000 צוסח 6ח '
ץזהּוחוזכ זס1 6טוהּע ססבּסווקטם זטס ס+ טסץ צוסוו3 %'חס/צ .6טוהע שא '
5 0 600705 300 %'חה68 טס .אססח'
5 306 דץ] ,08550356 ₪5 טסץו! חחוס
(286828565)0. (06508065)0/. 6חופחםכ = פ0ץו 66% '
()00ח6זזט6 = ססץו 56% :1
508 45 סחבּ]סוטה ד וחוס
0 ה 395 507/65 ' 1- = 8ז00108ח5 005%
לחז 05 הו וחוס
"0150000758" = סרתבּ)6וטה ד :2
(36 00026 ,30161836 660705607 הססס. טסץוא = 6וסב דשא 56% :3
8 300108 6זהּ 6 51006 ,800 56 סש 6ז8קט ]0 56080ח '
(1ו56חו 0ף זה!ורחו5) 6000 אחה!ט '
00088 <> 30 6ווחש ספ :4
וס 6. 0וסה דעוו
("מה שם המשפחה?")אסטטסח1 = [350816 |] !סוסה דעוו
("מה השם הפרטי?")אסם)טסח1 = [6ר508זו=] !סוסה דעוו
("מה מספר הזהות?")אסט)טסח1 = [0006פ1] !סוט דעוו
("מה תאריך ההתחלה?")א0שזטסח1 = [6ז503408]!סוטב דעוו
("מה עיר ומדינה?")אסט)טסח1 = [0/50006ו] !סוסה דעוו
6 ;282 97 400685 - סדנת לימוד
("מה הכתובת")אספטסח1 = [ותט66 5 ] !סוסב דעוו
("מה המיקוד?")אסט)טסח1 = [סו2] !סוסב דשוו
("מה גודל החוב?")אסט)טסח1 = [6ס6כ]!סוטב דעוו
6600 אחבום 66 60 30060 56[ 5סט|הע בסה סקט ' = דה סקנ.שוסב דעוו
הסוחד (65ץפע = (|68ח651 68 פע ,"האם סיימת?")א5000!א) זז
001083 = 80
6
0 = ₪30
+ 0חם
ססס |
ץד :5
חסססחט- סח
הסבר: 6וס3 דעו מוגדר כמשתנה המחזיק אובייקט מסוג ₪66070561, כשהכוונה
היא לאוסף רשומות.
3 הפקודה העיקרית למילוי משתנה מסוג 86000561 נראית כך:
(05ו60א0ס! ,5חסוסקס ,6קעס ,766ט50) [₪05 ₪00 אק 60.0[טס = 600705%ז ז55
0% יכול להיות מסד נתונים, ואז נגדיר את מקור אוסף הרשומות
?36007056 106ו50) כטבלה או שאילתה. הוא יכול להיות גס הגדרת טבלה, הגדרת
שאילתה, או :6007056 אחר, ואז אין צורך להגדיר אותו, שהרי הוא מובן מאליו.
4. לולאה בה מופעלות על הטבלה 8וס דעו השיטות 00148 כדי להוסיף רשומות
חדשות, ואחר השיטה 106816 כדי לעדכן. בלולאה ממלאיס את השדות אחד אחד.
6 - סוג 366070561]. קיימים 4 סוגים :
טבלה (180!9) - מסומן על ידי הקבוע 0002080180|8. רק הרשומה השוטפת
מוחזקת בזיכרון. לפני השימוש קובעיס לפי איזה אינדקס (סדר) יוחזרו הנתונים.
מיועד לטיפול בטבלה עצמה, וכתוצאה מזה אפשר לנצל את המפתחות
והאינדקסיס שהוגדרו עבור הטבלה, להוספה, מחיקה ועדכון רשומות. משוס
השימוש באינדקסיס סוג זה יעיל יותר בחיפושים ומיונים. אהו סוג ברירת
המחדל אס הפרמטר אינו כלול. שלא כמו קבוצות דינמיות ותצלומי בזק, סוג זה
אינו יכול להתייחס ליותר מטבלה אחת או לתוצאות שאילתה.
קבוצה דינמית (ספַחץכ) - קבוצת רשומות שיכולה להכיל רשומות המורכבות
משדות מטבלה אחת או יותר (כלומר תוצאות שאילתה). סוג וה שומר את
המצביע לרשומה, ולא את הרשומה עצמה. בכל עדכון או תצוגה ש-6%פחע
מבצעת, היא קוראת לכל הרשומה. היא אינה חלק ממסד הנתוניס, אך היא
משקפת את השינויים שבו, גם הטבלאות במסד הנתוניס משקפות שינוייס
שבוצעו על הקבוצה הדינמית. אין משמעות למפתחות או אינדקסיס שהוגדרו על
טבלאות שהן מקור השאילתה, ולכן הן אינן מנצלות אינדקסים. קבוצה דינמית
מסומנת על ידי הקבוע 208561 ח0006ס0. סדר הרשומות הוא לפי הביטוי ז008
ץם בשאילתה, או לפי ברירת המחדל של סדר הרשומות שבתוצאת השאילתה.
פרק 5: שפת שאילתות סטנדרטית (.501) | 117
9 תצלום בזק (80501ח5) - קבוצה סטטית של רשומות לבדיקת נתוניס בטבלה או
תוצאת שאילתה. +805706ח5 יכול להכיל שדות מאחת או יותר טבלאות במסד
הנתוניס, אבל אינו מסוגל לעדכן אותן, משוס שהוא רק עותק של המקורי, לא
קבוצת קשרים ומצביעים כמו הסוגים טבלאות או קבוצות דינמיות. תוכן כל
הנתוניס מועבר לזיכרון, חוצ משדות ₪ 01 ותזכיר (סוח6ו/!). לאחר הטעינה, הוא
אינו משקף שינוייס בטבלאות שעליהן הוא מבוסס. מסומן על ידי הקבוע
0%
קדימה לבד (ץוח0-0זפאוזס=) - והה לתצלומי בוק, אך יכול לנוע קדימה בלבד.
כשיש צורך במעבר קדימה בלבד הוא משפר ביצועים. מסומן על ידי הקבוע
ץוחכ הס פ0.
סיכום: לקבוצות נתוניס קטנות, תצלומי בוק יותר טוביס לפתיחה וגלילה, זאת
בתנאי שאין צורך בעדכון. אם מעבר אחד מספיק, קדימה לבד הוא המתאים ביותר.
לקבוצות גדולות יותר קבוצות דינמיות טובות יותר, משוס שהן אינן מחייבות הורדת
כל הרשומות, רק את שדות הקשר. אס הנתוניס נלקחיס מטבלה, הסוג טבלה מהיר
יותר, משוס שאפשר להשתמש באינדקסים שלה. מספר גדול של טבלאות מקור
ועמודות משפיע לרעה בעיקר על קבוצות דינמיות.
תוכנית ()007662:
()4007662/ הססס6חט=
5 חס 03560 306|כן זסקסזק 606 חן 3660וכ 6 |וואו סש צוסח 6 '
לחוז זס1 6טוהּע ססבּסווקטם זטס ס+ טסץ צוסווה %'חס/צ .6טוהע שא '
5 0 600705 300 %'חה68 טס .אססח'
5 306 דץ] ,08650356 ₪5 טסעוז חחוס
(028565)0ז28. (6508665)0וס/. 6חוטחם כ = ססץוח 66% '
()%00ח6זזט6 = טסץו] 56
508 45 סרבּ]סוטה ד וחוס
' 507/65 395 8 0 1- = 00108%8ח5 605%
לחז 05 פב וחוס
"0500058" = 6והּ)זס!טהד
(= פד אק 28 ,30636 66070560 השס טסץו = 6|סב דשא 56%
8 800108 6זהּ 6/ש 51006 ,300 56 סש קט ]0 56080ח '
(דו6פחו 0 זה!ווחו5) 0זס66ז אחבום '
סוסה דץו תסו
₪000 <> חַבו= 6!וח/ סס
ה
("מה שם המשפחה?")אס0)טסח1 = [850806 |]!
("מה השם הפרטי?")אסט)טסח1 = [שותבּפזו=]!
("מה מספר הזהות?")אסטזטקח1 = [6סס60פ1]!
("מה תאריך ההתחלה?")אס)טסח1 = [568110806]!
("מה עיר ומדינה?")אסט)טסח1 = [50006/טו6]!
("מה הכתובת")א0פטסח1 = [וחט50660]!
("מה המיקוד?")אסט+טסח1 = [סו?]!
("מה גודל החוב?")אסטזטסח1 = שסספ]!
8 282 97 4006585 - סדנת לימוד
םדהסקט.
הסוחד (65ץפע = (|68068ס651 פע ,"האם סיימת?")א5000!א) זז
001088 = ₪30
6
0 = ₪80
+ 0חם
קסס |
6
השו\ סח
חסססחט-] 0חם
פונקציה זו דומה לפונקציה ₪00786, למעט הפקודה: חזו/ סחם...6וסג דעו מזו/צ
שנוספה. פקודה זו מאפשרת לנו לפשט את הקוד על ידי הורדת הקידומות 6!ס3 דע
בכל פקודה שבין חזו/ ו- חזו/ 0ח.
.
%
ש
פרטי
אברהם
חנוך
שרה
שלום
חוה
יהודית
שלום
אברהם
יעקב
דניאל
דניאלה
אסתר
תרגיל 4:
מלא 10 רשומות בנתונים בדויים בטבלה עובדים שהוגדרה בקבוצת
התרגילים הקודמת. בדוק שהנתונים הוזנו בהצלחה על ידי פתיחת
הטבלה. בחלון מסד הנתונים בחר בכרטיסיה טבלאות, לחץ לחיצה
כפולה על שם הטבלה שלך, או לחץ עליה ועל הלחצן פתיחה.
תרגיל 5:
מלא 10 רשומות בנתונים בדויים בטבלה שבנית עבור הספריה.
תרגיל 6:
מלא 10 רשומות בטבלה שבנית עבור בית ספר בנתונים האלה:
משפחה ילדים | שנות לימוד אב | שנות לימוד אם | ציון ממוצע
פדר 7 7 7 1
כהן 2 15 14 4
פרידמן 5 6 8 5
עדידה 4 10 1 08|
כהן 3 14 12 1
פדר 1 16 16 08.
עמיר 2 18 14 55
מזרחי 9 8 13 2
הנובר 2 9 7 08|
לוי 6 7 8 2
רובין 4 10 9 77
הורביץ 5 13 14 2
פרק 5: שפת שאילתות סטנדרטית (.501) | 119
עריכה
תוכנית ()ז4|19: שאילתה המאפשרת הוספה והורדת שדות מטבלה.
()ז100 הסססחט= סווסוק
,50 5 50/86 ,ה00!68ם 45 0סס0סספ ,8חו50 5 57501 חחוס
590 5 6הבּס!30 50
%ח0065 061606 0+ הפוצו סע וסט 6 )₪ 66060ח' +6% 6וחט₪05 זסזיום חס
006 ||וו זסזוס סח +08 50 6155 '
ץח ]| ,שבח פוחל סהועטפח %80!6 סה ץזסטף פטסושסזס 67856 '
"ז05)ז00|" = 57/36
"6500051" = 6רחבּסופ3 5
506 ,36006 0166 6!6060כ. סוחס
חוחט|ס6 3 261606 0+ הוחטוס6 קסזכ 056 .₪6!0 צוסח 38 00 '
";ץ6ח6זזט0 %מסכסוס ויז 60 ספה " 6 6וחבסוסב 50 6 " 6|טב ד זסזוה" = .57501
0 זהסץ 1 < זב פוטססטוסי
0 ,5076 , 5775001 3016 50!6607
הסח ד 6000סספ )1
506 וסט הסכס. סוס
56
"וח6!ססזק" 150%
+ 0חם
הסטסחט= 6חם
שאילתה זו משתמשת בפקודה:
הסטקן06567 הוחט|ס60 שרחהח הוהטוס6 א]ןז 601 סג שוחהח 06 = ופד חם ד |
ב- 501 קיימת פקודה מקבילה למחיקת שדות:
שח הרתטו|ס6 אז 601 קסאכ 6וחפח 06 = ופד ח=ם דוגא
תוכנית ()672+|4: שיטת 90016א= להוספת שדות, במקום בניית שאילתה פורמלית.
()16072 הסטסחט= 6ווספוק
580 5 )סוסה 57 ,חַחו5 5 57501 חחוס
%ח0065 061606 0+ הפוצו סע וסט 6 ]| 66060ח' +6% 6וח₪050 זסזום חס
זטססס ||ו זסזוס סח +08 50 6156 '
5% עס ]| ,6וחבח 5ורש הַהוטהּח 6ו0ב+ פטסושסזק 07856 '
6 ₪5 00 הוחו
()%00ח6ז6 = 00 56
"05000152" = שרחבסוטה 507
0 זץ 1 < 6זהּ זטססטוס '
"; הסט 6ססססו אע 601 ספא " 8 6ההבאסוטה 5 8 " 6|טב ד זסס|ה" = 57501
00.66
חסטסחט= סחם
0 82 97 400658 - סדנת לימוד
לאחר הוספת שדה, נרצה למלא אותו בנתוניס.
תוכנית ()66ז!!1=:
()66ז!!|- הסט6חט=
6 060 |וו ₪6!0 ושח סחד '
5 06ב דש ,050856 ₪5 טסץוז חחוס
(286828565)0. (6508665)0ז0/. 6חופחםכ = פ0ץ 66% '
()%00ח6זזט6 = טסץו] 56
508 45 סחבּ]סוטה ד וחוס
"51 500" = 6ותהּ)זס!טהד
(806 00006 ,301618306 6607056007 הסקס. טסו = 6וסב דעו 56%
5 6500 6פַחה600 0ם 0806קט 56 סע '
סוסה דץו תסו
0ם.6וטה דש ושח סס
1:
([10006]! .8 "כמה החוב עבור ")אספזטטח1 = [פססטוס]! - :2
=זהסקט. :3
]אס סעטסו. | :4
מסס |
6
הזו\ טח
הסטסחט= 6חם
בשיגרה זו מסומנים 4 שלבים בעדכון טבלה:
1 פתיחת קבוצת הרשומות לעריכה.
2 תיקון הערכיס שעומדים לשינול.
3 עדכון הטבלה.
4 מעבר לרשומה הבאה (לפי האינדקס הקיים כעת).
שיס לב שביצוע הפקודה |8ח סכ נמשך עד ל- 0ם.6וס3 דעו שמשמעותו היא סוף
הרשומות בטבלה המכונה 6|ס דץו] (0₪ם - ראשי תיבות עבור 6!ו= 01 6חם).
תרגיל 7:
הוסף לטבלת עובדים שבנית שדות שייקראו כתובת עיר ומין.
תרגיל 8:
הוסף לטבלת הספריה שדה שיכיל את מספר אס5! של כל ספר.
תרגיל 9:
הסר מטבלת בית הספר את השדות מקצוע האב ומקצוע האם. הוסף
את השדה כתובת.
פרק 5: שפת שאילתות סטנדרטית (.501) | 121
שאילתות פשוטות
שאילתות מאפשרות לנו לבחור עמודות ו/או שורות מסוימות מטבלאות בודדות
ומשולבות, ולהציג אותן יחד. את ההגדרות שתקבענה אילו שורות ועמודות להציג,
נכתוב בשפת .5031.
המבנה הכללי של .501 להגדרת שאילתה הוא:
[ חסו655זקא6 ץש םס ס] [הסטוסחס6 םהםרו/] 65ו80+ וס הסופפטזקא6 ד60ם 55
תוכנית 42: שימוש במבנה הבסיסי עבור 56/6866
טס 56605 0856 ()82 חסטסחטת סווטגוק
,50 5 500/86 ,ח00!68ם 45 0ססססספ ,8חו50 5 57501 חחוס
5090 5 6הבּזסוס3 50
%ח0065 061606 0+ הפוצו סע וסט 6 )₪ 66060ח' )6% 6וח₪050 זסזדום חס
.06 |ווא זסז6 סח 8+ 50 615% '
5% 6 ) ,6החפח פורט הַהוטפח ץזסטף פטסושסזס 67856 '
"5061600005" = 57/36
506 ,3460067 0166 6!6060כ. סוחס
"6500051" = סרח )סוסב 5
0 5] 50806 8 51006 66060ח 6זבּ [] 6זסח/ ,85| חה 06006 60 5 פחופט '
30636 50 .8 " וחסז= 35036 | ,126006 5666" = 57501 :1
6ח3 סוב 507 .8 " החסם [6רחב] ץ|ורחה-]] 35 350306 1 ,120006 5660" = .57501 ' :2
₪ " והסז-] 06ח28!3 35 26005 !0 + 6% ,8536 | ,120006 5666" = 57501 ':3
סוה )סוסה 5
8 36 36% 507 8 " וחסז 010/5%006 ,35036 | ,126006 56160" = 57501 ':4
"610/50 ₪ סז " :
"6ח353 ] ,2656 6010/5006 ץ₪ זססזס " 8
1
"תל אביב' = 6010/5096 6זסח/ " '
7:
'"טבעון' = 6/0509 0 'תל אביב' = 6010/5006 6זפח/" - '
8:
"('תל אביב','טבעון') ח1 6010/5966 סזסח/ " :
0
"59 < 160006 סאג ('תל אביב','טבעון') חז 6010/5096 6זסח/ע " :
10:
"וחט! < 120006 300 ('תל אביב','טבעון') חז 6010/5096 6זסח/ש "'
0 ,507 , 50501 16ב 56|6607
הסח ד 6000סספ )1
506 סט הס סוחס
56
"וח6!|ססזק" 15080
+ 0חם
הסטסחט= 6חם
2 ;28 97 400685 - סדנת לימוד
1: בחרנו מהטבלה שתי עמודות בלבד (008668כ1 ו-6חחהּ\35% 1) ללא תנאיס נוספים.
2 כמו ב-1 בהוספת המילה 5, שגורמת לכך שהתוצאה תוצג בעמודה עס הכותרת
6וחּ עווהח8- ולא עס הכותרת 35186 1.
3: השדה המחושב (0!008019 + 066%) מופיע כמו כל שדה אחר, אך הוא כולל את
השדות והאופרטוריס הנחוציס להגדרתו.
4 כמו ב-1, בהוספת הביטוי צם 5כח0, שמסדר את התוצאה לפי שדה 011/51916.
ברירת המחדל היא סדר עולה.
5: כמו 4, אך המיון הוא לפי שני מפתחות. הראשון הוא 01//51916 בסדר יורד
(50םכ). כשיש מספר רשומות שלהן ערך והה ב-011/51916, המיון יתבצע לפי
35186 | בסדר עולה (ברירת המחדל).
6: דוגמה לביטוי =₪=ה/ (בהמשך לפקודת .501 בשורה 4). הקפנו את המחרוזת
הפנימית בגרשים בודדים.
7: =אםה/ עס תנאי מורכב המשתמש באופרנד 0 לקשר בין התנאים.
8: םתםח/ עס תנאי המשתמש באופרנד | המחייב בחירת אחד מהערכיס המופיעיס
בסוגרייס.
9: םחפה / עס תנאי מורכב המשתמש באופרנד ס4 לקשר בין התנאים.
0 כמו 9, אלא שבמקוס קבוע, כתבנו את המשתנה |(ו)א. לפני הרצת השאילתה,
5 תבקש להצין ערך לפרמטר זה.
לפעמים איננו יודעיס מראש את ערך התנאי שברצוננו לכפות. אפשר לקלוט ערך, ורק
או לשב את המשתנה המחזיק את ערכו לביטוי ם==ה//. אפשר אף לקלוט את שס
השדה שעליו מחיליס את התנאי, ולאפשר למשתמש בחירה בשדה שעליו נפעיל תנאי.
תוכנית +טסח!|22:
0 56160 856 (טכח21 הסססחט= סווטגוק
,50 5 500/36 ,ח00!68ם 45 0ססססספ ,8חו50 5 57501 חחוס
9חו50 05 0ו6ו-50 ,0600617ח1 5 סטחו ,6חו50 5 500 ,6חו50 5 סה בּאזסוסב 50
%ח0065 061606 0+ הפוצו סע וסט 6 )₪ 66060ח' )6% 6וחט₪05 זסזום חס
זטססס ||וו זסזוס סח +08 50 6155 '
0% 6 ) ,6החפח פורט פהוטפח ץזסטף פטסושסזס 67856 '
"506160005" = 6ח13/ 5
506 ,346067 6!60600[66כ. סוחס
"51 0500" = 6רהסוטה 50
)סח |הזססו| 8865 - 1 6|קהחפאם '
(("ץש6ז160] חן סוחבוז סו זחוזק")אסטלטקח1)הוזד = 570 '
8 6וח30!63 5077 .8 " ההסז- 35636 | ,120006 56166" = 50501 '
"" 8 570 8 " = 01050006 6זסח/ " /
פרק 5: שפת שאילתות סטנדרטית (.501) | 123
סח סרח 8865 - 2 6|קהחפאם '
("כ1 ותטחהוחווח זחוזק")אספ6טקח1 = סשחו'
| 8 6ח30!63 5077 .8 " ההסז- 35036 | ,120006 56166" = 50501 '
(סטחו)65₪ 8 " < 120006 סזסח/ " ְּ
סט|הט 35 ||סש 35 ₪610 סחוטטסחו פאוסו|ה - 3 6מותהאם '
("?6|0ו= +הח/\")אסם6טקח1 = 6|0- 507
("ס1 זחוזק")אסטלטסח1 = סשחו
8 30636 50 .8 " והסז 1.85036 ,120006 56166" = 50501
(קטחו)65 8 " = " 8 50-60 8 " ס6זסח/צש "
60 ,5076 , 5775001 3016 56|6607
הסח ד 6000ססט )1
506 וסט הסכס. סוחס
56
"הח6!|ססזק" 1500
+ 0
חסטסחט= 0ח=
1 6|קוחהאם - נקלוט את שם העיר בה מתגורריס הלקוחות הרצוים.
2 6|מְחחהא= - נקלוט את מספר הזהות המינימלי של הלקוחות הרצוים.
3 6|קְחהּאם - נקלוט את שס השדה שעליו ברצוננו להחיל את התנאי, ואת ערך התנאי.
מי שמעוניין במידע נוסף על הגדרות שאילתות (0087/0818) יכול לעייו בעזרה בערך
1, ולבדוק 20[606) ז8619ז3ק ו-עצו6קסזק זסווו=.
תוכנית ץז22008:
+סס 85 זט 561665 516 ()/ה2006 הסטסחט= 6ווטגוק
,50 5 50/36 ,ח00!68סם 45 0ססססספ ,8חו50 5 57501 חחוס
5 רסח 6007056 5 56 ,80856 5 00 ,0חו5 5 סרחהּאסופב דוז5
005% 061606 0+ הפוצו סע וסט 6 )₪ 66060ח' 6% 6וחט₪05 זסזדום חס
.060 |ווא זסזז6 סח 8% 50 615% '
5% עס ) ,6החפח פורט פהוטפח ץזסטף פטסושסזס 67856 '
"ז50!60%005" = 6ח13/ 5
506 ,34606 6!60600[66כ. סוחס
"05000051" = 6רח63ו0ה ךז '
56 00 =
"ירושלים' = 610 6זס/ 0500615 וחסז= * 561601" = .50501
5500 006 , 0560505001 00 חק 00.0 = 96 56%
|6עס)].50]
5.660% = סרח 0500סחו
4 ב 97 400088 - סדנת לימוד
5 500וסחו אס 150
0 ,הכ 507 , 5775001 3016 50!6607
|
הסח ד 00ססססספ )1
506 הסט הסקס. סוחס
56
"וח6|ססזק" א50 15
+ ₪0
הסח ד 65 ץע = ([66ה6514008 פע + הסח5סטסטע ,"?60ח5וחו-] טסץ 6זה" )אס ספוא )זז
6 כ
56
0 1
+ 0חם
"ז506!60%005" = 6החב1/ 5
506 ,46067 0166 6!6060כ. סוחס
"005005 החסי-] * 56!66%" = .5075001
58500 0006 , 0560507501 00 חק 00.0 = 96 56%
|6עס)].50ז
5.660% = סרח 0ס5ו0סחו
5 לוחו אס 150
0 ,6/6 כ 507 , 5775001 3016 50!6607
הסח ד 00סססססט )1
506 הסט הסקס. סוחס
56
"וח6|ססזק" א50 15
+ 0חם
הסח ד 65 פע = (|66ה6514008 פע + הסחפסטסטע ,"?60ח5וחו=] טסץ שזה")אס ספוא +
6 כ
+ 0
הסטסחט= 6ח=
נפתח את השאילתה כקבוצת רשומות, נשתמש בתכונה +₪ט₪8007000 כדי לברר את
מספר הרשומות הכלולות בשאילתה, נציג את השאילתה ונסגור אותה. אחר נפתח את
כל הטבלה כקבוצת רשומות, נשתמש שוב ב-3₪800700000₪0 כדי לברר את מספר
הרשומות בטבלה כולה ונציג את הטבלה.
תרגיל 10:
הצג רשימת עובדים (ראה תרגיל 1) מסודרת לפי ציון מבחן כניסה.
תרגיל 11:
הצג את השם והציון בלבד ברשימה מהשאלה הקודמת.
פרק 5: שפת שאילתות סטנדרטית (.501) | 125
תרגיל 12:
הצג רשימת עובדים המשתכרים מעל 5,000 ש"ח לחודש.
תרגיל 13:
הצג את רשימת הספרים בספריה הכוללת כותר ומחבר. סדר הרשימה
יהיה לפי אספ! (אך השדה עצמו לא יופיע ברשימה).
תרגיל 14:
קיימת השקפה שטוענת שציון במבחן הכניסה הוא פונקציה של שנות
לימוד ההורים. על בסיס טבלת בית הספר, הוצא כפלט את סכום שנות
הלימוד של ההורים וציון במבחן כניסה.
תרגיל 15:
אילו סטודנטים בטבלת בית הספר באים ממשפחות שבהן מעל 4
ילדים ובעלי ציון שהוא מעל 80.
תרגיל 16:
הקריטריון למילגה הוא סטודנט שבא ממשפחה שבה מעל 4 ילדים
וציון מעל 90, מי יקבל מילגה?
שאילתות בטבלאות קשורות
כששתי טבלאות קשורות ניתן להציג שדות משתיהן. נציין את מהות הקשר בעזרת
ביטוי שנוסיף לפקודת 561 551. הביטוי נקרא א01 ולו שני סוגים :
א םאאו (קשר פנימי - ברירת המחדל)
3 ו-אםדש0 (קשר חיצוני), כאשר 0075 יכול להיות 67| או דת= ].
משמעות קשר פנימי היא קישור בין כל שתי רשומות שיש להן ערך שווה בשדה הקשר
שלהם. למשל, אס מספר לקוח הוא 123 ויש 3 הזמנות עבור לקוח 123, קייס קישור
ביו לקוח 123 וכל אחת מ-3 רשומות אלו. מבנה ביטוי קשר פנימי שנוסף ל-₪01 551
הוא כדלהלן:
12 = 8601 א 62|ט%8 301 ה==צז 61וטה%
6 ;282 97 4006585 - סדנת לימוד
תוכנית 43: דוגמת קשר פנימי בין טבלת 8ז051008 וטבלת 5ז06זס.
ץזסטס חוסנ' ()3ה חסטסחט= ס6וופטק
,500 5 6החהא 500 ,ה00!68סם 45 0ססשסספ ,8חו50 ₪5 57501 חחוס
508 5 56הזחקאחו! ,ְהַחו5 5 62הה סוסב 50 ,518 5 61 סוסב 50
%ח0065 061606 0+ הפוצו סע וסטף 6 )₪ 66060ח' +6% 6וחט₪05 זסזיום חס
.066 |ווא זסזז6 סח 8+ 50 65% '
5% עס ) ,שרפה פורט הַהוטפח ץזסטף פטסושסזס 67856 '
"50001 טחוס" = 36 5
506 ,34606 6!60600[66כ. סוחס
"005600015" = 61רח )סוסב 5
"02015" = 688062ופ3 5
,0 ₪56 ,86105 2 חס 08560 15 הסט חו ץ6א שו זו '
:6 !סע 856זחכן >חו! חל ,6וחבּח 35%| סח3 סוחהּח 56 סזסצו 6 שר זו '
א 6וה8 .7075 = 5.536 זרת 0500 '
3536 2700175.1) = 3508006 05005.1 '
"05.00 = 6710 50065.5" = 856זחוק>חו |
5 2 60 ה ח60 0 הוסכ 8חופ '
שח 53076 רטוע ₪660 8/6 80165 2 ₪ ץ|וחס 66060ח או6זק 6החהח שוטפד '
" ההס= 6וח3ז35 015000671 ,זו 5.0500ז6וזכ) ,0060866 ,00670 5666" = .57501
= 56 זחקאחו! 8 " 0% " ,6 62ה3063 5 .8 " חהוס? זסחח1 " ,6 61ובּסוסב3 50 8
" 0610 צם זס0זס " 8
0 ,5076 , 5775001 3016 50!6607
הסח ד 0000ססט )1
506 וסט הססס. סוס
56
"וח6!|ססזק" 15080
+ 0חם
חסטס6חט= 0ח=
תוכנית +|434:
חוסכ +טסחטוצו וסט חוס? 6עהתזסס|ה' ()|ה3ה הסטסחטת סוופוק
,50 5 50/36 ,ח00!68סם 45 0ססססספ ,8חו50 ₪5 57501 חחוס
508 45 56הזחקאחו! ,ְהַחו5 5 62רה סוסב 50 ,518 5 61 הסוסה 50
005% 061606 0+ הפוצו סע וסט 6 )| 66060ח' +6% 6וחט₪05 זסזדום חס
.060 |ווא זסזזס6 סח 8+ 50 615% '
0% 6 )! ,6החפח פורט סהוטבפח ץזסטף פטסושסזס 67856 '
"5007072 טחוס" = 36 5
506 ,346067 0166 6!6060כ. סוחס
"005600005" = 61רח )סוסב 5
"00015" = 62 68ופ3 5
"05.00 = 610 5.00500ז06ל5" = 856זחוק>חו |
פרק 5: שפת שאילתות סטנדרטית (.501) | 127
6זתסאחו! 3 סחהועהה סחה הטספ פהטוחצו ץכ 8065 2 6608 החהס6 י
6וחהח 5876 רחוש 6/0 עב 80165 2 ] ץוחס 66060ח א6זק שוחהּח 6וספּד '
= " ההס= 6וח3ז35 6150000671 ,זר 5.00500ז6זכ) ,00670866 ,006710 5666" = .57501
= 856קאחו 1 8 " 6זסח/ ".8 62הבּסוטב ד 50 ₪ " ,"6 61רבּזסוס3 ד50 8
" 0610 צם זט0זס " 8
0 ,506 , 5775001 30/6 50!6607
הסח ד 6000סספ )1
506 הסט הסכס. סוחס
56
"וח6!|ססזק" א0ס8 חפ
+ 0חם
הסטסחט= 6חם
אפשר גס לקשר בין שתי טבלאות על ידי רישום שתי טבלאות לאחר המילה =
בפקודת ₪07 551, ואחר רישוס ביטוי הקשר (86!02 = 16!01) אחר המילה םתםרו//.
אפשר לבצע קשר כפול. למשל, טבלת לקוח קשורה לטבלת הזמנות וטבלת הזמנות
קשורה לטבלת שורה בהזמנה. נניח שברצוננו לראות את השס שבכל שורת הזמנה.
הקשר הכפול ייראה כך (תוכנית 4):
63ו0ז אזסנ השוא (₪6102 .0162ז= 80!61.86!01+ 0 62וסב+ אזסנ הפצאז 161פ68)
3 = 0601 0!61+
או כך (תוכנית 41):
אס (6103= .90163ז= 62.86|02ו90+ אס 63ו80+ אזסל מפאאז 62ו680) אזסנ מפאאז 61וט9+
2 = 601 80!61+
שיס לב ששתי הצורות הן עדיין מקבילות לצורה המקורית :
12 = ₪601 א 62|ט%8 301 מ==צז 61וטה%
בצורה הראשונה %90181 הוחלף על ידי הביטוי בסוגרייס (שהוא בעצמו טבלה שנוצרה
כתוצאה מקשר פנימי), ובצורה השנייה 180/62 הוחלף על ידי הביטוי בסוגרייס. חשוב
לוכור שתוצאת קשר פנימי היא בעצמה טבלה, ולכן היא יכולה להחליף את הטבלה
שבנוסחה המקורית.
עד עתה הנחנו ששאילתה על טבלאות קשורות תציג כל רשומה בטבלה הראשונה
שקשורה לרשומה מסוימת בטבלה השנייה. קיים גם מושג של קשר ימני (שמאלי,
כאשר הכוונה שבתוצאה מוצגות כל הרשומות מהטבלה שמופיעה בצד הימני (שמאלי)
בביטוי א!|10, ורק הרשומות הקשורות מהטבלה שמופיעה בצד השמאלי (הימני).
הצורה הכללית של הביטוי א!0. עבור קשר ימני או שמאלי חיא :
2 = ₪601 א 0!62+ 301 ד4וס₪1 61|ס%
2 = ₪601 0% 30162+ 201 ד=ם | 61|טה%
8 ;282 97 4006585 - סדנת לימוד
תוכנית 45: דוגמת קשר שמאלי.
טס חוסל ₪10 חב 6 |' ()5ה הסטסחט- סווסטק
,50 5 50/6 ,ח00!68סם 45 00ס6סספ ,8חו50 5 57501 חחוס
5008 5 56הזחקאחו! ,ְהַחו5 5 62רהסוטב 50 ,518 5 61 בּאזסוטב 50
%ח0065 061606 0+ הפוצו סע וסטף 6 )| 66060ח' +א6] 6וחט₪05 זסזדום חס
זטססס ||וו זסזוס סח 086 50 6156 '
5% 6 )! ,סהחפּח פורט פַהוטפח ץזסטף פטסושסזק 67856 '
"חו600 1" = 50/6
506 ,46006 0166 6!6060כ. סוחס
"005600015" = 61רחבּ]סופ3 5
"070015" = 62וח )סוסב 5
.1 ,0 56 ,06!05 2 חס 08560 15 ה6סס חו ץ6א שר זו '
:6 !סע 356זחכן >חו! 6 ,6וחהּח 35%| סח סוחהּח סז סזסצו 6 סרט זו '
א 075.86 = 5.536 זר 6500 '
3536 270075.1) = 3508006 05005.1 '
"05.00 = 5.005006710ז5606ט" = 856זחוק>חו |
65 2 66החס6 0+ חוס? 16% פַחופט '
6וחהח 5876 רחוש 1600 עב 90165 2 ) ץוחס 66060ח א6זק שוחהּח סוספּד '
" ההס= 6רח3ז35 050000671 ,60 5.00500ז6ו0ז) ,0060866 ,00670 5666" = .57501
= 856חקאחו | 8 " 0% ".8 62ח63וס3 5 ₪ " חוסכ 6% | ".6 61וחהּשופב 5 8
"35036 0560611 צם וסוס " 8
0 ,בו כ 507 , 5775001 3016 50!6607
הסח ד 6000סספ )1
506 סט הס סוס
56
"וח6!|ססזק" 150%
+ ₪0
חסטס6חט= 0ח=
.0 הערה:
כדי לבצע את התרגילים הבאים נוסיף טבלת קשר המקשרת בין טבלת
בית הספר וטבלת הספריה. בטבלה יופיעו 3 שדות: מספר זהות של
סטודנט, מספר סידורי של ספר, תאריך להחזרת הספר ושדה בוליאני
שערכו םד כאשר ספר מוחזר. מטרת הטבלה היא לציין אילו ספרים
הושאלו על ידי אילו סטודנטים. שני השדות הראשונים הם שדות
מפתח. נקרא לטבלה טבלת השאלות. מלא את הנתונים על בסיס
הנתונים הקיימים בשתי הטבלאות שעליהן מבוססת טבלת השאלות.
תרגיל 17:
הוצא כפלט את שמות הסטודנטים ששאלו ספרים מהספריה ואת
מספרי הספרים ששאלו.
פרק 5: שפת שאילתות סטנדרטית (.501) | 129
תרגיל 18:
הוצא כפלט את שמות הסטודנטים ששאלו ספרים מהספריה ואת
שמות הספרים ששאלו.
תרגיל 19:
הוצא כפלט שם כל סטודנט ושם הספרים ששאל. גם אם לא שאל
ספרים, שמו עדיין יופיע פעם אחת.
שאילתות סיכום
בנוסף ליכולת שאילתה להציג עמודות ושורות מטבלה אחת או יותר, היא גס יכולה
לחשב סכוס או ממוצע של כל הנתוניס בעמודות הטבלה. במקוס לרשוס בפקודת
1 שחם של כל שדה רצוי להצגה נכתוב: ([6חהח 88!0]) חסווסחטף. כתוצאה נקבל
שורה אחת ובה תוצאות הפעלת הפונקציות על העמודות. הפונקציות האפשריות הן:
זפ . חווע ₪ פה 4
פו 3 טס 4 וחטפ 4
או 4
תוכנית 46: שאילתת סיכום שמשתמשת במרבית הפונקציות.
ץ זט ץ הרוטפ 856 ()6 הסטסחט= סווטגוק
,50 5 50/6 ,ח00!68סם 45 סססססספ ,8חו50 5 57501 חחוס
5 5 סרחבּזסוס3 50
%ח0065 061606 0+ הפוצו סע שוסטף 6 )| 66060ח' +6% 6וח₪050 זסזום חס
זטססס ||וו זסזוס סח 08% 50 6155 '
5% שח )! ,סרפה 5ורט פַהוטפח ץזסטף פטסושסזס 67856 '
"ץורח 5" = 6רחה 50/1
506 ,346067 0166 6!6060כ. סוחס
"070075" = סשוחבסופ3 5
0 פ] 50806 3 51006 66060ח 6זבּ [] 6וסח/ ,85| ח3 06006 0ף 5 פַחופט '
85 (0חוסק1ח5) עב ,[00%95טט5 01 הט5] 35 (|03 07 5₪)וח טפ 56605" = .50501
,[5ז0706 וחטא] 35 (10ו5.0706ז06זס) +חטס6 " .8 " ,[פחוסקוח5 6עה]
= " וחסזה " 8 "[א ד א8]] 85 (אה 6061ח1)א3 ,[אה ד חווי]] 35 (א8 דסהחססח1)חווו
"100 < 00610 6זסח/ ".8 ' 6החהסוסב דפ 8
0 ,6/6 כ 507 , 5075001 3016 56!6607
הסח ד 0000ססט )1
506 הסט הסכס. סוחס
56
"וח6|ססזק" 500%
+ ₪0
חסטסחט= 6חם
0 82 97 400658 - סדנת לימוד
נניח שאין ברצוננו להציג סכוס מכירות בכל העמודה, במקוס זאת ברצוננו להציג את
הסכוס עבור כל ערך שונה בשדה כלשהו. למשל, נניח שברצוננו להציג את סכוס
המכירות בכל עיר (ולא את הסכוס הכולל של המכירות). כדי לאפשר הקבצה נוסיף
לפקודת )586186 את הביטוי ץָ5 קטסזס.
תוכנית 47: הקבצה לפי עו0ס וסידור לפי הביטוי הראשון בפקודת 568!801.
8חוקטסז חסוצו סט ץזההוותטפ 8516" ()7ה חסטסחט= 6ווסוק
,50 5 500/36 ,ה00!68ם 45 0ססססספ ,8חו50 5 57501 חחוס
50 5 6הבּזסוס3 50
005% 061606 0+ הפוצו סע וסט 6 )₪ 66060ח' +6% 6וחט₪05 זסזדום חס
זטססס ||וו זסזוס סח 8% 50 6155 '
5% 6 ) ,שרפה פור הַהוטפח ץזסטף פטסושסזס 67856 '
"7000600005" = 536
506 ,346067 0166 6!6060כ. סוחס
"070075" = 6וחּסוטה 50
0 5] 50806 3 51006 66060ח 6זבּ [] 6וסח/ ,85| חה 06006 60 5 פַחופט '
" ,6500/ג 35 (סחומקוח5) עה ,סטפוח 5 35 (|בזס דסט5)רט5 5660" = .57501
" ,אה דחו 35 (אה סוהססח1)חווא ,[5זס0ז וחטא] 35 (5.070670ז096זס) +חטס6 " 8
| ששו 577 8 " סז " .8 "שו ,[אה ד א8]] 85 (אב זסותססח1)אבוז" 8
"0056 1 5 זז 0 ץ8 קטסזס " 8
6 0 ז יס 88הו0ח06506 חן 06 60 6 68565 1 '
510008 15 הסוחע 66 הסו655 אס 6פזה '
,0 קטסזס 6חל ץכ 60ז0זס 5 6 פוח6 +טסרטו '
(|0%3 ד50) הטפ עם זס0זס בסוזאו 3150 60010 .צך601 שזסח '
0 , 5076 , 5775001 30/6 50!6607
הסח ד 6000ססט )1
506 וסט הסכס. סוחס
56
"וח6!|ססזק" 150%
+ 0
חססס6חט= 0ח=
תוכנית 48:
₪65 סה סהוקטסזס הסוצו ץזסטכ) ץזהרוט5 856 ()8ג הסטסחטת סווטגוק
טסט חס'
,500 5 50/36 ,ח00!68ם 45 00סס0סספ ,8חו50 5 57501 חחוס
590 5 סרבּזסוס3 50
%ח0065 061606 0+ הפוצו סע וסטף 6 )₪ 66060ח' )6% 6וחט₪05 זסזדום חס
זטססס ||וו זסזוס סח 08% 50 6156 '
5% ע6 )! ,שרפה פורט הַהוטפח ץזסטף פטסושסזס 67856 '
"7000600005" = 536
ה 50 ,346067 0166 6!6060כ. סוחס
פרק 5: שפת שאילתות סטנדרטית (.501) | 131
"070075" = 6וח)סוטה 507
0 5] 50806 3 51006 66060ח 6זבּ [] 6וסח/ ,85| חה 06006 60 5 פַחופט '
" ,6500 35 (8חוסקוח5)סע ,טפ ט5 35 (|בזס דט ט5)וחט5 561606" = .57501
" ,אה דחו] 35 (אה 600067ח1)חו! ,[5ז06זכ וחטא] 85 (5.070610ז06וס) +חטס6 " 8
| 6רח8שוטה 577 8 " סז ".8 "וס ,[א ד א8]] 85 (אב דסותססח1)אבוו" 8
5 16/ סזסח' "0656 1 8 זס0זס 1 < (שוסחט0ס6 6אז/גח וס ץ8 קטסוס " 8
חסטס6חט? 6000 3 חס 15 = אםרו/ 6ווחץעש ,הסססחטז קטסזם 8 חס '
0 ,6/6 )507 , 5075001 3016 50!6607
הסח ד 6000ססט )1
5036 סט הס סוחס
56
"וח6!|ססזק" א0 150
+ 0
חסטס6חט= 0ח=
אם ברצוננו לקבוע דרישות לגבי תוצאות הפונקציה, ולהציג רק את התוצאות
שממלאות אחר הדרישות, נוסיף את הביטוי פַחוט, שהוא דומה ל-6ז6ח/, רק
ש-676ח/ עובד ברמת רשומה, ומסלק רשומות מסוימות מהחישובים, כאשר פַחו₪48
עובד על תוצאת פונקציה שהופעלה יחד עס הביטוי ץָ5 קטסזס, ומסלק שורות שכללו
תוצאת חישוב שאינן ממלאות אחר הדרישה.
תרגיל 20:
בטבלת עובדים, מה ממוצע השכר וממוצע הציון במבחן הכניסה.
תרגיל 21:
בטבלת עובדים, חשב את ממוצע השכר וממוצע הציון במבחן הכניסה
עבור עובדים מכל עיר. סדר את התוצאות לפי סדר שכר יורד.
תרגיל 22:
בטבלת עובדים, חשב את ממוצע השכר עבור עובדים מכל עיר. סדר
את התוצאות לפי סדר שכר יורד. כלול רק ערים שממוצע הציון במבחן
הכניסה הוא מעל 80.
תרגיל 23:
בטבלת עובדים, חשב את ממוצע השכר עבור עובדים מכל עיר
שהשכר שלהם הוא מעל 5,000 ש"ח לחודש. סדר את התוצאות לפי
עיר בסדר אלפביתי.
תרגיל 24:
כתוב שאילתה המבררת לכמה תלמידים יש ממוצע מעל 90, ולפחות
הורה אחד שלמד פחות מ-10 שנים.
2 ;28 97 4006585 - סדנת לימוד
תוצאות ייחודיות וחלקיות
הוספת המילה ד0א1ד15 לפקודת 551501 גורמת לתוצאה מסוימת להופיע פעס
אחת בלבד. היא גס גורמת לכך שהתוצאות תהיינה מסודרות בסדר אלפביתי לפי
השדה הימני ביותר. המילה 80% ד60א71ד15כ אינה משפיעה על סדר התוצאות,
ומונעת תוצאות כפולות בפלט אס כל השדות ברשומות הכפולות לכאורה, זהים. הדבר
אפשרי אס מדובר על שאילתה בטבלאות קשורות, למשל לקוחות והזמנות, כשהפלט
מתקבל מטבלת האב בלבד. למשל, כשתוצאת הפלט היא שס הלקותח עבור כל הזמנה.
במקרה כזה שס הלקות יופיע פעסם אחת בלבד למרות שייתכן וביצע מספר הזמנות.
תוכנית 49: שימוש במילה ד6אודפוס.
0זסששץ6א חפוס ()9 חסטסחט= 6וופטק
,50 5 50/6 ,ח00!68ם 45 0ססשסספ ,8חו50 5 57501 חחוס
500 5 6הבּזס!ס3 50
005% 061606 0+ הפוצו סע וסט 6 )| 66060ח' +6%] 10506 זסזיום חס
זטססס ||ו זסזוס סח 8% 50 6156 '
0% 6 ) ,6החפח 5ור ההוטפח ץזסטף פטסושסזס 67856 '
"זכ" = 6וח3 5
506 ,34606 6!60600[66כ. סוחס
"070075" = 6וח)סוטה 507
6 טסץ )ו + .6סחס ץ|חס זהסססב |וואו 6065 6 , דסא 151כ 6שפט טסץ )ן '
ץז 8% אוסז 6 26630056 ,5סחח פטסזסרחטח זהסססה |ווואו ע6חש עוסא דא דפס '
.5 טכ וס 66 הטסש ה6/6 ,01500 %סח 15 01 צוהק 8 סזהּ '
5 01500 06080056 ,עם זס0זס רועש 015006 56 +'חה6 טסץ ,50|ג '
5 "160 הסעס סעבּח |ווו וסץ 6 ץוחס עְ8וספו₪ טסץ וז '
6ח שו 50 .8 " סז /0ו הט ס6פוכ הפוכ 56160" = 57501
0 ,5076 , 5075001 30/6 50!6607
הסח ד 0000ססט )1
506 וסט הסכס. סוחס
56
"וח6|ססזק" 1500
+ 0חם
חסטס6חט= 0ח=
שיס לב שהתוצאות מסודרות לפי השדה הראשון. אם נרשוס שני שדות: +חטסס8ום
ו-עו0 תופענה 14 שורות בתוצאה, כשכל אחת שונה מחברתה, אך אם נרשום ע61
בלבד, תופענה 10 רשומות בלבד (מתוך 19).
פרק 5: שפת שאילתות סטנדרטית (.501) | 133
תוכנית 810: שימוש במילה שו0ס=ז6ח0פוס.
15600 הסוצו וסט חוס? סעטהחזסטוה' ()10 חסטסחטה סוופטק
,500 5 50/36 ,ח00!68סם 45 0ססססספ ,8חו50 5 57501 חחוס
5008 5 56הזחקאחו! ,ְהַחו5 5 62רה סוסב 5 ,518 5 61ר סוסב 50
%ח0065 061606 0+ הפוצו סע שוסטף 6 )₪ 66060ח' +6% 6וחט₪05 זסזדום חס
זטססס ||וו זסזוס סח 8% 50 6156 '
5% 6 )! ,6וחפח פורט פהוטפח ץזסטף פטסושסזק 67856 '
"0 6ה50ו" = שוחה 57
506 ,3460067 0166 6!6060כ. סוחס
"005600015" = 61רחבּ]סופב 5
"005" = 62 68ופ3 5
"זו ח15.000500 06 = 5.005006710ז5006" = 856זחק>חו |
6חהח 5876 רחוש 600 עב 80165 2 ) ץוחס 66060ח אח6זק שוחהח 6וספּד '
0505 ההסז 660705 |068ח06ו 0 015013 6 +ה6ע6זכ 60 6זסח 5אזסצו עוסיט6חפוכ '
= "," 8 61וח30!63 5677 .8 |" סז 3536 זר 65% אוס+6ת וכ 56/66" = .57501
" 35136 050070611 ₪ זס זכ ".8 356זחק>חו 1 8 " 6זסח/ " .8 2סובּזסוסב ד50 8
סזסץעשץ6א דא ד15כ ושוטו 6185065 פוחד '
0 ,5076 , 5075001 30/6 50!6607
הסח ד 0000סספ )1
506 סט הסכס. סוחס
56
"וח6|ססזק" 150%
+ 0
חסטסחט= 6חם
שס כל לקוח יופיע פעס אחת בלבד, משוס שביקשנו ששדות מאותה רשומה יופיעו
מספר פעמיס וכאן נסתייע ב-ש0ס=61ח9%ועם. שיס לב שמותר להשתמש בביטוי
צם הםסחס יחד עס שס615חוז19כ שהרי שס50+ח15כ אינו משפיע על הסדר.
לפעמיס נרצה לראות רק מספר או אחוז מסויס מתוצאות השאילתה. במקרה כזה
נרשוס ח קסד או דאם0אשק | הח 05ד, בהתאמה. אס סדרנו את השאילתה לפי
המפתח הרצוי, מילה זו תאפשר לנו, למשל, לראות את שלוש הרשומות הטובות ביותר
(או הגרועות ביותר) בטבלה. לכן השימוש העיקרי של קסד הוא יחד עס צם מפסחאס.
14
84 97 200655 - סדנת לימוד
תוכנית 11: דוגמה לשימוש במילה קסד.
0זסאוץ6א קסד ()11 הסטסחטה 6וופטק
,50 5 50/6 ,ח00!68סם 45 0ססשסספ ,8חו50 5 57501 חחוס
59 5 ס6רבּזס!ס3 507
%ח0065 061606 0+ הפוצו סע וסטף 6 ]₪ 66060ח' )6% 6וחט₪05 זסזדום חס
.טס |ווא זסזז6 סח הח 50 615% '
5% 6 )! ,סהחפּח 5ור פַהוטפח ץזסטף פטסושסזק 67856 '
"561660050" = 6וחה/ח טכ 50
506 ,34606 0166 6!6060כ. סוחס
"500051" = סרח )סוסב 5
.66 06ח35%3 | ,120006 3 ק0 ד 56/66" = .57501 :שעחהחחססןבּ '
= + 60% ,35806 | ,120006 %חה6סזסק 50 קסץ 561605" = .57501
"0056 0!)02600 + 6% ץ8 זס 0 " .6 6הב63וס3 5 8 " וחסז 813006 395 סוטסססוס
0 ,6/6 כ 50 , 5075001 3016 56!6607
הסח ד 6000סספ )1
506 סט הסכס. סוס
56
"וח6!|ססזק" א0ס 150
+ 0
תרגיל 25:
על בסיס טבלת ההשאלות, נרצה להוציא רשימת מספרי זהות
(מסודרת בסדר עולה) של התלמידים ששאלו ספרים, אך איננו רוצים
שמספר זהות מסוים יופיע יותר מפעם אחת. בנה שאילתה מתאימה.
תרגיל 26:
על בסיס טבלת ההשאלות, נרצה להוציא רשימה אלפביתית של שמות
ומספרי הזהות התלמידים ששאלו ספרים, אך איננו רוצים ששם תלמיד
יופיע יותר מפעם אחת. בנה שאילתה מתאימה.
תרגיל 27:
בטבלת בית הספר, כתוב שאילתה המפיקה את שמות 5 הסטודנטים
הבאים מהמשפחות הגדולות ביותר, ואת סכום שנות הלימוד של הורי
כל אחד מחמשת הסטודנטים.
תרגיל 28:
בטבלת בית הספר, כתוב שאילתה המפיקה את שמות 5 הסטודנטים
הבאים מהמשפחות הקטנות ביותר, ואת סכום שנות הלימוד של הורי
כל אחד מחמשת הסטודנטים.
פרק 5: שפת שאילתות סטנדרטית (.501) | 135
שאילתות בחירה ושאילתות פעולה
השאילתות שבהן דנו עד כה נקראות שאילתות בחירה, משוס שהן מציגות חלק
מהנתונים, או מפעילות על הנתונים פעולות אריתמטיות כלשהן, כולל סיכום, אך
הנתוניס המקוריים אינס משתנים.
שאילתות פעולה הן שאילתות המשפיעות על הנתוניס והן מתחלקות לארבעה סוגיס:
שאילתת עדכון (ץ זט 100816) משנה את תוכן כל הרשומות, או חלקן,
שאילתת יצירת טבלה (ץזסטף 180|6 6א8/) הופכת את תוצאות השאילתה
לטבלה חדשה,
שאילתת מחיקה (עזסטוף 816%6כ) מוחקת חלק מהרשומות שבטבלה,
שאילתת הוספה (/ץז6ף 0ח6סק8) מוסיפה לטבלה רשומות מטבלה אחרת.
נגדיר כעת את פקודות .501 הנחוצות לשאילתות מסוגים אלה.
שאילתת עדכון - שאילתת עדכון מאפשרת לנו לשנות תוכן שדות כלשהס בטבלה אס
תנאיס מסוימיס מתקיימים. המבנה הכללי של שאילתות מסוג זה הוא:
[חסטו0ח0ס6 השרו /] ...[הסו5פסזקאש = 06!0,] הסופפסזקא = ₪6!0 ז55 6וטפ+ םדהסקט
שלוש הנקודות מציינות שהביטוי שלפניהן יכול לחזור כמה פעמיס שנרצה. בנוסף,
8 יכולה להיות טבלה פשוטה, אך גס יכולה להיות טבלה שהיא תוצאה של קשר
פנימי או חיצוני בין טבלאות.
תוכנית 12:
ץזסט סה סכ' ()12 הסטסחטת סווטגוק
,50 5 6החה 50 ,ח00!68סם 45 0ססשסספ ,8חו50 ₪5 57501 חחוס
5 5 6הבּזס!ס3 507
%ח0065 061606 0+ הפוצו סע שוסטף 6 )| 66060ח' 6% 6וח₪050 זסזום חס
זטססס ||וו זסזוס סח +08 50 6156 '
5% ע6ח% )! ,6החפח פורט הַהוטּח ץזסטף פטסושסזס 67856 '
"ל 0(" = 6ב 5
506 ,3460067 0166 6!6060כ. סוחס
"070075" = 6וחבסוס3 5
"0 = א 6 ססח1 ,'0ח6!3ע0!6' = וס 55 065 = ד סק" = .57501
"24 = 00500610 =חםרו/צ " 8
0 ,6/6 כ 507 , 5075001 3016 50!6607
הסח ד 000ססספ )1
506 וסט הס סוס
56
"וח6|ססזק" 150%
+ ₪0
חסטסחט= 6ח=
6 282 97 4006585 - סדנת לימוד
הביטוי =זהסק מודיע שמדובר בשאילתת עדכון, הביטוי 551 מודיע שברצוננו
לשנות את ערך השדות הרשומיס בהמשך.
תוכנית 413: עדכון טבלאות קשורות.
סט זחוסנ סזהסכ' ()13 הסטסחטת סווטגוק
,50 5 50/6 ,ח00!68סם 45 0ססשסספ ,8חו50 ₪5 57501 חחוס
508 45 56הזחקאחו ! ,ְחַחו5 5 62רה סוב 50 ,58 5 61ר הסוסה 50
%ח0065 061606 0+ הפוצו סע וסט 6 )₪ 66060ח' +6% 6וחט₪05 זסזום חס
זטססס ||וו זסזוס סח 8% 50 6156 '
6% עס )! ,6החפח פורט ההוטפח ץזסטף פטסושסזס 67856 '
"ל 03(" = 536
50/6 ,3460067 0160 6!6060כ. סוחס
"05000015" = 61ר )סוסב 5
"020015" = 62 68ופ3 57
,0 ₪56 ,86105 2 חס 08560 15 הזספ חו ץ6א שו זו
:6 !סע 856זחכ >חו! 6 ,6וחבּח 35%| סחה3ּ סוחהּח 56ז סזסצו 6 שר זו '
סאג 6וה8 .7075 = 6החה5זו.5ז רת 0ס5 6 '
3536 2700175.1) = 3508006 05005.1 '
"זר 05.05 = 610 50065.5" = 856זחק>חו |
5 2 60 הח60 0 הוסכ 8חו5 '
6וחהח 5876 רחוש 600 עב 90165 2 ) ץוחס 66060ח אח6זק שוחפּח 6וספּד '
= 306361 5 8 " הוס? חח " ,86 62וחהסוטב 50 86 " מ6ה0קו" = .57501
= "ירושלים' = 0ו0615.0זכ) 56% " ,8 856זחקאח 1 8 " אס " 8
"ירושלים' = 6₪5%000615.010 6חה '00ה|6!6/6' = 0ו5.0ז06ז 6זסחצ " ₪
0 ,5076 , 50750(1 3016 50!6607
הסח ד 0000ססט )1
506 וסט הסכס. סוחס
56
"וח6!|ססזק" 500%
+ 0חם
חסססחט= 6חם
ניתן לעדכן שדות בכמה טבלאות. לאחר ם ד0ק!) במקוס שס טבלה אחת נרשוס:
2 = 86601 0 %80!62 אזסנ אהשצז 61וס%
ביטוי זה מחליף שס טבלה, שהרי גס קשר פנימי בין שתי טבלאות יוצר טבלה, ולכן
הוא יכול להופיע בכל מקוס ששס טבלה יכול להופיע.
שאילתת יצירת טבלה - שאילתה שיוצרת מהתוצאות טבלה, במקוס להציגן בלבד.
המבנה הכללי דומה לשאילתת בחירה, עס הוספת הביטוי סדא!. המבנה הכללי הוא:
[חסו655זקא6 ₪ 0 0] [הסטוסהס6 ₪ אםר//] 165 סא 6 0 ד1 5הסופפסזקאס ז0ם |55
פרק 5: שפת שאילתות סטנדרטית (.501) | 137
תוכנית 14:
טס 6|סה ד 1366 חוסנ 6|סטספ' ()14 חסטסחט= סווטגוק
5 60>חו! 3 החסיו הסטההוס+חו חס 03560 6ובל צוסח 3 חחואבחן'
,50 5 5036 ,ח00!68סם 45 0ססשסספ ,8חו50 5 57501 חחוס
,50 5 301603062 507 ,0חו5 5 61רת )סוסב דוז5
58 5 8562זחקאחו !1 ,0חו50 5 3561זחהקאחו ,חַח51 5 63 הסוסה 50
00650% 006|606 %0 הפוצ 6ע הסט 6 ]| 66060ח' %א6] ₪056 זסזזם חס
זטססס ||וו זסזוס סח +08 50 6155 '
5% שח ) ,סרפה פורט פהוטפח ץזסטף פטסושסזס 67856 '
"30|6 18661" = 6ב 5
הס 50 ,34606 0166 6!6%60כ. סוחס
"005000015" = 61רחהּ]סופב 5
"020015" = 62 688ופ3 57
"0206160005" = 63ר )סוסב 5
8 30|613062 50 8 " א01נ ממא " :8 61ההסוטה 57 86 ")" = 561הזחק>חו |
"(10 6 5%0 075.00 = 6710 5.60500זסו 60500 אס "
"זו 5.0וח וס = 5.070610ז6 070" = 8562זחק>חו1
6חהח 5876 רשוע 6/0 עב 90165 2 ]₪ שץוחס 66060ח א6זק שוחפּח 6וספּד '
",006175.005000610 ,6ז3ז6 סז ,10ו070615.0706 5666" = .57501
" החסז= 6!טב עסו 0 דא ז טרח ,35036 ור 560" 8
| "א "א 3סההסוטה 5 8 " אזסנ הפאז " .8 61פהזחקאחון 8
" 10ו5.0706ז6 וז צם זו " .8 8562וחק>חו | 8
0 , 5070 , 5075001 30/6 56!6607
הסח ד 6000סספ )1
506 סט הסכס. סוחס
56
"וח6!ססזק" 1580
+ 0חם
חסטסחט= 0ח=
בדוגמה זו בנינו טבלה בשס = 81ג/ד \=אז מתוצאות הקשר שבין 3 טבלאות.
שאילתת מחיקה - שאילתה המוחקת רשומות מסוימות בהתאם לתנאים מסוימיס
המוגדריס בפקודת ה- 501. המבנה הכללי של שאילתת מחיקה הוא :
חסטו0תס6 = תהםר/ 6!טבז הסח ...[ *.6ס] םזם םס
8 282 97 400685 - סדנת לימוד
תוכנית 415: דוגמה פשוטה של שאילתת מחיקה בטבלה אחת.
ץ זט 666!ס' ()415 חהסטסחט= סווטגוק
,50 5 6החהא 50 ,ח00!68ם 45 0ססססספ ,8חו50 ₪5 57501 חחוס
590 5 סרבּזס!ס3 50
005% 061606 0+ הפוצו סע וסט 6 )| 66060ח' 6% 6וחט₪05 זסזדום חס
.066 |ווא זסזזס6 סח +%8 50 615% '
5% 6 )! ,6החפח 5ורט ההוטפח ץוסטף פטסושסזס 67856 '
"261600005" = 536
506 ,34606 0166 6!6060כ. סוחס
"6|טה דאס]" = שוח )סוסב 5
| 306% 5077 ,8 " וחסז-] 61606" = .57501
5 חס 60000 ה663רחג/ 565' "1/10/1995 < 00070806 סזסח\ " 8
0 ,5076 , 5775001 30/6 50!6607
הסח ד 0000סספ )1
506 וסט הסכס. סוחס
566
"וח6!|ססזק" 500%
+ 0חם
חסטס6חט= 0ח=
די לכתוב את שס הטבלה ממנה נמחקות הרשומות, ואת התנאי למחיקה.
תוכנית 416: מחיקה מטבלאות קשורות.
ץ סוס חוסנ 8 סחופט 6!666' ()16 הסטסחט= סווטגוק
,50 5 506 ,ח00!68סם 45 0ססשסספ ,8חו50 5 57501 חחוס
508 5 56הזחקאחו! ,ְהַחו5 5 62רהזסוטה 5 ,5018 5 61ר הסוסה 50
005% 061606 0+ הפוצו סע וסטף 6 )₪ 66060ח' 6% 6וחט₪05 זסזדום חס
006 ||וו זסזוס סח 08% 50 6156 '
5% 6 ) ,6החפח פורט סהוטבפח ץזסטף פטסושסזס 67856 '
"וס חוס?" = 6וחב/ סט 5
506 ,34606 0166 6!6060כ. סוחס
"005600015" = 61רח )סוסב 5
"005" = 162 63ופ3 5
.1 ,0 56 ,06!05 2 חס 28560 15 ה6סס חו שא שר זו
:6 !סע 856זחכן >חו! 6 ,6וחבּח 35%| סח סוחהּח זו סזסצו ץ6> שר זו '
א 70075.6 = 6וחה 65005.5 '
' 05005.1 350806 = )2706175.1 356
"זו 5.000500 0 = 6710 5.00500ז5006" = 856זחוק>חו |
6חהח 5876 רשוע 6/0 עה 90165 2 ) ץוחס 66060ח א6זק שוחהּח 6וספּד '
3062 577 .8 " חוס? זסחח1 " ,8 306361 8.50 " סז *.5ז00זכ) 6!606כ" = .57501
= בחה 1/10/97%+ < 00670806 6זסח/ " 6 856זחקאחו! 86 " אס " 8
"'ירושלים' = /5.010ז650006
פרק 5: שפת שאילתות סטנדרטית (.501) | 139
0 ,5076 , 5075001 3016 50!6607
הסח ד 6000סספ )1
506 סט הסכס. סוס
56
"וח6!|ססזק" 150%
+ 0חם
חססס6חט= 0ח=
לאחר םז₪ ]םשכ נכתוב *.0108758 כדי שנדע מאיוו טבלה מתוך שתי הטבלאות
הקשורות נמחק רשומות.
שאילתת הוספה - שאילתה המאפשרת הוספת רשומות מטבלה אחת לאחרת. מבנה
שתי הטבלאות אינו חייב להיות זהה, אך אס כן, תחביר הפקודה ב- 501 פשוט יותר.
כשמעתיקיס מטבלה כלשהי לטבלה שנייה אגהה במבנה, תחביר הפקודה הוא כדלהלן:
הסט חס6 - שר 30!61+ = *.90!61+ [60= |55 62וסב+ סדאז דח=פאז
אפשר להסתכל על פקודה זו כאילו היא כתובה כך:
50 62ו0+ סדאז דא=פאז
חסטווסחס6 == ה 61| 0 *.90!61 607 551 = שוסטסטט5
במיליס: אנו מוסיפים לטבלה השנייה את השורות שהוצאנו מהטבלה הראשונה
בעזרת שאילתת המשנה.
תוכנית 417: הוספה פשוטה.
6 הפוא ססחו 66005 פחודוספח1' ()17 הסטסחטת 6וופטק
,50 5 50/36 ,ח00!68ם 45 0ססססספ ,8חו50 5 57501 חחוס
0חו50 5 62רהס!סב 50 , 500 5 61 הסוסה 50
%ח0065 061606 0+ הפוצו סע וסטף 6 )₪ 66060ח' +6% 6וח₪050 זסזום חס
.06 |ווא זסזז6 סח 8+ 50 615% '
6% ע6 )! ,6החפח פורט החוטבה ץזסטף פטסושסזק 67856 '
"10561008" = 6חה1/ 5
506 ,346006 0160 6!6060כ. סוחס
" 0056000615 רחס *.0150070065 561666 0675ח1500ו0ז36 0 דג1 +56ח1" = .57750
"ירושלים' = 01 סזפח/ " 8
0 ,5076 , 5075001 3016 50!6607
הסח ד 0000סספ )1
5036 הסט הסכס. סוס
566
"וח6!ססזק" 150%
+ ₪0
הסטסחט= 6חם
0 2 97 400658 - סדנת לימוד
במקרה הזנת שדות בטבלה כלשהי משדות או ביטויים אריתמטייס המבוססים על
טבלה שנייה, התחביר המתאים הוא :
/הסטספטפ (...[86!0,] ₪6!0) 62וס+ סדאז דחשפפז
סו סח 60 םר 161 = ...[ הסו655זקאס, ]הסו655זקאס 01ם 551 = ץוסטוסטט5
מספר השדות שלאחר השס 180182 הוא כמספר הביטויים לאחר המילה ₪07 ]551.
הביטוייס יכוליס להיות שילובי שדות ב-1890161, או קבועיס. פקודה זו גורמת להוספת
רשומה לטבלה 180!82. מספר הרשומות המתווספות הוא כמספר הרשומות ב-80!61+
שמקיימות את התנאי המופיע לאחר המילה 6ז8ח/. כל ביטוי בשאילתת המשנה
יחליף את ערך השדה המקביל ב-%90182. כל שדה ב-90162+ שאינו כלול בסוגרייס,
יקבל את ברירת המחדל שלו ברשומה שמתווספת. הדרך היחידה לשנות ערך שדה הוא
לכלול אותו בסוגרייס ולרשוס את הביטוי המחליף בשאילתת המשנה.
תוכנית 418: דוגמה לשאילתת הוספה מורכבת.
ץ זט חוסכ פחופט הסשפח1' ()18 חסטסחטת סוופטק
,500 5 שרחה 50 ,ח68!ססם 35 0ססססספ ,8חו50 05 .57501 חחוס
5008 5 56הזחקאחו! ,ְחַחו5 5 62ב סוסב 50 ,8חו51 5 61 הסוסה 50
%ח0065 061606 0+ הפוצו סע שוסטף 6 ]₪ 66060ח' )6% 6וחט₪05 זסזדום חס
זטססס ||וו זסזוס סח 8% 50 6155 '
5% 6 ) ,6החפח פורט ההוטפח ץזסטף פטסושסזס 67856 '
"+ 6פח1חוסנ" = 6וה/ 57
506 ,346006 0166 6!6%60כ. סוחס
"00560015" = 61רח )סוסב 5
"020015" = 062 688ופ3 5
"זו 15.000500 0 = 5.005006710ז6 500" = 856זחוק>חו |
5 2 60 הח60 0 הוס? 8חופ '
6וחהח 5876 רשוע 1600 עה 0165 2 ) ץוחס 66060ח אח6זק שוחּח 6וספּד '
,6ט!פע 130% 66% ||וא ס6סטוסחו סח 15 הסוחצו ₪60 עחה '
665505 זס 05ה5%8ח60 חו )טכ ח8ס '
" רגו וה 5006 זז 06 זס) 6וטב דאוס ססחו +ה6פח1" = .57501
" החסזם 6 ,00675.00050000610) ,17+ 6ז06708זס ,1 + 61 וס 5660" 8
= 56 זחקאחו !1 8 " 0% ",6 62 3063 5 .8 " הוס? זסחחז1 " ,6 61ובּסוסב ד50 8
" 25 < 070610 6זסח/צ " 8
50!6607 3016 5775001 , 5076, 0
הסח ד 6000ססט )1
506 וסט הססס. סוס
56
"וח6!|ססזק" 15080
+ 0חם
חסססחט= 0חם
פרק 5: שפת שאילתות סטנדרטית (.501) | 141
תרגיל 29:
ההנהלה החליטה לתת העלאת משכורת של 10% לכל עובד שקיבל
מעל 80 במבחן הכניסה. כתוב שאילתת עדכון למטרה זו.
תרגיל 30:
הוחלט שתלמידים הבאים ממשפחות גדולות (מעל 3 ילדים), זכאים
להארכה של שבוע מעל משך הזמן הנקוב בטבלת ההשאלות. עדכן את
טבלת ההשאלות בצורה מתאימה.
תרגיל 31:
בשל ריבוי טעויות בטבלת השאלות, הוחלט לכלול גם את השם הפרטי
ושם המשפחה של כל שואל. בנה טבלה חדשה בעזרת שאילתת יצירת
טבלה שבונה טבלה שתיקרא טבלת השאלות מתוקנת. אחר, מחק את
טבלת ההשאלות הישנה.
תרגיל 32:
בטבלת ההשאלות מתוקנת נרצה למחוק את כל ההשאלות שהסתיימו.
נעביר תחילה את ההשאלות שהסתיימו לטבלה חדשה בשם טבלת
היסטוריית השאלות, ואחר נמחק אותן מטבלת ההשאלות המתוקנת.
תרגיל 33:
נניח שהוחזרו ספרים נוספים ועודכנו כראוי בטבלת השאלות
מתוקנת. כתוב שאילתה המעבירה את הרשומות המתאימות מטבלת
השאלות מתוקנת לטבלת היסטוריית השאלות, ואחר מחק את
הרשומות מטבלת השאלות מתוקנת.
שאילתות איחוד
שאילתת איחוד (עזפטוב) חסוחט) - שאילתה המורכבת ממספר שאילתות ד0ם ]651.
התוצאה היא טבלה אחת עס נתונים מכל הטבלאות המיוחסות. מספר השדות
הנקלטיס בכל שאילתה חייב להיות והה, ומבנה השדות המקבילים בכל שאילתה חייב
להיות והה. השדות המקבילים יכולים להיות ביטוייס אריתמטיים, אך סוג התוצאה
חייב להיות זהה לסוג השדות המקביליסם.
כדאי לציין שהטבלאות המקוריות אינן חייבות להיות והות, רק תוצאות השאילתות
חייבות להיות והות מבחינת מספרי וסוגי השדות. השמות בפלט יהיו השמות שבהס
משתמשיס בשאילתה הראשונה, אך ניתן להשתמש גס בכינוי (85ו|4) (בעזרת מילת
העזר 5). ניתן להוסיף את הביטוי 88|0 צם הםכסח03 כאשר 780 הוא שס שדה
המשתתף בשאילתה הראשונה.
2 ;8 97 4006585 - סדנת לימוד
המבנה הכללי של הפקודה הוא:
[חסטוסחסס = ה=רו/] 3!61+ 0 ... [הסו5פסזקא6, ] הסופפסזקא6 ד60ם 55
אסזאז
[חסטוסחסס = ח=רו/] 80!62+ 0 ... [הסו5פסזקא6, ] הסופפטזקא6 ד60ם 55
[ ן₪] אסזאט
[חסטוסחסס = חה=רו/] 80163 0 ... [הסו5פסזקא6, ] הסופפטזקאס ד60= 55
[חסו655ז0א6 8 המסחס]
תוכנית 419: דוגמה לשאילתת איחוד.
ץ סט חסוחנ' ()19 חסטסחטה 6וופוק
,50 5 50/36 ,ח00!68סם 45 0ססססספ ,8חו50 05 57501 חחוס
0חו50 5 62הה 1!סב 507 ,500 5 61 הסוס 50
005% 061606 0+ הפוצו סע וסט 6 )₪ 66060ח' )6% 6וחט₪05 זסזיום חס
006 ||ו זסזוס סח +08 50 6155 '
5% 6 ) ,6החפח פורט הַהוטפח ץזסטף פטסושסזס 67856 '
"לפט0)חסות(" = 50/36
506 ,346067 0166 6!6060כ. סוחס
"1005600015" = 61רח )סוסב 5
"00560005" = 62רח )סוסב 5
5 סעוף 3!50 |!ווא אס1ז(! ]ס 56680חו | וה אסזזט פחטחצש'
זט טס חן זה6סכב3 הסוחצו ₪156 ]0 65החהּח 56 35| 06 זפטוח ץצ אסאס
" חס ץח הט00/ו0 ,6וחה)זט5 ,שוחה זו ,סו 0ס05% 56605" = .57501
= 306361 507 8
= "חסוח " 8
|" ,85036 ]זר 0ל15 ,61560656 ,005006710 561665" 8
| 62הה30!6 5 8 " וחסז- 157861 ,' 8 (שוס) חושא" 8
"60500 ₪ סוס " 8
0 ,5076 , 5775001 3016 5016607
הסח ד 6000סספ )1
5036 וסט הססס. סוס
56
"וח6|ססזק" 150%
+ 0חם
חסססחט= 6חם
הוספת המילה 1 41 גורמת לכך שגם שורות כפולות תופענה.
פרק 5: שפת שאילתות סטנדרטית (.501) | 143
סיכום פקודות 501 (שני הביטויים האחרונים יוסברו בהמשך):
סוג שאילתה באנגלית פקודת .5091
בחירה 0% 7
יצירת טבלה 6 36 סדאו... ₪07 551
עדכון 6 ךד. .םדה סק
מחיקה 26 אסח;.. שדם וש
הוספה 0חססקא | ד0ם ]55 ... סדאו זהשפצו
הגדרת טבלה 6 פחוסכ = ]פד 0-5
מחיקת טבלה 65 8ח9ו6כ = ]פד קסחס
בניית אינדקס א6סח! 686 אםסא! 5ז0₪54
מחיקת אינדקס א6סח! חַח6!90כ אםסא! פשדם וש
תרגיל 34:
חברה שמקבלת לרשותה את טבלת בית ספר וטבלת עובדים
מעוניינת להכין רשימה אלפביתית של כל השמות והכתובות שמופיעים
בטבלאות. הכן שאילתת איחוד מתאימה.
שאילתות משנה
שאילתת משנה (עזפטוףסט5) - שאילתה שמופיעה כחלק משאילתה אחרת. שאילתת
משנה שתוצאתה היא ערך קבוע, יכולה להחליף ערך קבוע בשאילתה המקורית,
ושאילתת משנה שתוצאתה טבלה, יכולה להחליף טבלה בשאילתה המקורית. שאילתת
משנה חייבת להופיע בסוגריים.
תוכנית 420: דוגמה להחלפת קבוע בתת-שאילתה.
5 ()20 הסטסחט= ס6ווסטק
,50 5 506 ,ח00!68סם 45 0ססשסספ ,8חו50 5 57501 חחוס
58 5 סט 505 ,0חו57 5 סו הסוסה 50
%ח0065 061606 סז הפוט סצ וסוס 6חז ]| |66060ח' ואס 6וחט05 זסזום הס '
זטססס ||וו זסזוס סח 8% 50 6156 '
5% 6 )! ,סהחפּח 5ורט פַהוטפח ץזסטף פטסושסזס 67856 '
"ץ 500" = 6החב/ סט 5
506 ,346067 0166 6!6060כ. סוחס
"50051" = 6רח68וטה 50
4 8 97 400088 - סדנת לימוד
6|ע 3 זס) 5005000005 /וסטספטס '
"(" ,8 6הח30|63 5 8 " חס (5זט6כ0ו0 + 0606)פעה 56!66)" = ץ00067 5750
= " החסז- 2813006 35 60| + 26% ,35036 | ,120006 5666" = .57501
| 3636 577 8
ץ 500 6 " < (ססססחו0ס + 6ס6כ) סזסחצ " 8
0 ,ב 5076 , 5075001 30/6 50!6607
הסח ד 6000סספ )1
506 הסט הסכס. סוחס
56
"וח6!|ססזק" א0ס8 חפ
+ 0חם
החסססחט= 6חם
שאילתת המשנה היא שאילתת סיכוס שמספקת כתוצאה ערך קבוע אחד, ממוצע
סכוס השדות : 0000808 + 65%.
תוכנית 421: דוגמה להחלפת רשימת ערכים בשאילתת משנה.
2 ()21 חסוססחטת סווטגוק
,500 5 50/6 ,ח00!68סם 45 0ססססספ ,8חו50 5 57501 חחוס
הו 5 סט 505 ,570 5 סה הסוס 50
%ח0065 06606 0ף הפוט סצ וסוס 6חז ]| |66060ח' ואס 6וחט₪05 זסזחם הס '
זטססס ||וו זסזוס סח +08 50 6156 '
% צ6ח ) ,6החפח פורט פהוטפח ץזסטף פטסושסזס 67856 '
"500002" = 6וחב/ סט 5
506 ,3460067 0166 6!6060כ. סוחס
"05005" = שהבּסוטה 507
זז 6חס ההז ססרה 306 סע סהעט זר 6500 || ₪05 ץוסטף פוחד '
6זסרח 36 + 00 סהעע 60560065 || שבח טסץ 1% 01 680ספחו 1 דסא שפט טסץ ץד '
ז 0 1 ההח"
5 סו הוהרח הסוחעט והסז 50056% 8 665טססזס ץופטספטס '
| " 6500 ץ8 קטסז 000615 חס 605006710 56!60%)" = 5750006
"(10(<1ז6ו0סספט6)חהטס 6א1/הרו" 8
| 306% 5077 ,8 " וחס= * 56/6066" = .50501
ץ 575 .8 " ח] 610 0500 סזסחצ " 8
0 ,5076 , 5075001 30/6 50!6607
הסח ד 0000ססט )1
506 וסט הסכס. סוחס
566
"וח6|ססזק" 1500
+ 0חם
הסטסחט= 6חם
פרק 5: שפת שאילתות סטנדרטית (.501) | 145
האופרטוריס שפועליס על רשימת ערכים הס: האופרטור ! שמחזיר ערך 6טזד אס
ערך שדה מסוים מופיע ברשימה, ו-א! דסא, שמחזיר ערך 6טזד אס ערך שדה מסוים
אינו מופיע ברשימה.
תוכנית 22:
3,003 ()22 חסססחטת סווטגוק
,50 5 50/6 ,ח00!68ם 45 0ססססספ ,8חו50 5 57501 חחוס
58 5 505 ,0חו57 5 סה הסוסה 50
005% 061606 0+ הפוצו סע וסט 6 )| 66060ח' :6% 6וחט₪05 זסזום חס
זטססס ||ו זסזוס סח +08 50 6155 '
5% ע6 )! ,6החפח פורט ההוטפח ץזסטף פטסושסזס 67856 '
"5003" = 6וחב/ 5
506 ,346067 6!60600[66כ. סוחס
"6150005" = שרח )סוסב 5
5 8פחופו ץזסטף 35%| 35 5806 00 60 הצ זסחססח '
6חס ההז ססר 306 6עה סהעט זר 6500 || 05 ץוסטף פוחד '
6זסרח 366 +10 סע ₪15%00615 || 0חה ,5 ₪151 6פט טסץ זו '
5 07 6פט טסץ ]ו זססוס 1 הפו"
5 וסט הוהרח הסוחעט החסז 50056% 8 665טססזס שהסטספטס '
" 00075 החס-] 050061 56!66%)" = 0000677 5750
|" 15.0050060 0 0ל65 = 5.60500060ז06זס 6זסח\" 8
"(10(<1ז6וח5%0ט0)%הט0ס6 16/מר כזוסו 6560 ץ8 קטסזוס" 8
| 306% 577 ,8 " וחס= * 56/6066" = .50501
575 8 " 55ואם זסא סזסחצ " 8
0 ,5076 , 5075001 3016 50!6607
הסח ד 6000ססט )1
506 וסט הסכס. סוס
566
"וח6!ססזק" 150%
+ 0חם
החסטסחט= 6חם
האופרטור 1515ם שווה ם()1 אס קיימת לפחות רשומה אחת בתוצאת שאילתה
כלשהי. לכן, שאילתה זו תחזיר את כל הלקוחות שביצעו 0 או 1 הזמנות, כלומר כל
הלקוחות שעבורס שאילתת המשנה אינה מחזירה רשומה, משוס שלאותו לקוח אין
הקבצת הזמנות המורכבת משתי רשומות ויותר.
6 82 97 400685 - סדנת לימוד
תוכנית 423:
4 ()23 חסטסחט= סווטוק
,50 5 50/36 ,ח00!68סם 45 0ססססספ ,8חו50 5 57501 חחוס
58 5 סט 505 ,0חו57 5 סה הבּאזסוסב 50
%ח0065 061606 0+ הפוצו סע וסטף 6 )| 66060ח' )6% 6וחט₪05 זסזדום חס
זטססס ||וו זסזזס סח 08% 50 6156 '
5% 6 )! ,סוחפּח פור פַהוטפח ץזסטף פטסושסזק 67856 '
"50004" = 6החב/ סט 57
506 ,346067 0166 6!6060כ. סוחס
"6500051" = סרח )סוסב 5
6 זר 6500 || ₪05 /וסטף פוחד '
(505 זס ץג ) (הספזסק 6חס 685% 36 זס] 010060) < זטס *'
6 זר 6500 || חח טסץ 11ה 6פט טסץ זז '
(6!ק60כ |!3 זס+ 0010060%5)) < 060% '
5 /סטף חוהרח השוע החסז 5056% 3 665טססזס שוסטספטס '
,סז ץ] זס וס 1 | חו 0006065 ההז 6זסרת 15 שוסז ה686 חו 060% זו '
.סז טסץ + חש חס 06608 '
"(00560061751 והסז-] 00060%5 0561666" = 5750006
ץז 575 8 " צאה < זטסכ 6זסח// " ,8 6הה6וס3 5 8 " וחסז- * 56605" = .57501
0 ,6/6 כ 507 , 5075001 3016 50!6607
הסח ד 000ססספ )1
506 סט הס סוחס
566
"וח6|ססזק" 500%
+ 0חם
חסטסחט= 6חם
גס במקרה זה אנו מוציאיס כפלט רשימת ערכים (פה עבור 01/6080%8), ומשוויס את
הרשימה לשדה 088% בעזרת צ4% (או 501₪ או 11ה). צאה יחזיר ערך =וחד
לתנאי, גם אס רק ערך אחד ברשימה קטן מ-+80ת. 1 | יחזיר ערך =(ד לתנאי, רק
אס כל הערכים ברשימה קטנים מ-865%כ. בכל פעםס שהתנאי מתמלא (מתקבל ערך
=()חד), הרשומה תיכלל בתוצאות הפלט.
תרגיל 35:
ברצוננו לבדוק מיהם הסטודנטים (שמות) ששואלים ספרים רבים יותר
מהסטודנט הממוצע. כתוב שאילתה מתאימה.
תרגיל 36:.
ברצוננו לדעת שם, כתובת ומספר שנות לימוד האב והאם של סטודנט
הרשום בטבלת השאלות מתוקנת כאחד ששאל מעל ספר אחד.
פרק 5: שפת שאילתות סטנדרטית (.501) | 147
תרגיל 37:
מסתבר שציון מבחן הכניסה לעובד מתואם בערך לציון הממוצע שנתי
של סטודנט. כתוב שאילתה שמאתרת את העובדים שציונם במבחן
כניסה מעל לציון הממוצע של כל תלמיד, וכתוב שאילתה שנייה
המאתרת את העובדים שהציון שלהם במבחן כניסה הוא מעל לציון
הממוצע של לפחות תלמיד אחד.
מחיקת רשומות מטבלה
אפשר למחוק רשומות בעזרת שיטה (00ח64/!) מיוחדת לקבוצות רשומות.
תוכנית 424: דוגמה לשיטת המחיקה, 6!616.
()424 חסטס6חט=
5 6 0 5665החש0 10 6חס00 06 63 600705 הַחח6וסכ ד
5 306 דץ] ,0550856 ₪5 טסץוז חחוס
(28%808565)0. (6508665)0זס/\. 6חוסחם כ = טסיא 56
(0|6 26 ,"0505" )6607056 תסקס. טסו = 6וסב דעו 56%
סוסה דץו חטו
זו סשסו.
=0סם. טח סם
חח ד 56789 = [60006|החסו60]! זז
6 !8 " " .8 35306 זר 500! אס 50
6
+ 0חם
+אססטסו.
קסס |
6
וחו\ סח
חסטס6חט= 6ח=
תרגיל 38:
הוחלט לפטר עובדים (כלומר למחוק אותם מהטבלה), אם מתקיימים
שני תנאים:
ציונם במבחן כניסה למטה מ-80
משכורתם מעל 5,000 שקל.
כתוב שיגרה שתמלא דרישה זו.
8 282 97 4006585 - סדנת לימוד
5 תרגיל 39:
% בית הספר מקבל מנהל חדש שרוצה להעלות את הרמה. הוא מחליט
תנאים:
ממוצע למטה מ-70.
סכום של מעל 20 שנות לימודים לשני הוריו.
כתוב שיגרה המבצעת את הפעולה הדרושה.
מיון בטבלה
להפסיק לימודי (למחוק מהטבלה) תלמיד אם מתקיימים עבורו שני
כוכור, בקבוצת רשומות שסוגה מוגדר כ:80|6 00006071 אפשר להשתמש במפתחות
ואינדקסים. אינדקס הוא טבלה שמחזיקה את סדר הרשומות לפי שדה כלשהו - שדה
שעבורו בוניס אינדקס. למשל, בטבלת 58ז6009%078 המפתת הראשי
הוא
סופוס+9ט0, אך ייתכן ונרצה אינדקס לפי שס משפחה. האינדקס יוכל להיראות כך:
שם משפחה
בראון
בראון
גרינברג
גרינברג
גרינברג
הלוי
חיימוביץ
חיימסון
חנני
כהן
לבני
נחמן
נחמני
פרימן
רון
רון
רון
פרק 5: שפת שאילתות סטנדרטית (.5691)
מספר לקוח
110
11
23
7
55
26
24
55
131
8
20
76
2
2077
255
16
2
19
בצורה דומה ניתן לבנות אינדקסיס עבור כל שדה. אינדקסים אלה יכולים להיות
ייחודיים (6טףוח()), כלומר, כל ערך של האינדקס חייב להיות שונה מחברו, או שהם
יכולים להיות לא ייחודיים, דהיינו, אפשור ערכיס כפולים. בדוגמה הקודמת למשל,
היו מספר שמות זהים. אינדקס גם יכול להיות מורכב ממספר שדות, למשל, אינדקס
המורכב משס משפחה ושם לקות יכול להיראות כך:
שם משפחה שם פרטי מספר לקוח
בראון 11
בראון חיים 110
גרינברג חיים 23
גרינברג חיים יעקב 17
גרינברג שלום 55
הלוי לאה 26
חיימוביץ צבי 24
חיימסון 55
חנני שלום 131
כהן אביאל 28
לבני חננאל 020
נחמן גברי 76
נחמני שמואל 22
פרימן ראובן 277
רון רות 25
רון שלמה 2
רון שלמה צבי 16
בשפת .501 הפקודה לבניית אינדקסים נראית כך:
50| 6הח8ח 06!0) 6החהּח 9016 א שוחפּח אססחו [םנוסזאזט] = דה655
המילה 0 5!א( מגדירה את האינדקס כייחודי. שס האינדקס יהיה שוח א06חו
עבור הטבלה שוח 180!6. השדות הכלולים באינדקס יופיעו בסוגריים.
0 82 97 400655 - סדנת לימוד
תוכנית 25:
מחיקת אינדקס קודם בשם זה (אם היה) ובניית אינדקס חדש.
106% 6806ז0' ()25 חסססחט= סווטגוק
,50 5 50/86 ,ח00!68ם 45 0ססססספ ,8חו50 5 57501 חחוס
50 5 5010611306 ,506 5 סה סוסב 50
6 ₪5 00 וחוס
()%00ח6ז) = 00 56
00650% 06|606 %0 הפוצ סע הסט 6 ]| 66060ח' זא6] 056 זסזזם חס
זטססס ||וש זסזוס סח +08 50 6155 '
ץח )| ,שבח פוחל סהועפּח 6ו%80 סחה ץזסטף פטסושסזס 67856 '
536 = "0768061000"
"150005" = שרח )סוסב 5
ה 50 ,36006 0166 6!6%60כ. סוחס
"6רח3]" = 806\א06ח 5
1 חפ א06חו חה 67856 '
3636 50 8 " 0 " ,8 501036 8 " אססח1 קסזס" = .57501
0.6006
0 ,ה 507 , 575001 3016 66!600 '
הסח ד 00ססססס + '
506 ץז הק 0ות6סס '
6
"וחשוטסזק" 580% -'
+ חס '
6וחהח וסט 0ח3 6חחהּח א6סחו צוסח 6חוסכ '
8 66| 50 8 " 0 " .6 6וחה א 501 8 " אסא ם דה6₪5" = 57501
"36 זור 5% ,35086 שרח 00ס5ט) "
00.60
6/0 507 , 575001 3016 6616607 '
הסח ד 0ססססססם ] '
56 זט ח6ק0.0ות6סכ | '
6 יי
"הח6|ססזק" אס000פו | '
+ חס '
חסטסחט= 0ח=
פרק 5: שפת שאילתות סטנדרטית (.501) | 151
0
הערות:
3
אם אין מפתח ראשי (או שמחקת אותו בעזרת אםסאו ססחפ),
אפשר לבקש שהאינדקס שנוסף יהיה מפתח ראשי, על ידי הוספת
המילים צחהושוחם חדוצ בסוף הפקודה.
אם מוסיפים ! וטא צוס.ן ופוס חדוצ וערך האינדקס הוא וטא,
אי אפשר להוסיף רשומה. אם מוסיפים !וטא םהסאסו הדוצש,
אפשר להוסיף רשומה גם כאשר ערך האינדקס הוא | וטא, אך
זיהוי רשומה זו לא יהיה באינדקס.
תוכנית 826: שימוש במפתח הראשי ומפתח משני (האינדקס).
12
()26 חסט6חט=
ץש החוכ ₪6 ]0 ז06זס 66 חו ₪16 606 פהטחוזק '
סא 56600083 6 סחם '
5 306 דץ] ,0550856 ₪5 טסץוז חחוס
(028565)0ז28. (65080665)0זס/. 6חוטחם כ = ססץוח 66% '
()%00ח6זזט6 = טסץו] 56
508 45 סרבּ]סוטה ד וחוס
"05005" = שותהּ)זס!טהד
(6 0006 ,3016136 660705607 הססס. טסץוא = 6וסב דץוא 56%
0
סח ץזהוחוזכן 5| 0630 ' "ץש ץזהרוזכן +פון ,א06ח1 6+טסרטוש" זחוזק. פטטסס
סוסה דץו וטו\ :מ
0סם. |טחנ סס
| 806ז35 |זסרח60500! ;(3)10 ד ;610 50ט0! זחוזק. פטס
זו 10500 ; (25)פ ד ;
+אס)סשסוא.
מסס |
:2
"סהחהּ)]" = אססח1.
"אשסח1 חסו/" +חוזס. סטססס
זו סץס!.
0ם. |טח סס
| 806ז35 |ז6רח6500! ;(10)פ3 ד ;610 0ז605! זחוזס. פטס
זו 16500 ; (25)פ ד ;
+אססעסו.
מסס |
6
וטוצ 0חם :ה
חסטס6חט= 6ח=
84 97 200655 - סדנת לימוד
הסבר: שורה ג ושורה 43: הפקודה 4 דו/ סאם..... 38!6 956 הודוצ מאפשרת
לדלג על משתנה הטבלה בתוך טווח הפקודה, בכל פעס שמוזכר שס שדה בטבלה או
שיטה (00ח1/64) המופעלת על הטבלה. אפשרות זו משפרת את קריאות השיגרה.
שורה 8: הפעלנו את האינדקס =]4!, שמסדר את הטבלה לפי שס משפחה ושס
פרטי. הלולאה בפקודה הבאה מדפיסה את נתוני הטבלה לפי סדר האינדקס םווהצז.
אך ראשית יש צורך למקס את המצביע ברשומה הראשונה שמופיעה באינדקס.
כמו שהוזכר, אפשר להשתמש באינדקסיס רק בקבוצות רשומות מסוג טבלה.
בקבוצות רשומות מסוג קבוצה דינמית או תצלוס בזק, אפשר להשתמש במאפיין
1 של קבוצת הרשומות.
תוכנית 427: מיון נתוני טבלה ב-3 סדרים שונים.
()27 חססס6חט=
6 0 סוס 300045 הסוחעו 0856 8 85 חס .פחטזסס '
56000 הס 30 זס וס 504 6886 החוד .חס 08560 65 שופ '
זז חס חספה '
5 0162ב ד ,300070560 5 6|סב ד ,650856הכ 5 טסץו חחוס
(008565)0ז28. (6508665)0זס/. שוח = ס0ץוח 66% '
()00ח6זזט6 = טסץו] 56
5090 45 סרהּסוטה ד וחוס
"5005" = 6והּ)זס!טהד
(56% 8 חכ ,30161186 )056% 660 הסקס. טסץו = 6סב דעו 56%
סח ץזהוחוזכ 5| 061905 ' "ץהסקסזק 50 +טסרטוע" זחוזק. פטטסס :ג
סוסה דש חטו
0ם. |טחנ סס
ור 500)! ,35306 הזרת סס5! ,זור 6560 זחוזק. פטססס
+אס)סשסו.
מסס |
1:
"[שוס]" = +ס5.
חסו\ 6חם=
ד = 62|סב דש 56% :81
"ו חס פחזס5 רסו\" +חוזק. סטססס
2 וא וטוש
0ם. |סח ספ :6
,3578006 615000671 ,610 650! זחוזק. פטס
סו ! ,00 ,הזור 05%
+אססשסו.
פרק 5: שפת שאילתות סטנדרטית (.501) | 153
קסס |
.308 5! ₪56 סל חוסט 6זהּ 6 0668056 ,62ו0 ל 6056 ז5ח סצו' ספסו6.
וחו\ סח
"[ 351306 ]61500067] ,0656 [6006|החסו60]" = א6.50סב דעו :ס
.ה דעו = 0162ב דץו] 56%
2 הדוא וטו
"35036 | 30 8|60006ח0ו6 חס פהחזס5 חטוצ" +חוזק. סטססס
0סם. |טחנ סם
= ,357806 |1500067ו6! ,610 0ל65! זחוזק. פטס
סוס ! ,ו ,זו זר 05%0!
]אס סעסטו.
קסס |
6
חא 6חם=
הדו
חסטס6חט= 6ח=
שורה : כאשר מגדיריס קבוצה דינמית על בסיס טבלה, הסדר המקורי של הקבוצה
הדינמית הוא לפי סדר המפתח הראשי של הטבלה שעליה מבוססת הקבוצה.
שורה 5: קביעת המאפיין 501 של קבוצה דינמית תגרוס לכך שכאשר יוצרים
קבוצת רשומות חדשה מאותה קבוצה דינמית, המיון יתבצע לפי הערך שניתן למאפיין
זחספ.
שורה 81: פקודת 466070561 ח0006 ללא ארגומנטים. היות והאובייקט הוא קבוצה
דינמית, סוג קבוצת הרשומות שנוצרה הוא גס קבוצה דינמית.
שורה 6: מעבר דרך הקבוצה הדינמית לפי הסדר החדש. בסוף התהליך נסגור את
הקבוצה הדינמית, כדי שנוכל להשתמש בה שוב.
שורה ₪: קביעת המאפיין 501 של הקבוצה הדינמית לשני מפתחות מיון, הראשון
בסדר יורד, ושוב יצירת קבוצה דינמית חדשה.
תוכנית 428: דוגמה לעבודה עם תצלום בזק.
הח " ()28 הסטסחט=
6 58 טסע חחוס
5 5803 66070560 5 50802 ,66070566 5 +סה5קהה5עויז חחוס
1 5 50056 חחוס
0חו50 5 53 ,0חו50 45 52 6חפוזב/ 5 51 חחוס
(8%808565)0. (6808065)0א סש 6תופַח כ = טסשץו] 56
5 |6א 85 06165 סז 60ח6ק0 06 63 85665חץ0 30 5וסחה5קהחפ '
5 ג .09356105 זב|60 66!| סז סז 00656 .65ו90 '
4 ב8ם/ 97 400088 - סדנת לימוד
סז זז 80165 6 זסח ,חס 28560 5! 5 681 וסט 6+ 66 סקט +סחחּס '
63 8250%ח5 3 ,זסעסשטסר] .ח68 56%החץ0 3 +טם ,חס 28560 5! ץ וסטף 6 '
5 508050065 8חו5( .5080501 0107606 3 ס6חן 13060 סחה 50660 6ם '
6זה טסץ 0668056 ,90165 זס 5605החץ0 8חו5 ההש +ח6וסו60 6זסרח '
סחה סקט פחועוסווה +סח '
| סז ,35676 806 60 חס 3536 זר 560 ור 6050 56166" = 51
005605"
(80500%ח5 0006 ,66070561)51 ה6קס. פסץו = %6סהפקהח5ץו] 56% :מ
סח עה 51 חב ,06 +חההבע 3 5 ||וטח 0663056 חהוהט 06 טר 51 :סססח '
קה תש חסו
"זז 86 ץבוק 6 ,610 6500 ץכ 5 06 :1 56" א0פ 0פו
3 110 = 50056 זסת
([1ח6רח35028 |ססהכ]! ," " ,וטא = [6ה6וחץ35%?3 |וסזהכ]!)11 = 51 :8
([60/ש00ץ6חס!]]!)% 5 = 52
([3511)3006 [ז6ר5%00ט050)!]6 = 53
050 8 " "₪ 53 ₪ " "₪ 52 8 51 אסםףפוו
+אס)סעסו.
6 |;א6)]
6
"[ 6 351% ]זר 05%0]" = +ס5.
5 חס 006 06 ץ|חס ח68 פהחססוו1 סחה 8חודוספ '
הח חב '
( 850% 65 60056000 הק 0.0 רכה היו = 2קְהַח5 56
6
הו\ סח
2פח- וטו/
"2 56 " 15080%!
3 110 = 50056 זס=
([)ח6וח/3503 |ססהכ]! ," " ,וט = [6חסוחש35%5 |סזהכ]!)11 = 51
([60/ש00ץ6חס!]]!)5% = 52
([3511)3006 1ז6ר5%00ט050)!]6 = 53
3" " 8 52 8 51 א0ם ₪150
)אס סעסו.
6 >אס)]
:ס
סח 06 סחחססוו1 סחה 8חודוספ '
"656 [35%3006 |זרח05%0]" = +0ס5.
חסטו0חסס שו +56' "תל אביב'=[ו0]" = זסטוו=.
פרק 5: שפת שאילתות סטנדרטית (.501) | 155
0560000550 60 חק 0. 802ח5 = 3כְח5 56%
6
רשו\ סח
3 וסו/
"63 " א00 150
3 1710 = 50056 זס=
([)ח6וח/3503 |ססהכ]! ," " ,ווט = [אחסוחץְב356 |סוהכ]!)11 = 51
([60/ו0ץ6חסו!]]!)5% = 52
([ 35%13706 |ז6ר05%0] !)051 = 53
שוס! 8 " "6 ₪53 " " א 52 8 51 אסם0פ!וו
+אס)סטסו.
6 ;אס
6
השו\ סח
חסטסחט= 6חם
שורה : דרך נוספת להגדיר קבוצת רשומות היא על ידי הכללת שורת .501 בשורת
הגדרת הקבוצה. בלולאה הראשונה סדר ההצגה הוא לפי סדר המפתח הראשי בטבלה
שעליה מבוססת שאילתת הגדרת תצלוס הבזק.
8 היות והשדה 89%28/₪60% 8161 יכול להיות ריק (ווטא), אנו מגדיריס את
המשתנה 51 כסוג +חפּוז8//, כדי שיוכל להחזיק ערך ווטא, אס נחוצ.
6: הגדרת סדר מיון חדש, שישתקף בקבוצת רשומות שתיווצר מתצלום בזק וּה, כפי
שאפשר לראות מלולאת הפלט הבא.
פ: הגדרת סדר מיון יורד, והגדרת מסנן שיציג רשומות שמקיימות את דרישת הסינון.
תרגיל 40:
כפי שכבר הוזכר, בטבלת הספריה המפתח הוא הכותר והמחבר, יחד.
בנוסף, אנו מעוניינים במפתחות המשנה הבאים:
מספר סידורי (ייחודי),
אפפ (ייחודי),
= שם המחבר בלבד (לא ייחודי),
מוציא לאור בלבד.
הוסף אינדקסים אלה, והדפס רשימת ספרים מסודרת לפי כל אחד
מהאינדקסים.
6 282 97 4006585 - סדנת לימוד
תרגיל 41:
בנה שאילתה על בסיס הטבלאות טבלת השאלות מתוקנת, טבלת
סטודנטים וטבלת ספריה שמציגה את שם הספר, שם הסטודנט,
ומספר הילדים במשפחה, וממיינת אותם לפי מספר הילדים בסדר
יורד, ולפי שם ספר בסדר עולה. אפשר למשתמש למחוק את כל
הרשומות של משפחות עם מספר ילדים מסוים שהוא עצמו יקבע.
תרגיל 42:
בנה צילום בזק שייאפשר להציג את הנתונים שהוצגו בתרגיל הקודם.
חיפוש בטבלה
כפי שכבר ראינו, מיון קבוצת רשומות משתנה לפי הסוג - מיון סוג טבלה מתבצע
בעזרת אינדקס, והסוגים האחריס נעזרים במאפיין 50₪1. גס חיפוש משתנה לפי
הסוג. נתחיל בקבוצות רשומות דינמיות ותצלומי בוק. חיפוש מתבצע בעזרת הפקודה
6% חות. המבנה הכללי של )אפחסחו= הוא: חסטוסחס6 דאםאסצוו-, כאשר
חסוזוסחס6 הוא מחרוזת המחזיקה את תנאי החיפוש. כלומר אנו מחפשיס רשומה
שמקיימת את הדרישה המוגדרת במחרוזת.
תוכנית 829: חיפוש שדות שלא מולאו, בעזרת זא6צסחו=.
()29 חסטס6חט=
חן ₪1!60 זט טח 1% 6 8/6 0% 00 660705 הסוחצ 65חורת06%7 '
5 306 דש ,0550856 ₪5 טסץוז חחוס
() טוש ח6זט6 זס ' (5808565)0כ. (508065)0אזסש/.6חופַח טכ = טסעוז 56
560 ץח ,"5005" 056 660 הססס. ססץוא = 6וס דשא 56%
5 300 5615החץ0 רטוצ ץוחס 5א'וסצ הסטסשחט? +א6 הסח סרט '
"וט = [זססחט\]אה]" = הסחסטוז6 060060 סעבּח 0|טסס פעצ'
.חסוז00וז6 6 ח0חח.16טה דש :הסאוחצו הסח סחם '
חה )50601 68 ה6וח ץש ,6000 506% 6חל ₪56 600705605 6+ רטוש '
0 + סז 66 חס הסחסטוח6 /סווהטססחו זס שווט6 '
.ץוחס אס6סחו '
סוסה דץוז תסו
:ה
"וטא = [זסטרתטא]אפ-]" )אסא סחו=.
הסה זס)ז. וסחנ סס
3536 |[ ר500ו0! ₪ " " 8 [כזוהסספו]! אס וו
"| ט = [זסטותטף1אה= ]" אאסצסחו=.
מסס |
6
רשו\ סח
חסטסחט= 6חם
פרק 5: שפת שאילתות סטנדרטית (.501) | 157
שיס לב שכל שימוש ב-)א6ז0חו= מאתר רק את המופע הבא, ולכן חייבים להפעיל
אהו מחדש לאחר כל איתור מוצלח. כאשר החיפוש מגיע לסוף הטבלה, המאפיין
חסז8 הזסצ.16ס3 דעו הופך להיות 6טזד, והלולאה נגמרת. בשורה 4 מוצגת הפקודה
א חו= יחד עס הגדרת הדרישה הקובעת את החיפוש.
תוכנית 430:
608 השוע 0060 זאסוסחו ' ()830 הסטס6חט=
%חפ טסץ )החש 60 65חַח3ח6 סחב פווטח | 05ח₪ פוט '
6 5 טסע וס
9 5 005005 וחום
508 25 ספ וחוס
(8%808565)0. (808065)0א סש 6תופַח כ = טסעץו! 56
חח + .60ז8 קט 06 680 %9016 זס 356%חץ0 3 ץוחס '
.5080500 זס 566החץ0 רחוש 560 6 '
(8560 000006 ,"זר 50" 600056 הסקס. ססץא = 005005 56%
5 סו
סרח 3 חו +טכ ץו|63סהוחססט3ּ 3150 0!טס6 שש" "וטא = [זסטרתטצאב- ]" )אסצסחו=.
|וטח 686 סז '
החסה זסז. וטח סס
8%
[350306 6 500ש6]! 8 " וס זסטרהטח אב 3 זססחם" = ₪59
אסכ 66 חו ספחצו טוסץ סט|הע 6חז פוטמחו הסחסחט) +טסחו סוט '
6% 6 חס 06הזה/ שר סט '
(50ר)א0סטטסח1 = [זסטרתטצזאה-]!
=זהסקט.
"| ט = [זסטותטףאם= ]" +אסאסחו=.
מסס |
6
החו\ סח
החסטסחט= 6חם
תוכנית זו היא הרחבה של התוכנית הקודמת, אך במקוס לחפש מספרי פקס שלא
הוזנו, בתוכנית זו נוכל גם להזינס מיידית בעורת עריכת הרשומות הקיימות בטבלה.
+א6זח=] (וגם 01-051ח/=] , פטסועשיוקסחו= , זפיוו-]0חו=)
השיטה (א6א חו= (כמו גס השיטות 850 1סחו= זו 0חו= ,פגוסוע6זקטחות) פועלת
בתיאוס עס המאפיין 5011, שהרי אם הכוונה היא לאתר את המופע הבא, השאלה היא
תמיד לפי איזה סדר, והתשובה היא לפי המיון שהוגדר לקבוצה. אס הקבוצה מבוססת
על טבלה, המיון המקורי הוא לפי המפתח הראשי שלה. אס היא מבוססת על שאילתה,
הסדר המקורי הוא לפי סדר הרשומות בתוצאת השאילתה. אס השאילתה כוללת את
הביטוי עפ ז08ז0ס, הסדר הוא לפי העמודות שהוזכרו בביטוי, אחרת, הסדר הוא לפי
סדר עולה בעמודות, החל מהעמודה הימנית ביותר וכלה בשמאלית.
8 282 97 4006585 - סדנת לימוד
כאמור, כל זה אמור לגבי קבוצות דינמיות ותצלומי בוק. בקבוצות מסוג טבלה, הסדר
נקבע לפי המפתח והאינדקס וכן גס החיפוש. אס נבצע חיפוש בקבוצה מסוג טבלה על
שדה שאינו אינדקס, נבסס עליה קבוצה דינמית או תצלוס בזק ונשתמש ב-)א6צו0חו=.
אך אס החיפוש הוא בשדה מפתח או אינדקס, אפשר להשתמש בשיטה הנקראת
%. שיטה זו מורכבת משני שלבים :
1. בוחריס את האינדקס שיופעל בעזרת פקודה זו:
"ס6וחּח א6סחו" = %= 6607056010
2 רושמיסם פקודת 5556, שנראית כדלהלן:
06 ,ז800ז6ק0 5556
כאשר זס)9ז6קס הוא שוויון או אי שוויון ('=", *<, *>, *=<, '=>!) ו-6ט|8
הוא המשתנה או הקבוע הנחוץ להגדרת הדרישה. אנו מחפשים, איפוא, את
הרשומה הראשונה (לפי סדר האינדקס שבחרת בשלב 1) שמקיימת את השוויון או
האי-שוויון דלהלן:
.6ט|פע ז8%0זסקס אססחו
אססחו הוא משלב 1, ז810ז6קס ו-6ט|8/ הס משלב 2.
תוכנית 431:
0050 |8/ץ2 ,ה1.36086 זהספוי] וז 66600500 31 סט5
חה 06 ץ|חס ח68 300 ,90!6565+ זס1 560 06 ץ|חס ח68 606% '
0 אססחו 6 חס שווהטף6חו זס שווהס6 '
5 306 דע ,0550856 ₪5 טסץוז חחוס
()%00ח6זזט6 = טסץו] 56
(86 ד 026 ,"50065" )56% 660 הסקס. טסץו = 6סב דעו 56%
סוסה דץו תסו
:ה
"שא /זהוחוזק" = אססח1.
:2
ח80 3 ]| זהספו] ,"=" 566%.
הסח ך חה6הווסא. +
6 8 %ח56 8/6 0|טס6 6ע ' ה6086ה ]| זהספווא זחוזק. סטססס
רה זססזכ 19% 66 0 080% '
"זסזזס ח3 15 6זסחד" %חוזק. פטס
56
8%
החד [טווחו 0ו60ז6]! < 605 + [60שסששחסוו]! זז
(ח86 30 | ז503ו1י])50 .8 "זח0ל65 זס1 זססזס ורש || %'ח8" אס0ם 50
6
% + [60עו0ץ6חסו]! = [0סס6צוסשסחסו]!
ה6 ה ]1 זהספוו ,605% ,[ ץש ץ6הסוז]! +חוזק. פטפסס
פרק 5: שפת שאילתות סטנדרטית (.501) | 159
+ 0חם
=זהסקט.
+ 0חם
6 6 פחופסוס ' 6
הזו\ סח
50 0ח=
בדוגמה זו אנו מעייניס בהזמנות לפי הסדר ומוסיפיס את התת-סכוס שבהזמנה לחוב
הכולל של הלקוח. כדי לעשות זה, אנו קוראיס לפונקציה שמפעילה פקודת 588%.
שורה ה: שלב 1.
שורה 8: שלב 2.
תוכנית 332: דוגמה לעדכון אקראי של טבלת לקוחות על בסיס טבלת תנועות.
5 הזד 0חו00ג ' ()832 הסטס6חט=
6 58 טסעו וס
5 85 ד ,60070566 5 86 וץוז חחוס
(8%808565)0. (508065)0אזסש/. 6חופַח כ = טסשץו] 56
(0|6 00006 ,"8586005 ")660056 הסקס. ססץו = פחהזד/וא 56%
(80|6 דה6כ ,"5005" )056% 660 הסקס. טסץו! = 36 וץו] 56%
אה ועו הטסו
"סא /הוחוזק" = אססח1.
=0ם.פחהזדץו וטחט ספ
[10ו6 ו 050 ]!פחה דש ,"=" א506.
אזסע +'ח0ו ה6ז8ח 6 ]| 566 60 505% סף ה6סהרהסה.>ה!שרח 6פט '
6% 6156 ,800 0ף הבע 6ח ]| 666% ח68 טסץ ₪'חסום וזו '
6 חס סְפַחַח6 זסז'
הסח ד ה906ו]ס]. חב "ה" = [6סץ חס 5860חה ד] !פחה ד דעוו זז
0 צוסח חבס 005ב' ו
[0 5006 ]!5חה דש = [ס1וסו ]ו
[36 35110 זר 0560 ] !חב ד = [36 35 זר 500 ]ו
0 סח 6 0+ 806 6ְחַחבח6 66 5ססהסקט ' ם דהסקט.
סד ה306ו]ס]. +46 חג "6" = [6קץ 5860007 ד]!פחה דעו +56
סססוסכ.אם ועו
זו 500 ט5!6חה דש 8 " זסיחם" אס 150 :6פום
+ 0חם
0 6 66 0סף חהוסף ' | =אס)!סעסוז.פחהזדעו
מס |
6 ₪6 הַחופסו6 ' 6.פ דעו
6
וחו\ סח
החסטסחט= 6חם
0 282 97 400658 - סדנת לימוד
הסבר: בתוכנית קיימיס שני סוגי תנועות: אחד המצביע על הוספת לקוחות חדשיס
(קוד '"8'י), ושני המצביע על מחיקת לקוחות (יי0'י). נעבור דרך התנועות אחת-אחת
בעורת הפקודה %א6צ6טסו!.פח8זדעו/ עד לסוף טבלת התנועות (0₪.פח8זדעוש).
נפעיל 586% על טבלת לקוחות לפי המפתח הראשי, ונשווה אותו למספר הלקות
שנמצא בתנועה. אס פקודת 588% אינה מצליחה למצוא רשומה בעלת המפתח הדרוש
(6טזד = ח0ז8וסאז), וקוד הפעולה הוא 8 עבור הוספה, ניתן להוסיפה על בסיס נתוניס
בתנועה. אס פקודת 586% מאתרת רשומה בעלת מפתח דרוש (8!56= = חסזהוסא)
וקוד הפעולה הוא 0 עבור מחיקה, ניתן למחוק אותה מטבלת לקוחות.
תוכנית 433: דוגמה מסכמת לעדכון סדרתי.
5 | 560 הטוע ַחו|068 הסחעו 5860005ח8ט ' ()33ג הסטסחט=
זה 1|6 60 06חבח % ח65ס זט ,063 |68ח06 6 פסעוס פורס '
.6005 זסזוס 806 א 0065 זסח 60% 06 ססות 16 '
6 58 טסע חחוס
60070560 5 עסו ,66070506 5 חבז דש ,00070566 5 אה ושוא חחוס
5 52חה דעו
5 והטהפחהזד , והטתספט6 וחוס
חן 5 660005% ,35 ךסו חחוס
(8%808565)0. (808065)0אזסש/.6תופַח כ = טסץו] 56
(8560 00006 ,"586005 ד" )56% 660 הסקס. טסץוי] = 2פחה דוי 56%
(6| 3 דה ,"5005" )056 660 הסקס. טסץוא = א8 ו 56%
05 00500] 68]|60 116 שח 8 768005 "זר 1560ו6]" סו סספט)עצ6 :מ
(30|6 00006 ,"זר 500" 600056 הסקס. טסיא = צוסצץ 56%
"ץשאזהוחוזק" = אססח1.אה וש :8
"[10ו6ח6500]" = 52.506ח8זדץו] :6
(8560 06 6600560000 חק 0. 52ח8ז דיו = פחה דוו 56%
%זוחסעסוז.אה ועו :ס
+זן|סעסו.פחבזדדץו :=
[10ו6 ו 5!]0500חה ד = והטהפחהוד
[ 610 500ו] !אה | = הוהט60500
צוסץ תסו
9 = 050 0חג 9999 = הוהטחפחפזד |טחנ סס
חס ד ההטהפחהזד > והטחלפט0 +[
0
[10ו6 ו 0ל05]!א3 ועו = [סדוסותסספ0]!
[06ח8 350% |זס 0500 ]1ב |/ו = [36 35 הס 0ס05]!
[60אוסץ6חסוז] !אה וע = [ 60עטסעסחהסוז!
[ווחו 0ו60ז] !אה וש = [זוחחו וס6ז0]!
=דהסקט.
1 = 660005%ו]
החד ההטהפחהז ד < והטחל05 )561
1 = 305 ד660ו]
החד "ה" = [6סץ ד ח58600חה ד !פחה ודו זז
פרק 5: שפת שאילתות סטנדרטית (.501) | 161
0
[10 5006 ] !5חה דש = [ס1וסו ]ו
56 35100500 דעו = 350306 6 5%0ט6!
=זהסקט.
6
"זסזזם 00" לחוזק. פטססס
+ 0חם
|6008 זה 00 פההסוח' 156
06 685 6" הסחד "6" = [6סץ 0 5860חה ד] !פחה ו דעוו +
0 06 צץו|6הוחססטב ||ו 0 '
0
[ 50060 ]!5חה דש = [1סות סספ0]!
[806 350% |השרח 0500 ] !אב | = [36 35 זרת 0ס5]!
[60ץ6חסו ]!5ח3ז דעו = [ 60עטסעסחסו!
[ ו 076010 ]!5ח3ז דיו = [6ורחו ו60ז]!
=זהסקט.
|608 חסחצ ₪ זס 6 = ץוחס ח68 ' ₪56
"זסזזם" +חוזק. 600 הסחחד "6" <> [6קץ דח58600ח3זד] !חפ דעו +
+ 0חם
1 = 000005%]
1 = 305 ד060]
+ 0חם
החד 4660005%] סח -0ם.אה ועו אסא זז
%אס)סטסו. אש ועו
0 = 060005
החד -0ם.א ועו אסא זז
[10ו6וח0ל3!]05 [ץוא = והטר50
6
9 = 6050
+ 0חם
+ 0חם
חס ד 85 16607 0חג -0ם.פחה ו דץויז אס זז
+אססעסו]. 5חהדדעוו
0 = 805 16607
הסחד -0ם.פחה דעו אסא זז
[10 0506 ] !חבז דץ] = התהטתפחפודך
6
9 = והטתפחפודך
+ 0
0
קסס |
5 6 פַחו5ס!6 ' 6.פ דע
6 .א ועו
6
הזו\ סח
חסטס6חט= 6ח=
2 282 97 400685 - סדנת לימוד
בדוגמה וו נעבוד עס 3 טבלאות, כדלהלן:
טבלת תנועות - טבלה שמחזיקה 3 סוגי תנועות: הוספות (י'8'י), מחיקות (ייס')
ושינויים (ייסיי). טבלה זו אינה מסודרת לפי מספר לקוח. כדי לבצע עדכון סדרתי,
טבלת התנועות וגס טבלת הלקוחות חייבות להיות מסודרות לפי מספר לקוח.
לכן, נפתח טבלה זו כקבוצה דינמית, ונקבע את המאפיין 50 כמספר הלקוח.
טבלת לקוחות - קבוצת רשומות מסוג טבלה.
טבלת לקוחות חדשה - בעדכון סדרתי לא מתקניס את הטבלה חישנה, אלא בוניס
טבלה חדשה עס התיקוניס הדרושיס.
עובריס על הטבלאות בעזרת פקודת %א6צ61צסו/! שעובדת על כל סוגי קבוצות רשומות.
בקבוצות מסוג טבלה מתקדמיס לפי האינדקס הפעיל, ובקבוצות דינמיות לפי סדר
החזקת השאילתה.
שורה : בניית טבלת לקוחות חדשה על ידי קריאה לשיגרה.
שורה 5: קביעת האינדקס עבור קבוצת הרשומות מסוג טבלה, טבלת הלקוחות.
שורה 6: קביעת סדר המיון עבור קבוצת הרשומות מסוג דינמי, טבלת התנועות.
שורות 5,₪ם: מעבר לרשומה הראשונה. שלא כמו פקודת +9זו0חו=, פקודה זו אינה
מאפשרת תנאים, אלא מעבירה אותנו לרשומה הראשונה לפי הסדר השוטף.
בשאר התוכנית נעבור דרך שתי הטבלאות המסודרות לפי מספר הלקותח. בכל פעס
שרשומת התנועות קטנה מרשומת הלקוחות, נוסיף את הלקוח ברשומה זו לטבלה
החדשה. כאשר רשומת התנועות גדולה מרשומת הלקוחות נעתיק את רשומת
הלקוחות לטבלה החדשה. בכל פעס שרשומת התנועות שווה לרשומת הלקוחות, נבצע
את התיקוניס הדרושים, ונעתיק את הרשומה המתוקנת לטבלה החדשה.
תרגיל 43:
לבית הספר מצטרפים תלמידים חדשים, אחרים עוזבים, ולפעמים
פרטי תלמידים משתנים, למשל כשהמשפחה גדלה. כתוב שיגרה
שתקלוט את סוג הפעולה (מ' עבור מחיקה, ה' עבור הוספה, וש' עבור
שינוי), מספר הזהות של התלמיד, ופרטים נוספים, אם מדובר על
הוספה או שינוי.
תרגיל 44:
הכן טבלת תנועות עבור הדוגמה הקודמת, ובצע עדכון סדרתי.
תרגיל 45:
כתוב שיגרה שמאפשרת הוספת רשומות לטבלת השאלות מתוקנת.
בדוק שאין שגיאה כאשר נרשמים שם ומספר השואל, כלומר, לאמת
על ידי בדיקה בטבלת סטודנטים שהשם שנרשם מתאים למספר
שנרשם.
פרק 5: שפת שאילתות סטנדרטית (.501) | 163
פעולות על תחומים
יש פעולות המיושמות על קבוצות רשומות הנקראות תחומים (פחווחסכ). בסיס
התחוס הוא טבלה או שאילתה, אך בתוך הפקודה, אפשר לעדן יותר את התחוס.
פעולות אלו מבוצעות בעזרת פונקציות תחומיס שצורתן הכללית היא כדלהלן:
([16018ז6, ] חוה רחס ,חהסו655זקא6) סרהה הסטסחו
הסבר: סח חסוזסחו1 - אחת מהפונקציות דלהלן:
צ06זפס 3 זו 3 זטס0ס 4 וחט5כ 3
זהּם 3 כשאססוס 3 פס 2
פונקציות אלו יוסברו בליווי דוגמאות.
חסו855זסאם - השדה או שילוב שדות (ביטוי) שעליו נרצה להפעיל את הפונקציה.
חוחס0 - טבלה או שאילתה ממנה נשאב נתונים, ועליה נרצה להפעיל את הפונקציה.
זוז - התנאי שלפיו נרצה שתפעל הפונקציה.
תוכנית 434: דוגמה לפעולות על תחומים.
()34 חסטסחט=
,0006ח1 5 60308חסחק ,חַח5071 45 סחהסחק ,35006 | ,6ח0ספזו= וחוס
סז 45 עסחסו60ס
606 66 35 |[ 35 6החבּח 3016 סח +8חל ססס חס
0% 6 ]| 66א86זס ץכ 60סחטסזט5 06 0+ סטב +'חסס החסה
.6 חוב%חסס וחס
("ירושלים'= 6" ,"6056000015" ,"[60 חס ]" )הס = שסחסוססאוס :ה
ץסחסוז60צוס 8 " 15 ירושלים חז ז6טוחטח |69סל סח ד" אס8ט5וו
("ירושלים'=6" ,"5ז6ר 6500" ,"[60עוסץ6חסו ]" )5 = שסחסווססאוס :₪
6 חסו 60 וס .8 " " ₪ "ו ירושלים זסז סוס +הטסוחה !03 סז" אס8ס5וו
("675ר1500ו" ," [ 60עוץ6חסו ]")רתט5 = שסחסוו60אוס :6
סכ 8 " " 8 "5 סוס +חטסרחה |003+ 6ח6" 580%
("'ירושלים'=/0ו6" ,"5ז56000ש6" ,"[60שוסששחסויז]")חוויז = ע6חסווסטצוס :ם
ץ ]60 ₪ " " .8 "וז ירושלים זס? 66אוס +הטסוחה התטוהוחורח 6ת)" 15080
('"ירושלים'=ו6" ,"5זסחסס5ט6" ,"[ שו ץשחסוו]")אפיוש = ע6חסוזססאוס :=
ץחסו 060 ₪ " " ₪ "5 ירושלים זסז סוס +הטסרחה החטוואהוח 6חז" אס8ט5וו
('"ירושלים'=/6ו6" ,"זפ ח500ט6" ,"[ 60אוסץסחסוז]")פהכ = שסחסויזססאוס :=
ץ6 ]060 ₪ " " .8 "5ן ירושלים זס? 66אוס זהטסוחה 6הַבזסעב3ּ סחז" אס ס5וו
('"ירושלים'= 6" ,"5זסח0ס5ט6" ,"[ 60 ץ6חסוז]")50 = ץסחסווססאוס :6
ץ 0600 ₪ " " .₪ "5 ירושלים זס? 60 וס זהטסוחה זס הסו80וש06 50000870 סחז" אס ס5וו
("ירושלים'=ו6" ,"5זסחס56ט6" ,"[060ץ6חסוז]" )506 = ע6חהסווססאו :₪4
ץסחסןי60 או ₪ " " ₪ "15 ירושלים זסז וס +חטסרחהבּ ]0 חס800וש06 0870ח5%3 הסטה!טססס שתז" אס ספמ
6סווה/ה 15 ס6חהוזהּע זסז קזהצכ חב זפטכ 50 וחסה
("5 00500" ,"3501036 הז רת05%0")זו-כ = שחכספזו :ז
4 82 97 400088 - סדנת לימוד
("075 001560" ,"| 350106 05606 ]" 35 1 = 6ח18500 :3
6 זו 8 " "8 "זר 6500 זו 66 15 וח ד" אס8 5
5006 | 8 " " ,8 "60500 35%| 606 5 וח ד" 580%
(""תל אביב'=[ו6] זס 'ירושלים'=0ו6" ,"60560015" , "ס509 6 ח85)"0500 1 = 85006 | :6
135006 8 " " ₪ " תל אביב זס ירושלים חו זסוחס0פט6 95%! 06 15 פוחז" אס ס5וו
('"נחמני'=86 35 05006" , "זר 6500" , "[זססוחטצסחהסתק]")קטאסס ₪1 = 6חסתק :1
6חסחק 8 " ".8 "נחמני 0 זסטהטח סהסהכ 606 5 וח ד" אס8 54
0 '(03)'= < [ טר טס תסתק]" ,"5%" ,"[ זסטרתטוצסהסתק |" הטס60כ = 60308חסחק :ו
("(08)'= >[ז6ט וחט)!6חסחק]
8 8 " ".8 "5! 60065 הזה 03-08 0 זסטרטח שח ד" א5480!
חסטסחט- 0חם
שורה ג : +חטס00כ סופרת את מספר מופעי הביטוי, במקרה זה השדה [80עוכ)ע6חסוש]
מטבלת 009%070675, כאשר העיר היא ירושלים. אס הביטוי מכיל 11()א ברשומה
מסוימת, הרשומה אינה נכללת בספירה. אם נכתוב * במקוס ביטוי, כל הרשומות
תיכללנה, גם אס יש 1 1(\ באחד משדות הרשומה.
שורה 5: הפונקציה וחט5כ מחשבת את סכוס הביטוי במסגרת התחום. בשורה זו
נחשב את סכוס חובות הלקוחות מירושלים.
שורה 6: נחשב את סכוס חובות כל הלקוחות.
שורה כ₪: הפונקציה חוסש מחשבת את הערך המינימלי של הביטוי במסגרת התחוס.
בשורה זו נחשב את החוב המינימלי של הלקוחות מירושליס.
שורה =: הפונקציה א1/|8ס מחשבת את הערך המקסימלי של הביטוי במסגרת התחוס.
בשורה זו נחשב את החוב המקסימלי של הלקוחות מירושליס.
שורה =: הפונקציה פָכ מחשבת את הממוצע של הביטוי במסגרת התחום. בשורה
זו נחשב את ממוצע החוב של הלקוחות מירושליס.
שורה 65): הפונקציה צ05%086 מחשבת את סטיית התקן של הביטוי במסגרת התחוס.
ההנחה היא שבנינו מדגם של האוכלוסיה שעבורה נרצה לחשב את סטיית התקן.
בשורה זו נחשב את סטיית התקן של חוב הלקוחות מירושלים.
שורה 4ז: הפונקציה קש05106 מחשבת את סטיית התקן של הביטוי במסגרת התחוס.
ההנחה היא שכללנו בחישוביס את נתוני כל האוכלוסיה שעבורה נרצה לחשב את
סטיית התקן. בשורה זו נחשב את סטיית התקן של חוב הלקוחות מירושלים.
שורה |: הפונקציה +₪₪18 מאתרת את המופע הראשון של הביטוי בתחוס המוגדר.
בשורה זו נאתר את שס משפחת הלקות הראשון בטבלה.
שורה 4: הפונקציה +88 ₪1 מאתרת את המופע האחרון של הביטוי בתחוס המוגדר.
בשורה זו נאתר את שס משפחת הלקוח האחרון בטבלה.
שורה 4: שימוש בפונקציה +₪1.8% לאיתור שס משפחת הלקוח האחרון בטבלה שהוא
או מירושליס או מתל אביב.
פרק 5: שפת שאילתות סטנדרטית (.50/1) | 165
שורה 1: הפונקציה סנואסס ₪1 מחזירה את ערך הביטוי כאשר מתקייםס התנאי הנקוב.
התנאי אמור לקבוע רשומה ספציפית, ואס כן, ערך הביטוי הוא חד-משמעי. אס יש
מספר רשומות המקיימות את התנאי, נחזיר את ערך הביטוי ברשומה הראשונה
שמקיימת אותו, ואס אין רשומה המקיימת את התנאי, נחזיר ערך ווטא. בשורה זו
נאתר מספר טלפון של לקוח בשם נחמני.
שורה : נאתר את מספר הלקוחות שקידומת מספר טלפון שלהם היא בין 03 ו-08.
5
ָ
טְ
תרגיל 46:
כתוב שיגרה המבררת מה מספר העובדים הירושלמיים.
תרגיל 47:
כתוב שיגרה המבררת מה מספר העובדים הזכרים שגרים בירושלים.
תרגיל 48:
כתוב שיגרה המבררת את ממוצע מבחני הכניסה של העובדים.
תרגיל 49:
כתוב שיגרה לאיתור ממוצע מבחני הכניסה של העובדים הירושלמיים.
תרגיל 50:
כתוב שיגרה המבררת את הציון המינימלי במבחני הכניסה לעובדים.
תרגיל 51:
כתוב שיגרה לאיתור הציון המינימלי במבחני הכניסה לעובדים זכרים.
תרגיל 52:
כתוב שיגרה לאיתור הציון הממוצע של תלמיד שאת שמו נקבל כקלט.
תרגיל 53:
כתוב שיגרה המאתרת ממוצע וסטיית תקן של מספר הילדים
במשפחות תלמידי בית הספר.
תרגיל 54:
כתוב שיגרה המחשבת את סכום מספר הילדים במשפחות כל
התלמידים בבית הספר.
03389 3, 3-59
6 282 97 400685 - סדנת לימוד
[|
פרק (6
ניפוי תוכניות
מבוא
מטרת הנפפול (טְחופֶחָטפ6כ) היא למצוא את מקור הבעיה כאשר תוכנית אינה מחזירה
את התוצאה הרצויה. כלי ניפוי ב-₪460655 מאפשרים לנו לעשות את הדברים הבאים:
לעבור דרך התוכנית צעד צעד, ולבדוק בכל שלב את מצב התוכנית.
3 לקבוע נקודות עצירה (9!ה|0קא88%זם) כדי לעצור את התוכניות בנקודות
מסוימות, או כאשר ערך משתנה כלשהו משתנה.
לעקוב אחרי שינוייס בערך של כל משתנה במשך התוכנית בחלון הניפוי.
= להקליד פקודות ישירות לחלון הניפוי, כדי לבדוק היבטים מעניינים של סביבת
התוכנית, להריץ שגרות, וכולי.
קביעת נקודות עצירה
פתח את המודול שנקרא 16558065!, והבט בפונקציה חחזוחס0.
תוכנית וחזו1ח60:
הה800|6 25 (0ח50 5 50711655306)ותזוהס6 הסטסחט- סווסטק
6 5( 6סוסת5ץם הזופ :1
(6 סח 60 ,661ח8 0060 + הסטפסט 0 ,5071655806)א0סם 50 = 6סוסתץס :2
חס ך א פע = 6סוסח0ץפ ]1 :3
6 = ה זההס00 :4
5: 6
6 = זה ה 00 :6
7: 0 +
חסססחט 0חם :8
פרק 6: ניפוי תוכניות | 167
הפונקציה מציגה הודעה מסוימת בתיבת הודעה (א9980/!), ואם המשתמש לחץ על
אישור היא מחזירה את הערך 6טזד, אחרת היא מחזירה את הערך 8|856=. בצע את
הצעדים הבאים :
1
קבע נקודת עצירה בשורת הכותרת של הפונקציה על ידי לחיצת הלחצן המתאיס
בסרגל הכלים, מתפריט אתר באגים (ה0ַט60כ) בחר החלף מצב נקודת עצירה
(0חוס7א68זם שְופָפֶסד), או הקש 9: כאשר הסמן נמצא בשורה הראשונה.
פתח את החלון לאיתור באגיס על ידי לחיצת הלחצן המתאיס בסרגל הכלים,
בחירתו מתפריט תצוגה, או הקש 60.
בחלק התחתון של החלון הקלד:
("4 6זה 2 0ח3 2") וחזהחס6 ?
והקש ז%0ח=. שיס לב שהפונקציה עוצרת בשורה 1 שמסומנת בצהוב ובתצ.
התקדם צעד צעד בלחיצה על הלחצן צעד לתוך (סוח! ק5%6) שבסרגל הכלים.
התקדם לפקודה 1 אך על תעשה דבר, משוס שפקודה 1 אינה פקודה ביצועית, רק
פקודת הצהרה. המשך לפקודה 2 ולחץ שוב על הלחצן, ההודעה תופיע על המסך.
לח על אישור, והשיגרה תתקדם לפקודה 3. בפקודה 3 לאחר הלתחיצה הבאה על
צעד לתוך, תתקדם לפקודה 4 (משוס שהתנאי בפקודת =! מתקיים). לחצ שוב
ותתקדס לפקודה 5, אך בלחיצה הבאה תגיע לפקודה 7. המנפה דילג על פקודה 6,
משוס שהתנאי אינו מתקיים ולכן אין צורך לבצע אותה.
המשך ללחו על הלחצן עד לגמר הפונקציה. בנקודה זו חלון איתור הבאגיס חוזר
ומופיע. אך גם לפני סיוס ביצוע הפונקציה אפשר להפעילו בכל עת. בחלק העליון
של החלון תוכל לראות את הערכיס הנוכחיים של כל המשתנים המקומיים
המופיעים בפונקציה.
סגור את החלון והורד את נקודת העצירה על ידי בחירת נקה את כל נקודות
העצירה (%5ח2768%01 || ז0!63) מתפריט אתר באגים.
מעבר משיגרה לשיגרה: השיגרה 4007655865 קוראת לפונקציה חזוחס0.
תוכנית 200765565:
טחהחב/ 35 210 |ההססק 0 ,8ַחו50 45 00765505)2007055 סטפ 6וופטק
חהס!ססם 35 000%ס הזופ :1
חסחדד (0)210חו55ו15%1 +1 :2
("?006זוה .210 06 80%זס+ טסצ")וחזה הס60 = 000% | :3
חסחד א0ססס )סא זז :4
("סט|8ע 210 זס%חם")אספלטקח1] = כו2 5
6: 0]
7: 0
ספ 0חם
8 28₪/ 97 400088 - סדנת לימוד
נקבע נקודת עצירה בשורה 3. נריץ את השיגרה מחלון איתור באגים על ידי הקלדת
הפקודה:
68|| (00765565 )"111 ]672["(
השיגרה תרוצ ותעצור בשורה 3. בנקודה זו אפשר ללחוץ על הלחצן צעד לתוך ולהיכנס
לפונקציה חזו1ח60, או ללחוצ על צעד מעל פטס 5000) ולבצע את הפונקציה
החזוז חס (אך לא לצעוד דרכה) ולהמשיך עס הפקודה הבאה שבשיגרה 007865565.
נניח שבחרנו צעד לתוך. במקוס להמשיך צעד צעד, עבור לשורה 8 בפונקציה, לחצ
לחיצה ימנית ובחר הפעל עד לסמן (זספזווס סד ס516). בדרך זו יש אפשרות לדלג על
מספר פקודות. כאשר השורה האחרונה הופכת צהובה, אפשר להמשיך עס צעד לתוך,
עד לסיוס השיגרה.
צפייה במשתנים
אפשר להפעיל צפייה על כל משתנה או שדה בטבלה. צפייה מהירה במשתנה מציגה את
ערכו הנוכחי. מקס את הסמן בשורה 1 של השיגרה 400785585, על משתנה 06ססם,
ולחצ על הלחצן צפייה מהירה (ח8%0// 1ח%9פח!) שבסרגל הכלים, או בחר צפייה
מהירה מתפריט אתר באגים. שס המשתנה יופיע בחלון, וכאשר תצעד דרך התוכנית,
ערך המשתנה יעודכן (ישתנה) בהתאס לשלביס שבתוכנית. כדי למוחקו, בחר בו בחלון
איתור באגיס והקש |8.
נציג דוגמה שנייה על ידי ביצוע הפונקציה ח816//. נתקין נקודת עצירה על הפקודה
| +חוזס. פָטפספכ, ונגדיר צפייה מהירה במשתנה |. נוכל להפעיל את הפונקציה על ידי
לחיצה על הלחצן לך (5=), ואחר על הלחצן חלון איתור באגים (0*) כדי לראות את
הערך המעודכן של |. אפשר להמשיך כך בהקשת 5= ו-6" לסירוגין, ובכל פעס נבדוק
את הערך המעודכן של | בחלון, עד לסוף הביצוע.
3359 33 3-9
פרק 6: ניפוי תוכניות | 169
פרק 0
חיבור לטפסים
בניית מסד נתונים
לפני שנשתמש בקוד כדי לשפר מסד נתונים, יש צורך במסד נתונים. נשתמש באשף
מסדי נתוניס כדי לבנות אותו. פתח את 60885 ובחר אשף מסדי הנתונים. בחר את
מסד הנתוניס בשס /1ח= ז08ז2), ולחץ על אישור, מקס אותו במקוס רצוי ובחר צור
(076810). לח על הבא, בחר לכלול מדגס של נתונים, ולחצ שוב על הבא. בחר צבע,
סגנון ושס ולחצ על סיום.
בניית לחצן להוספת רשומות
בטופס שמוצג ברצוננו להוסיף לחצן שיאפשר להוסיף רשומה באופן מיידי, מבלי
לגלול עד לסוף הנתוניס. בצע את הצעדיס הבאים:
1
ממסך הניווט (0זהספחס)ו/שפ) שיוצג בחר הזן/הצג מידע אחרו, ואחר בחר
הזן/הצג עובדים.
עבור למבט עיצוב על ידי בחירת תצוגת עיצוב מתפריט תצוגה.
בארגז הכלים, כאשר אשפי הבקרה מופעלים, לח על לחצן פקודה, וצייר לחצן
על הטופס.
במסך הראשון של האשף, בחר בצד ימין פעולות רשומה (5ח0ו2061791) 70ז1600),
ובשמאל בחר הוסף רשומה חדשה (₪600170 שפא 00) ולחצ הבא.
בחר תמונה ולח על הבא.
בחר את השס 2004660706 עבור הלחצן, ולחצ סיום.
סגור את הטופס על ידי לחיצה על לחצן שמאל (א בפינה הימנית העליונה) ושמור
את השינוי.
פרק 7: חיבור לטפסים | 171
.0 הערה:
אם בשלב כלשהו תצא מהיישום וכשתחזור אליו מסך הניווט לא יוצג,
עבור לכרטיסיה טפסים, בחר 0ז803חסזוש5 ולחץ על פתיחה. בחר
שוב הזן/הצג מידע אחר, ואחר בחר הזן/הצג עובדים. בטופס שיוצג
תראה את הלחצן החדש ותוכל להפעילו.
שיפור הלחצן להוספת רשומות
כאשר נוסיף רשומה חדשה בעזרת הלחצן שבנינו, הסמן לא יעבור לשדה הראשון ויש
צורך למקמו ידנית. השדה הרצוי הוא שם פרטי. בתצוגת עיצוב של הטופס שנה את
שס הפקד שם פרטי ל-6ח8ז9זו= (קל יותר לעבוד עס שמות באנגלית). עבור ללחצן
0 לחצ לחיצה ימנית ובחר אירוע בנייה (1חפע₪ 6ווטם). לאחר פקודה 1
הוסף את פקודה 2:
ה , ,| 066070 ]0.60ו6סכ :1
.ו :2
הסבר: הפקודה הראשונה שייכת לאובייקט 0חח6ס, והיא נכתבה על ידי האשף כדי
להפנות אותנו לרשומה חדשה (למשמעות הפרמטר ש364600701%6, עיין בעזרה).
הפקודה השנייה מעבירה את המיקוד לפקד שנקרא כעת 8ח918זו=.
שינוי מצב טופס עובדים ל"קריאה בלבד"
במבט עיצוב של הטופס עובדים לח פעמיים על ריבוע בחירת הטופס בפינה השמאלית
עליונה של הטופס כדי להציג את מאפייני הטופס. עבור לכרטיסיה נתונים ובמאפיין
אפשר עריכות (9זו0םצוסו|4) בחר לא. כעת אי אפשר לערוך את הטופס.
אך אנו רוציס לאפשר ביצוע עריכה על ידי לחיצה על לחצן. בארגז הכליס כבה את
הלחצן אשפי בקרה, בחר לחצן פקודה ובנה לחצן. סמן אותו, לחץ לחיצה ימנית ובחר
מאפיינים. במאפיין שס הקלד 0/)466070ם, ובכיתוב הקלד 8ערוך רשומה, המאפשר
לנו להקיש על ע++|4 במקוס ללחו על הלחצן.
כדי שהלחצן ייאפשר עריכה, לח שוב לחיצה ימנית, בחר אירוע בנייה, ואחר בונה
קוד. בחלון הקוד שיופיע הקלד:
6זך = ות ששסו|ת. 6
...ו
הסבר: השורה הראשונה מאפשרת עריכה, כלומר היא משנה את ברירת המחדל
שקבענו, עד למעבר לרשומה חדשה.
2 8₪/ 97 200088 - סדנת לימוד
בניית לחצן לשמירת רשומות
ברצוננו להוסיף לחצן שיאפשר לנו לשמור רשומה באופן מיידי, מבלי לעבור לרשומה
הבאה או לסגור את הטופס. נבצע את הצעדים הבאים :
1
.2
מטופס הניווט בחר הזן/הצג מידע אחר, ואחר הזן/הצג עובדיס.
עבור למבט עיצוב.
בארגז הכליס, כאשר האשף מופעל לת על לחצן פקודה וצייר לחצן על הטופס.
במסך הראשון של האשף, בחר בצד ימין פעולות רשומה (005ו206181) ₪66010),
ובצד שמאל שמור רשומה (₪600170 58/6) ולחצ הבא.
בחר טקסט ואת הכיתוב שמור רשומה ולחי על הבא.
בחר את השס 460010 58/6 ולת סיום.
סגור את הטופס על ידי לחיצה על לחצן שמאל (א בפינה הימנית העליונה) ושמור
את השינוי.
ביטול אפשרות העריכה
ברצוננו לבטל את אפשרות העריכה בעת עדכון הרשומה הנוכחית או בעת מעבר
לרשומה אחרת.
1
במבט עיצוב לח פעמייס על הריבוע השחור בפינה השמאלית העליונה של
הטופס כדי לעבור למאפייני הטופס.
לחץ על הכרטיסיה א*רוע (וחסעם), בחר בנוכחי 0ח6זזטה0), בחר בבונה (...),
ובחר בונה קוד.
הקלד: 8]56-=6ו0ם צוסו|ה. סו].
העתק את הקוד שהקלדת בדרך המקובלת (%6).
מתפריט חלון, בחר עובדים:טופס.
במאפיין לאחר עדכון (0 0810א) לח על הבונה, בחר בונה קוד, ולחץ אישור.
הקש /* כדי שהקוד שהקלדת קודם יועתק למאפיין לאחר עדכון.
הוסף עוד פקודה: ".58/60 560070" אסם ספש.
פרק 7: חיבור לטפסים | 173
תיבה משולבת לאיתור רשומה מסוימת
ברצוננו להוסיף לחצן שיאפשר לנו לאתר רשומה כלשהי באופן מיידי, מבלי לסרוק את
הטבלה בצורה סדרתית. נבצע את הצעדים הבאים :
1. | מטופס הניווט בחר הזן/הצג מידע אחר, ואחר הזן/הצג עובדים.
2 עבור למבט עיצוב, מארגז הכליס, כאשר האשף מופעל, בחר תיבה משולבת.
33 בחר באפשרות השלישית (מצא רשומה בטופס שלי המבוססת על הערך אותו
בחרתי בתיבה המשולבת שלי). לחצ על הבא.
4 כאשר מוצגת השאלה איזה שדה להציג, בחר שם מוצר, ולחץ על הבא.
5 קרא לתיבה שם מוצר.
ניתן לשפר את השימוש בתיבה המשולבת במספר דרכים :
= להדגיש ולצבוע אותה בצבע השונה מיתר השדות המיועדיםס לקלט.
לבחור במאפייני התיבה המשולבת, ללחו על הכרטיסיה נתונים, ללחוץ על הבונה
ליד מקור שורה, ולהקליד בטור שכתוב בו שם מוצר את הביטוי:
ביטוי וה יאפשר לנו לראות בתיבה המשולבת את שס המוצר וגס את מספרו.
כאשר גולליס את הרשומה בעזרת החיציסם שבתחתית הטופס, שיס לב שהתיבה
המשולבת אינה מתעדכנת. הבעיה נוצרה משוס ששס התיבה המשולבת הוא
משולבת6. במאפייני הטופס כולו לחץ על הכרטיסיה אירוע, במאפיין בנוכחי לחץ על
הבונה, בחר בונה קוד, ומלא את הקוד דלהלן:
[קוד מוצר] = משולבת6
כעת, בכל פעם שקוד המוצר ישתנה (גם אס עברת לרשומה הבאה) תוכן התיבה
המשולבת ישתנה אף הוא.
צביעת התיבה בצבע שונה מדגיש את ההבדל בינה לבין השדות האחרים. אך כאשר
נגיע לשדה זה נרצה שיהפוך ללבן כמו כל שדה רגיל. נבנה קטע קוד שמטרתו לשנות
את הצבע של התיבה ללבן, ונדביקו לאירוע בעת הזנה (זס%ח= ה0).
נקליד את הפקודה הבאה בתוך השיגרה :
5 = ז000!0א6א2. משולבת6
כדי שהתיבה תחזור לצבעה כאשר יוצאיס ממנה, נדביק שורה מקבילה לאירוע בעת
יציאה 0וא= חס):
6 = 0010א2886. משולבת6
4 8₪/ 97 400088 - סדנת לימוד
סינון לפי טופס
כדי לבצע סינון לפי טופס בטופס מוצרים, לח על הלחצן המתאים בזמן שהטופס
פתוח. כדי להציג הודעה מלווה בהסבריס לשימוש בסינון לפי טופס עבור למבט עיצוב,
לחץ על הלחצן קוד, כאשר החלון נפתח, בחר וחזס= ברשימה הנפתחת משמאל למעלה
ובחר 11/18 ברשימה הנפתחת בצד ימין למעלה. בשיגרה שתיפתח הקלד:
הסח ד הזוס ץ0 361067 = שכץ דוסטוה +
"בחר את ערכי השדות. אחר כך, לחץ על הלחצן החל מסנן. " 5000
0חם
כעת, בכל פעס שנפעיל את המסנן נקבל הודעה זו. פקודת =! נחוצה כדי שההודעה לא
תוצג בכל סוג סינון, רק בסינון לפי טופס.
קבוצת אפשרויות לסינון נתונים
נוסיף את השדה 01% לטבלת עובדים. בטופס עובדיס נבנה קבוצת אפשרויות בת שתי
אפשרויות, הראשונה - 01065 ||4 (תקבל ערך 1, ותהיה ברירת המחדל), השנייה תהיה
אזסץ סא (תקבל ערך 2). נשמור את התוצאה לשימוש מאוחר יותר. במאפייני קבוצת
האפשרויות נקבע את שס הפקד כ: פחסוזסשזסוזוו=.
באירוע 161(00816 של קבוצת האפשרויות נכתוב את הקוד הבא :
החד 2 = פחסטפסהטטוו +
" וזסץ שס]' = סוס" = זססון.6!
סד = חסזססטוו. 6
56
6 = חסחססטוו=. 6
+ ₪0
הסבר: כאשר נבחרת אחת האפשרויות המשתנה 005ו000ז1!16= מקבל אחד מהערכיס
1 או 2. אם הערך הוא 2, נגדיר במסנו שהשדה 01% יקבל את ערך של אזסצ צופצו,
אחרת נכבה את המסנן. המילה 8 שווה לביטוי: 6והחהא ו זס-!פוזס=, כאשר הטופס
הוא הטופס שהקוד קשור אליו. המאפיין ₪91וו= מכיל את הגדרת המסנן, כאשר
ח0ז%6!ו=] מפעיל את המסנן כשערכו שווה פטזד.
עדיין קיימת בעיה. אס מפעילים מסנן אחר, קבוצת האפשרויות אינה משתנה וזה
מטעה. למשל, אס הפעלנו סינון לפי העיר 0ח016/8|3, תיבת האפשרות 010885 ||
תישאר מסומנת. כדי לשפר, נכתוב את הקוד הבא באירוע ז6ו!ו-]ח0ס של הטופס.
וט = פחסטססחססוו=
הסבר: שיגרה זו מופעלת כאשר מפעילים סינון לפי טופס. במקרה זה איננו רוציס
שהאפשרויות תופענה, מפני שסינון לפי טופס יכול להיות שונה מאחריס.
פרק 7: חיבור לטפסים | 175
קביעת ערכים כתוצאה מעדכון שדות
מסוימים בטבלה
נוסיף לטבלת עובדים את השדה שם למכתב, שמשמעותו היא כינוי שמשתמשים בו
בפתיח מכתב, ונוסיף אותו לטופס. עד להונת השדה נרצה שיקבל את הערך שנמצא
בשדה שם פרטי. באירוע לאחר עדכון (00816) זט0ה) של השדה שם פרטי נרשוס
את הפקודה הבאה:
הפחד ([שם למכתב]) |וטא5ז זז
[שם פרטי] = [שם למכתב]
+ 0חם
אס השדה שם למכתב ריק, הפקודה מעתיקה לשדה ה את תוכן השדה שם פרטי.
באותה דרך יכולנו להזין את העיר כתוצאה מהזנת הקוד האזורי, על ידי הוספת הקוד
הבא לאירוע לאחר עדכון של השדה 2|5:
הסח "44199" => 217 6חה "44100" =< 210 ]1
"06630" = וס
+ 0חם
הפעלת שגרות באמצעות צירוף מקשים
נניח שרוב העובדים גרים ב- אזסצ שפ. במקום להזין שוב אותו ערך נרצה לאפשר
קיצור דרך, למשל אס נקיש 0%11+1 הערך אזסץ שא ייכנס באופן אוטומטי, מבלי
שנצטרך להקלידו. נכתוב את הקוד הבא באירוע בעת ירידת מקש (חשוססץ6א) של
השדה עוכ):
הסח ד 366071856 = א1ח5 חב 6/1)אפע = 660006 וז
"אזסץ אוס)]" = 61
0חם
הקבוע 1/ץ6אסט מציין את קוד ||450 של הספרה 1, והקבוע 360185% מצביע על
המקש |%0ח60. קוד ה מאפשר שימוש בצירוף מקשים רק כאשר הסמן נמצא בשדה
שוס. ומה אס נרצה שיפעל מכל מקוסם! ניתן לסדר זאת על ידי ביצוע שני תיקוניס
קלים:
= באירועי הטופס כולו קבע מקש תצוגה מקדימה (שופוע8ז0ץ6א) ככן. שינוי וה
גורס לכך שלפני ביצוע השגרות הקשורות לאירועי שדה כלשהו, תהיה התייחסות
לאירועי הטופס כולו.
במקוס להדביק את השיגרה הקודמת לשדה עזו0, הדבק אותה לאירוע בעת
ירידת מקלש של הטופס.
6 ₪;8/ 97 200088 - סדנת לימוד
אימות נתונים
נניח שחובה להזין ערך בשדה המיקוד רק אס השדה צד1ו0 נכלל. במקרה כזה, נדביק
את הפקודות האלו לשיגרה לפני עדכון של הטופס כולו:
58 5 5011655806 וחוס
חן 35 פהססקסטסחו וחוס
6 5 ססוסח0סץפ וחוס
חסחד (210)ווצ15 שח (ד6)!וטא15 סו זז
?"שה אשְחהּ 53/6 .217 ז00ח6 %'ח0וו6 טס" = 50%/655806
0008066 + הסספסט0פע = פחסטקססחו
(5חסוק00ח! ,5071655806)א00 1150 = 6סוסתועם
חס ך |66חה6פע = 6סוסת0סץס זז
2-5
6 = |06ח68
+ 0
0חם
הסבר: כדי לבטל שמירת רשומה כאשר המיקוד אינו מוזן נחזּיר את הסמן לשדה 2!6.
הוספת ערכים לתיבה משולבת
נוסיף טבלה מדינות ובה השדות מספר אוטומטי ושס. נוסיף שדה 415 57 לטבלת
עובדיס, תיבה משולבת לטופס עובדיס שתאפשר להזין שס מדינה, ומספרה ייכנס
לטבלת עובדיס (להוספת שדות ופקדיס ראה פרק 6 בספר 97 466655 סדנת לימוד
מאת פרופ' אבא אנגלברג). באירוע התיבה בעת שלא ברשימה 180 |חווס) הקלד:
(ז5606ח1 45 ₪6500056 ,57100 25 8% 156 והטסצ! משולבת45 500 6זפעווק
58 5 5011655806 וחוס
6 5 0050070075 וחום
9 5 50500005 וחום
"?500005 01 16| 6 0ס) "8 2868 וס 8" 300 0+ +חפ/ט טסץ 56 טסץ 76" = 50055806
הסח ד (5071655806)חו 60 +
()%00ח6ז) = 005070615 56%
("מדינות")025070615.00606607056 = 50500065 56%
0 505
3 עס = [שם מדינה]!5%508005]
6
3-0 = 650056
6
ץ50|3ו0 86089577 = 65007056
+ 0חם
ספ סחם
פרק 7: חיבור לטפסים | 177
בשיגרה זו נוסיף את שס המדינה שהוזן לטבלת מדינות. למזלנו, מספר המדינה הוא
מסוג מספור אוטומטי, ולכן איננו צריכיס להוסיף אותו. אס מספר המדינה היה מסוג
מספר רגיל, היינו צריכיס להציג אסם)טסח! בשיגרה כדי לקלוט אותו, או אס קיימיס
פרטיס רבים להוספה, להציג טופס שלס לקליטת כל נתוני המדינה החדשה. את
השיגרה חחזו1חס0, נקליד במודול שנקרא קוד כללי, והוא ייראה כך:
!₪00 5 (0חו50 5 50711655306)ותזוהס6 הסטסשחט= סווסגוק
6 25 ססוסח0סץט וחוס
(6 רה סכה חסס ,661ה68א פע + הסספסט פע ,577116055806)א00 150 = 6סוסח6סץם
חסחד אטע = 6סוסת0ץם +
סד = זו הס
56
6 = ה הס
+ 0חם
החסטסחט= 6חם
איתור רשומה רצויה בעזרת תיבת דו-שיח
למדנו כיצד לאתר רשומה מסוימת בעזרת תיבה משולבת מהסוג השלישי. דרך אחרת
היא לבנות טופס דו-שיח שמחזיק פרטיס מזהיס של רשומות הטבלה. לאחר זיהוי
הרשומה, היא מוצגת בטופס.
1 בנה טופס ריק וקרא לו ז8ח6ק0. בארגז הכלים, כאשר האשף מופעל בחר תיבת
רשימה (א0ם 4188). במסך שמופיע, בחר: ברצוני שתיבת רשימה תברור את
הערכים מטבלה או משאילתא.
2 לח הבא ובחר טבלת עובדים. לחץ הבא ובחר את השדות (שס משפחה,
שס פרטי, עו0, ו-ק|2).
33 לח הבא והתאם את גודל העמודות על ידי לחיצה כפולה בראש כל עמודה.
4. לח הבא וקבע את תווית תיבת הרשימה כבחר עובד ולחץ סיום.
5 מקס את התווית במקוס הרצוי מעל תיבת הרשימה. כאשר הרשימה מוצגת, שיס
לב שסדר הרשומות הוא כפי שהוא בטבלה, כלומר לפי מספר הזהות שהוא
המפתח הראשי. כדי שיופיעו בסדר אלפביתי, עבור למאפייני תיבת הרשימה,
בכרטיסיה נתונים, במאפיין שורת מקור לחץ על הבונה. בתצוגת השאילתה
שתופיע, בעמודת שס משפחה ובשורה מיין, לחץ על הלחצן וקבע סדר עולה.
הטופס ותיבת הרשימה מהוויס תיבת דו-שיח (א0ם פָסוגוכ), כלומר תיבה שמטרתה
לאפשר המשך חלק של שאר התוכנית.
במצב הנוכחי יש בטופס מספר תכונות שאינן מקובלות בתיבת דו-שיח טיפוסית,
למשל לחצני ניווט ופסי גלילה. כדי להיפטר מסממניס אלה, בצע את הפעולות הבאות.
8 ;8/ 97 200088 - סדנת לימוד
עבור למאפייני הטופס כולו, בכרטיסיה תבנית מלא את הערכים הבאים:
כיתוב (חסו)087): עבור לעובד
פסי גלילה (2819 |!0ז50): ללא
בוררי רשומות (9זס)56!806 460070): לא
9
9
/
9 לחצני ניווט (פחסזזטם חסווְהּפָוטהּ!) : לא
מרכוז אוטומטי (ז18ח06סט): כן
4
סגנון גבול: דו-שית
כעת עבור לכרטיסיה אחר
= קבע את המאפיין מודאלי לכן. בחירה וו תמנע את האפשרות של לחיצה בכל חלון
מחוץ לתיבת הדו-שיח.
כעת נרצה ליצור מצב שכאשר המשתמש בוחר רשומה ומקיש זפזחם, או לוחץ לחיצה
כפולה על כניסה כלשהי, הרשומה תוצג אוטומטית.
נוסיף שתי שגרות באירועי תיבת הרשימה. באירוע בעת לחיצה כפולה נקליד את
השיגרה הבאה:
רשימה0 .8 "קוד עובד = ",,,"עובדים" וחזס-ח0.006וה6סס
בעורת פקודה זו אנו פותחים את טופס עובדיס כשהרשומה המוצגת היא וו שערך
שדה המפתח שלה: קוד עובד שוה לערך הנוכחי של תיבת הרשימה: רשימה0.
כדי שכך יקרה גס בעת הקשת הםזאם, נדביק לאירוע בעת לחיצת מקש
(01685ץ6א ח0)) את השיגרה הבאה:
החד הז 6 ץ6 אע = 6650 1
רשימה0 8 "קוד עובד = ",,,"עובדים" וחזס-ח60.006סס
+ 0חם
הסבר: אנו רוציס לעבור לטופס רק כאשר הקשנו על זפַ1ח=, ולא על כל מקש אחר,
ולכן נחוצה פקודת =|.
ברצוננו לאפשר בטופס חזרה לתיבת הדו-שיח. כדי לעשות זאת, כאשר האשף מופעל,
נוסיף לחצן פקודה ומתוך פעולות טופס נבחר סגור טופס.
פרק 7: חיבור לטפסים | 179
התקנת תיבת דו-שיח בצורה אלטרנטיבית
נניח שנרצה להשתמש בתיבת דו-שיח בצורה שונה. במקוס לגלול את הרשומות עד
לבחירת הרשומה הרצויה, נלחץ על לחצן בשס עבור לרשומה רצויה, שמייד נבנה.
העתק את טופס ז8ח08 וקרא לטופס שתדביק ז086חו-₪60070.
כדי שתוכל לעבור לטופס ז08ח460070-1, בטופס עובדים כאשר האשף מופעל, צור
לחצן פקודה, בחר פעולות טופס, פתח טופס וקבע הפנייה לטופס ז086חו-₪60070.
הכיתוב על הלחצן יהיה: 6עבור לרשומה רצויה.
כאשר האשף מכובה בנה בטופס ז06חו-₪66070 לחצן פקודה עס הכיתוב 6מצא
רשומה, והדבק את השיגרה הבאה לאירוע בעת לחיצה :
()06ו1 מצא רשומה פטפ סספּעווק
5 זז חחוס
6ח660705600!0ף. [עובדים ]!פותזס=] = 5% 56%
רשימה0 8 "קוד עובד = " זו 0חו.50]
5.006 = אזהוהא00.[עובדים]!פוחזס=
"ז 6600" ,והזס-36 056ו60.0סס
50 0ח=
הסבר: הפקודה 8חס|₪600705610 בונה קבוצת רשומות (נוספת) המבוססת על
הטבלה שעליה מבוסס טופס עובדים. היתרון הוא שלפעמיס נרצה לנוע בקבוצה זו
מבלי לנוע בטבלה המקורית. בדוגמה זו, לאחר איתור הרשומה המחזיקה את קוד
העובד הרצוי, שקובע את מספר הרשומה המוחזק בסימניה (6זהוחאססם.ז), נשווה
את הסימניה בטבלה המקורית לאותה רשומה. הפעולה גורמת למעבר אל רשומה זו
בטופס הפתוח. בנקודה זו נסגור את הטופס ז08חו-460070, הטופס המקורי עובדים
יישאר גלוי ויציג את ברשומה הנכונה.
נניח שנרצה לקבוע את הרשומה המתאימה לא רק על ידי לחיצת הלחצן מצא רשומה,
אלא גס על ידי לחיצה כפולה על הרשומה הרצויה בתיבת הרשימה. נדביק לאירוע בעת
לחיצה כפולה (א0ו!0 8|פטסכ ח0) את הקוד הבא :
(ז%606ח1 45 |06ח08)אסווסוט. רשימה0 500 6זפעוזוק
חסחד (רשימה0)ווטא15 +סא זז
6% מצא רשומה
+ 0חם
50 0ח=
הסבר: רישוס שס השיגרה 616% מצא רשומה גורס להפעלת השיגרה שתיארנו עבור
קביעת הרשומה הרצויה בטופס עובדים. הבדיקה ||טא8! תמנע את הפעלת השיגרה אס
בטעות תבוצע לחיצה כפולה על כותרת הרשימה ולא אחת מהכניסות.
0 82 97 400088 - סדנת לימוד
בומן בניית הלחצן מצא רשומה, במאפיינים, לאחר בחירה בכרטיסיה נתונים, קבע
את הערך של אפשר ללא. מצב זה ימנע את השימוש בלחצן עד שנבחר רשומה מסוימת
מתיבת הרשימה. כאשר נקבע את הרשומה, נהפוך את המאפיין אפשר לכן על ידי
הקלדת קטע קוד זה באירוע לאחר עדכון (0800ק ז6א) של תיבת הרשימה:
()00806(ז/ה, רשימה0 פטפ סזפטווק
6 = ססוסהּחם. מצא רשומה
ספ 0חם
כדי לאפשר ביטול בחירה, כאשר האשף מופעל צור לחצן, בחר פעולות טופס, סגור
טופס. כדי שהטופס ייסגר גס בעת הקשת 50806, במאפיינים בכרטיסיה אחר, קבע
את ערך ביטול לכן.
שימוש בתיבת דו-שיח בדוחות
בנה דוח אוטומטי שמבוסס על טבלת עובדים וייקרא עובדים. פתח את הדוח במבט
עיצוב, הצג את מאפייניו ולח על הכרטיסיה נתונים. במאפיין מסנן (ז6ווו=) רשוס:
"0ח0|]8ש016" = עזו0ס, ובמאפיין המסנן מופעל (70₪ז9ו=) רשוס כן. אס תציג את
הדוח לפני הדפסה, תראה עובדים שגריס ב-016/9|800 בלבד. בצורה זו אפשר לסנן
את הנתוניס בכל דרך שהיא, אך תהליך הסינון דורש מעט ידע ב-460855 ולא ראוי
לדרוש ידע כזאה מהמשתמש. בנה תיבת דו-שיח כדי לאפשר למשתמש לבצע סינון.
העתק את הטופס ז8ח6ק0 וקרא לטופס שיודבק פז6אזס/. הסר את תיבת הרשימה,
ובנה קבוצת אפשרויות בת 3 אפשרויות: כל העובדים, עובדיס מ-0ח018/8!8 ועובדיס
מ- אזסץ שש6)]. בתחתית הטופס מקס 3 לחצניס, הדפס, הצג לפני הדפסה ובטל. את
הלחצן השלישי בנה בעזרת האשף ובחר פעולות טופס, סגור טופס. הדבק לאירוע בעת
לחיצה של הלחצן הדפס את הקוד הבא :
509 45 זש!ו- 507 וחוס
66 6856 56|605
6896 2
0חה !עס = ו" = !507
3 6896
'"אזסץ עוס' = וס" = זטוו57
6% ס6חם
חס ד 1 = ₪606 זז
"עובדים" +60 ח6ק0. וחספ
6
וו 50 , ,וההחזסז6ה ,"עובדים" +60 הסכס. הס
+ 0חם
אס המשתמש בחר באפשרות הראשונה יודפס דוח רגיל. כדי לאפשר לו לבחור
באפשרות השנייה או שלישית, הגדר מסנן וכלול אותו בפקודת +'סק46 ח6כ0.
פרק 7: חיבור לטפסים | 181
הקוד והה גס עבור הלחצן הצג לפני הדפסה, אך בפקודת 0%ק348ה6ק0 במקוס
הפרמטר |חזס\ס8 שמציג דוח רגיל, הקלד 8678/16 שמציג הצגה מקדימה שלו.
הצגת טבלאות קשורות
בנה טבלה חדשה הקשורה לטבלת עובדים שתיקרא טבלת משכורות. בטבלה זו
השדות הבאים:
-
שש > >
מספר עובד
שנה
חודש
שכר
מס הכנסה
ברצוננו להציג טבלת משכורות יחד עס טבלת עובדים, כך שנוכל לראות את משכורות
עובד מסויס יחד עס פרטיו. בנה טופס אוטומטי, טבלאי, עבור טבלת משכורות על ידי
לחיצה על הלחצן אובייקט חדש שבסרגל הכלים. גס לטופס החדש קרא משכורות.
כדי שתוכל לראות את טופס משכורות יחד עס טופס עובדים, קבע את המאפיינים
הבאיס של טופס משכורות כדלהלן:
1
לח על מאפיינים, אחר, וקבע מוקפף (סטקסם) לכן. טופס מוקפצ יופיע תמיד
מעל כל הטפסים האחרים הפתוחים. אם נציג גם טופס עובדים וגם טופס
משכורות, טופס משכורות יישאר מעל ולא יכוסה.
לח על תבנית (81חזזסת), וקבע תצוגת ברירת מחדל (ש15013כ :61801כ) כטפסים
רציפים (פטסטחוזחס0).
בחר בכרטיסיה נתונים (מ81כ), אס אין ברצונך לאפשר שינוייס בטופס משכורות
שיופיע עבור כל עובד, קבע אפשר עריכות (19ו0םעוסו|), אפשר מחיקות
(5ה0ו6!61כ שס!|ג) ואפשר תוספות (5ח0וו00/שצסו|ה) ללא.
בנה לחצן פקודה בעזרת האשף כדי לסגור את הטופס.
כעת חזור לטופס עובדים. בנה לחצן פקודה בעורת האשף ופעולות טופס כדי
לפתוח את הטופס משכורות, כאשר הקשר בין הטפסים הוא מספר עובד בטבלת
משכורות, וקוד עובד בטבלת עובדים.
כדי לגרוס לשינוי בתוכן טופס משכורות בעת מעבר מרשומה לרשומה, הוסף את
הקוד הבא לאירוע בנוכחי 0ח6זזט0ח0) של הטופס עובדים :
הפחד ("משכורות")ח15006 זז
(0,[קוד עובד]) ?א 8 " = [מספר עובד]" = זספווח. [משכורות]!פוזס=
+ ₪0
12 28₪/ 97 200088 - סדנת לימוד
הסבר: השיגרה ח5006! בודקת אס הטופס משכורות פתוח. היא מוגדרת כך:
ח200!68 5 (0חו5 5 סוההּארתזס-507 |3ץם )150260 הסססחט= 6ווטגוק
6 = 15000
הסחד 0 <> (6תהווס-50 , רחזס-86 ,0[66156806 8655000600 )550 +1
החד 0 <> 0/6 הט (6ר הא רתזס-5)50רתזס= +
6 = 15006
+ 0חם
+ 0חם
חסטסחט= סחם
פונקציה 5/8000 מאפשרת בדיקת מצב המערכת. הפרמטר 865/5000000[5%916,
קובע שאנו מנסיסם לברר מצב אובייקט כלשהו. הפרמטר השני הזס=80, מבהיר
שהאובייקט שמעניין אותנו הוא טופס, והפרמטר השלישי הוא שס המחרוות
המחויקה את שם האובייקט שעליו אנו רוצים לברר מידע. אם הפונקציה שווה ל-0,
האוביקט סגור. אחרת, הוא פתות.
אס הטופס פתוח, המאפיין ש6ועזח6זזט0 שווה ל-0 אס הוא פתוח במצב עיצוב, אחרת
הוא פתוח במצב קליטת נתונים, ורק אז נחזיר ערך 6טזד לפונקציה שלנו.
לאחר שנבדוק אס הטופס פתוח, נקבע במאפיין מסנן (6וו=) של טופס משכורות את
מספר עובד (שס השדה בטבלת משכורות) = קוד עובד (שס השדה בטבלת עובדים).
הפונקציה 2אז (סז28!וטא) הופכת את הערך של קוד עובד ל-0 אס משוס מה הוא ווטא
(אחרת, ערכו לא משתנה).
כדי לאפשר עדכוניס בטופס משכורות, באירוע לפני עדכון של הטופס הוסף את הקוד
הבא שמטרתו למלא חלק מהמפתח שאינו מופיע בטופס משכורות באופן אוטומטי.
חסחד ("עובדים")ח6ק 150 +
[קוד עובד]![עובדים]!פוחזס] = [מספר עובד]
+ 0חם
בניית שאילתות בעזרת טופס
נניח שברצוננו להריצ שאילתות שיציגו את כל התשלומיס שבוצעו מתאריך כלשהו
לתאריך שני, ומסכוסם תשלוס כלשהו לסכוס תשלוס אחר. נבנה טופס (שייקרא טופט
לשאילתה) עס תיבות טקסט עבור גבול עליון ותחתון של תאריך ותשלוס וכאשר
האשף מכובה, ניצור לחצן פקודה עס הכיתוב הרצת שאילתה. נקשר את התוכנית
ללחצן באירוע בעת לחיצתה :
()א616 פקודה8 סט5 סזפעווק
05/6 וספסווטם
סט5 0חם
פרק 7: חיבור לטפסים | 183
הסבר: השיגרה ]801500 בונה שורת 501 על בסיס הנתוניס שהוזנו לטופט
לשאילתה. את שורת .5001 נחזיר במחרוזת גלובלית 0816ח//0547, המוגדרת בהצהרות
מודול כלשהו באמצעות המילה סו|פט במקוס חזופ. השיגרה 1165001 נראית כך:
(0חו50 5 .57501) |ספסווטם סטפ ס6וופטק
58 45 6זסח/50 וחוס
החד (רהסז- ץ028ה0)!וטא15 סו זז
"א" 8 0808/70 ,8 "+ =< תאריך תשלום סאג " 8 6ז6ח/50 = 6זסח/'50
+ 0חם
חסחדד (ס דע8ק0ה0)!וטא15 )סו זז
"+" ,8 10ץ78ו03 8 "% => תאריך תשלום ס)\ ".8 50/0616 = 6זסח/50
+ 0חם
חסחדד (רהסץהקוט6)!וטא15 סו +
ההסזוץ8קז6 .8 " =< סכום תשלום סאג " 8 6ז6ח/50 = 50/66
+ 0חם
חסחדד (ס דעהקזט6)!וטא15 )סו זז
סקז 8 " => סכום תשלום ס)\ ".8 50/0816 = 50/66
+ 0חם
החד 6 < (6ז6ח/50)חם | זז
(6 ,676ח/\0%)50ו8 = .507501
+ 0חם
1 080₪פן '
סט5 חמ
הסבר: הרעיון הכללי הוא שאנו בוניס את המחרוזת 6ז58/08 על ידי הוספת
הביטוייס שנובעיס מההגבלות שהוזנו לטופס. כל אחד מהם מתחיל במילה סאג
משוס שייתכן שהוא מחובר לביטוי שלפניו. אנו בודקיס כל אחד כדי לראות שאינו
שווה ל-!וטא, משוס שייתכן שהמשתמש לא הזין ערך בתיבת טקסט מסוימת. אס אכן
כך, איננו רוצים להוסיף |וטא למחרוות .501. לאחר הרכבת המחרוזת קיימות שתי
אפשרויות: או שהמחרוזת ריקה, או שיש משהו במחרוזת והמילה הראשונה במחרוזת
היא ₪סאג. את המקרה השני נגלה על ידי בדיקת אורך המחרוזת 541//0876. אס
אורכה יותר מ-6, נוריד את 5 המקומות הראשוניס. המחרוזת מוכנה לשימוש
ומוחזּרת לשיגרה הקוראת.
עכשיו כשיצרנו מחרוזת ב- 501, השאלה היא כיצד להשתמש בה. ראשית, יש צורך
ליצור טופס לקליטה והצגת תשלומים. נבנה טופס אוטומטי: עמודות, ונקרא לו
הוחט!ח8 ד.
4 82 97 400088 - סדנת לימוד
כעת קיימות 3 דרכים וחן:
בטופס חחוחח|ח35 ד, נדביק לאירוע בעת סינון (זזוו] חכ0) את הקוד הבא :
(00061ח1 5 שכץ דוו ,06067ח1 45 |66ח08)זססוו- וחזס-] סט5 סספּעווק
"סח טסוו וחזס= 6010 זסזיום חס
0507/0076 = ""
טופס לשאילתה ש8פוס '
09 , , , , ,"טופס לשאילתה" וחזס-ח6כ0. 0וה6סס
1008 8 15 הסוחצ השרו 850 סף שוסקסזק סו סז 6 66% '
טופס לשאילתה ץכ 56% ח066 פח הסוח 6|ספּהפע '
0506 = זססון=. 6
זסון.16 ,8 "אא" א00 ףש '
זססוו 66 עוססהּ סח '
ד = ח0ז6טוו=. ההורט| 35 ד!5רחוס-]
בחוחסקס וחסז? שוססחועש זסט|ו= ]06/90 606 זהסעסזק '
סד = |686ח68
א טסוו וחזס-
סטפ זוא
:סח טסוו וחזס-
זסםוחטא.זת 60856 56|606
6 60856
חסטקו656. = אס 15
ןווס 6516
6% ס6חם
50 0ח₪
הסבר: ננקה את המחרוזת 6ז8ח//9517, ונפתח את הטופס טופס לשאילתה. הפרמטר
989 גורס לכל החלונות הפתוחים האחריסם להיות משותקים עד לסגירת החלון
הנוכחי (טופס לשאילתה). אחר נקבע את ערך המסנן כ-6זפח//'ו65, ונפעיל את המסנן
החדש שהוא מחליף את חלון המסנן שנפתח אוטומטית בעת לחיצה על הלחצן סנן לפי
טופס. נבטל מסנן זה.
שיטת העבודה החדשה היא לפתוח את הטופס תשלומים, ואם נרצה להפעיל את
המסנן החדש, קרי טופס לשאילתה, נלחץ על הלחצן סנן לפי טופס, נקליד את הערך
הרצוי לסינון ונלחצ על אישור כדי לקבל את הרשומות המסוננות.
פרק 7: חיבור לטפסים | 185
גישה שנייה היא לפתוח את התהליך בפתיחת טופס לשאילתה, לבנות לחצן ולהדביק
לו את הקוד דלהלן:
()א6ו61 פקודה15 פטפ סזפעוזק
50/6 וספסווטם
56 , , ,"ורחט|ח35 ד" וחזס-]ה06. חס
ספ 0חם
הסבר: הקוד פותח את הטופס חווחט!ח35 ד מסונן לפי 6זפח//05%. שיטה זו מתאימה
אס בדרך כלל יש צורך בסינון, השיטה הראשונה מתאימה אס ברוב המקרים אין צורך
בו.
השיטה השלישית היא דרך אחרת להגיע לתוצאת השיטה השנייה. פתח את טופט
לשאילתה והדבק את הקוד הבא ללחצן:
()א6ו61 פקודה16 פט5 סזפעוזק
05/6 וספסווטם
606 56
"2זורחט|ח35 ד" וס ה06. וס
טפ 0חם
השיגרה 602067/2081א183 יוצרת שאילתה עליה מבוסס הטופס 2חוחחט!|ח35 ד (כלומר
השאילתה /ז6)0206א18) ומשמשת כמקור שורה בטופס 2חחווחט!ח85ד. השיגרה
צֶזסוס עֶ₪ נראית כך:
חס 5 (0חו57 45 .5001 8660606050 הסטס6חט=
חסטסחטת זוא הסחד "" = 57501 )1
6 ₪5 00 הוחו
]סוס 5 0ף חזוס
()%00ח6ז) = 00 56
הסט עו" ,3606 6600[60ו6כ. סוחס
("ץזס) ץ" )6 0.0700 = +00 56%
1 8 " 6זסחצו תשלומים וחסז * 561660" = .001.501
6
סד = 6600606
חסססחט= 6חם
הסבר: לאחר מחיקת הגירסה הקודמת של השאילתה, נבנה שאילתה חדשה על בסיס
מחרוזת .501 שבנינו. השוני היחיד בין שיטה זו והקודמת הוא שהשאילתה שנוצרה
נשארת בשס: עזסט5) עו.
3 3-59 33 23459 כ
6 28₪/ 97 200088 - סדנת לימוד
נספח
התקליטור המצורף
הוצאת הוד-עמי לספרי מחשבים
שליטה מלאה במחשב שלך.
ת.ד. 6108 הרצליה 46160 טלפון: 09-9564716 פקס: 09-9571582
דואר אלקטרוני: |1.60.1הו00-3ח62ס+חו
בקרו אותנו באינטרנט: |:.1001-31701.60]. ששו
מה בתקליטור?
הוצאת הוד-עמי מגישה לך תקליטור הכולל את:
קטלוג 65 - קטלוג ספרי המחשביםס הממוחשב האינטראקטיבי של הוצאת
הוד-עמי. (נדרשת התקנת תוכנה. כולל חיפוש, הדפסה, דפדוף).
קטלוג !אד - קטלוג ספרי המחשביס האינטראקטיבי של הוצאת הוד-עמי.
(לא נדרשת התקנת תוכנה. מומלץ לצפייה עס זפזס|קא= 6%חז0+ח! מגירסה 4
ומעלה).
ספרים לדוגמה בהס ניתן לעיין וגם להדפיס.
תוכנת מבחן אישי - לבדיקת ידע בתוכנות 7/97 6זס/ ובה מאגר של מעל 400
שאלות.
9 גיליון מלא של הירחון חושבים חלונות ובו מאמרים בנושאי 95 פשססחוצ/,
7 סזס/ ו-97 |06אש.
מספר תוכנות עזר שימושיות.
קבצי תרגול.
נספח: התקליטור המצורף 187
/ ף
0 הערה חשובה:
אם מנהל התקן כונן התקליטורים הוא 16 סיביות - ייתכן ותראה רק 8
תווים ראשונים של שם הקובץ (במקרה ובמקור הוא ארוך יותר).
הסיבה: כונני תקליטורים במהירות 4א עובדים עם מנהל התקן שעבד
בסביבת 05 ו-3.11 פשססחו/ ויכול לעבוד גם עם 95 פשססחוצ למעט
היכולת לזהות קבצים עם שמות ארוכים.
הפתרון: להתקין מנהל התקן 32 סיביות (אם קיים) או לקנות כונן
תקליטורים חדש ולוודא שמצורף אליו מנהל התקן 32 סיביות.
קטלוג 60 - הקטלוג הצבעוני
האינטראקטיבי של הוד-עמי
הוצאת הוד-עמי גאה לבשר על הקטלוג הצבעוני האינטראקטיבי היחידי באר
בתוכנה!
הקטלוג הצבעוני האינטראקטיבי של הוד-עמי עושה שימוש בטכנולוגיית
1 (חַחוחז1.68 28560 6%ח8זזח!/61חזסזה!) שהינה המילה האחרונה בכל הקשור
לשימושיס ואפשרויות חדשות אשר גלומות בשימוש בטכנולוגיות אינטרנט.
בעזרת הקטלוג הצבעוני האינטראקטיבי של הוד-עמי תוכל:
1 לעייו במידע על ספרי ההוצאה בכל עת שתרצה (לאחר התקנת התוכנה, בחר
התחל, תוכניות, קטלוג הוד-עמל).
2 לעבור במהירות ובקלות בין הקטלוג הצבעוני האינטראקטיבי של הוד-עמי
והיישוס בו אתה עובד.
3 לדפדף בקטלוג הצבעוני האינטראקטיבי ספר אחר ספר, או לפי נושאים וקבוצות.
4. להדפיס את המחירון המלא ומידע על כל ספר.
5. לגשת במהירות, בגישה אינטואיטיבית, תוך התמקדות מהירה בספר המבוקש.
6. לעיין בקטלוג הצבעוני האינטראקטיבי בקצב אישי שלך.
7 לנווט את דרכך בקטלוג הצבעוני האינטראקטיבי ולחזור ולהתרענן בכל נושא
בכל רגע.
8 להוריד עדכונים מהאינטרנט בכתובת .01-60 0 שעש//:כ1ח
ולהתעדכן בספרים חדשיס.
הקטלוג מתאים לעבודה ב-95 פעשסשחו// עם 3.028 זסזס!|קאם 6%חז6)+ח! בגירסה
העברית, אם עם זאת ניתן לצפייה עם דפדפן 54/5!-15! (אך עם שיבושים קלים).
8 82 97 200688 - סדנת לימוד
הקטלוג מתאים גם לעבודה ב-98 פששס6חו/ אם כי ההתקנה דורשת התערבות
מצידכם כדי שתושלם. לפרטים קוא בקובף ₪808 הנמצא בתיקיה
309 0):א.
1
2
.10
.1
לחץ על לחצן התחל ובחר באפשרות הפעלה.
בתיבת הטקסט הקלד את הפקודה |9!00100-3)+603:א (החלף את האות <
באות המייצגת את כונן התקליטוריס שלך), ולחצ על אישוד.
עקוב אחר ההוראות המופיעות על המסך ופעל לפיהן. כאשר מופיעה תיבת
ההודעה 58%0 המודיעה על התקנת רכיבים חדשים - לח אישור. פעולה זו
מצריכה אתחול מחדש של המחשב.
אסו!0) .ח506ע5 זגוסץ חס 0306 ]0 ]וס פזב 65וו] 5546 506 096וה60פ 6מווחסס )סהחבס ו
סז הששח [ואו גוסל .וס גוס זס] 65!ו] ספסח! פובסקוו סז 50 6א!! וסאי גוסע ו 0%
בחוזבסקן וגוסת)ואו 56 )ואס ס! |פסחב0 אסוןם) .ובסה קו5610 חגוז חב גוסע שזסוסם פטשוסטחו
.65וו] הח9910
| ביטול 1
לאחר שהמחשב עולה מחדש הפעל את תוכנית ההתקנה מחדש:
לח על לחצן התחל ובחר באפשרות הפעלה.
= בתיבת הטקסט הקלד את הפקודה וו68+9!09100-8₪:א (החלף את האות
א באות המייצגת את כונן התקליטוריס שלך) ולחץ על אישור.
לחץ על לחצן ק56+0. מופיע חלון עס רקע כחול ובו הכותרת: ייהתקנת קטלוג
הוד-עמייי. לח המשך.
בחלון התקנת קטלוג הוד-עמי לחץ על תמונת המחשב. אס מופיעה תיבת דו-שיח
בה תתבקש להגדיר היכן להתקין את זסזס|קא= +6חז6זח!. השתמש
בברירת המחדל. אל תיבהל, זו אינה התקנה "'יאמיתיתיי של
זזסוסאם 6%חז6זח!, אלא רק של מספר רכיביס הדרושיס להפעלת
הקטלוג (שיס לב, שאין צורך בהתקנה מלאה של 66חז6)ח!
זסזס|סאם). להצ ס.
בסיוס ההתקנה כולה תופיע תיבת דו-שיח. לח על אישוד. יופיע חלון 0ק59%0,
אשר את אתחול המחשב פעם נוספת על ידי בחירה בלחצן כן.
בחר בתפריט התחל באפשרות הפעלה.
בתיבת הטקסט הקלד 6א68+8100!!0038+69809.6:< (החלף את האות א באות
הכונן מתאימה), ולח על אישור.
זהו קובץ הנפרש אוטומטית וגס מותקן אוטומטית.
קרא את ההודעה ולח אישור.
בחלון זס+86ז1אם-58/1 210חו/ בחר בלחצן קו2חש והמתן.
נספח: התקליטור המצורף 189
2. קרא את ההודעה ולח אישור.
3. בחתלון זס86%ז1אם-58/1 סו2חו/ בחר בלתצן 61056.
4. חזור על סעיפים 8-13 עבור קוב 6א603+81!001003+6????.6:א<. (ארבעת
סימני השאלה הם עבור 9903 או מספר גדול יותר כמו 9904, 9905 וכדומה).
5. לאחר שהמחשב עולה מחדש לחצ על לחצן התחל, תוכניות ובחר קטלוג הוד-עמי.
[5 2 -
פובץ תצוגה עזרה
| |:|3 |-|8| א] |8
תוכן חיפוש |
ה 1 .
מ כשחושבים מחשביט:קוראים הוד- עמי
לוח כדאי לך הוד-עמי? ב 1%
5 ידחון חוטבים חלונות [ ₪
יש בלבד הוצאת ה וד-עמי לספרי מחשבים בע"מ
הראובני 6, ת.ד. 6108 הרצליה 46160
956% פסווום. טלפון: 09-9564716 פקס: 09-9571582
5 פסוזס לחלונות 31 (מתאים גם לעבודה ב- 95
אינטרנט דפאמפדוור דואר אלקטרוני: [60.1.ח1-31 ס10607חוו.
6% וערכרת הפעלה (55 פאפטע בנפרד)
68 סק חרמרה ותדכנה.
יי ניהול 0
5 ערכונים בוותר האינטהנט .5 31771 - [1)20] א
]
6 חולל יישרמים ובסיסי נתונים
שיווק לחנויות המחשבים: מח ש בת
טלפון: 09-9552402 פקס: 09-9552413
]
מערכת מג-דף הדודה 1.5
בכל חודש הקטלוג מתעדכן. ניתן להוריד קוב עדכון מאתר ההוצאה בכתובת:
.60 והחה-00/ .אש
הפעלת התוכנה שהותקנה
להפעלת הקטלוג הצבעוני של הוצאת הוד-עמי, לח על התחל, עבור לתוכניות
ובתחתית התפריט תראה את קטלוג הוד-עמי. בחר בו.
0 הערה:
התקנת הקטלוג ב-95 פאוסטחו/ עשויה (לא תמיד) לשבש את העבודה
עם הכתבן. במקרה זה יש להעתיק את קובץ ||8032.0ח₪6 לתיקיית
המערכת של 95 פשסטחו/\. בדרך כלל זו תיקיה ה5/516₪פעשססחו//:0
0 82 97 200688 - סדנת לימוד
מבנה המסך הראשי
בהפעלת התוכנה יופיע מסך ובו שלושה אזוריס עיקרייס:
4
3
מימין יופיע סייר המסמכים (דומה לסייר 5/שסח;זשו). והו למעשה ע המציג את
פרטי הקטלוג השונים. אזור וה ישמש בהמשך גס לתהליך החיפוש.
בצד שמאל יופיע דף הפתיחה - והו אזור התוכן.
בחלק העליון יופיעו שורת התפריט וסרגל הכלים.
[ ו -
פובץ תצוגה עזרה
|= |:|+ |8|5|₪ א] |8 |>
טר 2
= כדאי לדעת
[₪] לה כדאי לך הודעטי?
[! ירחון חדשבים חלונות
[=! מחירון (טקסט בלבד)
₪ 7
68 ישר ולענייר
= 2 הסדרה חידידותית
המדרה הידידותית
= ה הסדרה הידידותית
| 7 סזסצ
5 6 דרת תכל
> 6 שתות ו 0
7 2 עמ' + ₪ דיסקט תרגו
5
4 כו הסדרה הידידותית היא סדרת ספרי מחשבים בהוצאת הוד-עמי על
5 תוכנות שסום לחלונדת 311 (מתאיים גם לעבדדה ב-: תוכנות הפועלות בסביבת 95 פאיפחוצו . בגישה עניינית ותכליתית, בעברית.
אינטרנט דשאות6דוור ברורה, ישירה וקלה לקריאה, תלמד במהירה ובפשטות איך לעשות דברים.
פטס קרסמה | | המידע המקצועי המובא בספר ניתן במידה המספיקה להבנה והפעלה.
במהלך הלימוד תמצא עצות, הנחיות, טיפים והסברים, להבטחת הצלחתך.
הצג מסמך.< 5 דוגמאות מעשיות מלוות את הלימוד כדי לעזור לך להבין תפיסות חדשניות
7 הסדרה הידידותית | המדרה הידידותית | 97 01065 ; מפוו.
כך נראה מסך של קטלוג הוד-עמ* הנמצא בתקליטור המצורף לספר
סיור מודרך בצעדים קלים
1
2
לחץ לחיצה כפולה על הסמל % שלידו רשוס 97 018₪608.
לחץ לחיצה כפולה על הסמל % שלידו רשוס הסדוה הידידותית/קוראים
יודעים.
תיפתח רשימת מסמכיס הקשורים לנושא.
לחץ לחיצה כפולה על הסמל [= שלידו רשוס קוראים יודעים 97 6זסצ.
בצד שמאל יוצג מסמך שכותרתו קוראים יודעים 97 ףזסשץ.
לח על הסמל | שבסרגל הכליס שבראש החלון כדי לעבור לדף הבא.
יופיע דף שכותרתו הסדרה הידידותית הכרת המחשב האישי.
גרור מטה את פס הגלילה של החלון השמאלי, כדי לקרוא את המשך התיאור.
אס ברשותך מדפסת, תוכל להדפיס את הדף על ידי לחיצה על הסמל |₪.
נספח: התקליטור המצורף 191
שינוי מבנה המסך
ניתן לשנות את תצוגת המסמך על ידי שני לחצנים :
על ידי הצבת הסמן בין אזור סייר המסמכיס לאזור המסמך יוצג חצ דו-ראשי.
על ידי גרירה ימינה ושמאלה תוכל לשנות את חלוקת המסך בין שני האזורים.
| הצג/הסתר סייר מסמכים. בלחיצה על לחצן זה, אזור המסמך ייישתלטיי על כל
המסך. לחיצה נוספת על לחצן זה תחזיר את המצב לקדמותו.
סרגל הכלים
|₪ יציאה מהתוכנה.
הדפס מסמך. המסמך המוצג על המסך יישלח להדפסה.
הצג/הסתר סייר מסמכים. בלחיצה על לחצן זה, אזור המסמך "ישתלט" על כל
המסך. לחיצה נוספת על לחצן זה תחזיר את המצב לקדמותו.
הקודם/הבא בסייר המסמכים. בהתאם למיקום הסמן יוצג המסמך הקודם/הבא
בעץ המסמכים (ראה פירוט בהמשך).
הצג מיקום המסמך בתוכן. הסמן יתמקם בסייר המסמכים על השורה המתאימה
למסמך הנוכחי. שים-לב, ייתכן שהסמן בעץ המסמכים ניצב על מסמך שאינו
המסמך המופיע באזור התוכן באותו שלב (כדי להתאימם נשתמש בכלי הבא).
מסמך קודם/הבא. דפדוף קדימה ואחורה במסמכים שכבר עברנו עליהם בהפעלה
נוכחית (ראה פירוט בהמשך).
הצג תת-עץ במסמך. כאשר הסמן ניצב על נושא המכיל מסמכים ו/או תת-נושאים
נוספים, בשימוש בלחצן זה באזור סייר המסמכים ייפרסו כל תת-הנושאים
והמסמכים, ובצד השני יוצג מסמך אחד ארוך אשר תוכנו מכיל את כל המסמכים.
דפדוף בעץ המסמכים
ניתן לבצע את פעולת הדפדוף ב- 3 דרכים שונות :
מעבר על עץ המסמכים.
9 פתיחת נושא.
= סגירת פרק.
מעבר על עץ המסמכים
9 % נושא כללי.
3 ₪ נושא או תת-נושא פתוח.
9 5 ספר.
2 82 97 400688 - סדנת לימוד
פתיחת נושא
יש שלוש אפשרות לפתיחת נושא :
9 לחיצה כפולה על שם הנושא.
9 לחיצה על סימן '+"י המופיע משמאל לסמל הנושא.
9 על ידי מקש החיצים: +
סגירת פרק
יש שלוש אפשרות לסגירת פרק:
9 לחיצה כפולה על שס הנושא.
= לחיצה על סימן ''-יי המופיע משמאל לסמל הנושא.
9 על ידי מקש החיצים: >
מעבר בין ענפי עץ המסמכים בעזרת לוח המקשים
= לחיצה על אות כלשהי תעביר את הסמן לשורה הבאה בע המתחילה באותה אות
(אם אין שורה כזו, לא יקרה דבר).
לחיצה על + תעביר את הסמן לשורה הבאה ולחיצה על * תעביר את הסמן
לשורה הקודמת בעצ.
הצגת מסמך
יש שתי אפשרות להצגת מסמך :
כאשר הסמן ניצב על שם המסמך - לחיצה על לחצן מורד
9 לחיצה כפולה על שס המסמך בעצ.
שימוש בלחצנים %* | בסרגל הכלים
דפדוף בעזרת לחצנים אלה דומה לדפדוף בספר, דף אחר דף, קדימה או אחורה.
לחצניס אלה משמשיסם למעבר בין המסמכים, קדימה ואחורה, על פי סדר הופעתס
בעצץ התפריטיס (נקודת ההתחלה היא מיקוס הסמן בעצ). אס מגיעים לפרק או
תת-נושא סגור - הוא ייפתח אוטומטית ויוצג המסמך הראשון.
כל לחיצה תפתח את המסמך המתאיס (בחלק השמאלי) ותעביר את הסמן לשורה
המתאימה בע (בחלק חימני).
נספח: התקליטור המצורף 193
שימוש בלחצנים | *!|*. בסרגל הכלים
דפדוף בין מסמכיס שהופעלו בהפעלה הנוכחית. המסמך הנוכחי הינו המסמך האחרון
ממנו אפשר לעבור אחורה עד למסמך הראשון של ההפעלה (מסך הפתיחה). בדרך בין
המסמך הראשון למסמך הנוכחי תוכל לדפדף קדימה ואחורה.
הורדת עדכונים
הקטלוג הצבעוני מתעדכן מדי חודש. את העדכון ניתן להוריד מהאינטרנט (חינס!)
מאתר ההוצאה. בפתיחת הקטלוג בצד שמאל כתוב עדכונים באתר האינטרנט. אס
אתה מחובר לאינטרנט, הצב את הסמן על כתובת זו ולח.
להרחבת התצוגה לחץ על משקפת. באתר הוד-עמי בחר בקישור קטלוג והורדת עדכון
חודש. הורד את עדכון הקטלוג (סבלנות, ייתכן שיעברו מספר דקות) וזכור היכן אתה
שומר את הקוב>. צא מהקטלוג ונתק את התיבור לאינטרנט. הפעל את סייר
5שססח וצ ואתר את הקובצ. לחץ לחיצה כפולה על הקובא. קרא את ההודעה ולת על
אישור. לח סו2חש, קרא את ההודעה ולח אישור. לח 61056 והפעל מחדש את
הקטלוג. זהו, הקטלוג מעודכן!!!
חוכן ן חיפוש
קנציוך 7000007777 ]| תפש.
חיפוש : ו
טורח חיפועו
₪ בותרות מסמכים
הזז
עבור לכרטיסיה חיפוש בחלק הימני של החלון. ו
1. הקלד רצף תווים. זו יכולה להיות מילה או חלק ממללה. | | בלהו
2 קבע את טווח החיפוש - האס לחפש בכותרות המסמכים ו/או בתוכן המסמכים.
3 הקש זס+ח= או לתצ על | פום. אס נמצאו מסמכים, תופענה כותרותיהם.
הצגת המסמך
יש שתי אפשרות להצגת מסמך:
= כאשר הסמן ניצב על שם המסמך - לחיצה על לחצן המרד
9 לחיצה כפולה על שס המסמך.
שיס לב! במסמך שמוצג מחלון החיפוש, הטקסט שחיפשת יודגש בצבע אדוס.
4 282 97 20085858 - סדנת לימוד
העתקת טקסט (ללא תמונות) לתוכנות אחרות
אפשר לסמן קטע ממסמך, להעתיקו ולהדביקו במקוס אחר (למשל, במסמך סזס/)).
1 סמן את הטקסט שברצונך להעתיק (הסימון מתבצע על ידי לחיצה וגרירת העכבר
על האזור שברצונך להעתיק). הטקסט שסומן ייצבע בצבע כחול.
.0 הערה:
לבחירה וסימון כל הטקסט בחלון השמאלי:
1 הצב את סמן העכבר באזור התוכן.
2 לחץ לחיצה ימנית.
3 בחר !| 58!866.
2 ביצוע העתקה:
= הצב את סמן העכבר על הקטע המסומן.
= לח לחיצה ימנית ובחר ע600, או לחץ 6+!ז01.
| |'|+ |6|6|]5 א] | |*
מבנה המסך הראשי
₪₪]ה פעלת התוכנה מופיע מסך הכולל שלושה אזורים עיקריים
בי
560% |
םה פרנירזהה - אזור זה ישמש בהמשך להצגת תכני
הלימוד, בחלק זה תמצא הסברים, הנחיות, טיפים וגם סרטי וידיאו וקטעי קול
שיהפכו את הלימוד לחויה.
עבור לתוכנה אחרת, כמו זס/\, פנקס רשימות, כתבן וכדומה.
> הצב את נקודת הכניסה במקוס שבו תרצה להוסיף את הטקסט ובצע אחת
ה הב ב ב ט 77 ה 1 7 1 פם,
מהפעולות הבאות: בחר בתפריט עריכה, הדבק, או לחץ על לחצן הדבק ₪
או הקש /+1ז61, או לחצ לחיצה ימנית ובתפריט המקוצר בחר הדבק.
העתקת תמונה לתוכנות אחרות
אפשר להעתיק תמונה ממסמך שמופיע על המסך ולהדביקה במקום אחר (למשל
במסמך 6זס/).
1 הצב את הסמן על התמונה שברצונך להעתיק.
2 לח לחיצה ימנית ובתפריט המקוצר בחר ע600.
3 עבור לתוכנה אחרת: תוכנה גרפית, ₪זס/ וכדומה.
נספח: התקליטור המצורף 195
4 לביצוע ההדבקה,
= בחר בתפריט עריכה, הדבק
או לח על לחצן הדבק ₪
9 או הקש ++0471
3
או לחץ לחיצה ימנית ובתפריט המקוצר בחר הדבק.
אפשרויות תצוגה
בשורת התפריט בחר תצוגה, אפשרויות. בחלון זה ניתן לשנות את המאפייניס האלה:
= גודל הגופן המוצג במסמכים השוניס.
9 צבע טקסט החיפוש (ברירת המחדל - אדוס).
= האפשרות להציג שורת מצב או לא.
4
הצלילים שמשמיעה התוכנה כאשר מתחלפיס המסמכים.
[< ד 0
| צלולים | כללר
צבע קט יפר ו | >
גדול מאוד
דול
קטן
קטן מאוד
בתיבת הדו-שיח אפשרויות תוכל לקבוע גם את צבע טקסט החיפוש
קטלוג .)) ד4] - קטלוג צבעוני
הוצאת הוד-עמי גאה לבשר על קטלוג 41!/1 צבעוני העושה שימוש בטכנולוגיית
ו דחופ ( !וד סווהההץכ) שהינה המילה האחרונה בעיצוב דפי 68/ באינטרנט.
ניתן לצפייה באמצעות זסזס|קא= +6חז16ח! ספסזסוו/] מגירסה 4 ומעלה.
בעזרת קטלוג 11/1 צבעוני תוכל:
= לעיין במידע על ספרי ההוצאה בכל עת שתרצה (לחיצה כפולה.... וזהו!).
לעבור במהירות ובקלות בין הקטלוג הצבעוני והיישוס בו אתה עובד.
9 לעיין במידע על כל ספר וספר.
, לגשת במהירות, בגישה אינטואיטיבית, תוך התמקדות מהירה בספר המבוקש.
6 22// 97 2008588 - סדנת לימוד
= לעיין בקטלוג הצבעוני בקצב אישי שלך.
9 לנווט את דרכך בקטלוג הצבעוני ולחזור ולהתרענן בכל נושא בכל רגע.
הקטלוג ניתן לצפייה באמצעות זסזס!קא= 6%חז6+ח! מגירסה 4 ומעלה.
1. פתח את סייר פעוססחו/\.
2 עבור לתיקיה 6818|00 ]ד אשר בתקליטור המצורף.
3 אתר את הקוב הזח חו08ח00 והפעל אותו (בדרך כלל על ידי לחיצה כפולה).
|<1ם)= | זפזס!קא = 61חז6)ח! ]/ס5סזסו - הַסובּזבּ:) .1 11] שוהוּחץ/ וחוב טסו] ב
| ו 008[ | 88]מסטב] | סו 08 שו |
<> 1 / 2 / מ
3 9% 4% 9 | ₪ 0% ,0
זמוזק וו זו | 85וזסעב-] 508100 סוחס | 4858 | סו | ןו
₪0 ₪ - הזר זוב 0 1100 1 1 רת בבס 55| ] הזב זטסז :0 צז חן
הקטלוג מומלץ לצפייה באמצעות דפדפך האינטרנט 4.01 זפזטוטום +פהחפותן ומעלה
ברזולוציה של 600 על 800 פיקסלים וברמת צבע גבוהה
מעודכך לתאריך 9/3/1999
הוד -עמי ד-עמי
0 כשחושבים מחשבים...קוראים הוך- עמי 30
ההוצאה המובילה והמקצועית לספרי מחשבים בעברית!
ת.ד. 6108 הרצליה 46160 טלפון: 09-9564716 פקס: 09-9571582
2
6
לעיון בקטלוג לחץ חי תמונת הספרים
ביצד להשתמש בקטלוג
כדי לראות את הספרים בקטגוריה נבחרת (בסוגריים מצויין מספר הספרים בקטגוריה),
לחץי על כותרת הקטגוריה.
[ | כדי ללמוד פרטים נוספים אודות סיפר, לחץ על תמונת הכריכה שלו.
/ | שאחסע שו | ו ו א
4. קרא את ההוראות כיצד לתהשתמש בקטלוג שבמסך פתיחה זה.
5. לח על תמונת הספרים.
6. יוצגו הנושאיס השונים: 97 018₪06, 98 פאוססחו/\ וכדומה.
נספח: התקליטור המצורף 197
/ ף
[<1ם) - )| זסזס!קא = 1פחזס!ח] !]ס5סזסו)א - הזוזת .חובּחו0ם [₪
| 7008 | 88]סטב] | פוש 08 שו |
5 = 4" 2 / - /
₪8 .3|8 4 9 | ₪ 9. > . >
זמוזק | עסו = 85סעב = 5610 שוחסו | 858 | 500 | 0%
ספל מ תו 10/00 1 ד הווהת םס !ו 207 חב זטסזקן/ :0 :פוה צז חן
ב מחשבים...קוראים הןך-עַ:ו -
ההוצאה המובילה והמקצועית לספרי מחשבים בעברית!
ת.ד. 6108 הרצליה 46160 טלפון: 09-9564716 פקט: 09-9571582
])
לעיון בקטלוג לחץ על תמונת הספרים
)14( 6 97
ספרי הדרכה לתוכנות המשרד הממוחשב של מיקרוסופט
6( 1108 8
ספרים בנושא מערכת ההפעלה, למתחילים ולמתקדמים
5 1108 ל
= ספרים בנושא מערכת ההפעלה, למתחילים ולמתקדמים
סע ₪ ]| |
7 הצב את הסמן על כותרת הנושא, למשל, 8 10/8)חו יר ולחץ בעכבר.
8 יוצגו הספריס השייכים לאותו נושא.
8 1108 ל 66
ספרים בנושא מערכת ההפעלה, למתחילים ולמתקדמים
- ו
9 לח בעכבר על הספר לגביו אתה מעוניין במידע (שיס לב, הסמן לא ישתנה).
0. ייפתח חלון בו תוכל לקרוא מידע אודות הספר (מה הוא מכיל, למי הוא מיועד,
מה נמצא בתקליטור המצורף, מיהו המחבר, כמה עמודיס בספר וכדומה).
שים לב - כדי להמשיך ולעיין בקטלוג עליך לסגור את החלון המכיל את פרטי הספר.
מחירון מעודכן של ספרי ההוצאה נמצא באתר
האינטרנט |60.1.ווחהּ-ססח.שצצצ
8 22 97 2008588 - סדנת לימוד
התקנת קטלוג ) ד4]
מי שרוצה להפעיל את קטלוג 311 מהתקליטור, צריך לנהוג לפי ההוראות הרשומות
לעיל. הפעלה מהתקליטור מחייבת את הימצאות התקליטור בכונן. בהתקנה פשוטה
ניתן להעתיק את הקטלוג לדיסק הקשיח. להלן הוראות להתקנת קטלוג ואד :
1
.2
לחץ על התחל ובחר הפעלה.
בעזרת לחצן עיון סמן את הקובצ ₪א63+3!00.5 | דוח 0 אשר בתיקיה
9ס! 63%3 | דר:א.
לח פתח. 0
לח אישור. | 6
לח אישור. ה
לח על לחצן קו2חש -.
לח אישור.
על שולחן העבודה מופיע סמל עס כיתוב קטלוג ספרי מחשבים בהוצאת
הוד-עמי.
הפעל אותו.
'ז₪6006 ז0פסיו46 - התקנה
תוכנה וו יש להתקין כדי לקרוא את דוגמת הירחון 'חושבים חלונות'" ואת הספרים
לדוגמה וכדי לפתוח כל קובץ שהסיומת שלו 00%. התוכנה פועלת במערכות הפעלה
8 פשססח// בלבד!
1
2
לחץ על לחצן התחל ובחר באפשרות הפעלה.
בתיבת הטקסט הקלד את הפקודה 47326301+67003// 620006זהצ)501:א<
(החלף את האות % באות המייצגת את כונן התקליטוריס שלך) ולחצ על אישור.
בחלון הבא בחר בלחצן כן להמשך ההתקנה.
אשף ההתקנה מתקין את הרכיביס הנדרשים. עליך ללחוצ על +א6א, 65ץ ו-+א6א
פעס נוספת כדי לסיים את ההתקנה.
בסיוס ההתקנה לת על ח8וחו=.
קרא את הודעת סיוס ההתקנה שמופיעה, ולח אישור.
נספח: התקליטור המצורף 199
ספרים לדוגמה
בתיקיה 0500 800%58 תמצא מספר דוגמאות מספרי ההוצאה. כדי לראות וגס
להדפיס את הקבצים (פורמט 001) יהיה עליך להתקין את 368081 0081זסה (ראה
לעיל).
1
2
3
4
פתח את תפריט התחל, תוכניות, 60031 40006, 3.01 308007 +008%ז6.
פתח את תפריט 1!8= ובחר באפשרות ח6ס0.
בתיבה חפש ב: בחר בכונן התקליטוריס שלך ועבור לתיקיה 58/0 80065.
בחר בקובצ ולת על לחצן ח6סס.
חושבים חלונות - הפעלה
1. פתח את תפריט התחל, תוכניות, 60034 20006, 3.01 363007 +הססז6.
2 פתח את תפריט 118= ובחר באפשרות ח6ס0.
3 בתיבה חפש ב: בחר בכונן התקליטוריס שלך ועבור לתיק:ה חוצאהוחד.
4 בחר בקובצ 5.001 !סצ - חו/שאחוחד המופיע בתיקיה זו, כדי לקרוא את גיליון
מספר 5 במלואו.
5 בחר בקוב> )₪7161.00 - חו/שאהוח ד המופיע בתיקיה זו, כדי לקרוא את תקצירי
הגליונות הקודמיס.
ומה הלאה...
0 (8/ 97 200688 - סדנת לימוד
הזמנת מנוי - חושבים חלונות או 0079
שלח בדואר לפקודת הוד-עמי ת.ד. 6108 הרצליה 46160 2))"
סמן!י א לפי בחירתך:
אני מעוניין/ה לעשות מנוי על הירחון חושבים חלונות.
ב 12 גיליונות במחיר ₪99 כולל מע"מ
שם משפחה שם פרטי
כתובת מלאה
ישוב
מיקוד
טלפון פקם
|וחז-6:
ויזה - 16 ספרות | דיינרם - 14 ספרות
ישראכרט - 8 ספרות מאסטרקארד - 16 ספרות
מו מ
מספר כרטים אשראי
0
בתוקף עד תעודת ז'הוי
כתובת למשלוח החשבונית (במידה והיא שונה מהכתובת שלעיל):
חובה 7מלא פרטים
אישור: תאריך חתימת המזמין
נספח: התקליטור המצורף 201
מבחן אישי - התקנה
מבחן אישי מאפשר לך לבחון את ידיעותיך בתוכנות 001806 השונות. בתקליטור
המצורף לספר זה תמצא מספר מבחנים לתוכנת סזס/ בגרסאות 7 ו-97.
1. בחר בתפריט התחל באפשרות הפעלה.
2 בתיבת הטקסט הקלד 6א6+65).6ק65%ד67ק:א< (החלף את האות א באות
הכונן מתאימה), ולח על אישור.
|<]? הת
הקלד את שם התוכנית, התיקיה אד המסמך
שברצונך לפתרח באמצערת פאוסטחוש.
צחח את: | - ]61 [וטק <]
זהו קוב הנפרש אוטומטית וגם מותקן אוטומטית.
קרא את ההודעה ולת אישור.
4. בחלון זס461ז1אם-56/1 0ו2חו/ בחר בלחצן ס21ח והמתן.
לח אישור.
תהליך ההתקנה מתחיל. המתן.
6. לחצ א0.
7 לחצ על תמונת המחשב. המתן.
8 מופיעה הודעה שההתקנה הסתיימה בהצלחה. לת אישור.
התקנת ערכת מבחנים מלאה ל-7/97 6יוס/
1. בחר בתפריט התחל באפשרות הפעלה.
2 בתיבת הטקסט הקלד 8א6.6זסשדק654 דז6ק:א (החלף את האות % באות
הכונן מתאימה), ולח על אישור.
זהו קוב הנפרש אוטומטית וגס מותקן אוטומטית.
קרא את ההודעה ולת אישוד.
בחלון זס+86ז1אם-58/1 210חו/ בחר בלחצן קו2חש והמתן.
קרא את ההודעה ולת אישור.
בחלון זס86%ז1אם-58/1 סו2חו/ בחר בלחצן 61056.
+ ₪
הפעלה - מבחן אישי הוד-עמי
לח על לחצן התחל, תוכניות, מבחן אישי - הוד עמי.
2 (8/ 97 00688 - סדנת לימוד
מה עוד בתקליטור?
הוצאת הוד-עמי מפיצה תוכנות אלו כבונוס ללקוחות ההוצאה, ואינה מתיימרת
לגבות תשלום עבור התוכניות המצורפות ו/או לתמוך בהם.
אזהרה:
0 השימוש בתקליטור זה הוא על אחריותו הבלעדית של המשתמש.
המוצרים המותקנים בתקליטור זה מסופקים באחריות החברות
המייצרות אותם. הוצאת הוד-עמי אינה אחראית, בכל צורה שהיא,
לאופן ולטיב התוכנות המותקנות.
בכל שאלה לגבי תוכנה הנמצאת בתקליטור, יש לפנות למפתחי התוכנה (כל תוכנה
בנפרד) כפי שמצוין בקבצי העזרה של התוכנה המדוברת.
הקבציס הס גרסאות שיתופיות (6ז/\6זח5) וחופשיות (66/816זת).
גירסה שיתופית (50876)378) מאפשרת לך, המשתמש, לבדוק את יעילות התוכנה
ואת תאימותה לעבודה אותה אתה מבצע. אס נמצאה התוכנה מתאימה לצרכיך, עליך
לשלס למפתחיה תשלוס סמלי (לפי הרשוס בקבצי העזרה של כל תוכנה ותוכנה בנפרד)
כדי לקבל רישיון מלא לשימוש בה. רכישת רישיון לשימוש בתוכנה יפתח בפניך מיגוון
אפשרויות שייתכן ולא עמדו לרשותך בהפעלת הגירסה השיתופית.
הסא56זחס-
קובצ זה יתקין במחשב 2 גופניס בעברית לשימושכם. בסיוס ההתקנה יש לבצע את
הפעולות הבאות :
1 לח על התחל, הצבע על הגדרות, ובחר בלוח הבקרה.
2 לח לחיצה כפולה על הסמל גופנים.
3 פתח את תפריט קובץ ובחר באפשרות התקנת גופן חדש.
4 עבור לתיקיה ח8א%606חס-:0.
5 לח על לחצן בחר הכל (סהייכ יש בתיקיה 2 גופנים).
6. ודא שתיבת הסימון העתק גופנים לתיקיית הגופנים מסומנת.
7 לתצ אישור.
8 סגור את חלון התיקיה 15חס=.
9 סגור את חלון לוח הבקרה.
כעת, מוכניס הגופנים לשימוש בכל התוכנות המותקנות במחשב שלך: סזסשש, |פסאם,
+חוסקז6/עוס= וגס בתוכנות גרפיות, כגון סזק קסח5 זחו3ק ו-קסחפס+זסתם.
נספח: התקליטור המצורף 203
הגופנים נקראיס קוט2-|חחד ו-5160-|וחד ויופיעו בתחתית רשימת שמות הגופניס
(בדרך כלל). הרי דוגמה שלהס:
ק5+6-| וחד
1 אלהו ןס פיףי 4 עו 0 43557 3
קווטכ-!וחד
ג דהוזהטיכךרמם/]ןסעפף<ץורששת 1234567890
סיזיז6 ד - מימד חדש בתצוגה
ים המלח ממעוף הציפור
8 ך היא משפחת מוצריס של חברת סקייליין מערכות תוכנה, הבנויה סביב מנוע
גרפי ייחודי ורב עוצמה, המאפשר תצוגה בזמן אמת של פני שטח בתלת-מימד ללא
הגבלת פרטים וגודל על גבי מחשביס ביתיים. מקור תמונת השטח הוא בתצלומי לווין
ותצלומי אוויר.
דרישות מערכת מינימליות :
מעבד מסוג וחט%ח₪6 בטכנולוגיית אוו
זיכרון פנימי 30 פו32
זיכרון כרטיס מסך ₪ו/|2
כונן תקליטוריס במהירות 6א
מערכת הפעלה 95/98 פשוספחוצ
שש ₪ > + + >
התקליטור חייב להיות בכונן במהלך ההפעלה
מנוע 8זז6ד לוקתח את התצוגה בזמן אמת לרמות חדשות שלא נודעו בעולס מחשבי
ה-06. הוא מאפשר אין סוף מצבי תצוגה: החל ממבט קרוב לפרטי פרטים, ועד תצוגה
רחוקה עד האופק. מנוע פזז6ד עושה שימוש בטכנולוגיית או החדשנית, ומאפשר
איכויות שבעבר היו נחלתס של מחשבים יקריס בלבד.
לפרטיס נוספיס על התוכנה ומפתחיה קרא בקובצ 0ס;צז! בתיקיה 8זזסד.
4 282 97 2008858 - סדנת לימוד
התקנת סייו ד
מומלצ להסיר גירסה קודמת של 8זז6ד, אם קיימת.
1 הכנס את התקליטור לכונן.
2 לחצ על לחצן התחל ובחר באפשרות הפעלה.
3 לת על לחצן עיון.
4 בחר בכונן התקליטורים בתיקיה 18ו6ד ובקוב בשס 5אם. פשד65.
5 לת על לחצן פתח.
6. לח על לחצן אישור.
7 פעל לפי ההוראות על המסך לפי הסדר (מימין לשמאל):
+אסא, 05ץ, 1אסא, 1אסא, 1אסצז, זאסאז, חפוחות.
ייתכן ובמהלך ההתקנה תתבקש להתקין רכיבי %ז80ז₪1ם. אס במחשב שלך מותקנת
מערכת ההפעלה 95 פעוסשחו/\ הפועלת עם ממשק עברית (לחצן התחל) יהיה עליך
לשנות את ההגדרות האזוריות :
1. בחר בלחצן התחל, הגדרות, לוח הבקרה, הגדרות אזוריות.
2 במקוס עברית בחר אנגלית (ארצות הברית).
3 בחר בלחצן החל.
4 לשאלה האס ברצונך לאתחל את המחשב מחדשנ ענה כן.
5 עתה, יהיה עליך להתחיל את התקנת 8זז6ד מחדש.
הפעלת סיויו6 ד
לח על לחצן התחל, תוכניות, הזז ך, 8/16/07 וס ד.
פעולה מקשים
ו 1
תנועה מעלה/מטה/ימינה/שמאלה
הוראות הפעלה מפורטות נמצאות בתפריט 4610 שבתוכנת 8זזסד.
התקליטור חייב להיות בכונן בעת הפעלת התוכנה.
ָ טיפ:
+ תוכל להאט את המהירות בעזרת 2!וח5 לא רק למהירות אפס, אלא
מתחת לזה. המשמעות היא ש... תטוס אחורה!!! שווה בדיקה!!!
נספח: התקליטור המצורף 205
התקנת תוכנת גלישה לאינטרנט (בגירסה העברית)
1 יסשיוס|קא ז6חיו6+ח1 50+1סי6ו)/
מומלצ להסיר גירסה קודמת של זפזס!קאם +6%חזפ+ח!, אס קיימת.
1
2
3
הכנס את התקליטור לכונן.
לחץ על לחצן התחל ובחר באפשרות הפעלה.
לח על לחצן עון.
בחר בכונן התקליטוריס בתיקיה 507/816!=40151!386 ובקובצ בשס
6
לח על לחצן פתח. לחצ על לחצן אישור.
פעל לפי ההוראות על המסך.
התקנת תוכנת 5 ישיוס|קא= 61חיו6+ח1 ++50סי6!)/
בגרסת/ 6ַס6|פַַחם, רואיס עברית, תפריטיס באנגלית. התקנת 155 מחייבת התקנה
קודמת של דפדפן כלשהו מבית 050-זסוו.
אזהרה:
גירסה זו אינה מיועדת להתקנה במחשב בו מותקנת מערכת ההפעלה
8 פשוס0ח:)\ בעברית (זו שבה התפריטים הם בעברית).
הכנס את התקליטור לכונן.
לחץ על לחצן התחל ובחר באפשרות הפעלה.
לח על לחצן עיון.
בחר בכונן התקליטוריס בתיקיה 6|₪5ז8/ו507 ובקוב בשס 6א56100.6.
לח על לחצן פתח.
לחץ על לחצן אישור.
פעל לפי ההוראות על המסך.
6 2 97 2008588 - סדנת לימוד
היכן נמצאים הקבצים הקשורים לספר זה?
תחת התיקיה 8₪00%5 תוכל למצוא את התיקיה הרלוונטית לספר שאליו מצורף
התקליטור. שס התיקיה 59236.
העתק את שני הקבצים לתיקיה בדיסק הקשיח.
אנו מבקשיס להתייחס לקבציס הנמצאיס בתיקיה הרלוונטית לספר, שאליו מצורף
תקליטור זה, בלבד. בתיקיות אחרות נמצאיס קבצים הרלוונטייס לספרים אחרים.
שס התיקיה המכילה את הקבציסם בנוי מה-דאנאקוד הנמצא בעטיפה האחורית של
הספר. שס התיקיה בנוי מ-5 ספרות לפי התרשים הבא :
מחיר לצרכן: 99 שייח
דאנאקוד 259-10169
5 |19
תיקיה ראשית 6י01/)++50 (רשימה חלקית)
מחיקת קבצי | שאין צורך בהם (מאמר התקנה
בנושא הופיע בחושבים חלונות, גיליון 22)
תוכנה ליצירת, עיצוב ועיבוד תמונות 8 | התקנה
ְ345 ב
נספח: התקליטור המצורף 207
/ ף
אינדקס
א
אוסף רשומות 466070561
טבלה 8!סַ9ך, 111, 117
מקור 08זו50, 117
קבוצה דינמית זסִפחץכ, 117
קדימה לבד ץ|חכ0-0ז8/זסת, 118
תצלוס בוק +80500ח5, 118
אופרטוריס פזס00618%, 27
מחרוות פַח61, 34
אירוע 1ח6צ=
בנייה 0!וטם, 172
ארגומנט זח6וחטטזה
לפי התייחסות 461676006 עטם, 99
לפי ערך 6ט!8 / עֶם, 99
ב
ביטוי בוליאני חסו659זקא= ח8פוססם, 41
בסיס נתוניס סִפהַבַגּ1הכ, 114
ד
דוח ₪600
תיבת דו-שיח א0פ חָסוּוכ, 181
אינדקס
209
ה
הדפסה +חוזם, 25
הידור חסט8ווקח ס0, 24
הליך 8זטוס6ססזט, 23
ט
טבלה שַומִד, 111, 117
אמת חזטזד, 40
מערך ע8זזה, 82
טווח ההכרה 56006, 106
טופס חזזסת, 171
אימות נתוניס 2818 ח6808%0/, 177
אירוע בנייה +ח6צ₪ 6ווום, 172
איתור 0חו=, 178
מסך ניווט חזהססחס1ו/שס, 171
סינון ז10!ו=, 175
קריאה בלבד ץ|חכ) ₪880, 172
רשומה 60010, 178
שאילתה עזפגו), 183
ו
יציאה זואם, 25
ל
לולאה קסס ), 57
ספ, 57
זס=, 62
0 (8₪ 97 200688 - סדנת לימוד
מ
מבני פיקוח 50700065 |סז1ח00, 53
0),ָ 66
פקודת =] - 1ח06ח1816ס זן, 53
פקודת 561601 - 0181000₪1 66!60%, 67
מודול 00016!
תצוגה שפו/, 23
מחרוזת 8ַחוזזפ, 34
אופרטוריס 0061810158, 35
מסך ניווט סזהספחסזו/שס, 171
מספר שורה זסטוחטאז 6חו], 55
מערך עפ8ּזזה, 76
בחירה ליניארית חס56!600 זהסחו | עֶם פְחוזזסס, 89
דו-מימדי |חסופח6חחו0-סעצד, 82
וקטור ז60)0//, 76
חיפוש בינארי ח0ז568 עזהחום, 86
חיפוש ליניארי 56870 זהּסחו], 86
טבלה 018 ך, 82
מטריצה אוזז9!/], 82
סדר יורד ז08זכ פָחוו0ח6506כ, 89
סדר מיון 56006006 חַחו00|!30, 89
סדר עולה 081 מַחו0ח506, 89
רשומה 6000ח, 91
רשימה 18%/, 76
שדה 6|0ו=, 91
מפתח ראשי 46 עזהחווזק, 113
אינדקס
221
משתנים 180!65ז8/, 26
נ
:חהוזה , 47
איפוס ₪6561, 49
בוליאנייס ח00|68סם, 38
טבלת אמת 801!6ד חזטזוד, 40
טווח ההכרה 56006, 106
מודולרי ז8|וססו/, 106
מקומי |1.008, 106
סוגי 065עד, 28
סטטי 0ו5191, 107
פקודת הצבה %ח518%076 1ח6ה חו55, 28
פקודת הצהרה 019167601 חסוזְהז60|8, 28
ציבורי סו|סטוס, 107
קבוע 01ח5%9ח00, 107
ניפוי פַחופָטָטפס6, 167
נקודות עצירה 15חו68%0ז2, 167
נתוניס פזִ08, אימות חסוז011108/, 177
0
סורק האובייקטיס זספ/שסזם 601[ס0, 29
עִ
עריכה פַחוזו0ם, 33
2 (8/ 97 200688 - סדנת לימוד
פ
פקודה +00ח19%0
חן 53
אס0םפ1ו, 32
%, 67
הצבה +חסח ח0ו55, 28
הצהרה מסו1ז89ז260|8, 28
סיכוס ץז8ח וחנוס, 144
פרוצדורה 0660016זק
פונקציה חסוזסחגות, 95
שיגרה סחטטסזפטס, 95
פרמטריס 5ז6%61חחהּזה, 26
ק
קבועיס 19ח518ח00, 26, 51
קלט ופלט )סז /טסחו, 31
ר
רשומה 366010
טופס חחזסת, 178
מערך עְפּזזה, 91
שדה 6|0ו=, 91
ש
שאילתה עזפגוכ), 112
איחוד חסוחנו, 142
הגדרה 3067/061), 114
הוספה 6סח6קכג, 156
זמנית עץזפּזסקוח6ד, 115
טופס חחזסת, 183
אינדקס
23
יצירת טבלה 8018 ד 1866, 136
מחיקה 6!6%16, 136
משנה ץ61ף50, 144
עדכון 00816 ו, 1356
שיגרה 660016סזש
פרטית סזהטוזס, 24
ציבורית סו|סטם, 24
תצוגת ששסו/צ, 25
שיטה 00ח161, 115
שו 01%, 117
86, 117
שמות פפַחחףּו, 25
שמירה 8/6ס, 25
שפת שאילתות סטנדרטית 501
143
₪ !פד חםד]ג, 120
צאה, 147
אםסא!| 5 ד54חס, 150
₪ ]פד 5 דח 111
םדם |םכ, 138, 148
דסאודפו, 133
צסח דסאודפופ, 133
אםסא! קסחם, 152
%, 146
זו חות, 158
וחות, 158
סא חות, 157, 158
5 חק הות, 158
4 ;28 97 20085858 - סדנת לימוד
צֶם קטסזט, 131
טְחוטהה, 132
אן, 146
חםאאו, 126
סדאו דהםפאוו, 140
סדאו, 137
א|סנ, 126
או דסא, 146
צם הםסחס, 123
אשד 126
117 ,%
א 159
122 ,114 | 07
114 ,%
147 ,50₪
14
קסד 134
= נסואש, 150
םחםה/ו, 123
וצ צשס | ו64וכ ה דוצש, 152
א םה סאסו הדוצו, 152
צחהו/וחק חדו/ו, 152
בסיס נתוניס ספְפַמ8ּ081, 114
הגדרת שאילתה 087/081%), 114
טבלה 8!ס9ך, 111, 117
כינוי 85ו|, 142
מפתח ראשל ע6א עזהחוזק, 113
מקור אוסף הרשומות 06זטספ ₪66070581, 117
אינדקס
255
סיכוס פקודות עזהחוחז גוס 1'5ח00ח5+916, 144
קבוצה דינמית זַפאחִעָ, 117
קדימה לבד ע|חכ6-0ז8/וזס=, 118
רשומה 6000א, 111
שאילתה עזפגום, 112
שאילתת איחוד עזפטכ) חסוחנש, 142
שאילתת הוספה ץז8ט2) סחסססג, 136
שאילתה זמנית 0081 עזהזסקוח8ד, 115
שאילתת יצירת טבלה עז6טכ) 6|ס3 ד 8386ו, 136
שאילתת מחיקה עז6כ) 6!616, 136
שאילתת משנה עזפטוףפ5, 144
שאילתת עדכון עז6ט2) 0816ק, 136
שדה 9!0ו=, 111
שיטה 00ח6%, 113
שיטת שש00%6 - ססחז0ו/ ש6צ00ג, 117
שיטת 08%6כ - 6100 0816ק, 117
תחומים פחוהחזסכ, 164
תצלוס בוק +80500ח5, 118
ת
תאריכיס פ65ז8, 43
תווית |1.406, 25
תנאיס מורכביס 6000/6005 א6!קח סס, 40
תפריטיס פטח6!!, 22
תצוגה שסו/
מודול מלא 6וגוחססוש ווט=, 23
שיגרה 6זטוס60ססזס, 23
תקליטור מצורף 187
24389 334 39 3
6 2/ 97 2006588 - סדנת לימוד
אשסחו
4
ו
9 ,61676006 ץ
9 ,6ט!8/ ץם
6 ץזזה
9 ,27067 פחו0ח506
6 ,568700 עזהחום
9 ,06006006 (חוז60|!8
9 ,ז00זכ) פְחו0ח6506כ
1 ,1810
6 ,568700 זה6חו |
6 5 ]|
2 ,אחז !
1 ,60070
9 ,561600070 זה6חו ] עֶם פהטזסס
2 ,6!פ3ך
2 ,!8חסופח6והוס-סצודך
6 ,ז0ס)80/
8
1 ,ח658!0זקאם ה00!68
א06ח- 217
8 (8/ 97 200688 - סדנת לימוד
6
4 , חסוז8!וקח ס6
0 ,000100705 א8!קחחס6
1 ,26 ,6009180158
3 ,5170000705 |סז1חס6
6 ,000
3 ,=ן
7 8!60
כ
7 ,6680 // , הזה
4 ,8)80856
3 ,28665
7 .ופפ סכ
7 ,5חוס68%ז
5
3 ,0000
2, ,וו ,%חסע
5 א
-
1 ,חס
2 ףחסעם 6ווטם
5 ,ז0+!ן=
8 ,6חו=
3 ,ץ30)
2 ,ץוחכ) 3680
8 ,600
1 ,זה ססחסוועוס
7 ,818 ח618608%00/
1
1 סטסזטכ)/טסחו
1
5 ,3061 |
5 ,זססוחטצז 6חו !|
7 ,ססס |
7
2 ,זס=
/)
2 ,פטח6ו
3 ,0סח9%
7 ,00%
7, ,00816
6טססו
3 ,6ו/
א
5 , 65חוהּ 4
0
)00[60% 20/56, 9
7 ,00618%0785)
4 ,9חוזס
:
3861075, 6
3 ,46 עזהחוזק
219 06%
0 (8/ 97 200688 - סדנת לימוד
5 ,זחוזק
3 ,0000076
5 , חסוזסחט-
4 ,816עוזק
4 ,6ו!פגו
5 ,ס6חטסזסטס
3 ,6ו/
גָ
2 30
6 ,6חפססה
6, ,8|8%16
3 ,וזס-
6, ,6 ך 86
4 ץז
4 ,ץע6טףפטס
5 ,קוחד
2 ,חסוחנ
6, ,00316
₪
0
1 ,עפזזה
1 ,100
8 ,הזוס
בי
7 0%פהחעכ
8 ,ע!חכ6-0ז8 עס
8 80500%ח5
7 ,006
7 ,36ך
1 ,0 חסופוכ ,סקסה
5
58/6, 5
50006, 6
וס
8 ,1ח6ח ח0ו55/
8 ,חסו60|3]81כ
3 ,=ן
2 ,00% 150
7 0!60%
4 ,עזהו וטס
5009, 4
)00618%018, 5
0
7 ,0סח161 0046
2 ,85|
3 ה
0 ;ם |פאד המד |
7, ,צאה
6 ,ץז8ט2) סחסססה
0 ,אספאו 5 ז0354
1 ,ם !ד 0535
4 ,3)80856כ
6 ,+07וכ) 61616
8 ,םדם וס
3 דסא דפוס
221 06%
2 (8/ 97 200688 - סדנת לימוד
3 ,סה דסאודפוס
4, ,פחווחסס
2 ,אםסאו קסחס
7 65פהחעכ
6, ,5 ד5!אם
₪80, 1
8 זו סח
8 351 |0חו=
8 ,157 ,א6צ0חו=
8 ,פטסוע6זק סחו-
8 ,ע!חכ)-6ז8 עס
1 ,ץם קטסזכ)
2 ,פחוצפרז
6 ,או
6 הםאצו
0, ,דא דה שפאצוו
7 ,סדצאוו
6 ,אוסנ
6 ,ץז20) 6|סהד 186
3 ,00ת0%!
6 ,א! דסא
3 ,צם הםסחס
6 ,חםדטטס
3 ,ץ46 עזהחוזק
2 ,ש3067)
4 ץז
6000, 1
606070561 600706, 7
7 600561
9 568%
2 ,5
64
8 580500
7 ,ם50
4
4 ,ץעזה וס 5'%ה6ח916ז
4 ,ץע6טףפטס
7 ,6 ך
5 ,0007 ץזהזסקוח ד
4, ,סד
2 ,ץז00) הסוח
0 ,םסוא
7 ,0סח61! 00816
6 ,ץ2007) 200816
3 ,םחהפה//
2 , ]וטא צשס | ומשו חדו/צש
2 , )!וטא םחהסאס! חדו/צש
2 צחה וחק חדו/ש
1 ,0 תוס
ד
7, ,89וסהך
2 ,ץ8זז
0 , מזטד
א06ח! | 223
ץ
6 ,8180165 /
8 ,51810001 61 ח 5590
8 ,ח0|68ס0ם
607
8 ,518107601 ה8%0ז60|!9
6 ,008 ]|
6 ,זהּ|טססו
7, ,סו!סטק
9 ,650%
6 ,50006
7 ,1800
0 ,6!ס3ד חזטזד
8 ,65קץך
7 ,זח8וזה/
שוסו/
3 ,ס!טססוש |וט=
339 239
4 ;8 97 2008858 - סדנת לימוד