Presentation is loading. Please wait.

Presentation is loading. Please wait.

קלט/פלט, משתנים.

Similar presentations


Presentation on theme: "קלט/פלט, משתנים."— Presentation transcript:

1 קלט/פלט, משתנים

2 מה למדנו עד עכשיו? למדנו את המבנה הכללי של תוכנית חוקית בג'אווה
למדנו איך להדפיס למסך System.out.println(“some text here”); הבעיה: תוכניות שרק מדפיסות למסך אינן שימושיות.

3 בשיעור הזה נלמד קליטת קלט מהמשתמש משתנים : דרך לאחסן קלט/חישובים
משתנים : דרך לאחסן קלט/חישובים עוד קצת על הדפסה למסך

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

5 טיפוסי משתנים מספר שלם int מספר ממשי (שבר עשרוני) double
ערך בוליאני ( לוגי אמת/שקר) boolean מחרוזת תוים String תו בודד char

6 הצהרה על משתנים לפני שמשתמשים במשתנה בפעם הראשונה צריך להצהיר עליו.
מבנה ההצהרה הוא: type name; לדוגמא: int a; הצהרה על משתנה בשם a, שיכול להכיל בתוכו מספרים שלמים. ההצהרה גורמת לג'אווה ליצור את המשתנה – לשמור לו מקום בזיכרון ולהכיר אותו כשנפנה אליו

7 שמות משתנים שם המשתנה יכול להכיל אותיות, מספרים והסימן "_".
שם המשתנה יתחיל באות ולא יכיל רווחים ! כמו כן רצוי לתת למשתנים שמות משמעותיים, שיסייעו להבין את תפקידם תזכורת – Java מבחינה בין אותיות קטנות וגדולות בשמות. דוגמאות: int numberOfPeople; int number_of_people; int max,min,sum; comment

8 מילים שמורות בשפה Java אין להשתמש במילים אלה כשמות משתנים או שיטות!
abstract Continue for new switch assert*** default goto* package synchronized boolean do if private this break double implements protected throw byte else import public throws case enum**** instanceof return transient catch extends int short try char final interface static void class finally long strictfp** volatile const* float native super while *   not used **   added in java 1.2 ***   added in java 1.4 ****   added in java 5.0 אין להשתמש במילים אלה כשמות משתנים או שיטות!

