Startseite
    der Anfang
    Wintersemester 2007/08
    Unix Praktikum
    Experimentelle Gestaltung
    Grundlagen analoger Gestaltung
    Mathe für Medieninformatiker 1
    Einführung in die Informatik 1
    Film Ab! Kurs -> individuelle Ergänzung
    Meine Wenigkeit
    Fotoalbum
    Dear Diary
  Archiv
  Gästebuch
  Kontakt
 


http://myblog.de/kopffick

Gratis bloggen bei
myblog.de





Einführung in die Informatik 1

4. Represäntation von Zeichen




Da im Rechner eben nur Binärzahlen repräsentierbar sind, werden alle Zeichen mit Binärzahlen codiert.

-> ASCII Code (American Standard Code for Information Interchange (1963))

~> Code verwendet 7 Binärstellen -> 7 Bit-Code = 2^7 = 128 unterschiedliche Zeichen sind codierbar

Mitlerweile ist es jedoch Standart 1 Byte zu verwenden, also 8 Bit. Dabei ist das achte Bit frei und wird für zwei Dinge genutzt:
1. Als Kontrolle der Datenübertragung.
-> Falls 8. Bit gleich 0, dann müssen die restlichen 7 Bit eine gerade Anzahl von Einsen enthalten.
-> Falls 8. Bit gleich 1, müssen die restlichen 7 Bit eine ungerade Anzahl von Einsen enthalten
=> Sonst liegt ein Fehler in der Übertragung vor

2. ANSI Extended ASCII -> als erweiterter Zeichensatz zur Codierung von Sonderzeichen


Jedoch gibt es so viel mehr Zeichen, die man im Rechner darstellen wollte (arabische, kyrillische Buchstaben etc), deshalb entwickelte man den UNICODE.


=> UNICODE

-> Internationaler Codierungs-Standart.
Codierung von:
1. Textzeichen (Buchstaben, Silbenzeichen, Sonderzeichen, Ziffern , etc)
2. mathematische, kaufmännische und technische Sonderzeichen (z.B. Firmensymbole)

Mit dem umfassenderem UNICODE versucht man alle bekannten Zeichen aller Alphabete zu kodieren. Auch tote Sprachen, wie z.B. die Hieroglyphen, Runen und so weiter.
Die letzte Version 3.1 vom März 2001 umfasst knapp über 94 000 Zeichen. Dabei werden 3 Byte benötigt, jedoch 4 Byte verwendet. Das zusätzliche Byte als Reserve für zusätzliche Zeichen.
Durch diesen Umstand entsteht ein großer und meist unnötiger Speicherverbrauch.

Um dieses Speicherverschleuder Problem zu lösen gibt es 2 Lösungsansätze:

1. UCS-2 (universal character set 2) : Kodierung in 2 Bytes, reicht für ca 65 500 Zeichen. Mit 2 Bytes lassen sich alle lebenden Sprachen und die gebräuchlichen Sonderzeichen kodieren und es reicht komplett für die normale Kommunikation. (Auch gängiger Zeichensatz von Microsoft Windows)
2. UTF-8 (unicode transformation format ): die am weitesten verbreitete Kodierung für Unicode-Zeichen. Dabei wird in variabler Länge kodiert.
-> 1 Byte verwendet, bis zu 4 Byte können verwendet werden. Das linke Bit ist erstmal 0, um den Anfang kennzuzeichnen. Wenn nur dieser eine Byte verwendet wird, entspricht die Codierung dem ASCII Code, das heißt es sind 128 Zeichen kodierbar.
-> Werden jedoch mehr Bytes benötigt, fängt das nachfolgende Byte mit 10 an, um kennzuzeichnen, dass es noch zum anfänglichen Byte gehört. Das erste Byte zeigt durch 1-en und einer abschließenden 0 an, wie viele Bytes noch nachfolgen.


-> Beispiele:

-> 0xxxxxxx (2^7 Zeichen kodierbar, kein Byte folgt)

-> 110xxxxx 10xxxxxx (2^11 Zeichen kodierbar. Die zwei Einsen und die abschließende 0 kennzeichnen, dass noch genau ein Byte folgt, der dann wiederum mit 10 anfängt)

