Дана строка, состоящая из латинских слов, разделенных пробелами. Вывести строку, содержащую эти же слова,(разделенные одним пробелом, но расположенные в алфавитном порядке — Pascal(Паскаль)

uses crt;
const ds=['A'..'Z','a'..'z',' '];
var s,b:string;
    m:array[1..100] of string;
    n,i,j:byte;
begin
clrscr;
repeat
j:=0;
writeln('Введите строку из латинских слов, разделенных любым количеством пробелов:');
readln(s);
for i:=1 to length(s) do
if not (s[i] in ds) then j:=1;
if j=1 then writeln('Введены недопустимые символы, повторите ввод.');
until j=0;
n:=0;
i:=1;
while i<=length(s) do
if(s[i]<>' ')and((i=1)or(s[i-1]=' '))then
 begin
  j:=i;
  n:=n+1;
  m[n]:='';
  while(j<=length(s))and(s[j]<>' ')do
   begin
    m[n]:=m[n]+s[j];
    j:=j+1;
   end;
  i:=i+length(m[n]);
 end
else i:=i+1;
writeln;
for i:=1 to n-1 do
for j:=i+1 to n do
if m[i]>m[j] then
 begin
  b:=m[i];
  m[i]:=m[j];
  m[j]:=b;
 end;
writeln('Слова по алфавиту:');
for i:=1 to n do
if i<n then write(m[i],' ')
else write(m[i]);
readln
end.

Leave a Comment

+ 61 = 69