Написать программу, которая проверяет, является ли введенная с клавиатуры строка дробным...

0 голосов
102 просмотров

Написать программу, которая проверяет, является ли введенная с клавиатуры строка дробным числом.
На Паскале


Информатика (14 баллов) | 102 просмотров
0

дробная часть отделяется точкой или запятой?

0

запятой

Дан 1 ответ
0 голосов

// Программа на паскале
var
  s: string;
  k, i: integer;
begin
  readln(s);
  k := pos(',', s);
  if (k < 2) or (k = length(s)) then writeln('No')
  else
  begin
    for i := 1 to length(s) do
      if (i <> k) and ((s[i] < '0') or (s[i] > '9')) then
      begin
        writeln('No');
        exit
      end;
    writeln('Yes');
  end;
end.

Примеры работы программы:
Ввод   Вывод
1,6          Yes
123,        No
,49          No
0,758     Yes

(13.3k баллов)
0

-1,12 - пишет No, +5,1 тоже No.

0

Сразу после чтения добавить: if (s[1] = '+') or (s[1] = '-') then delete(s, 1, 1)

0

А вообще в задании нужно указывать ограничения, может обошелся бы заменой запятой и val'ом

0

На этом ресурсе пришлось принять некие "принципы умолчания". В частности: 1) не указан язык - пишем программу на любом, 2) если ничего не сказано и не выводится из задания тип данных - назначаем сами, 3) если не сказано о необходимости контроля ввода - считаем, что данные удовлетворяют необходимым требованиям (тип, диапазон,представление), 4) если задача на анализ вводимого потока данных - предполагаем, что могут поступать совершенно любые данные....

0

Я конечно понимаю, что добавить можно много чего, но комментарии впоследствии удаляются. Так что это модераторы решат - принимать ответ таким или отправить его Вам на исправление. Я сделал это замечание лишь для того, чтобы Вы на будущее сразу учитывали подобные вещи.

0

То есть, если указано "на паскале", то можно писать программы в PascalABC.NET, используя библиотеки .NET?

0

Безусловно. Если не указана или явно не следует, что это FPC/Lazarus, Delphi или Turbo/Borland Pascal

0

Исключение - указание ПаскальАВС, АВС, ABC Pascal. Потому что есть Pascal ABC (не поддерживаемая с 2007 года версия) и современная PascalABC.NET. В этом случает следует просить у автора вопроса уточнение.