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


Авторские права

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

Здесь можно скачать бесплатно " M. УЭИТ - Язык Си - руководство для начинающих" в формате fb2, epub, txt, doc, pdf. Жанр: Программирование, издательство "Мир", год 1988. Так же Вы можете читать книгу онлайн без регистрации и SMS на сайте LibFox.Ru (ЛибФокс) или прочесть описание и ознакомиться с отзывами.
 M. УЭИТ - Язык Си - руководство для начинающих
Рейтинг:
Название:
Язык Си - руководство для начинающих
Автор:
Издательство:
"Мир"
Год:
1988
ISBN:
5-03-001309-1 /русск./
Скачать:

99Пожалуйста дождитесь своей очереди, идёт подготовка вашей ссылки для скачивания...

Скачивание начинается... Если скачивание не началось автоматически, пожалуйста нажмите на эту ссылку.

Вы автор?
Жалоба
Все книги на сайте размещаются его пользователями. Приносим свои глубочайшие извинения, если Ваша книга была опубликована без Вашего на то согласия.
Напишите нам, и мы в срочном порядке примем меры.

Как получить книгу?
Оплатили, но не знаете что делать дальше? Инструкция.

Описание книги "Язык Си - руководство для начинающих"

Описание и краткое содержание "Язык Си - руководство для начинающих" читать бесплатно онлайн.



M. УЭИТ   С. ПРАТА    Д. МАРТИНЯзык Си — руководство для начинающих





for(printf("Запоминайте введенные числа!\n"); num == 6;)

scanf(" %d", &num);

printf("Это как раз то, что я хочу!\n");

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

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

for(n = 1; n < 1000; n + = delta)

И если после нескольких итераций ваша программа решает, что величина параметра delta слишком мала или велика, оператор if внутри цикла может изменить значение параметра. В диалоговой программе пользователь может изменить этот параметр в процессе выполнения цикла.

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

Резюме: оператор for

I. КЛЮЧЕВОЕ СЛОВО: FOR


II. ОБЩИЕ ЗАМЕЧАНИЯ:

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


III. ФОРМА ЗАПИСИ:

for(инициализация; проверка условия; коррекция)  оператор

Тело цикла выполняется до тех пор, пока проверяемое условие не станет ложным или равным нулю


III.ПРИМЕР

for(n = 0; n < 10; n++)

printf(" %d %d\n", n, 2*n + 1);

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

Важнейшей из них является, конечно, операция =, при использовании которой значение выражения справа от знака присваивается переменной слева от него. Остальные операции присваивания корректируют значения переменных В записи каждой из них имеются имя переменной, стоящее слева от знака операции, и выражение справа от него Переменной присваивается новое значение, равное старому, скорректированному с помощью величины выражения, стоящего справа. Результат зависит от используемой операции. Например: scores+= 20 то же самое, что scores = scores + 20, dimes -= 20 то же самое, что dimes = dimes - 2, bunnies *= 2 то же самое, что bunnies = bunnies * 2, time /= 2.73 то же самое, что time = time / 2.73, reduce %= 3 то же самое, что reduce = reduce % 3.

     Правые части здесь являются обыкновенными числами, но мы могли бы использовать и более сложные выражения

х*= 3*у + 12

то же самое, что и

х = х*(3*у + 12)

Этим операциям присваивания назначен тот же низкий приоритет, что и обычной операции =, т.е. меньший, чем операциям + или *. Это и отражено в последнем примере. Вам совершенно не обязательно использовать все эти формы. Однако они более компактны, и при трансляции обычно позволяют получить более эффективный машинный код, чем традиционная, более длинная запись. Они бывают особенно полезны в том случае, когда вы хотите поместить некоторое выражение в спецификацию цикла for.

Операция "запятая"

     Операция "запятая" увеличивает гибкость использования цикла for, позволяя включать в его спецификацию несколько инициализирующих или корректирующих выражений. Например, ниже приводится программа, которая выводит на печать величины почтовых тарифов первого класса обслуживания. (Во время написания этой книги почтовые тарифы были такими: 20 центов за первую унцию и по 17 центов за каждую следующую.)

/* почтовые тарифы*/

#define FIRST 20

#define NEXT 17

main( )

