- •Дополнительный код для представления целых чисел со знаком Числа без знака
- •Числа со знаком
- •Свойства дополнительного кода
- •Ещё два свойства дополнительного кода
- •Перенос и переполнение
- •Почему "дополнительный"
- •Знак числа в дополнительном коде
- •Число двойной точности
- •[Править]Аксиомы
- •[Править]Логические операции
- •[Править]Свойства логических операций
- •Определение
- •Имена (идентификаторы)
- •Объявления переменных
- •Операции присваивания
- •28) Разветвляющийся вычислительный процесс (if else)
- •Блок-схема алгоритма поиска корня уравнения методом половинного деления (дихотомии)
- •34,35) Операторы цикла
- •Цикл с предусловием while
- •Цикл с постусловием repeat
- •Цикл с параметром for
- •Рекомендации по использованию циклов
- •Процедуры передачи управления
- •36) " Массивы в языке с. "
- •2. Поиск минимального и максимального элементов в массиве
- •40) Индексирование
Имена (идентификаторы)
Идентификатор - это имя программного объекта. В идентификаторе могут использоваться латинские буквы, цифры и знак подчеркивания. Прописные и строчные буквы различаются. Первым символом идентификатора может быть буква или знак подчеркивания.
Длина идентификатора по стандарту не ограничена. Идентификатор создается на этапе объявления переменной, функции, типа и т.п., после этого его можно использовать в последующих операторах программы. При выборе идентификатора необходимо иметь в виду следующее:
идентификатор не должен совпадать с ключевыми словами и именами используемых стандартных объектов языка;
не рекомендуется начинать идентификаторы с символа подчеркивания;
на идентификаторы, используемые для определения внешних переменных, налагаются ограничения компоновщика.
22) В С можно присваивать целочисленные значения в десятичной, восьмеричной и шестнадцатеричной системах счисления. Для того, чтобы присвоить переменной число в восьмеричной системе счисления, перед ним надо написать 0 (ноль), в шестнадцатеричной — 0x (ноль и икс), например:
int a, b;
a = 077; // записано восьмеричное число
b = 0x1F; // присвоено шестнадцатеричное число
Любые целые числа можно выводить на экран в десятичном, восьмеричном и шестнадцатеричном представлении. Пример кода для вывода определенных ранее двух переменных в различных системаъ счисления:
printf("%d %o %x %X\n", a,a,a,a);
printf("%d %o %x %X\n", b,b,b,b);
В результате на экране вы увидите:
63 77 3f 3F
31 37 1f 1F
23,24) значенийРазмер (байт)
bool true и false 1
signed char -128 … 127 1
unsigned char 0 … 255 1
signed short int -32 768 … 32 767 2
unsigned short int0 … 65 535 2
signed int-2 147 483 648 … 2 147 483 647 4
unsigned int0 … 4 294 967 295 4
signed long int-2 147 483 648 … 2 147 483 647 4
unsigned long int0 … 4 294 967 295 4
float3.4e-38 … 3.4e+38 4
double1.7e-308 … 1.7e+308 8
long double 3.4e-4932 … 3.4e+493210932 10
Объявление переменных:
{int a,b,c;
double d;
double e=2,7;}
Объявления переменных
Объявление переменной может содержать помимо самого объявления также инициализацию переменной, то есть указание первоначального значения переменной.
Объявления указываются:
вне функции, класса, метода для глобальных переменных;
в начале блока инструкций { } для локальных переменных;
как выражение в последующих частях блока инструкций {} для локальных переменных (не для языка Си).
int global_var;
main()
{
int y;
...
{
int z=1;
getch();
int x=5; /*не работает для языка Си*/
...
}
...
}
25) В языке С к арифметическим операциям относятся следующие операции:
- вычитание или унарный минус;
+ сложение;
* умножение;
/ деление;
% деление по модулю;
++ увеличение на единицу;
-- уменьшение на единицу;
Операции присваивания
= Присваивает значение, указанное справа, переменной, стоящей слева Каждая из приводимых ниже операции изменяет переменную, стоящую слева, на величину, находящуюся справа. Мы используем следующие обозначения: П для правой части и Л для левой. + = прибавляет величину П к переменной Л
-= |
вычитает величину П из переменной Л |
*= |
умножает переменную Л на величину П |
/= |
делит переменную Л на величину П |
%= |
выдает остаток от деления переменной Л на величину П |
Пример: rabbits *= 1.6; то же самое, что rabbits = rabbits * 1.6;
Математические функции
abs - абсолютное значение (модуль) acos, acosl - арккосинус asin, asinl - арксинус atan, atanl - арктангенс atan2, atan2l - арктангенс2 cabs, cabsl - абсолютное значение комплексного числа ceil, ceill - округление вверх, наименьшее целое, не меньшее х cos, cosl - косинус cosh, coshl - косинус гиперболический exp, expl - экспонента fabs, fabs - абсолютный модуль дроби floor, floorl - округление вниз, наибольшее целое, не большее х fmod, fmodl - остаток от деления, аналог операции % frexp, frexpl - разделяет число на мантиссу и экспоненту hypot, hypotl - гипотенуза labs - модуль длинного целого ldexp, ldexpl - произведение числа на два в степени exp log, logl - логарифм натуральный log10, log101 - логарифм лесятичный modf, modfl - разделяет на целую и на дробную часть poly, polyl - полином pow, powl - степень pow10, pow10l - степень десяти sin, sinl - синус sinh, sinhl - синус гиперболический sqrt, sqrtl - квадратный корень tan, tanl - тангенс tanh, tanhl - тангенс гиперболический
26,27) В то время как функция printf() осуществляет форматированный вывод данных, функция scanf() осуществляет их форматированный ввод. Это значит, что поступающие на ввод данные преобразуются соответственно указанному формату(ам) и записываются по адресу(ам) указанной(ых) переменной(ых):
scanf(строка_формата, адреса_переменных);
Причина, по которой в scanf() передаются адреса, а не значения переменных, очевидна. Функция scanf() должна изменять значения переменных тех функций, из которых вызывается. Единственный способ — это получить адреса областей памяти.
Спецификации формата данных, допустимые в строке формата, для scanf()почти идентичны тем, что были описаны для функции printf(). На этом уроке мы подробно не рассмотрим все возможности форматированного ввода с помощью scanf(), зато разберем ряд конкретных примеров.
