Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

Studies

דוגמאות

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

  1. כתבו תוכנית שמחשבת את המהירות של כדור נופל תחת כוח הכבידה אחרי 5.4 שניות, אם הגוף מתחיל ממנוחה. הנוסחא למהירות של גוף מאיץ בזמן \(t\) היא:

$$ v_0 + a \cdot t $$

עבור \(v_0\) מהירות התחלתית ו-\(a\) תאוצתו, כאשר תאוצת הנפילה החופשית היא בערך \(9.8\).

#define GRAVITY 9.8
int main() {
    const double time = 5.4;
    const double velocity = time * GRAVITY;
    printf("Velocity after %.2f secs is %.2f meters/second", time, velocity);
}
  1. כתבו תוכנית שמחשבת שטח של משולש שגובהו 5 וצלעו 3.
int main() {
    const double length = 5.0, width = 3.0;
    const double area_rect = length * width * 0.5;
    printf("Rectangle area: %.2f\n", area_rect);
}
  1. כתבו תוכנית שמחשבת ממוצע של המספרים 5, 3.4 ו-1.2.
int main() {
    printf("Average: %.2f", (5 + 3.4 + 1.2) / 3);
}

Note

שימו לב שהקפדנו לתת למשתנים שמות משמעותיים כמו length, area_rectangle וכו’. במתמטיקה נהוג לתת למשתנים שמות מאוד בסיסיים שקל לכתוב ביד כמו g לכבידה וכו’ - בתכנות זה כמעט תמיד רעיון לא טוב. יתכן שאנחנו עובדים בצוות ואז כדאי שהשמות יהיו מובנים לשאר המתכנתים, או אפילו אם אנחנו עובדים לבד על מנת שנוכל לקרוא קוד שכתבנו לפני מספר חודשים ולהבין מה הכוונה בצורה מהירה ויעילה.

תרגילים

  1. כתבו תוכנית שמדפיסה את הסכום, ההפרש, המכפלה, חלוקת השלמים, חלוקת העשרוניים והשארית בין המספר 17 למספר 5.
  2. כתבו תוכנית המקבלת טמפרטורה מהמשתמש בצלזיוס וממירה אותה לפרנהייט. נוסחת ההמרה היא \(F = 1.8 \cdot C + 32 \)
  3. קבלו מהמשתמש שלושה מספרים עבור הציונים שלהם, והדפיסו את הממוצע שלהם לפי חלוקת שלמים ולפי חלוקת עשרוניים.
  4. קבלו מספר מהמשתמש שניתן להניח שהוא בן 0 ל-999. הדפיסו את ספרת האחדות, העשרות והמאות שלו.
  5. קבלו מספר מהמשתמש שייצג אורך זמן כלשהו בשניות. הדפיסו כמה שעות, דקות ושניות שלמות יש באורך הזמן הזה.
  6. קבלו מהמשתמש שני מספרים x ו-y והדפיסו אותם. לאחר מכן, החליפו בין הערכים שלהם והדפיסו אותם שוב, וודאו שהם השתנו באמת.
  7. קבלו מהשמתמש מספר בן 3 ספרות, והדפיסו את היפוך הספרות שלו. למשל עבור 527 הדפיסו 725.
  8. כתבו תוכנית המקבלת מהמשתמש שני מספרים ומדפיסה את סכום הערכים המוחלטים שלהם.
  9. כתבו תוכנית המקבלת מהשמתמש מספר חודש בין 1 ל-12 ומדפיסה את מספר הימים באותו החודש. בחודשים אי זוגיים יש 31 ימים, ובחודשים זוגיים יש 30 ימים, פרט לפברואר (2) בו יש 28 ימים.

תרגיל

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

int a = 2;
int b = 5;
int c = 8;
a += b++;
c -= ++a;
printf("%d %d %d\n", a, b, c);
int a = 6;
int b = 4;
int c = 2;
int x = a + b * c;
int y = x % 5;
int z = y == 1 || a / b == 1;
printf("%d %d %d\n", x, y, z);
a++;
b *= z;
printf("%d %d %d\n", a, b, c);
int a = 8;
int b = 3;
int x = a % b == 2;
int y = a / b > 2;
int z = x && y;
printf("%d %d %d\n", x, y, z);
printf("%d\n", x * 10 + y * 5 + z);