05-07-2007, 03:13
|
|
|
|
חבר מתאריך: 04.08.02
הודעות: 4,468
|
|
הבעיה מבקשת ממך לקלוט מס' X ולבדוק מהם המחלקים שלו.
כלומר, באילו מספרים X מתחלק בהם ללא שארית.
אילו משתנים נצטרך במהלך התוכנית?
ציינת שניים בעצם - הראשון שיהווה מקום לשמור את קלט המשתמש, והשני שיהווה אינדקס ללולאה.
NUM ו-INDEX בהתאמה.
איך נזהה אם מס' X מתחלק ב-Y ללא שארית (או, איך נבדוק אם Y הוא מחלק של X?)
נתן לעשות זאת בעזרת האופרטור modulus, אשר מביא את השארית של חלוקה מסיימת.
מגיעים לתנאי כזה.
אם התנאי מתקיים, הרי לפנינו מס' Y שהוא בעצם מחלק של X.
אילו אפשרויות נתן לפסול?
אם נקח כמובן מאיליו שמס' X מתחלק בעצמו ללא שארית, נתן לפסול כל אפשרות שהיא מעל X/2.
אז מה קבלנו בסופו של דבר?
קוד:
INPUT X
SET INDEX = 1
WHILE INDEX < X / 2
DO
IF X MOD INDEX EQUALS 0
PRINT INDEX
INDEX = INDEX + 1
שורה 1. קולטים מס' לתוך משתנה X.
שורה 2. מציבים את הערך הראשוני למשתנה INDEX (תחשבי למה דווקא אחד ולא אפס כפי שעשית)
שורה 3. כל עוד INDEX קטן מ-X/2 (ראי את הסעיף של אפשרויות שנתנות לפסילה)
שורה 4. בצע...
שורה 5. בעצם התנאי שהסברתי, בעזרתו קובעים אם INDEX הוא בעצם מחלק של X.
שורה 6. אם התנאי הקודם התקיים, מדפיסים את ה-INDEX.
שורה 7. עוברים למס' הבא...
_____________________________________
C pogrammers never die. They are just cast into void.
|