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

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

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

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

а[33): 9 рюп[Г (": 50Н- га(п", аеаияоп(а.г)): 10 н)п1е(9егс)вг() != Цп'); 11 )) 12 )* Функция преобразояания *! 13 (пг сопчегг (сцаг сн) 14 [гегцгп сн-'0'.) 15 г* Функция словения *! 16 яп1 аааягяоп (ч, и) 17 япг ч[ 3, и; 18 [ (пг ецв,): 19 яиге0, 20 Гаг (3=0: 3<п. )++) яцв-яцв+ч[33: 21 ге[цап яцв; 22 Строка !.

В данной программе должна быть использована стандартная библиотека ввода-вывода, подключаемая через заголовочный файл 51()[о.)). В этой строке записана препроцессорцая команда, которая обрабатывается до начала трансляции. В этом месте происходит включение в программу содержимого файла 51(3)о.)) как части программы. С!прока 2. Определяется целая константа ваха) ге, и ей присваивается значение 9.

Можно было использовать также препроцессориую команду с похожим результатом: Ооеппе вахюге 9 Строка Х В этом месте начинается вычисление. Некоторая функция должна иметь имя ва(п. 582 Приложение. Обзоры языков Строка 4. Объявляется массив з целых чисел с индексом из диапазона значений от 0 до 8. Строка б. Функция дегслаг() определена в файле зло.'и. Она считывает очередной символ со стандартного ввода. Поскольку переменные символьного типа спаг являются подтипами целых чисел, читается целочисленное значение (код) символа. Например, н системах, использующих АБСП-коды, цифра 2 является символом с двоичным значением 0110010, которое в восьмеричной системе равняется 62, а в десятичной — 50. Однако н данной программе требуется численное значение 2, которое и получается в результате действия функции сопчег1() (строки 13-14).

Считанное значение присваивается переменной ~. Обратите внимание на то, что присваиванис здесь являешься просто операцией, а выражение 1=сопнег1(0е1сбаг() ) присваивает следующее введенное число переменной 1 и возвращает его жс в качестве значения етого выражения. Если зто значение нс 0, то выполняются следующие операторы (строки 7-11). Следовательно, если значение ~ равно 0, то цикл завершится, а вместе с ним завершится и программа, так как закончится выполнение процедуры за~ и.

Строка 7. В операторс 1ог последовательно считываются значения массива (с помощью функпии соп»»ег1 и функции Ое(с)»зг из стандартной библиотеки анода-вывода). Первым параметром оператора 1сг является операция присваивания значения переменной (счстчику цикла), выполняемая при входе в зтот оператор цикла; обычно присвошшое значение является начальным значением для цикла (0=0).

Второй параметр является условием продолжения ныполпения цикла (ныполцять цикл, пока )<х), а третий параметр описывает операцию, выполняющуюся в конце каждого шага цикла ().-», то есть добавление единицы к значению переменной )). Строка 8. Этот оператор гог аналогичен предыдущему оператору цикла, цо только на каждом шаге цикла печатает соответствующий злемент массива.

Функция рг~ пг 1 выводит на печать свой первый аргумент, представленный символьной строкой. Последовательность символов $») в строкс вывода указывает, что нужно взять следуклций аргумент функции рг~ п11 и напечатать его н целочисленном формате в том месте строки вывода, где находится зта последовательность. С»прока 10. Программа читает символы до тех пор, пока не встретится символ конца строки. данный оператор ищ ) е имеет пустое тело. Строка 11.

Фигурные скобки завершают блок, начинающийся н строке 6, и тело основной программы, которое начинается в строке 4. Строки 12. Комментарий. Его можно использовать везде, где можно поместить символ пробела. Строка 14. Не обязательно знать АВСП-коды для цифр. Все, что необходимо знать, зто то, что символ ' 0' — это число 0, символ '1' — на единицу болыпе символа '0 ' и имеет значение 1, а '2' — больше ' 0' на 2 и имеет значение 2 и т. д. Выражение сц-'0' вернет требуемое числовое значение для одной цифры, Строки 16 — 17, Здесь приведен старый стиль описания параметров языка С. Имена парамстрон находятся в списке парам етрон, а затем н теле функции следует описание их типов.

Обратите внимание ца то, что границы массинов пс заданы. п.г. с вез П.2.1. Объекты данных Язык С является строго типизированным языком, но в нем существует всего несколько типов, поэтому строгая типизация полезна лишь в минимальной степени. Данные могут быть целочисленными (1п гере г), перечисляемого типа или вещественными с плавающей точкой (Поаг). Структурированные данные представлены массивами, строками (форма массивов) или записями, такими как втгыст или ыпт оп. Элементарные типы данных Переменные и константы.

Идентификаторами в С могут быть любые последовательности букв, цифр и символа подчеркивания ( ), причем они не должны начинаться с цифры. В заголовочных файлах .Ь обычно используются внутренние переменные, имена которых начинаются с символа подчеркивания, так что в пользовательских программах лучше избегать задания идентификаторов, начинающихся с символа подчеркивания. Регистр играет важную роль в языке С, поэтому переменные с именами аЬс и АВ — это разные переменные.

