On Github juwi / javatutorium
Mittwoch 17:30 - 19:00 Raum 6.01.01
Erstellt von
Grundprinzipien der Programmierung Variablen
Was ist eine Variable?
datentyp variablenName;Variablendeklaration allgemein
int zahl; float pi;
Variablendeklaration Beispiel
Variablendeklaratrion und Zuweisung
char frageZeichen = '?'; // character: ein Zeichen int nummer = 42; // integer: Ganzzahl float PI = 3.14159265; // floating point number: Gleitkommazahl String dozentName = "Julian"; // String: Char-Array boolean testErfolg = true; // Boolean: Wahrheitswert (true, false)Beispiel
Ausgabe
// Ausgabe ohne Zeilenumbruch am Ende: System.out.print(["String" + ]variable [+ "String"]); // Ausgabe mit Zeilenumbruch am Ende: System.out.println(["String" + ]variable [+ "String"]);Ausgabe allgemein
System.out.println(“Hallo World“); System.out.println(“Uhrzeit: “+time); System.out.print(“Name: “ + name + “\nPLZ: “ + plz);Ausgabe Beispiel
Mehr Informationen zu System.out in der Java Online Dokumentation
Rechenoperationen
+ Addition - Subtraktion * Multiplikation / Division (Wird bei Ganzzahlen abgerundet) % Modulo (Rest der ganzzahligen Division)Operatoren
int derSinnDesLebens= 8*5+2; String vollerName = “Stefan“ + “Walesch“;Beispiel
Programmieren Sie zum Kennenlernen der Vorgestellten Konzepte ein Hello- World Programm.
Erweitern Sie Ihr Hallo-World Programm zur Realisierung der Geschwindigkeitsberechnung. Definieren Sie dazu eine Strecke s=5, eine Zeit t=2 und eine Geschwindigkeit v=s/t. Verwenden Sie geeignete Datentypen. Lassen sie das Ergebnis Ausgeben.
Arrays
arrayName[index] = value; /*index von 0 bis anzahl_der_elemente -1*/Array Zugriff und Zuweisung
int personenImZugwagon[] = new int[3]; personenImZugwagon[0] = 12; personenImZugwagon[1] = 15; personenImZugwagon[3] = 3;Beispiel
System.out.print(“Im 2. Wagon befinden sich: “ + personenImZugwagon[1] + “ Personen“);Ausgabe
Verzweigung
if(Bedingung){ TrueBlock; }else{ /* “else{...}“ ist optional */ FalseBlock; }if-else Verzweigung allgemein
int zahl = Integer.parseInt(args[0]); //Parst von String zu Int if ((zahl % 2) == 0){ System.out.println(“Zahl ist gerade!“); }else{ System.out.println(“Zahl ist ungerade!“); }Beispiel
switch-case Verzweigung
switch (integer_variable){ case nummer: //Sequenz break; //break optional default: //Default Sequenz break; //break optional }switch-case Verzweigung allgemein
int note = Integer.parseInt(args[0]); switch ( note ) { case 1: System.out.println(“ sehr gut “); break ; case 2: System.out.println(“ gut ”); break ; case 3: System.out.println(“ befriedigend “); break ; case 4: System.out.println(“ ausreichend “); break ; default : System.out.println(“ nicht Bestanden“); break ; }Beispiel
Werten Sie eine Zahl note unter Verwendung von if-else Verzweigungen aus. Dabei soll eins sehr gut, zwei gut, drei befriedigend, vier ausreichend sein bei und allen anderen Zahlen nicht Bestanden ausgegeben werden. Verschachteln Sie ihre Verzweigung derart, dass nach der Ausgabe nicht weiter Geprüft wird.
Schleifen
Schleifen
int i = 1, summe=0; while(i<11){ summe=summe+i; i++; } System.out.println(“Summe von 1 bis 10 ist “ + summe);while-Schleife
int i = 1, summe=0; do{ summe=summe+i; i++; } while(i<11); System.out.println(“Summe von 1 bis 10 ist “ + summe);do-while Schleife
int summe=0; for(int i =1;i<11;i++){ summe=summe+i; } System.out.println(“Summe von 1 bis 10 ist “ + summe);for Schleife
Schreiben Sie eine Programm, welches über die Kommandozeile eine natürlich Zahl n einließt, die Summe von 1 bis n Berechnet und Ausgibt. Verwenden Sie dazu eine Schleife.
Schreiben Sie ein Programm, welches die Fakultät einer Ganzzahl (mit 0 beginnend) berechnet und Ausgibt. Beispielausgabe: 3! = 6
Schreiben Sie ein Programm, welches alle natürlichen Teiler einer natürlichen Zahl berechnet und Ausgibt. Beispielausgabe: 10 = {1,2,5,10}
Schreiben Sie ein Programm, welches über die Komandozeile eine Zahlenreihe erhält. Geben Sie die kleinste und größte Zahl dieser Reihe aus. Beispieleingabe: 1 4 19 -1 0 1 -15 7 2 12 Beispielausgabe: min = -15 max =19
Schreiben Sie ein Programm, welches über die Komandozeile eine Zahlenreihe erhält. Sortieren Sie die Reihe der größe nach, angefangen mit dem kleinsten Wert. Beispieleingabe: 1 4 19 -1 0 1 -15 7 2 12 Beispielausgabe -15 -1 0 1 1 2 4 12 19
Glücksspiel. Schreiben Sie ein Programm, welches über die Kommandozeile 2 Namen und 2 Zahlen zwischen 1 und 100 entgegen nimmt. Erzeugen Sie über den Ausdruck “Math.random()*10+1;“ eine Zahl zwischen 1 und 100. Vergleichen Sie die Zufallszahl mit den über die Kommandozeile gegebenen Werten. Der Spieler, welcher am nächsten an der Zufallszahl liegt hat gewonnen. Bei unentschieden wird erneut gespielt. Beispielausgabe: Müller 23 Hans 73 Zufallszahl 43 -> Müller gewinnt!
Was ist eine Funktion?
Beachte: In Java ist oft die Rede von Methoden. Funktionen sind Methoden. Methoden jedoch nicht unbedingt Funktionen.
Funktionen: Aufbau
modifier static rückgabetyp funktionsname( typ_1 parameter_1, ..., typ_n parameter_n) { /* Funktionsrumpf */ }
Funktionen: Beispiel
public static void pointlessCalculation( float x ) { float m = 0.5; float n = 2.1; /* m und n sind lokale Variablen, x ist Parameter. * Zu beachten ist die Verwendung von "." statt * "," bei der Deklaration */ return m*x+n; }
Hello, again!
public static void helloWorld() { System.out.println(“Hello World!”); } public static String helloWorld(String helloWorld) { return helloWorld; }
Überladene Funktionen
Funktionsaufrufe mit- und ohne Rückgabe
funktionsname ( parameter_1 ,... , parameter_n );
Funktionsaufruf ohne Rückgabe
variablenname = funktionsname ( parameter_1 ,... , parameter_n );
Funktionsaufruf mit Rückgabe
Rekursion
public static int faculty( int x) { if (x==0) return 1; return x*faculty(x-1); } alternativ: public static int faculty(int x) { return (x==0)?1:x*faculty(x-1); }
Programmieren Sie eine Funktion minimum, welche ein Array von Gleitkommazahlen und dessen Größe als Parameter entgegennimmt und die kleinste Zahl in diesem Array zurückgibt.
Erweitern Sie das gegebene Hello World Programm zu einem lauffähigen Programm mit mehreren überladenen Funktionen. Als Eingabe soll das Programm bis zu 3 Strings verarbeiten können. Diese sollen unter Verwenung von substring() Buchstabenweise invertiert und dann ausgegeben werden.
Hilfsmittel aus der Javadoc: http://docs.oracle.com/javase/6/docs/api/java/lang/String.html
Die Fibonacci-Folge hat folgende Form:
1, 1, 2, 3, 5, 8, 13, 21,...
Ein Folgeglied berechnet sich also, indem man seine beiden Vorgänger addiert. Implementieren Sie die Fibonacci-Folge nun rekursiv mit Hilfe von Funktionen. Dabei soll es möglich sein, das zu berechnende Folgeglied als Startparameter beim Programmaufruf zu bestimmen. Als Ergebnis ist nur der Wert des berechneten Gliedes anzugeben.
Setzen sie das Fibonacci-Problem iterativ um.
Erweitern Sie das gegebene Hello World Programm zu einem lauffähigen Programm mit mehreren überladenen Funktionen. Als Eingabe soll das Programm bis zu 3 Strings verarbeiten können. Diese sollen unter Verwenung von substring() Buchstabenweise invertiert und dann ausgegeben werden.
Hilfsmittel aus der Javadoc: http://docs.oracle.com/javase/6/docs/api/java/lang/String.html
Schreiben sie einenen einfachen Taschenrechner mit Hilfe von Funktionen. Dieser soll ein formatiertes menü auf der Kommandozeile anzeigen und zur Eingabe von 2 Zahlen, sowie einer Operation auffordern. Als Operation sollen +,-,*,/ möglich sein. Schreiben sie für die Rechenoperationen seperate Funktionen.
Die Quelltexte der Übungskomplexe sind jeweils um 20 Uhr des Vorabends der folgenden Veranstaltung per eMail abzugeben.