Erste Programme mit Lazarus

Größe: px
Ab Seite anzeigen:

Download "Erste Programme mit Lazarus"

Transkript

1 Erste Programme mit Lazarus Einführung in die Entwicklungsumgebung (IDE) Grundelemente der Programmiersprache Objekt-Pascal Übungen Helmut Paulus Speyer,

2 Teil 1 Einführung in die Lazarus-Entwicklungsumgebung Grundelemente der Programmiersprache Objekt-Pascal

3 3 Was ist Lazarus Lazarus ist eine plattformunabhängige freie, Delphi-ähnliche Entwicklungsumgebung für die Programmiersprache Objekt Pascal - eine Bezeichnung für mehrere Programmiersprachen- Varianten, die Pascal um Objektorientierte Programmierung erweitern, am bekanntesten davon ist die Programmiersprache der Entwicklungsumgebung Embarcadero Delphi, die Delphi genannt wurde. baut auf dem Free Pascal Compiler (FPC) auf, seine Komponentenbibliothek (LCL) ist sehr ähnlich zu der von Delphi (VCL), ist daher höchst kompatibel zu Delphi. Lazarus-Projekt: Beschreibungen bei Wikipedia: Lazarus: Objekt Pascal:

4 4 Entwicklungsumgebung (IDE) Komponenten-Palette Formular (GUI) Objektinspektor Quelltextfenster

5 5 Lazarus-Projekt Lazarus erzeugt eine ganze Reihe von Dateien zur Verwaltung eines Programmierprojektes. Diese Dateien sollte man immer in einem eigenen Ordner speichern. (Quellcodedateien werden als Units bezeichnet.) Vorbereitende Schritte: 1. Ordner für das neue Projekt anlegen 2. Neues Projekt anlegen: Datei->Neu->Anwendung 3. Projektdateien sofort speichern: (1) Datei - Alles speichern (2) die vom System vorgeschlagen Namen unit1.pas und project1.lpr umbenennen (z. B.: ugui.pas und Rechner.lpr) u für Unit (Quelltextdatei) Neben den oben genannten beiden Dateien werden automatisch im Projektordner viele weitere Dateien angelegt und laufend von Lazarus verwaltet und aktualisiert. Beim Kompilieren wird aus den Projektdateien ein lauffähiges Programm Rechner.exe erzeugt, das anschließend ausgeführt werden kann.

6 6 Projektaufbau Ein Projekt besteht einzelnen Units, die einer Projektdatei verwaltet werden.

7 7 Projekt Rechner Speichern Sie den Ordner Rechner in ein eigenes Verzeichnis. Laden und starten Sie dann das Projekt in Lazarus und testen Sie seine Funktionalität. Analysieren Sie den Quelltext. Führen Sie auf dem Formular einen Doppelklick auf ein Button-Objekt aus. Was passiert? Fügen Sie einen weiteren Button hinzu. Lassen Sie sich über Projekt und.lpr Datei anzeigen den Quelltext der Projektdatei anzeigen. Was geschieht dort? Klicken Sie mit rechten Maustaste ins Formular und öffnen Sie mit Quelltext (.lfm) anzeigen die Formulardatei. Analysieren Sie den Inhalt.

8 8 Entwicklung der GUI Formular im Entwurfsmodus PAnzeige : TPanel Label1 : TLabel EErgebnis: TEdit form1 : TForm1 (Formular) Bplus : TButton GUI-Objekte (Komponenten der Komponentenpalette) werden auf dem Formular platziert und mit Hilfe des Objektinspektors (Register Eigenschaften) editiert. GUI-Objekte haben einen Namen und gehören ein Klasse an.

9 9 Komponenten Das Formular enthält Komponenten (GUI-Objekte) vom Typ: TForm, TEdit, TButton, TLabel, TPanel Sinnvolle Namenskonvention Der Editor gibt den GUI-Objekten automatisch Namen, z. B. TForm1, Label1, Button1, Button2 Die Objekte sollten im Objektinspektor mit sinnvollen Namen (nach Konventionen) belegt werden; z. B.: je nach Typ des Objekts einen Präfix: Name Funktionalität Bplus B für Button Schaltfläche EZahl1 E für Edit Text-Eingabefeld einzeilig PHinweis P für Panel Container für Komponenten Lergebnis L für Label Beschriftungsfeld Standardattribute (Eigenschaften) der GUI-Objekte: Caption Beschriftung einer Komponente (Aufschrift eines Buttons, Labels, Panels, ) Text Inhalt eines Textfeldes (Edit) Name Name, mit dem das Objekt im Programm angesprochen wird

10 10 Objekthierarchie Das Formularobjekt Form1 verwaltet alle anderen Objekte als Unterobjekte. Die zur Entwurfszeit definierten Attributwerte werden in der so genannten Formulardatei ugui.lfm gespeichert. Die Formulardatei wird automatisch erzeugt und gepflegt und hat immer den gleichen Namen wie die Quelltextdatei ugui.pas. object Form1: TForm1 Left = 354 Height = 176 Top = 248 Width = 229 Caption = 'Rechner' ClientHeight = 176 ClientWidth = 229 LCLVersion = ' object EZahl1: TEdit Left = 8 Height = 23 Top = 64 Width = 90 TabOrder = 0 end object Bplus: TButton Left = 32 Height = 25 Top = 136 Width = 25 Caption = '+' OnClick = BplusClick TabOrder = 2 end end

11 11 Quelltext-Interface unit ugui; {$mode objfpc}{$h+} interface uses Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls, ExtCtrls; type { TForm1 } TForm1 = class(tform) Bplus: TButton; EZahl1: TEdit; EErgebnis: TEdit; Label2: TLabel; Label4: TLabel; Panel1: TPanel; procedure BplusClick(Sender: TObject); private { private declarations } public { public declarations } var Form1: TForm1;... end. Unit-Name - beim Speichern vom System geschrieben Einbinden von Systemunits (automatisch) Formularklasse TForm1 Basisklasse: Tform (automatisch) Attribute Ereignismethoden Variablendeklaration (Formularobjekt)

12 12 Quelltext-Implementation unit ugui;... var Form1: TForm1; implementation {$R *.lfm} { TForm1 } procedure TForm1.BplusClick(Sender: TObject); var z1: Extended; z2: Extended; sum: Extended; begin end. // Eingabe der Daten aus GUI-Objekten z1 := StrToFloat(EZahl1.Text); z2 := StrToFloat(EZahl2.Text); //Verarbeitung sum := z1 + z2; //Ausgabe EErgebnis.Text := FloatToStr(sum); *.lfm Formulardatei einbinden (automatisch) Ereignisbearbeitung Zugriff auf Attribute der GUI-Objekte

13 13 Projektverwaltung Ein Lazarus-Projekt besteht im aus mehreren Dateien, die im einfachsten Fall alle im gleichen "Projekt-Ordner" liegen. Die Verbindung wird durch die Projekt-Datei *.lpr hergestellt. program Rechner; {$mode objfpc}{$h+} uses {$IFDEF UNIX}{$IFDEF UseCThreads} cthreads, {$ENDIF}{$ENDIF} Interfaces, // this includes the LCL widgetset Forms, ugui { you can add units after this }; {$R *.res} begin RequireDerivedFormResource := True; Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run; end. Hier findet sich u. a. die Einbindung von Units und Ressourcen die Erzeugung des Fensterobjektes den Start des Programms (Hauptprogramm) Diese Datei wird automatisch vom System gepflegt!

14 14 Überblick: Dateien des Projekts Dateien des Projektordners (zum Teil automatisch angelegt) Bedeutung: Datei *.pas *.lfm *.lpr *.exe *.lpi *.lrs *.ppu Inhalt Pascal-Quellcode Datei (Unit) Lazarus Formulardatei wird zu jeder Unit, in der ein Formularobjekt definiert ist, automatisch angelegt, enthält die Formulareinstellungen einschließlich aller Komponenten (Lazarus Projektdatei) - das Hauptmodul (Verwaltung) des Projektes Das lauffähige Programm, zur Benutzung ist nur diese EXE-Datei erforderlich Lazarus Project Information - alle wichtigen Informationen des Lazarus-Projektes im XML-Format Resourcendatei des Lazarus-Projektes Compilierter Code der einer Unit, wird mit der Uses-Anweisung im Quellprogramm eingebunden

