בס"ד                                                                                                                                        11.1.01

 

מרצה: דוד גבאי

         

  מבחן אמצע סמסטר שפת C

   

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

    פתרון לא מסודר לא יבדק.

 

1) כתוב תכנית הקולטת ממשתמש 10 מספרים שלמים ומדפיסה כמה מספרים היו גדולים
    מ- 100 , כמה מספרים היו קטנים מ- 100 , וכמה מספרים היו שווים ל- 100 .

 

2) כתוב תכנית הקלטת עשרה מספרים טבעיים ומחשבת את הממוצע שלהם.

 

3) א) כתוב תכנית שמקבלת את הגיל של המשתמש בשנים (מספר שלם ) ומחשבת את גילו
         בימים.  התכנית  צריכה לזהות מצב שבו המספר שהוכנס שלילי ,להעמיד את
         המשתמש על  טעותו, ולקלוט את הגיל מחדש.
        
    ב)  בהנחה כי התכנית שלעיל בוצעה באמצעות משתנים מסוג
Integer בלבד ,
          ותחום הגילאים האפשרי הוא 120- 0 ,האם אתה צופה בעייתיות מסוימת ?.
          אם כן מהי, מתי תתעורר בעייתיות זו (באיזה תחום גילאים ?), וכיצד ניתן לפתור


  4) א) כתוב תכנית שתקלוט גובהו וגילו של משתמש

             אם גובהו מעל 180 ס"מ יש להדפיס :     "You should play basketball".

             אם גובהו שווה ל 180 יש להדפיס : "This is a perfect hight. "

             אם גובהו נמוך מ- 180 וגילו קטן מ- 18 התכנית תדפיס: "You might be taller"

 

        ב) במקרה מסויים לא יודפס דבר , מתי יתממש מקרה כזה ?.

            אותה.

   

 

 

                                                                                               

   בצלחה

 

                                                                                                                                                                                   

בס"ד

   מרצה : דוד גבאי.

   משך המבחן: שעתיים וארבעים וחמש דקות.

   חומר עזר: כל חומר עזר מותר בשימוש.             

                       

                                מבחן מגן בתכנות

 

שאלה מס' 1

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

 

לדוגמא

אם עשרת המספרים שהתקבלו הם:

2 , 10 , 5 , 3 , 100 , 50 , 20 , 19 , 40 , 30

והמספר הנוסף הוא 8, אזי התכנית תדפיס: המספר הכי קרוב הוא- 10.

 

שאלה מס' 2

כתוב תכנית שקולטת מספר שלם n ,ומדפיסה n כוכביות באלכסון .

 

לדוגמא

אם נקלט המספר 5 התכנית תדפיס:                                                                            *

        *

     *

   *

*   

שאלה מס' 3

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

התכנית תדפיס את תוצאות (אין צורך בטיפוס string אלא רק בטיפוס char).

 

לדוגמא

אם הקלט הוא: It is important To BE

התכנית תדפיס: היו 4   אותיות גדולות.

                           היו 13 אותיות קטנות.

                                        היו 4   רווחים.

 

שאלה מס' 4

כתוב תכנית אשר קולטת עשרה מספרים לתוך מערך, ומדפיסה האם המספרים

הראשון עד החמישי, הם תמונת ראי של המספרים השישי עד העשירי.

            לדוגמא

            אם המספרים שנקלטו הם : 5 , 2 , 4 , 6 , 3 ,  3 , 6 , 4 ,  2 , 5

            אזי התכנית תדפיס: המספרים התקבלו בצורה סימטרית.

 

            אם המספרים שנקלטו הם :                     2,5,6,9,7,8,5,3,2,1

            ואפילו אם המספרים שנקלטו הם:          1,2,3,4,5,1,2,3,4,5

            אזי התכנית תדפיס : המספרים התקבלו בצורה לא סימטרית.

           

 

בס"ד

         

   מרצה : דוד גבאי.

   משך המבחן: שלוש שעות.

   חומר עזר: כל חומר עזר מותר בשימוש.             

                       

                                מבחן מגן בתכנות

 

שאלה מס' 1

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

 

לדוגמא

