Категории
Самые читаемые
onlinekniga.com » Компьютеры и Интернет » Программирование » Язык Си - руководство для начинающих - M. УЭИТ

Язык Си - руководство для начинающих - M. УЭИТ

Читать онлайн Язык Си - руководство для начинающих - M. УЭИТ

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 15 16 17 18 19 20 21 22 23 ... 98
Перейти на страницу:

     Нам нужно лишь каким то образом заставить компьютер выполнить повторяющиеся вычисления. Вообще говоря, именно эта появляется одной из главных причин использования машин. Для выполнения арифметических вычислений. Язык Си предлагает несколько способов реализации повторяющихся вычислений, сейчас обсудим один из них. Данный способ, называемый "while", дает возможность использовать операторы языка более интересным образом. Ниже приводится модификация нашей программы, занимающейся пересчетом размеров обуви.

/* размер обуви2 */

 #define OFFSET 7 64

 #define SCALE 0 325

main()

{

/* пересчет размера обуви в размер ноги в дюймах */

 float shoe, foot;

printf("Размер обуви (мужской) размер ногиn");

shoe = 3.0;

while(shoe < 18.5)

 {

   foot = SCALE *shoe + OFFSET;

   printf(" %10 lf  %13 2f  %l6 2f дюймаn" , shoe, foot);

   shoe = shoe + 1.0;

}

printf("Ecли эта обувь годится вам, носите ее n");

}

Вот результат работы программы, размер обуви2, приведенный в сокращеннoм виде:

Размер обуви (мужской)                Размер ноги

3.01                                  8.61 дюйма

4.0                                   8.94 дюйма

...                                   ...

...                                   ...

17.0                                  13.16 дюйма

18.0                                  13.46 дюйма

 Если эта обувь годиться вам, носите ее.

     (Значения констант для данной программы пересчета были получены во время нашего визита инкогнито в обувной магазин. В единственном обнаруженном там классификаторе размеров приводились данные только относительно мужской обуви. Лица, интересующиеся размерами женской обуви, должны посетить обувной магазин сами).

     Цикл while работает следующим образом. Когда программа в процессе выполнения впервые достигает оператора while, осушествляется проверка истинности условия, заключенного в круглые скобки. В этом случае соответствующее выражение имеет вид:

shoe < 18.5

где символ < означает "меньше". Вначале переменная shoe была инициализирована значением 3.0, которое, как видно, меньше 18.5. Поэтому данное условие истинно, и осуществляется переход к следующему оператору, который переводит размер обуви в дюймы. После этого результаты выводятся на печать. Следующий оператор:

shoe = shoe + 1.0;

увеличивает значение переменной shoe на 1.0, делая его равным 4.0. В этом месте программы происходит возврат к началу фрагмента while, где вышеупомянутое условие проверяется вновь. По чему именно здесь? Это происходит потому, что следующей строкой программы является закрывающая фигурная скобка } - тело цикла while заключено в фигурные скобки. Операторы, располо женные между ними, являются той частью программы, которая может выполняться повторно. Теперь давайте вернемся к нашей программе: 4 меньше 18.5 ? Безусловно Поэтому весь набор операторов, заключенный в фигурные скобки и следующий за ключевым словом while, выполнится опять. (Специалисты по вычислительной технике в этом случае говорят, что программа выполняет эти операторы "в цикле"). Это продолжается, пока значение переменной shoe не достигнет величины 19.0. Когда условие

shoe < 18.5

станет ложным, поскольку 19.0 не меньше 18.5. При этом произойдет передача управления оператору, следующему сразу за телом цикла while. В нашем случае им является завершающий оператор printf().

     Вы можете легко модифицировать эту программу, чтобы она осуществляла другие преобразования. Например, замените значение константы SCALE на 1.8, а константы OFFSET - на 32.0, и вы изучите программу, которая переводит температуру по Цельсию в температуру по Фаренгейту. Если заменить значение SCALE на 0.6214, a OFFSET на 0, то программа будет переводить мили в километры. Производя эти изменения, вы, повидимому, во избежание путаницы должны будете поменять также и печатаемые сообщения.

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

ОСНОВНЫЕ ОПЕРАЦИИ

   "Операции" в языке Си применяются для представления арифметических действий. Например, выполнение операции + приводит к сложению двух величин, стоящих слева и справа от этого знака. Если слово "операция" кажется вам странным, подумайте тогда, как назвать эти понятия. Нам слово "операция" представляется лучшим термином, чем, скажем, "арифметические транзакторы" мы рассмотрим операции =, +, -, * и /. (В языке Си нет операции возведения в степень. В одной из следующих глав будет представлена программа, реализующая данную функцию).

Операция присваивания: =

     В языке Си знак равенства не означает "равно". Он означает операцию присваивания некоторого значения. С помощью оператора

bmw = 2002,

переменной с именем bmw присваивается значение 2002, т.е. элемент слева от знака = - это имя переменной, а элемент справа - ее значение. Мы называем символ = "операцией присваивания". Еще раз хотим обратить ваше внимание на то, что смысл указанной строки не выражается словами "bmw равно 2002". Вместо этого нужно говорить так "присвоить переменной bmw значение 2002". В этой операции действие выполняется справа налево.

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

i =i + 1;

     С математической точки зрения это бессмыслица. Если вы прибавляете единицу к конечному числу, результат не может быть равен исходному числу. Но как оператор присваивания данная строка имеет вполне определенный смысл, который можно выразить, например, такой длинной фразой "Взять значение переменной с именем i, к нему прибавить 1, а затем присвоить новое значение переменной с именем i".

i = i + 1,

РИС. 5.1.

Оператор вида

2002 = bmw,

на языке Си не имеет смысла, поскольку 2002 - число. Вы не можете присвоить константе какое-то значение; ее значением является она сама. Поэтому, сидя за клавиатурой, помните, что элемент, стоящий слева от знака =, всегда должен быть именем переменной.

     Тем из вас, кто предпочитает знать правильные названия понятий, скажем, что вместо использованного ранее термина "элемент" обычно употребляют слово "операнд". Операнды - это то, над чем выполняются операции. Например, вы можете описать процесс "поедания" гамбургера как применение операции "поедание" к oпeранду "гамбургер". 

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

/* таблица результатов турнира по гольфу */

main( ) {

int Jane, tarzan, cheeta, cheeta = tarzan = jane = 68;

printf("cheeta tarzan janen");

printf("Cчетпервойпартии%4d %8d  %8d n", cheeta, tarzan, jane);

}

     В то время как многие языки запрещают применять такое троиное присваивание, присутствующее в данной программе, для Си это обычная практика. Присваивания выполняются справа налево сначала переменная jane получает значение 68, затем переменная tarzan и наконец переменная cheeta. Результат выглядит так:

cheeta tarzan  jane

Счет первой партии           68        68        68

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

Операция сложения: +

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

printf(" %d", 4 + 20);

на печать будет выведено число 24, а не выражение 4 + 20

     Операнды могут быть как переменными, так и константами. Поэтому при выполнении оператора

1 ... 15 16 17 18 19 20 21 22 23 ... 98
Перейти на страницу:
На этой странице вы можете бесплатно читать книгу Язык Си - руководство для начинающих - M. УЭИТ.
Комментарии