Как создать цикл в функции с другой функцией? - PullRequest
0 голосов
/ 18 февраля 2010

Я новичок в Java и прохожу универ. Меня попросили спроектировать три функции. Мне нужно найти разницу между каждым из соседних чисел в массиве, другую для суммирования массива и последнюю для вычисления разницы с использованием других функций, а затем написать программу. Я полностью потерялся в последней функции, и мой репетитор ушел на каникулы. Вот код, который я сделал до сих пор. Я не хочу, чтобы люди делали код для меня, но если кто-то может посоветовать мне, что мне нужно сделать, я буду признателен за ваш совет. Я не уверен, как зациклить разностную функцию в массив и сохранить ее в новом массиве, который я сделал. Если бы кто-нибудь мог объяснить, где я иду не так, я хотел бы услышать от вас!

var numberArray = [10,9,3,12];

// function difference will find the highest value of the two numbers,find the difference between them and return the value.

function difference(firstNumber, secondNumber)

{

if (firstNumber > secondNumber)
{
    return (firstNumber - secondNumber);
}
else
{   
    return (secondNumber - firstNumber);
}

}
// function sum will add the total numbers in the array and return the sum of numbers.

function sum(numberArray)
{
 numberTotal = 0
for (var total = 0; total < numberArray.length; total = total + 1)
{
numberTotal = numberTotal + numberArray[total]
}
{
    return numberTotal
}

/*code the process that calculates a new array containing the differences between all the pairs
of adjacent numbers, using the difference() function you have already written.
This function should be named calculateDifferences() and should accept an array numberArray. 
The function should first create a new empty array of the same size as numberArray
It should then calculate the differences between the pairs of adjacent numbers, 
using the difference() function, and store them in the new array. Finally, the function should return the new array.
The calculation of the differences should be done in a loop, at each step finding the difference between each 
array element and the next one along in the array, all except for the last difference,
which must be dealt with as a special case, because after the last element we have to wrap round to the start again. 
So the final difference is between the last and first elements in the array.*/


function calculateDifferences()
var createArray = new Array (numberArray.length);
{
createArray = 0;
for (var c = 0; c < numberArray.length; c = c + 1)
{
    createArray = difference(numberArray[c]);
}
{
return createArray
}
}

Ответы [ 2 ]

1 голос
/ 18 февраля 2010

Ваша реализация функции "CalculateDifferences" неверна.
эта функция должна выглядеть следующим образом:

функция вычисленияDifferences ()
{
var createArray = new Array (numberArray.length);
для (var c = 0; c - 1 ; c = c + 1) {
/ *
так как функция "разность" имеет два параметра (firstNumber, secondNumber) в своем объявлении, мы должны дать два аргумента. (которые являются смежными элементами в массиве)
* /
createArray [c] = разность (numberArray [c], numberArray [c + 1]) ; }
/ *
вычисление разности первого и последнего элемента массива и назначить его возвращающему последнему элементу массива.
* /
createArray [numberArray.length - 1] = разность (numberArray [0], numberArray [numberArray.length - 1]);
возвращаем createArray;
}

0 голосов
/ 18 февраля 2010

Вы должны индексировать createArray так же, как вы уже делаете с numberArray[c].

...