Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Programmier-sprache Java Weiter mit PP..

Ähnliche Präsentationen


Präsentation zum Thema: "Programmier-sprache Java Weiter mit PP.."—  Präsentation transkript:

1 Programmier-sprache Java Weiter mit PP.

2 Das einfachste Programm:
Weiter mit PP.

3 public class MainProgAufbau1 { public static void main (String[] args){
} } Rumpf Hauptprogramm Kopf Zwischen der öffnenden und der schließenden geschweiften Klammer kommen die Anweisungen, hier keine. Diese müssen mit Semikolon beendet werden. Begrenzer (Block) Teilziel: "Grob-Struktur" eines Programms verstehen. Bemerkung: Evtl. ein Arbeitsblatt daraus machen. Weiter mit PP. public static void main (String[] args){ in eine Zeile schreiben. Aus Platzgründen wurden hier 2 Zeilen benötigt. Das ganze Programm muss innnerhalb einer sogenannten Klasse stehen (Näheres dazu später).

4 public class MainProgAufbau1 { public static void main (String[] args){
} } Reservierte Worte; sollen nicht vom Programmierer für Variablennamen vergeben werden Teilziel: "Grob-Struktur" eines Programms verstehen. Bemerkung: Evtl. ein Arbeitsblatt daraus machen. Weiter mit PP.

5 Ein reines Ausgabe - Programm:
Weiter mit PP.

6 System.out.println("Hallo Welt"); } }
public class MainProgAufbau1 { public static void main (String[] args){ System.out.println("Hallo Welt"); } } Anweisungen einrücken Weiter mit PP. Semikolon am Ende einer jeden Anweisung Der auf dem Bildschirm ausgegebene Text ist eine Zeichenkette. Diese steht immer zwischen Anführungszeichen. Auf dem Bildschirm erscheint also: Hallo Welt

7 System.out.println("Hallo Welt"); } }
public class MainProgAufbau1 { public static void main (String[] args){ System.out.println("Hallo Welt"); } } println bedeutet, dass nach der Ausgabe auf dem Bildschirm der Kursor einen Zeilenvorschub macht, d.h der Kursor steht auf der nächsten Zeile in der ersten Spalte. Weiter mit PP. public static void main (String[] args){ in eine Zeile schreiben. Aus Platzgründen wurden hier 2 Zeilen benötigt.

8 System.out.println("Hallo Welt"); } }
public class MainProgAufbau1 { public static void main (String[] args){ System.out.println("Hallo Welt"); } } Den Parameter können wird für unsere Zwecke auch weglassen und nur schreiben: public static void main() Weiter mit PP.

9 Ein Ein /Ausgabe - Programm:
Teilziel: "Fein-Struktur" eines Programms verstehen: Deklaration (Variable, Datentyp), Anweisungen, usw. Bemerkung: Evtl. ein Arbeitsblatt daraus machen. Weiter mit PP.

10 import java.io.*; public class MainEingabe1 { public static void main(String[] args) throws IOException{ String mystr; BufferedReader myinput = new BufferedReader(new InputStreamReader(System.in)); System.out.println("Bitte Text eingeben"); mystr = myinput.readLine(); System.out.println("Der Text heisst:"+mystr); } } Weiter mit PP. Alles jeweils in eine Zeile. Hier ist es aus Platzgründen nicht möglich.

11 import java.io.*; public class MainEingabe1 { public static void main(String[] args) throws IOException{ String mystr; BufferedReader myinput = new BufferedReader(new InputStreamReader(System.in)); System.out.println("Bitte Text eingeben"); mystr = myinput.readLine(); System.out.println("Der Text heisst:"+mystr); } } Einige Bezeichnungen werden erst sehr viel später erklärt und müssen jetzt einfach so hingenommen und akzeptiert werden. Ein paar Bezeichnungen werden allerdings hier jetzt schon geklärt... Weiter mit PP.

12 import java.io.*; public class MainEingabe1 { public static void main(String[] args) throws IOException{ String mystr; BufferedReader myinput = new BufferedReader(new InputStreamReader(System.in)); System.out.println("Bitte Text eingeben"); mystr = myinput.readLine(); System.out.println("Der Text heisst:"+mystr); } } Deklarationsteil = Zutaten Typ Variable Variablenname Anweisungsteil = Zubereitung Weiter mit PP. Einzelne Anweisungen im Anweisungsteil (enden mit einem Semikolon)

13 Der Typ String bedeutet, dass die Variable Zeichenketten speichert.
import java.io.*; public class MainEingabe1 { public static void main(String[] args) throws IOException{ String mystr; BufferedReader myinput = new BufferedReader(new InputStreamReader(System.in)); System.out.println("Bitte Text eingeben"); mystr = myinput.readLine(); System.out.println("Der Text heisst:"+mystr); } } Der Typ String bedeutet, dass die Variable Zeichenketten speichert. Weiter mit PP.

14 import java.io.*; public class MainEingabe1 { public static void main(String args[]) throws IOException{ String mystr; BufferedReader myinput = new BufferedReader(new InputStreamReader(System.in)); System.out.println("Bitte Text eingeben"); mystr = myinput.readLine(); System.out.println("Der Text heisst:"+mystr); } } Kurz (näheres viel später): Im Anweisungsteil wird ein sogenanntes Objekt (mit dem vom Programmierer frei gewählten Namen myinput) des Typs BufferedReader erzeugt. Da dieser Typ dem Compiler unbekannt ist, muss er "importiert" werden. Die Methode (Unterprogramm) readline speichert die über Tastatur eingegebene Zeichenkette in der Variablen mystr. Weiter mit PP. Es wird auf dem Bildschirm die Zeichenkette Der Text heisst: ausgegeben UND der Wert der Variablen mystr

15 Elemente des Rumpfs: Weiter mit PP.

16 Typ: int int ist Abkürzung für integer (bedeutet ganze Zahl)
Variable ... int z; String mystr; int b,c,d; Typ: int int ist Abkürzung für integer (bedeutet ganze Zahl) Der Typ gibt an, welche Werte (z.B. ganze Zahlen) eine Variable annehmen kann. mehrere Variablen können auch durch Kommata getrennt werden. Aber am Ende muss ein Semikolon kommen. Teilziel: Variable genauer verstehen. Weiter mit PP. Der Variablenname soll selbstsprechend bzw. selbsterklärend sein. Also sollte man z.B. eine Variable, die die Breite eines Rechtecks speichert auch breite nennen und NICHT wie hier (aus Platzgründen) nur mit einem Buchstaben benennen !

17 ... int z; String mystr; int b,c,d; Primitiver Datentyp Klassentyp
Es gibt verschiedene Typen: - primitive (elementare) Datentypen (z.B. ganze Zahlen), Klassentypen (z.B. String) näheres später Teilziel: Variable genauer verstehen. Weiter mit PP.

18 z wird mit dem Wert 123 initialisiert.
... int z=123; int a; int b,c,d; Teilziel: Variable genauer verstehen. Weiter mit PP. Eine Variable kann deklariert und gleichzeitig auch initialisiert (vorbelegt) werden

19 Variable sind Daten mit folgenden Eigenschaften:
Eine Variable kann während des Programmlaufs unterschiedliche Werte annehmen. Eine Variable muss vor ihrer Verwendung im Deklarationsteil vereinbart werden. Weiter mit PP. Eine Variable hat einen Namen und einen Typ.

20 Unter einer Variablen kann man sich einen Behälter vorstellen
Unter einer Variablen kann man sich einen Behälter vorstellen. In diesem Behälter wird ein Wert gespeichert (z.B. eine bestimmte Menge Flüssigkeit). Diese Menge bleibt solange konstant in diesem Behälter, solange sie nicht verändert wird. Diese Eigenschaft nennt man speichern. Es "verdunstet" deshalb auch nichts. Weiter mit PP.

21 Bitte folgende Regel einhalten: Anfangsbuchstabe eines Variablennamens immer klein schreiben. Dies ist dem Compiler zwar egal, doch an diese Regel halten sich alle Programmierer. Aufgabe: Lehrer gibt obige Aufgabe. Lösung: Schüler stellen Lösung vor. Weiter mit PP.

22 Ein weiteres Ein /Ausgabe - Programm:
Teilziel: "Fein-Struktur" eines Programms verstehen: Deklaration (Variable, Datentyp), Anweisungen, usw. Bemerkung: Evtl. ein Arbeitsblatt daraus machen. Weiter mit PP.

