Главная » Просмотр файлов » Конспект лекций по С++

Конспект лекций по С++ (1018900), страница 3

Файл №1018900 Конспект лекций по С++ (Сборник литературы - С и С++) 3 страницаКонспект лекций по С++ (1018900) страница 32017-07-08СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Наклонная черта влево вместе с символом новой строки будут проигнорированы компилятором , что позволяет формировать строко­вые литералы, располагаемые более чем в одной строке. Например, строковый литерал:

"Long strings can be bro\

cken into two pieces."

идентичен строке:

"Long strings can be brocken into two pieces."

Чтобы использовать двойные кавычки или наклонную черту вле­во внутри строкового литерала, нужно представить их с предшеству­ющей наклонной чертой влево, как показано в следующем примере:

"This is a string literal"

"First \\ Second"

"\"Yes, I do,\" she said."

"The following line shows a null string:"

""

Заметим, что ESC- символы (такие как \\ и \") могут появ­ляться в строковых литералах. Каждый ESC- символ считается одним отдельным символом.

Символы строки запоминаются в отдельных байтах памяти. Сим­вол null (\0) является отметкой конца строки. Каждая строка в программе рассматривается как отдельный об"ект. Если в программе содержатся две идентичные строки, то каждая из них будет хра­ниться в отдельном месте памяти.

Строчные литералы имеют тип char[]. Под этим подразумевает­ся, что строка- это массив, элементы которого имеют тип char. Число элементов в массиве равно числу символов в строчном литера­ле плюс один, поскольку символ null (отметка конца строки) тоже считается элементом массива.

Идентификаторы

Идентификаторы- это имена переменных, функций и меток, ис­пользуемых в программе. Идентификатор создается об"явлением соот-

ветствующей ему переменной или функции.После этого его можно ис­пользовать в последующих операторах программы. Идентификатор- это последовательность из одной или более букв, цифр или подчер­ков(_), которая начинается с буквы или подчерка. Допускается лю­бое число символов в идентификаторе, однако только первые 31 сим­вол распознаются компилятором. (Программы, использующие результат

работы компилятора, такие как, линкер, могут распознавать меньшее число символов).

При использовании подчерков в идентификаторе нужно быть ос­торожным, поскольку идентификаторы, начинающиеся с подчерка могут совпадать (войти в конфликт) с именами "скрытых" системных прог­рамм.

Примеры идентификаторов:

temp1

toofpage

skip12

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

add

ADD

Add

aDD

Компилятор Си не допускает идентификаторов, которые имеют ту же самую орфографию, что и ключевые слова. Ключевые слова опи­саны в следующем раздела

Замечание:

По сравнению с компилятором, сборщик может в большей степе­ни ограничивать количество и тип символов для глобальных иденти­фикаторов, и в отличие от компилятора не делать различия между большими и малыми буквами. (Подробнее смотри руководство по паке­ту MSC).

Ключевые слова

Ключевые слова- это предопределенные идентификаторы, кото­рые имеют специальное значение для компилятора Си. Их можно ис­пользовать только так как они определены. Имена об"ектов програм­мы не могут совпадать с названиями ключевых слов.

Список ключевых слов:

auto double int struct

break else long switch

case enum register typedef

char extern return union

const float short unsigned

continue for signed void

default goto sizeof while

do if static volatile

Ключевые слова не могут быть переопределены. Тем не менее, они могут быть названы другим текстом, но тогда перед компиляцией они должны быть заменены посредством препроцессора на соответст­вующие ключевые слова.

Ключевые слова const и volatile зарезервированы для буду­щего использования.

Следующие идентификаторы могут быть ключевыми словами для некоторых приложений:

cdecl

far

fortran

huge

near

pascal

Комментарии

Комментарий- это последовательность символов, которая восп­ринимается компилятором как отдельный пробельный символ или, дру­гими словами, игнорируется.

Комментарий имеет следующую форму представления:

/*<characters>*/,

где <characters> может быть любой комбинацией символов из множества представимых символов, включая символы новой строки, но исключая комбинацию */. Это означает, что комментарии могут зани­мать более одной строки, но не могут быть вложенными.

Комментарии допускаются везде, где разрешены пробельные символы. Компилятор игнорирует символы комментария, в частности, в комментариях допускается запись ключевых слов и зто не приведет к ошибке. Так как компилятор рассматривает комментарий как символ пробела, то комментарии не могут появляться внутри лексем.

Следующие примеры иллюстрируют некоторые комментарии:

/* Comments can separate and document

lines of a program. */

/* Comments can contain keywords such as for

and while */

/*******************************************

Comments can occupy several lines. *******************************************/

Так как комментарии не могут содержать вложенных коммента­риев, то следующий пример будет ошибочным:

/* You cannot/* nest */ comments */

Компилятор распознает первую комбинацию */ после слова nest как конец комментария. Затем, компилятор попытается обрабатывать оставшийся текст и выработает сообщение об ошибке. Чтобы обойти

компиляцию комментариев больших размеров, нужно использовать ди­рективу #if препроцессора.

Лексемы

Когда компилятор обрабатывает программу, он разбивает прог­рамму на группы символов, называемых лексемами. Лексема- это еди­ница текста программы, которая имеет определенный смысл для ком­пилятора и которая не может быть разбита в дальнейшем. Операции, константы, идентификаторы и ключевые слова, описанные в этом раз­деле,являются примерами лексем. Знаки пунктуации, такие как квад­ратные скобки ([]), фигурные скобки ({}), угловые скобки (<>), круглые скобки и запятые, также являются лексемами. Границы лек­сем определяются пробельными символами и другими лексемами, таки­ми как операции и знаки пунктуации. Чтобы предупредить неправиль­ную работу компилятора, запрещаются пробельные символы между сим­волами идентификаторов, операциями, состоящими из нескольких сим­волов и символами ключевых слов.

Когда компилятор выделяет отдельную лексему, он последова­тельно об"единяет столько символов, сколько возможно, прежде чем перейти к обработке следующей лексемы. Поэтому лексемы, не раз­деленные пробельными символами, могут быть проинтерпретированы неверно.

Например, рассмотрим следующее выражение:

i+++j

В этом примере компилятор вначале создает из трех знаков плюс самую длинную из возможных операций (++), а затем обработает оставшийся знак +, как операцию сложения (+). Выражение проинтер­претируется как (i++)+(j), а не как (i)+(++j). В таких случаях необходимо использовать пробельные символы или круглые скобки, чтобы однозначно определить ситуацию.

ИСХОДНЫЕ ТЕКСТЫ ПРИМЕРОВ

// Программа VAR.CPP, иллюстрирующая простые переменные

#include <iostream.h>

int main()

{

int i, j = 2;

double x, y = 355.0 / 113;

i = 3 * j;

cout << "i = " << i << endl

<< "j = " << j << endl;

x = 2 * y;

x = x * x;

cout << "y = " << y << endl

<< "x = " << x << endl;

return 0;

}

/*

Результаты:

i = 6

j = 2

y = 3.141593

x = 39.4784

*/

// Программа CONST1.CPP, иллюстрирующая константы

#include <iostream.h>

#define SEC_IN_MIN 60

#define MIN_IN_HOUR 60

int main()

{

long hours, minutes, seconds;

long totalSec;

cout << "Введите часы: ";

cin >> hours;

cout << "Введите минуты: ";

cin >> minutes;

cout << "Введите секунды: ";

cin >> seconds;

totalSec = ((hours * MIN_IN_HOUR + minutes) *

SEC_IN_MIN) + seconds;

cout << endl << totalSec << " секунд прошло с полуночи" << endl;

return 0;

}

/* Тест и результаты:

Введите часы: 10

Введите минуты: 0

Введите секунды: 0

36000 секунд прошло сполуночи

*/

// Программа CONST2.CPP, иллюстрирующая формальные константы

#include <iostream.h>

const int SEC_IN_MIN = 60; // глобальная константа

int main()

{

const int MIN_IN_HOUR = 60; // локальная константа

long hours, minutes, seconds;

long totalSec;

cout << "Введите часы: ";

cin >> hours;

cout << "Введите минуты: ";

cin >> minutes;

cout << "Введите секунды: ";

cin >> seconds;

totalSec = ((hours * MIN_IN_HOUR + minutes) *

SEC_IN_MIN) + seconds;

cout << endl << endl << totalSec << " секунд прошло с полуночи" << endl;

return 0;

}

/* Тест и результаты:

Введите часы: 1

Введите минуты: 10

Введите секунды: 20

4220 секунд прошло с полуночи

*/

// Программа OPER1.CPP, иллюстрирующая простые математические операции

#include <iostream.h>

int main()

{

int int1, int2;

long long1, long2, long3, long4, long5;

float x, y, real1, real2, real3, real4;

cout << endl << "Введите первое целое число: ";

cin >> int1;

cout << "Введите второе целое число: ";

cin >> int2;

cout << endl;

long1 = int1 + int2;

long2 = int1 - int2;

long3 = int1 * int2;

long4 = int1 / int2;

long5 = int1 % int2;

cout << int1 << " + " << int2 << " = " << long1 << endl;

cout << int1 << " - " << int2 << " = " << long2 << endl;

cout << int1 << " * " << int2 << " = " << long3 << endl;

cout << int1 << " / " << int2 << " = " << long4 << endl;

cout << int1 << " % " << int2 << " = " << long5 << endl;

cout << endl << endl;

cout << "Веедите первое вещественное число: ";

cin >> x;

cout << "Введите второе вещественное число: ";

cin >> y;

cout << endl;

real1 = x + y;

real2 = x - y;

real3 = x * y;

real4 = x / y;

cout << x << " + " << y << " = " << real1 << endl;

cout << x << " - " << y << " = " << real2 << endl;

cout << x << " * " << y << " = " << real3 << endl;

cout << x << " / " << y << " = " << real4 << endl;

cout << endl << endl;

return 0;

}

/* Тест и результаты:

Введите первое целое число: 10

Введите второе целое число: 5

10 + 5 = 15

10 - 5 = 5

10 * 5 = 50

10 / 5 = 2

10 % 5 = 0

Введите первое вещественное число: 1.25

Введите второе вещественное число: 2.58

1.25 + 2.58 = 3.83

1.25 - 2.58 = -1.33

1.25 * 2.58 = 3.225

1.25 / 2.58 = 0.484496

*/

//Демонстрация операций инкремента и декремента см. в программе OPER2.CPP

// Программа SIZEOF.CPP, которая возвращает размеры данных, используя

// для этого операцию sizeof() с переменными и типами данных.

#include <iostream.h>

int main()

{

short int aShort;

int anInt;

long aLong;

char aChar;

float aReal;

cout << "Таблица 1. Размеры памяти для переменных" << endl

<< endl;

cout << " Тип данных Используемая " << endl;

cout << " память (в байтах)" << endl;

cout << "------------------ -----------" << endl;

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

Тип файла
Документ
Размер
656 Kb
Тип материала
Высшее учебное заведение

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

С и С++ - сборник литературы
C++ Бархатный путь - Марченко А
cpp_001.shtml
cpp_002.shtml
cpp_003.shtml
cpp_004.shtml
cpp_005.shtml
cpp_006.shtml
cpp_007.shtml
cpp_008.shtml
cpp_009.shtml
cpp_010.shtml
cpp_011.shtml
cpp_012.shtml
cpp_013.shtml
cpp_014.shtml
cpp_015.shtml
cpp_016.shtml
cpp_017.shtml
cpp_018.shtml
cpp_019.shtml
cpp_020.shtml
cpp_021.shtml
cpp_022.shtml
cpp_023.shtml
cpp_024.shtml
cpp_025.shtml
cpp_026.shtml
cpp_027.shtml
cpp_030.shtml
cpp_034.shtml
Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
7045
Авторов
на СтудИзбе
259
Средний доход
с одного платного файла
Обучение Подробнее