Рабочая тетрадь по теме "Данные символьного типа в языке программирования Pascal"
Submitted by Людмила Ивановна Орлова on чт, 03/11/2011 - 17:32
ЧАСТЬ I. Рабочая тетрадь для ученика
1. ПОНЯТИЕ О СИВОЛЬНЫХ ТИПАХ ДАННЫХ
Символьный тип данных – это любой символ, заключенный в одиночные кавычки.
Значением символьного типа данных является один символ, который занимает 1 байт.
Символами могут быть буквы, цифры, пробелы и любые другие знаки, за исключением знака кавычек.
Пример:
a1:=’и’ {данное символьного типа}
a2:=’1’ {данное символьного типа,заметим, что символ 1 отличается от целого числа 1 тем, что он не может быть использован в арифметических операциях.}
a3:=1 {не является данным символьного типа }
a4:=’F’ {данное символьного типа}
a5:=’text’ {не является данным символьного типа}
a6:=F{не верная запись данного символьного типа}
В языке Pascalиспользуется множество символов, находящихся в таблице кодов, называемой ASCII - американский стандартный код обмена информацией.
Все символы упорядочены, т.к. имеют свой личный номер. Десятичные коды заглавных букв на 32 меньше десятичных кодов строчных букв как в русском, так и в латинском алфавите.
Важно, что соблюдаются следующие отношения:
'A' < 'B' < 'C' < ... < 'X' < 'Y' < 'Z'
'0' < '1' < '2' < ... < '7' < '8' < '9'
Для проверки равенства или неравенства переменных символьного типа могут использоваться операторы булевого сравнения.
Задание для самостоятельного выполнения
Используя часть кодовой таблицы ASCII, определите десятичный код символов:
‘+’ - ___________
‘?’ - ___________
‘W’ - __________
‘w’ - ___________
‘Ф’- ___________
‘ф’ - ___________
2. ОПИСАНИЕ ДАННЫХ СИМВОЛЬНОГО ТИПА
Символьные данные (переменные и постоянные) должны быть описаны в программе: переменные - в разделе описания переменных с помощью служебного слова char,постоянные - в разделе описания постоянных.
Описание постоянных (констант) символьного типа:
Const
S=’*’;
Описание переменных символьного типа:
Var
A: char;
Задания для самостоятельного выполнения
1. Определите, какие из значений могут принимать символьные переменные типа char:
□ 345 □ ‘345’ □ т
□ ‘т’ □ 4 □ ‘4’
2. Найдите ошибки в записях символьных переменных (если они есть). Ответ поясните:
Ввод, присвоение и вывод символьных переменных осуществляются так же, как и для числовых типов данных.
Пример:
Составить программу, по которой компьютер многократно вычисляет сумму А+В при различных значениях А и В. в конце каждого этапа появляется запрос о продолжении или прекращении вычислений: "Завершить программу?(Д/Н)".
Var A,B:real
C : char;
Begin
Repeat
Write('Введитедвачисла'); Readln(a,b);
Writeln(a+b:0:2);
Writeln('Завершить программу?(Д/Н)')
Readln(с);
Until с='Д'; {программа завершит работу если будет введено Д}
Readln
End.
Операция #
#<положительная константа целого типа от 0 до 255>
Результат - символ, номер которого в таблице ASCII соответствует заданному числу. Например,
#100 = 'd'#39 = ''' {апостроф}#232 = 'и' #1000 {ошибка: выход за границы диапазона типаchar}
Операция сравнения
К символьным переменным применимы операции сравнения <, <>, >, =, ≤, ≥, результат которых также опирается на номера символов из таблицы ASCII.
Например, ‘А’ < ‘В’
Стандартные функции
chr(k)
k:byteилиinteger
"превращает" номер символа в символ. Действие этой функции аналогично действию операции #.
Succ('0')='1' - символ, следующий за символом 0, равен символу 1.
upcase(c)
lowcase(c)
c: char
upcase(c)преобразует строчную букву в прописную.
lowcase(c)преобразует прописную букву в строчную.
Примеры:
1) c:=lowcase('F');
writeln(c);
Результат: f
2) ch:=upcase('f');
writeln(ch);
Результат: c=F
Задания для самостоятельного выполнения
1. Используя фрагмент кодовой таблицы ASCII, определите значения логических выражений (Trueили False)
‘4’<’Э’ Ответ: _______________
‘Z’>’z’Ответ:_______________
‘D’<’Д’Ответ:_______________
2. Определите значение переменной Ch(Ch:char):
Ch:=Chr(224); Ответ: ________________
Ch:=Upcase(‘n’); Ответ: ________________
Ch:=LowCase(‘W’); Ответ: ________________
Ch:=Pred(‘R’); Ответ: ________________
Ch:=Succ(‘N’); Ответ: ________________
3. Определите значение переменной k(k: byte):
k:=ord(‘я’); Ответ: ________________
k:=ord(‘V’)+4; Ответ: ________________
k:=ord(chr(56)); Ответ: ________________
4. ПРАКТИКУМ ПО ПРОГРАММИРОВАНИЮ
Char1.Дан символ C. Вывести его код (то есть номер в кодовой таблице).
Char2.Дано целое число N (32 <= N <= 126). Вывести символ с кодом, равным N.
Char3.Дан символ C. Вывести два символа, первый из которых предшествует символу C в кодовой таблице, а второй следует за символом C.
Char4.Дано целое число N (1 ≤ N ≤ 26). Вывести N первых прописных (то есть заглавных) букв латинского алфавита.
Char5.Дано целое число N(1 ≤ N≤ 26). Вывести Nпоследних строчных (то есть маленьких) букв латинского алфавита в обратном порядке (начиная с буквы «z»).
Char6.Дан символ C, изображающий цифру или букву (латинскую или русскую). Если Cизображает цифру, то вывести строку «digit», если латинскую букву — вывести строку «lat», если русскую — вывести строку «rus»
Char7.Дано целое число N(> 0) и символ C. Вывести строку длины N, которая состоит из символов C.
Char8.Дано четное число N (> 0) и символы C1 и C2. Вывести строку длины N, которая состоит из чередующихся символов C1 и C2, начиная с C1.
5. ЗАДАЧИ ДЛЯ ДОПОЛНИТЕЛЬНОГО РЕШЕНИЯ
Вывести в одну строку АаБбВвГг.
Запросите у пользователя символ и выведите на экран 5 символов, следующих за ним в таблице американских стандартных кодов обмена информацией. Проверьте, есть ли среди них знаки препинания.
Запросите у пользователя символ и выведите на экран 5 символов, предшествующих данному в таблице американских стандартных кодов обмена информацией. Проверьте, есть ли среди них знаки простейших математических действий.
Определите выведите на экран коды русских заглавных букв и латинских прописных.
Определите и выведите на экран коды русских прописных букв и латинских заглавных.
Вывести в одну строку ZYY...AA...A.
Составьте программу, проверяющую, является ли введенный символ буквой латинского алфавита или скобкой (учесть круглые, фигурные и квадратные скобки).
Запросите у пользователя несколько символов и выведите на экран их коды. Проверьте, являются ли они буквами.
Вывести треугольник:
A B C ...Y Z
B C …Y Z
C ...Y Z
ЧАСТЬ II. Рабочая тетрадь для учителя (с ответами)
1. ПОНЯТИЕ О СИВОЛЬНЫХ ТИПАХ ДАННЫХ
Символьный тип данных – это любой символ, заключенный в одиночные кавычки.
Значением символьного типа данных является один символ, который занимает 1 байт.
Символами могут быть буквы, цифры, пробелы и любые другие знаки, за исключением знака кавычек.
Пример:
a1:=’и’ {данное символьного типа}
a2:=’1’ {данное символьного типа,заметим, что символ 1 отличается от целого числа 1 тем, что он не может быть использован в арифметических операциях.}
a3:=1 {не является данным символьного типа }
a4:=’F’ {данное символьного типа}
a5:=’text’ {не является данным символьного типа}
a6:=F{не верная запись данного символьного типа}
В языке Pascalиспользуется множество символов, находящихся в таблице кодов, называемой ASCII - американский стандартный код обмена информацией.
Все символы упорядочены, т.к. имеют свой личный номер. Десятичные коды заглавных букв на 32 меньше десятичных кодов строчных букв как в русском, так и в латинском алфавите.
Важно, что соблюдаются следующие отношения:
'A' < 'B' < 'C' < ... < 'X' < 'Y' < 'Z'
'0' < '1' < '2' < ... < '7' < '8' < '9'
Для проверки равенства или неравенства переменных символьного типа могут использоваться операторы булевого сравнения.
Ответы на задание для самостоятельного выполнения
Используя часть кодовой таблицы ASCII, определите десятичный код символов:
‘+’ - 43
‘?’ - 63
‘W’ - 87
‘w’ - 119
‘Ф’- 212
‘ф’ - 244
2. ОПИСАНИЕ ДАННЫХ СИМВОЛЬНОГО ТИПА
Символьные данные (переменные и постоянные) должны быть описаны в программе: переменные - в разделе описания переменных с помощью служебного слова char,постоянные - в разделе описания постоянных.
Описание постоянных (констант) символьного типа:
Const
S=’*’;
Описание переменных символьного типа:
Var
A: char;
Ответы на задания для самостоятельного выполнения
1. Определите, какие из значений могут принимать символьные переменные типа char:
□ 345 □ ‘345’ □ т
þ‘т’ □ 4 þ‘4’
2. Найдите ошибки в записях символьных переменных (если они есть). Ответ поясните:
а) А: = ‘и’
б) С2: = "в"
в) D: = к
г) 64N: = ‘5’
д) N64:=’5’
е) N5:=5
б) ошибка: вместо одиночных кавычек записаны “ “
в) ошибка: символ не заключен в одиночные кавычки (апострофы)
г) ошибка: имя переменной указано не верно (оно не может начинаться с цифры
е) ошибка: символ 5 не заключен в одиночные кавычки
3. ОПЕРАЦИИ НАД ДАННЫМИ СИМВОЛЬНОГО ТИПА
Ввод, присвоение и вывод символьных переменных осуществляются так же, как и для числовых типов данных.
Пример:
Составить программу, по которой компьютер многократно вычисляет сумму А+В при различных значениях А и В. в конце каждого этапа появляется запрос о продолжении или прекращении вычислений: "Завершить программу?(Д/Н)".
Var A,B:real
C : char;
Begin
Repeat
Write('Введитедвачисла'); Readln(a,b);
Writeln(a+b:0:2);
Writeln('Завершить программу?(Д/Н)')
Readln(с);
Until с='Д'; {программа завершит работу если будет введено Д}
Readln
End.
Операция #
#<положительная константа целого типа от 0 до 255>
Результат - символ, номер которого в таблице ASCII соответствует заданному числу. Например,
#100 = 'd'#39 = ''' {апостроф}#232 = 'и' #1000 {ошибка: выход за границы диапазона типаchar}
Операция сравнения
К символьным переменным применимы операции сравнения <, <>, >, =, ≤, ≥, результат которых также опирается на номера символов из таблицы ASCII.
Например, ‘А’ < ‘В’
Стандартные функции
chr(k)
k:byteилиinteger
"превращает" номер символа в символ. Действие этой функции аналогично действию операции #.
Succ('0')='1' - символ, следующий за символом 0, равен символу 1.
upcase(c)
lowcase(c)
c: char
upcase(c)преобразует строчную букву в прописную.
lowcase(c)преобразует прописную букву в строчную.
Примеры:
1) c:=lowcase('F');
writeln(c);
Результат: f
2) ch:=upcase('f');
writeln(ch);
Результат: c=F
Ответы на задания для самостоятельного выполнения
1. Используя фрагмент кодовой таблицы ASCII, определите значения логических выражений (Trueили False)
‘4’<”Э” Ответ:True
‘Z’>”z” Ответ:False
‘D’<’Д’ Ответ:True
2. Определите значение переменной Ch(Ch:char):
Ch:=Chr(224); Ответ: а
Ch:=Upcase(‘n’); Ответ: N
Ch:=LowCase(‘W’); Ответ: w
Ch:=Pred(‘R’); Ответ: Q
Ch:=Succ(‘N’); Ответ: O
3. Определите значение переменной k(k: byte):
k:=ord(‘я’); Ответ: 255
k:=ord(‘V’)+4; Ответ: 90
k:=ord(chr(56)); Ответ: 56
4. ПРАКТИКУМ ПО ПРОГРАММИРОВАНИЮ
Для каждой задачи приведен один из вариантов решения
Char1.Дан символ C. Вывести его код (то есть номер в кодовой таблице).
Program char1;
Var c: char;
begin
read(c); writeln(ord(c));
end.
Char2.Дано целое число N (32 <= N <= 126). Вывести символ с кодом, равным N.
Program char2;
Var c: char;
N:integer;
begin
read(N);
c:=chr(N);
writeln(c);
end.
Char3.Дан символ C. Вывести два символа, первый из которых предшествует символу C в кодовой таблице, а второй следует за символом C.
Program char3;
Var c: char;
begin
read(c);
writeln(pred(c),' ',succ(c));
end.
Char4.Дано целое число N (1 ≤ N ≤ 26). Вывести N первых прописных (то есть заглавных) букв латинского алфавита.
Program char4;
Var N,i,k: integer;
Ch: char;
begin
readln(N);
k:=ord('A'); {кодсимволаA}
for i:=k to k+N-1 do
begin
Ch:=chr(i); {очередной символ с кодом i}
write(Ch,' ');
end;
end.
Char5.Дано целое число N(1 ≤ N≤ 26). Вывести Nпоследних строчных (то есть маленьких) букв латинского алфавита в обратном порядке (начиная с буквы «z»).
Program char5;
var
N,i,k: integer;
Ch: char;
begin
readln(N);
k:=ord('z'); {кодсимволаz}
for i:=k downto k-N+1 do
begin
Ch:=chr(i); {очередной сивол с кодом i}
write(Ch,' ');
end;
end.
Char6.Дан символ C, изображающий цифру или букву (латинскую или русскую). Если Cизображает цифру, то вывести строку «digit», если латинскую букву — вывести строку «lat», если русскую — вывести строку «rus»
Program char6;
var
C: char;
k: integer; {кодсимволаc}
begin
readln(c);
k:=ord(c);
If (k>=48) and (k<=57) Then write ('digit');
If (k>=65) and (k<=90) or (k>=97) and (k<=122) Then write('lat');
If (k>=192) and (k<=255) Then write ('rus');
end.
Char7.Дано целое число N(> 0) и символ C. Вывести строку длины N, которая состоит из символов C.
Programchar7;
var
C: char;
N,i: integer;
begin
cls;
readln(N, c);
For i:=1 to N do write(c);
end.
Char8.Дано четное число N (> 0) и символы C1 и C2. Вывести строку длины N, которая состоит из чередующихся символов C1 и C2, начиная с C1.
На: Рабочая тетрадь по теме "Данные символьного типа в языке про
Очень хороший материал к уроку! Особенно понравилась часть с практикумом по программированию!