Java/תנאים ולולאות/תרגילים

מתוך ויקיספר, אוסף הספרים והמדריכים החופשי
קפיצה אל: ניווט, חיפוש

לולאות - התחלה[עריכה]

כוכביות[עריכה]

כתבו תוכנית, קצרה ככל האפשר, המדפיסה בשורה 20 כוכביות ('*').


כוכביות 2[עריכה]

שפרו התוכנית, כך שהכוכביות יודפסו בצורת קו אלכסוני (בשורה הראשונה תודפס *, בשורה השנייה - * ולפניה רווח אחד, בשורה השלישית - * ולפניה 2 רווחים, וכן הלאה). רמז: השתמשו בלולאה כפולה.


מחרוזות - חזרה[עריכה]

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

היפוך[עריכה]

כתבו תוכנית פשוטה שתקבל מחרוזת מהמשתמש, ותהפוך אותה על פניה. כלומר: אם התקבלה המחרוזת "ding dong", תודפס המחרוזת "gnod gnid". הנחיה: השתמשו בפונקציית הספרייה charAt ובלולאה מתאימה.


חיפוש במחרוזת[עריכה]

כעת כיתבו תוכנית שתקבל אות ומחרוזת, ותדע לומר מתי מופיעה האות במחרוזת בפעם הראשונה. לדוגמה: אם המשתמש יכניס "a" ו-"Bla bla", הפלט יהיה 3, שכן האות מופיעה בפעם הראשונה במקום השלישי. דאגו לכך שאם האות לא מופיעה כלל, תגיב התוכנית בהתאם.

הנחיות:

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


תנאים לקלט[עריכה]

סדרה[עריכה]

סדרה חשבונית היא סדרה של מספרים עם הפרש קבוע ביניהם. למשל: 1,2,3,4,5 היא סדרה חשבונית. גם 9,7,5,3,1 היא סדרה חשבונית. 1,2,4,8 היא לא סדרה חשבונית, כיוון שההפרש בין האיברים הוא לא קבוע. כתבו תוכנית המקבלת קלט שמורכב מהאיבר הראשון של הסדרה, ההפרש בין האיברים, ומספר האיברים בסדרה, ומדפיסה את הסדרה כולה. אם, לדוגמה, מקבלת התוכנית את הקלט 1 2 3 תדפיס התוכנית את הסדרה 1,3,5 (שלושה איברים, שההפרש ביניהם 2, והראשון מביניהם הוא 1). מספר האיברים שהתוכנית שלנו תסכים להדפיס הוא מוגבל: לכל הפחות, תודפס סדרה ובה איבר אחד (שהוא האיבר הראשון). לכל היותר, תדפיס התוכנית 15 איברים. דאגו לכך שאם המשתמש מכניס קלט אחר, תדפיס התוכנית הודעה מתאימה ותעצור. ניתן להשתמש בפקודה System.exit(0) כדי לעצור את פעולת התוכנית, אך לא חובה להשתמש בה.


הזדמנות שנייה[עריכה]

נסו לשפר את התוכנית שכתבתם, כך שהתוכנית לא תעצור במקרה של קלט לא חוקי, אלא תמשיך לנסות ולבקש מהמשתמש קלט חוקי. אם המשתמש ממשיך להכניס קלט לא חוקי - תעצור התוכנית אחרי 5 נסיונות כושלים.