870.96K
Категория: ПрограммированиеПрограммирование

Символьные переменные

1.

Тема: Символьные
переменные
1
Учитель: Фоменко Н.В.

2.

2
Символьные переменные
Кроме чисел Паскаль умеет работать с символьной
информацией.
Для каждого символа в памяти выделяется отдельная
ячейка со всеми присущими ячейке параметрами:
именем и значением.
Символы – это буквы и все те значки, которые есть на
клавиатуре.
В Паскале для хранения символов используется тип char
(читается «чар»)
Все символы хранятся в памяти компьютера в виде кодов
За каждым символом закреплен свой числовой код.
Все коды сведены в таблицу

3.

3
Таблица ASCII
Обычно для хранения символов используется код ASCII.
Мощность компьютерного алфавита 256, т.е. в таблице 256
элементов, которым поставлены в соответствие коды – числа
от 0 до 255.

4.

4
Таблица ASCII
Символы, Соответствующие кодам 0 -31, являются
управляющими (Enter, ctrl и т.п.), остальные – изображаемые.
К изображаемым относится и пробел, имеющий код 32.
Знакам препинания, знакам арифметических операций,
прописным и строчным буквам латинского алфавита
соответствуют коды 33-127.
Буквам национального алфавита соответствуют коды от 128255.
В компьютере коды записаны в двоичном виде:
Код
65
66
90
48
49
50
Двоичный код
01000001
01000010
01011010
00110000
00110001
00110010
Символ
A
B
Z
0
1
2
Цифры в таблице ASCII являются не числовыми данными, а
тоже символами

5.

5
Тип char
Переменная типа char принимает только один символ.
При выполнении операции присваивания этот символ
заключается в апострофы, а при вводе с клавиатуры – нет.
Пример1
Var a,b : char;
В ответ на приглашение надо нажать на
клавиатуре любой символ без
Begin
апострофов
a:=’t’;
Writeln (‘введите символ’);
Readln(b);

6.

6
Пример программы с
переменными типа char
Что
Что нужно
получится,
сделать,
еслиесли
запустить
нам нужен
эту программу
только символ
на ‘a’
выполнение и в ответ на приглашение каждый раз
из этой строки?
вводить слово cat?
Нужно использовать только переменную y!
var x,y: char;
begin
writeln('введите несколько символов');
cat
readln (x);
с
writeln(x);
writeln ('введите еще несколько символов');
cat
readln(x,y);
са
a
writeln (x,y); writeln(y);
End.

7.

7
Символьные константы
const t=’leto’;

8.

8
Строковые переменные
Есть еще один тип переменных, работающий с символьными
строками это тип string.
Переменной этого типа можно присвоить слово целиком и
даже целую строку символов.
Переменной этого типа можно присвоить значение,
получаемое сцеплением переменных типа char
Var x,y:
string;
x1,x2:
char; s: string;
Begin
Writeln('введите
слово’);
x1:='q';
cat
Readln
x2:='w';(x);
Writeln
(x);
s:=x1+x2;
Writeln('введите
предложение’); qw
Writeln(s);
Readln (y);
I have a cat
I have a cat
Writeln (y);
Однако, изучение типа string не входит в программу 8 класса!!

9.

9
Символьные функции
Ord(x) – возвращает код символа, занесенного в
переменную х
Chr(x) – возвращает символ по известному коду
Upcase(x) – преобразует строчную латинскую букву
в прописную. Любой другой символ остается без
изменения

10.

Символьные функции
Ord(x) –
Chr(n) –
возвращает код символа,
занесенного в переменную x
t
Q
116
81
ORD
10
возвращает символ по
известному коду
122
82
z
CHR
R
Ord(‘Q’)→81
Chr(122)→z
Ord(‘t’)→116
Chr(82)→R

11.

Что делает эта программа?
11
Var n: integer; x,y: char;
Begin
x:='L';
n:=Ord(x);
L
Writeln (x);
Writeln (n);
76
x:='A';
Writeln (x);
A
x:=Chr (n);
L
Writeln (x);
y:=upcase(x);
L
Writeln (y);
y:=upcase('t');
T
Writeln (y);
End.

12.

Функции порядкового типа
Pred(x) –
Succ(x) –
Возвращает
предшествующий символ
относительно значения
переменной х
D
CPRED D
возвращает последующий
символ относительно
значения переменной х
D
D E
SUCC
12
Pred(‘D’)→’C’
Succ(‘D’)→E

13.

А что выведет эта программа?
13
Var x1,x2,x3 : char;
Begin
x1:=’L’;
x2:=Pred(x1);
x3:=Succ(x1);
Writeln(x1,’ ’ ,x2,’ ’,x3)
End.
LKM

14.

Особенность в таблице ASCII-кодов
+32
Код строчной буквы на 32 больше
кода прописной буквы
Ord(‘T’)=84, a Ord(‘t’)=116
14
Ord(‘T’)+32=Ord(‘t’)
Chr(Ord(‘T’)+32)=’t’
Ord(T)
Ord(t)

15.

Вопросы для повторения
Каков результат функции Ord(‘F’)?
Каков результат функции Chr(87)?
На сколько позиций отличается код
заглавной и строчной букв? Код какой буквы
больше?
15Каков будет результат выполнения
команды:
C:=Succ(Pred(Succ(‘D’)))?
English     Русский Правила