Java - תקציר הוראות השפה ב

‫יסודות מדעי המחשב‬
‫‪Java‬‬
‫‪1‬‬
‫תקציר הוראות השפה ב‪Java -‬‬
‫טיפוסי משתנים בסיסיים )פרימיטיבים( בשפת ‪:java‬‬
‫מספרי שלם‬
‫‪int‬‬
‫)בתחום ‪(±2,147,483,648‬‬
‫‪long‬‬
‫מספרי שלם ארוך‬
‫‪double‬‬
‫מספר ממשי‬
‫‪char‬‬
‫תו‬
‫‪String‬‬
‫מחרוזת‬
‫קבועים של המחלקה )‪:(static‬‬
‫; ערך‪-‬הקבוע = שם‪-‬הקבוע טיפוס‪-‬נתונים ‪static final‬‬
‫דוגמא‪:‬‬
‫;‪static final int N = 10‬‬
‫;‪static final double X = 2.34‬‬
‫הגדרת משתנים‪:‬‬
‫;‪int a, b‬‬
‫;‪double x, y‬‬
‫מבנה התכנית בשפת ‪:Java‬‬
‫אובייקט הקלט ‪//‬‬
‫;‪import java.util.Scanner‬‬
‫שם‪-‬המחלקה ‪public class‬‬
‫{‬
‫)‪public static void main(String[] args‬‬
‫{‬
‫;הגדרת המשתנים‬
‫;)‪Scanner input - new Scanner (System.in‬‬
‫;הוראה‬
‫;הוראה‬
‫}‬
‫}‬
‫הערות‬
‫הערת שורה ‪//‬‬
‫הערת קטע‬
‫הנמשכת על פני‬
‫כמה שורות‬
‫*‪/‬‬
‫‪ */‬הערה *‪/‬‬
‫‪*/‬‬
‫•‬
‫ב‪ java -‬יש חשיבות לגודל אות )‪(case sensitive‬‬
‫‪www.kadman.net‬‬
‫הילה קדמן‬
‫יסודות מדעי המחשב‬
‫‪Java‬‬
‫‪2‬‬
‫קלט‪/‬פלט‪:‬‬
‫;)"מחרוזת"( ‪System.out.print‬‬
‫;)"מחרוזת"( ‪System.out.println‬‬
‫פלט מחרוזת‬
‫;)שם‪-‬משתנה( ‪System.out.print‬‬
‫;)שם‪-‬משתנה ‪ + " " +‬שם‪-‬משתנה( ‪System.out.print‬‬
‫הדפסת תוכן משתנה‬
‫;)שם‪-‬משתנה( ‪System.out.println‬‬
‫;)שם‪-‬משתנה ‪ + " " +‬שם‪-‬משתנה( ‪System.out.println‬‬
‫;)" מחרוזת " ‪ +‬שם‪-‬משתנה( ‪System.out.print‬‬
‫;)" מחרוזת " ‪+‬שם‪-‬משתנה‪ " +‬מחרוזת"( ‪System.out.print‬‬
‫הדפסת משתנים ומחרוזות‬
‫;)" מחרוזת " ‪ +‬שם‪-‬משתנה( ‪System.out.println‬‬
‫;)"מחרוזת"‪+‬שם‪-‬משתנה‪ "+‬מחרוזת"( ‪System.out.println‬‬
‫;)(‪int a = input.nextInt‬‬
‫קלט מספר שלם‬
‫;)(‪double x = input.nextDouble‬‬
‫קלט מספר ממשי‬
‫;)‪char tav = input.next().charAt(0‬‬
‫קלט מספר תו‬
‫קלט עד תו הרווח הראשון‪//‬‬
‫קלט שורה ‪//‬‬
‫קלט מחרוזת‬
‫דגשים‬
‫;)( ‪String str = input.next‬‬
‫;)( ‪String str = input.nextLine‬‬
‫•‬
‫בכל הוראת קלט ניתן לקלוט בדיוק משתנה אחד‪.‬‬
‫•‬
‫לפני כל הוראת קלט יש להציג בקשה‪:‬‬
‫;)" → הקש מספר שלם"( ‪System.out.print‬‬
‫;)(‪int a = input.nextInt‬‬
‫הוראות השמה‪:‬‬
‫מספר‬
‫אתחול בהגדרה‬
‫הצבת קבוע‬
‫מחרוזת‬
‫תו‬
‫;‪int a = 0‬‬
‫מחרוזת ריקה ‪String str = "" ; //‬‬
‫תו רווח ‪Char ch = ' '; //‬‬
‫;‪a = 5‬‬
‫;"‪str = "hello‬‬
‫; '‪ch = 'b‬‬
‫פעולות חישוביות‪:‬‬
‫נתונים המשתנים הבאים‪:‬‬
‫;‪int a, b, c‬‬
‫;‪double x, y, z‬‬
‫חיבור‬
‫;‪c = a + b‬‬
‫חיסור‬
‫;‪c = a – b‬‬
‫כפל‬
‫;‪c = a * b‬‬
‫‪www.kadman.net‬‬
‫הילה קדמן‬
‫יסודות מדעי המחשב‬
‫‪Java‬‬
‫‪3‬‬
‫שלם ‪ /‬שלם ← שלם‬
‫חילוק‪:‬‬
‫ממשי ‪ /‬ממשי ← ממשי‬
‫שלם ‪ /‬ממשי ← ממשי‬
‫שלם ‪ /‬שלם)‪ ← (double‬ממשי‬
‫חילוק בממשיים‬
‫לפחות אחד המשתנים המשתתפים ‪//‬‬
‫• המרה מפורשת‬
‫בפעולה החישוב חייב להיות ממשי ‪//‬‬
‫;‪z = x / y‬‬
‫;‪z = (double)a / b‬‬
‫;‪c = a / b‬‬
‫חילוק בשלמים )מנה(‬
‫;‪c = a % b‬‬
‫שארית‬
‫•‬
‫המרה ‪ -‬ניתן להמיר משלם לממשי ולהיפך בהמרה מפורשת )‪.(casting‬‬
‫קיצורים‪:‬‬
‫הגדלה עצמית‬
‫; ‪a ++‬‬
‫הקטנה עצמית‬
‫; ‪a --‬‬
‫הוראות השפה‪:‬‬
‫סוגי יחס‬
‫שווה ==‬
‫שונה =!‬
‫גדול מ‪> -‬‬
‫גדול או‬
‫שווה =>‬
‫קטן מ‪< -‬‬
‫קטן או‬
‫שווה =>‬
‫בלוק הוראות‪:‬‬
‫{‬
‫בלוק הוראות‬
‫}‬
‫אם ‪...‬‬
‫)הוראה יחידה(‬
‫אם ‪...‬‬
‫)בלוק הוראות(‬
‫‪www.kadman.net‬‬
‫)פסוק‪-‬לוגי( ‪if‬‬
‫;ביצוע‬
‫)‪if (a > 5‬‬
‫;‪b = b + 1‬‬
‫)פסוק‪-‬לוגי( ‪if‬‬
‫{‬
‫;הוראה‬
‫;הוראה‬
‫}‬
‫)‪if (a = = 3‬‬
‫{‬
‫;‪c = b * 2‬‬
‫" ‪System.out.println (c +‬‬
‫;)"התוצאה‪:‬‬
‫}‬
‫הילה קדמן‬
Java
4
‫יסודות מדעי המחשב‬
if (a != 5)
b = b + 1;
else
b = b – 1;
if (‫לוגי‬-‫)פסוק‬
1‫;ביצוע‬
else
2‫;ביצוע‬
... ‫ אחרת‬...‫אם‬
if (a > 3)
{
System.out.print (" ‫הקש‬
‫;)" → מספר‬
b = input.nextInt();
}
else
{
b = a;
c = c + 1;
}
if (‫לוגי‬-‫)פסוק‬
{
1‫;הוראה‬
2‫;הוראה‬
}
else
{
3‫;הוראה‬
4‫;הוראה‬
}
... ‫ אחרת‬...‫אם‬
(‫)הוראה יחידה‬
(‫)בלוק הוראות‬
switch (a)
{
case 1 : System.out.println ("one") ;
case 2 : System.out.println ("two") ;
break ;
case 3 :
case 4 :
case 5 : System.out.println ("five") ;
case 6 : System.out.println ("six") ;
break ;
default: System.out.println
("bigger then six") ;
}
switch (‫)משתנה‬
{
case 1-‫ ערך‬: 1‫;ביצוע‬
break;
case 2-‫ ערך‬: 2‫;ביצוע‬
break;
case 3-‫ ערך‬: ‫;הוראה‬
‫;הוראה‬
break;
case 4-‫ ערך‬: 4‫;ביצוע‬
:‫הפלט‬
break;
default :
5‫;ביצוע‬
break;
}
‫ברירת החלטה‬
‫• המשתנה הנבדק‬
‫הוא מטיפוס‬
:‫סדור‬
‫מספר שלם או תו‬
‫ההוראות‬
-‫מתבצעות עד ה‬
break
‫ניתן לבחון רק‬
‫ערכים בדידים‬
‫קשרים לוגיים‬
&&
‫וגם‬
||
‫או‬
!
‫לא‬
if ( a > 3 && (b = = 5 || c != 0) ) …
‫הילה קדמן‬
www.kadman.net
Java
5
‫יסודות מדעי המחשב‬
:‫משתנה בוליאני‬
:‫השמה למשתנה בוליאני‬
boolean b = (num1 > num2);
:‫ביטויים שקולים‬
boolean b;
if (num1 > num2)
b = true ;
else
b = false ;
boolean found = … ; // true ‫ או‬false ;
if (found) …
if (found = = true) …
‫ביטויים שקולים‬
if ( ! found ) …
if (found = = false) …
‫ביטויים שקולים‬
:‫לולאות‬
for (‫תחילי = אינדקס‬-‫סיום =< אינדקס ; ערך‬-‫אינדקס ; ערך‬-‫)קידום‬
{
‫;הוראה‬
‫;הוראה‬
}
--------------int a, sum - 0;
for ( i = 1 ; i <= 5 ; i++)
{
System.out.print("‫;)" → מספר שלם‬
a = input.nextInt ();
sum = sum + a;
}
for (‫תחילי = אינדקס‬-‫סיום => אינדקס ; ערך‬-‫אינדקס ; ערך‬-‫)הקטנת‬
{
‫;הוראה‬
‫;הוראה‬
}
--------------double x, sum = 0;
for ( i = 5 ; i >= 1 ; i --)
{
System.out.print (" ‫;)" → מספר ממשי‬
x = input.nextDouble ();
sum = sum + x;
}
System.out.println (sum + " :‫;)"סכום המספרים‬
‫הילה קדמן‬
for ‫לולאת‬
(‫)לולאה עולה‬
for ‫לולאת‬
(‫)לולאה יורדת‬
www.kadman.net
Java
6
‫יסודות מדעי המחשב‬
while (‫לוגי‬-‫)ביטוי‬
{
‫;הוראה‬
‫;הוראה‬
}
--------------int sum = 0;
System.out.print ("‫;)" → מספר ראשון‬
int a = input.nextInt ();
while (a != 999)
{
sum = sum + a;
System.out.print ("‫;)" → עוד מספר‬
a = input.nextInt ();
}
System.out.println (sum + " :‫;)"סכום המספרים‬
while ‫לולאת‬
:‫פונקציות מתמטיות‬
‫דוגמא‬
‫תחביר‬
‫מתקבל‬
‫מוחזר‬
‫טיפוס הערך‬
int b = Math.abs(a);
double y = Math.abs(x);
Math.abs(x)
‫שלם‬
‫ממשי‬
‫שלם‬
‫ממשי‬
if (Math.sqrt (x) > y) …
Math.sqrt (x)
‫שלם‬
‫ממשי‬
‫ממשי‬
double p = Math.pow (x, b);
Math.pow (x, y)
‫שלם‬
‫ממשי‬
‫ממשי‬
System.out.ptintln
( (int)Math.round(7.853) );
(int) Math.round (x)
‫ממשי‬
‫שלם‬
‫ארוך‬
‫עיגול לשלם הקרוב‬
(4 ← 3.67)
if (x = = (int)x) … ;
(int) x
‫ממשי‬
‫שלם‬
‫החלק השלם‬
(3 ← 3.67)
|x|
‫ערך מוחלט‬
x
‫שורש ריבועי‬
xy
‫חזקה‬
‫מספר אקראי‬
import java.util.Random;
:‫לפני התכנית‬
:‫יצירת עצם‬
:‫בתוך גוף בתכנית‬
Random rnd = new Random();
n ‫ עד‬0 ‫מספר שלם בתחום‬
0≤x<n
(‫)לא כולל‬
x = rnd.nextInt (n);
x = rnd.netxInt (n) + 1;
n = b - a + 1;
x = rnd.nextInt (n) + a;
‫הילה קדמן‬
(‫ )כולל‬n ‫ עד‬1 ‫מספר שלם בתחום‬
1≤x≤n
(‫ )כולל‬b ‫ עד‬a ‫מספר שלם בתחום‬
a
b
www.kadman.net
Java
7
‫יסודות מדעי המחשב‬
‫פעולות‬
static void procName (‫)פרמטרים‬
{
‫פעולה שאינה מחזירה ערך‬
(void ‫)מוחזר ערך‬
}
static void aaa (int a, int b, double x)
{
int i;
:
}
static ‫ מוחזר‬-‫ טיפוס‬funcName (‫)פרמטרים‬
{
‫פעולה המחזירה ערך‬
:
return ‫;ערך להחזרה‬
}
static double sum (int a, int b, double x)
{
double total ;
total = a + b + x;
return total;
}
‫נתונים‬-‫ ][ טיפוס‬arr = new ‫נתונים‬-‫[טיפוס‬10];
int [] a = new int [7] ;
double [] x = new double [N];
char [] arrChar = new char [25];
‫הגדרה‬
x[2] = 2 * a[0] ;
0
1
‫ממדי‬-‫מערך חד‬
‫פנייה לתא‬
2
3
4
5
6
a
for (int i = 0 ; i < a.length ; i ++)
a[i] = i;
‫סריקת מערך‬
‫המערך‬-‫שם‬.length ‫גודל המערך הוא‬
length - 1 ‫מספר התא האחרון במערך הוא‬
‫הילה קדמן‬
www.kadman.net
Java
8
‫נתונים‬-‫ ][][ טיפוס‬arr = new ‫נתונים‬-‫[טיפוס‬5][7];
‫יסודות מדעי המחשב‬
‫מערך‬
‫ממדי‬-‫דו‬
(‫)מטריצה‬
int [][] mat = new int [6][7] ;
double [][] x = new double [N][M];
:‫סכום התא ה"ראשון" והתא ה"אחרון" במערך‬
‫פניה לתא‬
mat[3][4] = mat [0][0] + mat [5][6];
mat.length
Ö ‫מספר השורות במטריצה‬
mat[i].length (1) Ö i ‫מספר העמודות בשורה‬
‫סריקת המערך‬
for (int i = 0 ; i < mat.length ; i++)
for (int j = 0 ; j < mat[i].length ; j++)
mat [i,j] = ….
String str ;
‫ באות גדולה‬String :♥ ‫שים‬
str = "bla-bla-bla" ;
str = new String ("bla-bla-bla") ;
‫מחרוזות‬
‫ היא אובייקט‬Java -‫מחרוזת ב‬
String str1 = input.next();
‫קלט מילה בודדת‬
String str2 = input.nextLine();
‫קלט משפט‬
‫קלט‬
num = str.length();
‫אורך‬
str = st1 + str2 + "aaa" ;
‫שרשור‬
boolean equal = str1.equals(str2) ;
‫השוואה‬
int n = str1.compareTo (str2) ;
str1 > str2 Ö n > 0
str1 < str2 Ö n < 0
str1 = = str2 Ö n = 0
ch = str.charAt (i) ;
0 ≤ i < str.length()
int place = str.indexOf (ch) ;
int place = str.indexOf (subStr);
‫הילה קדמן‬
‫ במחרוזת‬i ‫תו‬
‫חיפוש תו‬
‫מחרוזת‬-‫חיפוש תת‬
www.kadman.net