Задание для самостоятельной работы
3.6.1. Записать отдельные строки программы, используя функции форматированного ввода-вывода:
а) вывод на экран двух переменных типа символ, целой переменной в восьмеричном формате и переменной типа длинное целое (идентификаторы выбрать самостоятельно);
б) вывод на экран значения переменных типа строка (массив символов) family, name, gruppa в следующем виде (после символов … должны идти значения указанных переменных):
Фамилия: …
Имя: …
Группа: …
в) вывести на экран две вещественные переменные в заданном формате: 10 позиций общая ширина поля переменной, 3 позиции – точность;
г) ввод двух переменных типа беззнаковое целое first и second;
д) ввод целой переменной x в шестнадцатеричном формате, вещественной переменной y и вещественной переменной двойной точности z;
е) выполнить ввод вещественных переменных power, moment и velocity, используя функции ввода-вывода в следующем формате (после символов … должен идти ввод указанных переменных):
Параметры двигателя:
мощность двигателя – …
момент двигателя – …
скорость двигателя – …
3.6.2. Записать отдельные строки программы, используя только функции консольного ввода-вывода:
а) очистить экран и далее вывести в центре экрана значения двух целых переменных
a и b, изменив при этом цвет символа и фона;
б) вывести значения четырех вещественных переменных a, b, c и d в следующем виде (ширина поля каждой переменной – 8 позиций, точность – 0 позиций):
a= …
b=…
c=…
d=…
в) выполнить предыдущий пример, но совмещенный с вводом значений этих переменных.
3.6.3. Написать программу: выполняется очистка экрана, вводится вещественное число, на экран выводится корень из введенного числа (функция корня находится в математической библиотеке и вызывается так: y=sqrt(x); ). Вывод корня выполнить в следующем формате – выравнивание по левому краю, общая ширина поля – 10 позиций, точность – 2 символа после десятичной точки.
3.6.4. Составить программу, в которой: выполняется очистка экрана, рисуется на экране изображение окна, внутри окна выполняется ввод трех параметров двигателя (см. задачу 3.6.1,е).
ОСНОВНЫЕ ОПЕРАЦИИ ЯЗЫКА
Операции языка Си
В языке существует большое количество операций (операторов). С помощью операций языка выполняются вычисления, сравнения, присваивания, а также ряд специфических задач. Наиболее часто используемые приведены в табл. 4.1. При выполнении операторов учитываются следующие особенности их исполнения:
а) каждой операции соответствует определенное количество операндов:
– унарные операции, имеющие только один операнд, например, операция взятия адреса переменной x запишется так: &x, а операция инкрементирования переменной i: i++;
– бинарные операции, имеющие два операнда, например, простейшие арифметические операции сложения, вычитания и т.д.: a+b или 4*x;
– единственная трехоперандная операция в языке – операция выполнения условия <операнд1> ? <операнд2> : <операнд3>.
б) некоторые операции могут работать только с определенными типами данных, например, побитовые операции применяются только к целым типам данных;
в) в сложных выражениях, содержащих ряд операций, исполнение большинства операций выполняется слева направо, за исключением, унарных операций и операций присваивания. Если необходимо задать строго определенный порядок исполнения выражения можно использовать круглые скобки;
г) в сложных выражениях последовательность исполнения операций определяется их приоритетом (см. крайнюю правую колонку в табл. 4.1, где 1 – наибольший приоритет исполнения операции).
Таблица 4.1.
| Опера-ция | Назначение | Пример | Прио-ритет |
| Первичные операции | |||
| [] | индекс массива | x[2][0]=5; | |
| () | вызов функции, очередность выполнения | y=sin(6.28*(x+1)); | |
| . | элемент структуры (прямой доступ) | time.tm_hour=5; | |
| -> | элемент структуры (косвенный доступ) | time->tm_hour=5; | |
| Унарные операции | |||
| ++ | инкремент (увеличение на единицу) | i++ | |
| –– | декремент (уменьшение на единицу) | i–– | |
| sizeof | размер в байтах | x=sizeof(int); | |
| (тип) | преобразование типа | y=(float)5/2; | |
| - | унарный минус (изменение знака) | y=-x; | |
| * | косвенная адресация | int x=*y; | |
| & | взятие адреса | scanf(“%d”,&x); | |
| Арифметические операции | |||
| * | умножение | 20*x | |
| / | деление | x/10 | |
| % | деление по модулю | x%10 | |
| + | сложение | x+20 | |
| – | вычитание | 40–x | |
| Битовые операции | |||
| ~ | побитовое НЕ | y=~x; | |
| << | побитовый сдвиг влево | y=x<<1; | |
| >> | побитовый сдвиг вправо | y=x>>1; | |
| & | побитовое И | y=x&15; | |
| ^ | побитовое исключающее ИЛИ | y=x^15; | |
| | | побитовое ИЛИ | y=x|15; |
Продолжение таблицы 4.1.
| Опера-ция | Назначение | Пример | Прио-ритет |
| Операции отношения | |||
| < | меньше | if (x<6) | |
| > | больше | if (x>6) | |
| <= | меньше или равно | if (x<=6) | |
| >= | больше или равно | if (x>=6) | |
| == | равно | if (x==6) | |
| != | не равно | if (x!=6) | |
| Логические операции | |||
| ! | логическое отрицание (операция НЕ) | if (!x) | |
| && | логическое умножение (операция И) | if (x>0 && x<6) | |
| || | логическое сложение (операция ИЛИ) | if (x<0 || x>6) | |
| Условная операция | |||
| ?: | при условии | a>b?10;-10 | |
| Операции присваивания | |||
| = | присваивание | x=5 | |
| *= | присвоение произведения | x*=3 | |
| /= | присвоение частного | x/=3 | |
| %= | присвоение остатка | x%=3 | |
| += | присвоение суммы | x+=3 | |
| –= | присвоение разности | x–=3 | |
| <<= | присвоение левого сдвига | x<<=3 | |
| >>= | присвоение правого сдвига | x>>=3 | |
| &= | присвоение И | x&=3 | |
| ^= | присвоение исключающего ИЛИ | x^=3 | |
| |= | присвоение ИЛИ | x|=3 | |
| Прочие операции | |||
| , | запятая | a=1, b=2; |
Дата добавления: 2016-07-27; просмотров: 1451;











