Как найти среднее арифметическое элементов массива паскаль

Перейти к содержанию

Среднее арифметическое положительных элементов массива

Просмотров 7.2к. Обновлено 17 сентября 2021

Найти среднее арифметическое положительных элементов линейного массива.

Данная задача имеет смысл, если массив заполнен не только положительными числами, но также содержит отрицательные числа и/или возможно нули.

Для заполнения массива можно воспользоваться генератором псевдослучайных чисел. Допустим, надо сгенерировать числа в диапазоне от -5 до 4 включительно. Всего значений 10, смещение на -5. Таким образом, с помощью стандартной функции генерируем числа от 0 до 10 и вычитаем из них 5.

Среднее арифметической находится как отношение суммы чисел к количеству этих чисел. Поскольку надо найти среднее арифметическое только положительных чисел, то, перебирая массив, нам надо определять положительные числа, добавлять их к общей сумме, а также считать их количество. Для этого потребуется две переменные (например, sum и qty), которым до цикла следует присвоить значение 0.

Осуществлять проверку с помощью условного оператора if можно как в отдельном цикле перебора массива, так и в цикле его заполнения. Если очередной элемент массива больше нуля, то следует его значение добавить к переменной sum, а значение переменной qty увеличить на 1.

После того как все элементы массива проверены, надо найденную сумму положительных чисел разделить на их количество. Тем самым будет найдено среднее арифметическое.

Pascal

Язык Си

Python

КуМир

Basic-256

3 / 3 / 0

Регистрация: 05.04.2017

Сообщений: 138

1

Найти среднее арифметическое элементов массива.

11.04.2017, 17:40. Показов 74311. Ответов 1


Студворк — интернет-сервис помощи студентам

дан массив в котором N чисел. Найти среднее арифметическое элементов массива.



0



VladimirD

80 / 80 / 78

Регистрация: 30.12.2015

Сообщений: 256

11.04.2017, 17:46

2

Лучший ответ Сообщение было отмечено программмист как решение

Решение

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
program Project1;
const n=7;
var a:array[1..n] of integer;
 i,sum:integer;
 sarif:real;
begin
  sum:=0;
  sarif:=0;
  writeln ('введите массив');
  for i:=1 to n do
   begin
   write('введите A[',i,']:');
   readln(a[i]);
   sum:=sum+a[i];
   end;
  sarif:=sum/n;
  writeln ('среднее фрифметическое = ',sarif:4:2);
end.



1



Одномерные массивы (последовательности).

  1. Задачи заполнения
  2. Задачи анализа
  3. Задачи поиска
  4. Задачи перестановки

A: 3,-4,0,3,-5,10,0

A[1]=3, A[3]=0, A[7]=0

I — номер элемента, A[I] — элемент массива, стоящий на I-ом месте

  1. 1.Сформировать и вывести на экран последовательность из n элементов, заданных датчиком случайных чисел на интервале [-23, 34].

Program posled;

Var a: array[1..100] of integer;

      i, n: integer;

Begin

  Write (‘Сколько элементов? ’);  Readln (n);

   For i=1 to n do

       begin      

            a[i]:= Random(58)-23;

             writeln (a[i],’ ‘);

       end;

End.

2. Найти произведение элементов одномерного массива, состоящего из n элементов. Элементы вводятся с клавиатуры.

Program proisveden;

Var a: array[1..100] of integer;

      i, n, p: integer;

Begin

  Write (‘Сколько элементов? ’);  Readln (n);

  p:=1;

  For i:=1 to n do

     begin

       write (‘введите число’); readln (a[i]);

       p:=p*a[i];

     end;

     writeln(‘произведение элементов равно:  ‘,p);

End.

3. Найти сумму элементов одномерного массива. Размер произвольный. Элементы вводятся с клавиатуры.

Program summa;

Var a: array[1..100] of real;

      i, n: integer;

        s: real;

Begin

  Write (‘n=’); Readln (n);

  s:=0;

  For i:=1 to n do

     begin

       write (‘введите число’); readln (a[i]);

       s:=s+a[i];

     end;

     writeln(‘сумма  элементов равна  ‘,s);

End.

4. Задан массив А, состоящий из n чисел. Найти среднее арифметическое его элементов. Элементы вводятся с клавиатуры.

Program srednee;

