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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.12.2008, 18:14   #1
Banny
 
Регистрация: 18.12.2008
Сообщений: 8
Вопрос Является ли заданная строка правильной записью вещественного числа с возможным знаком и десятичной точкой

Определите, является ли заданная строка правильной записью вещественного числа с возможным знаком и десятичной точкой.


Заранее большое вам Спасибо!
Banny вне форума Ответить с цитированием
Старый 18.12.2008, 20:12   #2
CrazyRabbit
Пользователь
 
Аватар для CrazyRabbit
 
Регистрация: 27.10.2008
Сообщений: 38
По умолчанию

если я правильно понял, то 3 решается так
Код:
var n:real;
s:string;
w:integer;
 begin
  readln(s);
   val(s,n,w);
    if w=0 then
     writeln('Yes')
      else
       writeln('No');
end.
CrazyRabbit вне форума Ответить с цитированием
Старый 18.12.2008, 20:28   #3
Banny
 
Регистрация: 18.12.2008
Сообщений: 8
По умолчанию

Большое спасибо.
Banny вне форума Ответить с цитированием
Старый 18.12.2008, 20:42   #4
Banny
 
Регистрация: 18.12.2008
Сообщений: 8
По умолчанию

А не подскажите, возможен ли вариант решения без оператора "Val", если да, то как именно это сделать?
Banny вне форума Ответить с цитированием
Старый 18.12.2008, 21:03   #5
CrazyRabbit
Пользователь
 
Аватар для CrazyRabbit
 
Регистрация: 27.10.2008
Сообщений: 38
По умолчанию

можно попробовать проверять каждый символ, является ли он цифрой, при этом учесть возможную постановку десятичной точки и знака минус.
CrazyRabbit вне форума Ответить с цитированием
Старый 18.12.2008, 21:10   #6
Banny
 
Регистрация: 18.12.2008
Сообщений: 8
По умолчанию

Не могли бы вы продемонстрировать это на языке Паскаля, если вас не затруднит....
Banny вне форума Ответить с цитированием
Старый 18.12.2008, 22:22   #7
CrazyRabbit
Пользователь
 
Аватар для CrazyRabbit
 
Регистрация: 27.10.2008
Сообщений: 38
По умолчанию

держи
Код:
var s:string;
n,i,w,kol,j:integer;
begin
 readln(s);
 if (s[1]='-')or(s[1]='+')then
  j:=2
   else
    j:=1;
  for i:=j to length(s) do
   begin
    if ((ord(s[i])<=48)or(ord(s[i])>=57))then
     if (s[i]='.')and((ord(s[i-1])<48)or(ord(s[i-1])>57))then
	begin
	 writeln('No');
	  halt;
	end
	 else
	 if ((ord(s[i])<48)or(ord(s[i])>57))and(s[i]<>'.') then
	  begin
	   writeln('No');
	    halt;
	  end
	   else
	  if (s[i]='.')and(kol=0)then
	    inc(kol)
	     else
	      if (s[i]='.')and(kol=1) then
	      begin
	       writeln('No');
		halt;
	      end;
     end;
writeln('Yes');
end.
CrazyRabbit вне форума Ответить с цитированием
Старый 18.12.2008, 22:28   #8
Banny
 
Регистрация: 18.12.2008
Сообщений: 8
По умолчанию

Очень, очень большое спасибо!)
Banny вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дана строка S. Преобразовать строку, заменив в ней каждое многоточие одной точкой.Строки в C++ slog Помощь студентам 9 16.12.2008 20:14
Перевод вещественного числа в двоичный код shepelin Свободное общение 9 06.07.2008 10:00
Проверка – является ли раскладка клавиатуры правильной для вводимого текста Xandr Общие вопросы Delphi 7 02.11.2007 09:25
Определить, является ли заданная строка правильной записью вещественного числа Sergik1977 Паскаль, Turbo Pascal, PascalABC.NET 2 18.10.2007 16:53
Числа с плавающей точкой Blondinka Общие вопросы Delphi 8 21.09.2007 11:32