15 15 Ereignisverarbeitung Ereignisse werden in Object Pascal mit Hilfe von Methodenzeigern realisiert, das sind Attribute, die Referenzen auf Methoden anderer Objekte enthalten (Callback). Durch Doppelklick auf den Button Bplus wird eine Ereignismethode erzeugt und dem Methodenzeiger OnClick des Buttonobjekts zugewiesen. Sie ist eine Methode des Formularobjekts und wird vom Buttonobjekt durch Click ausgelöst. Ereignismethode des OnClick - Ereignisses procedure TForm1.BplusClick(Sender: TObject); begin... Der vom System gebildete Name enthält die Namen der auslösenden Komponente und des Methodenzeigers als Bestandteile. Der vorangestellte Klassenname TForm1 bindet die Prozedur an das Formularobjekt. Die Ereignisse des Button-Objekts sind Methodenzeiger, die mit Ereignismethoden verknüpft werden können.

16 16 Ereignisverarbeitung Implementierung procedure TForm1.BplusClick(Sender: TObject); Var z1, z2, z3, sum: double; begin // Einlesen der Daten aus GUI-Objekten z1:= StrToFloat(EZahl1.Text); z2:= StrToFloat(EZahl2.Text); //Verarbeitung sum := z1 + z2; //Ausgabe EErgebnis.Text := FloatToStr(sum); Deklaration der lokalen Variablen Ein-/ Ausgabesystem mit lokalen Variablen als temporären Zwischenspeichern!

17 17 Hilfesystem Kontextsensitive Hilfe mit F1 LCL - Lazarus Component Library FCL - Free Component Library RTL - Runtime Library Laufzeit Debugger Haltepunkte im Quelltext setzen, an Stellen, wo das Programm halten soll, in den Rahmen neben der Quelltextzeile klicken ab dieser Stelle können die Anweisungen schrittweise ausgeführt und mit Hilfe der Maus der Wert der Variablen angezeigt werden Einzelschritt

18 18 Standardkomponenten Klasse Beschreibung Wichtige Eigenschaften/ Methoden TButton Schaltfläche Caption, Color, Font, Enabled FLabel Anzeige von Text Caption, Color, Font Edit Einzeiliges Eingabefeld Text, Color, Font, MaxLength, Clear TMemo Mehrzeiliges Eingabefeld Text, Lines, Append, Clear TListBox Auswahlliste mit mehreren Textzeilen ein Items, Append, Clear TGroupBox Rahmen zur Anordnung von Objekten mit Gruppenbezeichnung. Caption, Color, Font TPanel Rahmen zur Anordnung von Objekten Caption, Color, Font TImage Anzeige von Grafiken Picture, Canvas, loadfromfile TShape Grafische Form Brush, Pen, Shape

19 19 Teil 2 Grundelemente Objekt-Pascal

20 20 Einstieg Variablendeklaration Bezeichner Wertzuweisung Kommentar procedure TForm1.BplusClick(Sender: TObject); var z1,z2, z3, sum : double; Datentyp begin // Einlesen der Daten aus GUI-Objekten z1 := StrToFloat(EZahl1.Text); z2 := StrToFloat(EZahl2.Text); //Verarbeitung sum := z1 / z2; //Ausgabe EErgebnis.Text:=FloatToStrF(sum,ffFixed,0,2); Trennzeichen Anweisungen string Typumwandlung double Variablendeklaration var Bezeichner : Datentyp; Wertzuweisung a := b ; Die Variablen müssen zuweisungskompatibel sein!

21 21 Grundelemente Konventionen für Bezeichner Es dürfen nur folgende Zeichen verwendet werden Buchstaben (aber keine Umlaute) Zahlen, diese aber erst nach mindestens einem Buchstaben Unterstrich (auch am Anfang) ansonsten keine Sonderzeichen wie,, ; Objekt-Pascal ist nicht kontextsensitiv! Gleichheitszeichen Wertzuweisungen := Beispiel: x := x + 1; Vergleich: = Blöcke und Kommentare Anweisungsblöcke begin Kommentare //. Bis Zeilenende { } mehrzeilig

22 22 Variablen und Konstanten Delphi-Variablen sind Platzhalter (Container) für Daten. Diese werden im Computer durch einen Speicherbereich repräsentiert und mit Hilfe eines Namens angesprochen. Variablen haben einen Namen, einen Datentyp, einen Gültigkeitsbereich und eine Lebensdauer. Bevor eine Variable benutzt werden kann, muss sie deklariert werden. Dabei werden der Name und der Datentyp festgelegt. Gleichzeitig wird ein Speicherbereich für den speziellen Datentyp reserviert. Bei Wertzuweisungen muss die Zuweisungs-Kompatibiliät gewährleistet sein. Variablendeklaration Programmabschnitt: var Syntax: var Bezeichner : Datentyp; Beispiel: var anzahl : integer; z1, z1 : double; Konstanten Syntax: const Bezeichner= wert; Beispiel: const pi = 3.14; Konstanten haben einen unveränderlichen Wert.

