bmstu_iu6_Cpp1 (Методические пособия по C++ Г.С.Иванова 3 части), страница 3
Описание файла
PDF-файл из архива "Методические пособия по C++ Г.С.Иванова 3 части", который расположен в категории "". Всё это находится в предмете "объектно-ориентированное программирование (ооп)" из 2 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст 3 страницы из PDF
Прототипы используют, если вызов функции предшествует ее описанию, как в данном случае. Если бы функция nod() была описана первой, то прототип можно было бы в программу не включать.Функция nod()определяет наименьший общий делитель двух целых чисел. Основная функция main() осуществляет вызов функции nod() и вывод результатов работы.Кроме этого она организует приостановку выполнения программы, пока пользователь непрочитает результат и не нажмет какую-либо клавишу.1.3 ДанныеЛюбая программа существует для того, чтобы обрабатывать какие-либо данные.
Вкачестве данных могут использоваться числа, а также текстовая информация, представленная в различных видах: вводимая с клавиатуры или из файла или наоборот выводимая наэкран или в файл. При этом данные в программе могут быть неизменяемыми, т.е.константами, и изменяемыми, в которых сохраняются получаемые результаты.1.3.1 Типы данныхТип данных – это характеристика данных, которая определяет:• интерпретацию значений и множество операций, которые могут выполнятьсянад ними;• диапазон и шаг изменения хранимых значений.Стандартно определено некоторое количество скалярных (простых) типов данных,которые программист может использовать без предварительного описания. Во внутреннемпредставлении каждому типу сопоставлен собственный формат записи значений.В Visual С++ 2008 принято различать целочисленные (интегральные) и вещественные типы данных. Значениями целочисленных типов данных могут быть положительные,отрицательные и нулевые целые числа.
В таблице 1 приведены стандартные целочисленные типы данных.Оглавление11Таблица 1 - Целочисленные типы данных Visual C++ 2008ИмяПодтипытипа[int] или long или[signed] [int]_int32unsigned [int]Размер,ИнтервалБайт4значений-231.. 231-10.. 232-1[signed] longshort или _int16unsigned long[signed] short2-32768..32767char или _int8unsigned short[signed] char10..65535-128..127long long или _int64unsigned char[signed] long long80..255-263.. 263-110.. 264-1false (0), true(1)unsigned long longboolНаиболее используемый тип int – целое число со знаком. Знак задается первым битом числа.
При этом 0 – обозначает «плюс», а 1 – «минус». Квадратные скобки в таблицепри указании типа int означают, что, если тип данных при объявлении в программе неуказан, то им присваивается тип int по умолчанию.Тип long в данной реализации совпадает по характеристикам с типом int. В прошлых версиях это было не так и может быть не так для компиляторов других фирм.Типы short и long long применяются соответственно для небольших и оченьбольших чисел. Для хранения этих данных использованы аналогичные форматы, различающиеся длиной внутреннего представления.Символы, как это принято в программировании, представляются своими кодами (номерами) по расширенной таблице ANSI.
При этом тип char в Си и в С++ соответствуетцелому числу со знаком (!). Поэтому при работе с символами, коды которых превышают127, используют беззнаковый подтип символьного типа unsigned char.Логический тип в Си первоначально отсутствовал. При необходимости в качестве«истины» фигурировало любое целое число отличное от нуля. Соответственно ноль интерпретировался как «ложь».
Однако позднее логический bool тип все-таки был добавлен вС++. Для этого типа данных, как это принято в других языках программирования: true =1, false = 0. Для хранения значений типа bool используется 1 байт памяти.Типы _int32, _int16 и _int64 были введены в Microsoft Visual C++ для простоты запоминания системы типов.Оглавление12К интегральным типам формально относится и специальный тип, используемый дляпредставления адресов.
Этот тип будет описан позднее (см. раздел 3.1).Описание стандартных вещественных типов данных приведено в таблице 2.Таблица 2 – Стандартные вещественные типы данныхТипРазмер, ЗначащихМинимальноеМаксимальноебайтовположительноеположительноечислочислоfloatdouble48цифр6151.175494351×10-382.2250738585072014×10-3083.402823466×10381.797693134862318×10308(long double)Кроме указанных выше типов данных стандартно задан еще один тип – неопределенный.
Он обозначается служебным словом void. Этот тип используют в тех случаях, когдатип неизвестен или не может быть указан. Например, если функция не возвращает значений, являясь по сути процедурой, то тип ее возвращаемого значения указывают как void,т.е. «пустой, неопределенный».1.3.2 ЛитералыЛитерал – это запись фиксированного числового, символьного или строкового значения в тексте программы.
Литералы специально объявлять не надо, их используют при записи выражений или других конструкций языка. Компилятор, обнаружив литерал, относитего к соответствующему типу по форме записи и величине числового значения.В программе на С++ допускаются литералы пяти видов: целочисленные, вещественные, перечисляемые, символьные и строковые.Целочисленные литералы. По форме записи целочисленные литералы могут бытьдесятичными, восьмеричными и шестнадцатеричными.Десятичный литерал записывается как последовательность десятичных цифр, передкоторой может стоять знак. При этом наличие незначащих нулей перед числом не допускается, например:16, 56783, 0, -567, +7865.Восьмеричный литерал записывается как последовательность цифр от 0 до 7, всегданачинающаяся с нуля, перед которой может также стоять знак, например:016, 020, -0777.Оглавление13Шестнадцатеричный литерал записывается как последовательность шестнадцатеричных цифр (цифры от 0 до 9 и буквы от a до f или от A до F), которая начинается сочетанием 0х и перед которой, как и в предыдущих случаях, может стоять знак:0х30, 0хF, 0xfa4, -0x56AD.В зависимости от значения целой константы компилятор представляет ее в памяти всоответствии с существующими стандартными типами.
Для явного указания типа внутреннего представления программист может использовать суффиксы: «L», «l» – соответствует типу long, а «U», «u» – типу unsigned long, например:-64L, 067u.Вещественные литералы записывают в форматах с фиксированной или плавающейточкой. Форма записи «с фиксированной точкой» предполагает, что при записи числа десятичная дробь отделена от целой части числа точкой, например 0.0021.Запись «с плавающей точкой» использует экспоненциальную форму. Число в экспоненциальной форме представляется в виде произведения мантиссы на степень основаниясистемы счисления, например 2.1×10-3. В программе на Си или С++ при этом используютстрочную форму, в которой вместо 10-3 указывают е-3 или Е-3.
Тогда все число будет записано как 2.1е-3.При этом также в явном виде может быть указан тип числа, определяющий его внутреннее представление: «F», «f» – float, «L», «l» – long double, например:66..045.03.1459F1.34e-12-45E+6L56.891.Без суффиксов F или L под вещественную константу отводится 8 байт (тип longdouble).Символьные литералы – это отдельные символы или Esc-последовательности символов, заключенные в апострофы.Символы используют, если для их ввода существуют клавиши на клавиатуре, например ’Z’, ’*’, ’$’ . При необходимости можно сразу записать несколько символов, например ’db1’.Esc-последовательностью называют последовательность символов, начинающуюся ссимвола «\».
Такие последовательности используют для записи:•кодов символов, отсутствующих на клавиатуре – в этом случае указывают «\»и коды ANSI в 8-ричном (’\ооо’) или 16-ричном (’\xhh’) виде, например’\012’– код символа в восьмеричном виде, ’\x07\x07’ - два символа, заданных кодами в шестнадцатеричном виде, ’\0’- символ с кодом 0;Оглавление14•служебных символов, таких как «’», «\», «?», «″» – косая черта перед нимиговорит, что необходим код символа, а не подразумеваемые им операции,например \’, \″;•кодов управляющих символов, например:’\n’ – символ перехода на следующую строку,’\t’ – символ горизонтальной табуляции,’\а’ – символ звонка (тревога),’\b’ – символ возврата на одну позицию и др.Строковые литералы записывают как последовательность символов, заключеннуюв двойные апострофы (кавычки), например: ″Это пример строкового литерала″.В отличие от символьных строковые литералы во внутреннем представлении завершаются байтом, содержащим число «0».
Это позволяет определять длину строкового литерала при выполнении операций с ним.Среди символов строки также могут присутствовать Esc-последовательности, например: ″\nЭто строка, \nиначе -\″строковый литерал\″.″1.3.3 Объявление переменных и поименованных константПомимо литералов для работы с данными в программе используют поименованныеконстанты или переменные.Поименованные константы – неизменяемые данные, обращение к которым выполняется по имени. Такие константы должны быть специально объявлены в программе, и имдолжны быть назначены типы и заданы значения.Переменные – поименованные данные, которые могут изменяться в процессе выполнения программы. Обращение к этим данным, как и к поименованным константам, осуществляется по имени.
При объявлении переменной для нее необходимо указать тип значений, которые в эту переменную можно записать.В каждый момент времени переменная хранит значение, записанное в нее ранее. Запись значения может выполняться сразу при объявлении переменной, тогда переменнаяназывается инициализированной. Если при объявлении переменной начальное значение незадается, то значение переменной должно быть определено во время выполнения программы. Такая переменная называется неинициализированной. Чтение неинициализированнойпеременной до записи в нее значения приводит к неправильному результату.Оглавление15Переменные и поименованные константы объявляют в конструкции следующеговида:[<Изменяемость>] [<Тип>] <Имя> [=<Значение>][, <Имя> [=<Значение>],…];где <Изменяемость> – описатель возможности изменения значений, этот описатель можно не указывать, тогда по умолчанию объявляется обычная переменная,const – поименованная константа – неизменяемое значение,volatile – независимо меняющаяся переменная, которая может обновляться в промежутках между явными обращениями к ней.