возраст ввода псевдокода, вычислить максимальное и среднее значение для Java

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

это мой практический вопрос

я придумал

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 в основном тоже является проблемой. Я понимаю, о чем вопрос, но он просто не складывается в моей голове. Могу я получить помощь с этим вопросом?


person cheong kim    schedule 18.09.2016    source источник


Ответы (1)


Что ж, для начала было бы намного проще рассчитать среднее значение после сбора всех входных данных и сохранения наибольшего значения до этого момента в качестве максимального значения. Итак, установка суммы и максимума на 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
person Victor Quezado    schedule 18.09.2016