Delphi Chars und Strings

Slides:



Advertisements
Ähnliche Präsentationen
Hash-Tabellen und -Funktionen Hash-Tabellen in Java
Advertisements

Forschungszentrum caesar
Zusammenfassung der Vorwoche
Rekursionen Erstellt von J. Rudolf im November 2001 /
10. Grundlagen imperativer Programmiersprachen
(kleine!) Java Einführung Mittwoch, Heute Ziel: erstes Java-Programm erstellen Von der Aufgabenstellung bis zur Lösung Grundlagen Einfache.
DINAMISCHE STRUKTUREN FACHBEGRIFFE 1. DER POINTERDER POINTER 2. DER BUFFERDER BUFFER 3. DER KNOTENDER KNOTEN DIE EINFACHVERKETTETE LISTE DEFINITION DEFINITION.
Java: Dynamische Datentypen
FH-Hof Verwaltung von Zeichenketten Richard Göbel.
Indirekte Adressierung
Datentyp- umwandlung. Literale sind: Bezeichner mit einem festen Wert wie z.B:
Robotik mit LEGO Mindstorms
Perl-Grundlagen Teile der Präsentation von A. Grupp,
Excel Kurs Teil VII Textfunktionen ( TEXT, LÄNGE, LINKS, RECHTS, TEIL, FINDEN ) Einladen von Textdateien Text in Spalten F. Bäumer.
Arrays,Strings&Pointer in C/C++
DVG Einführung in Java1 Einführung in JAVA.
JavaScript - Einführung
Hauptseminar Automaten und Formale Sprachen
Einführung in die Programmiersprache C 1
Datenformate: Text und Bild
Kontrollstrukturen Verwendung: Steuerung des Ablaufs.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 11.Sitzung WS 02/03.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
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.
Wiederholte Programmausführung
Konzept einer Programmiersprache!
Grundlagen von Objekt-Pascal Erstellt von J. Rudolf überarbeitet von H.Brehm.
Programiersprache Mustafa SÖYLEMEZ e
PHP Basic.
Grundkonzepte des Programmierens (mit ActionScript)
Grundlagen der Informatik
Arduino Kurs Abend 2.
Grundlagen der Kommunikation in Verbindung mit der Codierung von Daten
MODULA-2.
Datentypen: integer, char, string, boolean
Agenda für heute, 7. April, 2005 Bedingte ProgrammausführungBedingte Programmausführung Algorithmische Grundlagen Vergleichsoperatoren, Wahrheitswerte.
Agenda für heute, 14. April, 2005 Wiederholte ProgrammausführungWiederholte Programmausführung Algorithmische Grundlagen Bedingungen zum Abbruch von Programmschleifen.
Erste Schritte in DELPHI
Programmieren in C Grundlagen C 2
PHP: Operatoren und Kontrollstrukturen
Variablen. var meineZahl:Number = 7; meineZahl 7 Name TypWert = Zuweisung von Variablen.
Zeichenketten in PASCAL
Codebaumanalyse Was geschieht in der Methode Codebaum.decodiere, wenn als Parameter der Code 001 übergeben wird? Gib die Zeilennummern der durchlaufenen.
Vorkurs Programmierungstechnik Einführung in Pascal Michael Gellner Lehrstuhl für Softwaretechnik am Institut für praktische Informatik der Universität.
Java Syntaxdiagramme Buchstabe A B Z a z ... Ziffer
1 VeranstaltungThemaTeilnehmerBetreuer AINF-Lehrgang PROGRAMMIEREN Martina GREILER Wolfgang KATOLNIG Peter RENDL Helfried TUISEL Peter ZYCH Heinz STEGBAUER.
Mehrfachausführungen Schleifen in VB 2010 ee. Programmidee: Der Anwender gibt eine Zahl ein, und das Programm gibt die Mehrfachen dieser Zahl aus (das.
Blockseminar Allgemeine Technologien II Dozent: P. Sahle März 2009 PHP in HTML Referentin: Angela Brinck.
Anführungszeichen?! echo 'Apfel$atf'; // ergibt: Apfel$aft
Der Datentyp Verbund (record)
Agenda für heute, 21. April, 2005 Interaktion mit Pascal-ProgrammenInteraktion mit Pascal-Programmen Dateneingabe Programmsteuerung Debugging Datentypen:
(Syntax, Strings/Zahlen, Variablen, Arrays)
Extended Pascal ( Erweitreung von Pascal) Name: Mehmet CELIK Matr :
The Programming Language Pascal
Prüfungsbesprechung Barbara Scheuner Vorlesung: Programmieren und Problemlösen Prof. Hans Hinterberger.
Extended Pascal Erweiterung von Pascal shadi Behzadipour shadi Shadi behzadipour.
Daten und Information in der ITG
Variablen und Datentypen
Sortierverfahren Mit VB 2010 express edition JBS Tr, info Q1.
X. Übungsblatt – Aufgabe X a)Erstellen Sie den Huffman-Codierungsbaum für die folgende Zeichenkette: ABRAKADABRASIMSALABIM Vorgehensweise: 1.Tabelle mit.
Funktionen, Felder und Parameter- übergabe. Funktionsaufruf mit Feld als Parameter: Parameter = Name des Feldes.
Arbeiten mit dem Terminal
Datentypen: integer, char, string, boolean
Variable Beim Ausschalten gehen alle in den Variablen gespeicherten Informationen verloren! Zweck: Speichern von Informationen, z. B. Zahlen Modellvorstellung:
Prüfungsbesprechung Barbara Scheuner
Datentypen: integer, char, string, boolean
SS 04 Christiane Rauh Christian Hellinger
The Programming Language Pascal
 Präsentation transkript:

