Презентация на тему: Лекция 30.09

Лекция 30.09
Лекция 30.09
Лекция 30.09
Лекция 30.09
Лекция 30.09
Лекция 30.09
Лекция 30.09
Лекция 30.09
Лекция 30.09
Лекция 30.09
Лекция 30.09
Лекция 30.09
Лекция 30.09
Лекция 30.09
Лекция 30.09
Лекция 30.09
Лекция 30.09
Лекция 30.09
Лекция 30.09
Лекция 30.09
Лекция 30.09
Лекция 30.09
Лекция 30.09
Лекция 30.09
Лекция 30.09
Лекция 30.09
1/26
Средняя оценка: 4.5/5 (всего оценок: 58)
Код скопирован в буфер обмена
Скачать (111 Кб)
1

Первый слайд презентации: Лекция 30.09

Пи20аб

Изображение слайда
2

Слайд 2

ДЕКЛАРАЦИИ В СИ В Си переменные надо объявлять до первого использования. Декларация: 1) специфицирует тип; 2) содержит список переменных этого типа; 3) возможна начальная инициализация; 4) возможен квалификатор константы ( const ).

Изображение слайда
3

Слайд 3

Пример 14. int step; int up, down; char c, str [101]; float eps=1.0e-3; char error[]=” Ошибка : ”; int kdm [12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; Инициализация – это установка начальных значений одновременно с объявлением переменной.

Изображение слайда
4

Слайд 4

Квалификатор const записывается перед декларацией. Его используют для того, чтобы запретить возможность изменения значения этой переменной в программе. Пример 15. const float pi=3.1415; const int kdm[12]= {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; … pi =3.14; /*нельзя*/ kdm [ 1 ]= kdm [ 1 ]+1; /*нельзя*/

Изображение слайда
5

Слайд 5

ОПЕРАТОРЫ В ЯЗЫКЕ СИ 1. Арифметические операторы Свойства операторов: - арность (количество операндов); - позиция (место по отношению к операндам); - приоритет (важность, старшинство); - а ссоциативность (порядок выполнения операторов с одинаковым приоритетом). В языке Си термин «оператор» обозначает элементарное действие (операцию): +, /, <, >, = и т.д.

Изображение слайда
6

Слайд 6

Операторы «+», «–» - бывают унарные и бинарные. Операторы «*», «/» - бинарные. Оператор «%» - бинарный, применим только к целым числам. Арность – это количество операндов, участвующих в операции. Различают операции унарные (с одним операндом), бинарные (с двумя операндами), операторы с арностью > 2.

Изображение слайда
7

Слайд 7

Позиция определяет место оператора по отношению к операндам. Различают: - инфиксн ые (оператор записывается между операндами). Например: 3+2; - префиксные (оператор записывается перед операндом). Например: -8 (изменение знака); - постфиксные (оператор записывают после операнда). Например: a++ ( инкремент).

Изображение слайда
8

Слайд 8

Приоритет (старшинство) – это относительное число, которое показывает порядок выполнения операторов в выражении. Зная приоритет операторов, мы можем не записывать лишние круглые скобки в выражениях. prio (+) = prio (-) prio(*) = prio (/) = prio(%) prio (*, /, %) > prio (+, -) prio(унарных) > prio(*, /, %).

Изображение слайда
9

Слайд 9

Все арифметические операторы левоассоциативные. (8/2)/2 ≠ 8/(2/2). Ассоциативность определяет порядок выполнения операторов с одинаковым приоритетом. 8 + 2 + 2 = (8 + 2) + 2 = 8 + (2 + 2) Результат одинаковый! 8/2/2  4/2=2. Результат разный!

Изображение слайда
10

Слайд 10

2. Операторы отношения и сравнения на равенство Бинарные операторы: 1) отношения: «>», «>=», «<», «<=»; 2) сравнения на равенство: «==» (равно), «!=» (неравно). Приоритет одинаковый внутри группы. prio (отношения) > prio (сравнения на равенство) prio (отношения) < prio (арифметических) k + 1 < l + 2  ( k +1) < ( l +2) year %4 == 0  (y ear %4 ) == 0

Изображение слайда
11

Слайд 11

3. Логические операторы Бинарные операторы: - «&&» - логическое ‘и’; - «||» - логическое ‘или’. Результат «&&» есть «ложь», как только первый попавшийся операнд есть «ложь». Результат «||» есть «истина», как только первый попавшийся операнд – «истина». !!! Дальше вычисление не производится. Операнд ы вычисляются слева направо.

Изображение слайда
12

Слайд 12

- «&&» и «||» - левоассоциативные; Свойства: - prio (&&) > prio (||); Унарный оператор : логическое отрицание (не) – « ! ». prio (!) > prio (&&, ||). Эквивалентны: res ==0 и ! res. prio (&&) < prio (отношения, сравнения на равенство).

Изображение слайда
13

Слайд 13

Y X И Л И И Л Л Л Л X && Y Y X И Л И И И Л И Л X || Y X ! X И Л Л И ! X

Изображение слайда
14

Слайд 14

Пример. Расставить приоритеты операторов в выражении ( проверка года на високосность). year % 4 == 0 && year % 100 != 0 || year % 400 == 0

