Проверить длину строки
От: adontz Грузия http://adontz.wordpress.com/
Дата: 07.02.06 14:35
Оценка: 9 (5) +1 :))) :))) :))) :))) :))) :))) :))) :))) :))) :)
Этот, найденый мною, код проверяет принадлежность длины строки диапазону [1; 100]. Вот так, а то некоторые думают, что Си++ программисты уже не на что новое не способны А тут как видите креатифф так и прёт
if (absf(50.5 - tag.length()) > 49.5)
{
...
}
A journey of a thousand miles must begin with a single step © Lau Tsu
Re: Проверить длину строки
От: Аноним  
Дата: 07.02.06 15:16
Оценка:
Здравствуйте, adontz, Вы писали:

A>Этот, найденый мною, код проверяет принадлежность длины строки диапазону [1; 100]. Вот так, а то некоторые думают, что Си++ программисты уже не на что новое не способны А тут как видите креатифф так и прёт

A>
A>if (absf(50.5 - tag.length()) > 49.5)
A>{
A>...
A>}
A>


Боже мой... Зачем же так сложно? Может аффтар слишком много пива выпел вечером, а за ночь решил добить недоделанный код?
Re: Проверить длину строки
От: V.Petrovski Беларусь  
Дата: 07.02.06 15:17
Оценка:
Здравствуйте, adontz, Вы писали:

A>Этот, найденый мною, код проверяет принадлежность длины строки диапазону [1; 100]. Вот так, а то некоторые думают, что Си++ программисты уже не на что новое не способны А тут как видите креатифф так и прёт


......



ЗЫ
Если мне не изменяет память, то описанный чюдным кодом диапозон обозначается как (1;100), а не [1; 100].
<< RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[2]: Проверить длину строки
От: Andrew Россия  
Дата: 07.02.06 15:22
Оценка:
Здравствуйте, Аноним, Вы писали:


А>Боже мой... Зачем же так сложно? Может аффтар слишком много пива выпел вечером, а за ночь решил добить недоделанный код?




Интересно, что быстрее, сделать два сравнения или одно вычитание и одно сравнение?
--------------------------------------------------------------
Правильно заданный вопрос содержит в себе половину ответа
Re[3]: Проверить длину строки
От: Аноним  
Дата: 07.02.06 15:35
Оценка:
Здравствуйте, Andrew, Вы писали:


A>Интересно, что быстрее, сделать два сравнения или одно вычитание и одно сравнение?

а получение absf() на скорость не влияет?!
Re[2]: Проверить длину строки
От: adontz Грузия http://adontz.wordpress.com/
Дата: 07.02.06 15:45
Оценка: :)))
Здравствуйте, V.Petrovski, Вы писали:

VP>ЗЫ

VP>Если мне не изменяет память, то описанный чюдным кодом диапозон обозначается как (1;100), а не [1; 100].

Похоже мне есть что добавить в документик "How to write unmaintable code".
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[4]: Проверить длину строки
От: maxluzin Европа  
Дата: 07.02.06 15:48
Оценка: -1 :)
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Andrew, Вы писали:



A>>Интересно, что быстрее, сделать два сравнения или одно вычитание и одно сравнение?

А>а получение absf() на скорость не влияет?!

Насколько я знаю, почти не влияет, т.к. в общем виде может быть реализовано (навскидку, прошу не цепляться и тряпками грязными не кидаться!) 0111111111111111 AND <reg>, если первый бит означает знак. Всё, конечно, зависит от архитектуры проца. Одно время было очень популярно делать умножение и деление целых типов в С/С++ сдвигом влево или вправо на один разряд, т.к. напрямую транслировалось в процессорные команды сдвига и работало значительно быстрее простого умножения...

Но вопрос отсаётся: зачем же так, таким образом? Может какие-то побочные эффектв проявляются, которые можно использовать потом? Но всё равно — плохо. Что делать, если "андокументед фича" пропадёт в новой версии компилятора?
Re: О влиянии алкоголя на криатифф в программировании...
От: maxluzin Европа  
Дата: 07.02.06 15:59
Оценка: :))) :)))
Здравствуйте, adontz, Вы писали:

(поскипано)

