Замысловатый цикл (любителям Duff's Device и т.п.)
От: Андрей Тарасевич Беларусь  
Дата: 16.02.07 07:05
Оценка: 262 (32) :))) :))) :))) :))) :))) :))) :))) :))) :))) :))) :))) :))) :))) :))) :))) :))) :))) :))) :))) :))) :))) :))) :))) :))) :)
Цикл оформленный нижеприведенным образом не только поможет вашему коду выглядеть более профессионально, но еще и заставит 'break' и 'continue' в теле цикла работать одинаково (при условии совпадения условий). Разумеется, при этом следует использовать в теле цикла как 'break', так и 'continue', изо всех сил делая вид, что в выборе того или другого есть какая-то логика (например, снабжать их комментариями типа '/* здесь — именно 'break', а не 'continue'!!! */').

do while (<условие>) {
  /* тело цикла */
} while (<условие>);




18.02.07 14:10: Перенесено из 'C/C++'
Best regards,
Андрей Тарасевич
Re: Замысловатый цикл (любителям Duff's Device и т.п.)
От: Аноним  
Дата: 16.02.07 07:25
Оценка:
Здравствуйте, Андрей Тарасевич, Вы писали:

АТ>
АТ>do while (<условие>) {
АТ>  /* тело цикла */
АТ>} while (<условие>);
АТ>


Фигасе. А если условия разные? Тогда break и continue будут работать по-разному. Сразу и не сообразишь...
А разве после do не требуется скобка даже если в цикле один оператор?
Re[2]: Замысловатый цикл (любителям Duff's Device и т.п.)
От: Андрей Тарасевич Беларусь  
Дата: 16.02.07 07:47
Оценка:
Здравствуйте, Аноним, Вы писали:

АТ>>
АТ>>do while (<условие>) {
АТ>>  /* тело цикла */
АТ>>} while (<условие>);
АТ>>


А>Фигасе. А если условия разные? Тогда break и continue будут работать по-разному. Сразу и не сообразишь...

А>А разве после do не требуется скобка даже если в цикле один оператор?

Нет, не требуется.
Best regards,
Андрей Тарасевич
Re[2]: Замысловатый цикл (любителям Duff's Device и т.п.)
От: jazzer Россия Skype: enerjazzer
Дата: 16.02.07 08:01
Оценка:
Здравствуйте, Аноним, Вы писали:

А>А разве после do не требуется скобка даже если в цикле один оператор?

Не требуется.
Можно вообще вот так написать:
int main()
{
   do while (1==0) do while (2==0);
      while (3==0);   while (4==0);
}

jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[2]: Замысловатый цикл (любителям Duff's Device и т.п.)
От: HiSH Россия http://m0riarty.ya.ru
Дата: 16.02.07 08:09
Оценка:
Здравствуйте, Аноним, Вы писали:

А>А разве после do не требуется скобка даже если в цикле один оператор?



Оффтоп. А еще можно вот так писать


void some_func(...)
try{
....}
catch (...){
}


Как говорят сторонники такого стиля — "экономим один индент" =)
Re[3]: Замысловатый цикл (любителям Duff's Device и т.п.)
От: vladpol Украина http://vlad-mislitel.livejournal.com/
Дата: 16.02.07 08:17
Оценка:
Здравствуйте, jazzer, Вы писали:

J>Здравствуйте, Аноним, Вы писали:


А>>А разве после do не требуется скобка даже если в цикле один оператор?

J>Не требуется.
J>Можно вообще вот так написать:
J>
J>int main()
J>{
J>   do while (1==0) do while (2==0);
J>      while (3==0);   while (4==0);
J>}
J>

J>)
Только надо ли ?
С уважением, Владислав Полищук
Re: Замысловатый цикл (любителям Duff's Device и т.п.)
От: Коваленко Дмитрий Россия http://www.ibprovider.com
Дата: 16.02.07 09:20
Оценка: +1 :))) :)))
Здравствуйте, Андрей Тарасевич, Вы писали:

АТ>
АТ>do while (<условие>) {
АТ>  /* тело цикла */
АТ>} while (<условие>);
АТ>

Тарасевич обкурился!
Довели человека
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
Re[3]: Замысловатый цикл (любителям Duff's Device и т.п.)
От: Roman Odaisky Украина  
Дата: 16.02.07 12:43
Оценка:
Здравствуйте, HiSH, Вы писали:

А>>А разве после do не требуется скобка даже если в цикле один оператор?


HSH>Оффтоп. А еще можно вот так писать


HSH>

HSH>void some_func(...)
HSH>try{
HSH>....}
HSH>catch (...){
HSH>}
HSH>


HSH>Как говорят сторонники такого стиля — "экономим один индент" =)


Вроде такой цикл, если стоит в main, ловит какие-то дополнительные исключения?

Вот в конструкторах это однозначно имеет смысл:
A::A(X const& x, Y const& y)
    try: x_(x), y_(y)
{
    . . .
}
catch(. . .)
{
    . . .
}
До последнего не верил в пирамиду Лебедева.
Re: Замысловатый цикл (любителям Duff's Device и т.п.)
От: Кодт Россия  
Дата: 16.02.07 16:32
Оценка: 1 (1) :))) :)))
Здравствуйте, Андрей Тарасевич, Вы писали:

<>
Капкан на индусов.
... << RSDN@Home 1.2.0 alpha rev. 655>>
Перекуём баги на фичи!
Re[2]: Замысловатый цикл (любителям Duff's Device и т.п.)
От: Коваленко Дмитрий Россия http://www.ibprovider.com
Дата: 16.02.07 16:52
Оценка: :))
Здравствуйте, Коваленко Дмитрий, Вы писали:

АТ>>
АТ>>do while (<условие>) {
АТ>>  /* тело цикла */
АТ>>} while (<условие>);
АТ>>

КД>Тарасевич обкурился!
КД>Довели человека

... Я только к вечеру понял как работает этот цикл. Дошел до необходимой кондиции
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
Re[2]: Замысловатый цикл (любителям Duff's Device и т.п.)
От: Андрей Тарасевич Беларусь  
Дата: 16.02.07 23:02
Оценка: :))) :))) :)))
Здравствуйте, Коваленко Дмитрий, Вы писали:

КД>Здравствуйте, Андрей Тарасевич, Вы писали:


АТ>>
АТ>>do while (<условие>) {
АТ>>  /* тело цикла */
АТ>>} while (<условие>);
АТ>>

КД>Тарасевич обкурился!
КД>Довели человека

По мотивам известного анекдота:

...
— Так ведь он не курит!!!
— Закуришь тут, когда даже константы времени компиляции, оказывается, могут менять свои значения.