23 23 Elementare Datentypen Einfache Datentypen integer : Ganze Zahlen {17, -12} double : Fließkommazahlen { e-10} boolean : Wahrheitswerte {true, false} string : Zeichenkette { Hallo } Char : ASCII-Zeichen { A, #65, chr(65)} Aufzählungstypen (ordinale Typen) Statt Zahlen konstante Bezeichner verwenden: var farben : (blau, gelb, gruen, rot); Die Typen Integer und Char gehören ebenfalls zu den ordinalen Typen. Arrays / Reihungen (statisch) var Bezeichner : array[startind..endind] of Datentyp; So definierte Array ist statisch, die Anzahl der Elemente kann nicht mehr verändert werden. Start- und Endindex vom Typ Integer oder Aufzählungstyp Datentyp muss ein einfacher Typ sein!

24 24 Typumwandlungen Bei der Ein- und Ausgabe von Daten mit Hilfe von GUI-Objekten müssen häufig Datentypen konvertiert werden. Objekt-Pascal Funktionen: Funktion : Ergebnistyp StrToInt(Para) : integer IntToStr(Para) : string Beispiel groesse := StrToInt(EGroesse.Text); PAusgabe.Caption := FloatToStr(BMI); StrToFloat(Para) : real FloatToStr(Para) : string Formatierte Ausgabe: FloatToStrF() : string Char ASCII-Zeichen Chr(0..255) : Char Ord(ch) : integer Siehe Kontexthilfe PAusgabe.Caption := FloatToStrF(BMI, ffnumber, 8, 2); Ch := Chr(65); code := Ord( A );

25 25 Operatoren Arbeiten mit Zeichenketten Zeichenkettentexte werden in einfachen Anführungszeichen geschrieben. Beispiel: var Ausgabe : string; Ausgabe := Du hast ; Zeichenketten kann man mit + aneinander hängen. Ausgabe := Ausgabe + leider verloren ; Die Länge einer Zeichenkette bestimmt man mit der System-Funktion length(). Zugriff auf die einzelnen Zeichen einer Zeichenkette über den Index Ausgabe[2] u Arithmetische Operatoren integer / real +, -, *, / Division ( liefert einen Realtyp bei Anwendung auf Integer z. B. 12/4) integer div Ganzzahldivision Beispiel: 7 div 5 1 mod Modulo Beispiel: 4 mod 3 1

26 26 Operatoren Logische Operatoren AND true : wenn beide Operanden wahr OR true : wenn einer oder beide Operanden wahr NOT Negation des Operanden ( NOT a) Beispiel: var x : integer; teilbar : boolean; Vergleichsoperatoren = gleich <> ungleich < Kleiner <= kleiner gleich > Größer >= größer gleich teilbar := (x mod 3 = 0) AND (x mod 5 = 0); Funktionen zum Arbeiten mit Aufzählungstypen Ord() Pred() Succ() Low() High() gibt die Position des Bezeichners zurück gibt den Vorgänger zurück gibt den Nachfolger zurück gibt den niedrigsten Wert zurück gibt den höchsten Wert zurück

27 27 Laufzeitfehler Laufzeitfehler abfangen mit einem try-except Block Syntax try Anweisungen Except Fehlerbehandlung Beispiel: try z := StrToInt(Ezahl.Text); Except ShowMessage( Falsche Eingabe! ); Im except - Abschnitt kann die Art des Fehlers (der Exception) geprüft und individuell bearbeitet werden. except on EZeroDivide do...; on EMathError do...; on EConvertError do...; else...;

28 28 Fallunterscheidungen If then else Einseitig If Ausdruck then begin Anweisung; zweiseitig If Bedingung then begin Anweisung; end else begin Anweisung; Case of Mehrfachverzweigung case OrdWert of 1 :... ; 2 :... ; 3 :... ; else... ; kein Semikolon vor else

29 29 Schleifen Anfangsbedingung while Schleife while Bedingung do begin Anweisung; Zählschleife For Schleife for i := 1 to n do begin Anweisung; Endbedingung Repeat Schleife repeat Anweisung; until Bedingung; Schleifen über Arrays: var augen : array[1..6] of integer; for i := 1 to 6 do augen[i] := i;

30 30 Prozeduren und Funktionen Prozeduren procedure Bezeichner(Parameter); var lokale Variablen; begin Anweisungen; Deklarationsteil Anweisungsteil Die Parameterliste kann auch fehlen Funktionen Das Ergebnis muss einen einfachen Datentyp besitzen. function Bezeichner(Parameter): Datentyp; var lokale Variablen; begin Anweisung; result := Ergebnis; Rückgabentyp Rückgabewert Das Funktionsergebnis wird der Funkionsvariablen result zugewiesen.

31 31 Methoden Prozeduren und Funktionen als Methoden Bei Methoden steht vor dem Methodennamen der Name der Bezugsklasse setzt. Beispiel: Die Funktion Max als Funktion des Formular-Objekts vom Typ TForm1 TForm1 = class(tform) private { Private-Deklarationen} function Max(z1, z2 : integer): integer; public { Public-Deklarationen} Deklaration der Funktion als private Methode von TForm1 function TForm1.Max(z1,z2: integer): integer; begin if (z1 < z2) then result := z2 else result := z1; Implementierung der Funktion Als Methode von TForm1

32 32 Struktur einer Unit unit name; {$mode objfpc}{$h+} interface uses... Type... var... implementation uses... type... var... procedure end. Kopf Schlüsselwort unit Das System schriebt den Namen beim Speichern! Interface (Schnittstelle) Auf Alles, was hier deklariert ist, kann von außen (anderen Units) zugriffen werden. Typ Vereinbarungen gobale Variablen und Konstanten Implementation Lokale Deklarationen (nur innerhalb der Unit) Implementierung von Prozeduren, Funktionen (Methoden)

33 33 Projekt BMI Mit einem Programm soll der BodyMass-Index BMI berechnet werden. Eingaben: Ausgabe: Ablauf: Gewicht in Kg, Körpergröße in m BMI-Index Ereignisgesteuert Schreiben Sie ein Programm, das den Body-Mass-Index einer Person ausgibt.

34 34 Projekt BMI Ergänzen Sie das Programm mit einer Bewertung des BMI nach Alter. Benutzen Sie dazu die folgenden Grundlagen und die Kontexthilfe. Die Tabelle zeigt die wünschenswerte BMI-Werte für verschiedene Altersgruppen: Alter BMI Jahre Jahre Jahre Jahre Jahre >64 Jahre Weitere Informationen unter:

35 35 Lösung procedure TGUI.BtberechnenClick(Sender: TObject); var gewicht, groesse, BMI : real; begin //Eingabe gewicht := StrToFloat(EdGewicht.Text); groesse := StrToFloat(EdGroesse.Text); //Verarbeitung BMI := gewicht/groesse/groesse; //Ausgabe PAusgabe.Caption := FloatToStr(BMI);

36 36 Projekt Zahlenraten Aufgabe: Es ist ein Programm zu entwickeln, das ein Zahlenratespiel simuliert. Anforderungen: 1. Der Computer bestimmt eine Zufallszahl (1..100), die der Spieler zu erraten hat. 2. Der Spieler hat er beliebig viele Versuche. 3. Nach jeder Zahleneingabe wird angegeben, ob die Zahl zu groß oder zu klein ist. 4. Hat der Spieler die Zahl erraten, so wird die Anzahl der Versuche und eine Bewertung ausgegeben. 5. Alle Ausgaben werden gelöscht, wenn ein neues Spiel begonnen wird. 6. Sicherheitsprüfung bei der Eingabe der Ratezahll. 7. Feldgröße über ein Edit-Feld eingelesen Datenmodell Anzahl der Versuche: Versuche : integer Zu erratende Zahl: Ratezahl : integer Zufallszahlen Funktion: random z := random(n); ganzzahlige Zufallszahl z mit 0 z < N r := random; Gleitkommazahl 0 r < 1

37 37 GUI und Datenmodell Problem Speicherung der Daten in den GUI-Objekten ist ineffektiv!!! Besser ist eine Trennung von GUI und Datenmodell Lösung (vorläufig) Realisierung eines "internen Datenmodell mit globalen Variablen als private Atribute des Formulars. Diese Variablen sind innerhalb des Formularobjekts global. Internes Datenmodell TGUI = class(tform) {Steuerelemente} procedure FormCreate(Sender: TObject); procedure BtEingabeClick(...); private { Private-Deklarationen} RateZahl : integer; Versuche : integer; public { Public-Deklarationen} Spieldaten als private Attribute des Formulars Lokale Variablen (temporäre Daten) procedure TGUI.BpruefenClick(...); var Zahl : integer; kommentar : string; begin //Eingabe Zahl := StrToInt(ETippZahl.text); // Verarbeitung Versuche := Versuche + 1; if Zahl = Ratezahl then...

38 38 Initialisierung bei Programmstart Ereignis OnCreate des Formulars Die zugehörige Ereignisprozedur FormCreate wird automatisch beim Start des Programms aufgerufen. Anwendungsbeispiel: Initialisierung des Zufallszahlengenerators des Systems durch randomize. Dadurch wird bei jedem Programmstart eine andere Zufallszahlenfolge erzeugt. procedure TGUI.FormCreate(Sender: TObject); begin randomize;

39 Teil 3 Übungen Helmut Paulus Speyer,

40 40 Aufgabe 1 Das Schaltjahr-Problem Die Schaltjahresregelung unseres Kalenders (Gregorianischer Kalender) lautet: Ein Schaltjahr ist ein Jahr, dessen Jahreszahl durch 4 ohne Rest teilbar ist. Ausgenommen davon sind die Jahrhundertwechsel, es sei denn, deren Jahreszahl ist durch 400 ohne Rest teilbar. Es kommt also alle 400 Jahre vor, dass ein Jahrhundertwechsel ein Schaltjahr erzeugt. Das Jahr 2000 ist ein solches Jahr. Zu entwickeln ist ein Programm, das nach Eingabe einer gültigen Jahreszahl prüft, ob dieses Jahr ein Schaltjahr ist.

41 41 Aufgabe 2 Die Entwicklung der Weltbevölkerung schreitet rasch voran: Im Jahr 2012 wurde die 7 Milliardengrenze überschritten. Zur Zeit wächst die Weltbevölkerung jährlich um ca. 1,2 %. Mit Hilfe eines kleinen Programms soll die jährliche Entwicklung verfolgt werden. Datenmodell: Jahr : integer; Population : double; WFaktor : double; Prototyp: Interaktionen: Aktuelle Werte eingeben und die Population des nächsten Jahres berechnen und anzeigen Aktuelle Werte eingeben und die Population des vorherigen Jahres berechnen und angezeigen Population in 10-Jahresschritten voraus- oder zurückberechnen

42 42 Aufgabe 3 Projekt 17 und 4: Es ist ein Programm zu entwickeln, das das bekannte Kartenspiel simuliert. Anforderungen 1. Spielkarten werden durch einen Würfel ersetzt (Wertbereich [1;...;6]). 2. Es werden Zahlen gewürfelt und aufsummiert. Der Spieler kann nach jedem Spielzug entscheiden, ob er aufhört oder weiter spielen will. 3. Ist die Summe größer als 21, so hat der Spieler verloren. Hört der Spieler bei einer Summe kleiner oder gleich 21 auf, wird noch eine Zahl gewürfelt. Ist die neue Summe immer noch kleiner oder gleich 21, so hat der Spieler verloren, andernfalls gewonnen. 4. Alle Ausgaben werden gelöscht, wenn ein neues Spiel begonnen wird.

43 Teil 4 Objektorientierte Programmierung mit Objekt-Pascal Übungen

44 44 Projekt Farbenmischer RGB-Farben bestehen aus einer Mischung von jeweils 3 Farben (rot - grün - blau). Jeder Farbkanal hat 256 Abstufungen: Ziel: Zu entwickeln ist ein Programm, das beliebige RGB-Farben, sowie deren Komplementärfarbe nebeneinander angezeigt. Beispiele:

45 45 Modellklasse TFarbe Farbmodell TFarbe - rot : integer - gruen :integer - blau : integer; + constructor create + getfarbe : integer; + setfarbe(r, g, b : integer) + getrot : integer + getgruen: integer + getblau : integer private Attribute Konstruktor create öffentliche Methoden Festlegung von: Zugriffsrechten (- private; + public) Datentypen Signaturen (Parameter der Methoden) Konvention - vorangestelltes T bei Datentypen Konstruktoren - constructor (Schlüsselwort) Objekte werden mit Hilfe von Konstruktoren erzeugt. Dabei wird der Speicherbereich eines Objekts anlegt, werden die Attribute mit Standardwerten belegt, wird eine Referenz auf das Objekt zurückgeben.

46 46 Implementierung Eigene Unit für die Modellklasse: ufarbe.pas 1. Deklaration der Klasse im Interface unit ufarbe; Interface uses... type TFarbe = Class private rot, blau, gruen : integer; public constructor create; procedure setfarbe(r,g,b : integer); function getfarbe : integer; function getrot : integer; function getgruen: integer; function getblau : integer; TFarbe - Frot : integer - Fgruen :integer - Fblau : integer; + constructor create + getfarbe : integer; + setfarbe(r, g, b : integer) + getrot : integer + getgruen: integer + getblau : integer Implementation...

47 47 Implementierung 2. Implementierung der Methoden im Implementation - Bereich der Unit... implementation constructor TFarbe.create; begin rot := 255; gruen := 255; blau := 255; function TFarbe.getFarbe : Integer; begin result := blau*256*256+gruen*256+rot; procedure TFarbe.setFarbe(r,g,b : integer); begin rot := r mod 256; gruen := g mod 256; blau := b mod 256;...

48 48 GUI Formular-Unit: GUI-Objekte: TLabel TEdit TButton TShape TButton

49 49 Modellobjekt verwalten Das Formular verwaltet die GUI-Objekte und das Modellobjekt. uses Windows, Messages, SysUtils, Classes, ufarbe; Unit einbinden type Tgui = class(tform) Farbmischer: TGroupBox; Label1: TLabel;... private { Private-Deklarationen } Farbe : TFarbe; procedure aktualisiere; //Anzeigen public { Public-Deklarationen }... Referenzvariable für das Farbobjekt deklarieren (Hat- Beziehung)

50 50 Objekte erzeugen und freigeben Die GUI-Objekte, die zur Entwurfszeit ins Formular eingefügt wurden, werden automatisch erzeugt und zerstört. Das Farbobjekt wird zur Laufzeit erzeugt und zerstört werden. Z. B.: Erzeugung mit dem OnCreate-Ereignis procedure TGUI.FormCreate(...); begin Farbe := TFarbe.create;... Schema: obj := Klasse.create; Zeiger auf ein Farbobjekt hat-beziehung Zerstörung mit dem OnDestroy-Ereignis Procedure TGUI.FormDestroy(...); begin Farbe.Free; Speicherbereich freigeben geerbter Destruktor

51 51 Aktualisierung von Model und View Ereignismethode //Datenfluss: Controller Modell procedure TGUI.okBtnClick(Sender: TObject); //Modelldaten schreiben var r, g, b : integer; begin r := StrToInt(Erot.text); g := strtoint(egruen.text); b := strtoint(eblau.text); Farbe.setFarbe(r,g,b); //Werte im Modellobjekt speichern aktualisiere; //Aktualisierung der Anzeige durch Abfragen //Datenfluss: Modell View procedure TGUI.aktualisiere; //Modelldaten abfragen begin FarbBox.brush.color := Farbe.getFarbe; KFarbBox.brush.color := clwhite - Farbe.getFarbe;

52 52 MVC-Muster Ziel: Trennung von Datenhaltung und -verarbeitung, Darstellung und Steuerung. Modell Interne Repräsentation der Daten mit Methoden zum Ändern und Abfragen View Controller Ansicht, Darstellung: Ein Modell kann durch mehrere Views angezeigt werden, welche unterschiedliche Sichtweisen des Models darstellen. Steuerung: Verarbeitung der Benutzereingaben View und Controller bilden zusammen die Benutzeroberfläche (GUI). Controller Steuerung View Ansicht GUI schreibt liest informiert Model Fachkonzept

53 53 Aufgabe 1 1. Testen Sie das Programm Farben0 und verfolgen Sie den Ablauf mit Hilfe des Einzelschritt- Modus. 2. Erweitern Sie das Farbemodell um folgende Methoden a) TFarbe.getKomplement (Komplementärfarbe) b) TFarbe.toHTML (HTML- Code) Bsp.: #AFB055, verwenden Sie die Funktion InttoHex() c) Binden Sie beide Methoden in die Anwendung ein. 3. Entwickeln Sie eine zweite Benutzungsoberfläche, die die RGB-Farben einzeln anzeigt. (z. B.: in drei Shape-Komponenten) Binden Sie das Farbmodell an die entwickelte Benutzeroberfläche an.

54 54 Links Lazarus Tools, Tutorials Grundlagen ObjektPascal Unterrichtsmaterialien Bildungsserver Informatik RP K. Merkert: Siegfried Spolwig / Johann Penon Martin Jakobs Joachim Mohr UML-Werkzeug: UML-Editor : UMLed.exe

Delphi eine Einführung

Delphi eine Einführung Delphi eine Einführung 1. Die Entwicklungsumgebung Delphi ist ein sogenanntes RAD Werkzeug. RAD = Rapid Application Development = schnelle Anwendungsentwicklung Merkmale: - es gibt vorgefertigte Komponenten

Mehr

Delphi Grundkurs Seite 31

Delphi Grundkurs Seite 31 Delphi Grundkurs Seite 31 Beispiel 9 Notenanalyse Problem: Programm P09 Schulnoten in Editfeld eingeben: bei wird Text in Zahl x umgewandelt; Bei Eingabefehler (x < 1 oder x > 5 oder x nicht numerisch)

Mehr

Programmierung mit Delphi

Programmierung mit Delphi Programmierung mit Delphi Programmierung Kommunikation Mensch Maschine Komponente Attribute Formular Größe, Farbe, Schaltflächen,... Label Beschriftung (Caption),... Edit... Button... Quellcode Anweisungen

Mehr

Informatik Kurs 12 André Hoffmann. Delphi. Einführung in die Windows- Programmierung

Informatik Kurs 12 André Hoffmann. Delphi. Einführung in die Windows- Programmierung Informatik Kurs 12 André Hoffmann Delphi Einführung in die Windows- Programmierung Grundlagen Entwicklung von Windows-Programmen Relativ unkompliziert durch typische, vorgefertigte Elemente Programmiertechnische

Mehr

Programmierparadigmen. Programmierparadigmen. Imperatives vs. objektorientiertes Programmieren. Programmierparadigmen. Agenda für heute, 4.

Programmierparadigmen. Programmierparadigmen. Imperatives vs. objektorientiertes Programmieren. Programmierparadigmen. Agenda für heute, 4. Agenda für heute, 4. Mai, 2006 Programmierparadigmen Imperative Programmiersprachen In Prozeduren zusammengefasste, sequentiell ausgeführte Anweisungen Die Prozeduren werden ausgeführt, wenn sie als Teil

Mehr

Programmierung in Delphi

Programmierung in Delphi Berufsbildende Schule Wirtschaft Trier Programmierung in Delphi (Einführung in die IDE) Unterrichtsmaterialien von Christoph Oberweis Stand: 13.11.2011 1 Einführung in die Delphi-Programmierung Delphi-Entwicklungssystem

Mehr

Programmierkurs: Delphi: Einstieg

Programmierkurs: Delphi: Einstieg Seite 1 von 6 Programmierkurs: Delphi: Einstieg Aus Wikibooks Inhaltsverzeichnis 1 Einstieg Einstieg Was ist Delphi Borland Delphi ist eine RAD-Programmierumgebung von Borland. Sie basiert auf der Programmiersprache

Mehr

VBA-Programmierung: Zusammenfassung

VBA-Programmierung: Zusammenfassung VBA-Programmierung: Zusammenfassung Programmiersprachen (Definition, Einordnung VBA) Softwareentwicklung-Phasen: 1. Spezifikation 2. Entwurf 3. Implementierung Datentypen (einfach, zusammengesetzt) Programmablaufsteuerung

Mehr

Vorkurs C++ Programmierung

Vorkurs C++ Programmierung Vorkurs C++ Programmierung Klassen Letzte Stunde Speicherverwaltung automatische Speicherverwaltung auf dem Stack dynamische Speicherverwaltung auf dem Heap new/new[] und delete/delete[] Speicherklassen:

Mehr

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben.

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben. Aufgabe 1.30 : Schreibe ein Programm DM_in_Euro.java zur Umrechnung eines DM-Betrags in Euro unter Verwendung einer Konstanten für den Umrechnungsfaktor. Das Programm soll den DM-Betrag als Parameter verarbeiten.

Mehr

Einführung in die Programmierung mit Delphi

Einführung in die Programmierung mit Delphi Einführung in die Programmierung mit Delphi 23.04.2009 Helmut Paulus Max-Planck-Gymnasium Trier Leitidee Probleme beim Einstieg in die Programmierung mit Delphi Auch einfachste Programme sind zunächst

Mehr

1 Vom Problem zum Programm

1 Vom Problem zum Programm Hintergrundinformationen zur Vorlesung GRUNDLAGEN DER INFORMATIK I Studiengang Elektrotechnik WS 02/03 AG Betriebssysteme FB3 Kirsten Berkenkötter 1 Vom Problem zum Programm Aufgabenstellung analysieren

Mehr

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

Datentypen. 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

Mehr

Arbeiten mit UMLed und Delphi

