love2121
06.06.2022 13:36

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

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
Pomogashka2002
23.05.2022 04:47

xD

uses crt;

var

dt,t1,t2:LongInt;

function GetTime:LongInt;

var

substr,str:string;

ERR,step,spacepos,code,num:Integer;

t:longint;

begin

ERR:=0;

repeat

t:=0;

step:=1;

if ERR<>0 then writeln('Nepravilnie dannie, povtorite vvod:');

ERR:=0;

readln(str);

str:=str+' ';

repeat

spacepos:=pos(' ',str);

if (spacepos<>0) then

begin

substr:=copy(str,1,spacepos-1);

delete(str,1,spacepos);

val(substr,num,code);

if code=0 then

begin

if (step=1) then begin if (num>=0) and (num<=23) then t:=t+num*60*60 else ERR:=3; end;

if (step=2) then begin if (num>=0) and (num<=59) then t:=t+num*60 else ERR:=3;end;

if (step=3) then begin if (num>=0) and (num<=59) then t:=t+num else ERR:=3;end;

inc(step);

end

else ERR:=2;

end else ERR:=1;

until ((step=4) or (err<>0));

until err=0;

GetTime:=t;

end;

begin

writeln('pervoe vremy:');

t1:=GetTime;

writeln('vtoroe vremy:');

t2:=GetTime;

if t2>=t1 then dt:=t2-t1 else dt:=t2-t1+24*60*60;

writeln('raznica v sekundah: ');

writeln(dt);

end.

0,0(0 оценок)
Ответ:
Kawaidesu43
24.07.2020 18:52
begin
  var a:=ArrRandom(ReadInteger('n='),-50,50); a.Println;
  var (imin,imax):=(a.IndexMin,a.IndexMax);
  Writeln('Индекс минимального элемента- ',imin,', максимального- ',imax);
  Writeln('Максимум и минимум равны ',a[imax],', ',a[imin])
end.

Пример
n= 20
45 5 -3 16 -37 24 -2 2 49 25 0 -37 17 26 -38 7 -11 21 3 -7
Индекс минимального элемента- 14, максимального- 8
Максимум и минимум равны 49, -38

Начиная с данной сборки PascalABC.NET вывод можно оформлять и так:

begin
  var a:=ArrRandom(ReadInteger('n='),-50,50); a.Println;
  var (imin,imax):=(a.IndexMin,a.IndexMax);
  Writeln($'Min a[{imin}]={a[imin]}, max a[{imax}]={a[imax]}')
end.

Пример
n= 20
40 -13 -7 7 45 -28 3 -40 37 45 10 47 -38 -39 25 -46 45 -44 42 44
Min a[15]=-46, max a[11]=47
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота