תרגול 1: סביבת העבודה ומבוא ל-Java

Slides:



Advertisements
Similar presentations
STRING AN EXAMPLE OF REFERENCE DATA TYPE. 2 Primitive Data Types  The eight Java primitive data types are:  byte  short  int  long  float  double.
Advertisements

Chapter 1 Introduction to JAVA. Why Learn JAVA? Java is one of the fastest growing programming language in the world. Java is one of the fastest growing.
BASIC JAVA. Hello World n // Hello world program public class MyFirstJavaProgram { public static void main(String args[]) { char c = 'H'; String s =
Primitive Data Types byte, short, int, long float, double char boolean Are all primitive data types. Primitive data types always start with a small letter.
Introduction to Java ISYS 350. A Brief History Sun Microsystems released this language in 1996 – Versions: 1.0 – 1.6 Java Development Kit, JDK – Standard.
Writing Methods. Create the method Methods, like functions, do something They contain the code that performs the job Methods have two parts.
CS0007: Introduction to Computer Programming Setting Up Java.
CMSC 341 Introduction to Java Based on tutorial by Rebecca Hasti at
JOptionPane class. Dialog Boxes A dialog box is a small graphical window that displays a message to the user or requests input. A variety of dialog boxes.
Introducing Java.
Introduction to Programming Prof. Rommel Anthony Palomino Department of Computer Science and Information Technology Spring 2011.
Session One Introduction. Personal Introduction Role of programmers Robot Examination HUD & HID Uploading Code.
The string data type String. String (in general) A string is a sequence of characters enclosed between the double quotes "..." Example: Each character.
UCSC All rights reserved. No part of this material may be reproduced and sold. 1 IT1202-Fundamentals Of Programming (Using JAVA) Interacting with.
Введение в JAVA. Java Java – язык программирования: объектно-ориентированный кроссплатформенный строго-типизированный.
Introduction to Programming David Goldschmidt, Ph.D. Computer Science The College of Saint Rose Java Fundamentals (Comments, Variables, etc.)
© 2012 Pearson Education, Inc. All rights reserved. 1-1 Why Java? Needed program portability – Program written in a language that would run on various.
Intro and Review Welcome to Java. Introduction Java application programming Use tools from the JDK to compile and run programs. Videos at
CS591x A very brief introduction to Java. Java Developed by Sun Microsystems was intended a language for embedded applications became a general purpose.
Basics of Java IMPORTANT: Read Chap 1-6 of How to think like a… Lecture 3.
Java Programming Presented by Daniel Rosenthal Friday, November 30 th, 2007.
Chapter 2: Java Fundamentals
Chapter 2: Java Fundamentals Type conversion,String.
Java Fundamentals 5. Java Programming: From Problem Analysis to Program Design, Second Edition2 Parsing Numeric Strings  Integer, Float, and Double are.
Can we talk?. In Hello World we already saw how to do Standard Output. You simply use the command line System.out.println(“text”); There are different.
A Simple Java Program //This program prints Welcome to Java! public class Welcome { public static void main(String[] args) public static void main(String[]
National Taiwan University Department of Computer Science and Information Engineering National Taiwan University Department of Computer Science and Information.
4-Nov-15 Air Force Institute of Technology Electrical and Computer Engineering Object-Oriented Programming Design Topic 1: The Java Environment Maj Joel.
EIE375 BlueJ: Getting Started Dr Lawrence Cheung.
Mixing integer and floating point numbers in an arithmetic operation.
College Board A.P. Computer Science A Topics Program Design - Read and understand a problem's description, purpose, and goals. Procedural Constructs -
1 CSC 201: Computer Programming I Lecture 2 B. S. Afolabi.
JAVA Practical Creating our first program 2. Source code file 3. Class file 4. Understanding the different parts of our program 5. Escape characters.
Affected Products –Java SE JDK and JRE 6 update 23 and earlier JDK 5.0 Update 27 and earlier SDK 1.4.2_29 and earlier –JRockit R and earlier (JDK/JRE.
BEGINNING PROGRAMMING.  Literally – giving instructions to a computer so that it does what you want  Practically – using a programming language (such.
Getting Started.
FUNDAMENTALS 2 CHAPTER 2. OPERATORS  Operators are special symbols used for:  mathematical functions  assignment statements  logical comparisons 
Overview of Java CSCI 392 Day One. Running C code vs Java code C Source Code C Compiler Object File (machine code) Library Files Linker Executable File.
Lab 01-2 Objectives:  Writing a Java program.  How to send output to the command line console.  Learn about escape sequences.  Learn how to compile,
A Simple Java Program //This program prints Welcome to Java! public class Welcome { public static void main(String[] args) { public static void main(String[]
© 2012 Pearson Education, Inc. All rights reserved types of Java programs Application – Stand-alone program (run without a web browser) – Relaxed.
introductory lecture on java programming
Spring 2009 Programming Fundamentals I Java Programming XuanTung Hoang Lecture No. 8.
3/5/2002e-business and Information Systems1 Java Java Java Virtual Machine (JVM) Java Application Program Interface (API) HW Kernel API Application Programs.
Computer Science A 1. Course plan Introduction to programming Basic concepts of typical programming languages. Tools: compiler, editor, integrated editor,
Features of JAVA PLATFORM INDEPENDENT LANGUAGE JAVA RUNTIME ENVIRONMENT (JRE) JAVA VIRTUAL MACHINE (JVM) JAVA APP BYTE CODE JAVA RUNTIME ENVIRONMENT.
Object Oriented Programming Lecture 2: BallWorld.
SESSION 1 Introduction in Java. Objectives Introduce classes and objects Starting with Java Introduce JDK Writing a simple Java program Using comments.
 It is a pure oops language and a high level language.  It was developed at sun microsystems by James Gosling.
CMSC 202 Computer Science II for Majors Fall 2010 Introduction Version 9/101.
Introduction CMSC 202 Fall Instructors Mr. Ryan Bergeron – Lecture Section 01 Tues/Thu 1:00 – 2:15 am, Sondheim 111 – Lecture Section 04 Tues/Thu.
2. Java language basics (1)
Introduction of Java Fikri Fadlillah, S.T.
Intro to ETEC Java.
Internet and Java Foundations, Programming and Practice
1. Environment Setting Minhaeng Lee.
תרגול 1: סביבת העבודה ומבוא ל-Java
Getting Started ARCS Lab..
תרגול 1: סביבת העבודה ומבוא ל-Java
Writing Methods.
תרגול מס' 3 עבודה עם מחרוזות (Strings) מתודות (Methods) העברת פרמטרים
Introduction to Java Programming
An Introduction to Java – Part I, language basics
Escape Sequences Some Java escape sequences: See Roses.java (page 68)
תרגול 1: סביבת העבודה ומבוא ל-Java
Advanced Programming CS206
JOptionPane class.
Review of Java Fundamentals
Chapter 2: Java Fundamentals cont’d
CS 240: Advanced Programming Concepts
Presentation transcript:

תרגול 1: סביבת העבודה ומבוא ל-Java תוכנה 1 תרגול 1: סביבת העבודה ומבוא ל-Java 1

מנהלות אתר הקורס: http://courses.cs.tau.ac.il/software1/1617a/ מתרגלים: תומר עזרא (שעת קבלה: חמישי ב-17:00, בתיאום מראש) לנה דנקין (שעת קבלה: שלישי ב-17:00, בתיאום מראש) סביבת המחשוב באוניברסיטה היא Linux תנאי קדם: פתיחת חשבון אישי במחשבי האוניברסיטה הנחיות לפתיחת חשבון והכרת סביבת העבודה באתר הקורס. 2

עוד מנהלות נוהל הגשת תרגילים (פרטים מלאים באתר) מועד ההגשה שיטת חישוב הציון (85 מבחן + 15 תרגילים) הגשה באיחור הגשה דרך ה- moodle פורום הקורס (גם ב-moodle) הגשת תרגיל מספר 1 ביום ה' הבא פרטים באתר יש להגיש את קבצי הקוד עם סיומת java ולא קבצי class

סביבת פיתוח והרצה ל-Java Java SE (Standard Edition) 7.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://www.oracle.com/technetwork/java/javase/downloads/index.html To Do: 1. To make sure that the students download "JDK 7.0" from http://www.oracle.com/technetwork/java/javase/downloads/index.html 4

סביבת פיתוח שלובה IDE = Integrated Development Environment סביבה המשלבת רכיבי/כלי פיתוח עצמאיים: עורך טקסט (editor) סייר הקבצים (browser) מהדר (compiler) סביבת זמן ריצה (JRE) מנפה השגיאות (debugger) ועוד... Eclipse – ה- IDE בו נשתמש בקורס. 5

Eclipse IDE המתאים גם לפיתוח תוכנה ב Java. ניתן להתקנה ב- Linux, Windows ועוד דורש התקנה בנפרד של JDK אתר הבית: www.eclipse.org הוראות התקנה ושימוש – באתר הקורס. מותקן על כל המחשבים בכיתת המחשבים בשרייבר. To Do: To make sure that the students download "Eclipse Classic" To go over the configuration of the java+eclipse according to the handouts להראות להם את השקפים הרלוונטיים ליצירת סביבת העבודה + תכנית ראשונה בבית 6

הגדרת משתנה ב Java לכל משתנה יש את הטיפוס שלו עליו מצהירים בעת הגדרת המשתנה. ניתן להצהיר על משתנה מבלי לתת לו ערך, ולאתחל אותו בשורה נפרדת בהמשך התוכנית String str1 = "Hello"; char c = ‘a’; int someNum = 17; טיפוס שם משתנה ערך int i; i = 5;

מבנה תוכנית ב Java "כתבו תוכנית בשם MyProg אשר מדפיסה את השורה “Java is the best!” public class MyProg{ public static void main(String[] args){ System.out.println("Java is the best!"); } כל תוכנית בנויה ממחלקה (class) אחת לפחות. במקרה שלנו, מחלקה בשם MyProg.

מבנה תוכנית ב Java "כתבו תוכנית בשם MyProg אשר מדפיסה את השורה “Java is the best!” public class MyProg{ public static void main(String[] args){ System.out.println("Java is the best!"); } על מנת שנוכל להריץ את התוכנית שלנו, עלינו לממש מתודה בשם main עם חתימה אחידה וקבועה.

מבנה תוכנית ב Java "כתבו תוכנית בשם MyProg אשר מדפיסה את השורה “Java is the best!” public class MyProg{ public static void main(String[] args){ System.out.println("Java is the best!"); } ב Java – כל בלוק תחום על ידי סוגריים מסולסלים, כולל הגדרות מחלקות, מתודות וכו'. בסוף כל פקודה צריך להוסיף התו ";". ירידות שורה והזחות נועדו לקריאות בלבד. הן לא משפיעות כלל על התנהגות התוכנית.

טיפוסי השפה טיפוסים יסודיים (פרימיטיביים): 8 טיפוסים מוגדרים בשפה שמיועדים להכיל ערכים פשוטים: מספרים שלמים: byte, short, int, long מספרים ממשיים: float, double תווים: char ערכים בוליאניים: boolean טיפוסי הפנייה: טיפוסים מורכבים היכולים גם להכיל מידע וגם לספק שירותים (יוסבר בהמשך) המתכנת יכול להגדיר טיפוסי הפנייה חדשים דוגמאות מיוחדות: מחרוזות ומערכים 11 11

הטיפוסים הפרימיטיביים

ASCII Table – char values 13

טיפוסים לא פרימיטיביים טיפוסי הפניה (references) הם משתנים שמצביעים אל אובייקטים. דוגמא: הגדרת מחרוזת (String): String myString = new String("Hello World“); 14

טיפוסים לא פרימיטיביים דוגמא: הגדרת מחרוזת (String): String myString = new String("Hello World“); הגדרת עצם (אובייקט) מטיפוס String. נשתמש במילה השמורה new בכל פעם שנרצה לייצר עצם מטיפוס לא פרימיטיבי 15

מחרוזות מחרוזות הן אובייקט המחזיק אוסף של תווים. אופרטור שרשור: "Hello " + "World" is "Hello World" "19" + 8 + 9 is "1989" דוגמאות לפונקציות מהמחלקה String: עוד ב- http://docs.oracle.com/javase/7/docs/api/index.html?java/lang/String.html String str1 = "Hello"; char c = str1.charAt(0); String str2 = str1.toUpperCase(); int strLength = str1.length(); // c == ‘H’ // str2 == "HELLO" // strLength == 5 16

המרת מחרוזות למספרים 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"); } // i==1 // d==-1245.0 17

איך נדע אילו פקודות קיימות ...?

והתשובה

מערכים בקצרה מערך של int בשם odds: מבנה נתונים פשוט אוסף של פריטים מאותו טיפוס גישה באמצעות אינדקס נשתמש ב [] לציין טיפוס מסוג מערך. מערך של int בשם odds: הרחבה על מערכים בתרגול הבא int[] odds = new int[8]; אינדקס (מתחיל מ-0) 1 2 3 4 5 6 7 1 3 5 7 9 11 13 15 odds reference odds.length == 8

מערכים

העברת ארגומנטים לתכנית 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]); } מערך המכיל את הארגומנטים שהועברו לתוכנית עם הרצתה. we should probably demo this live (time permiting)

העברת ארגומנטים לתכנית כיצד מעבירים ארגומנטים לתוכנית? 2 דרכים אפשריות: command line: Eclipse:Run ➙ Run Configurations ➙ Arguments we should probably demo this live (time permiting) 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]); } מהו פלט התוכנית בדוגמא הזו?

