Teil X. Von Mini Pascal zu Pascal
|
|
- Ella Küchler
- vor 7 Jahren
- Abrufe
Transkript
1 Teil X Von Mini Pascal zu Pascal 1
2 Teil X.1 Pascal Datentypen 2
3 Begriffe Typ: Menge von Werten Beispiel: integer alle ganzen Zahlen zwischen - MaxInt und MaxInt Variable: Reserviert Speicherplatz für Werte ihres Typs Zuweisung: Weist einer Variablen einen Wert zu. 3
4 Einfache Datentypen Integer: alle ganzen Zahlen - MaxInt und MaxInt Varianten: byte: word: 0..MaxInt LongInt: - MaxInt 2..MaxInt 2 1 ShortInt: Boolean: True oder False Char: Meist ASCII-Code Real: Exponentendarstellung nach IEEE 754/854 Varianten: single: 32 bit double: 64 bit extended: 80 bit String: Zeichenketten (beliebiger Länge) zwischen 4
5 Typkonstruktoren (1) Array: Vektor fester Länge, Matrix mit fester Größe Syntax: array [ Bereichstyp ] of Type Beispiele: array[0..10] of Integer array[ a.. z ] of Integer type matrix = array[0..10] of array [0..6] of Real type matrix1 = array[0..10,0..6] of Real Zugriff: var m: matrix; m[3,2] := 7.3; 5
6 Typkonstruktoren (2) Record: Verbund über Typen T 1... T n Beispiel: type Datum = record Tag : 1..31; Monat : (Jan, Feb, Mar, Apr, Mai, Jun, Jul, Aug, Sep, Okt, Nov, Dez); Jahr : Integer end; Zugriff: var date: Datum; date.monat := Jan; with date do begin Tag := 3; Monat := Jun; Jahr := 2002 end; 6
7 Typkonstruktoren (3) case Record mit Varianten Beispiel: type Stand = (verh, verw, gesch, ledig); Person = record name : record vorname, nachname : string end; Versnr : integer; Geschlecht : (Mann, Frau); Geburt : Datum; Kinder : integer; case stkomp : Stand of verh, verw : (vd : Datum); gesch : (gd : Datum); ledig : (unabh : boolean); end; 7
8 Typkonstruktoren (4) Set: Menge von Ordinaltypen Syntax: set of OrdinalerTyp Beispiel: type myset = set of Integer Operationen: + Mengenvereinigung - Komplementbildung * Durchschnitt in ElementOf 8
9 Zeigertypen (1) Zeiger: Addresse auf Speicher eines gegebenen Typs Beispiel: type Liste = ^Eintrag; Eintrag = record Elem : Integer; Nachfolger : Liste end; var : anfang, neu, p, q : liste; Operationen: new(v) fordert freien Speicher vom Typ T an Zugriff auf Wert: v^ dispose(v) gibt Speicher für v wieder frei. 9
10 Zeigertypen (2) Erzeugen einer Liste anfang := nil; (* leere Liste erzeugen *) new(anfang); (* Es wird eine Variable anfang^ vom Typ Eintrag erzeugt *) anfang^.elem := 2; anfang^.nachfolger := nil; (* nun hat die Liste ein Element *) (* der Listenanfang ist erzeugt *) 10
11 Zeigertypen (3) Einfügen eines Elements an den Anfang p := anfang; new(anfang); anfang^.nachfolger := p; anfang^.elem := 5; 11
12 Zeigertypen (4) Einfügen eines Elements an das Ende p := Anfang; while p^.nachfolger <> nil do p := p^.nachfolger; new(q); q^.nachfolger := nil; q^.elem := y; p^.nachfolger := q; (* Eintrag an alte Liste gehaengt *) 12
13 Zeigertypen (5) Suchen eines Elements elem = x p := anfang; found := false; leer := false; while not found and not leer do begin if (p <> nil) then begin if p^.elem = x then found := true else p := p^.nachfolger end else leer := true; if found then writeln( gefunden ) else if leer then writeln( nicht vorhanden ); end; (* while *) 13
14 Zeigertypen (6) Einfügen eines Elements nb nach dem Element nach p := anfang; found := false; leer := false; while not found and not leer do begin if (p <> nil) then begin if p^.elem = nach then found := true else p := p^.nachfolger end else leer := true; if found then writeln( gefunden ) else if leer then writeln( nb nicht vorhanden ); end; (* while *) if found then begin new(q); q^.nachfolger := p^.nachfolger; q^.elem := nb; p^.nachfolger := q end; 14
15 Zeigertypen (7) Löschen des ersten Elements mit Wert x if (anfang <> nil) then begin if (anfang^.elem = x) then begin p:=anfang^.nachfolger; dispose(anfang); anfang:=p end (* if erstes Element = x *) else begin p := anfang; found := false; leer := false; while not found and not leer do begin if (p^.nachfolger <> nil) then begin if (p^.nachfolger^.elem = x) then found := true else p := p^.nachfolger end else leer := true; end; (* while *) if found then begin q:=p^.nachfolger^.nachfolger; dispose(p^.nachfolger); p^.nachfolger:=q end; end; (* if erstes Element <> x *) end (* if anfang <> nil) 15
16 Dateien Syntax: file [ of Typ]. Semantik: Folge von Komponenten mit gegebenen Typ. Operationen (in ISO-Pascal): get(f) lese aktuelle Komponente und schalte F auf die nächste Komponente reset(f) öffnen von F zum Lesen put(f) schalte F auf die nächste Komponente zum Beschreiben rewrite(f) öffnen, initialisieren von F für Schreibvorgang eof(f) Abfrage auf Dateiende close(f) Schließen einer Datei. 16
17 Teil X.2 Kontrollstrukturen, Prozeduren, Funktionen 17
18 Kontrollstrukturen Repeat-Anweisung = "Repeat" statement {";" statement } "until" expression. For-Anweisung If-Anweisung Case-Anweisung = "for" Laufvariable ":=" expression ("to" "downto") expression "do" statement. = "if" expression "then" statement ["else" statement]. = "case" expression "of" Bereich ":" statement {Bereich ":" statement} ["else" ":" statement] 18
19 Prozeduren mit Parametern Syntax: procdecl = "procedure" ident [ Interface ]; block; interface = "(" [var] ident ":" Type {; [var] ident ":" Type} ")" Wertparameter: ident : Type Die Variable ident wird bei Aufruf mit dem Wert des aktuellen Parameters (Variable oder Ausdruck) belegt, Änderung von ident innerhalb der Prozedur nach außen nicht sichtbar. Referenzparameter: var ident : Type Die Variable ident wird bei Aufruf mit einer Referenz auf den aktuellen Parameter (nur Variable) belegt, Änderung von ident innerhalb der Prozedur ist nach außen sichtbar. Nützlich für strukturierte Ausgaben. 19
20 Beispiel: Wert- vs. Referenzparameter Program callbyvaluevscallbyref var i,j,k: integer procedure p(var i1: integer; j1: integer) begin j1:=j1+1; (*? *) i1:=i1+j1; end begin i:=0; j:=1; k:=2; writeln( before: i:, i,, j: j,, k:,k); p(i,j*k); writeln( after: i:, i,, j: j,, k:,k) end. (* Ergebnis: before: i : 0, j:1, k:2 after: i : 3, j:1, k:2 *) 20
21 Verschränkt rekursive Prozeduren Problem: Verwendung einer Prozedur vor Deklaration Lösung: Trennung von Deklaration und Implementierung mit Hilfe von forward Program abwechselnd; var i, h : integer; procedure q (var k : integer); forward; procedure p (var i, j : integer); begin inc(i); j := i+5; if j < 10 then begin write( q:, j); q(j) end; end; procedure q; begin inc(k); write( p:, k); p(i, k) end; begin i := 0; h := 1; write ( p:, h); p(i, h); writeln( p:, h) end. (* Ergebnis: p:1 q:6 p:7 q:7 p:8 q:8 p:9 q:9 p:10 p:10 *) 21
22 Ablauf der verschränkten Rekursion i:=0; h:=1; writeln( p:, h); (* p: 1 *) p(i,h); (* i=0, h=1 *) inc(i); j:= i+5; if j < 8 then begin writeln( q:, j); (* q: 6 *) q(j); (* j=6 *) inc(k); writeln( p: k); (* p: 7 *) p(i,k); (* i=1, k=7 *) inc(i); j:= i+5; if j < 8 then begin writeln( q:, j) (* q: 7 *) q(j); (* j=7 *) inc(k); write( p:, k); (* p: 8 *) p(i,k); (* i=2, k=8 *) inc(i); j: = i+5 (* j=8 *) if j < 8 then... writeln( p:, h) (* p: 8 *) 22
23 Funktionen Wie Prozeduren, jedoch mit explizitem Rückgabeparameter Syntax: Nur einfache Rückgabetypen erlaubt. funcdecl = "function" ident [Interface]: Type; block; Beispiel: Vergleiche: function rfak(n : word) : word; begin if n=0 then rfak := 1 else rfak := rfak(n-1) * n end; procedure rfak(n : word; var ret: word); begin if n=0 then ret := 1 else begin rfak(n-1,ret); ret := ret * n end; end; 23
24 Beispiel: Minicompiler Aufgabe: Übersetze folgende Syntax in Maschinenprogramm Wertzuweisung = ("a"... "z") ":" "=" Ausdruck ";" Ausdruck = Term = Term {("+" "-") Term} Faktor {("*" "/") Faktor} Faktor = "a"... "z" ("(" Ausdruck ")") 24
25 Minicompiler: Hauptprogramm program Minicompiler; uses wincrt; var i: Byte; s: String[80]; {80 Zeichen maximal} procedure Fehler(i: byte); begin writeln( Fehler in Position,i:2); end;... begin {Hauptprogramm} write( Wertzuweisung einlesen ); write( - ohne Leertaste - ); writeln( mit Semikolon zum Ende: ); readln(s); i:= 1; while s[i] <> X do begin writeln; Wertzuweisung(s,i); writeln( Press X to stop ); readln(s); i:= 1 end end. 25
26 Regel für Wertzuweisung (* verschraenkte Rekursion *) procedure Ausdruck(var s: String[80]; var i: Byte); forward; procedure Term(var s: String[80]; var i: Byte); forward; procedure Faktor(var s: String[80]; var i: Byte); forward; (* Wertzuweisung = ("a"... "z") : = Ausdruck ";" *) procedure Wertzuweisung(var s: String[80]; var i: Byte); var ch: Char; begin case s[i] of a.. z : begin ch:= s[i]; inc(i); if s[i] <> : then Fehler(i); inc(i); if s[i] <> = then Fehler(i); inc(i); Ausdruck(s,i); writeln( STORE, ch); if s[i] <> ; then Fehler(i) end else Fehler(i) end end; {Wertzuweisung} 26
27 Regel für Ausdruck (* Ausdruck = Term {("+" "-") Term} *) procedure Ausdruck(var s: String[80]; var i: Byte); var stop: boolean; begin Term(s,i); stop:=false; repeat case s[i] of + : begin inc(i); Term(s,i); writeln( ADD ) end; - : begin inc(i); Term(s,i); writeln( SUB ) end else stop:=true; end; until stop end; {Ausdruck} 27
28 Regel für Term (* Term = Faktor {("*" "/") Faktor} *) procedure Term(var s: String[80]; var i: Byte); var stop: boolean; begin stop:=false; Faktor(s,i); repeat case s[i] of * : begin inc(i); Faktor(s,i); writeln( MULT ) end; / : begin inc(i); Faktor(s,i); writeln( DIV ) end else stop:=true; end; until stop; end; {Term} 28
29 Regel für Faktor (* Faktor = "a".. "z" ("(" Ausdruck ")") *) procedure Faktor(var s: String[80]; var i: Byte); begin case s[i] of a.. z : begin writeln( LOAD,s[i]); inc(i) end; ( : begin inc(i); Ausdruck(s,i); if s[i] <> ) then Fehler(i) else inc(i) end else Fehler(i) end end; {Faktor} 29
30 Teil X.3 Objektorientierte Programmierung in Pascal 30
31 Grundbegriffe der Objektorientierten Programmierung Objekttyp: (Klasse) Kombination von Daten (Zustand) mit Programmen (Methoden) Kapselung: Nur öffentliche (public) Methoden und Variablen sind außerhalb einer Klasse sichtbar; auch genannt: Interface einer Klasse. Vererbung: Ableitung neuer Klassen aus einer bereits bestehenden durch Hinzufügen von Methoden und Variablen. Konstruktor: Methode zum Erzeugen eines Objekts Destruktor: Methode zum Löschen eines Objekts 31
32 Klasse Ellipse implementieren. Beispiel: Geometrische Figuren Eine mögliche Klassenhierarchie für geometrische Figuren zeigt unser Bild: Implementierung In einem Definitionsmodul werden die Merkmale und Methoden der verschiedenen Klassen exakt definiert und gleichzeitig die Hierarchiebeziehungen zwischen den Klassen festgelegt. 32
33 GrObjekt Gemeinsame Methoden Gemeinsame Methoden(-interfaces) und Variablen Program Geometrische_Figuren; Type PunktRec = Record x, y : Longint; End; GrObjekt = CLASS (* In Borland Pascal muss das Schluesselwort *) (* CLASS durch OBJECT ersetzt werden *) Bezugspunkt : PunktRec; Sichtbar : Boolean; Constructor Init (x, y : Longint); Destructor Done ; Procedure Verschiebe(dx, dy : Longint); Procedure Zeichne; Virtual; Procedure Anzeigen; Procedure Loesche; End; (* GrObjekt *); 33
34 Punkt und Strecke Spezifische Implementierung für Konstruktor, Destruktor, Zeichnen Zusätzliche Methode Skaliere Punkt = CLASS(GrObjekt) Constructor Init (x, y : Longint); Destructor Done ; Procedure Zeichne; Virtual; End; (* Punkt *) Strecke = CLASS(GrObjekt) P1 : Punkt; Constructor Init (xa, ya, xb, yb : Longint); Destructor Done ; Procedure Skaliere (F : Real); Procedure Zeichne; Virtual; End; (* Strecke *) 34
35 Polygon und Dreieck Neue Methode Fläche Const MaxPunkte = 100; Type PktVektor = Array[0..MaxPunkte] Of PunktRec; PolygonS = CLASS(GrObjekt) Constructor Init (PV : PktVektor); Destructor Done ; Procedure Zeichne; Virtual; Procedure Skaliere (F : Real); Function Flaeche : Real; End; (* PolygonS *) Dreieck = CLASS(PolygonS) Constructor Init (xa, ya, xb, yb, xc, yc : Longint); Destructor Done ; Procedure Zeichne; Virtual; Function Flaeche : Real; End; (* Dreieck *) 35
36 Rechteck und Quadrat Neue Eigenschaften: Winkel, Breite, Höhe Rechteck = CLASS(GrObjekt) Winkel : Real; Breite, Hoehe : Real; Constructor Init (xa, ya : Longint; W, B, H : Real); Destructor Done ; Procedure Skaliere (F : Real); Procedure Zeichne; Virtual; Function Flaeche : Real; End; (* Rechteck *) Quadrat = CLASS(Rechteck) Constructor Init (xa, ya : Longint; W, B: Real); Destructor Done ; Procedure Zeichne; Virtual; End; (* Quadrat *) 36
37 Implementierung: Konstruktor Getrennt von Interface-Deklaration: Constructor Punkt.Init (x, y : Longint); Begin Bezugspunkt.x := x; Bezugspunkt.y := y; Sichtbar := true End; (* Punkt.Init *) 37
38 Implementierung: Verschiebe Verwendung von spezifischen Methoden (Zeichne) in einer generischen Methode (Verschiebe) Procedure GrObjekt.Verschiebe (dx, dy: LONGINT); Begin If sichtbar Then Begin Loesche; Bezugspunkt.x := Bezugspunkt.x + dx; Bezugspunkt.y := Bezugspunkt.y + dy; Zeichne End; End; (* Verschiebe *) 38
Syntax der Sprache PASCAL
Syntax der Sprache PASCAL Buchstaben A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z Ziffern 0 1 2 3 4 5 6 7 8 9 Sonderzeichen und Wortsymbole +
Mehr1953/54 (USA) PS FORTRAN (FORmula TRANslating system) 1958/60 (Europa) ALGOL (ALGOrithmic Language)
4. Zur Struktur der PS PASCAL 4.1. Einleitende Bemerkungen 1953/54 (USA) PS FORTRAN (FORmula TRANslating system) 1958/60 (Europa) ALGOL (ALGOrithmic Language) Anfang 60er (USA) COBOL (Commercial Business
MehrDatentypen: integer, char, string, boolean
Agenda für heute, 13. April, 2006 Der Datentyp integer Vergleichsoperatoren, Wahrheitswerte und boolesche Variablen Zusammengesetzte if-then-else-anweisungen Var i: integer; Teilbereich der ganzen Zahlen,
Mehrtdaten=record name : string; alter: integer; groesse:real; end;
tdaten=record - Zugriff auf Felder (name, alter, groesse) über externe Methoden, die für jede Unit und jede Variable dieses Records neu geschrieben werden müssen - Zugriff nicht kontrollierbar (immer Schreib-
MehrUrsprünge. Die Syntax von Java. Das Wichtigste in Kürze. Konsequenzen. Weiteres Vorgehen. Rund um Java
Ursprünge Die Syntax von Java Borland Software Corp 1995 Syntax: Pascal Objektorientierte Prorammierung optional Plattformen: Windows (Linux, Mac OS X) Sun Microsystems 1995 Syntax: C/C++ Objektorientiert
Mehr2.2 Einfache Datenstrukturen
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
Mehr15 Der strukturierte Datentyp»set«(Mengen)
Dr. K. Haller Turbo-Pascal Kap. 15: Mengen (Sets) 15-1 15 Der strukturierte Datentyp»set«(Mengen) Gliederung 15.1 Allgemeines zu Mengen...2 15.2 Mengen-Operatoren, Demo-Programm...3 15.3 Mengen-Prozeduren,
Mehr16 Der strukturierte Datentyp "record"
Dr. K. Haller Turbo-Pascal Kap. 16: Records 16-1 16 Der strukturierte Datentyp "record" Gliederung 16.1 Kurze Wiederholung zu Datentypen... 2 16.2 Allgemeines zum Datentyp record... 2 16.3 Demonstration
MehrDie Syntax von Java. Ursprünge. Konsequenzen. Das Wichtigste in Kürze. Weiteres Vorgehen. Rund um Java. Sun Microsystems. Borland Software Corp
Ursprünge Die Syntax von Java Borland Software Corp 1995 Syntax: Pascal Objektorientierte Prorammierung optional Plattformen: Windows (Linux, Mac OS X) Sun Microsystems 1995 Syntax: C/C++ Objektorientiert
Mehr1. Allgemeine Datei (Binärdatei mit formatierten Inhalt)
Datei ein komplexer Datentyp, der primär zur dauerhaften (persistenten) Speicherung von Daten auf einen externen Datenträger dient die wichtigsten Operationen, die mit Dateien durchgeführt werden, sind
Mehrzu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme
Bisher Datentypen: einfach Zahlen, Wahrheitswerte, Zeichenketten zusammengesetzt Arrays (Felder) zur Verwaltung mehrerer zusammengehörender Daten desselben Datentypes eindimensional, mehrdimensional, Array-Grenzen
MehrTURBO PASCAL VERSION 5.5
Jörg Lange TURBO PASCAL VERSION 5.5 / Hüthig Buch Verlag Heidelberg 7 Inhaltsverzeichnis 1. DasTURBO-Pascal-System 13 1.1 Starten des TURBO-Pascal-Systems 13 1.2 DasTURBO-Pascal-Menue-System 17 1.3 DasF)ILE-Menue
MehrBeispiel: Temperaturumwandlung. Imperative Programmierung. Schwerpunkte. 3. Grundlegende Sprachkonstruktionen imperativer Programme
Schwerpunkte 3. Grundlegende Sprachkonstruktionen imperativer Programme Java-Beispiele: Temperature.java Keyboard.java Imperative Programmierung Beispiel für ein Programm aus drei Komponenten Variable,
MehrKurs 1575, Klausur vom , Musterlösung
Aufgabe 1: Schleife, Fallunterscheidung (CASE) Schreiben Sie ein Programm, das eine positive ganze Zahl (im Gültigkeitsbereich von integer) einliest und ihre Ziffern in umgekehrter Reihenfolge als Text
Mehr10 Wiederholungsanweisungen
Dr. K. Haller Turbo-Pascal Kap. 10: Wiederholungsanweisungen 10.1 10 Wiederholungsanweisungen /until-schleifen while-schleifen for-schleifen Break und Continue Gliederung 10.1 Die /until-schleife...2 10.2
MehrTeil VI: Prozeduren Feld-Parameter & Typen. 1. Offene ARRAY-Parameter 2. Prozedurtypen und -variablen
Teil VI: Prozeduren Feld-Parameter & Typen 1. Offene ARRAY-Parameter 2. Prozedurtypen und -variablen Offene ARRAY-Parameter Motivation Problem : geg.: mehrere deklarierte Felder unterschiedlicher Längen,
Mehr4.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
Mehr(Aufgaben zu Wertzuweisungen siehe Vorlesungsbeilage S. 49)
Anweisungen Eine Anweisung ist eine in einer beliebigen Programmiersprache abgefaßte Arbeitsvorschrift für einen Computer. Jedes Programm besteht aus einer bestimmten Anzahl von Anweisungen. Wir unterscheiden
MehrThomas Binzinger. Jetzt lerne ich. Delphi. Markt+Technik Verlag
Thomas Binzinger Jetzt lerne ich Delphi Markt+Technik Verlag Inhaltsverzeichnis Vorwort 1 1.1 1.2 1.3 1.4 2 2.1 2.2 2.3 3 3.1 3.2 3.3 3.4 3.5 3.6 4 4.1 4.2 4.3 4.4 4.5 4.6 5 5.1 5.2 5.3 Was ist Delphi?
MehrSchwerpunkte. 10. Felder (Arrays) Grundprinzip von Arrays. Klassifikation von Typen in Programmiersprachen
Schwerpunkte 10. Felder (Arrays) Teil 1 Java-Beispiele: Echo.java Primzahlen.java Monate.java Klassifikation von Typen in Programmiersprachen Array: einziger strukturierter Typ in Java Deklaration, Erzeugung
MehrUm mit dem Computer über ein Programm in Kontakt treten zu können braucht man sogenannte Ein- und Ausgabebefehle.
TURBO-PASCAL Programmaufbau Jedes Pascal-Programm hat eine ganz bestimmte Struktur. Außerdem hat jeder Teil des Programms eine ähnliche Struktur. Man teilt ein Pascal-Programm in drei Abschnitte ein: 1.
MehrVerschlüsseln eines Bildes. Visuelle Kryptographie. Verschlüsseln eines Bildes. Verschlüsseln eines Bildes
Verschlüsseln eines Bildes Visuelle Kryptographie Anwendung von Zufallszahlen Wir wollen ein Bild an Alice und Bob schicken, so dass Alice allein keine Information über das Bild bekommt Bob allein keine
MehrGrundlagen wissenschaftlichen Arbeitens (ws /05)
Grundlagen wissenschaftlichen Arbeitens (ws.. 2004/05) Thema: The programming language PASCAL Autor: Ratko Trajanovski 1 kurzfassung Zur Sprache PASCAL Pascal in der Ausbildung Lexikalische Elemente Programmaufbau
MehrEigenschaften strukturierter Datentypen
Strukturierte Datentypen Eigenschaften strukturierter Datentypen Strukturierte Datentypen sind auf anderen, einfacheren Datentypen aufgebaut. ermöglichen Aggregation von Einzelelementen. Beispiele für
MehrÜbung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 2. Teil
MÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++ 2. Teil 18. April 2012 Organisatorisches MÜNSTER Übung zur Vorlesung Wissenschaftliches
MehrAndroid-Apps Gegenüberstellung Delphi java
Android-Apps Gegenüberstellung 2/9 Grundsätzliches etc. Groß-/Kleinschreibung egal sensitiv! Zuweisung := = Kommentare // // { } /* */ Zeichenkettenbegrenzer: 'text' "text" Inkrementieren / Dekrementieren
MehrC.3 Funktionen und Prozeduren
C3 - Funktionen und Prozeduren Funktionsdeklarationen in Pascal auch in Pascal kann man selbstdefinierte Funktionen einführen: Funktionen und Prozeduren THEN sign:= 0 Funktion zur Bestimmung des Vorzeichens
MehrDynamische Datentypen. Destruktor, Copy-Konstruktor, Zuweisungsoperator, Dynamischer Datentyp, Vektoren
Dynamische Datentypen Destruktor, Copy-Konstruktor, Zuweisungsoperator, Dynamischer Datentyp, Vektoren Probleme mit Feldern (variabler Länge) man kann sie nicht direkt kopieren und zuweisen Probleme mit
Mehr3. Grundlegende Sprachkonstruktionen imperativer Programme
3. Grundlegende Sprachkonstruktionen imperativer Programme Java-Beispiele: Temperature.java Keyboard.java K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 Version: 4. Nov. 2015 2 Schwerpunkte
MehrDatentypen. Agenda für heute, 4. März, 2010. Pascal ist eine streng typisierte Programmiersprache
Agenda für heute, 4. März, 2010 Zusammengesetzte if-then-else-anweisungen Datentypen Pascal ist eine streng typisierte Programmiersprache Für jeden Speicherplatz muss ein Datentyp t (Datenformat) t) definiert
MehrBeispiele für Ausdrücke. Der imperative Kern. Der imperative Kern. Imperativer Kern - Kontrollstrukturen. Deklarationen mit Initialisierung
Beispiele für Ausdrücke Der imperative Kern Deklarationen mit Initialisierung Variablendeklarationen int i = 10; int j = 15; Beispiele für Ausdrücke i+j i++ i & j i j [] [static]
MehrKurs 1613 Einführung in die imperative Programmierung
1 Wintersemester 2003/2004 Hinweise zur Bearbeitung der Klausur zum Wir begrüßen Sie zur Klausur "Einführung in die imperative Programmierung". Lesen Sie sich diese Hinweise vollständig und aufmerksam
MehrTheorie zu Übung 8 Implementierung in Java
Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Theorie zu Übung 8 Implementierung in Java Klasse in Java Die Klasse wird durch das class-konzept
MehrDelegates. «Delegierter» Methoden Schablone Funktionszeiger. Dr. Beatrice Amrhein
Delegates «Delegierter» Methoden Schablone Funktionszeiger Dr. Beatrice Amrhein Überblick Definition eines Delegat Einfache Delegate Beispiele von Delegat-Anwendungen 2 Definition 3 Definition Ein Delegat
MehrEINFÜHRUNG IN DIE PROGRAMMIERUNG
EINFÜHRUNG IN DIE PROGRAMMIERUNG GRUNDLAGEN Tobias Witt!! 24.03.2014 ORGANISATORISCHES 09:00-10:30! Täglich Übungen zur Vertiefung! Laptop hier nicht erforderlich! Linux, OS X! Freitag: http://hhu-fscs.de/linux-install-party/
MehrBoolean Wertemenge: Wahrheitswerte {FALSE,TRUE}, auch {0,1} Deklaration:
Boolean Wertemenge: Wahrheitswerte {,}, auch {,} Deklaration: VAR present,billig,laut,gefunden : BOOLEAN; Ein-/Ausgabe: keine! Operatoren: Negation, Verneinung NOT ~ Konjunktion, logisches UND AND & Disjunktion,
MehrKapitel 13. Abstrakte Methoden und Interfaces. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz
Kapitel 13 Abstrakte Methoden und Interfaces 13. Abstrakte Klassen und Interfaces 1. Abstrakte Klassen 2. Interfaces und Mehrfachvererbung Folie 12.2 Abstrakte Methoden und Klassen Manchmal macht es überhaupt
MehrStädtisches Gymnasium Olpe Java Ht Informatik - Q1 Die Klasse List im Abitur Methoden und Beispielcode Hier alle wichtigen Methoden. Ein Beispielcode
Die Klasse List im Abitur Methoden und Beispielcode Hier alle wichtigen Methoden. Ein Beispielcode folgt im Anschluss. Beispielcode Es gibt eine Klasse Benutzerverwaltung, welche eine Liste mit Benutzern
Mehrzu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme
Bisher Datentypen: einfach Zahlen, Wahrheitswerte, Zeichenketten zusammengesetzt Arrays (Felder) zur Verwaltung mehrerer zusammengehörender Daten desselben Datentypes eindimensional, mehrdimensional, Array-Grenzen
MehrJavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.
JavaScript JavaScript wird direkt in HTML-Dokumente eingebunden. Gib folgende Zeilen mit einem Texteditor (Notepad) ein: (Falls der Editor nicht gefunden wird, öffne im Browser eine Datei mit der Endung
MehrJava I Vorlesung Objektorientiertes Programmieren
Java I Vorlesung 3 Objektorientiertes Programmieren 10.5.2004 Die restlichen Kontrollstrukturen Grundlagen des OOP Klassen und Objekte switch Syntax: switch ( expr ) { case const 1 : case const 2 :...
MehrInformatik I Übung, Woche 40
Giuseppe Accaputo 1. Oktober, 2015 Plan für heute 1. Nachbesprechung Übung 2 2. Vorbesprechung Übung 3 3. Zusammenfassung der für Übung 3 wichtigen Vorlesungsslides Informatik 1 (D-BAUG) Giuseppe Accaputo
MehrInformatik 1. Prüfung im Wintersemester 1997/98
Informatik 1 Prüfung im Wintersemester 1997/98 Fachhochschule für Technik und Wirtschaft Reutlingen, Fachbereich Elektronik Prüfungsfach/Studiengang/Semester: Informatik 1 in Elektronik 1 Prüfer: Prof.
MehrProbeklausur Java Einführung in die Informatik. Wintersemester 2016/2017
Fakultät IV NI & CV Java Einführung in die Informatik Wintersemester 2016/2017 Hinweis: Diese ist eine kleine Aufgabensammlung, die etwa dem Schwierigkeitsgrad der schriftlichen Prüfung des Moduls Einführung
MehrGedä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
MehrGrundelemente objektorientierter Sprachen (1)
Grundelemente objektorientierter Sprachen (1) Objekt Repräsentation eines Objektes der realen Welt in der Terminologie objektorientierter Programmiersprachen besitzen Attribute (Eigenschaften), deren Werte
MehrGrundelemente objektorientierter Sprachen (1)
Grundelemente objektorientierter Sprachen (1) Objekt Repräsentation eines Objektes der realen Welt in der Terminologie objektorientierter Programmiersprachen besitzen Attribute (Eigenschaften), deren Werte
Mehr2 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
MehrKurs 1575, Musterlösung der Klausur vom
Vorbemerkung: Gehen Sie bei Ihren Lösungen grundsätzlich davon aus, dass die Eingabedaten in einer Datei zur Verfügung stehen und über input eingelesen werden, und dass die Ausgabe über output in eine
Mehr{$MODE Delphi} // fuer Free Pascal unit UCd;
CD -Name -Identifikationsnummer -Beschaffungsdatum -Status +getname() +setname(in Name) +getid() +setid(in ID) +getbeschaffungsdatum() +setbeschaffungsdatum(in Datum) +getstatus() +setstatus(in Status)
MehrModul 122 VBA Scribt.docx
Modul 122 VBA-Scribt 1/5 1 Entwicklungsumgebung - ALT + F11 VBA-Entwicklungsumgebung öffnen 2 Prozeduren (Sub-Prozeduren) Eine Prozedur besteht aus folgenden Bestandteilen: [Private Public] Sub subname([byval
MehrGrundelemente objektorientierter Sprachen (1)
Grundelemente objektorientierter Sprachen (1) Objekt Repräsentation eines Objektes der realen Welt in der Terminologie objektorientierter Programmiersprachen besitzen Attribute (Eigenschaften), deren Werte
MehrLanguages and Tools for Object-Oriented Development Klausur Wintersemester 2007/2008
Languages and Tools for Object-Oriented Development Klausur Wintersemester 2007/2008 27. Februar 2008 Institut für Softwaresysteme, TUHH Regeln: 1. Zu dieser Klausur sind keinerlei Hilfsmittel zugelassen.
MehrOrganisatorisches. Folien (u.a.) gibt's auf der Lva-Homepage zum Download
Organisatorisches Folien (u.a.) gibt's auf der Lva-Homepage zum Download Diesen Mi erstes Tutorium (15-17) Ab nächster Woche montags 10-12 (jeweils im Computerraum) 17.10.2017 IT I - VO 3 1 Organisatorisches
MehrSeite 1. Gliederung und Einordnung. Wiederholung. Unter- und Oberklassen: Beispiel
Gliederung und Einordnung 1.Objektorientierte Programmierung mit Object Pascal (5. Studienbrief, Kapitel 5) 9.4. + 16.4. 2. Software-Bausteine am Beispiel der Delphi-Komponenten (5. Studienbrief, Kapitel
MehrINHALTSVERZEICHNIS. 1 Strukturierte Datentypen. 1.1 String. 1.2 Array (Feld) 1.3 Record. 1.4 Set. 2. Erweiterungen in Pascal
INHALTSVERZEICHNIS 1 Strukturierte Datentypen 1.1 String 1.2 Array (Feld) 1.3 Record 1.4 Set 2. Erweiterungen in Pascal 2.1 Prozeduren und Funktionen 2.1.1 Prozeduren 2.1.2. Funktionen 2.2. File 2.3. Pointer
MehrInformationsverarbeitung im Bauwesen
12 im Bauwesen Markus Uhlmann 1 Zusammenfassung der 11. Vorlesung Objektorientierte Programmierung (OOP) Wozu eigentlich? Was unterscheidet OOP von traditionellen Techniken? Verwendung von vordefinierten
MehrAufzählungs- und Unterbereichstypen Aufzählungstyp ( enumeration ) (cont d)
Aufzählungs- und Unterbereichstypen Aufzählungstyp ( enumeration ) (cont d) Beispiele: mit Typdefinition Wochentag = (Montag, Dienstag, Mittwoch, Donnerstag, Freitag, Samstag, Sonntag); FarbPalette = (Weiss,
MehrVisuelle Kryptographie. Anwendung von Zufallszahlen
Visuelle Kryptographie Anwendung von Zufallszahlen Verschlüsseln eines Bildes Wir wollen ein Bild an Alice und Bob schicken, so dass Verschlüsseln eines Bildes Wir wollen ein Bild an Alice und Bob schicken,
MehrInstitut für Informatik Christian-Albrechts-Universität zu Kiel. Borland Delphi. Einführung in die Programmiersprache
Institut für Informatik Christian-Albrechts-Universität zu Kiel Borland Delphi Einführung in die Programmiersprache Geschichte Objective Pascal objektorienterte Programmiersprache Rapid Development schweizer
MehrC++ Teil 12. Sven Groß. 18. Jan Sven Groß (IGPM, RWTH Aachen) C++ Teil Jan / 11
C++ Teil 12 Sven Groß 18. Jan 2016 Sven Groß (IGPM, RWTH Aachen) C++ Teil 12 18. Jan 2016 1 / 11 Themen der letzten Vorlesung Wiederholung aller bisherigen Themen: Datentypen und Variablen Operatoren Kontrollstrukturen
MehrKlausur zur Wirtschaftsinformatik II im Grundstudium
Prof. Dr. R. Gabriel Sommersemester 2005 Wirtschaftsinformatik 19. August 2005 Ruhr-Universität Bochum Klausur zur Wirtschaftsinformatik II im Grundstudium - Die Bearbeitungszeit der Klausur beträgt 90
MehrProbeklausur Java Einführung in die Informatik. Wintersemester 2017/2018
Fakultät IV NI & CV Java Einführung in die Informatik Wintersemester 2017/2018 Hinweis: Diese ist eine kleine Aufgabensammlung, die etwa dem Schwierigkeitsgrad der schriftlichen Prüfung des Moduls Einführung
MehrKurs 1613 Einführung in die imperative Programmierung
1 Wintersemester 2002/2003 Hinweise zur Bearbeitung der Klausur zum Kurs 1613 Einführung in die imperative Programmierung Wir begrüßen Sie zur Klausur "Konzepte imperativer Programmierung". Lesen Sie sich
MehrDie Klasse Collection (gb) implementiert eine Hash-Tabelle, deren Elemente aus einem Wert-Schlüssel-Paar
7.5.0 Collection Die Klasse Collection (gb) implementiert eine Hash-Tabelle, deren Elemente aus einem Wert-Schlüssel-Paar bestehen. Die Schlüssel sind generell vom Typ String und die assoziierten Werte
MehrReihungen. Prof. Dr. Christian Böhm. In Zusammenarbeit mit Gefei Zhang. WS 07/08
Reihungen Prof. Dr. Christian Böhm In Zusammenarbeit mit Gefei Zhang http://www.dbs.ifi.lmu.de/lehre/nfinfosw WS 07/08 2 Ziele Die Datenstruktur der Reihungen verstehen: mathematisch und im Speicher Grundlegende
MehrObjektorientierte Programmierung. Agenda für heute, 1. April, Eines der drei wichtigsten Programmierparadigmen
Agenda für heute, 1. April, 2010 Imperatives vs. objektorientiertes Programmieren Lesen Sie den Begleittext Seite 79 85 Eines der drei wichtigsten Programmierparadigmen (Paradigma: Denkmuster) Imperative
MehrProgrammieren in Java -Eingangstest-
Programmieren in Java -Eingangstest- Nummer: 1. Studiengang: Informatik B.Sc. Informatik M.Sc. ESE B.Sc. ESE M.Sc. Sonstiges: Fachsemester: Bitte Fragen, die Sie nicht beantworten können unbedingt mit
MehrKonzepte der Programmiersprachen
Konzepte der Programmiersprachen Sommersemester 2010 4. Übungsblatt Besprechung am 9. Juli 2010 http://www.iste.uni-stuttgart.de/ps/lehre/ss2010/v_konzepte/ Aufgabe 4.1: Klassen in C ++ Das folgende C
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,
MehrJava 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.
MehrObjektorientierte Programmierung mit C++ SS 2007
Objektorientierte Programmierung mit C++ SS 2007 Andreas F. Borchert Universität Ulm 5. Juni 2007 Polymorphismus #include Function.h class Function { public: virtual ~Function() {}; virtual std::string
MehrInhaltsverzeichnis. Grundlagen und Einführung (1. Band) 1
Inhaltsverzeichnis Grundlagen und Einführung (1. Band) 1 1 Einleitung und Vorwort 1 1.1 Vorwort zur 13. Auflage....................... 1 1.2 Vorwort zur 10. Auflage....................... 1 1.3 Voraussetzungen...........................
MehrMartin 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
MehrOrganisatorisches. Folien (u.a.) auf der Lva-Homepage Skriptum über MU Online
Organisatorisches Folien (u.a.) auf der Lva-Homepage Skriptum über MU Online Nächste Woche VO und UE am Dienstag, den 30.10.! UE im CR IL/IT Wissensüberprüfung am Zettel 25.10.2018 IT I - VO 3 1 Organisatorisches
MehrWie schreibe ich ein Programmierstils in Deutschland
1 Wintersemester 2006/2007 Hinweise zur Bearbeitung der Klausur zum Wir begrüßen Sie zur Klausur "Einführung in die imperative Programmierung". Lesen Sie sich diese Hinweise vollständig und aufmerksam
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,
MehrEinfü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
MehrVorkurs 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
MehrReihungen. Martin Wirsing. in Zusammenarbeit mit Michael Barth, Fabian Birzele und Gefei Zhang
Reihungen Martin Wirsing in Zusammenarbeit mit Michael Barth, Fabian Birzele und Gefei Zhang http://www.pst.informatik.uni-muenchen.de/lehre/ws0506/infoeinf/ WS 05/06 2 Ziele Die Datenstruktur der Reihungen
MehrKurs 1613 Einführung in die imperative Programmierung
Aufgabe 1 Gegeben sei die Prozedur BubbleSort: procedure BubbleSort(var iofeld:tfeld); { Programm sortiert das Eingabefeld iofeld aufsteigend var hilf:integer; i:tindex; j:tindex; vertauscht:boolean; i:=1;
MehrVorkurs 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
Mehr\\//_. 18. Mai Goethe-Gymnasium Sebnitz. Datenstrukturen und Datentypen \\//_. Datentypen und. Datenstrukturen. einfache Datentypen
und und und Goethe-Gymnasium Sebnitz 18. Mai 2014 Gliederung und und 1 und 2 3 Sinn und Zweck und und Für das Programmieren und auch das Benutzen von Anwendungsprogrammen ist es von Bedeutung, welcher
MehrProgrammieren mit PASCAL
Programmieren mit PASCAL Eine Kurzanleitung Informatik Sekundarstufe II Städtische Gesamtschule Duisburg-Hamborn/Neumühl August 2000 1 EINLEITUNG...3 2 GRUNDLAGEN...3 2.1 AUFBAU EINES EINFACHEN PASCAL-PROGRAMMS...3
MehrRepetitorium Informatik (Java)
Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen
MehrEinführung Datentypen Verzweigung Schleifen. Java Crashkurs. Kim-Manuel Klein May 4, 2015
Java Crashkurs Kim-Manuel Klein (kmk@informatik.uni-kiel.de) May 4, 2015 Quellen und Editoren Internet Tutorial: z.b. http://www.java-tutorial.org Editoren Normaler Texteditor (Gedit, Scite oder ähnliche)
MehrII. Grundlagen der Programmierung. Beispiel: Merge Sort. Beispiel: Merge Sort (Forts. ) Beispiel: Merge Sort (Forts. )
Technische Informatik für Ingenieure (TIfI) WS 2006/2007, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Rekursion Datenstrukturen Merge S ( split, s, merge ) Beispiel:
Mehr1 Klassen anlegen und Objekte erzeugen
Werkzeugkiste Java 1 1 Klassen anlegen und Objekte erzeugen Klassengrundgerüst 1 /** 2 * Write a description of class Testklasse here. 3 * 4 * @author ( your name ) 5 * @version (a version number or a
MehrAngewandte Mathematik und Programmierung
Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu mathematischen Rechnens WS 2013/14 Operatoren Operatoren führen Aktionen mit Operanden aus. Der
MehrRelationen-Algebra und Persistenz Teil I
Implementierungskonzepte für und Anforderungen an Attributdatentypen in SECONDO Lehrgebiet Datenbanksysteme für Neue Anwendungen Fakultät für Mathematik und Informatik FernUniversität in Hagen 10. Oktober
MehrKurs 1613 Einführung in die imperative Programmierung
Kurs 1613 Einführung in die imperative Programmierung 1 Wintersemester 2009/2010 Hinweise zur Bearbeitung der Klausur zum Kurs 1613 Einführung in die imperative Programmierung Wir begrüßen Sie zur Klausur
MehrVordiplom für Wirtschaftswissenschaften Allgemeine Informatik II SS Juli 2002 Bearbeitungszeit: 120 Minuten BEISPIELLÖSUNG
Vordiplom für Wirtschaftswissenschaften Allgemeine Informatik II SS 00 30. Juli 00 Bearbeitungszeit: 10 Minuten BEISPIELLÖSUNG Name: Vorname: Matrikelnummer: Aufgabe Punkte Bewertung 1 8 a) b) 6 8 3 8
MehrKurs 1613 Einführung in die imperative Programmierung Lösungen der Aufgaben zum Studientag
Aufgabe 1 Gegeben sei die Prozedur BubbleSort: procedure BubbleSort(var iofeld:tfeld); { Programm sortiert das Eingabefeld iofeld aufsteigend var hilf:integer; i:tindex; j:tindex; vertauscht:boolean; i:=1;
MehrSchwerpunkte. 5. Auswahl: Bedingte Anweisungen. Syntax. If-Anweisung: Auswahl aus zwei Alternativen. If-Anweisung: Auswahl aus 2 Alternativen
Schwerpunkte 5. Auswahl: Bedingte Anweisungen If-Anweisung: Auswahl aus 2 Alternativen Kurzform von if: Spezialfall der Langform Fehlerquellen Hängendes switch: Spezialfall von if K. Bothe, Institut für
MehrPROCESSING 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
Mehr