360 likes | 732 Views
Gliederung. Gliederung. 1. Wissenschaft Informatik. 2. Modularisierung. 3. Grundstrukturen. 4. Datenstrukturen. 5. iterative & rek . Algorithmen. 6. Kommunikation in Netzen. Gliederung. 1. Wissenschaft Informatik. 1.1. Informatik, Information, Daten.
E N D
Gliederung Gliederung 1. Wissenschaft Informatik 2. Modularisierung 3. Grundstrukturen 4. Datenstrukturen 5. iterative & rek. Algorithmen 6. Kommunikation in Netzen
Gliederung 1. Wissenschaft Informatik 1.1. Informatik, Information, Daten 1.2. Teilgebiete der Informatik 2. Modularisierung 2.1. Grundprinzip 2.2. Parameterfreie Module 2.3. Module mit Parametern 2.4. Zusammenfassung 2.5. Funktionen
Gliederung 3. Grundstrukturen 4. Datenstrukturen 4.1. Grundlagen 4.2. Array (Feld) 4.3. Record (Verbund) 4.4. Zusammenfassung 4.5. Höhere Datentypen 5. iterative & rek. Algorithmen 6. Kommunikation in Netzen
1.1. Informatik – Information - Daten Wissenschaft Informatik | Gliederung "computerscience Informatik ist ein Kunstwort aus Information und Automatik. Es ist die wissenschaftliche Lehre von der Informationsverarbeitung mit Hilfe von Computern. …"1 1 ITWissen, Das große Online-Lexikon für Informationstechnologie: Informatik. URL: http://www.itwissen.info/definition/lexikon/Informatik-computer-science.html[Stand: 03.09.2012] 1. Wissenschaft Informatik
Wissenschaft Informatik | Gliederung Automatische Informationsverarbeitung Interpretation Information Daten Repräsentation • Analoge Daten • Digitale Daten im Allgemeinen als binär digitale Daten 1. Wissenschaft Informatik
Positionssysteme Wissenschaft Informatik | Gliederung Allgemeine Darstellung zn*bn+…+z2*b2+z1*b1+z0*b0 Dezimalsystem: Basis b = 10 10 Ziffern (0, 1, 2, … , 9) Dualsystem: Basis b = 2 2 Ziffern (0, 1) Hexadezimalsystem: Basis b = 16 16 Ziffern (0, 1, 2, … , 9, A, B, C, D, E, F) Beispiel: 42dez = 101010dual = 2Ahex 4*101+2*100 1*25+0*24+1*23+0*22+1*21+0*20 2*161+10*160 1. Wissenschaft Informatik
Wissenschaft Informatik | Gliederung 1.2. Teilgebiete der Informatik QUELLE: http://de.wikipedia.org/wiki/Bild:Architektur-der-informatik.png [20.09.2007] 1.2.1 Theoretische Informatik Formale Methoden und mathematische Modelle für • Formulierung und Untersuchung von Algorithmen • Berechenbarkeit (Bsp: Halteproblem) • Komplexität und Effizienz (Bsp: Potenzberechnung) • Rechnerkonstruktion 1. Wissenschaft Informatik
Wissenschaft Informatik | Gliederung 1.2.2. Technische Informatik • Funktioneller Aufbau von Computern und peripheren Geräten • Prozessor (Rechen- und Steuerwerk) • Interner Speicher/Arbeitsspeicher (ROM) • Ein- und Ausgabegeräte (Tastatur, Maus, Monitor, Drucker, Laufwerke/externe Speicher) • Bussysteme • Logischer Aufbau von Geräten und Schaltungen (Hardware) • Von-Neumann-Rechner • Logische Grundschaltungen 1. Wissenschaft Informatik
Wissenschaft Informatik | Gliederung • Logischer Aufbau von Geräten und Schaltungen (Hardware) • Von-Neumann-Rechner • Logische Grundschaltungen Binäre Addition 1. Wissenschaft Informatik
Wissenschaft Informatik | Gliederung E A 0 1 1 0 2 Transistoren NOT - Glied & A E1 • E1 E2 A • 0 0 1 • 0 1 0 • 0 0 • 1 1 0 • 4 Transistoren • E1 E2 A • 0 0 1 • 0 1 1 • 0 1 • 1 1 0 • 4 Transistoren E & A E A 1 E2 NAND - Glied AND - Glied • E1 E2 A • 0 0 0 • 0 1 0 • 0 0 • 1 1 1 • 8(6) Transistoren NOR - Glied E1 E1 & A ³1 A E2 E2 OR - Glied • E1 E2 A • 0 0 0 • 0 1 1 • 0 1 • 1 1 1 • 8(6) Transistoren E1 ³1 A E2 Logische Grundschaltungen 1. Wissenschaft Informatik
Wissenschaft Informatik | Gliederung E1 & A E2 AND - Glied • E1 E2 A • 0 0 0 • 0 1 0 • 0 0 • 1 1 1 • 8(6) Transistoren Additions-ergebnis: XOR Bei zwei Eingängen sind insgesamt 16 logische Schaltungen möglich! 1. Wissenschaft Informatik
Wissenschaft Informatik | Gliederung & A2 (Übertrag) E2 E1 =1 AND Binäre Addition Umsetzung über logische Grundschaltungen (Halbadder) A1 (Ergebnis) XOR Volladder Addition zwei einstelliger (…!) Binärzahlen mit einlaufendem Übertrag WIKIPEDIA, Die freie Enzyklopädie: Volladdierer,2010. URL: http://de.wikipedia.org/wiki/Volladder [Stand: 09.09.2010] Die Abbildung wurde an der angegebenen Stelle unter der Lizenz„Creative Commons Namensnennung-Weitergabe unter gleichen Bedingungen Deutschland“in Version 2.0 (abgekürzt „CC-by-sa 2.0/de“) veröffentlicht. (siehe Seite Lizenzbedingungen dieser Präsentation) 1. Wissenschaft Informatik
Wissenschaft Informatik | Gliederung 1.2.3. Praktische Informatik • Lösung von konkreten Problemen der Informatik, wie Entwicklung von • Betriebssystemen • Treibern für periphere Geräte • Programmiersprachen und entsprechenden Compilern • Software inclusive der Implementierung (Programmierung) 1.2.4. Angewandte Informatik • beschäftigt sich mit Anwendungen von Methoden der Kerninformatik in anderen Wissenschafts- und Gesellschafts- bereichen wie Wirtschafts-, Bio-, Chemo-, Medien- oder Geoinformatik sowie Computerlinguistik 1. Wissenschaft Informatik
Modularisierung | Wissenschaft Informatik | Gliederung Teilproblem 1 Teilproblem 2 … Teilproblem n 2.1. Grundprinzip Problem / Aufgabenstellung "Modularisierung ist ein allgemeines Prinzip aus den Ingenieurwissenschaften und dient insbesondere der Erzeugung überschaubarer Systeme, deren Komponen-ten unter Umständen auch in anderen Systemen wieder verwendet werden können."1 • Hartmut Härtl:SoftwareEngineering,2006. • URL: http://oszhdl.be.schule.de/gymnasium/faecher/informatik/softwareprojekte/prinzipien.htm [Stand: 04.10.2007] 2. Modularisierung
Modularisierung | Wissenschaft Informatik | Gliederung Modul 1 Modul 2 Modul 3 INTERFACE INTERFACE INTERFACE IMPLEMEN- TATION IMPLEMEN- TATION IMPLEMEN- TATION "Auf die Softwareentwicklung angewandt fordert dieses Prinzip die Aufteilung des Systems in überschaubare Teile, mit klar definierten Schnittstellen."1 Schnittstelle Interface • Hartmut Härtl:SoftwareEngineering,2006. • URL: http://oszhdl.be.schule.de/gymnasium/faecher/informatik/softwareprojekte/prinzipien.htm [Stand: 04.10.2007] 2. Modularisierung
Modularisierung | Wissenschaft Informatik | Gliederung 2.2. Parameterfreie Module Implementation var z1 , z2 , erg : integer; Globale Variable (bezüglich dieser Unit!) procedure TFStart.eingabe; begin z1 := StrToInt ( EdZahl1.Text ); z2 := StrToInt ( EdZahl2.Text ) end. Aufruf der Module … procedure TFStart.Bu… begin eingabe; … ausgabe end. procedureTFStart.ausgabe begin EdErgebnis.Text := IntToStr ( erg ) end. 2. Modularisierung
Modularisierung | Wissenschaft Informatik | Gliederung 2.3. Module mit Parametern Um eine Kommunikation der Module untereinander zu ermöglichen, müssen diese Schnittstellen besitzen, damit sie Daten austauschen können. Dies wird über Parameter realisiert! Damit können die Module gleichzeitig vom Programm unabhängig werden. Aufruf der Module procedure TFStart.Bu… Var z1 , z2 : integer; begin … eingabe(z1 , EDZahl1); eingabe(z2 , EDZahl2) … end. Umsetzung der Module procedureeingabe( varwas:integer ; woher:TEdit ) begin was := StrToInt ( woher.Text ); end. 2. Modularisierung
Modularisierung | Wissenschaft Informatik | Gliederung 2. Modularisierung
Modularisierung | Wissenschaft Informatik | Gliederung Variablen- parameter Wert- parameter INTERFACE Parameterliste IMPLEMEN- TIERUNG lokale Variable Programmcode (Quelltext) des Moduls 2.4. Zusammenfassung Module bieten eine Kapselung (encapsulation) durch die Trennung von Schnittstelle (Interface) und Implementierung: Die Schnittstelle eines Moduls definiert die Datenelemente, die als Eingabe und Ergebnis der Verarbeitung durch das Modul benötigt werden. Die Implementierung enthält den tatsächlichen Programmcode. 2. Modularisierung
Modularisierung | Wissenschaft Informatik | Gliederung Modularisierung ohne Parameter mit Parameter programmunabhängige Module programmabhängige Module reine Programm- strukturierung Programm- strukturierung und Kapselung Keine Wiederverwendbarkeit! Wiederverwendbarkeit möglich! 2. Modularisierung
Modularisierung | Wissenschaft Informatik | Gliederung 2.5. Funktionen Häufig liefern Module genau einen Ergebniswert zurück und entsprechen somit dem aus der Mathematik bekannten Funktionsbegriff y = f ( a , b , … ). Derartige Module lassen sich in DELPHI als Prozedur mit einem Variablenparameter oder auch als Funktion mit reiner Wertparameterliste umsetzen. Umsetzung als Funktion INTERFACE function name ( … ) : Ergebnistyp IMPLEMENTATION … … result := Ergebniswert Aufruf: ergebnisvariable := name ( … ); 2. Modularisierung
Modularisierung | Wissenschaft Informatik | Gliederung Beispiel für den Einsatz von Funktionen functioneingabe (woher:TEdit) : integer; var wert : integer; begin wert := StrToInt ( woher.Text ); result := wert end. Aufruf der Module: procedureTFStart.Bu… var z1,z2,erg : integer; begin z1 := eingabe(EdZahl1); z2 := eingabe(EdZahl2); erg := summe(z1,z2); ausgabe(erg,EdErgebnis) end. function summe(wert1,wert2 : integer) : integer; var summe : integer; begin summe := wert1 + wert2; result := summe end. procedureausgabe(wert:integer ; wohin:TEdit); begin wohin.Text:= IntToStr ( wert ) end. 2. Modularisierung
Grundstrukturen | Modularisierung | Wissenschaft Informatik | Gliederung 3. Grundstrukturen SEQUENZ ALTERNATIVE (BEDINGUNG) zweiseitige Alternative einseitige Alternative mehrseitige Alternative ZYKLUS (SCHLEIFE) Wiederholzyklus Solangezyklus Zählzyklus Genaueres in „Grundstrukturen.pptx“ (Dateien müssen sich im selben Ordner befinden!) 3. Grundstrukturen
Datenstrukturen | Grundstrukturen | Modularisierung | Wissenschaft Informatik | Gliederung ALGORITHMENSTRUKTUR PROBLEM DATENSTRUKTUR 4.1. Grundlagen Zur Umsetzung gefundener Algorithmen benötigt man neben der Algorithmenstruktur auch eine dem Problem entsprechende Datenstruktur (Von uns bisher als Variablentyp bezeichnet!). "In der Informatik ist eine Datenstruktur ein mathematisches Objekt zur Speicherung von Daten. Es handelt sich um eine Struktur, weil die Daten in einer bestimmten Art und Weise angeordnet und verknüpft werden."1 Dabei lassen sich viele Probleme mit den elementaren Datentypen (integer, real, char, boolean, …) nicht bzw. nicht effektiv lösen. • WIKIPEDIA,Die freie Enzyklopädie:Datenstruktur,2007. • URL: http://de.wikipedia.org/wiki/Datenstruktur [Stand: 01.01.2008] 4. Datenstrukturen
Datenstrukturen | Grundstrukturen | Modularisierung | Wissenschaft Informatik | Gliederung eins zwei drei vier fuenf sechs feld feld[1] feld[2] feld[3] feld[4] feld[5] feld[6] 4.2. Array/ Feld In einem Array lassen sich mehrere Werte identischer Typen (Zahlen, Zeichen, logische Werte,…) speichern. Der Zugriff auf die einzelnen Werte wird über Indizes realisiert. Beispiel: mehrmaliges Würfeln, bei dem die Anzahlen der gewürfelten Augenzahlen gezählt werden über elementare Datentypen sechs Variablen eins .. sechs über Array eine Variable feld TYPE TWuerfel= ARRAY [1..6] OF integer; VAR feld = TWuerfel; 4. Datenstrukturen
Datenstrukturen | Grundstrukturen | Modularisierung | Wissenschaft Informatik | Gliederung 10 … … … feld 2 feld[3,2] feld[2,1] 1 1 2 3 Arrays lassen sich auch über mehrere Dimensionen vereinbaren. Beispiel: zweidimensionales Array für Texte TYPE TTabelle = ARRAY [1..3,1..10] OF string; VAR feld = TTabelle; "Im eindimensionalen Fall wird das Array häufig als Vektor und im zweidimensionalen Fall als Tabelle oder Matrix bezeichnet. Arrays sind aber keinesfalls nur auf zwei Dimensionen beschränkt, sondern werden beliebig mehrdimensional verwendet."1 • WIKIPEDIA,Die freie Enzyklopädie:Datenstruktur,2007. • URL: http://de.wikipedia.org/wiki/Datenstruktur [Stand: 01.01.2008] 4. Datenstrukturen
Datenstrukturen | Grundstrukturen | Modularisierung | Wissenschaft Informatik | Gliederung Strukturierte Komponente StringGrid Um eine effektive Ausgabe der in strukturierten Variablen abgelegten Daten zu ermöglichen, bietet DELPHI die strukturierte Komponente StringGrid in der Komponentenpalette Zusätzlich an. Ausgewählte Attribute: ColCount Spaltenzahl (gesamt) DefaultColWidth Spaltenbreite (Standard) DefaultRowHeigth Zeilenhöhe (Standard) FixedCols Anzahl der "Kopfspalten" FixedRows Anzahl der "Kopfzeilen" RowCount Zeilenzahl (gesamt) 4. Datenstrukturen
Datenstrukturen | Grundstrukturen | Modularisierung | Wissenschaft Informatik | Gliederung 4.3. Record (Verbund) In einem Record lassen sich im Unterschied zum Array mehrere Werte verschiedener Typen (Zahlen, Zeichen, logische Werte,…) speichern. Der Zugriff auf die einzelnen Werte wird über die Komponentennamen des Records realisiert. Beispiel: Personendaten Komponenten- name Nachname Vorname Groesse verheiratet … Inhalt (Beispiel) Müller Max 1,78 nein … Komponenten- typ string string real boolean … 4. Datenstrukturen
Datenstrukturen | Grundstrukturen | Modularisierung | Wissenschaft Informatik | Gliederung DELPHI (Personendaten): TYPE TPerson = RECORD nachname : string; vorname : string; groesse : real; verheiratet : boolean; END; VAR person : TPerson; Die Typ- und Variablenvereinbarung hätte im genannten Beispiel folgendes Aussehen: Der Zugriff auf die Komponenten erfolgt durch Punktnotation: Beispiel: person.vorname := 'Max'; 4. Datenstrukturen
Datenstrukturen | Grundstrukturen | Modularisierung | Wissenschaft Informatik | Gliederung 4.4. Zusammenfassung Datentypen Statische Typen müssen vor der Laufzeit festliegen Dynamische Typen müssen nicht vor der Laufzeit festliegen Einfache Typen Strukturierte Typen Kontinuier- liche Typen (REAL) Diskrete Typen (BYTE, INTEGER, CHAR, BOOLEAN) Feldtyp (ARRAY) Identische Komponenten- typen Verbundtyp (RECORD) Verschiedene Komponenten- typen DIESE ÜBERSICHT IST NICHT VOLLSTÄNDIG! 4. Datenstrukturen
Datenstrukturen | Grundstrukturen | Modularisierung | Wissenschaft Informatik | Gliederung 4.5. Höhere Datentypen Dynamische Typen Datenteil Adressteil (Zeigerteil) R E C O R D Listen NIL Anker Beispiel: Datenlisten, Aufbau ganzer Zahlen Bäume Beispiel: Stammbäume, Hierachien 4. Datenstrukturen
Datenstrukturen | Grundstrukturen | Modularisierung | Wissenschaft Informatik | Gliederung Schlangen enqueue dequeue Beispiel: Warteschlangen Prinzip: FiFo (first in - first out) Stapel push pop Prinzip: LiFo (last in - first out) Beispiel: Kellerspeicher (Stack) 4. Datenstrukturen
Grundstrukturen | Modularisierung | Wissenschaft Informatik | Gliederung ENDE 3. Grundstrukturen
Datenstrukturen | Grundstrukturen | Modularisierung | Wissenschaft Informatik | Gliederung Lizenzbedingungen „Creative Commons Namensnennung-Weitergabe unter gleichen Bedingungen Deutschland“ Den rechtsverbindlichen Lizenzvertrag finden Sie unter http://creativecommons.org/licenses/by-sa/2.0/de/legalcode Zusammenfassung des Vertrags in allgemeinverständlicher Sprache ohne juristische Wirkung. Es ist gestattet: • das Werk zu vervielfältigen, zu verbreiten und öffentlich zugänglich zu machen sowie • Abwandlungen und Bearbeitungen des Werkes anzufertigen, • Namensnennung: Sie müssen den Urheber bzw. den Rechteinhaber in der von ihm festgelegten Weise, die URI (z. B. die Internetadresse dieser Seite) sowie den Titel des Werkes und bei einer Abwandlung einen Hinweis darauf angeben. • Weitergabe unter gleichen Bedingungen: Wenn Sie das lizenzierte Werk bearbeiten, abwandeln oder als Vorlage für ein neues Werk verwenden, dürfen Sie die neu entstandenen Werke nur unter dieser oder einer zu dieser kompatiblen Lizenz nutzen und weiterverbreiten. • Lizenzangabe: Sie müssen anderen alle Lizenzbedingungen mitteilen, die für dieses Werk gelten. Am einfachsten ist es, wenn Sie dazu einen Link auf den Lizenzvertrag (siehe oben) einbinden.1) Zurück zum Volladder 1) WIKIPEDIA, Die freie Enzyklopädie: Datei:Volladdierer Aufbau DIN40900.svg, 2009. URL: http://de.wikipedia.org/w/index.php?title=Datei:Volladdierer_Aufbau_DIN40900.svg&filetimestamp=20061107192017 [Stand: 09.09.2010] ENDE