26. April 2012
1 Organisatorisches Über mich Wichtige Links 2 Besprechung Blatt 0 Übungsablauf und Abgabesystem 3 Pseudocode Text Pseudocode Pseudocode Ablaufdiagramm 4 Datentypen & Entscheidungsgehalt Übersicht primitiver Datentypen in Java Entscheidungsgehalt H 5 Java Nützliche Codefragmente
Über mich Über mich Name: Studiengang: Informatik, 3. Semester E-Mail: stefan.sp.ploner@studium.uni-erlangen.de
Wichtige Links Wichtige Links Folien: http://wwwcip.cs.fau.de/ su75heja/ FSI-Informatik Forum: https://fsi.cs.fau.de/forum/ IRC: #faui2k12 auf irc.uni-erlangen.de AuD Übung: https://www2.cs.fau.de/aud/ EST: http://est.cs.fau.de/ Mailing List: aud@i2.cs.fau.de
Übungsablauf und Abgabesystem uebung-00.pdf
Übungsablauf und Abgabesystem Gruppenabgabe Gruppenabgaben-Code zu finden im EST jeweils gültig für ein Blatt generell geheim halten und nur dem Gruppenpartner für die Abgabe schicken Abgabevorgang nur einer der beiden Gruppenpartner lädt die Aufgabe hoch der Code kann beim Hochladen rechts in das dafür vorgesehene Feld eingefügt werden auch der Student, der die Abgabe nicht hochgeladen hat, sollte die Abgabe im EST sehen (bitte immer überprüfen!)
Text Pseudocode Durchschnittsgröße der Studenten summegroesse := 0 anzahlstudent := 0 wiederhole fuer alle besetzten Stuehle: frage nach groesse summegroesse := summegroesse + groesse anzahlstudent := anzahlstudent + 1 gebe aus summegroesse / anzahlstudent
Text Pseudocode 3 Teile des Pseudocodes: 1 Variablendeklaration (taucht auch in Schleifen auf) 2 Beschreibung der durchzuführenden Schritte 3 Ausgabe des Ergebnisses
Text Pseudocode Durchschnittsgröße getrennt nach Geschlecht summegroessew := 0 summegroessem := 0 anzahlstudentw := 0 anzahlstudentm := 0 wiederhole fuer alle besetzten Stuehle: frage nach groesse frage nach geschlecht falls geschlecht = "weiblich": summegroessew := summegroessew + groesse anzahlstudentw := anzahlstudentw + 1 sonst: summegroessem := summegroessem + groesse anzahlstudentm := anzahlstudentm + 1 gebe aus "Frauen: " + summegroessew / anzahlstudentw gebe aus "Maenner: " + summegroessem / anzahlstudentm
Text Pseudocode Gerade Zahlen in einer Zahlenreihe / Array geradezahlen := 0 wiederhole fuer alle zahlen der zahlenreihe: falls aktuellezahl gerade: geradezahlen := geradezahlen + 1 gebe aus geradezahlen
Text Pseudocode Gerade Zahlen in einer Zahlenreihe / Array Alternative Lösung, näher am Code: geradezahlen := 0 wiederhole fuer jede zahl[i] mit i von 0 bis n: falls zahl[i] modulo 2 = 0: geradezahlen := geradezahlen + 1 gebe aus geradezahlen
Pseudocode Ablaufdiagramm Elemente
Pseudocode Ablaufdiagramm Wie erstelle ich Flowcharts? Google Docs Zeichnung (Formen 3. Abschnitt) Dia OpenOffice Draw Zeichnen und einscannen Flowcharts sollten von Knoten unterscheidbar sein - danke!
Übersicht primitiver Datentypen in Java Arten primitiver Datentypen Name Größe Beschreibung boolean 1 bit Boolescher Wahrheitswert (true/false) char 16 bit Beliebiges Zeichen (UTF-16) byte 8 bit Ganzzahl (Zweierkomplement-Darstellung) short 16 bit Ganzzahl (Zweierkomplement-Darstellung) int 32 bit Ganzzahl (Zweierkomplement-Darstellung) long 64 bit Ganzzahl (Zweierkomplement-Darstellung) float 32 bit Gleitkommazahl (IEEE 754) double 64 bit Gleitkommazahl (IEEE 754)
Übersicht primitiver Datentypen in Java Implizite Typkonvertierung short smallnumber = 100; int mednumber = smallnumber; // jeweils verschiedene double pi = 3.14f; // Datentypen! byte short int long float double char Ein Wert wird automatisch in einen Datentyp mit größerem Wertebereich umgewandelt Überspringen von Zwischenstationen möglich Bei der impliziten Konvertierung von Ganzzahlen in Gleitkommazahlen ist ein Genauigkeitsverlust möglich!
Entscheidungsgehalt H Entscheidungsgehalt Entscheidungsgehalt H = log 2 n Wie viele Bits werden mindestens benötigt, um n verschiedene Werte unterscheiden / speichern zu können?
Nützliche Codefragmente Main-Funktion...vorerst zum Copy & Pasten public class ClassName { public static void main(string[] args) { // program starts here } } Dran denken: Dateiname = ClassName.java
Nützliche Codefragmente Variablen int number; // variable declaration number = 2; // assignment number = number + 2; // number is now 4 double decimalnumber = 3.14; // decimal number int[] numbers; // array declaration numbers = new int[5]; //...and initialization numbers[0] = 3; // assignment // numbers contains { 3, 0, 0, 0, 0 } at this point int[] morenumbers = { 0, 1, 5, 7 }; // alternative way // morenumbers contains { 0, 1, 5, 7 } at this point
Nützliche Codefragmente Kontrollstrukturen // <condition> can be any boolean expression if (<condition>) { // do something } else { // do something else } while (<condition>) { // repeat as long as <condition> is true }
Nützliche Codefragmente Array mit for-schleife iterieren int[] numbers = { 0, 5, 8, 12 }; for (int i = 0; i < numbers.length; i++) { // print all numbers to the console System.out.println(numbers[i]); }