В каждом слове строки найти номера первой и последней запятой и сформировать массив из разностей этих номеров - PascalABC.NET
Формулировка задачи:
Здравствуйте, помогите пожалуйста, для вас задание скорее всего будет очень легким, но я толком не знаком с программированием и не знаю как это сделать
Само задание выглядит так:
Дана строка символов. Группы символов, разделенные одним
или несколькими пробелами и не содержащие пробелов внутри себя,
будем называть словами. В каждом слове найти номера первой и
последней по порядку запятой и записать в вектор разность между
этими номерами.
Решение задачи: «В каждом слове строки найти номера первой и последней запятой и сформировать массив из разностей этих номеров»
textual
Листинг программы
var
s, l: string;
i, min, max: integer;
begin
readln(s);
s := s + ' ';
while s <> '' do
begin
max := 10000000;
min := 0;
for i := 1 to pos(' ', s) do
begin
l := copy(s, i, 1);
if (l = ',') and (i < max) then
max := i;
if (l = ',') and (i > min) then
min := i;
end;
delete(s, 1, pos(' ', s));
if (max - min) <> 10000000 then
writeln(max - min);
end;
end.
Объяснение кода листинга программы
- Переменная
sиспользуется для хранения строки, которую необходимо проанализировать. - Переменная
lиспользуется для временного хранения символа, который проверяется на равенство запятой. - Переменная
iиспользуется для перебора всех символов в строке. - Переменная
minиспользуется для хранения минимального индекса запятой в строке. - Переменная
maxиспользуется для хранения максимального индекса запятой в строке. - В цикле while считывается строка и добавляется пробел в конец строки.
- В цикле for перебираются все символы в строке, начиная с первого и до последнего пробела.
- Для каждого символа проверяется, является ли он запятой.
- Если символ является запятой и его индекс меньше максимального, то обновляется значение переменной
max. - Если символ является запятой и его индекс больше минимального, то обновляется значение переменной
min. - После цикла for удаляется первый пробел из строки.
- Если разница между максимальным и минимальным индексами не равна 1, то выводится значение этой разницы.
- Цикл while повторяется до тех пор, пока строка не станет пустой.