Einführung in die prozedurale Programmierung. mit Delphi. Lektion 3 März 2010

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

Datentypen: integer, char, string, boolean

4.Grundsätzliche Programmentwicklungsmethoden

\\//_. 18. Mai Goethe-Gymnasium Sebnitz. Datenstrukturen und Datentypen \\//_. Datentypen und. Datenstrukturen. einfache Datentypen

Modul 122 VBA Scribt.docx

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

Android-Apps Gegenüberstellung Delphi java

Operatoren und Ausdrücke

Syntax der Sprache PASCAL

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

4. Einfache Datentypen

Einführung in die Programmierung mit VBA

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

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

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

Motivation und Überblick

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

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

Zahl ist der im Gradmaß angegebene Winkel, dessen Sinus Sie berechnen möchten.

Grundlagen der Programmierung

2. Programmierung in C

2.2 Einfache Datenstrukturen

Algorithmen und ihre Programmierung

Einführung in die Programmierung

Arbeitsblätter für Algorithmierung und Strukturierung

Wie rechnet ein Rechner?

Wiederholung, Abbruch von Schleifen, switch-anweisung Datentypen, char, formatierte Ausgabe

Die einfachsten Anweisungen

Algorithmen zur Datenanalyse in C++

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

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

Informatik Vorkurs - Vorlesung 2

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

Projekt 3 Variablen und Operatoren

Einstieg in die Informatik mit Java

Objektorientierte Programmierung. Agenda für heute, 1. April, Eines der drei wichtigsten Programmierparadigmen

JAVA-Datentypen und deren Wertebereich

10 Wiederholungsanweisungen

Vorkurs Informatik WiSe 16/17

Einstieg in die Informatik mit Java

2 Programmieren in Java I noch ohne Nachbearbeitung

EXCEL VBA Cheat Sheet

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

Einstieg in die Informatik mit Java

Grundlagen der Informatik Ergänzungen WS 2007/2008 Prof. Dr. Rainer Lütticke

Crashkurs: Haskell. Mentoring FU Berlin Felix Droop

Einführung in Delphi. Komponenten regeln die Dateneingabe und Datenausgabe.

Informatik. Wiederholung Felder (Arrays), string. Vorlesung

Einstieg in die Informatik mit Java

7. Einführung in C++ Programmieren / Algorithmen und Datenstrukturen 1 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt

5.2 Variablenkonzept und elementare Datentypen

Informatik I Übung, Woche 38

(Aufgaben zu Wertzuweisungen siehe Vorlesungsbeilage S. 49)

Primitive Datentypen, Eingaben, Kontrollstrukturen und Methodendeklaration

Grundkurs Programmieren mit Delphi

Programmiervorkurs Einführung in Java Tag 1

Arbeitsblätter für die Lehrveranstaltung OOP JAVA 1

Grundlagen der Informatik

Visual Basic - Einführung Mathematische Funktionen und Operatoren Zeichenfolgenbearbeitung. 1.7 Schleifen, Arrays und Entscheidungen

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

15 Der strukturierte Datentyp»set«(Mengen)

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

Beispiele elementarer Datentypen Ganze Zahlen (integer) Unterbereiche Gleitkommazahlen Festkommazahlen

Javakurs für Anfänger

Inhaltsverzeichnis I Grundlagen...1 II Programmieren in C/C

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

Inhalt. 1 Einstieg in die Welt von C Erste Schritte in C 31. Vorwort... 15

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

Vorkurs Informatik WiSe 17/18

Funktionsübersicht für SCL in Step7

ÜBERPRÜFUNG VON TYPEN

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

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

Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems

1 Klassen anlegen und Objekte erzeugen

1 Klassen anlegen und Objekte erzeugen

Informatik I Übung, Woche 40

Grundlagen der Programmierung

TURBO PASCAL VERSION 5.5

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

16 Der strukturierte Datentyp "record"

Informatik I. Übung 2 : Programmieren in Eclipse. 5. März Daniel Hentzen

Teil II. Datentypen. T. Neckel Einführung in die wissenschaftliche Programmierung IN8008 Wintersemester 2017/

Algorithmen als systematische Vorgehensweisen zur Lösung eines formal definierten Problems

Langzahlarithmetik implementieren Ac 1990 bis 2016

Einstieg in die Informatik mit Java

