Как сделать так, чтобы с клавиатуры вводились только цифры. А при попытки ввести буквы, программа не реагировала .
И ещё, как вычислить вот это?
используй readkey.
и если введена цифра коды : 30h-39h если не ошибаюсь.
Код
sqrt(a/(3.4-d))
Не реагировала - это как? Ждала цифр или вылетала? Турбо паскаль в этом случае просто вылетает, если я конечно не ошибаюсь!
AlaRic
sklip наверное имела ввиду если цифра то что-то с ней делать ,если не цифра то ничего не делать.
Читаешь код клавиши. Если цифра - заносишь в стек и считаешь их кол-во.
По нажатии ввода останавливаешься и извлекаешь из стека числа, и формируешь число.
ABC = C*10^0 + B*10^1 + A*10^2
Обработка правильного вывода, чтобы прога не вылетала при введении буквы, делается так:
Код
repeat
{$I-}
readln(num);
{$I+}
until IOresult=0;
PS Пример можно поместить а FAQ
Цитата
AlaRic
sklip наверное имела ввиду если цифра то что-то с ней делать ,если не цифра то ничего не делать.
Во первых, ни имела, а имел.
Во вторых, введёные цифры надо посчитать по формуле, т.е. цифр должно быть 2 введины с клавиатуры.
Как сделать, чтобы число D было не равно 3.4 т.е. это число не вводилось?
Вопрос был поставлен не правильно....
Ведь это же обычная "защита от дурака".
Надо считать не сразу все выражение целиком, а только 3.4-D и если итог равен 0 попросить ввести значение еще раз или выдать сообщение, что решений нет.
Это как корни квадратного уравнения - сначала считать дискриминант, а потом все остальное...
Кстати, надо ввести еще проверку на положительность выражения под корнем перед вычисления самого корня. ;)
Простая проверка
if D=3.4 then {заново ввести D}
В чём проблема с формулой? Кв. корень?
А как ограничить количество вводимых символов до запятой и после
Максимальное число. 99.99
Ну как как, просто вводим данные в строку посимвольно, и все время следим за размером строки. Так и защита от "дарака" реализуется, вводим данные в строку, а потом преобразуем в цифры, если ошибка будет, то просим заново ввести.
Лучше всего для ограничения количества вводимых символов использовать функцию ReadBuf, а для перевода в число - Val..
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста,
нажмите сюда.