246071-Либерти-Освой-самостоятельно-С-за-21-день (Освой С++ самостоятельно за 1 день. Книга), страница 8
Описание файла
PDF-файл из архива "Освой С++ самостоятельно за 1 день. Книга", который расположен в категории "". Всё это находится в предмете "объектно-ориентированное программирование (ооп)" из 2 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст 8 страницы из PDF
На этом занятии вы познакомились с основными составляющими частямипростойпрограммынаязыкеC++.Крометого,выполучилипредставлениеоциклеразработкииузналинескольковажныхтерминов.ВопросыиответыКакуюрольвыполняетдиректива#include?Это команда для препроцессора, который автоматически запускается при вызовекомпилятора. Данная директива служит для введения содержимого файла, имя которого стоитпоследирективы,висходныйтекстпрограммы.Вчемразницамеждусимволамикомментариев//и/*?Комментарии, выделенные двойным слешем (//), распространяются до конца строки.Комментарии, начинающиеся слешем со звездочкой (/*), продолжаются до тех пор, пока невстретитсясимволзавершениякомментария(*/).Помните,чтодажеконецфункциинезавершитдействие комментария, начавшегося с пары символов (/*).
Если вы забудете установитьзавершениекомментария(*/),тополучитесообщениеобошибкевовремякомпиляции.Вчемразницамеждухорошимииплохимикомментариями?Хороший комментарий сообщит читателю, почему здесь используются именно этиоператоры, или объяснит назначение данного блока программы. Плохой комментарийконстатируетто,чтоделаетсявданнойстрокепрограммы.Программавидеаледолжнаписатьсятак, чтобы имена переменных и функций говорили сами за себя, а логика выражений былапростаипонятнабезособыхкомментариев.КоллоквиумВэтомразделепредлагаютсявопросыдлясамоконтроляиукрепленияполученныхзнанийи приводится несколько упражнений, которые помогут закрепить ваши практические навыки.Попытайтесьсамостоятельноответитьнавопросытестаивыполнитьзадания,апотомсверьтеполученные результаты с ответами в приложении Г. Не приступайте к изучению материаласледующей главы, если для вас остались неясными хотя бы некоторые из предложенных нижевопросов.Контрольныевопросы1.Вчемразницамеждукомпиляторомипрепроцессором?2.Вчемсостоитособенностьфункцииmain()?3.Какиедватипакомментариеввызнаетеичемониотличаютсядруготдруга?4.Могутликомментариибытьвложенными?5.Могутликомментариизаниматьнесколькострок?Упражнения1.Напишитепрограмму,котораявыводитнаэкрансообщениеIloveC++.2.Напишитесамуюмаленькуюпрограмму,которуюможноскомпилировать,скомпоноватьивыполнить.3.Жучки:введитеэтупрограммуискомпилируйтеее.Почемуонадаетсбой?Какееможноисправить?1:#include<iostream.h>2:intmain()3:{4:cout<<Isthereаbughere?";5:return0;6:}4.
Исправьте ошибку в упражнении 3, после чего перекомпилируйте ее, скомпонуйте изапуститенавыполнение.День3-й.ПеременныеиконстантыПрограммы должны обладать способностью хранить используемые данные. Дляпредставленияиманипуляцииэтимиданнымииспользуютсяпеременныеиконстанты.Сегоднявыузнаете:•Какобъявлятьиопределятьпеременныеиконстанты•Какприсваиватьзначенияпеременнымииспользоватьихвпрограмме•КаквыводитьзначенияпеременныхнаэкранЧтотакоепеременнаяВ языке C++ переменные используются для хранения информации. Переменную можнопредставить себе как ячейку в памяти компьютера, в которой может храниться некотороезначение,доступноедляиспользованиявпрограмме.Память компьютера можно рассматривать как ряд ячеек.
Все ячейки последовательнопронумерованы. Эти номера называют адресами памяти. Переменная занимает одну илинесколькоячеек,вкоторыхможнохранитьнекотороезначение.Имя переменной (например, MyVariable) можно представить себе как надпись на ячейкепамяти, по которой, не зная настоящего адреса памяти, можно ее найти. На рис. 3.1схематически представлена эта идея. Согласно этому рисунку, переменная MyVariableначинается с ячейки с адресом 103. В зависимости от своего размера, переменная MyVariableможетзаниматьоднуилинесколькоячеекпамяти.Примечание:ВОЗУобеспечиваетсяпроизвольныйдоступкячейкампамяти.Запускаемаяпрограмма загружается в ОЗУ с дискового файла.
Все переменные также хранятся в ОЗУ.Когдапрограммистыговорятопамяти,ониобычноимеютввидуОЗУ.РезервированиепамятиПри определении переменной в языке C++ необходимо предоставить компиляторуинформацию о ее типе, например int, chart или другого типа. Благодаря этой информациикомпилятору будет известно, сколько места нужно зарезервировать для нее и какого родазначениебудутхранитьвэтойпеременной.Каждаяячейкаимеетразмерводинбайт.Еслидляпеременнойуказанноготипатребуетсячетыре байта, то для нее будет выделено четыре ячейки, т.е. именно по типу переменной(например, int) компилятор судит о том, какой объем памяти (сколько ячеек) нужнозарезервироватьдляэтойпеременной.Поскольку для представления значений в компьютерах используются биты и байты ипамять измеряется тоже в байтах, важно хорошо разбираться в этих понятиях. Более полно этатемарассматриваетсявприложенииВ.РазмерцелыхДля переменных одних и тех же типов на компьютерах разных марок может выделятьсяразныйобъемпамяти,втожевремявпределаходногокомпьютерадвепеременныеодинаковоготипавсегдабудутиметьпостоянныйразмер.Переменная типа char (используемая для хранения символов) чаше всего имеет размер водинбайт.Примечание:Непрекращаютсяспорыопроизношенииименитипаchar.Однипроизносятего как "кар", другие — как "чар".
Поскольку это сокращение слова character, то первыйвариантправильнее,новывольныпроизноситьеготак,каквамудобно.В большинстве компьютеров для типа short int (короткий целый) обычно отводится двабайта, для типа long int (длинный целый) — четыре байта, а для типа int (без ключевого словаshortилиlong)можетбытьотведенодваиличетыребайта.Размерцелогозначенияопределяетсясистемой компьютера (16- или 32-разрядная) и используемым компилятором. На современных32-разрядных компьютерах, использующих последние версии компиляторов (например, VisualC++ 4 или более поздние), целые переменные имеют размер в четыре байта. Эта книгаориентирована на использование 4-байтовых целых, хотя у вас может быть другой вариант.Программа, представленная в листинге 3.1, поможет определить точный размер этих типов навашемкомпьютере.Подсимволомподразумеваетсяодиночнаябуква,цифраилизнак,занимающийтолькоодинбайтпамяти.Листинг3.1.Определениеразмеровпеременнымразныхтиповнавашемкомпьютре1:#include<iostream.h>2:3:intmain()4:{5:cout<<"Thesizeofanintis:\t\t"<<sizeof(int)<<"bytes.\n";6:cout<<"Thesizeofashortintis:\t\t"<<sizeof(short)<<"bytes.\n";7;cout<<"Thesizeofalongintis:\t\t"<<sizeof(long)<<"bytes.\n";8:cout<<"Thesizeofacharis:\t\t"<<sizeof(char)<<"bytes.\n";9:cout<<"Thesizeofafloatis:\t\t"<<sizeof(float)<<"bytes.\n";10:cout<<"Thesizeofadoubleis:\t\t"<<sizeof(double)<<"bytes.\n";11:cout<<"Thesizeofaboolis:\t\t"<<sizeof(bool)<<"bytes.\n";12:13:return0:14:};Результат:Thesizeofanintis:4bytes.Thesizeofashortintis:2bytes.Thesizeofalongintis:4bytes.Thesizeofacharis:1bytes.Thesizeofafloatis:4bytes.Thesizeofadoubleis:4bytes.Thesizeofaboolis:1bytes.Примечание:На вашем компьютере размеры переменных разных типов могут бытьдругими.Большинство операторов листинга З.1 вам знакомо.
Возможно, новым для вас будетиспользованиефункцииsizeof()встроках5-10.Результатвыполненияфункцииsizeof()зависитот компилятора и компьютера, а ее назначение состоит в определении размеров объектов,переданных в качестве параметра. Например, в строке 5 функции sizeof() передается ключевоеслово int. Функция возвращает размер в байтах переменной типа int на данном компьютере. Внашемпримередлятиповintиlongintвозвращаетсязначениечетыребайта.ЗнаковыеибеззнаковыетипыЦелочисленные переменные, используемые в программах, могут быть знаковыми ибеззнаковыми.
Иногда бывает полезно установить для переменной использование толькоположительных чисел. Целочисленные типы (short и long) без ключевого слова unsignedсчитаются знаковыми. Знаковые целые могут быть отрицательными или положительными.Беззнаковыечиславсегдаположительные.Поскольку как для знаковых, так и для беззнаковых целых отводится одно и то же числобайтов,томаксимальноечисло,котороеможнохранитьвбеззнаковомцелом,вдвоепревышаетмаксимальное положительное число, которое можно хранить в знаковом целом.
С помощьютипа unsigned short int можно обрабатывать числа в диапазоне 0—65 535. Половина чисел,представляемых знаковым коротким целым типом, отрицательные, следовательно, с помощьюэтоготипаможнопредставитьчислатольковдиапазоне-32768—32767.Есливэтомвопросевамчто-тонеясно,прочитайтеприложениеВ.БазовыетипыпеременныхВ языке C++ предусмотрены и другие типы переменных. Они делятся на целочисленные(которыерассматривалисьдосихпор),вещественные(сплавающейточкой)исимвольные.Вещественные переменные содержат значения, которые могут выражаться в виде дробей.Символьные переменные занимают один байт и используются для хранения 256 символов изнаковASCII,атакжерасширенныхнаборовсимволовASCII.ПодсимволамиASCIIпонимаютстандартныйнаборзнаков,используемыхвкомпьютерах.ASCII—этоAmericanStandardCodeforInformationInterchange(Американскийстандартныйкоддляобменаинформацией).ПочтивсекомпьютерныеоперационныесистемыподдерживаюткодASCII,хотямногиетакжеподдерживаютидругиенациональныенаборысимволов.Базовые типы переменных, используемые в программах C++, представлены в табл.
3.1. Вней также приведены обычные размеры переменных указанных типов и предельные значения,которыемогутхранитьсявэтихпеременных.Выможетесверитьрезультатыработыпрограммы,представленнойвлистинге3.1,ссодержимымтабл.3.1.Таблица3.1.Типыпеременных.Примечание:В зависимости от версии компилятора и марки компьютера, размерыпеременных могут отличаться от приведенных в табл.3.1. Если результаты, полученные навашем компьютере, совпадают с теми, что приведены после листинга 3.1, значит, табл. 3.1применима к вашему компьютеру. В противном случае вам следует обратиться кдокументации,прилагаемойккомпилятору,чтобыполучитьинформациюозначениях,которыемогутхранитьпеременныеразныхтиповввашейкомпьютернойсистеме.ОпределениепеременнойЧтобы создать или определить переменную, нужно указать ее тип, за которым (послеодного или нескольких пробелов) должно следовать ее имя, завершающееся точкой с запятой.Для имени переменной можно использовать практически любую комбинацию букв, но оно недолжно содержать пробелов, например: x, J23qrsnf и myAge.
Хорошими считаются имена,позволяющие судить о назначении переменных, ведь удачно подобранное имя способнооблегчить понимание работы программы в целом. В следующем выражении определяетсяцелочисленнаяпеременнаясименемmyAge:intmyAge;Примечание:При объявлении переменной для нее выделяется (резервируется) память.Резервирование памяти не очищает ячейки от значений, которые ранее в них хранились,поэтому если за объявлением переменной не следует ее инициализация, то текущее значениеэтойпеременнойбудетнепредсказуемым,аненулевым,какдумаютмногие.Далеевыузнаете,какинициализироватьпеременную(другимисловами,присвоитьейновоезначение).Уважающиесебяпрограммистыстремятсяизбегатьтакихнечитабельныхименпеременных,как J23qrsnf, а однобуквенные имена (например, x или i) используют только для временныхпеременных, таких как счетчики циклов.
Старайтесь использовать как можно болееинформативные имена, например myAge или howMany. Такие имена даже три недели спустяпомогутвамвспомнить,чтовыимеливвиду,когдаписалитеилииныепрограммныестроки.Поставьте следующий эксперимент. Опираясь лишь на первые пять строк программы,попробуйтедогадаться,длячегопредназначеныобъявленныенижепеременные.Пример1.Пример2.Примечание:Если вы скомпилируете эту программу, компилятор выведетпредупреждениеотом,чтоэтипеременныенеинициализированы.Чутьнижевыувидите,какрешаетсяэтапроблема.Очевидно,чтооназначениипеременныхвовторомпримередогадатьсялегче,инеудобство,связанноеснеобходимостьювводитьболеедлинныеименапеременных,впоследствииокупитсяс лихвой, потому что вам не придется ломать голову, для чего предназначена та или инаяпеременная.ЧувствительностькрегиструбуквЯзык C++ чувствителен к регистру букв. Другими словами, прописные и строчные буквысчитаютсяразнымибуквами.Переменныесименамиage,AgeиAGEрассматриваютсякактриразличныепеременные.Примечание: Некоторые компиляторы позволяют отключать чувствительность крегистру букв.
Лучше этого не делать, ведь ваши программы не смогут работать с другимикомпиляторамиидругиепрограммистыбудутвведенывзаблуждениетакойпрограммой.Существуютразличныесоглашенияпоповодупринциповподбораименпеременным.Хотяне так уж важно, каких принципов будете придерживаться вы, желательно оставаться вернымиимпокрайнеймеренапротяженииработынадоднимпроектом.Многие программисты предпочитают записывать имена переменных только строчнымибуквами. Если для имени требуется два слова (например, my car), то в соответствии с самымипопулярными соглашениями используются варианты my_car или myCar.