Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 14.11.2018
Сообщений: 135

Цикл от 0 до n без ветвления

10.10.2023, 13:17. Показов 2658. Ответов 42

Студворк — интернет-сервис помощи студентам
Есть цикл while(true), counter = 0, additive - шаг и THRESHOLD - положительное число :
C++
1
2
3
4
while(true){
If(counter < THRESHOLD
counter+=additive;
}
Как можно заменить if внутри while, чтобы убрать ветвление, но чтоб код делал тоже самое?

C++
1
2
3
while(true){
...
}
Я пробовал такой способ, но логическое сравнение в машинном коде это тоже ветвление

C++
1
2
3
while(true){
counter += (counter < TRESHOLD)*additive;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.10.2023, 13:17
Ответы с готовыми решениями:

Цикл и конструкция ветвления
Суть кода такова что есть строки такого вида: qweaswqe@vvsd.ru:ewsvdfsfs qwfewqe@vvfsd.ru:ewsdfsfsf qdfwfewqe@hvvfsd.ru:ewsdfsfssf ...

Составление программ, содержащих цикл и ветвления
1. Изучить сведения о разработке программ разветвляющейся усложненной структуры, использовании манипуляторов форматированного вывода. ...

Как использовать цикл ветвления select case
Написал вот такой код могли бы вы подсказать ,ЧТО НЕ ТАК подчёркивает вот тут Case ByVal Function getprogram(ByVal val As String)...

42
0 / 0 / 0
Регистрация: 14.11.2018
Сообщений: 135
11.10.2023, 12:04  [ТС]
Студворк — интернет-сервис помощи студентам
В итоге: пример с
C++ (Qt)
1
counter+=(counter<THRESHOLD)*additive
работает из-за оптимизатора что есть в qt, так он не делает ветвления, но на практике такое мб не всегда.
А вот это то, что хотели:
C++ (Qt)
1
2
counter+=additive;
additive = ((uint32_t)(counter-THRRSHOLD))>>31;
Оказывается additive мб только 1 в этой задаче
0
place status here
 Аватар для gunslinger
3192 / 2227 / 640
Регистрация: 20.07.2013
Сообщений: 6,028
13.10.2023, 17:01
Еще одно "ветвление" (?):
C++
1
2
  for ( ; counter < THRESHOLD; counter += additive)
    ;
0
И тут вот те нате
322 / 209 / 117
Регистрация: 12.07.2016
Сообщений: 555
13.10.2023, 17:50
gunslinger, у вас решения не вписываются в начальную логику задачи. Там был бесконечный цикл, в котором на каждой итерации counter должен увеличиваться на additive. Не в первой итерации достигнуть значения TRESHOLD-additive < counter <= TRESHOLD, а последовательно за несколько циклов. Теперь for, что он даст? Внутреннего цикла быть не должно, а внешний должен быть бесконечным.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.10.2023, 17:50

Кратные числа без ветвления
Помогите пожалуйста решить задачку. Даны натуральные числа m и n. Получить все кратные им числа, не превышающие m*n. Условный оператор не...

Поиск максимума без алгоритма ветвления.
Задача состоит в том, что нужно найти максимум и минимум двух натуральных чисел, не используя алгоритм ветвления. Намекните хотя бы на...

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

Как корректно прервать цикл? (нюансы использования циклов, операторов ветвления и оператора break)
Здравствуйте! такая форма работает...цикл нормально прерывается for(double i=1; i&lt;=10; i++){ if(i==8) break; ...

Определить наибольшее из трех чисел без операторов ветвления
Как можно определить наибольшее из трех действительных чисел без операторов ветвления?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
43
Ответ Создать тему
Новые блоги и статьи
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru