Ввести строку. Удалить часть символьной строки, заключенной между запятыми. - Pascal ABC
Формулировка задачи:
Ввести строку. Удалить часть символьной строки, заключенной между запятыми. Вывести преобразованную строку или замечание, что запятых нет. Программу зациклить, пока не выделиться нужный текст. Помогите, пожалуйста.
Решение задачи: «Ввести строку. Удалить часть символьной строки, заключенной между запятыми.»
textual
Листинг программы
var
st : string;
i, j, k, m, n : byte;
BEGIN
repeat
WriteLn('Введите строку: ');
Readln(st);
for i:=1 to Length(st) do
begin
if (st[i]=',') then
begin
Inc(k);
if k =1 then n:= i else m:=i;
end;
if m>0 then break
end;
if m = 0 then WriteLn('Строка не удовлетворяет условию!');
until m>0;
m:= m - n;
Delete(st, n, m);
Writeln(st);
END.
Объяснение кода листинга программы
- Переменная
stобъявлена как строка (string). - Переменные
i,j,k,m,nобъявлены как байты (byte). - В цикле
repeatвыполняется следующая последовательность действий:- Выводится сообщение для ввода строки.
- Строка
stсчитывается с помощью функцииReadln(). - В цикле
forперебираются символы строкиst. - Проверяется, равен ли текущий символ запятой (
st[i]= ','). - Если символ равен запятой, то увеличивается счетчик
kна единицу. - Если
kравно 1, тоnприсваивается значениеi, иначеmприсваивается значениеi. - Если
mбольше 0, то циклwhileпрерывается. - Если
mравно 0, то выводится сообщение о том, что строка не удовлетворяет условию.
- После окончания цикла
whileзначение переменнойmуменьшается на значение переменнойn. - Строка
stизменяется путем удаления символов, начиная с индексаnи до индексаm. - Выводится измененная строка
st.