מחרוזות ותווים כתוב תוכנית שמקבלת תו כארגומנט ומדפיסה: את התו את התו העוקב לו public static void main(String[] args){ char c = args[0].charAt(0); char c1 = (char)(c + 1); System.out.println(c + "\t" + c1); } 24

תווים מיוחדים Escape Sequences Description \t Tab \n Newline \r Carriage return \’ Single quote \” Double quote \\ Backslash 25

מחרוזות ותווים כתוב תוכנית המקבלת תו מ- {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')); } פתרון א': חסרון פתרון 1: לא קריא מניח שהקלט הוא ב-lower case חייבים השמה לchar כי הטיפוס של חיבור או חיסור chars (וגם byte או short) הוא int 26

דרכים נוספות?

מחרוזות ותווים בעזרת 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)); } פתרון ג': חסרון פתרון 1: לא קריא מניח שהקלט הוא ב-lower case 28

המרת טיפוסים פרימיטיביים public static void main(String[] args){ long l = 2000000000+2000000000; int i = (int) 1.99999999; float f = (float) 1.99999999; f = 5/2; f = (float) (5/2); f = (float) 5/2; f = 5 / (float) 2; short a = 2; short c = a*a; } // l == -294967296 // i == 1 // f == 2 // f == 2 // f == 2 // f == 2.5 // f == 2.5 ניתן לבלות זמן רב על השקף הזה (והסטודנטים דורשים זאת), יש מיליון דקויות של "מה קורה אם...?" אבל זה גוזל זמן יקר משאר התירגול. ניתן להסביר בקצרה ואת כל השאלות של "מה קורה אם...?" שינסו בבית. צריך להסביר להם שזה לא בגלל שאנחנו לא רוצים לספר אלא בגלל שיש עוד דברים להספיק וגם בגלל שאנחנו רוצים להרגיל אותם לחקור בעיות כאלו באופן עצמאי. // compilation error: cannot convert from int to short עוד על המרות ב- http://java.sun.com/docs/books/jls/third_edition/html/conversions.html 30

הסוף... 31