کاراکترها (Chars)
نوع char، کد اسکی با ord، ساخت کاراکتر با chr و توابع succ/pred/upcase.
کاراکتر: کوچکترین واحد متن
نوع char دقیقاً یک کاراکتر نگه میدارد — یک حرف، رقم یا علامت:
var
c: char;
begin
c := 'A';
writeln(c); { A }
end;
char با تککوتیشن و فقط یک کاراکتر:
'A' ✅ — "A" و 'AB' ❌پشت صحنه: کد اسکی
هر کاراکتر در حافظه یک عدد است (کد اسکی). پاسکال بین این دو ترجمه دارد:
writeln(ord('A')); { 65 — کاراکتر به کد }
writeln(chr(65)); { A — کد به کاراکتر }
writeln(ord('a')); { 97 }
writeln(ord('0')); { 48 }
رابطه جالب حروف بزرگ و کوچک
{ 'a' = 'A' + 32 }
writeln(chr(ord('A') + 32)); { a }
به همین دلیل مقایسه
'a' < 'b' درست است — چون در واقع ۹۷ < ۹۸ مقایسه میشود!توابع کاراکتری
| تابع | کار | مثال | نتیجه |
|---|---|---|---|
upcase(c) | بزرگ کردن حرف | upcase('a') | 'A' |
succ(c) | کاراکتر بعدی | succ('a') | 'b' |
pred(c) | کاراکتر قبلی | pred('b') | 'a' |
ord(c) | کد اسکی | ord('A') | 65 |
chr(n) | کد به کاراکتر | chr(97) | 'a' |
پیمایش حروف الفبا
var c: char;
begin
for c := 'a' to 'e' do
write(c, ' ');
writeln; { a b c d e }
for c := 'z' downto 'x' do
write(c, ' ');
writeln; { z y x }
end;
مثال: رمز سزار (Caesar Cipher)
var
s: string;
i: integer;
begin
s := 'hello';
for i := 1 to length(s) do
s[i] := chr(ord(s[i]) + 3); { هر حرف ۳ تا جلو }
writeln(s); { khoor }
end;
مثال: تشخیص نوع کاراکتر
var c: char;
begin
c := '7';
if (c >= '0') and (c <= '9') then
writeln('رقم است')
else if (c >= 'a') and (c <= 'z') then
writeln('حرف کوچک')
else if (c >= 'A') and (c <= 'Z') then
writeln('حرف بزرگ')
else
writeln('علامت');
end;
خلاصه
- char = یک کاراکتر با تککوتیشن
ordکاراکتر→کد،chrکد→کاراکترsucc/predکاراکتر بعدی/قبلی- مقایسه کاراکترها = مقایسه کد اسکی
این مبحث بخشی از دوره آموزش کامل پاسکال است.