Lösung der Übungsaufgabenserie 12 Grundlagen der Informatik und Numerik

4.2 Programmiersprache C

Tutorium für Fortgeschrittene

Physische Datenstrukturen

2.5 Primitive Datentypen

Informatik I Übung, Woche 41

Javaprogrammierung mit NetBeans. Variablen, Datentypen, Methoden

3. Datentypen, Ausdrücke und Operatoren

Java I Vorlesung Imperatives Programmieren

Transkript:

Einführung in die prozedurale Programmierung mit Delphi Lektion 3 1/19

Theoretische Grundlagen 1. Vorschläge zur Wahl der Variablennamen 2. Datentypumwandlungen (Auswahl) 3. Delphi-Objekte (Auswahl) 4. Mathematische Operatoren und Funktionen (Auswahl) 5. Grundstrukturen (Sequenz, Auswahl, Zyklus) 6. Datentypen 2/19

1. Vorschläge zur Wahl der Variablennamen Variablennamen sollen möglichst selbsterklärend sein Namen von Objekten sollen am Anfang des Namens einen entsprechenden Kennbuchstaben tragen, z.b. ein Edit-Objekt-Name beginnt immer mit e, ein Button-Objekt-Name immer mit b usw. Objekt Bezeichner-Beispiel Programmname meinname Projektname pmeinname Hauptformular fmeinname Unterformulare fnoten, fname, fxyz,... Units unoten, uname,... Buttons bname, bschule,... Editorfelder ename, enote, ezahl,... Label lname, lxyz,... ListBox lbnoten, lbwerte,... Tabellen tnoten, twerte 3/19

2. Datentypumwandlungen (Auswahl) Bei der Übernahme von Daten aus der Texteigenschaft z.b. eines Edit- Objekts müssen diese bei Bedarf in eine Zahl umgewandelt werden, damit mit diesen Daten gerechnet werden kann Das Gleiche gilt bei der Ausgabe von Daten: Berechnete Werte müssen vor der Übertragung an die Texteigenschaft eines Edit-Objekts wieder in einen Text umgewandelt werden Das alles erfolgt mittels Umwandlungsfunktionen (siehe Tabelle) Function Umwandlung Umwandlungsbeispiel IntToStr GanzZahl in Zeichenkette eausgabe.text:=inttostr(zahl); StrToInt Zeichenkette in GanzZahl zahl:=strtoint(eausgabe.text); FloatToStr KommaZahl in Zeichenkette ezinsen.text:=floattostr(zinsen); StrToFloat Zeichenkette in KommaZahl zinsen:=strtofloat(ezinsen.text); FloatToStrF KommaZahl in formatierte Zeichenkette ezinsen.text:=floattostrf(zinsen,ffnumber,8,2) 4/19

3. Delphi-Objekte (Auswahl) (I) Das Programm Hello World enthält genau drei Objekte: ein Formularobjekt, ein Label- Objekt ein BitButton-Objekt Das Label-Objekt und das BitButton-Objekt sind dabei vom Formularobjekt abgeleitet. 5/19

3. Delphi-Objekte (Auswahl) (II) Mittels Objektinspektor können (fast) alle Eigenschaften eines Objekts direkt definiert werden. Diese Einstellungen sind allerdings statisch. Sollen die Eigenschaften zur Laufzeit des Programms geändert werden, können diese mittels Punktnotation im Quelltext dynamisch verändert werden. 6/19

3. Delphi-Objekte (Auswahl) (III) Beim Klick auf den Button werden die Eigenschaften des Labels dynamisch verändert. Dafür werden folgende Punktnotationen der Objekteigenschaften benötigt: lbeispiel.caption:='modell1'; lbeispiel.color:=clred; 7/19

4. Mathematische Operatoren und Funktionen (Auswahl) (I) Operator Operation Beispiel Operandentyp Ergebnistyp + Addition x:=a + b Integer Integer - Subtraktion x:=a - b Integer Integer * Multiplikation x:=a * b Integer Integer / reelle Division x:=a / b Integer DIV Integer-Division x:=a div b Integer Integer MOD Divisionsrest x:=a mod b Integer Integer Bsp.: x:=6 mod 4 x = 2 8/19

