|
Вопрос # 4 921/ вопрос решён / |
|
Приветствую, уважаемые эксперты!
Как сделать проверку на то, что введённый текст в Edit числа
и они равны8 или 16 или 32 и т.д
 |
Вопрос задал: Адмирал (статус: Посетитель)
Вопрос отправлен: 16 января 2011, 09:43
Состояние вопроса: решён, ответов: 1.
|
Ответ #1. Отвечает эксперт: min@y™
// Функция, проверяющая, что в AEdit введено именно целое число
// и что это число является членом ряда 8, 16, 32, ..., 2^63.
// Если содержимое AEdit удовлетворяет условиям, то введённое
// число возвращается в параметре Value, а сама функция
// Возвращает True.
function CheckEdit(AEdit: TEdit; var Value: Int64): Boolean;
var
Bit: Byte; // Кол-во разрядов сдвига
begin
Result:= TryStrToInt64(AEdit.Text, Value); // Попытка преобразовать текст в число
if Result
then begin // Проверка, что число = 2^Bit (3 <= Bit <= 63)
for Bit:= 3 to 63 do
if Value = Int64(1) shl Bit // 8, 16, 32, 64, ..., -9223372036854775808
then Exit;
Result:= False;
end;
end;
// Обработчик нажатия на кнопку Button1
procedure TForm1.Button1Click(Sender: TObject);
var
Value: Int64; // <-------- Вот ЭТО - ТВОЁ ЧИСЛО!!!111
begin
if CheckEdit(Edit1, Value) // Преобразование строки в число и проверка
then ShowMessage('Введено правильное число' + IntToStr(Value) + '.')
else ShowMessage('Введено не число или неверное значение.');
end;
З.Ы. Впредь, прежде чем что-то сделать, подумай головой. От этого зависит мнение окружающих о тебе.
З.З.Ы. Накачай себе книжек для чайников и читай, читай, читай!
 |
