Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Символьные типы данных
Символьный тип Char – представляет собой тип данных, предназначенный для хранения одного символа (буквы, знака или кода). В переменную этого типа может быть помещен любой из 256 символов расширенного кода ASC II. Это буквы ['A'…'Z', 'a'…'z'], ['А'…'Я', 'а'…'я'], цифры ['0'…'9'], знаки препинания и специальные символы. Переменная типа Char в памяти занимает один байт. Этот тип обладает некоторыми особенностями. В разделе описаний переменных объявляется следующим образом: Var сh:char или ch, cb, al:char; Обычно значения переменных типа Char задаются в апострофах. Например: Var сh:char; Begin сh: = 'A'; writeln(ch); End. Символьные типы данных относятся к перечисляемым типам, поэтому они могут быть использованы для организации циклов. Например: Var сh:char; Begin for сh: = 'a' to 'z' do writeln(ch); End. Или for сh: = 'z' downto 'a' do writeln(ch); Компьютер воспринимает нажатие клавиш в виде ASC II кода. В Турбо Паскаль предусмотрена работа с символьными типами данных в виде ASC II кода. Для этого перед числом, обозначающим код ASC II нужно поставить знак #. Таблица ASC II кода.
Для ввода символов с клавиатуры обычно используют следующие конструкции: Var сh:char; Begin ………….. writeln('Введите символ'): readln(ch): End. К типу Char определены операции отношения. Например. Var Сh, сl:char; Begin ………….. ch: ='a'; cl: ='b'; if ch < cl then writeln(ch, '_', cl) else writeln(cl, '_', ch); …………………. End. В данном случае будет выведена надпись а - b, поскольку b>a, вернее больше ее ASC II код. В операциях отношения сравниваются именно ASC II коды.
Пример: Программа, выводящая на экран последовательность букв вида:
a a b a b c ..... a b c... x y z Program aab; Var C, d: char; Begin for c:='a' to 'z' do begin For d:='a' to 'c' do write(d, ' '); writeln; end; End. Пример: Программа, подсчитывающая число пробелов в последовательности вводимых символов. Program summprob; Var Ch: char; x, n: integer; Begin n:=0; read(ch); while ch<>#13 do begin if c=#32 then n:=n+1; read(ch); end; write('Число пробелов равно',n); End. К типу Char применимы следующие встроенные функции. Функция Chr(x: byte): char. Возвращает символ, соответствующий ASC II – коду числа x; Функция Ord(x: char): Byte. Возвращает число, соответствующее символу x в ASC II – таблице; Функция UpCase(x: char): char. Преобразует символы из строчных букв в прописные, но распространяется только на литеры латинского алфавита, русские просто игнорируются; Функция Pred (x: char): char. Возвращает символ, который предшествует в ASC II таблице символу x; Функция Succ (x: char): char. Возвращает символ, который следует в ASC II – таблице за символом x. Следующая короткая программа выдает все символы таблицы ASC II на экран монитора. Program Byte_To_Chr; Var i: Byte; Begin For i:=0 to 255 do writeln (i, '=', chr(i)); End. Тип данных char в программах на Турбо Паскаль часто используют для хранения вводимых с клавиатуры одно-литерных ответов на запросы меню. Например, часто используются конструкции вида: …………… repeat ch:=readkey; ………………. until (ch = 'n') or (ch = 'N'); Для использования в программе функции readkey необходимо подключить модуль CRT, который существенно расширяет возможности использования символьных типов. Он будет подробно рассмотрен ниже. Задачи 1. Вывести на экран последовательность заглавных и строчных букв русского алфавита. 2. Ввести wtkjt число n, последовательность символов S1,…, Sn, (n>1). Подсчитать: а) сколько раз среди данных символов встречается символ + и сколько раз – символ *. б) общее число вхождений символов +, -, * в последовательность S1,…, Sn. 3. Ввести целое число n, последовательность символов S1,…, Sn, (n>1). Выяснить, встречается ли в данной последовательности символов группа из трех стоящих рядом точек. 4. Ввести целое число n, последовательность символов S1,…, Sn, (n>1). Выяснить, имеются ли в последовательности S1,…, Sn члены Si, Si+1 такие, что Si – запятая, а Si+1 – тире. 5. Ввести целое число n, последовательность символов S1,…, Sn, (n>1). Определить позицию первой и последней запятой. 6. Ввести целое число n, последовательность символов S1,…, Sn, (n>1): а) выяснить, верно ли, что среди, S1,…, Sn имеются все буквы, входящие в слово «шина». б) выяснить, имеется ли среди S1,…, Sn пара соседствующих букв «но» или «он». в) выяснить, имеется ли среди S1,…, Sn пара соседствующих одинаковых символов. 7. Ввести целое число n, последовательность символов S1,…, Sn, (n>1). Выяснить, где больше символов «а» – в первой половине текста или во второй (не исключается и случай равенства). 8. Ввести целое число n, последовательность символов S1,…, Sn, (n>1). Подсчитать максимальное число букв «А», идущих подряд в данной последовательности. 9. Ввести целое число n, последовательность символов S1,…, Sn, (n>1). Определить общее число латинских букв (малых и больших), входящих в данную последовательность символов. 10. Разработать программу ввода последовательности символов (не больше 200 символов, образующих текст), которая не реагирует на ввод лишних пробелов (не вводит лишние пробелы).
Date: 2016-05-16; view: 487; Нарушение авторских прав |