Arbeiten mit UMLed und Delphi Arbeiten mit UMLed und Delphi Diese Anleitung soll zeigen, wie man Klassen mit dem UML ( Unified Modeling Language ) Editor UMLed erstellt, in Delphi exportiert und dort so einbindet, dass diese (bis auf

Mehr

Übungen 19.01.2012 Programmieren 1 Felix Rohrer. Übungen

Übungen 19.01.2012 Programmieren 1 Felix Rohrer. Übungen Übungen if / else / else if... 2... 2 Aufgabe 2:... 2 Aufgabe 3:... 2 Aufgabe 4:... 2 Aufgabe 5:... 2 Aufgabe 6:... 2 Aufgabe 7:... 3 Aufgabe 8:... 3 Aufgabe 9:... 3 Aufgabe 10:... 3 switch... 4... 4 Aufgabe

Mehr

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java: Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen

Mehr

Erster Bug: eine Motte

Erster Bug: eine Motte SOFTWAREFEHLER Der erste Bug Erster Bug: eine Motte Der Begriff Bug (deutsch: Motte) stammt aus dem Jahre 1945, als Ingenieure in einem Schaltrelais eines Computers (Harvard Mark II-System) eine Motte

Mehr

Diana Lange. Generative Gestaltung Operatoren

Diana Lange. Generative Gestaltung Operatoren Diana Lange Generative Gestaltung Operatoren Begriffserklärung Verknüpfungsvorschrift im Rahmen logischer Kalküle. Quelle: google Operatoren sind Zeichen, die mit einer bestimmten Bedeutung versehen sind.

Mehr

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 18

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 18 Kapitel 3 Datentypen und Variablen Seite 1 von 18 Datentypen - Einführung - Für jede Variable muss ein Datentyp festgelegt werden. - Hierdurch werden die Wertemenge und die verwendbaren Operatoren festgelegt.

Mehr

Programmierkurs Java

Programmierkurs 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

Mehr

Modul 122 VBA Scribt.docx

Modul 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

Mehr

Klausurteilnehmer. Wichtige Hinweise. Note: Klausur Informatik Programmierung, 17.09.2012 Seite 1 von 8 HS OWL, FB 7, Malte Wattenberg.

Klausurteilnehmer. Wichtige Hinweise. Note: Klausur Informatik Programmierung, 17.09.2012 Seite 1 von 8 HS OWL, FB 7, Malte Wattenberg. Klausur Informatik Programmierung, 17.09.2012 Seite 1 von 8 Klausurteilnehmer Name: Matrikelnummer: Wichtige Hinweise Es sind keinerlei Hilfsmittel zugelassen auch keine Taschenrechner! Die Klausur dauert

Mehr

Ein Projekt mit JavaFX erstellen

Ein Projekt mit JavaFX erstellen Ein Projekt mit JavaFX erstellen Das Projekt Es soll eine Umrechnung der Geschwindigkeit aus der Einheit m/s in die Einheit km/h erfolgen. Zu diesem Zweck wird ein einzeiliges Textfeld für die Eingabe

Mehr

Delphi DLL Tutorial Wie exportiere ich Komponenten aus einer DLL?

Delphi DLL Tutorial Wie exportiere ich Komponenten aus einer DLL? Delphi DLL Tutorial Wie exportiere ich Komponenten aus einer DLL? Von Padmalcom (20.03.2009) www.jofre.de Nach dem Tutorial 1 von Leonardo M. Ramé 1 Ja, es geht wirklich! Im Internet sind tausende Forenbeinträge

Mehr

Einführung in die Java- Programmierung

Einführung in die Java- Programmierung Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags keine Pommes... Praktikum A 230 C 207 (Madeleine + Esma) F 112 F 113

Mehr

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {... PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:

Mehr

5 DATEN. 5.1. Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu

5 DATEN. 5.1. Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu Daten Makro + VBA effektiv 5 DATEN 5.1. Variablen Variablen können beliebige Werte zugewiesen und im Gegensatz zu Konstanten jederzeit im Programm verändert werden. Als Variablen können beliebige Zeichenketten

Mehr

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Suche schlecht beschriftete Bilder mit Eigenen Abfragen Suche schlecht beschriftete Bilder mit Eigenen Abfragen Ist die Bilderdatenbank über einen längeren Zeitraum in Benutzung, so steigt die Wahrscheinlichkeit für schlecht beschriftete Bilder 1. Insbesondere

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum

Mehr

Mediator 9 - Lernprogramm

Mediator 9 - Lernprogramm Mediator 9 - Lernprogramm Ein Lernprogramm mit Mediator erstellen Mediator 9 bietet viele Möglichkeiten, CBT-Module (Computer Based Training = Computerunterstütztes Lernen) zu erstellen, z. B. Drag & Drop

Mehr

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: VBA Programmierung mit Excel Schleifen 1/6 Erweiterung der Aufgabe Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: Es müssen also 11 (B L) x 35 = 385 Zellen berücksichtigt

Mehr

Bedienung von BlueJ. Klassenanzeige

Bedienung von BlueJ. Klassenanzeige Im Folgenden werden wichtige Funktionen für den Einsatz von BlueJ im Unterricht beschrieben. Hierbei wird auf den Umgang mit Projekten, Klassen und Objekten eingegangen. Abgeschlossen wird dieses Dokument

Mehr

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken. Seite erstellen Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken. Es öffnet sich die Eingabe Seite um eine neue Seite zu erstellen. Seiten Titel festlegen Den neuen

Mehr

Informatik GK 12 Klassen Klassen programmieren in Delphi am Beispiel der konkreten Klasse Auto

Informatik GK 12 Klassen Klassen programmieren in Delphi am Beispiel der konkreten Klasse Auto programmieren in Delphi am Beispiel der konkreten Klasse Auto Auto -Baujahr -Typ -Besitzer -Farbe -Kilometerstand -Fahren() -Bremsen() Objekt1: Auto Typ: Golf Baujahr: 1998 Besitzer: Peter Farbe: rot Kilometerstand:

Mehr

1.4.12 Sin-Funktion vgl. Cos-Funktion

1.4.12 Sin-Funktion vgl. Cos-Funktion .4. Sgn-Funktion Informatik. Semester 36 36.4.2 Sin-Funktion vgl. Cos-Funktion Informatik. Semester 37 37 .4.3 Sqr-Funktion Informatik. Semester 38 38.4.4 Tan-Funktion Informatik. Semester 39 39 .5 Konstanten

Mehr

Folgeanleitung für Fachlehrer

Folgeanleitung für Fachlehrer 1. Das richtige Halbjahr einstellen Folgeanleitung für Fachlehrer Stellen sie bitte zunächst das richtige Schul- und Halbjahr ein. Ist das korrekte Schul- und Halbjahr eingestellt, leuchtet die Fläche

Mehr

Programmieren. 10. Tutorium 4./ 5. Übungsblatt Referenzen

Programmieren. 10. Tutorium 4./ 5. Übungsblatt Referenzen Programmieren 10. Tutorium 4./ 5. Übungsblatt Inhalt I. Übungsblatt 4 II. III. - Rückgabe und Besprechung - Vorbereitung auf Wiederholung/ Nachtrag - Operatorpräzedenzen IV. Übungsblatt 5 - Vorstellung

Mehr

Um ein solches Dokument zu erzeugen, muss eine Serienbriefvorlage in Word erstellt werden, das auf die von BüroWARE erstellte Datei zugreift.

Um ein solches Dokument zu erzeugen, muss eine Serienbriefvorlage in Word erstellt werden, das auf die von BüroWARE erstellte Datei zugreift. Briefe Schreiben - Arbeiten mit Word-Steuerformaten Ab der Version 5.1 stellt die BüroWARE über die Word-Steuerformate eine einfache Methode dar, Briefe sowie Serienbriefe mit Hilfe der Korrespondenzverwaltung

Mehr

13 OOP MIT DELPHI. Records und Klassen Ein Vergleich

13 OOP MIT DELPHI. Records und Klassen Ein Vergleich 13 OOP MIT DELPHI Delphi war früher "Object Pascal". Dieser Name impliziert eine Funktionalität, welche in der Welt der Programmierung nicht mehr wegzudenken ist: die objektorientierte Programmierung,

Mehr

ARAkoll 2013 Dokumentation. Datum: 21.11.2012

ARAkoll 2013 Dokumentation. Datum: 21.11.2012 ARAkoll 2013 Dokumentation Datum: 21.11.2012 INHALT Allgemeines... 3 Funktionsübersicht... 3 Allgemeine Funktionen... 3 ARAmatic Symbolleiste... 3 Monatsprotokoll erzeugen... 4 Jahresprotokoll erzeugen

Mehr

Institut 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 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

Mehr

Folgeanleitung für Klassenlehrer

Folgeanleitung für Klassenlehrer Folgeanleitung für Klassenlehrer 1. Das richtige Halbjahr einstellen Stellen sie bitte zunächst das richtige Schul- und Halbjahr ein. Ist das korrekte Schul- und Halbjahr eingestellt, leuchtet die Fläche

Mehr

Übungen zu C++ Kapitel 1

Übungen zu C++ Kapitel 1 Übungen zu C++ Kapitel 1 Aufgabe 1 Ergänze den Text. a) Die sechs logischen Einheiten eines Computers sind Eingabe-Einheit, Ausgabe-Einheit, RAM, ALU, CPU, Plattenspeicher. b) Die Programme, welche Hochsprachenprogramme

Mehr

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b AGROPLUS Buchhaltung Daten-Server und Sicherheitskopie Version vom 21.10.2013b 3a) Der Daten-Server Modus und der Tresor Der Daten-Server ist eine Betriebsart welche dem Nutzer eine grosse Flexibilität

Mehr

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI Universität Osnabrück Drei-Schichten-Architektur 3 - Objektorientierte Programmierung in Java Vorlesung 6: 3-Schichten-Architektur Fachkonzept - GUI SS 2005 Prof. Dr. F.M. Thiesing, FH Dortmund Ein großer

Mehr

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005 Einführung in die objektorientierte Programmierung mit Java Klausur am 19. Oktober 2005 Matrikelnummer: Nachname: Vorname: Semesteranzahl: Die Klausur besteht aus drei Frageblöcken zu den Inhalten der

Mehr

Jetzt sollt ihr von der Vorlage der Grundversion 1.0 ein eigenes Textadventure erstellen.

