Главная Обратная связь

Дисциплины:






Цикл с постусловием do - while.



Цикл со счетчиком.

Циклы со счетчиком составляют класс циклов, в которых выполнение повторяющихся операторов (тела цикла) должно повторяться заранее определенное число раз. В языке C# для этих целей имеется специальная конструкция.

Общая форма записи цикла со счетчиком

for (i = A; i <= B; i++) { . . . }

 

for (i = A; i >= B; i--) { . . . }

Здесь переменная i - управляющая переменная или переменная цикла,

А - начальное значение переменной цикла,

В - конечное значение переменной цикла.

При переходе к обработке оператора цикла for управляющей переменной присваивается заданное начальное значение. Затем в цикле выполняется исполнительный оператор (или тело цикла). Каждый раз при выполнении тела цикла управляющая переменная увеличивается на 1 (для i++) или уменьшается на 1 (для i--). Цикл завершается при достижении управляющей переменной своего конечного значения.

Например,

Int i;

for (i = 1; i <= 5; i++)

Console.WriteLine(i); //тело цикла - всего один

//оператор и скобки {} не нужны

/*напечатается

5 */

for (double j = 3.2+0.6; j > 2.1; j=j-0.3) //переменная j

Console.WriteLine(j);//локальна только для цикла

/*напечатается

3.8

3.5

3.2

2.9

2.6

2.3

*/

Цикл с предусловием (цикл while, цикл «Пока»).

Циклы с предусловием используются тогда, когда выполнение цикла связано с некоторым логическим условием. Оператор цикла с предусловием имеет две части: условие выполнения цикла и тело цикла.

При выполнении оператора while определенная группа операторов выполняется до тех пор, пока определенное в операторе while булево условие истинно. Если условие сразу ложно, то оператор не выполнится ни разу.

Общая форма записи и блок схема цикла с предусловием следующая

while (<булево выражение>) { группа операторов }

На русском языке это звучит примерно так:

пока выполняется это условие делай
от начала
группа операторов
до конца;

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

При использовании цикла с предусловием надо помнить следующее:

  1. значение условия выполнения цикла должно быть определено до начала цикла;
  2. если значение условия истинно, то выполняется тело цикла, после чего повторяется проверка условия. Если условие ложно, то происходит выход из цикла;
  3. хотя бы один из операторов, входящих в тело цикла, должен влиять на значение условия выполнения цикла, иначе цикл будет повторяться бесконечное число раз.

Пример задачи суммирования некоторого количества чисел:



До тех пор, пока логическое выражение i<=n равно TRUE, выполняется тело цикла - запрос очередного числа и его суммирование. При i=7 (7<=6) значение этого условия равно False, а значит тело цикла выполняться не будет. Цикл закончил свою работу.

Цикл с постусловием do - while.

Иногда при решении задач возникает необходимость выполнить тело цикла хотя бы один раз, а потом исследовать условие повторять ли его еще раз. Эту задачу выполнит другой вид цикла do - while.

do //повторяй

{
операторы
}

while (<условие>);// до тех пор, пока условие верно

Конструкция do - while работает аналогично циклу while. Различие заключается в том, что цикл while проверяет условие до выполнения действий, в то время как do - while проверяет условие после выполнения действий. Это гарантирует хотя бы одно выполнение действий до завершения цикла. В данном случае условие является условием завершения цикла

Пример 2. Составить программу для игры «Угадай число». Компьютер случайным образом «загадывает» число из интервала от 1 до 20, а пользователь пытается его угадать. Когда число угадано, компьютер выводит на экран сообщение, сколько попыток понадобилось для угадывания числа.

Пример 3. Определить, является ли введенное число простым (простым называется число, которое не имеет делителей кроме 1 и самого себя).

Алгоритм решения этой задачи будет следующий. При помощи операции % проводим проверку всех целых чисел от 2 до введенного числа Number . Мы проверяем является ли очередное проверяемое число делителем нашего числа (значит, остаток от деления введенного числа на проверяемое число равен нулю). Если такой делитель найден, значит, цикл досрочно завершает свою работу на некотором i-том шаге. Если делитель не найден, значит цикл проверил все числа и значение переменной цикла i будет равно конечному значению, т.е. Number. Поэтому, после записи цикла следует анализ значения переменной i и выводится соответствующее сообщение.

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

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

Контрольные задания:

Задание 1.

1. Напечатать таблицу перевода температуры из градусов по шкале Цельсия (С) в градусы по шкале Фаренгейта (F) для значений от 15°С до 30°С с шагом 0,5 °С (перевод осуществляется по формуле F=1,8C+32)

2. Напечатать таблицу соответствия между весом в фунтах и весом в кг для значений от 1 до 10 фунтов с шагом 0,5 фунт ( 1 фунт=400г)

