818.68K
Category: programmingprogramming

Обзор языка Си. Лекция 16

1.

Основы алгоритмизации и программирование
ФИСТ УлГТУ 1 курс
Власенко Олег Федосович
SimbirSoft
Лекция 16
Обзор языка Си
Завершение курса

2.

Операции Си

3.

Основные операции (Лекция 2)
Источник: https://codernet.ru/books/c_plus/programmirovanie_na_s_dlya_nachinayushhix_3-e_izd/

4.

Приоритет операций Си
https://pvs-studio.ru/ru/blog/terms/0064/ - 17 уровней приоритетов
https://en.wikipedia.org/wiki/Operators_in_C_and_C%2B%2B#Operator_pre
cedence – 18
http://microsin.net/programming/arm/c-operators-precedence.html – 18, но
по другому

5.

Операции Си
Приоритет выполнения операций C и C++ http://microsin.net/programming/arm/c-operators-precedence.html

6.

Операции Си (1)
Приоритет
Оператор
1
::
самый высокий
Описание
Оператор определения контекста переменных
(scope resolution, только для C++).
Ассоциативность
Отсутствует

7.

Операции Си (2)
Приоритет
2
Оператор
Описание
++
-()
[]
Постинкремент (Suffix increment).
.
Выбор элемента структуры по ссылке.
->
Выбор элемента структуры по указателю.
typeid()
Информация о типе по время выполнения (Run-time
type information, только для C++, см. typeid).
const_cast
Приведение типа (Type cast, только для C++ only,
см. const_cast).
dynamic_cast
Приведение типа (только для C++, см. dynamic_cast).
reinterpret_cast
Приведение типа (Type cast, только для C++,
см. reinterpret_cast).
static_cast
Приведение типа (Type cast, только для C++,
см. static_cast).
Постдекремент (Suffix decrement).
Вызов функции.
Индексация в массиве.
Ассоциативность
Слева - направо

8.