4. Mathematische Operatoren und Funktionen (Auswahl) (II) Operator Operation Beispiel Operandentyp Ergebnistyp SQRT Wurzelziehen x:=sqrt(a) Integer SQR Quadrieren x:=sqr(a) Integer Integer SIN Sinusfunktion x:=sin(a) Integer a im Bogenmaß COS Kosinusfunktion x:=cos(a) Integer a im Bogenmaß TAN Tangensfunktion x:=tan(a) Integer a im Bogenmaß ARCTAN Arkustangensfunktion x:=arctan(a) Integer EXP Eulersche Funktion x:=exp(a) Integer LN Natürlicher Log. x:=ln(a) Integer 9/19

4. Mathematische Operatoren und Funktionen (Auswahl) (III) Operator Operation Beispiel Operandentyp Ergebnistyp ABS Betragsfunktion x:=abs(a) Integer PI ZahlPi x:=pi -Konstante 3,14159... FRAC Nachkomma- x:=frac(a) stellen Bsp.:a:=12.345 x = 345 INT rundet ab x:=int(a) Bsp.:a:=12.98 x = 12 TRUNC rundet ab x:=trunc(a) Integer/ Integer ROUND rundet mathemat. x:=round(a) Integer/ Integer 10/19

5. Grundstrukturen (Sequenz) Dreiecksfläche Grunstruktur Sequenz, Anweisungen werden in gegebener Reihenfolge abgearbeitet E: Seite a E: Seite b E: Seite c s (a+b+c)/2 f Wurzel(s(s-a)(s-b)(s-c)) A: f Übersetzung in PASCAL (Delphi) //Eingabe a:=strtofloat(eseitea.text); b:=strtofloat(eseiteb.text); c:=strtofloat(eseitec.text); //Verarbeitung Flächenberechnung mit Heron s:=(a+b+c)/2; f:=sqrt(s*(s-a)*(s-b)*(s-c)); //Ausgabe eflaeche.text:=floattostrf(f,ffnumber,8,2); 11/19

5. Grundstrukturen (Auswahl - einseitig) Gerade Zahl Falls die Bedingung erfüllt ist, wird die Anweisung hinter THEN ausgeführt z MOD 2 = 0 ja nein A: Zahl ist gerade Übersetzung in PASCAL (Delphi) //Eingabe z:=strtoint(ezahl.text); //Verarbeitung und Ausgabe IF z MOD 2 = 0 THEN eausgabe.text:='zahl ist gerade' 12/19

5. Grundstrukturen (Auswahl - zweiseitig) Gerade Zahl Falls die Bedingung erfüllt ist, wird die Anweisung hinter THEN ausgeführt, sonst wird die Anweisung hinter ELSE ausgeführt ja z MOD 2 = 0 nein A: Zahl ist gerade A: Zahl ist ungerade Übersetzung in PASCAL (Delphi) //Eingabe z:=strtoint(ezahl.text); //Verarbeitung und Ausgabe IF z MOD 2 = 0 THEN eausgabe.text:='zahl ist gerade' ELSE eausgabe.text:='zahl ist ungerade' 13/19

5. Grundstrukturen (Auswahl - mehrseitig) Übersetzung in PASCAL (Delphi) Teilbarkeit Falls n=1 ist, dann gebe aus: Teilbar durch 1 Falls n=2 ist, dann gebe aus: (...) und durch 2 usw. (...) enthält Vorgängertext, falls bereits andere Teilbarkeiten erkannt wurden Hinweis: Aus Platzgründen werden hier nur 4 Fälle angezeigt, im Beispiel nebenan treten 10 Fälle auf. n 1 2 3 4 sonst A: teilbar durch 1 A: (...) teilbar durch 2 A: (...) teilbar durch 3 A: (...) teilbar durch 4 //Eingabe z:=strtoint(ezahl.text); //Verarbeitung FOR n:=1 TO 10 DO IF z MOD n = 0 THEN CASE n OF 1 : label5.caption:='teilbar durch 1'; 2 : label5.caption:=label5.caption+' und durch 2'; 3 : label5.caption:=label5.caption+' und durch 3'; 4 : label5.caption:=label5.caption+' und durch 4'; 5 : label5.caption:=label5.caption+' und durch 5'; 6 : label5.caption:=label5.caption+' und durch 6'; 7 : label5.caption:=label5.caption+' und durch 7'; 8 : label5.caption:=label5.caption+' und durch 8'; 9 : label5.caption:=label5.caption+' und durch 9'; 10 : label5.caption:=label5.caption+' und durch 10'; END; 14/19

5. Grundstrukturen (Zyklus - Zählschleife) Übersetzung in PASCAL (Delphi) Kontoentwicklung Wiederhole für den Zähler i von 1 bis zum Ende der Laufzeit t die Anweisungen zwischen BEGIN und END (Verbundanweisung) Hinweis: Die Zählschleife wird genau t mal abgearbeitet Wiederhole für i von 1 bis t z k * zs / 100; k k + z; A:Jahresnummer, Kapital //Eingaben k:=strtofloat(ekapital.text); zs:=strtofloat(ezinssatz.text); t:=strtoint(elaufzeit.text); //Verarbeiten und Ausgeben FOR i:=1 TO t DO BEGIN z:=k*zs/100; k:=k+z; listbox1.items.add(inttostr(i) + '. + FLOATTOSTR(k)); END; 15/19

5. Grundstrukturen (Zyklus - anfangsgeprüft) Zahlenfolge Solange die Bedingung i<=20 erfüllt ist, werden die Anweisungen im Verbund ausgeführt Solange i<=20 tue a 1 + 1/i A: Nr., Zahlenfolgenglied i i + 1 Übersetzung in PASCAL (Delphi) i:=1; WHILE i<=20 DO BEGIN a:=1+1/i; listbox1.items.add(inttostr(i) + '. + FLOATTOSTR(a)); i:=i+1; END; 16/19

5. Grundstrukturen (Zyklus - endgeprüft) Zahlenfolge Wiederhole die Anweisungen im Verbund bis die Bedingung i>20 erfüllt ist. a 1 + 1/i A: Nr., Zahlenfolgenglied i i + 1 Wiederhole bis i>20 Übersetzung in PASCAL (Delphi) i:=1; REPEAT a:=1+1/i; listbox1.items.add(inttostr(i)+'. '+FLOATTOSTR(a)); i:=i+1; UNTIL i>20; 17/19

6. Datentypen (I) einfache Datentypen Zeichenkettendatentypen strukturierte Datentypen Zeigertypen ordinale reelle INTEGER REAL STRING ARRAY POINTER SHORTINT REAL48 STRING[n] RECORD ^ZeigerTyp SMALLINT SINGLE LONGINT DOUBLE SHORTSTRING SET OF INT64 EXTENDED ANSISTRING BYTE COMP WIDESTRING DATEI WORD CURRENCY OBJECT LONGWORD CHAR FILE BOOLEAN FILE OF Type ANSICHAR TEXT CHAR WIDECHAR TeilbereichsTyp AufzählungsTyp w eitere w ichtige Hinw eise siehe DELPHI-Hilfe 18/19

Wertebereiche - Auswahl 6. Datentypen (II) Typ Bereich Speicherbelastung Genauigkeit INTEGER -2147483648..2147483647 4 Byte mit Vorzeichen SHORTINT -128...127 1 Byte mit Vorzeichen SMALLINT -32768...32767 2 Byte mit Vorzeichen LONGINT -2147483648...2147483647 4 Byte mit Vorzeichen INT64-2^63..2^63-1 8 Byte mit Vorzeichen BYTE 0...255 1 Byte ohne Vorzeichen WORD 0...65535 2 Byte ohne Vorzeichen LONGWORD 0..4294967295 4 Byte ohne Vorzeichen REAL -1,7*10^308...+1,7*10^308; kleinster Wert: 5,0*10^-324 8 Byte 15-16 Stellen REAL48 SINGLE* DOUBLE* -1,7*10^38...+1,7*10^38; kleinster Wert: 2,9*10^-39-3,4*10^38...+3,4*10^38; kleinster Wert: 1,5*10^-45-1,7*10^308...+1,7*10^308; kleinster Wert: 5,0*10^-324 EXTENDED* -1,1*10^4932...+1,1*10^4932; 10 Byte kleinster Wert: 3,4*10^-4932 BOOLEAN TRUE, FALSE 1Byte CHAR ASCII-Zeichen 1Byte 6 Byte 11-12 Stellen 4 Byte 7-8 Stellen 8 Byte 15-16 Stellen 19-20 Stellen 19/19