2016-09-18 4 views
0

일련의 사람들의 (1에서 120까지의 정수로) 일련의 사람들을 입력하고 최대 및 평균을 계산하는 의사 코드 알고리즘을 작성하십시오. 평균 연령은 실수로 계산해야합니다. 사용자 알고리즘은 사용자가 0 값을 입력 할 때까지 연령 값을 계속 입력해야합니다 ( ). 이것은 알고리즘이 연령 입력을 중지하고 평균 및 최대 연령을 출력하기위한 신호입니다. 사용자가 유효하지 않은 나이를 입력하면 올바른 나이를 입력 할 때까지 알고리즘에서 사용자를 계속 다시 알려야합니다. 귀하의 알고리즘은 하위 모듈을 잘 활용해야합니다. 평균 또는 최대 연령을 결정할 때 0을 포함해서는 안됩니다.의사 코드 입력 연령, 자바의 최대 및 평균 계산

이 0이 입력의 수를 얻는 경우 루프를 중단하는 방법 (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 

내 문제와 함께 온 내 연습 질문

입니다 시간을 입력하면 평균을 계산할 수 있습니다. 메인의 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