Краткий справочник по Си
КОДЫ КЛАВИШ
Латинский алфавит
A – 65, B – 66, С – 67, D – 68, …, Z – 90;
а – 97, b – 98, … , z- 122;
Русский алфавит (Кодировка некотрый символов совпадает с англ)
А – 70, Б – 60,
F1 – 1083
F2 – 1084
F3 – 1085
F4 – 1086
F5 – 1087
F6 – 1088
F7 – 1089
F8 – 1090
F10 –1091
F11 – 1092
F12 –1093
ESC – 27
ENTER – 13
LEFT - 1099
RIGHT – 1101
UP – 1096
DOWN 1104
BCSPASE - 8
DEL – 1107
Алфавит языка Си составляют 52 (заглавные и прописные) латинские буквы, 10 арабских цифр, 30 знаков и символов:
| A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | |||
| a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | p | q | r | s | t | u | v | w | x | y | z | |||
| + | плюс; | _ | пробел; | |||||||||||||||||||||||||
| - | минус; | ( | левая круглая скобка; | |||||||||||||||||||||||||
| * | звездочка; | ) | правая круглая скобка; | |||||||||||||||||||||||||
| / | косая черта; | [ | левая квадратная скобка; | |||||||||||||||||||||||||
| \ | обратная косая черта; | ] | правая квадратная скобка; | |||||||||||||||||||||||||
| < | меньше; | { | левая фигурная скобка; | |||||||||||||||||||||||||
| > | больше; | } | правая фигурная скобка; | |||||||||||||||||||||||||
| = | равно; | ? | знак вопроса; | |||||||||||||||||||||||||
| . | точка; | ! | восклицательный знак; | |||||||||||||||||||||||||
| , | запятая; | | | вертикальная черта; | |||||||||||||||||||||||||
| ; | точка с запятой; | ~ | волнистая черта; | |||||||||||||||||||||||||
| : | двоеточие; | ^ | угол вверх; | |||||||||||||||||||||||||
| ' | апостроф; | # | решетка; | |||||||||||||||||||||||||
| " | кавычки; | & | амперсант; | |||||||||||||||||||||||||
| _ | подчеркивание; | % | процент. | |||||||||||||||||||||||||
К основным ключевым словам относятся:
| auto | автоматический | if | если |
| break | завершить | int | целое |
| case | вариант | long | длинное |
| char | символьный | register | регистровый |
| continue | продолжить | return | возврат |
| default | по умолчанию | short | короткий |
| do | выполнять | sizeof | размер |
| double | двойной точности | static | статический |
| else | иначе | struct | структура |
| entry | вход | switch | переключатель |
| extern | внешний | typedef | определение типа |
| for | для | union | объединение |
| float | плавающий | unsigned | без знака |
| goto | перейти | while | пока |
Типы переменных определяют размеры ячеек для хранения их значений.
| Описатель | Наименование типа | Число байт (бит) |
| short int | Короткий целый | 2 (16) |
| int | Целый | 2 (16) |
| long int | Длинный целый | 4 (32) |
| float | Плавающая точка | 4 (32) |
| double | Двойная точность | 8 (64) |
| char | Символьный | 1 (8) |
Библиотека системных функций языка Си
| Математическая запись | Вызов функции | Наименование функции |
| ln x | log(x) | Натуральный логарифм |
| log10(а) | Десятичный логарифм |
| e0.5 | exp(0.5) | Экспонента |
| sqrt(y) | Корень квадратный |
| sin x | sin(х) | Синус |
| cos в | cos(в) | Косинус |
| tg(x+с) | tan(x+с) | Тангенс |
| arcsin x | asin(x) | Арксинус |
| arccos в | acos(в) | Арккосинус |
| arctg с | atan(c) | Арктангенс |
| xy | pow(x,y) | Возведение в степень |
| | x | | fabs(x) | Нахождение абсолютного значения х |
Правила записи и вычисления арифметических выражений
1. Арифметические выражения записываются одноэтажно. Например, 0.35+а*2-cos(b)/(PI+2).
2. Все знаки арифметических операций указываются явно. Например, А+В+С не равно АВ+С, так как во втором случае подразумевается переменная с именем АВ, а не две переменные.
3. Запись подряд двух знаков операций, как правило, запрещается (исключение см. разд. 6.2.1). Обойти это правило можно с помощью круглых скобок. Например, a*(-b).
4. Арифметическое выражение может быть любой сложности. Минимально может состоять из одного операнда. Реально определяется математической моделью задачи. Если зависимости математической модели относительно громоздки, рекомендуется представлять одну сложную зависимость несколькими простыми, – содержащими не более 5 – 7 операций в каждой.
5. Последовательность выполнения операций в арифметическом выражении соответствует принятой в математике:
· выражения в скобках;
· вычисления функций;
· умножения, деления;
· сложения, вычитания.
Например, выражение 0.2-cos(0.5)*pow(v,3) выполняется в следующем порядке: вычисление косинуса, возведение v в куб, умножение первого результата на второй и, наконец, вычитание из константы 0.2 константы, полученной после умножения.
6. Одноранговые операции выполняются слева направо. Например, выражение А*В/С*3 будет выполняться в порядке записи.
7. При необходимости нарушить последовательность выполнения действий используют скобки. Например, А+В/(С+D) или (0.2-v)*cos(0.5).
8. При делении целого операнда на целый от частного используется только целая часть. Так, результатом вычисления 5/2 будет целая константа 2, а выражения 2/5 – ноль. Для получения истинного результата необходимо сделать вещественными оба операнда или один из них. Например, 5./2. или 5./2 (5/2.).
9. Возведение в степень (pow(a,x)), если показатель (х) целочисленный, выполняется методом последовательного умножения. Если показатель степени вещественный, возведение осуществляется по формуле ax = еxlna. Использование функций (экспоненты и логарифма) приводит к получению приближенного значения результата.
10.В арифметическом выражении желательно использовать операнды одного типа. Например, i+23*k, если переменные i, k – целые или x*2.-0.36/cos(y), если переменные x, y – вещественные. В первом случае результатом будет целая константа, во втором – вещественная константа двойной точности (перед использованием автоматически все вещественные операнды приводятся к типу double).
11.Допускается применение смешанных арифметических выражений. При этом наличие хотя бы одного вещественного операнда приводит к получению результата (константы) с двойной точностью. Например, при вычислении выражения 4/z+i*k-0.07*sin(3./b) результатом будет вещественная константа двойной точности, если переменные i, k – целые, а z, b – вещественные. Аналогично, возможно получение дробного результата деления целых переменных использованием дополнительного операнда в виде вещественной константы (1.). Так, если переменные i и k описаны как целые, то результат выражения i/k есть целая константа (целая часть частного), а результат выражения i*1./k есть вещественная константа двойной точности. Следует помнить, что наличие операции деления двух целых операндов в смешанном выражении может привести к неверному результату. Например, вычисление выражения 0.02 + 3/5 - 0.01 дает неверный результат (0.01) т.к. второе слагаемое (частное от деления целой константы 3 на целую константу 5) – равно нулю.
12.Деление по модулю % используют в целочисленной арифметике. Результат операции– остаток от деления целого операнда, записанного слева от знака операции на операнд справа от него. Например, выражение 13%5 дает результат 3, поскольку 13=5*2+3, где 3 – остаток от деления.
13.Вычисление корня n-ой степени при n>2 требует предварительного преобразования его к виду
, а затем использование функции возведения в степень. Например, зависимость
должна быть преобразована к виду
, а затем сформирована как вызов функции pow(x,1./3.) Попытка вычисления функции вида pow(x,1/3) приведет к получению неверного результата – единицы т.к. показатель степени (1/3) после деления станет равен нулю.
Оператор присваивания
Структура оператора:
П=А; (П=L;)
где П – имя переменной;
А (L) – арифметическое (логическое) выражение;
= – символ операции присваивания;
; – символ оператора.
Оператор ввода
Структура оператора:
scanf(“управляющая строка”, АП1 [, АП2, . , АПn] );
, где scanf – имя функции (считать);
“управляющая строка” – список спецификаторов вводимых переменных, оформленный в виде символьной строки;
АП1 АП2 АПn – список адресов вводимых переменных;
, , – разделители списка;
( ) – ограничители аргументов функции scanf;
[ ] – признак необязательности содержимого;
; – символ оператора.
Простейший спецификатор ввода точность не учитывает и имеет вид:
%[длина]тип
, где % – признак спецификатора;
длина – целая константа без знака, определяющая количество считываемых символов численного значения;
тип – буквенное обозначение типа переменной;
[ ] – признак необязательности содержимого.
| Тип переменной | Обозначение типа | Формат ввода |
| int | d | Целое десятичное |
| long | ld | Длинное целое десятичное |
| float | f (e) | Вещественное десятичное с обычной точностью |
| double | lf | Вещественное десятичное с двойной точностью |
Оператор вывода на дисплей
Структура оператора:
printf(“управляющая строка” [, П1, ..., Пn] );
, где printf – имя функции (“напечатать”);
“управляющая строка” – список спецификаторов выводимых переменных, оформленный в виде символьной строки;
П1...Пn – список идентификаторов выводимых переменных;
, , – разделители идентификаторов в списке;
( ) – ограничители аргументов функции printf;
[ ] – признак необязательности содержимого;
; – символ оператора.
Структура спецификатора вывода (упрощённая):
%[длина][.точность]тип,
, где % – признак спецификатора;
длина – целая константа без знака, определяющая общий размер поля выводимой переменной (количество разрядов численного значения с учетом разделителя, знаков
и буквы Е (е), если они имеются);
точность – целая константа без знака, определяющая число разрядов дробной части мантиссы численного значения переменной;
. – разделитель длины и точности;
тип – буквенное обозначение типа переменной;
[ ] – признак необязательности содержимого.
При выводе часто используют следующие обозначения типа
| Тип переменной | Обозначение типа | Формат вывода |
| int | d | Десятичное целое со знаком |
| long | ld | Десятичное целое со знаком |
| unsigned | u | Десятичное целое без знака |
| int | o | Восьмеричное целое без знака |
| int | x | Шестнадцатеричное целое без знака |
| double | f (lf) | Плавающее со знаком в формате: [-]dddd.dddddd Количество цифр перед десятичной точкой зависит от величины числа, а число разрядов после нее соответствует заданной точности или равно шести |
| double | e (E) | Плавающее со знаком в формате: [-]d.dddddde[+][-]d[dd] |
| char | c | Одиночный символ |
| cтрока | s | Последовательность символов до первого нулевого (\0) |