Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
4 / 4 / 3
Регистрация: 27.12.2016
Сообщений: 108
1

Подсчитать среднюю численность населения.

03.03.2020, 07:26. Показов 1388. Ответов 11
Метки нет (Все метки)

Нужно подсчитать среднюю численность населения:
Javascript
1
2
3
4
5
6
[
  { name: 'Ukraine', population: 42000000},
  { name: 'Belarus', population: 9500000},
  { name: 'Moldova', population: 3500000},
  { name: 'Switzerland', population: 8400000},
]
Javascript
1
2
3
function calculateAverageCountryPopulation(countries) {
 //write code here
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.03.2020, 07:26
Ответы с готовыми решениями:

Исправить задачу (написать прогу, которая запрашивает численность населения Земли и численность населения США)
Задача: написать прогу, которая запрашивает численность населения Земли и численность населения...

Определить численность населения
В 1993 году численность населения города составляла 50000 человек. Вывести в виде таблицы значение...

Связи бд Численность населения
Не могу соединить связью "Города" и "Численность населения". Соединяю" "Код города". Пишет:...

Определить общую численность населения
Помогите, пожалуйста с задачкой. Известны данные о численности населения (в миллионах жителей) и...

__________________

Записывайтесь на профессиональные курсы Fullstack-разработчиков на JavaScript‌
Обучение в Java Mentor с оплатой после трудоустройства
11
Эксперт JS
5417 / 3129 / 1513
Регистрация: 14.06.2018
Сообщений: 5,900
03.03.2020, 10:46 2
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
        let countries = [
            { name: 'Ukraine', population: 42000000 },
            { name: 'Belarus', population: 9500000 },
            { name: 'Moldova', population: 3500000 },
            { name: 'Switzerland', population: 8400000 },
        ];
 
        function calculateAverageCountryPopulation(countries) {
            if (!Array.isArray(countries)) throw new Error("Argument is not array");
            if (!countries.length) throw new Error("No elements");
 
            let sum = 0;
            let count = 0;
            for (let element of countries) {
                sum += element.population;
                ++count;
            }
 
            return sum / count;
        }
 
        console.log(calculateAverageCountryPopulation(countries));
Добавлено через 2 минуты
Алгоритм приспособлен из метода Average():
https://referencesource.micros... d4ec40078c
0
4 / 4 / 3
Регистрация: 27.12.2016
Сообщений: 108
03.03.2020, 21:11  [ТС] 3
Есть массив с количеством населения, нужно подсчитать среднее число населения. Подскажите пожалуйста, что здесь не так.
Javascript
1
2
3
4
5
6
7
8
9
10
function calculateAverageCountryPopulation(countries) {
  let country = [
    { name: 'Ukraine', population: '42 000 000'},
    { name: 'Belarus', population: '9 500 000'},
    { name: 'Moldova', population: '3 500 000'},
    { name: 'Switzerland', population: '8 400 000'}
  ];
let average = arr => arr.map(e => +e.population.replace(/ /g, '')).reduce((a,b) => a + b)/arr.length;
return average(country);
}
0
Эксперт JS
5417 / 3129 / 1513
Регистрация: 14.06.2018
Сообщений: 5,900
03.03.2020, 21:16 4
В массиве числа с пробелами никто не хранит.
Изначально не нужно было пробелы запихивать.
0
Эксперт JS
5417 / 3129 / 1513
Регистрация: 14.06.2018
Сообщений: 5,900
03.03.2020, 21:30 5
Сейчас увидел, что тут именно массив со свойством length )) Тогда лишнюю переменную можно выкинуть.
Javascript
1
2
3
4
5
6
7
8
9
        function calculateAverageCountryPopulation(countries) {
            if (!Array.isArray(countries)) throw new Error("Argument is not array");
            if (!countries.length) throw new Error("No elements");
 
            let sum = 0;
            for (let element of countries) sum += element.population;
            return sum / countries.length;
 
        }
0
4 / 4 / 3
Регистрация: 27.12.2016
Сообщений: 108
03.03.2020, 21:52  [ТС] 6
А как мне запихнуть этот массив в эту функцию, простите если глупо звучит, но только учусь)
0
4 / 4 / 3
Регистрация: 27.12.2016
Сообщений: 108
03.03.2020, 22:15  [ТС] 7
Показывает ошибку(
Подсчитать среднюю численность населения.
0
Эксперт JS
5417 / 3129 / 1513
Регистрация: 14.06.2018
Сообщений: 5,900
04.03.2020, 07:18 8
Лучший ответ Сообщение было отмечено Alexey8888 как решение

Решение

Если для пустого массива ожидается 0, то применим второй вариант алгоритма:
Javascript
1
2
3
4
5
6
7
8
9
        function calculateAverageCountryPopulation(countries) {
            if (!Array.isArray(countries)) throw new Error("Argument is not array");
            if (!countries.length) return 0;
 
            let sum = 0;
            for (let element of countries) sum += element.population;
            return sum / countries.length;
 
        }
Неоднозначность алгоритма, если массив пустой:
- выбросить ошибку, что массив пустой (для не-nullable чисел в C#)
- вернуть null.
- вернуть 0.
1
4 / 4 / 3
Регистрация: 27.12.2016
Сообщений: 108
04.03.2020, 08:06  [ТС] 9
Большое спасибо!
0
the hardway first
Эксперт JS
2066 / 1540 / 781
Регистрация: 05.06.2015
Сообщений: 3,206
04.03.2020, 08:39 10
Цитата Сообщение от Alexey8888 Посмотреть сообщение
что здесь не так
Зачем вы внутрь функции все данные засунули?
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
const country = [{
    name: 'Ukraine',
    population: '42 000 000'
  },
  {
    name: 'Belarus',
    population: '9 500 000'
  },
  {
    name: 'Moldova',
    population: '3 500 000'
  },
  {
    name: 'Switzerland',
    population: '8 400 000'
  }
];
 
function calculateAverageCountryPopulation(countries) {
  const average = arr => arr
    .map(e => +e.population.replace(/ /g, ''))
    .reduce((a, b) => a + b) / arr.length;
 
  return average(countries);
}
 
console.log(calculateAverageCountryPopulation(country));
0
Эксперт JS
5417 / 3129 / 1513
Регистрация: 14.06.2018
Сообщений: 5,900
04.03.2020, 08:47 11
j2FunOnly, чтобы пройти тестирование, если аргумент функции является пустым массивом.

Первой попыткой было насильно запихнуть массив: "Вот тебе не пустой массив. Видишь?"

----
Ещё пару кейсов подбросим:
- аргумент функции отсутствует.
- вместо массива стран в аргумент запихнули массив домашних животных.

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

Хотя тема динамической проверки типа переменной тоже интересная. В любом случае поковыряться имеет смысл.
1
the hardway first
Эксперт JS
2066 / 1540 / 781
Регистрация: 05.06.2015
Сообщений: 3,206
04.03.2020, 08:59 12
Цитата Сообщение от amr-now Посмотреть сообщение
является пустым массивом
А вот, кстати, да. Там же деление на 0 будет.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.03.2020, 08:59

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Численность населения в определенном году
1. Дано: год, численность в этом году и ежегодный прирост населения. Ввести число, определяющее во...

Определить численность населения к 1999 году
Население города увеличивается на 3% каждый год. В 1983 году население города составляло 65000....

Определить общую численность населения в «маленьких» государствах
Известны данные о численности населения (в млн. жителей) и площади (в тыс. км2 ) 28 государств....

Через сколько лет численность населения превзойдет x человек
Составить программу, позволяющую решить задачу: Население города N увеличивается на 3% ежегодно....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.