Забавный код

Разговоры на любые темы: вы можете обсудить здесь какой-либо сайт, найти единомышленников или просто пообщаться...
Debugger
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1667
Зарегистрирован: 17.06.2006 (Сб) 15:11

Забавный код

Сообщение Debugger » 08.12.2008 (Пн) 20:01

Код: Выделить всё
    Dim c As Integer
    For c = 0 To 2 Step 0
        'DoSomething :-)
    Next

Синтаксически написан правильно. Результат понятно какой. Странно, что VB разрешает ставить Step 0.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Re: Забавный код

Сообщение tyomitch » 08.12.2008 (Пн) 20:11

Изображение

Debugger
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1667
Зарегистрирован: 17.06.2006 (Сб) 15:11

Re: Забавный код

Сообщение Debugger » 11.12.2008 (Чт) 10:36

:)
Еще:
Код: Выделить всё
CopyMemory 0, 0, -1
эквивалентно
Код: Выделить всё
End

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Забавный код

Сообщение Хакер » 11.12.2008 (Чт) 11:49

Совершенно неэквивалентно.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Re: Забавный код

Сообщение Antonariy » 11.12.2008 (Чт) 14:37

Учитывая то, что End часто закрывает программу с ошибкой — эквивалентно :)
Лучший способ понять что-то самому — объяснить это другому.

Debugger
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1667
Зарегистрирован: 17.06.2006 (Сб) 15:11

Re: Забавный код

Сообщение Debugger » 11.12.2008 (Чт) 15:23

Я всмысле по эффекту :D . Разве что первый убивает VB тоже.
Added:
Только что пришел вопрос:
почему не пашет
Код: Выделить всё
Dim s As String
Dim b(2) As Byte
s=.....
CopyMemory b(0),s,3

Улыбнуло... Вспомнил, как был молодой, как задал такой же вопрос Хакер'у...

Debugger
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1667
Зарегистрирован: 17.06.2006 (Сб) 15:11

Re: Забавный код

Сообщение Debugger » 08.01.2009 (Чт) 12:34

Нашел еще одну забавную фишку:
Код: Выделить всё
    Dim i As Integer
    Dim b As Integer
    i = 100
    b = i = 100 'b становится True)
    MsgBox b
    b = i = 200 'b становится False
    MsgBox b

А я думал, что в b сначала запишется 100, а потом 200 :D . Нет, сначала True (-1), а потом False, потому что второй знак "=" толкуется как сравнение.

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: Забавный код

Сообщение MIT » 08.01.2009 (Чт) 12:40

Это тебе не Си...
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

Saturn.65
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 543
Зарегистрирован: 13.10.2006 (Пт) 18:46

Re: Забавный код

Сообщение Saturn.65 » 28.01.2009 (Ср) 22:51

Что-то я сломал голову. Не пойму, почему ошибка. Странные расхождения с калькулятором. Попробуйте.
Код: Выделить всё
Private Sub Command1_Click()
Text1.Text = 8 * (1 / 280)' Если вместо 1 подставить 2 или 3, то ошибка в вычислениях, а дальше нормально идет.
End Sub

1 = 2,8571428571
2 = 5,714285714
3 = 8,571428571
4 = 0,114285714
5 = 0,1428571428571
:shock:
Главное, ребята, сердцем не стареть...

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Забавный код

Сообщение iGrok » 28.01.2009 (Ср) 23:05

Saturn.65 писал(а):Что-то я сломал голову. Не пойму, почему ошибка. Странные расхождения с калькулятором. Попробуйте.
1 = 2,8571428571
2 = 5,714285714
3 = 8,571428571
4 = 0,114285714
5 = 0,1428571428571

У тебя где-то теряется экспонента:
Код: Выделить всё
s$= 8 * (5 / 280) : ?s
0,142857142857143
0,114285714285714
8,57142857142857E-02
5,71428571428571E-02
2,85714285714286E-02


Это самое E-02 означает "x10^(-2)"
label:
cli
jmp label

Saturn.65
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 543
Зарегистрирован: 13.10.2006 (Пт) 18:46

Re: Забавный код

Сообщение Saturn.65 » 28.01.2009 (Ср) 23:10

Даже упрощенно 1 / 280 и то = 3,571428571 вместо 0.0035714
Главное, ребята, сердцем не стареть...

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Забавный код

Сообщение Хакер » 28.01.2009 (Ср) 23:19

Да у тебя не 3,571428571, а 3,571428571E-3 это разные вещи. А цифры одинаковые: три, пять, семь, один, четыре, два, восемь и т.д.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Saturn.65
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 543
Зарегистрирован: 13.10.2006 (Пт) 18:46

Re: Забавный код

Сообщение Saturn.65 » 28.01.2009 (Ср) 23:38

Хакер писал(а):... а 3,571428571E-3 это разные вещи.

А откуда это взялось? Я же делю как учили в книге. Как еще правильно разделить?
Главное, ребята, сердцем не стареть...

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Забавный код

Сообщение Хакер » 28.01.2009 (Ср) 23:41

Откуда взялось что?

Число? Оно взялось в результате деления.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Saturn.65
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 543
Зарегистрирован: 13.10.2006 (Пт) 18:46

Re: Забавный код

Сообщение Saturn.65 » 29.01.2009 (Чт) 0:39

Я про Е-3 говорю.
Главное, ребята, сердцем не стареть...

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Забавный код

Сообщение Хакер » 29.01.2009 (Чт) 0:46

У общественности подозрение, что ты в первые слышишь про научную запись чисел?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Saturn.65
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 543
Зарегистрирован: 13.10.2006 (Пт) 18:46

Re: Забавный код

Сообщение Saturn.65 » 29.01.2009 (Чт) 10:21

Хакер писал(а):...научную запись чисел

Это точно. Про это я и не знал. Дело не в этом. Почему получаются неправильные расчеты при элементарном действии деления? В чем магическая связь именно некоторых цифр? И кто сможет разделить правильно на примере 1/101?
Делю я 1/100 получается 0.01, делю 1/101 и получается 9,90099009. А если бы я расчет орбиты полета на Марс проводил? Фатальная ошибка...плачущие вдовы... :D
Главное, ребята, сердцем не стареть...

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Забавный код

Сообщение alibek » 29.01.2009 (Чт) 10:40

Saturn.65 писал(а):Делю я 1/100 получается 0.01, делю 1/101 и получается 9,90099009. А если бы я расчет орбиты полета на Марс проводил?

С такими знаниями расчет орбиты тебе не доверят, не бойся.
Lasciate ogni speranza, voi ch'entrate.

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Re: Забавный код

Сообщение Viper » 29.01.2009 (Чт) 10:52

Saturn.65 писал(а):
Хакер писал(а):...научную запись чисел

Это точно. Про это я и не знал. Дело не в этом. Почему получаются неправильные расчеты при элементарном действии деления? В чем магическая связь именно некоторых цифр? И кто сможет разделить правильно на примере 1/101?
Делю я 1/100 получается 0.01, делю 1/101 и получается 9,90099009. А если бы я расчет орбиты полета на Марс проводил? Фатальная ошибка...плачущие вдовы... :D
А ты после 9.9009900990099 E-03 принципиально не замечаешь или как?
Весь мир матрица, а мы в нем потоки байтов!

Saturn.65
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 543
Зарегистрирован: 13.10.2006 (Пт) 18:46

Re: Забавный код

Сообщение Saturn.65 » 29.01.2009 (Чт) 14:02

Viper писал(а):А ты после 9.9009900990099 E-03 принципиально не замечаешь или как?

И действительно. Поширше раздвинул Text1.Text и его стало видно E-03. Кто бы мог подумать?
А чтож они (неизвестно) так придумали делать? Это на всех языках такое бывает что ли? Это значит еще что-то надо писать, чтоб при этих вычислениях отделять зерна от плевел? Вот те и простенькая программа калькулятор.
Главное, ребята, сердцем не стареть...

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Re: Забавный код

Сообщение tyomitch » 29.01.2009 (Чт) 14:25

На всех.
Это фича.
Это удобно.
Изображение

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: Забавный код

Сообщение Денис » 29.01.2009 (Чт) 14:50

Saturn.65
0.0035714 = 3.5714 × 10-3 = 3.5714E-3
Это - научная (экспоненциальная) запись числа.
_________________

Хе-хе, Saturn.65 = S.aturn65 × 105
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

Saturn.65
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 543
Зарегистрирован: 13.10.2006 (Пт) 18:46

Re: Забавный код

Сообщение Saturn.65 » 30.01.2009 (Пт) 22:45

Что-то мне не везет с расчетами. Если я 1,9 сложу с 1,9 то получается 2. Прикольное округление.
Код: Выделить всё
Private Sub Command1_Click()
Text3.Text = Val(Text1.Text) + Val(Text2.Text)
End Sub

А если 1.9 с 1.9 то нормально. Но у меня текстбоксы то с запятой выводят данные.
Почему так получается? И как сделать, чтоб правильно выводило?
Главное, ребята, сердцем не стареть...

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Забавный код

Сообщение iGrok » 30.01.2009 (Пт) 22:52

Saturn.65 писал(а):Что-то мне не везет с расчетами. Если я 1,9 сложу с 1,9 то получается 2. Прикольное округление.
Код: Выделить всё
Private Sub Command1_Click()
Text3.Text = Val(Text1.Text) + Val(Text2.Text)
End Sub

А если 1.9 с 1.9 то нормально. Но у меня текстбоксы то с запятой выводят данные.
Почему так получается? И как сделать, чтоб правильно выводило?

Тебе в другой теме Viper дыл ссылку на статью. Прочитай её.
label:
cli
jmp label

Saturn.65
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 543
Зарегистрирован: 13.10.2006 (Пт) 18:46

Re: Забавный код

Сообщение Saturn.65 » 30.01.2009 (Пт) 23:35

Спасибо всем. Пошел по другому пути. Все перевел в тысячи. Сейчас нет запятых.
Главное, ребята, сердцем не стареть...

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Забавный код

Сообщение alibek » 31.01.2009 (Сб) 12:11

Это наверное очень увлекательно.
Saturn.65, когда тебе надоест маятся бездельем, почитай статью Viper-а. Оно может не так увлекательно, зато более результативно.
Lasciate ogni speranza, voi ch'entrate.


Вернуться в Народный треп

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 41

    TopList  
cron