3. Напечатать таблицу перевода расстояний в дюймах в сантиметры для значений от 1 до 10 дюймов с шагом 0,5 дюйм ( 1 дюйм=2,54 см)

4. Напечатать таблицу перевода расстояний из км в морские мили для значений от 1 до 10 км с шагом 0,5 км ( 1 м. миля=1,825 км)

5. Напечатать таблицу перевода расстояний из км в морские мили для значений от 1 до 10 км с шагом 0,5 км ( 1 м. миля=1,825 км)

6. Напечатайте таблицу значений функции y=2sin(x) для всех значений x от 0 до 10 с шагом 1

7. Напечатать таблицу соответствия между весом в фунтах и весом в кг для значений от 10 до 1 фунта с шагом 0,5 фунт ( 1 фунт=400г)

8. Напечатать таблицу перевода расстояний в дюймах в сантиметры для значений от 10 до 1 дюйма с шагом 0,5 дюйм ( 1 дюйм=2,54 см)

9. Напечатать таблицу перевода расстояний из км в морские мили для значений от 1 до 10 км с шагом 0,5 км ( 1 м. миля=1,825 км)

10. Напечатайте таблицу значений функции y=2sin(x) для всех значений x от 0 до 10 с шагом 0,5

 

Задание 2.

1.Ежегодный прирост рыбы в пруду составляет 15%. Запасы рыбы оценены в А тонн. Ежегодный план отлова В тонн. Наименьший запас рыбы, ниже которого запас уже не восстанавливается, составляет С тонн. Составьте алгоритм и программу, подсчитывающую, сколько лет можно выдерживать заданный план?

2. Начальный вклад в сберкассу составил А рублей. Через сколько лет он станет больше В рублей? (Каждый год вклад увеличивается на N%).

3.Леспромхоз ведет промышленную заготовку древесины. Ежегодный план составляет N м3. За год лес естественным путем прирастает на 2,5%. Сколько лет сможет вести работу леспромхоз, если запасы леса на данный момент составляют 150000 м3? Каким должен быть план, чтобы древесины хватило на 100 лет работы?

4.Начав тренировки, лыжник в первый день пробегал 10 км. Каждый следующий день он увеличивал длину пробега на 10% от предыдущего дня. Определить в какой день он пробежит больше 20 км, в какой день суммарный пробег за все дни превысит 100 км.

5.Определить число месяцев, через которое начальная сумма вклада в банк увеличится более чем в три раза. Процентная ставка равна 1,5% в месяц. Программа выводит на экран ежемесячное значение конечной суммы.

6.Начав тренировки, спортсмен в первый день пробежал 3км. Каждый следующий день он увеличивал дневную норму на 10%. Через сколько дней общий суммарный пробег составит не менее 100 км?

Распечатать таблицу тренировок в следующем виде:

1 день пробежал 3 км

2 день пробежал … км

………………………..

… день пробежал … км

Значения пробега вывести не более 2х знаков после запятой.

 

7.Патентованное средство для похудания гарантирует потерю 1% веса за день. Вес больного вводится с клавиатуры. Сколько дней придется лечиться больному, чей вес составляет 140 кг, а он желает весить не более 75?

Распечатать таблицу лечения в следующем виде:

1 день вес … кг

2 день вес … кг

………………………….

… день вес … кг

Значения веса вывести не более 2х знаков после запятой.

 

8.При остывании электропечи каждые 2 минуты температура уменьшается на 10% от максимальной температуры перед выключением. Сколько минут придется остывать до комнатной температуры (25 гр) печи, нагретой до 140 градусов

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

0 мин - … гр

2 мин - … гр

……………….

… мин - …гр.

Значения температур выводить с точностью 2 знака после запятой.

9.Ученик решил, что в первый день занятий китайским языком он выучит 5 новых слов. Каждое следующее занятие он будет запоминать на 2 слова больше. Через сколько дней ученик будет знать не менее 300 слов? Напечатать таблицу количества заучивания слов на эти занятия. Распечатать таблицу в следующем виде:

1 занятие - 10 новых слов, всего 10 слов

2 занятие - … новых слов, всего …слов

…………………………………………….

… занятие - … новых слов, всего … слов.

 

10.При включении реостата в электрическую цепь напряжение плавно понижается на 15% от текущего каждую минуту. Через сколько минут напряжение упадёт до уровня 5в?. Распечатать таблицу в следующем виде:

0 мин – 220 В

1 мин - … В

……………….

… мин - …В.

Значения напряжений выводить с точностью 2 знака после запятой.

 





sdamzavas.net - 2017 год. Все права принадлежат их авторам! В случае нарушение авторского права, обращайтесь по форме обратной связи...