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

Раздел:
Задачи /
Простейшие /

Разность между максимальным элементом и средним арифметическим значением

Основы программирования 2.0

Основы программирования
Каждый профессионал когда-то был чайником. Наверняка вам знакомо состояние, когда “не знаешь как начать думать, чтобы до такого додуматься”. Наверняка вы сталкивались с ситуацией, когда вы просто не знаете, с чего начать.
Эта книга ориентирована как раз на таких людей, кто хотел бы стать программистом, но совершенно не знает, как начать этот путь.
Подробнее…

Условие задачи 2.98

Задача 2.98
Дан одномерный массив А неупорядоченных целых чисел. Вывести на экран разность между наибольшим элементом и средним арифметическим значением для отрицательных элементов. Если отрицательных элементов нет, то вывести на экран сообщение НЕТ.

Для начала вспомним, что такое среднее арифметическое значение.

Среднее арифметическое – это сумма всех чисел множества, делённая на их
количество. Например, у нас есть 5 чисел:
1, 7, 10, 2, 15. Тогда среднее арифметическое будет равно:


(1 + 7 + 10 + 2 + 15) / 5 = 35 / 5 = 7

Может ли среднее арифметическое быть отрицательным числом

Конечно, может. Ведь числа в множестве могут быть как положительными,
так и отрицательными. И, в зависимости от того, каким числом будет сумма этих
чисел – положительным или отрицательным, среднее арифметическое будет иметь
соответствующий знак. Например, у нас есть 5 чисел:
1, -7, 10, 2, -15. Тогда среднее арифметическое будет равно:


(1 - 7 + 10 + 2 - 15) / 5 = -9 / 5 = -1,8

Таким образом, среднее арифметическое значение для отрицательных элементов массива вычисляется точно также, как и для положительных.

А теперь перейдём к решению задачи.

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

Итак, что нам нужно сделать:

  1. Найти наибольший элемент в массиве.
  2. Найти все отрицательные значения в массиве и вычислить для них среднее арифметическое.
  3. Вычислить разность между наибольшим элементом массива и средним арифметическим отрицательных чисел.

Примеры программ на Паскале и
С++.

Решение задачи 2.98 на Паскале

 
program mytask;

//****************************************************************
// КОНСТАНТЫ
//****************************************************************
const
  MAX_A = 16;

//****************************************************************
// ГЛОБАЛЬНЫЕ ПЕРЕМЕННЫЕ
//****************************************************************
var
  i       : byte;            //Индекс
  NegNum  : byte = 0;        //Количество отрицательных элементов
  Arifm   : Single = 0.0;    //Среднее арифметическое
  MaxA    : byte;            //Индекс элемента с наибольшим значением
  MaxInt  : ShortInt;        //Наибольшее значение типа
  MinInt  : ShortInt;        //Наименьшее значение типа
  A       : array[1..MAX_A] of ShortInt;  //Массив

//****************************************************************
// ОСНОВНАЯ ПРОГРАММА
//****************************************************************
begin
  MaxInt := High(MaxInt);   //Получить наибольшее значение типа
  MinInt := Low(MaxInt);    //Получить наименьшее значение типа
  randomize;                //Запустить генератор случайных чисел

  //Создать массив и вывести на экран
  for i := 1 to MAX_A do
    begin
      A[i] := random(MaxInt) - (MaxInt div 3);
      WriteLn(A[i]);
    end;

  //Найти наибольший элемент в массиве,
  //определить количество отрицательных элементов
  //и вычислить сумму отрицательных значений
  MaxInt := MinInt;
  for i := 1 to MAX_A do
    begin
      if A[i] >= MaxInt then
        begin
          MaxInt := A[i];
          MaxA := i;
        end;
      if A[i] < 0 then
        begin
          Inc(NegNum);
          Arifm := Arifm + A[i];
        end;
    end;

  //Вывести решение на экран
  WriteLn('Problem solution:');
  WriteLn('  The largest value in the array: ', MaxInt);
  WriteLn('  Index of the element with the highest value: ', MaxA);

  //Вычислить среднее арифметическое
  //и окончательно решить задачу
  if NegNum > 0 then
    begin
      Arifm := Arifm / NegNum;
      WriteLn('  Number of negative numbers: ', NegNum);
      WriteLn('  The arithmetic mean: ', Arifm:0:2);
      WriteLn('  Difference: ', (MaxInt - Arifm):0:2);
    end
  else
    WriteLn('!!! There are NO negative values !!!');

  WriteLn('The end. Press ENTER...');
  ReadLn;
end.

Решение задачи 2.98 на С++

