Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Programmiervorkurs WS 2014/15 Methoden Termin 5. Fakultät als Methode import java.util.Scanner; public class Fakultaet { public static void main(String[]

Ähnliche Präsentationen


Präsentation zum Thema: "Programmiervorkurs WS 2014/15 Methoden Termin 5. Fakultät als Methode import java.util.Scanner; public class Fakultaet { public static void main(String[]"—  Präsentation transkript:

1 Programmiervorkurs WS 2014/15 Methoden Termin 5

2 Fakultät als Methode import java.util.Scanner; public class Fakultaet { public static void main(String[] args) { //Eingabe einer Zahl n: Scanner sc = new Scanner(System.in); int n = sc.nextInt(); //Berechne die Fakultaet f von n: long f = 1; for (int i = 1; i <= n; i++) f *= i; System.out.println( "Die Fakultaet von " + n + " ist " + f); }

3 Fakultät als Methode Idee: Kapselung der Fakultätsberechnung als Programmeinheit, die einfach wiederverwendet werden kann.

4 Fakultät als Methode import java.util.Scanner; public class Fakultaet { public static void main(String[] args) { //Eingabe einer Zahl n: int n = liesGanzzahl(); //Berechne die Fakultaet f von n: long f = fakultaet(n); System.out.println( "Die Fakultaet von " + n + " ist " + f); }

5 Fakultät als Methode import java.util.Scanner; public class Fakultaet { public static void main(String[] args) { //Eingabe einer Zahl n: int n = liesGanzzahl(); //Berechne die Fakultaet f von n: long f = fakultaet(n); System.out.println( "Die Fakultaet von " + n + " ist " + f); } Diese Methoden sind dem Compiler noch nicht bekannt.

6 Fakultät als Methode public class Fakultaet { public static void main(String[] args) { int n = liesGanzzahl(); long f = fakultaet(n); System.out.println( "Die Fakultaet von " + n + " ist " + f); }

7 Fakultät als Methode public class Fakultaet { public static void main(String[] args) { int n = liesGanzzahl(); long f = fakultaet(n); System.out.println( "Die Fakultaet von " + n + " ist " + f); } //Methode zur Eingabe einer Ganzzahl public static int liesGanzzahl() { }

8 Fakultät als Methode public class Fakultaet { public static void main(String[] args) { int n = liesGanzzahl(); long f = fakultaet(n); System.out.println( "Die Fakultaet von " + n + " ist " + f); } //Methode zur Eingabe einer Ganzzahl public static int liesGanzzahl() { } Rückgabewert (hier: eine Ganzzahl)

9 Fakultät als Methode public class Fakultaet { public static void main(String[] args) { int n = liesGanzzahl(); long f = fakultaet(n); System.out.println( "Die Fakultaet von " + n + " ist " + f); } //Methode zur Eingabe einer Ganzzahl public static int liesGanzzahl() { } Name der Methode (Konvention: Beginn mit Kleinbuchstabe)

10 Fakultät als Methode public class Fakultaet { public static void main(String[] args) { int n = liesGanzzahl(); long f = fakultaet(n); System.out.println( "Die Fakultaet von " + n + " ist " + f); } //Methode zur Eingabe einer Ganzzahl public static int liesGanzzahl() { } jede Methode ist in einer Klasse definiert

11 Fakultät als Methode public class Fakultaet { public static void main(String[] args) { int n = liesGanzzahl(); long f = fakultaet(n); System.out.println( "Die Fakultaet von " + n + " ist " + f); } //Methode zur Eingabe einer Ganzzahl public static int liesGanzzahl() { } innerhalb der Klasse durch {} abgegrenzt

12 Fakultät als Methode import java.util.Scanner; public class Fakultaet { public static void main(String[] args) { int n = liesGanzzahl(); long f = fakultaet(n); System.out.println( "Die Fakultaet von " + n + " ist " + f); } //Methode zur Eingabe einer Ganzzahl public static int liesGanzzahl() { Scanner sc = new Scanner(System.in); int i = sc.nextInt(); }

13 Fakultät als Methode import java.util.Scanner; public class Fakultaet { public static void main(String[] args) { int n = liesGanzzahl(); long f = fakultaet(n); System.out.println( "Die Fakultaet von " + n + " ist " + f); } //Methode zur Eingabe einer Ganzzahl public static int liesGanzzahl() { Scanner sc = new Scanner(System.in); int i = sc.nextInt(); return i; }

14 Fakultät als Methode import java.util.Scanner; public class Fakultaet { public static void main(String[] args) { int n = liesGanzzahl(); } //Methode zur Eingabe einer Ganzzahl public static int getGanzzahl() { Scanner sc = new Scanner(System.in); int i = sc.nextInt(); return i; } Variable i ist nur innerhalb der Methode getGanzzahl bekannt! Mit return i wird Wert zurückgegeben.

15 Fakultät als Methode import java.util.Scanner; public class Fakultaet { public static void main(String[] args) { int n = liesGanzzahl(); long f = fakultaet(n); System.out.println( "Die Fakultaet von " + n + " ist " + f); } //Methode zur Berechnung der Fakultaet einer Ganzzahl public static long fakultaet(int arg) { }

16 Fakultät als Methode import java.util.Scanner; public class Fakultaet { public static void main(String[] args) { int n = liesGanzzahl(); long f = fakultaet(n); System.out.println( "Die Fakultaet von " + n + " ist " + f); } //Methode zur Berechnung der Fakultaet einer Ganzzahl public static long fakultaet(int arg) { } Methode nimmt eine Zahl vom Typ int entgegen.

17 Fakultät als Methode import java.util.Scanner; public class Fakultaet { public static void main(String[] args) { int n = liesGanzzahl(); long f = fakultaet(n); System.out.println( "Die Fakultaet von " + n + " ist " + f); } //Methode zur Berechnung der Fakultaet einer Ganzzahl public static long fakultaet(int arg) { } Methode gibt eine Zahl vom Typ long zurück. Methode nimmt eine Zahl vom Typ int entgegen.

18 Fakultät als Methode import java.util.Scanner; public class Fakultaet { public static void main(String[] args) { int n = liesGanzzahl(); long f = fakultaet(n); System.out.println( "Die Fakultaet von " + n + " ist " + f); } //Methode zur Berechnung der Fakultaet einer Ganzzahl public static long fakultaet(int arg) { long fak = 1; for (int i = 1; i <= arg; i++) fak *= i; return fak; //gib das Ergebnis zurueck }

19 Fakultät als Methode import java.util.Scanner; public class Fakultaet { public static void main(String[] args) { int n = liesGanzzahl(); long f = fakultaet(n); } public static long fakultaet(int arg) { long fak = 1; for (int i = 1; i <= arg; i++) fak *= i; return fak; //gib das Ergebnis zurueck } 1. Aufruf der Methode mit Parameterübergabe

20 Fakultät als Methode import java.util.Scanner; public class Fakultaet { public static void main(String[] args) { int n = liesGanzzahl(); long f = fakultaet(n); } public static long fakultaet(int arg) { long fak = 1; for (int i = 1; i <= arg; i++) fak *= i; return fak; //gib das Ergebnis zurueck } 1. Aufruf der Methode mit Parameterübergabe 2. Methode wird ausgeführt

21 Fakultät als Methode import java.util.Scanner; public class Fakultaet { public static void main(String[] args) { int n = liesGanzzahl(); long f = fakultaet(n); } public static long fakultaet(int arg) { long fak = 1; for (int i = 1; i <= arg; i++) fak *= i; return fak; //gib das Ergebnis zurueck } 1. Aufruf der Methode mit Parameterübergabe 2. Methode wird ausgeführt 3. Ergebnis wird zurückgegeben

22 Fakultät als Methode public static long fakultaet(int arg) { long fak = 1; for (int i = 1; i <= arg; i++) fak *= i; return fak; //gib das Ergebnis zurueck System.out.println("Keiner hoert auf mich :-("); }

23 Fakultät als Methode public static long fakultaet(int arg) { long fak = 1; for (int i = 1; i <= arg; i++) fak *= i; return fak; //gib das Ergebnis zurueck System.out.println("Keiner hoert auf mich :-("); } "Unresolved compilation problem: Unreachable code"

24 Fakultät als Methode import java.util.Scanner; public class Fakultaet { public static void main(String[] args) { int n = liesGanzzahl(); long f = fakultaet(n); System.out.println("Die Fakultaet von " + n + " ist " + f); } public static int liesGanzzahl() { Scanner sc = new Scanner(System.in); int i = sc.nextInt(); return i; } public static long fakultaet(int arg) { long fak = 1; for (int i = 1; i <= arg; i++) fak *= i; return fak; }

25 Methoden mit Referenzdatentypen public class FeldAusgabe { public static void main(String[] args) { int[] i = {3, 1, 4, 2, 1}; gibWerteAus(i); } public static void gibWerteAus(int[] werte) { for (int i = 0; i < werte.length; i++) { System.out.println("Wert " + i + " = " + werte[i]); }

26 Methoden mit Referenzdatentypen public class FeldAusgabe { public static void main(String[] args) { int[] i = {3, 1, 4, 2, 1}; gibWerteAus(i); } public static void gibWerteAus(int[] werte) { for (int i = 0; i < werte.length; i++) { System.out.println("Wert " + i + " = " + werte[i]); } kann auch Feld oder Klasse sein Rückgabewert void : Es wird nichts zurückgegeben.

27 Methoden mit Referenzdatentypen public class FeldAusgabe { public static void main(String[] args) { int[] i = {3, 1, 4, 2, 1}; gibWerteAus(i); } public static void gibWerteAus(int[] werte) { for (int i = 0; i < werte.length; i++) { System.out.println("Wert " + i + " = " + werte[i]); } Wert 0 = 3 Wert 1 = 1 Wert 2 = 4 Wert 3 = 2 Wert 4 = 1

28 Methoden mit Referenzdatentypen public class FeldAusgabe { public static void main(String[] args) { int[] i = {3, 1, 4, 2, 1}; doppel(i); gibWerteAus(i); } public static void gibWerteAus(int[] werte) { for (int i = 0; i < werte.length; i++) { System.out.println("Wert " + i + " = " + werte[i]); } public static void doppel(int[] werte) { for (int i = 0; i < werte.length; i++) werte[i] *= 2; }

29 Methoden mit Referenzdatentypen public class FeldAusgabe { public static void main(String[] args) { int[] i = {3, 1, 4, 2, 1}; doppel(i); gibWerteAus(i); } public static void gibWerteAus(int[] werte) { for (int i = 0; i < werte.length; i++) { System.out.println("Wert " + i + " = " + werte[i]); } public static void doppel(int[] werte) { for (int i = 0; i < werte.length; i++) werte[i] *= 2; } Wert 0 = 6 Wert 1 = 2 Wert 2 = 8 Wert 3 = 4 Wert 4 = 2

30 Methoden mit Referenzdatentypen public class FeldAusgabe { public static void main(String[] args) { int[] i = {3, 1, 4, 2, 1}; doppel(i); gibWerteAus(i); } public static void doppel(int[] werte) { for (int i = 0; i < werte.length; i++) werte[i] *= 2; } 3 i

31 Methoden mit Referenzdatentypen public class FeldAusgabe { public static void main(String[] args) { int[] i = {3, 1, 4, 2, 1}; doppel(i); gibWerteAus(i); } public static void doppel(int[] werte) { for (int i = 0; i < werte.length; i++) werte[i] *= 2; } 3 i

32 Methoden mit Referenzdatentypen public class FeldAusgabe { public static void main(String[] args) { int[] i = {3, 1, 4, 2, 1}; doppel(i); gibWerteAus(i); } public static void doppel(int[] werte) { for (int i = 0; i < werte.length; i++) werte[i] *= 2; } 3 i werte

33 Methoden mit Referenzdatentypen public class FeldAusgabe { public static void main(String[] args) { int[] i = {3, 1, 4, 2, 1}; doppel(i); gibWerteAus(i); } public static void doppel(int[] werte) { for (int i = 0; i < werte.length; i++) werte[i] *= 2; } 6 i werte

34 Methoden mit Referenzdatentypen public class FeldAusgabe { public static void main(String[] args) { int[] i = {3, 1, 4, 2, 1}; doppel(i); gibWerteAus(i); } public static void doppel(int[] werte) { for (int i = 0; i < werte.length; i++) werte[i] *= 2; } 6 i

35 Methoden mit Referenzdatentypen public class FeldAusgabe { public static void main(String[] args) { int[] i = {3, 1, 4, 2, 1}; doppel(i); gibWerteAus(i); } public static void doppel(int[] werte) { for (int i = 0; i < werte.length; i++) werte[i] *= 2; } 6 i

36 Methoden mit Referenzdatentypen public class FeldAusgabe { public static void main(String[] args) { int[] i = {3, 1, 4, 2, 1}; doppel(i); gibWerteAus(i); } public static void doppel(int[] werte) { for (int i = 0; i < werte.length; i++) werte[i] *= 2; } 6 i

37 Methoden mit Referenzdatentypen public class FeldAusgabe { public static void main(String[] args) { int[] i = {3, 1, 4, 2, 1}; doppel(i); gibWerteAus(i); } 6 i Felder und Objekte werden per Referenz an Methoden übergeben.

38 Methoden mit Referenzdatentypen Back to the roots: public class MyFirstClass { public static void main(String[] args) { System.out.println("Hello World!"); }

39 Methoden mit Referenzdatentypen Back to the roots: public class MyFirstClass { public static void main(String[] args) { System.out.println("Hello World!"); } Die Methode main gibt nichts zurueck

40 Methoden mit Referenzdatentypen Back to the roots: public class MyFirstClass { public static void main(String[] args) { System.out.println("Hello World!"); } Die Methode main gibt nichts zurueck Die Methode main nimmt ein Feld mit Zeichenketten entgegen (vom System, welches das Programm aufruft)

41 Methoden mit Referenzdatentypen Back to the roots: public class MyFirstClass { public static void main(String[] args) { System.out.println("Hello World!"); } Die Methode main gibt nichts zurueck Die Methode main nimmt ein Feld mit Zeichenketten entgegen (vom System, welches das Programm aufruft) Was steht da drin?

42 Methoden mit Referenzdatentypen Back to the roots: public class MyFirstClass { public static void main(String[] args) { System.out.println("Hello World!"); }

43 Methoden mit Referenzdatentypen Back to the roots: public class MyFirstClass { public static void main(String[] args) { for (int i = 0; i < args.length; i++) System.out.println(args[i]); }

44 Methoden mit Referenzdatentypen Back to the roots: public class MyFirstClass { public static void main(String[] args) { for (int i = 0; i < args.length; i++) System.out.println(args[i]); }

45 Methoden mit Referenzdatentypen Back to the roots: public class MyFirstClass { public static void main(String[] args) { for (int i = 0; i < args.length; i++) System.out.println(args[i]); }

46 Aufgabe Erstellt eine Klasse Flaechenberechnung mit einer Methode public static void main(String[] args). In dieser Methode soll der Nutzer zur Eingabe eines Polygons aufgefordert werden. Ein Objekt der Klasse Polygon hat als einziges Attribut ein Feld punkte, welches Objekte der Klasse Punkt enthält (die Ecken des Polygons). Ein Punkt hat die Attribute x und y (die Koordinaten, beide Typ double ). (Es sind also 2 Klassen zu erstellen, auf die x-Koordinate eines Punktes könnt ihr so zugreifen: INSTANZNAME.punkte[i].x) Anschließend soll eine Methode public static double flaeche(Polygon p) aufgerufen werden. Diese Methode soll zu der Klasse Flaechenberechnung gehören und den Flächeninhalt des Polygons p berechnen. Die Methode main soll diesen Flächeninhalt ausgeben.

47 Aufgabe x y Flächenberechnung durch Summe über (orientierte) Flächen von Trapezen (Gaußsche Trapezformel)

48 Aufgabe x y + Flächenberechnung durch Summe über (orientierte) Flächen von Trapezen (Gaußsche Trapezformel)

49 Aufgabe x y + Flächenberechnung durch Summe über (orientierte) Flächen von Trapezen (Gaußsche Trapezformel)

50 Aufgabe x y - Flächenberechnung durch Summe über (orientierte) Flächen von Trapezen (Gaußsche Trapezformel)

51 Aufgabe x y - Flächenberechnung durch Summe über (orientierte) Flächen von Trapezen (Gaußsche Trapezformel)

52 Aufgabe x y - Flächenberechnung durch Summe über (orientierte) Flächen von Trapezen (Gaußsche Trapezformel)


Herunterladen ppt "Programmiervorkurs WS 2014/15 Methoden Termin 5. Fakultät als Methode import java.util.Scanner; public class Fakultaet { public static void main(String[]"

Ähnliche Präsentationen


Google-Anzeigen