Изображение слайда
15

Слайд 15

4. Побитовые операторы Применяется к целочисленным операндам (char, short, int, long) знаковым и беззнаковым. 4.1. Бинарные Побитовое И – «&»: используют для обнуления разрядов или бита внутри байта. Пример 16. int x=17; //10001 int y=2; //00010 int z=1; //00001 int w=x&y; //00000 int u=x&z; //00001 Y X 1 0 1 1 0 0 0 0 X & Y

Изображение слайда
16

Слайд 16

Побитовое ИЛИ – «|»: для установки разрядов в 1. Пример 17. int x=17; /* 10001 */ int y=2; /* 00010 */ int z=1; /* 00001 */ int w=x|y; /* 10011 */ int u=x|z; /* 10001 */ !!! Следует отличать логические и побитовые операторы. int x=1, y=2; int t=x&&y; /* ! = 0 */ int s=x&y; /* =0 */ Y X 1 0 1 1 1 0 1 0 X | Y

Изображение слайда
17

Слайд 17

Побитовое исключающее ИЛИ – «^»: 1 – разные значения битов; 0 – одинаковые. X^Y: X Y 1 0 1 0 1 0 1 0 Пример 18. int x=17; /* 10001 */ int y= 3 ; /* 00011 */ int w=x ^ y; /* 10010 */

Изображение слайда
18

Слайд 18

Правый операнд должен быть >0. Пример 19. Сдвиг влево – «<<». Правый операнд – это целое положительное число, указывающее на сколько битов необходимо сдвинуть левый операнд влево. int x=2; /* 0 010*/ int y=x<<1; /*0100*/ Сдвиг влево соответствует умножению левого операнда на степень двойки, показатель степени задается правым операндом оператора сдвига.

Изображение слайда
19

Слайд 19

Сдвиг вправо – « >> ». Правый операнд – это целое положительное число, указывающее на сколько битов необходимо сдвинуть левый операнд вправо. Правый операнд должен быть >0. Пример 20. int x=6; /* 0 110*/ int y=x>>1; /* 00 11*/ int z=x>>2; /*0001 */ Сдвиг вправо соответствует делению нацело на степень двойки.

Изображение слайда
20

Слайд 20

4.2. Унарные Оператор побитового отрицания – «~». Пример 2 1. x ~x 0 1 1 0 int x=6; /* 0 110 */ int y=x &~3 ; /* 0110&~0011=0110& 1100= 0 1 00 */

Изображение слайда
21

Слайд 21

5. Операторы присваивания Простейший оператор присваивания : < v >=<e> < v > - переменная <e> - выражение Оператор присваивания – бинарный, инфиксный. Семантика: значение выражения, в которое входит присваивание, является значением левого операнда после присваивания. Пример 22. b=a; a=b=c=0; // многократное присваивание // ( a=(b=(c=0 ) ))

Изображение слайда
22

Слайд 22

Остальные операторы присваивания имеют следующий вид : <e1><op>=<e2> <op> - бинарный оператор : +, -, /, *, %, &, |, ^, <<, >>. Выполнение : <e1>=<e1><op><e2> Значки операторов присваивания: +=, /=, *=, -=, %=, <<=, >>=, |=, ^=, &=. Пример 2 3. int x=6, y=10; y*=x; //y=60 <e1> модифицируется с помощью оператора и <e2> и запис ывается в <e1>.

Изображение слайда
23

Слайд 23

int z, x8, y8, z8; x=15; x8=015; y=8; y8=07; z=5; z8=05; x+=2; /*x=17*/ y-=7; /*y=1*/ z*=4; /*z=20*/ z/=2; /*z=10*/ z%=3; /*z=1*/ x8<<=2; /*x8=064*/ y8>>=1; /*y8=3*/ x8|=03; /*x8=067*/ x8^=07; /*x8=060*/

Изображение слайда
24

Слайд 24

!!! Все операторы присваивания правоассоциативные. x/=a+b  x=x/(a+b) 6. Инкрементные и декрементные операторы Инкрементный – «++»: добавляет 1 к операнду. Декрементный – «--»: вычитает 1 из операнда. Префиксный «++» («--») увеличивает (уменьшает) операнд до его использования. Постфиксный «++» («--») увеличивает (уменьшает) операнд после его использования. prio (=) < prio( всех ранее рассмотренн ых операторов ).

Изображение слайда
25

Слайд 25

Пример 2 4. int x=2, y, z; y=x++; //1) y=x; 2) x=x+1; y=2, x=3 z=++x; //1) x=x+1; 2) z=x; x=3, z=3; !!! Эти операторы можно применять только к переменным, но не к выражениям и константам. Пример 25. y ++; --x; // верно (y+x)++; // неверно 1++; //неверно

Изображение слайда
26

Последний слайд презентации: Лекция 30.09

7. Условный оператор (?) (условное выражение) Синтаксис: <e1>?<e2>:<e3> Семантика: 1) Вычисляется значение первого выражения <e1> 2) Если <e1>=«истина», то значение оператора = <e2> 3) Иначе значение оператора = <e3>

Изображение слайда