Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562

Как по-русски обозвать целиком эту конструкцию?

23.05.2012, 13:37. Показов 2164. Ответов 28
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ту что в круглых скобках в операторе for?
C++
1
2
3
4
for (i=0; i<n; ++i)
{
 cout<<i;
}
В фигурных скобках - тело, вся первая строка - заголовок. А то, что в круглых скобках целиком, но без самого оператора for? Я циклом пользоваться умею, мне нужна только формулировка, как он пишется.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.05.2012, 13:37
Ответы с готовыми решениями:

Как обозвать эту величину?
switch (c). Как обозвать величину c? Семантику её я знаю, меня интересует именно как она называется.

Как по-русски обозвать назначение члена?
typedef struct _CONSOLE_SELECTION_INFO { DWORD dwFlags; COORD dwSelectionAnchor; SMALL_RECT srSelection; }...

Английский язык. Как правильно перевести эту странную конструкцию
В первый раз встречаю такую конструкию: &quot;... has got me by my soul to squeeze.&quot; Полный контекст: &quot;I've got a bad disease ...

28
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
23.05.2012, 18:53  [ТС]
Студворк — интернет-сервис помощи студентам
Совсем уж направление цикла он не меняет, а замена сравнения с числом на вычитание с последующим сравнением с нолём - это тормоза, возвращающиеся через окно. Так что речь не о том, что его надо перехитрить, а о том, что можно вручную облегчить ему задачу. А он иногда и может соптимизировать до сравнения с нолём циклы вида
C++
1
for (i=N; i>=1; --i)
, так не особо и важно, кто заменит i>=1 на i>0, сама же оптимизация та же.

Добавлено через 2 минуты
Цитата Сообщение от Deviaphan Посмотреть сообщение
от это весь код, который описывает реализацию факториала с инкрементом
; *Компилятору хватило мозгов всё вычислить в compile-tme
; *Всего дона операция - помещение результата в регистр EAX
Ну и ну! Всё посчитать на этапе компиляции? Ты серьёзно? А если
C++
1
2
cin>>n;
cout<<factorial(n);
? Лепим таблицу? Не всегда это разумно.
0
Делаю внезапно и красиво
Эксперт С++
 Аватар для Deviaphan
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
23.05.2012, 18:56
Цитата Сообщение от taras atavin Посмотреть сообщение
А он иногда и может соптимизировать до сравнения с нолём циклы вида
Ты прочитал, что я пометил в *****************?
Вариант с инкрементом компилятор САМОСТОЯТЕЛЬНО высчитал в процессе компиляции и просто вписал в код результат. Цикл заменился на помещение в регистр константы. Всё! Оптимальнее некуда.


Цитата Сообщение от taras atavin Посмотреть сообщение
кто заменит i>=1 на i>0, сама же оптимизация та же
Тогда уж давай удалим лишний цикл и напишем цифру 2.)

Добавлено через 1 минуту
Цитата Сообщение от taras atavin Посмотреть сообщение
Всё посчитать на этапе компиляции?
Я привёл для конкретного примера со статическим заданием числа. Этот пример разбил твоё утверждение о том, что декремент эффективнее.
С неизвестным числом код не столь красивый, не спорю.
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
23.05.2012, 18:58  [ТС]
Цитата Сообщение от Deviaphan Посмотреть сообщение
Ты прочитал, что я пометил в *****************?
Вариант с инкрементом компилятор САМОСТОЯТЕЛЬНО высчитал в процессе компиляции и просто вписал в код результат. Цикл заменился на помещение в регистр константы. Всё! Оптимальнее некуда.
Когда аргумент один и известен на этапе компиляции, то функция не нужна вовсе, можно заранее почитать и вручную подставить готовое значение. А если сам аргумент получаем в рантайме? Так что читать не умеешь ты.

Добавлено через 1 минуту
Цитата Сообщение от Deviaphan Посмотреть сообщение
Тогда уж давай удалим лишний цикл и напишем цифру 2.)
Кто сказал, что именно 2? И почему он вдруг лишний?

Добавлено через 52 секунды
Цитата Сообщение от Deviaphan Посмотреть сообщение
Я привёл для конкретного примера со статическим заданием числа. Этот пример разбил твоё утверждение о том, что декремент эффективнее.
С неизвестным числом код не столь красивый, не спорю.
Этот пример не имеет смысла, так как функции для этого вообще не предназначены. Функция нужна, когда её параметры заранее не известны, а тогда её нельзя свести к константе.
0
Делаю внезапно и красиво
Эксперт С++
 Аватар для Deviaphan
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
23.05.2012, 19:01
Цитата Сообщение от taras atavin Посмотреть сообщение
Кто сказал, что именно 2? И почему он вдруг лишний?
Это сказали законы математики. Умножать на 1 не рационально.

Добавлено через 2 минуты
Цитата Сообщение от taras atavin Посмотреть сообщение
Этот пример не имеет смысла, так как функции для этого вообще не предназначены.
Ну ка поясни, что в примере не так? И как сделать, чтобы в нём был смысл?
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
23.05.2012, 19:05  [ТС]
Цитата Сообщение от Deviaphan Посмотреть сообщение
Это сказали законы математики. Умножать на 1 не рационально.
Ты про факториал двойки что ли?
C++
1
2
3
4
for (/*начальное n==10*/; n>0; --n)
{
 r*=n;
}
на самом деле r==3628800, заменяем на 2 и получаем 2. Умножение на 1 и на все числа от 1 до 10 - далеко не одно и то же. Почему ты думаешь, что все циклы лишние? Из математики это не следует.

