Помощь - Поиск - Пользователи - Календарь
Полная версия: Задача на строки.
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
кзои
Приветствую всех. Есть проблемма с задачей. В общем дан текст, и нужно распечатать слова,
в которых буквы упорядочены по алфавиту, различие заглавных и строчных не учитывать. Вот, что я наработал по этому поводу:

program lex;
var
v, s: string;
b, mas: array[1..50] of string; {*Массив, куда будут записываться слова*}
pp: array[1..50] of string;
u, x, i,j, z: integer;
slv, ds, pro: integer; {*Счётчик слов, длинна предложения
счётчик пробелов*}
f: char;
begin
readln(s);
ds:=length(s);

for i:=1 to ds do s[i]:=upcase(s[i]);


pro:=0;
for i:=1 to ds do if s[i]='.' then
begin
delete(s,pos('.',s),1);
s:=s+' ';
end;


for i:=1 to ds do if s[i]=' ' then inc(pro);
j:=1;
slv:=0;
repeat
begin
x:=pos(' ',s);
v:=copy(s,1,x-1);
delete(s,1,x);
mas[j]:=v;
v:=' ';
inc(j);
inc(slv);
end;
until j=pro+1;

u:=1;

i:=0;
while (j<>slv) do
begin
j:=0;
inc(j);
v:=mas[j];
repeat
begin
inc(v[i]);
if v[i]<v[i+1] then
begin
mas[j]:='';
delete(v,1,length(v));
for j:=1 to slv do
begin
b[j]:=mas[j+1];
mas[j+1]:='';
mas[j]:=b[j];
b[j]:='';
slv:=slv-1;
end;
end;

end;

until (v[i]<v[i+1]) or (i<length(v))
end;



for j:=1 to slv do
write(mas[j],' ');

end.




За ранее спасибо.
volvo
кзои, вот объясни, почему всех вас так тянет на создание собственного самоката? Что, мало способов здесь описано: Разбиение на слова. Все способы ? В совокупности с содержимым этой вот темы: FAQ: Методы сортировок тебе достаточно написать 2 (ДВЕ !!!) строки кода, чтобы выполнить поставленную перед тобой задачу ! И, заметь, все, что я привел - уже неоднократно проверено, протестировано, и следовательно работает...

Что ты предлагаешь взамен? Опять проверять шаг за шагом, что именно у тебя неправильно? А нужно оно?
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.