You are on page 1of 4

‫מבוא למדעי המחשב‬

‫הנדסת חשמל ואנרגיה‬


‫בחינה לדוגמא‬

‫מרצה‪ :‬ד"ר מלכי גרוסמן‬


‫מתרגל‪ :‬מר וסים מח'ול‬

‫הנחיות‪:‬‬
‫‪ .1‬מותר השימוש בכל חומר עזר כתוב‪.‬‬
‫‪ .2‬שימו לב כי בטופס הבחינה ‪ 5‬עמודים (כולל דף זה)‪.‬‬
‫‪ .3‬משך הבחינה‪ 2.5 :‬שעות‪.‬‬
‫‪ .4‬יש למסור את טופס הבחינה ‪.‬‬

‫ב ה צ ל ח ה !‬

‫‪-1-‬‬
‫שאלה ‪1‬‬
‫סעיף ‪1‬‬
‫יש לכתוב תרשים זרימה לתוכנית בקרה של השינויים בטמפרטורה של צנרת מים שמטרתה לוודא‬
‫שהשינויים בטמפרטורה הנדגמת אינם עולים על ‪ .°2C‬התוכנית מתבצעת בלולאה אינסופית‪ .‬בכל איטרציה‬
‫(מעבר בלולאה) התוכנית דוגמת את הטמפרטורה (‪ (Tn‬ומחשבת את ההפרש בינה לבין הטמפרטורה‬
‫שנדגמה באיטרציה הקודמת (‪ .)Tn-1‬אם ההפרש גדול מ‪ ,2-‬על התוכנית להדפיס את זמן‬
‫הדגימה(‪ Tn ,(TIMEn‬ו‪.Tn-1-‬‬
‫כדי לדגום את הטמפרטורה ניתן להשתמש עם הפקודה ‪GetTemprature‬‬
‫כדי לקבל את זמן הדגימה ניתן להשתמש עם הפקודה ‪.GetTime‬‬
‫סעיף ‪2‬‬
‫נניח שהנתונים המודפסים בסעיף א' נשמרים גם במערך דו‪-‬מימדי בו כל שורה ‪ i‬כוללת שלושה איברים‬
‫מטיפוס ‪ ,double‬כאשר האיבר הראשון הוא זמן הדגימה(‪ ,(TIMEn‬האיבר השני מכיל את הטמפרטורה‬
‫‪ Tn‬והאיבר השלישי ‪.Tn-1‬‬
‫בשל כמות הנתונים שומרים בכל פעם רק את ‪ SIZE‬הדגימות האחרונות‪.‬‬
‫כתבו תכנית המגדירה מערך‬
‫;]‪double measures[SIZE][3‬‬
‫הניחו שהמערך מכיל ערכים שנדגמו‪.‬‬
‫על התוכנית לקלוט מספר מטיפוס ‪ double‬למשתנה ששמו ‪ diff‬ולהדפיס את מספר הדגימות שההפרש‬
‫ביניהן קטן מהמספר ‪.diff‬‬
‫שאלה ‪2‬‬
‫סעיף ‪1‬‬
‫יש לכתוב תכנית הקולטת מספר שלם ‪ ,n‬סדרה של ‪ n‬מספרים ומספר נוסף (‪.)value‬‬
‫אם המספר ‪ value‬נמצא בסדרת המספרים התוכנית תדפיס את ההודעה " ‪"The number is in the series‬‬
‫אחרת תדפיס "‪."The number is not found in the series‬‬
‫ניתן להניח את נכונות הקלט וכן ש‪ n-‬אינו גדול מ‪.50-‬‬
‫סעיף ‪2‬‬
‫שנו את התכנית של סעיף א' כך שתדפיס את מספר הפעמים שהמספר ‪ value‬מופיע בסדרה‪.‬‬
‫לדוגמא‪ :‬עבור ‪ ,n=12‬וסדרת המספרים הבאה‪:‬‬
‫‪5 4 2 3 18 18 34 18 1 1 44 23‬‬
‫ו‪value=18-‬‬
‫התוכנית תדפיס ‪.3‬‬

‫‪-2-‬‬
3 ‫שאלה‬
:‫חשב את הפלט של התוכנית הבאה והסבר בקצרה מה היא עושה‬
#include <stdio.h>

#define N 7

int check(int src[N], int des[N]);

void main()
{
int s[N] = { 4, 16, 2, 8, 5, 16, 16};
int d[N - 1] = { 2, 1, 3, 2, 5, 1};
int i=0;
int j = 0, count = 0, mu = 1;

while (i < N - 1)
{
for (j = 0; j < des[i]; j++)
{
mu = mu * src[i];
}

if (mu == src[i + 1])


{
count++;
printf(" %d --> %d \n", src[i], des[i]);
}
mu = 1;
++i;
}

printf("count=%d",count);
}

-3-
4 ‫שאלה‬
?‫מה מדפיסה התוכנית הבאה‬

#include <stdio.h>

int main{)(
char str[] = "I like Mike and..... ";
int j = 0;
int i;
printf("\n%s\n",str);
for (i=0;i<16;i=i+3){
printf("%c",str[i]);
str[j++]=str[i];
}
printf("\n%s",str);
}

-4-

You might also like