Найти сумму элементов массива R, а так же сумму корней элементов массива R - Pascal ABC

Узнай цену своей работы

Формулировка задачи:

дан произвольный массив R размерностью n. найти сумму элементов массива R, а так же сумму корней элементов массива R. Исходные данные взять самостоятельно. Проблема в том что надо использовать процедуру или функцию. я написал но без них. А переделать не понимаю как Помогите вот мой код
Листинг программы
  1. var
  2. min, max, sum:REAL;
  3. skk : real;
  4. n,t,i, imin, imax:integer;
  5. a:array[1..20] of integer;
  6. begin
  7. write('Введите размерность массива: '); readln(n);
  8. for i:= 1 to N do
  9. begin
  10. a[i]:=random(20)-10;
  11. write(a[i]:4);
  12. end;
  13. writeln;
  14. min := a[1]; imin:=1;
  15. for i:= 1 to N do
  16. begin
  17. if a[i] < min then
  18. begin
  19. min := a[i];
  20. imin := i;
  21. end;
  22. end;
  23. max := a[1]; imax:=1;
  24. for i:= 1 to N do
  25. begin
  26. if a[i] > max then
  27. begin
  28. max := a[i];
  29. imax := i;
  30. end;
  31. end;
  32. if imin>=imax then
  33. begin
  34. t:=imin;
  35. imin:=imax;
  36. imax:=t;
  37. end;
  38. //отвечает за сумму
  39. sum := 0;
  40. for i:= imin to imax do
  41. begin
  42. sum := sum + a[i];
  43. end;
  44. //отвечает за сумму кв корней
  45. for i:= imin to imax do
  46. begin
  47. skk:=skk+sqr(a[i]);
  48. end;
  49. writeln('Сумма квадратных корней элементов массива ',skk);
  50. writeln('Сумма ',sum);
  51. end.

Решение задачи: «Найти сумму элементов массива R, а так же сумму корней элементов массива R»

textual
Листинг программы
  1. type mas=array[1..20] of real;
  2. procedure vvod(var a:mas; var n:byte);
  3. var i:byte;
  4. begin
  5. write('Введите размерность массива от 2 до 20 n=');
  6. readln(n);
  7. writeln('Массив');
  8. for i:=1 to n do
  9.  begin
  10.   a[i]:=20*random;
  11.   write(a[i]:6:2);
  12.   if i=12 then writeln;
  13.  end;
  14. writeln;
  15. end;
  16. procedure min_max(a:mas;n:byte;var imin,imax:byte);
  17. var i:byte;
  18. begin
  19. imin:=1;
  20. imax:=1;
  21. for i:=2 to n do
  22.  begin
  23.   if a[i]>a[imax] then imax:=i;
  24.   if a[i]<a[imin] then imin:=i;
  25.  end;
  26. writeln('Минимальный элемент=',a[imin]:0:2,' его индекс=',imin);
  27. writeln('Максимальный элемент=',a[imax]:0:2,' его индекс=',imax);
  28. end;
  29. procedure summa(a:mas; n,imin,imax:byte; var sum,skk:real);
  30. var i,t:byte;
  31. begin
  32. if imin>imax then
  33.  begin
  34.   t:=imin;
  35.   imin:=imax;
  36.   imax:=t;
  37.  end;
  38. sum:=0;
  39. skk:=0;
  40. for i:=imin to imax do
  41.  begin
  42.   sum:=sum+ a[i];
  43.   skk:=skk+sqrt(a[i]);
  44.  end;
  45. writeln('Сумма квадратных корней элементов массива ',skk:0:2);
  46. writeln('Сумма ',sum:0:2);
  47. end;
  48. var a:mas;
  49.     sum,skk:real;
  50.     n,imin,imax:byte;
  51. begin
  52. vvod(a,n);
  53. min_max(a,n,imin,imax);
  54. summa(a,n,imin,imax,sum,skk);
  55. end.

Объяснение кода листинга программы

  1. Создается тип данных mas, который представляет собой массив из 20 элементов типа real.
  2. Создается процедура vvod, которая запрашивает у пользователя размерность массива от 2 до 20 и затем заполняет его случайными числами от 0 до 20.
  3. Создается процедура min_max, которая находит минимальный и максимальный элементы в массиве и выводит их на экран.
  4. Создается процедура summa, которая находит сумму элементов массива и сумму квадратных корней этих элементов.
  5. В основной части программы создается переменная a типа mas и заполняется случайными числами.
  6. Затем вызываются процедуры min_max и summa для нахождения минимального и суммы элементов массива.
  7. Наконец, выводятся на экран сумма квадратных корней элементов массива и сумма элементов массива.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.8 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы