Напишу "современный" вариант решения. хотя бы для того, чтобы показать, насколько современные способы решения в том же паскале ушли вперед по сравнению с тем временем когда придумывались эти // 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}
Рамиль211
11.01.2023
Странноватая , конечно. естественно, что в множестве нет порядка элементов, использование процедур (функций) здесь совершенно ни к чему. если учитывать все требования, то получится весьма корявая программа. примерно вот такая: var s,s1: string; i: integer; mn: set of 'a'..'z'; function f(c: char; m: set of 'a'..'z'): boolean; begin f: =(not (c in m))and(c in ['a'..'z']) end; begin writeln('введите строку: '); readln(s); mn: =[]; s1: =''; for i: =1 to length(s) do if f(s[i],mn) then begin mn: =mn+[s[i]]; s1: =s1+s[i]; end; writeln(s1); end.пример работы: введите строку : this is an example text.thisanexmpl