23 Hier wird noch die Variable z deklariert.
import java.io.*; public class MainEingabe1 { public static void main(String args[]) throws IOException{ String mystr; int z; BufferedReader myinput = new BufferedReader(new InputStreamReader(System.in)); System.out.println("Bitte Zahl eingeben"); mystr = myinput.readLine(); // gleich geht es weiter Dies ist ein Kommentar, der vom Compiler ignoriert wird und nur für den Programmierer wichtig ist. Er beginnt mit // und gilt für die ganze Zeile Teilziel: Platzhalter in den Ein- und Ausgabefunktionen verstehen. Bemerkung: Evtl. ein Arbeitsblatt daraus machen. Weiter mit PP. Hier wird noch die Variable z deklariert.

24 import java.io.*; public class MainEingabe1 { public static void main(String args[]) throws IOException{ String mystr; int z; BufferedReader myinput = new BufferedReader(new InputStreamReader(System.in)); System.out.println("Bitte Zahl eingeben"); mystr = myinput.readLine(); // gleich geht es weiter z ist nicht selbsterklärend. Bitte einen selbstsprechenden Variablennamen wie z.B. zahl verwenden (hier fehlt leider der Platz!). Teilziel: Platzhalter in den Ein- und Ausgabefunktionen verstehen. Bemerkung: Evtl. ein Arbeitsblatt daraus machen. Weiter mit PP.

25 Zuweisungsoperation (Näheres in der übernächsten Folie)
z=Integer.parseInt(mystr); z=z*z; System.out.println("Das Quadrat ist" +z); } } Die Methode parseInt macht aus der Zeichenkette mystr eine ganze Zahl. Diese wird in z gespeichert. Teilziel: Platzhalter in den Ein- und Ausgabefunktionen verstehen. Bemerkung: Evtl. ein Arbeitsblatt daraus machen. Weiter mit PP. Zuweisungsoperation (Näheres in der übernächsten Folie) Es wird auf dem Bildschirm die Zeichenkette "Das Quadrat ist" ausgegeben UND der Wert der Variablen z

26 Frage: Was gibt die folgende Anweisung auf dem Bildschirm aus ?
System.out.println("z=+z"); z=+z Teilziel: Platzhalter in den Ein- und Ausgabefunktionen verstehen. Bemerkung: Evtl. ein Arbeitsblatt daraus machen. Weiter mit PP. Der Compiler erkennt das z nicht als eine Variable, sondern als einen “normalen“ Buchstaben ! Er gibt die komplette Zeichenkette (also alles was sich zwischen den Anführungszeichen befindet) auf dem Bildschirm aus.

27 Zuweisungsoperation:
Der Variablen links des Gleichheitszeichens = wird der Wert rechts des Gleichheitszeichens zugewiesen. LEIDER benutzt der Entwickler der Programmiersprache Java statt des Zeichens := das Gleichheitszeichen, obwohl es sich ... Teilziel: Zuweisungsoperation verstehen. Weiter mit PP.

28 um eine Zuweisung und nicht um eine Gleichheit handelt
um eine Zuweisung und nicht um eine Gleichheit handelt. Dem Entwickler der Programmiersprache Java ist dies offensichtlich egal. Die Syntax gibt er vor und das Gleichheitszeichen hat bei ihm die Semantik von := Teilziel: Zuweisungsoperation verstehen. Weiter mit PP.

29 y z y=10; 10 ? z=y; 10 z=y+2; 10 12 y=z; 12 z=z+1; 12 13 Beispiele:
Dynamische Entwicklung der Inhalte der Variablen y und z: Beispiele: y z y=10; 10 ? z=y; 10 z=y+2; 10 12 Teilziel: Dynamische Entwicklung der Werte einer Variablen verstehen: Bemerkung: Evtl. ein Arbeitsblatt daraus machen. Weiter mit PP. y=z; 12 z=z+1; 12 13

30 Die Ausführung der Anweisungen des letzten Ein- bzw
Die Ausführung der Anweisungen des letzten Ein- bzw. Ausgabeprogramms detailliert erklärt: Teilziel: Platzhalter in den Ein- und Ausgabefunktionen verstehen. Bemerkung: Evtl. ein Arbeitsblatt daraus machen. Weiter mit PP.

31 Was bewirken die einzelnen Anweisungen des gerade vorgestellten Programms ?
System.out.println("Bitte Zahl eingeben"); mystr = myinput.readLine(); z=Integer.parseInt(mystr); z = z * z; Teilziel: Dynamische Entwicklung der Werte einer Variablen verstehen: Bemerkung: Evtl. ein Arbeitsblatt daraus machen. Weiter mit PP. System.out.println ("Das Quadrat ist:"+z);

32 Was bewirkt also: System.out.println("Bitte Zahl eingeben");
Es wird auf dem Bildschirm der Text "Bitte ganze Zahl eingeben" ausgegeben und dann ein Zeilenumbruch gemacht. Teilziel: Dynamische Entwicklung der Werte einer Variablen verstehen: Bemerkung: Evtl. ein Arbeitsblatt daraus machen. Weiter mit PP.

33 Was bewirkt also: mystr = myinput.readLine();
Das Programm hält an und der Benutzer muss über Tastatur eine ganze Zahl eingeben und mit dem Drücken der Return-Taste diese Eingabe beenden (erst dann macht das Programm weiter). Die eingegebene Zahl wird in der Variablen z gespeichert. Wir nehmen hier an, dass der Benutzer die Zahl 5 eingegeben hat. Teilziel: Dynamische Entwicklung der Werte einer Variablen verstehen: Bemerkung: Evtl. ein Arbeitsblatt daraus machen. Weiter mit PP.

34 Was bewirkt also: z=Integer.parseInt(mystr);
Die über Tastatur eingegebene Zeichenkette (z.B. 1234) wird in die dazugehörige Zahl 1234 umgewandelt und in der Variable z mit dem Datentyp integer gespeichert. Teilziel: Dynamische Entwicklung der Werte einer Variablen verstehen: Bemerkung: Evtl. ein Arbeitsblatt daraus machen. Weiter mit PP.

35 Was bewirkt also: z = z * z;
Der Wert der Variablen z (hier also 5) wird mit sich selbst multipliziert (ergibt hier also 25) und wiederum in der Variablen z abgespeichert. Der Wert der Variablen z ist hier also vor der Ausführung der Anweisung 5 und nach der Ausführung 25. Teilziel: Dynamische Entwicklung der Werte einer Variablen verstehen: Bemerkung: Evtl. ein Arbeitsblatt daraus machen. Weiter mit PP.

36 Was bewirkt also: System.out.println ("Das Quadrat ist:"+z);
Es wird folgendes auf dem Bildschirm ausgegeben: Das Quadrat ist: 25 Teilziel: Dynamische Entwicklung der Werte einer Variablen verstehen: Bemerkung: Evtl. ein Arbeitsblatt daraus machen. Weiter mit PP.

37 Aufgabe: Ein Schreiner will von einer rechteckigen Holzplatte den Flächeninhalt und den Umfang (für die Umleimer) bestimmen. Schreiben Sie dazu ein Programm. Weiter mit PP.

38 import java.io.*; public class Maintest1{ public static void main(String args[]) throws IOException{ int l; // Länge int b; // Breite // nicht so gut (keine Dokumentation):  int u,f; String mystr; BufferedReader myinput = new BufferedReader(new InputStreamReader(System.in)); System.out.println("Bitte Länge eingeben"); alles in der gleichen Zeile rechts von // wird als Kommentar aufgefasst und vom Compiler nicht berücksichtigt. Weiter mit PP.

39 mystr = myinput. readLine(); l=Integer. parseInt(mystr); System. out
mystr = myinput.readLine(); l=Integer.parseInt(mystr); System.out.println("Bitte Breite eingeben"); mystr = myinput.readLine(); b=Integer.parseInt(mystr); u=2*(l+b); f=l*b; System.out.println("Umfang="+u "Fläche="+f); } } Weiter mit PP. Umfang=14Fläche=12 Angenomen, der Anwender gibt für die Breite den Wert 3 und für die Länge den Wert 4 ein. Wie sieht dann die Bildschirmausgabe aus?

40 mystr = myinput. readLine(); l=Integer. parseInt(mystr); System. out
mystr = myinput.readLine(); l=Integer.parseInt(mystr); System.out.println("Bitte Breite eingeben"); mystr = myinput.readLine(); b=Integer.parseInt(mystr); u=2*(l+b); f=l*b; System.out.println("Umfang="+u "Fläche="+f); } } Weiter mit PP. Umfang=14 Fläche=12 Was müsste man an der Anweisung ändern, damit die folgende, optisch ansprechendere Bildschirmausgabe erzeugt wird?

