Напишу "современный" вариант решения. Хотя бы для того, чтобы показать, насколько современные способы решения задач в том же паскале ушли вперед по сравнению с тем временем когда придумывались эти задачи...
// PascalABC.NET 3.0, сборка 1088
begin
var s:=ReadString('Введите строку: ');
var MySet:=s.Where(x->x in ['a'..'z']).Distinct;
Writeln(MySet)
end.
Тестовое решение:
Введите строку: this is an example text.
[t,h,i,s,a,n,e,x,m,p,l]
А вот если воспользоваться "традиционной" работой с множеством, исходный порядок следования символов будет нарушен:
// PascalABC.NET 3.0, сборка 1088
var
MySet:set of char;
procedure AddToSet(s:string; var pSet:set of char);
begin
foreach var c in s do
if c in ['a'..'z'] then Include(pSet,c)
end;
begin
var s:=ReadString('Введите строку: ');
AddToSet(s,MySet);
Writeln(MySet)
end.
Тестовое решение:
Введите строку: this is an example text.
{n,e,m,l,t,s,a,i,h,p,x}