Дана последовательность слов(слова разделены пробелами).Расположить слова в строке в алфавитном порядке — Pascal(Паскаль)

uses crt;
var s:string;{исходная строка}
    m:array[1..50]of string;{массив слов}
    n,k,i,j:byte;{длина строки, длина массива, счетчики циклов}
    x:string;{буфер при обмене в сортировке}
begin
clrscr;
repeat
writeln('Vvedite stroku, razdelitel slov 1 probel:');
readln(s);
n:=length(s);
{проверяем чтоб не было более 1 пробела подряд, здесь в апострофах по 2! пробела}
if pos('  ',s)>0 then writeln('Bolshe 1 probela podryad. Povtorite vvod.');
until pos('  ',s)=0;{проверяем чтоб не было более 1 пробела подряд}
k:=1;{первое слово}
for i:=1 to n do
if s[i]=' 'then k:=k+1{если пробел}
else m[k]:=m[k]+s[i];{иначе составляем слово(элемент массива) по буковкам}
for i:=1 to k-1 do
for j:=i+1 to k do
{сортируем массив по возрастанию(для строк это по алфавиту)методом пузырька(обменом)}
if m[i]>m[j] then
 begin
  x:=m[i];
  m[i]:=m[j];
  m[j]:=x;
 end;
writeln('Slova po alfavitu:');
for i:=1 to k do
write(m[i],' ');{выводим слова через пробел}
readln
end.

Leave a Comment

36 − 34 =