Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Задача на строки

Автор: Roofless 23.12.2007 15:22

Задача такая: найти в тексте слова, которые содержат хотя бы один слог НА ПРИ ЗА.
С чего мне начать????????????

Автор: andriano 23.12.2007 16:45

С написания алгоритма решения по-русски.

Автор: Roofless 25.12.2007 22:38

Вобще у меня есть такие процедуры:



Procedure Getword(s:string; var fp,lp:byte);
Var
l,i:byte;
Begin
l:=length(s);
i:=1;
while(i<=l) and (s[i]<>' ') do
inc(i);
fp:=i;
while(i<=l) and (s[i]<>' ') do
inc(i);
lp:=i-1;
end;
Procedure Printword(s:string;fp,lp:byte);
var
i:byte;
begin
for i:=fp to lp do
write(s[i]);
end;
Procedure Testword(s:string;fp,lp:byte);
Var
l:byte;
begin
l:=length(s);
l:=0;
while fp<=l do begin
getword(s,fp,lp);
printword(s,fp,lp);
fp:=lp+1;
end;
end;



...нужно как то их использовать

Автор: Client 25.12.2007 22:41

первое, что бросилось в глаза, это:

  l:=length(s);
l:=0;
?

Автор: ATAMAH 25.12.2007 22:48


uses crt;
const zn='.,;:"- ?!';
var
S,sl:string;
j,i,ns,ks:integer;
begin
clrscr;
readln(s);
i:=1;
while i<=length(s) do
begin
while (pos(s[i],zn)<>0) and (i<=length(s)) do
i:=i+1;
ns:=i;
while (pos(s[i],zn)=0) and (i<=length(s)) do
i:=i+1;
ks:=i;
sl:=Copy(s,ns,ks-ns);
For j:=1 to length(sl) do
if (Poz(sl,'НА')<>0) or (Poz(sl,'ПРИ')<>0) or (Poz(sl,'ЗА')<>0) then write(sl);
end;
readln;end.

Попробуй так!!

Автор: Roofless 26.12.2007 2:14

ATAMAH Большое тебе спасибо, буду проверять