->11110xxx 10xxxxxx 10xxxxxx 10xxxxxx (2^16 Zeichen kodierbar. Die 4 Einsen am Anfangsbyte kennzeichnen: eine Eins für das Anfangsbyte, 3 für 3 nachfolgende Bytes.)


=> Die nachfolgenden Bytes beginnen immer mit 10, damit bei gestörter Übertagung klar ist, dass hier nicht der Anfang sein kann.
25.2.08 13:48


3. Umrechnung von Darstellungen


HORNER-Schema
-> Umwandlung zwischen verschiedenen Zahlensystemen

~> Die allgemeine Darstellung von Zahlen im dezimalen Stellenwertsystem ist nichts anderes als eine verkürzte Schreibweise für besondere Polynome, nämlich Polynome mit der Basis x=10.
Das Gleiche gilt für alle anderen Stellenwertsysteme, beispielsweise das Binärsystem (x=2).
~~> Mit dem Horner-Schema kann man Zahlen aus jedem anderen Stellenwertsystem in das Dezimalsystem umwandeln und umgekehrt.

-> Beispiel:
Binärzahl 110101 soll in das Dezimalsystem umgewandelt werden:

Image and video hosting by TinyPic

-> Beispiel an Hexadezimalzahlen – Umrechnung der Hexadezimalzahl EF01 ins Dezimalsystem:

Image and video hosting by TinyPic

-> Umrechnung der Dezimalzahl 81 ins Dualsystem:

(1) Teile die Zahl mit Rest durch 2.
(2) Der Divisionsrest ist die nächste Ziffer (von rechts nach links).
(3) Falls der (ganzzahlige) Quotient = 0 ist, bist du fertig,
andernfalls nimm den (ganzzahligen) Quotienten als neue Zahl
und wiederhole ab (1).

81 : 2 = 40 Rest: 1
40 : 2 = 20 Rest: 0
20 : 2 = 10 Rest: 0
10 : 2 = 5 Rest: 0
5 : 2 = 2 Rest: 1
2 : 2 = 1 Rest: 0
1 : 2 = 0 Rest: 1

Resultat: 1010001

-> Von unten nach oben lesen

Eine Problemstellung bei der Umrechnung ist, dass man b^-1 zum Beispiel nicht exakt im Zielsystem darstellen kann. Bei der Umwandlung von Dezimalzahlen mit Nachkommastellen, enstehen immer minimale Rundungsfehler.
23.2.08 17:52


2. Rechnen im B-adischen System



-> Schriftliches Multiplizieren und Addieren funktionieren genauso wie im 10-er System.


Beispiele:

Addition


-> Im Hexadezimalsystem:

A50F.5
+0B52.6
B061.B



-> Im Dualsystem:

101011.11
+110110.01
1100010.00


Multiplikation


-> Im Dezimalsystem:

37.24 x 6.368
22344
11172
22344
29792
=> 23714432



-> Im Dualsystem:

101,01 x 10,1
10101
00000
10101
=> 1101001

[-> Falls der Taschenrechner das Wissen wie das noch mal geht schon verdrängt hatte xD
=> Die erste Ziffer der rechten Zahl mit der letzten der linken Zahl multiplizieren. Die Einer des Ergebnisses unter die erste Ziffer der linken Zahl schreiben, Zehner merken.
Dann vorletzte Ziffer der linken Zahl und so weiter.]
23.2.08 11:35


So, hier mal Informatik, alles was wir gemacht haben, für ganz blöde, also Leute wie mich, dargestellt.
Meine Erklärungen müssten eigentlich alle verstehen denk ich mir mal.. wenn sogar ich's rall xD




Einführung in die Informatik 1



1. Represäntation von elementaren Daten

-> Alle elementaren Daten (alle Zeichen, Zahlen etc.) werden im Rechner im Dualsystem repräsentiert. (Durch Nullen und Einsen codiert)
--> Das Dualsystem ist ein spezielles B-adisches Zahlensystem mit der Basis B=2


B-adische Zahlensysteme:

-> Im B-adischen Zahlensystem ( mit B ≥ (größer oder gleich) 2, und B ist Element der natürlichen Zahlen) wird jede reele Zahl wie folgt dargestellt:

Image and video hosting by TinyPic

Beispiele:

