1 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel 1 Introduction to Programming in C תרגול
מטרת התרגול לולאות 2 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel
דוגמא: הדפסת כוכביות התוכנית הבאה קולטת שלם n ומדפיסה n כוכביות : void main() { int n; printf/scanf while (n > 0) { printf(“*”); n--; } נעקוב אחר התוכנית, עבור : n > 0 n < 0 n == 0 3 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel
תרגיל 1: סדרה חשבונית כתבו תוכנית אשר קולטת שלם n ומחשבת את הסדרה החשבונית … + n ) השתמשו בלולאת (while void main() { int n, sum = 0; printf/scanf while (n > 0) { sum += n; n--; } printf } 4 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel
תרגיל 2: n! כתבו תוכנית אשר קולטת שלם n ומחשבת את העצרת של n: 1 * 2 * … * n ) השתמשו בלולאת (for void main() { int n, i, fac = ?; printf/scanf for (i = 1; i <= n ; i++) fac *= i; printf } 5 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel
תרגיל 4: מעקב עקבו אחר מהלך התוכנית ונסו להבין מה היא מבצעת : void main() { int x, y, something = 0; printf(“Enter two numbers”); scanf(“%d%d”, &x, &y); while (x-- > 0) something++; for (;y > 0; y--, something--); printf(“%d”, something); } 6 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel
כתבו תוכנית אשר קולטת שני שלמים x ו -y ומחשבת את x בחזקת y ( השתמשו בלולאה כרצונכם ) void main() { int x, y, pow = 1; printf/scanf while (y-- > 0) { pow *= x; } printf } 7 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel תרגיל 3:
תרגיל 5: לולאה כפולה כתבו תוכנית שקולטת שלם n ומדפיסה ריבוע nxn של כוכביות int n, i; printf/scanf printf(“\n”); for (i = 0; i < n ; i++) { int j; for (j = 0; j < n ; j++) printf(“*”); printf(“\n”); } 8 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel
תרגיל 6: טור לייבניץ כתבו תכנית המחשבת את ערכו המקורב של PI ( ) באמצעות טור לייבניץ ברמת הדיוק של δ =. טור לייבניץ הינו: 9 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel
10 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel
תרגיל 7: להפוך מספר כתוב תוכנית אשר קולטת מספר שלם ומדפיסה אותו הפוך – שימו לב שהמספר עלול להיות שלילי ( התייחסו למקרה זה לאחר שתטפלו במקרה של מספרים חיוביים ) 11 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel
int num, reversed_num = 0, sign = 1; // Get number printf/scanf // Treat negative number as positive and remember sign if (num < 0) } sign = -1; num = -num; } // Reverse number while (num > 0) { reversed_num = reversed_num * 10 + num % 10; num /= 10; } printf(“Reversed = %d\n”, reversed_num *= sign); 12 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel