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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.04.2009, 20:15   #1
RomT24
Пользователь
 
Регистрация: 10.01.2009
Сообщений: 71
Восклицание Подсчет значащих цифр массива

Помогите решить задачу:
"Дано десятичное число. Подсчитать, сколько значащих цифр у него после запятой. Например для числа 4.456655321234 это кол-во равно 6"

Заранее спасибо!
RomT24 вне форума Ответить с цитированием
Старый 26.04.2009, 20:45   #2
Gongled
Пользователь
 
Регистрация: 17.02.2009
Сообщений: 78
По умолчанию

Решение. Конечно, не самое изящное.
Код:
program pr;
uses CRT;
var
s : string;
a : array['0'..'9'] of integer;
c : char;
i, sum : integer;
begin
clrscr;

write('Введите строку: ');
{ Читаем строку с клавиатуры }
read(s);

{ Выделяем дробную часть }
s := copy(s, pos('.',s)+1, length(s)-pos('.',s)+1);

for i:=1 to length(s) do
{ Проверяем принадлежность к множеству }
{ Присваиваем значение 1 всем присутствующим символам}
if s[i] in ['0'..'9'] then a[s[i]] := 1;

{ Считаем количество единиц}
for c:='0' to '9' do sum := sum + a[c];
write(sum);

end.
Пишу глупости.
Gongled вне форума Ответить с цитированием
Старый 26.04.2009, 21:21   #3
RomT24
Пользователь
 
Регистрация: 10.01.2009
Сообщений: 71
По умолчанию

Gongled, спасибо огромное!! И кто нибудь мог бы просто написать программу, которая считает кол-во значащих цифр, но в обычном массиве чисел? А то я не могу додуматься до правильного алгоритма (
RomT24 вне форума Ответить с цитированием
Старый 26.04.2009, 21:28   #4
RomT24
Пользователь
 
Регистрация: 10.01.2009
Сообщений: 71
По умолчанию

И пожалуйста объясните поподробней эту часть программы:
for i:=1 to length(s) do
{ Проверяем принадлежность к множеству }
{ Присваиваем значение 1 всем присутствующим символам}
if s[i] in ['0'..'9'] then a[s[i]] := 1;

{ Считаем количество единиц}
for c:='0' to '9' do sum := sum + a[c];
write(sum)
RomT24 вне форума Ответить с цитированием
Старый 27.04.2009, 00:53   #5
Doholyan
Форумчанин
 
Регистрация: 26.04.2009
Сообщений: 270
По умолчанию

"Дано десятичное число. Подсчитать, сколько значащих цифр у него после запятой. Например для числа 4.456655321234 это кол-во равно 6"


поясни..."значащих цифр"
Doholyan вне форума Ответить с цитированием
Старый 27.04.2009, 17:32   #6
RomT24
Пользователь
 
Регистрация: 10.01.2009
Сообщений: 71
По умолчанию

Значащих значит разных, отличающихся друг от друга
RomT24 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
PHP: использование элемента массива как массива Sudia Помощь студентам 1 20.02.2009 20:48
Натуральное число, в записи которого п цифр, называется числом Армстронга, если сумма его цифр, возведенн OTLi4HO Общие вопросы C/C++ 6 14.01.2009 19:48
Подсчет траффика joker Win Api 9 11.01.2009 13:29
переписать из массива в линейный двунаправленный список чётные элементы массива Black_Ak24 Помощь студентам 12 08.01.2008 00:44
Подсчет r2n Общие вопросы Delphi 4 01.05.2007 05:48