Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь 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; просмотров: 707; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.219.127.59 (0.01 с.) |