2016-09-18 45 views
0

一連の人々の一連の人数を入力して、最大と平均の年齢を計算する擬似コードアルゴリズムを作成してください( 年齢)。平均年齢は実数として計算する必要があります。あなたのアルゴリズムは、ユーザーがゼロの値を入力するまで、年齢値を入力し続ける必要があります。 これは、 アルゴリズムが年齢の入力を停止し、平均年齢と最大年齢を出力するための信号です。 ユーザーが無効な年齢を入力した場合、アルゴリズムは有効な年齢を入力するまで ユーザーに再度プロンプトを表示する必要があります。あなたのアルゴリズムは、サブモジュールを有効に活用する必要があります。 平均年齢または最高年齢を決定する際にゼロを含めるべきではありません。擬似コードの入力年齢、Javaの最大値と平均を計算

これは、0を入力して数を取得するときにループを停止する方法120への入力1に、非常にわからないことイム私は

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 

私の問題が出ている私の練習の質問

されています私は平均を計算することができます時間入力。メインのforループも問題です。私は質問が何を求めているのかを知っているが、私の頭の中で一緒になっていない。私はこの質問に助けを受けることができますか?

答えて

0

まずは、すべての入力を収集して最大値を最大値として保存した後、平均を計算する方がはるかに簡単です。したがって、合計と最大値を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 
関連する問題