• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о проекте и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Подскажите, что неправильно?

Павел-14

Ученик
Регистрация
23 Май 2011
Сообщения
4
Реакции
0
Баллы
0
Подскажите, что неправильно?

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

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