Download - תוכנה 1
![Page 1: תוכנה 1](https://reader031.vdocuments.net/reader031/viewer/2022020200/56813b38550346895da40b76/html5/thumbnails/1.jpg)
11
1תוכנה
Java: סביבת העבודה ומבוא ל-1תרגול
אסף זריצקי ומתי שמרת
![Page 2: תוכנה 1](https://reader031.vdocuments.net/reader031/viewer/2022020200/56813b38550346895da40b76/html5/thumbnails/2.jpg)
2
בירוקרטיה
אתר הקורס :http://courses.cs.tau.ac.il/software1/0910a
סביבת המחשוב באוניברסיטה היאLinuxפתיחת חשבון אישי במחשבי האוניברסיטהתנאי קדם : הנחיות לפתיחת חשבון והכרת סביבת העבודה באתר
הקורס. 2
מתי שמרת, בתיאום מראש10-11שעת קבלה: שני
209המשרד שלי: בניין הנדסת תוכנה, חדר
אסף זריצקי, בתיאום מראש9-10שעת קבלה: רביעי
א'405המשרד שלי: שנקר-פיזיקה
![Page 3: תוכנה 1](https://reader031.vdocuments.net/reader031/viewer/2022020200/56813b38550346895da40b76/html5/thumbnails/3.jpg)
33
על הקורס
קורס תכנות בסיסי באמצעותמלמד תכנות מונחה עצמים
Javaבשפת של פרטיםעצמיהקורס דורש לימוד
![Page 4: תוכנה 1](https://reader031.vdocuments.net/reader031/viewer/2022020200/56813b38550346895da40b76/html5/thumbnails/4.jpg)
44
Java-סביבת פיתוח והרצה ל
-גרסת הJava:שעמה נעבוד Java SE (Standard Edition) 6.0
:חבילת סביבת ההרצהJRE (Java Runtime Environment) that includes:
JVM (Java Virtual Machine) Standard Class Library
:חבילת ערכת הפיתוחJDK (Java Development Kit) that includes:
JRE Command line tools: compiler, debugger etc.
-הורדה ותיעוד בhttp://java.sun.com/javase
![Page 5: תוכנה 1](https://reader031.vdocuments.net/reader031/viewer/2022020200/56813b38550346895da40b76/html5/thumbnails/5.jpg)
55
סביבת פיתוח שלובה
IDE = Integrated Development Environment
:סביבה המשלבת רכיבי/כלי פיתוח עצמאיים) עורך טקסטeditor() סייר הקבציםbrowser() מהדרcompiler() סביבת זמן ריצהJRE() מנפה השגיאותdebugger(...ועוד
Eclipse -ה – IDE.בו נשתמש בקורס
![Page 6: תוכנה 1](https://reader031.vdocuments.net/reader031/viewer/2022020200/56813b38550346895da40b76/html5/thumbnails/6.jpg)
66
Eclipse
IDE המתאים גם לפיתוח תוכנה ב Java -ניתן להתקנה בLinux, Windowsועוד דורש התקנה בנפרד שלJRE או) JDK( :אתר הביתwww.eclipse.org
הורדת התוכנה כקובץzip-הוראות התקנה ב) באתר הקורס)הכרת סביבת המחשוב
אוסף גדול של מאמרים :דפי עבודה ללימודהכרות Eclipseבאתר הקורס " דוגמא: פיתוח והרצת תכניתHello World ב "Eclipse :הסבר מפורט לגבי השמשת סביבת העבודה מהביתhttp://
courses.cs.tau.ac.il/software1/0910a/misc/workenv.pdf
![Page 7: תוכנה 1](https://reader031.vdocuments.net/reader031/viewer/2022020200/56813b38550346895da40b76/html5/thumbnails/7.jpg)
Code Conventions
שמות של משתנים, מחלקות, מתודות?סוגריים מסולסלים בסוף שורה או בתחילתה...
נפתח קוד לפי ההמלצות שלSun
http://java.sun.com/docs/codeconv/
7
![Page 8: תוכנה 1](https://reader031.vdocuments.net/reader031/viewer/2022020200/56813b38550346895da40b76/html5/thumbnails/8.jpg)
88
טיפוסי השפה
)טיפוסים מוגדרים 8: טיפוסים יסודיים )פרימיטיביים בשפה שמיועדים להכיל ערכים פשוטים:
:מספרים שלמיםbyte, short, int, long :מספרים ממשייםfloat, double :תוויםchar :ערכים בוליאניםboolean
טיפוסים מורכבים היכולים גם להכיל טיפוסי הפנייה :מידע וגם לספק שרותים (יוסבר בהמשך)
המתכנת יכול להגדיר טיפוסי הפנייה חדשים דוגמאות מיוחדות: מחרוזות ומערכים
8
![Page 9: תוכנה 1](https://reader031.vdocuments.net/reader031/viewer/2022020200/56813b38550346895da40b76/html5/thumbnails/9.jpg)
99
הטיפוסים הפרימיטיביים
בזיכרון המחשב נשמר המידע בפורמט בינאריסיבית) bit') 1' או '0): ספרה בינארית('בייט)) octet, byte סיביות8: קבוצה של
Value Range Size Type
-263 → 263-1 64 bits long
-231 → 231-1 32 bits int
-215 → 215-1 16 bits short
-128→ 127 8 bits byte
beyond the scope of the discussion
64 bits double
32 bits float
most alphabet languages 16 bits char
true, false "1 bit" boolean
שלמים
ממשיים
תווים
ערכים לוגיים
![Page 10: תוכנה 1](https://reader031.vdocuments.net/reader031/viewer/2022020200/56813b38550346895da40b76/html5/thumbnails/10.jpg)
1010
טיפוסים לא פרימיטיביים
ישנם אלפי טיפוסים לא פרימיטיביים בספריה.Javaהתקנית של
:תיעודJava API (Application Programming Interface)
http://java.sun.com/javase/6/docs/api/ אנו כמתכנתים ניצור טיפוסים לא פרימיטיביים
נוספים) דוגמאות: מערכים, מחרוזותString(
) הפניהreference משתנה מטיפוס שאינו :(פרימיטיבי
String myString = "Hello World"Non-primitive type (objectעצם )
![Page 11: תוכנה 1](https://reader031.vdocuments.net/reader031/viewer/2022020200/56813b38550346895da40b76/html5/thumbnails/11.jpg)
1111
מחרוזות
:אופרטור שרשור• "Hello " + "World" is "Hello World"• "19" + 8 + 9 is "1989"
דוגמאות לפונקציות מהמחלקהString:
עוד ב-
http://java.sun.com/javase/6/docs/api/java/lang/String.html
String str1 = "Hello";char c = str1.charAt(0);String str2 = str1.toUpperCase();int strLength = str1.length();
//c == ‘H’ //str2 == "HELLO"
//i == 5
![Page 12: תוכנה 1](https://reader031.vdocuments.net/reader031/viewer/2022020200/56813b38550346895da40b76/html5/thumbnails/12.jpg)
1212
המרה למספרים
Long.parseLong Integer.parseInt Short.parseShort Byte.parseByte Double.parseDouble Float.parseFloat Boolean.parseBoolean
public static void main(String[] args){int i = Integer.parseInt("1");double d = Double.parseDouble("-12.45e2");
}// d==-1245.0
//i==1
![Page 13: תוכנה 1](https://reader031.vdocuments.net/reader031/viewer/2022020200/56813b38550346895da40b76/html5/thumbnails/13.jpg)
איך נדע...?
13
![Page 14: תוכנה 1](https://reader031.vdocuments.net/reader031/viewer/2022020200/56813b38550346895da40b76/html5/thumbnails/14.jpg)
והתשובה
14
![Page 15: תוכנה 1](https://reader031.vdocuments.net/reader031/viewer/2022020200/56813b38550346895da40b76/html5/thumbnails/15.jpg)
15
מערכים בקצרה
מבנה נתונים פשוטאוסף של פריטים מאותו טיפוסגישה באמצעות אינדקס
נשתמש ב ][ לציין מערך מערך שלint בשם odds.
הרחבה על מערכים בתרגול הבא
int odds;[]
1 3 5 7 9 11 13 15
odds.length == 8
0 1 2 3 4 5 6 )0אינדקס (מתחיל מ-7
![Page 16: תוכנה 1](https://reader031.vdocuments.net/reader031/viewer/2022020200/56813b38550346895da40b76/html5/thumbnails/16.jpg)
16
העברת ארגומנטים לתכנית
?כיצד מעבירים ארגומנטים לתוכניתcommand line:
Eclipse:Run ➙ Run Configurations ➙ Arguments
public class MyClass { public static void main(String[] args) { System.out.print(args.length + "\t"); System.out.print(args[0] + "\t"); System.out.print(args[args.length - 1]); }}
מערך המכיל את הארגומנטים שהועברו לתוכנית עם הרצתה
Output: 4 1 hello world
![Page 17: תוכנה 1](https://reader031.vdocuments.net/reader031/viewer/2022020200/56813b38550346895da40b76/html5/thumbnails/17.jpg)
1717
מחרוזות ותווים
כתוב תוכנית שמקבלת תו כארגומנטומדפיסה:
את התואת התו העוקב לו
public static void main(String[] args){char c = args[0].charAt(0);char c1 = (char)(c + 1);System.out.println(c + "\t" + c1);
}
![Page 18: תוכנה 1](https://reader031.vdocuments.net/reader031/viewer/2022020200/56813b38550346895da40b76/html5/thumbnails/18.jpg)
1818
מחרוזות ותווים
-כתוב תוכנית המקבלת תו מ{a,b,...,z -ומדפיסה את ה }Uppercase שלו
נחשב את המיקום של התו בabc (אותו מיקום) ונמיר אותו לאותו תו ABCב
public static void main(String[] args){ char c = args[0].charAt(0); System.out.println((char) (c – 'a' + 'A'));}
פתרון א':
![Page 19: תוכנה 1](https://reader031.vdocuments.net/reader031/viewer/2022020200/56813b38550346895da40b76/html5/thumbnails/19.jpg)
דרכים נוספות?
19
![Page 20: תוכנה 1](https://reader031.vdocuments.net/reader031/viewer/2022020200/56813b38550346895da40b76/html5/thumbnails/20.jpg)
2020
מחרוזות ותווים
בעזרתString.toUpperCase()
בעזרתCharacter.toUpperCase()
public static void main(String[] args){ System.out.println (args[0].toUpperCase());}
פתרון ב':
public static void main(String[] args){ char c = args[0].charAt(0); System.out.println(Character.toUpperCase(c));}
פתרון ג':
![Page 21: תוכנה 1](https://reader031.vdocuments.net/reader031/viewer/2022020200/56813b38550346895da40b76/html5/thumbnails/21.jpg)
21
![Page 22: תוכנה 1](https://reader031.vdocuments.net/reader031/viewer/2022020200/56813b38550346895da40b76/html5/thumbnails/22.jpg)
22
הסוף...
22