Ачатовцы, подскажите как на паскале в строке текста найти слова которые больше пяти символов, но меньше 8?
берешь переменную l под длину, сначала l=0 береме переменную s под слово, сначала s='' Читать текст посимвольно, пока символ не пробел, прибавляя единицу к l, а символ к s Когда достигли пробела, смотрим, если l>5 и l<8, выводим слово s Если нет, не выводим В любом случае l=0 ставим, s='' И далее...
сунуть текст в стринглист, заменить внём все пробелы на перенос строк и далее: list:=tstringlist.create; for i:=0 to list.count-1 do begin if (length(list)>5) and (length(list)<8) the showmessage('нашли слово: '+list ); end;
Решил немного выежнуться и решил так, строку разбил на слова в массив, а потом каждое сравнивал по длинне.. Code: program zadanie3; var i,n,k:integer; predl:string; words,result:array[1..100] of string; wfile:text; filename:string; begin predl:='turbo pascal internet go interest programming number size on get post kelvin programming development'; n:=1; k:=1; for i:=1 to length(predl) do begin if predl[k]<>' ' then begin words[n]:=words[n]+predl[k]; inc(k); end else begin inc(n); inc(k); end; end; k:=1; for i:=1 to n do begin if (length(words[i])>5) and (length(words[i])<8) then begin result[k]:=words[i]; inc(k); end; end; filename:='res.txt'; Assign(wfile,filename); Rewrite(wfile); Writeln(wfile, 'ishodniy text:'); writeln(wfile, predl); writeln(wfile, 'slova po usloviu:'); for i:=1 to k do writeln(wfile, result[i]); Close(wfile); end.