41 mystr = myinput. readLine(); l=Integer. parseInt(mystr); System. out
mystr = myinput.readLine(); l=Integer.parseInt(mystr); System.out.println("Bitte Breite eingeben"); mystr = myinput.readLine(); b=Integer.parseInt(mystr); u=2*(l+b); f=l*b; } } Weiter mit PP.

42 Hier werden noch 2 Leerzeichen ausgegeben.
mystr = myinput.readLine(); l=Integer.parseInt(mystr); System.out.println("Bitte Breite eingeben"); mystr = myinput.readLine(); b=Integer.parseInt(mystr); u=2*(l+b); f=l*b; System.out.println("Umfang="+u " Fläche="+f); } } Weiter mit PP. Hier werden noch 2 Leerzeichen ausgegeben.

43 System.out.println("Umfang="+u"); System.out.println("Fläche="+f");
mystr = myinput.readLine(); l=Integer.parseInt(mystr); System.out.println("Bitte Breite eingeben"); mystr = myinput.readLine(); b=Integer.parseInt(mystr); u=2*(l+b); f=l*b; } } System.out.println("Umfang="+u"); System.out.println("Fläche="+f"); Weiter mit PP. Umfang=14 Fläche=12 Begründung: Nach jeder Ausgabe kommt ein Zeilenumbruch (println) Was würden alternativ diese 2 Anweisungen ausgeben?