Добавлено через 1 минуту
Цитата Сообщение от Deviaphan Посмотреть сообщение
Ну ка поясни, что в примере не так? И как сделать, чтобы в нём был смысл?
То, что ты заменил функцию переменной функцией константы, которая сама есть константа. Из-за одного значения функции не пишут.
0
Делаю внезапно и красиво
Эксперт С++
 Аватар для Deviaphan
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
23.05.2012, 19:07
Цитата Сообщение от taras atavin Посмотреть сообщение
Почему ты думаешь, что все циклы лишние?
Не правильно выразился. Одна итерация лишняя, а не один цикл. Условие n > 0 и n > 1 равнозначны в контексте этого алгоритма.

Добавлено через 1 минуту
Цитата Сообщение от taras atavin Посмотреть сообщение
заменил функцию переменной функцией константы, которая сама есть константа.
Это какая-то мантра, да? Я что-то совсем после слова "заменил" больше ничего не понял.
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
23.05.2012, 19:26  [ТС]
Цитата Сообщение от Deviaphan Посмотреть сообщение
Не правильно выразился. Одна итерация лишняя, а не один цикл. Условие n > 0 и n > 1 равнозначны в контексте этого алгоритма.
Ну вообще то я всегда факториал пишу
C++
1
2
3
4
5
6
r=1;
for (i=2; i<=x; ++i)
{
 r*=i;
}
return r;
. Но во-первых факториал был приведён, как пример цикла, перебирающего не массив. С этим спорить не будешь? Если перебирать все значения, то лучше сранивать с нолём, но может быть лучше сократить число итераций. Что получаем? Получаем на одно сравнение меньше, на один декремент меньше, на один переход меньше и на одно умножение меньше. Минус 4 операции. Но на каждой оставшейся итерации одна операция медленнее. Я не заморачиваюсь сравнением, где больше экономия времени. Да и у факториала цикл всегда с малым числом итераций. Было бы их много, лучше один раз умножить на 1. А так не знаю и выяснять не пытаюсь, так как смысла в этом не много. Тесты, кстати, не зря придуманы. Но занимается ли ими компилятор? Сомневаюсь. И я ведь не спроста упомянул, что предел цикла может совпадать с параметром и у других функций. Для некоторых из них и последняя итерация может иметь смысл, а само число итераций измеряться миллиардами и даже триллионами. Просто чтоб не искать и не сочинять настоящую функцию была взята другая с одним совпадающим свойством. А ты зачем то подменяешь неизвестный параметр константой и мухлюешь с прямым присваиванием ответа.
Цитата Сообщение от Deviaphan Посмотреть сообщение
Это какая-то мантра, да? Я что-то совсем после слова "заменил" больше ничего не понял.
У тебя здравый смысл остался? Или только водка? Функция от константы есть константа и считать её не надо. В одном проекте был вообще цикл перебора порядка аппроксимации. Один из пределов был равен единице, но я сейчас не скажу направление цикла.
0
Делаю внезапно и красиво
Эксперт С++
 Аватар для Deviaphan
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
23.05.2012, 19:27
Цитата Сообщение от taras atavin Посмотреть сообщение
Но занимается ли ими компилятор? Сомневаюсь.
Зря сомневаешься. Занимается. Называется это PGO.


Цитата Сообщение от taras atavin Посмотреть сообщение
Но на каждой оставшейся итерации одна операция медленнее.
Негоодяй. Такой кайф мне обломал. Я уже хотел начать тебя троллить, что заменив 0 на 1 на каждой итерации цикла будет выполняться на одну операцию больше, а ты взял и обломал меня. Я плакать.


Цитата Сообщение от taras atavin Посмотреть сообщение
и мухлюешь с прямым присваиванием ответа.
Это не я. Он сам.
0
Заблокирован
23.05.2012, 19:31
Настройки цикла.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.05.2012, 19:31
Помогаю со студенческими работами здесь

Как обозвать ошибку?
Доброго всем. Ситуация такая - есть сайт на Wordpress, размещен на хостинге 101damain.com - хостинг гавно, знаю. На сайте...

Как обозвать метод?
Класс TDirectory (каталог) имеет метод, делающий каталог по указателю this текущим. Как обозвать этот метод? Реализовать я его реализовал,...

Как обозвать курсовик?
Сделал &quot;личный органайзер&quot; с тайм-менеджерскими штучками. Название &quot;личный органайзер&quot; не очень устраивает преподавателя. Подскажите...

Как обозвать функцию?
Есть родительское окно, функция примает минимальные WindowRactagleы, его дочерних окон и ClientRectagle родительского окна и пересчитывает...

Как обозвать в c# строковый параметр из реестра (По умолчанию)?
Добрый день. Как записан этот параметр в c# ? Есть некий код: public static string Recovery() { ...


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

Или воспользуйтесь поиском по форуму:
29
Ответ Создать тему
Новые блоги и статьи
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru