? 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"> ? 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">

Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Delphi Chars und Strings

Ähnliche Präsentationen


Präsentation zum Thema: "Delphi Chars und Strings"—  Präsentation transkript:

1 Delphi Chars und Strings
Informatik AG Delphi Chars und Strings

2 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

3 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‘

4 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‘

5 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‘ <

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

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

8 Ü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));

9 Ü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;

10 Ü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);

11 Ü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;


Herunterladen ppt "Delphi Chars und Strings"

Ähnliche Präsentationen


Google-Anzeigen