אם עשרת המספרים שהתקבלו הם:

2 , 10 , 5 , 3 , 100 , 50 , 20 , 19 , 40 , 30

והמספר הנוסף הוא 8, אזי התכנית תדפיס: המספר הכי קרוב הוא- 10.

 

שאלה מס' 2

כתוב תכנית שקולטת מספר שלם n ,ומדפיסה n כוכביות באלכסון .

 

לדוגמא

אם נקלט המספר 5 התכנית תדפיס:                                                                             *

        *

     *

   *

*   

שאלה מס' 3

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

התכנית תדפיס את תוצאות (אין צורך בטיפוס string אלא רק בטיפוס char).

 

לדוגמא

אם הקלט הוא: It is important To BE

התכנית תדפיס: היו 4   אותיות גדולות.

                           היו 13 אותיות גדולות.

                                        היו 4   רווחים.

 

שאלה מס' 4

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

כלומר איבר שהיה במיקום 0 יתחלף עם איבר שהיה במיקום 9, האיבר שהיה במיקום 1 יתחלף עם האיבר שהיה במיקום 8 וכ"ו.

                                                                                          

 

מבחן בתכנות

מועד ב'

מרצה: דודי גבאי

משך הבחינה: 3 שעות

חומר עזר: כל חומר עזר מותר בשימוש

 

 

שאלה מס' 1

כתוב תוכנית שקולטת עשרה מספרים למערך ומחליפה בין זוגות של אברים סמוכים.

 

לדוגמא

 

אם המערך שהתקבל   :

60

50

100

90

22

11

8

7

2

1

 

המערך לאחר השינוי יהיה:

50

60

90

100

11

22

7

8

1

2

 

 

 

שאלה מס' 2

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

 

לדוגמא

אם המספרים:

6

6

4

3

3

3

2

2

1

1

 

אזי התוכנית תדפיס את המספרים הבאים:

1,2,3,4,6

 

 

שאלה מס' 3

כתוב תוכנית שקולטת מילה אות אחרי אות ומדפיסה לבסוף את האות הגדולה ביותר שהתקבלה, ואת האות הקטנה ביותר שהתקבלה לפי סדר ה- א', ב'. (האותיות שיתקבלו הן אך ורק אותיות גדולות באנגלית).

לדוגמא

אם המילה שתתקבל היא: ENZICLOPEDIA  אזי התוכנית תדפיס בסוף:

האות הקטנה ביותר היא A

האות הגדולה ביותר היא Z

 

שאלה מס' 4

כתוב תוכנית שקולטת מספר שלם n ומדפיסה סדרת מספרים, שהאיבר הראשון הוא 1.

ערכו של כל מספר עוקב הוא המספר הקודם כפול 2.

 

לדוגמא אם התקבל 6=n אזי יודפסו המספרים:

32,  16,  8,  4,  2,  1

לדוגמא אם התקבל 8=n אזי יודפסו שמונת המספרים:

128,  64,  32,  16,  8,  4,  2,  1

בס"ד

מרצה : דוד גבאי.

אורך המבחן: 4 שעות.

יש לפתור 5 מתוך 8 שאלות הבאות.

מבחן שפת C

1)      כתוב תכנית שקולטת משפט ומדפיסה אותו כך שאם יש בין מילה למילה יותר

ממרווח אחד היא תדפיס רווח אחד בלבד.

2)      כתוב תכנית שתקלוט מספרים שלמים שונים מ-0 עד שייקלט מספר שהוא מכפלת כל קודמיו. (ספר לבן פרק 3 שאלה 7).

3)      קלוט שני מספרים שלמים והדפס את המכנה המשותף הקטן ביותר שלהם. (ספר לבן פרק 3 שאלה 8).

4)      כתוב תכנית הקולטת 10 מספרים למערך , ובודקת האם המחצית הראשונה זהה למחצית השניה של המערך. אם כן התכנית תדפיס "equal" אחרת התכנית תדפיס "not equal" וגם את האינדקסים של זוגות המספרים שאינם שווים.

אם המערך יראה כך:

9

8

7

6

5

4

3

2

1

0

3

5

18

90

20

