Тотальная неудачница и убийца жёстких дисков.
#post-id: 3491-23-35
#original-date: 15.02.2010 Mon
#original-time: 11:35 PM
#original-day: 3491
#original-host: WinXP Home SP3 (Build 2600)
Я настолько сурова, что даже в Паскале умудрилась заюзать GoTo ^^ А что? Не городить же ради простого повтора всякие циклы и двести переменных!
#music: Scooter\The ultimate aural orgasm\Track 3
#original-date: 15.02.2010 Mon
#original-time: 11:35 PM
#original-day: 3491
#original-host: WinXP Home SP3 (Build 2600)
Я настолько сурова, что даже в Паскале умудрилась заюзать GoTo ^^ А что? Не городить же ради простого повтора всякие циклы и двести переменных!
#music: Scooter\The ultimate aural orgasm\Track 3
-
-
16.02.2010 в 10:10процедуру, Линда, процедуру!
/* какое страшное слово, на самом деле... */
-
-
16.02.2010 в 10:59Ну, это хоть не короткий Sub, разворачивающийся в Подпрограмма ^^
Вот мой вариант:
// Что это за cuRs maRk? OO
-
-
16.02.2010 в 11:07а так просто дословный перевол procedure)
оно, правда, меня пугает еще и тем, что в некоторых языках процедур как таковых нет)
// Что это за cuRs maRk? OO
рекомендую тебе почитать @новости и почистить кэш)
Вот мой вариант:
а! хочешь, расскажу, как это делается кошерно?)
а еще более кошерно так:
-
-
16.02.2010 в 11:10>…
>until true
Уверен, что это прямой код? (:
-
-
16.02.2010 в 11:12-
-
16.02.2010 в 11:13см. второй вариант )
-
-
16.02.2010 в 11:14-
-
16.02.2010 в 11:23-
-
16.02.2010 в 11:32-
-
16.02.2010 в 11:38-
-
16.02.2010 в 11:41на просто строку это нормально
часто, но не всегда)
-
-
16.02.2010 в 11:45>часто, но не всегда)
Проверять 1ый символ, делов то
-
-
16.02.2010 в 11:48эм... не пойдет. например, если я хочу ввести "120000", но случайно введу "1ё20000", оно может скастоваться в int(1). хотя первый символ верный)
Сказать можно что угодно, а мало ли что абстрактный IO error может означать (: Вывод — пишите программы полностью или хотя бы с блоком объявлений (^ ^)\
это верно.
только претензии не ко мне =)
-
-
16.02.2010 в 11:52Ты думаешь программа должна угадывать, что ты хотел ввести? Или хочешь что бы были строго только цифры?
-
-
16.02.2010 в 11:53нет)
правда, она должна угадывать то, что я точно не хотел ввести)
Или хочешь что бы были строго только цифры?
да)
Смысл?
защита от очепяток и неверных данных)
и воспитание пользователя, к тому же =)
-
-
16.02.2010 в 11:59Похвально… Тогда проверка регэкспом. RegExp is like violence. If it doesn't solve your problem, use more (^__^)
>и воспитание пользователя
Бесполезно
-
-
16.02.2010 в 12:03на php возможны восхитительные конструкции вроде if ((string) (ing) $value != $value) { ... }. они защищают еще и от overflow. (хотя удобнее всего таким образом проверять даты: "33.01.2010" волшебным образом превращается в "02.02.2010", а пользователь видит предупреждение.) неужели проверки вроде ^\d*$ столь обязательны?)
Бесполезно
пользователи бывают разные)
-
-
16.02.2010 в 12:30Руби не нужен (С)
Слишком умный ввод тоже не нужен. 1ё00000 ни как не лезет в Real, поэтому должен восприниматься как ошибка ввода. Иначе можно дойти до того, что пользователь будет вводить 1,22, а из-за региональных настроек программа будет отбрасывать всё что после "неправильного" символа и ни чего не говорить. А пользователь будет потом гадать, кто дурак.
La personne mystique
"подпрограмма" - слово хорошее и благозвучное, но вне контекста немного путает)
Слишком сложное и ломающееся ^^ Мне по душе функция, но математики негодуют и из-за них в некоторых книжках по программированию начинают умничать и учить не с концепции, а со сравнения с математической функцией. В честь чего, в первой половине примеров все функции называются f и принимают параметр x.
оно, правда, меня пугает еще и тем, что в некоторых языках процедур как таковых нет)
Ну, да ^^ В том же VB деление на Sub и Function немного условное ^^
рекомендую тебе почитать @новости и почистить кэш)
А парсинг смайликов так и не починили =_=
Примеры. Вот об этом я и говорила ^^ Особенно о втором случае, когда появляется целая переменная ^^ Кроме того, Goto я использую тут потому что моя логика такова: первичное действие - ввели и пошли дальше, вторичное - повтор при ошибке. В случае с циклами получается наоборот: первичное действие - вводить до умопомрачения, вторичное - идём дальше ^^ Кроме того, с Goto переход происходит там, где он нужен, а не в рамках вышестоящего блока, что, как мне кажется, облегчает чтение.
// И я не говорю, что Goto нужно пихать всюду, но он помогает, когда юзаешь с умом ^^
-
-
16.02.2010 в 12:35WTF? Поисковики молчат, ибо у них сематический поиск головного движка.
>неужели проверки вроде ^\d*$ столь обязательны?)
Здесь сразу понятно что и зачем, а что есть if ((string) (ing) $value != $value) как не шаманство с бубном? :}
Если уж мы стали о датах, «Sat, 07 Sep 2002 00:00:01 GMT» оно распарсит? :}
-
-
16.02.2010 в 12:39Исходный вопрос был как организовать повтор, а не как вводить числа.
организация повтора нередко зависит от природы причин необходимости этого повтора )
в данном случае есть еще потрясающий вариант с
i := lbound;
while (i <= ubound) do begin
readln(array[i]);
if ioresult = 0 then inc(i)
else writeln('Error...');
end;
из-за региональных настроек программа будет отбрасывать всё что после "неправильного" символа и ни чего не говорить. А пользователь будет потом гадать, кто дурак.
это совершенно нормальная и часто встречающаяся ситуация)
Мне по душе функция, но математики негодуют и из-за них в некоторых книжках по программированию начинают умничать и учить не с концепции, а со сравнения с математической функцией.
я к этим не отношусь) функция - то, что возвращает значение, процедура - то, что не возвращает. если различие процедуры и функции в том, что процедура возвращает void (или null, или undefined, или еще что), но разница и вовсе не принципиальна)
А парсинг смайликов так и не починили =_=
да, занимаются всякой ерундой, дырки в сайте плодят)
появляется целая переменная
о, какой ужас - целая переменная вместо целой метки!)
едва ли goto читать легче, чем "неочевидные" циклы вроде do...until true ^^
-
-
16.02.2010 в 12:45WTF? Поисковики молчат, ибо у них сематический поиск головного движка.
яркий пример того, почему ввод пользовователя нужно проверять .-)
int, конечно же. как будто непонятно)
Здесь сразу понятно что и зачем, а что есть if ((string) (ing) $value != $value) как не шаманство с бубном? :}
о, я могу захотеть ввести 0x7f в $value и оно сработает, а регэксп не сработает. писать регексп так, чтобы он дублировал "родной" функционал - немного глупо)
Если уж мы стали о датах, «Sat, 07 Sep 2002 00:00:01 GMT» оно распарсит? :}
C:\>php -r "var_dump(strtotime('Sat, 07 Sep 2002 00:00:01 GMT'));"
int(1031356801)
C:\>php -r "echo date('d.m.Y H:i:s', 1031356801);"
07.09.2002 04:00:01
распарсило )
-
-
16.02.2010 в 12:50Не слишком очевидный финт ушами какой-то, странно, что какого-нибудь такого дефолтного нет.
-
-
16.02.2010 в 12:54бгг, ну, в паскале такие проверки и принято тем же методом делать)
разве что String там не представляет собой класса.
*присмотрелся* а что, в ruby инструкции разделяются переносами строк?)
-
-
16.02.2010 в 12:55Тут как раз наоборот. Он слишком умный и проверил как захотел
>int
Если это просто int это и так почти везде можно. Хотя что быстрее / лучшее / практичнее в этом случае пока не возьмусь сказать, мерять не хочется
>var_dump(strtotime
Это уже финт ушами, у тебя только что был (string) (int) :} Я в том смысле, что как только формат чего-либо начнёт пухнуть обычными кастами и готовыми strtotime уже не отделаешься. Хотя это хорошо, когда они есть, конечно :}
-
-
16.02.2010 в 12:58Вас это беспокоит, хотите поговорить об этом? :} Вот это всё тоже будет работать:
То бишь если хочется на одной, то ставишь пунктуацию :}
-
-
16.02.2010 в 13:00Он слишком умный и проверил как захотел
ну, компилятор обычно в гугл не лезет.
а результат-то все равно один, так зачем платить больше?)
Хотя что быстрее / лучшее / практичнее в этом случае пока не возьмусь сказать, мерять не хочется
в PHP кастование в int быстрее регулярок. но тоже со своими тараканами, как в примере про "ё" среди числа и отсутствие каких-либо ворнингов. а регулярки там - больше костыли, хотя и используемые постоянно и повсюду.
Это уже финт ушами, у тебя только что был (string) (int)
ну а чего ты хочешь? для инта - (int), для даты - strtotime() =) Jedem das Seine =)
как только формат чего-либо начнёт пухнуть обычными кастами и готовыми strtotime уже не отделаешься
вывод - избегайте нестандартных решений, пользуйтесь старым и проверенным)
-
-
16.02.2010 в 13:03организация повтора нередко зависит от природы причин необходимости этого повтора )
Самые актуальные для меня причины:
- Повтор при неверном введённом значении (CUI).
- Повтор при переадресации HTTP запроса.
- Повтор при 5**
Второе я пыталась делать "правильно", но оказалось, что повтором может быть больше одного ^^
в данном случае есть еще потрясающий вариант с
Красиво ^^ Но похоже на тот код установки флагов в никсовом драйвере ^^
это совершенно нормальная и часто встречающаяся ситуация)
Помнится, РНИВЦ организовал такую ситуацию из-за кустарной логики перевода строки в число. Пока у одминов не выработался рефлекс на всех машинах ставить точку в региональных стандартах, система давала такие чудесные глюки. Правда, я это не застала, но говорят, глюки были действительно чудесными и часто непонятные даже самим девелоперам ^^ Лучше так и не рисковать ^^
я к этим не отношусь) функция - то, что возвращает значение, процедура - то, что не возвращает. если различие процедуры и функции в том, что процедура возвращает void (или null, или undefined, или еще что), но разница и вовсе не принципиальна)
Не принципиальна, зато оптимизация терминов и унификация кода ^^
да, занимаются всякой ерундой, дырки в сайте плодят)
Мой детектор иронии что-то детектирует ^^' Кстати, фамилия DDD в посте привычно заставляет задуматься об этих самых дырках ^^ Он же уязвимости находил вплоть до сливания паролей (насчёт этого не уверена), что его потом благодарили за оперативность ^^
о, какой ужас - целая переменная вместо целой метки!)
Переменную нужно где-то объявить, а метка (в VB и C) создаётся автоматом ^^ Правда, C заставляет выносить все объявления выше первого GoTo, но не страшно ^^
едва ли goto читать легче, чем "неочевидные" циклы вроде do...until true ^^
Ну, это уже моё суровое ИМХО и слова того товарища, который сказал великую фразу: "Одно маленькое GoTo способно на треть сократить объём кода" ^^ Пример я уже приводила ^^ А противникам можно небрежно бросить: "ну и попробуй на асме написать программу без единой мерзкой метки" ^^ народ теряется ^^
-
-
16.02.2010 в 13:04Вас это беспокоит, хотите поговорить об этом?
да!)
не люблю, когда меня заставляют переносить или не переносить там, где мне не хочется.
каждый раз, когда приходится писать на VB, матерюсь из-за этого)
-
-
16.02.2010 в 13:08Тут проблема не в коннекте, а в том, что он предположил не то, что я имею в виду. Причём даже выделив кавычками. Тут проблема в головах авторов кода (^ ^)
>избегайте нестандартных решений, пользуйтесь старым и проверенным)
Этого никто не отрицал (:
>не люблю, когда меня заставляют переносить или не переносить там, где мне не хочется
Надеюсь, под примерами ты прочитал, что это возможно
-
-
16.02.2010 в 13:13Самые актуальные для меня причины
у переадресации по стандарту - лимит на число прыжков (то ли 5, то ли 10, нужно почитать), посему обычно мне проще сделать рекурсию с счетчиком. все остальное, мнээ... «do ... until not_error»'ll do the thing =) ну а при последовательных запросах по списку/заполнении массива/прочее - один из трех путей, описанных выше, по настроению (обычно выбор не столь принципиален, впрочем).
Не принципиальна, зато оптимизация терминов и унификация кода ^^
тогда пусть все будет функциями)
Мой детектор иронии что-то детектирует ^^'
да нет, я совершенно серьезно)
как раз хотел одному спамеру наказание сделать, а тут такое)
вплоть до сливания паролей (насчёт этого не уверена)
вроде да, находил)
а в 2005м здесь было несколько красивых sql-инъекций) но теперь едва ли осталась хоть одна, в отличие от XSS, через которые можно утащить кэш пароля из куков - что не так спортивно)
Переменную нужно где-то объявить, а метка (в VB и C) создаётся автоматом ^^
в паскале нужно объявлять и то, и другое)
ну и попробуй на асме написать программу без единой мерзкой метки
сравнила тоже)
но да, можно все на циклах сделать)