You are on page 1of 3

‫מטלה ‪4‬‬

‫לולאות | שימוש ב‪ break -‬ו‪continue -‬‬


‫דגשים‪:‬‬
‫אינדנטציה‬ ‫•‬
‫פשטות‬ ‫•‬
‫נכונות‬ ‫•‬
‫שימו לב אילו משתנים עליכם להגדיר‪ ,‬ומאיזה טיפוס‬ ‫•‬
‫שמות המשתנים צריכים להיות משמעותיים‬ ‫•‬
‫יש לתת הודעות קלט ופלט ברורות‬ ‫•‬
‫שימוש בקבועים במידת הצורך‬ ‫•‬
‫תרגיל זה אין לעבוד עם חומר מתקדם כגון מערכים‬ ‫•‬

‫התרגילים‪:‬‬
‫‪.4.1‬‬
‫‪( .a.4.1‬שימוש בלולאת ‪ )FOR‬כתבו תוכנית בשם ‪ Q4_1a.c‬עבור תחרות ריצה‪ .‬בתחרות כל אצן‬
‫משתתף ב‪ 8-‬מקצים‪ .‬התוכנית קולטת עבור אצן בתחרות את תוצאות הריצה של האצן‬
‫בשמונת המקצים‪ .‬התוכנית תדפיס כפלט את התוצאה הממוצעת ואת התוצאה המהירה‬
‫ביותר של האצן באחד מן המקצים (התוצאה הטובה ביותר‪ -‬הכי מעט זמן)‪.‬‬
‫ראו מסך פלט לדוגמא‪:‬‬

‫(לא להרצה) נתונה התוכנית הבאה‪:‬‬ ‫‪.b.4.1‬‬


‫‪#define _CRT_SECURE_NO_WARNINGS‬‬
‫>‪#include <stdio.h‬‬

‫{ )(‪void main‬‬
‫;‪int num,a= 0‬‬
‫;)"‪printf("Please enter a number:\n‬‬
‫;)‪scanf("%d",&num‬‬
‫{)‪for (int i = 1; i < num; i++‬‬
‫)‪if (num % i == 0‬‬
‫;‪a += i‬‬
‫}‬
‫}‬
‫מה יהיה ערכו של המשתנה ‪ a‬עבור ‪ num=6‬ועבור ‪ ?num=20‬בנוסף רשמו מה התוכנית מבצעת (יש‬
‫לציין את מטרת התוכנית ולא לרשום את שלבי הקוד)?‬
‫________________________________________________________________‬
‫________________________________________________________________‬
‫________________________________________________________________‬

‫(להרצה – לולאה מקוננת) כתבו תוכנית ‪ Q4_2.c‬הקולטת מספר שלם חיובי ומדפיסה האם‬ ‫‪.4.2‬‬
‫המספר "מאושר"‪ .‬מספר יוגדר כ"מאושר" אם תתקבל הספרה ‪ 1‬כאשר מחברים את סכום‬
‫ריבועי ספרותיו בתהליך חוזר‪.‬‬
‫דוגמאות‪:‬‬
‫המספר ‪ 13‬הנו מספר מאושר כי ‪:‬‬ ‫•‬
‫‪13 → 12 + 32 = 10 → 12 + 02 = 1‬‬
‫המספר ‪ 82‬הנו מספר מאושר כי ‪:‬‬ ‫•‬
‫‪82 → 82 + 22 = 68 → 62 + 82 = 100→12 + 02 + 02 = 1‬‬
‫המספר ‪ 12‬אנו מספר מאושר כי‪:‬‬ ‫•‬
‫‪12 → 12 + 22 = 5 ≠ 1‬‬
‫**עשו שימוש בלולאת ‪ while‬ו‪do while-‬‬
‫ראו מסכי פלט‪:‬‬

‫(להרצה – לולאה מקוננת) להלן שתי דרישות עליכם לבחור לממש אחת מן הדרישות‬ ‫‪.4.3‬‬
‫(תרגיל בונוס ‪ ,a.4.3‬או תרגיל עם הקלה ללא בונוס ‪)b.4.3‬‬
‫‪ .a.4.3‬תרגיל בונוס (מי שמצליח לפתור את התרגיל יקבל בונוס ‪ 5‬נק לציון של התרגיל) יש‬
‫לכתבו תוכנית בשם ‪ Q4_3.cpp‬הקולטת מספר שלם חיובי ‪ num‬ומדפיסה ‪ num‬מסגרות‬
‫של כוכביות אחת בתוך השנייה‪ ,‬כאשר במרכז המסגרת הפנימית תוצג הצורה ‪ X‬בעלת‬
‫‪ 4*num+1‬כוכביות‪.‬‬
‫עבור ‪ Num=2‬יודפס‪:‬‬ ‫למשל עבור ‪ Num=1‬יודפס‪:‬‬

‫**המלצה‪ :‬פרקו את ההדפסה לשלושה חלקים ‪ :‬מעל האיקס‪ ,‬האיקס ומתחת לאיקס‪.‬‬
‫‪ .b.4.3‬יש לכתב תוכנית בשם ‪ Q4_3.cpp‬הקולטת מספר שלם חיובי ‪ num‬את הצורה ‪ X‬בעלת‬
‫‪ 4*num+1‬כוכביות‪ .‬למעשה רק את החלק הפנימי של סעיף קודם רק את האיקס‪.‬‬

‫(לא להרצה) נתונה התוכנית הבאה ‪:‬‬ ‫‪.4.4‬‬


‫‪#define _CRT_SECURE_NO_WARNINGS‬‬
‫>‪#include <stdio.h‬‬

‫{ )(‪void main‬‬
‫;‪int x = 0‬‬
‫{ )‪for (int i = 0; i < x + 1 && x<10; i++‬‬
‫;‪++x‬‬
‫)‪if(x%2‬‬
‫;)‪printf( "i = %d x = %d\n",i ,x‬‬
‫}‬
‫}‬
‫שכתבו את התוכנית הנ"ל שהלולאה תבצע את אותה הלוגיקה אך עם פקודות ‪ break‬ו‪continue-‬‬
‫________________________________________________________________‬
‫________________________________________________________________‬
‫________________________________________________________________‬
‫________________________________________________________________‬
‫________________________________________________________________‬
‫________________________________________________________________‬

You might also like