Переставить слова в каждом предложении в обратном порядке - Pascal
Формулировка задачи:
function perest(pred:string):string; var mas:array[1..50] of string; r,k:integer; t,w1,w:string; begin for r:=1 to 50 do mas[r]:=' '; w:=' '; w1:=' '; k:=1; t:=' '; pred:=pred+' '; for r:=1 to length(pred) do if pred[r]=' ' then begin if t<>' ' then begin mas[k]:=t; t:=' '; k:=k+1; end; end else t:=t+pred[r]; k:=k-1; for r:=1 to (k div 2) do begin w1:=mas[r]; mas[r]:=mas[k-r+1]; mas[k-r+1]:=w1; end; w:=mas[1]; for r:=2 to k do w:=w+' '+mas[r]; w:=w+'.'; perest:=w; end; var s,vrem,predl:string; i:integer; begin write('Введите предложения: '); readln(s); s:=s+'.'; vrem:=' '; predl:=' '; for i:=1 to length(s) do if (s[i]='.') then begin predl:=predl+perest(vrem); vrem:=' '; end else vrem:=vrem+s[i]; write(predl); end.
Решение задачи: «Переставить слова в каждом предложении в обратном порядке»
textual
Листинг программы
var pred,perest: string; mas:array[1..50] of string; r,k:integer; t,w1,w:string; var s,vrem,predl:string; i:integer; begin write('Введите предложения: '); readln(s); s:=s+'.'; vrem:=' '; predl:=' '; for i:=1 to length(s) do if (s[i]='.') then begin //******* pred := vrem; for r:=1 to 50 do mas[r]:=' '; w:=' '; w1:=' '; k:=1; t:=' '; pred:=pred+' '; for r:=1 to length(pred) do if pred[r]=' ' then begin if t<>' ' then begin mas[k]:=t; t:=' '; k:=k+1; end; end else t:=t+pred[r]; k:=k-1; for r:=1 to (k div 2) do begin w1:=mas[r]; mas[r]:=mas[k-r+1]; mas[k-r+1]:=w1; end; w:=mas[1]; for r:=2 to k do w:=w+' '+mas[r]; w:=w+'.'; perest:=w; //******* writeln(predl+perest); predl:=''; vrem:=' '; end else vrem:=vrem+s[i]; write(predl); end.
Объяснение кода листинга программы
- Объявление переменных:
pred
,perest
,mas
,r
,k
,t
,w1
,w
,s
,vrem
,predl
,i
.
- Ввод предложений:
- Вводится строка предложений (s) с клавиатуры.
- Добавление точки в конец строки:
- Добавляется точка в конец строки (s).
- Инициализация временных переменных:
vrem
иpredl
инициализируются пустыми строками.
- Итерация по символам в строке:
- Происходит итерация по всем символам в строке (s).
- Выделение предложения:
- Если текущий символ - точка, то происходит выделение предложения в переменную
pred
, после чего зануляются значения элементов массиваmas
и других временных переменных.
- Если текущий символ - точка, то происходит выделение предложения в переменную
- Разбиение предложения на слова:
- Предложение разбивается на отдельные слова и помещается в массив
mas
.
- Предложение разбивается на отдельные слова и помещается в массив
- Перестановка слов в обратном порядке:
- Слова в массиве
mas
переставляются в обратном порядке.
- Слова в массиве
- Составление предложения:
- Слова из массива
mas
собираются в предложениеw
, которое помещается в переменнуюperest
.
- Слова из массива
- Вывод переставленных предложений:
- Выводится переставленное предложение в формате
predl+perest
.
- Выводится переставленное предложение в формате
- Обнуление временных переменных:
- Обнуляются переменные
predl
иvrem
для следующей итерации.
- Обнуляются переменные
- Вывод оставшегося предложения:
- Выводится оставшееся предложение после последней точки.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д