Цитата:
Сообщение от Региша
Помогите пожалуйста решить задачу на паскале (если можно с пояснениями).
Дана строка. Указать те слова, которые содержат хотя бы одну букву с.
|
Пожалуйста:
Код:
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.