Помогите плз написать прогу по паскалю
Условие такое: в ведённой строке заменить все фрагменты "pavasaris" на "vasara"
Надеюсь кому то будет не сложно, а то блин завтра в к.р будет такая задача....
Задача на строки
Модераторы: Хыиуду, MOTOCoder, Medved, dr.Jekill
Вообще с такими задачами, тем боле, без каких-либо наработок - в РМЗ.
Задача-проще некуда:
[syntax='Delphi']
var
S,SB:string;
P:integer;
const
Src='pavasaris';
Dst='vasara';
L=Length(Src);
begin
readln(S);
P:=Pos(Src,S);
while P>0 do
begin
SB:=Copy(S,P,Length(S)-P+1);
Delete(SB,1,L);
Delete(S,P,Length(S)-P+1);
S:=S+Dst+SB;
P:=Pos(Src,S);
end;
writeln(S);
readln;
end.
[/syntax]
Задача-проще некуда:
[syntax='Delphi']
var
S,SB:string;
P:integer;
const
Src='pavasaris';
Dst='vasara';
L=Length(Src);
begin
readln(S);
P:=Pos(Src,S);
while P>0 do
begin
SB:=Copy(S,P,Length(S)-P+1);
Delete(SB,1,L);
Delete(S,P,Length(S)-P+1);
S:=S+Dst+SB;
P:=Pos(Src,S);
end;
writeln(S);
readln;
end.
[/syntax]
Ни что так не ограничивает фантазию программиста, как компилятор...
- un4-funeral
- Сообщения: 60
- Зарегистрирован: 18 апр 2008, 23:40
- Контактная информация:
а зачем было длину в константе объявлять ?
Шоб было. Можно еще попробовать сократить - для данного конкретного случая
Код: Выделить всё
while pos('pavasaris', s)<>0 do
s:=copy(s, 1, pos('pavasaris', s)-1)+'vasara'+copy(s, pos('pavasaris', s)+9, length(s));
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.