Главная » Просмотр файлов » Т. Пратт, М. Зелковиц - Языки программирования - разработка и реализация (4-е издание_ 2002)

Т. Пратт, М. Зелковиц - Языки программирования - разработка и реализация (4-е издание_ 2002) (1160801), страница 60

Файл №1160801 Т. Пратт, М. Зелковиц - Языки программирования - разработка и реализация (4-е издание_ 2002) (Т. Пратт, М. Зелковиц - Языки программирования - разработка и реализация (4-е издание_ 2002)) 60 страницаТ. Пратт, М. Зелковиц - Языки программирования - разработка и реализация (4-е издание_ 2002) (1160801) страница 602019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 60)

В цих отсутствует бит, отвечающий знаку, а остальных битов ровно столько, сколько нужно для двоичного представлепия чисел из требуемого диапазона, как в случае целочисленного поддиапазоиа. например, н определенном раисе перечислении С1455 имеется всего четыре раз<и<чин<х элемента, которые во время выполнения программы представляются как 0 = Гге51<, 1 = БорЬ, 2 = Свп ог и 3 = Бел<оп, поэтому для представления этих элементов в памяти компьютера достаточно двух битов. Следовательно, для переменной типа С1455 в памяти отводится областьдлнпой два бита.

Операции зоссезьог и рге<1есеззог сводятся просто к добавлсшпо и вычитанию едишшы иэ целочисленного представления элементов перечислен<и и проверке того, что получснпь<й результат ие выход<лт за допустимые границы. В С программист может отменить сопоставляем ые по умолчанию целочисленные значения и назначить другие произвольным образом, <шпример епнж с1444 <<ге<в=14. 5орв-Зб. Зьп<ег-4, 5еп ог-42] Для определяем<по указанным способом представления перечислений рсмпзация элементарных операций не составляет труда, так как можно исполь:<овать встроенные в аппаратуру операции иад целыми числами.

Например, опсрапип отношения между элементами перечисления =, > и < можно реализовать при помощи аппаратных команд сравнения целых чисел. 5.2.3. Логические (булевы) значения В большинстве языков предусмотрен логический (булез) тип данных для представления значений истина и ложь. Спецификация. Логический тип данных состоит из объектов, которые могут принимать два значения: нс<нна (<гце) и ложь (Ызе). В Рааса! и А«алогический тип данных рассматривается как встрое«иос в язык перечисление, а именно: <тве Зоо1еап - <<а!зе, <гне Ц Взтомобъявлепииопределеиы имена Га15е и Огне,атакжеихпорядокСа15е и <гне.

5.2. Скалярные типы данных 215 Наиболсс распространенными операциями с этим типом данных являются операции присваивая ия и следую>цие логические операции: агц: Воо1еап х Воо1еап к Воо1еап ти, логическое уииожекие) ог: Воо1еаг, х Воо1еап -> Воо1еап теклюкаюиее ИЛИ) по: Воо)еап -к Воо1еап тле икеское отрицание или Оулево дополнение) Иногда включаются и другие лоптческие операции: эквивалеьттностгк исключающее ИЛИ, имиликация, пап0 (пот-ап0), пег (пот. ог). Сакра>цснпая схема вычисления логических И и ИЛИ обсуждается в разделе 8.2. Реализация. Объекты логического тина представляются в памяти всего одним битом (если ис требуется наличие дескриптора, описывающего тии).

Поскольку часто получается так, что один бит в памяти не имеет свое) о отдельного адрсса, то лля представления логического объекта исиользуется слово или байт, то есть минимальная адресуемая область памяти. Тогда внутри такой области значения истина и ложь могут быть представлены двумя способами: + какой-то определенный бит внутри области иамяти (обычно тот же, который отвечает за злак в нрелставленив числа) используется для представления булеза значения (ложь = О, истина = 1), а остальные биты игнорируются; + значении> ложь отвечает заполнение всей области иамяти нулями, а любые другис комбинации битов в этой области соответствук>т значению исты а. Поскольку оба зти способа представления могут цотрсГ>ов пь большого обьема памяти, в языкс часто предусматривается специальный способ хранения цоследовательности битов.

Примерами подобного подхода могут служи.гь следующие типы данных: рнг>кот>ан>тый массие логически> значений (рас!тес! аггау о( Воо)еап) и множеса>г>а (зсг) в языке Рааса! и стронг> битов в Р1.,7!. В языке )ача логический тип определен явным образом вотличие от С, в котором для э~ого используются целые числа. Истина выражается л>обым ненулевым значением, а ложь соответствует нулевому значению, В принципе, такое определение порождает некоторыс ))роблсмы.

Например, в следующем фрагмент< программы на С: ,и' т1дви Пдч = 7. значение переменной 11а0 устанавливается равным 7, или 1" в двоичном представлении, Однако если вы захотитс инвертировать зна >ение нсремспной Г1ад посредством установки всех битов в его двои ~нолт представлении на противоположные значения, то получится... 111:000, то есть ио-прежнему значение будет истина.

7>т>алогично комбинирование значений таких исрсмсшп тх в одно с использованиемсм операции поразрядного логического ИЛИ (!) вместо операции лоптческого ИЛИ (! !) или операции поразрядно> о логического И (В) вместо операции логического И (ЬВ) приводит к таким жс цроГ>ломам, В азы кс С всегда болсс безопасно и падсжпо ттст>ол> зовттть щ)я црсдставлсшни логического значения истина цело числе>шую единицу и не ттьпаться уиаковать несколько булевых зцачсяий в одно многобитовос целое число. 5.2.4.

Символы Больтиицствт>дщшых вводится и выводится в символьной форме. Обычно эти данные затем преобразуются к друп>м тинам, но возможность обработки некоторых 216 Глава 5. Элементарные типы данных символьных лаипых в их исходной форме также весьма супгсствеииа. Послеловательпости символов (строки символов) обычно обрабатываются как елинос целое. Такой тип лап пых, как строки символов, может быть обеспечен или иепосрелствепио через тип данных строка символов, как зто сделано в языках М1. и Рго!оя, или при помощи символьного типа данных в виде одномерного массива символов, как это слелано в языках Рааса!, С и Аг(а.

Строки символов рассматриваются в разделе 5.3.1. Спецификация. Символьный тип данных прелоставляет возможность создания объектов лаииых, значениями которых люжет быть какой-либо елипствспиый символ. Множество возможных значений (то есть символов) обычно представляет собой встроенное в язык перечисление, соответствующее стаилартпым наборам символов, которые поллерживаются аппаратной частью компьютера (например, набор символов АЯСП), Порядок символов в этом наборе называется его схемой сортировки.

Схема сортировки играет существенную роль в операпиях отношения, так как опрслеляет алфавитный порядок лля строк символов, Поскольку в эту схему включены все символы, то можно упорядочивать строки, солержащис пробелы, точки и лругие специальные символы. Кроме операцийй отношения и прищщиваиия лля символьных данных иногда используются операции, которые позволяют определить припаплсжпость ланиого символа к какому-либо спепиальиому классу символов буква, цифра или специальный символ. Реализация. Символьный тип лапиых почти всегда поддерживается непосредственно аппаратной частью компьютера, так как объекты этого тина используются лля ввела-вывела.

Ипогла, однако, случается, что какой-либо конкретный набор символов (например, АЗСП), включенный в определение языка, нс поддерживается аппаратной частью конкретного компьютера. Хотя в обоих наборах могут содержаться одни и те же символы, способы их представления и, следовательно, схемы сортировки могут различаться; в Лругих случаях некоторые специальные символы могут присутствовать в олпом наборе символов и отсутствовать в лругом.

Поскольку символы, ввелеппые в компьютер через устройство паола-вывола, прелставлеиы в том вилс, который поддерживается аппаратурой лаииого компьютера, то в языке лолжпы быть прслусмотреиы способы преобразования в альтернативные представления либо обеспечена такая реализация операций отношения, в которой учитывается различие схем сортировки. Если же в языке используется тот же способ представления символов, что и в аппаратурес компьютера, то операции отношения обычно реализуются пепосрелствеиио через аппаратные или могут быть смолелированы простыми короткими встроенными послеловательпостями кола.

5.3. Составные типы данных Типы данных, которые мы рассматриваем в этом разделе, обычно относят к элементарным м типам па иных. Тем не меисс их реализация обычно полразуме пает оргн иизацию компилятором достаточно сложных структур. Такие типы данных характеризуются наличием нескольких атрибутов. В,З. Составныетипы данных 217 5.3.1. Строки символов Строка символов — это объект ланных, составленный из последовательности сим- волов.

В большинстве языков этот тип играет сушественную роль, в первую оче- редь при вводе и выводе информации. Спецификация и синтаксис. Можно указать по меньшей мере три различные интерпретации этого типа данных. 1. Строки фиксированной длины. Объект ланных строка символов может быть объявлен как имеюцпгй определенну>о фиксированную длину.

Значения, присваиваемые этому объекту, могут быть строками символов только этой длины. Присваивание этому объекту строки символов длины, отличной от определенной при его объявлении, приводит к ее усечению в случае, если ее длина больше определенной в объявлении, или к добавлению пробелов в ее конец, если ее длина меныпе определенной в объявлении объекта. 2. Строки переченной длины, не превосходящей заданного максимума.

В программе можно определить некоторую максимал>>гую длину строки, а фактические строки могут солержать меньшее количество символов или даже не содержать пх совсем (пустые строки), При выполнении программы длина строки может меняться, но если она увеличивается настолько, что становится больше максимальной, то лшпние символы отсекаются, 3. Неограниченные по длине строки, Объект данных такого типа может содержать строку любой длины, и зта длина может динамически меняться в процессе выполнения программы без каких-либо ограничений. В языке С ситуация несколько более сложная. В этом языке строки реализуют- ся как массивы символов, но для самих строк символов не прелусмотрено специ- ального типа.

Характеристики

Список файлов книги

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6518
Авторов
на СтудИзбе
302
Средний доход
с одного платного файла
Обучение Подробнее