Кстати, глядя на указанный код, вспомнил один анекдот (или историю), который мне рассказали. Суть заключается в следующем: какому-то ученому-математику насоветовали обкуриться перед началом "творческого процесса", типа "креатифф лезет немерянный, гениальнейшие и оригинальные идеи появляются". Мужик обкурился, сел за стол и начал "ваять"! И как! Попёрло действительно нехило, исписал формулами полпачки бумаги и удовлетворённый ушел в отруб с улыбкой на лице... Когда проспался, посмотрел свои выкладки и доказательства... Оказалось, что он совершенно правильно, используя поверхностные интегралы, стереометрию и другие "страшные слова" из вышки, совершенно правильно доказал, что (внимание!) площадь поверхности любого неочищенного банана больше поверхности его же, но очищенного...

В этом контексте хотелось бы спросить: а может кто-нибудь похвастаться похожей историей, когда попьяни накретивил какой-то код, потом проснулся, посмотрел и ужаснулся или дико засмеялся? Желательно с кодом, если есть, конечно...
Re[2]: О влиянии алкоголя на криатифф в программировании...
От: Oyster Украина https://github.com/devoyster
Дата: 07.02.06 16:08
Оценка: 9 (3) :)))
Здравствуйте, maxluzin, Вы писали:

M>В этом контексте хотелось бы спросить: а может кто-нибудь похвастаться похожей историей, когда попьяни накретивил какой-то код, потом проснулся, посмотрел и ужаснулся или дико засмеялся? Желательно с кодом, если есть, конечно...


Я как-то раз работал в одной конторе по ночам. Такая уж контора была. Ну а что делать программерам ночью? Правильно, вот и я в тот раз выпил много красного вина. То есть сначала начал кодить функционал по готовому ТЗ, потом выпил вина, потом продолжил кодить, потом ещё вина...

Проснулся я утром с осознанием того, что не помню, что же я делал ночью. Подошёл к компу, сел за стул и буквально обомлел — я в пьяном состоянии закодил почти всю функциональность по ТЗ Как потом выяснилось, практически без багов. Так что врачи не врут — красное вино действительно полезно Ну или тупой кодинг лучше идёт при отключке мозга

PS: сорри, что смешного кода в истории не получилось...

PPS: больше со мной такого не повторялось
Re[3]: О влиянии алкоголя на криатифф в программировании...
От: maxluzin Европа  
Дата: 07.02.06 16:16
Оценка: 1 (1) +1
Здравствуйте, Oyster, Вы писали:

O>Я как-то раз работал в одной конторе по ночам. Такая уж контора была. Ну а что делать программерам ночью? Правильно, вот и я в тот раз выпил много красного вина. То есть сначала начал кодить функционал по готовому ТЗ, потом выпил вина, потом продолжил кодить, потом ещё вина...


O>Проснулся я утром с осознанием того, что не помню, что же я делал ночью. Подошёл к компу, сел за стул и буквально обомлел — я в пьяном состоянии закодил почти всю функциональность по ТЗ Как потом выяснилось, практически без багов. Так что врачи не врут — красное вино действительно полезно Ну или тупой кодинг лучше идёт при отключке мозга


А я когда сисадмином был, помню, ни одну инсталляцию не начинал без пива (после окончания рабочего дня, естесссно, а когда же еще инсталляции делать?). Выпивал бутылочку и всё проходило гладко, чаще с первой попытки. Мозги действительно расслабляются, рецепторы притупляются и в голове остаётся только Цель и четкая последовательность действий. Тут главное не перебрать...
Re[3]: Проверить длину строки
От: achp  
Дата: 07.02.06 17:14
Оценка:
Здравствуйте, Andrew, Вы писали:

A>Интересно, что быстрее, сделать два сравнения или одно вычитание и одно сравнение?


Можно сделать и с одним сравнением, при условии, что tag.length() имеет беззнаковый тип:

if (tag.length() - 1 > 99) ...
Re[2]: Проверить длину строки
От: Xander Zerge Россия www.zerge.com
Дата: 07.02.06 17:47
Оценка:
Здравствуйте, V.Petrovski, Вы писали:

VP>Если мне не изменяет память, то описанный чюдным кодом диапозон обозначается как (1;100), а не [1; 100].

Во-первых, ">=" идеи не изменит, а во-вторых "чюдный код" проверяет попадание в диапазон (-8:1)U(100:+8), что есть дополнительное множество как раз к [1;100]
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Серёжа Новиков,
программист
Re[4]: Проверить длину строки
От: Xander Zerge Россия www.zerge.com
Дата: 07.02.06 17:47
Оценка:
Здравствуйте, <Аноним>, Вы писали:

A>>Интересно, что быстрее, сделать два сравнения или одно вычитание и одно сравнение?

А>а получение absf() на скорость не влияет?!

На скорость влияет непонятный переход к плавточкочисленной арифметике. Что мешает делать
if( abs( 50 - tag.length() ) > 50 )
{
...
}
?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Серёжа Новиков,
программист
Re[5]: Проверить длину строки
От: adontz Грузия http://adontz.wordpress.com/
Дата: 07.02.06 18:42
Оценка:
Здравствуйте, Xander Zerge, Вы писали:

XZ>На скорость влияет непонятный переход к плавточкочисленной арифметике. Что мешает делать

XZ>
XZ>if( abs( 50 - tag.length() ) > 50 )
XZ>{
XZ>...
XZ>}
XZ>
?


На 100 уже не так работает. Впрочем что мешает делать if ((tag.length() >= 1) && (tag.length() <= 100)) ?
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[3]: О влиянии алкоголя на криатифф в программировании...
От: sjukov Украина  
Дата: 07.02.06 20:24
Оценка:
Здравствуйте, Oyster, Вы писали:


O>Ну или тупой кодинг лучше идёт при отключке мозга

+3 !!!!
Золотые слова!!! Я тоже иногда считал, что самый страшный враг здравого смысла это рассудок!!
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: Проверить длину строки
От: CreatorCray  
Дата: 07.02.06 22:31
Оценка:
Здравствуйте, adontz, Вы писали:

A>Этот, найденый мною, код проверяет принадлежность длины строки диапазону [1; 100]. Вот так, а то некоторые думают, что Си++ программисты уже не на что новое не способны А тут как видите креатифф так и прёт


Это не креатифф прет, это трава особо забористая попалась...
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[3]: Проверить длину строки
От: V.Petrovski Беларусь  
Дата: 08.02.06 07:01
Оценка: -1 :)
Здравствуйте, Xander Zerge, Вы писали:

XZ>Здравствуйте, V.Petrovski, Вы писали:


VP>>Если мне не изменяет память, то описанный чюдным кодом диапозон обозначается как (1;100), а не [1; 100].

XZ>Во-первых, ">=" идеи не изменит, а во-вторых "чюдный код" проверяет попадание в диапазон (-8:1)U(100:+8), что есть дополнительное множество как раз к [1;100]
Интересно посмотреть на строку длинной -8 Может травой поделишься ?
И вообще не дури голову...
<< RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[4]: Проверить длину строки
От: Xander Zerge Россия www.zerge.com
Дата: 08.02.06 11:46
Оценка:
Здравствуйте, V.Petrovski, Вы писали:

VP>>>Если мне не изменяет память, то описанный чюдным кодом диапозон обозначается как (1;100), а не [1; 100].

XZ>>Во-первых, ">=" идеи не изменит, а во-вторых "чюдный код" проверяет попадание в диапазон (-8:1)U(100:+8), что есть дополнительное множество как раз к [1;100]
VP>Интересно посмотреть на строку длинной -8 Может травой поделишься ?
Смайлики как читаете, голову на бок кладёте? Положите и сейчас. Минус бесконечность, плюс бесконечность. За травой — не ко мне.
VP>И вообще не дури голову...
Поосторожнее, пожалуйста.....
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Серёжа Новиков,
программист
Re[5]: Проверить длину строки
От: V.Petrovski Беларусь  
Дата: 08.02.06 11:49
Оценка: -1
Здравствуйте, Xander Zerge, Вы писали:

XZ>Здравствуйте, V.Petrovski, Вы писали:


VP>>Интересно посмотреть на строку длинной -8 Может травой поделишься ?

XZ>Смайлики как читаете, голову на бок кладёте? Положите и сейчас. Минус бесконечность, плюс бесконечность. За травой — не ко мне.
VP>>И вообще не дури голову...
XZ>Поосторожнее, пожалуйста.....
Так ты так и не ответил, по поводу строки длинной -8.
<< RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[6]: Проверить длину строки
От: Xander Zerge Россия www.zerge.com
Дата: 08.02.06 21:08
Оценка:
Здравствуйте, V.Petrovski, Вы писали:

VP>Так ты так и не ответил, по поводу строки длинной -8.


Ответил:

XZ>><...>голову на бок<...> Минус бесконечность, плюс бесконечность.

Есть символы в уникоде, но в janus-e, они не отображаются.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Серёжа Новиков,
программист
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.