Раскодировать строку символов - Pascal ABC
Формулировка задачи:
Строка символов закодированный так, что буквы и числа идут парами (число показывает место буквы в тексте). Восстановить исходный текст.
то есть у нас есть слово чашки. мы должны вывести его на экран
в строку мы вводим 2а 3ш 1ч 5и 4к
нам нужно вывести слово
Решение задачи: «Раскодировать строку символов»
textual
Листинг программы
function explodeSpace( const s,f: string; num: integer ): string; var i,p,c: integer; tmp: string; begin explodeSpace := ''; str(num , tmp); tmp := ' '+tmp + ' '; p := pos(tmp , s); c := p + length(tmp) - 1; if (p >= 1) AND ( s[ c + 1 ] = ' ' ) then begin explodeSpace := f[c]; end; end; var i: integer; s,f,r,tmp: string; begin readln(s); s := ' ' + s + ' '; f := ''; for i:=1 to length(s) do if (ord(s[i]) >= ord('0')) AND (ord(s[i]) <= ord('9')) then f := f + s[i] else f := f + ' '; i := 1; while(true) do begin tmp := explodeSpace(f , s , i); if length(tmp) < 1 then break; r := r + tmp; i := i + 1; end; writeln( r ); end.
Объяснение кода листинга программы
- Функция
explodeSpace
принимает три параметра: строкуs
, функциюf
и числоnum
. Она возвращает новую строку, в которой символы, разделенные пробелом, заменены на те, которые указаны в функцииf
. - Переменные
i
,p
иc
используются для поиска первого вхождения подстрокиtmp
в строкеs
. Переменнаяp
содержит позицию первого символа подстрокиtmp
в строкеs
, а переменнаяc
содержит позицию последнего символа подстрокиtmp
в строкеs
. - Если
p
больше или равно 1 и следующий символ в строкеs
- это пробел, то функция присваивает переменнойexplodeSpace
значение функцииf
с индексомc
. - В основной части программы используется цикл
while
, который выполняется до тех пор, пока функцияexplodeSpace
возвращает строку. На каждой итерации цикла функцияexplodeSpace
вызывается с функциейf
и числомi
, увеличиваемым на 1 на каждой итерации. Результат функцииexplodeSpace
добавляется к переменнойr
. - По завершении цикла выводится значение переменной
r
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д