Предмет: Информатика,
автор: дидок
ПОМОГИТЕ ПОЖАЛУЙСТА!!! ОЧЕНЬ НУЖНО!Дана строка. Строка состоит из слов, разделенных пробелами. Требуется:
1) Выделить из строки и напечатать слова:
а)не содержащие цифры 0-3.
б) слова, оканчивающиеся на "Я"
Аноним:
1. Язык программирования и версия? 2. Слова разделяются пробелАМИ - означает ли это. что пробелов между словами может быть больше одного? 3. Слова, оканчивающиеся на "Я" - а если на "я" строчное? Или в словах только символы верхнего регистра?
Ответы
Автор ответа:
0
const
bd=['0'..'3'];
var
s,wa,wb,w:string;
c:char;
i,n:integer;
bad_a:boolean;
begin
WriteLn('Вводите фразу, разделяя слова ровно одним пробелом');
Read(s);
s:=s+' ';
n:=Length(s); wa:=''; wb:='';
i:=1; bad_a:=false; w:='';
while i<=n do begin
repeat
c:=s[i];
if c<>' ' then begin
bad_a:=bad_a or (c in bd);
w:=w+c;
Inc(i)
end
else begin
if not bad_a then wa:=wa+' '+w;
if s[i-1]='Я' then wb:=wb+' '+w;
w:=''; bad_a:=false
end
until c=' ';
Inc(i);
end;
wa:=Copy(wa,2,Length(wa)-1);
wb:=Copy(wb,2,Length(wb)-1);
Writeln(wa);
Writeln(wb)
end.
bd=['0'..'3'];
var
s,wa,wb,w:string;
c:char;
i,n:integer;
bad_a:boolean;
begin
WriteLn('Вводите фразу, разделяя слова ровно одним пробелом');
Read(s);
s:=s+' ';
n:=Length(s); wa:=''; wb:='';
i:=1; bad_a:=false; w:='';
while i<=n do begin
repeat
c:=s[i];
if c<>' ' then begin
bad_a:=bad_a or (c in bd);
w:=w+c;
Inc(i)
end
else begin
if not bad_a then wa:=wa+' '+w;
if s[i-1]='Я' then wb:=wb+' '+w;
w:=''; bad_a:=false
end
until c=' ';
Inc(i);
end;
wa:=Copy(wa,2,Length(wa)-1);
wb:=Copy(wb,2,Length(wb)-1);
Writeln(wa);
Writeln(wb)
end.
Похожие вопросы
Предмет: Русский язык,
автор: kydrashov101
Предмет: Окружающий мир,
автор: Ярик1209
Предмет: Окружающий мир,
автор: зачем12345
Предмет: Русский язык,
автор: albert66675t
Предмет: Алгебра,
автор: nurbakytkambarov