yakostik
Full Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Цитата: По моему 1. Цитата: A:ARRAY[1..10] of string; | кто тебе сказл что введено будет 10 слов а если 11? 2. Цитата: inc(g); A[g]:=copy(s,n,k-n); n:=k+1; m:=g | а устанавливать начальные значения переменным m и g кто за тебя будет надежда на компилятор это хорошо но ... 3. Цитата: for g:=1 to m+1 do writeln(A[g]); | это что просто выводим список усех слов в столбик, а зачем? вот то что получилось у меня Код: program z3; var t,s:string; i,x,p:integer; begin writeln('vvedi tetkst'); readln(t); repeat writeln('vedite simvol'); readln(s); p:=length(t); until (length(s)=1) and (s<>' '); for i:=length(t) downto 2 do begin if copy(t,i,1)=' 'then begin if s=copy(t,i+1,1) then writeln(copy(t,i+1,p-i)); p:=i; end; end; if copy(t,1,1)=s then writeln(copy(t,1,p)); end. | написано в лоб и не совсем неудобно что слова выводятся от конца текста к его началу но это можно подправить, зато размер текста ограницен только количеством символов в типе данных, вся программа выполняется в один проход на строке (то есть быстрее чем предворительное деление на массив слов), и задествывано гораздо меньше переменных а значит и меньше памяти нужно для работы. |