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

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

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

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

Новая версия языка — г ОКТКАХ 90— поддерживает рекурсию и динамическое распределение памяти. Выполнение программы завершается оператором 5ТОР. Возвращение из подпрограммы в вызывающую программу пропсхолит с помощью оператора КЕТОКМ. Ввод и вывод В языке поддерживаются как последовательные файлы, так и файлы прямого доступа, а также предусмотрен широкий набор операций ввода-вывода. Для операций ввода-вывода используется девять операторов; КЕАО, )(К!ТЕ и РК1МТ опрелеляют фактическое преобразование данных, операторы ОРЕМ, СЕ05Е и 1МОО!КЕ позволяют установить или запросить статус, метод доступа и другие свойства файла, а операторы ВАСК5РАВЕ, КЕК1МО и СМОГ! ЕЕ обеспечивают установку указателя позиции файла.

Текстовыйфайл(последовательностьсимволов) в языке гОКТКАХ называется формантиро(тат!)тесн файлом, остальные файлы — нефорлтантировпт(ными. Во время передачи данных в форматированный файл операторы КЕАО, ))К!ТЕ и РК)МТ преобразуют значения данных из внутреннего представления в символьную форму. Передача данных в неформатированный файл оставляет данные в их внутреннем представлении. Ввод и вывод данных с помощью операторов КЕАО, ИК! ТЕ и РК1МТ в форматированный файл может осуществляться под управлением списка. Это означает, что явно не задается никакого определения формата, а, как видно из листинга П.б, используется внутренний, определенный системой формат.

Альтернативным способом является задание программистом явного формата; иетиа ГОКМАТ (поспеповатепанасть специЕииапий фориата) Метка используется в операторах КЕАО, )(К!ТЕ и РК1МТ, Например, чтение последовательности целых чисел, отформатированных так, что в одной строке размещаетсяя восемь чисел, каждое из которых занимает пять позиций, можно задать с помощью следующих опера~оров КЕАО и ЕОКМАТ: КЕА0 200. К, (М(К). К"!.7) 200 ГОРМА. (8!8) То же самос можно описать, поместив определения формата внутрь оператора КЕАО: КЕА0 "(8!8)" Н. (М(Х). К-!.7) 610 Приложение.

Обзоры языков Этот оператор йЕАО определяет, что первое целое число записывается в переменную И, а следующие — в компоненты 1-7 вектора М, В операторе ЕОИМАТ заданы дескриптор ! Преобразования в цсл<шисленный формат, ширина поля вывода каждого числа (5) и коэффициент повторения (8), означа»ощий, что в строке ввода располагаются восемь целых чисел, начиная с первой позиции.

Для различных типов числовых и символьных данных предусматривается большое количество возможных дескрипторов форматов данных. Некоторые паиболес распространенныс приведены далее (и — ширина п<>ля енола-вывода, 0 — количество десятичных цифр).

Пример использования Дескриптор Тип даннык !и Еи <( Еи <) иХ Цель<й Фиксированный (вещественный) Экспонвнциальный (вещественный) Пропуск Символьный !5 - !2345 Е6 2 = 123 56 Е10.2 = . 12.34Е+02 = 1234 Пропускает и символьных позиции А6 - аЬссе» Ан "литерал" "зьссеп' печатается как б символов аЬсее( Константа Обычно безопаснее при размещении данных выравнивать их но правому краю поля. При чтении числовых данных начальные пробелы будут интерпретировать- ся как 0. Каждый оператор йЕАО и ИИПЕ начинает обрабатывать соответственно новую строку ввода или печатать на новой строке вывода.

Для каждого элемента входно- го или выходного списка используется следующий дескриптор оператора ЕОИМАТ, пока не будет достигнут конец списка данных. Если элементов данных больше, чем лескрипторов оператора ЕОИМАТ, тогда оператор ЕОИМАТ заново начинает пере- бор своих дескрипторов, но с новой строки данных. Для задания обработчика исключений при достижении конца файла или в слу- чае возникновения ошибки в операшп» ввода-вывода в операторах йЕАО и Ий)ТЕ ука- зывается метка того оператора в подпрограмме, выполняющей ввод или вывод, которому следует передать управление при возникновении исключительной си- туации.

Например, йЕАОШИЕТ=2. ЕМТ-200, ЕИО-50. Ейй=90) И. (М(К). К-1.7) является расширенной формой оператора йЕАО, в котором опредет»яется, что в слу- чае обнаружения конца файла следует передать управление оператору с меткой 50, а в случае возникновения ошибки ввода — оператору с меткой 90. Параметр ОИ!Т = 2 указывает, что файл нужна искать на входном устройстве, которому присвоен но- мер 2. Спецификации форматов, управляющих вводом и выводом данных, трактуют- ся как символьные строки.

Во время трансляции они сохраняются в форме сим- вольных строк и интерпретируются процедурами йЕАО, Ий!ТЕ и Рй!ИТ по мере необ- ходимости во время выполнения программы. Спецификация формата (символьная $ строка) может создаваться динамически нли считываться во время выполнения программы и потом использоваться для управления преобразованиями ввода-вы- вода. В результате получается гибкая и мощная система ввода-вывода.

П,б, ЬШ Е11 Пример с пояснениями В листинге П.7 приведен пример программы для суммирования элементов массива на языке)ача. В данном примере при вводе пользователем последовательности чисел 41234 программа выдает следу)оп(ий результат: 1234, 5ОИ=10 Этот пример похож на пример программы на языке С++, приведенный в листинге П.5, что демонстрирует сходство этих языков. Листинг П.7.

Пример суммирования элементов массива на языке Эача 1 .враг( )ача во.*; 2 с!авв ОасаСопчегв ( 3 рцЫ вс впт сопчегв(оуве сЫ (гегцгп сп-'О';)]; 4 с1авв Оагабвоге ехвеппв Оавасапчегв ( 5 рцЫвс чота впвма1(!пг а) б (с!=0: 7 в!ве-а:): 8 вовс ваче(впг а) 9 (ввоге[св++]-г;); 10 впв веврг!пм ) ( с!=О; гесцгп и ве:): 11 впв ргвпвча!() ( геьцгп вгоге[св++].); 12 !ПС вцв() 13 (!пс аггвов - 0; 14 Гог(св-О:с(<в!ве.с!+<)аггвцв=аггвцвнввоге[св]; 15 гегц!и аггвцв;); 16 рг!чаве ввав!с !пв вахввве = 9: 17 7пв в!ве; // Разнер пассива 18 !пс с7; // Текущий инленс пассива 19 !пг[] в(аге = пен !пв[ввхвтве];); 20 с!а!в ывр!е ( 21 рцЫвс атас!с чо1о вавп(5втп9 агйчП) 22 ( впв вв.м 23 Ьуве[] Ыпе = печ Ьуве[10], 24 Оага5воге х - пен Оава51оге(): 25 Сгу( 26 чпв!е((вв- 5уввев.вп.геас([впе)) !- О) 27 (впв К - х,сопчегв(Ы пе[0]): 28 х.!пвм а1(К): 29 Тог(3-1;)<-К Ы+ч)х.вече(х.сопчег(([впе[)])); ЭО Гог()-х.вевргвпт(); )>О: З--) Э1 5уввев,оцв,рппг(х.рт пвча1()): 32 5увввв.оцв рг!пв("; 5ОИ "), 33 5уввев.оцы рт пв!п(х.вцв()):)) 34 савсЫ[хсермоп е)(5увсев оцырг!пв!п("Рв1е еггог "):] 35 ) // Конец главной програннн 36 ) // Конец нласса вавр1е Строка 1.

В этом примере будет использован стандартный пакет ввода-вывода ]ачайо.*. Строки 2 — Х Классы языка)ача похожи на классы языка С++. Тип доступа рцЫ ! с является атрибутом функции или объекта данных и определяет их открытость, 612 Приложение. Обзоры языков Строка 4. Для определения производных классов в языке бача используется ключевое слово ех[епбз. Строка 12 — 15, Структура функций языка)ача в основном похожа на структуру функций в языках С и С++.

Строка 19. Массивы обрабатываются не так, как в языках С и С++, Массив зсоге определяется как целый массив ()п[[) ), а затем оператор пеи отводит для него требуемый объем памяти. Строка 21. Главная программа на10 должна быть объявлена как рпЫ1с и зга[1с. Строка 24. В этом классе осуществляется ссылка на класс Оа'са5[сге через его экземпляр х, создаваемый операцией пеи. Строка 25.

Операторы [гу и сассМ (строка 34) необходимы для обработки ошибок ввода и вывода. Строка 26. Метод 5узтев. а и геаб считывает строку ввода в байтовый массив [)пе. Строки 27 — 33. Это тот же алгоритм, что и в программе на языке С++. Метод 5узгев.оп[. рг1 пг записывает свои аргументы в стандартный выходной файл. Метод 5узсее.спг, рг1001п добавляет в конец строки символ конца строки, П.5.1. Объекты данных Элементарные данные.

Числовые данные могут быть Вь 16-, 32- или 64-битовы- ми. Целые могут быть 100 и 1000. Также существуют 32-битовые вещественные данные (11 ба 0) и 64-битовые вещественные (бопЫ е), которые удовлетворяют стаи- дарту [ЕЕЕ 754. В языке )ача также можно сохранять данные как суте и зпогц хотя для осуществления каких-либо операций над ними их требуется приводить к типу 1п[. Символьные данные сохраняются в формате Вп1собе. Это международный стан- дарт, который создает 16-битовые символы. Например, спаг х - 'а' создаст объект х, хранящий код Ни|себе символа а. Булевы данные могут иметь значения Ггпе и 101зе, В отличие от языка С в)ача булсвы данные не являются целыми значениями.

Структурированные объекты данных. В языке массивы определяются явно Например, оператор яеича1иеа Мубата[) описывает массив Мубаса типа Меича1иез, где Иеиуа1иез — определенный программи- стом класс объектов. Однако для фактического размещения массива необходимо использовать функцию пеи, как, например, в следующем примере для размещения 100-элементпого массива: Муса[а - пеи яеиха1чеа[ 100). Для фактического размещения каждого элемента массива необходимо для каж- дого 1 выполппть оператор: Мубаса[1) = пеи яьаа1пеа[) Оба эти шага можно объединить в одгиг, например, 1пг[ ) пузата - пеи 1п[ ООО); размещает Муба [а как массив из 100 элементов. П.5.

дАЧА 613 Метод 1епрьь() массивов возвращает длину массива: Муса(а.1елрщ() В данном случае будет возвращено значение 100, как и в языке С++, Строки — это объекты с синтаксисом, близким к синтаксису строк в языке С. Соответственно 5(гтлч РцЫ тзиег = "Ргел(тсе На11' создает строковый объект РцЫтзЬег и инициализирует сто строкой Ргепттсе На11. Операция + для строк означает их конкатенацию. Так, 5узтеа.оцырюл(1л(РцЫтзлег « " тз тье рцЫтзнег о( Фтз Ьоох "); напечатает «Ргепбсе На!1 св ()те рцЫ)зЬег о((Ь)з Ьоо)с .

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

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

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