Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Поиск в строке

Автор: Lennon 29.11.2006 3:18

добрый день! Помогите пожалуйста решить такую задачу:
Дана строка. Подсчитать, сколько различных символов встречается в ней. Вывести их на экран.
Спасибо.

Автор: мисс_граффити 29.11.2006 3:24

Пробовал(а)? Что КОНКРЕТНО не получилось?

Автор: Гость 30.11.2006 1:17

Пробовал:
var
s,s1:string;
i,j,k:integer;
begin
ClrScr;
WriteLn('BBEDITE CTPOKY');
ReadLn(s);
s1:='';
For i := 2 To Length(s) do s1 := s1 + s[i];
While s <> '' do
begin
For i := 1 to Length(s1) do
IF s[1] <> s1[i] Then WriteLn(s[1]);
delete(s,1,1);
delete(s1,1,1);

end;
Вот, ну это только одна из вариаций, а пробовал туеву хучу раз!

Автор: Гость 1.12.2006 1:42

так, что? Никто не поможет???

Автор: Malice 1.12.2006 1:54

Ну вот так например:

var s:string;
i:integer;
c:char;
begin
i:=0;
readln (s);
for c:=#0 to #255 do if pos(c,s)>0 then inc(i);
writeln(i);
end.


Автор: Гость 1.12.2006 2:01

Не... насколько я понял, эта программа выведет все символы на экран??? А мне надо, уже в введеной строке подсчитать символы, которые в этой строке встречаются один раз!

Автор: Malice 1.12.2006 2:10

Компилируешь в уме? Тогда почему сам не сделал? Проверь сначала, а потом еще определись, что нужно: колво различных символов или тех, что 1 раз встречаются..

Автор: Гость 1.12.2006 2:12

проверим;)
просто я прогаю не так уж и давно.... Так, что прошу меня строго не судитьsmile.gif))

Автор: Malice 1.12.2006 2:17

Понятно. Для второго варианта (про 1 раз) цикл будет чуть другой, типа:

for j:=1 to length(s) do
if pos(s[j],copy(s,1,j-1)+copy(s,j+1,255))=0 then inc (i);

Автор: Гость 1.12.2006 2:20

за ранее большое Спасибо !