44 Bei neueren Java-Versionen wird die Eingabe (mit Hilfe der Klasse Scanner) einfacher:
Weiter mit PP.

45 In eine Zeile schreiben (hier aus Platzmangel unmöglich)
import java.io.*; import java.util.Scanner; public class MainEingabeScanner1{ public static void main() { int i1, i2; String s1, s2; Scanner tastatur = new Scanner(System.in); s1 = tastatur.next(); s2 = tastatur.next(); i1 = tastatur.nextInt(); i2 = tastatur.nextInt(); } } In eine Zeile schreiben (hier aus Platzmangel unmöglich) Weiter mit PP. Mit der Methode nextInt kann man eine ganze Zahl über Tastatur eingeben Mit der Methode next kann man eine Zeichenkette über Tastatur eingeben.

46 Programmieren Sie das Schreinerei-Programm mit Hilfe der Klasse Scanner.
Weiter mit PP.

47 import java. io. ; import java. util
import java.io.*; import java.util.Scanner; public class MainSchreinerei2{ public static void main(String[] args){ int breite; int laenge; int umfang; int flaeche; Scanner tastatur = new Scanner(System.in); System.out.println("Breite eingeben"); breite = tastatur.nextInt(); In eine Zeile schreiben (hier aus Platzmangel unmöglich) In eine Zeile schreiben (hier aus Platzmangel unmöglich) Weiter mit PP.

48 System.out.println("Länge eingeben"); laenge = tastatur.nextInt();
umfang = 2*(laenge+breite); flaeche = laenge*breite; System.out.println("Umfange=" umfang); System.out.println("Fläche= " flaeche); } } Weiter mit PP. In eine Zeile schreiben (hier aus Platzmangel unmöglich) In eine Zeile schreiben (hier aus Platzmangel unmöglich)

49 Frage: Was ist der Nachteil dieser zweier Programme ?
Antwort: Es können nur ganzzahlige Werte eingegeben werden. Weiter mit PP.

50 Wir machen deshalb einen kleinen Ausflug:
Weiter mit PP.

51 1 Byte = 8 Bit Weiter mit PP.

52 Wie viele Zustände kann man mit 1 Byte darstellen ?
Weiter mit PP.

53 Wie viele Zustände kann man mit 1 Byte darstellen ?
Zu schwierig ? Also beginnen wir mit einem Bit Weiter mit PP.

54 Wie viele Zustände kann man mit 1 Bit darstellen ?
und 1 Weiter mit PP. also, Anzahl der Zustände: 2 * 1 = 2

55 Wie viele Zustände kann man mit 2 Bit darstellen ?
Also insgesamt 1 und Weiter mit PP. 1 1 also, Anzahl der Zustände: 2 * 2 = 4

56 Wie viele Zustände kann man mit 3 Bit darstellen ?
4 Möglichkeiten Also insgesamt ... 1 1 und Weiter mit PP. 1 ... 1 1 4 Möglichkeiten also, Anzahl der Zustände: 2 * 4 = 2 * 2 * 2 = 8

57 Wie viele Zustände kann man mit 8 Bit darstellen ?
2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 = 28 = 256 Weiter mit PP.

58 Wie viele Zustände kann man mit 2 Byte darstellen ?
2 Byte = 16 Bit also: Weiter mit PP. 216 = 65536

59 Wie viele Zustände kann man mit 4 Byte darstellen ?
4 Byte = 32 Bit also: Weiter mit PP. 232 =

60 Wie kann man dies schnell näherungsweise ausrechnen ?
Weiter mit PP.

61 210 = 1024  1000 = 103 , also also: 210  103 220 = 210 · 2 = (210)2  (103)2 = 106 also: 220  106 230 = 210 · 3 = (210)3  (103)3 = 109 also: 230  109 Weiter mit PP. 240 = 210 · 4 = (210)4  (103)4 = 1012 also: 240  1012

62 Weitere Maßeinheiten für (große) Datenmengen:
Weiter mit PP. 62

63 103 Byte = 1 Kilobyte = 1 KB 106 Byte = 1 Megabyte = 1 MB 109 Byte = 1 Gigabyte = 1 GB 1012 Byte = 1 Terabyte = 1 TB 1015 Byte = 1 Petabyte = 1 PB 1018 Byte = 1 Exabyte = 1 EB 1021 Byte = 1 Zettabyte = 1 ZB 1024 Byte = 1 Yottabyte = 1 YB Weiter mit PP. 63

64 Wie kann man schnell näherungsweise ausrechnen, wie viele Zustände man mit 2 Byte bzw. 4 Byte darstellen kann, d.h. wie gross ist und 232 ? Weiter mit PP.

65 216 = = 26 · 210= 64 · 210  64 · 103 also: 216  64103 Weiter mit PP. 232 = = 22 · 230= 4 · 230  4 · 109 also: 232  4 109

66 Zurück zum primitiven (elementaren, einfachen) Datentyp:
Weiter mit PP.

67 Primitiver (elementarer) Datentyp
import java.io.*; public class MainTest { public static void main(){ int z; ... } Weiter mit PP. Primitiver (elementarer) Datentyp

68 Der primitive (einfach, elementar) Datentyp einer Variablen legt fest, welche Werte eine Variable annehmen darf und in welchem Wertebereich sich diese Werte befinden dürfen. Dieser Wertebereich hängt von der Anzahl der Bytes ab, in denen die Variable gespeichert wird. Weiter mit PP.

69 Ganzzahlige Datentypen
Diese können dargestellt werden durch: Teilziel: Die folgenden Datentypen verstehen. Weiter mit PP.

70 Datentyp byte Länge: 1 Byte Wertebereich: -2^7...+2^7-1, also
^ bedeutet hoch -2^7...+2^7-1, also Lehrer: Länge ist abhängig vom Compiler Frage: Wieviel Zahlen kann man mit 2 Byte darstellen ? Antwort: 2^16=65536. Davon wird die Hälfte für positive Zahlen (einschließlich 0), der Rest für negative Zahlen verwendet. Wie groß ist dann die kleinste negative Zahl und die größte positive Zahl ? ... Das gleiche beantworten für 4 Byte große Länge Päsentiert die Lösung. Weiter mit PP. 256 Zahlen auf positiven und negativen Bereich aufgeteilt

71 Datentyp short Länge: 2 Byte Wertebereich: -2^16...+2^16-1, also
Lehrer: Länge ist abhängig vom Compiler Frage: Wieviel Zahlen kann man mit 2 Byte darstellen ? Antwort: 2^16=65536. Davon wird die Hälfte für positive Zahlen (einschließlich 0), der Rest für negative Zahlen verwendet. Wie groß ist dann die kleinste negative Zahl und die größte positive Zahl ? ... Das gleiche beantworten für 4 Byte große Länge Päsentiert die Lösung. Weiter mit PP. 65536 Zahlen auf positiven und negativen Bereich aufgeteilt

72 Datentyp int Länge: 4 Byte Wertebereich: -2^32...+2^32-1, also
Lehrer: Länge ist abhängig vom Compiler Frage: Wieviel Zahlen kann man mit 2 Byte darstellen ? Antwort: 2^16=65536. Davon wird die Hälfte für positive Zahlen (einschließlich 0), der Rest für negative Zahlen verwendet. Wie groß ist dann die kleinste negative Zahl und die größte positive Zahl ? ... Das gleiche beantworten für 4 Byte große Länge Päsentiert die Lösung. Weiter mit PP. Zahlen auf positiven und negativen Bereich aufgeteilt

73 Datentyp long Länge: 8 Byte Wertebereich: -2^63...+2^63-1, also
Lehrer: Länge ist abhängig vom Compiler Frage: Wieviel Zahlen kann man mit 2 Byte darstellen ? Antwort: 2^16=65536. Davon wird die Hälfte für positive Zahlen (einschließlich 0), der Rest für negative Zahlen verwendet. Wie groß ist dann die kleinste negative Zahl und die größte positive Zahl ? ... Das gleiche beantworten für 4 Byte große Länge Päsentiert die Lösung. Weiter mit PP.

74 Datentyp char Länge: 2 Byte Wertebereich: 0...2^16-1, also 0...+65535
Lehrer: Länge ist abhängig vom Compiler Frage: Wieviel Zahlen kann man mit 2 Byte darstellen ? Antwort: 2^16=65536. Davon wird die Hälfte für positive Zahlen (einschließlich 0), der Rest für negative Zahlen verwendet. Wie groß ist dann die kleinste negative Zahl und die größte positive Zahl ? ... Das gleiche beantworten für 4 Byte große Länge Päsentiert die Lösung. Weiter mit PP.

75 Alle Unicode-Zeichen, z.B: A <---> 0041 (hexadezimal)
Die ersten 128 Zeichen des Unicode entsprechen den ersten 128 Zeichen des ASCII-Zeichensatzes. Lehrer: Länge ist abhängig vom Compiler Frage: Wieviel Zahlen kann man mit 2 Byte darstellen ? Antwort: 2^16=65536. Davon wird die Hälfte für positive Zahlen (einschließlich 0), der Rest für negative Zahlen verwendet. Wie groß ist dann die kleinste negative Zahl und die größte positive Zahl ? ... Das gleiche beantworten für 4 Byte große Länge Päsentiert die Lösung. Weiter mit PP.

76 Warum braucht man Unicode bzw. ASCII-Code?
Weiter mit PP.

77 Zeichen Ein Computer kann nur Zahlen speichern, keine Zeichen. Damit ein Zeichen gespeichert werden kann, wird ihm eine Zahl (ASCII-Wert) zugeordnet. Weiter mit PP.

78 Da verschiedene Sprachen (z. B
Da verschiedene Sprachen (z.B. chinesisch) sehr viele Zeichen besitzen und nicht im ASCII-Zeichensatz berücksichtigt werden, wurde ein neuer Zeichensatz definiert, der sogenannte Unicode. Lehrer: Teilt ASCII-Tabelle aus. Weiter mit PP.

79 Die ersten 256 Plätze im Unicode entsprechen dem Zeichensatz ISO Latein 1, wo auch der ASCII-Zeichensatz untergebracht ist. Lehrer: Teilt ASCII-Tabelle aus. Weiter mit PP.

80 Was würde der Compiler sagen, wenn die zwei Hochkommata fehlen würden?
Beispiele für Zeichen ... char x; char y; x = 'c'; y = 'A'; y = '\u0041'; Was würde der Compiler sagen, wenn die zwei Hochkommata fehlen würden? Er würde c als Variable auffassen. Da diese aber nicht deklariert (angemeldet) wurde, gibt er eine Fehlermeldung aus. u steht für Unicode und die nachfolgende Zahl muss eine Hexadezimalzahl sein. Weiter mit PP.

81 Beispiele für Zeichen ... char x; char y; x = 'c'; y = 'A';
y = '\u0041'; Diese zwei Anweisungen machren also genau das Gleiche! Das ASCII-Zeichen des ASCII-Codes 41Hex ist nämlich A. Bitte nachschauen Mit Hilfe des Backslash (Gegenschrägstrich) kann man solche Ersatzdarstellungen realisieren. Weiter mit PP.

82 Manchmal braucht man diese Ersatzdarstellungen (Fluchtzeichenfolgen oder Escape-Sequenzen), weil man damit Steuerzeichen, oder Zeichen, die nicht auf dem Eingabegerät (Tastatur) vorhanden sind, darstellen, kann, wie zum Beispiel... Weiter mit PP.

83 \n führt Zeilenvorschub durch (new line) \t setzt Horizontaltabulator \v setzt Vertikaltaltabulator \b geht Mit dem Kursor ein Zeichen zurück (backspace) \r führt Wagenrücklauf durch (carriage return) \f führt Seitenvorschub durch (form feed) \a löst Klingelzeichen aus (Alarm) \' Hochkomma \" Anführungszeichen \\ Gegenschrägstrich (Backslash) \u.. Mit u wird eine Unicode-Ersatzdarstellung eingeleitet. Weiter mit PP.

84 Gleitpunkt Datentypen
Können dargestellt werden durch: Teilziel: Die folgenden Datentypen verstehen. Weiter mit PP.

85 (oder auch Gleitkommazahlen genannt)
Fließkommazahlen (oder auch Gleitkommazahlen genannt) Können dargestellt werden durch: Weiter mit PP.

86 Datentyp float Länge: 4 Byte Wertebereich: -10^38...+10^38
Genauigkeit: 7 Stellen Weiter mit PP.

87 Datentyp double Länge: 8 Byte Wertebereich:
-10^ ^308 Genauigkeit: 15 Stellen Weiter mit PP.

88 Java wurde in den USA entwickelt
Java wurde in den USA entwickelt. Im amerikanischen Sprachraum schreibt man in Kommazahlen statt des Kommas einen Punkt. Deshalb gilt für die Syntax... Weiter mit PP.

89 Beispiele für Gleitkommazahlen:
... double x; x = ; x = -4.67; x = 7.5e-23; x = E-45; 3,1415 -4,67 7,5·10-23 Weiter mit PP. 10-45

90 Funktioniert genauso für float:
... float x; x = ; x = -4.67; x = -3.14e23; x = -E17; 3,1415 -4,67 -3,14·1023 Weiter mit PP. -1017

91 Boolescher Datentyp wird dargestellt durch: Teilziel:
Die folgenden Datentypen verstehen. Weiter mit PP.

92 true, false wird in der Logik verwendet (true – wahr, false – falsch)
Datentyp boolean Länge: ? Wertebereich: true, false wird in der Logik verwendet (true – wahr, false – falsch) Weiter mit PP.

93 Beispiele für boolsche Werte
... boolean b1; boolean b2; b1 = true; b2 = false; Weiter mit PP.

94 Das EVA Prinzip Teilziel: Das EVA-Prinzip verstehen. Weiter mit PP.

95 import java.io.*; public class MainEingabe1 { public static void main(String args[]) throws IOException{ String mystr; int z; BufferedReader myinput = new BufferedReader(new InputStreamReader(System.in)); System.out.println("Bitte Zahl eingeben"); mystr = myinput.readLine(); z=Integer.parseInt(mystr); Eingabe Weiter mit PP.

96 // ... z=z*z; System.out.println("z="+z);
} } Verarbeitung Weiter mit PP. Ausgabe

97 Ersatzwiderstand von 2 parallel geschalteten Widerständen berechnen.
Aufgabe: Ersatzwiderstand von 2 parallel geschalteten Widerständen berechnen. Weiter mit PP.

98 public class Maintest2{ public static void main(String args[])
import java.io.*; public class Maintest2{ public static void main(String args[]) throws IOException{ double R1; double R2; double ersatz; String mystr; BufferedReader myinput = new BufferedReader(new InputStreamReader(System.in)); System.out.println("Bitte 1. Widerstand eingeben"); // gleich geht es weiter ... Variablennamen normalerweise groß schreiben. Da R1 und R2 aus Bezeichnungen aus der Physik sind, kann man es hier erlauben. Dem Compiler ist es zwar egal, doch sagt die Java-Community: Variablennamen groß schreiben. Weiter mit PP.

99 mystr = myinput.readLine(); R1=Double.parseDouble(mystr);
System.out.println("Bitte 2. Widerstand eingeben"); R2=Double.parseDouble(mystr); ersatz=1/(1/R1+1/R2); System.out.println("Ers.widerstand=" +ersatz); } Weiter mit PP.

100 Weitere Lösung Weiter mit PP.

101 public class Maintest2{ public static void main(String args[])
import java.io.*; public class Maintest2{ public static void main(String args[]) throws IOException{ double R1; double R2; double ersatz; String mystr; BufferedReader myinput = new BufferedReader(new InputStreamReader(System.in)); System.out.println("Bitte 1. Widerstand eingeben"); // gleich geht es weiter ... Alles ist gleich wie in der letzten Lösung. Weiter mit PP.

102 mystr = myinput.readLine(); R1=Double.parseDouble(mystr);
System.out.println("Bitte 2. Widerstand eingeben"); R2=Double.parseDouble(mystr); ersatz=1/R1+1/R2; System.out.println("Ers.widerstand=" +ersatz); } ersatz = 1 / ersatz; Weiter mit PP. Alles ist immer noch gleich (bis auf eine Anweisung) wie in der letzten Lösung. Was fehlt aber noch ?

103 Frage: Wäre folgende Anweisung auch korrekt ?
1/ersatz = 1/R1 + 1/R2 Nein ! Links des Gleichheitszeichens darf nur genau eine Variable stehen ! Weiter mit PP.

104 Aufgaben aus dem Übungsblatt lösen.
Weiter mit: Aufgaben aus dem Übungsblatt lösen. Weiter mit PP.


Herunterladen ppt "Programmier-sprache Java Weiter mit PP.."

Ähnliche Präsentationen


Google-Anzeigen