Jetzt sollt ihr von der Vorlage der Grundversion 1.0 ein eigenes Textadventure erstellen. Teil B: Erweiterungen Jetzt sollt ihr von der Vorlage der Grundversion 1.0 ein eigenes Textadventure erstellen. Die folgenden Aufgaben und Ausführungen geben einige Hilfestellungen, welche (mindestens

Mehr

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Objektorientierte Programmierung für Anfänger am Beispiel PHP Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012 Abstract Dieses Dokument soll die Vorteile der objektorientierten

Mehr

Einführung in die C++ Programmierung für Ingenieure

Einführung in die C++ Programmierung für Ingenieure Einführung in die C++ Programmierung für Ingenieure MATTHIAS WALTER / JENS KLUNKER Universität Rostock, Lehrstuhl für Modellierung und Simulation 14. November 2012 c 2012 UNIVERSITÄT ROSTOCK FACULTY OF

Mehr

Einführung in Javadoc

Einführung in Javadoc Einführung in Javadoc Johannes Rinn http://java.sun.com/j2se/javadoc Was ist Javadoc? Javadoc ist ein Werkzeug, dass eine standardisierte Dokumentation für die Programmiersprache Java unterstützt. Vorteil:

Mehr

Lernwerkstatt 9 privat- Freischaltung

Lernwerkstatt 9 privat- Freischaltung Was tun, wenn mein Rechner immer wieder die Freischaltung der Lernwerkstatt 9 privat verliert und ich die Ursache dafür nicht finden kann? Normalerweise genügt es, genau eine einzige online-freischaltung

Mehr

C++ Grundlagen. ++ bedeutet Erweiterung zum Ansi C Standard. Hier wird eine Funktion eingeleitet

C++ Grundlagen. ++ bedeutet Erweiterung zum Ansi C Standard. Hier wird eine Funktion eingeleitet C++ Grundlagen ++ bedeutet Erweiterung zum Ansi C Standard Hier wird eine Funktion eingeleitet Aufbau: In dieser Datei stehen die Befehle, die gestartet werden, wenn das Programm gestartet wird Int main()

Mehr

VB.net Programmierung und Beispielprogramm für GSV

VB.net Programmierung und Beispielprogramm für GSV VB.net Programmierung und Beispielprogramm für GSV Dokumentation Stand vom 26.05.2011 Tel +49 (0)3302 78620 60, Fax +49 (0)3302 78620 69, info@me-systeme.de, www.me-systeme.de 1 Inhaltsverzeichnis Vorwort...2

Mehr

HTML Programmierung. Aufgaben

HTML Programmierung. Aufgaben HTML Programmierung Dr. Leander Brandl BRG Keplerstraße - A-8020 Graz Universität Graz - Institut für Experimentalphysik Fachdidaktik der Physik http://w4.brgkepler.asn-graz.ac.at 1. Die erste Web-Seite

Mehr

Java 7. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Dezember 2011 JAV7

Java 7. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Dezember 2011 JAV7 Java 7 Elmar Fuchs Grundlagen Programmierung 1. Ausgabe, Dezember 2011 JAV7 5 Java 7 - Grundlagen Programmierung 5 Kontrollstrukturen In diesem Kapitel erfahren Sie wie Sie die Ausführung von von Bedingungen

Mehr

Graphic Coding. Klausur. 9. Februar 2007. Kurs A

Graphic Coding. Klausur. 9. Februar 2007. Kurs A Graphic Coding Klausur 9. Februar 2007 Kurs A Name: Matrikelnummer: Hinweise - Es sind keine Hilfsmaterialien erlaubt. (Keine Bücher, Taschenrechner, Handys) - Sie haben zwei Stunden Zeit. - Insgesamt

Mehr

Excel Pivot-Tabellen 2010 effektiv

Excel Pivot-Tabellen 2010 effektiv 7.2 Berechnete Felder Falls in der Datenquelle die Zahlen nicht in der Form vorliegen wie Sie diese benötigen, können Sie die gewünschten Ergebnisse mit Formeln berechnen. Dazu erzeugen Sie ein berechnetes

Mehr

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt Inhaltsverzeichnis Aufgabe... 1 Allgemein... 1 Active Directory... 1 Konfiguration... 2 Benutzer erstellen... 3 Eigenes Verzeichnis erstellen... 3 Benutzerkonto erstellen... 3 Profil einrichten... 5 Berechtigungen

Mehr

Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter

Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter Aufgabe 3: Konto Um Geldbeträge korrekt zu verwalten, sind zwecks Vermeidung von Rundungsfehlern entweder alle Beträge in Cents umzuwandeln und

Mehr

M. Graefenhan 2000-12-07. Übungen zu C. Blatt 3. Musterlösung

M. Graefenhan 2000-12-07. Übungen zu C. Blatt 3. Musterlösung M. Graefenhan 2000-12-07 Aufgabe Lösungsweg Übungen zu C Blatt 3 Musterlösung Schreiben Sie ein Programm, das die Häufigkeit von Zeichen in einem eingelesenen String feststellt. Benutzen Sie dazu ein zweidimensionales

Mehr

Einführung zum Arbeiten mit Microsoft Visual C++ 2010 Express Edition

Einführung zum Arbeiten mit Microsoft Visual C++ 2010 Express Edition In den nachfolgenden Schritten finden Sie beschrieben, wie Sie in der Entwicklungsumgebung Microsoft Visual Studio 2010 eine Projektmappe, ein Projekt und einen ersten Quellcode erstellen, diesen kompilieren,

Mehr

Wir basteln einen Jahreskalender mit MS Excel.

Wir basteln einen Jahreskalender mit MS Excel. Wir basteln einen Jahreskalender mit MS Excel. In meinen Seminaren werde ich hin und wieder nach einem Excel-Jahreskalender gefragt. Im Internet findet man natürlich eine ganze Reihe mehr oder weniger

Mehr

Microsoft Access 2010 Bilder

Microsoft Access 2010 Bilder Microsoft Access 2010 Bilder Hyperlinks... arbeiten ähnlich wie ein Link in einer Webseite. sind ein Verweis auf eine Datei (access2010\material\beispiel\tabledevelop\automat.accdb). können ein Verweis

Mehr

Objektorientierte Programmierung. Kapitel 12: Interfaces

Objektorientierte Programmierung. Kapitel 12: Interfaces 12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/

Mehr

Hinweise zum Update des KPP Auswahltools (Netzwerkinstallation) auf Version 7.2

Hinweise zum Update des KPP Auswahltools (Netzwerkinstallation) auf Version 7.2 Hinweise zum Update des KPP Auswahltools (Netzwerkinstallation) auf Version 7.2 Installationsvoraussetzungen: Die Update-Routine benötigt das DotNet-Framework 4.0 Client Profile, das normalerweise über

Mehr

LEGO-Mindstorms-Roboter im Informatikunterricht 1 - mit Java-

LEGO-Mindstorms-Roboter im Informatikunterricht 1 - mit Java- Eckart Modrow LEGO-Mindstorms-Roboter S. 1 LEGO-Mindstorms-Roboter im Informatikunterricht 1 - mit Java- Benutzung in einer Programmierumgebung Für die LEGO-Roboter stehen unter allen gängigen Betriebssystemen

Mehr

Tel.: 040-528 65 802 Fax: 040-528 65 888 Email: support_center@casio.de. Ein Text oder Programm in einem Editor schreiben und zu ClassPad übertragen.

Tel.: 040-528 65 802 Fax: 040-528 65 888 Email: support_center@casio.de. Ein Text oder Programm in einem Editor schreiben und zu ClassPad übertragen. Ein Text oder Programm in einem Editor schreiben und zu ClassPad übertragen. Die auf dem PC geschriebene Texte oder Programme können über dem ClassPad Manager zu ClassPad 300 übertragen werden. Dabei kann

Mehr

Excel Funktionen durch eigene Funktionen erweitern.

Excel Funktionen durch eigene Funktionen erweitern. Excel Funktionen durch eigene Funktionen erweitern. Excel bietet eine große Anzahl an Funktionen für viele Anwendungsbereiche an. Doch es kommt hin und wieder vor, dass man die eine oder andere Funktion

Mehr

Datensicherung. Beschreibung der Datensicherung

Datensicherung. Beschreibung der Datensicherung Datensicherung Mit dem Datensicherungsprogramm können Sie Ihre persönlichen Daten problemlos Sichern. Es ist möglich eine komplette Datensicherung durchzuführen, aber auch nur die neuen und geänderten

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können

Mehr

1. Einschränkung für Mac-User ohne Office 365. 2. Dokumente hochladen, teilen und bearbeiten

1. Einschränkung für Mac-User ohne Office 365. 2. Dokumente hochladen, teilen und bearbeiten 1. Einschränkung für Mac-User ohne Office 365 Mac-User ohne Office 365 müssen die Dateien herunterladen; sie können die Dateien nicht direkt öffnen und bearbeiten. Wenn die Datei heruntergeladen wurde,

Mehr

Erstellen von x-y-diagrammen in OpenOffice.calc

Erstellen von x-y-diagrammen in OpenOffice.calc Erstellen von x-y-diagrammen in OpenOffice.calc In dieser kleinen Anleitung geht es nur darum, aus einer bestehenden Tabelle ein x-y-diagramm zu erzeugen. D.h. es müssen in der Tabelle mindestens zwei

Mehr

Windows 10. Vortrag am Fleckenherbst Bürgertreff Neuhausen. www.buergertreff-neuhausen.de www.facebook.com/buergertreffneuhausen

Windows 10. Vortrag am Fleckenherbst Bürgertreff Neuhausen. www.buergertreff-neuhausen.de www.facebook.com/buergertreffneuhausen Windows 10 Vortrag am Fleckenherbst Bürgertreff Neuhausen 1 Inhalt Was ist neu (im Vergleich zu Windows 8.1) Wann lohnt sich ein Umstieg Update Installation von Windows 10 Startmenü Windows Explorer Webbrowser

Mehr

5. Tutorium zu Programmieren

5. Tutorium zu Programmieren 5. Tutorium zu Programmieren Dennis Ewert Gruppe 6 Universität Karlsruhe Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2008 by IPD Snelting

Mehr

Computeranwendung und Programmierung (CuP)

Computeranwendung und Programmierung (CuP) Computeranwendung und Programmierung (CuP) VO: Peter Auer (Informationstechnologie) UE: Norbert Seifter (Angewandet Mathematik) Organisatorisches (Vorlesung) Vorlesungszeiten Montag 11:15 12:45 Freitag

Mehr

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag Ludwig-Maximilians-Universität München WS 2015/16 Institut für Informatik Übungsblatt 13 Prof. Dr. R. Hennicker, A. Klarl Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung:

Mehr

Angewandte Mathematik und Programmierung

Angewandte Mathematik und Programmierung Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu mathematischen Rechnens SS2013 Inhalt Projekt Vorlesung: praktische Implementierung üben Ein und

Mehr

Java Einführung Operatoren Kapitel 2 und 3

Java Einführung Operatoren Kapitel 2 und 3 Java Einführung Operatoren Kapitel 2 und 3 Inhalt dieser Einheit Operatoren (unär, binär, ternär) Rangfolge der Operatoren Zuweisungsoperatoren Vergleichsoperatoren Logische Operatoren 2 Operatoren Abhängig

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In

Mehr

Einführung in die Programmierung

Einführung in die Programmierung : Inhalt Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund - mit / ohne Parameter - mit / ohne Rückgabewerte

Mehr

Objektorientierte Programmierung in Java

Objektorientierte Programmierung in Java Objektorientierte Programmierung in Java 1. Auflage Objektorientierte Programmierung in Java schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv Verlag C.H. Beck im Internet:

Mehr

Druckerscriptsprache

Druckerscriptsprache Druckerscriptsprache Die Druckerscriptsprache stellt Ihnen ein mächtiges Werkzeug zur Erstellung und Automatisierung von komplexen Druckvorgängen zur Verfügung. Vom Folgedruck bis zum Archivfunktion ist

Mehr

Tutorium Rechnerorganisation

Tutorium Rechnerorganisation Woche 2 Tutorien 3 und 4 zur Vorlesung Rechnerorganisation 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu

Mehr

Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer

Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer Klassendiagramme Ein Klassendiagramm dient in der objektorientierten Softwareentwicklung zur Darstellung von Klassen und den Beziehungen,

Mehr

teischl.com Software Design & Services e.u. office@teischl.com www.teischl.com/booknkeep www.facebook.com/booknkeep

teischl.com Software Design & Services e.u. office@teischl.com www.teischl.com/booknkeep www.facebook.com/booknkeep teischl.com Software Design & Services e.u. office@teischl.com www.teischl.com/booknkeep www.facebook.com/booknkeep 1. Erstellen Sie ein neues Rechnungsformular Mit book n keep können Sie nun Ihre eigenen

Mehr

Über die Internetseite www.cadwork.de Hier werden unter Download/aktuelle Versionen die verschiedenen Module als zip-dateien bereitgestellt.

Über die Internetseite www.cadwork.de Hier werden unter Download/aktuelle Versionen die verschiedenen Module als zip-dateien bereitgestellt. Internet, Codes und Update ab Version 13 Um Ihnen einen möglichst schnellen Zugang zu den aktuellsten Programmversionen zu ermöglichen liegen Update-Dateien für Sie im Internet bereit. Es gibt drei Möglichkeiten

Mehr

Virtuelle COM-Schnittstelle umbenennen

Virtuelle COM-Schnittstelle umbenennen Virtuelle COM-Schnittstelle umbenennen COM-Nummer eines USB/Seriell-Wandlers verändern Wenn man ein Gerät mit einem USB/Seriell-Wandler neu anschließt, wird meist eine neue virtuelle COM- Schnittstelle

Mehr

Java Kurs für Anfänger Einheit 5 Methoden

Java Kurs für Anfänger Einheit 5 Methoden Java Kurs für Anfänger Einheit 5 Methoden Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 22. Juni 2009 Inhaltsverzeichnis Methoden

Mehr

Bauteilattribute als Sachdaten anzeigen

Bauteilattribute als Sachdaten anzeigen Mit den speedikon Attributfiltern können Sie die speedikon Attribute eines Bauteils als MicroStation Sachdaten an die Elemente anhängen Inhalte Was ist ein speedikon Attribut?... 3 Eigene Attribute vergeben...

Mehr

Was Sie bald kennen und können

Was Sie bald kennen und können Den Rechner verwenden 6 Heutzutage gehört auf jeden Schreibtisch auch ein Taschenrechner denn wer vertraut im Computer-Zeitalter noch seinen eigenen Rechenkünsten? Und da Microsoft mit Windows die Vision

Mehr

Filialpreisverwaltung

Filialpreisverwaltung Filialpreisverwaltung Ab jetzt kann man Filialpreise pro Artikel nach Filialen und Farben verwalten. Hierzu wurde ein neuer Tabellentyp geschaffen. Der Pfad für diese Preistabellen (PTAB s) wird mit dem

Mehr

TTS - TinyTimeSystem. Unterrichtsprojekt BIBI

TTS - TinyTimeSystem. Unterrichtsprojekt BIBI TTS - TinyTimeSystem Unterrichtsprojekt BIBI Mathias Metzler, Philipp Winder, Viktor Sohm 28.01.2008 TinyTimeSystem Inhaltsverzeichnis Problemstellung... 2 Lösungsvorschlag... 2 Punkte die unser Tool erfüllen

Mehr

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag Ludwig-Maximilians-Universität München WS 2015/16 Institut für Informatik Übungsblatt 9 Prof. Dr. R. Hennicker, A. Klarl Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung:

Mehr

Name. Aufgabe 1) Zur Erinnerung:

