2.2 Einfache Datenstrukturen

Ähnliche Dokumente
Syntax der Sprache PASCAL

Datentypen: integer, char, string, boolean

Um mit dem Computer über ein Programm in Kontakt treten zu können braucht man sogenannte Ein- und Ausgabebefehle.

10 Wiederholungsanweisungen

4.Grundsätzliche Programmentwicklungsmethoden

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

15 Der strukturierte Datentyp»set«(Mengen)

Informatik I Übung, Woche 40

Informatik I Übung, Woche 38

1.3 Handhabung eines Programmiersystems

Informatik I Übung, Woche 38

Variablen, Konstanten und Datentypen

Informatik I Übung, Woche 40

Boolean Wertemenge: Wahrheitswerte {FALSE,TRUE}, auch {0,1} Deklaration:

9 Steueranweisungen. if... then if... then... else case... of goto. Gliederung. 9.1 Die einseitige Verzweigung if... then...2

PROCESSING EINE ZUSAMMENFASSUNG. Created by Michael Kirsch & Beat Rossmy

Datentypen. Agenda für heute, 4. März, Pascal ist eine streng typisierte Programmiersprache

Algorithmen und ihre Programmierung

Die Notwendigkeit für wiederholte Programmausführungen. Agenda für heute, 11. März, 2010

Kurs 1575, Klausur vom , Musterlösung

Informatik I Information & Daten Repräsentation von Daten

Informatik für Schüler, Foliensatz 2 Ausdrücke, Variablen, Datentypen, Ein- und Ausgabe

Schleifenprogrammierung in C/C++, Fortran und Pascal

(Aufgaben zu Wertzuweisungen siehe Vorlesungsbeilage S. 49)

Informatik I Übung, Woche 41

1953/54 (USA) PS FORTRAN (FORmula TRANslating system) 1958/60 (Europa) ALGOL (ALGOrithmic Language)

Vorkurs Informatik WiSe 16/17

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 12/13. Kapitel 3. Grunddatentypen, Ausdrücke und Variable

1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH

Java Übung. Übung 2. Werner Gaulke. 19. April Universität Duisburg-Essen Kommedia, Übung EinPro SS06, Einführung in Java - Übung.

Institut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke

Grundlagen der Programmierung

Einstieg in die Informatik mit Java

JAVA-Datentypen und deren Wertebereich

1 Aufgaben 1.1 Objektorientiert: ("extended-hamster") Sammel-Hamster

2 Grundlegende Kontroll- und Datenstrukturen

16 Der strukturierte Datentyp "record"

Quick-Start Informatik Programmieren in Python Teil 1

Institut für Computational Science Prof. Dr. H. Hinterberger. Praxismodul 1. Einführung in die Programmierung Erste Programme

Grundlagen der Fortran Sprache

Institut für Informatik Christian-Albrechts-Universität zu Kiel. Borland Delphi. Einführung in die Programmiersprache

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen

Vorkurs Informatik WiSe 17/18

Kapitel 3. Grunddatentypen, Ausdrücke und Variable

Einführung in die Programmierung mit VBA

5.1 Mehr Basistypen. (Wie viele Werte kann man mit n Bit darstellen?)

Programmierkurs Python I

1. Allgemeine Datei (Binärdatei mit formatierten Inhalt)

Programmieren lernen mit Visual Basic

Klausur zur Wirtschaftsinformatik II im Grundstudium

Tag 2 Repetitorium Informatik (Java)

Einheit Datentypen in der Programmiersprache C Schwerpunkt: Elementare (arithmetische) Datentypen

Informatik Vorkurs - Vorlesung 2

Einführung in die Programmierung für NF. Algorithmen, Datentypen und Syntax

Einstieg in die Informatik mit Java

Informatik I Übung, Woche 41

Kapitel 1: Informationsverarbeitung durch Programme

float: Fließkommazahl nach IEEE 754 Standard mit 32 bit

Arrays. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 3. 1 Modulübersicht 3

Gedächtnis. Während der Abarbeitung eines Algorithmus müssen sich Dinge gemerkt werden bzw. auf Dingen wird gerechnet. Zugriff.

Programmierkurs Python I

PROGRAMMIERKURS FORTRAN

Modul 122 VBA Scribt.docx

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Definition Algorithmus. Wie beschreibt man Algorithmen?

3. Datentypen, Ausdrücke und Operatoren

Java I Vorlesung Imperatives Programmieren

Python Intro. Vorsemesterkurs Informatik Praktischer Teil WS2012/13. 2.Oktober Vorkurs Informatik - WS 2012/13

Java-Applikationen (Java-Programme)

Grundlagen der Programmierung

Algorithmen und Datenstrukturen (für ET/IT)

Ideen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn

Vorbemerkung. Allgemeines zu Shell Scripts. Aufruf. Einfaches Beispiel

