0 / 0 / 0
Регистрация: 26.10.2011
Сообщений: 9
1

Задание с строковыми величинами: 2 повторяющееся буквы заменить на 2 на другие

18.11.2012, 11:07. Показов 1721. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Нужно что бы 2 повторяющееся буквы в слове менялись на другие (тоже 2) Например: лоорвоод на лппрвппд. Буквы оо меняются на пп.
Я делал эту программу так:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
program urtr;
var s,sl,e: string; k,v: integer;
begin
write('Введите слово: ');
read(s);
write('Заменить буквы: ');
read(sl);
write('На буквы: ');
read(e);
k:=pos(sl,s);
v:=length(sl);
delete(s,k,v);
insert(e,s,k);
writeln(s);
end.
Если в слове один раз повторяются буквы, то выполняется программа правильно, но если в слове встречается 2 раза повтор букв, то она выполняется только для первых. Как сделать чтоб программа выполнялась так как надо??
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.11.2012, 11:07
Ответы с готовыми решениями:

Работа со строковыми величинами.
1) Получить новую строку, включив в нее только цифровые символы исходной строки. стоит буква "а". ...

Работа со строковыми величинами
Оставить в данном слове из каждого набора одинаковых букв, идущих подряд, только одну букву....

составить программу со строковыми величинами
составьте программу вычеркивающую каждую третью букву из слова Х

Разработка программы, выполняющей действия над строковыми величинами
Составить программу, выводящую, какая буква стоит в слове на каждой позиции. Далее программа...

9
Неадекват и грубиян
310 / 297 / 301
Регистрация: 22.02.2010
Сообщений: 647
18.11.2012, 19:10 2
да масса вариантов. можно вот так, например
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var s,sl,e: string; k,v: integer;
begin
writeln('Введите слово: ');
readln(s);
write('Заменить буквы: ');
readln(sl);
writeln('На буквы: ');
readln(e);
k:=pos(sl,s);
v:=length(sl);
repeat
delete(s,k,v);
insert(e,s,k);
k:=posex(sl,s,k);
until k=0;
writeln(s);
end.
0
0 / 0 / 0
Регистрация: 26.10.2011
Сообщений: 9
18.11.2012, 21:27  [ТС] 3
Pascal ABC не распознает идентификатор posex... может как то по-другому?
0
181 / 179 / 23
Регистрация: 29.08.2012
Сообщений: 489
18.11.2012, 21:30 4
Возник вопрос. Зачем запрашивать какие буквы менять, если это может определить программа по их парности?
0
0 / 0 / 0
Регистрация: 26.10.2011
Сообщений: 9
18.11.2012, 21:52  [ТС] 5
Если честно, не знаю как это делать, буду признателен если кто помог бы....
0
Неадекват и грубиян
310 / 297 / 301
Регистрация: 22.02.2010
Сообщений: 647
18.11.2012, 23:25 6
Цитата Сообщение от Yurek Посмотреть сообщение
Возник вопрос. Зачем запрашивать какие буквы менять, если это может определить программа по их парности?
затем, что, например, в слове "вооппрроосс" я хочу заменить только "оо". остальное не трогать. я ответил на твой вопрос?
0
181 / 179 / 23
Регистрация: 29.08.2012
Сообщений: 489
18.11.2012, 23:30 7
Цитата Сообщение от pryda Посмотреть сообщение
я ответил на твой вопрос?
Да, ответил, но в задании этого нет
0
0 / 0 / 0
Регистрация: 26.10.2011
Сообщений: 9
19.11.2012, 15:25  [ТС] 8
Так как на Pascal ABC сделать эту программу??

Добавлено через 7 часов 10 минут
И, может кто подскажет, почему моя программа меняет только первые повторяющееся буквы?
0
Почетный модератор
7966 / 3937 / 2464
Регистрация: 30.10.2011
Сообщений: 5,377
19.11.2012, 20:37 9
Gheka_017, ваша программа не работает. потому что вы только один раз определяете позицию вхождения заданных букв, удаляете их и втавляете новые. а делать это необходимо до тех пор, пока есть заданные повторяющиеся буквы в строке
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var s,sl,e: string; k,v: integer;
begin
write('Введите слово: ');
read(s);
write('Заменить буквы: ');
read(sl);
write('На буквы: ');
read(e);
while pos(sl,s)<>0 do
      begin
      k:=pos(sl,s);
      v:=length(sl);
      delete(s,k,v);
      insert(e,s,k);
      end;
writeln(s);
end.
0
17 / 17 / 28
Регистрация: 05.11.2012
Сообщений: 40
20.11.2012, 01:29 10
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
var a,b,c,d,e,i: integer;
s: string;
s1,s2: string;
Begin
read(s); //Сама строка
read(s1); //Буква, которую надо заменить.
read(s2); //Буква, на которую заменяется.
s2:=concat(s2,s2);
a:=length(s);
 
 for i:=1 to a-1 do
 if (s[i]=s[i+1]) and (s[i]=s1[1]) then
 begin
 delete(s,i,2);
 insert(s2,s,i);
 end;
write(s);
End.
0
20.11.2012, 01:29
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.11.2012, 01:29
Помогаю со студенческими работами здесь

Как найти и заменить буквы в слове на другие буквы
ну например, дан такой набор букв абвгадежазикла нужно все буквы &quot;а&quot; заменить на буквы &quot;б&quot;,...

Заменить в строке одни буквы на другие
Напишите программу на c++, которая считывает количество слов и меняет все буквы `а` на `о`....

Заменить буквы или цифры в произвольном слове на другие
Как заменить буквы или цифры в произвольном слове на другие (буквы , цифры)

Заменить все латинские буквы строчными (другие символы копировать в выходной поток без изменения)
2.4. Пусть во входном потоке находится последовательность литер, заканчивающихся точкой (кодировка...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru