В строке четное количество слов. Удалить два центральных слова строки — Pascal(Паскаль)

uses crt;
var s:string;
    i,k,p:byte;
    pr:array[1..100] of byte;//масив индексов пробелов
begin
clrscr;
repeat
k:=0;
writeln('Введите четное число слов, разделенных одним пробелом:');
readln(s);
//проверим чтобы первый и последний не пробелы, нет 2 пробела рядом, нечетное число пробелов
if(s[1]=' ')or(s[length(s)]=' ')or(pos('  ',s)>0) then k:=1
else
 begin
  p:=0;
  for i:=1 to length(s) do
  if s[i]=' ' then p:=p+1;
  if p mod 2=0 then k:=1;
 end;
if k=1 then writeln('Ввод неверный, повторите');
until k=0;
p:=0;
for i:=1 to length(s) do
if s[i]=' ' then
 begin
  p:=p+1;
  pr[p]:=i;
 end;
if p=1 then write('Оба слова удалены')//если 2 слова
else// иначе
 begin
  delete(s,pr[p div 2],pr[p div 2+2]-pr[p div 2]);
  //удаляем от пробела перед левым от середины слова включительно 
  //до пробела за првым словом исключительно
  write(s);
 end;
readln
end.

Leave a Comment

63 + = 69