Строки. В каждом четном по порядку слове удалить все нечетные буквы, а в каждом нечетном слове удалить все четные буквы - Turbo Pascal
Формулировка задачи:
Дана строка символов, состоящая из русских слов, разделенных пробелами. В каждом
четном по порядку слове удалить все нечетные буквы, а в каждом нечетном слове удалить все
четные буквы. Полученные слова вывести на экран в обратном лексикографическом порядке.
Решение задачи: «Строки. В каждом четном по порядку слове удалить все нечетные буквы, а в каждом нечетном слове удалить все четные буквы»
textual
Листинг программы
var s, T : string; i, j, prev, word_num : integer; arr : array[1 .. 50] of string; begin { write('s = '); readln(s); } s := 'привет это простой тест приложения'; s := s + ' '; prev := 0; word_num := 1; i := 1; while i <= length(s) do begin if s[i] = ' ' then begin if i - prev > 1 then begin { слово - от prev + 1 до i - 1 } for j := i - prev - 1 downto 1 do if odd(word_num) <> odd(j) then begin delete(s, prev + j, 1); dec(i); end; arr[word_num] := copy(s, prev + 1, i - prev - 1); inc(word_num); end; prev := i; end; inc(i); end; dec(word_num); for i := 1 to word_num do for j := word_num downto i +1 do if arr[j - 1] < arr[j] then begin T := arr[j - 1]; arr[j - 1] := arr[j]; arr[j] := T; end; for i := 1 to word_num do write(arr[i], ' '); writeln; end.
Объяснение кода листинга программы
- Объявляются переменные: s, T, i, j, prev, word_num, arr.
- Строка «s =» используется для чтения строки из стандартного ввода.
- Строка «s :=» используется для присвоения строки переменной s.
- Строка «s := s + « »» используется для добавления пробела к строке s.
- Строка «prev := 0» устанавливает значение переменной prev равным 0.
- Строка «word_num := 1» устанавливает значение переменной word_num равным 1.
- Строка «i := 1» устанавливает значение переменной i равным 1.
- Строка «while i <= length(s) do» используется для цикла while i меньше или равно длине строки s.
- Строка «if s[i] = « «»» then» используется для проверки, является ли i-й символ строки s пробелом.
- Строка «begin» используется для начала блока кода.
- Строка «if s[i] = « «»» then» повторяется до тех пор, пока i не превышает длину строки s.
- Строка «if odd(word_num) <> odd(j) then» используется для проверки, является ли j-й индекс массива word_num нечетным.
- Строка «delete(s, prev + j, 1)` используется для удаления j-го символа из строки s, начиная с позиции prev + j.
- Строка «arr[word_num] := copy(s, prev + 1, i — prev — 1)` используется для копирования символов из строки s, начиная с позиции prev + 1 и заканчивая позицией i — prev — 1, в массив word_num.
- Строка «inc(word_num)` используется для увеличения значения переменной word_num на 1.
- Строка «dec(word_num)` используется для уменьшения значения переменной word_num на 1.
- Строка «for i := 1 to word_num do» используется для цикла for i от 1 до длины массива word_num.
- Строка «write(arr[i], « «»»)` используется для вывода i-го элемента массива word_num.
- Строка «writeln» используется для вывода строки на экран.
- Строка «end.» используется для окончания блока кода.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д