דוגמא למבחן בגרות ביסודות מדעי המחשב

פרק ראשון (50 נקודות)

 

עליך לענות על חמש השאלות1 1-5  (לכל שאלה - 10 נקודות).

 

1.  הניחו כי בתכנית הופיעה ההצהרה הבאה:

type      letters='A'..'Z';

var       A:array [1..10] of letters;

                        i: integer;

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

דוגמא: אם נקלוט את האות 'C' אזי המערך A אמור להכיל את הערכים הבאים לאחר ביצוע הקטע: (C D E F G H I J K Lׂ)

readln (A[1]);

for I:=1 to 10 do

                  A[i+ 1]: - = succ (A[i])

קטע התכנית הנתון שגוי.

א.      מהי השגיאה בקטע:

ב.      תקנו את הקטע כך שיבצע את משימתו.

 

2.  בתוכנית מופיעה  ההצהרה .var list:array[1..100] of char

כתבו קטע תוכנית המציב את הערך 'A' בכל האיברים במערך הנמצאים במקומות האי-זוגיים, ואת הערך 'Z' בכל האיברים במערך הנמצאים במקומות הזוגיים.

 

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

דוגמה:   קלט-     7  7  5  15  3  1  7

            פלט-     3.

 

4.  התבוננו בקטע התוכנית הבא:

repeat

            readln(num1,num2)

until (num1 0) or (num2  0);

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

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

 

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

לדוגמא: עבור הקלט 14.56 יהיה הפלט 0.56  14.

פרק שני (30 נקודות)

 

עליך לענות על שתיים מבין השאלות 8-6 (לכל שאלה - 15 נקודות).

 

6.   כתבו פונקציה בוליאנית שמקבלת פרמטר Number שהוא מספר שלם חיובי, ומחזירה את הערך TRUE אם מכפלת הפרמטר Number פי 4 תהפוך את סדר ספרותיו.

            דוגמאות: עבור המספר 2178 הפונקציה תחזיר את הערך TRUE, כיוון ש:

                                                                                                8712 = 4 * 2170

            עבור המספר 123 הפונקציה תחזיר את הערך FALSE, כיוון ש:

                                                                                                321       4 * 123

 

7.     הניחו כי בתכנית הוצהרו הפרוצדורה והפונקציה הבאות:

Type  arr = array [1..10] of integer;

procedure sod(var x,y:integer);

var ezer:integer;

begin

                        ezer:ex;

                        x:=y;

                        y:=ezer

end;

function place (A:arr; from, upto:integer):integer;

var       p,I:integer;

begin

                        p:=A[from]

                        place:=from;

                        for  i:= from+1 to upto do

                               I    p  =A[I] then

                                    begin

                                        p:=A[I];

                                        p1ace:=I

                                    end;

            end; (place)

א.                         הסבירו מהו תפקידה של הפרוצדורה sod, ומהו הערך שמחזירה הפונקציה Place.

ב.                         הניחו כי בתוכנית הוצהר המערך A מטיפוס arr, ובו הושמו, משמאל לימין, הערכים (7  8  12  0  2  17  9  11  5  3 ).

      ההוראות הבאות מופיעות בקטע תכנית:

i=place (A,1,10);

sod(A[1],A[10]):

i:= place(A,1,9);

sod(A[i],A[9])

      מה יהיו ערכי המערך A לאחר ביצוע הקטע?    

8. הנח כי בתכנית מופיעות ההגדרות וההצהרות הבאות:

type

                        positive = 0 .. maxint ;

                        sifra = 0 .. 9 ;

var

                        Digit, PrevDigit ; sifra ;

                        Num: positive;

procedure Piruk (var Num : positive ; var Digit : sifra );

                        begin

                                    Digit ; = Num mod 10;

                                    Num : = Num div 10;

                        end;

     א. מהו הערך שתחזיר הפרוצדורה אם ערך הפרמטר Num הוא:

I.                                            128

II.                                          90

     ב. מה מבצעת הפרוצדורה פירוק.

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

 

      דוגמא:

            קלט : 12345      פלט: סדר יורד

            קלט : 862          פלט: אינו יורד

            קלט : 88                        פלט: אינו יורד

פרק שלישי (20 נקודות)

 

עליך לענות על שאלה אחת מבין השאלות 9 - 10 (לכל שאלה - 20 נקודות)

 

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

      על  האותיות הקטנות בלבד 'z'.. 'a' המופיעות במשפט:

 

I.                                     איזו אות מבין האותיות 'z' .. 'a' מופיעה הכי הרבה פעמים וכמה פעמים היא מופיעה. שים לב כי יתכן שיותר מאות אחת תקיים תכונה זו.

II.                                   איזו אותיות מבין 'z' .. 'a' אינן מופיעות במשפט.

 

לדוגמא:

 

קלט:

A computer is a machine that can carry out long and complex sequences of operations.

 

      

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

 

I.                     מחשב ומדפיס את המשקל הממוצע של התינוק במשך התקופה הנ"ל.

 

II.                                על האלגוריתם לאתר את הסטייה המקסימלית מהממוצע ולהדפיס את הימים /

              היום בהם / בו סטייה זו חלה.

 

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

 

 

III.                               על האלגוריתם לאתר את העלייה המקסימלית במשקל התינוק ולהדפיס את שיעור העלייה המקסימלי וכן את היום / הימים שבו / בהם חלה עליה זו. (שיעור העלייה נמדד יחסית ליום הקודם).

 

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

 

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

 

I.   מהם המשתנים ו/או המערכים העיקריים שבהם תשתמש בכתיבת האלגוריתם? ציין

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

 

II  מהם שלבי האלגוריתם? הגדר כל שלב בשני משפטים לכל היותר. העזר במשתנים

    ו/או המערכים שהגדרת.

 

 

ג.          כתב תוכנית המממשת את האלגוריתם שפיתחת בסעיף ב.