Dzień dobry,
mam problem z funkcją analyze(data). Zgodnie z zadaniem f. powinna odebrać dane przekazane w parametrze data, a funkcje liczące statystyki powinny być niezależne od głównej funkcji i jedynie wykonywać swoje zadania. Kiedy usuwam funkcję analyze wszystko pięknie się liczy i wyświetla, ale problem w tym aby to właśnie analyze wyświetlało wyniki.
// Średnia arytmetyczna:
function average(numbers){
let ave = sum(numbers)/amount(numbers);
return ave;
}
// Suma wartosci:
function sum(numbers){
let sumx = 0;
for (let i of numbers) {
sumx += i;
}
return sumx;
}
// Liczba próbek:
function amount(numbers){
let amo = numbers.length;
return amo;
}
// Mediana:
function median(numbers){
numbers.sort((a,b)=>a-b);
let middle = Math.round(numbers.length / 2);
if (numbers.length%2 == 0){
let med = (numbers[middle] + numbers[middle - 1])/2;
return med;
}
else {
let med = numbers[middle - 1];
return med;
}
}
// Wariancja:
function variance(numbers){
let vx = 0;
for (let i in numbers) {
vx += (Math.pow(numbers[i] - (average(numbers)), 2))/numbers.length;
}
return vx;
}
// Odchylenie standardowe:
function deviation(numbers){
let dev = Math.sqrt(variance(numbers));
return dev;
}
numbers = [1, 3, 7, 5];
function analyze(data){
console.log(
"\n Tablica liczb: " + numbers +
"\n\n Średnia arytmetyczna: " + average(numbers) +
"\n Suma wartosci: " + sum(numbers) +
"\n Liczba próbek: " + amount(numbers) +
"\n Mediana: " + median(numbers) +
"\n Wariancja: " + variance(numbers) +
"\n Odchylenie standardowe: " + deviation(numbers)
);
}
Dostałam też podpowiedź aby analyze wyglądało jak poniżej:
function analyze(data){
console.log(
"n Tablica liczb: " + data +
"nn Średnia arytmetyczna: " + average(data) +
"n Suma wartosci: " + sum(data) +
"n Liczba próbek: " + amount(data) +
"n Mediana: " + median(data) +
"n Wariancja: " + variance(data) +
"n Odchylenie standardowe: " + deviation(data)
);
}
...ale przecież to nie ma racji działać, ponieważ w żaden sposób nie odwołuje się do mojej tablicy oraz wcześniejszych funkcji. Będę wdzięczna za pomoc.
Pozdrawiam!