![]() Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву ![]() Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Урок 8. Другие операторы циклаСодержание книги
Похожие статьи вашей тематики
Поиск на нашем сайте
Цикл с условием (while) Очень часто заранее невозможно сказать, сколько раз надо выполнить какую-то операцию, но можно определить условие, при котором она должна заканчиваться. Такое задание на русском языке может выглядеть так: делай эту работу до тех пор, пока она не будет закончена (пили бревно, пока оно не будет распилено; иди вперед, пока есть время). Слово пока на английском языке записывается как while, и так же называется еще один вид цикла. while(условие) Мы видим, что внешний вид этого цикла проще, чем цикла с параметром (for). Циклом управляет всего одно условие, которое записано в заголовке после слова while в круглых скобках. Сразу возникает вопрос: зачем столько разновидностей циклов и в каких задачах их использовать? Вернемся к примеру предыдущего урока: вывести на экран три раза приветствие. Попробуем его реализовать с помощью цикла while. #include<stdio.h> Результат этой программы будет точно такой же, как и для цикла for из Урока 7, но код длиннее, и, очевидно, неудобней. Когда же лучше while?
Рассмотрим простой пример. #include<stdio.h> В этой программе не очень удобным моментом является то, что требуется до цикла задать начальное значение N, иначе значение этой переменной будет неопределенно ("мусор"), и нет гарантии, что в этой ячейке не ноль, и цикл даже на начнется. Другими словами, здесь более удобен цикл, в котором тело выполнятся хотя бы один раз. Такую работу сможет сделать цикл с постусловием. Цикл с постусловием (do — while) Цикл с постусловием проверяет условие не в начале, а в конце. Общий вид этого оператора: do Видно, что прежде чем добраться до проверки условия, предварительно надо выполнить тело цикла. Этот цикл, как и предыдущий, продолжается, пока условие остается истинным. Если условие неверно с самого начала, то цикл с постусловием выполнится один раз. Наш предыдущий пример будет выглядеть красивее: #include<stdio.h> Цикл с постусловием часто применяют для обеспечения контроля ввода. do
Резюме Операторы while и do - while используются для организации циклов, когда числом повторений заранее неизвестно. Циклом управляет только логическое условие. Тело цикла while может ни разу не выполниться, цикл do - while выполнится по крайней мере один раз. Вопросы для самопроверки 1. В каких случаях используется оператор цикла с условием?
Задания для самостоятельной работы к уроку 8 1. С помощью цикла while запишите программу табулирования функции (см. задания 6, 7, 8, 9, 10 Урока 7).
Урок 9. Интересные задачи с целыми числами Целочисленное деление С целочисленными и вещественными данными все операции выполняются одинаково, кроме деления. При выполнении арифметических операций действует правило: если операнды одного типа, то результат операции этого же типа. Если умножаем два целых числа - результат тоже целое число. Если делим одно вещественное число на другое, то и частное тоже вещественное число (то есть содержит целую и дробную часть). Распространяя это правило на операцию деления целых чисел, можно прийти к заключению: если целое делим на целое, результат тоже целое. Дробная часть просто отбрасывается. Таким образом, имея описание переменных и действия: int n,m k; получим, что k=2 (поскольку при "обычном" делении 10/4=2,5). Это свойство целочисленного деления используется в разнообразных алгоритмах с целыми числами. Рассмотрим одну такую задачу: #include<stdio.h> В этой программе в тело цикла мы поставили оператор печати промежуточных результатов с тем, чтобы наглядно увидеть, как работает программа: printf("N=%d count=%d\n", N, count); Пусть при выполнении было введено число 68792. Тогда протокол (порядок действий) работы программы следующий: Введите число Кстати, в этой программе использовали один из приемов отладки программ: промежуточную печать. Оператор printf() можно ставить в любой точке программы, где мы не совсем уверены в промежуточных результатах.
Остаток от деления Остается открытым вопрос: окончательно ли пропадает остаток от деления. А вот и нет. Существует специальная операция, похожая на деление (в том смысле, что она тоже является операцией деления), но результат которой как раз и есть остаток от деления. Эта операция обозначается знаком процента % и применяется только для целочисленных переменных. int n,m, k; В результате операции получим остаток от деления k=2, т.к. 10-8=2. Операцию целочисленного деления применяют в разных целочисленных алгоритмах. Она удобна, если надо, например, из десятичного числа выделить последнюю цифру. В этом случае достаточно число нацело разделить на 10, остаток будет принадлежать диапазону от 0 до 9. С помощью совместного использования обеих операций целочисленного деления можно реализовать много алгоритмов. Попробуем, например, "растащить" трехзначное число на отдельные цифры. Алгоритм рассмотрим на примере. #include<stdio.h> Для произвольного натурального числа сложность применения этого алгоритма в том, что мы заранее не знаем, сколько в нем цифр (разрядов), т.е. сколько отдельных ячеек понадобится. Для таких задач в языке Си есть структуры данных, которые называются массивы. Но мы пока можем обойтись без них. А вот сумму цифр любого целого числа найти можно и без массива. Для этого понадобится цикл типа while (почему?) и еще одна ячейка, в которой будем накапливать сумму. Фрагмент программного кода следующий:
int N, n; // N - число, n - рабочая переменная Во второй строчке кода отводится память под переменную S и тут же выполняется присваивание. Такой прием называется инициализация переменных. Занести в ячейку ноль, в которой накапливается сумма, обязательно (а почему?). Заодно подумаем, как инициализировать ячейку, если в ней накапливать произведение? Совершенно верно, единицей.
|
||||||||
Последнее изменение этой страницы: 2016-04-07; просмотров: 719; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.97.9.174 (0.013 с.) |