
- •1 Введение в теорию алгоритмизации 6
- •Введение
- •1 Введение в теорию алгоритмизации
- •1.1 Понятие алгоритма
- •1.2 Свойства алгоритмов
- •1.3 Формы представления алгоритма
- •1.4 Основные алгоритмические структуры
- •1.5 Алгоритмический язык
- •2.3 Инструменты программирования Microsoft Visual Studio
- •2.5 Консольные и оконные приложения
- •2.6 Компилирование программы
- •3.2 Простые типы данных
- •3.3 Операции над числовыми данными
- •3.4 Объявление переменных
- •3.7 Директива #define
- •3.9 Библиотека математических функций
- •4 Условный оператор
- •4.1 Условный оператор if
- •4.2 Составной оператор
- •4.3 Вложенный оператор
- •4.4 Оператор выбора switch
- •5 Операторы циклов
- •5.1 Определение цикла
- •5.2 Оператор цикла for
- •5.3 Оператор цикла while
- •5.4 Оператор цикла do while
- •5.5 Табулирование функций
- •5.6 Вычисление конечных сумм и произведений
- •5.7 Управляющие конструкции break, continue, return, goto
- •6 Массивы
- •6.1 Понятие и описание массивов
- •6.2 Одномерные массивы
- •6.3 Двумерные массивы (матрицы)
- •7 Символьные массивы
- •7.1 Описание символьного массива
- •7.2 Стандартные библиотечные функции над строками
- •8 Указатели и операции над указателями
- •8.1 Описание указателей
- •8.2 Операции над указателями
- •8.3 Сравнение указателей
- •8.4 Связь между массивом и указателем
- •9 Функции
- •9.1 Модульное программирование
- •9.2 Объявление функции
- •9.3 Формальные и фактические параметры функции
- •9.4 Локальные и глобальные переменные
- •10 Элементы объектно-ориентированного программирования
- •10.1 Инструментальное программное обеспечение
- •10.2 Технологии программирования
- •10.3 Создание класса
- •11 Полиморфизм
- •12 Этапы разработки программного обеспечения
- •12.1 Идея и цель объектно-ориентированного программирования
- •12.2 Основные понятия объектно-ориентированного программирования
- •12.3 Методы тестирования программных продуктов
- •Список литературы
3.2 Простые типы данных
Язык С++ является строго типизированным языком. Любая величина, используемая в программе, принадлежит к тому или иному типу. При любом использовании переменных в программе проверяется, применимо ли выражение или операция к типу переменной.
Для обозначения типа используются ключевые слова, которые определяют диапазон значений и размер области памяти, выделяемой под переменные.
Простые базовые типы:
Целочисленные типы – char (символьный), int (числовой)
Вещественные типы – float (числовой), double (числовой)
Диапазон значений вещественных типов данных представлен в формате числа с плавающей точкой. После буквы Е указывается направление сдвига относительно десятичной точки: вправо, если после Е плюс, и влево, если минус. В таблице 4 представлены базовые типы данных в С/С++ для 32-разрядной среды.
Пример 3.2 Формат числа с плавающей точкой
2.437Е+02=2.437*102=243.7
Таблица 4 – Базовые типы данных в С/С++ для 32-разрядной среды
Базовые целочисленные типы |
Базовые вещественные типы |
||||
тип |
размер памяти в байтах |
диапазон значений |
тип |
размер памяти в байтах |
диапазон значений |
char (символьный) |
1 |
от -128 до 127 |
float (вещественный) |
4 |
±(3.4Е-38...3.4Е38) |
int (целый) |
4 |
от -2 147 483 648 до 2 147 483 647
|
double (вещественный с двойной точностью) |
8 |
±(1.7Е-308...1.7Е308) |
Для образования типов, производных от простых, имеются модификаторы типа, которые (для числовых типов) бывают двух видов:
модификаторы знака – signed (знаковый), usingned (безнаковый);
модификаторы размера – short (короткий), long (длинный);
Это важно:
модификатор записывается перед названием типа;
если не указан модификатор знаков, то по умолчанию подразумевается signed;
с базовым типом float модификаторы не употребляются;
модификатор short применим только к базовому типу int.
Некоторые синтаксически допустимые комбинации типов и модификаторов:
целые типы с модификаторами
unsigned сhar (1 бит, oт 0 до 255)
unsigned int (4 бита, от 0 до 4 294 967 295)
short int (2 бита, от -32 768 до 32 767)
unsigned short int (2 бита, от 0 до 65 535)
вещественные типы
long double (10 бит, ±(3.4Е-4932...1.1Е+4932))
Задание 3.2
Расположите целые (long, int, char, shot) и вещественные (long double, float) типы по старшинству типов по следующему принципу: старший тип включает в себя все значения младшего типа как подмножество.
3.3 Операции над числовыми данными
Над числовыми данными определены следующие группы операций (рисунок 6).
Рисунок 6 – Операции над числовыми данными
1) Арифметические операции определены как над данными целочисленных типов, так и вещественных (таблица 5).
Таблица 5 – Арифметические операции
Арифметические операции над данными целочисленных типов |
Арифметические операции над данными вещественных типов |
+ (сумма) - (разность) * (произведение) / (целочисленное деление) % (взятие остатка) ++ (инкремент) -- (декремент) |
+(сумма) - (разность) *(произведение) / (деление) % (взятие остатка) ++ (инкремент) -- (декремент) |
Операции ++ и -- применяются только к переменным и, соответственно, увеличивают или уменьшают значение переменной на 1.
Примечание: Наличие в С/С++ операций ++ и -- связано с тем, что в системе команд микропроцессора имеются специальные операции для увеличения и уменьшения значения (обычно в регистре) именно на 1. Поэтому запись а++; предпочтительнее записи а=а+1; поскольку в большинстве случаев операции инкремента выполняются быстрее.
Операции ++ и -- могут быть префиксными и постфиксными. Постфиксные операции выполняются после того, как значение переменной было использовано в выражении. А префиксные – до того.
Над данными целочисленных типов определены также битовые (поразрядные) операции, которые применяются только к двоичному представлению числа. Это
>> (сдвиг влево)
<< (сдвиг вправо)
Пример 3.3. Операция ++ в постфиксной и префиксной формах
1) int a=3, b=2;
c=a++*b++;
В результате получим с=6, а=4, b=3
2) int a=3, b=2;
c=++a*++b;
В результате получим с=12, а=4, b=3
Задание 3.3
Определите значение переменной d:
int a=5, b=1, c=4, d;
d=++a*b++-++c;
2) Операция присваивания = – это операция, вырабатывающая значение, которое может использоваться в выражениях. Например, a=a+b; или a+=b;
Множественное присваивание – присваивание одного и того же значения нескольким переменным. Например, a=b=c=1; или a=1; b=1; c=1;
Выражения – это переменные, функции и константы объединенные знаками операций. Переменные, функции и константы в записи выражения называются операндами. Например, в записи y=cos(x)+x выражением является cos(x)+x, где функция cos(x) – первый операнд, переменная x – второй операнд.
3) Операции отношения.
4) Логические операции.
5) Операция запятая (,) или операция последовательного вычисления используется для связывания нескольких выражений в одно. Применение будет рассмотрено при изучении управляющих конструкций. По количеству операндов, участвующих в операции, операции подразделяются на унарные, бинарные и тернарные.
Унарные операции (один операнд) выполняются справа налево. Некоторые унарные операции приведены в таблице 6.
Таблица 6 – Унарные операции
Знак операции |
Операция |
- |
арифметическое отрицание |
~ |
побитовое логическое отрицание |
! |
логическое отрицание |
+ |
унарный плюс |
++ |
увеличение (инкремент) |
-- |
уменьшение (декремент) |
В отличие от унарных, бинарные операции (два операнда), список которых приведен в таблице 7, выполняются слева направо.
Таблица 7 – Бинарные операции
Знак операции |
Операция |
Группа операций |
* |
Умножение |
Арифметические мультипликативные |
/ |
Деление |
|
% |
Остаток от деления |
|
+ |
Сложение |
Арифметические аддитивные |
- |
Вычитание |
|
<< |
Сдвиг влево |
Операции сдвига |
>> |
Сдвиг вправо |
|
< |
Меньше |
Операции отношения |
<= |
Меньше или равно |
|
>= |
Больше или равно |
|
= = |
Равно |
|
!= |
Не равно |
|
& |
Битовая операция И |
Битовые (поразрядные) операции |
| |
Поразрядное ИЛИ |
|
^ |
Поразрядное исключающее ИЛИ |
|
&& |
Логическое И |
Логические операции |
|| |
Логическое ИЛИ |
|
, |
Последовательное вычисление |
Последовательного вычисления |
= |
Присваивание |
Операции присваивания |
*= |
Умножение с присваиванием |
|
/= |
Деление с присваиванием |
|
%= |
Остаток от деления с присваиванием |
|
-= |
Вычитание с присваиванием |
|
+= |
Сложение с присваиванием |
|
<<= |
Сдвиг влево с присваиванием |
|
>>= |
Сдвиг вправо присваиванием |
|
&= |
Поразрядное И с присваиванием |
|
|= |
Поразрядное ИЛИ с присваиванием |
|
^= |
Поразрядное исключающее ИЛИ с присваиванием |
Тернарной операцией (три операнда) является операция «условие ?», которая реализует алгоритмическую структуру ветвления (не рассматривается в рамках лабораторного практикума).