Нужно написать подробное решение этих подпрограмм и сравнить что лучше использовать для решения задачи процедуру или функцию и почему :
ПРОЦЕДУРА
//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.

11 Мая 2019 в 19:46
201 +1
0
Ответы
Нет ответов
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 83 887 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир