Преобразовать строку, изменив порядок следования слов на обратный.
А каков алгоритм такого преобразования?
пункт 1.
бьешь на массив слов и пробегаешь в обратном порядке.
пункт 2
поиск
В цикле находишь следующее слово в строке s1 и вставляешь его в строку s2 на первую позицию (процедура Insert).
тема переезжаетв алгоритмы..
Ну во первых наверняка тебе опять ничем нельзя пользоваться ? Pos, Delete, Insert ... Написать ты об этом забыла ?
А чем не устраивает мой способ с помощью массива?
18192123, давай ты будешь определять задания ПОЛНОСТЬЮ, договорились?
Разделители между словами? Должен ли их порядок и количество сохраняться в строке - результате (arhimag, если ответ на предыдущий вопрос - "Да", то твой способ идет лесом)? Доступные средства для реализации... Почему надо все клещами вытягивать постоянно?
делая аналогию с предыдущими заданиями 18192123, то разделитель - только пробел.
вывод сделан из
18192123 (и все уважаемые участники беседы), я несколько обескуражен.
Мне кажется, начальное задание было поставлено довольно четко. Деталей не было, поскольку спрашивался алгоритм. В соответствии с этим я перенес тему в более подходящий раздел и описал агоритм в общих чертах (упоминание Insert'а было факультативным, в скобках). arhimag также привел свой вариант. Конкретная реализация могла быть различной.. Если требуются дальнейшие уточнения алгоритма - пожалуйста, тема к услугам всех. Что касается реализации - склонен считать флудом. Так что рекомендую 18192123 создать новую тему с правильным и полным условием на этот раз..
Не хочется создавать новую тему, но можно увидеть работающий код для этой задачи с использованием pos, insert, delete?
Благодарю всех за любую помощь.
Безусловно, можно.
Для этого (если Вас не затруднит) выполните несложный ряд действий:
1. Прочитайте, пожалуйста, то, что здесь уже написали.
2. Воспользуйтесь поиском или изучите прикрепленную в Задачах тему "Разбиение на слова".
3. Соберите все воедино и напишите работающий код для этой задачи (с использованием pos, insert, delete).
Надеюсь, что ни один из пунктов не противоречит Вашим принципам.
Альтернативный путь:
Создайте тему в Задачах на заказ.
Всем кому нужно:
program slova;
uses crt;
var
x,k,len : byte;
str,buf : string;
procedure PrintString(var buf : string ; var k : byte);
var
i : byte;
begin
if k=1 then begin
write(' ');
buf:='';
end
else
begin
i:=k;
while i>=1 do begin
write(buf[i]);
i:=i-1;
end;
write(' ');
buf:='';
end;
end;
begin
clrscr;
writeln('Vvedite slova:');
readln(str);
writeln;
writeln('Resultat:');
k := 1;
x := length(str);
if length(str)=1 then writeln(str);
while x>=1 do begin
if (str[x]=' ') or (x=1) then
begin
if x=1 then else k:=k-1;
PrintString(buf,k);
k:=1;
end
else
begin
buf[k]:=str[x];
if x=2 then buf[k+1]:=str[x-1];
k:=k+1;
end;
x:=x-1;
end;
writeln;writeln;
write('Press any key to quit...');
readkey;
end.
М | Теги, господа, теги!! Это требование правил! И здравого смысла.. Lapp |