Нужно написать подробное решение этих подпрограмм и сравнить что лучше использовать для решения задачи процедуру или функцию и почему : ПРОЦЕДУРА //uses crt; //Подсчет количества слов в строке type arr = array[1..20] of String; procedure first(s:string; var a:arr; var k:integer); var t,i:integer;// переменные для хранения длины строки,количества вхождений символа в строку begin if s[1]=' ' then k:=1 else k:=2; t:=0; for i:= 1 to length(s) do begin if s[i]<>' ' then begin t:=t+1 end else begin if s[i+1]<>' ' then begin a[k]:=copy(s,i-t,t); t:=0; k:=k+1; end else t:=t+1; end; end; k:=k-1; end; //Поиск n-ого слова procedure second(var s:string; a:arr; num:integer); var s2,l:string; i,h:integer;// переменные для хранения длинны строки,количества вхождений символа в строку begin num:=num+1; l:=a[num]; h:= pos(a[num],s); for i:=length(l) downto 1 do s2:=s2+l[i]; Delete(s,h,length(l)); insert(s2,s,h); end; var s:string; a:arr; k:integer; Begin //clrscr; readln(s); first(s,a,k); writeln('Количество слов равно: ',k); {Блок считает и выписывает слова из строки S в массив a, количество слов равно (k-1), при этом блок программы игнорирует пробелы в строке} second(s,a,2); writeln('Строка после изменения: ',s); {Выводим итоговое значение строки S с перевёрнутым вторым словом} readln; end. ФУНКЦИЯ uses crt; type arr = array[1..20] of String; function first(s:string; var a: arr):integer; var k,i,t:integer; begin if s[1]=' ' then k:=1 else k:=2; t:=0; for i:= 1 to length(s) do begin if s[i]<>' ' then begin t:=t+1 end else begin if s[i+1]<>' ' then begin a[k]:=copy(s,i-t,t); t:=0; k:=k+1; end else t:=t+1; end; end; first:=k-1; end; function second(s:string;var a: arr; num:integer):string; var l,s2:string; i,h:integer; begin num:=num+1; l:=a[num]; h:= pos(a[num],s); for i:=length(l) downto 1 do s2:=s2+l[i]; Delete(s,h,length(l)); insert(s2,s,h); second:=s; end; var s:string; a:arr; i,k:integer; Begin clrscr; writeln('Введите предложение : '); readln(s); k:=first(s,a); writeln('Количество слов равно: ',k); s:=second(s,a,2); writeln('Строка после изменения: ',s); readln; end.