Получить строку, в которой чередуются слова первой и второй строк - Turbo Pascal
Формулировка задачи:
Даны две строки. Получить строку, в которой чередуются слова первой и второй строки. Если в одной из строк число слов больше, чем в другой, то оставшиеся слова зтой строки должны быть дописаны в строку-результат.
Решение задачи: «Получить строку, в которой чередуются слова первой и второй строк»
textual
Листинг программы
type astr=array[0..120] of string; procedure split(delimeter:string;s:string;var sr:astr;var l:integer); var i:integer; t:string; procedure additem; begin if t<>'' then begin inc(l); sr[l-1]:=t; t:=''; end; end; begin l:=0;t:=''; for i:=1 to length(s) do if pos(s[i],delimeter)=0 then t:=t+s[i] else additem; additem; end; var i,j,n1,n2:integer; s1,s2,s3:string; a,b:astr; begin write('CTPOKA1:'); readln(s1); write('CTPOKA2:'); readln(s2); split(' ',s1,a,n1); split(' ',s2,b,n2); s3:=''; i:=0;j:=0; repeat if n1>i then s3:=s3+a[i]+' '; if n2>j then s3:=s3+b[j]+' '; i:=i+1;j:=j+1; until (n1<=i) and (n2<=j); writeln('Pe3:',s3); end.
Объяснение кода листинга программы
- Создается тип данных
astr
, который представляет собой массив строк до 120 элементов. - Создается процедура
split
, которая принимает в качестве параметров дефис (delimeter
), строку (s
), и переменную для хранения результата (sr
). Также есть вспомогательная переменнаяl
для отслеживания индекса последнего элемента вsr
. Внутри процедуры происходит разбиение строкиs
на элементы, которые чередуются между собой. Каждый элемент добавляется вsr
с помощью функцииadditem
. - Создается процедура
additem
, которая проверяет, не пустая ли строкаt
. Если это так, то увеличивается значениеl
иt
обновляется. Еслиt
не пустая, то вызывается функцияsplit
для добавления следующего элемента вsr
. - Создается переменные
i
,j
,n1
иn2
для отслеживания индексов элементов вa
иb
. - Строки
s1
,s2
иs3
инициализируются пустой строкой. - Запускается цикл
repeat
, который повторяется до тех пор, покаn1
меньшеi
иn2
меньшеj
. Внутри цикла происходит добавление элементов изa
иb
вs3
с помощью оператора конкатенации строк. - Значения
i
иj
увеличиваются на единицу. - Цикл
repeat
завершается, когдаn1
большеi
илиn2
большеj
. - Выводится строка
s3
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д