השתלמות מדעי המחשב בשפות חדשות 7/03/07
description
Transcript of השתלמות מדעי המחשב בשפות חדשות 7/03/07
ד''ר יבגני קנלד''ר יבגני קנל 11
השתלמותהשתלמות מדעי המחשב בשפות חדשות מדעי המחשב בשפות חדשות
7/03/077/03/07
MathMathשימוש במחלקה שימוש במחלקה JAVAJAVAמערכים ב-מערכים ב-
ד''ר יבגני קנלד''ר יבגני קנל 22
MathMath מחלקהמחלקה
כל הפעלות במחלקה הן פעולות סטטיות – אין כל הפעלות במחלקה הן פעולות סטטיות – איןצורך ביצירת עצםצורך ביצירת עצם
כדי להשתמש בפעולה יש לציין שם המחלקהכדי להשתמש בפעולה יש לציין שם המחלקה-אין צורך ב-אין צורך בimportimport
http://java.sun.com/javase/6/docs/api/
ד''ר יבגני קנלד''ר יבגני קנל 33
MathMathקבועים של המחלקה קבועים של המחלקה
Math.EMath.Eבסיס ללוגריתם טבעי – בסיס ללוגריתם טבעי – Math.PiMath.Pi –– -מספר ה- מספר ה ππ הידועהידוע
System.out.println(Math.E);
System.out.println(Math.PI);
2.718281828459045
3.141592653589793
ד''ר יבגני קנלד''ר יבגני קנל 44
פעולות שימושיותפעולות שימושיות
שימוששימוש פעולהפעולה
double b=Math.abs(a); double b=Math.abs(a); int b=Math.abs(a);int b=Math.abs(a);
Math.abs(double a)Math.abs(double a)
Math.abs(int a)Math.abs(int a)
double b=Math.sqrt(a);double b=Math.sqrt(a); Math.sqrt(double a)Math.sqrt(double a)
int a=9; int b=Math.sqrt(a); System.out.println(b);
Error: possible loss of precisionfound : doublerequired: int
?
ד''ר יבגני קנלד''ר יבגני קנל 55
עיגול וקיצוץעיגול וקיצוץ
שימוששימוש פעולהפעולה
long b= Math.round(a); long b= Math.round(a); int b= Math.round(a);int b= Math.round(a);
Math.round(double a) Math.round(double a) Math.round(float a)Math.round(float a)
int b=Math.round(3.14); Error: possible loss of precisionfound : longrequired: int
Math.round(3.14)
Math.round(3.9);
Math.round(-3.14)
Math.round(-3.9)
3
4
-3
-4
intintולא ל-ולא ל- longlongמעגל ל-מעגל ל-
טיפוס ברירת מחדל למספר ממשי הוא double!
ד''ר יבגני קנלד''ר יבגני קנל 66
??הפלט ידוע. מה היה הקלטהפלט ידוע. מה היה הקלט
double a=IO.readDouble(); double b=-a; if(Math.round(a) == Math.round(b)) IO.writeln("Yes"); else IO.writeln("No");
Yes
-0.5 < a < 0.5
double a=IO.readDouble(); double b=-a; if(Math.abs(Math.round(a))== Math.abs(Math.round(b))) IO.writeln(“Yes"); else IO.writeln("No");
No
-3.5 -0.5 1.5 10.5
IO.writeln(Math.round(1.5)); IO.writeln(Math.round(-1.5));
2-1
ד''ר יבגני קנלד''ר יבגני קנל 77
!!מי צריך אותו? יש לנו המרהמי צריך אותו? יש לנו המרה
b= (int) Math.round(a);
b=(int) a;
b=(int) (a+0.5);
if(a>=0) b=(int)(a+0.5);else b=(int)(a-0.5);
double a; int b;1.3
1
1
1
1
1.8
2
1
2
2
-1.8
-2
-1
-1
-2
-1.3
-1
-1
0
-1
-1.5
-1
-1
-1
-2
ד''ר יבגני קנלד''ר יבגני קנל 88
עיגול וקיצוץ - המשךעיגול וקיצוץ - המשך
שימוששימוש פעולהפעולה
double b= Math.rint(a);double b= Math.rint(a); Math.rint (double a)Math.rint (double a)
Math.rint(3.14)
Math.rint(3.9);
Math.rint(-3.14)
Math.rint(-3.9)
3.0
4.0
-3.0
-4.0
4.0
- 4.0
4.0
- 4.0
Math.rint(4.5)
Math.rint(- 4.5);
Math.rint(3.5)
Math.rint(-3.5)
ביותר הקרוב שווה לשלם ממשימחזירה מספר aל-
אם מספר קרוב לשני שלמים – זוגיתוצאה היא מספר שלם !
ד''ר יבגני קנלד''ר יבגני קנל 99
עיגול וקיצוץ - המשךעיגול וקיצוץ - המשךdouble b= Math.ceil(a);double b= Math.ceil(a); Math.ceil (double a)Math.ceil (double a)
double b= Math.floor(a);double b= Math.floor(a); Math.floor (double a)Math.floor (double a)
Math.ceil(3.14)
Math.ceil(3.9);
Math.ceil(-3.14)
Math.ceil(-3.9)
4.0
4.0
-3.0
-3.0
4.0
- 5.0
3.0
- 4.0
Math.floor(4.9)
Math.floor(- 4.1);
Math.floor(3.5)
Math.floor(-3.5)
•Math.ceil עיגול כלפי מעלה – a (b ≥ a) מ-לא קטן שהוא a שווה לשלם הקרוב ביותר ל-ממשימחזירה מספר
• Math.floor – עיגול כלפי מתה ≥ a (b מ-לא גדול שהוא a שווה לשלם הקרוב ביותר ל-ממשימחזירה מספר •
a)
ד''ר יבגני קנלד''ר יבגני קנל 1010
מספרים אקראייםמספרים אקראיים
Math.randomMath.random()() וקטן 0.0) גדול או שווה ל-doubleמחזירה מספר אקראי ממשי (
1.0מ-
:[low..highליצירת מספר אקראי בתחום ]
low ≤ num ≤ high
double dNum;
dNum= low + Math.random()*(high-low+1);
ד''ר יבגני קנלד''ר יבגני קנל 1111
מחירים אקראייםמחירים אקראיים 1000 ש''ח ל-100ליצור מחירים אקראים בין
ש''ח עד שייוצר מחיר הנקלט
double price, prSheq,
prStop=IO.readDouble();
do{
price=100+Math.random()*900;
prSheq=(int)(price*100)/100.0;
System.out.println(prSheq);
}while(prSheq!=prStop);
מהו מחיר אפשרי הגבוה ביותר?
ש''ח999.99
ד''ר יבגני קנלד''ר יבגני קנל 1212
מספרים אקראייםמספרים אקראיים
Math.randomMath.random()() וקטן 0.0) גדול או שווה ל-doubleמחזירה מספר אקראי ממשי (
1.0מ-
:[low..high) בתחום ]int (שלםליצירת מספר אקראי
low ≤ num ≤ high
int num;
num=low + (int)(Math.random()*(high-low+1));
doubleממשי
כמות אפשרות האפשרויות
הנמוכה ביותר
ד''ר יבגני קנלד''ר יבגני קנל 1313
מחירים אקראייםמחירים אקראיים 1000 ש''ח ל-100ליצור מחירים אקראים בין
ש''ח עד שייוצר מחיר הנקלט
int sheq, ag; double prSheq, prStop=IO.readDouble(); do{ sheq=100+(int)(Math.random()*900); ag=(int)(Math.random()*100); prSheq=sheq+ag*0.01;}while(prSheq!=prStop);
מהו מחיר אפשרי הגבוה ביותר?
ד''ר יבגני קנלד''ר יבגני קנל 1414
מספרים אקראייםמספרים אקראיים יש מחלקה מסוימת ליצירת מספרים יש מחלקה מסוימת ליצירת מספרים JavaJavaב-ב-
java.util.Randomjava.util.Randomאקראיים אקראיים ) (כולל)) (כולל)))n-1n-1 ל- ל-00ליצירת מספר אקראי שלם בין ליצירת מספר אקראי שלם בין •
nextInt(int n) משתמשים במתודהמשתמשים במתודה ) בתחום ) בתחום intint ( (שלםשלםליצירת מספר אקראי ליצירת מספר אקראי •
[[low..highlow..high]]::
יצירת עצם Random
importimport java.util.Random;java.util.Random;……Random ran=new Random();Random ran=new Random();int n=low+ran.nextInt(high-low+1);int n=low+ran.nextInt(high-low+1);
ד''ר יבגני קנלד''ר יבגני קנל 1515
מספרים אקראייםמספרים אקראייםלפעמים רוצים לחזור לאותה סדרה של מספרים
אקראייםimport java.util.Random;. . .Random gnr = new Random(20);for(int i = 0; i < 10; i++) { System.out.print(gnr.nextInt(100) + "; "); }
53; 36; 1; 61; 5; 95; 33; 55; 93; 88;
53; 36; 1; 61; 5; 95; 33; 55; 93; 88;
53; 36; 1; 61; 5; 95; 33; 55; 93; 88
52; 33; 2; 96; 5; 69; 82; 59; 2; 37;
98; 71; 62; 20; 94; 77; 18; 37; 65; 82;
57; 48; 98; 67; 97; 53; 9; 50; 75; 85;
פרמטר ליצירת סידרה
Random gnr = new Random(20); Random gnr = new Random();
טווח מספרים0<=x<100
ד''ר יבגני קנלד''ר יבגני קנל 1616
פעולות נוספותפעולות נוספות
מחזירה ערך הגדול בין שני מספרים
טיפוס התוצאה – בהתאם לטיפוסים של הפרמטרים
Math.max(double a, double b)Math.max(double a, double b)
Math.max(int a, int b)Math.max(int a, int b)
מחזירה ערך הקטן בין שני מספרים טיפוס התוצאה –
בהתאם לטיפוסים של הפרמטרים
Math.min(double a, double b)Math.min(double a, double b)
Math.min(int a, int b)Math.min(int a, int b)
aמחזירה שורש קובי של
double התוצאה מסוגMath.cbrt(double a)Math.cbrt(double a)
b בחזקה aמחזירה
double התוצאה מסוגMath.pow(double a, double b) Math.pow(double a, double b)
3 a
ba
ד''ר יבגני קנלד''ר יבגני קנל 1717
פעולות נוספותפעולות נוספות
Math.asin(double a)
Math.acos(double a)
Math.atan(double a)
Math.sin(double a)
Math.cos(double a)
Math.tan(double a)
Math.exp(double a) מחזירה
מחזירה
מחזירה
Math.log(double a) Math.log10(double a)
מחזירה Math.hypot(double a, double b)
ae
aloga10log22 ba
ד''ר יבגני קנלד''ר יבגני קנל 1818
מערך חד-ממדי
( מערך( מערךarrayarray הוא טיפוס המגדיר אוסף ) הוא טיפוס המגדיר אוסף )סדור, באורך קבוע, של ערכים מטיפוס סדור, באורך קבוע, של ערכים מטיפוס
זהה. זהה.
.תאי המערך ממוספרים על פי מיקומם.תאי המערך ממוספרים על פי מיקומם
,,00מיקומו של התא הראשון הוא מיקומו של התא הראשון הוא
, , 11מיקומו של התא השני הוא מיקומו של התא השני הוא
. . n-1n-1ומיקומו של התא האחרון הוא ומיקומו של התא האחרון הוא
ד''ר יבגני קנלד''ר יבגני קנל 1919
מערך הוא עצם
הוא יוצרים, שאנו מערך כל הוא בג'אווה, יוצרים, שאנו מערך כל את עצםעצםבג'אווה, את . .תכונות מאפיינות אחר, עצם כל כמו תכונות המערך, מאפיינות אחר, עצם כל כמו המערך,
ופעולות.ופעולות.
lengthlength התכונה האחראית על שמירת אורך המערך – התכונה האחראית על שמירת אורך המערך – , ולכן , ולכן publicpublicכלומר, מספר תאיו. תכונה זו מוגדרת כ-כלומר, מספר תאיו. תכונה זו מוגדרת כ-
נוכל לקבל את ערכה על ידי פנייה אליה באופן הבא:נוכל לקבל את ערכה על ידי פנייה אליה באופן הבא:a.lengtha.length
ערכה של ערכה שלlengthlength נקבע בעת יצירת המערך, ואינו ניתן נקבע בעת יצירת המערך, ואינו ניתן לשינוי לאחר מכן. לשינוי לאחר מכן.
ד''ר יבגני קנלד''ר יבגני קנל 2020
מערך הוא עצם
:ואחזורואחזור עדכוןעדכון, , יצירתויצירתופעולות הממשק של המערך הן: פעולות הממשק של המערך הן ערכו של תא במערך.ערכו של תא במערך.
את נכתוב במערך, בתא המוצב ערך אל לגשת את כדי נכתוב במערך, בתא המוצב ערך אל לגשת כדי מיקום את מרובעים בסוגריים ואחריו המערך מיקום שם את מרובעים בסוגריים ואחריו המערך שם
התא. התא. לדוגמה: לדוגמה:
aa: : a[0]a[0]גישה לערך המוצב בתא הראשון במערך גישה לערך המוצב בתא הראשון במערך - aa: : a[a.length - a[a.lengthגישה לערך המוצב בתא האחרון במערך גישה לערך המוצב בתא האחרון במערך
1]1]
ד''ר יבגני קנלד''ר יבגני קנל 2121
מערך – לזכור!מערך – לזכור!
בשפת איננו טיפוס בסיסימערך Java.
לא די בהצהרה על מערך, הצהרה אינה יוצרת אתתאי הזיכרון המתאימים.
כדי ליצור את תאי המערך יש להשתמש בפעולהnew.
ד''ר יבגני קנלד''ר יבגני קנל 2222
הצהרה על מערך שלמים בגודל הצהרה על מערך שלמים בגודל 1010
99 – – 00 מצייני המערך הם בתחום מצייני המערך הם בתחום
:פנייה לאברי המערך כרגיל באמצעות אינדקס: פנייה לאברי המערך כרגיל באמצעות אינדקס arrEx1]3[arrEx1]3[
int][ arrEx1 = new int]10[;int][ arrEx1 = new int]10[;
טיפוס המשתנה הוא מערך
שלמים
שם המערך
תאי 10יצירת המערך
ד''ר יבגני קנלד''ר יבגני קנל 2323
חריגה מתחומי המערך
:אם ננסה לגשת לתא שאינו קיים במערך, למשל
a]-2[
כי "הודעת החריגה" הבאה, המעידה נקבל את ניסינו לגשת למיקום החורג מגבולות המערך:
ArrayIndexOutOfBoundException טעות בזמן ריצה!
:!גם טעות a]a.length[
ד''ר יבגני קנלד''ר יבגני קנל 2424
טיפוס של מערך
בשפת ג'אווה טיפוס המערך
int][ מערך של מספרים שלמים
char][ מערך של תווים
double][ מערך של מספרים עשרוניים
boolean][ מערך של ערכים בוליאניים
String][ מערך של עצמים מסוגString
Turtle][ מערך של עצמים מסוגTurtle
ד''ר יבגני קנלד''ר יבגני קנל 2525
הגדרה ויצירת מערךהגדרה:
<arrayType>][ <arrayName;> int][ grades;
:יצירה <arrayName> = new <arrayType>]<arraySize>[;
grades = new int]10[;הגדרה ויצירה:
int][ grades = new int]10[; -0אחרי היצירה המערך המספרי מאותחל ב
ד''ר יבגני קנלד''ר יבגני קנל 2626
??מערך מאותחל – מה זאת אומרתמערך מאותחל – מה זאת אומרת int[] a1=new int[10]; System.out.println)Arrays.toString)a1((;
boolean [] a3=new boolean[10]; System.out.println)Arrays.toString)a3((;
double [] a2=new double[10]; System.out.println)Arrays.toString)a2((;
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[false, false, false, false, false, false, false, false, false, false]
מתודה ממחלקה java.util.Arrays
ד''ר יבגני קנלד''ר יבגני קנל 2727
הצהרה משולבת באתחולהצהרה משולבת באתחול
תאים3במקרה הזה יוקצה מערך של תווים ובו ) וערכיהם בהתאמה כמופיע 0,1,2(שמצייניהם
בסוגרים ה- {}
char charArr ] [ = {‘*’, ‘p’, ‘+’ };
ניתן לבצע הקצאת זיכרון לאברי מערך תוךאתחולם על פי רשימת אתחול. כדי
0 1 2
‘*’ ‘p’ ‘+’
ד''ר יבגני קנלד''ר יבגני קנל 2828
מערך – לזכור!מערך – לזכור!
ניתן להצהיר על מערך בכל מקום בתוכנית
:ניתן אף לקלוט גודל של המערך
int size=IO.readInt();
int][ arrEx1 = new int]size[;
או
int][ arrEx1 = new int]IO.readInt()[;
ד''ר יבגני קנלד''ר יבגני קנל 2929
מעיצוב תוכנה - ליסודותמעיצוב תוכנה - ליסודות מספר תלמידים אשר נגשו מספר תלמידים אשר נגשו קולטתקולטתכתוב תוכנית אשר כתוב תוכנית אשר
לבחינת בגרות ואת ציונם. על התוכנית להדפיס מספר לבחינת בגרות ואת ציונם. על התוכנית להדפיס מספר התלמידים שקיבלו ציון מעל הממוצע.התלמידים שקיבלו ציון מעל הממוצע.
double sum=0; int num=IO.readInt(); int grades][=new int]num[; for(int i=0;i<grades.length;i++){ grades]i[=IO.readInt(); sum+=grades]i[;} double avg=sum/num; for(int i=0;i<grades.length;i++){ if(grades]i[>avg)IO.writeln(i+" " +grades]i[);}
ד''ר יבגני קנלד''ר יבגני קנל 3030
מערכים – קצת יותר לעומק
בשתי a1 אפשר להצהיר על מערךדרכים:
int [] a1;
int a1[[;
אפשר לשלב בשורה אחת עם הצהרות על משתנים מאותו טיפוס.
int numbers [], num1, num2;
int [] numbers, num1, num2;מהו הבדל?
ד''ר יבגני קנלד''ר יבגני קנל 3131
מערך הוא עצםמערך הוא עצם עצםעצםערך של משתנה מטיפוס מערך אף הוא ערך של משתנה מטיפוס מערך אף הוא.. מצביעמצביעכלומר, ערך של משתנה מטיפוס מערך הוא כלומר, ערך של משתנה מטיפוס מערך הוא.. הקצאת הזיכרון למערך מתבצעת למעשה בשני שלבים הקצאת הזיכרון למערך מתבצעת למעשה בשני שלבים
עיקריים:עיקריים:.הקצאת מצביע אל המערך.הקצאת מצביע אל המערך.הקצאת תאי המערך.הקצאת תאי המערך
int][ a1;
a1 = new int]10[;
אוint][ a1 = new int]10[;
ד''ר יבגני קנלד''ר יבגני קנל 3232
מערכיםמערכים
int][ a1;
a1= new int]10[;
for (int i=0; i<10; i++) a1]i[ = i;
int][ a2;
a2= a1;
00 00 00 00 00 00 00 00 00 00
a1
a1
00 11 22 33 44 55 66 77 88 99a1
a2
00 11 22 33 44 55 66 77 88 99
a2
a1
ד''ר יבגני קנלד''ר יבגני קנל 3333
מערכים - המשךמערכים - המשך
int][ a1;
System.out.println(a1);
a1=new int]10[;
System.out.println(a1);
System.out.println(a1]9[);
for(int i=0;i<10;i++)a1]i[=i;
System.out.println(a1);
System.out.println(a1]9[);
int][ a2;
a2=a1;
System.out.println(a2);
System.out.println(a2]9[);
]I@63b2e6
0
]I@63b2e6
9
]I@63b2e6
9
//Error: variable a1 might not have been initialized
ד''ר יבגני קנלד''ר יבגני קנל 3434
מערכיםמערכים
Int][ a1= new int]10[;
for (int i=0; i<10; i++) a1]i[ = i;
int][ a2=new int]10[;
a2= a1;
00 00 00 00 00 00 00 00 00 00a1
00 22 44 66 88 1010 1122
1414 1616 1818a2
00 11 22 33 44 55 66 77 88 99
a2
a1
00 00 00 00 00 00 00 00 00 00
for (int i=0; i<10; i++) a2]i[ =2* i;
a1 00 11 22 33 44 55 66 77 88 99
a2
ד''ר יבגני קנלד''ר יבגני קנל 3535
??מה זה עושהמה זה עושהint][ a1={1,2,3,4,5}; int][ a2={10,20,30,40,50};
int][ a3; a3=a1; a1=a2; a2=a3; for(int i=0; i<a2.length;i++)System.out.print(a2]i[+" ");
1 2 3 4 5
ד''ר יבגני קנלד''ר יבגני קנל 3636
מערך הוא עצם
הוא יוצרים, שאנו מערך כל הוא בג'אווה, יוצרים, שאנו מערך כל את עצםעצםבג'אווה, את . .תכונות מאפיינות אחר, עצם כל כמו תכונות המערך, מאפיינות אחר, עצם כל כמו המערך,
ופעולות.ופעולות.
lengthlength התכונה האחראית על שמירת אורך המערך – התכונה האחראית על שמירת אורך המערך – , ולכן , ולכן publicpublicכלומר, מספר תאיו. תכונה זו מוגדרת כ-כלומר, מספר תאיו. תכונה זו מוגדרת כ-
נוכל לקבל את ערכה על ידי פנייה אליה באופן הבא:נוכל לקבל את ערכה על ידי פנייה אליה באופן הבא:a.lengtha.length
ערכה שלlength ,ואינו נקבע בעת יצירת המערךניתן לשינוי לאחר מכן.
ד''ר יבגני קנלד''ר יבגני קנל 3737
?? lengthlength..מהי תכונה מהי תכונה int][ a; System.out.println(a.length);
Error: variable a might not have been initialized
int][ a= null; System.out.println(a.length); NullPointerException:
int][ a={10,20,30}; System.out.println(a.length);
3
int][ a=new int]3[; System.out.println(a.length); 3
int][a=new int]0[; System.out.println(a.length); ?0
ד''ר יבגני קנלד''ר יבגני קנל 3838
??האם זה חריגההאם זה חריגה
int][ a1=new int]10[;
for(int i=0; i<a1.length;i++)a1]i[=i;
int][ a2=new int]5[;
for(int i=0; i<a2.length;i++)a2]i[=i*10;
a2=a1;
for(int i=5; i<10;i++)System.out.print(a2]i[+" ");
5 6 7 8 9
5
a2.length
ArrayIndexOutOfBoundExceptionint ][ a=new int]5[; a]8[=10;
ד''ר יבגני קנלד''ר יבגני קנל 3939
מעיצוב - ליסודותמעיצוב - ליסודות
int][ a2=new int]0[; for(int i=0; i<a1.length; i++) if(a1]i[%2==0){ int][ a3=new int]a2.length+1[; for(int j=0; j<a2.length; j++)a3]j[=a2]j[; a3]a2.length[=a1]i[; a2=a3;} a1=a2;
כתוב תוכנית אשר ומוחקת מקבלת מערך
את כל האיברים ממנוהא-זוגיים
int][ a1={0,1,2,3,4,5,6,7,8,9};
for(int i=0;i<a1.length;i++)System.out.print(a1]i[+" ");
0 2 4 6 8
ד''ר יבגני קנלד''ר יבגני קנל 4040
int a=100;
char ch=a;
Error: possible loss of precisionfound : intrequired: char
char ch=‘a’;
int a=ch;
int[] a=new int[10]; char[] ch=a;
Error: incompatible typesfound : int[]required: char[]
char[] ch=new char[10]; int[] a=ch;
Error: incompatible typesfound : char[]required: int[]
int][ a1=null;char][ a2=null;if(a2==a1)System.out.println("Yes"); else System.out.println("No");
?
Error: incomparable types: char[] and int[]
כאשר טיפוסים שונים...
ד''ר יבגני קנלד''ר יבגני קנל 4141
מערכים ואיבריהםמערכים ואיבריהם
int][ a2={65,66,67,68,69,70,71,72}; char][ a1=new char]8[; for(int i=0;i<a2.length;i++)a1]i[=(char)a2]i[; for(int i=0;i<a1.length;i++)System.out.print(a1]i[+" ");
A B C D E F G H
ד''ר יבגני קנלד''ר יבגני קנל 4242
ומה עם ההוראה?ומה עם ההוראה? - - מערכיםמערכים:הקצאת תאי המערך הקצאת תאי המערךבאשר ל:באשר ל
כך צריך להגדיר... וזהו., כך צריך להגדיר... וזהו.לא קרה כלוםלא קרה כלום ,:היות משתנה המערך - מצביע היות משתנה המערך - מצביעבאשר ל:באשר ל
לא לעשות השמה של מערך אל , לא לעשות השמה של מערך אל לשים לבלשים לב ,מערך, כי כך אובד הקשר לכל חלקי הזיכרון מערך, כי כך אובד הקשר לכל חלקי הזיכרון
שהוקצו למערך אליו משימים.שהוקצו למערך אליו משימים.
הזיכרון עצמו לא מטריד אותנו..., אבל אין הזיכרון עצמו לא מטריד אותנו..., אבל אין בזה הגיון.בזה הגיון.
ד''ר יבגני קנלד''ר יבגני קנל 4343
ומה עם ההוראה?ומה עם ההוראה? - - מערכיםמערכיםאם רוצים להעתיק מערך, יש פעולה , אם רוצים להעתיק מערך, יש פעולה טיפטיפ ,
מתאימה של המערכת, עבור שני מערכים מתאימה של המערכת, עבור שני מערכים שהוצהרו והוקצו התאים שלהם:שהוצהרו והוקצו התאים שלהם:
SystemSystem..arraycopyarraycopy((a1,0,a2,0,10);a1,0,a2,0,10);
, , 00 החל מן המקום החל מן המקום a1a1קרי: העתק מן המערך קרי: העתק מן המערך תאים תאים 1010, , 00 החל מן המקום החל מן המקום a2a2אל המערך אל המערך
בהתאמה. כל הערכים הנומריים יכולים בהתאמה. כל הערכים הנומריים יכולים להיות מותאמים כנדרש.להיות מותאמים כנדרש.
ד''ר יבגני קנלד''ר יבגני קנל 4444
String Arrays.toString)int[] a(String Arrays.toString)int[] a( boolean Arrays.equals)int[] a, int[] b(boolean Arrays.equals)int[] a, int[] b( void Arrays.fill)int[] a, int value(void Arrays.fill)int[] a, int value( void Arrays.fill)int[] a, int fromIndex, void Arrays.fill)int[] a, int fromIndex, int toIndex, int value(;int toIndex, int value(; void Arrays.sort)int[] a(void Arrays.sort)int[] a( void Arrays.sort)int[] a, int fromIndex,sort)int[] a, int fromIndex,
int toIndex( int toIndex(
java.util.Arraysjava.util.Arraysמחלקה מחלקה
ד''ר יבגני קנלד''ר יבגני קנל 4545
java.util.Arraysjava.util.Arraysמחלקה מחלקה import java.util.*;… int][ a1=new int]10[; for(int i=0;i<10;i++)a1]i[=10-i; System.out.println(a1); System.out.println(Arrays.toString(a1));
Arrays.sort(a1);
System.out.println(Arrays.toString(a1));
import java.util.*;… int][ a1=new int]10[; for(int i=0;i<10;i++)a1]i[=9-i; System.out.println(a1); System.out.println(Arrays.toString(a1));
Arrays.sort(a1);
System.out.println(Arrays.toString(a1));
]0, 1, 2, 3, 4, 5, 6, 7, 8, 9[
]9, 8, 7, 6, 5, 4, 3, 2, 1, 0[
]I@63b2e6
ד''ר יבגני קנלד''ר יבגני קנל 4646
פעולות שימושיותפעולות שימושיותספירת תאים העונים ספירת תאים העונים
לתנאילתנאימילוי מערך על-ידי קליטהמילוי מערך על-ידי קליטה
בדיקה האם ערך קייםבדיקה האם ערך קיים מילוי מערך במספרים מילוי מערך במספרים אקראייםאקראיים
בדיקה האם מערך ממויןבדיקה האם מערך ממוין מילוי לפי כלל מסויםמילוי לפי כלל מסוים
בדיקה האם "פלינדרום"בדיקה האם "פלינדרום" הדפסת מערךהדפסת מערך
החלפת זוגות תאים החלפת זוגות תאים צמודיםצמודים
הדפסה מערך בסדר הפוךהדפסה מערך בסדר הפוך
הפיכת מערךהפיכת מערך סיכום תאי מערךסיכום תאי מערך
השוואות שני מערכים: השוואות שני מערכים: האם זהים, האם זרים...האם זהים, האם זרים...
סיכום ערכים במערך העונים סיכום ערכים במערך העונים )זוגיים, )זוגיים, לתנאי מסוים לתנאי מסוים
דו-ספרתיים(דו-ספרתיים(