Показать сообщение отдельно
Старый 25.02.2010, 15:48   #1 (permalink)
Linka
Member
 
Аватар для Linka
 
Регистрация: 24.01.2010
Сообщений: 43
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 26
По умолчанию Задание на множества.

Опять-таки из учебника.

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

Задача, из раздела о множествах. Потому интересуют решения, только там где операции с множествами.

Вот как у меня получилось:

Цитата:
program raznie_chisla;
uses crt;

var str:string;
mn: set of byte;
j,k:integer;
begin
clrscr;
readln(str);
k:=1;
{убираем незначащие нули из начала строки}
while (Ord(str[k])-Ord('0'))=0 do begin
Delete(str,1,1);
end;

{заносим в множество числа, по одному}
for k:=1 to length(str) do
begin
mn:=mn+[Ord(str[k])-Ord('0')];
end;

j:=0;
for k:=0 to 9 do
begin if k in mn then j:=j+1; end;
writeln(j);
readln;
end.
Все работает. Но какой-то уж больно громоздкий способ получился. Можно еще как-то решить задачу с помощью множеств ? Если можно, не код, а сам метод реализации.
Linka вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070