Показать сообщение отдельно
Старый 17.05.2016, 21:54   #3 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от MaxCool Посмотреть сообщение
2)С клавиатуры вводится строка символов. Удалить из строки все слова чётной длины.
Вариант 1. Без использования функции Delete.
Код:
Var
 W:Array[1..100] of String;
 S:String;
 i,j,N,L:byte;

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 j:=1 to N do
  if (Length(W[j]) mod 2)=1 then write(W[j]+' ');

 Readln
End.
Вариант 2. С использованием функции Delete.
Код:
Var
 S,W:String;
 i,k:byte;

Begin
 Writeln('Enter the string');
 Readln(S);
 Writeln;
 i:=0;
 Repeat
  W:='';
  repeat
   Inc(i);
  until S[i]<>' ';
  if i<Length(S) then
   begin
    k:=i;
    while (S[i]<>' ') and (i<=Length(S)) do
     begin
      W:=W+S[i];
      Inc(i);
     end;
    if (Length(W) mod 2)=0 then
     begin
      Delete(S,k,Length(W));
      Dec(i,Length(W));
     end;
   end;
 Until i>=Length(S);

 Writeln(S);

 Readln
End.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070