
- •Алгоритмизация и основы программирования
- •Оглавление
- •Библиографический список
- •Операции языка Си
- •Характеристики операций
- •Комментарии к операциям
- •Правила преобразований типов
- •В выражениях
- •В присваиваниях
- •Операторы языка Си
- •Оператор выражение
- •Пустой оператор
- •Составной оператор
- •Оператор if
- •Оператор switch
- •Оператор break
- •Оператор for
- •Оператор while
- •Оператор do while
- •Оператор continue
- •Оператор return
- •Оператор goto
- •Алгоритм сортировки обменами (алгоритм "пузырька")
- •Алгоритм сортировки вставками
- •Алгоритм сортировки выбором элемента
- •Контрольные вопросы
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное автономное образовательное учреждение
высшего профессионального образования
«Уральский федеральный университет имени первого Президента России Б.Н.Ельцина»
Институт радиоэлектроники и информационных технологий
Кафедра Автоматики и информационных технологий
С.П Трофимов
Алгоритмизация и основы программирования
Конспект лекций
Лекция 4
Операции и операторы
Научный редактор доц., д-р техн. наук С.В. Поршнев
Екатеринбург
2011
Оглавление
2
Библиографический список 3
Операции языка Си 3
1. Характеристики операций 3
2. Таблица приоритетов операций 3
3. Комментарии к операциям 5
4. Правила преобразований типов 9
4.1. В выражениях 9
4.2. В присваиваниях 9
Операторы языка Си 10
5. Оператор выражение 10
6. Пустой оператор 11
7. Составной оператор 11
8. Оператор if 12
9. Оператор switch 13
10. Оператор break 16
11. Оператор for 16
12. Оператор while 17
13. Оператор do while 18
14. Оператор continue 18
15. Оператор return 19
16. Оператор goto 20
17. Алгоритм сортировки обменами (алгоритм "пузырька") 20
18. Алгоритм сортировки вставками 21
19. Алгоритм сортировки выбором элемента 22
Контрольные вопросы 22
Библиографический список
Макарова Н.В. Информатика / Н.В. Макарова. М.: Финансы и статистика, 2004. 768 с.
Керниган Б. Язык программирования Си / Б. Керниган, Д. Ритчи. М.: Финансы и статистика, 1992. 272 с.
Подбельский В.В. Программирование на языке Си : учеб. пособие / В.В. Подбельский, С.С.Фомин. М.: Финансы и статистика, 2004. 600 с.
Операции языка Си
Характеристики операций
Операция – это элементарная конструкция, которая возвращает некоторый результат. В отличие от операций, операторы – синтаксические конструкции, управляющие ходом выполнения программы. Основные операторы: условные переходы и циклы.
По количеству аргументов операции бывают унарные, бинарные и имеется одна тернарная операция «Условие».
Если одна и та же операция встречается в выражении несколько раз, то говорят о лево-ассоциативных и право-ассоциативных операциях. В первом случае данная операция выполняется слева направо, во втором – справа налево.
Таблица приоритетов операций
Операции, расположенные в таблице выше, имеют больший приоритет.
Таблица 1
№ операции |
Группа операций |
Обозначение операции |
Название операции |
Название на сленге |
Ассоциативность |
|
первичные |
() |
круглые скобки |
1. () [] -> :: . |
|
|
|
[] |
индексация |
Квадратные скобки |
|
|
|
-> |
Обращение к элементу структуры по указателю на структурную переменную |
стрелка |
|
|
|
:: |
Разрешение видимости |
Четвероточие |
|
|
|
. |
Обращение к элементу структуры по имени структурной переменной |
Точка |
|
|
унарные |
! |
Логическое отрицание |
Восклицательный знак |
← |
|
|
~ |
Побитовое инвертирование |
Тильда |
← |
|
|
++ |
Автоматический инкремент ++х; Отложенный инкремент х++ |
Плюс-плюс |
← |
|
|
-- |
Автоматический декремент --х; Отложенный декремент х-- |
Минус-минус |
← |
|
|
- |
Обращение знака |
Минус |
← |
|
|
+ |
Подтверждение знака |
плюс |
← |
|
|
(тип) |
Явное приведение типа |
|
← |
|
|
* |
Разыменование указателя |
Звездочка |
← |
|
|
& |
Взятие адреса |
Амперсанд |
← |
|
|
sizeof |
Размер в байтах аргумента |
sizeof |
← |
|
|
new |
Операция выделения динамической памяти |
new |
← |
|
|
delete |
Операция освобождения динамической памяти |
delete |
← |
|
мультипликативные |
* |
умножение |
умножение |
|
|
|
/ |
деление |
деление |
|
|
|
% |
Деление по модулю |
процент |
|
|
аддитивные |
+ - |
Сумма разность |
Сложение Разность |
|
|
сдвиги |
<< |
Побитовый сдвиг влево |
Меньше-меньше |
|
|
|
>> |
Побитовый сдвиг вправо |
больше-больше |
|
|
отношения |
< <= > >= |
Меньше Меньше равно Больше Больше равно |
|
|
|
Сравнение |
== |
Сравнение на равенство |
|
|
|
|
!= |
Сравнение на неравенство |
3. .* ->* |
|
|
поразрядные |
& |
Побитовое «И» |
амперсанд |
|
|
|
^ |
Побитовое взаимоисключающее «ИЛИ» |
крышка |
|
|
|
| |
Побитовое «ИЛИ» |
Побитовое «ИЛИ» |
|
|
логические |
&& |
Логическое «И» |
«И» |
|
|
|
|| |
логическое «ИЛИ» |
«ИЛИ» |
|
|
Условие |
?: |
Условное выражение |
Вопросительный знак |
← |
|
присваивания |
= |
Присваивание |
Равно |
← |
|
|
*= /= %= += -= &= ^= |= <<= >>= |
Комбинированные присваивания |
Умножить равно и т.д. |
← |
|
запятая |
, |
запятая |
запятая |
|
Ассоциативность «слева направо» означает группировку операций таким образом: запись A1 @ A2 @ A3 означает ((A1 @ A2) @ A3).
Ассоциативность «справа налево» обрабатывает запись A1 @ A2 @ A3 как (A1 @ (A2 @ A3)).