Раздел:
Задачи /
Простейшие /
Разность между максимальным элементом и средним арифметическим значением
Основы программирования Каждый профессионал когда-то был чайником. Наверняка вам знакомо состояние, когда “не знаешь как начать думать, чтобы до такого додуматься”. Наверняка вы сталкивались с ситуацией, когда вы просто не знаете, с чего начать. Эта книга ориентирована как раз на таких людей, кто хотел бы стать программистом, но совершенно не знает, как начать этот путь. Подробнее… |
Условие задачи 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
Таким образом, среднее арифметическое значение для отрицательных элементов массива вычисляется точно также, как и для положительных.
А теперь перейдём к решению задачи.
Вот здесь я рассказал о том, как можно найти наименьшее значение в массиве. Наибольший элемент можно найти подобным способом, поэтому в данной статье останавливаться на этом не буду.
Итак, что нам нужно сделать:
- Найти наибольший элемент в массиве.
- Найти все отрицательные значения в массиве и вычислить для них среднее арифметическое.
- Вычислить разность между наибольшим элементом массива и средним арифметическим отрицательных чисел.
Примеры программ на Паскале и
С++.
Решение задачи 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
Эта книга для тех, кто хочет стать программистом. На самом деле хочет, а не просто мечтает. И хочет именно стать программистом с большой буквы, а не просто научиться кулебякать какие-то примитивные программки… |
|
Помощь в технических вопросах
Помощь студентам. Курсовые, дипломы, чертежи (КОМПАС), задачи по программированию: 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
Таким образом, среднее арифметическое значение для отрицательных элементов массива вычисляется точно также, как и для положительных.
А теперь перейдём к решению задачи.
Вот здесь я рассказал о том, как можно найти наименьшее значение в массиве. Наибольший элемент можно найти подобным способом, поэтому в данной статье останавливаться на этом не буду.
Итак, что нам нужно сделать:
- Найти наибольший элемент в массиве.
- Найти все отрицательные значения в массиве и вычислить для них среднее арифметическое.
- Вычислить разность между наибольшим элементом массива и средним арифметическим отрицательных чисел.
Примеры программ на Паскале и С++.
ВНИМАНИЕ!
Если вам что-то осталось непонятно, то советую почитать книги “Основы программирования” и “Основы С++”.
Среднее арифметическое чисел
Понятие среднее арифметическое ряда чисел можно встретить в разных сферах — в математике, статистике, инженерных расчетах и многих других.
Чтобы найти среднее арифметическое чисел надо их сложить и эту сумму разделить на количество чисел.
Мы создали этот калькулятор для упрощения расчетов. Он с легкостью найдет среднее арифметическое 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
Вопрос по информатике:
Pascal!
Найти среднее арифметическое отрицательных элементов массива. Заменить на него минимальный элемент.
Трудности с пониманием предмета? Готовишься к экзаменам, ОГЭ или ЕГЭ?
Воспользуйся формой подбора репетитора и занимайся онлайн. Пробный урок – бесплатно!
Ответы и объяснения 1
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.
Знаете ответ? Поделитесь им!
Гость ?
Как написать хороший ответ?
Как написать хороший ответ?
Чтобы добавить хороший ответ необходимо:
- Отвечать достоверно на те вопросы, на которые знаете
правильный ответ; - Писать подробно, чтобы ответ был исчерпывающий и не
побуждал на дополнительные вопросы к нему; - Писать без грамматических, орфографических и
пунктуационных ошибок.
Этого делать не стоит:
- Копировать ответы со сторонних ресурсов. Хорошо ценятся
уникальные и личные объяснения; - Отвечать не по сути: «Подумай сам(а)», «Легкотня», «Не
знаю» и так далее; - Использовать мат – это неуважительно по отношению к
пользователям; - Писать в ВЕРХНЕМ РЕГИСТРЕ.
Есть сомнения?
Не нашли подходящего ответа на вопрос или ответ отсутствует?
Воспользуйтесь поиском по сайту, чтобы найти все ответы на похожие
вопросы в разделе Информатика.
Трудности с домашними заданиями? Не стесняйтесь попросить о помощи –
смело задавайте вопросы!
Информатика — наука о методах и процессах сбора, хранения, обработки, передачи, анализа и оценки информации с применением компьютерных технологий, обеспечивающих возможность её использования для принятия решений.