Практическое программирование на не вполне знакомом языке, страница 3

Простые переменные и элементы массивов, соединенные операциями (действиями), образуют выражения. То есть любое вычисление -это выражение, присваивание -выражение, сравнение -выражение и многое другое -тоже выражение. Самое важное -большинство операций совместимо между собой, поэтому они могут сочетаться самым "диким" образом (это к тому, что следует в будущем быть особо внимательными). В нашем примере операции разных видов в одном выражении не встречаются.

double min(...  

{                                    

for (i=1, А_min=A[0]; i<nn; i++ )

    if (A[i] < А_min) А_min=A[i];

}

void    main()

{

    ...);

    } while (n1 < 1 || n1 > 20);

...               

dd = sum(C,n1);

}   

1. Присваивание -это операция, которое значение выражения, стоящее справа от символа "=" запоминает в переменной или элементе массива, стоящем слева. При присваивании происходит преобразование форм представления (типов), если они не совпадают (например int -double или double -int). Четыре действия арифметики (+,-,*,/) и операция получения остатка от деления (%) образуют группу арифметических операций. Их выполнение не имеет каких-либо особенностей, кроме как преобразование типов переменных при их несовпадении. Если в одном выражении встречаются переменные типов double и int, то целая форма представления числа int преобразуется к вещественной double.

2. Операция i++ увеличивает на 1 значение переменной i после использования ее значения в выражении, то есть понимается как (взять i, i=i+1). Операция i-- аналогичным образом уменьшает значение переменной. Операции носят название инкремент и декремент. Те же самые операции, но поставленные перед переменной, изменяют ее значение до использования.

3. Если требуется выполнение нескольких несвязанных между собой выражений, а по правилам полагается только одно, то их можно просто перечислить через запятую. В данном случае транслятор рассматривает их как одно целое.

4. Операции сравнения ("==" -равно, "!=" -не равно, а также ">","<",">=","<=") дают в качестве результата значения "истина" или "ложь". Выражения с такими значениями называются условными, поскольку обозначают выполнение или, наоборот, невыполнение некоторого условия в программе. Они используются в условном операторе (if) и в операторах цикла (do -while, for).

5. Над значениями условных выражений можно выполнить логические операции И ("&&"), ИЛИ ("||") и НЕ ("!"), которые объединяют по правилам логики несколько условий в одно. В данном случае условие продолжения цикла истинно, когда значение переменной nn меньше 1 ИЛИ больше 20.

6. Вызов функции также представляет собой выражение.

Шаг 4. Операторы

double min(...

{

for (i=1, А_min=A[0]; i<nn; i++ )

     if (A[i] < А_min) А_min=A[i]   ;  

return (А_min);   

}

void    main()

{

  do                

     {                            

     printf("Элементов массива:");

     scanf("%d", &n1);            

     }                                  

        while (n1 > 0 && n1 < 20);

}

1. Оператор -следующая синтаксическая единица программы, которая отражает логику ее работы (последовательная, ветвящаяся, повторяющаяся). Для операторов характерен принцип вложенности: составными частями оператора могут быть любые другие операторы, и сам он, в свою очередь, может входить составной частью в оператор более высокого уровня. Благодаря этому логику программы можно усложнять до бесконечности.

2. Любое выражение, ограниченное символом ";" превращается в простой оператор. Символ ";" играет здесь, а также в других местах программы (определения переменных, операторы return и for) роль ограничителя, по которому транслятор узнает, что текущая синтаксическая констукция закончилась.

3. Последовательность операторов, заключенная в фигурные скобки, образует составной оператор (или блок) и входит в охватывающую его конструкцию как одно целое, то есть становится с точки зрения транслятора одним оператором. В данном случае тело цикла, содержащее два простых оператора, образует при помощи фигурных скобок составной оператор. Это нужно потому, что определение оператора цикла do имеет вид: