Hi :
I have the following perl-script , which gives the user ( supposedly a first or second 
grader) a problem in addition or subtraction by generating random numbers.  The random 
numbers generated are between 1 and 10 for first graders and 10 and 100 for second 
graders.  I am trying to just execute the code at the command prompt.  It runs OK if 
the line  -

                 use CGI qw(:standard );

is commented out.  The loop goes through till I say 'n' to the query - do you want to 
continue ?
If that line is not commented out ( I know it is not needed till I put a HTML piece to 
this )
it does not give an error, but runs wrong. Even if I pick 'Addition' as the operation 
I want, it gives me the subtraction problem (that is even if the expression in the if 
statement is true, it executes the 'else' ) and the loop does not go on till I say 
'n'.  Can somebody tell me why ?( I am a beginner)

#!C:/Perl/bin/perl.exe
#Math.cgi - creates a dynamic Web page to do math
#use CGI qw(:standard );
use strict;

#declare variables
my($grade,
   $operation,
   $num1,
   $num2,
   $answer,
   $correct,
   $percent,
   $totQuestions,
   $totCorrect,
   $totWrong,
   $cont);

$percent = 0;
$totQuestions = 0;
$totCorrect = 0;
$totWrong = 0;

print "What grade are you in?(1 or 2): ";
chomp($grade = <STDIN>);

do
{
        print "Would you like to do Addition or Subtraction?(A or S): ";
        chomp($operation = <STDIN>);
        if($operation eq 'A' || $operation eq 'a')
        {
                if($grade == 1)
                {
                        $num1 = 1+int(rand(10));
                        $num2 = 1+int(rand(10));
                        print "$num1 + $num2 = ";
                        chomp($answer = <STDIN>);
                }
                else
                {
                        $num1 = 10+int(rand(91));
                        $num2 = 10+int(rand(100));
                        print "$num1 + $num2 = ";
                        chomp($answer = <STDIN>);
                }
        }
        else
        {
                if($grade == 1)
                {
                        
                        $num1 = 1+int(rand(10));
                        $num2 = 1+int(rand(10));
                        print "$num1 - $num2 = ";
                        chomp($answer = <STDIN>);
                }
                else
                {      
                        $num1 = 10+int(rand(91));
                        $num2 = 10+int(rand(91));
                        print "$num1 - $num2 = ";
                        chomp($answer = <STDIN>);
                }
        }
        #checking for correct answer
        if($operation eq 'A' || $operation eq 'a')
        {
                if($answer == ($num1 + $num2))
                {
                        print "$num1 + $num2 = $answer\n";
                        print "Congratulations!! You are correct!\n";
                        $totCorrect += 1;
                }
                else
                {
                        $correct = $num1 + $num2;
                        print "$num1 + $num2 = $correct\n";
                        print "Your answer was: $answer\n";
                        print "Sorry, that was incorrect.\n";
                        $totWrong += 1;
                }
                $totQuestions += 1;
        }
        else
        {
                if($answer == ($num1 - $num2))
                {
                        print "$num1 - $num2 = $answer\n";
                        print "Congratulations!! You are correct!\n";
                        $totCorrect += 1;
                }
                else
                {
                        $correct = $num1 - $num2;
                        print "$num1 - $num2 = $correct\n";
                        print "Your answer was: $answer\n";
                        print "Sorry, that was incorrect.\n";
                        $totWrong += 1;
                }
                $totQuestions += 1;
        }
        print "Would you like to continue?(Y or N): ";
        chomp($cont = <STDIN>);
}while($cont eq 'Y' || $cont eq 'y');
#Print totals and test percentage
print "Correct answers: $totCorrect\n";
print "Incorrect answers: $totWrong\n";
$percent = ($totCorrect / $totQuestions) * 100;
printf "Test Percentage: %.2f%%\n", $percent;

Thanks
Kamali



--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to