Please note, this is a STATIC archive of website www.tutorialspoint.com from 11 May 2019, cach3.com does not collect or store any user information, there is no "phishing" involved.
program ArithmeticTest; // COPY INTO LAZARUS TO RUN
type
question = class
public
num1: integer;
num2: integer;
mode: string;
answer: real;
constructor create(n1, n2, m: integer);
end;
var
name: string;
questionNum, answer: integer;
questions: array [1..10] of question;
answers: array [1..10] of real;
constructor question.create(n1, n2, m: integer);
begin
num1 := n1;
num2 := n2;
if m = 1 then
begin
answer := num1 + num2;
mode := '+';
end
else if m = 2 then
begin
answer := num1 - num2;
mode := '-';
end
else if m = 3 then
begin
answer := num1 * num2;
mode := '*';
end
else if m = 4 then
begin
answer := num1 / num2;
mode := '/';
end;
end;
procedure generateQuestion(questionNum: integer);
begin
questions[questionNum] := question.create(random(20) + 1, random(20) + 1, random(4) + 1);
writeln('What is ', questions[questionNum].num1, ' ', questions[questionNum].mode, ' ', questions[questionNum].num2, '?');
end;
procedure checkAnswer (questionNum: integer);
var
inputAnswer, correctAnswer: real;
begin
inputAnswer := round(answers[questionNum] * 100) / 100;
correctAnswer := round(questions[questionNum].answer * 100) / 100;
if inputAnswer = correctAnswer then
writeln('Question ', questionNum, ': correct')
else
writeln('Question ', questionNum, ': incorrect - correct answer is ', correctAnswer:0:2);
end;
begin
writeln('What is your name?');
readln(name);
randomize;
for questionNum := 1 to 10 do
begin
generateQuestion(questionNum);
readln(answers[questionNum]);
end;
for questionNum := 1 to 10 do
begin
checkAnswer(questionNum);
end;
readln;
end.
Advertisements
We use cookies to provide and improve our services. By using our site, you consent to our Cookies Policy.
AcceptLearn more