9 תוכנית לדוגמא public class VarExample{
public static void main(String args[]){ int age; char favoriteLetter; String name; boolean loveJava; }

10 הצבת ערך למשתנה כעת כשאנחנו יודעים איך להצהיר על משתנה אנחנו רוצים להציב בו ערך ההשמה מתבצעת בעזרת הסימן "=". מצד שמאל נכתוב את שם המשתנה, ומצד ימין את הערך שהוא יקבל. לדוגמא: int a; a = 42;

11 השמה למשתנים - דוגמאות double height; height = 1.78; boolean loveJava;
loveJava = true; loveJava = false; int minusValue; minusValue = -56;

12 השמה למשתנים – דוגמאות(המשך)
char letter; letter = ‘R’; String name; name = “Roie”; שימו לב להבדלים בסוגי המרכאות (גרש בתו, גרשיים במחרוזת)

13 השמה למשתנים - המשך השמה של ערך לא מתאים למשתנה תגרור הודעת שגיאה
int x; x = 3.14; Type mismatch: cannot convert from double to int ניתן להצהיר על משתנה ולהציב בו ערך בשורה אחת: double pi =

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

15 קריאת קלט מהמשתמש - המשך
כדי לקרוא קלט מהמשתמשים נשתמש במחלקה Scanner שנמצאת בספריות של התקנת ג'אווה ראשית, בתחילת כל תוכנית, לפני הצהרת המחלקה, נוסיף את הפקודה import java.util.Scanner; בתחילת כל שיטה בה אנחנו רוצים לקלוט נתונים נגדיר אובייקט מסוג Scanner: Scanner input = new Scanner(System.in); כרגע, נחשוב על אובייקט כעל סוג של משתנה שיש לו עוד כל מיני יכולות – במקרה שלנו, פונקציות הקלט

16 קריאת קלט מהמשתמש - המשך
כעת נשתמש באובייקט שיצרנו כדי לקרוא ערך מהמשתמש. כדי לקרוא int נשתמש בפקודה nextInt() int numberOfKids; numberOfKids = input.nextInt(); התוכנית תעצור ותחכה שהמשתמש יכניס ערך אם הערך לא יהיה מסוג int התוכנית תכתוב הודעת שגיאה ותעצור

17 קריאת קלט מהמשתמש - המשך
עוד פקודות שקיימות באובייקט מסוג Scanner לקריאת קלט: nextDouble(); double משמש לקריאת משתנה מסוג next(); Stringמשמש לקריאת משתנה מסוג nextBoolean() boolean משמש לקריאת משנה מסוג

18 // A program to compute the total number of students in a class by reading in
// the numbers of males and females ((עמוד 8 בחוברת הקורס ג'אווה 5 import java.util.Scanner; // import class Scanner public class AddNumbers { public static void main( String args[] ) { // create a Scanner object to read input from the screen Scanner input = new Scanner( System.in); int males, // number of males in class females, // number of females in class sum; // sum of males and females // read in the numbers of males and females from the user System.out.println( "Enter the numbers of males and females in class." ); System.out.println( "Separate the two numbers by one or more blanks." ); males = input.nextInt(); // read the number of males females = input.nextInt(); // read the number of females // compute the total number of students in the class sum = males + females; // print the result System.out.println( "The total number of students in the class is " + sum ); }

19 שימוש בערך המשתנה ניתן לעשות שימוש בערך המשתנה לצורך חישובים, הדפסות וכו' לדוגמא: int numOfStudents = 23; System.out.println(numOfStudents); int x = 5; int y = x+3; System.out.println(y); מה יודפס למסך? 8

20 שימוש בערך המשתנה (המשך)
ניתן להשתמש בערך הישן של המשתנה כדי לחשב את הערך החדש שלו int grade = 95; System.out.println(grade); grade = grade + 5; מה יודפס בכל שלב? 95 95 100 95 100

21 פעולות חשבוניות על שלמים
האופרטורים +,-,* משמשים לחיבור, חיסור, כפל האופרטור / מבצע חלוקת מנה על שלמים האופרטור % משמש לקבל שארית מחלוקה בין מספרים שלמים int x = 5+1; // 6 int y = x*2; // 12 int result1 = 10/3; // = 3 int result2 = 10%3; // = 1 result2 = 6%3; // = 0 result2 = 6%7; // = 6

22 * כלל חישוב על מספרים שלמים:
אם שני האופרנדים (משתנים או קבועים) שמשני צדדיו של אופרטור חשבוני /,%,*,+,- הם שלמים אזי תוצאת הפעולה החשבונית תהיה תמיד מספר שלם! result1 = 10/3; // = 3 result = 5%2; // = 1

23 קדימות של אופרטורים חשבוניים
() לסוגריים הקדימות הגבוהה ביותר %,/,* קדימות גבוהה -, קדימות נמוכה int a =5, b=6; int c,d; c = (a + 2)*b; // = 42 d = 30 / 6 / 3; // =1

24 עוד פעולות חשבוניות ישנן הרבה פעולות חשבוניות שנוכל להשתמש בהן במחלקה Math לדוגמא, הוצאת שורש בעזרת Math.sqrt() double two = Math.sqrt(4); חישוב ערך מוחלט באמצעות Math.abs() : double two = Math.abs(-2);

25 עוד על הדפסה כשהיינו מדפיסים רק מחרוזת אחת לא הייתה בעיה
System.out.println(“Java lesson 2”); כעת נרצה לפעמים להוסיף משתנים להדפסה. לדוגמא: double e = ; System.out.println(“e is : “ + e); הפלט יהיה : e is :

26 עוד על הדפסה כשמדפיסים מספר משתנים צריך להיזהר עם המשמעות של האופרטור "+". לדוגמא שימו לב להבדל בין ההדפסות כאן: int x = 1; int y = 2; System.out.println(“x plus y: “+x+y); System.out.println(“x and y:”+x+ “ “+y); x plus y: 3 x and y: 1 2

27 ניפוי שגיאות לפעמים כדי למצוא שגיאות לוגיות בתוכנית נרצה לדעת מה ערך המשתנים במקום מסוים בתוכנית הכי נוח לבצע זאת על ידי שימוש בהוראה System.out.println(“num = “ + num) שתדפיס את ערך המשתנה num בחלון הפלט.

28 תרגיל כיתה כיתבו תוכנית שמגדירה משתנה מסוג int , מציבה בו ערך בין 100 ל999 ומחשבת ומדפיסה את ערך סיפרת האחדות, העשרות והמאות

29 תוכנית לדוגמא Rocket (עמוד 14 בחוברת הקורס ג'אווה 5(
// Calculate the time of arrival of a rocket import java.util.Scanner; // import class Scanner public class Rocket { public static void main( String args[] ) { // create a Scanner object to read input from the screen Scanner input = new Scanner( System.in); int hours, minutes, seconds, flight_time; // read in the take-off time from user System.out.println( "Enter hours minutes and seconds"); hours = input.nextInt(); // read the number of hours minutes = input.nextInt(); // read the number of minutes seconds = input.nextInt(); // read the number of seconds // read in flight time in seconds System.out.println( "Enter flight time in seconds"); flight_time = input.nextInt();

30 תוכנית לדוגמא Rocket(המשך)
// calculate the time of arrival seconds = seconds + flight_time; minutes = minutes + seconds / 60; seconds = seconds % 60; hours = hours + minutes / 60; minutes = minutes % 60; hours = hours % 24; // print the time of arrival System.out.println( "The time is " + hours + ":" + minutes + ":" + seconds ); }

31 תרגיל כיתה שנו את התרגיל הקודם כך שהמספר יקלט מהמשתמש. (מה קורה כאשר המשתמש מכניס מספר דו ספרתי? או מספר בעל ארבע ספרות?)

32 מה למדנו היום? משתנים: קליטת קלט מהמשתמש סוגי משתנים הצהרת משתנים
הדפסת משתנים פעולות על משתנים קליטת קלט מהמשתמש

33 תרגיל בית כתבו תוכנית הקולטת מהמשתמש סכום של כסף באגורות (בין 0 ל 500 אגורות), ומתרגמת אותו למספר מינימאלי של מטבעות של שקל, חצי שקל, עשר אגורות, חמש אגורות ואגורה. לדוגמא: עבור 173 אגורות, התוכנית תחזיר בפלט: Number of shekels: 1 number of half shekels: 1 number of 10 agorot: 2 number of 5 agorot: 0 number of 1 agora: 3 ההדפסה להגשה תהיה עבור 293 אגורות.


Download ppt "קלט/פלט, משתנים."

Similar presentations


Ads by Google