1. Zum Beispiel das gewohnte B=10 Dezimalsystem, in dem man gewöhnlich rechnet.
-> B=10 mit a_i = {0,1,...,9}
-> die 0 wird mitgezählt, bei 9 fängt es wieder von vorne an z.B.:
29 -> 30

Image and video hosting by TinyPic

2. B=2 Dualsystem mit a_i = {0,1}

Image and video hosting by TinyPic


3. B=16 Hexadezimalsystem mit a_i = {0,1,…,9,A,B,C,D,E,F}

Image and video hosting by TinyPic


-> B=1 geht nicht, weil dann nur die 0 darstellbar ist. Ist ja unspaßig sowas.


-> Beispiel:
Die Dezimalzahl 34 wird ins 2er-System umgewandelt

Gehe nach folgendem Verfahren vor:
(1) Teile die Zahl mit Rest durch 2.
(2) Der Divisionsrest ist die nächste Ziffer (von rechts nach links).
(3) Falls der (ganzzahlige) Quotient = 0 ist, bist du fertig,
andernfalls nimm den (ganzzahligen) Quotienten als neue Zahl
und wiederhole ab (1).

34 : 2 = 17 Rest: 0
17 : 2 = 8 Rest: 1
8 : 2 = 4 Rest: 0
4 : 2 = 2 Rest: 0
2 : 2 = 1 Rest: 0
1 : 2 = 0 Rest: 1

Resultat: 100010
23.2.08 11:25


1.
Was is’n Informatik überhaupt?


Wenn man erstmal an Informatik denkt, stellt man sich vor dem PC hockende, krummrückige Gestalten vor, die ’ne Postkarte an der Wand hängen haben „Schlafen kann ich, wenn ich tot bin.“.
Oh, ähm, ich hab ja so ’ne Postkarte an der Wand ehe xD;

Nun ja, jedes Klishée is irgendwie auch ein wenig Wahrheit ... lassen wir uns davon jedoch nicht abschrecken! Ich motivier mich in Sachen Informatik mit der Vorstellung, dass ich dann später lustige, bunte Handyspiele werd programmieren können. Mwaha! Vor allem werden die auch schön, weil ich dann auch noch gestalten kann und nicht reine Formeln und Befehle eintipp. *_*

Das Ziel von Info 1 soll die Einführung in die Funktionen und den prinzipiellen Aufbau eines Rechners sein. Man soll halt einfach rallen, wie so’n PC arbeitet. Außerdem wird man drauf vorbereitet objektorientiert mit Java zu programmieren.
Und der fade Teil: Vermittlung grundlegender Datenstrukturen und Algorithmen.
Ich für meinen Teil hab dazu noch nicht mal eine wage Vorstellung .. bin ich hier falsch in diesem Studiengang? >_>

Ach ja total interessant und überraschend bla; Informatik ist n zusammengesetztes Wort aus Information und Automatik. Wohoo! Da kann man sich ja, wenn man Böcke hat daraus resultierend ne Definition von Informatik überlegen. Oder es auch lassen. Weil ich’s gleich erklär xD
Hm, merkt man, dass ich hier versuch das Skript in eigenen Worten nachzuerzählen? XD

Jedenfalls ist die Definition von Informatik: automatische Verarbeitung, Speicherung und Übertragung von Informationen (Daten auch gennant, welch Sensation -_- ) und das alles insbesondere mit Hilfe von Rechnern. Im Grunde sind Informatiker grundfaule Menschen, die sich alles automatisieren wollen, was geht.
Die Theorie is nicht von mir, das hat der Unix Tutor gesagt. Ich glaub ihm mal. xD
(Hat sich schon sehr glaubhaft angehört, er wirkt nämlich auch so ..ähem .. >_>)

So. Unterteilt wird Info in 4 Teilgebiete:

1. Theoretische Informatik
Die beschäftigt sich mit Fragen wie: was ist überhaupt berechenbar (Statistiken und so), wie aufwendig is so ne Berechnung, wie lang dauert das, wie stellt man Sachverhalte formal und knapp dar (so’n PC is ja an sich ziemlich blöd), wie kann man die Korrektheit eines Programms beweisen etc.