#include <cstdlib>
#include <iostream>
#include <iomanip>      //!!! Подключить этот файл

using namespace std;

//****************************************************************
// КОНСТАНТЫ
//****************************************************************
const int MAX_A = 16; 

//****************************************************************
// ГЛОБАЛЬНЫЕ ПЕРЕМЕННЫЕ
//****************************************************************
unsigned char i;          //Индекс
unsigned char NegNum = 0; //Количество отрицательных элементов
float Arifm = 0.0;        //Среднее арифметическое
unsigned char MaxA;       //Индекс элемента с наибольшим значением
signed char MaxInt;       //Наибольшее значение типа
signed char MinInt;       //Наименьшее значение типа
signed char A[MAX_A];     //Массив 

//****************************************************************
// ОСНОВНАЯ ПРОГРАММА
//****************************************************************
int main(int argc, char *argv[])
{
  MaxInt = SCHAR_MAX;     //Получить наибольшее значение типа
  MinInt = SCHAR_MIN;     //Получить наименьшее значение типа 
  srand(time(0));         //Запустить генератор случайных чисел
  
  //Создать массив и вывести на экран
  for(i = 0; i < MAX_A; i++)
  {
    A[i] = (rand() % MaxInt) - (MaxInt / 3);
    cout << int(A[i]) << endl;
  }
  
  //Найти наибольший элемент в массиве,
  //определить количество отрицательных элементов
  //и вычислить сумму отрицательных значений
  MaxInt = MinInt;
  for(i = 0; i < MAX_A; i++)
  {
    if (A[i] >= MaxInt)
    {
      MaxInt = A[i];
      MaxA = i;
    } 
    if (A[i] < 0)
    {
      NegNum++;
      Arifm = Arifm + A[i];
    } 
  }
  
  //Вывести решение на экран
  cout << "Problem solution:" << endl;
  cout << "  The largest value in the array: " 
       << int(MaxInt) << endl;
  cout << "  Index of the element with the highest value: " 
       << int(MaxA) << endl; 
  
  //Вычислить среднее арифметическое
  //и окончательно решить задачу
  if (NegNum > 0)
  {
    Arifm = Arifm / NegNum;
    cout << "  Number of negative numbers: " 
         << int(NegNum) << endl;
    cout << "  The arithmetic mean: " 
         << fixed << setprecision(2) << Arifm << endl;
    cout << "  Difference: " 
         << fixed << setprecision(2) << (MaxInt - Arifm) << endl;
  }
  else
    cout << "!!! There are NO negative values !!!" << endl;   
  
  system("PAUSE");
  return EXIT_SUCCESS;
}

Разность между максимальным элементом и средним арифметическим значением

ВНИМАНИЕ!
Если вам что-то осталось непонятно, то советую почитать книги
“Основы программирования” и
“Основы С++”.

Как стать программистом 2.0

Как стать программистом 2.0

Эта книга для тех, кто хочет стать программистом. На самом деле хочет, а не просто мечтает. И хочет именно стать программистом с большой буквы, а не просто научиться кулебякать какие-то примитивные программки…
Подробнее…

Помощь в технических вопросах

Помощь в технических вопросах

Помощь студентам. Курсовые, дипломы, чертежи (КОМПАС), задачи по программированию: Pascal/Delphi/Lazarus; С/С++; Ассемблер; языки программирования ПЛК; JavaScript; VBScript; Fortran; Python и др. Разработка (доработка) ПО ПЛК (предпочтение – ОВЕН, CoDeSys 2 и 3), а также программирование панелей оператора, программируемых реле и других приборов систем автоматизации.
Подробнее…

Светило науки – 172 ответа – 0 раз оказано помощи

#Сюда пишем массив

Massive = [1, -3, 10, 222, -30, -10]

#Переменная для опредиления суммы отрицательных эллементов массива

Sum = 0

#Переменная для опредиления кол-ва отрицательных эллементов массива

Count = 0

#Переменная для подсчета среднего арифметического

Avg = 0

#Цыкл, в ходе которого мы находим сумму и кол-во отрицательных эллементов массива  

for elements in Massive:

   if elements < 0:

      Sum = elements + Sum

      Count = Count + 1

#Подсчет и округление среднего арефметического

if Count > 0:

   Avg = int(Sum / Count)

#Вывод среднего арефметического

print(Avg)

Разность между максимальным элементом и средним арифметическим значением

Задача 2.98
Дан одномерный массив А неупорядоченных целых чисел. Вывести на экран разность между наибольшим элементом и средним арифметическим значением для отрицательных элементов. Если отрицательных элементов нет, то вывести на экран сообщение НЕТ.

Для начала вспомним, что такое среднее арифметическое значение.

Среднее арифметическое — это сумма всех чисел множества, делённая на их количество. Например, у нас есть 5 чисел: 1, 7, 10, 2, 15 . Тогда среднее арифметическое будет равно:

(1 + 7 + 10 + 2 + 15) / 5 = 35 / 5 = 7

Может ли среднее арифметическое быть отрицательным числом

Конечно, может. Ведь числа в множестве могут быть как положительными, так и отрицательными. И, в зависимости от того, каким числом будет сумма этих чисел — положительным или отрицательным, среднее арифметическое будет иметь соответствующий знак. Например, у нас есть 5 чисел: 1, -7, 10, 2, -15 . Тогда среднее арифметическое будет равно:

(1 — 7 + 10 + 2 — 15) / 5 = -9 / 5 = -1,8

Таким образом, среднее арифметическое значение для отрицательных элементов массива вычисляется точно также, как и для положительных.

А теперь перейдём к решению задачи.

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

Итак, что нам нужно сделать:

  1. Найти наибольший элемент в массиве.
  2. Найти все отрицательные значения в массиве и вычислить для них среднее арифметическое.
  3. Вычислить разность между наибольшим элементом массива и средним арифметическим отрицательных чисел.

Примеры программ на Паскале и С++.

Разность между максимальным элементом и средним арифметическим значением

ВНИМАНИЕ!
Если вам что-то осталось непонятно, то советую почитать книги “Основы программирования” и “Основы С++”.

Среднее арифметическое чисел

Понятие среднее арифметическое ряда чисел можно встретить в разных сферах — в математике, статистике, инженерных расчетах и многих других.

Чтобы найти среднее арифметическое чисел надо их сложить и эту сумму разделить на количество чисел.

Мы создали этот калькулятор для упрощения расчетов. Он с легкостью найдет среднее арифметическое 3, 4, 5 и даже 15 чисел. Следует упомянуть, что кроме среднего арифметического есть очень схожие понятия медианы и среднего гармонического.

Калькулятор среднего арифметического

Как найти среднее арифметическое

Допустим, что нам надо найти среднее арифметическое чисел 7 23 9 73 3. Сложим их и получим 7 + 23 + 9 + 73 + 3 = 115. Поделим эту сумму на количество чисел, то есть на 5:
222 / 5 = 23

Значит среднее арифметическое приведенных чисел равно 23.

Простая формула, чтобы подсчитать среднее арифметическое

Среднее арифметическое нескольких чисел — это сумма этих чисел, которую разделили на количество слагаемых. Формула среднего арифметического, которую обычно проходят в 5 классе, выглядит так:

что такое среднее арифметическое

Потренируемся использовать формулу среднего арифметического.

Например, найдем среднее арифметическое чисел 2, 3 и 4. Обозначим среднее значение латинской буквой «m» и посчитаем сумму этих чисел.

  • 2 + 3 + 4 = 9

Разделим результат на количество чисел в задании, то есть на 3, и получим ответ — 3.

формула среднего арифметического

Применить эти знания можно в любой сфере жизни, где нужно обобщить и дать среднюю оценку: узнать среднюю цену товара в разных магазинах, вычислить среднюю зарплату сотрудников компании, сравнить среднюю посещаемость занятий учениками 5А и 5Б.

Средняя скорость движения — это весь пройденный путь, поделенный на время движения. Формула:

формула средней скорости движения

Так мы рассмотрели самые основные методы нахождения среднего значения. Теперь осталось попрактиковаться на примерах, чтобы быстро решать задачки на контрольной.

Примеры расчета среднего арифметического

Пример 1. Вычислить среднее арифметическое 33,3 и 55,5.

Чтобы найти среднее арифметическое двух чисел, надо сложить эти числа и результат разделить на 2: (33,3 + 55,5) : 2 = 88,8 : 2 = 44,4.

Пример 2. Подсчитать среднее арифметическое 7,5 и 8 и 0,5.

Чтобы найти среднее арифметическое трех чисел, надо сложить эти числа и результат разделить на 3: (7,5 + 8 + 0,5) : 3 = 16 : 3 = 5,33.

Пример 3. Найти среднее арифметическое 202, 105, 67 и 9.

Чтобы найти среднее арифметическое четырех чисел, надо сложить эти числа и результат разделить на 4: (202 + 105 + 67 + 9) : 4 = 383 : 4 = 95,75.

Пример 4. Сколько в среднем тратит школьник денег в неделю, если в понедельник он потратил 80 рублей, во вторник 75 рублей, в среду и четверг по 100 рублей, в пятницу 50 рублей.

Чтобы найти сколько в среднем школьник потратил за пять дней, надо сложить эти суммы и результат разделить на 5: (80 + 75 + 100 + 100 + 50) : 5 = 405 : 5 = 81.

Ответ: школьник в неделю тратит в среднем 81 рубль.

Еще больше интересных практических заданий — на курсах математики в онлайн-школе Skysmart. Вводный урок — бесплатно!

Как-то так:

#include <iostream>

using namespace std;

// В данном примере я использовал типы float, т. к. при попытке делить 3 на 2 мы получаем 1.5, но тип int обрезает все после .

int main()

{

   cout << “Task 30240725!” << endl; // just for fun

   int m[12] = {-1,-2,3,4,5,6,7,8,9,10,11,12}; // Инициализируем массив из 12 элементов, чтоб хоть части из них была отрицательная

   // среднее арифметическое состоит из сумма_числел / кол-во_чисел

   float min_sum = 0;          // сумма чисел

   float total_min_count = 0;  // кол-во чисел

   // Инициализиуем цикл от 0 (т. к. все массивы начинаются с 0) до 12 не включительно (т. к. всего элементов 12 начиная с 0. Значит 11)

   for (int i = 0; i < 12; i++) {

       // если текущий элемент массива m от индекса i меньше чем 0, значит это отрицательное число

       if (m[i] < 0) {

           min_sum += m[i];    // складываем, непосредственно, само число m[i]

           total_min_count++;  // увеличиваем кол-во чисел на 1. Можно написать строку вида total_min_count = total_min_count + 1; – суть не поменяется

       }

   }

   // Если в массиве не было отрицательных чисел, то делаем проверку. Если кол_во_чисел и сумма_чисел равны 0 значит в массиве не было отрицательных чисел.

   // а т. к. по умолчанию min_sum и total_min_count равны 0, то при попытке поделить их получим ошибку. Для этого обрабатываем это условие, чтоб не дать ее допустить.

   if (total_min_count == 0 && min_sum == 0) {

       // Выкидываем сообщение, мол, нету в массиве отрицательных чисел, работать не буду

       cout << “There are no negative numbers in the array” << endl;

       // делаем return, дабы программа не продолжила выполнение

       return 0;

   }

   // если же у нас есть и кол-во_чисел и общая_сумма, то спокойно делим одно на другое и сразу выводим в консоль результат.

   cout << “Average: ” << min_sum / total_min_count << endl;

   // завершаем выполнение программы

   return 0;

}

vedrsly392

vedrsly392

Вопрос по информатике:

Pascal!
Найти среднее арифметическое отрицательных элементов массива. Заменить на него минимальный элемент.

Трудности с пониманием предмета? Готовишься к экзаменам, ОГЭ или ЕГЭ?

Воспользуйся формой подбора репетитора и занимайся онлайн. Пробный урок – бесплатно!

Ответы и объяснения 1

ureshikore197

ureshikore197

Var a: array[1..10] of integer;
var i, col, ans:integer;
begin
ans:=0;
col:=0;
for i:=1 to 10 do  
begin  
readln(a[i]); 
if a[i] < 0 then
begin
col:=col+1;
ans:=ans+a[i]; 
end;
end; 
writeln(ans/col);
end.

Знаете ответ? Поделитесь им!

Гость

Гость ?

Как написать хороший ответ?

Как написать хороший ответ?

Чтобы добавить хороший ответ необходимо:

  • Отвечать достоверно на те вопросы, на которые знаете
    правильный ответ;
  • Писать подробно, чтобы ответ был исчерпывающий и не
    побуждал на дополнительные вопросы к нему;
  • Писать без грамматических, орфографических и
    пунктуационных ошибок.

Этого делать не стоит:

  • Копировать ответы со сторонних ресурсов. Хорошо ценятся
    уникальные и личные объяснения;
  • Отвечать не по сути: «Подумай сам(а)», «Легкотня», «Не
    знаю» и так далее;
  • Использовать мат – это неуважительно по отношению к
    пользователям;
  • Писать в ВЕРХНЕМ РЕГИСТРЕ.

Есть сомнения?

Не нашли подходящего ответа на вопрос или ответ отсутствует?
Воспользуйтесь поиском по сайту, чтобы найти все ответы на похожие
вопросы в разделе Информатика.

Трудности с домашними заданиями? Не стесняйтесь попросить о помощи –
смело задавайте вопросы!

Информатика — наука о методах и процессах сбора, хранения, обработки, передачи, анализа и оценки информации с применением компьютерных технологий, обеспечивающих возможность её использования для принятия решений.

Добавить комментарий