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

Если в тексте есть цифра "2", то каждый символ перед этой цифрой заменить на букву "а"

26.04.2015, 13:49. Показов 1809. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста с задачкой в Паскале. Дан текст. Если в нем есть цифра 2, то каждый символ перед этой цифрой заменить на букву а.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.04.2015, 13:49
Ответы с готовыми решениями:

Есть ли в слове "x" буква "б". Если есть, заменить последнюю из них на букву "а"
составьте программу, проверяющую есть ли в слове "x" буква "б". Если есть замените последнюю из них...

Каждый символ "?" удвоить. Каждый символ, стоящий перед "!", заменить заданным символом
Каждый символ ? удвоить. Каждый символ, стоящий перед !, заменить символом, введенным с...

Если в строке имеется сочетание символов "la", то заменить каждый символ, встречающийся после первого вхождения этого сочетания, на символ "!"
Дана строка из символов. Если в строке имеется сочетание символов "la", то заменить каждый символ,...

В каждом слове текста замените "а" на букву "е", если "а" стоит на четном месте, и заменить букву "б" на сочетание "ак",
В каждом слове текста замените "а" на букву "е", если "а" стоит на четном месте, и заменить букву...

12
CAPITAL OF ROCK!
1281 / 708 / 982
Регистрация: 03.03.2010
Сообщений: 2,286
26.04.2015, 14:02 2
Лучший ответ Сообщение было отмечено Vasiliy1997 как решение

Решение

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var
    s: String;
    i: Byte;
begin
    Write('s: '); ReadLn(s);
    if (Length(s) > 1)
    then
    begin
        for i := 2 to Length(s) do
            if (s[i] = '2')
            then
                s[i - 1] := 'a';
    end;
    WriteLn(s);
end.
1
0 / 0 / 0
Регистрация: 26.04.2015
Сообщений: 39
26.04.2015, 14:08  [ТС] 3
Большое спасибо!
0
CAPITAL OF ROCK!
1281 / 708 / 982
Регистрация: 03.03.2010
Сообщений: 2,286
26.04.2015, 14:26 4
стоп. строка вида
Код
qwert2y
должна стать
Код
aaaaa2y
или
Код
qwera2y
0
Эксперт Pascal/Delphi
4901 / 2771 / 851
Регистрация: 04.10.2012
Сообщений: 10,095
26.04.2015, 15:22 5
Цитата Сообщение от Vasiliy1997 Посмотреть сообщение
Дан текст. Если в нем есть цифра 2, то каждый символ перед этой цифрой заменить на букву а
Я бы сделал так
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
  var
  s:string;
  i:integer;
begin
Writeln('Enter your text');
Readln(s);
if Pos('2', s)>0 then begin
for i :=1 to Pos('2', s)-1 do s[i] :='a';
Writeln(s);
end
else Writeln('"2" not found!');
Readln;
end.
Примеры.

На входе:
Mach2ine
На выходе:
aaaa2ine
На входе:
2Machine
На выходе:
2Machine. Без изменений
На входе:
Machine
На выходе:
"2" not found!
0
CAPITAL OF ROCK!
1281 / 708 / 982
Регистрация: 03.03.2010
Сообщений: 2,286
26.04.2015, 15:49 6
droider, вот об этом я и спросил позже)

Добавлено через 13 минут
тогда уж так нужно писать
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
var
    s: String;
    i: Byte;
    state: Boolean;
begin
    Write('s: '); ReadLn(s);
    i := Length(s);
    repeat
        state := s[i] = '2';
        Dec(i);
    until ((i = 0) Or (state));
    if (state)
    then
    begin
        if (i > 1)
        then
            for i := i downto 1 do
                s[i] := 'a';
        WriteLn(s);
    end
    else
        WriteLn('"2" not found!');
end.
0
0 / 0 / 0
Регистрация: 26.04.2015
Сообщений: 39
26.04.2015, 16:02  [ТС] 7
Цитата Сообщение от JokeR.BY Посмотреть сообщение
1
qwera2y
вот так
0
CAPITAL OF ROCK!
1281 / 708 / 982
Регистрация: 03.03.2010
Сообщений: 2,286
26.04.2015, 16:10 8
Vasiliy1997, ну тогда самый первый ответ.

Добавлено через 1 минуту
Vasiliy1997, а что должно выйти, например, в таком варианте?
Код
qwert22y
0
0 / 0 / 0
Регистрация: 26.04.2015
Сообщений: 39
26.04.2015, 16:25  [ТС] 9
Цитата Сообщение от JokeR.BY Посмотреть сообщение
Vasiliy1997, а что должно выйти, например, в таком варианте?
Код Code
1
qwert22y
спасиб
по идее, qweraa2
0
Эксперт Pascal/Delphi
4901 / 2771 / 851
Регистрация: 04.10.2012
Сообщений: 10,095
26.04.2015, 22:15 10
Vasiliy1997, я думаю, что Вы не поняли задачу. Уточняли?
Ведь сказано
Цитата Сообщение от Vasiliy1997 Посмотреть сообщение
каждый символ перед этой цифрой заменить
а не " символ перед этой цифрой заменить". Чувствуете разницу?
Цитата Сообщение от JokeR.BY Посмотреть сообщение
тогда уж так нужно писать
у меня что-то не так? Или как бы свой вариант? Я проверял.
0
CAPITAL OF ROCK!
1281 / 708 / 982
Регистрация: 03.03.2010
Сообщений: 2,286
26.04.2015, 22:58 11
droider, в вашем варианте строка
Код
asd2asd2asd
примет вид
Код
aaa2asd2asd
0
Эксперт Pascal/Delphi
4901 / 2771 / 851
Регистрация: 04.10.2012
Сообщений: 10,095
26.04.2015, 23:03 12
JokeR.BY, верно. Для нескольких двоек не учел.
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
7539 / 4399 / 2785
Регистрация: 22.11.2013
Сообщений: 12,605
Записей в блоге: 1
27.04.2015, 08:48 13
Если нужно заменять от начала до последней 2, то
Pascal
1
2
3
4
5
6
i:=Length(s);
while (i>0) and (s[i]<>'2') do Dec(i);
Dec(i);
while i>0 do begin
  s[i]:='a'; Dec(i);
end;
Добавлено через 3 минуты
Или
Pascal
1
2
3
i:=Length(s); 
while (i>0) and (s[i]<>'2') do Dec(i); 
while i>1 do begin Dec(i); s[i]:='a'; end;
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.04.2015, 08:48
Помогаю со студенческими работами здесь

Дан текст, хранящийся в текстовом файле f, каждый символ которого может быть малой буквой, цифрой или одним из знаков "+", "-", "*".
Дан текст, хранящийся в текстовом файле f, каждый символ которого может быть малой буквой, цифрой...

В данном словосочетании заменить символы "(+)" на один символ "-" и удалить букву "х" до первой точки
Помогите решить задачу, стоки мы не проходили, вот и не знаю как решить. В данном словосочетании...

В данном словосочетании заменить два символа "ас" на один символ "*" и удалить букву "о"
В данном словосочетании заменить два символа &quot;ас&quot; на один символ &quot;*&quot; и удалить букву &quot;о&quot;.

В данном словосочетании заменить два символа "ас" на один символ "*" и удалить букву "о"
В данном словосочетании заменить два символа &quot;ас&quot; на один символ &quot;*&quot; и удалить букву &quot;о&quot;.

Операции со строками.Заменить в строке букву "а" на "с", если она стоит на чётном месте,и на "у" если на нечётном
Дана строка.Заменить в строке букву &quot;а&quot; на &quot;с&quot;, если она стоит на чётном месте,и на &quot;у&quot; если на...

Разработать модуль, который заменяет в тексте букву "а" на символ "*".
Разработать модуль, который заменяет в тексте букву &quot;а&quot; на символ &quot;*&quot;.


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

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

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