3

5

18

90

20

 

התכנית תדפיס "equal". אחרת אם המערך נראה כך:

3

4

9

90

20

3

5

18

90

20

 

     

התכנית תדפיסin places:2,8,3,9                           :  Not equal

5)      כתוב תכנית הקולטת מספרים חיוביים. המספר אפס מציין את סוף הקלט (כלומר כאשר יתקבל המספר אפס, יש להפסיק לקלוט מספרים, אין להתחשב במספר אפס עצמו כקלט). על התכנית להדפיס כמה מספרים מתחלקים ב-5 ואינם מתחלקים ב-2.

6)      כתוב תכנית הקולטת עשרה מספרים למערך ובודקת האם המספרים התקבלו כזוגות מספרים זהים עוקבים. אם כן התכנית תדפיס "yes" אחרת התכנית תדפיס את המיקום של לדוגמא אם המערך:

9

8

7

6

5

4

3

2

1

0

2

2

18

18

22

22

5

5

8

8

התכנית תדפיס YES אחרת אם המערך נראה כך:

9

8

7

6

5

4

3

2

1

0

2

2

19

18

22

22

4

5

8

8

            התכנית תדפיסin places: 2,3,6,7                        Not equal.

 

7)      קלוט סדרה בת 30 מספרים, הדפס "זוגית" אם כל מספריה זוגיים. הדפס "יורדת" אם היא סדרה יורדת. הדפס "זוגית וגם יורדת" אם היא גם זוגית וגם יורדת. במקרה זה אין להדפיס "זוגית" בנפרד ו-"יורדת" בנפרד.

8)      כתוב תכנית הקולטת מספר ובודקת כמה פעמים ניתן לחלק אותו ב-2 ללא שארית. לדוגמא: את המספר 40 ניתן לחלק ב-2 שלוש פעמים ללא שארית עד שמגיעים למספר 5, שאינו מתחלק ב-3. ולפיכך התכנית תדפיס

      "The number can be divided by two 3 times".


מבחן בתכנות – מועד א'

 

להנדסאי תעשייה וניהול – מערכות מידע

 

 

 

א.                משך הבחינה 4 שעות.

 

ב.                 מבנה השאלון ומפתח הערכה:

 

פרק א'

 