{

int ounces, cost;

printf(" унциистоимость\n");

for(ounces = 1, cost = FIRST; ounces <= 16; ounces++, cost+ = NEXT)

    printf(" %3d %7d\n" , ounces, cost);

}

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

унции          стоимость

   1                 20

   2                 37

   3                 54

     Мы воспользовались операцией "запятая" в первом и третьих выражениях: в первом случае она позволяет инициализировать переменные ounces и cost; во втором - на каждой итерации увеличивать значение ounces на 1, а cost на 17 (величину константы NEXT). Все вычисления осуществляются в спецификации цикла for. Применение операции "запятая" не ограничено только циклами for но именно в них она используется особенно часто. Операция обладает одним дополнительным свойством: при ее использовании гарантируется, что выражения, к которым она применяется (т. е. выражения, разделенные запятой), будут вычисляться слева направо. Поэтому переменная ounces будет инициализирована до переменной cost. В данном примере это не имеет значения, но порядок инициализации мог бы оказаться существенным, если выражение, соответвующее cost, содержало бы переменную ounces. Символ "запятая" также используется как разделитель. Поэтому запятые в операторах: char ch, date;

  


                                                            РИС. 8.4. Операция "запятая" и цикл for

ИЛИ

printf(" %d  %d\n", chimps, chumps);

являются разделителями, а не знаками операции "запятая".

Резюме: наши новые операции

I. ОПЕРАЦИЯ ПРИСВАИВАНИЯ

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

+=  прибавляет величину п.ч. к переменной л.ч.

-=  вычитает величину п.ч. из переменной л.ч.

*=  умножает неременную л.ч. на величину п.ч.

/=  делит переменную л.ч. на величину п.ч.

%=  дает остаток от деления переменной л.ч. на величину и.ч.

ПРИМЕР:

rabbits *= 1.6; то же самое, что и rabbits * 1.6;

II. ДОПОЛНИТЕЛЬНЫЕ ОПЕРАЦИИ:ОПЕРАЦИЯ "ЗАПЯТАЯ"

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

Пример:

for(step == 2, fargo = 0; fargo < 1000; step *= 2)

    fargo + = step;

Философ Зенон и цикл for

     Посмотрим, как с помощью операции "запятая" можно разрешить старый парадокс. Греческий философ Зенон утверждал, что пущенная стрела никогда не достигнет цели. Сначала, говорил он, стрела пролетит половину расстояния до цели. После этого ей останется пролететь половину всего расстояния, но сначала она должна будет пролететь половину того, что ей осталось пролететь, и т. д. до бесконечности. Поскольку расстояние полета разбито на бесконечное число частей, для достижения цели стреле может потребоваться бесконечное время. Мы сомневаемся, однако, что Зенон вызвался бы стать мишенью для стрелы, полагаясь только на убедительность своего аргумента. Применим количественный подход и предположим, что за одну секунду полета стрела пролетает первую половину расстояния. Тогда за последующую 1/2 секунды она пролетит половину того, что осталось от половины, за 1/4 - половину того, что осталось после этого, и т д. Полное время полета представляется в виде суммы бесконечного ряда 1 + 1/2 + 1/4 + 1/8 + 1/16 -1- ... . Мы можем написать короткую программу для нахождения суммы первых нескольких членов.

/* Зенон*/

#define LIMIT 15

main ( )

{

int count;

float sum, x;

for(sum = 0.0, x = 1.0, count = 1; count <= LIMIT; count++, x *= 2.0)

{

 sum + = 1.0/x;


На Facebook В Твиттере В Instagram В Одноклассниках Мы Вконтакте
Подписывайтесь на наши страницы в социальных сетях.
Будьте в курсе последних книжных новинок, комментируйте, обсуждайте. Мы ждём Вас!

Похожие книги на "Язык Си - руководство для начинающих"

Книги похожие на "Язык Си - руководство для начинающих" читать онлайн или скачать бесплатно полные версии.


Понравилась книга? Оставьте Ваш комментарий, поделитесь впечатлениями или расскажите друзьям

Все книги автора M. УЭИТ

M. УЭИТ - все книги автора в одном месте на сайте онлайн библиотеки LibFox.

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

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

Отзывы читателей о книге "Язык Си - руководство для начинающих", комментарии и мнения людей о произведении.

А что Вы думаете о книге? Оставьте Ваш отзыв.