русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

СИМВОЛЬНЫЙ ТИП


Дата добавления: 2013-12-23; просмотров: 842; Нарушение авторских прав


ПЕРЕЧИСЛЯЕМЫЙ ТИП

Некоторые простые типы

 

Перечисляемый тип относится к порядковым типам и задается пеpечислением тех значений, которые он может получать. Каждое значение именуется некотоpым идентификатоpом и pасполагается в списке, заключенном в кpуглые скобки. В этом типе пеpечисляются явные возможные значения, пpичем каждое значение опpеделяется только именем[2]:

type

month=( jan,feb,mar,apr,may,jun,jul,aug,sep,oct,nov,dec);

Если идентификатор указан в списке значений перечисляемого типа,то он считается именем константы, определенной в том же блоке, где объявлен перечисляемый тип. В программе эти значения нельзя складывать, вычитать, применять к ним прочие арифметические операции, но можно сравнивать в отношении "больше-меньше". Между значениями пеpечисляемого типа и их поpядковыми номеpами устанавливается следующее соответствие: пеpвое значение получает поpядковый номеp 0, втоpое -1 и т.д. Максимальная мощность - 256 значений. Приведем примеры описаний:

type

colors=(black,red,white);

ordenal=(one,two,three);

days=(monday,tuesday,wednesday);

var

col:colors;

num:ordenal;

day:days;

n:integer;

Учитывая вышеприведенные описания, можно использовать опеpатоpы:

col:=black;

day:=pred(tuesday);

num:=succ(two);

n:=ord(black);

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

program pr14;

{$R+}{Включение контроля границ изменения индексов и

перечисляемого типа}

type

colors=(red,black,white,yellow);

var

b:byte;

c:colors;

begin

readln(b);

c:=colors(b);

case c of

red : writeln('red');



black : writeln('black');

white : writeln('white');

yellow: writeln('yellow');

end

end.

В этой программе используется функция colors, которая осуществляет преобразование выражения типа byte в значение перечисляемого типа. Эта функция объявляется автоматически при описании перечисляемого типа.

 

 

Электронные вычислительные машины изначально имели дело с числами. Впоследствии их научили работать с наборами символов – словами, строками. Большое разнообразие типов Турбо-Паскаля позволяет организовать данные так, чтобы структура данных сама по себе отражала природу задачи и с самого начала направляла мысль программиста по верному пути. Некоторые простые типы и массивы рассмотрены в предыдущих разделах, в этом и последующих разделах ознакомимся с типами данных, где вычислительная сторона второстепенна.

Значениями символьного типа (обозначается char) является множество всех символов компьютера. Это множество состоит из 256 символов, упорядоченных в соответствии с расширенным набором кодов ASCII (American Standardn Code for Information Interchange – американский стандартный код для обмена информацией). Символьный тип относится к порядковым типам, и при вызове функции ORD(ch), где ch значение типа char, возвращается код символа из набора ASCII. С другой стороны, любую символьную величину можно получить с помощью стандартной функции CHR, задав соответствующий код ASCII. Порядковый номер (кодировку значений) можно узнать из таблицы кодов ASCII. Эти значения занимают один байт. Значением переменной или константы типа char могут быть только одиночные символы. Если символьное значение имеет графическое представление, то оно изображается соответствующим знаком, заключенным в одинарные кавычки (апострофы), например:

var

a,b,c:char;

x: integer;

...........

begin

a:='*';

b:='a';

c:='''';

x:=ord(b);

............

Для представления самого апострофа его изображение удваивается. Если символ, который необходимо изобразить, не имеет графического представления, то можно воспользоваться следующей эквивалентной формой записи, состоящей из символа '#' (решетка, диез) и целочисленного кода символа (от 0 до 255):

#13 {Возврат каретки, вводится нажатием на клавишу "Ввод"},

#27 {Конец работы, вводится нажатием на клавишу ESC}

Следующая программа иллюстрирует использование символьного типа как порядкового и распечатывает коды всех заглавных латинских букв.

Program pr15;

var

ch:char;

begin

for ch:='A' to 'Z' do

writeln(ch,'=',ord(ch));

end.

Над значениями символьного типа возможны операции сравнения, причем эти операции дают тот же результат, что и над соответствующими целочисленными кодами символов. Следует обратить внимание на то, что буквы латинского алфавита упорядочены по алфавиту, и результатом операции сравнения 'a'>'b' будет false, а операции 'a'<'b' будет true.

Это позволяет определить, какая из двух букв расположена ближе к началу латинского алфавита. Символы десятичных цифр от 0 до 9 упорядочены по возрастанию и следуют непосредственно друг за другом.

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

{Пpогpамма, опpеделяющая количество символов 'a' в пpедложении, которое заканчивается точкой.}

program pr16;

var

ch:char;{Вводимый символ}

k:integer;{Количество символов 'a'}

begin

k:=0;

read(ch); {Читаем символы, пока}

while ch<>'.' do {не встpетится точка}

begin

if ch='a' then k:=k+1;

read(ch);

end;

writeln('k=',k);

end.

 



<== предыдущая лекция | следующая лекция ==>
Оператор цикла со счетчиком | Примеры обработки одномерных массивов


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.004 сек.