Главная » Просмотр файлов » С.Б. Липпман, Ж. Лажойе - Язык программирования С++ Вводный курс

С.Б. Липпман, Ж. Лажойе - Язык программирования С++ Вводный курс (1114944), страница 15

Файл №1114944 С.Б. Липпман, Ж. Лажойе - Язык программирования С++ Вводный курс (С.Б. Липпман, Ж. Лажойе - Язык программирования С++ Вводный курс) 15 страницаС.Б. Липпман, Ж. Лажойе - Язык программирования С++ Вводный курс (1114944) страница 152019-05-08СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

В последующих главах мы разберем этивопросы более подробно и систематично.Упражнение 2.22string pals[] = {"pooh", "tiger", "piglet", "eeyore", "kanga" };(a)(b)(c)(d)(e)vector<string>vector<int>vector<int>vector<string>vector<double>svec1(pals,pals+5);ivec1(10);ivec2(10,10);svec2(svec1);dvec;Поясните результаты каждого из следующих определений вектора:Упражнение 2.23Напишите две реализации функции min(), объявление которой приведено ниже.Функция должна возвращать минимальный элемент массива.

Используйте цикл for иперебор элементов с помощьюиндексаtemplate <class elemType>итератораelemType min (const vector<elemType> &vec);С++ для начинающихЧасть IIОсновы языкаКод программы и данные, которыми программа манипулирует, записываются в памятькомпьютера в виде последовательности битов. Бит – это мельчайший элементкомпьютерной памяти, способная хранить либо 0, либо 1. На физическом уровне этосоответствует электрическому напряжению, которое, как известно, либо есть , либо нет.Посмотрев на содержимое памяти компьютера, мы увидим что-нибудь вроде:00011011011100010110010000111011 ...Очень трудно придать такой последовательности смысл, но иногда нам приходитсяманипулировать и подобными неструктурированными данными (обычно нужда в этомвозникает при программировании драйверов аппаратных устройств).

С++ предоставляетнабор операций для работы с битовыми данными. (Мы поговорим об этом в главе 4.)Как правило, на последовательность битов накладывают какую-либо структуру,группируя биты в байты и слова. Байт содержит 8 бит, а слово – 4 байта, или 32 бита.Однако определение слова может быть разным в разных операционных системах. Сейчасначинается переход к 64-битным системам, а еще недавно были распространены системыс 16-битными словами. Хотя в подавляющем большинстве систем размер байта одинаков,мы все равно будем называть эти величины машинно-зависимыми.Так выглядит наша последовательность битов, организованная в байты.Рис 1.Адресуемая машинная памятьТеперь мы можем говорить, например, о байте с адресом 1040 или о слове с адресом 1024и утверждать, что байт с адресом 1032 не равен байту с адресом 1040.Однако мы не знаем, что же представляет собой какой-либо байт, какое-либо машинноеслово.

Как понять смысл тех или иных 8 бит? Для того чтобы однозначноинтерпретировать значение этого байта (или слова, или другого набора битов), мыдолжны знать тип данных, представляемых данным байтом.С++ предоставляет набор встроенных типов данных: символьный, целый,вещественный – и набор составных и расширенных типов: строки, массивы, комплексныечисла. Кроме того, для действий с этими данными имеется базовый наборопераций: сравнение, арифметические и другие операции. Есть также операторыпереходов, циклов, условные операторы. Эти элементы языка С++ составляют тот наборкирпичиков, из которых можно построить систему любой сложности.

Первым шагом восвоении С++ станет изучение перечисленных базовых элементов, чему и посвященачасть II данной книги.Глава 3 содержит обзор встроенных и расширенных типов, а также механизмов, спомощью которых можно создавать новые типы. В основном это, конечно, механизмклассов, представленный в разделе 2.3. В главе 4 рассматриваются выражения,встроенные операции и их приоритеты, преобразования типов.

В главе 5 рассказываетсяоб инструкциях языка. И наконец глава 6 представляет стандартную библиотеку С++ иконтейнерные типы – вектор и ассоциативный массив.74С++ для начинающих753. Типы данных С++В этой главе приводится обзор встроенных, или элементарных, типов данныхязыка С++. Она начинается с определения литералов, таких, как 3.14159 или pi, азатем вводится понятие переменной, или объекта, который должен принадлежать кодному из типов данных.

Оставшаяся часть главы посвящена подробномуописанию каждого встроенного типа. Кроме того, приводятся производные типыданных для строк и массивов, предоставляемые стандартной библиотекой С++.Хотя эти типы не являются элементарными, они очень важны для написаниянастоящих программ на С++, и нам хочется познакомить с ними читателя какможно раньше. Мы будем называть такие типы данных расширением базовыхтипов С++.3.1. ЛитералыВ С++ имеется набор встроенных типов данных для представления целых ивещественных чисел, символов, а также тип данных “символьный массив”, которыйслужит для хранения символьных строк. Тип char служит для хранения отдельныхсимволов и небольших целых чисел.

