םיליגרת תרבוח | java תפשב בשחמה יעדמל אובמ to cs - java... ·...

46
מבוא למדעי המחשב בשפתJAVA | חוברת תרגילים תוכן עניינים מבוא למדעי המחשב בשפתJAVA | חוברת תרגילים................................ ................................ ........................ 1 1 . אבני הבניין של השפה................................ ................................ ................................ ......................... 2 2 . תרגילי תחביר................................ ................................ ................................ ................................ ..... 3 א. תרגילי תחביר- משפטי תנאי................................ ................................ ................................ ......... 3 ב. תרגילי תחביר לולא ות................................ ................................ ................................ .................. 4 ג. תרגילי תחביר מערכים................................ ................................ ................................ ................ 5 3 . ביטויים לוגיים ומשפטי תנאי................................ ................................ ................................ ................. 6 4 . לולאות................................ ................................ ................................ ................................ ................ 9 5 . מערכים ומטריצות................................ ................................ ................................ .............................. 18 6 . פונקציות................................ ................................ ................................ ................................ ........... 26 7 . מחרוזות................................ ................................ ................................ ................................ ............ 34 8 . מיונים וחיפושים................................ ................................ ................................ ................................ . 38 9 . אובייקטים והכלת אובייקטים( וגם קצת קבצים ומיונים) ................................ ................................ ........ 40 10 . רקורסיות................................ ................................ ................................ ................................ ........... 43

Upload: others

Post on 09-Sep-2019

10 views

Category:

Documents


0 download

TRANSCRIPT

חוברת תרגילים| JAVAמבוא למדעי המחשב בשפת

תוכן עניינים 1 ........................................................................................ תרגילים חוברת| JAVA בשפת המחשב למדעי מבוא

2 ......................................................................................................................... השפה של הבניין אבני .1

3 ..................................................................................................................................... תחביר תרגילי .2

3 ......................................................................................................... תנאי משפטי - תחביר תרגילי .א

4 .................................................................................................................. ותלולא – תחביר תרגילי .ב

5 ................................................................................................................ מערכים – תחביר תרגילי .ג

6 ................................................................................................................. תנאי ומשפטי לוגיים ביטויים .3

9 ................................................................................................................................................ לולאות .4

18 ..............................................................................................................................ומטריצות מערכים .5

26 ........................................................................................................................................... פונקציות .6

34 ............................................................................................................................................ מחרוזות .7

38 ................................................................................................................................. וחיפושים מיונים .8

40 ........................................................................ (ומיונים קבצים קצת וגם) אובייקטים והכלת אובייקטים .9

43 ...........................................................................................................................................רקורסיות .10

של השפהאבני הבניין .1

להשתמש בקבועים! הקפידו

כתבו תוכנית הקולטת מהמשתמש רדיו של מעגל ומדפיסה את היקף ואת שטח המעגל. .1

ש"ח. 12בקפיטריה ניתן להזמין טוסט שמחירו .2

ש"ח נוספים. 2גון פטריות, זיתים, תירס וכו'(, ומחיר כל תוספת הינו ניתן לבקש להוסיף תוספות "זולות" )כ

צהובה וכו'(, ומחיר כל תוספת הינו -ניתן לבקש להוסיף תוספות "יקרות" )כגון גבינה בולגרית, אקסטרה גבינה

ש"ח נוספים. 3

כמו כן, יתכנו סוגי תוספות זולות או יקרות נוספים שאינם בשאלה.

: דוגמאות

ש"ח 14סט בתוספת זיתים יש לשלם עבור טו - ש"ח 16ת זיתים ופטריות יש לשלם עבור טוסט בתוספ - ש"ח 17וגבינה בולגרית יש לשלם עבור טוסט בתוספת זיתים - ש"ח 20קרות ותוספת זולה יש לשלם תוספות י 2עבור טוסט עם -

מהם נתוני התוכנית וכן האם כל נתון הוא קבוע, קלט, חישוב או פלט. החליטו

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

בחנות "רהיטים שווים" מספקים את שירות ההובלה של הרהיט בתשלום נוסף: .3

ש"ח נוסף בעבור כל ק"ג של הרהיט. 1ש"ח. עבור כל קומה יש לשלם 5עבור כל ק"מ הובלה יש לשלם

לקוח מהי הוצאותו הסופית בעבור הרכישה, כאשר ההוצאה כוללת את מחיר הרהיט, מחיר יש להציג ל

טיפ ממחיר הרהיט למובילים. 10% -ההובלה ו

: דוגמא

ק"מ מהחנות, סכום 10במרחק 3ק"ג, עבור לקוח שגר בקומה 80ש"ח ומשקלה 5000עבור ספה שעולה

הוצאתו הוא:

ש"ח 5790 = 5000*0.1+ 3*80*1+ 5*10+ 5000

מהם נתוני התוכנית וכן האם כל נתון הוא קבוע, קלט, חישוב או פלט. החליטו

כתבו תוכנית המבקשת מהמשתמש נתונים עבור הרכישה והציגו את המחיר שעליו לשלם.

תרגילי תחביר .2

ם עליכם לכתוב בתכנית אחת )בבלוק נפרד כל שאלה. אם לא ראיתאת השאלות שתתבקשו להגיש מפרק זה

.בלוקים בתרגול, יש דוגמה בסוף המצגת(/ הקפידו להשתמש בקבועים

משפטי תנאי -תרגילי תחביר .א

שנים, אחרת הוא מוגדר כבוגר. 18 -אדם מוגדר כקטין אם גילו מתחת ל .1

כתוב תוכנית המבקשת מהמשתמש את גילו ומציגה לו האם הוא קטין או בוגר.

, אחרת הוא מוגדר כפנסיונר. 65-18שנים, כבוגר אם גילו בין 18 -אדם מוגדר כקטין אם גילו מתחת ל .2

כתוב תוכנית המבקשת מהמשתמש את גילו ומציגה לו האם הוא קטין, בוגר או פנסיונר.

ספרתי )ניתן להניח שהקלט תקין( ומציגה הודעה האם שתי -כתוב תוכנית הקולטת מהמשתמש מספר דו .3

הספרות זהות.שתי 44ספרות המספר זהות. למשל במספר

ספרתי )ניתן להניח שהקלט תקין( ומציגה הודעה האם -כתוב תוכנית הקולטת מהמשתמש מספר תלת .4

שלוש הספרות זהות. 444שלוש ספרות המספר זהות. למשל במספר

ספרתי )ניתן להניח שהקלט תקין( ומציגה הודעה האם שתי -כתוב תוכנית הקולטת מהמשתמש מספר דו .5

אין מספר עוקב, 9שתי הספרות עוקבות. נשים לב שלספרה 45ות. למשל במספר ספרות המספר עוקב

ולכן אם יש ספרה מימינה התשובה תהיה שספרות המספר אינן עוקבות.

ספרתי )ניתן להניח שהקלט תקין( ומציגה הודעה האם -כתוב תוכנית הקולטת מהמשתמש מספר תלת .6

אין 9לוש הספרות עוקבות. נשים לב שלספרה ש 567שלוש ספרות המספר עוקבות. למשל במספר

מספר עוקב, ולכן אם יש ספרה מימינה התשובה תהיה שספרות המספר אינן עוקבות.

לפני כל נסיעה במכונית עלינו לבדוק האם יש למלא דלק. עפ"י ההמלצה, יש כדאי למלא דלק כאשר כמות .7

מהכמות המירבית של הטנק. 15%הדלק שנותרה בטנק היא

וב תוכנית המציגה למשתמש הודעה האם עליו למלא דלק בהתאם לנתוני גודל הטנק שברכבו.כת

פי זמן היעד שקבעו לעצמם. רץ אשר משער -במירוץ הלילה של ליליפוט הרצים מחולקים למקצים על .8

-ל 50, רץ אשר משער שיסיים את המירוץ בין Aדקות )כולל( משובץ למקצה 50שיסיים את המירוץ עד

דקות משובץ 60 -, ורץ אשר משער שיסיים את המירוץ תוך יותר מBדקות )כולל( משובץ למקצה 60

.Cלמקצה

כתוב תוכנית המציגה למשתמש לאיזה מקצה הוא משובץ.

הספרות השמאליות מייצגות את היום, שתי הספרות הבאות 2ספרות: 8נייצג תאריך ע"י מספר בן .9

ימניות מייצגות את השנה. הספרות 4-מייצגות את החודש ו

דוגמאות לקלט:

20062014ייוצג ע"י המספר 20.6.2014התאריך

8062014, שהוא בעצם המספר 08062014ייוצג ע"י המספר 8.6.2014התאריך

כתוב תוכנית הקולטת מהמשתמש תאריך ומציגה לו את ההודעה הבאה:

The year is XXXX, the month is XX, and the day is XX.

( יוצג:15092010)המיוצג ע"י המספר 15.9.2010למשל עבור התאריך

The year is 2010, the month is 9, and the day is 15.

נגדיר כי החודשים מרץ, אפריל ומאי מוגדרים כאביב; החודשים יוני, יולי ואוגוסט מוגדרים כקיץ; החודשים .10

ו; והחודשים דצמבר, ינואר ובפרואר מוגדרים כחורף.ספטמבר, אוקטובר ונובמבר מוגדרים כסתי

ומציגה לו הודעה לאיזו עונת שנה ספרות 8כמספר בעל כתוב תוכנית הקולטת מהמשתמש תאריך

התאריך שייך.

:דוגמאות

10/10/2010שייך לסתיו, כי הוא מייצג את התאריך 10102010התאריך

1/07/2015את התאריך שייך לקיץ, כי הוא מייצג 01072015התאריך

לולאות –תרגילי תחביר .ב

מספרים זוגיים. 5כתוב תוכנית הקולטת מהמשתמש מספרים שלמים עד אשר הוקלדו בדיוק .1

זוגיים.-מספרים שלמים והצג כמה מספרים שהוקלדו אי 10כתוב תוכנית הקולטת מהמשתמש .2

ווים שהם אותיות גדולות.ת 5כתוב תוכנית הקולטת מהמשתמש תווים עד אשר הוקלדו בדיוק .3

תווים והצג כמה תווים הם אותיות קטנות. 10כתוב תוכנית הקולטת מהמשתמש .4

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

זהות. ניתן להניח כי הקלט תקין.

ספרתי התוכנית תבקש מהשמתמש -ו תלתכתוב תוכנית הקולטת מהמשתמש מספר. כל עוד המספר אינ .6

להקליד את מספר חדש.

. 7ספרתי שהוא כפולה של -כתוב תוכנית הקולטת מהמשתמש מספרים עד אשר מוקלד מספר תלת .7

. 378למשל המספר

בום!": התוכנית תדפיס את כל 7כתוב תוכנית הקולטת מהמשתמש מספר ומדמה את המשחק " .8

תוצג המילה 7בל, אבל כל פעם כאשר יש מספר שהוא כפולה של ועד המספר שהתק 1 -המספרים מ

“boom!” .במקום המספר

תווים המייצגים אותיות עוקבות )ניתן 3כתוב תוכנית הקולטת מהמשתמש תווים עד אשר מוקלדים ברצף .9

