|
08.12.2009, 17:15
|
#1
|
Зануда с интернетом
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений (для 20,935 пользователей)
|
Интересно и вроде недокументровано
2Джокер - не читай
Сейчас натолкнулся на то, что операторы сравнения перегружены для строк. Причём не как сравнение тайпкаста контента к числу, а как облегчённое подобие функций типа strcmp из С++.
Пример:
Local bool%=Str("70")<Str("600")
Print bool
WaitKey()
End
Может показаться, что из-за низкой типизации б3д сравнит 70 и 600 и вернёт истину - дудки. Строка "70" при сортировке должна идти после "600" и потому "больше" - результат равен лжи.
Ещё пример:
Local bool%=Str("7.0")<Str("6.00")
Print bool
WaitKey()
End
результат - 0
Local bool%=Str("100")<Str("12")
Print bool
WaitKey()
End
результат - 1
Напрягает, что в хелпе ничего не нашёл.
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
|
(Offline)
|
|
Эти 7 пользователя(ей) сказали Спасибо impersonalis за это полезное сообщение:
|
|
08.12.2009, 17:29
|
#2
|
Злобный Админ
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений (для 9,330 пользователей)
|
Ответ: Интересно и вроде недокументровано
Сообщение от impersonalis
2Джокер - не читай
|
Опять дискриминация...
__________________
|
(Offline)
|
|
Эти 10 пользователя(ей) сказали Спасибо SBJoker за это полезное сообщение:
|
|
08.12.2009, 18:07
|
#3
|
Зануда с интернетом
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений (для 20,935 пользователей)
|
Ответ: Интересно и вроде недокументровано
Да потому что суть алгорима такова будет (я тебя знаю ):
1) прочитать начало - напсиать что Импер не догадался и только лошара может не знать о перегружееном операторе
2) отослать к справочникам по Си (хотя Импер какбе намекнул про strcmp)
3) разжечь холивар на тему "блитц-ацтой"
вараиант_исключение (сработает если ни один из трёх невозможно реализовать, например после выхода из тела поста по директиве "джокер не читай") - поофтопить.
Итого:
джокер на коне (уже видим ряд спс к его посту)
импер в говоне (ещё увидим тrавлю)
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
|
(Offline)
|
|
Эти 3 пользователя(ей) сказали Спасибо impersonalis за это полезное сообщение:
|
|
08.12.2009, 19:39
|
#4
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: Интересно и вроде недокументровано
Чего это ты Импер?
Вроди у вас конфликтов в открытую на форуме не наблюдалось..
|
(Offline)
|
|
08.12.2009, 19:55
|
#5
|
Элита
Регистрация: 16.01.2008
Сообщений: 1,800
Написано 958 полезных сообщений (для 3,833 пользователей)
|
Ответ: Интересно и вроде недокументровано
MoKa,а где здесь конфликт?...лично я воспринимаю пост Импа как дружественную шютку,не более....
|
(Offline)
|
|
Эти 13 пользователя(ей) сказали Спасибо Dzirt за это полезное сообщение:
|
ABTOMAT (08.12.2009), Android (08.12.2009), Arles (08.12.2009), baton4ik (15.04.2010), BlackDragon (08.12.2009), DeadElf (08.12.2009), Fatalix3d (10.12.2009), h1dd3n (08.12.2009), impersonalis (08.12.2009), is.SarCasm (16.12.2009), Nex (16.12.2009), Phantom (09.12.2009), SBJoker (08.12.2009)
|
08.12.2009, 21:24
|
#6
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: Интересно и вроде недокументровано
Он уже просто избегает, как побитый енот...
|
(Offline)
|
|
08.12.2009, 21:40
|
#7
|
Зануда с интернетом
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений (для 20,935 пользователей)
|
Ответ: Интересно и вроде недокументровано
Сообщение от MoKa
Он уже просто избегает, как побитый енот...
|
эмм?
Спасибо, канеш, что внимательно всё прочитали и оценили по достоинству. до свиданья
Смотрю со времён основания мои попытки кому-то что-то донести из того что я знаю заканчивались плачевно. Ну ихренли корчить из себя.
Тоже стану троллем-шутом. Готовимся к первым рецензиям.
Доканало, блджад.
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
|
(Offline)
|
|
08.12.2009, 22:59
|
#8
|
ПроЭктировщик
Регистрация: 22.07.2009
Адрес: Московский Метрополитен)))
Сообщений: 100
Написано 25 полезных сообщений (для 31 пользователей)
|
Ответ: Интересно и вроде недокументровано
давайте вернёмся к теме, а?))
короче, как я понял по вот этому коду:
Local bool%=Str("70")<Str("600")
Print bool
WaitKey()
End
|
ты хочешь проверить, будет ли 70 меньше чем 600. блиц выводит, что нет.
почему? смотрим хелп по команде str:
Используйте эту команду, чтобы преобразовать числовое значение в строковое значению для использования с командами обработки строк. Blitz запросто печатает числовые значения так же, как и строчные, но если Вы захотите использовать такие функции, как LEFT$ или подобные, Вы должны будете преобразовать вашу числовую переменную в строчную. Заметьте: в процессе преобразования все 6 десятичных цифр будут представлены в виде числа с плавающей запятой .
Если Вы пожелаете выполнить обратное действие - преобразовать строку в число, то не найдете в Blitz-е никакой команды, эквивалентной команде Val в другтх версиях Бейсика. Вместо этого просто присвойте строковую переменную числовой переменной, и Blitz сам преобразует её.
проще говоря, он преобразует число 70 в "70". а ты задаешь ему сразу "70". понятное дело, заковыка... блиц путается и сравнивает значения посимвольно: "7">"6"? да, выходим из проверки. получаем 0. если же сделать int("70") и int("600"), то получим, что всё в порядке. если же поставить Str(70) и Str(600), то опять получим 0, потому как он проверяет посимвольно. Никаких проблем и ошибок нет.
|
(Offline)
|
|
08.12.2009, 23:03
|
#9
|
Зануда с интернетом
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений (для 20,935 пользователей)
|
Ответ: Интересно и вроде недокументровано
блджад, с Джокером не вышло - нашёлся ещё один, читающий по диагонали. Спасибо, комрад)
ИСХ никто не хочет называться свои настоящим именем - Кэп О.
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
08.12.2009, 23:33
|
#10
|
Злобный Админ
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений (для 9,330 пользователей)
|
Ответ: Интересно и вроде недокументровано
Смысл темы в том что блитц может сказать какая строка больше другой простым сравнением. По правилам сортировки, а не по длине.
Искринне ваш, К.О.
__________________
|
(Offline)
|
|
Эти 5 пользователя(ей) сказали Спасибо SBJoker за это полезное сообщение:
|
|
09.12.2009, 00:01
|
#11
|
Кодер "win" ЭВМ
Регистрация: 10.11.2009
Адрес: ЖуковSKY
Сообщений: 194
Написано 77 полезных сообщений (для 155 пользователей)
|
Ответ: Интересно и вроде недокументровано
не поверите, но спасибо за тему, слэм в топку!
__________________
Жизнь игра, задумка дурацкая но графика ...
|
(Offline)
|
|
09.12.2009, 20:30
|
#12
|
Зануда с интернетом
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений (для 20,935 пользователей)
|
Ответ: Интересно и вроде недокументровано
Возможно этот пример более зрелищен:
Local X$,Y%
X=600
Y=70
Local bool%=X<Y
If bool
Print "X<Y"
EndIf
WaitKey()
End
Реузльтат - X<Y
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
|
(Offline)
|
|
Эти 3 пользователя(ей) сказали Спасибо impersonalis за это полезное сообщение:
|
|
09.12.2009, 21:48
|
#13
|
Элита
Регистрация: 16.01.2008
Сообщений: 1,800
Написано 958 полезных сообщений (для 3,833 пользователей)
|
Ответ: Интересно и вроде недокументровано
занятно...хотя из первого поста итак все стало ясно) ...ну я так понимаю не всем.Вообще молодцом Имп,учтем!
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
10.12.2009, 02:59
|
#14
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: Интересно и вроде недокументровано
Сообщение от impersonalis
Возможно этот пример более зрелищен:
Local X$,Y%
X=600
Y=70
Local bool%=X<Y
If bool
Print "X<Y"
EndIf
WaitKey()
End
Реузльтат - X<Y
|
А сколько bool будет таки?
Print "X<Y "+bool
что-то смущает, я вообще никогда так в блице не присваивал сравнения к переменным, только сперва в HLSL, а затем и в C++ такое увидел..
|
(Offline)
|
|
10.12.2009, 03:53
|
#15
|
Зануда с интернетом
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений (для 20,935 пользователей)
|
Ответ: Интересно и вроде недокументровано
Local X$,Y%
X=600
Y=70
If X<Y
Print "X<Y"
EndIf
WaitKey()
End
|
результат тоже.
Сударь, как по вашему работает условный оператор?
Он всего-лишь делает или нет джамп принимая на вход (ТОЛЬКО!) истину или ложь. В свою очередь операторы сравнения возвращают 1 при истинности неравенства и 0 в обратном случае.
Так что HLSL и С++ в этом плане - всего-лишь инерция парадигмы. Даже языки различных ассемблеров как правило лишь сохраняют флаг результата сравнения, а подобие if его обрабатывает.
Собсвтенно, никаких рациональных мыслей "как реализовать if иначе" у меня нет (один говнокод).
Вот ещё в таком случае пример (выходит тоже не очень доументированной возможности):
Function GetMax%(a%,b%)
Return (a>b)*a+(b>a)*b+(a=b)*a
End Function
Local i%
For i=1 To 10
Local q=Rand(1,10)
Local w=Rand(1,10)
DebugLog "["+q+";"+w+"] -> "+GetMax(q,w)
Next
WaitKey()
End
|
результат для дефолтной инициализирующей последовательности ГПСЧ:
[4;8] -> 8
[4;5] -> 5
[6;8] -> 8
[6;2] -> 6
[1;7] -> 7
[2;5] -> 5
[3;3] -> 3
[7;7] -> 7
[1;10] -> 10
[5;6] -> 6
|
Так что, борец за права енотов, спуститесь с метафор на землю - нам ещё нужны хорошие дизайнеры.
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 06:27.
|