Он занимает один машинный байт. Типы short,int и long предназначены для представления целых чисел. Эти типы различаютсятолько диапазоном значений, которые могут принимать числа, а конкретные размерыперечисленных типов зависят от реализации. Обычно short занимает половинумашинного слова, int – одно слово, long – одно или два слова. В 32-битных системахint и long, как правило, одного размера.Типы float, double и long double предназначены для чисел с плавающей точкой иразличаются точностью представления (количеством значащих разрядов) и диапазоном.Обычно float (одинарная точность) занимает одно машинное слово, double (двойнаяточность) – два, а long double (расширенная точность) – три.char, short, int и long вместе составляют целые типы, которые, в свою очередь, могутбыть знаковыми (signed) и беззнаковыми (unsigned).

В знаковых типах самый левыйбит служит для хранения знака (0 – плюс, 1 – минус), а оставшиеся биты содержатзначение. В беззнаковых типах все биты используются для значения. 8-битовый типsigned char может представлять значения от -128 до 127, а unsigned char – от 0 до255.Когда в программе встречается некоторое число, например 1, то это число называетсялитералом, или литеральной константой. Константой, потому что мы не можемизменить его значение, и литералом, потому что его значение фигурирует в текстепрограммы.

Литерал является неадресуемой величиной: хотя реально он, конечно,хранится в памяти машины, нет никакого способа узнать его адрес. Каждый литералимеет определенный тип. Так, 0 имеет тип int, 3.14159 – тип double.Литералы целых типов можно записать в десятичном, восьмеричном ишестнадцатеричном виде. Вот как выглядит число 20, представленное десятичным,восьмеричным и шестнадцатеричным литералами:20// десятичный024// восьмеричный0х14 // шестнадцатеричныйС++ для начинающих76Если литерал начинается с 0, он трактуется как восьмеричный, если с 0х или 0Х, то какшестнадцатеричный. Привычная запись рассматривается как десятичное число.По умолчанию все целые литералы имеют тип signed int.

Можно явно определитьцелый литерал как имеющий тип long, приписав в конце числа букву L (используется какпрописная L, так и строчная l, однако для удобства чтения не следует употреблятьстрочную: ее легко перепутать с 1). Буква U (или u) в конце определяет литерал какunsigned int, а две буквы – UL или LU – как тип unsigned long. Например:128u1024UL1L8LuЛитералы, представляющие действительные числа, могут быть записаны как сдесятичной точкой, так и в научной (экспоненциальной) нотации. По умолчанию ониимеют тип double. Для явного указания типа float нужно использовать суффикс F илиf, а для long double - L или l, но только в случае записи с десятичной точкой.Например:3.14159F 0/1f12.345L 0.03el1.0E-3E 2.1.0LСлова true и false являются литералами типа bool.Представимые литеральные символьные константы записываются как символы водинарных кавычках. Например:'a''2'','' ' (пробел)Специальные символы (табуляция, возврат каретки) записываются как escapeпоследовательности .

Определены следующие такие последовательности (они начинаютсяс символа обратной косой черты):новая строкагоризонтальная табуляциязабойвертикальная табуляциявозврат кареткипрогон листазвонокобратная косая чертавопросодиночная кавычкадвойная кавычка\n\t\b\v\r\f\a\\\?\'\"escape-последовательность общего вида имеет форму \ooo, где ooo – от одной до трехвосьмеричных цифр.

Это число является кодом символа. Используя ASCII-код, мы можемнаписать следующие литералы:\7 (звонок)\0 (null)\14 (новая строка)\062 ('2')С++ для начинающихСимвольный литерал может иметь префикс L (например, L'a'), что означаетспециальный тип wchar_t – двухбайтовый символьный тип, который применяется дляхранения символов национальных алфавитов, если они не могут быть представленыобычным типом char, как, например, китайские или японские буквы.Строковый литерал – строка символов, заключенная в двойные кавычки.

Такой литералможет занимать и несколько строк, в этом случае в конце строки ставится обратная косаячерта. Специальные символы могут быть представлены своими escapeпоследовательностями. Вот примеры строковых литералов:"" (пустая строка)"a""\nCC\toptions\tfile.[cC]\n""a multi-line \string literal signals its \continuation with a backslash"Фактически строковый литерал представляет собой массив символьных констант, где посоглашению языков С и С++ последним элементом всегда является специальный символс кодом 0 (\0).Литерал 'A' задает единственный символ А, а строковый литерал "А" – массив из двухэлементов: 'А' и \0 (пустого символа).Раз существует тип wchar_t, существуют и литералы этого типа, обозначаемые, как и вслучае с отдельными символами, префиксом L:L"a wide string literal"Строковый литерал типа wchar_t – это массив символов того же типа, завершенныйнулем.Если в тесте программы идут подряд два или несколько строковых литералов (типа charили wchar_t), компилятор соединяет их в одну строку.

Например, следующий текст"two" "some"породит массив из восьми символов – twosome и завершающий нулевой символ.// this is not a good ideaРезультат конкатенации строк разного типа не определен. Если написать:"two" L"some"то на каком-то компьютере результатом будет некоторая осмысленная строка, а на другомможет оказаться нечто совсем иное.

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

Тип файла
PDF-файл
Размер
5,41 Mb
Тип материала
Высшее учебное заведение

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

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