Умный дом

Циклы

Циклы выполняют выражения или блоки выражений до тех пор, пока выражение условия не становится истинным. Наша программа требует двух циклов (один вложен в дру­гой). Пока пользователь желает угадывать последовательно­сти:

{ выводить на дисплей последовательности

Пока догадка неверна, а пользователь желает угадать еще

Раз}

Цикл while в С++ вполне подходит для нашей цели:

Bool next_seq = true; // показать следующую последовательность?

Bool go_for_it = true; // пользователь хочет продолжить угадывание?

Bool got_it = false; // пользователь угадал?

Int num_tries = 0; // количество попыток

Int num_right = 0; // количество правильных ответов

While (next_seq == true){

11 вывести на дисплей последовательность для пользователя while ((got_.it == false) && (go_for_.it == true)) { int usr_guess; сіп » usr_guess; num_tries++;

If (usr_guess == next_elem) { got_it = true;

Num_cor++; }

Else {

// пользователь не угадал // сказать, что ответ неверен // спросить, еще угадываем?

If (usr_rsp == "N" И usr_rsp == V) go_for_it =

False;

}

} // конец вложенного цикла while cout « "Want to try another sequence? (Y/N) " char try_again; cin » try-again;

If (try_again == "N" II try_again == "n")next_seq = false;

) // конец while(next_seq == true)

Цикл while начинается с вычисления выражения условия в круглых скобках. Если оно истинно, выражение или блок выражений, следующий за циклом while, выполняется. Пос­ле выполнения выражения (блока) выражение условия об­новляется. Этот цикл обновления/выполнения продолжает­ся, пока условие не станет ложным. Обычно некоторое условие внутри исполняемого блока устанавливает условное выражение в состояние false. Если выражение условия ни­когда не становится ложным, мы говорим, что ошибочно попали в бесконечный цикл.

Наш внешний цикл while выполняется, пока пользова­тель не скажет, что хочет остановиться:

Bool next_seq = true;

While (next_seq == true) { // ...

If (try_again == "N" II try_again == "n")next_seq = false;

Где при инициализации next__seq в false блок выражений не будет выполняться. Вложенный цикл while позволяет пользователю выполнять множество аналогичных попыток.

Цикл может быть прерван внутри выполняемого блока выполнением выражения break. В следующем фрагменте кода цикл while выполняется, пока tries__cnt не станет рав­но max_tries. Однако если пользователь дает правильный ответ, цикл прерывается выражением break:

Int max_tries = 3; int tries_cnt = 0;

While (tries_cnt < max_tries){ // прочитываем попытку пользователя if (usr_guess == next_elem) break; // прерываем цикл tries_cnt++;// more stuff

}

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

String word; const int min_size = 4; while (cin » word) { if (word. size() < min_size) // прерываем этот цикл continue;

// попадаем сюда, только если слово // больше или равно min-size... process_text(word);}

Если слово меньше min_size, выполняется выражение continue. Результатом выполнения выражения continue яв­ляется прерывание текущего прохождения цикла. Остаток тела цикла while (в данном случае - process_text ()) не вы­полняется. Вернее, цикл начинается заново, с новым вычис­лением условия, которое прочитывает другое значение стро­ки в word. Если word больше или равно min__size, полное тело цикла выполняется. В этом случае все слова, имеющие боль­ше четырех букв, отбрасываются.

Умный дом

Две полезные схемы

Первая схема относится к настенному выключателю, работа­ющему по протоколу XI0. Что полезного можно почерпнуть из этой схемы? Например, организацию сканирования сети и управления триаком. Схему я привожу, как она сохранилась …

Как использовать массивы и векторы

Ниже приведены первые восемь элементов из шести число­вых последовательностей: Fibonacci: 1, 1, 2, 3, 5, 8, 13, 21 Lucas: 1# 3, 4, 7, 11, 18, 29, 47 Pell: 1, 2, …

Разветвитель видеосигнала

Подключение бытовой аудиоаппаратуры к системе, думаю, не вызовет затруднений. Даже к линейному выходу музыкального центра или видеомагнитофона можно параллельно вклю­чить несколько приемников (телевизоров или управляемых усилителей) без заметного ухудшения качества …

Как с нами связаться:

Украина:
г.Александрия
тел. +38 05235 7 41 13 Завод
тел./факс +38 05235  77193 Бухгалтерия
+38 067 561 22 71 — гл. менеджер (продажи всего оборудования)
+38 067 2650755 - продажа всего оборудования
+38 050 457 13 30 — Рашид - продажи всего оборудования
e-mail: msd@inbox.ru
msd@msd.com.ua
Скайп: msd-alexandriya

Схема проезда к производственному офису:
Схема проезда к МСД

Представительство МСД в Киеве: 044 228 67 86
Дистрибьютор в Турции
и странам Закавказья
линий по производству ПСВ,
термоблоков и легких бетонов
ооо "Компания Интер Кор" Тбилиси
+995 32 230 87 83
Теймураз Микадзе
+90 536 322 1424 Турция
info@intercor.co
+995(570) 10 87 83

Оперативная связь

Укажите свой телефон или адрес эл. почты — наш менеджер перезвонит Вам в удобное для Вас время.