Целые числа можно задавать в обычном формате целых чисел (например, 12, -17) или как восьмеричные литералы с предшествующим 0 (например, 03 — десятичное 3, 011 — десятичное 9, 0100 — десятичзтое 64), Символьные литеральные константы задаются в одинарных кавычках (например, 'А', 'В', '1'). Символ 1п обозначает конец строки, а 10 — это пи(йсимвол, который используется при обработке строк. Действительные АВСП-коды символов можно задавать, используя числовые коды.

Так, 1062 соответствует АВСЦ-коду 62 (восьмеричному) или символу '2'. Дискретные значения можно создавать с помощью перечисляемых типов — другой формы целочисленных данных: елнв иив типа ( список значений ) иив Пример: елыв со1огв ( гев. уе11он. Ы не ) х. у. з: х = геО. у - Ь1не; Значения перечисляемого типа нужно указывать только один раз. Следующее объявление переменных перечисляемого типа со(огв можно записать как елыв со1огв а, Ь, с, Литеральные константы с плаваютцей точкой могут быть записаны в форме числа с десятичной точкой (например, 1. 0, 3 456) или в экспо ненциальн ой форме (например, 1.2е3 = 1200, 12е-1 = .

012). Строковые литералы, илн просто строки, задаются как последовательности символов, заключенные в двойные кавычки ("), например, "аЬс", "1234". Однако строки на самом деле являются строковыми массивами со специальными завершающими пиП-символами (10). Таким образом, строка "123456" на самом деле является последовательностью 1234561 0 и обрабатывается так же, как если бы она была объя влепа одним из следуипцих способов; сиаг аггаучаг(1 = "123456", 7* аггаучаг длиной 7 символов *! сиаг *аггауртг = " 123456". 7* аггауртг указывает на эти сииволы *I Числовые типы данных. Целый тип в языке С имеет несколько разновидностей. Целый тип впог' солсржит наименьшее количество бит, эффективное для 584 Приложение. Обзоры языков данной реализации.

Для многих реализаций С, используемых на персональных компьютерах, этот тип соответствует 16-битному целому числу со знаком, максимальное значение которого может быть 32 767. Он может быть и больше, например 32-битное целое. Тип ]опр является, наоборот, наиболее длинной (в отношении количества бит) реализацией целых чисел, приемлемой для данной конкретной аппаратной части компьютера. Как правило, переменные этого типа занимают 32 бита, а иногда и больше. Тип ) п1 представляет собой наиболее эффективную реализацию для данной аппаратной части.

этот тип () пт ) может совпадать с 5))огс или ]оно или его длина может иметь некоторое промежуточное значение в интервале между значениями длин описанных типов. Как показано в приведенном примере, тип с))аг также является подтипом целого, в данном случае — однобайтным значением. То есть любыми введенными символами можно манипулировать так же, как другими целыми значениями. В языке С нет булевого или логического типа данных; вместо них также используются целые переменные. Истина определена как любое ненулевое целое значение, а ))ояь представляется нулевым значением. Для установки и сброса различных битов в целых числах можно использовать поразрядные операции.

Хотя для хранения различных булевых значений можно использовать несколько битов в отдельном слове (например, двоичное число 101 = десятичное 5 может обозначать «А — истинно,  — ложно, С вЂ” истинноь), для этой цели обычно лучше использовать отдельные переменные типа ]пк Константы можно определять либо при помощи препроцессорной команды №)]е1ч не, как было показано выше, либо при помощи объявления сопзт: сопас иия типа = аначение Указатели. Указатели могут указывать на любые данные. Конструкция *р показывает, что р является указателем на объект. Например, операторы ~п1 *р.

р - 1~ос *) ва1)ос(а)аеоьыпс) ), 0-1. делают следующее; 1. Размещают в памяти указатель р, который будет указывать на целую пере- менную. 2. Отводят достаточно памяти, чтобы разместить там целую переменную, и сохраняют йзначение этой области памяти как и-значение переменной р. 3. Используя )-значение переменной р, помещают целое значение 1 в отведен- ное пространство памяти, на которое указывает р.

Структурированные типы данных Массивы. Индексы одномерных массивов начинаются с 0 (например, ]пса(3]). Многомерные массивы любой размерности можно определить как чот а110]15] Такие массивы сохраняются путем развертывания по строкам, то есть как если бы массив был описан следующим образом: тыпч а110] где тип с~пор — это целый массив длины 5. П.2. С 585 Как говорилось ранее, строки являются массивами символов. Строковые функции обычно используют строки с завершающим пц11-символом (то есть в виде массивов символов, завершающихся пп11-символом: "аЬсбеГ = аЬсбе110). Т 1-значение = и 8 1-значение = и Ьзначение = и+! Ьзнечение = и+2 оп!оп 8 (1п1 А; 1п1 В; 1пт С; 1п1 0;» 1-значение = и+3 е1тист Т (1п1 А; )п1 В; 1п1 С; 1пт 0;» Рис.

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

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

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