ענה על שאלה אחת מתוך השתיים (25 נק').

 

 

פרק ב'

 

ענה על שתי שאלות מתוך 3 השאלות (50 נק').

 

 

פרק ג'

 

ענה על שאלה אחת מתוך השתיים (25 נק').

 

 

ג.                   חומר עזר מותר לשימוש: כל חומר עזר. אין להעביר חומר עזר בין הנבחנים.

 

ד.                 יש להתחיל כל שאלה בעמוד חדש.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

פרק א' – ענה על אחת מתוך השאלות 1 ו- 2.

         

שאלה 1

 

כתוב תרשים זרימה שהקלט שלו הוא: מהירות נסיעה של נהג וקלט נוסף מהירות מותרת.

והפלט שלו הוא:

 

v    אם הנהג נסע עד 10% יותר מהמהירות המותרת יש להדפיס: "אין קנס".

 

v    אם הנהג עבר את המהירות המותרת ביותר מ- 10% אך לא יותר מ- 30%

יש להדפיס:  "קנס 300 ₪"

 

v    אם הנהג עבר את המהירות המותרת ביותר מ- 30% יש להדפיס: "שלילת

רישיון".

 

דוגמא:

 

v    אם הקלט הוא מהירות: 95, מהירות מותרת 90 התכנית תדפיס: "אין קנס".

 

v    אם הקלט הוא מהירות: 80, מהירות מותרת 90 התכנית תדפיס: "אין קנס".

 

v    אם הקלט הוא מהירות: 125, מהירות מותרת 100 התכנית תדפיס: "קנס 300 ₪".

 

v    אם הקלט הוא מהירות: 135, מהירות מותרת 100 התכנית תדפיס: "שלילת רישיון".

 

 

 

שאלה 2

 

א.    אם מיון בועות ביצע מיון של 100 איברים תוך 1 דקה, אזי תוך כמה זמן בערך הוא יבצע מיון בועות על 1,000 איברים?

 

ב.     אם חיפוש בינארי (אריה במדבר) ביצע חיפוש על 100 איברים תוך 10 דקות, אזי תוך כמה זמן הוא יבצע חיפוש על 1,000 איברים?

 

ג.       האם הצבת ערך מסוג integer לתוך משתנה מסוג float עלולה ליצור שגיאה בזמן ריצה?

 

ד.     נניח כי הסימן % מסמל שארית של חלוקה. למשל הערך שיוחזר מהחישוב

5 % 10 יהיה 0 בעוד הערך שיוחזר מחישוב 10 % 168 יהיה 8. מה יהיה הערך שיוחזר מהחישוב 100 % 168?

 

ה.    האם תכנית שנכתבה והורצה מספר פעמים ונמצא כי היא תפקדה כמצופה הינה תכנית שבהיכרך ללא שגיאות לוגיות?

 

פרק ב' – עליך לענות על 2 שאלות מתוך השאלות 3,4,5.

 

 

שאלה 3

 

כתוב תכנית אשר קולטת את הגילאים של זוגות נשואים, את הגיל של הבעל (X)

ולאחריו את הגיל של האישה (y).

סוף הקלט מצויין ע"י שני הערכים 0 0.

 

 

התכנית תדפיס:

 

v    את ממוצע גילאי הגברים שהפרש הגילאים ביניהם לבין נשותיהם גבוה מ-10 שנים.

 

v    את ההפרש בין ממוצע הגילאים של הגברים לבין ממוצע גילאי הנשים בערך מוחלט.

 

שאלה 4

 

כתוב תכנית הקולטת סדרה של תווים. סוף הקלט מצויין ע"י התו  $.

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

 

דוגמא:

 

$

a

f

!

c

a

b

!

f

c

a

!

f

d

c

!

d

b

a

 

הפלט צריך להיות 3 שכן ישנן 3 תתי סדרות המכילות אותיות בסדר עולה.

 

שאלה 5

 

כתוב תכנית הקולטת זוג מספרים ומדפיסה את ההפרש בין מספר הספרות של כל מספר. אורך המספר עלול להיות גדול ולכן יש להשתמש במשתנה Long.

 

 

דוגמא:            עבור הזוג הבא – 15, 1574

 

יודפס:             2 (שכן מספר אחד בן 4 ספרות ומספר שני בן 2 ספרות – 2 = 2 – 4 ).

 

 

דוגמא:            עבור הזוג הבא:- 15, 15739

 

יודפס:            3 (שכן מספר אחד בן 5ספרות ומספר שני בן 2 ספרות ולכן 3 = 2 – 5).

פרק ג' – עליך לענות על שאלה אחת מתוך השאלות 6 ו- 7.

 

 

שאלה 6

 

 

א.    כתוב פונקציה המקבלת כפרמטר  2 מספרים, אם סכום הספרות של שניהם זהה אזי הפונקציה תחזיר 1,אחרת הפונקציה תחזיר 0.

 

ב.     כתוב תכנית המשתמשת בפונקציה הקודמת אשר קולטת 10 מספרים למערך a, ו- 10 מספרים למערך b.

 

אם כל המספרים הממוקמים באינדקס זהה במערכים a, ו- b הינם בעלי סכום ספרות זהה, אזי התכנית תדפיס מערכים תאומים.

 

 

דוגמא:

 

אם התקבלו במערכים a ו- b הערכים הבאים:

 

 

מערך a

 

   9             8            7           6            5            4           3             2           1            0

 

18

12

43

524

123

111

105

32

25

15

 

 

      מערך b

 

9           8            7            6           5           4            3            2            1            0

 

9

3

16

330

213

300

501

41

52

33

 

 

אזי התכנית תדפיס מערכים תאומים.

 

 

 

שאלה 7

 

א.    כתוב פונקציה המקבלת מערך ומחזירה את ממוצע הערכים במערך.

 

ב.   כתוב תכנית המשתמשת בפונקציה של סעיף א' אשר קולטת מספרים למערך ומדפיסה את הערך הכי קרוב לממוצע.