Главная » Просмотр файлов » 246071-Либерти-Освой-самостоятельно-С-за-21-день

246071-Либерти-Освой-самостоятельно-С-за-21-день (852741), страница 10

Файл №852741 246071-Либерти-Освой-самостоятельно-С-за-21-день (Освой С++ самостоятельно за 1 день. Книга) 10 страница246071-Либерти-Освой-самостоятельно-С-за-21-день (852741) страница 102021-10-05СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

этапеременнаяявнонеобъявляетсябеззнаковой,топодразумеваетсяееиспользованиесознаком).Востальномэтапрограммавыполняеттежедействия,чтоипредыдущая,нонаэкранвыводятсясовсем другие результаты. Чтобы до конца понять, почему получены именно такие результаты,нужнознать,какпредставляютсячисласознакомвдвухбайтовомцеломзначении.Этотпримерпоказывает,чтовслучаеприращениямаксимальногоположительногоцелогочисла со знаком будет получено не нулевое значение (как в случае с беззнаковыми целыми), аминимальноеотрицательноечисло.СимволыСимвольные переменные (типа char) обычно занимают один байт, этого достаточно дляхранения 256 значений печатаемых символов (см. приложение В). Значение типа char можноинтерпретироватькакчисловдиапазоне0—255,илисимволASCII.НаборсимволовASCIIиегоэквивалент ISO (International Standards Organization — Международная организация постандартизации)представляютсобойспособкодировкивсехбукв,цифризнаковпрепинания.Например, в коде ASCII английской строчной букве "а" присвоено значение 97.

Всемпрописнымистрочнымбуквам,всемцифрамизнакампрепинанияприсвоенызначенияот1до128. Дополнительные 128 знаков и символов зарезервированы для расширения возможностейкомпьютера,хотярасширенныйнаборсимволовIBMсталужечем-товродестандарта.Примечание:ASCIIобычнопроизноситсякак"аскей".Примечание:Компьютеры не имеют ни малейшего понятия, ни о каких буквах, знакахпрепинания или предложениях. Все они понимают только числа.

В действительности же ониоценивают некоторые электрические параметры в определенных точках своих схем. Еслизначениеоцениваемогопараметравышенекоторойоговореннойвеличины,онопредставляетсявнутренне как 1, если нет — как 0. Путем группирования нулей и единиц компьютер способенгенерироватькодовыекомбинации,которыеможноинтерпретироватькакчисла,ате,всвоюочередь,можноприсвоитьбуквамизнакампрепинания.СимволыичислаЕсли поместить какой-нибудь символ, например "а", в переменную типа char, то вдействительности она будет хранить число, лежащее в диапазоне между 0 и 255.

Однакокомпиляторзнает,какпереходитьотсимволовкихцифровымэквивалентамвASCIIиобратно.Взаимосвязьмеждучисломибуквойпроизвольна,посколькунетникакойвесомойпричиныдляприсваиваниястрочнойбукве"а"именнозначения97.Есливсесоставляющиекомпьютера(ваша клавиатура, компилятор и экран) с этим "согласны", никаких проблем не возникнет.Однаковажнопонимать,чтомеждузначением5исимволом"5"большаяразница.Символу"5"вдействительностисоответствуетзначение53,такжекакбукве"а"соответствуетчисло97.Листинг3.6.Выводназкрансимволовпоихзначениям.1:#include<iostream.h>2:intmain()3:{4:for(inti=32;i<128;i++)5:cout<<(char)i;6:return0;7:}Результат:!"#$%'()*+,./0123456789:;<>?@ABCDEFGHIJKLMNOP_QRSTUVWXYZ[\]"`abcdefghijklmnopqrstuvwxyz{|{~Этапростаяпрограммавыводитсимволы,значениякоторыхлежатвдиапазоне32—127.СпециальныесимволыКомпилятор C++ распознает некоторые специальные символы, предназначенные дляформатирования текста.

(Самые распространенные из них представлены в табл. 3.2.) Чтобывставитьэтисимволывпрограмму,используетсяобратныйслеш(называемыйсимволомначалауправляющей последовательности), указывающий, что следующий за ним символы являетсяуправляющими. Следовательно, чтобы вставить в программу символ табуляции, нужно ввестиодиночнуюкавычку,обратныйслеш,буквуtисноваодиночнуюкавычку:chartabCharacter='\t';Вэтомпримереобъявляетсяпеременнаятипаchar(сименемtabCharacter),котораятутжеинициализируется символьным значением \t, распознаваемым как символ табуляции.Специальныесимволыформатированияиспользуютсяпривыводеинформациинаэкран,вфайлилинадругоеустройствовывода(например,принтер).Символ начала управляющей последовательности изменяет значение символа, которыйследуетзаним.Например,обычносимволnозначаетбуквуя,нокогдапереднейстоитсимволначалауправляющейпоследовательности(\),тоонпревращаетсявсимволразрывастроки.Таблица3.2.Управляющиесимволы.КонстантыПодобнопеременным,константыпредставляютсобойячейкипамяти,предназначенныедляхраненияданных.Но,вотличиеотпеременных,константынеизменяются(очемговоритсамоназвание—константа).Создаваемуюконстантунужноинициализировать,посколькупозжеейнельзяприсвоитьновоезначение,ВязыкеC++предусмотренодватипаконстант:литеральныеисимвольные.ЛитеральныеконстантыЛитеральная константа — это значение, непосредственно вводимое в самой программе.Например,ввыраженииintmyAge=39;myAge является переменной типа int, а число 39 — литеральной константой.

Нельзяприсвоитьникакоезначениеконстанте39.СимвольныеконстантыСимвольнаяконстанта—этоконстанта,представленнаяименем(точнотакже,какименемпредставляется любая переменная). Однако, в отличие от переменной, значениеинициализированнойконстантыизменитьнельзя.Есливвашейпрограммеестьоднацелочисленнаяпеременнаясименемstudents,адругая—с именем classes, вы могли бы вычислить общее количество учеников школы при условии, чтовамизвестно,сколькоклассоввшколеисколькоучениковвкаждомклассе(допустим,каждыйкласссостоитиз15учеников):students=classes*15;Примечание:Символ(*)означаетумножение.В этом примере число 15 является литеральной константой.

Но если эту литеральнуюконстантузаменитьсимвольной,товашупрограммубудетлегчечитатьиизменятьвбудущем:students=classes*studentsPerClassЕсли впоследствии потребуется изменить количество учеников в каждом классе, высможете сделать это единожды в той строке программы, где определяется константаstudentsPerClass, и вам не придется вносить изменения во все строки программы, гдеиспользуетсяэтозначение.В языке C++ существует два способа объявления символьной константы. Традиционный инынеужеустаревшийспособсостоитвиспользованиидирективыпрепроцессора#define.Определениеконстантспомощьюдирективы#deiineДляопределенияконстантытрадиционнымспособомвведитеследующеевыражение:#definestudentsPerClass15Обратите внимание на то, что константа studentsPerClass не имеет никакого конкретноготипа(int,charит.д.).Директива#defineвыполняетпростуютекстовуюподстановку.Каждыйраз,когдапрепроцессорвстречаетсловоstudentsPerClass,онзаменяетеголитералом15.Поскольку препроцессор запускается перед компилятором, последний никогда не увидитконстанту,абудетвидетьтолькочисло15.ОпределениеконстантспомощьюключевогословаconstХотя директива #define и справляется со своими обязанностями, в языке C++ существуетновый,болееудобныйспособопределенияконстант:constunsignedshortintstudentsPerClass=15;ВэтомпримеретакжеобъявляетсясимволическаяконстантасименемstudentsPerClass,нона сей раз для этой константы задается тип unsigned short int.

Этот способ имеет несколькопреимуществ, облегчая дальнейшую поддержку вашей программы и предотвращая появлениенекоторых ошибок. Самое важное отличие этой константы от предыдущей (объявленной спомощьюдирективы#define)состоитвтом,чтоонаимееттипикомпиляторможетпроследитьзаееиспользованиемтолькопоназначению(т.е.всоответствиисобъявленнымтипом).Примечание:Вовремяработыпрограммыконстантыизменятьнельзя.Еслижевозникланеобходимость в изменении, например, константы studentsPerClass, вам нужно изменитьсоответствующееобъявлениевпрограммеиперекомпилироватьее.Рекомендуется:Следите,чтобызначенияпеременныхнепревышалидопустимыйпредел.Присваивайте переменным осмысленные имена, отражающие их назначение.

Используйтетипыshortиlong,чтобыболееэффективноуправлятьпамятьюкомпьютера.Нерекомендуется:Неиспользуйтевкачествеименпеременныхключевыеслова.КонстантыперечисленийПеречисления позволяют создавать новые типы данных, а затем определять переменныеэтих типов, значения которых ограничены набором константных значений.

Например, можнообъявить C0L0R как перечисление и определить для него пять значений: RED, BLUE, GREEN,WHITEИBLACK.Для создания перечисления используется ключевое слово enum, за которым следуют: имятипа, открывающая фигурная скобка, список константных значений, разделенных запятыми,закрывающаяфигурнаяскобкаиточкасзапятой.Например:enumCOLOR{RED,BLUE,GREEN,WHITE,BLACK};Этовыражениевыполняетдвезадачи.1.СоздаетсяперечислениесименемC0L0R,являющеесяновымтипом.2.

Определяются символьные константы: RED со значением 0; BLUE со значением 1;GREENсозначением2ит.д.Каждой константе перечисления соответствует определенное целочисленное значение. Поумолчаниюперваяконстантаинициализируетсязначением0,акаждаяследующая—значением,на единицу большим предыдущего. Однако любую константу можно инициализироватьпроизвольным значением, и в этом случае явно неинициализированные константы продолжатвозрастающуюпоследовательность,взявзаточкуотсчетазначение,стоящеепередними.Такимобразом,еслизаписатьenumColor{RED=100,BLUE,GREEN=500,WHITE,BLACK=700};токонстантаredбудетиметьзначение100;константаblue—101;константаGREEN—500;константаWHITE—501;константаBLACK—700.Теперь можно определить переменные типа C0L0R, но каждой из них можно присвоитьтолько одно из перечислимых значений (в данном случае RED, BLUE, GREEN, WHITE илиBLACKлибо100,101,500,501или700).ПеременнойC0L0Rможноприсвоитьлюбоезначениецвета.Насамомделеэтойпеременнойможноприсвоитьлюбоецелоезначение,дажееслиононе соответствует ни одному из разрешенных цветов, но в этом случае приличный компилятордолженвозмутитьсяипоказатьпредупреждающеесообщение.Важнопонимать,чтопеременныеперечисления на самом деле имеют тип unsigned int и целочисленным переменнымприсваиваютсязаданныеконстантыперечисления.Однакоиногдаприработесцветами,дняминедели или другими подобными наборами значений неплохо иметь возможность называть этизначения по имени.

В листинге 3.7 представлена программа, в которой используется типперечисления.Листинг3.7.Использованиеперечисления1:#include<iostream.h>2:intmain()3:{4:enumDays{Sunday,Monday,Tuesday,5:Wednesday,Thursday,Friday,Saturday};6:intchoice;7:cout<<"Enteraday(0-6):";8:cin<<choice;9:if(choice=Sunday||choice==Saturday)10:cout<<"\nYou'realreadyoffonweekends!\n";11:else12:cout<<"\nOkay,I'llputinthevacationday.\n";13:return0;14:}Результат:Enteraday(0-6):6You'realreadyoffonweekends!Анализ:Встроке4определяетсяперечислениеDAYSссемьюконстантнымизначениями.Все они образуют возрастающую последовательность чисел, начиная с нуля; таким образом,значениевторника(Tuesday)равно2.Пользователюпредлагаетсяввестизначениемежду0и6.ОннеможетввестисловоSunday,посколькувпрограмменепредусмотренпереводсимволоввзначениеперечисления.Номожнопроверить введенное пользователем значение, сравнив его с константными значениямиперечисления, как показано в строке 9.

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

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

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

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