Приглашаем сайты с посещаемостью от  2-х человек в сутки!

BUY WinRAR

Скачай WinRAR сейчас!

120x90-p1m002.gif (13061 bytes)

Партнерская программа для русскоязычных сайтов

Обмен программами по FTP

Первоклассный софт для всех.

2.2 Операции, выражения и операторы.

Теперь рассмотрим следующую программу, выполняющую вычисления по формуле С=5*(F-32)/9 и печатающую значения температуры по шкале Фаренгейта и Цельсия.

Итак, результатом работы программы, будет экран:

В нашей программе только одна функция, поэтому она обязана называться main().

Набор операторов, заключенный в фигурные скобки, называется составным оператором или блоком.

С помощью оператора описания объявляются имена (идентификатора) и свойства переменных. Делается это до того, как переменные будут использованы. Оператор описания состоит из названия типа и списка переменных, перечисляемых через запятую. Названия типов являются зарезервированными словами. Эти ключевые слова нельзя использовать в качестве идентификаторов.

В операторе присваивания fahr=68.0; присутствует точка в записи числа. Она отделяет дробную часть числа от его целой части.

В следующем операторе присваивания встречаются операции умножения, вычитания, деления. Очевидно, что результат вычислений зависит от порядка вычислений. Как и в языке Паскаль, так и в языке Си, операции умножения и деления обладают большим приоритетом, чем операции сложения и вычитания. Одинаковые по приоритету операции выполняются в стандартном порядке. Для изменения порядка используют скобки.

В функции printf, каждой конструкции первого аргумента, начинающейся с %, соответствует второй аргумент, третий аргумент и т.д. Спецификаторы и соответствующие им аргументы должны быть согласованы по количеству и типу.

Язык Си имеет широкий набор возможностей для обработки данных. Начнем знакомство с этими возможностями с изучения основных арифметических операций: сложения, вычитания, деления, а также операции присваивания.

Если в языке Паскаль знак равенства играет роль знака для записи логических выражений, то в языке Си знак равенства не означает “равно”. Он означает операцию присваивания некоторого значения.

С помощью оператора count=10; переменной с именем count присваивается значение 10. Как и на языке Паскаль, при выполнении операции присваивания, слева от знака присваивания записывается имя переменной, а справа – её значение. Обратная запись (10=count;) не имеет смысла. Невозможно константе присвоить какое-то значение. Её значением является она сама.

В программировании, довольно часто, используются операторы присваивания следующего вида: i=i+1;. Смысл таких операторов в следующем: “К значению переменной i прибавить 1, и присвоить переменной i новое значение”.

При выполнении операции присваивания, сначала выполняется выражение записанное справа от оператора, а затем результат вычисления присваивается величине, имя которой записано слева от оператора присваивания.

Как и в Паскале, так и в Си, операция сложения называется бинарной, так как она имеет дело с двумя операндами. Операнды могут быть как переменными, так и константами:

Операнд 1 Операнд2
sum =

23

+ 42;
i = i + 1;
anim = cats + dogs;

Знак “минус” используется как для выполнения операции вычитания, так и для указания или изменения алгебраического знака некоторой величины. Когда знак минус используется подобным образом, данная операция называется унарной.

Операции умножения и деления записываются так же как и в Паскале: * и /. Как и в Паскале, в Си нет операции возведения в степень. Для этого используют операцию умножения: n3=n*n*n. Для больших степеней можно использовать стандартную формулу: an=en*lna. Надо заметить, что над данными целого типа операция деления производится не так, как над данными с плавающей точкой. В отличие от Паскаля, где результат деления всегда вещественное число, в языке Си принято правило, согласно которому дробная часть у результата деления целых чисел отбрасывается. Это действие называется “усечением”. В Паскале же, для деления нацело, используется стандартная функция div.

Пример:

Деление Результат
7.0/4.0 1.75
5./4 1.25
7/4 1
6/3 2
4/5 0

Кроме указанных операций присутствует ещё операция деления по модулю. Данная операция используется в целочисленных арифметических выражениях и аналогична операции в языке Паскаль: mod. Как и в операции mod, результат операции деления по модулю, есть остаток от деления целого числа, стоящего слева от знака операции на число, расположенное справа от него.

Например, 13%5 (читается как “13 по модулю 5”) имеет значение 3, поскольку справедливо равенство: 13 равно 2*5+3.

Теперь, после знакомства с основными операциями, следует рассмотреть порядок выполнения операций в выражениях, содержащих несколько операций.

Рассмотрим приоритет операций языка Си. Умножение и деление имеют более высокий приоритет, чем сложение и вычитание, поэтому они выполняются первыми. Две одинаковые по приоритету операции выполняются в том порядке, который определён записью выражения. Обычный порядок выполнения операций – слева направо. (Операция = имеет самый низкий приоритет и, как уже говорилось, выполняется справа налево). Для изменения очерёдности выполнения операций используют круглые скобки. В первую очередь выполняется действие в скобках; внутри скобок действуют обычные правила.

Замечание! Для знака минус, большим приоритетом обладает унарная операция.

Объединение операций и операндов представляет собой “выражение”. Простейшее выражение состоит из одного операнда. Нетрудно заметить, что операнды могут быть константами, переменными или выражениями.

Каждое выражение, на языке Си, имеет значение.

Если значение выражения: -5+3 очевидно, то что можно сказать относительно выражения со знаком =? Вот здесь мы сталкиваемся с таким явлением, которому нет аналога на языке Паскаль.

Выражение со знаком = имеет то же значение, что и переменная, стоящая справа от знака “=”. Эта переменная получает его в результате вычисления выражения, стоящего справа от знака. Пример 2+(с=3+5) выглядит довольно странно, но он полностью соответствует правилам языка Си, поскольку данное выражение представляет собой сумму двух подвыражений, каждое из которых имеет значение.

Не противоречит правилам языка Си и наличие нескольких операций “=” в одном выражении. Так в выражении a=b=c=3+5, сначала будет подсчитана сумма 3+5 (операция + имеет более высокий приоритет), а затем результат сложения будет последовательно присвоен переменным c, b и а.

Основными элементами языка Си, как и Паскаля, являются операторы. Операторы служат основными строительными блоками программы, так что программа состоит из последовательности операторов с добавлением небольшого количества знаков пунктуации и комментариев. Большинство же операторов состоит из выражений.

Оператор является законченной инструкцией для компьютера. В языке Си указанием на наличие оператора служит символ ; (точка с запятой), стоящий в конце его.

Законченная инструкция должна выполнять некоторые действия полностью. Например, выражение 2+3 не является законченной инструкцией, а служит лишь указанием сложить 2 и 3, но не говорит, что делать с результатом. Инструкция count=2+3 – законченная, т.к. служит указанием поместить результат в ячейку памяти, помеченную именем count.

Кроме перечисленных операций, в отличие от Паскаля, язык Си имеет и ряд дополнительных операций. Рассмотрим перечисленные, а так же дополнительные операции и специальные символы в виде таблицы, сравнивая с аналогами языка Паскаль.

Google
Rambler's Top100 Яндекс цитирования PageRank

Регистрация доменов .RU по минимальной ценеРегистрация в системе обмена ссылками