0 / 0 / 0
Регистрация: 16.10.2010
Сообщений: 51
1

Дана строка. Если она представляет собой запись целого числа, то вывести 1

05.11.2010, 22:34. Показов 7539. Ответов 14
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
. Дана строка. Если она представляет собой запись целого числа, то вывести 1; если вещественного (с дробной частью), то вывести 2; если строку нельзя преобразовать в число, то вывести 0.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.11.2010, 22:34
Ответы с готовыми решениями:

Дана строка. Если она представляет собой запись целого числа, то вывести 1;
Дана строка. Если она представляет собой запись целого числа, то вывести 1; если вещественного (с...

Дана строка. Если она представляет собой запись целого числа, то вывести 1
При составлении программы использовать стандартные процедуры и строки. Дана строка. Если она...

Дана строка. Если она представляет собой запись целого числа - то вывести 1, если вещественного - вывести 2
дана строка.если она представляет собой запись целого числа то вывести 1, если вещественного...

Если строка представляет собой запись целого числа, то вывести 1; если вещественного (с дробной частью), то вывести 2
Помогите пожалуйста на ABC паскаль сделать задачу и блок-схему к ней: Дана строка. Если она...

14
2857 / 1986 / 788
Регистрация: 23.09.2010
Сообщений: 4,877
05.11.2010, 23:30 2
Возможно тупо но как смог.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Uses
 CRT;
Var
 s:string;
 n,l,kol,kol2:integer;
 i:real;
begin
readln(s);
kol:=0;
kol2:=0;
for l:=1 to length(s) do
begin
 if s[l] in ['1'..'9','.'] then
 begin
  inc(kol);
 end
 else
  if not (s[l] in ['1'..'9']) then
 begin
  inc(kol2);
 end
 end;
 if (kol<>0) and (kol2=0) then
 begin
  val(s,i,n);
   if frac(i)=0 then
    writeln('1')
     else
      if frac(i)<>0 then
       writeln('2');
 end
  else
   writeln('0');
readkey;
end.
0
Почетный модератор
64299 / 47594 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
06.11.2010, 14:15 3
Если число позволяет применять процедуру val (т.е. если оно целое и помещается в тип Longint), то так.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
var s:string;
     r:real;
     t,c:integer;
begin
write('s=');
readln(s);
val(s,t,c);
if c=0 then write('Это целое число')
else
 begin
  val(s,r,c);
  if c=0 then write('Это вещественное число') 
  else write('Это не число');
 end;
readln
end.
Добавлено через 7 минут
Если нет, то так.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
var s:string;
    r:real;
    c:integer;
    i,k:byte;
begin
write('s=');
readln(s);
k:=0;
i:=1;
while(i<=length(s))and(k=0)do
if not(s[i]in ['0'..'9']) then k:=1
else i:=i+1;
if k=0 then write('Это целое число')
else
 begin
  val(s,r,c);
  if c=0 then write('Это вещественное  число')
  else write('Это не число');
 end;
readln
end.
Чтобы судьбу не испытывать, лучше сразу второй вариант.
0
2857 / 1986 / 788
Регистрация: 23.09.2010
Сообщений: 4,877
06.11.2010, 14:20 4
Puporev мне кажется тут ещё надо позицию точки определить и количество.Ато ввожу 123. Это вещественное число. Ну у меня также.
0
Почетный модератор
64299 / 47594 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
06.11.2010, 14:31 5
Ато ввожу 123. Это вещественное число.
Ну и что? Введи это в обычный калькулятор, тоже воспринимает как число...
Также как например 00056 это целое число
0
2857 / 1986 / 788
Регистрация: 23.09.2010
Сообщений: 4,877
06.11.2010, 14:38 6
Puporev а .123 тоже нормально?А у меня тоже верно тогда?
0
Почетный модератор
64299 / 47594 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
06.11.2010, 14:52 7
Цитата Сообщение от SuPeR XaKer Посмотреть сообщение
а .123 тоже нормально?
Да, это вещественное число 0.123
0
2857 / 1986 / 788
Регистрация: 23.09.2010
Сообщений: 4,877
06.11.2010, 14:53 8
...........
0
Почетный модератор
64299 / 47594 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
06.11.2010, 14:55 9
Да, только как-то длинно и запутанно...
0
2857 / 1986 / 788
Регистрация: 23.09.2010
Сообщений: 4,877
06.11.2010, 15:16 10
нет у меня не верно.
Как вариант.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Uses
 CRT;
Var
 s:string;
 n,l,kol,kol2,kol3:integer;
 i:real;
begin
readln(s);
kol:=0;
kol2:=0;
kol3:=0;
for l:=1 to length(s) do
begin
 if s[l] in ['0'..'9'] then
 begin
  inc(kol);
 end
 else
  if not (s[l] in ['0'..'9','.']) then
 begin
  inc(kol2);
 end
 else
  if s[l] in ['.'] then
 begin
  inc(kol3);
 end
 end;
 if (kol<>0) and (kol3=0) and (kol2=0) then writeln('1')
     else
     if (kol2<>0) or (kol3>1) then writeln('0')
  else
  if (kol3=1)then writeln('2');
readkey;
end.
0
Почетный модератор
64299 / 47594 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
06.11.2010, 15:18 11
Цитата Сообщение от SuPeR XaKer Посмотреть сообщение
нет у меня не верно.
Не знаю, я три раза попробовал первый код, он распознал целое, вещественное и не число, код не смотрел.
0
2857 / 1986 / 788
Регистрация: 23.09.2010
Сообщений: 4,877
06.11.2010, 15:20 12
в моём коде если ввести 123. будет ответ целое т.е. 1
0
Почетный модератор
64299 / 47594 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
26.02.2011, 11:11 13
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
uses crt;
var s:string;
    a:longint;
    r:real;
    c:integer;
begin
clrscr;
writeln('Введите строку для определения число ли это и какое:');
readln(s);
val(s,a,c);
if c=0 then write(1)
else
 begin
  val(s,r,c);
  if c=0 then write(2)
  else write(0);
 end;
readln
end.
0
0 / 0 / 0
Регистрация: 30.06.2014
Сообщений: 57
26.12.2014, 10:36 14
можете перевести это в С#?
0
Puporev
26.12.2014, 10:37     Дана строка. Если она представляет собой запись целого числа, то вывести 1
  #15

Не по теме:

Эхо отвечает:- А фиг его знает....

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.12.2014, 10:37

Строка представляет собой запись целого числа. Составьте программу ее перевода в соответсвующую величину целого типа.
Помогите сделать задание: Строка представляет собой запись целого числа. Составьте программу ее...

Дана строка. Если она представляет собой запись целого числа, то вывести 1
Дана строка. Если она представляет собой запись целого числа, то вывести 1; если вещественного (с...

Дана строка. Если она представляет собой запись целого числа, то вывести 1
IX.Символы и строки 6. Дана строка. Если она представляет собой запись целого числа, то вывести...

Дана строка. Если она представляет собой запись целого числа, то вывести 1
под словом &quot;текст&quot; понимается строка символов, слова в которой, разделены пробелами, &quot; , &quot;,&quot; . &quot;,&quot;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru