当我编写我正在编写的这个Ada程序时,我完全难以理解为什么我会收到一个未定义的错误。我已经查看过它了...没有拼写错误或任何性质的东西。这就是我所拥有的,然后是我得到的错误。
Get_Score(CandidateVotes, CurrentCandidate);
end loop;
end Get_Input;
procedure Get_Score(CandVotes: in CurrentCandidate_Votes;
Candidate: in Character) is
-- get the score for the candidate and store it into CandidatesArray
SameAnswers: Integer;
DifferentAnswers: Integer;
CandidateScore: Integer;
begin
for I in VoterArray_Index loop
if Voter(I) /= 0 And CandVotes(I) /= 0 Then
if Voter(I) /= CandVotes(I) Then
DifferentAnswers := DifferentAnswers + 1;
else
SameAnswers := SameAnswers + 1;
end if;
end if;
end loop;
CandidateScore := SameAnswers - DifferentAnswers;
Candidates(Candidate) := CandidateScore;
end Get_Score;
代码块的顶部是我从另一个过程调用Get_Score过程的地方。 CandidateVotes和CurrentCandidate的类型是正确的。如果我发帖更多,请告诉我。
此外,错误如下:candidates.adb:37:25:“Get_Score”未定义
答案 0 :(得分:4)
您需要在使用之前定义Get_Score
。
懒惰的方法是重新排序代码,以便子程序体以适当的顺序排列。
Ada的方法是首先编写子程序规范(以你喜欢的顺序),然后以你喜欢的顺序再次实现这些实体。
Get_Score
的规格是
procedure Get_Score(CandVotes: in CurrentCandidate_Votes;
Candidate: in Character);
顺便说一下,当你写
DifferentAnswers: Integer;
您认为DifferentAnswers
会以什么价值开始?