2. Praktische Informatik
Wie strukturiert man sinnvoll Informationen? Und wie macht man sich dem Rechner verständlich (wie gesagt, ziemlich blöd), wie entwickelt man sinnvoll ein Programm vor allem in einem Team und welche Programme sind überhaupt notwendig, damit ein Rechner arbitet? Zum Beispiel braucht n PC erstmal ein Betriebssystem, damit man weiteres damit anfängt, sich weitere Programme runterladen, installieren etc machen kann. Betriebssysteme sind Windows, Linux, Ubuntu, Unix etc
Es ist halt die Basis, auf der man noch viel mehr anstellen kann.

3. Technische Informatik
Welche Komponenten benötigt ein Computer, wie verbindet man diese für eine effiziente Verarbeitung und wie können Rechner miteinander kommunizieren? Also wie funktioniert ein Netzwerk auf feuchtfröhlichen Lan-Partys und so xD

4. Angewandte Informatik
Ich denk mal drunter kann man sich viel mehr vorstellen; es sind ja überall PCs nötig im 21. Jahrhundert, um die verschiedensten Aufgaben zu erfüllen.
Zum Beispiel in der Biologie, wo man Forschungsergebnisse etc auswertet, Statistiken und Prognosen erstellt etc, dann natürlich in der Medizin, z.B. die Computertomographie.
Ganz klar werden PCs auch viel in den Medien verwendet, um Sprachen, Bilder, Grafiken, Videos und so weiter zu kombinieren, Abläufe zu automatisieren und solche Späße.
In der Geologie werden dann mit Rechnern Satelitendaten ausgerechnet und so das Wetter vorhergesagt. Die Wirtschaft .. ja die braucht halt auch Rechner. xD
Das wären dann halt die Themengebiete; man versucht dabei Rechner so effizient und kostengünstig wie möglich anzuwenden und dazu wird die Technik immer weiter entwickelt.
Sonst versteht man unter angwandter Informatik auch noch, dass man Roboter programmiert und versucht die Eigenschaften eines Menschen nachzubilden.
Man muss sich dazu überlegen, dass man jedes kleine Detail in das Ding irgendwie reinkriegen muss; Dinge, die man als Mensch unbewusst, instinktiv etc macht, muss man in einem PC erstmal auf’s Kleinste programmieren.
Na ja, ich hab da ehrlich gesagt nicht die genaueste Ahnung von, aber man kann sich die Schwierigkeit schon vorstellen denk ich mal.


Verglichen mit einem Menschen ist so ein PC natürlich auch wirklich nur doof, da er nichts von alleine macht, sondern wie gesagt jedes Detail genau programmiert werden muss, damit es funktioniert. Es sind keine spontanen Reaktionen jeglicher Art möglich. Dafür zeichnet sich das Maschinelle durch die Präzision und den Speicher aus. Klar, n Mensch ist eben keine Maschine.

Sonst steht hier im Skript so ne lustige Biografie der Entwicklung von PCs .. interessiert keine Sau die ganzen Jahreszahlen. Das Wichtigste dabei ist nur, dass ein PC nicht im Dezimalsystem rechnet (also 1, 2, 3, 4, 5, 6, ....), sondern im Dualsystem, das nur aus den Zahlen 1 und 0 besteht. Das erleichtert und beschleunigt den Prozess des Ausrechnens; Zahlen, Symbole und alles weitere wird dann die verschiedene Kombination von Einsen und Nullen dargestellt.
Ab 1940 ungefähr wurden dann Programmiersprachen entwickelt: vereinfachte Symbolsprachen, Codes quasi, die es einem erleichterten einem Rechner klar zu machen, was er tun sollte.
Die ersten Programmiersprachen waren maschinenabhängig, das heißt, man konnte sie eben nur an einem Typ des PCs, oder nur an einem PC anwenden. Ab ca 1954 wurden dann höhere, funktionale Programmiersprachen entwickelt -> FORTRAN, COBOL, C, PASCAL etc.
Die waren maschienenunabhängig und besser lesbar.
Ab ca 1980 kamen dann auch objektorientierte Programmiersprachen; bessere Lesbarkeit und Wiederverwendbarkeit von Programmen. Das waren dann Java, Smalltalk, C++ etc.
7.11.07 01:21





Verantwortlich für die Inhalte ist der Autor. Dein kostenloses Blog bei myblog.de! Datenschutzerklärung
Werbung