1 Bedingte Anweisungen. 2 Vergleiche und logische Operatoren. 3 Fallunterscheidungen. 4 Zeichen und Zeichenketten. 5 Schleifen.

Sachen gibt s, die gibt s gar nicht

Funktionen nur wenn dann

Die Klasse string Verfasser: Christian Bartl

Ideen und Konzepte der Informatik

GI Vektoren

Informationsverarbeitung auf Bitebene

Elementare Konzepte von

Python Intro I. Vorsemesterkurs Informatik Praktischer Teil WS 2013/14. 1.Oktober Vorkurs Informatik - WS 2013/14

C++ - Einführung in die Programmiersprache Zeiger, Referenzen und Strukturen. Leibniz Universität IT Services Anja Aue

TURBO PASCAL VERSION 5.5

Arithmetik in der tcsh

Informatik I (D-MAVT)

Objektorientiertes Programmieren (Java)

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

Einstieg in die Informatik mit Java

INFORMATIK FÜR BIOLOGEN

Ekkehard Kaier. Informationstechnische Grundbildung Turbo Pascal

3.8 Objekttypen und Arrays. Wir werden uns in diesem Kapitel näher mit den Objekttypen in Java beschäftigen.

Transkript:

2.2 Einfache Datenstrukturen Konstante und Variable Die Begriffe "Konstante" und "Variable" haben zunächst auch in der Informatik dieselbe grundsätzliche Bedeutung wie in der übrigen Mathematik. Variablen sind Speicherplätze im Rechner, in denen Zahlen, Buchstaben, Wörter und andere Objekte gespeichert werden. Eine Variable hat einen Namen (Variablenname), einen so genannten Datentyp und einen Dateninhalt. Mit der Variablen kann genauso gearbeitet werden wie mit den Daten selbst. In Pascal werden Variablennamen und Typ im Deklarationsteil gemäß folgender Syntax festgelegt: VAR Liste von Variablennamen: Variablentyp Der Dateninhalt wird der Variablen aber erst im Programm zugewiesen und kann jederzeit geändert werden. Beispiel: program variable; var laenge, breite, umfang: real;... read (laenge, breite); umfang := 2 * (laenge + breite); write (umfang) Eine Konstante ist ähnlich der Variablen ein Speicherplatz, der einen Namen und einen Dateninhalt hat. Jedoch lässt sich der Dateninhalt nicht mehr im Programm verändern. In Pascal wird der Inhalt im Deklarationsteil nach folgender Syntax festgelegt: CONST Konstantenname = Wert der Konstanten Beispiel: CONST pi = 3.14159; Einfache Datentypen in Pascal INTEGER: Ganze Zahlen. Der Zahlenbereich ist beschränkt auf Zahlen von -32768 bis +32767. REAL: Dezimalzahlen. Eine Dezimalzahl kann auf einem Computer ebenfalls nur mit einer beschränkten Genauigkeit angegeben werden. Sollten bei sehr kleinen Zahlen die Stellen hinter dem Dezimalpunkt oder bei sehr großen 2-2-1

Zahlen die Stellen davor nicht ausreichen, so werden die Zahlen in der Zehnerpotenz-Schreibweise (wie beim Taschenrechner) angegeben. Beispiel: Statt 300 000 000 000 kann 3E11 (= 3 10 11 ) angegeben werden. CHAR: Zeichen. Eine Variable dieses Typs kann ein beliebiges Zeichen aus dem Zeichensatz des Rechners enthalten. BOOLEAN: Logische Variable. Dieser Variablentyp kennt nur zwei mögliche Werte: Wahr und Falsch. In Pascal heißen diese Werte TRUE (wahr) und FALSE (falsch). Neben diesen einfachen Datentypen gibt es noch so genannte zusammengesetzte Datentypen, z. B. STRING[n] bzw. STRING(.n.): Zeichenkette. Eine Zeichenkette ist eine Folge von beliebigen Zeichen (z. B. auch Leerzeichen u. ä.). Ein String hat eine maximale Länge von 255 Zeichen, außer es wird durch [n] eine (kleinere) Länge vereinbart. Überzählige Zeichen werden einfach ignoriert. 1. Beispiel (Üben des Umgangs mit dem Datentyp STRING): "Spiegeln" einer Zeichenkette (z. B. Wort, Satz). Das Programm soll z. B. aus dem Wort "Neger" das Wort "Regen" erzeugen. Dazu bietet sich folgender Algorithmus an: a) Bestimme die Länge der Zeichenkette. b) Wiederhole: Schreibe den letzten Buchstaben, hänge den vorletzten Buchstaben an usw., bis der erste Buchstabe geschrieben ist. Das zugehörige Struktogramm kann so aussehen: Wiederhole Lies ein Wort ein und weise es der Variablen "WORT" zu. laenge := Länge von wort Schreibe "wort", wort Wiederhole für i := laenge bis 1 Schreibe den i-ten Buchstaben von wort Drücke eine Taste ("j" oder belieb. andere Taste) bis die Taste nicht "j" ist Schreibe: "Programmende" In Pascal werden für diesen Algorithmus folgende Funktionen bereitgestellt: 2-2-2