Var a: array[1..100] of  real;

      i, n: integer;

        s,sred: real;

Begin

  Write (‘n=’); Readln (n);

  s:=0;

  For i:=1 to n do

     begin

       write (‘введите число’); readln (a[i]);

       s:=s+a[i];

     end;

   sred:=s/n;    

  writeln(‘среднее арифметическое  элементов: ‘,s);

End.

5. Найти сумму элементов массива с четными номерами, содержащего N элементов. Элементы вводятся с клавиатуры.

Program sumshet;

Var a: array[1..100] of  real;

      i, n: integer;

        s,sred: real;

Begin

  Write (‘n=’); Readln (n);

  s:=0;

  For i:=1 to n do

     begin

       write (‘введите число’); readln (a[i]);

       if i mod 2 = 0 then s:=s+a[i];

     end;

   writeln(‘сумма элементов с четными номерами: ‘,s);

End.

6. Сформировать и вывести на экран массив, элементы которого заданы датчиком случайных чисел на интервале [-19, 26] (размер произвольный). Найти произведение элементов с нечетными номерами.

Program proisvednechet;

Var a: array[1..100] of  integer;

      i, n, p: integer;

Begin

  Write (‘Сколько элементов? ’);  Readln (n);

  P:=1;  

  For i=1 to n do

       begin      

            a[i]:= Random(46)-19;

             writeln (a[i],’ ‘);

            if i mod 2 <> 0 then P=P*a[i];

       end;

  Writeln(‘Произведение элементов с нечетными номерами:’, P);

End.

7. Сформировать и вывести на экран массив, элементы которого заданы датчиком случайных чисел на интервале [-56, 47] (размер произвольный). Найти произведение элементов с четными номерами, которые превосходят некоторое число t.

Program proisvedchetbolt;

Var a: array[1..100] of integer;

      i, n, p, t: integer;

Begin

  Write (‘Сколько элементов? ’);  Readln (n);

  P:=1;  

  For i=1 to n do

       begin      

            a[i]:= Random(104)-56;  writeln (a[i],’ ‘);

            if (i mod 2 = 0) and (a[i]>t) then P=P*a[i];

       end;

  Writeln(‘Произведение элементов с четными номерами, превосходящие число t:’, P);

End.

8. Найти наименьший элемент одномерного массива, состоящего из n элементов. Элементы вводятся с клавиатуры.

Program minim;

Var a: array[1..100] of real;

      i, n: integer;

         min: real;

Begin

  Write (‘n=’); Readln (n);

  For i:=1 to n do

    begin

       write(‘a[‘,i,’]=’); readln (a[i]);

    end;

  min:=a[1];

  For i:=2 to n do

     If a[i]< min then min:=a[i];

  Writeln(‘наименьшее число:   ‘,min);

End.

9. Найти номер наименьшего элемента в массиве, заданного датчиком случайных чисел на интервале [-20, 25]. Размер произвольный.

Program numberminim;

Var a: array[1..100] of integer;

      i, n, num, min: integer;

Begin

  Write (‘n=’); Readln (n);

  For i:=1 to n do

    begin

        a[i]:= Random(46)-20;

        writeln (a[i]);

    end;

  min:=a[1];

  num:=1;

  For i:=2 to n do

       If a[i]< min then

            begin

                min:=a[i];

                num:=i;

            end;

  Writeln(‘ номер наименьшего элемента:   ‘,num);

End.

10. В заданном одномерном  массиве, состоящем из n  целых чисел, подсчитать количество нулей.

Program  kolv0;

Var a: array[1..100] of integer;

      i, n, k: integer;

Begin

  Write (‘n=’); Readln (n);

  For i:=1 to n do

    begin

       Write(‘a[‘,i,’]=’); readln (a[i]);

       if a[i]=0 then k:=k+1;

    end;

  Writeln(‘количество 0 равно  ’, k);

end.

11. В заданном одномерном  массиве, состоящем из n  целых чисел, подсчитать количество четных элементов.

Program  kolvсchet;

Var a: array[1..100] of integer;

      i, n, k: integer;

Begin

  Write (‘n=’); Readln (n);

  For i:=1 to n do

    begin

       Write(‘a[‘,i,’]=’); readln (a[i]);

       if  a[i] mod 2=0 then k:=k+1;

    end;

  Writeln(‘количество четных элементов: ’, k);

end.

12. Найдите среднее арифметическое элементов массива, состоящего из 10 чисел, которые превышают по величине число С. Элементы вводятся с клавиатуры.

Program sredarifmet;

Var a: array[1..10] of  real;

      i, k: integer;

      C, S, sred: real;

Begin

  For i:=1 to 10 do

    begin

       write(‘a[‘,i,’]=’);     readln (a[i]);

    end;

  write(‘введите С: ‘); readln (C );

  For i:=1 to 10 do

    begin

       If a[i]>C then

           begin      S=S+a[i];     K=K+1;   end;

     end;

   sred=S/k;

   Writeln(‘среднее арифметическое чисел, превосходящих ‘,C,’  равно  ‘,sred);

End.

13. Найти произведение элементов целочисленного одномерного массива с четными номерами, состоящего из n элементов. Элементы вводятся с клавиатуры.

Program proizved_chet;

Var a: array [1..100] of integer;

   i, n, p: integer;

Begin

  p:=1;

 write (‘n=’);  readln (n);

  for i:=1 to n do

    begin

      write (‘a[‘,i,’]=’); readln (a[i]);

      if i mod 2=0 then p:=p*a[i];

    end;

  Writeln (‘произведение элементов массива с четными номерами равно ‘,p);

End.

14. В заданном одномерном массиве поменять местами соседние элементы.

Var
  n, i, c : integer;
  a : array [1..1000] of integer;
begin
  read (n);
   for i := 1 to n do read (a[i]);
  for i := 1 to n div 2 do
  begin
    c := a[i*2];
    a[i*2] := a[i*2-1];
    a[i*2-1] := c;
  end;
  for i := 1 to n do
    write (a[i], ‘ ‘);
end.

15. Массив А вводится с клавиатуры. Сформировать новый массив В, состоящий из четных элементов массива А. Элементы вводятся с клавиатуры. Размер n.

Program newmasiv;

Var a: array[1..100] of  integer;

       b: array[1..100] of  integer;

     n, i, k: integer;

Begin

  kol:=0; k:=0;

  write (‘n=’);  readln (n);

  For i:=1 to n do

    begin

       write(‘a[‘,i,’]=’);     readln (a[i]);

       if a[i] mod 2=0 then

              begin

                   k:=k+1; b[k]:=a[i]; kol:=kol+1;

              end;

          if kol=0 then writeln(‘четных элементов нет’) else    

          for k:=1 to kol do  write(‘b[‘,k,’]=’,b[k]);

    end;

Условие задачи : Задан массив А, состоящий из n чисел. Найти среднее арифметическое его элементов. Элементы вводятся с клавиатуры.

Сложность : легкая.

Данную задачу мы будем решать на основе этой (ссылка), но там мы искали просто сумму, здесь же нам надо в добавок найти среднее арифметическое всех этих чисел :

Информация

Среднее арифметическое — сумма всех чисел деленное на кол-во чисел

Начнем решать задачу.

Первое что мы сделаем мы создадим свой тип данных как и зачем читайте (тут) :

type

massiv =
array
[
1..1000
]
of
integer
;

Дальше уже объявим переменные которые нам понадобятся :

var

i,n,summa :
integer
;

srednee :
real
;

A : massiv;

Для чего они нужны :
i — для цикла, когда мы будем заполнять массив
n — кол-во элементов
summa — сумма элементов массива
…дальше понятно без слов ))

Теперь просим пользователя ввести кол-во элементов , а сумме присваиваем 0, т.к. для корректной работы с переменной нам нужно присвоить ей какое-то значение.

write
(
'Введите кол-во элементов : '
); readln(n);
summa :=
0
;
// начальное значение

Дальше делаем цикл в нем мы просим пользователя ввести число и сразу прибавляем к текущей сумме :

for
i:=
1
to
n
do

begin

write
(
'Введите '
,i,
' элемент: '
); readln(A[i]);

summa := summa + A[i];

end
;

Ну и всё, осталось только подсчитать среднее арифметическое, т.е. мы сумму делим на количество элементов (n)

Весь код программы :

uses
crt;
type

massiv =
array
[
1..1000
]
of
integer
;
var

i,n,summa :
integer
;

srednee :
real
;

A : massiv;
begin

