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

Slides:



Advertisements
Similar presentations
תוכנה 1 סמסטר א ' תשע " ב תרגול מס ' 7 * מנשקים, דיאגרמות וביטים * לא בהכרח בסדר הזה.
Advertisements

מבוא למדעי המחשב לתעשייה וניהול
Programming with Java. Problem Solving The purpose of writing a program is to solve a problem The general steps in problem solving are: –Understand the.
1 תוכנה 1 תרגול 14 – סיכום. 2 קצת על מנשקים מנשק יכול להרחיב יותר ממנשק אחד שירותים במנשק הם תמיד מופשטים וציבוריים public interface MyInterface { public.
טבלאות סמלים נכתב ע"י אלכס קוגן סמסטר חורף, תשס"ח.
מבוא כללי למדעי המחשב תרגול 1. כתיבת התוכנה כתיבת התוכנית עצמה נעשית ע " י כתיבת קובץ טקסט רגיל אשר תוכנו מקיים את כללי שפת C כתיבת התוכנית עצמה נעשית.
מבוא למדעי המחשב תרגול 2 שעת קבלה : יום שני 11:00-12:00 דוא " ל :
מבוא כללי למדעי המחשב שיעור שני: שימוש במשתנים.
תכנות תרגול 6 שבוע : חישוב e זוהי הנוסחא לחישוב e נראה כיצד לתרגם אותה לפונקציה n n.
תרגול 5 רקורסיות. רקורסיה קריאה של פונקציה לעצמה –באופן ישיר או באופן עקיף היתרון : תכנות של דברים מסובכים נעשה ברור ונוח יותר, מכיוון שזו למעשה צורת.
1 מבוא למדעי המחשב תרגול מספר 2. 2 בשיעור הקודם... הגדרות שפת מחשב, שפה עילית, קומפיילר, תוכנית בשפת C, קובץ הרצה קובץ (טקסט) המכיל תוכנית בשפת C (hello.c)
תכנות תרגול 4 שבוע : לולאות while לולאות while while (condition) { loop body } במקרה של קיום התנאי מתבצע גוף הלולאה ברגע שהתנאי לא מתקיים נצא.
תכנות תרגול 2 שבוע : שבוע שעבר כתבו תוכנית המגדירה שלושה משתנים מאתחלת אותם ל 1 2 ו 3 ומדפיסה את המכפלה שלהם את ההפרש שלהם ואת הסכום שלהם.
11 Introduction to Programming in C תרגול
מבוא למדעי המחשב תרגול 8 - מחרוזות שעת קבלה : יום שני 11:00-12:00 דוא " ל :
1 Formal Specifications for Complex Systems (236368) Tutorial #5 Refinement in Z: data refinement; operations refinement; their combinations.
11 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel 1 Introduction to Programming in C תרגול
מבוא למדעי המחשב תרגול 4 שעת קבלה : יום שני 11:00-12:00 דוא " ל :
1 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel 1 Introduction to Programming in C תרגול
תכנות תרגול 6 שבוע : תרגיל שורש של מספר מחושב לפי הסדרה הבאה : root 0 = 1 root n = root n-1 + a / root n-1 2 כאשר האיבר ה n של הסדרה הוא קירוב.
תכנות תרגול 6 שבוע : הגדרת פונקציות return-value-type function-name(parameter1, parameter2, …) הגדרת סוג הערכים שהפונקציה מחזירה שם הפונקציהרשימת.
מבוא כללי למדעי המחשב תרגול 3. לולאות while לולאות while while (condition) { loop body } במקרה של קיום התנאי מתבצע גוף הלולאה ברגע שהתנאי לא מתקיים נצא.
תכנות תרגול 5 שבוע : הגדרת פונקציות return-value-type function-name(parameter1, parameter2, …) הגדרת סוג הערכים שהפונקציה מחזירה שם הפונקציהרשימת.
מערכים עד היום כדי לייצג 20 סטודנטים נאלצנו להגדיר עד היום כדי לייצג 20 סטודנטים נאלצנו להגדיר int grade1, grade2, …, grade20; int grade1, grade2, …, grade20;
מבוא למדעי המחשב תרגול 3 שעת קבלה : יום שני 11:00-12:00 דוא " ל :
Last time on Clang משתנה: "פתק" המשמש את המחשב לשמירת מידע. לכל משתנה יש שם וטיפוס כללים לשמות משתנים –חייבים להכיל רק אותיות, מספרים ו '_' –חייבים להתחיל.
מבוא למדעי המחשב שפת c
11 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel 1 Introduction to Programming in C תרגול
Sscanf example #include int main () { char sentence []="Rudolph is 12 years old"; char str [20]; int i; sscanf (sentence,"%s %*s %d",str,&i); printf ("%s.
תכנות תרגול 1 שבוע : צור קשר מתרגל – ליעם רודיטי, ביה " ס למדעי המחשב. מתרגל – ליעם רודיטי, ביה " ס למדעי המחשב. דואר אלקטרוני :
Structure. מה לומדים היום ? דרך לבנות מבנה נתונים בסיסי – Structure מייצר " טיפוס " חדש מתאים כאשר רוצים לאגד כמה משתנים יחד דוגמאות : עובד : שם, טלפון,
JAVA PROGRAMMING PART II.
1 Identifiers  Identifiers are the words a programmer uses in a program  An identifier can be made up of letters, digits, the underscore character (
Introduction to Programming David Goldschmidt, Ph.D. Computer Science The College of Saint Rose Java Fundamentals (Comments, Variables, etc.)
Java The Java programming language was created by Sun Microsystems, Inc. It was introduced in 1995 and it's popularity has grown quickly since A programming.
1 המרכז להוראת המדעים © האוניברסיטה העברית בירושלים עוברים לג ' אווה.
Instructor: Alexander Stoytchev CprE 185: Intro to Problem Solving (using C)
מבוא למדעי המחשב לתעשייה וניהול הרצאה 7. סברוטינות subroutines.
1 מבוא למחשב שפת C תרגילי חזרה. 2 תרגיל 1 : מחשבון קלט : תרגיל חשבוני המורכב ממספרים שלמים עם פעולות חשבוניות ביניהם. התרגיל מסתיים ב =. אפשריים רווחים.
Java Language Basics By Keywords Keywords of Java are given below – abstract continue for new switch assert *** default goto * package.
מבוא למדעי המחשב לתעשייה וניהול הרצאה 6. מפעל השעווה – לולאות  עד עכשיו  טיפלנו בייצור נרות מסוג אחד, במחיר אחיד  למדנו להתמודד עם טיפול במקרים שונים.
מבנה נתונים ואלגוריתמים ) לשעבר - עיבוד מידע( ד"ר אבי רוזנפלד ד"ר אריאלה ריכרדסון.
1 מבוא למדעי המחשב הרצאה 5: פונקציות. 2 מבוא לפונקציות חלוקה של אלגוריתם לתת משימות: משימה - פונקציה: דוגמאות מציאת המקסימלי מבין שני איברים האינדקס של.
1 נתבונן בפונקציה הבאה public static int min(int[] a,int n) { int min = a[0]; for (int i = 1; (i < n ) && (i < a.length) ; i++) if (min > a[i]) min = a[i];
import java.util.Scanner; class myCode { public static void main(String[] args) { Scanner input= new Scanner(System.in); int num1; System.out.println(“Enter.
Introduction to Java Programming by Laurie Murphy Revised 09/08/2016.
מספרים אקראיים ניתן לייצר מספרים אקראיים ע"י הפונקציה int rand(void);
Chapter 4 Assignment Statement
Lecture 2: Data Types, Variables, Operators, and Expressions
University of Central Florida COP 3330 Object Oriented Programming
Chapter 3 Assignment Statement
לולאות קרן כליף.
Starting JavaProgramming
null, true, and false are also reserved.
Introduction to Java Programming
An overview of Java, Data types and variables
מודל חישוב בסיסי שיעור 1.
Instructor: Alexander Stoytchev
Chapter 1: Computer Systems
תוכנה 1 תרגול 13 – סיכום.
עקרונות בסיסיים בתכנות Visual Basic
Computer Programming תרגול 3 Summer 2016
Engineering Programming A
Units with – James tedder
Units with – James tedder
JavaScript Reserved Words
Instructor: Alexander Stoytchev
Module 2 - Part 1 Variables, Assignment, and Data Types
Instructor: Alexander Stoytchev
Agenda Types and identifiers Practice Assignment Keywords in Java
Presentation transcript:

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

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

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

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

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

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

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

מילים שמורות בשפה 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 אין להשתמש במילים אלה כשמות משתנים או שיטות!

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

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

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

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

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

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

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

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

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

// 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 ); }

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

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

פעולות חשבוניות על שלמים האופרטורים +,-,* משמשים לחיבור, חיסור, כפל האופרטור / מבצע חלוקת מנה על שלמים האופרטור % משמש לקבל שארית מחלוקה בין מספרים שלמים 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

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

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

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

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

עוד על הדפסה כשמדפיסים מספר משתנים צריך להיזהר עם המשמעות של האופרטור "+". לדוגמא שימו לב להבדל בין ההדפסות כאן: 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

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

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

תוכנית לדוגמא 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();

תוכנית לדוגמא 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 ); }

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

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

תרגיל בית כתבו תוכנית הקולטת מהמשתמש סכום של כסף באגורות (בין 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 אגורות.