Einstieg in die Informatik mit Java
|
|
- Herbert Schreiber
- vor 6 Jahren
- Abrufe
Transkript
1 1 / 31 Einstieg in die Informatik mit Java Effizienz Gerd Bohlender Institut für Angewandte und Numerische Mathematik
2 Gliederung 2 / 31 1 Überlegungen zur Effizienz 2 Landau-Symbole 3 Eier im Korb 4 Zyklische Ziffern
3 Gliederung 3 / 31 1 Überlegungen zur Effizienz 2 Landau-Symbole 3 Eier im Korb 4 Zyklische Ziffern
4 4 / 31 Überlegungen zur Effizienz Benötigte Rechenzeit Ausnutzung der Performance des Computers Beispiel Parallelrechner mit p Prozessoren: Effizienz(p) = Zeit(1) pzeit(p) Benötigter Speicher Aufwand des Programmierers... 2 Beispiele
5 Gliederung 5 / 31 1 Überlegungen zur Effizienz 2 Landau-Symbole 3 Eier im Korb 4 Zyklische Ziffern
6 6 / 31 Asymptotischer Aufwand eines Algorithmus Landau-Symbole Schreibweise O(g(n)) Landau-Symbole (Edmund Landau, Göttingen, ) Die Funktion f (n) ist O(g(n)), für n, genau wenn es Konstanten n 0 und M gibt mit f (n) < M g(n) für alle n > n 0 Dabei ist g(n) meist eine einfache Funktion, z.b. O(n), O(n 2 ), O(log n),...
7 7 / 31 Landau-Symbole Anwendung Angaben zum Rechenaufwand eines Algorithmus (asymptotische Komplexität) Angaben zum Speicherbedarf eines Algorithmus Beispiel n n-matrix (n Zeilen, n Spalten) Speicherbedarf O(n 2 ) Rechenaufwand für Addition O(n 2 ) Rechenaufwand für Multiplikation O(n 3 ) n O(n 2 ) O(n 3 )
8 8 / 31 Landau-Symbole Rechenregeln O(c g(n)) = O(g(n)) für eine Konstante c O(g(n) + h(n)) = max(o(g(n), O(h(n)) z.b. O(2n 3 + 3n n + 799) = O(n 3 )
9 Landau-Symbole Einsatz zum Vergleich von Algorithmen 9 / 31 Beispiel: sortiere n Zahlen x 0, x 1,..., x n 1 Algorithmus 1 (Bubblesort) Algorithmus 2 (Quicksort) n O(n 2 ) O(n log n) Algorithmus ist für n = 10 6 etwa mal schneller Tag / 1 Sekunde
10 10 / 31 Landau-Symbole Vorsicht Aber Vorsicht! Alle Aussagen gelten nur asymptotisch für n, also ab einem (unbekannten) n 0 und mit einem (unbekannten) Faktor M. Für ein kleines n könnte Algorithmus 1 durchaus schneller sein als Algorithmus 2.
11 Gliederung 11 / 31 1 Überlegungen zur Effizienz 2 Landau-Symbole 3 Eier im Korb 4 Zyklische Ziffern
12 Eier im Korb - Aus einem alten Rechenbuch 12 / 31 Ein Mann stößt den Korb voller Eier einer Marktfrau um. Die Eier gehen zu Bruch. Der Mann will den Schaden ersetzen und fragt wieviele Eier im Korb waren. Die Marktfrau antwortet: Die genaue Zahl weiß ich nicht. Aber wenn ich immer 2 Eier aus dem Korb genommen habe, dann blieb eines übrig. Genauso, wenn ich immer 3, immer 4, immer 5 oder immer 6 Eier heraus genommen habe. Aber wenn ich immer 7 Eier heraus genommen habe, dann blieb keines übrig. Wieviele Eier waren (mindestens) im Korb?
13 13 / 31 Eier im Korb - Erster Algorithmus Teste alle Zahlen n = 1, 2, 3,... Beginne mit n = 1 Prüfe, ob die Zahl n bei Division durch 2, 3, 4, 5, 6 den Rest 1 ergibt und ob n durch 7 ohne Rest teilbar ist. Ist dies der Fall, dann brich ab und gib das Ergebnis aus. Andernfalls erhöhe n um 1 und prüfe nochmal.
14 Eier im Korb - Erstes Java-Programm 14 / 31 public class Eier { } public s t a t i c void main ( S t r i n g [ ] args ){ i n t i =0; do i ++; while ( i %2!=1 i %3!=1 i %4!=1 i %5!=1 i %6!=1 i %7!=0); System. out. p r i n t l n ( Es waren + i + Eier im Korb. ) ; }
15 15 / 31 Eier im Korb - Zweiter Algorithmus Es kommen nur Zahlen in Frage, die bei Division durch 2, 3, 4, 5, 6 den Rest 1 ergeben. Mit etwas Mathematik stellt man fest: Es kommen nur Zahlen in Frage, die bei Division durch kgv(2, 3, 4, 5, 6) = 60 den Rest 1 ergeben. Also: Teste alle Zahlen n = 1, 61, Beginne mit n = 1 Prüfe, ob n durch 7 ohne Rest teilbar ist. Ist dies der Fall, dann brich ab und gib das Ergebnis aus. Andernfalls erhöhe n um 60 und prüfe nochmal.
16 Eier im Korb - Zweites Java-Programm 16 / 31 public class Eier2 { } public s t a t i c void main ( S t r i n g [ ] args ){ i n t i =1; do i += 60; while ( i%7!= 0 ) ; System. out. p r i n t l n ( Es waren + i + Eier im Korb. ) ; }
17 17 / 31 Vergleich der Effizienz Programm 2 braucht nur 1/60 der Rechenzeit von Programm 1 Beide Programm brauchen nur Bruchteile einer Sekunde Rechenzeit spielt hier keine Rolle Fazit: Die Arbeitszeit des Programmierers für die mathematischen Überlegungen ist verschwendet Übrigens... es waren 301 Eier im Korb!
18 Gliederung 18 / 31 1 Überlegungen zur Effizienz 2 Landau-Symbole 3 Eier im Korb 4 Zyklische Ziffern
19 19 / 31 Zyklische Ziffern - Das Problem Finde eine Zahl mit Endziffer 5 Multipliziere sie mit 5 Ist das Produkt gleich der ursprünglichen Zahl, wenn man die 5 am Ende streicht und dafür vorne anfügt? Beispiel: 5 * abcd5 = 5abcd (mit 4 Ziffern a, b, c, d) Verallgemeinerung: ersetze 5 durch Faktor 2 bis 9 Quelle: Jacques Arsac, Computerdenkspiele selbst programmiert, Problem 3
20 20 / 31 Zyklische Ziffern - Erster Algorithmus Teste alle Zahlen n = 1, 2, 3,... Beginne mit n = 1 Prüfe, ob die Zahl n die Bedingung Zyklische Ziffern erfüllt Ist dies der Fall, dann brich ab und gib das Ergebnis aus. Andernfalls erhöhe n um 1 und prüfe nochmal.
21 Zyklische Ziffern - Erstes Java-Programm 21 / 31 public class Z y k Z i f f 1 { } public s t a t i c void main ( S t r i n g [ ] args ){ i n t i =0; do i ++; while ( i 5!= i / ); / / bei 4 Z i f f e r n abcd System. out. p r i n t l n ( Zyklische Z i f f e r n : + i ) ; }
22 22 / 31 Zyklische Ziffern - Probleme mit diesem Programm Unbekannt, ob 4 Stellen abcd nötig sind oder mehr oder weniger Ggf. müssen alle Stellenzahlen durchprobiert werden Reicht der Zahlbereich von int (9 Stellen) aus? Reicht long (19 Stellen)? Rechenzeit???
23 23 / 31 Zyklische Ziffern - Mathematische Idee Führe Ziffernvergleich bei 5 abcd5 = 5abcd durch, beginnend bei der niederwertigsten Ziffer. 5 abcd5 = 5abcd führt wegen 5 5 = 25 zu d = 5 Es entsteht ein Übertrag von 2, der im nächsten Schritt zu berücksichtigen ist 5 abc55 = 5abc5 führt wegen = 27 zu c = 7 Es entsteht ein Übertrag von 2 5 ab755 = 5ab75 führt wegen = 37 zu b = 7 Es entsteht ein Übertrag von 3 usw. (egal wie viele Stellen abcd vorliegen) Der Algorithmus ist zu Ende, wenn die berechnete Ziffer = 5 ist, und der Übertrag = 0 ist
24 24 / 31 Zyklische Ziffern - Zweiter Algorithmus Verallgemeinerung: ersetze 5 durch beliebigen Faktor 2 bis 9 Starte mit Ziffer = Faktor und Übertrag = 0 Berechne das 2-stellige Produkt = Ziffer * Faktor + Übertrag Zerlege Produkt in die niederwertige Ziffer und den höherwertigen Übertrag Wiederhole solange die berechnete Ziffer nicht gleich dem Faktor ist, oder der Übertrag nicht 0 ist
25 Zyklische Ziffern - Zweites Programm 25 / 31 import java. u t i l. ; public class Z y k z i f f 5 { public s t a t i c void main ( String [ ] args ) { Locale. s e t D e f a u l t ( Locale.US ) ; Scanner sc = new Scanner ( System. in ) ; i n t Faktor, Ziffer, Uebertrag =0, Produkt, Stellen =0; System. out. p r i n t ( Mit welchem Faktor s o l l m u l t i p l i z i e r t werden? ) ; Faktor = sc. nextint ( ) ; / / Faktor einlesen Z i f f e r = Faktor ; / / n i e d e r w e r t i g s t e Z i f f e r = Faktor System. out. p r i n t l n ( Das Ergebnis l a u t e t ( rueckwaerts gelesen! ) : ) ; do { System. out. p r i n t ( Z i f f e r ) ; / / a k t u e l l e Z i f f e r ausdrucken S t e l l e n ++; / / S t e l l e n z a h l bei j e d e r Ausgabe erhoehen Produkt = Z i f f e r Faktor + Uebertrag ; / / neues Produkt, z w e i s t e l l i g Z i f f e r = Produkt % 10; / / neue Z i f f e r = n i e d e r s t e S t e l l e des Produkts Uebertrag = Produkt / 10; / / neuer Uebertrag = hoechste S t e l l e des Produk } / / wiederholen, wenn eine der beiden... while ( Z i f f e r!= Faktor Uebertrag!= 0 ) ; / /... Abbruch Bedingungen v e r l e t z t i s t System. out. p r i n t l n ( ) ; System. out. p r i n t l n ( Es hat + S t e l l e n + S t e l l e n ) ; } }
26 Zyklische Ziffern - Ergebnisse 26 / 31 c:\b\java>java Zykziff5 Mit welchem Faktor soll multipliziert werden? 5 Das Ergebnis lautet (rueckwaerts gelesen!): Es hat 42 Stellen
27 Zyklische Ziffern - Ergebnisse 27 / 31 Mit welchem Faktor soll multipliziert werden? Es hat 18 Stellen Mit welchem Faktor soll multipliziert werden? Es hat 28 Stellen Mit welchem Faktor soll multipliziert werden? Es hat 6 Stellen Mit welchem Faktor soll multipliziert werden? Es hat 58 Stellen Mit welchem Faktor soll multipliziert werden? Es hat 22 Stellen Mit welchem Faktor soll multipliziert werden? Es hat 13 Stellen Mit welchem Faktor soll multipliziert werden? Es hat 44 Stellen
28 28 / 31 Zyklische Ziffern - Laufzeit des zweiten Algorithmus 42 Schleifendurchläufe etwa 10 Operationen pro Schleife theoretisch etwa 10 7 Sekunden auf einem handelsüblichen PC mit Java-Overhead (Interpretation, Startup) deutlich unter 1 Sekunde
29 29 / 31 Zyklische Ziffern - Laufzeit des ersten Algorithmus Er benötigt Schleifendurchläufe = etwa Operationen Schnellster Rechner zzt. (2007, Quelle: knapp Flops Dieser braucht etwa Sekunden zur Lösung Sekunden = etwa Jahre (1 Jahr = Sekunden = etwa Sekunden)... aber das Universum existiert erst etwa Jahre seit dem Urknall!
30 30 / 31 Zyklische Ziffern - Laufzeitvergleich der beiden Algorithmen Der erste Algorithmus braucht Jahre auf dem schnellsten Rechner der Erde Der zweite Algorithmus braucht einen Bruchteil einer Sekunde auf einem handelsüblichen PC Fazit: Nachdenken über mathematische Hintergründe hat sich gelohnt
31 Zyklische Ziffern - Wann sind Computer schnell genug für den ersten Algorithmus? Der erste Algorithmus braucht Jahre auf dem heute schnellsten Rechner der Erde Supercomputer wurden im letzten Jahrzehnt fast um den Faktor 1000 schneller (Quelle: In 70 Jahren wäre das (theoretisch!!!) ein Faktor Im Jahre 2080 bräuchte der schnellste Computer der Erde noch 1 Monat (sehr theoretisch!!!) 31 / 31
Einstieg in die Informatik mit Java
1 / 32 Einstieg in die Informatik mit Java Effizienz Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 32 1 Überblick: was ist Effizienz? 2 Landau-Symbole 3 Eier im Korb 4
MehrEinstieg 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,
MehrEinstieg in die Informatik mit Java
1 / 20 Einstieg in die Informatik mit Java Rekursion Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 20 1 Überblick 2 Rekursion 3 Rekursive Sortieralgorithmen 4 Backtracking
MehrEinstieg in die Informatik mit Java
1 / 26 Einstieg in die Informatik mit Java Felder Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 26 1 Was sind Felder? 2 Vereinbarung von Feldern 3 Erzeugen von Feldern
MehrEinstieg in die Informatik mit Java
1 / 26 Einstieg in die Informatik mit Java Felder, mehrdimensional Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 26 1 Überblick: mehrdimensionale Felder 2 Vereinbarung
MehrEinstieg in die Informatik mit Java
1 / 24 Einstieg in die Informatik mit Java Variablenarten Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 24 1 Lokale Variablen 2 Lokale Variablen in Blocks 3 Lokale Variablen
MehrEinstieg in die Informatik mit Java
1 / 28 Einstieg in die Informatik mit Java Algorithmen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 28 1 Überblick 2 Algorithmus 3 Grundalgorithmen in Java 4 Flussdiagramme
Mehr2.4 Schleifen. Schleifen unterscheiden sich hinsichtlich des Zeitpunktes der Prüfung der Abbruchbedingung:
2.4 Schleifen Schleifen beschreiben die Wiederholung einer Anweisung bzw. eines Blocks von Anweisungen (dem Schleifenrumpf) bis eine bestimmte Bedingung (die Abbruchbedingung) eintritt. Schleifen unterscheiden
Mehr1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH
1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH Die Umgebungsvariable CLASSPATH kann im Hamster-Simulator sowohl für Compiler als auch für die Ausführung des Hamster-Programms gesetzt werden: Hierdurch
MehrEinstieg in die Informatik mit Java
1 / 17 Einstieg in die Informatik mit Java String Tokenizer Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 17 1 Überblick Tokenizer 2 StringTokenizer 3 Verwendung von String.split
MehrInformatik B von Adrian Neumann
Musterlösung zum 7. Aufgabenblatt vom Montag, den 25. Mai 2009 zur Vorlesung Informatik B von Adrian Neumann 1. Java I Schreiben Sie ein Java Programm, das alle positiven ganzen Zahlen 0 < a < b < 1000
MehrKomplexität von Algorithmen
Komplexität von Algorithmen Prof. Dr. Christian Böhm WS 07/08 in Zusammenarbeit mit Gefei Zhang http://www.dbs.informatik.uni-muenchen.de/lehre/nfinfosw Ressourcenbedarf - Größenordnungen Prozesse verbrauchen
MehrKontrollstrukturen: Wiederholungsanweisungen
Kontrollstrukturen: Wiederholungsanweisungen Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-16-17/infoeinf WS16/17 Action required now 1.
MehrTutoraufgabe 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
MehrSuchen und Sortieren
Suchen und Sortieren Suchen Sortieren Mischen Zeitmessungen Bewertung von Sortier-Verfahren Seite 1 Suchverfahren Begriffe Suchen = Bestimmen der Position (Adresse) eines Wertes in einer Datenfolge Sequentielles
MehrProgrammiervorkurs WS 2012/2013. Schleifen und Methoden
Programmiervorkurs WS 2012/2013 Schleifen und Methoden Ein Befehl soll mehrfach ausgeführt werden, z.b.: public class MyCounter { System.out.println(1); Ein Befehl soll mehrfach ausgeführt werden, z.b.:
MehrAbgabe: (vor der Vorlesung) Aufgabe 2.1 (P) O-Notation Beweisen Sie die folgenden Aussagen für positive Funktionen f und g:
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2009 Grundlagen: Algorithmen und Datenstrukturen Übungsblatt 2 Prof. Dr. Helmut Seidl, S. Pott,
MehrSortieralgorithmen. Inhalt: InsertionSort BubbleSort QuickSort. Marco Block
Inhalt: InsertionSort BubbleSort QuickSort Block M.: "Java-Intensivkurs - In 14 Tagen lernen Projekte erfolgreich zu realisieren", Springer-Verlag 2007 InsertionSort I Das Problem unsortierte Daten in
MehrÜbungen zu Algorithmen
Institut für Informatik Universität Osnabrück, 08.11.2016 Prof. Dr. Oliver Vornberger http://www-lehre.inf.uos.de/~ainf Lukas Kalbertodt, B.Sc. Testat bis 16.11.2016, 14:00 Uhr Nils Haldenwang, M.Sc. Übungen
MehrPrimitive Datentypen
Primitive Datentypen 2 Arten von Datentypen: primitive Datentypen (heute) Objekte (später) Java ist streng typisiert, d.h. für jede Variable muß angegeben werden was für eine Art von Wert sie aufnimmt.
MehrAm Dienstag, den 16. Dezember, ist Eulenfest. 1/48
Am Dienstag, den 16. Dezember, ist Eulenfest. 1/48 Grundbegriffe der Informatik Einheit 12: Erste Algorithmen in Graphen Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Wintersemester 2008/2009
MehrProgrammierstarthilfe SS 2008 Fakultät für Ingenieurwissenschaften und Informatik 5. Blatt Für den 26. und
Programmierstarthilfe SS 2008 Fakultät für Ingenieurwissenschaften und Informatik 5. Blatt Für den 26. und 27.5.2008 Organisatorisches Um auf die Mailingliste aufgenommen zu werden schicke einfach eine
MehrSystem.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
MehrJava 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
MehrKomplexität von Algorithmen
Komplexität von Algorithmen Ziel Angabe der Effizienz eines Algorithmus unabhängig von Rechner, Programmiersprache, Compiler. Page 1 Eingabegröße n n Integer, charakterisiert die Größe einer Eingabe, die
MehrKontrollstrukturen, Pseudocode und Modulo-Rechnung
Kontrollstrukturen, Pseudocode und Modulo-Rechnung CoMa-Übung III TU Berlin 29.10.2012 CoMa-Übung III (TU Berlin) Kontrollstrukturen, Pseudocode und Modulo-Rechnung 29.10.2012 1 / 1 Themen der Übung 1
MehrEinstieg in die Informatik mit Java
1 / 20 Einstieg in die Informatik mit Java Literalkonstanten Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 20 1 Ganzzahlige Konstanten 2 Gleitkommakonstanten 3 Zeichenkonstanten
MehrEinstieg in die Informatik mit Java
1 / 16 Einstieg in die Informatik mit Java Innere Klassen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 16 1 Einführung 2 Element-Klassen 3 Lokale Klassen 4 Anonyme Klassen
MehrDr. Monika Meiler. Inhalt
Inhalt 4 Einführung in die Programmiersprache Java (Teil II)... 4-2 4.4 Strukturierte Programmierung... 4-2 4.4.1 Strukturierung im Kleinen... 4-2 4.4.2 Addierer (do-schleife)... 4-3 4.4.3 Ein- Mal- Eins
MehrProgrammierkurs Java
Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen
MehrAufgabe 1.90: Ein Geschäft gibt ihren Kunden unterschiedliche Rabatte. Schreiben ein Programm, das folgende Rabattklassen vorsieht:
Aufgabe 1.90: Ein Geschäft gibt ihren Kunden unterschiedliche Rabatte. Schreiben ein Programm, das folgende Rabattklassen vorsieht: o Klasse 0: kein Rabatt o Klasse 1: 4,5 % Rabatt o Klasse 2: 8,75% Rabatt
MehrLangzahlarithmetik implementieren Ac 1990 bis 2016
Langzahlarithmetik implementieren Ac 1990 bis 2016 Wie konstruiert man einen BigInteger-Typ (Langzahlarithmetik)? Zur Berechnung von sehr großen Ganzzahlen ( Big Integers ) kann man Register verwenden,
Mehr11. Rekursion, Komplexität von Algorithmen
11. Rekursion, Komplexität von Algorithmen Teil 2 Java-Beispiele: Power1.java Hanoi.java K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 Version: 23. Nov. 2015 Anwendung der Rekursion Rekursiv
Mehr16. Algorithmus der Woche Multiplikation langer Zahlen... schneller als in der Schule
16. Algorithmus der Woche Multiplikation langer Zahlen... schneller als in der Schule Autor Arno Eigenwillig, Max-Planck-Institut für Informatik, Saarbrücken Kurt Mehlhorn, Max-Planck-Institut für Informatik,
MehrIdeen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn
Ideen und Konzepte der Informatik Programme und Algorithmen Kurt Mehlhorn November 2016 Algorithmen und Programme Algorithmus = Schritt-für-Schritt Vorschrift zur Lösung eines Problems. Formuliert man
MehrHochschule Niederrhein Einführung in die Programmierung Prof. Dr. Nitsche. Bachelor Informatik WS 2015/16 Blatt 3 Beispiellösung.
Zahldarstellung Lernziele: Vertiefen der Kenntnisse über Zahldarstellungen. Aufgabe 1: Werte/Konstanten Ergänzen Sie die Tabelle ganzzahliger Konstanten auf einem 16- Bit- System. Die Konstanten in einer
MehrWS 2009/10. Diskrete Strukturen
WS 2009/10 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws0910
MehrFormale Logik. PD Dr. Markus Junker Abteilung für Mathematische Logik Universität Freiburg. Wintersemester 16/17 Sitzung vom 9.
Formale Logik PD Dr. Markus Junker Abteilung für Mathematische Logik Universität Freiburg Wintersemester 16/17 Sitzung vom 9. November 2016 Weitere Begriffe Eine Zuweisung von Wahrheitswerten W bzw. F
MehrEinstieg in die Informatik mit Java
1 / 15 Einstieg in die Informatik mit Java Collections Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 15 1 Überblick Collections 2 Hierarchie von Collections 3 Verwendung
MehrÜbung Grundlagen der Programmierung. Übung 03: Schleifen. Testplan Testergebnisse
Übung 03: Schleifen Abgabetermin: xx.xx.xxxx Name: Matrikelnummer: Gruppe: G1 (Prähofer) G2 (Prähofer) G3 (Wolfinger) Aufgabe Punkte gelöst abzugeben schriftlich abzugeben elektronisch Aufgabe 03.1 12
MehrBrainfuck. 1 Brainfuck. 1.1 Brainfuck Geschichte und Umfeld. 1.2 Esoterische Programmiersprachen
Brainfuck 1 Brainfuck 1.1 Brainfuck Geschichte und Umfeld Brainfuck ist eine sogenannte esoterische Programmiersprache. Sie wurde 1993 vom Schweizer Urban Müller entworfen mit dem Ziel, eine Sprache mit
MehrEinstieg in die Informatik mit Java
1 / 34 Einstieg in die Informatik mit Java Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 34 1 Definition von Klassen 2 Methoden 3 Methoden
MehrEinführung in die Informatik I
Einführung in die Informatik I Berechenbarkeit und Komplexität Prof. Dr. Nikolaus Wulff Berechenbarkeit Im Rahmen der Turingmaschine fiel zum ersten Mal der Begriff Berechenbarkeit. Ein Funktion f heißt
MehrWelcher Bruch liegt genau zwischen den Brüchen 1 9 und 1 10? Um diese Frage zu beantworten, musst du das arithmetische Mittel berechnen!
1 Wie viele rationale Zahlen liegen zwischen folgenden Zahlen? a) 0 und 1 c) 0 und 0,001 b) 0 und 0,1 d) 0,001 und 0,0001 2 Welche rationalen Zahlen sind hier dargestellt? 3 In Kürze werden die Luftballons
MehrProgrammieren I. Kontrollstrukturen. Heusch 8 Ratz 4.5. www.kit.edu. Institut für Angewandte Informatik
Programmieren I Kontrollstrukturen Heusch 8 Ratz 4.5 KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Arten von Kontrollstrukturen
MehrAchtung: Groß O definiert keine totale Ordnungsrelation auf der Menge aller Funktionen! Beweis: Es gibt positive Funktionen f und g so, dass
Achtung: Groß O definiert keine totale Ordnungsrelation auf der Menge aller Funktionen! Beweis: Es gibt positive Funktionen f und g so, dass f O g und auch g O f. Wähle zum Beispiel und G. Zachmann Informatik
MehrGrundzüge der Informatik Zahlendarstellungen (7)
Grundzüge der Informatik Zahlendarstellungen (7) Sylvia Swoboda e0225646@student.tuwien.ac.at Überblick Konvertierung von ganzen Zahlen Konvertierung von Festkommazahlen Darstellung negativer Zahlen 1
MehrÜberblick. Lineares Suchen
Komplexität Was ist das? Die Komplexität eines Algorithmus sei hierbei die Abschätzung des Aufwandes seiner Realisierung bzw. Berechnung auf einem Computer. Sie wird daher auch rechnerische Komplexität
Mehr1 Zahlentheorie. 1.1 Kongruenzen
3 Zahlentheorie. Kongruenzen Der letzte Abschnitt zeigte, daß es sinnvoll ist, mit großen Zahlen möglichst einfach rechnen zu können. Oft kommt es nicht darauf, an eine Zahl im Detail zu kennen, sondern
MehrObjektorientierte Programmierung OOP Programmieren mit Java
Übungen: 6 Schleifen Objektorientierte Programmierung OOP Programmieren mit Java 1. do-schleife 2. while-schleife 3. a) c) Verschiedene for-schleifen 6 Schleifen Übungen 4. for-schleife: halber Tannenbaum
MehrEinstieg in die Informatik mit Java
Vorlesung vom 6.11.07, Weitere Anweisungen Übersicht 1 Verbundanweisung 2 Bedingte Anweisung 3 Auswahlanweisung 4 for Schleife 5 while Schleife 6 do Schleife 7 break Anweisung 8 continue Anweisung 9 Leere
MehrKapitel 9. Komplexität von Algorithmen und Sortieralgorithmen
1 Kapitel 9 Komplexität von Algorithmen und Sortieralgorithmen Ziele 2 Komplexität von Algorithmen bestimmen können (in Bezug auf Laufzeit und auf Speicherplatzbedarf) Sortieralgorithmen kennenlernen:
MehrParallele Prozesse. Prozeß wartet
Parallele Prozesse B-66 Prozeß: Ausführung eines Programmes in seinem Adressraum (zugeordneter Speicher) Parallele Prozesse: gleichzeitig auf mehreren Prozessoren laufende Prozesse p1 p2 verzahnte Prozesse:
MehrGrundlagen der Informatik Algorithmen und Komplexität
Grundlagen der Informatik Algorithmen und Komplexität Prof. Dr. Bernhard Schiefer (basierend auf Unterlagen von Prof. Dr. Duque-Antón) bernhard.schiefer@fh-kl.de http://www.fh-kl.de/~schiefer Inhalt Einleitung
MehrÜber Polynome mit Arithmetik modulo m
Über Polynome mit Arithmetik modulo m Um den Fingerprinting-Satz über die Fingerabdrücke verschiedener Texte aus dem 37. Algorithmus der Woche ( http://www-i1.informatik.rwth-aachen.de/~algorithmus/algo37.php
MehrEinstieg in die Informatik mit Java
1 / 22 Einstieg in die Informatik mit Java Generics Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 22 1 Überblick Generics 2 Generische Klassen 3 Generische Methoden 4
MehrA2.3 Lineare Gleichungssysteme
A2.3 Lineare Gleichungssysteme Schnittpunkte von Graphen Bereits weiter oben wurden die Schnittpunkte von Funktionsgraphen mit den Koordinatenachsen besprochen. Wenn sich zwei Geraden schneiden, dann müssen
MehrStudent: Alexander Carls Matrikelnummer: Aufgabe: Beschreibung des euklidischen Algorithmus Datum:
Berufsakademie Stuttgart / Außenstelle Horb Studienbereich Technik Studiengang Informationstechnik Kurs IT2006, 2.Semester Dozent: Olaf Herden Student: Alexander Carls Matrikelnummer: 166270 Aufgabe: Beschreibung
MehrKapitel 9. Komplexität von Algorithmen und Sortieralgorithmen
Kapitel 9 Komplexität von Algorithmen und Sortieralgorithmen Arrays 1 Ziele Komplexität von Algorithmen bestimmen können (in Bezug auf Laufzeit und auf Speicherplatzbedarf) Sortieralgorithmen kennenlernen:
MehrBruchrechnen in Kurzform
Teil Bruchrechnen in Kurzform Für alle, die es benötigen, z. B. zur Prüfungsvorbereitung in 0 Zu diesen Beispielen gibt es einen Leistungstest in 09. Ausführliche Texte zur Bruchrechnung findet man in:
MehrÜbungen zur Vorlesung Einführung in die Informatik Wintersemester 2010/11
Übungen zur Vorlesung Einführung in die Informatik Wintersemester 2010/11 Fakultät für Informatik Lehrstuhl 1 Dr. Lars Hildebrand Carla Delgado-Battenfeld Fatih Gedikli Tobias Marschall Benjamin Schowe
MehrProgrammieren I. Methoden-Special Heusch --- Ratz 6.1, Institut für Angewandte Informatik
Programmieren I Methoden-Special Heusch --- Ratz 6.1, 6.2 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Parameterübergabe: Wertkopie -By- public class MethodParameters { public
MehrEinstieg in die Informatik mit Java
1 / 41 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 41 1 Überblick: Vererbung 2 Grundidee Vererbung 3 Verdeckte Variablen
Mehr3. 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
MehrKostenmodell. Daniel Graf, Tobias Pröger. 22. September 2016 (aktualisierte Fassung 5 vom 9. Oktober 2016)
Kostenmodell Daniel Graf, Tobias Pröger 22. September 2016 (aktualisierte Fassung 5 vom 9. Oktober 2016) Erklärung: Diese Mitschrift ist als Ergänzung zur Vorlesung gedacht. Wir erheben keinen Anspruch
MehrAlgorithmen für Kettenbrüche Ac
Algorithmen für Kettenbrüche Ac 2013-2016 Eine reelle Zahl x der Form 0 z + z 1 1 1 + 1 z2 +... + z n heißt endlicher regulärer Kettenbruch (KB). Kurzschreibweise: x = [ z 0 ; z 1, z 2,..., z n ] z 0 ist
MehrKapitel 6. Komplexität von Algorithmen. Xiaoyi Jiang Informatik I Grundlagen der Programmierung
Kapitel 6 Komplexität von Algorithmen 1 6.1 Beurteilung von Algorithmen I.d.R. existieren viele Algorithmen, um dieselbe Funktion zu realisieren. Welche Algorithmen sind die besseren? Betrachtung nicht-funktionaler
MehrEinführung in die Informatik I
Einführung in die Informatik I Algorithmen und deren Programmierung Prof. Dr. Nikolaus Wulff Definition Algorithmus Ein Algorithmus ist eine präzise formulierte Handlungsanweisung zur Lösung einer gleichartigen
Mehr3. Kontrollstrukturen Grundlagen der Programmierung 1 (Java)
3. Kontrollstrukturen Grundlagen der Programmierung 1 (Java) Fachhochschule Darmstadt Haardtring 100 D-64295 Darmstadt Prof. Dr. Bernhard Humm FH Darmstadt, 11. Oktober 2005 Agenda Agenda Verzweigungen
MehrInformatik II, SS 2014
Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 7 (21.5.2014) Binäre Suche, Hashtabellen I Algorithmen und Komplexität Abstrakte Datentypen : Dictionary Dictionary: (auch: Maps, assoziative
MehrProbeklausur: Programmierung WS04/05
Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,
MehrMathematische Grundlagen der Kryptographie. 1. Ganze Zahlen 2. Kongruenzen und Restklassenringe. Stefan Brandstädter Jennifer Karstens
Mathematische Grundlagen der Kryptographie 1. Ganze Zahlen 2. Kongruenzen und Restklassenringe Stefan Brandstädter Jennifer Karstens 18. Januar 2005 Inhaltsverzeichnis 1 Ganze Zahlen 1 1.1 Grundlagen............................
MehrDie einfachsten Anweisungen
2 Die einfachsten Anweisungen 2-1 Inhalt Die einfachsten Anweisungen Einführung Datentypen Arithmetische Operatoren Mathematische Funktionen Mehrfache Zuweisungen Übungsaufgaben Einführung Wir wollen unser
MehrVorab : Von dem indischen Mathematiker D. R. Kaprekar stammt folgender Zusammenhang :
Seite 1 Algorithmen zur Erzeugung von Kaprekar- Konstanten Autor : Dipl.- Ing. Josef Meiler ; Datum : März 015 Vorab : Von dem indischen Mathematiker D. R. Kaprekar stammt folgender Zusammenhang : a) man
Mehr1 Aufgaben 1.1 Objektorientiert: ("extended-hamster") Sammel-Hamster
1 Aufgaben 1.1 Objektorientiert: ("extended-hamster") Sammel-Hamster Aufgabe: Bearbeitungszeit: ca. 1/4 Std) Schreiben Sie ein "objektorientiertes" Programm ("CuB_05_1") für das Sammeln der Körner. Aufgabenbeschreibung:
MehrDr. Monika Meiler. Inhalt
Inhalt 4 Anweisungen... 4-2 4.1 Strukturierte Programmierung... 4-2 4.1.1 Geschichte... 4-2 4.1.2 Strukturierung im Kleinen... 4-2 4.2 Einige Beispielanwendungen... 4-4 4.2.1 Addierer (do-schleife)...
Mehr1 Matrizenrechnung zweiter Teil
MLAN1 1 Literatur: K. Nipp/D. Stoffer, Lineare Algebra, Eine Einführung für Ingenieure, VDF der ETHZ, 4. Auflage, 1998, oder neuer. 1 Matrizenrechnung zweiter Teil 1.1 Transponieren einer Matrix Wir betrachten
MehrDer folgende Vortrag basiert auf dem Text A Polynomial Time Algorithm for the N-Queens Problem von Rok Sosic und Jun Gu aus dem Jahre 1990.
Ein polynomieller Algorithmus für das N-Damen Problem 1 Einführung Der folgende Vortrag basiert auf dem Text A Polynomial Time Algorithm for the N-Queens Problem von Rok Sosic und Jun Gu aus dem Jahre
MehrKlassenstufen 7, 8. Aufgabe 1 (6+6+8 Punkte). Magischer Stern:
Department Mathematik Tag der Mathematik 31. Oktober 2009 Klassenstufen 7, 8 Aufgabe 1 (6+6+8 Punkte). Magischer Stern: e a 11 9 13 12 10 b c d Die Summe S der natürlichen Zahlen entlang jeder der fünf
MehrAlgorithmen und Programmierung II
Algorithmen und Programmierung II Vererbung Prof. Dr. Margarita Esponda SS 2012 1 Imperative Grundbestandteile Parameterübergabe String-Klasse Array-Klasse Konzepte objektorientierter Programmierung Vererbung
MehrDie for -Schleife HEUTE. Schleifen. Arrays. Schleifen in JAVA. while, do reichen aus, um alle iterativen Algorithmen zu beschreiben
18.11.5 1 HEUTE 18.11.5 3 Schleifen Arrays while, do reichen aus, um alle iterativen Algorithmen zu beschreiben Nachteil: Steuermechanismus ist verteilt Übersicht nicht immer leicht dazu gibt es for (
MehrEffizienz von Algorithmen
Effizienz von Algorithmen Letzte Bearbeitung: Jan 211 Ein wichtiger Aspekt bei Algorithmen sind seine "Kosten". Wir wollen uns hier ausschließlich mit der Laufzeit des gewählten Algorithmus beschäftigen.
MehrKlausur Fachprüfung Wirtschaftsinformatik. Name:
Klausur Fachprüfung Wirtschaftsinformatik Dauer: 2 Stunden Datum: 02.10.2003 Name: Punkte True-or-False: von 15 Punkte Multiple Choice: von 15 Punkte Quickies: von 30 Punkte Shorties: von 20 Punkte Longies:
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Tafelübung 04 Referenzen, Overloading, Klassen(hierarchien) Clemens Lang T2 18. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/13 Organisatorisches Nächster Übungstermin
Mehr2.6 Potenzen (Thema aus dem Bereichen Algebra)
2.6 Potenzen Thema aus dem Bereichen Algebra) Inhaltsverzeichnis 1 Einführung in den Begriff der Potenz 2 2 Repetition: Potenzen mit natürlichen Exponenten 2 Potenzen mit ganzzahligen Exponenten 4 4 Potenzen
MehrEinstieg in die Informatik mit Java
Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Wintersemester 2013/14 1. Vorlesung Kapitel 1: Sortieren Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Das Problem Eingabe Gegeben: eine Folge A = a 1, a 2,..., a
MehrDr. Monika Meiler. Inhalt
Inhalt 5 Referenzdatentypen - Felder... 5-2 5.1 Eindimensionale Felder - Vektoren... 5-3 5.1.1 Vereinbarung... 5-3 5.1.2 Referenzen sind keine Felder... 5-4 5.1.3 Kopieren eindimensionaler Felder... 5-6
MehrInformation in einem Computer ist ein
4 Arithmetik Die in den vorhergehenden Kapiteln vorgestellten Schaltungen haben ausschließlich einfache, Boole sche Signale verarbeitet. In diesem Kapitel wird nun erklärt, wie Prozessoren mit Zahlen umgehen.
MehrDer Euklidische Algorithmus Dieter Wolke
Der Euklidische Algorithmus Dieter Wolke Einleitung. Für den Begriff Algorithmus gibt es keine einheitliche Definition. Eine sehr knappe findet sich in der Encyclopaedia Britannica (1985) A systematic
MehrProgrammiertechnik II
Analyse von Algorithmen Algorithmenentwurf Algorithmen sind oft Teil einer größeren Anwendung operieren auf Daten der Anwendung, sollen aber unabhängig von konkreten Typen sein Darstellung der Algorithmen
Mehr620.900 Propädeutikum zur Programmierung
620.900 Propädeutikum zur Programmierung Andreas Bollin Institute für Informatik Systeme Universität Klagenfurt Andreas.Bollin@uni-klu.ac.at Tel: 0463 / 2700-3516 Lösung der Aufgaben (1/2) Lösung Aufgabe
MehrLösungsvorschlag Serie 2 Rekursion
(/) Lösungsvorschlag Serie Rekursion. Algorithmen-Paradigmen Es gibt verschiedene Algorithmen-Paradigmen, also grundsätzliche Arten, wie man einen Algorithmus formulieren kann. Im funktionalen Paradigma
MehrSOI 2013. Die Schweizer Informatikolympiade
SOI Die Schweizer Informatikolympiade Lösung SOI Wie schreibe ich eine gute Lösung? Bevor wir die Aufgaben präsentieren, möchten wir dir einige Tipps geben, wie eine gute Lösung für die theoretischen
MehrJava - Schleifen. Bedingung. wiederhole. Anweisung Anweisung Anweisung. Leibniz Universität IT Services Anja Aue
Java - Schleifen Bedingung wiederhole ja Anweisung Anweisung Anweisung Leibniz Universität IT Services Anja Aue Anweisung int zahl; zahl = 2; zahl = zahl * 10; int zahl; ; Jede Anweisung endet mit einem
Mehr6. 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"
Mehr1 Vorbereitung: Potenzen 2. 2 Einstieg und typische Probleme 3
Das vorliegende Skript beschäftigt sich mit dem Thema Rechnen mit Kongruenzen. Das Skript entsteht entlang einer Unterrichtsreihe in der Mathematischen Schülergesellschaft (MSG) im Jahr 2013. Die vorliegende
MehrEffizienz von Algorithmen
Effizienz von Algorithmen Eine Einführung Michael Klauser LMU 30. Oktober 2012 Michael Klauser (LMU) Effizienz von Algorithmen 30. Oktober 2012 1 / 39 Ein einführendes Beispiel Wie würdet ihr einen Stapel
MehrDas Jahr der Mathematik
Das Jahr der Mathematik Eine mathematische Sammlung - kinderleicht Thomas Ferber Forschung und Lehre Sun Microsystems GmbH Die Themen 1 2 Sind die Zahlen universell? π-day 3 Die Eine Million $-Frage 4
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens aw@awilkens.com Überblick Grundlagen Definitionen Eigene Entwicklungen Datenstrukturen Elementare Datentypen Abstrakte Datentypen Elementare
Mehr