Ответ отправил: min@y™ (статус: Доктор наук)
Время отправки: 16 января 2011, 10:25
Оценка за ответ: 4
Комментарий к оценке: чо за хрень?
|
Мини-форум вопроса
Всего сообщений: 61; последнее сообщение — 18 января 2011, 12:04; участников в обсуждении: 7.
Страницы: [1] [2] [3] [4] [Следующая »]
16 января 2011, 11:40: Вопрос перемещён из тематического раздела Delphi » Общие вопросы по программированию в раздел Delphi » Работа с компонентами и библиотеками модератором Ерёмин А.А.
|
Толяныч (статус: 4-ый класс), 16 января 2011, 12:55 [#1]:
Во блин, ему разжевали, а он -1 ( " потому что я этого не понимаю" )
|
|
min@y™ (статус: Доктор наук), 16 января 2011, 14:08 [#2]:
Цитата (min@y™):
Комментарий к оценке: чо за хрень?
Слышь, ты, двоечник! Ещё один гудок в мою сторону без аргументов, и я буду закрывать твои вопросы по мере их появления!
Надеюсь, админ эту оценку отменит, ибо несправедливо.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Ерёмин А.А. (статус: *Администратор), 16 января 2011, 14:19 [#3]:
Нарушений правил сайта не наблюдается, хотя оценка неаргументированная. Автору вопроса выдано предупреждение.
|
|
min@y™ (статус: Доктор наук), 16 января 2011, 14:20 [#4]:
Админ мне предложил поставить минус автору, но я этого делать не стал. Ибо, ГМИ.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Адмирал (статус: Посетитель), 16 января 2011, 19:14 [#5]:
if Value = 1 shl Bit // 8, 16, 32, 64, ..., 9223372036854775808 поясните плз эту строку
|
|
Вадим К (статус: Академик), 16 января 2011, 19:38 [#6]:
shl - операция битового сдвига влево.
1 shl 2 это будет 4
3 shl 1 будет 6
если подойти математически, то это
n shl m = (n * 2m) mod 232 (если конечно говорить о 32 битных числах).
Галочка "подтверждения прочтения" - вселенское зло.
|
|
Адмирал (статус: Посетитель), 16 января 2011, 20:10 [#7]:
а бит всегда кратен 3 чтоле? или чо?
|
|
Вадим К (статус: Академик), 16 января 2011, 21:00 [#8]:
бит не может быть кратен ничему. Потому что это минимальная единица измерения информации.
Галочка "подтверждения прочтения" - вселенское зло.
|
|
Адмирал (статус: Посетитель), 16 января 2011, 21:41 [#9]:
чот я не понял, вадим не мог бы ты написать код с событием нажатие на кнопку, и нужно чтобы цифры если она 8 16 32 64
в переменную записывалась, ну офк проверка что это вообще цифра
(Edit)
|
|
Адмирал (статус: Посетитель), 16 января 2011, 21:43 [#10]:
min@y™: ну или ты если не занят
|
|
Адмирал (статус: Посетитель), 16 января 2011, 21:43 [#11]:
с коментариями
|
|
min@y™ (статус: Доктор наук), 17 января 2011, 08:22 [#12]:
А чем мой код не подошёл? Он не работает, что ли?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Адмирал (статус: Посетитель), 17 января 2011, 12:25 [#13]:
ну пожалуста можно мне с событием нажатие на кнопку, и с тем чтобы записывалось в переменную, и ещё с комментарияи
|
|
min@y™ (статус: Доктор наук), 17 января 2011, 12:44 [#14]:
Цитата (Адмирал):
ну пожалуста можно мне с событием нажатие на кнопку, и с тем чтобы записывалось в переменную, и ещё с комментарияи
И ты всё это хочешь за оценку "-1"? Да ещё с комментариями?
А РОЖА НЕ ТРЕСНЕТ??!!11
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Адмирал (статус: Посетитель), 17 января 2011, 13:46 [#15]:
Да я же пошутил, неужто для тебя так важна оценка? помойму важны знания(знаю банально ну да ладно)
|
|
min@y™ (статус: Доктор наук), 17 января 2011, 14:24 [#16]:
Цитата (Адмирал):
неужто для тебя так важна оценка?
Оценка должна отражать правильность ответа. -1 заслуживает только матерный бред не по теме. Аргументируй, для начала, почему -1?
Цитата (Адмирал):
помойму важны знания
Перемешал мух с котлетами, теперь сам и хавай.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Адмирал (статус: Посетитель), 17 января 2011, 14:27 [#17]:
у меня нету аргументов, ну плиз сделай, извини я же пошутил
|
|
Вадим К (статус: Академик), 17 января 2011, 14:29 [#18]:
Да в том то и дело, что знаний у нас немного есть и мы, как добрые люди, хотим ими делиться. Но когда нам плюют в душу и говорят "знания важнее оценки"...
Можно ведь было в форуме расспросить, все бы рассказали, растолковали, а нет, куда проще поставить -1.
Единственная вина min@y™ - в том, что он написал достаточно оригинальное решение и забыл написать, что такое shl.
А это знают далеко не все даже продвинутые программисты. Недавно, я общался с человеком, очень сильным java разработчиком, который ведет очень крупный проект и он ничего не знал о битовых операциях вообще.
to stason: я думаю, единственное правильное решение для данного случая - извиниться перед min@y™, исправить ему оценку, как минимум до 4 и люди потянутся. И в будущем, лучше задать на минифоруме сотню тупых вопросов, чем ставить -1.
Галочка "подтверждения прочтения" - вселенское зло.
|
|
Адмирал (статус: Посетитель), 17 января 2011, 14:36 [#19]:
я хотел поменять оценку, но нельзя
|
|
Вадим К (статус: Академик), 17 января 2011, 14:44 [#20]:
было бы только желание. поменять можно. например написав Ерёмин А.А. - он администратор и может это сделать. Было бы только желание.
Галочка "подтверждения прочтения" - вселенское зло.
|
Страницы: [1] [2] [3] [4] [Следующая »]
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|