2016-09-18 2 views
0

Напишите алгоритм псевдокода, который будет вводить серию народных возрастов (в целых числах от 1 до 120 включительно) и рассчитайте максимальный и средний возраст . Средний возраст должен быть рассчитан как действительное число. Ваш алгоритм должен продолжать вводить возрастные значения до тех пор, пока пользователь не введет нулевое значение. Это сигнал для алгоритма , чтобы остановить ввод возраста, а затем вывести средний и максимальный возраст. Если пользователь вводит недопустимый возраст, тогда ваш алгоритм должен продолжать повторно запрашивать пользователя до тех пор, пока не введет действительный возраст. Ваш алгоритм должен хорошо использовать вспомогательные модули. Указание ноль не должно включаться при определении среднего или максимального возраста.возраст ввода псевдокода, вычисление максимального и среднего значения для java

это моя практика вопрос

я придумал

main 

FOR 
age = inputAge <-prompt "enter age" 
max = getMax <- age 
sum = sum + age 
average = getAverage <- sum, number of times input 
END FOR 
OUTPUT max, average 

END MAIN 

METHOD inputAge 
IMPORT prompt 
EXPORT age 
    INPUT age 
    WHILE age >= 120 AND age <= 0 DO 
     OUTPUT "enter valid age" 
     INPUT age 

    END WHILE 
END 

METHOD getMax 
IMPORT age 
EXPORT max 
    IF max < 0 THEN 
    max = age 
END 

METHOD getAverage 
IMPORT sum, number of times input 
EXPORT average 
    average = sum/number of times input 
END 

моей проблемы в том, что им не совсем уверены, как вход 1 до 120 и остановки цикла, когда 0 на вход и получить ряд поэтому я могу рассчитать среднее значение. петля for в основном также является проблемой. Я получаю то, что задает вопрос, но его просто не собираются вместе в моей голове. могу я получить помощь с этим вопросом?

ответ

0

Ну, для начала было бы намного проще вычислить среднее значение после сбора всех входов и сохранения наибольшего значения до тех пор, пока оно не станет максимальным. Таким образом, установка суммы и max в 0 и создание переменной для подсчета количества входов было бы хорошим началом. Я бы сделал примерно следующее:

main 

max = 0 
sum = 0 
count = 0 

WHILE true 
age = inputAge <-prompt "enter age" 
IF age == 0 THEN 
    BREAK 
END IF 
IF age > max THEN 
    max = age 
END IF 
sum = sum + age 
count = count + 1 
END WHILE 
average = getAverage <- sum, count 
IF count == 0 THEN 
    OUTPUT "There was no input" 
ELSE 
    OUTPUT max, average 
END IF 

END MAIN 

METHOD inputAge 
IMPORT prompt 
EXPORT age 
    INPUT age 
    WHILE age >= 120 AND age <= 0 DO 
     OUTPUT "enter valid age" 
     INPUT age 

    END WHILE 
END 

METHOD getAverage 
IMPORT sum, number of times input 
EXPORT average 
    average = sum/number of times input 
END