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

Цитата:
Сообщение от Региша Посмотреть сообщение
Помогите пожалуйста решить задачу на паскале (если можно с пояснениями).
Дана строка. Указать те слова, которые содержат хотя бы одну букву с.
Пожалуйста:
Код:
VAR
 S:String;
 i,j,Nw,i1,i2:Byte;
 W:Array[1..128] of String;
 CH:Char;
 b:Boolean;

BEGIN
 { Ввод строки }
 WriteLn('Enter the string:');
 ReadLn(S); 
 { Ввод искомого символа }
 Write('Enter the symbol to search for: ');
 ReadLn(CH);
 { Разбиение строки на отдельные слова. Формирование
   массива слов W размером Nw } 
 i:=0;
 Nw:=0;
 Repeat
  Repeat
   Inc(i);
  Until S[i]<>' ';
  i1:=i;
  While (S[i]<>' ') and (i<Length(S)) do
   Inc(i);
  If i=Length(S) then i2:=i else i2:=i-1;
  Inc(Nw);
  W[Nw]:=Copy(S,i1,i2-i1+1);
 Until i=Length(S);

 { Решение основной задачи. Вывод на экран слов, 
   содержащих хотя бы один искомый символ }
 For i:=1 to Nw do
  begin
   b:=false;
   j:=0;
   Repeat
    Inc(j);
    If W[i][j]=CH then b:=true;
   Until b or (j=Length(W[i]));
   If b then Write(W[i]+' ');
  end;

 WriteLn;

 ReadLn;
END.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

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