Delphi Chars und Strings Informatik AG Delphi Chars und Strings

Zeichen Ein Computer kann nur Zahlen verarbeiten. Wie aber werden dann Zeichen (Buchstaben, Ziffern, Sonderzeichen) gespeichert? Schon relativ früh (1967) wurde erkannt das Systeme nur mit einer einheitlichen Codierung Daten austauschen können. Die ASCII-Tabelle wurde festegelegt (American Standard Code for Information Interchange) . Code …0 …1 …2 …3 …4 …5 …6 …7 …8 …9 …A …B …C …D …E …F 0… NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI 1… DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US 2… SP ! " # $ % & ' ( ) * + , - . / 3… 1 2 3 4 5 6 7 8 9 : ; < = > ? 4… @ A B C D E F G H I J K L M N O 5… P Q R S T U V W X Y Z [ \ ] ^ _ 6… ` a b c d e f g h i j k l m n o 7… p q r s t u v w x y z { | } ~ DEL

Zeichen In Pascal wird ein Zeichen als „char“ bezeichnet. Ein Char benötigt zur Speicherung 1 Byte. Die Deklaration einer Variablen sieht folgendermaßen aus: Var c: char; Mit einem einzelnen Zeichen läßt sich nicht sehr viel anstellen. Die wichtigsten Befehle die Pascal für Zeichen bereit hält sind. 1. Die Zuweisung a := ‘A‘; 2. ASCII-Wert i := ord(‘A‘); // ergibt 65 3. Zahl->Zeichen c := str(65); // ergibt ‚A‘ 4. Großbuchstabe c := upper(‘a‘);// ergibt ‚A‘ 5. Kleinbuchstabe c := lower(‘A‘);// ergibt ‚a‘

Zeichenketten Im normalen Leben haben wir es doch eher mit Zeichenketten zu tun, also mehrere einzelne Zeichen aneinandergereiht. Zeichenketten werden (nicht nur) in Pascal als ‚string‘ bezeichnet. Die Deklaration einer Variablen sieht dann folgendermaßen aus: Var s: string; Im Rechner wird ein String als Feld von Zeichen (Array) gespeichert. Einzelne Zeichen lassen sich wie bei einem Array über den Index ansprechen. Für s := ‘Hallo‘; wird im Speicher folgendes Abbild hinterlegt Speicherplatz 1 2 3 4 5 ASCII 72 ($48) $61 $6c $6f Zeichen H a l O S[1] ergibt somit ‚H‘ und s[5] ist ein ‚o‘