1. Die Funktion LENGTH ermittelt die Länge eines Strings gemäß folgender Syntax: LENGTH(zeichenkette) Das Ergebnis ist vom Typ INTEGER. 2. Die Funktion COPY entnimmt aus einer Zeichenkette ab einer bestimmten Position eine bestimmte Anzahl von Zeichen. Syntax: COPY(zeichenkette, position, teilstring) Das Ergebnis ist vom Typ STRING. 3. Mit der Funktion READKEY aus der Unit CRT wird ein Zeichen von der Tastatur übernommen. Der Wert von READKEY ist vom Typ CHAR. Der Vorteil von READKEY (gegenüber einer Eingabe über READ oder READLN) ist, dass die Eingabe nicht mit "RETURN" bestätigt werden muss. Von Nachteil kann sein, dass nur ein Zeichen eingegeben werden kann, die Eingabe kein Bildschirmecho erzeugt und die Eingabe nicht mehr korrigierbar ist. 4. Kommt es nicht darauf an, welche Taste betätigt wird (z. B. wenn das Programm mit einem beliebigen Tastendruck fortgesetzt werden soll), sondern geht es nur um eine Wartefunktion, so kann auch eine andere Funktion aus der Unit CRT eingesetzt werden: Die Funktion KEYPRESSED liefert den Wert FALSE, solange keine Taste gedrückt wird, sonst TRUE. Beispiel: REPEAT WRITE ('$') UNTIL KEYPRESSED schreibt den Bildschirm mit Dollarzeichen voll, bis eine beliebige Taste gedrückt wird. So kann das Spiegelungsprogramm in Pascal aussehen: program programm_10_(stringmanipulation); uses crt; var wort : string; antwort : char; laenge, i : integer; clrscr; writeln ('Wörterspiegel'); writeln ('============='); writeln; repeat writeln ('Gib einen String (Wort, Satz o. ä.) ein'); readln (wort); laenge := length(wort); for i := laenge downto 1 do write (copy(wort,i,1)); writeln; writeln; writeln ('Nochmals? (j/bel. Taste)'); writeln; antwort := readkey until antwort <> 'j'; writeln ('Programmende'); readln 2-2-3

Ein seltsamer Pascal-Datentyp: BOOLEAN Aus der Aussagenlogik kennen wir sogenannte logische Aussagen. Sie können die Werte "wahr" oder "falsch" annehmen. Beispiele: 1. "Paris ist die Hauptstadt von England" ist falsch. 2. "Paris ist die Hauptstadt von Frankreich" ist richtig. 3. "Boolesche Variablen sind leicht verständlich" ist objektiv nicht entscheidbar. Alle drei Aussagen sind für unsere Arbeit mit dem Computer unbrauchbar. Insbesondere darf es niemals eine unentscheidbare Situation geben. Vielmehr haben wir es mit Aussagen folgenden Typs zu tun: 1. 5 = 4 ist falsch 2. 5 > 4 ist richtig In Pascal haben die Wahrheitswerte folgende Namen: TRUE - richtig FALSE - falsch Außerdem kann man einen Wahrheitswert einer Variablen zuordnen, die vom Typ BOOLEAN ist. Anmerkung: Werden Daten durch die bekannten Operatoren <, <=, >, >=, =, <> verglichen, so ist das Ergebnis vom Typ BOOLEAN und könnte einer entsprechenden Variablen zugewiesen werden. Es ist aber auch die Verwendung der logischen Verknüpfungen AND (logisches UND), OR (logisches ODER), XOR (logisches ENTWEDER - ODER) und NOT (Negation) möglich. Ein Beispiel: Nach Eingabe zweier ganzer Zahlen sollen diese hinsichtlich ihrer Größe verglichen werden. In Pascal kann dieses Problem so realisiert werden: program boolesche_variable; uses crt; var x, y : integer; logische_bedingung : boolean; wort : string [17]; antwort : char; 2-2-4

repeat clrscr; write ('Gib zwei verschiedene ganze Zahlen ein. '); readln (x,y); logische_bedingung := x > y; {logische bedingung} if logische_bedingung then wort := ' ist größer als ' else wort := ' ist kleiner als '; writeln (x, wort, y); if not logische_bedingung then writeln (y, ' als letzte und größte Zahl!'); writeln; writeln ('Nochmals? (j/sonst. Taste)'); antwort := readkey until antwort <> 'j' 2-2-5