Разделы презентаций


Операции в языке С

Содержание

ОПЕРАЦИИ В ЯЗЫКЕ С .В соответствии с количеством операндов, которые используются в операциях, они делятся на: Унарные - один операнд.Бинарные - два операнда.Тернарную - три операнда.Все операции, кроме условной и sizeof,

Слайды и текст этой презентации

Слайд 1ОПЕРАЦИИ В ЯЗЫКЕ С

ОПЕРАЦИИ  В ЯЗЫКЕ  С

Слайд 2ОПЕРАЦИИ В ЯЗЫКЕ С .
В соответствии с количеством операндов, которые

используются в операциях, они делятся на:
Унарные - один операнд.
Бинарные

- два операнда.
Тернарную - три операнда.
Все операции, кроме условной и sizeof, могут быть перегружены.
Пробелы между символами внутри операции не допускаются.
ОПЕРАЦИИ В ЯЗЫКЕ С .В соответствии с количеством операндов, которые используются в операциях, они делятся на: Унарные

Слайд 3L-значение (L-value) –
любое выражение, адресующее некоторый участок памяти, в который

можно занести значение.

L-значение (L-value) –любое выражение, адресующее некоторый участок памяти, в который можно занести значение.

Слайд 4L-ЗНАЧЕНИЕ (L-VALUE).
Название L-value произошло от операции присваивания, поскольку именно

ее левая (Left) часть определяет, в какую область памяти будет

занесен результат операции.
Переменная является частным случаем L-значения.
L-ЗНАЧЕНИЕ  (L-VALUE).Название L-value произошло от операции присваивания, поскольку именно ее левая (Left) часть определяет, в какую

Слайд 5УНАРНЫЕ ОПЕРАЦИИ.
Унарные операции имеют наивысший приоритет

УНАРНЫЕ ОПЕРАЦИИ.Унарные операции имеют наивысший приоритет

Слайд 6БИНАРНЫЕ ОПЕРАЦИИ.
П Р И О Р И Т Е Т

БИНАРНЫЕ ОПЕРАЦИИ.П Р И О Р И Т Е Т

Слайд 7БИНАРНЫЕ ОПЕРАЦИИ.
П Р И О Р И Т Е Т

БИНАРНЫЕ ОПЕРАЦИИ.П Р И О Р И Т Е Т

Слайд 8БИНАРНЫЕ ОПЕРАЦИИ.
П Р И О Р И Т Е Т

БИНАРНЫЕ ОПЕРАЦИИ.П Р И О Р И Т Е Т

Слайд 9ТЕРНАРНАЯ ОПЕРАЦИЯ.
П Р И О Р И Т Е Т

ТЕРНАРНАЯ ОПЕРАЦИЯ.П Р И О Р И Т Е Т

Слайд 10БИНАРНЫЕ ОПЕРАЦИИ.
Эти операции имеют самый низкий приоритет

БИНАРНЫЕ ОПЕРАЦИИ.Эти операции имеют самый низкий приоритет

Слайд 11Операции увеличения и уменьшения на 1 (++ и --).
Эти операции,

называются инкрементом и декрементом

Операции увеличения и уменьшения на 1  (++ и --).Эти операции, называются инкрементом и декрементом

Слайд 12ОПЕРАЦИИ ++ И --.
Операции ++ и -- имеют две формы

записи:
Префиксная - операция записывается перед операндом
Постфиксная - операция записывается

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

Операндом операции инкремента в общем случае является L-значение.

ОПЕРАЦИИ ++ И --.Операции ++ и -- имеют две формы записи:Префиксная - операция записывается перед операндом Постфиксная

Слайд 13Операции увеличения и уменьшения на 1 (++ и --)
Пример:
#include


int main(){
int x = 3, у = 3;
printf("Значение префиксного выражения:

%d\n", ++x);
printf("Значение постфиксного выражения: %d\n", у++);
printf("Значение х после приращения: %d\n", х);
printf("Значение у после приращения: %d\n ", у);
return 0;
}

Результат:

Значение префиксного выражения: 4
Значение постфиксного выражения: 3
Значение х после приращения: 4
Значение у после приращения: 4

Операции увеличения и уменьшения на 1 (++ и --)Пример:#include int main(){	int x = 3, у = 3;	printf(

Слайд 14Операция определения размера sizeof.
Операция sizeof предназначена для вычисления размера объекта

или типа в байтах

Операция определения размера sizeof.Операция sizeof предназначена для вычисления размера объекта или типа в байтах

Слайд 15ОПЕРАЦИЯ ОПРЕДЕЛЕНИЯ РАЗМЕРА SIZEOF.
Операция sizeof две формы:
sizeof выражение
sizeof

( тип )

ОПЕРАЦИЯ ОПРЕДЕЛЕНИЯ РАЗМЕРА SIZEOF.Операция sizeof две формы:sizeof  выражение sizeof ( тип )

Слайд 16Операция определения размера sizeof
Пример:
#include
int main(){
float x = 1;
cout

« "sizeof (float) :" « sizeof (float);
cout « "\nsizeof x

:" « sizeof x;
cout « "\nsizeof (x + 1.0) :" « sizeof (x + 1.0);
return 0;
}

Результат:

sizeof (float) : 4
sizeof x : 4
sizeof (x + 1.0) : 8

Операция определения размера sizeofПример:#include int main(){	float x = 1;	cout «

Слайд 17Операция определения размера sizeof
Последний результат связан с тем, что вещественные

константы по умолчанию имеют тип double, к которому, как к

более длинному, приводится тип переменной х и всего выражения.

Скобки необходимы для того чтобы выражение, стоящее в них, вычислялось раньше операции приведения типа, имеющей больший приоритет, чем сложение.

Операция определения размера sizeofПоследний результат связан с тем, что вещественные константы по умолчанию имеют тип double, к

Слайд 18Операции отрицания (-, ! и ~)
Арифметическое отрицание (-)
Логическое отрицание (!)
Поразрядное

отрицание (~)

Операции отрицания  (-, ! и ~)Арифметическое отрицание (-)Логическое отрицание (!)Поразрядное отрицание (~)

Слайд 19Операции отрицания
Арифметическое отрицание
(-)

изменяет знак операнда целого или вещественного типа

на противоположный
Логическое отрицание
(!)

дает в результате значение 0, если операнд

истина (не нуль), и значение 1, если операнд равен нулю.
операнд должен быть целого или вещественного типа, может также иметь тип указатель

Поразрядное отрицание
(~)


инвертирует каждый разряд в двоичном представлении целочисленного операнда
поразрядное отрицание часто называют побитовым

Операции отрицанияАрифметическое отрицание (-)изменяет знак операнда целого или вещественного типа на противоположныйЛогическое отрицание (!)дает в результате значение

Слайд 20Деление (/) и остаток от деления (%)
Операция деления (/) применима

к операндам арифметического типа
Если оба операнда целочисленные, результат операции округляется

до целого числа, в противном случае тип результата определяется правилами преобразования.
Операция остатка от деления (%) применяется только к целочисленным операндам.
Знак результата зависит от реализации

Деление (/) и остаток от деления (%)Операция деления (/) применима к операндам арифметического типаЕсли оба операнда целочисленные,

Слайд 21Деление (/) и остаток от деления (%)
Пример:
#include
int main(){
int

x = 11, у = 4;
float z = 4;
printf("Результаты деления:

%d %f\n", x/y, x/z);
printf("Остаток: %d\n", x%y);
return 0;
}

Результат:

Результаты деления: 2 2.750000
Остаток: 3

Деление (/) и остаток от деления (%)Пример:#include int main(){	int x = 11, у = 4;	float z =

Слайд 22Операции сдвига (>)
Операции сдвига (>) применяются

к целочисленным операндам, они сдвигают двоичное представление первого операнда влево

или вправо на количество двоичных разрядов, заданное вторым операндом.
Операции сдвига  (>)Операции сдвига (>) применяются к целочисленным операндам, они сдвигают двоичное представление первого операнда влево

Слайд 23ОПЕРАЦИИ СДВИГА (>).
При сдвиге влево (

обнуляются.
При сдвиге вправо (>>) освободившиеся биты заполняются нулями, если первый

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

Операции сдвига не учитывают переполнение и потерю значимости.

ОПЕРАЦИИ СДВИГА (>).При сдвиге влево () освободившиеся биты заполняются нулями, если первый операнд беззнакового типа, и знаковым

Слайд 24Операции отношения (=, ==, !=)
Операции отношения сравнивают

первый операнд со вторым.

Операции отношения  (=, ==, !=)Операции отношения сравнивают первый операнд со вторым.

Слайд 25ОПЕРАЦИИ ОТНОШЕНИЯ.
Операнды могут быть арифметического типа или указателями.
Результатом операции является

значение true или false.
любое значение, не равное нулю, интерпретируется как

true.

Операции сравнения на равенство и неравенство имеют меньший приоритет, чем остальные операции сравнения.

ОПЕРАЦИИ ОТНОШЕНИЯ.Операнды могут быть арифметического типа или указателями.Результатом операции является значение true или false.любое значение, не равное

Слайд 26Поразрядные операции (&, |, ^)
поразрядная конъюнкция &
поразрядная дизъюнкция |
поразрядное исключающее

ИЛИ ^

Поразрядные операции (&, |, ^)поразрядная конъюнкция &поразрядная дизъюнкция |поразрядное исключающее ИЛИ ^

Слайд 27ПОРАЗРЯДНЫЕ ОПЕРАЦИИ.
Поразрядные операции применяются только к целочисленным операндам и работают

с их двоичными представлениями.
При выполнении операций операнды сопоставляются побитно.

ПОРАЗРЯДНЫЕ ОПЕРАЦИИ.Поразрядные операции применяются только к целочисленным операндам и работают с их двоичными представлениями.При выполнении операций операнды

Слайд 28Поразрядные операции
поразрядная конъюнкция
&

бит результата равен 1 только тогда, когда соответствующие

биты обоих операндов равны 1
поразрядная дизъюнкция
|

бит результата равен 1 тогда,

когда соответствующий бит хотя бы одного из операндов равен 1

поразрядное исключающее ИЛИ ^


бит результата равен 1 только тогда, когда соответствующий бит только одного из операндов равен 1.

Поразрядные операциипоразрядная конъюнкция&бит результата равен 1 только тогда, когда соответствующие биты обоих операндов равны 1поразрядная дизъюнкция|бит результата

Слайд 29Поразрядные операции
Пример:
#include
int main(){
cout

= "

5 = " << (6 | 5);
cout << "\n 6 ^ 5 = " << (6 ^ 5);
return 0;
}

Результат:

6 & 5 = 4
6 | 5 = 7
6 ^ 5 = 3

Поразрядные операцииПример:#include int main(){	cout

Слайд 30Логические операции (&& и ||)
логическое И &&
логическое ИЛИ ||

Логические операции (&& и ||)логическое И &&логическое ИЛИ ||

Слайд 31ЛОГИЧЕСКИЕ ОПЕРАЦИИ.
Операнды логических операций И (&&) и ИЛИ (||) могут

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

операции могут быть различных типов.
Преобразования типов не производятся, каждый операнд оценивается с точки зрения его эквивалентности нулю.
операнд, равный нулю, рассматривается как false, не равный нулю — как true.
Логические операции выполняются слева направо.

Если значения первого операнда достаточно, чтобы определить результат операции, второй операнд не вычисляется.

ЛОГИЧЕСКИЕ ОПЕРАЦИИ.Операнды логических операций И (&&) и ИЛИ (||) могут иметь арифметический тип или быть указателями.при этом

Слайд 32Логические операции
логическое И
&&

результат операции имеет значение true только если

оба операнда имеют значение true
логическое ИЛИ
||

результат операции имеет значение

true, если хотя бы один из операндов имеет значение true
Логические операциилогическое И &&результат операции имеет значение true только если оба операнда имеют значение trueлогическое ИЛИ ||результат

Слайд 33Операции присваивания (=, +=, −=, /=, *= и т. д.)
Операции

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

Операции присваивания  (=, +=, −=, /=, *= и т. д.)Операции присваивания могут использоваться в программе как

Слайд 34Операции присваивания (=, +=, −=, /=, *= и т. д.)
Формат

операции простого присваивания (=):
операнд_1 = операнд_2
Первый операнд должен быть L-значением,

второй — выражением

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

мнемоническое правило: «присваивание — это передача данных "налево"»

То, что ранее хранилось в этой области памяти, естественно, теряется.

Операции присваивания (=, +=, −=, /=, *= и т. д.)Формат операции простого присваивания (=):операнд_1 = операнд_2Первый операнд

Слайд 35Операции присваивания
Пример:
#include
int main(){
int a = 3, b=5,

c=7;
a = b; b = а; с = с +

1;
cout << "a = " << a;
cout << "\t b = " << b;
cout << "\t с = " << с;
return 0;
}

Результат:

a = 5 b = 5 c = 8

Операции присваиванияПример:#include int main(){	 int a = 3, b=5, c=7;	a = b; b = а; с =

Слайд 36Операции присваивания
В сложных операциях присваивания
( +=, *=, /= и

т.п.)
при вычислении выражения, стоящего в правой части, используется и


L-значение из левой части

Например, при сложении с присваиванием ко второму операнду прибавляется первый, и результат записывается в первый операнд
То есть выражение а += b является более компактной записью выражения а = а + b

Операции присваиванияВ сложных операциях присваивания ( +=, *=, /= и т.п.) при вычислении выражения, стоящего в правой

Слайд 37Условная операция (?:)
Эта операция тернарная, то есть имеет три операнда.

Условная операция (?:)Эта операция тернарная, то есть имеет три операнда.

Слайд 38Условная операция (?:)
Формат условной операции:
операнд_1 ? операнд_2 : операнд_3
Первый

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

рассматривается как false
не равный нулю — как true

Если результат вычисления операнда 1 равен true, то результатом условной операции будет значение второго операнда, иначе — третьего операнда.

Вычисляется всегда либо второй операнд, либо третий
Их тип может различаться

Условная операция является сокращенной формой условного оператора if

Условная операция (?:)Формат условной операции: операнд_1 ? операнд_2 : операнд_3Первый операнд может иметь арифметический тип или быть

Слайд 39Условная операция (?:)
Пример:
#inc1ude
int main(){
int a = 11, b

= 4, max;
max = (b > a)? b : a;
printf("Наибольшее

число: %d", max);
return 0;
}

Результат:

Наибольшее число: 11

Условная операция (?:)Пример:#inc1ude int main(){	int a = 11, b = 4, max;	max = (b > a)? b

Слайд 40Условная операция (?:)
Другой пример применения условной операции:
i = (i

n) ? i + 1: 1;
Требуется, чтобы некоторая целая величина

увеличивалась на 1, если ее значение не превышает n, а иначе принимала значение 1:
Условная операция (?:)Другой пример применения условной операции:i = (i < n) ? i + 1: 1;Требуется, чтобы

Слайд 41Замечания
Операции выполняются в соответствии с приоритетами
для изменения порядка выполнения операций

используются круглые скобки
Если в одном выражении записано несколько операций одинакового

приоритета:

унарные операции, условная операция и операции присваивания выполняются справа налево
остальные — слева направо

Например:

а = b = с означает а = (b = с)
а + b + с означает (а + b) + с

ЗамечанияОперации выполняются в соответствии с приоритетамидля изменения порядка выполнения операций используются круглые скобкиЕсли в одном выражении записано

Слайд 42Замечания
в C допустимы выражения вида
а = b = с
сначала

вычисляется выражение b = с
затем его результат становится правым операндом

для операции присваивания переменной а
Замечанияв C допустимы выражения вида а = b = ссначала вычисляется выражение b = сзатем его результат

Слайд 43Если операнды, входящие в выражение, имеют разный тип,
то перед

вычислениями выполняются преобразования типов
по определенным правилам,
обеспечивающим преобразование более

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

Слайд 44Замечания
изменяющие внутреннее представление величин
с потерей точности
без потери точности
изменяющие только

интерпретацию внутреннего представления
К первому типу относится, например, преобразование целого числа

в вещественное, ко второму — преобразование знакового целого в беззнаковое.

Преобразования бывают двух типов:

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

Слайд 45Замечания
В любом случае величины типов char, signed char, unsigned char,

short int и unsigned short int
преобразуются в тип int,

если он может представить все значения, или в unsigned int в противном случае.

После этого операнды преобразуются к типу наиболее длинного из них, и он используется как тип результата.

Программист может задать преобразования типа явным образом

ЗамечанияВ любом случае величины типов char, signed char, unsigned char, short int и unsigned short int преобразуются

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика