Java/מערכים/תרגילים

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

פעולות בסיסיות[עריכה]

בנייה ואתחול של מערך[עריכה]

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


מערך בגודל משתנה[עריכה]

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


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

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

int[] arr = new int[100];
for(int i=0; i<arr.length; i++) 
	arr[i] = (int) (1 + Math.random()*100);

הסבר: הפונקציה Math.random יוצרת מספר אקראי מסוג double, שערכו נע בין 0.0 ל-0.999.... כדי לקבל מספר בין 0 ל-99, הכפלנו את התוצאה ב-100, וכדי לקבל ערך בין 1 ל-100 - הוספנו 1. לאחר מכן המרנו את המספר להיות מסוג int במקום מסוג double.

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


אתגר:

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

מיון של מערך[עריכה]

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


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

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

כתבו תוכנית שתבנה מערך דו מימדי בגודל 5X5, תמלא אותו באופן אקראי בסימנים "*", "#", "!", או "&", ותדפיס אותו.

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