Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 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 кода.

Код Клавиша или комбинация клавиш Код Клавиша или комбинация клавиш
Алфавитно-цифровые клавиши
  Backspace (Забой)   Tab (Табуляция)
  Enter   Пробел
  !   ''
  #   $
  %   &
  '   (
  )   *
  +   ,
    .
  / 48…57 0…9
  :   ;
  <   =
  >   ?
  @ 65…90 A…Z
  [   \
  ]    
  _    
97…122 A…z   {
  |   }
  ~ 128…159 А…Я
160…175 A…п 224…239 р…я
Управляющие клавиши и их сочетания со сдвиговыми
  Ctrl – 2   Shift-Tab
16…25 Alt – Q…Alt – P (верхний ряд букв) 30…38 Alt – A…Alt – L (средний ряд букв)
044…50 Alt – Z…Alt – M (нижний ряд букв) 59…68 F1 – F10
  Home   Курсор вверх
  RgUp   Курсор влево
  Курсор вправо   End
  Курсор вниз   PgDn
  Ins   Del
84…93 Shift – F1…Shift – F10 94…103 Ctrl – F1…Ctrl – F10
104…113 Alt – F1…Alt – F10   Ctrl – PrtScr
  Ctrl – курсор влево   Ctrl – курсор вправо
  Ctrl – End   Ctrl – PgDn
  Ctrl – Home 120…131 Alt – 1…Alt – = (верхний ряд клавиш)
  Ctrl – PgUp    
           

 

Для ввода символов с клавиатуры обычно используют следующие конструкции:

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: 452; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию