среда, 18 января 2017 г.

Массивы

Массивы 

Массив состоит из элементов одного и того же типа. Ко всему массиву целиком можно обращаться по имени. Кроме того, можно выбирать любой элемент массива. Для этого необходимо задать индекс, который указывает на его относительную позицию. Число элементов массива назначается при его определении и в дальнейшем не изменяется. Если массив объявлен, то к любому его элементу можно обратиться следующим образом: указать имя массива и индекс элемента в квадратных скобках. Массивы определяются так же, как и переменные:
     int a[100];
     char b[20];
     float d[50];

Заполнение массива случайными числами


for (int i = 0; i < 3; i++)
{
 a[i] = rand()%10; // запись случайного числа от 1 до 10
        printf("%i", a[i]);
}

Условные операторы и операторы цикла

Условный оператор if

if ( TRUE ) {    /* выполняется этот код ,если условие истинно  */}
else {    /* выполняется этот код ,если условие ложно  */}

Оператор цикла for

Циклы организуются, чтобы выполнить некоторый оператор или группу операторов определенное число раз. В языке Си три оператора цикла: for, while и do - while. Первый из них формально записывается, в следующем виде:
     for (выражение_1; выражение_2; выражение_3) тело_цикла 

Примеры:

     for (i = 1; i < 10; i++) 
     {   ...   }

     for (сh = 'a'; ch != 'p';) scanf ("%c", &ch);
              /* Цикл будет выполняться до тех пор, пока с клавиатуры 
                 не будет введен символ 'p' */

Оператор цикла while

Оператор while формально записывается в таком виде:

     while (выражение) тело_цикла 

Выражение в скобках может принимать ненулевое (истинное) или нулевое (ложное) значение. Если оно истинно, то выполняется тело цикла и выражение вычисляется снова. Если выражение ложно, то цикл while заканчивается.

Оператор do-while формально записывается следующим образом:

     do {тело_цикла} while (выражение);

Операции и операторы

Знак операцииНазначение операции
( )Вызов функции
[ ]Выделение элемента массива
.Выделение элемента записи
->Выделение элемента записи
!Логическое отрицание
~Поразрядное отрицание
-Изменение знака
++Увеличение на единицу
--Уменьшение на единицу
&Взятие адреса
*Обращение по адресу
(тип)Преобразование типа (т.е. (float) a)
sizeof( )Определение размера в байтах
*Умножение
/Деление
%Определение остатка от деления
+Сложение
-Вычитание
<<Сдвиг влево
>>Сдвиг вправо
<Меньше, чем
<=Меньше или равно
>Больше, чем
>=Больше или равно
= =Равно
!=Не равно
&Поразрядное логическое "И"
^Поразрядное исключающее "ИЛИ"
|Поразрядное логическое "ИЛИ"
&&Логическое "И"
||Логическое "ИЛИ"
?:Условная (тернарная) операция
=Присваивание
+=, - =, *=, /=, %=, <<=,
>>=, &=, |=, ^=
Составные операции присваивания (например, а *= b
(т.е. a = a * b) и т.д.)
,Операция запятая

Основы Си

Язык Си, созданный Денисом Ритчи в начале 70-х годов в Bell Laboratory американской корпорации AT&T, является одним из универсальных языков программирования.

Для более вдумчивого и основательного изучения языка рекомендуется учебник. Так же его удобно использовать как справочник.

Типы данных

char - символьный;
int - целый;
float - вещественный;
double - вещественный двойной точности;
void - не имеющий значения.
Переменные и константы

int a, b, c;
char x, y;
Переменные в языке Си могут быть инициализированы при их определении:

     int a = 25, h = 6;
     char g = 'Q', k = 'm';
     float r = 1.89;
     long double n = r*123;


Форматированный вывод данных


Функция printf( ) (прототип содержится в файле stdio.h) обеспечивает форматированный вывод. Ее можно записать в следующем формальном виде:
     рrintf ("управляющая строка", аргумент _1, аргумент _2,...);
Управляющая строка содержит компоненты трех типов: 
- обычные символы, которые просто копируются в стандартный выходной поток (выводятся на экран дисплея); 
- спецификации преобразования, каждая из которых вызывает вывод на экран очередного аргумента из последующего списка; 
- управляющие символьные константы.
Каждая спецификация преобразования начинается со знака % и заканчивается некоторым символом, задающим преобразование. 

     %c_n

На месте параметра c_n (символ преобразования) могут быть записаны:

с - значением аргумента является символ; i - значением аргумента является десятичное целое число;  f - значением аргумента является вещественное десятичное число с плавающей точкой

Среди управляющих символьных констант наиболее часто используются следующие:

\n - для перехода на новую строку
Форматированный ввод данных

Функция scanf( ) (прототип содержится в файле stdio.h) обеспечивает форматированный ввод. Ее можно записать в следующем формальном виде:
     scanf("управляющая строка", аргумент_1, аргумент_2,...);
Аргументы scanf( ) должны быть указателями на соответствующие значения. Для этого перед именем переменной записывается символ &. 
Ввести целое число (int a;), символ (char b;) и вещественное число (float t;) можно так:
     scanf("%d", &a);
     scanf("%c", &b);
     scanf("%d%c%f",&a, &b, &t);