Файл: Лекция №2 Обшие сведения о языке С++.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 07.05.2025

Просмотров: 41

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Лекция 2. Общие сведения о языке С++

В этой лекции будут рассмотрены основные элементы языка С++: алфавита, переменных, констант, типов данных, операций, стандартных функций. Здесь же будут рассмотрены структура программы и средства ввода вывода данных.

2.1. Алфавит языка

Программа на языке С++ может содержать следующие символы:

прописные, строчные латинские буквы A, B, C, & , x, y, z и знак подчеркивания;

арабские цифры от 0 до 9;

специальные знаки: { } , |, [ ] ( ) + / % * . \ : ? < = > ! & # ~ ; ^

символы пробела, табуляции и перехода на новую строку.

Из символов алфавита формируют ключевые слова и идентификаторы. Ключевые слова это зарезервированные слова, которые имеют специальное значение для компилятора и

используются только в том смысле, в котором они определены (операторы языка, типы данных и т.п.). Идентификатор - это имя программного объекта, представляющее собой

совокупность букв, цифр и символа подчеркивания. Первый символ идентификатора буква или знак подчеркивания, но не цифра. Идентификатор не может содержать пробел. Прописные и строчные буквы в именах различаются, например, ABC, abc, Abc три различных имени. Каждое имя (идентификатор) должно быть уникальным в пределах

функции и не должно совпадать с ключевыми словами.

В тексте программы можно использовать комментарии. Если текст начинается с двух символов «косая черта» // и заканчивается символом перехода на новую строку или заключен между символами /* и */, то компилятор его игнорирует. Комментарии удобно использовать как для пояснений к программе, так и для временного исключения фрагментов программы при отладке.

2.2. Данные в языке С++

Для решения задачи в любой программе выполняется обработка каких-либо данных. Данные могут быть различных типов: целые и вещественные числа, символы, строки, массивы. Данные в языке С++ принято описывать в начале функции. Обязательное описание типов данных позволяет компилятору контролировать допустимость программных кодов.

2.2.1. Типы данных

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

Косновным типам данных языка относят:

char символьный ;

int целый ;

float с плавающей точкой ;

double двойной точности ;

bool логический .

Для формирования других типов данных используют основные типы и так называемые

спецификаторы. Типы данных созданные на базе стандартных типов с использованием спецификаторов называют составными типами данных. В С++ определены четыре

спецификатора типов данных:

short короткий ;

long длинный ;


signed знаковый ;

unsigned беззнаковый .

Далее (п.п. 2.2.2. - 2.2.6) будут рассмотрены назначение и описание каждого типа1.

2.2.2. Символьный тип

Данные типа char в памяти компьютера всегда занимают один байт. Это связано с тем, что обычно под величину символьного типа отводят столько памяти, сколько необходимо для хранения любого из 256 символов клавиатуры. Символьный тип может быть со знаком или без знака. В величинах со знаком signed char можно хранит значения в диапазоне от 128до 127. Соответственно значения переменных типа unsigned char могут находиться в диапазоне от 0 до 255 (табл. 2.1).

 

Таблица. 2.1. Символьные типы данных

Тип

Диапазон

Размер

 

char

-128..127

1 байт

 

 

unsigned char

0..255

1 байт

 

 

signed char

-128..127

1 байт

 

 

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

символов, то есть строка, при использовании в выражениях заключается в двойные кавычки.

2.2.3. Целочисленный тип

Переменная типа int в памяти компьютера может занимать либо два, либо четыре байта. Это зависит от разрядности процессора. По умолчанию все целые типы считаются знаковыми, т.е. спецификатор signed можно не указывать. Спецификатор unsigned позволяет представлять

только положительные числа.

 

 

 

 

 

Диапазоны значений целого типа представлены в таблице 2.2.

 

 

 

 

 

 

Таблица. 2.2. Целые типы данных

 

Тип

Диапазон

Размер

 

 

int

-32767 .. 32767

4

байта

 

 

unsigned int

0

.. 65535

4

байта

 

 

signed int

-32767 .. 32767

4

байта

 

 

short int

-32767 .. 32767

2

байта

 

 

long int

-2147483647 .. 2147483647

4

байта

 

 

unsigned short int

0

.. 65535

2

байта

 

 

signed short int

-32767 .. 32767

2

байта

 

 

long long int

-(263-1) .. (263-1)

8

байт

 

 

signed long int

-2147483647 .. 2147483647

4

байта

 

 

unsigned long int

0

.. 4294967295

4

байта

 

 

unsigned long long int

0

.. 264-1

8

байт

 

2.2.4. Вещественный тип

Внутреннее представление вещественного числа в памяти компьютера отличается от представления целого числа. Число с плавающей точкой представлено в экспоненциальной форме mE± p, где m мантисса целое( или дробное число с десятичной точкой ),p порядок (целое число). Для того чтобы перевести число в экспоненциальной форме к обычному

представлению с фиксированной точкой, необходимо мантиссу умножить на десять в степени порядок. Например,

-6.42Е+2 = -6.42.102 = -642, 3.2E-6 = 3.2.10-6 =0.0000032

1В таблицах этой главы приведены стандартные размеров памяти, соответствующие типам данных. Узнать объем занимаемой переменной для конкретного компилятора можно с помощью функции определения размера sizeof (п.1.5.7).



тип список_переменных;

Обычно величины типа float занимают 4 байта, из которых один двоичный разряд отводится под знак, 8 разрядов под порядок и 23 под мантиссу. Поскольку старшая цифра мантиссы всегда равна 1, она не хранится.

Величины типа double занимают 8 байт, в них под порядок и мантиссу отводится 11 и 52 разряда соответственно. Длина мантиссы определяет точность числа, а длина порядка его диапазон. Спецификатор типа long перед именем типа double указывает, что под величину

отводится 10 байт.

Диапазоны значений вещественного типа представлены в таблице 2.3.

 

 

Таблица. 2.3. Вещественные типы данных

Тип

Диапазон

 

Размер

 

float

3.4Е-38 .. 3.4E+38

 

4

байта

 

double

1.7Е-308 .. 1.7E+308

 

8

байт

 

long double

3.4Е-4932 .. 3.4E+4932

 

8

байт

 

2.2.5. Логический тип

Переменная типа bool может принимать только два значения true (истина) или false (ложь). Любое значение не равное нулю интерпретируется как true, а при преобразовании к целому типу принимает значение равное 1. Значение false представлено в памяти как 0.

2.2.6. Тип void

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

2.3. Переменные в языке С++

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

области памяти, в которой хранится значение. Во время выполнения программы значение

переменной можно изменить. Перед использованием любая переменная должна быть

описана:

Например,

int a, bc, f; float g, u, h12;

В Си могут обрабатываться структурированные типы данных: массивы, строки, структуры,

файлы.

По месту объявления переменные в языке Си можно разделить на три класса: локальные,

глобальные и формальные параметры функции.

Локальные переменные объявляются внутри функции и доступны только в ней. Например: int main()

{

float s; //В функции main определена вещественная переменная s, s=4.5; //и ей присвоено значение 4.5.

}

int f1()

{

int s; //В функции f1 описана другая переменная s (типа int), s=6; //ей присвоено значение 6.

}

int f2()

{

long int s; //В функции f2 определена еще одна переменная s

s=25;

//(типа long int) и ей присвоено значение 25.

}