Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.06.2010, 11:12   #1
Раздва
 
Регистрация: 01.06.2010
Сообщений: 5
По умолчанию Как проверить, является ли введённый текст действительным числом, на паскале?

Нужно чтобы программа работала с отрицательными числами и числами с точкой, который тоже в свою очередь могут быть отрицательными, вообщем нужно проверить, принадлежит ли число R.
Раздва вне форума Ответить с цитированием
Старый 03.06.2010, 12:08   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А процедура VAL разве не берет вещественные?
Проверяй ей. если она в третий параметр возвращает число отличное от нудя, значит введено неверно.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.06.2010, 12:17   #3
Раздва
 
Регистрация: 01.06.2010
Сообщений: 5
По умолчанию

А как быть с минусом и точкой?
Раздва вне форума Ответить с цитированием
Старый 03.06.2010, 12:25   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
   var f:double; e:integer;
begin
 val('-123.2',f,e);
  { TODO -oUser -cConsole Main : Insert code here }
  write(f,e);readln;
end.
Ответ ясен?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.06.2010, 23:50   #5
Раздва
 
Регистрация: 01.06.2010
Сообщений: 5
По умолчанию

А как быть, если будет введено что-то вроде -0000 или 007?
Раздва вне форума Ответить с цитированием
Старый 06.06.2010, 08:18   #6
Chudo4258
Форумчанин
 
Аватар для Chudo4258
 
Регистрация: 19.02.2009
Сообщений: 622
По умолчанию

как, как???
вы напишите предложенный вам код и проверьте.
Цитата:
А как быть с минусом и точкой?
все норм. работает.
Цитата:
А как быть, если будет введено что-то вроде -0000 или 007?
при вводе -000 в переменную f запишется значение 0, значение е=0.
при вводе 007 в переменную f запишется значение 7, значение е=0.
Жми на весы!!!
Chudo4258 вне форума Ответить с цитированием
Старый 06.06.2010, 13:17   #7
Раздва
 
Регистрация: 01.06.2010
Сообщений: 5
По умолчанию

Цитата:
Сообщение от Chudo4258 Посмотреть сообщение
как, как???
вы напишите предложенный вам код и проверьте.

все норм. работает.


при вводе -000 в переменную f запишется значение 0, значение е=0.
при вводе 007 в переменную f запишется значение 7, значение е=0.
Ну так в том-то и дело, если введено действительное число, то е=0, и тогда выводится сообщение "Da". И если введено что-то вроде 0004, то e тоже равно 0 и будит выведено сообщение "Da", но ведь запись 0004 не корректна, как быть?

Код:
Program ff;
 var  ec : Integer;
         s : String;
         r : Real;
 Begin
   Write('Vvedite stroku: ');
   Readln(s);

   val(s,r,ec);
   if (ec = 0) then Writeln('Da');

   Readln;
 End.
Раздва вне форума Ответить с цитированием
Старый 06.06.2010, 17:11   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
но ведь запись 0004 не корректна
Это с Вашей точки зрения!
А с точки зрения математики (или ЯП) - это корректная запись.
Проверьте, например, в том же Pascal:
Код:
var r : real;
begin
  r := 00004;
 WriteLn(r:10:5);
end.
Всё равно считаете, что "запись 0004 не корректна" ?!
Ну тогда сформулируйте признаки, по которым она некорректа и проверьте их дополнительно, после VAL
например, Вы считаете, что запись действительного числа должна содержать точку В ОБЯЗАТЕЛЬНОМ порядке.
Тогда, вставьте дополнительную проверку:
Код:
if Pos('.', s)=0 then WriteLn('NET') .....
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверить является ли строка палиндромом. rrrl Microsoft Office Excel 2 30.05.2010 18:33
Как проверить является ли числом? killer12rus JavaScript, Ajax 1 18.05.2009 05:09
Проверить, является ли заданная строка симметричной. - Ассемблер VHomer Помощь студентам 3 27.12.2008 19:37
Как программно узнать не является ли слово в строке числом? SkAndrew Общие вопросы Delphi 10 07.05.2008 13:03