Simkara
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Ребята, нужна помощь в исправлении кода Вводится строка, каждому слову строки присваивается номер. Затем вводится номер слова и программа должна вывести это слово отдельно, если слова не существует, выводится пустая строка. Все расчеты идут через процедуру VivodSlova. Цитата: Код: program s26; uses crt; var s1:array[1..50] of string; slovo,s:string; i,k,n:byte; function VivodSlova(var st:string):string; begin s:=s+' '; k:=0; while (s[1]=' ') and (s<>'') do begin delete(s,1,1); end; begin while s<>'' do begin inc(k); VivodSlova:=Copy(st,1,Pos(' ',st)-1); Delete(st,1,Pos(' ',st)); s1[k]:=st; while (st=' ') and (st<>'') do begin delete(st,1,1); end; end; end; end; begin clrscr; write('Введите строку: '); readln(s); vivodslova (s); write('Введите номер слова для вывода: '); readln(n); if n>k then writeln('') else writeln(s1[n]); readln; end. | У меня же, программа выводит все слова, после введенного номера. Не могу понять в чем ошибка. Но предполагаю, что в этом куске: Цитата: begin while s<>'' do begin inc(k); VivodSlova:=Copy(st,1,Pos(' ',st)-1); Delete(st,1,Pos(' ',st)); s1[k]:=st; while (st=' ') and (st<>'') do begin delete(st,1,1); end; |
|