![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
sklip |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 11 Репутация: ![]() ![]() ![]() |
Как сделать так, чтобы с клавиатуры вводились только цифры. А при попытки ввести буквы, программа не реагировала .
И ещё, как вычислить вот это? Сообщение отредактировано: sklip - 13.06.2004 7:12 Эскизы прикрепленных изображений ![]() |
![]() ![]() |
virt |
![]()
Сообщение
#2
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 419 Пол: Мужской Репутация: ![]() ![]() ![]() |
используй readkey.
и если введена цифра коды : 30h-39h если не ошибаюсь. Код sqrt(a/(3.4-d)) -------------------- |
AlaRic |
![]()
Сообщение
#3
|
... ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 347 Пол: Мужской Репутация: ![]() ![]() ![]() |
Не реагировала - это как? Ждала цифр или вылетала? Турбо паскаль в этом случае просто вылетает, если я конечно не ошибаюсь!
|
virt |
![]()
Сообщение
#4
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 419 Пол: Мужской Репутация: ![]() ![]() ![]() |
AlaRic
sklip наверное имела ввиду если цифра то что-то с ней делать ,если не цифра то ничего не делать. -------------------- |
Romtek |
![]()
Сообщение
#5
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 303 Пол: Мужской Реальное имя: Роман Репутация: ![]() ![]() ![]() |
Читаешь код клавиши. Если цифра - заносишь в стек и считаешь их кол-во.
По нажатии ввода останавливаешься и извлекаешь из стека числа, и формируешь число. ABC = C*10^0 + B*10^1 + A*10^2 Сообщение отредактировано: romtek - 13.06.2004 10:27 -------------------- Romiras HomeLab- материалы и статьи по разработке ПО, моделирование алгоритмов, обработка и анализ информации, нейронные сети, машинное зрение и прочее.
|
Romtek |
![]()
Сообщение
#6
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 303 Пол: Мужской Реальное имя: Роман Репутация: ![]() ![]() ![]() |
Обработка правильного вывода, чтобы прога не вылетала при введении буквы, делается так:
Код repeat {$I-} readln(num); {$I+} until IOresult=0; PS Пример можно поместить а FAQ -------------------- Romiras HomeLab- материалы и статьи по разработке ПО, моделирование алгоритмов, обработка и анализ информации, нейронные сети, машинное зрение и прочее.
|
sklip |
![]()
Сообщение
#7
|
Новичок ![]() Группа: Пользователи Сообщений: 11 Репутация: ![]() ![]() ![]() |
Цитата AlaRic sklip наверное имела ввиду если цифра то что-то с ней делать ,если не цифра то ничего не делать. Во первых, ни имела, а имел. Во вторых, введёные цифры надо посчитать по формуле, т.е. цифр должно быть 2 введины с клавиатуры. Как сделать, чтобы число D было не равно 3.4 т.е. это число не вводилось? |
APAL |
![]()
Сообщение
#8
|
![]() Смотрю... ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 1 055 Пол: Мужской Реальное имя: Пшеничный Алексей Анатольевич Репутация: ![]() ![]() ![]() |
Вопрос был поставлен не правильно....
Ведь это же обычная "защита от дурака". Надо считать не сразу все выражение целиком, а только 3.4-D и если итог равен 0 попросить ввести значение еще раз или выдать сообщение, что решений нет. Это как корни квадратного уравнения - сначала считать дискриминант, а потом все остальное... ![]() -------------------- |
APAL |
![]()
Сообщение
#9
|
![]() Смотрю... ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 1 055 Пол: Мужской Реальное имя: Пшеничный Алексей Анатольевич Репутация: ![]() ![]() ![]() |
Кстати, надо ввести еще проверку на положительность выражения под корнем перед вычисления самого корня. ;)
-------------------- |
Romtek |
![]()
Сообщение
#10
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 303 Пол: Мужской Реальное имя: Роман Репутация: ![]() ![]() ![]() |
Простая проверка
if D=3.4 then {заново ввести D} В чём проблема с формулой? Кв. корень? -------------------- Romiras HomeLab- материалы и статьи по разработке ПО, моделирование алгоритмов, обработка и анализ информации, нейронные сети, машинное зрение и прочее.
|
sklip |
![]()
Сообщение
#11
|
Новичок ![]() Группа: Пользователи Сообщений: 11 Репутация: ![]() ![]() ![]() |
А как ограничить количество вводимых символов до запятой и после
Максимальное число. 99.99 |
Altair |
![]()
Сообщение
#12
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
Ну как как, просто вводим данные в строку посимвольно, и все время следим за размером строки. Так и защита от "дарака" реализуется, вводим данные в строку, а потом преобразуем в цифры, если ошибка будет, то просим заново ввести.
-------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
Stream |
![]()
Сообщение
#13
|
Новичок ![]() Группа: Пользователи Сообщений: 10 Репутация: ![]() ![]() ![]() |
Лучше всего для ограничения количества вводимых символов использовать функцию ReadBuf, а для перевода в число - Val..
|
![]() ![]() |
![]() |
Текстовая версия | 22.06.2025 0:16 |