Softwareentwicklung 1 UE-Stunde 01 - Algorithmen
|
|
|
- Volker Junge
- vor 7 Jahren
- Abrufe
Transkript
1 Softwareentwicklung 1 UE-Stunde 01 - Algorithmen Dr. Herbert Prähofer Institut für Systemwissenschaften Johannes Kepler Universität Linz Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 1 Worum geht es? Programmieren ein Problem so exakt beschreiben, dass es ein Computer lösen kann kreative Tätigkeit Ingenieurtätigkeit Nur wenige Leute können gut programmieren Programm = Daten + Befehle Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 2
2 Von-Neumann Architektur eines Computers aus: A. Ferscha, Skriptum Softwareentwicklung 1, JKU Linz Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 3 Wiederholung von der VL: RISC-Programm aus: A. Ferscha, Skriptum Softwareentwicklung 1, JKU Linz Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 4
3 Typische Befehle load: store: move: Laden von Daten aus Hauptspeicher Schreiben von Daten in Hauptspeicher Speicheroperationen add, sub, mult, : Arithmetsiche Operationen cmp: Vergleichsoperationen: Vergleich auf 0 jmp, jeq; Sprünge und bedingte Sprünge im Ablauf Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 5 Daten und Befehle Daten Menge adressierbarer Speicherzellen x y z Name Wert Daten sind binär gespeichert (z.b. 17 = 10001) Binärspeicherung ist universell (Zahlen, Texte, Bilder, Ton,...) 1 Byte = 8 Bit 1 Wort = 2 Byte (oder 4 Byte) 1 Doppelwort = 2 Worte Befehle Operationen mit den Speicherzellen Maschinensprache ACC x ACC ACC + y z ACC // Lade Zelle x // Addiere Zelle y // Speichere Ergebnis in Zelle z Hochsprache z = x + y; Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 6
4 Variablen Programme arbeiten mit Variablen. Sind benannte Behälter für Werte. x y 99 3 Variablen können ihren Wert ändern x x + 1 x 100 Beispiel: byte x = 10 Charakterisiert durch Name oder Bezeichner Wert Adresse (im Hauptspeicher) Datentyp int, char, byte, float,... Adresse x Wert (byte) Datentyp Name Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 7 Datentypen Variablen haben einen Datentyp == Menge erlaubter Werte Variablentyp Zahl Zeichen Werte 'a' 'x'... Typ Form - in eine Zahlenvariable passen nur Zahlen - in eine Zeichenvariable passen nur Zeichen Beispiele von Datentypen: char (1 Byte) int (4 Byte) boolean [ a-z][a-z][0-9][sonderzeichen] ~-2,147 Mrd. ~+2,147 Mrd. true, false float Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 8
5 Algorithmus Ein Algorithmus ist ein endliches, schrittweises Verfahren zur Berechnung gesuchter aus gegebenen Größen, in dem jeder Schritt aus einer Anzahl eindeutig ausführbarer Operationen und einer Angabe über den nächsten Schritt besteht. Berechnungsvorschrift schrittweise endlich ausführbare Operationen Angabe der Reihenfolge der Schritte (Der Name Algorithmus ist abgeleitet von Al Chwarizmi, arabischer Mathematiker, ca. 800 n.chr.) Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 9 Beispiel: Algorithmus Sum Algorithmus Sum zum Berechnen der Summe einer Zahlenfolge Aufgabenstellung: Gegeben: Eine Zahl n größer 0 Gesucht: Die Summe dieser Zahlen von 1 bis n Algorithmus: 1. Addiere alle Zahlen von 1 bis n 2. Gib das Ergebnis aus Diese Formulierung ist für einen Computer noch zu wenig genau! Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 10
6 Algorithmus Sum als Verfahren in mehreren Schritten Name Parameter Ergebnis Sum ( n, sum) 1. sum 0 2. zahl 1 3. Wiederhole, solange zahl n 3.1 sum sum + zahl 4.2 zahl zahl + 1 Folge von Schritten Diese Formulierung ist einem Computerprogramm schon sehr nahe. Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 11 Anweisungen: Wertzuweisung und Sequenz Wertzuweisung Variable x x + 1 Ausdruck 1. werte Ausdruck aus 2. weise seinen Wert der Variablen zu Anweisungsfolge (auch Sequenz) "Ablaufdiagramm" x 3 y 4 z x + y x == 3, y == 4, z == 7 Assertion Assertion (Zusicherung) Aussage über den Zustand des Algorithmus an einer bestimmten Stelle Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 12
7 Anweisungen: Verzweigung Auswahl (auch Verzweigung, Abfrage, Selektion) j x < y? n x y min x min y min == Minimum von x und y Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 13 Anweisungen: Wiederholung Wiederholung (auch Schleife, Iteration) Alternative Darstellung d 1 n > 9? j n d 1 n > 9 n n / 10 d d + 1 n n / 10 d d + 1 n < 10 d == Anzahl der Ziffer von n n < 10 d == Anzahl der Ziffer von n Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 14
8 Anweisungen: Wiederholung Wiederholung (auch Schleife, Iteration) n 0 x > 1? j n x x / 2 n n + 1 x 1 n = log2 x n 0 x > 1 x x / 2 n n + 1 Alternative Darstellung x 1 n = log2 x Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 15 Struktogramm: Sequenz und Verzweigung Sequenz x=a+b x= x+1 Verzweigung x<0 j x = -x j min=x max=y x<y n min=y max=x Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 16
9 Struktogramm: Abweis-/Durchlaufschleife Abweisschleife while i<x i=i+1 f=f*i Durchlaufschleife i=i+1 f=f*i while i<x Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 17 Programmanfang/-ende Ablaufdiagramm Struktogramm Name(Parameter) : : -- Comment Name(Parameter) -- Comment /* Comment */ : : Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 18
10 Algorithmus "Sum" Ablaufdiagramm Sum() sum = 0 read( number) while number>0 sum = sum + number read( number) Struktogramm Sum() sum = 0 read( number) while number>0 sum = sum + number read( number) write( number) write( sum) Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 19 Beispiel: Vertauschen zweier Variableninhalte Swap (x, y) Schreibtischtest h = x x = y y = h x y h Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 20
11 Beispiel: Maximum dreier Zahlen bestimmen Max ( a, b, c, max) j a > b? n a b j n j n a > c? b > c? c a > b a b c max a max c max b max c Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 21 Beispiel: Euklidscher Algorithmus Berechnet den größten gemeinsamen Teiler zweier Zahlen x und y GGT ( x, y, ggt) rest Rest von x / y rest 0 x y y rest rest Rest von x / y ggt y rest = 0 Schreibtischtest x y rest Warum funktioniert dieser Algorithmus? (ggt teilt x) & (ggt teilt y) ggt teilt (x - y) ggt teilt (x - q*y) ggt teilt rest GGT(x, y) = GGT(y, rest) Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 22
12 Algorithmenschreibweisen Ablaufdiagramm (schon bekannt) Struktogramm GGT ( x, y, ggt) rest Rest von x / y while rest 0 x y y rest rest Rest von x / y + erzwingen strukturiertes Programmieren (ohne beliebige Sprünge) - aufwendig zu zeichnen schwer zu ändern ggt y Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 23 Beispiel: Quadratwurzel von x berechnen 1. Näherung: -root (a x / + 2root) / 2 -a x // root a 2 root 2 0 a x 1 root 1 x SquareRoot ( x, root) root x / 2 a x / root a root root (root + a) / 2 a x / root a * root == x a * root == x Schreibtischtest x root a a * root == x & a == root root * root == x Kommazahlen sind meist nicht exakt gleich, daher besser a - root > Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 24
13 Algorithmenschreibweisen Stilisierte Prosa GGT ( x, y, ggt) S1 S2 S3 S4 Bilde Rest. Dividiere x durch y und nenne den Rest rest Ende? Wenn rest null ist, gehe zu S4 Ersetze. Ersetze x durch y und y durch rest Gehe nach S2 Fertig. Das Ergebnis ggt ist y + größtmögliche Freiheit in der Formulierung - schreibaufwendig - unpräzise - Ablaufstrukturen (Schleifen, Verzweigungen) nicht sichtbar Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 25 Algorithmenschreibweisen Java-Programm + vom Computer lesbar und verarbeitbar + eindeutig und präzise + von Menschen lesbar - exakt, ohne Freiheitsgrade - aufwendig zu schreiben & )!"!!"! #$%"& ' (" % **+, %""- +. / + ) ** / ) )**" Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 26
14 Algorithmen und Programmierung Programm Ein für die Lösung einer bestimmten Aufgabe mit einer Datenverarbeitungsanlage geeigneter Algorithmus d.h. Elementare Operationen sind die durch den Computer ausführbaren Befehle Programm muss in einer für den Computer lesbaren Form definiert sein (==> Programmiersprache) Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 27 Programmerstellung Idee Mensch Spezifikation Aufgabenstellung Algorithmus Lösungsverfahren Programm Codiertes Lösungsverfahren Compiler Maschinenprogramm Lader Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 28
15 Schritte des Algorithmenentwurfs und der Programmierung Problem erfassen und beschreiben Lösungsidee erarbeiten und niederschreiben Lösungsidee in einen schrittweisen Ablauf überführen (= Algorithmus) Algorithmus so weit verfeinern und konkretisieren, dass Umsetzung in Java direkt möglich ist Programmierung in Java Überlegen von Testfällen (dabei alle möglichen Sonderfälle, Grenzfälle betrachten) Testen und Verbessern Dokumentieren der Ergebnisse Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 29 Java: Deklaration von Variablen In Java müssen alle Variablen vor der Verwendung deklariert werden Deklaration von Variablen Angabe des Datentyps Angabe des Namens (eindeutig) [Angabe eine Anfangswertes (optional)] int i; int j = 0, k; boolean positive = false; float x; char ch = ' '; Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 30
16 Java: Zuweisungsoperation x = 1 + 2; x = a + b; x = x + b; x = x + 1; Weist einer Variable einen Wert zu. Wichtig! Zuweisung ungleich Gleichheitsoperator (==) Der Wert der Variablen auf der rechten Seite geht dabei nicht verloren. Der Zuweisungsoperator ist nicht mit der Gleichheitsrelation der Mathematik zu verwechseln. Die Hauptanwendung des Zuweisungsoperators liegt in der Zuweisung eines Ergebnisses eines Ausdruckes an eine Variable. Verschiedene Schreibweisen in unterschiedlichen PrgmSprachen m = n C/C++, Java, FORTRAN, Basic,... m < n m := n APL Pascal, Algol, Modula-2 Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 31 Java: Sequenz int number; number = readint(); number = number + 1; writeint(number);... Folge von Anweisungen werden nacheinander (sequentiell) ausgeführt Ist nichts anderes spezifiziert, werden Anweisungen immer nacheinander - man sagt sequentiell - ausgeführt Während der Ausführung werden Werte von Variablen verändert Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 32
17 Java: Verzweigungen Eine Verzweigung führt Anweisungen in Abhängigkeit einer Bedingung aus. Bedingung Einseitig: wenn x < 0 ist, dann x = -x Anweisungen Zweiseitig: wenn x < y ist, dann min = x, max = y sonst /* x >= y */ min = y, max = x Java if (x < 0) { x = -x if (x < y) { min = x; max = y; else { /* x >= y */ min = y; max = x; Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 33 Java: Schleifen Schleifen führen Anweisungen in Abhängigkeit einer Bedingung kein- oder mehrmals aus. Beispiel: Berechnung der Fakultät Abweiseschleife Bedingung x = 3, i = 1, f = 1 solange i < x ist, wiederhole i = i + 1, f = f * i Durchlaufschleife x = 3, i = 1, f = 1; wiederhole f = f * i, i = i + 1 solange i <= x Anweisungen Java x = 3; i = 1; f = 1; while (i < x) { i = i + 1; f = f * i; x = 3; i = 1; f = 1; do { f = f * i; i = i + 1; while (i <= x); Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 34
18 Grundstruktur von Java-Programmen class ProgramName { public static void main (String[] arg) {... // Deklarationen... // Anweisungen Text muß in einer Datei namens ProgramName.java stehen main-methode stellt den Anfang des Programms dar Beispiel: class Sample { public static void main (String[] arg) { Out.print("Geben Sie 2 Zahlen ein:"); int a = In.readInt(); int b = In.readInt(); Out.println("Summe = " + (a + b)); Text steht in Datei Sample.java Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 35 Algorithmenschreibweisen Java-Programm + vom Computer lesbar und verarbeitbar + eindeutig und präzise + von Menschen lesbar - exakt, ohne Freiheitsgrade - aufwendig zu schreiben )!"!!"! #$%"& ' (" % & **+, %""- +. / + ) ** / ) )**" Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 36
19 Java-Programm "Sum" (Sum.java) public class Sum { public static void main(string[] args) { int sum = 0; int number; Out.print("Bitte Zahlen eingeben: "); number = In.readInt(); while (number > 0) { sum = sum + number; number = In.readInt(); Out.print("Die Summe ist:"); Out.printLn(sum); Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 37 Einige Hinweise Es ist wichtig, klar und einfach zu denken Hat man das Problem einmal richtig erfasst (niederschreiben), so ist meist auch die Lösung klar. Die besten Lösungen sind (fast immer) die einfachsten und kürzesten. Sonderfälle und Grenzfälle betrachten (z.b. Division durch 0) Fehler treten meist bei den Sonderfällen und Grenzfällen auf; an diese denken und im Algorithmus vorsehen. Der Mensch berücksichtigt Sonderfälle meist intuitiv; Intuition fehlt dem Computer aber völlig. Java-Programme müssen absolut exakt, verständlich und übersichtlich sein Keine Syntaxfehler Klare Namensgebung Genaue Konventionen für das Format und die Zeichensetzung (Einrückungen, Leerzeichen etc.) Kommentare für Verständnis wichtig Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 38
Softwareentwicklung 1
Softwareentwicklung 1 Dr. Herbert Prähofer Institut für Systemwissenschaften Johannes Kepler Universität Linz Research and teaching network Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer
Softwareentwicklung 1
Softwareentwicklung 1 Dr. Herbert Prähofer Institut für Systemsoftware Johannes Kepler Universität Linz Research and teaching network Softwareentwicklung 1 (UZR) Systemsoftware, JKU Linz 1 Vortragender
Schleifen. JOHANNES KEPLER UNIVERSITY LINZ Research and teaching network Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 45
Schleifen Research and teaching network Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 45 While-Schleife Führt eine Anweisungsfolge aus, solange eine bestimmte Bedingung gilt i 1 sum
Softwareentwicklung 1
Softwareentwicklung 1 Dr. Herbert Prähofer Institut für Systemsoftware Johannes Kepler Universität Linz Research and teaching network Softwareentwicklung 1 (UZR) Systemsoftware, JKU Linz 1 Vortragender
Simulation und Testen von Algorithmen
Simulation und Testen von Algorithmen Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 1 Handsimulation von Algorithmen Man versteht einen Algorithmus, wenn man genau weiß, wie er arbeitet.
Gedächtnis. Während der Abarbeitung eines Algorithmus müssen sich Dinge gemerkt werden bzw. auf Dingen wird gerechnet. Zugriff.
Gedächtnis Während der Abarbeitung eines Algorithmus müssen sich Dinge gemerkt werden bzw. auf Dingen wird gerechnet Hauptspeicher 38265 Telefon CPU Gedächtnis Vorlesender Zugriff Verarbeitungseinheit
Sprechen Sie Java? Hanspeter Mössenböck. Tm\ dpunkt.verlag. Eine Einführung in das systematische Programmieren
Hanspeter Mössenböck Sprechen Sie Java? Eine Einführung in das systematische Programmieren 3., überarbeitete und erweiterte Auflage Tm\ dpunkt.verlag 1 Grundlagen 1 1.1 Daten und Befehle 2 1.2 Algorithmen
Institut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke
Java 2 Markus Reschke 07.10.2014 Datentypen Was wird gespeichert? Wie wird es gespeichert? Was kann man mit Werten eines Datentyps machen (Operationen, Methoden)? Welche Werte gehören zum Datentyp? Wie
Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems
4. Algorithmen Motivation Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems Der Begriff Algorithmus geht auf den Gelehrten Muhammad al-chwarizmi zurück, der um
Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems
4. Algorithmen Motivation Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems Der Begriff Algorithmus geht auf den Gelehrten Muhammad al-chwarizmi zurück, der um
Informatik Algorithmen und Programme
Informatik Algorithmen und Programme Seite 1 Grundlagen der Programmierung: Spezifikation Phasen der Software-Entwicklung Spezifikation Problem und seine Lösung beschreiben vollständig detailliert unzweideutig
Javakurs für Anfänger
Javakurs für Anfänger Einheit 06: Einführung in Kontrollstrukturen Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Einführung in Kontrollstrukturen 3 Grundstrukturen von
Vorkurs Informatik WiSe 16/17
Java Ausdrücke und Variablen Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 05.10.2016 Technische Universität Braunschweig, IPS Überblick Ausdrücke, Datentypen und Variablen Kontrollstrukturen 05.10.2016
Grundlagen der Programmierung Prof. H. Mössenböck. 6. Methoden
Grundlagen der Programmierung Prof. H. Mössenböck 6. Methoden Parameterlose Methoden Beispiel: Ausgabe einer Überschrift class Sample { static void printheader() { // Methodenkopf Out.println("Artikelliste");
Martin Unold INFORMATIK. Geoinformatik und Vermessung
Wiederholung So sieht ein leeres Java-Programm aus public class Programmname { public static void main (String[] args) { // Hier stehen die Anweisungen Anweisungen mit Variablen Wiederholung Deklaration
Einführung in die Programmierung für NF. Algorithmen, Datentypen und Syntax
Einführung in die Programmierung für NF Algorithmen, Datentypen und Syntax Ziele Begriffsbildungen: InformaCk, Algorithmus, Programm, Compiler und andere Einordnung von Java Ein einfaches Java- Programm
Grundlagen der Programmierung Prof. H. Mössenböck. 4. Schleifen
Grundlagen der Programmierung Prof. H. Mössenböck 4. Schleifen While-Schleife Führt eine Anweisungsfolge aus, solange eine bestimmte Bedingung gilt i 1 sum 0 i n sum sum + i i i + 1 i = 1; sum = 0; while
3. Grundanweisungen in Java
3. Grundanweisungen in Java Die Grundanweisungen entsprechen den Prinzipien der strukturierten Programmierung 1. Zuweisung 2. Verzweigungen 3. Wiederholungen 4. Anweisungsfolge (Sequenz) Die Anweisungen
Java I Vorlesung Imperatives Programmieren
Java I Vorlesung 2 Imperatives Programmieren 3.5.2004 Variablen -- Datentypen -- Werte Operatoren und Ausdrücke Kontrollstrukturen: if Imperatives Programmieren Im Kern ist Java eine imperative Programmiersprache.
Offenbar hängt das Ergebnis nur von der Summe der beiden Argumente ab...
0 1 2 0 2 1 1 2 0 2 1 0 Offenbar hängt das Ergebnis nur von der Summe der beiden Argumente ab... 0 1 2 0 1 2 1 1 3 2 2 3 212 Um solche Tabellen leicht implementieren zu können, stellt Java das switch-statement
Vorkurs Informatik WiSe 17/18
Java Ausdrücke und Variablen Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk, 05.10.2017 Technische Universität Braunschweig, IPS Überblick Ausdrücke, Datentypen und Variablen Kontrollstrukturen 05.10.2017
2 Eine einfache Programmiersprache
2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir
I) Grundlagen der Programmierung. II) Erweiterte Grundlagen der Programmierung
Allgemeines zu: I) Grundlagen der Programmierung VV-Nr.: 10890-01 II) Erweiterte Grundlagen der Programmierung VV-Nr.: 45398-01 Webseiten zur Vorlesung http://informatik.unibas.ch/hs2016/ ->Grundlagen
Javakurs für Anfänger
Javakurs für Anfänger Einheit 04: Einführung in Kontrollstrukturen Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Einführung in Kontrollstrukturen 3 Grundstrukturen von
2 Eine einfache Programmiersprache
2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir
2 Eine einfache Programmiersprache
2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir
Martin Unold INFORMATIK. Geoinformatik und Vermessung
Wiederholung So sieht ein leeres Java-Programm aus public class Programmname { public static void main (String[] args) { // Hier stehen die Anweisungen Wiederholung Anweisungen durch Methodenaufrufe Ausgabe
2 Eine einfache Programmiersprache. Variablen. Operationen Zuweisung. Variablen
Variablen Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Variablen dienen zur Speicherung von Daten. Um Variablen
I) Grundlagen der Programmierung. II) Erweiterte Grundlagen der Programmierung
Allgemeines zu: I) Grundlagen der Programmierung VV-Nr.: 10890-01 II) Erweiterte Grundlagen der Programmierung VV-Nr.: 45398-01 Webseiten zur Vorlesung http://informatik.unibas.ch/hs2017/ ->Grundlagen
Grundlagen der Programmierung Prof. H. Mössenböck. 2. Einfache Programme
Grundlagen der Programmierung Prof. H. Mössenböck 2. Einfache Programme Grundsymbole Namen bezeichnen Variablen, Typen,... in einem Programm - bestehen aus Buchstaben, Ziffern und "_" - beginnen mit Buchstaben
EINI WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 11/12
EINI WiMa Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 11/12 Fakultät für Informatik Technische Universität Dortmund [email protected] http://ls1-www.cs.uni-dortmund.de
Einstieg in die Informatik mit Java
1 / 41 Einstieg in die Informatik mit Java Weitere Anweisungen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 41 1 Überblick 2 Verbundanweisung 3 Bedingte Anweisung 4 Auswahlanweisung
JAVA-Datentypen und deren Wertebereich
Folge 8 Variablen & Operatoren JAVA 8.1 Variablen JAVA nutzt zum Ablegen (Zwischenspeichern) von Daten Variablen. (Dies funktioniert wie beim Taschenrechner. Dort können Sie mit der Taste eine Zahl zwischenspeichern).
2 Eine einfache Programmiersprache
2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir
Grundlagen der Informatik I (Studiengang Medieninformatik)
Grundlagen der Informatik I (Studiengang Medieninformatik) Thema: 3. Datentypen, Datenstrukturen und imperative Programme Prof. Dr. S. Kühn Fachbereich Informatik/Mathematik Email: [email protected]
Martin Unold INFORMATIK. Geoinformatik und Vermessung
Zusammenfassung Was ist eine Programmiersprache? Eine Sprache, die Formal eindeutig in Maschinenbefehle übersetzbar ist Für Menschen einfacher verständlich ist als Bytecode Zur Formulierung von Datenstrukturen
2 Programmieren in Java I noch ohne Nachbearbeitung
1 2 Programmieren in Java I noch ohne Nachbearbeitung 2.1 Was sind Programme? Eingabe = Verarbeitung = Ausgabe Die Eingabe kann sein Konstanten im Quelltext; Kommandozeilenparameter oder interaktive Eingabe
Einführung in C. Alexander Batoulis. 5. Mai Fakutltät IV Technische Universität Berlin
Fakutltät IV Technische Universität Berlin 5. Mai 2014 Inhaltsverzeichnis 1 2 3 4 5 6 7 Überblick Beispielprogramm in Java Beispielprogramm in C 1 2 3 4 5 6 7 Beispielprogramm in Java Beispielprogramm
Informatik 1. Sommersemester Helmut Seidl. Institut für Informatik TU München
Informatik 1 Sommersemester 2011 Helmut Seidl Institut für Informatik TU München 1 0 Allgemeines Inhalt dieser Vorlesung: Einführung in Grundkonzepte der Informatik; Einführung in Denkweisen der Informatik;
Institut für Programmierung und Reaktive Systeme 2. Februar Programmieren I. Übungsklausur
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 2. Februar 2017 Hinweise: Klausurtermine: Programmieren I Übungsklausur Programmieren I: 13. März
Java Übung. Übung 2. Werner Gaulke. 19. April Universität Duisburg-Essen Kommedia, Übung EinPro SS06, Einführung in Java - Übung.
Java Übung Übung 2 Universität Duisburg-Essen Kommedia, Übung EinPro SS06, 19. April 2006 (UniDUE) 19. April 2006 1 / 13 Java Programme Java Programme bestehen aus (meist mehreren) Klassen. In den Klassen
Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Definition Algorithmus. Wie beschreibt man Algorithmen?
Programm heute Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2015 1 Einführung Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München 2 Grundlagen von Algorithmen
Vorbereitende Aufgaben
Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2018/19 Fakultät für Informatik Lehrstuhl 14 Lars Hildebrand Übungsblatt 4 Besprechung: 19. 23.11.2018 (KW 47) Vorbereitende
Algorithmen und Datenstrukturen (für ET/IT)
Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2016 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Programm heute 1 Einführung 2 Grundlagen von Algorithmen
Einführung in die Programmierung mit VBA
Einführung in die Programmierung mit VBA Vorlesung vom 07. November 2016 Birger Krägelin Inhalt Vom Algorithmus zum Programm Programmiersprachen Programmieren mit VBA in Excel Datentypen und Variablen
2.2 Syntax, Semantik und Simulation
2.2 Syntax, Semantik und Simulation Ein Java Programm ist eine Folge von Buchstaben. Nicht jede Folge von Buchstaben ist ein korrektes Java Programm! Wie kann man alle korrekten Java Programme beschreiben?
Einführung Datentypen Verzweigung Schleifen. Java Crashkurs. Kim-Manuel Klein May 4, 2015
Java Crashkurs Kim-Manuel Klein ([email protected]) May 4, 2015 Quellen und Editoren Internet Tutorial: z.b. http://www.java-tutorial.org Editoren Normaler Texteditor (Gedit, Scite oder ähnliche)
Übungen zur Vorlesung Wissenschaftliches Rechnen I
Übungen zur Vorlesung Wissenschaftliches Rechnen I Nicolas Gauger, René Lamour, Hella Rabus Wintersemester 2007/2008 Programmierung - Einführung Programmierung - Einführung Berechnung einer Formel y =
Einführung in C. EDV1-04C-Einführung 1
Einführung in C 1 Helmut Erlenkötter C Programmieren von Anfang an Rowohlt Taschenbuch Verlag ISBN 3-4993 499-60074-9 19,90 DM http://www.erlenkoetter.de Walter Herglotz Das Einsteigerseminar C++ bhv Verlags
Welche Informatik-Kenntnisse bringen Sie mit?
Welche Informatik-Kenntnisse bringen Sie mit? So gehen Sie vor! Lösen Sie die Aufgaben der Reihe nach von 1 bis 20, ohne das Lösungsblatt zur Hilfe zu nehmen. Der Schwierigkeitsgrad der Aufgaben nimmt
2. Algorithmenbegriff
2. Algorithmenbegriff Keine Algorithmen: Anleitungen, Kochrezepte, Wegbeschreibungen,... Algorithmus: Berechnungsvorschrift, die angibt, wie durch Ausführung bestimmter Elementaroperationen aus Eingabegrößen
float: Fließkommazahl nach IEEE 754 Standard mit 32 bit
Primitive Datentypen Fließkommazahlen float: Fließkommazahl nach IEEE 754 Standard mit 32 bit Vorzeichen Exponent 8 bit Mantisse 23 bit double: Fließkommazahl nach IEEE 754 Standard mit 64 bit Vorzeichen
Wenn... dann... if (condition) statement. if (kontostand < 0) System.out.println("Oops..."); false. condition. true. statement
Wenn... dann... if (condition) statement condition false true statement if (kontostand < 0) System.out.println("Oops..."); 31 ... sonst... if (condition) statement1 else statement2 condition false true
Übung Grundlagen der Programmierung WS 2008/09. Übung 04: Methoden. Abgabetermin: Prosabeschreibung Java-Programm.
Übung 04: Methoden Abgabetermin: 11. 11. 2008 Name: Matrikelnummer: Gruppe: G1 (Prähofer) G2 (Wolfinger) G3 (Wolfinger) Aufgabe Punkte gelöst abzugeben schriftlich abzugeben elektronisch Aufgabe 4.1 12
Institut für Programmierung und Reaktive Systeme 25. Januar Programmieren I. Übungsklausur
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 25. Januar 2018 Hinweise: Klausurtermine: Programmieren I Übungsklausur Programmieren I: 17. Februar
Inhalt. n Algorithmus. n Euklidscher Algorithmus. n Sortieren. n Programmiersprachen. n Entwicklungsschritte eines Programms.
Inhalt Algorithmus Euklidscher Algorithmus Sortieren Programmiersprachen Entwicklungsschritte eines Programms Algorithmen 1 Algorithmus Eindeutige Beschreibung eines allgemeinen Verfahrens unter Verwendung
Intensivübung zu Algorithmen und Datenstrukturen
Intensivübung zu Algorithmen und Datenstrukturen Silvia Schreier Informatik 2 Programmiersysteme Martensstraße 3 91058 Erlangen Übersicht Programmierung Fallunterscheidung Flussdiagramm Bedingungen Boolesche
Die Klasse MiniJava ist in der Datei MiniJava.java definiert:
Die Klasse MiniJava ist in der Datei MiniJava.java definiert: import javax.swing.joptionpane; import javax.swing.jframe; public class MiniJava { public static int read () { JFrame f = new JFrame (); String
Einstieg in die Informatik mit Java
1 / 47 Einstieg in die Informatik mit Java Anweisungen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 47 1 Ausdrucksanweisung 2 Einfache Ausgabeanweisung 3 Einfache Eingabeanweisung,
Allgemeines zu Programmieren I
Allgemeines zu Programmieren I Webseite zur Vorlesung http://informatik.unibas.ch/lehre/hs11/cs101/ hier gibt es alle Folien zur Vorlesung alle Übungsblätter aber auch sonstige aktuelle Informationen Page
System.out.println("TEXT");
Inhaltsübersicht - Erstes Beispiel - Datentypen - Ausdrücke und Operatoren - Schleifen / Bedinungen - Struktogramme - Grundgerüst eines Programms in JAVA - Einlesen von Daten Erstes Beispiel public class
Algorithmen. Beispiele: Beispiele: Algorithmen zum Test auf Primzahl. Programmieren - Java I WS 2001
Algorithmen Ein Algorithmus ist ein Verfahren zur systematischen, schrittweisen Lösung eines Problems. Er besteht aus einzelnen Anweisungen, die in einer bestimmten Reihenfolge, evtl. mehrmals ausgeführt
Java 8. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Oktober 2014 JAV8
Java 8 Elmar Fuchs Grundlagen Programmierung 1. Ausgabe, Oktober 2014 JAV8 5 Java 8 - Grundlagen Programmierung 5 Kontrollstrukturen In diesem Kapitel erfahren Sie wie Sie die Ausführung von von Bedingungen
6. Iteration (Schleifenanweisungen)
6. Iteration (Schleifenanweisungen) Java-Beispiel: TemperatureTable.java K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 Version: 9. Nov. 2015 2 Schwerpunkte While-Anweisung: "abweisende"
JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)
JAVA BASICS 2. Primitive Datentypen 1. Warum Java? weit verbreitet einfach und (relativ) sicher keine Pointer (?) keine gotos kein Präprozessor keine globalen Variablen garbage collection objekt-orientiert
n 1. Der Begriff Informatik n 2. Syntax und Semantik von Programmiersprachen - 1 -
n 1. Der Begriff Informatik n 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik n "Informatik" = Kunstwort aus Information
Kapitel 4. Programmierkurs. Datentypen. Arten von Datentypen. Wiederholung Kapitel 4. Birgit Engels, Anna Schulze WS 07/08
Kapitel 4 Programmierkurs Birgit Engels, Anna Schulze Wiederholung Kapitel 4 ZAIK Universität zu Köln WS 07/08 1 / 23 2 Datentypen Arten von Datentypen Bei der Deklaration einer Variablen(=Behälter für
Inhaltsverzeichnis. 1 Grundlagen 1. 2 Einfache Programme 21
xi 1 Grundlagen 1 1.1 Daten und Befehle......................................... 2 1.2 Algorithmen............................................. 4 1.3 Variablen................................................
Einstieg in die Informatik mit Java
1 / 22 Einstieg in die Informatik mit Java Grundlagen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 22 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White
Eine JAVA Einführung ... Quellcode:... COMA Übung 3. T.Bosse. A.Griewank. Vorschau JAVA Programme Sprachen Kate
COMA Eine Einführung Quellcode: Anweisung(en)1 Wiederhole: T.Bosse Anweisung(en) 2 Einfache Schleifen (z.b. for-loop) Wiederhole: Falls (Bedingung) wahr, tue: Anweisung(en) 2 sonst führe Verzweigungen
EINI LW/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 14/15
EINI LW/ Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 14/15 Dr. Lars Hildebrand Fakultät für Informatik Technische Universität Dortmund [email protected]
Tutoraufgabe 1 (Zweierkomplement): Lösung: Programmierung WS16/17 Lösung - Übung 2
Prof. aa Dr. J. Giesl Programmierung WS16/17 F. Frohn, J. Hensel, D. Korzeniewski Tutoraufgabe 1 (Zweierkomplement): a) Sei x eine ganze Zahl. Wie unterscheiden sich die Zweierkomplement-Darstellungen
1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays)
1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays) II.1.3. Anweisungen und Kontrollstrukturen - 1 - Anweisung Anweisung Zuweisung Methodenaufruf
PROCESSING EINE ZUSAMMENFASSUNG. Created by Michael Kirsch & Beat Rossmy
PROCESSING EINE ZUSAMMENFASSUNG Created by Michael Kirsch & Beat Rossmy INHALT 1. Typen und Operatoren 1. Datentypen 3. Klassen und Objekte 1. Klassen und Objekte 2. Operatoren 2. Konstruktor 3. Typkonversion
Martin Unold INFORMATIK. Geoinformatik und Vermessung
Wiederholung So sieht ein leeres Java-Programm aus public class Programmname { public static void main (String[] args) { // Hier stehen die Anweisungen } } Beispiele für Anweisungen Wiederholung Ausgabe
Bru ckenkurs Programmieren
Bru ckenkurs Programmieren Tag 1: Variablen und Verzweigungen Jakob Czekansky Technische Hochschule Mittelhessen 26. September 2016 Inhalt Organisatorisches Einleitung: Was ist Programmieren? Hello World
Klausur: Grundlagen der Informatik I, am 05. Februar 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte:
Seite 1 von 8 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 10 Pkt.) a) Geben
Übung zu Algorithmen und Datenstrukturen (für ET/IT)
Übung zu Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2017 Rüdiger Göbl, Mai Bui Computer Aided Medical Procedures Technische Universität München Administratives Zentralübung (Mittwoch, 09:45
4.Grundsätzliche Programmentwicklungsmethoden
4.Grundsätzliche Programmentwicklungsmethoden 1.1 Grundlage strukturierter und objektorientierter Programmierung Begriff Software Engineering - umfaßt den gezielten Einsatz von Beschreibungsmitteln, Methoden
6. Iteration (Schleifenanweisungen)
Schwerpunkte While-: "abweisende" Schleife 6. Iteration (Schleifenanweisungen) Java-Beispiel: TemperatureTable.java Do-while-: "nichtabweisende" Schleife For-: zählergesteuerte Schleife Klassifikation
Gliederung. n Teil I: Einleitung und Grundbegriffe. n Teil II: Imperative und objektorientierte Programmierung
Gliederung n Teil I: Einleitung und Grundbegriffe l 1. Organisatorisches l 2. Grundlagen von Programmiersprachen n Teil II: Imperative und objektorientierte Programmierung l 1. Grundelemente der Programmierung
Einführung in die Programmierung für NF. Übung
Einführung in die Programmierung für NF Übung 01 23.10.2013 Inhalt Übungen und Übungsblätter Uniworx und Abgabeformate Plagiarismus Algorithmen und Pseudocode Variablen und Methoden Boolsche Operatoren
