Κεφάλαιο 13.2
Συναρτήσεις Τακτικών Τύπων.
Ο πίνακας χαρακτήρων ASCII.
2
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
! # $ % & ' ( ) * + , . / 0 1 2 3
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M
78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g
104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129
h i j k l m n o p q r s t u v w x y z { | } ~ • €
1/11/2013
130 , 131 ƒ 132 „ 133 … 134 † 135 ‡ 136 137 ‰ 138 139 ‹ 140 141 142 143 144 145 ‘ 146 ’ 147 “ 148 ” 149 • 150 – 151 — 152 153 ™ 154 155 ›
156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181
΅ Ά £ ¤ ¥ ¦ § ¨ © « ¬ ® ― ° ± ² ³ ΄ µ
182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207
¶ · Έ Ή Ί » Ό ½ Ύ Ώ ΐ Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο
208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233
Π Ρ
234 235 236 Σ 237 T 238 Υ 239 Φ 240 Χ 241 Ψ 242 Ω 243 244 245 246 247 248 249 250 α 251 β 252 γ 253 δ 254 ε 255 ζ η θ ι
Κέρος Α. Ιωάννης
κ λ μ ν ξ ο π ρ ς σ τ υ φ χ ψ ω ϊ ϋ ό ύ ώ
Chr. Δέχεται μία ακέραια τιμή x από 0 .. 255.
Chr( x: integer ) : char
Επιστρέφει τον ASCII χαρακτήρα του αριθμού x.
Παραδείγματα.
3
Chr(80)
P
Chr(231)
η
Chr(49)
1
1/11/2013
Κέρος Α. Ιωάννης
Ord. (1η Περίπτωση) Δέχεται έναν χαρακτήρα x.
Επιστρέφει την ASCII τιμή του χαρακτήρα x (0..255).
ord( x ) : integer Παραδείγματα.
4
Ord(‘F’)
70
Ord(‘r’)
114
1/11/2013
Κέρος Α. Ιωάννης
Ord. (2η Περίπτωση) Δέχεται έναν ακέραιο αριθμό x.
Επιστρέφει τον ίδιο τον αριθμό x.
ord( x ) : integer Παραδείγματα. Ord(49)
5
49
1/11/2013
Κέρος Α. Ιωάννης
Ord. (3η Περίπτωση) Δέχεται μία λογική τιμή x (True/False).
Επιστρέφει 0 αν η τιμή x ήταν False και 1 αν ήταν True.
ord( x ) : integer Παραδείγματα. Ord(false) Ord(true)
6
0 1
1/11/2013
Κέρος Α. Ιωάννης
Pred. Δέχεται μία τιμή x τακτικού τύπου.
pred( x ) : ordinal type Παραδείγματα.
7
pred(‘C’) pred(‘λ’)
κ
pred(‘6’) pred(15)
5 14
pred(true)
false
pred(false)
true
Επιστρέφει την προηγούμενη τιμή της x.
B
1/11/2013
Κέρος Α. Ιωάννης
Succ. Δέχεται μία τιμή x τακτικού τύπου.
succ( x ) : ordinal type Παραδείγματα.
8
succ(‘C’) succ(‘λ’)
μ
succ(‘6’) succ(15)
7 16
succ(true)
false
succ(false)
true
Επιστρέφει την επόμενη τιμή της x.
D
1/11/2013
Κέρος Α. Ιωάννης
Παράδειγμα 1ο (Σελίδα 133).
(pk13a1.pas)
Εντολές Pascal Writeln(chr(80));
P
Writeln(ord(70));
70
Writeln(ord(‘P’));
80
Writeln(succ(‘P’));
Q 9
Writeln(succ(‘8’)); Writeln(pred(‘A’));
9
Writeln(ord(230));
@ 230
Writeln(ord(-210));
-210
Writeln(succ(8));
9 1/11/2013
Κέρος Α. Ιωάννης
Παράδειγμα 1ο (Σελίδα 133) συνέχεια …. Εντολές Pascal Writeln(succ(-330));
-329
Writeln(pred(-329));
-330
Writeln(pred(0));
-1
Writeln(ord(Maxint));
32767 32770
Writeln(pred(Maxint+4)); Writeln(succ(-Maxint+3));
10
Writeln(ord(false));
-32763 0
Writeln(ord(true));
1
1/11/2013
Κέρος Α. Ιωάννης
Παράδειγμα 2ο (Σελίδα 134) .
(pk13a2.pas)
Εντολές Pascal Writeln(ord(‘0’));
48
Writeln(ord(‘1’));
49
Writeln(ord(‘2’));
50
x:=ord(‘1’)-ord(‘0’); 1
Writeln(x);
x:=ord(‘2’)-ord(‘0’); 2
Writeln(x);
11
1/11/2013
Κέρος Α. Ιωάννης
Παράδειγμα 2ο (Σελίδα 134) συνέχεια…. Εντολές Pascal
12
Writeln(chr(7+ord(‘0’)));
7
Writeln(chr(4+ord(‘0’)));
4
Writeln(chr(0+ord(‘0’))); Writeln(chr(23+ord(‘0’)));
0 G
Writeln(chr(23 div 10+ord(‘0’)));
2
Writeln(chr(23 mod 10+ord(‘0’)));
3
1/11/2013
Κέρος Α. Ιωάννης
Παράδειγμα 3ο (Σελίδα 133).
(pk13a3.pas)
Μετατροπή ψηφίου τύπου χαρακτήρα στον ισοδύναμο ακέραιο.
13
Program exam; Uses WinCrt; Var x:char; y:integer; Begin readln(x); y:= ord(x)-ord(‘0’); writeln(y); End.
Έστω ‘7’ ord(‘7’)-ord(‘0’)=55-48=7 7 1/11/2013
Κέρος Α. Ιωάννης
Παράδειγμα 4ο (Σελίδα 134).
(pk13a4.pas)
Μετατροπή μονοψήφιου ακεραίου στον ισοδύναμο χαρακτήρα.
14
Program exam; Uses WinCrt; Var x:integer; y:char; Begin readln(x); y:= chr(x+ord(‘0’)); writeln(y); End.
Έστω 8 chr(8+48)=chr(56)=‘8’ ‘8’ 1/11/2013
Κέρος Α. Ιωάννης
Παράδειγμα 5ο (Σελίδα 136).
(pk13a5.pas)
Μετατροπή κεφαλαίου χαρακτήρα στον αντίστοιχο πεζό.
15
Program exam; Uses WinCrt; Var x,y:char; Begin readln(x); if (x>=‘A’) and (x<=‘Z’) then begin y:=chr(ord(x)+32); writeln(y); end else writeln(‘Δεν ήταν κεφαλαίος χαρακτήρας’); End. 1/11/2013
Κέρος Α. Ιωάννης
Παράδειγμα 6ο (Σελίδα 135).
(pk13a6.pas)
Εμφάνιση των χαρακτήρων ASCII.
16
Program exam; Uses WinCrt; Var x:integer; Begin x:=0; while x<256 do begin writeln(x,’,’,chr(x)); x:=x+1; end; End. 1/11/2013
Κέρος Α. Ιωάννης