Best regards,
Андрей Тарасевич
Re[3]: Замысловатый цикл (любителям Duff's Device и т.п.)
От: Коваленко Дмитрий Россия http://www.ibprovider.com
Дата: 17.02.07 10:01
Оценка:
Здравствуйте, Андрей Тарасевич, Вы писали:

КД>>Тарасевич обкурился!

КД>>Довели человека

АТ>По мотивам известного анекдота:


АТ>...

АТ>- Так ведь он не курит!!!
АТ>- Закуришь тут, когда даже константы времени компиляции, оказывается, могут менять свои значения.

Ну, в военное время, может происходить что угодно. Даже значение синуса может достигать четырех.
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
Re[3]: Замысловатый цикл (любителям Duff's Device и т.п.)
От: gid_vvp  
Дата: 17.02.07 12:23
Оценка:
АТ>По мотивам известного анекдота:

АТ>...

АТ>- Так ведь он не курит!!!
АТ>- Закуришь тут, когда даже константы времени компиляции, оказывается, могут менять свои значения.

АТ>


так вроде уже выяснили что это баги компиляторов
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[4]: Замысловатый цикл (любителям Duff's Device и т.п.)
От: Megabyte Россия  
Дата: 17.02.07 16:34
Оценка: :))
On Sat, 17 Feb 2007 13:01:49 +0500, Коваленко Дмитрий <84@users.rsdn.ru>
wrote:

> Ну, в военное время, может происходить что угодно. Даже значение синуса

> может достигать четырех.

не надо войны! даже в мирное время sin(x)=4 имеет решение
x=1.570796327-2.063437069*I. если надо, выражу и в радикалах и
элементарных функциях.

--
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
Posted via RSDN NNTP Server 2.0
Re[5]: Замысловатый цикл (любителям Duff's Device и т.п.)
От: Коваленко Дмитрий Россия http://www.ibprovider.com
Дата: 17.02.07 17:15
Оценка:
Здравствуйте, Megabyte, Вы писали:

>> Ну, в военное время, может происходить что угодно. Даже значение синуса

>> может достигать четырех.

M>не надо войны! даже в мирное время sin(x)=4 имеет решение

M>x=1.570796327-2.063437069*I. если надо, выражу и в радикалах и
M>элементарных функциях.

Если бы у меня был моск — он бы закипел. А так — "папа, с кем это ты сейчас говорил?"
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
Re[5]: Замысловатый цикл (любителям Duff's Device и т.п.)
От: PSP Беларусь  
Дата: 18.02.07 17:32
Оценка:
Здравствуйте, Megabyte, Вы писали:

>> Ну, в военное время, может происходить что угодно. Даже значение синуса

>> может достигать четырех.

M>не надо войны! даже в мирное время sin(x)=4 имеет решение

M>x=1.570796327-2.063437069*I. если надо, выражу и в радикалах и
M>элементарных функциях.

Я протестую. в данном случае я так понимаю |sin(x)|=4, что является модулем синуса.

P.S. А можно в ради калах?
Всегда Ваш, PSP.
Re[6]: Замысловатый цикл (любителям Duff's Device и т.п.)
От: raskin Россия  
Дата: 18.02.07 20:46
Оценка:
Здравствуйте, PSP, Вы писали:

M>>не надо войны! даже в мирное время sin(x)=4 имеет решение

M>>x=1.570796327-2.063437069*I. если надо, выражу и в радикалах и
M>>элементарных функциях.

PSP>Я протестую. в данном случае я так понимаю |sin(x)|=4, что является модулем синуса.

Нет, именно что сам синус...

PSP>P.S. А можно в ради калах?

Арксинус в радикалах плохо выражается... Но попробую, когда увижу выражение arcsin (1/4) через пи и радикалы.
Re[7]: Замысловатый цикл (любителям Duff's Device и т.п.)
От: Megabyte Россия  
Дата: 19.02.07 04:18
Оценка:
Здравствуйте, raskin, Вы писали:

M>>>не надо войны! даже в мирное время sin(x)=4 имеет решение

M>>>x=1.570796327-2.063437069*I. если надо, выражу и в радикалах и
M>>>элементарных функциях.

PSP>>P.S. А можно в ради калах?

R>Арксинус в радикалах плохо выражается... Но попробую, когда увижу выражение arcsin (1/4) через пи и радикалы.

да, в радикалах не удастся. только в элементарных функциях.

sin(x) = -1/2 * I * (exp(x*I)-exp(-x*I)) = 4
exp(x*I)-exp(-x*I) = -8/I
let exp(x*I) = u
u — 1/u = -8/I
u =/= 0
u^2 — 1 = -8*u/I
u = I*(4+-sqrt(15))
exp(x*I) = I*(4+-sqrt(15))
x = -I*ln(I*(4+-sqrt(15)
Re[4]: Замысловатый цикл (любителям Duff's Device и т.п.)
От: Alexander G Украина  
Дата: 21.02.09 12:06
Оценка:
Здравствуйте, Roman Odaisky, Вы писали:

RO>Вроде такой цикл, если стоит в main, ловит какие-то дополнительные исключения?


Так что ли ?

struct X 
{ 
  X() { throw 1; } 
} x;

int main()
try
{
  return 0;
}
catch(int i)
{
  return i;
}
Русский военный корабль идёт ко дну!
Re[5]: Замысловатый цикл (любителям Duff's Device и т.п.)
От: mrUmka  
Дата: 21.02.09 15:32
Оценка:
Здравствуйте, Megabyte, Вы писали:

M>On Sat, 17 Feb 2007 13:01:49 +0500, Коваленко Дмитрий <84@users.rsdn.ru>

M>wrote:

>> Ну, в военное время, может происходить что угодно. Даже значение синуса

>> может достигать четырех.

M>не надо войны! даже в мирное время sin(x)=4 имеет решение

M>x=1.570796327-2.063437069*I. если надо, выражу и в радикалах и
M>элементарных функциях.

Давай!
--
То, что вы уникальны еще не значит, что от вас есть толк
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.