- •Предисловие
- •Алфавит языка
- •Служебные слова
- •Константы
- •Комментарии
- •Переменные
- •Int I,j,k; //переменные I, j, k – целого типа
- •Математические функции
- •Выражения
- •Выражения целого типа
- •Примеры записи выражений целого типа:
- •Примеры вычислений выражений целого типа:
- •Выражения вещественного типа
- •Примеры записи выражений вещественного типа
- •Примеры вычислений выражений вещественного типа:
- •Операторы присваивания
- •Примеры записи операторов присваивания:
- •Ввод и вывод данных
- •Стандартный ввод-вывод
- •Посимвольный ввод-вывод
- •Ввод-вывод строк
- •Форматированный вывод
- •Форматированный ввод
- •Scanf(“формат”, аргументы);
- •Int age, rost;
- •Vasja Pupkin
- •Vasja Pupkin
- •Структура программы
- •Void main()
- •Int main()
- •Int age, rost;
- •Директивы препроцессора
- •Включение файлов
- •Int main()
- •Int age, rost;
- •Int main()
- •Int age, rost;
- •Подстановка имен
- •Макросы
- •Структуры данных
- •Массивы
- •Int vect[5];
- •Int vect[count];
- •Vect[0] vect[1] vect[2] vect[3] vect[4]
- •Int main()
- •Int temp;
- •Int matr[row][col];
- •Алгоритм и его свойства
- •Схемы алгоритмов
- •Пример записи алгоритма:
- •Базовые структуры
- •Цепочка
- •Ветвления
- •Альтернатива
- •If (условие)
- •Вариант 2 – с использованием операции конъюнкции
- •Int main()
- •Int c, y1, y2, kl, day, month, year;
- •Часто встречающиеся ошибки программирования:
- •Int main()
- •Переключатель
- •Int main()
- •Int month;
- •Часто встречающиеся ошибки программирования:
- •Бесконечные циклы
- •Циклы с предусловием
- •Int main()
- •Программа
- •Int main()
- •Программа
- •Int main()
- •Часто встречающиеся ошибки программирования:
- •Циклы с постусловием
- •Int main()
- •Int main()
- •Программа
- •Int main()
- •Int main()
- •Int main()
- •Int month;
- •Циклы с параметром
- •Действия цикла:
- •Int main()
- •Int top, bottom;
- •Int main()
- •Int num, sum, factor;
- •Int main()
- •Int main()
- •If (number % 3)
- •Int main()
- •Int main()
- •Int I, m, vector_min, vector_max, temp;
- •Int vector[n];
- •Int main()
- •Int vector_min, vector_max, temp;
- •Int vector[n];
- •Функции
- •Int summa(int a, int b)
- •Int summa(int a, int b)
- •Void swap(int a, int b)
- •Int temp;
- •Int top, bottom, temp;
- •Рекурсия
- •5 * 4 * Factorial(3)
- •5 * 4 * 3 * Factorial(2)
- •5 * 4 * 3 * 2 * Factorial(1)
- •Void quick_sort(int left, int right, int vector[])
- •Int I, last;
- •Void swap(int I, int j, int vector[])
- •Int temp;
- •Особенности рекурсии:
- •Адреса и указатели
- •Операции над указателями
- •Указатели и массивы
- •Int mass[5];
- •Int trio[5][2][3];
- •Указатели и функции
- •Int main()
- •Указатели и строки
- •Функции для работы со строками
- •Vtorokursnik
- •Vtorokursnik
- •Itoa(I, str, 16);
- •Текстовые файлы
- •Int vector[k];
- •Vector_1:
- •Vector_2:
- •Int ocenka;
- •Imja: Vasilij
- •Imja: Ivan
- •Int ocenka;
- •Бинарные файлы
Математические функции
Математические функции служат для вычисления некоторых часто встречающихся тригонометрических и элементарных функций. Они помещены в файл <math.h>, вызываемый из системной библиотеки директивой препроцессора:
#include <math.h>
Аргументы математических функций могут иметь типы double, float или int, причем все функции, кроме abs(), round(), ceil(), floor() и irand() возвращают значения типа double, а эти – типа int. Углы в тригонометрических функциях задаются в радианах:
sin(x) sin x
cos(x) cos x
tan(x) tg x
asin(x) arcsin x
acos(x) arccos x
atan(x) arctg x
atan2(x,y) arctg x/y
sinh(x) sh x
cosh(x) ch x
tanh(x) th x
exp(x) ex
log(x) ln x
log10(x) lg x
pow(x,y) xy ошибка, если x=0 и y<=0 или
если x<0 и y не целое
sqrt(x)
ceil(x) наименьшее целое, большее или равное х:
ceil(5.0) = 5
ceil(5.4) = 6
ceil(5.8) = 6
floor(x) наибольшее целое, меньшее или равное x – выделение целой части числа:
floor(5.0) = 5
floor(5.4) = 5
floor(5.8) = 5
round(x) округление аргумента:
round(5.0) = 5
round(5.4) = 5
round(5.8) = 6
fabs(x) |x| x - вещественное
abs(x) |x| x – целое
ldexp(x,n) x•2n
fmod(x,y) остаток от деления x на y в виде вещественного числа:
fmod(7.8, 5) = 2.8
fmod(7.8, 5.0) = 2.8
fmod(7.8, 5.2) = 2.6
fmod(7.8, 5.5) = 2.3
fmod(7.0, 5.0) = 2.0
fmod(7, 5) = 2.0
fmod(7.5, 5.8) = 1.7
Выражения
В любой программе требуется производить вычисления. Для вычисления значений переменных используются выражения (формулы), которые состоят из операндов, знаков операций и скобок.
Операнды задают данные для вычислений. Операции задают действия, которые необходимо выполнить. Каждый операнд, в свою очередь, является выражением или одним из его частных случаев, например, константой или переменной. Операции выполняются в соответствии с приоритетами. Для изменения порядка выполнения операций используются круглые скобки.
Итак, под выражением понимается последовательность констант, переменных и функций, связанных знаками операций и скобками. В зависимости от типа операндов (констант, переменных или функций), используемых в выражениях, они могут иметь целый или вещественный тип.
Выражения целого типа
В этих выражениях используются операнды целого или символьного типов, связанные круглыми скобками и знаками арифметических, логических, побитовых операций и операций сравнения.
К арифметическим операциям относятся:
+ сложение 3 + 2 = 5
- вычитания 5 – 2 = 3
* умножение 3 * 2 = 6
/ деление нацело 5 / 3 = 1
% остаток от деления 5 % 3 = 2
5 % 2 = 1
5 % 1 = 0
5 % 5 = 0
2 % 3 = 2
++ инкремент x++ = x + 1
++x = x + 1
-- декремент x-- = x – 1
--x = x – 1
В отличие от Паскаля, в выражения целого типа языка Си могут входить и операнды символьного типа (char), при этом операции выполняются над кодами символьных констант, а результат может быть выражен или целым числом, или символом:
‘A’ + 3 = ‘D’
‘A’ + 3 = 68
‘a’ – 32 = ‘A’
‘a’ – 32 = 65
‘0’ + 1 = 49
‘0’ + 1 = ‘1’
В языке Си используются три логические операции:
! НЕ отрицание, инверсия,
|| ИЛИ логическое сложение, дизъюнкция,
&& И логическое умножение, конъюнкция
и шесть операций сравнения:
== равно,
!= не равно,
> больше,
>= больше или равно,
< меньше,
<= меньше или равно.
Внимание! Операция равно в Си обозначается не одним, как в Паскале, а двумя знаками равенства: ==
Результатами логических операций и операций сравнения могут быть две константы:
1 – истина,
0 – ложь.
Причем считается, что если операнд в выражении не равен нулю (не ложь), то он имеет значение истина:
5&&3 = 1 истина И истина есть истина
5&&0 = 0 истина И ложь есть ложь
5||3 = 1
5||0 = 1
0||0 = 0
!1 = 0 НЕ истина есть ложь
!5 = 0
5==5 = 1 5 равно 5 есть истина
5==3 = 0
5!=5 = 0 5 не равно 5 есть ложь
5!=3 = 1
5>3 = 1
5<=3 = 0
Побитовые операции выполняются над двоичными кодами операндов, над каждым разрядом кода отдельно. К ним относятся:
& И 5&3 = 1 101 = 5
&
011 = 3
___
001 = 1
| ИЛИ 5|3 = 7 101 = 5
|
011 = 3
___
111 = 7
^ исключающее ИЛИ 5^3 = 6 101 = 5
^
011 = 3
___
110 = 6
Приоритет выполнения операций:
! НЕ
- изменение знака
++ инкремент
-- декремент
Эти операции имеют наивысший приоритет и выполняются в выражениях справа налево.
За ними следуют операции:
*, /, % операции типа умножения
+, - операции типа сложения
>, >=, <, <= операции сравнения
==, != операции равенства
& побитовое И
^ исключающее ИЛИ
| побитовое ИЛИ
&& логическое И
|| логическое ИЛИ
Эти операции выполняются в выражениях слева направо. Порядок вычислений может быть изменен с помощью круглых скобок.