דוגמאות נוספות
כעת נקבל טעימה ממספר קונספטים מתקדמים יותר, אותם נלמד בהרחבה בהמשך הקורס.
קבלת קלט מהמשתמש
#include <stdio.h>
int main() {
// This program will print the sum of 3 numbers
/*
This is the start of a
multiline comment
*/
int sum, number1, number2, number3;
scanf("%d", &number1);
scanf("%d", &number2);
scanf("%d", &number3);
sum = number1 + number2 + number3;
printf("sum = %d\n", sum);
}
בתוכנית הזו יש שלושה מרכיבים חדשים:
- בתחילת הקוד מופיעות הערות (comments).כשנרצה לכתוב טקסט חופשי על הקוד שמסביר אותו, נותן לו קונטקסט או עוזר בדרך כזו או אחרת, נשתמש בהערות. הקומפיילר מתעלם לחלוטין מהערות ולכן ניתן לכתוב בהם מה שנרצה. יש בקוד את שני סוגי ההערות בהן תומכת השפה:
- שורה המתחילה ב-
//הופכת להערה עד לסוף השורה. - הסימון
*/הוא סימון לתחילת הערה מרובת שורות (multiline comment), בעוד שהסימון/*מסמן את סוף ההערה. כך ניתן לכתוב הערות שאורכן מספר שורות בלי להתחיל כל אחת מהן ב-//.
- שורה המתחילה ב-
- הצהרנו בתוכנית הזו על ארבעה משתנים –
number1, number2, number3, sum. נשים לב שלקיצור ניתן להצהיר על מספר משתנים מאותו סוג באותה שורה עם רווחים ביניהם, כפי שעשינו. - לאחר שקראנו 3 מספרים מהמשתמש, ביצענו חישוב – חיברנו את שלושת המספרים וכתבנו את התוצאה למשתמש sum. זו דוגמא לפעולה בסיסית בין כמה משתנים – בהמשך נראה פעולות נוספות שניתן לצפות שאפשר לעשות, כמו חיסור, כפל, חילוק ועוד. נשים לב ל-
+בין המספרים - זוהי דוגמא לאופרטור שפועל בין שני משתנים.
לולאות
מה היה קורה אם היינו רוצים לחבר מאה משתנים? האם היינו צריכים להצהיר על מאה משתנים? כמובן שלא – השפה עוזרת לנו במקרה זה ע“י קונספט שנקרא לולאה, כמו בתוכנית הבאה:
#include <stdio.h>
int main() {
int sum, i, num;
sum = 0;
i = 0;
while (i < 5) {
scanf("%d", &num);
sum = sum + num;
i = i + 1;
}
printf("sum = %d\n", sum);
fflush(stdout);
}
בתוכנית זו מופיעה הדוגמא הראשונה שראינו ללולאה – דרך לבצע את אותו קטע קוד מספר כלשהו של פעמים. הלולאה בקוד היא מסוג while וניתן לקרוא אותה כך - while (כל עוד) התנאי שבסוגריים מתקיים, בצע את קטע הקוד שבתוך הבלוק. במקרה זה אתחלנו משתנה בשם i ל-0, וביצענו את קטע הקוד כל עוד הוא קטן מ-5. בכל ביצוע של הלולאה הגדלנו אותו ב-1, ולכן לאחר 5 איטרציות הלולאה תסיים ונדפיס את הסכום. זוהי דרך פשוטה לחבר בין מספר כלשהו של מספרים. ביצוע פעולות על האיברים ברשימה מסוימת היא תבנית נפוצה מאוד - בהמשך נראה סוג נוסף של לולאות בשם for הנראה כך:
#include <stdio.h>
int main() {
int sum = 0, num;
for (int i = 0; i < 100; i++) {
scanf("%d", &num);
sum = sum + num;
}
printf("sum = %d\n", sum);
}
לולאת ה-for מכילה מעט יותר מרכיבים (וכמובן שאת כולם נלמד בהמשך). את הלולאה הספציפית שמופיעה כאן ניתן לקרוא כך - התחל עם משתנה int i = 0, בצע את הלולאה כל עוד i < 100, ובכל איטרציה הגדל את i ב-1.