Технический форум

Технический форум (http://www.tehnari.ru/)
-   Помощь студентам (http://www.tehnari.ru/f41/)
-   -   Задача на Pascal (http://www.tehnari.ru/f41/t106024/)

Anya1234 24.12.2015 21:23

Задача на Pascal
 
Дана последовательность слов. Напечатать все слова, предварительно выпол*нив преобразования их по правилу: в словах наибольшей длины удалить среднюю (средние) буквы

Vladimir_S 25.12.2015 14:34

Цитата:

Сообщение от Anya1234 (Сообщение 1192058)
Дана последовательность слов. Напечатать все слова, предварительно выпол*нив преобразования их по правилу: в словах наибольшей длины удалить среднюю (средние) буквы

Код:

Var
 W:Array[1..100] of String;
 Lw:Array[1..100] of Byte;
 S:String;
 i,j,N,L,Lmax:integer;

Begin
 Writeln('Enter the string:');
 Readln(S);
 L:=Length(S);
 Writeln;
 j:=1;
 i:=0;
 Repeat
  W[j]:='';
  repeat
  Inc(i);
  until S[i]<>' ';
  if i<L then
  begin
    while (S[i]<>' ') and (i<=L) do
    begin
      W[j]:=W[j]+S[i];
      Inc(i);
    end;
  end;
  if i<L then Inc(j);
 Until i>=L;
 N:=j;

 for i:=1 to N do Lw[i]:=Length(W[i]);

 Lmax:=0;
 for i:=1 to N do
  if Lw[i]>Lmax then Lmax:=Lw[i];

 for i:=1 to N do
  if Lw[i]=Lmax then
  begin
    if (Lw[i] mod 2)=1 then
    Delete(W[i],(Lw[i] div 2),1)
    else
    Delete(W[i],((Lw[i] div 2)-1),2);
  end;

 for i:=1 to N do Write(W[i]+' ');
 Readln
End.



Часовой пояс GMT +4, время: 17:16.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.