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


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

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

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

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

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

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

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

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

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



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





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

/* простоечисло1 */

main( )

{

int number, divisor;

printf(" О каком числе вы

      хотите знать, простое ли оно?\n");

scanf(" %d" , &number);        /* получение ответа */

while(number <2)       /* число отвергается */

{

       printf(" Извините, мы не принимаем чисел меньше 2.\n");

        printf(" Пожалуйста, попробуйте еще раз.\n");

        scanf(" %d" , &number);

}

for(divisor = 2; number % divisor != 0; divisor++);

 /* проверка, простое число или нет,

        осуществляется внутри спецификации цикла */

if (divisor == number) /* выполняется после завершения цикла */

        printf(" %d - простое число.\n", number);

else printf(" %d - не простое число.\n", number);

}

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

     Обратите внимание, что все вычисления выполняются внутри спецификации цикла for. Величина переменной number последовательно делится на возрастающие значения делителей до тех пор, пока не произойдет деление нацело (т. е. number % divisor станет равным 0). Если первым делителем, который приведет к такому результату окажется само это число, то значение переменной number - простое число. В противном случае данное число будет иметь меньший делитель, и это приведет к тому, что цикл завершится раньше.

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

для числа (number)=1 до верхнего предела limit проверять, является ли число

 простым

Вторая строка представляет собой нашу предыдущую программу.

Переводя эту запись на язык Си, получим программу:

/* простыечисла2 */

main( )

{

int number, divisor, limit;

int count = 0;

 printf(" Укажите, пожалуйста, верхний предел для поиска простых чисел.\n");

printf(" Верхний предел должен быть 2 или больше.\n");

scanf(" %d", &limit);

while(limit < 2) /* вторая попытка, если ошибка при вводе */

{

       printf(" Вы были невнимательны! Попробуйте еще раз. \n");

        scanf(" %d", &limit);}printf(" Сейчас будут печататься простые числа!\n");

for(number = 2; number <= limit; number++) /* внешний цикл*/

{

  for(divisor =2; number % divisor != 0; divisor++);

   if(divisor == number)

        {

 printf(" %5d", number);

          if(++count % 10 == 0)

               printf(" \n"); /* новая строка начинается

                                      через каждые 10 простых чисел */

        }

}

printf(" \n Вот и все!\n");

}

     Во внешнем цикле каждое число, начиная с 2 и кончая величиной limit, последовательно берется для проверки. Указанная проверка осуществляется во внутреннем цикле. Мы использовали переменную count для хранения счетчика получаемых простых чисел. При печати каждое одиннадцатое простое число мы начинаем с новой строки. Ниже приводится пример результатов, получаемых с помощью такой программы:

Укажите, пожалуйста, верхний предел для поиска простых чисел.

Верхний предел должен быть 2 или больше.

250

Сейчас будут печататься простые числа!

 2     3      5     7    11    13   17    19  23    29

 31   37    41    43   47    53   59    61 67     71

 73   79    83    89   97   101  103  107        109  113

127  131  137  139  149  151  157  163        167  173

179  181  191  193  197  199  211  223        227  229   233  239  241

Вот и все!

ДРУГИЕ УПРАВЛЯЮЩИЕ ОПЕРАТОРЫ: break, continue, goto

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

break:

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

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

while((ch = getchar( ))!= EOF)

{

        if(ch == '\n') break;

        putchar(ch);

}

     Мы сделаем логику этого фрагмента программы более понятной, если объединим обе проверки в одном выражении:


while((ch = getchar( )) != EOF && ch != '\n') putchar(ch);


Если вы обнаружите, что break является частью оператора if, посмотрите, нельзя ли по-другому выразить это условие (как мы только что сделали), чтобы необходимость его использования отпала.  

continue:

     Этот оператор может использоваться во всех трех типах циклов, но не в операторе switch. Как и в случае оператора break, он приводит к изменению характера выполнения программы. Однако вместо завершения работы цикла наличие оператора continue вызывает пропуск "оставшейся" части итерации и переход к началу следующей. Заменим оператор break в последнем фрагменте на continue:

while((ch = getchar( ))!==EOF)

{

 if(ch == '\n')

        continue;

  putchar(ch);

 }

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

Этот фрагмент, конечно, более компактно можно записать следующим образом:

while((ch=getchar( ))!= EOF)

        if(ch != '\n') putchar(ch);

     Очень часто, так же как и в данном случае, изменение условия в операторе if на обратное позволяет исключить необходимость введения в цикл оператора continue.

     С другой стороны, оператор continue помогает иногда сократить некоторые программы, особенно если они включают в себя вложенные операторы if else.  

goto:

     Оператор goto - одно из важнейших средств Бейсика и Фортрана - также реализован и в Си. Однако на этом языке в отличие от двух других можно программировать, совершенно не используя указанное средство. Керниган и Ритчи считают оператор goto "чрезвычайно плохим" средством и предлагают "применять его как можно реже или не применять совсем".

     Сначала мы покажем, как его использовать, а затем объясним, почему этого нe нужно делать.


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

goto pait2;

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


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

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

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


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

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

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

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

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

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

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