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

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

Форум «Всё о Паскале» _ Задачи _ задача на поиск букв, встречающихся один раз

Автор: Shumaher 26.10.2006 20:57

ЛЮДИ! ПОЖАЛУЙСТА ПОМОГИТЕ РЕШИТЬ ЗАДАЧУ:

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

Заранее спасибо!

Автор: volvo 26.10.2006 21:11

const
len = 26;
var
i, p: integer;
ch: char;
s: string;

begin
s := 'which letters will be here?';
for i := 0 to pred(len) do begin

ch := chr(ord('a') + i);
p := pos(ch, s);
if p <> 0 then begin
p := p * pos(ch, copy(s, p + 1, length(s)));
if p = 0 then write(ch);
end;

end;
writeln;
end.


rolleyes.gif

Shumaher, попробуй объяснить, КАК эта программа работает...

Автор: Гость 26.10.2006 21:47

Цитата(volvo @ 26.10.2006 17:11) *

Shumaher, попробуй объяснить, КАК эта программа работает...

var s,r:string;
i,j:integer;
begin
s := 'which letters will be here?';
for i:=1 to length(s) do
if (pos (s[i],copy(s,1,i-1))=0) and
(pos (s[i],copy(s,i+1,255))=0) and
(s[i] in ['a'..'z']) then begin
j:=1; while byte(r[j])<byte(s[i]) do inc(j);
r:=copy(r,1,j-1)+s[i]+copy(r,j,255);
end;
writeln( r );
end.

Вот так, имхо, еще веселее объяснять smile.gif

Автор: Malice 26.10.2006 21:48

Я это был, забыл войти smile.gif

Автор: Shumaher 27.10.2006 2:30

Огромное спасибо за решение!!!