Библейские денежно-весовые единицы и меры.

Обсуждение проектов наших жителей.
Вы можете выставить проект на тест или найти помощников для его реализации.

Модератор: BV

t116
Бывалый
Бывалый
 
Сообщения: 209
Зарегистрирован: 12.01.2007 (Пт) 12:11

Сообщение t116 » 03.08.2007 (Пт) 0:43

Хакер писал(а):t116
4) Код ужасен.


Тогда так:

Код: Выделить всё
If (KeyAscii >= 48 And KeyAscii <= 57) Or KeyAscii = 8 Or KeyAscii = 46 Then Exit Sub Else KeyAscii = vbNull

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

Сообщение Хакер » 03.08.2007 (Пт) 8:38

Может быть ты забыл Randomize ?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 03.08.2007 (Пт) 11:47

t116 писал(а):Тогда так:

Код: Выделить всё
If (KeyAscii >= 48 And KeyAscii <= 57) Or KeyAscii = 8 Or KeyAscii = 46 Then Exit Sub Else KeyAscii = vbNull

И это мерзкий код.
И в плане использования чисел вместо именованных констант, и в плане абсолютного непонимания автором, что такое vbNull.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

t116
Бывалый
Бывалый
 
Сообщения: 209
Зарегистрирован: 12.01.2007 (Пт) 12:11

Сообщение t116 » 03.08.2007 (Пт) 16:21

GSerg писал(а):
t116 писал(а):Тогда так:

Код: Выделить всё
If (KeyAscii >= 48 And KeyAscii <= 57) Or KeyAscii = 8 Or KeyAscii = 46 Then Exit Sub Else KeyAscii = vbNull

И это мерзкий код.
И в плане использования чисел вместо именованных констант, и в плане абсолютного непонимания автором, что такое vbNull.


Тогда так

Код: Выделить всё
If (KeyAscii >= vbKey0 And KeyAscii <= vbKey9) Or KeyAscii = vbKeyBack Or KeyAscii = 46 Then Exit Sub Else KeyAscii = 0


Если и в этот раз не так, то напиши как правильно.

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

Сообщение alibek » 03.08.2007 (Пт) 16:26

Код: Выделить всё
Select Case KeyAscii
  Case < 32
  Case vbKey0 To vbKey9
  Case Asc("."), Asc(",")
    KeyAscii = Asc(".")
  Case Else
    KeyAscii = Cos(3.1415926/2)
End Select
Lasciate ogni speranza, voi ch'entrate.

t116
Бывалый
Бывалый
 
Сообщения: 209
Зарегистрирован: 12.01.2007 (Пт) 12:11

Сообщение t116 » 03.08.2007 (Пт) 16:50

alibek писал(а):
Код: Выделить всё
Select Case KeyAscii
  Case < 32
  Case vbKey0 To vbKey9
  Case Asc("."), Asc(",")
    KeyAscii = Asc(".")
  Case Else
    KeyAscii = Cos(3.1415926/2)
End Select


Оказывается я еще мало знаю по поводу Case :oops:

Тогда можно и так:

Код: Выделить всё
Select Case KeyAscii
  Case Is < 32
  Case vbKey0 To vbKey9
  Case Asc("."), Asc(",")
    KeyAscii = IIf(InStr(TextBox.Text, "."), 0, Asc("."))
  Case Else
    KeyAscii = Cos(3.1415926 / 2)
End Select


Чтобы дважды точку не поставить в одном числе.


PS.
Код: Выделить всё
KeyAscii = Cos(3.1415926 / 2)
:D

Crio
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 84
Зарегистрирован: 21.05.2007 (Пн) 12:01
Откуда: Питер

Сообщение Crio » 04.08.2007 (Сб) 17:58

tyomitch
Не, я знаю, что иногда 1 и 1 будет 2 а иногда "11".
(там про это, да?)

Просто странно, что для работы со строками кроме оператора & есть ещё и оператор +, абсолютно избыточный. Или нет?
Кроме того, нам на лекции минут пять втолковывали, что "1" + "1" будет "b".

ОК, это уже не по теме. (если у меня и дальше непонятки будут, я по ЛС спрашивать буду, можно?)

Nazarej
Так что ввести, чтобы программа запустилась?

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

Сообщение Хакер » 04.08.2007 (Сб) 18:32

Не, я знаю, что иногда 1 и 1 будет 2 а иногда "11".


Нда, в голове каша.
1 + 1 будет 2

"1" + "1" будет "11"

1 & 1 будет "11"

"1" & "1" будет "11"

"1" & 1 будет "11"

1 & "1" будет "11"

в то время как:
1 + "1" будет 2
"1" + 1 будет 2

Иными словами:

string + string = string
numeric + numeric = numeric
Если типы операндов одинаковы.

Если не одинаковы:
string + numeric = numeric
numeric + string = numeric

string & numeric = string
numeric & string = string

это всё условно, конечно. Но для понимания достаточно.

Кроме того, нам на лекции минут пять втолковывали, что "1" + "1" будет "b".


Нет. Не будет. '1' + '1' будет 'b' -- да, в си. Можешь проверить:

Код: Выделить всё
#include <iostream.h>
int main()
{
   char za;
   za = '1' + '1';
   cout<<(za=='b' ? "yes" : "no");
}
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Пред.

Вернуться в Наши проекты

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

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

    TopList