להניח שבקלט רק אותיות קטנות(.

דוגמאות למתי יפסק הקלט:

a -> b -> a -> c -> d -> e

a -> b -> c

a -> f -> g -> h

מערכים –תרגילי תחביר .ג

של מספרים שלמים וקלוט לתוכו ערכים. הצג רק ערכים שהם זוגיים. 10הגדר מערך בגודל .1

של תווים וקלוט לתוכו ערכים. הצג את האינדקסים שבתוכם ישנו תו שהוא אות 10הגדר מערך בגודל .2

גדולה.

, 0: כלומר הערכים 3תוכו לפי הסדר ערכים שהם כפולות של ושים ב 10הגדר מערך של מספרים בגודל .3

וכו'. 6, 3

את הערכים שנמצאים במיקומיים 1 -מספרים שלמים וקלוט לתוכו ערכים. הגדל ב 10 הגדר מערך של .4

וכו'(. 4, 2, 0זוגיים )

את הערכים שנמצאים 1 -וקלוט לתוכו ערכים. הגדל ב 10הגדר מערך של מספרים שלמים בגודל .5

, 0) 3את הערכים שנמצאים במיקומים שהם כפולה של 1-וכו'( ואח"כ הקטן ב 4, 2, 0במיקומיים זוגיים )

וכו'(. 6, 3

וקלוט לתוכו ערכים, וכן קלוט תו נוסף. הצג כמה פעמים התו הנוסף 10בגודל הגדר מערך של תווים .6

שהתקבל מופיע במערך.

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

ערכים לתוך המערך השני. הצג את המיקומים אשר הערכים בהם בשני המערכים זהים.

כל אחד. קלוט ערכים לתוך המערכים הראשון והשני. שים 5מערכים של מספרים שלמים בגודל 3הגדר .8

התואמים במערכים הראשון והשני.בכל איבר במערך השלישי את סכום האיברים במיקומים

תווים וקלוט לתוכו ערכים. בדוק האם כל התווים שהוקלדו למערך זהים והציגו הודעה 5הגדר מערך של .9

מתאימה.

מספרים שלמים וקלוט לתוכו ערכים. בדוק האם ערך כל איבר גדול מערך האיבר 5הגדר מערך של .10

שלפניו והצג בסוף הודעה מתאימה.

לוגיים ומשפטי תנאי ביטויים .3

מקרים זרים על קריטריון זהה ולא לשלב בין קריטריונים שונים. אם יש צורך אז בתוך בדיקתיש להקפיד על if .פנימי

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

מציגה לו אם יוכל לקנות מתישהו את הטוסטוס, ואם כתוב תוכנית המבקשת מפלוני את הנתונים הדרושים ו

כן, כמה חודשים יהיה עליו לעבוד עד אשר יוכל לקנות אותו.

, B -ו Aאת מקדמי המשוואה . עליכם לקלוט מהמשתמשAx+B=0כתבו תוכנית הפותרת את המשוואה הבאה .2

, אין פתרון או אינסוף פתרונות.Xולהציג את פתרון המשוואה: ערכו של

:הבאים הקריטריונים י"עפ לחתונה ק'בצ לתת ישכסף כמה המחשבת תוכנית ובכת .3

500 הינו הבסיס סכום קרובים כחברים מוגדרים הכלה או החתן אם ₪

1000 הוא הבסיס משפחה-בני הינם הכלה או החתן אם ₪

250 הינו הבסיס סכום אחר מקרה בכל ₪

בן אתה אם אלא, נוספים ₪ 50 לשים שי, שנים 3 מעל היא הזוג מבני אחד עם ההיכרות םא- משפחה

משפחה-בן אתה אם אלא, מהסכום ₪ 50 להוריד יש שעה מעל לחתונה הנסיעה זמן םא

.ק'הצ לגובה ההמלצה את להציג ולבסוף לקלוט שיש הנתונים מהם להחליט םעליכ

:הבאות ההגבלות י"עפ ספרים להשאיל יכול מנוי שכל כך, מנויים יש בספריה .4

במקרה, ספר משאיל מנוי כאשר. ספרים 3 עד להשאיל יכול ילד ומנוי, ספרים 5 עד להשאיל יכול מבוגר מנוי

יכול שעדיין הספרים במספר תלות ללא) נוסף ספר לו להשאיל ניתן לא, חודש מעל שמוחזק ספר בבית לו ויש

(.להשאיל

.נוסף ספר כעת יללהשא יכול האם ומציגה, מנוי נתוני קולטת אשר תוכנית לכתוב עליכם

.לקלוט יש נתונים אילו להחליט עליכם

אחד על לפחות עונה האם הוא לבדוק יש ליליפוט במכללת ללימודים מתקבל סטודנט האם להחליט מנת על .5

:הבאים הקריטריונים מן

.102 לפחות בגרות מוצעממ -

האנגלית חלק על שהציון וגם 145 לפחות הינו הכמותי החלק על שהציון וגם, 700 לפחות וכמטריכפסי וןצי -

.120 לפחות הינו

:הינה השקלול נוסחאת כאשר, 600 לפחות הוא הפסיכומטרי ציון עם הבגרות ממוצע יקלולש -

(פסיכומטרי ציון) (בגרות ציון/) + 0.8 * 1.2

:דוגמאות

הקריטריונים משני אחד בסיס על מתקבל ואינו מאחר. 95 בגרות ציון לו ויש 650 פסיכומטרי קיבל גוליבר

גוליבר של המשוקלל וציונו מאחר. 599.1666 = 95/1.2 + 0.8*650: המשוקלל ציונו מהו נבדוק, הראשונים

.ללימודים מתקבל אינו הוא 600 -מ קטן

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

.600.8333 = 97/1.2 + 0.8*650 :600 מעל

להתקבל יכול הסטודנט האם הודעה ומציגה הדרושים הנתונים את מהמשתמש הקולטת תוכנית ובכת

.ליליפוט במכללת ללימודים

המציגה הצעת אימון לאדם הרוצה להיכנס לכושר ריצה. תוכנית בוכת .6

השבועות שכבר התאמן. פרמסועל ,מנוחההמבוסס על דופק , הההצעה מתבססת על כושרו של האדם

להלן טבלה עם נתונים:

70דופק מנוחה מעל 70 -ל 60דופק מנוחה בין 60דופק מנוחה עד

ק"מ 3 ק"מ 3 ק"מ 3 2-1שבוע

ק"מ 3 ק"מ 5 ק"מ 5 4-3שבוע

ק"מ 3 ק"מ 8 ק"מ 10 והילך 5שבוע

האדם לרוץ באימון הקרוב. יש להחליט מה הנתונים שיש לקלוט ולהציג לבסוף המלצה כמה ק"מ על

)ציון מתוך מאה(, ממוצע מספרים שלמים המיצגים: ציון בחינה 3כתבו תכנית אשר מקבלת מהמשתמש .7

-כנית תחשב את הציון הסופי עלותרגילים(. הת 8(, ומספר תרגילים שהוגשו )עד מאהתרגילי בית )ציון מתוך

פי הנוסחה הבאה:

נכשל(. 0ציון הסופי הוא תרגילי בית כולל, ה 4אם הוגשו עד(

ראו בהמשך הסבר תקף בציון הסופי 20%תרגילי בית: ממוצע תרגילי הבית יהווה 6או 5אם הוגשו(

לפחות. במידה והסטודנט קיבל 55במידה והסטודנט עבר את הבחינה בציון מהו "ציון תקף"(

ומטה, הציון הסופי יהיה זהה לציון הבחינה. 54בבחינה ציון של

תרגילי בית: 8או 7הוגשו אם

o ומטה: 54אם ציון הבחינה הוא

מגן. 25%ומעלה, אז תרגילי הבית מהווים 08אם ממוצע תרגילי הבית הוא

מגן. 20%, אז תרגילי הבית מהווים 08אם ממוצע תרגילי הבית הוא פחות מ

o מגן. 30%: תרגילי הבית מהווים 100ל 55הציון בבחינה נע בין

שר כתוב תקף, הכוונה היא שהציון של תרגילי הבית ישוקלל בכל מקרה, גם אם הוא מוריד את : כאהערהאם ורק אם הוא מעלה את . כאשר כתוב מגן, הכוונה היא שהציון של תרגילי הבית ישוקלל הבחינהציון

.ציון הבחינה

לפי החישוב שתואר מספרים ולהדפיס את הציון הסופי בקורס 3צריכה לקרוא מהקלט שתכתבו התכנית

לעיל.

לולאות .4

!Stringשימו לב: כדי לפתור תרגילים בפרק זה אין להשתמש במחלקה

הוספת ספרות משמאל / ימין שהוצגו במצגת.: לעבור על דוגמאות יצירת מספרים ע"י טיפ

וספרה, והצג כמה פעמים הספרה מופיעה במספר. חיובי שלם קלוט מהמשתמש מספר .1

מופיעה פעמיים. 3, מאחר והספרה 2יוצג הערך 3והספרה 123532ספק דוגמא: עבור המ

ולייצר מספר חדש המכיל רק את הספרות שבמיקומים הזוגיים. חיובי שלם יש לקלוט מהמשתמש מספר .2

.0מיקומה של הספרה הימנית ביותר הוא

.135יש לייצר את המספר 12345: עבור המספר דוגמא

את מספר. יש להציג בעלי מספר ספרות זהה חיוביים שלמים מספרים 2תמש מהמשכתוב תוכנית הקולטת .3

.זהה בעלות ערךשספרות במיקומים זהים ה

נמצאות באותם מיקומים בשני 5-ו 2, 1כי הספרות 3יוצג 58512 -ו 53412: עבור המספרים דוגמא

המספרים.

אלגוריתם ידי על מחושבת והיא ותהזה מספר של, ביותר הימנית, התשיעית הספרה היא הביקורת ספרת .4

Luhn ,מעבדות איש פיתח שאותו IBM הזהות למספרי רק לא ביקורת ספרות לחישוב המשמש, 50-ה בשנות

.הישראלים

שמשמאל הספרות משמונה אחת לכל שניתנת זהה משקל מסדרת מורכבת הביקורת ספרת לחישוב הנוסחה

, 1, 2(, הראשונה לספרה) 1: משמאל הספרות משמונה תאח לכל שניתנת המשקל סדרת. זהות מספר בכל

2 ,1 ,2 ,1 ,2.

למשל אם. מההכפלה שנוצרו הספרות כל את מחברים בהמשך. לה שניתן במשקל מוכפלת ספרה כל

אם, למשל. הספרות חיבור בפעולת לזו זו מחוברות ספרותיו שתי, ספרתי דו מספר נוצר ההכפלה בעקבות

ההכפלה תוצאת. הזהה המשקל סדרת לפי 2 הוא שלה המשקל, 8 היא הזהות מספר של השישית הספרה

.החיבור לכל 16 את מוסיפים ולא, 6-ו 1 את היתר בין מחברים, הספרות כל של החיבור בפעולת. 16 היא

. מעלה כלפי 10 של הקרובה לכפולה משלימים בהכפלה שנוצרו הספרות כל בחיבור שמתקבל הסכום את

. הביקורת ספרת הוא ההשלמה לצורך שנדרש ההפרש. 50-ל מעגלים, 48 הוא שהתקבל וםהסכ אם, למשל

.2 זה במקרה

78962134-9(: פיקטיבי זהות מספר) לדוגמה חישוב

7x1=7 , 8x2=16, 9x1=9, 6x2=12, 2x1=2, 1x2=2, 3x1=3, 4x2=8

7+1+6+9+1+2+2+2+3+8: שהתקבלו הספרות כל את מחברים

.41: שהתקבל הסכום

שהוא, 41-ל 50 בין ההפרש) להשלמה שנדרש ההפרש. 50-ל מעגלים 10 של הקרובה לכפולה להגיע כדי

.הביקורת ספרת היא 9 לכן. 9 הוא( החיבור סכום

html-40,Lhttp://www.ynet.co.il/articles/0,73.4483052,00: מקור התיאור

הודעה למשתמש והצג, (ספרות 9או 8)סה"כ הכולל ספרת ביקורת זהות תעודת מספר מהמשתמש קלוט

.ל"הנ האלגוריתם בדיקת י"עפ תקין המספר האם

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

הבא:

ת תהפוך להיות ספרת העשרות וספרת העשרות תהפוך להיות ספרת האחדות ספרת האחדו -

ספרת המאות תהפוך להיות ספרת האלפים וספרת האלפים תהפוך להיות ספרת המאות -

וכו' -

זוגי, הספרה השמאלית תשאר במקומה.-במידה ומספר הספרות אי

:דוגמאות

1325476התוכנית תייצר ותציג את המספר 1234567עבור המספר

7982התוכנית תייצר ותציג את המספר 9728עבור המספר

ולייצר מספר חדש כך שספרותיו הן כמו המספר המקורי, ומימינן חיובי שלם יש לקלוט מהמשתמש מספר .6

הספרות בסדר הפוך.

.123321יש לייצר את המספר 123עבור המספר :דוגמא

. -הכוללים את הסימן + עד אשר יוקלד ביטוי עם הסימן כתוב תוכנית הקולטת מהמשתמש ביטויים חשבונים .7

עבור כל ביטוי התוכנית תייצר מספר חדש ותציגו באופן הבא: הספרות השמאליות הינן תוצאת חיסור

המספרים והספרות שמימין הן תוצאת חיבור המספרים.

:דוגמאות

ניתן להניח שהמספר הראשון גדול מהמספר השני.

ak-a.akamaihd.net/hphotos-f-sphotos-https://fbcdn-התמונה לקוחה מתוך:

prn2/t1/1888550_10152193586557878_1560289186_n.jpg

ואינשטיין מיד 17/85כאשר אינשטיין הגאון היה ילד, המורה ביקשה ממנו לחשב את תוצאת צמצום השבר .8

וב כ"כ מהר והוא ענה שהוא העלים . המורה שאלה אותה כיצד ביצע את החיש1/5ענה לה שהתוצאה היא

(. 5( והעלים מהמכנה את ספרת העשרות )ולכן נשאר עם 1מהמונה את ספרת האחדות )ולכן נשאר עם

כמובן ששיטה מוזרה זו אינה עובדת עבור כל שבר..

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

שברים אשר דרך צמצום זו עובדת עבורם.ה

דוגמאות לשברים שאמורים לצאת לכם בפלט:

שברים שכאלו. 48לידיעתכם, סה"כ יש

בעלי מספר ספרות זהה )ניתן להניח כי חיוביים שלמיםכתוב תוכנית הקולטת מהמשתמש שני מספרים .9

באופן הבא: intהתוכנית תבנה מספר חדש מטיפוס הקלט תקין(.

ספרת האחדות במספר הראשון תעיד כמה פעמים תופיע ספרת האחדות מהמספר השני במספר החדש - ספרת העשרות במספר הראשון תעיד כמה פעמים תופיע ספרת העשרות מהמספר השני במספר החדש - וכו' -

סדר הספרות במספר החדש יהיה עפ"י סדרן במספר המקורי. - ספרות בלבד. 9 -המספר החדש מוגבל ל -

:דוגמה

Enter 2 numbers with the same number if digits: 123 456 res = 455666

תופיע 4תופיע פעמיים במספר החדש והספרה 5פעמים במספר החדש, הספרה 3תופיע 6כלומר, הספרה

פעם אחד בלבד.

:דוגמה

Enter 2 numbers with the same number if digits: 2323 6789 res = 677788999

תופיע 7הספרה תופיע פעמיים במספר החדש, 8פעמים במספר החדש, הספרה 3תופיע 9כלומר, הספרה

ספרות במספר 9 -תופיע פעם אחת בלבד מאחר ולא יתכן שיהיו יותר מ 6פעמים במספר החדש והספרה 3

.החדש

:דוגמה

Enter 2 numbers with the same number if digits: 333 678 res = 666777888

בתוכנית זו נחלק את המספר לחלקים )מימין וספרה.שלם חיובי כתוב תוכנית הקולטת מהמשתמש מספר .10

לשמאל( כך שאורכו של כל חלק יהיה כערך הספרה שנקלטה. במידה ולחלק האחרון אין מספיק ספרות, הוא

ישאר באורך הנותר.

:למשל

12|34|56מספר לחלקים הבאים: נחלק את ה 2והספרה 123456עבור המספר

1|234|567נחלק את המספר לחלקים הבאים: 3והספרה 1234567עבור המספר

התוכנית תייצר מספר חדש כך שסדר הספרות בכל חלק הפוך.

:דוגמה

Enter a number and a digit: 12345678 3 res = 21543876

ת סדר הספרות בכל חלק המספר החדש שמתקבל ולאחר שהופכים א 12|345|678חלקי המספר המקורי:

21|543|876הוא

:דוגמה

Enter a number and a digit: 123456 2 res = 214365

תוכנית הקולטת מהמשתמש מספר. כתוב .11

התוכנית תציג למסך ריבוע באופן הבא: המשולש התחתון שמאלי של הריבוע יהיה עם * והמשולש העליון

הימני יהיה עם #.

וגמאות:ד

יוצג הריבוע הבא: 6המספר עבור

יוצג הריבוע הבא: 5עבור המספר

כתוב תוכנית הקולטת מהמשתמש מספר ומציירת משולש שווה שוקיים שבסיסו למעלה. .12

יצוייר המשולש הבא )הקווים הם רק כדי שיהיה לכם יותר נוח לנתח(: 7: עבור המספר דוגמא

*-*-*-*-*-*-* -*-*-*-*-*-* --*-*-*-*-* ---*-*-*-* ----*-*-* -----*-* ------*

צייר שעון חול כך זוגי המייצג בסיס של משולש )ניתן להניח כי הקלט תקין(.-קלוט מהמשתמש מספר אי .13

שבסיסו העליון והתחתון הם ברוחב הבסיס שנקלט.

:דוגמאות

יצויר שעון החול הבא: base=3עבור

ר שעון החול הבא:יצוי base=5עבור

קלוט מהמשתמש מספר והדפס "שטיח" של ריבועים: אורכו ורוחבו של כל ריבוע יהיה כערך המספר שהוקלד, .14

וכן בכל שורה ועמודה יהיו ריבועים כערך המספר שהוקלד.

דוגמאות:

ני ולבסוף גזע. קלוט כתוב תוכנית שתדפיס עץ ברוש. עץ ברוש מורכב מרצף של משולשים אחד מתחת לש .15

משולשים, ובסוף 3מתחת לשני -שיהווה את בסיס המשולש. יש לצייר ברצף אחדזוגי -אימהמתשמש מספר

זוגי שהוקלד מתחת למרכז המשולש האחרון.-לצייר את גזע העץ שהוא עמוד בגובה המספר האי

:3לדוגמא, עבור הערך

. התוכנית תדפיס משולש שווה שוקיים Xשתמש מספר הקוראת מהמוכנית ב כדי להקל את העבודה תתחילו

.Xשבסיסו

הפלט יראה כך )בדוגמא יש מקפים במקום רווחים, כדי שיהיה לכם יותר נוח לנתח את הפלט(: X=5למשל, עבור

/4616

הם זוג מספרים שכל אחד מהם שווה לסכום מחלקיו של המספר האחר, לא כולל מספרים ידידים .16

.1 המספר עצמו אבל כולל

מאחר ו: 284-ו 220הם המספרים מספרים ידידיםביותר של קטןהזוג הראשון וה

284וסכומם הוא 110 -ו 55, 44, 22, 20, 11, 10, 5, 4, 2, 1הם: 220מחלקיו השלמים של המספר -1 220וסכומם הוא 142 -ו 71, 4, 2, 1הם: 284מחלקיו השלמים של המספר -2

מספרים הידידים הראשונים.ה 10כתוב תוכנית המציגה את

פלט התוכנית צריך לבסוף להיות בדיוק הפלט הבא:

אם מחברים את סכום ריבועי ספרותיו בתהליך חוזר, עד לקבלת ספרה הוא מספר אשר ספר מאושרמ .17

.1בודדת, מקבלים את המספר

.100, 82, 32, 13מספרים מאושרים לדוגמא:

לחישוב: אותדוגמ

= 1 2+ 021 = 10 2+ 3 21 13

= 1 2+ 0 2+ 0 21 = 36+64 = 100 2+ 8 26 = 64+4 = 68 2+ 2 28 82

= 2+ 6 28 = 1+4+81 = 86 2+ 9 2+ 2 21 = 1+64+64 = 129 2+ 8 2+ 8 21 1880

= 1 2+ 0 2+ 0 21 64+ 36 = 100

/4617

מספרים רצופים שהם מאושרים. 3ועד שיש 10 -מ המספרים המאושריםכתוב תוכנית המציגה את כל

סוף פלט התוכנית צריך לבסוף להיות בדיוק הפלט הבא:

/4618

ומטריצות מערכים .5

!Stringשימו לב: כדי לפתור תרגילים בפרק זה אין להשתמש במחלקה

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

השני, אבל בסדר הפוך. המערךי לערכ

: דוגמאות

תוצג ההודעה שהאוספים הפוכים 1 2 3 4 5והאוסף 5 4 3 2 1עבור האוסף -

וצג ההודעה שהאוספים אינם הפוכיםת 1 2 3 5 4והאוסף 5 4 3 2 1בור האוסף ע -

גדול מערךה. התוכנית תציג האם הערך של כל איבר 5בגודל מערךכתוב תוכנית הקולטת מספרים לתוך .2

מהערך שמשמאלו.

דוגמאות:

תוצג ההודעה שכל ערך גדול מהערך שמשמאלו. 20 21 32 65 98עבור האוסף -

תוצג ההודעה שלא כל ערך גדול מהערך שמשמאלו. 20 21 70 65 98עבור האוסף -

האיברים הראשונים. 2-ערכים ל וקלוט 10בגודל מערךוב תוכנית המגדירה כת .3

כך שערכו של כל איבר יהיה סכום שני האיברים שלפניו. המערךיברי עליך למלא את שאר א

.המערךלבסוף יש להציג את ערכי

:דוגמא

לבסוף יראה כך: המערך, 6וכמספר השני את 2אם קלטנו כמספר הראשון את

2,6,8,14,22,36,58,94,152,246

שווה ערכים זוג כל האם יגתצ שלם. התוכנית ומספר 5 בגודל מערך מהמשתמש הקולטת תוכנית כתוב .4 .שהתקבל למספר

:דוגמא

האיבר סכום, 7 הוא והשני הראשון האיבר וסכום מאחר" אמת" יוצג 7 והמספר[ 4, 3, 4, 3, 4] המערך עבור '.וכו 7 הוא השלישי עם השני

.בגודל זהה מערכיםכתוב תוכנית הקולטת ערכים לשני .5

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

כלומר:

/4619

הראשון במערך 1 -השני שווה לערכו של האיבר ה במערך 2-האם ערכו של האיבר ה

הראשון במערך 2 -השני שווה לערכו של האיבר ה במערך 3-וגם האם ערכו של האיבר ה

הראשון במערךהשני יבדק למול האיבר האחרון רךבמעוכן הלאה. ערכו של האיבר הראשון

דוגמאות:

:trueהבאים יוצג המערכיםעבור שני

5 4 3 2 1

8 6 4 3 9

5 4 3 2 1

6 4 3 9 8

:falseהבאים יוצג המערכיםעבור שני

5 4 3 2 1

8 6 4 3 9

5 4 3 2 1

8 5 4 3 9

אותיות גדולות בדיוק, כל השאר 2במערך זה יש ידוע כי . םתווים וקלוט לתוכו נתוני 10הגדר מערך של .6

. עליך להחליף את כל האותיות בטווח זה לאותיות גדולות.)ניתן להניח שהמשתמש ידידותי( קטנות

afgKERTMhהוא ישתנה להיות afgKertMhלמשל: עבור המערך:

הערכים להיות ממוינים מהקטן וקרא לתוך שניים מהם ערכים מהמשתמש, על 5בגודל מערכים 3 הגדר .7למערך השלישי כל ערך העתק )ניתן להניח כי המשתמש ידידותי(. וכן כל הערכים שונים זה מזה לגדול

האיברים מספרלבסוף הדפס את המערך השלישי וכן את שמופיע גם במערך הראשון וגם במערך השני. .שבו

.2הערך ויוצג בנוסף, 4 -ו 2מערך השלישי יהיו הערכים ב 92,4,7,8,והמערך 1,2,3,4,5: עבור המערך דוגמא

., וכן בתנאי ששני המספרים חיובייםד מראה" אם סדר הספרות שלהם הפוךצמד מספרים יקרא "צמ .8

: דוגמאות

הינם "צמד מראה" 321 -ו 123 - ד מראה"מצהינם " 121 -ו 121 -

נם "צמד מראה".מראה" אם כל זוג ערכים מההתחלה והסוף הי מערךנקרא " מערך

:דוגמאות

/4620

5-ו 2הינם "צמד מראה" הערכים במיקומים 6-ו 1האוסף הבא הינו "אוסף מראה" מאחר והערכים במיקומים

הינם "צמד מראה". 4-ו 3הינם "צמד מראה" והערכים במיקומים

321 121 54 45 121 123

נם "צמד מראה".אי 5-ו 2האוסף הבא אינו "אוסף מראה" מאחר והערכים במיקומים

321 121 54 45 123 123

.וקיים ערך שליליהאוסף הבא אינו "אוסף מראה" מאחר

321 123- 54 45 123 123

( וקולטת לתוכו מספרים. התוכנית תציג הודעה 6זוגי )למשל SIZEבגודל מערךכתוב תוכנית המגדירה

הינו "אוסף מראה". המערךמתאימה האם

שנקלט זוגי. המערך ניתן להניח כי גודל

.שלמים וחיוביים אוספים בגודל זהה וקלוט לתוכם מספרים 2הגדר .9

יש לבדוק ולהציג הודעה האם סכום הספרות זהה באיברים במיקומים תואמים.

:דוגמא

עבור שני האוספים הבאים התוכנית תדפיס שהאוספים תואמים.

227 61 14

92 43 23

:הסבר

וגם סכום הספרות באיבר הראשון אוסף השני הוא 5אשון באוסף הראשון הוא סכום הספרות באיבר הר -5

7וגם סכום הספרות באיבר השני באוסף השני הוא 7סכום הספרות באיבר השני באוסף הראשון הוא - הספרות באיבר השלישי באוסף השני וגם סכום 11סכום הספרות באיבר השלישי באוסף הראשון הוא -

11הוא

/4621

והדפס את האינדקס של העמודה תושל תווים ואתחל אותה. קלוט מהמשתמש 5X5יצה בגודל מטר הגדר .10

בה התו שהוקלד מופיע הכי הרבה פעמים. אם התו כלל לא מופיע במטריצה יש לתת הודעה מתאימה )שימו לב: אין לעבור על המטריצה בהתחלה כדי לבדוק זאת!(.

את המשתמש בכמה שורות ובכמה עמודות מהמטריצה . שאל10X10הגדר מטריצה של מספרים בגודל .11

(. קלוט ערכים למטריצה לפי המימד 10 -ל 1ברצונו להשתמש, יש לוודא כי הקלט אכן תקין )כלומר בין שהמשתמש ביקש. הצג למסך את המטריצה כפי שהוקלדה ע"י המשתמש )במימד שהמשתמש ביקש(. יש

החיצונית של המטריצה ולהציגו למסך.למצוא את הערך המקסימלי הנמצא על המסגרת

דוגמאת פלט:

.10-0לתוכו ערכים בטווח וקלוטמספרים 4הגדר מערך עם .12 למסך את הפלט הבא, בהתאם להוראות הבאות: הדפס

יש להדפיס למסך פלט כך שעבור כל ערך במערך תהייה עמודה שבתחתיתה הערך ומעליה כוכביות כערך. { יודפס הפלט הבא:4 2 6 5לדוגמא עבור המערך }

( ולמלא אותה בצורת נחש כפי 4-8שיוגרלו בטווח בין ) NxMבשאלה זו עליכם להגדיר מטריצה בגודל .13

יתחיל בעמודה הימנית למעלה, ירד ויעלה בעמודה ליד וכו' )ראו 1שראינו במצגת, אבל הפעם הערך דוגמאות פלט(.

זוגית.-ודות זוגית וגם איעמ למספרשימו לב: הקוד צריך להיות כללי גם

אחד והעקרון מאוד דומה לפתרון שראינו בהרצאה. ifרמז בקרה: בפתרון הטוב ביותר יש רק

/4622

ים במקומות היוצרים צורת יהלום, אין חשיבות לערכים שיש - 0הגדרה: מטריצה תקרא יהלומית אם יש בה .14

בשאר המקומות.

:דוגמאות

0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0

0 0

של מספרים בהתאם. N*Nומקצה מטריצה ריבועית Nתוכנית הקוראת מהמשתמש מספר כתוב

.1או 0בקש מהמשתמש להכניס לתוך כל איבר את הערך

הדפס את המטריצה עם הנתונים.

ית והדפס את התשובה.היא יהלומ שהוכנסהבדוק האם המטריצה

נגדיר "מטריצה מקופלת ראשית" אם כאשר "מקפלים" את הפינה הימנית העליונה לעבר הפינה השמאלית .15התחתונה הערכים שיושבים אחד על השני זהים. נשים לב שאיברי האלכסון הראשי )מהפינה השמאלית

העליונה לפינה הימנית התחתונה( אינם רלוונטים להגדרה.

דוגמאות:

בשתי הדוגמאות הבאות כל זוג מספרים שיושב אחד על השני בקיפול מוקף בצורה זהה:

ריבועית של מספרים )מספר השורות שווה למספר העמודות( תוכנית הקולטת מספרים למטריצהכתוב

.והדפס את המטריצה

/4623

.התוכנית תציג הודעה האם המטריצה שהתקבלה היא "מקופלת ראשית"

צה מקופלת משנית" אם כאשר "מקפלים" את הפינה השמאלית העליונה לעבר הפינה הימנית נגדיר "מטרי .16התחתונה הערכים שיושבים אחד על השני זהים. נשים לב שאיברי האלכסון המשני )מהפינה הימנית

העליונה לפינה השמאלית התחתונה( אינם רלוונטים להגדרה.

דוגמאות:

בשתי הדוגמאות הבאות כל זוג מספרים שיושב אחד על השני בקיפול מוקף בצורה זהה:

ריבועית של מספרים )מספר השורות שווה למספר העמודות( תוכנית הקולטת מספרים למטריצהכתוב

.והדפס את המטריצה

."משניתהתוכנית תציג הודעה האם המטריצה שהתקבלה היא "מקופלת

'. -' -בשאלה זו נדון במטריצה המורכבת מתווים, ובפרט התווים '|' ו .17

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

' בלבד. התווים הללו מעידים על מיקום התו הבא ברצף.-ת התווים '|' ו/או 'רצף התווים מכיל א

למשל אם בתא במסלול יש את התו '|' משמע התו הבא במסלול צריך להיות מתחתיו, ואם התו במסלול הוא

' התו הבא במסלול צריך להיות משמאלו.-'

התו בשורה התחתונה חייב להיות התו '|'.

. וקלוט לתוכה תווים מהמשתמש והצג את המטריצה 10-4ריבועית בטווח המטריצהגרל את מימדי

והצג האם קיים מסלול של קווים מהפינה הימנית העליונה ועד לאיבר כלשהוא בשורה התחתונה בדוק

.הודעה מתאימה

: אותדוגמ

מאחר ויש מסלול עפ"י ההגדרה הנ"ל. true יוצג ותהבא ותעבור המטריצ

' ולא '|'.-מאחר שאין מסלול, כי התו בשורה התחתונה הוא ' false יוצגהמטריצה הבאה עבור

/4624

בשורה השלישית יש '|', ואז הימני ביותרמאחר שאין מסלול, כי באיבר false יוצג עבור המטריצה הבאה

האיבר הבא במסלול היה צריך להיות מתחתיו ולא לידו.

כאשר אינם חלק '-' -יכול להופיע כל תו אחר, כולל התווים '|' ו ’a‘בכל הדוגמאות האלה, במקום התו

.מהמסלול

מוגבלים בטווח המספרים אותם הם יכולים להכיל. int -ו longהטיפוסים .18

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

:דוגמא

במערך: יכול להיות מיוצג 1234המספר

4 3 2 1

או למשל במערך )אין משמעות לאפסים מובילים במספר(:

4 3 2 1 0

כתבו את הפונקציה הבאה:

public static int[] multiplyNumbers(int[] num1, int[] num2)

הפונקציה מקבלת שני מערכים שבכל איבר יש ספרה יחידה. המערכים מייצגים מספרים חיוביים שלמים כפי

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

התוצאה, אף היא, תחזור במערך של ספרות )ראה תזכורת לכפל ארוך בסוף השאלה(.

:1דוגמא

עבור המערך

4 3 2 1

והמערך

7 9

/4625

מערך:בהתאמה, יש לייצר ולהחזיר את ה 97 -ו 1234המייצגים את המספרים

8 9 6 9 1 1

(1234*97=119,698)

אין בשום שלב להמיר את איברי המספר ממערך לטיפוס אחר. :ההגבל

הפתרון צריך להיות כללי כך שיתאים לכל אורך של מספרים. שימו לב:

: ניתן למצוא בקישור תזכורת לכפל ארוך

http://he.wikibooks.org/wiki/%D7%97%D7%A9%D7%91%D7%95%D7%9F/%D7%9B%D7%A4%D7%9C

/4626

פונקציות .6

כתוב פונקציה המקבלת מספר חיובי שלם ומחזירה מספר חדש כך שכל ספרה תוחלף בספרה שערכה גדול .1 .0חלף בספרה תו 9מהספרה המקורית במספר שהתקבל. הספרה 1 -ב

:דוגמאות

23456יוחזר המספר 12345עבור המספר

212121יוחזר המספר 101010עבור המספר

200יוחזר המספר 199עבור המספר

0יוזחר המספר 99עבור המספר

40יוחזר המספר 939עבור המספר

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

האחדות בשני המספרים, וכנ"ל לספרת העשרות המאות וכו'.

דוגמאות:

מאחר והמספרים אינם באותו אורך -1יוחזר 5678 -ו 123 עבור המספרים

היא ספרת העשרות 5היא ספרת האחדות הקטנה, 4) 154זר המספר יוח 456 -ו 194עבור המספרים היא ספרת המאות הקטנה(. 1 -הקטנה ו

להלן הגדרה מוויקיפדיה: .3

כתוב פונקציה המקבלת מספר ומחזירה האם הוא משוכלל או לא.

זר הערך ולוודא שהערכים שעבורם מוח 10000 -ל -1בבדיקת הפונקציה יש לשלוח אליה את כל הערכים בין true .הם אכן רק המספרים המופיעים בהגדרה הנ"ל

א( כתוב פונקציה המקבלת מספר ומחזירה את סכום ספרותיו. .4

ב( כתוב פונקציה המקבלת מערך של מספרים שלמים ומספר שלם עם אורך המערך. הפונקציה תחזיר את תבתם בסעיף א'.. יש להשתמש בפונקציה שכ10מספר האיברים במערך שסכום ספרותיו הוא

# יודפס )ציירתי פה -ו 4כתוב פונקציה המקבלת מספר ותו, ומדפיסה למסך מסגרת של מעוין. למשל עבור .5

_ במקום רווחים(:

סולמיות(( 4 -רווחים ו 0סולמיות, 4סולמיות )כלומר ########8 )

סולמיות( 3רווחים, 2סולמיות, ###3__### )

סולמיות( 2רווחים, 4 סולמיות, ##2____## )

סולמיות( 1רווחים, 6סולמיות, #1______# )

/4627

סולמיות( 2רווחים, 4סולמיות, ##2____## )

סולמיות( 3רווחים, 2סולמיות, ###3__### )

סולמיות(( 4 -רווחים ו 0סולמיות, 4סולמיות )כלומר ########8 )

שמע, מספר השורות שווה למספר העמודות(.כתוב פונקציה המקבלת מטריצה ריבועית )מ .6

אם סכום האיברים בכל שורה שווה לסכום האיברים בעמודה המתאימה, ותחזיר TRUEהפונקציה תחזיר

FALSE .אחרת

כלומר, יש לבדוק אם סכום איברי השורה הראשונה שווה לסכום העמודה הראשונה וכו'.

וכנ"ל 8, מאחר וסכום איברי השורה הראשונה הוא ETRU: עבור המטריצה הבאה הפונקציה תחזיר דוגמא

וכנ"ל סכום איברי העמודה השניה וסכום 16סכום איברי העמודה הראשונה. סכום איברי השורה השניה הוא

וכנ"ל סכום איברי העמודה השלישית: 8איברי השורה השלישית הוא

5 1 2

3 7 6

0 8 0

הטור הראשון זהים בערכם ובמיקומם לאיברי הטור האחרון, מטריצת מראה הינה מטריצה שבה איברי .7 איברי הטור השני זהים בערכם ובמיקומם לאיברי הטור לפני האחרון וכו'.

:דוגמאות

המטריצות הבאות הינן מטריצות "מראה": 2

2 1 5 1 2

6 7 3 7 6

0 8 0 8 0

2 1 5 5 1 2

6 7 3 3 7 6

0 8 0 0 8 0

ינה מטריצת "מראה":המטריצה הבאה א

2 1 5 1 2

6 8 3 7 6

0 8 0 8 0

של מספרים ומימדיה.כתוב פונקציה המקבלת מטריצה אחרת. FALSEהמטריצה היא "מטריצת מראה", אם TRUEהפונקציה תחזיר

/4628

מוגבלים בטווח הערכים אותם הם יכולים להכיל. int -ו longהטיפוסים .8

פר בתוך מערך, כך שבכל איבר במערך תהייה ספרה אחת. לכן בתרגיל זה נבחר לייצג מס

:דוגמא

: באופן הבא יכול להיות מיוצג במערך 1234המספר

4 3 2 1

)אין משמעות לאפסים מובילים במספר(: הבא או למשל במערך

4 3 2 1 0

. הפונקציה מערכים שכל אחד מהם מייצג מספר כפי שהוגדר לעיל 2אשר מקבלת addכתבו את הפונקציה

המספרים שהתקבלו. 2מערך חדש שייצג את המספר שהוא סכום ערכי ותחזירתייצר

:1דוגמא

עבור המערך

4 3 2 1

והמערך

7 9

בהתאמה, יש לייצר ולהחזיר את המערך: 97 -ו 1234המייצגים את המספרים

1 3 3 1

(1234+97=1331)

:2דוגמא

עבור המערך

9 9 9 9

והמערך

7 9

/4629

בהתאמה, יש לייצר ולהחזיר את המערך: 97 -ו 9999המייצגים את המספרים

6 9 0 0 1

או למשל את המערך:

6 9 0 0 1 0

(9999+97=10096)

בתוצאה יש ספרה אחת יותר מאשר במספר הארוך יותר. 2, בדוגמא לתשומת ליבכם

אין בשום שלב להמיר את איברי המספר ממערך לטיפוס אחר. :ההגבל

מטריצה בתוך מטריצה אשר כל ערכיה בטווח -היא תת Xעליונה בגודל -מטריצת אפסים שמאלית :הגדרה .9

.0[ הם X-1[]1-X[ ועד האיבר ]0[]0]

דוגמאות:

כפי שמתואר לעיל. Xהמקבלת מטריצה ריבועית, ומחזירה את גודלה max0Rectangleכתבו את הפונקציה

ציה הקודמת )כלומר, היעילות תהייה רלבדוק תאים שנבדקו באיט ציה איןר: בכל איטהגבלה

O(SIZExSIZE).)

/4630

מיקום במטריצה, ולא בהכרח רק על האלכסון. ליכול להופיע בכ 0: הערך שאינו 1הבהרה

באיברי המטריצה שאינם חלק ממטריצת האפסים השמאלית עליונה יכול להיות כל ערך. כלומר, : 2הבהרה .ולא ספציפית רק באיבר יחיד במטריצה 1הערך לא ספציפית רק

/4631

דריקס(-מיקס-עיגול )איקס-משחק איקס .10

. עליכם להשלים את את עיגול-תוכנית המדמה את המשחק איקס המצורף נתונה XO_starter.javaבקובץ

וא הקוד כך שהתוכנית תעבוד בצורה מושלמת. שימו לב להגדרת הקבועים ולשימוש בהם. מומלץ מאוד לקר

את הקוד המצורף ולהבין את הלוגיקה הכללית, ורק אז "לצלול" לתוך המימושים.

TODO // -החלקים שעליכם להשלים מסומנים ב

<< XO_starter.javaלהלן קישור לקובץ

<< לראות כיצד התוכנית לבסוף צריכה לעבודושתוכלו להריץ jar קובץלהלן קישור ל

הגדרת המשחק:

אים עד לקבלת תוצאה סופית של עם התחלת התוכנית יתחיל משחק, ויש לבצע בו את השלבים הב -

המשחק:

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

וכן כי המשבצת המבוקשת עדיין אינה מסומנת. (, 1-3מבחינת הערכים האפשריים )שורה ועמודה בין הקלט יהיה בפורמט "מספר רווח מספר". ניתן .לפני קבלת נתונים בשלב זה אין להמשיך לשלב הבא

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

את אחת מתוצאות המשחק: עם סיום המשחק יש להציג -

( השחקן הראשוןXניצח )

( השחקן השניOניצח )

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

יבחר לסיים. דוגמאת פלט באיטרציה מסוימת:

/4632

11. Murble Puzzle

כאשר יש size+1*2שאורכו תווים . בבעיה זו ישנו מערךMurble Puzzleם לפתרון בשאלה זו נממש אלגורית

' כאשר הם מסודרים לסירוגין, והאיבר האחרון הוא ריק.0תווים עם התו ' size -' וXתווים עם התו ' sizeבמערך

: size=3דוגמה עבור

: size=4דוגמה עבור

ומסדרת את איברי המערך כך שכל העיגולים יהיו בצד sizeעליכם לכתוב תוכנית המבקשת מהמשתמש את

שמאל וכל האיקסים יהיו בצד ימין.

המערך יסודר להיות size=3דוגמה: עבור

המערך יסודר להיות size=4דוגמה: עבור

על מנת לבצע סידור זה, יש לציית לחוקים הבאים:

(, או עם איבר המרוחק shiftכים לו )פעולה זו תקרא בכל סיבוב יוחלף המיקום הריק או עם אחד האיברים הסמו

(.jumpממנו מקום אחד, בתנאי שבאמצע בינהם יש תו אחר )פעולה זו תקרא

jump ,Lעבור shift ,Jיסמן Sפלט התוכנית יציג את מצב המערך לאחר כל סיבוב, תוך ציון מהי הפעולה שבוצעה )

(.rightעבור R -ו leftעבור

:size=3בור דוגמת פלט ע

:הדרכה

. לצורך הדוגמה מולאו size=3ה עבור לוח עם הבא ההטבלא השלמתראשית מיצאו את חוקיות ההזזות באמצעות

:רק שתי השורות הראשונות

תוכן המערך

סוג התזוזה

0 1 2 3 4 5 6

Move / Jump כיוון לתא מתא

0 x 0 x 0 x

0 x 0 x 0 x

Move 5 6 R

0 x 0 0 x x

Jump 3 5 R

.size=6מלאו באופן דומה טבלה עבור לוח עם

/4633

?מה קורה כאשר יש רצף של תאים 0ולאיזה כיוון תמיד זז X: מהי חוקיות ההזזה? לאיזה כיוון תמיד זז חישבו

זהים?

לפנות ולפתור את הקוד: לאחר שתענו על שאלות אלו ניתן

ידו על חלוקה נכונה לפונקציות ועל מודולריות.כתבו תוכנית הממשת משחק זה. הקפ

/4634

מחרוזות .7

מספרוכן את (text1, text2, text3)( של תווים מערכים של מחרוזות )מטריצות 3 פונקציה המקבלתכתוב .1

המטריצות הראשונות יש טקסט 2 -זהה של שורות ועמודות(. ב מספרהשורות במטריצות )בכל המטריצות

.ובמטריצה השלישית זבל

באופן הבא: text3-הפונקציה תשים מחרוזות ב

קטן מאורך שורה אפשרית, נעתיק את text2 -וב text1 -במידה והאורך הכולל של השורה המתאימה ב

text3 -. אחרת נשים בtext2 -ואח"כ נשרשר את השורה המתאימה מ text3 -ל text1 -השורה המתאימה מ

שורה ריקה.

המטריצות הראשונות. הפעל את הפונקציה, 2ות שכאלו וקרא נותנים לתוך מטריצ 3המגדיר mainכתוב

ולבסוף הדפס את המטריצה השלישית.

דוגמא לפלט לתוכנית:

השורות המטריצה, מספר שלם מספרכתוב פונקציה המקבלת מערך של מחרוזות )מטריצה של תווים(, .2

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

כמה שורות במטריצה יותר קצרות מהמספר שהתקבל וכן עבור כל שורה תעדכן במיקום תחזירהפונקציה

)כלומר, אם השורה הראשונה קצרה המתאים במערך הבוליאני האם השורה קצרה מהמספר שהתקבל או לא

. לבסוף הפונקציה ( false, אחרת true יהיה 0-מהמספר שהתקבל, ערכו של המערך הבוליאני במקום ה

תחזיר את כמות השורות שאורכן קצר מהמספר שהתקבל.

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

הפונקציה, הדפס את כמות השורות שארכן קצר מהמספר שהוגרל וכן את האינדקסים של שורות אלו.

ציה המקבלת מחרוזת ומחזירה מחרוזת חדשה המכילה את האות הראשונה מכל מילה במחרוזת פונקכתוב .3

שהתקבלה, וכל אות יכולה להופיע במחרוזת החדשה מקסימום פעם אחת בלבד.

:דוגמאות

HWתוחזר המחרוזת Hello Worldעבור המחרוזת -

GmSתוחזר המחרוזת Moshe Good morning Sunshineעבור המחרוזת -

nosתוחזר המחרוזת num of studentור המחרוזת עב -

/4635

חתימת הפונקציה תהייה:

public static String getFirstLetters(String str)

יש להשתמש בפונקציות של מחרוזות ולא "להמציא את הגלגל מחדש".

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

מחרוזת וערכי איבריו הם מספר התווים בכל משפט במחרוזת. ב

.NULLאם במחרוזת אין משפטים יוחזר

שימו לב:

משפט נגמר בתו נקודה ).( או בתו סימן קריאה )!( - ניתן להניח שיש לפחות רווח אחד בין משפט למשפט )אך יתכן גם יותר מרווח אחד( - שפט )כלומר, אורך המשפט הוא מהתו הראשון שאינו רווחים בתחילת המשפט אינם נספרים באורך המ -

רווח ועד הנקודה או סימן הקריאה )לא כולל((

:דוגמאות

:עבור המחרוזת - "Hi! This is a lovely day. Please join me for breakfast."

[.2, 20, 28עם הערכים הבאים: ] 3יוחזר מערך באורך

:עבור המחרוזת - "Hi! This is a lovely day. Please join me for breakfast"

[ )מאחר אין נקודה בסוף המחרוזת, המשפט האחרון אינו 2, 20עם הערכים הבאים: ] 2יוחזר מערך באורך

נספר(.

:עבור המחרוזת - " Hi ! This is a lovely day. Please join me for breakfast."

, מאחר והרווח לפני '!' 3[ )המשפט הראשון באורך 3, 20, 28] עם הערכים הבאים: 3יוחזר מערך באורך

נספר באורך המשפט(.

.0-ופרמטר הפלט יעודכן ל NULLיוחזר ""עבור המחרוזת -

.0-ופרמטר הפלט יעודכן ל NULLיוחזר "ab"עבור המחרוזת -

רקר מספר .5 ריבועו. המספרים של הייצוג העשרוני השווה לסכום הרישא והסיפא של מספר טבעי הוא קפ

.]מתוך ויקיפדיה[ דאטארייה רמאצ'אנדרה קפרקר ההודי שם המתמטיקאי-קרויים כך על

: אותדוגמ

(.1והסיפא היא 8)הרישא היא 8+ 1= 9 -ו (9²= 81) 81ריבוע ספרותיו הוא הוא מספר קפרקר, מכיוון ש 9 -, ופיצול המספר לשני חלקים )רישא וסיפא( 9048004641 = 95121² :מקיים את אותה תכונה 95121גם -

95121 = 04641 + 90480מניב:

/4636

, חזקתם וחלוקתם לרישא ולסיפא:10,000להלן דוגמה לכל מספרי הקפרקר עד

: חלוקת המספר לרישא ולסיפא אינה בהכרח באמצע!שימו לב

בשאלה זו נממש בשתי גרסאות את פונקציה הבאה:

public static boolean isKaprekarXXX(int num, int[] parts)

numאם המספר true. הפונקציה תחזיר 2באורך partsומערך של מספרים numהפונקציה מקבלת מספר

שהתקבל הוא מספר קפרקר, הפונקציה תעדכן numאחרת. במידה והמספר false -הוא מספר קפרקר, ו

וצג בדוגמאות הפלט לעיל.הי שבשני איברי המערך את חלוקתו לרישא ולסיפא כפ

:דוגמה

ואת המספר 744להיות המספר 0 -ותעדכן את המערך במקום ה trueהפונקציה תחזיר 2728עבור המספר

.1984להיות 1 -במיקום ה

ציה בשתי גרסאות: קכתבו את הפונ

תשתמש בפעולות חשבוניות .1

-ש רק בפעולת כפל יחידה על, כאשר מותר להשתמStringתשתמש אך ורק בפונקציות מהמחלקה .2 מנת להעלות את המספר בריבוע

עבור שתי הגרסאות מותר לכתוב פונקציות עזר ויש לדאוג שהקוד יהיה מודולרי.

השוו את זמני הריצה של כל אחת מהגרסאות באופן הבא: main -ב

מדדו את הזמן -

מצעות פעולות מתמטיות ועבור כל מספר בדקו בגרסה המומשת בא 10,000עד 1 -רוצו בלולאה מ - האם הינו מספר קפרקר, ואם כן, הדפיסו אותו כפי שהוצג בפלט לעיל.

מדדו את הזמנים שוב -

/4637

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

במדדו את הזמנים שו -

הציגו למסך את סה"כ הזמן שלקח ללולאה לרוץ בגרסה הראשונה ואת סה"כ הזמן שלקח ללולאה - לרוץ בגרסה השניה

הסיקו את המסקנות )אין צורך להגישן, אלא רק להתרשם מההבדל( -

/4638

מיונים וחיפושים .8

כך שהערך הגבוה ביותר יהיה ראשון: bubble sort -ציג גרסה לצפו בסרטו הבא המ .1

https://www.youtube.com/watch?v=VV18nfE4erU ממשו קוד המדמה בדיוק את סדר ההחלפות כפי שמוצג בסרטון.

פרים. הפונקציה תמיין את ערכי האלכסון הראשי כתבו פונקציה המקבלת מטריצה ריבועית של מס .2

מהקטן לגדול.

דוגמה: עבור המטריצה:

יש לעדכנה להיות:

הפונקציה תמיין את אותיות המחרוזת .פונקציה המקבלת מחרוזת הכוללת אותיות קטנות וגדולות כתבו .3 מהאות הקטנה לגדולה, אך לא תבדיל בין אותיות גדולות לקטנות

:דוגמאות

aBzהפונקציה תמיין אותה להיות zBaעבור המחרוזת -

aACzZהפונקציה תמיין אותה להיות zZaACהמחרוזת עבור -

: כאשר יש אות גדולה וקטנה זהה, לא משנה מי תופיע קודםהנחה

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

. במידה ואינו קיים הפונקציה תדפיס ודה בה נמצא הערךהשורה והעמ אינדקס אתתדפיס הפונקציה הודעה מתאימה.

: 7המטריצה הבאה והערך עבור למשל,

/4639

. הפונקציה יכלה להדפיס גם את שורה 7כי במיקום זה קיים הערך 1ועמודה 2שורה תדפיסהפונקציה

.2ועמודה 2

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

Bubble Sort שנלמד בכיתה כך שהערך הנמוך ביותר יהיה בפינה השמאלית העליונה והערכים יסודרו

בערך עולה לפי שורותיהם.

)כלומר אין להשתמש במערך : יש להשתמש במיון ולא רק לשים ערכים חדשים במטריצהשימו לב עזר(.

דוגמה לאיך המטריצה צריכה להיראות לאחר המיון:

כתוב פונקציה המקבלת מטריצה של מספרים. יש למיין את ערכי המטריצה תוך שימוש באלגוריתם .6Selection Sort שנלמד בכיתה כך שהערך הנמוך ביותר יהיה בפינה השמאלית העליונה והערכים

יסודרו בערך עולה לפי שורותיהם.

)כלומר אין להשתמש במערך יש להשתמש במיון ולא רק לשים ערכים חדשים במטריצה :שימו לב עזר(.

דוגמה לאיך המטריצה צריכה להיראות לאחר המיון:

/4640

)וגם קצת קבצים ומיונים(והכלת אובייקטים אובייקטים .9

אשר כוללת את הנתונים הבאים: Lecturerהגדר את המחלקה .1

name – שם המרצה

numOfTimesPenFalls - ערך מספר הפעמים שהמרצה מפיל את הטוש מהיד בממוצע בשיעור .

זה יכול להיות רק שלם חיובי.

favoriteIceCream - ם הגלידה החביבה עליו ש

ניתן להוסיף סעיף זה רק לאחר למידת הפרק 1000מספר זיהוי אוטומטי במערכת, החל מהמספר(

"תכונות ושיטות סטטיות"(

את הנתונים הבאים: תאשר כולל College המחלקהת הגדר א

name – שם המכללה

numOfLecturers - שמלמדים בפועלמספר מרצים

allLecturers - ( מטיפוס מחלקת מערך הכולל את נתוני המרציםLecturer)

הנחיות כלליות למחלקות: .א

a. יש לכתוב מד במכללה.צים המקסימלי שיכולים ללר. הבנאי יקבל גם את מספר המהגדר בנאים

שכפול.-בנאי העתקה במידה ואובייקט בר

b. ממש שיטותset ו- get לפי הצורך

c. ממש את השיטהtoString

במידה ואין מקום להוסיף falseהוסף פעולה המוסיפה מרצה נוסף. הפעולה תחזיר College במחלקה .ב

אם המרצה הוסף בהצלחה. true -מרצה נוסף, ו

הפעמים שהמרצה מפיל את מספראת מערך המרצים לפי וסף פעולה שתמייןה College במחלקה .ג

הטוש בשיעור )מהקטן לגדול(.

:mainכתוב פונקציית .ד

הגדרCollege .וקלוט לתוכו נתונים

מרצים חדשים. 2הוסף למכללה

.)הדפס את נתוני המכללה )וכמובן גם את נתוני המרצים

/4641

מים שהם מפילים את הטוש בשיעור.הפע מספרמיין את המרצים במכללה לפי

.הדפס שוב את נתוני המכללה )וכמובן גם את נתוני המרצים(, לאחר השינוי

יש לשאול את המשתמש main -לקובץ. בתחילת ה המכללהיש לשמור את נתוני main -עם היציאה מה .ה

ם מהקובץ )ניתן לעשות ואם כן לקרוא את הנתוני מקובץ קיים המכללההאם הוא מעוניין לטעון את נתוני

סעיף זה לאחר למידת הפרק "עבודה עם קבצים"(.

בשאלה זו נטפל באורחים המתאכסנים בבית מלון. .2

המחלקות הבאות: הגדירו אתלצורך כך

public class Guest {

private String name;

private int passportNumber; // ערך זה יכול להיות רק שלם חיובי

}

public class Room {

private int numOfBeds; // 1-4ערך זה יכול להיות רק שלם בין

private Guest[] allGuests;

}

public class Hotel {

private int numOfUsedRooms;

private Room[][] allRooms;

}

בחדר יותר אורחים ממספר ישנו שדה המעיד על מספר המיטות בחדר. לא ניתן לאחסן Roomבמחלקה

המיטות.

הינה מטריצה של חדרים, כך שכל שורה במטריצה מייצגת חדרים בקומה allRoomsהתכונה Hotelבמחלקה

ומספר 10 -מספר הקומות קטן מניתן להניח כי במלון. ניתן להניח שבכל הקומות מספר החדרים זהה,

.100 -החדרים בכל קומה קטן מ

בנאי המקבל את מספר הקומות ומספר החדרים בכל קומה. הבנאי יגריל את מספר Hotelכתוב למחלקה .א

יש לכתוב לשאר המחלקות בנאים ( ויאתחל בהתאם את נתוני המלון.4-1המיטות בכל חדר במלון )ערך בין

בהתאם.

)כל האורחים מתודה המקבלת מערך של אורחים ומשבצת אותם בחדר פנוי במלון Hotelבמחלקה כתוב .ב

. המתודה תחזיר מספר המייצג יכים להיות באותו חדר שמספר המיטות בו הוא לפחות כמספר האורחים(צר

את החדר בו שובצו האורחים: המספר יהיה תלת ספרתי כאשר ספרתו הראשונה היא מספר הקומה ושתי

הספרות הבאות הן מספר החדר.

דוגמאות:

325 יוחזר 25ורחים ששובצו בקומה השלישית בחדר עבור א -

/4642

209יוחזר 9ורחים ששובצו בקומה השניה בחדר בור אע -

מתודה המקבלת מספר פספורט של אורך ותחזיר את מספר החדר בו הוא מתארח. Hotelבמחלקה כתוב .ג

.-1במידה והאורח אינו מתארח במלון יוחזר

מתודה המחזירה את הקומה בה מספר החדרים הפנויים הגדול ביותר. Hotelמחלקה בכתוב .ד

והגדר בו מלון, ולאחר מכן הצג תפריט החוזר על עצמו ובו האפשרויות הבאות: mainכתוב .ה

קליטת נתוני אורחים ושיבוצם בחדר במלון. יש להציג באיזה חדר שובצו האורחים או האם אין חדר -1

ולא דרך המתודה. main -מתאים. ההודעה תוצג ב

מתאחסן. אם האורח אינו מתאחסן במלון יש קליטת מספר פספורט של אורח והצגה באיזה חדר הוא -2

ולא דרך המתודה. main -להציג הודעה מתאימה. ההודעה תוצג ב

הצג את נתוני המלון: עבור כל קומה יש להציג נתוני האורחים המתאחסנים בכל חדר. -3

הצג באיזו קומה יש את מספר החדרים הפנויים הגדול ביותר. -4

יש לשאול את המשתמש האם main -וני המלון לקובץ. בתחילת היש לשמור את נת main -עם היציאה מה .ו

)ניתן לעשות סעיף זה ואם כן לקרוא את הנתונים מהקובץ הוא מעוניין לטעון את נתוני המלון מקובץ קיים

לאחר למידת הפרק "עבודה עם קבצים"(.

/4643

רקורסיות .10

פונקציות. 5להלן .1

ה של הקוד עבור הערכים שמצויינים בהערה בשורת עבור כל פונקציה יש לצרף עץ המתאר הרצה יבש

.(ולא איךהפונקציה מבצעת מהחתימת הפונקציה, וכן לתאר במשפט בודד מה הפונקציה עושה )לציין

שימו לב: אין להריץ שאלה זו, אלא לפתור ולהגישה על נייר.

public static int foo(int x) } // run with x=529 if (x < 10) return x; return foo(x/10) + x%10; } public static int goo(int x[], int s) { // run with x={12, 91, 28}, s=3 if (s == 1) return x[s-1]; return goo(x, s-1) + x[0]; } public static void moo(int n) { // run with n=4 if (n == 0) return; moo(n-1); for (int i=0 ; i < n ; i++) System.out.print("*"); System.out.println(); } public static int koo(int x) { // run with x=529 if (x < 10) return x; int k = koo((x/100)*10+x%10); return (k*10+(x%100)/10); }

public static int doo(int x) { // run with x=1043 if (x < 10) return 1; return 1 + doo(x/10); }

הספרות הזוגיות. מספרכתוב פונקציה רקורסיבית המקבלת מספר ומחזירה את .2

אחרת. falseאם כל ספרותיו זוגיות, trueהמקבלת מספר ומחזירה רקורסיבית כתוב פונקציה .3

/4644

וגודלו ומחזירה את מספר הערכים הזוגיים.המקבלת מערך של מספרים רקורסיביתכתוב פונקציה .4

falseאם כל הערכים בו זוגיים, trueהמקבלת מערך של מספרים וגודלו ומחזירה רקורסיביתכתוב פונקציה .5

אחרת.

false, גדולותאותיות הם אם כל התווים בו trueמחרוזת ומחזירה כתוב פונקציה רקורסיבית המקבלת .6

אחרת.

אם הספרה מופיעה במספר, אחרת trueית המקבלת מספר וספרה. הפונקציה תחזיר כתוב פונקציה רקורסיב .7

.falseתחזיר

. שונה זוגיות בעל הינו( צמודות או) שכנות ספרות זוג כל בו כמספר" מתחלף מספר" נגדיר .8

אחרת תחזיר ,"מתחלף מספר" הוא אם trueותחזיר n כתוב פונקציה רקורסיבית המקבלת מספר שלם חיובי

false .

:דוגמאות

כי ליד כל ספרה זוגית יש ספרה אי זוגית. trueיוחזר 163458 עבור המספר

כי ליד כל ספרה זוגית יש ספרה אי זוגית. trueיוחזר 1634589 עבור המספר

זוגיות.-צמודות ושתיהן אי 7 -ו 3כי הספרות falseיוחזר 163789 עבור המספר

אם קיים זו לפחות זוג אחד של ספרות trueלת מספר חיובי שלם ותחזיר כתוב פונקציה רקורסיבית המקב .9

.falseמתחלפות כפי שהוגדר בשאלה הקודמת, אחרת הפונקציה תחזיר

. הפונקציה תחזיר את שארית b -ו aרקורסיבית המקבלת שני מספרים חיוביים שלמים כתוב פונקציה .10

שימוש בפעולות חיבור וחיסור בלבד. ( באמצעותa%b)כלומר את תוצאת b -ב aהחלוקה של

:switchLettersכתבו את הפונקציה הרקורסיבית .11

public c static void switchLetters(StringBuilder str, int indexBegin, int indexEnd) מחרוזת, אינדקס של האיבר הראשון ואינדקס של האיבר האחרון.מקבלת פונקציה ה

חרוזת מהסוף להתחלה.הפונקציה תהפוך המ דוגמא:

."edcba"בסיום הפונקציה המחרוזת תהפוך להיות , 4 -ו 0והמספרים " abcdeעבור המחרוזת: "

אם כל התווים בו רק אותיות trueכתוב פונקציה רקורסיבית המקבלת מערך של תווים ואורכו ומחזירה .12

אחרת. falseגדולות או רק אותות קטנות,

.falseיוחזר AkJL, ועבור trueיוחזר bacd -ו ABCDלמשל: עבור

ומחזירה מספר חדש המייצג את המספר שהתקבל 10כתוב פונקציה רקורסיבית המקבלת מספר בבסיס .13

.2בבסיס

בלבד(. 8או 2ומספר נוסף המייצג בסיס )שיכול להיות 10כתוב פונקציה רקורסיבית המקבלת מספר בבסיס .14

המייצג את המספר שהתקבל בבסיס שהתקבל.הפונקציה מחזירה מספר חדש

/4645

.16ומחזירה מחרוזת המייצגת את המספר בבסיס 10כתוב פונקציה רקורסיבית המקבלת מספר בבסיס .15

ומחזירה מספר המייצג את המספר 16כתוב פונקציה רקורסיבית המקבלת מחרוזת המייצגת מספר בבסיס .16

.10בבסיס

אם יש רצף trueקציה תחזיר נ. הפו1-9בין של מספרים וספרהכתוב פונקציה רקורסיבית המקבלת מערך .17

.falseועד הספרה, אחרת תחזיר 1 -של מספרים במערך מ

דוגמאות:

trueיוחזר 4והספרה 3,1,2,3,4,6,3עבור המערך -

trueיוחזר 4והספרה ,1,2,3,43,1,2עבור המערך -

trueיוחזר 4והספרה ,1,5,11,2,3,4עבור המערך -

falseיוחזר 4והספרה 3,1,2,1,2,3,5מערך עבור ה -

falseיוחזר 4והספרה 3,1,2,3,5,6,3עבור המערך -

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

מספר המופעים של התו במערך המחרוזות.

:דוגמא

משום 6הפונקציה תחזיר oוהתו 3שאורכו ,"yoyo" } {"gogo", "momo"עבור מערך המחרוזות -

פעמים בכל המחרוזות. 6שתו זה מופיע

אם סכום ספרות המספר trueמספרים שלמים. הפונקציה תחזיר 2כתוב פונקציה רקורסיבית המקבלת .19

.falseהראשון שווה לערך המספר השני, אחרת הפונקציה תחזיר

:דוגמא

trueוחזר י 6 -ו 123המספרים עבור -

falseיוחזר 6 -ו 124המספרים עבור -

trueיוחזר 15 -ו 4362עבור המספרים -

42 , 11 , 24 , 7 , 13 , 4 , 6 , 3 , 2 , 1 נתונה הסדרה )משמאל לימין(: .20

3, 2, 1: הם בסדרה הראשונים האיברים שלושתנתון כי תמיד -

לו הקודמים האיברים שלושת סכום הוא, 4-ה מהמקום החל, בסדרה זוגי במקום שנמצא איבר כל -

האיברים שני שבין המוחלט ההפרש הוא, 5-ה מהמקום החל, בסדרה זוגי-אי במקום הנמצא איבר כל -

. שלפניו הזוגיים במקומות

/4646

שיוחזר והערך י-n-ה המקום יהיה לפעולה הקלט) זו בסדרה י-n-ה האיבר לחישוב תרקורסיבי כתוב פונקציה

(. זה במקום האיבר של ערכו יהיה

: היזכרו בפתרון של סדרת פיבונאצ'ירמז

זמנית )לא ניתן -בהינתן סולם, ניתן לטפס על שלביו ע"י טיפוס של שלב בודד או ע"י טיפוס שני שלבים בו .21

שלבים או יותר(. 3לדלג על

כתוב פונקציה רקורסיבית המקבלת כפרמטר מספר שלבים בסולם וחזירה את מספר האפשרויות השונות

לטיפוס עליו.

דוגמה:

האפשרויות הבאות:מ בכל אחת שלבים, ניתן לטפס עליו 4עבור סולם עם

- 1 1 1 1

- 1 1 2

- 1 2 1

- 2 1 1

- 2 2

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

ירת שנתות של סרגל כך שהמספר שהתקבל הוא מספר המקבלת מספר שלם ומצי רקורסיבית כתבו פונקציה .22

השנתות במרכז הסרגל.

:n=3דוגמא עבור

: n=4דוגמא עבור