Java/מערכים/תרגילים: הבדלים בין גרסאות בדף

תוכן שנמחק תוכן שנוסף
Johnny Zoo (שיחה | תרומות)
אין תקציר עריכה
Johnny Zoo (שיחה | תרומות)
אין תקציר עריכה
שורה 67:
הסבר: הפונקציה {{קוד בשורה|Math.random}} יוצרת מספר אקראי מסוג double, שערכו נע בין 0.0 ל-1.0. כדי לקבל מספר בין 0 ל-99, הכפלנו את התוצאה ב-100, וכדי לקבל ערך בין 1 ל-100 - הוספנו 1. לאחר מכן המרנו את המספר להיות מסוג int במקום מסוג double.
 
כתבו תוכנית שבונה מערך כזה (בעזרת קטע הקוד המצורף), ואז מאפשרת למשתמש לבדוק אם מספר מסויים מופיע בו. התוכנית תחפש כל מספר שהמשתמש יבקש, עד שהוא יקיש מספר שלא נמצא בטווח - מספר קטן מ-1 או מספר גדול מ-100. אם מספר מופיע - יודפס מספר התא בו הוא מופיע לראשונה, ואם לא - תודפס הודעה מתאימה.
{{מוסתר|פתרון|2=
<div style="text-align:left; direction:ltr;">
שורה 102:
</pre>
</div>
שימו לב לדמיון בין הפתרון כאן, לפתרון הבעייה בפרק הקודם, של חיפוש במחרוזת.
}}
 
שורה 148 ⟵ 149:
 
נעיר כאן שחיפוש ומיון במערך הן בעיות ידועות בתחום של מדעי המחשב, ושיטות רבות פותחו כדי לבצע זאת. קיימים כלים יעילים יותר למיון של מערך, אך חלקם דורשים ידע נוסף והבנה מעמיקה יותר בנושאים שונים. למעוניינים: [[w:he:קטגוריה:אלגוריתמי מיון|אלגוריתמי מיון]], [[w:he:חיפוש בינארי|חיפוש מהיר במערך ממויין]].
 
===אמנות מודרנית===
כתבו תוכנית שתבנה מערך דו מימדי בגודל 5X5, תמלא אותו באופן אקראי בסימנים "*", "#", "!", או "&", ותדפיס אותו.
{{מוסתר|פתרון|2=
<div style="text-align:left; direction:ltr;">
<pre>
public class MyArray {
 
public static void main(String[] args) {
char arr[][] = new char[5][5];
for(int i=0; i<arr.length; i++) {
for(int j=0; j<arr[i].length; j++) {
int num = (int) (Math.random()*4);
char ch = ' ';
if(num==0) ch = '#';
if(num==1) ch = '*';
if(num==2) ch = '!';
if(num==3) ch = '&';
arr[i][j] = ch;
}
}
for(int i=0; i<arr.length; i++) {
for(int j=0; j<arr[i].length; j++) {
System.out.print(arr[i][j]+" ");
}
System.out.println();
}
}
}
</pre>
</div>
}}
שנו את התוכנית כך שהמערך יכיל 10 עמודות, ושורות המערך יהיו בגודל אקראי (בין 1 ל-10).
{{מוסתר|פתרון|2=
<div style="text-align:left; direction:ltr;">
<pre>
public class MyArray {
 
public static void main(String[] args) {
char arr[][] = new char[10][];
for(int i=0; i<arr.length; i++)
arr[i] = new char[(int) (1+Math.random()*10)];
for(int i=0; i<arr.length; i++) {
for(int j=0; j<arr[i].length; j++) {
int num = (int) (Math.random()*4);
char ch = ' ';
if(num==0) ch = '#';
if(num==1) ch = '*';
if(num==2) ch = '!';
if(num==3) ch = '&';
arr[i][j] = ch;
}
}
for(int i=0; i<arr.length; i++) {
for(int j=0; j<arr[i].length; j++) {
System.out.print(arr[i][j]+" ");
}
System.out.println();
}
}
}
 
</pre>
</div>
}}