Операции Си (3)
Приоритет
Оператор
++
-+
!
3
Описание
Прединкремент (Prefix increment).
Преддекремент (Prefix decrement).
Унарный плюс.
Унарный минус.
Логическое отрицание (NOT).
~
Побитное отрицание (Bitwise NOT,
дополнение до единицы, One's Complement).
(type)
Преобразование типа (Type cast).
*
Выборка значения по ссылке (Indirection,
dereference).
&
Операция взятия адреса (получение
указателя).
sizeof
Получение размера объекта указанного типа
(структуры, переменной и т. п.).
new, new[]
Динамическое выделение памяти под объект
из кучи, создание объекта (только для C++).
delete, delete[]
Динамическое освобождение памяти, ранее
выделенной под объект, удаления объекта
(только для C++).
Ассоциативность
Справа - налево

9.

Операции Си (4)
Приоритет
4
5
Оператор
.*
Указатель на член (только для C++).
->*
Указатель на член (только для C++).
*
/
Умножение.
%
6
7
8
Описание
+
<<
>>
<
<=
>
>=
Ассоциативность
Слева - направо
Слева - направо
Деление.
Взятие по модулю числа (Modulo, получение остатка от
деления).
Сложение.
Слева - направо
Вычитание.
Побитный сдвиг влево (Bitwise left shift).
Слева - направо
Побитный сдвиг вправо (Bitwise right shift).
Меньше чем...
Меньше или равно...
Больше чем...
Больше или равно...
Слева - направо

10.

Операции Си (5)
Приоритет
Оператор
10
==
!=
&
11
^
12
|
&&
||
?:
9
13
14
15
Описание
Оператор определения равенства (Equal to).
Ассоциативность
Слева - направо
Оператор определения неравенства (Not equal to)
Побитная операция И (Bitwise AND)
Слева - направо
Побитная операция Исключающее ИЛИ (Bitwise XOR,
exclusive or).
Слева - направо
Побитная операция ИЛИ (Bitwise OR, inclusive or).
Слева - направо
Логическая операция И (AND).
Слева - направо
Логическая операция ИЛИ (OR).
Слева - направо
Тернарный оператор (Ternary conditional, см. ?:).
Справа - налево

11.

Операции Си (6)
Приоритет
16
17
Оператор
=
+=
-=
*=
/=
%=
<<=
>>=
&=
^=
|=
Описание
Прямое присваивание.
Ассоциативность
Справа - налево
Присваивание со сложением.
Присваивание с вычитанием.
Присваивание с умножением.
Присваивание с делением.
Присваиванием с взятием остатка от деления.
Присваивание со побитным сдвигом влево.
Присваивание с побитным сдвигом вправо.
Присваивание с побитным AND.
Присваивание с побитным XOR.
Присваивание с побитным OR.
throw
Оператор генерации исключения (Throw operator,
exceptions throwing, только для C++).
Справа - налево
,
Запятая (Comma)
Слева - направо
18
самый низкий

12.

Тернарная операция
if (Cond) {
Res = Val1;
}
else {
Res = Val2;
}
Res = Cond ? Val1 : Val2;
int opening_time = (day == SUNDAY) ? 12 : 9;
int opening_time;
if (day == SUNDAY)
opening_time = 12;
else
opening_time = 9;
Тернарная условная операция
https://ru.wikipedia.org/wiki/%D0%A2%D0%B5%D1%80%D0%BD%D0%B0%D1%80%D0%BD%D0%B0%D1%8F_%D1
%83%D1%81%D0%BB%D0%BE%D0%B2%D0%BD%D0%B0%D1%8F_%D0%BE%D0%BF%D0%B5%D1%80%D0%B
0%D1%86%D0%B8%D1%8F

13.

Тернарная операция - примеры
min = (a < b) ? a : b;
sprintf(
Title,
"%s %s",
tv_system == TV_PAL ?
"PAL" :
"SECAM",
tv_input ?
Tv_Name[tv_input - 1] :
"TEST"
);
int binDigit = num % 2;
char binChar = binDigit == 0 ? '0' : '1’;

14.

Инкремент/Декремент
void main() {
int a, b;
// Инкремент / Декремент
a = 10;
b = 20;
printf("a=%d b=%d\n", a, b);
// Постфиксный инкремент
b = a++;
printf("a=%d b=%d\n", a, b);
// Постфиксный декремент
b = a--;
printf("a=%d b=%d\n", a, b);
// Префиксный инкремент
b = ++a;
printf("a=%d b=%d\n", a, b);
// Префиксный декремент
b = --a;
printf("a=%d b=%d\n", a, b);
}

15.

Инкремент/Декремент - Задачки
int c, d, e;
c = 100;
d = 200;
e = c++ + ++d;
printf("%d %d %d\n", c, d, e);
c = 100;
d = 200;
e = c + + + + + d;
printf("%d %d %d\n", c, d, e);
c = 100;
d = 200;
e = c+++++d;
printf("%d %d %d\n", c, d, e);

16.

Инкремент/Декремент - Задачки
int c, d, e;
c = 100;
d = 200;
e = c++ + ++d; // инкремент, сложение
printf("%d %d %d\n", c, d, e);
и инкремент
c = 100;
d = 200;
e = c + + + + + d; // 1 сложение и 4 унарных плюса
printf("%d %d %d\n", c, d, e);
c = 100;
d = 200;
e = c+++++d; // ОШИБКА! Инкремент на инкремент - УПС
printf("%d %d %d\n", c, d, e);

17.

Инкремент/Декремент - Задачки
int c, d, e;
int c, d, e;
c = 100;
d = 200;
e = c++ + ++d;
printf("%d %d %d\n", c, d, e);
c = 100;
d = 200;
e = (c++) + (++d);
printf("%d %d %d\n", c, d, e);
c = 100;
d = 200;
e = c + + + + + d;
printf("%d %d %d\n", c, d, e);
c = 100;
d = 200;
e = c + (+(+(+(+d))));
printf("%d %d %d\n", c, d, e);
c = 100;
d = 200;
e = c+++++d;
printf("%d %d %d\n", c, d, e);
c = 100;
d = 200;
e = ((c++)++) + d;
printf("%d %d %d\n", c, d, e);

18.

Инкремент/Декремент - Задачки
int c, d, e;
c = 100;
d = 200;
e = c-- - --d; // декремент, вычитание и декремент
printf("%d %d %d\n", c, d, e);
c = 100;
d = 200;
e = c - - - - - d; // 1 вычитание и 4 унарных минуса
printf("%d %d %d\n", c, d, e);
c = 100;
d = 200;
e = c-----d; // ОШИБКА
printf("%d %d %d\n", c, d, e);

19.

Инкремент/Декремент - Задачки
int c, d, e;
int c, d, e;
c = 100;
d = 200;
e = c-- - --d;
printf("%d %d %d\n", c, d, e);
c = 100;
d = 200;
e = (c--)-(--d);
printf("%d %d %d\n", c, d, e);
c = 100;
d = 200;
e = c - - - - - d;
printf("%d %d %d\n", c, d, e);
c = 100;
d = 200;
e = c - (-(-(-(-d))));
printf("%d %d %d\n", c, d, e);
c = 100;
d = 200;
e = c-----d;
printf("%d %d %d\n", c, d, e);
c = 100;
d = 200;
e = ((c--)--) - d;
printf("%d %d %d\n", c, d, e);

20.

lvalue и rvalue
lvalue = rvalue;
e = c-----d;
Идея l-значений и r-значений происходит из языков программирования с операторами
присваивания, в которых для значений слева (left) и справа (right) от оператора используется
различный режим вычисления.
l-значение указывает на объект, который сохраняется и за пределами одного выражения.
r-значение — это временное значение, которое не сохраняется за пределами
использующего его выражения.
«Значение (информатика)»
https://ru.wikipedia.org/wiki/%D0%97%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%
B5_(%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%82%D0%B8%D0%BA
%D0%B0)

21.

Побитовые операции
https://foxford.ru/wiki/informatika/bitovye-operatsii-v-s
Области применения:
- Шифрование, хэширование и т.п. преобразования
- Графика – работа с масками
- Работа с флагами/отдельными битами регистра. Пример: Регистр флагов в
«низкоуровневом программирование»
- И др.

22.

Побитовые операции
A
~A
0
1
1
0
A
B
A|B
A&B
A^B
0
0
0
0
0
0
1
1
0
1
1
0
1
0
1
1
1
1
1
0

23.

Побитовые операции
16 CC
2 CC
A
~A
0
0000
0
1
1
0001
1
0
2
0010
3
0011
4
0100
5
0101
6
0110
7
0111
8
1000
9
1001
A
1010
B
1011
C
1100
D
1101
E
1110
F
1111
unsigned char a, b;
a = 0x03; // 0000 0011
b = ~a;
// 1111 1100

24.

Побитовые операции
A
B
A|B
A&B
A^B
16 CC
2 CC
0
0
0
0
0
0
0000
0
1
1
0
1
1
0001
1
0
1
0
1
2
0010
1
1
1
1
0
3
0011
4
0100
5
0101
6
0110
7
0111
8
1000
9
1001
A
1010
B
1011
C
1100
D
1101
E
1110
F
1111
unsigned char a, b;
a = 0x66;
b = a & 0x0F;
// 0x66 = 0110 0110
// 0x0F = 0000 1111
// b
= 0000 0110

25.

Побитовые операции
A
B
A|B
A&B
A^B
16 CC
2 CC
0
0
0
0
0
0
0000
0
1
1
0
1
1
0001
1
0
1
0
1
2
0010
1
1
1
1
0
3
0011
4
0100
5
0101
6
0110
7
0111
8
1000
9
1001
A
1010
B
1011
C
1100
D
1101
E
1110
F
1111
unsigned char a, b;
a = 0x66;
b = a | 0x0F;
// 0x66 = 0110 0110
// 0x0F = 0000 1111
// b
= 0110 1111

26.

Побитовые операции
A
B
A|B
A&B
A^B
16 CC
2 CC
0
0
0
0
0
0
0000
0
1
1
0
1
1
0001
1
0
1
0
1
2
0010
1
1
1
1
0
3
0011
4
0100
5
0101
6
0110
7
0111
8
1000
9
1001
A
1010
B
1011
C
1100
D
1101
E
1110
F
1111
unsigned char a, b;
a = 0x66;
b = a ^ 0x0F;
// 0x66 = 0110 0110
// 0x0F = 0000 1111
// b
= 0110 1001

27.

Побитовые операции
unsigned char a, b;
a = 0x3A;
b = a << 2;
// 0x3A = 0011 1010
// b
= 1110 1000
16 CC
2 CC
0
0000
1
0001
2
0010
3
0011
4
0100
5
0101
6
0110
7
0111
8
1000
9
1001
A
1010
B
1011
C
1100
D
1101
E
1110
F
1111

28.

Побитовые операции
unsigned char a, b;
a = 0x3A;
b = a >> 3;
// 0x3A = 0011 1010
// b
= 0000 0111
16 CC
2 CC
0
0000
1
0001
2
0010
3
0011
4
0100
5
0101
6
0110
7
0111
8
1000
9
1001
A
1010
B
1011
C
1100
D
1101
E
1110
F
1111

29.

Операции Си
Приоритет
2
Оператор
Описание
++
-()
[]
Постинкремент (Suffix increment).
.
Выбор элемента структуры по ссылке.
->
Выбор элемента структуры по указателю.
Постдекремент (Suffix decrement).
Вызов функции.
Индексация в массиве.
struct Str {
int a;
char b[5];
};
void f(struct Str * str) {
str->a++;
str->b[0] = '9’;
str->b[1]--;
}
void main() {
struct Str st = {1, "11"};
printf("(%d,%s), ", st.a, st.b);
f(&st);
printf("(%d,%s), ", st.a, st.b);
}
Ассоциативность
Слева - направо

30.

Операции Си
Приоритет
Оператор
++
-+
!
Описание
Прединкремент (Prefix increment).
Преддекремент (Prefix decrement).
Унарный плюс.
Унарный минус.
Логическое отрицание (NOT).
~
Побитное отрицание (Bitwise NOT,
дополнение до единицы, One's Complement).
(type)
Преобразование типа (Type cast).
*
Выборка значения по ссылке (Indirection,
dereference).
&
Операция взятия адреса (получение
указателя).
sizeof
Получение размера объекта указанного типа
(структуры, переменной и т. п.).
3
Ассоциативность
Справа - налево

31.

Операции Си
Приоритет
5
Оператор
*
/
%
6
7
8
+
<<
>>
<
<=
>
>=
Описание
Умножение.
Ассоциативность
Слева - направо
Деление.
Взятие по модулю числа (Modulo, получение остатка от
деления).
Сложение.
Слева - направо
Вычитание.
Побитный сдвиг влево (Bitwise left shift).
Слева - направо
Побитный сдвиг вправо (Bitwise right shift).
Меньше чем...
Меньше или равно...
Больше чем...
Больше или равно...
Слева - направо

32.

Операции Си
Приоритет
Оператор
10
==
!=
&
11
^
12
|
&&
||
?:
9
13
14
15
Описание
Оператор определения равенства (Equal to).
Ассоциативность
Слева - направо
Оператор определения неравенства (Not equal to)
Побитная операция И (Bitwise AND)
Слева - направо
Побитная операция Исключающее ИЛИ (Bitwise XOR,
exclusive or).
Слева - направо
Побитная операция ИЛИ (Bitwise OR, inclusive or).
Слева - направо
Логическая операция И (AND).
Слева - направо
Логическая операция ИЛИ (OR).
Слева - направо
Тернарный оператор (Ternary conditional, см. ?:).
Справа - налево

33.

Операции Си
Приоритет
16
Оператор
Описание
=
+=
-=
*=
/=
%=
<<=
>>=
&=
^=
|=
Прямое присваивание.
,
Запятая (Comma)
Ассоциативность
Справа - налево
Присваивание со сложением.
Присваивание с вычитанием.
Присваивание с умножением.
Присваивание с делением.
Присваиванием с взятием остатка от деления.
Присваивание со побитным сдвигом влево.
Присваивание с побитным сдвигом вправо.
Присваивание с побитным AND.
Присваивание с побитным XOR.
Присваивание с побитным OR.
18
самый низкий
Слева - направо

34.

Что есть в Си?

35.

Что есть в Си? (1)
http://givi.olnd.ru/kr2/ - Б. Керниган, Д. Ритчи. Язык
программирования Си
https://codernet.ru/books/c_plus/programmirovanie_na_s_dlya_nachinay
ushhix_3-e_izd/ - Программирование на С для начинающих. 3-е изд.
Грег Перри, Дин Миллер
https://dfe.petrsu.ru/koi/posob/c/ - Курсков С. Ю. Введение в язык Си
http://cppstudio.com/ - Основы программирования на языках Си и
C++ для начинающих
https://learnc.info/c/ - Курс Лекций по Языку Си
https://prog-cpp.ru/c/ - Язык Си

36.

Что есть в Си? (2)
Константы
Неименованные константы
целые (100), вещественные (12.25), символьные ('A')
десятичные (123), восьмеричные (0234), шестнадцатиричные (0xFF)
Именованные константы (#define NUM 5)
Переменные
Имена переменных (идентификаторы) (int val;)
Определение переменных (int val;)
Инициализация (int val = 10;)
Декларации (объявления) переменных (extern) (extern int val;)
Область действия переменных ({ int a=1; {int b = 2;} a=b;/*ОШИБКА*/} )
Внешние (глобальные) переменные (int a=5; void f() {})
Локальные переменные (int a=5; void f() {int b = a;})
Статические (глобальные и локальные) переменные (static int a= 10; void f() {static int b = 20;})
Регистровые переменные (void f() {register int a = 20;})

37.

Что есть в Си? (3)
Операторы
Арифметические операторы (d = b*b-4*a*c; p = 2*(a+b); sr = sum/n; dig = val%2; )
Операторы отношения и логические операторы ( if (x>=left && x<=right && y>=top && y <=
bottom) {/* мы внутри прямоугольника!*/})
Инкрементные и декрементные операторы
Побитовые операторы
Выражения
Арифметические выражения(d = b*b-4*a*c; p = 2*(a+b); sr = sum/n; dig = val%2; )
Операторы присваивания и выражения (d = b*b-4*a*c; p = 2*(a+b); sr = sum/n; dig = val%2; )
Условные выражения (тернарная операция a ? b : c )
Приоритет и порядок вычислений
Инструкции
Цикл for (for(i=0;i<n;i++) printf(“%d ”, a[i]);)
Цикл while (while (!empty()) {printf(“%d”, pop());})
Цикл do-while (do {scanf(“%d”, &val); f(val);} while(val!=0);)
if-else (if (t>35) printf(“очень жарко”); else if (t >25) printf(“жарко”); else printf(“норм”);)
Переключатель switch
Инструкция break
Инструкция continue
Инструкция goto и метки
Составной оператор { }

38.

Что есть в Си? (4)
Типы и размеры данных
Целые типы
short, long
signed, unsigned
Вещественные типы
Символьный тип
Проверки класса символа: <ctype.h>
Массивы
Одномерные массивы
Одномерные массивы символов
Функции, оперирующие строками <string.h>
Многомерные массивы
Структуры
Массивы структур
Указатели на структуры
Структуры с указателями на себя
Объединения
Поля битов
Перечисления (enum)

39.

Что есть в Си? (4)
Указатели и адресная арифметика
Указатели и адреса
Указатели и массивы
Адресная арифметика
Массивы указателей, указатели на указатели
Указатели на void
Указатели на функции
Преобразования типов

40.

Что есть в Си? (5)
Функции
Функция main
Аргументы
Вызов функций и передача аргументов
Возвращение значения из функции (return)
Рекурсия
Списки аргументов переменной длины
Си-препроцессор
#include
#define
#pragma
Ввод-вывод
Стандартный ввод–вывод
Форматный вывод (printf)
Форматный ввод (scanf)
Доступ к файлам
FILE
Открытие/закрытие файла (fopen/fclose)
Форматный файловый ввод/вывод (fscanf/fprintf)
Ввод–вывод символов и строк (getс, fgets)

41.

Что есть в Си? (6)
Динамическая память
malloc, free
Заголовочные файлы
Аргументы в командной строке
Средство typedef
Стандартные функции
Случайные числа
rand(), srand()
Математические функции
sin(), cos() и др.
Стандарты языка Си: С99, C11

42.

43.

Что можно прочитать про Си
http://givi.olnd.ru/kr2/ - Б. Керниган, Д. Ритчи. Язык
программирования Си - УЖЕ МОЖНО НАЧИНАТЬ ЧИТАТЬ ЭТУ
КНИГУ!
https://codernet.ru/books/c_plus/programmirovanie_na_s_dlya_nachinay
ushhix_3-e_izd/ - Программирование на С для начинающих. 3-е изд.
Грег Перри, Дин Миллер
https://dfe.petrsu.ru/koi/posob/c/ - Курсков С. Ю. Введение в язык Си
http://cppstudio.com/ - Основы программирования на языках Си и
C++ для начинающих
https://learnc.info/c/ - Курс Лекций по Языку Си
https://prog-cpp.ru/c/ - Язык Си

44.

ИТОГО – что изучили!
Познакомились с языком программирования Си
Можете использовать Си, можете изучать Си подобные языки (C++, Java, C# и много других)
Повторили и углубили основы программирования:
- Управление - линейный код, развилки, циклы, break, continue, goto (как на Си, так и на блок-схемах)
- Организация и вызов подпрограмм (в том числе рекурсия)
- Организация и использование данных – простые переменные, массивы, структуры, динамические
структуры
- Память – Работа с файлами, Динамическая память, Статическая память, Стек (вызовов)
- Трассировка кода программы – включая трассировку рекурсивных вызовов – как на бумаге/«в
голове», так и в MS VS.
Алгоритмизация:
- Стандартные алгоритмы обработки массивов, строк, файлов
- Сортировки массивов
- АТД: Стек, Очередь, Словарь
- Реализация Словаря на массиве, списке, дереве, хэше
Программирование на ОС Windows:
- Создание Windows приложения
- Создание графики из линий, примитивных фигур, используя перья и кисти.
- Управление программой при помощи клавиатуры и мыши

45.

Что еще осталось в рамках курса?
Доделать все лаб работы
Повторить всю теорию по курсу – подготовиться к теоретической
части экзамена
Потренироваться в выполнении задач, похожих на экзаменационные
– подготовиться к практической части экзамена
Сдать экзамен!

46.

ВСЁ!

47.

48.

А что дальше?

49.

А что будет после ОА и П?***
Какие темы нужно изучить?
Какие предметы предстоит изучить?
Что нужно знать для того, чтобы
получить «работу мечты»?

50.

Что нужно знать для того, чтобы получить «работу мечты»?
Как освоить бэкенд-разработку в 2022 году: дорожная карта https://tproger.ru/articles/backend-roadmap-2021/

51.

Что нужно знать для того, чтобы получить «работу мечты»?
Как освоить фронтенд-разработку в 2022 году: дорожная карта https://tproger.ru/articles/frontend-roadmap-2021/

52.

Какие темы нужно изучить чтобы стать «ИТишником»?
База для базы:
- Базовая (школьная) математика
- Дискретная математика (множества, графы, мат логика и т.п.)
- Английский язык (хотя бы до уровня – читаю и понимаю текст HELP/документации без словаря
и без переводчика)
- Основы программирования (переменные/массивы/структуры, развилки/циклы/вложенные
конструкции, вызовы подпрограмм, работа с консолью/файлами, 2000+ строк кода, и др)
Общая база для любой специализации в ИТ:
- Основы цифровых устройств
- Машинно-ориентированное программирование (assembler)
- Операционные системы (ОС)
- Алгоритмы и структуры данных
- ООП (объектно-ориентированное программирование/проектирование/парадигма)
- Базы данных (СУБД, SQL)
- Основы интернета (HTTP, HTML и многое другое)
- 3-5+ языков программирования (на уровне «знаком и написал 2000+ строк на каждом») –
скорее всего что-то из следующих: C, C++, C#, Java, JavaScript, PHP, Python, Visual Basic, Swift, Go,
Fortran, Kotlin
Специализация:
- см. предыдущие слайды и 100500+ других RoadMap «Как стать XXX-программистом»

53.

Какие предметы предстоит изучить? ***
Скорее всего – ваш список предметов будет отличаться!
Высшая математика
Теория вероятностей и математическая
статистика
Дискретная математика
Математическая логика и теория
алгоритмов
Теоретические основы информатики
Технологии программирования
Организация ЭВМ и системы
Базы данных
Проектирование и архитектура
программных систем
Конструирование программного
обеспечения
Тестирование программного обеспечения
Проектный практикум
Экономика и управление проектом
Иностранный язык
Теория автоматов и формальных языков
Основы теории систем
Аналитическая геометрия
Численные методы
Информационные системы и технологии
Компьютерная графика
Интернет-программирование
Компонентно-ориентированное
программирование
Распределенные вычисления и
приложения
Системное программное обеспечение
Информационная безопасность
Введение в системный анализ
Проектирование человеко-машинного
интерфейса
Алгоритмы и структуры данных
Сети и телекоммуникации
Теоретические основы управления
знаниями
Исследование операций
Системы управления базами данных
Методы искусственного интеллекта
Операционные системы

54.

Когда и как надо начинать работать
(по специальности)? (IMHO)
54

55.

56.

ИТОГО по лекции 16
1. Разобрались с операциями – инкремент/декремент,
побитовыми, тернарной. Узнали про LVALUE и RVALUE.
2. Вспомнили всё, что изучили про Си.
3. Подвели итоги.
4. Заглянули в будущее!

57.

Желаю всем найти себя в профессиональном плане!
Желаю всем реализовать свой потенциал!
57
English     Русский Rules