Zeichenketten ‚Hallo‘ ‚Hallo‘ = ‚1234‘ ‚12345‘ < ‚Hallo‘ ‚hallo‘ Auf Zeichenketten können die folgenden Operatoren angewandt werden: „+“ Hiermit werden Zeichenketten verbunden. ‘Guten ‘+‘Tag‘ ergibt somit ‘Guten Tag‘ „=,<>,…“ Zeichenketten lassen sich vergleichen. Dazu wird jedes einzelne Zeichen zweier Strings, beginnend von links, durch Umwandlung in den entsprechenden ASCII-Wert miteinander verglichen, bis das Ergebnis fest steht. ‚Hallo‘ ‚Hallo‘ = ‚1234‘ ‚12345‘ < ‚Hallo‘ ‚hallo‘ < ‚99‘ ‚100‘ > ‚DIE LÄNGE SPIELT KEINE GRÖSSE‘ ‚stimmt‘ <

Zeichenketten Wichtige Funktionen für Zeichenketten: Function length(s:string): integer Gibt die Anzahl der Zeichen des Strings s zurück function pos(Substr: string; S: string): Integer; Gibt die erste Position des Strings substr im String s zurück function copy(S; Index, Count: Integer): string; copiert aus dem String s ab der Position index count viele Zeichen function trim(s:string):string; Trim lösche alle Leerzeichen am Anfang und am Ende eines Strings function strtoint(s:string):integer; Wandelt einen String in einen Integerwert function inttostr(i:integer):String Wandelt eine Integer in einen String um.

Übungsaufgaben Für die Übungsaufgaben benötigen wir folgendes Formular: Die Aufgaben sollen im OnClick-Event des Buttons gelöst werden.

Übungsaufgaben Das Label soll den Text aus Edit1 und Edit2 zusammengefügt anzeigen. begin erg.caption := edit1.text+edit2.text; end; 2. Das Label soll die Anzahl der Zeichen aus beiden Editfeldern ausgeben. Inttostr und length werden benötigt. erg.caption := inttostr(length(edit1.text+edit2.text)); erg.caption := inttostr(length(edit1.text)+length(edit2.text));

Übungsaufgaben var i: integer; begin for i := 1 to 100 do Für die nächsten Aufgaben benötigt man die For-Next-Schleife und die Abfrage einer Bedingung. Zur Erinnerung noch einmal deren Syntax: var i: integer; begin for i := 1 to 100 do // was auch immer end; // alternativ for i := 100 downto 1 do var a,b: integer; begin if a = b then a := a +1; else a := a + 2; end; var a,b: integer; begin if a = b then a := a +1; end else a := a + 2; end;

Übungsaufgaben Zählt die ‚A‘ in den beiden Eingabefeldern und gebt sie in erg aus. var i : integer; anzahl: integer; begin anzahl := 0; for i := 1 to length(edit1.text) do if edit1.text[i] = ‘A‘ then anzahl := anzahl + 1; end; for i := 1 to length(edit2.text) do erg.caption := inttostr(anzahl); var i : integer; anzahl: integer; s : string; begin anzahl := 0; s := edit1.text+edit2.text; for i := 1 to length(s) do if edit1.text[i] = ‘A‘ then anzahl := anzahl + 1; end; erg.caption := inttostr(anzahl);

Übungsaufgaben Die Eingabe in Edit1 soll umgekehrt (Rückwärts) in Erg ausgegeben werden . var i, l : integer; s : integer; begin s := ‘‘; l := length(Edit1.text); for i := 1 to l do s := s + edit1.text[l-i+1]; erg.caption := s; end; var i, l : integer; s : integer; begin s := ‘‘; l := length(Edit1.text); for i := l downto 1 do s := s + edit1.text[i]; erg.caption := s; end;