Name. Aufgabe 1) Zur Erinnerung: Aufgabe 1) Pick it up heißt das kleine Spiel, das mit Hilfe eines DELPHI-Projekts simuliert wurde. (s.anlage!) a) Analysiere das Projekt und beschreibe, was in dem Spiel geschieht. Kommentiere die einzelnen

Mehr

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Einführung in Java PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Gliederung 1. Was ist Java / Geschichte von Java 2. Prinzip der Plattformunabhängigkeit 3. Wie kommt man vom Quellcode zum Programm

Mehr

3 ORDNER UND DATEIEN. 3.1 Ordner

3 ORDNER UND DATEIEN. 3.1 Ordner Ordner und Dateien PC-EINSTEIGER 3 ORDNER UND DATEIEN Themen in diesem Kapitel: Erstellung von Ordnern bzw Dateien Umbenennen von Datei- und Ordnernamen Speicherung von Daten 3.1 Ordner Ordner sind wie

Mehr

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten Was sind Berechtigungen? Unter Berechtigungen werden ganz allgemein die Zugriffsrechte auf Dateien und Verzeichnisse (Ordner) verstanden.

Mehr

Computeria Solothurn

Computeria Solothurn Computeria Solothurn Seniorinnen und Senioren entdecken den Computer und das Internet Sich mit «TeamViewer» von einem Supporter helfen lassen Diese Anleitung und die Illustrationen wurden unter Mac OS

Mehr

Das Modul Hilfsmittel ermöglicht den Anwender die Verwaltung der internen Nachrichten, Notizen, Kontakte, Aufgaben und Termine.

Das Modul Hilfsmittel ermöglicht den Anwender die Verwaltung der internen Nachrichten, Notizen, Kontakte, Aufgaben und Termine. Hilfsmittel Das Modul Hilfsmittel ermöglicht den Anwender die Verwaltung der internen Nachrichten, Notizen, Kontakte, Aufgaben und Termine. Interne Nachrichten Mit Hilfe der Funktion Interne Nachrichten

Mehr

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Inhalt dieser Einheit Variablen (Sinn und Aufgabe) Bezeichner Datentypen, Deklaration und Operationen Typenumwandlung (implizit/explizit) 2 Variablen

Mehr