Найти сумму элементов массива R, а так же сумму корней элементов массива R - Pascal ABC
Формулировка задачи:
дан произвольный массив R размерностью n. найти сумму элементов массива R, а так же сумму корней элементов массива R. Исходные данные взять самостоятельно.
Проблема в том что надо использовать процедуру или функцию.
я написал но без них. А переделать не понимаю как
Помогите
вот мой код
Листинг программы
- var
- min, max, sum:REAL;
- skk : real;
- n,t,i, imin, imax:integer;
- a:array[1..20] of integer;
- begin
- write('Введите размерность массива: '); readln(n);
- for i:= 1 to N do
- begin
- a[i]:=random(20)-10;
- write(a[i]:4);
- end;
- writeln;
- min := a[1]; imin:=1;
- for i:= 1 to N do
- begin
- if a[i] < min then
- begin
- min := a[i];
- imin := i;
- end;
- end;
- max := a[1]; imax:=1;
- for i:= 1 to N do
- begin
- if a[i] > max then
- begin
- max := a[i];
- imax := i;
- end;
- end;
- if imin>=imax then
- begin
- t:=imin;
- imin:=imax;
- imax:=t;
- end;
- //отвечает за сумму
- sum := 0;
- for i:= imin to imax do
- begin
- sum := sum + a[i];
- end;
- //отвечает за сумму кв корней
- for i:= imin to imax do
- begin
- skk:=skk+sqr(a[i]);
- end;
- writeln('Сумма квадратных корней элементов массива ',skk);
- writeln('Сумма ',sum);
- end.
Решение задачи: «Найти сумму элементов массива R, а так же сумму корней элементов массива R»
textual
Листинг программы
- type mas=array[1..20] of real;
- procedure vvod(var a:mas; var n:byte);
- var i:byte;
- begin
- write('Введите размерность массива от 2 до 20 n=');
- readln(n);
- writeln('Массив');
- for i:=1 to n do
- begin
- a[i]:=20*random;
- write(a[i]:6:2);
- if i=12 then writeln;
- end;
- writeln;
- end;
- procedure min_max(a:mas;n:byte;var imin,imax:byte);
- var i:byte;
- begin
- imin:=1;
- imax:=1;
- for i:=2 to n do
- begin
- if a[i]>a[imax] then imax:=i;
- if a[i]<a[imin] then imin:=i;
- end;
- writeln('Минимальный элемент=',a[imin]:0:2,' его индекс=',imin);
- writeln('Максимальный элемент=',a[imax]:0:2,' его индекс=',imax);
- end;
- procedure summa(a:mas; n,imin,imax:byte; var sum,skk:real);
- var i,t:byte;
- begin
- if imin>imax then
- begin
- t:=imin;
- imin:=imax;
- imax:=t;
- end;
- sum:=0;
- skk:=0;
- for i:=imin to imax do
- begin
- sum:=sum+ a[i];
- skk:=skk+sqrt(a[i]);
- end;
- writeln('Сумма квадратных корней элементов массива ',skk:0:2);
- writeln('Сумма ',sum:0:2);
- end;
- var a:mas;
- sum,skk:real;
- n,imin,imax:byte;
- begin
- vvod(a,n);
- min_max(a,n,imin,imax);
- summa(a,n,imin,imax,sum,skk);
- end.
Объяснение кода листинга программы
- Создается тип данных
mas
, который представляет собой массив из 20 элементов типа real. - Создается процедура
vvod
, которая запрашивает у пользователя размерность массива от 2 до 20 и затем заполняет его случайными числами от 0 до 20. - Создается процедура
min_max
, которая находит минимальный и максимальный элементы в массиве и выводит их на экран. - Создается процедура
summa
, которая находит сумму элементов массива и сумму квадратных корней этих элементов. - В основной части программы создается переменная
a
типаmas
и заполняется случайными числами. - Затем вызываются процедуры
min_max
иsumma
для нахождения минимального и суммы элементов массива. - Наконец, выводятся на экран сумма квадратных корней элементов массива и сумма элементов массива.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д