Регистрация
11 Окт 2013
Сообщения
89
Репутация
0
Спасибо
1
Монет
0
Программа должна в предложении у последнего слова удалять первую букву у предпоследнего 2 букву и так далее.
 
Зачем гастарбайтеру Delphi?
Лучше пиzдуй на стройку работать и жить в вагончике.
 
program proga;

uses
System.SysUtils;

var
s: string;
i: integer;
arr: TArray;

const
cs = ['.', ',', ':', '-', '"', ';', '!', '?'];

begin
writeln('Напечатай предложение:');
read(s);
arr := s.Split([#32], MaxInt, TStringSplitOptions.ExcludeEmpty);
s := EmptyStr;
for i := high(arr) downto 0 do
begin
if not length(arr) < high(arr) - i + 1 then
if not CharInSet(arr[high(arr) - i + 1], cs) then
arr := arr.Replace(arr[high(arr) - i + 1], '', []);
s := string.Join(#32, [arr, s]);
end;
writeln(s);
end.
 
Начать нужно с определения предложения. Примем за предложение любую строку состоящую из слов разделенных небуквой/небуквами.
procedure TForm1.FormCreate(Sender: TObject);
const c=['A'..'Z','a'..'z','А'..'Я','а'..'я'];
var s,d,e: string;
i,j: integer;
begin
d:='';
e:='';
s:='Можно ли сделать в Кореле 2 страницы рядом?';
s:=' '+s;
j:=1;
for i:=length(s) downto 1 do
if s in c then
begin
d:=s+d;
end
else
begin
if d='' then
begin
e:=s+e;
continue
end;
delete(d,j,1);
inc(j);
e:=s+d+e;
d:='';
end;
showmessage(e);
end;
 
Назад
Сверху