# Занятие 2. Типы данных. Операции и выражения. ###### tags: `Programming C/Asm` ![](https://i.imgur.com/JOF61Zp.png) ## Имена переменных Для имён переменных есть одно правило, которое надо будет запомнить. В качестве имени переменной может выступать любая последовательность символов латинского алфавита, цифр и знака нижнего подчеркивания "_", которая начинается с буквы. Также нельзя использовать зарезервированные имена: `int`, `if`, `else`, `for`, `while` и т.д. ![](https://i.imgur.com/U4UqdeS.png) ## Типы данных и их размеры. Стандартные заголовочные файлы `<limits.h>` и `<float.h>` содержат символические константы для всех этих размеров а также других свойств системы и компилятора. #### Задание 1. Напишите программу определения диапазонов переменных типов (`char`, `short`, `int` и `long`) из заголовочных файлов. > Подсказка: нужно залезть в `limits` по адресу: `/usr/include/limits.h` ![](https://i.imgur.com/laCDjwp.png) ## Решение ![](https://i.imgur.com/w2ssQvm.png) ## Операции Операции можно разделить на несколько категорий: - Арифметические: `+, -, *, /` и взятие остатка от деления `(%)` - Операции отношения и логические. `> , >=, <=` - данные операции имеют одинаковый приоритет, сразу после них по уровню приоритета следуют `==`, `!=`. Одноместная операция отрицания (!). - Инкрементирования и декрементирования. Например `i++`, `++i`. - Поразрядные операции: `&` - поразрядное И, `|` - поразрядное включающее ИЛИ, ^ - поразрядное исключающее ИЛИ, `<<` - сдвиг влево, `>>` - сдвиг вправо #### Задание 2. Написать программу, которая получает на вход год и на выходе пишет високосный он или нет. #### Задание 3. Написать программу, которая: Запрашивает у пользователя число типа `unsigned int` Выводит двоичную запись этого числа с инвертированным порядком бит ![](https://i.imgur.com/mBxAyxG.png) ## Решения ![](https://i.imgur.com/f8TGU0g.png) ## Вывод - Разобрали имена переменных - Типы данных и их размеры - Операции и выражения ![](https://i.imgur.com/qoN0qwW.png) ## Домашнее задание Написать программы которые: 1. Запрашивает у пользователя 10 чисел типа `int` и заносит их в массив, выводит количество отрицательных и неотрицательных чисел в нем 2. Преобразует буквы в верхнем регистре к нижнему и наоборот, при помощи условного оператора `if`. > Усложнение: на вход не одна буква, а строка 3. Вычисляет и выводит первые 10 элементов последовательности определяемой по закону `f(+2) = f(0"15-f(i+1)*7.f(0) = 1.f(1) = 2` 4. Запрашивает у пользователя число типа int и выводит наименьшую цифру этого числа и сколько раз она встречается в нем ![](https://i.imgur.com/0RSor8M.png)