Вещественные типы данных (с плавающей точкой).
floatspeed, line; /* описывает вещественные переменные */
Вещественный тип данных следует использовать в тех случаях, когда данное в принципе может иметь дробную часть. Например, его надо использовать для описания почти всех физические величин: длины, массы, времени и т.д. Иногда величина, вообще говоря, целая, но большая настолько, что типа данных long не хватает. В этом случае тоже используется вещественный тип данных. Однако необходимо учитывать, что все арифметические действия с вещественными типами выполняются приближенно.
21. Преобразование типов (явное и неявное). Приведение типаНеявные преобразования. Не требуется никакого специального синтаксиса, поскольку преобразование безопасно для типов и данные не теряются. Примерами могут служить преобразования от меньшего к большему целому типу, и преобразования из производных классов в базовые классы.
Явные преобразования (приведения). Для явных преобразований необходим оператор приведения. Исходная переменная и переменная назначения совместимы, но имеется риск потери данных, поскольку тип переменной назначения имеет меньший размер, чем у исходной переменной (или является базовым классом исходной переменной).
неявное преобразование:
Double d; // вещественный тип
Long l; // целый тип
Inti; // целыйтип
if (d > i) d = i;
if (i > l) l = i;
if (d == l) d *= 2;
явное приведение типов:int X;
int Y = 200;
char C = 30;
X = (int)C * 10 + Y; //переменная С приведена к типу int.
23. Системы счисления. Кодовая таблица ASCII. Классификация и преобразование символов.Система счисле́ния — символический метод записи чисел, представление чисел с помощью письменных знаков. Система счисления:
даёт представления множества чисел (целых и/или вещественных); даёт каждому числу уникальное представление (или, по крайней мере, стандартное представление); отражает алгебраическую и арифметическую структуру чисел. Системы счисления подразделяются на позиционные, непозиционные и смешанные.ASCII (англ. AmericanStandardCodeforInformationInterchange) — американская стандартная кодировочная таблица для печатных символов и некоторых специальных кодовASCII представляет собой кодировку для представления десятичных цифр, латинского и национального алфавитов, знаков препинания и управляющих символов. Изначально разработанная как 7-битная, с широким распространением 8-битного байта ASCII стала восприниматься как половина 8-битнойКлассификация и преобразования символов в стандартной библиотеке С++ определены два фацета (функция) для работы с символами: ctype и codecvt. Оба фацета относятся к категории locale; :ctype. Фацет ctype используется в основном при классификации символов (например, проверки того, является ли символ буквой). Кроме того, в нем предусмотрены методы смены регистра символов, а также преобразования между char и типом символов, для которого был специализирован данный фацет. Фацет codecvt обеспечивает смену кодировок символов и используется в основном шаблоном basicfilebuf для преобразования между внутренними и внешними представлениями.
24. Константы. Целые константы. Константы с плавающей точкой. Символьные константы. Строки. NULL. Константы - объекты, не подлежащие использованию в левой части оператора присваивания, т.к. константа - является неадресуемой величиной и, хотя она хранится в памяти ЭВМ, нет никакого способа узнать ее адрес. В языке Си константами являются:- самоопределенные арифметические, символьные и строковые данные;- идентификаторы массивов и функций;- элементы перечислений. Арифметические константы могут быть целого или вещественного типов. Целочисленные константы Общий формат: ±n (+ обычно не ставится).Десятичные константы - последовательность цифр 0...9, первая из которых не должна быть 0. Константы вещественного типа
Данные константы размещаются в памяти по формату double, а во внешнем представлении могут иметь две формы:1) с фиксированной десятичной точкой, формат записи: ±n.m, где n, m - целая и дробная части числа;2) с плавающей десятичной точкой (экспоненциальная форма): ±n.mE±p, где n, m - целая и дробная части числа, р - порядок; ±0.xxxE±p - нормализованный вид, например, 1,25×10-8 = 0.125E-8. Символьная константа - это символ, заключенный в одинарные кавычки: 'A', 'х' (занимает 1 байт). Тип char® целое int. Строковая константа представляет собой последовательность символов кода ASCII, заключенная в кавычки (”) . Во внутреннем представлении к строковым константам добавляется нулевой символ '\0', еще называемый нуль-терминатор, отмечающий конец строкиNULL в языках программирования Си и C++ — макрос, объявленный в заголовочном файле stddef.h (и других заголовочных файлах). Значением этого макроса является зависящая от реализации константа нулевого указателя
25. Операции и выражения языка СиОперации языка Си предназначены для управления данными (более 40). Для их использования необходимо знать:- синтаксис;- приоритеты (15 уровней);- порядок выполнения. Выражения состоят из операндов, операций, скобок и используются для вычисления некоторого значения определенного типа. Каждый операнд может быть, в свою очередь, выражением или одним из его частных случаев.Операции, применяемые к одному операнду, - унарные, к двум операндам – бинарные, есть операция с тремя операндами - тернарная. Операции выполняются в соответствии с приоритетами. Для изменения порядка выполнения операций используются круглые скобки. Большинство операций выполняются слева направо, например, a+b+c® (a+b)+c. Исключение: унарные операции, операции присваивания и условная операция (?:) - справа налево.Формат операции присваивания: <ID> = <выражение>;В СИ предусмотрен набор операций для работы с отдельными битами слов. Эти операции нельзя применять к переменным вещественного типа (float, double). Перечень операций над битами и их обозначения:
~- дополнение (унарная операция); инвертирование (одноместная операция);
&- побитовое И - конъюнкция;
|- побитовое включающее ИЛИ - дизъюнкция;
^- побитовое исключающее ИЛИ - сложение по модулю 2;>> - сдвиг вправо; <<- сдвиг влево.
26.Арифметические операции. Аддитивные и мультипликативные операции.Арифметические операции - бинарные. Перечень арифметических операций и их обозначений:
+ - сложение;
- - вычитание (либо унарная операция - изменение знака); / - деление (для int операндов - с отбрасыванием остатка); * - умножение; % -остаток от деления целочисленных операндов со знаком первого операнда (деление по модулю).Операндами традиционных арифметических операций (+ - * /) могут быть константы, переменные, идентификаторы функций, элементы массивов, указатели, любые арифметические выражения. Порядок выполнения операций:
- выражения в круглых скобках;
- функции (стандартные математические, функции пользователя);
- * / выполняются слева направо;
- + ─ слева направо.
Порядок выполнения операций можно определять круглыми скобками, тогда выражение в скобках выполняется в первую очередь (слева направо).Унарные операции + и – обладают самым высоким приоритетом, определены только для целых и вещественных операндов, «+» носит только информационный характер, «–» меняет знак значения операнда на противоположный (не адресная операция).Аддитивные операции + и - группируются слева направо. Выполняютсяобычные арифметические преобразования. Для каждой операции имеютсянекоторые дополнительные возможности, связанные с типами операндов.Мультипликативные операции *, /, и % группируются слева направо.Выполняются обычные арифметические преобразования.
27. Условный оператор if. Условный оператор реализует выполнение определённых команд при условии, что некоторое логическое выражение (условие) принимает значение «истина» true. В большинстве языков программирования условный оператор начинается с ключевого слова if.
Встречаются следующие формы условного оператора:
Условный оператор с одной ветвью
if условие then команды end
При выполнении такого оператора вычисляется условие, и если оно истинно, то выполняются команды до ключевого слова end, в противном случае выполнение программы продолжается со следующей за условным оператором команды. В языках низкого уровня (ассемблерах) это — единственная доступная форма условного оператора. В некоторых языках для условного оператора с одной ветвью используется специальное ключевое слово (обычно это when).
Условный оператор с двумя ветвями
if условие then команды1else команды2 end
Здесь при истинности условия выполняются команды1 при ложности — команды2. При необходимости проверить последовательно несколько условий возможно каскадирование условных операторов:
if условие1
then команды1
elseif условие2then команды2
else if условие3 then команды3
...
else if условиеN-1 then командыN-1
elseкомандыNend;
28. Тернарная условная операция ?:.Терна́рнаяусло́внаяопера́ция (от лат. ternarius — «тройной») (обычно записывается как ?:) — во многих языках программирования операция, возвращающая свой второй или третий операнд в зависимости от значения логического выражения, заданного первым операндом. Как можно судить из названия, тернарная операция принимает всего три указанных операнда.Безотносительно определённого языка программирования, тернарную операцию можно определить так: логическое выражение ? выражение 1 : выражение 2
Алгоритм работы операции следующий:
Вычисляется логическое выражение.
Если логическое выражение истинно, то вычисляется значение выражения выражение 1, в противном случае — значение выражения выражение 2.
Вычисленное значение возвращается.
Нужно обратить внимание, что вычисляется только одно из выражений: выражение 1 или выражение 2