Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Строковые данные. Типы Char и String




Перечисляемый тип данных. Строковый тип. Множества. Записи. Файлы

Перечисляемый тип данных

Перечисляемый тип является простым и порядковым. Он позволяет объединить вместе, в рамках одного типа ограниченное и упорядоченное множество (список с разделителем запятая “,”) скалярных (одиночных) постоянных величин (констант), каждая их которых задается своим именем. Описание типа имеет следующий синтаксис:

type название типа = (список значений типа);

В имени типа и в списке его значений должны использоваться идентификаторы, образованные по правилам Паскаля. Так как в идентификаторах Паскаля нельзя использовать кириллицу, в названии и именах элементов списка нельзя использовать русские слова.

Пример 1. Описание типа с именем week (неделя):

type week = ( Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday);

Упорядоченным в списке значений типа константам автоматически присваиваются возрастающие на единицу номера, начиная с нуля. Поэтому к перечисляемым переменным и константам могут быть применены все операции сравнения и стандартные функции из библиотеки системных функций pred(), succ(), ord():

ord(Е) – возвращает номер элемента Е в множестве;

succ(Е) – возвращает следующее значение для Е;

pred(Е) – возвращает предыдущее значение для Е.

Для введенного типа week будут справедливы следующие отношения элементов:

Sunday<Monday<Tuesday<Wednesday<Thursday<Friday<Saturday;

ord( Sunday )=0;

ord( Tuesday )=2;

succ( Friday ) =Saturday;

pred( Saturday ) = Friday;

Для перечисляемых типов, как и для других порядковых типов, определены функции Low() и High(), которые возвращают начальный и конечный объект типа. Например, для типа week: Low(week)= Sunday, High(week)= Saturday.

Перечисляемые типы описываются в разделе описания типов.

Рассмотренные выше стандартныетипы, введенные дляодиночных величин, также можно эквивалентно представить в виде перечисляемых типов. Например, для типов boolean, char и integer описание можно задать следующим образом (запись вида #xxx означает символ, чей код в таблице ASCII равен xxx):

Type

Boolean= (false, true);

char= #0..#255;

integer= -32768..32767;

Каждая константа может входить только в один из типов. Поэтому, если в программе описан тип week, то в нем нельзя использовать тип day_off (выходные):

Type

day_off = ( Sunday, Saturday);

поскольку он содержит константы Sunday, Saturday, уже входящие в тип week.

Если тип описан, то он может быть присвоен другим переменным в разделе описания переменных, например:

var days: week;

Также переменные любого перечисляемого типа можно объявлять без предварительного описания этого типа, например:

var days: ( Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday);

Вопросы для проверки знаний.

1. В чем заключается назначение и каков синтаксис перечисляемого типа?

2. Как устанавливается порядок для элементов перечисляемого типа?

3. Где помещаются описания перечисляемых типов?

4. Может ли одна и та же величина входить в состав множеств элементов различных типов в одной программе?

5. Как переменные перечисляемого типа можно объявлять без предварительного описания этого типа?

6. Возможно ли описание типа следующего вида (ответ пояснить)?

type выходные_дни = (Воскресенье, Суббота);

7. Чему равны значения следующих функций для типа week: ord( Wednesday );ord( Friday )?

8. Чему равны значения следующих функций для типа type day_off = ( Sunday, Saturday): Low(day_off); High(day_off)?

Строковые данные. Типы Char и String

Простой стандартный порядковый тип сhar предназначен для одиночных символов, которые представлены в нем при помощи кода ASCII. Он относится к простым типам данных. Тип String предназначен для хранения строковых (литерных) величин до 255 символов (тип сhar), которые занимают 1 байт (8 бит), нумерация их начинается с единицы. Если длина строковой величины не указывается в описании, то по умолчанию для нее в памяти отводится место для 255 символов. Примеры описания строковых величин:

Var S1: String[40];

Str: String;

Переменной S1 будет отведено в памяти 40 байт (или 40×8=320 бит), переменной Str - максимально возможные 255 байт.

Засылать информацию в переменные строкового типа можно при помощи присвоения им:

1) строковых величин (в программном коде они заключаются в апострофы),

2) значения выражений, которые приводят к строковым величинам.

В роли пустого элемента при засылке данных в строковые переменные выступает пробел, который изображается при помощи двух подряд стоящих апострофов.

Если засылаемая информация занимает не всю область памяти строковой переменной, то оставшееся пространство заполняется пробелами.

К каждому символу строковой переменной можно обратиться отдельно, указав ее порядковый номер в переменной после обозначения строковой переменной в квадратных скобках (как к элементу массива).

Пример 1 программы с использованием обращений к символам строковых величин:

Var Str1, Str2: String[20]; Ch1, Ch2:Char;

Begin

Str1:=’Сомрuter’;
Str2: =’’;

Ch1=Str1[5]; Ch2=Str2[5];

WriteLn(' Ch1=', Ch1, ' Ch2=', Ch2);

End.

В результате выполнения программы на экран монитора будет выдано сообщение:

Ch1=u Ch2=

С отдельным символом строки можно производить все действия, которые можно производить с любой символьной переменной (ввод, присвоение, вывод на экран, участие в выражениях и т.д.).

Рассмотрим функции и действия над строковыми величинами.

1. Length(S). Для автоматизации действий со строковыми величинами главным является определение их длины – число символов, содержащихся в них. Для этого используется специальная функция Length(S), где S - строковая величина, у которой необходимо определить длину. Число символов в ней присваивается самому имени функции.

Пример 2. После выполнения фрагмента из двух операторов:

S:='computer';

Writeln('В слове ', S, ' ', Length(S),' символов')

на экран монитора будет выдано сообщение:





Поделиться с друзьями:


Дата добавления: 2016-11-12; Мы поможем в написании ваших работ!; просмотров: 1566 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Логика может привести Вас от пункта А к пункту Б, а воображение — куда угодно © Альберт Эйнштейн
==> читать все изречения...

2285 - | 2212 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.01 с.