Форум программистов, компьютерный форум, киберфорум
Free Pascal
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 17.07.2015
Сообщений: 1
1

Не работает программа для определения количества цифр в натуральном числе

17.07.2015, 23:18. Просмотров 523. Ответов 7
Метки нет (Все метки)

Написал простую программу для определение кол-ва цифр в натуральном числе. Однако она не работает с цифрами, состоящими более чем из 4 знаков. С остальными без проблем. Вот код
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
var a, k : integer;
 
procedure get (arg : integer);
var i : integer;
Begin
i:=10;
k:=1;
repeat
        if (arg div i ) >= 1 then
                begin
                k:=k+1;
                i:=i*10;
                end
        else break;
until false;
End;
 
Begin
Writeln('Введите число...');
Readln(a);
get(a);
Writeln('Число символов : ', k);
Writeln('Нажмите Enter...');
Readln();
End.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.07.2015, 23:18
Ответы с готовыми решениями:

Рекурсивная функция для подсчета количества цифр в заданном натуральном числе
Нужно сделать рекурсивную функцию для подсчета количества цифр в заданном натуральном числе. Я смог...

Формула для определения количества десятичных цифр в числе
Есть ли формула, по которой можно найти количество цифр в числе, получившимся, при возведении в...

Составить блок-схему программы определения количества повторений первой цифры в натуральном числе
Дано натуральное число. Составить блок-схему программы определения, сколько раз в нем встречается...

Рекурсия: подсчет количества цифр в заданном натуральном числе
12Подсчитать количество цифр в заданном натуральном числе. Составить рекуррентную функцию.

7
2505 / 1126 / 582
Регистрация: 07.06.2014
Сообщений: 3,278
17.07.2015, 23:44 2
измени тип integer на что-то более внушительно - либо на LongInt, либо на Int64

потом, зачем тебе процедура, да ещё меняющая глобальную переменную?! Это не комильфо!
Ты так не пиши.
да и алгоритм, на мой взгляд, у тебя слишком замудрённый.

может так тебе больше понравится:
Pascal
1
2
3
4
5
6
7
8
9
10
11
function getNumber (arg : longint) : longint;
var rez : longint;
Begin
  arg := abs(arg); {это чтобы отрицательные числа тоже нормально обрабатывались!}
  rez := 0;
  repeat
     inc(rez);
     arg := arg div 10;
  until arg=0;
  getNumber := rez;
End;

дальше сам разберёшься?
али подсказать что?
1
Эксперт Pascal/Delphi
2277 / 1265 / 1479
Регистрация: 29.08.2014
Сообщений: 4,577
18.07.2015, 05:45 3
Pascal
1
2
3
4
5
6
7
8
9
var
  n:int64;
begin
  repeat
   write('n='); 
    readln(n);
  until n>0;
  writeln('Количество цифр в числе:',trunc(ln(n)/ln(10))+1);
end.
0
Модератор
60545 / 45549 / 31435
Регистрация: 18.05.2008
Сообщений: 109,481
18.07.2015, 06:07 4
Если в стиле ТС...
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
procedure get (arg : int64;var k:byte);
begin
arg:=abs(arg);
k:=0;
while arg>0 do
 begin
  arg:=arg div 10;
  inc(k);
 end;
end;
var a:int64;
    k:byte;
Begin
Writeln('Введите число...');
Readln(a);
get(a,k);
Writeln('Количество цифр=',k);
Writeln('Нажмите Enter...');
Readln
end.
0
2505 / 1126 / 582
Регистрация: 07.06.2014
Сообщений: 3,278
18.07.2015, 17:32 5
Puporev, а в числе 0 сколько цифр?
0
Модератор
60545 / 45549 / 31435
Регистрация: 18.05.2008
Сообщений: 109,481
18.07.2015, 17:44 6
Мне как-то это уже писали... Но ....

Добавлено через 5 минут
Pascal
1
2
3
4
5
6
7
8
k:=0;
while arg>10 do
 begin
  arg:=arg div 10;
  inc(k);
 end;
k:=k+1
end;
1
Эксперт Pascal/Delphi
2277 / 1265 / 1479
Регистрация: 29.08.2014
Сообщений: 4,577
19.07.2015, 17:36 7
Цитата Сообщение от Sergio Leone Посмотреть сообщение
числе 0 сколько цифр?
Вроде 0 входит только в расширенное множество натуральных чисел.
1
Модератор
60545 / 45549 / 31435
Регистрация: 18.05.2008
Сообщений: 109,481
19.07.2015, 17:41 8
Цитата Сообщение от KOTTATbJ4 Посмотреть сообщение
в натуральном числе.
А я это и не заметил, тогда нужно убрать поверку на 0 и abs
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.07.2015, 17:41

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Составить функцию для определения количества значащих цифр в некотором числе N.
Составить функцию для определения количества значащих цифр в некотором числе N.

Написать рекурсивную процедуру подсчета количества нечетных цифр в заданном натуральном числе
Написать рекурсивную процедуру подсчета количества нечетных цифр в заданном натуральном числе

Алгоритм определения количества цифр в шестнадцатиричном числе
Привет, у меня постала задача создать программу на с++, связану с определениям количества цифр в...

Программа для определения количества цифр для нумерации квартир
Программа спрашивает у пользователя, сколько квартир нужно пронумеровать. Результат работы : вывод...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.