Технический форум

Технический форум (http://www.tehnari.ru/)
-   Помощь студентам (http://www.tehnari.ru/f41/)
-   -   Подскажите, что неправильно? (http://www.tehnari.ru/f41/t52113/)

Павел-14 23.05.2011 19:11

Подскажите, что неправильно?
 
он не меняет когда пишешь ababab


program zamena;
var
s,s1,s2:string;
i:integer;
begin
writeln('введите строку:');
readln(s);
s1:='';
s2:='bc';

writeln ('s2:',s2);
while pos ('ab' , s)<>0 do
begin
s:=s1+
copy (s,1,pos('ab',s)-1) +'bc';
delete(s1,1,pos ('ab',s)+1);
end;
s:=s+s1;
writeln('s:',s);
end.

Vladimir_S 23.05.2011 20:20

А Вас не сильно затруднит для начала сформулировать решаемую задачу? Или Вы полагаете, мы тут от скуки изнываем, и возможность по неработающему коду восстановить условия задачи для нас - что манна небесная? Спасибо, конечно, но Вы, уж извините, не совсем правы.

Павел-14 24.05.2011 00:14

Подскажите, что не правильно
 
написать функцию замены в данной строке S подстроки S1 на подстроку S2

она не меняет когда пишешь ababab


program zamena;
var
s,s1,s2:string;
i:integer;
begin
writeln('введите строку:');
readln(s);
s1:='';
s2:='bc';

writeln ('s2:',s2);
while pos ('ab' , s)<>0 do
begin
s:=s1+
copy (s,1,pos('ab',s)-1) +'bc';
delete(s1,1,pos ('ab',s)+1);
end;
s:=s+s1;
writeln('s:',s);
end.

Vladimir_S 24.05.2011 09:51

Если будете продолжать забивать форум клонами своего сообщения, будете удалены вместе со всеми постами. Сами видите, что творится - наше доблестное студенчество проспало и провеселилось весь семестр, а теперь, когда на носу зачеты и экзамены, попросыпались, и поперла лавина: "Спасите, помогите, я в Паскале ни бум-бум!". Помогаю по мере сил. Будет время - посмотрю Вашу задачку. Имейте терпение.

Vladimir_S 24.05.2011 12:16

Вот Вам вариант отлаженной программы, решающей Вашу задачу. Вводятся:
1. Исходная строка.
2. Что заменить.
3. Чем заменить.
В конце выводится преобразованная строка.
Код:

program zamena;
var
 s,s1,s2:string;
 i,ppss:integer;
begin
 writeln('String:');
 readln(s);
 writeln('Substring to replace:');
 readln(s1);
 writeln('Substring for replacement:');
 readln(s2);
 while pos(s1,s)>0 do
  begin
  ppss:=pos(s1,s);
  delete(s,ppss,length(s1));
  insert(s2,s,ppss);
  end;
 writeln('Result:');
 writeln(s);
 readln
end.



Часовой пояс GMT +4, время: 10:47.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.