|
דוגמא
למבחן בגרות ביסודות מדעי המחשב |
|
פרק
ראשון (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 מהם שלבי האלגוריתם? הגדר כל שלב בשני משפטים לכל היותר.
העזר במשתנים |
|
ו/או המערכים שהגדרת. |
|
|
|
|
|
ג.
כתב תוכנית המממשת את האלגוריתם שפיתחת בסעיף ב. |