clrscr;

write
(
'Введите кол-во элементов : '
);readln(n);

summa :=
0
;

for
i:=
1
to
n
do

begin

write
(
'Введите '
,i,
' элемент : '
); readln(A[i]);

summa := summa + A[i];

end
;

srednee := summa / n;

writeln
(
'Среднее арифметическое '
, srednee:
3
:
2
);
// округляем

readln;
end
.

Вот результат :

Предыдущая

ПрограммированиеЗадачи по Pascal. Сумма четных элементов массива.

Следующая

ПрограммированиеЗадачи по Pascal. Сумма элементов массива.

Среднее
арифметическое (обозначим как SA)
всех значений элементов массива
подсчитывается по формуле:

SA
= S / К,

где
S – это сумма всех
элементов, K – количество
просуммированных элементов. Алгоритмы
поиска суммы и количества элементов
были подробно рассмотрены в п/п 2.2.3.1. Но
в тех случаях, когда SA
находят только среди элементов,
удовлетворяющих некоторому условию,
следует учитывать тот факт, что таких
элементов в массиве может и не быть, и
тогда К = 0. Чтобы избежать деления на 0,
необходимо при получении значения SA
осуществлять соответствующую проверку:
К > 0. На рис. 9 приведена блок-схема
алгоритма поиска SA
положительных элементов и фрагмент
программы.

Среднее
геометрическое значений массива
(обозначим через SG)
вычисляется по следующей формуле:

SG
= K
P,

где
Р – произведение элементов массива, K
– количество элементов. Аналогично,
как и в алгоритме поиска SА
элементов, удовлетворяющих некоторому
условию, необходимо учитывать вариант
К = 0. На рис. 10 приведена блок-схема
алгоритма поиска среднего геометрического
отрицательных элементов массива и
соответствующий фрагмент программы.

S:=
O;

K
:= 0;

for
i:=1 to N do

if
a[i]> 0 then

begin

S
:= S + A[i];

K
:= K +1;

end;

if
K > 0 then

begin

SA
:= S/K;

writeln
(‘ SA= ‘, SA);

end

else

writeln(‘
K = 0 ‘);

… *

Рис.
9

P:=
1;

K
:= 0;

for
i:=1 to N do

if
A[i]< 0 then

begin

P
:= P* A[i];

K
:= K +1;

end;

if
K > 0 then

begin

SG
:= EXP(1/K * LN(P)) ;

writeln
(‘ SG= ‘, SG);

end

else

writeln(‘
K = 0 ‘);

Рис. 10

2.2.3.3. Обработка элементов одномерного массива, имеющих чётные индексы

В
некоторых задачах требуется обработать
не все подряд элементы массива, а лишь
те, индексы которых кратны определённому
числу.

Пусть,
например, требуется умножить на 2 значения
элементов с чётными индексами. Понятно,
что обработку массива придётся начать
с элемента, имеющего номер 2, т.е. переменная
i,
обозначающая
индекс элемента, примет начальное
значение, равное
2. Выбирать из массива элементы для
обработки следует «перешагивая»
через элемент, т.е. индекс i
будет изменяться с шагом
2.

Б

лок-схема
описанного алгоритма приведена на
рисунке 11. Фрагмент
программы записан ниже. В нём использован
не привычный уже цикл со счётчиком (цикл
FOR),
а универсальный цикл «пока»
(цикл WHILE),
который, в отличие от FOR,
приспособлен к работе
с любым шагом (в том числе и с шагом 2).

i:=2;

while
i < =N do

begin

A[ i ] := A[ i ] * 2;

i:=i+2;

end;


Рис.11

Следует
обратить внимание, что в случае работы
с нечетными индексами начальное значение
i:=1,
i
будет изменяться с шагом 2. С помощью
подобных алгоритмов можно обрабатывать
элементы массива с индексами, кратными
любому числу. Например,
найти сумму элементов с индексами,
кратными 3 ( i=3;
шаг +3) заменить нулём каждый
четвёртый элемент массива и т.п.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

Понравилась статья? Поделить с друзьями:
  • Как найти записки стрелка в зове припяти
  • Как заполнить анкету найти девушку
  • Msvcr80 dll что это за ошибка как исправить
  • Как найти площадь четырехугольника по клеточкам
  • Как составить календарный план по физкультуре