Символьный и строковый типы данных.ppt
- Количество слайдов: 13
Символьный и строковый типы данных. МОУ СОШ № 17 Матвеева А. Г.
I. n n Символьный тип. Тип Char — стандартный символьный тип. Значение типа char - это непустой символ из алфавита ПК, заключенный в одинарные кавычки, например ‘а‘, ‘ 7‘ и т. д. - классическая форма записи символов. Каждому символу приписывается целое число в диапазоне 0. . . 255. Это число в служит кодом внутреннего представления символа, для кодировки используется код ASCII. Это 7 - битный код, т. е. с его помощью можно закодировать лишь 128 символов от 0 до 127.
существует ещё две записи символьных величин: представление символа кодом ASCII и с помощью специального префикса # , например: n #97=chr(97)='a', n #32=chr(32)=' ' ; (пробел) n
Строковый тип ( string) n n n n - динамическая переменная, т. к. может иметь различные длины в пределах объявленных границ. Например: st 32: string[32]; st: string[255]; описание string без объявления длины, отводит место в 255 символов, это базовый строковый тип, он совместим со всеми производными строковыми типами. При попытке записать переменную строку длинее, чем объявлено в описании "лишняя " часть будет отсечена. Значением строки может быть любая последовательность символов заключенная в кавычки ‘фы78 рп‘ и т. п. . В строку можно включать символы в записи по ASCII - коду, через префикс #. Например: #179'Номер п/п '#179'ФИО'#179'Должность'#179 (код 179 вертикальна черта). В такой записи не должно быть пробелов вне кавычек. Строки можно рассматривать как массив символов. Символ из строки можно изъять по его номеру, например: st: ='asdfg'; st[4]: ='f';
Операции над символами n n Символы можно присваивать и сравнивать друг с другом. При сравнении символы считаются равными, если равны их ASCII коды, и один больше другого. Если имеет больший ASCII- код. Например: 'R'< 'r'; 'N'= 'N';
К символьным переменным и значениям могут быть применены следующие функции: n n n chr(x: byte): char - возвращает символ ASCIIкода x; ord(c: char): byte - возвращает ASCII -код символа c; pred(c: char): char - выдает предшествующий c символ; succ(c: char): char - выдает последующий за c символ; upcase(c: char): char - переводит символы 'a', . . . , 'z' в верхний регистр 'A', . . . , 'Z'.
Операции над строками . Строки можно присваивать, объединять, сравнивать. n Объединение строк записывается в естественном виде, применяя знак "+". Если сумма получается длинее, чем описана длина левой части оператора присваивания, то излишек отсекается. n Пример: st 1: =‘F 1 -‘; st 2: =‘Help‘; st 3: =st 1+st 2; {F 1 - Help}. n Сравнение строк - происходит посимвольно, начиная от первого символа в строке. Строки равны, если имеют одинаковую длину и посимвольно эквивалентны. n Например: 'asdf '= 'asdf '; 'asdf '> 'asd. F '; ' a. Bcg '< 'ab '; ' ' > ''. n
Решение задач. n Значениями литерных переменных c 2, c 1, c 0 являются цифры. Присвоить целой переменной k число, составленное из этих цифр ( например, если c 2='8', c 1='0', c 0='5', то k=805);
n 1. Решение. При решении задачи применить значения ASCII- кодов, функцию ord(0)=48 ord(1)=49 ord(2)=50 ord(3)=51 ord(4)=52 ord(5)=53 ord(6)=54 ord(7)=55 ord(8)=56 ord(9)=57 Ord('0')=48; ord('8')= 56; ord('5')=53; Var c 0, c 1, c 2: char; k, n 0: integer; begin readln(c 2, c 1, c 0); n 0: = ord('0'); k: = 100*(ord(c 2) - n 0) + 10*(ord(c 1) - n 0) + (ord(c 0) - n 0); writeln('k=', k); end.
Присвоить литерным переменным с2, с1, с0 соответственно левую, среднюю и правую цифры трехзначного числа k. n Например k=536 C 2=‘ 5’, c 1=‘ 3’, c 0=‘ 6’. n
Решение. При решении использовать ASCII- коды, функцию chr, ord. Var c 0, c 1, c 2: char; k, n 0, d: integer; begin readln(k); n 0: =ord('0'); d: =k div 100; c 2: =chr(n 0+d); d: =k mod 100 div 10; c 1: = chr(n 0 +d); d: = k mod 10; c 0: = chr(n 0 + d); write(c 2, ' ', c 1, ' ', c 0); end. n
Домашнее задание Задачи. n Вычислить сумму порядковых номеров всех букв входящих в слово “ program”. n Напечатать текст, образованный литерами с порядковыми номерами 65, 71 и 69. n Дана последовательность символов. Имеющая вид: за которой следует точка. Вычислить значение этой алгебраической суммы. n Дана непустая последовательность непустых слов из латинских букв; соседние слова отделены друг от друга запятой, за последним словом точка. Определить количество слов, которые: а) начинаются с буквы «а» б)начинаются и оканчиваются одной и той же буквой.