Переставить слова в каждом предложении в обратном порядке - 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
для следующей итерации.
- Обнуляются переменные
- Вывод оставшегося предложения:
- Выводится оставшееся предложение после последней точки.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д