IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Цифры, И ещё, как вычислить вот это?
sklip
сообщение 13.06.2004 7:11
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 11

Репутация: -  0  +


Как сделать так, чтобы с клавиатуры вводились только цифры. А при попытки ввести буквы, программа не реагировала .

И ещё, как вычислить вот это?

Сообщение отредактировано: sklip - 13.06.2004 7:12


Эскизы прикрепленных изображений
Прикрепленное изображение
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 12)
virt
сообщение 13.06.2004 7:42
Сообщение #2


Знаток
****

Группа: Пользователи
Сообщений: 419
Пол: Мужской

Репутация: -  6  +


используй readkey.
и если введена цифра коды : 30h-39h если не ошибаюсь.

Код
sqrt(a/(3.4-d))


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
AlaRic
сообщение 13.06.2004 7:44
Сообщение #3


...
*****

Группа: Пользователи
Сообщений: 1 347
Пол: Мужской

Репутация: -  3  +


Не реагировала - это как? Ждала цифр или вылетала? Турбо паскаль в этом случае просто вылетает, если я конечно не ошибаюсь!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
virt
сообщение 13.06.2004 7:53
Сообщение #4


Знаток
****

Группа: Пользователи
Сообщений: 419
Пол: Мужской

Репутация: -  6  +


AlaRic
sklip наверное имела ввиду если цифра то что-то с ней делать ,если не цифра то ничего не делать.


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Romtek
сообщение 13.06.2004 10:22
Сообщение #5


Знаток
****

Группа: Пользователи
Сообщений: 303
Пол: Мужской
Реальное имя: Роман

Репутация: -  2  +


Читаешь код клавиши. Если цифра - заносишь в стек и считаешь их кол-во.
По нажатии ввода останавливаешься и извлекаешь из стека числа, и формируешь число.
ABC = C*10^0 + B*10^1 + A*10^2

Сообщение отредактировано: romtek - 13.06.2004 10:27


--------------------
Romiras HomeLab- материалы и статьи по разработке ПО, моделирование алгоритмов, обработка и анализ информации, нейронные сети, машинное зрение и прочее.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Romtek
сообщение 13.06.2004 10:26
Сообщение #6


Знаток
****

Группа: Пользователи
Сообщений: 303
Пол: Мужской
Реальное имя: Роман

Репутация: -  2  +


Обработка правильного вывода, чтобы прога не вылетала при введении буквы, делается так:
Код
repeat
 {$I-}
 readln(num);
 {$I+}
until IOresult=0;


PS Пример можно поместить а FAQ


--------------------
Romiras HomeLab- материалы и статьи по разработке ПО, моделирование алгоритмов, обработка и анализ информации, нейронные сети, машинное зрение и прочее.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
sklip
сообщение 14.06.2004 8:57
Сообщение #7


Новичок
*

Группа: Пользователи
Сообщений: 11

Репутация: -  0  +


Цитата
AlaRic
sklip наверное имела ввиду если цифра то что-то с ней делать ,если не цифра то ничего не делать.


Во первых, ни имела, а имел.
Во вторых, введёные цифры надо посчитать по формуле, т.е. цифр должно быть 2 введины с клавиатуры.
Как сделать, чтобы число D было не равно 3.4 т.е. это число не вводилось?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
APAL
сообщение 14.06.2004 11:10
Сообщение #8


Смотрю...
*****

Группа: Модераторы
Сообщений: 1 055
Пол: Мужской
Реальное имя: Пшеничный Алексей Анатольевич

Репутация: -  6  +


Вопрос был поставлен не правильно....

Ведь это же обычная "защита от дурака".
Надо считать не сразу все выражение целиком, а только 3.4-D и если итог равен 0 попросить ввести значение еще раз или выдать сообщение, что решений нет.
Это как корни квадратного уравнения - сначала считать дискриминант, а потом все остальное... smile.gif


--------------------
Если что-то не делает того, что вы запланировали ему делать - это еще не означает, что оно бесполезно.
--------------------
Прежде, чем задать вопрос - Правила :: FAQ :: Поиск
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
APAL
сообщение 14.06.2004 11:12
Сообщение #9


Смотрю...
*****

Группа: Модераторы
Сообщений: 1 055
Пол: Мужской
Реальное имя: Пшеничный Алексей Анатольевич

Репутация: -  6  +


Кстати, надо ввести еще проверку на положительность выражения под корнем перед вычисления самого корня. ;)


--------------------
Если что-то не делает того, что вы запланировали ему делать - это еще не означает, что оно бесполезно.
--------------------
Прежде, чем задать вопрос - Правила :: FAQ :: Поиск
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Romtek
сообщение 14.06.2004 11:15
Сообщение #10


Знаток
****

Группа: Пользователи
Сообщений: 303
Пол: Мужской
Реальное имя: Роман

Репутация: -  2  +


Простая проверка
if D=3.4 then {заново ввести D}

В чём проблема с формулой? Кв. корень?


--------------------
Romiras HomeLab- материалы и статьи по разработке ПО, моделирование алгоритмов, обработка и анализ информации, нейронные сети, машинное зрение и прочее.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
sklip
сообщение 17.06.2004 11:08
Сообщение #11


Новичок
*

Группа: Пользователи
Сообщений: 11

Репутация: -  0  +


А как ограничить количество вводимых символов до запятой и после
Максимальное число. 99.99
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Altair
сообщение 17.06.2004 13:40
Сообщение #12


Ищущий истину
******

Группа: Модераторы
Сообщений: 4 824
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


Ну как как, просто вводим данные в строку посимвольно, и все время следим за размером строки. Так и защита от "дарака" реализуется, вводим данные в строку, а потом преобразуем в цифры, если ошибка будет, то просим заново ввести.


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Stream
сообщение 24.06.2004 6:05
Сообщение #13


Новичок
*

Группа: Пользователи
Сообщений: 10

Репутация: -  0  +


Лучше всего для ограничения количества вводимых символов использовать функцию ReadBuf, а для перевода в число - Val..
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 22.06.2025 0:16
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"