יום ראשון, 20 בנובמבר 2016

שפת C - חזרה למבחן ותרגול פונקציות (יום ראשון)

חזרה למבחן




מחשבים א'

חזרה למבחן !
שאלה 1:
#include <stdio.h>
void main() {
          int i,m=0,t=0,k, A[10] = {1,2,-3,-2,31,5, 21,-7,20,10};
              for(i=0; i<10; i++)
          {
                 for(k=0; A[i]%2 != 0 && i<10;k++,i++);
                 if(k > m) {
                    m = k;
                    t = i - m;
                }
           }
          for(i=t; i<t+m; i++)
                   printf("%d",A[i]);
 }
一. מה יהיה הפלט של התוכנית  ? 
二. מה התוכנית מבצעת באופן כללי ?

שאלה 2: 
  מה הפלט של התוכנית הבאה: ?
void main() {
      int i,tot, A[10] = {1,2, 3,14,0,0,2,3,1,2 };
      for(i=tot=0; i<10;tot+=A[ i],i++);
  for(i= 0; tot – 2*A[i]; i++);    
      printf(“\ntot = %d     A[%d] = %d\n”,tot,i,A[i]);
}

שאלה 3:
א.   מה יהיה הפלט של התוכנית  ? 
ב.   מה התוכנית מבצעת באופן כללי ?
#include <stdio.h>
void main() {
         int i,j,tmp,p, Vect[10] = {1,2,-3,-2,31,5,21,-7,20,10};
         for(i=0,j=9,p=Vect[0];i < j ; ) {     
    while(Vect[j] >= p  && i < j)
j--;
 if(i != j) {
tmp = Vect[i];
Vect[i] = Vect[j];
Vect[j] = tmp;
 }
 while(Vect[i] <= p  && i < j)
i++;
 if(i != j) {
tmp = Vect[i];
Vect[i] = Vect[j];
Vect[j] = tmp;
 }
     }
      for(i=0; i<10; i++)
printf("%d ",Vect[i]);
 }

1  1) כתוב תכנית אשר קולטת 10 מספרים שלמים לתוך מערך גלובאלי.
      התוכנית מוצאת את:
        -  סכום המספרים.
        - המספר המקסימלי.
        - המספר המינימלי.
        -  הממוצע.
    עבור כל פעולה יש להגדיר פונקציה מתאימה.

2)  כתוב תכנית שקולטת 3 צלעות של משולש:  a,b,c.
     התוכנית בודקת אם הם יכולים לייצג משולש או לא.
     אם כן אז היא מחשבת ומדפיסה השטח וההיקף. וגם רושמת את סוג המשולש:
     שווה שוקיים, שווה צלעות, או משולש כלשהו.
     אם לא אז היא רושמת הודעה מתאימה.
     עבור כל חישוב יש להגדיר פונקציה מתאימה.
     אפשר לחשב השטח לפי נוסחת Heron:


3)  כתוב פונקציה שמקבלת מספר שלם n , הופכת אותו ומחזירה 1 אם המספר
     ההפוך קטן מהמספר המקורי, 0 אם שני המספרים שווים, -1 אם המספר       
     ההפוך גדול מהמספר המקורי.
     לדוגמא:
          עבור המספר  6542 הפונקציה מחזירה  1.
          עבור המספר  2384 הפונקציה מחזירה - 1.
          עבור המספר  1331 הפונקציה מחזירה 0.


4)  כתוב פונקציה אשר מקבלת שני מספרים שלמים a   ו    .b כאשר a   בן ספרה   
     אחת .
     הפונקציה מחזירה כמות הפעמים שהספרה  a מופיעה במספר b.
     לדוגמא :
               עבור:   a = 4  ,  b = 24344   הפונקציה תחזיר 3.


5)    כתוב פונקציה שמקבלת שני מספרים ממשיים, f1 ו f2.
       בקריאה הראשונה לפונקציה , היא מחזירה f1 + f2.
       בקריאה השניה לפונקציה , היא מחזירה f1 - f2.
       בקריאה השלישית לפונקציה , היא מחזירה f1 * f2.
       בקריאה הרביעית לפונקציה , היא מחזירה f1 / f2. (אם f2 = 0 אז היא רושמת
       הודעת שגיאה ומחזירה 0)      וכו' ...  



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

- סכום המספרים שנמצאים על האלכסון המשני.
- סכום המספרים שנמצאים מעל האלכסון המשני.
- סכום המספרים שנמצאים מתחת האלכסון המשני.



7) כתוב תכנית אשר מכילה מטריצה בגודל  NxNשמכילה אפסים ואחדים בלבד,  
    התוכנית מוצאת כמות האפסים המקפים באחדים מכל הכיוונים.
    ברור שאפס כזה לא יכול להיות בשורה ראשונה , עמודה ראשונה ..
    לדוגמא:
             עבור המטריצה:
 1  0  1  1  1
 1  1  1  0  1
 1  0  1  1  1
 1  1  1  0  1
 0  0  1  1  1
      הפלט יהיה:  3.













פונקציות - תרגול

מחשבים א'

פונקציות.


1) כתוב הפונקציה:   
 int mul (int a, int b)
    אשר מקבלת שני מספרים שלמים ומבצעת ביניהם פעולת כפל על ידי שימוש
    בפעולת חיבור וחיסור בלבד ומחזירה התוצאה.

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

3)  כתוב פונקציה אשר מקבלת מספר שלם n , הפונקציה תחזיר סכום המספרים
     השלמים בין 1 עד n.
     לדוגמא עבור n = 5 , הפונקציה תחזיר 15.

4) כתוב פונקציה אשר מקבלת שני מספרים שלמים, a ו b.
    הפונקציה תחזיר ממוצע המספרים הזוגיים בתחום בין a עד b.
   לדוגמא:   עבור a = 2  ,  b = 7    
                    הפונקציה תחזיר 4.

5) כתוב פונקציה אשר תקבל מספר ותחזיר את סכום הספרות של המספר.
    לדוגמא:   עבור המספר 2309
                     הפונקציה תחזיר 14















אין תגובות:

הוסף רשומת תגובה