Diff for /loncom/homework/chemresponse.pm between versions 1.33 and 1.34

version 1.33, 2004/06/07 21:17:42 version 1.34, 2004/06/07 21:56:24
Line 35  BEGIN { Line 35  BEGIN {
     &Apache::lonxml::register('Apache::chemresponse',('organicresponse','organicstructure','reactionresponse'));      &Apache::lonxml::register('Apache::chemresponse',('organicresponse','organicstructure','reactionresponse'));
 }  }
   
   sub chem_standard_order {
       my ($reaction) = @_;
       my ($re,$pr) = split(/->|<=>/,$reaction);
       my @reactants = split(/\s\+/,$re);
       my @products =  split(/\s\+/,$pr);
       foreach my $substance (@reactants,@products) {
    $substance =~ s/(\^\d*)\s+/$1_/g;         # protect superscript space
    $substance =~ s/\s*//g;                   # strip whitespace
    $substance =~ s/_/ /g;                    # restore superscript space
       }
       @reactants = sort @reactants;
       @products = sort @products;
       my $standard = '';
       foreach my $substance (@reactants) {
    $standard .= $substance;
    $standard .= ' + ';
       }
       $standard =~ s/ \+ $//;              # get rid of trailing plus sign
       $standard .= ' -> ';
       foreach my $substance (@products) {
    $standard .= $substance;
    $standard .= ' + ';
       }
       $standard =~ s/ \+ $//;              # get rid of trailing plus sign
       return $standard;
   }
   
 sub separate_jme_window {  sub separate_jme_window {
     my ($smile_input,$jme_input,$molecule,$options)=@_;      my ($smile_input,$jme_input,$molecule,$options)=@_;
     my $smilesection;      my $smilesection;
Line 345  sub end_reactionresponse { Line 372  sub end_reactionresponse {
     my $ad;      my $ad;
     foreach my $answer (@answers) {      foreach my $answer (@answers) {
  &Apache::lonxml::debug("submitted a $response for $answer<br \>\n");   &Apache::lonxml::debug("submitted a $response for $answer<br \>\n");
  if ($response eq $answer) {   if (&chem_standard_order($response) eq 
       &chem_standard_order($answer)) {
     $ad='EXACT_ANS';      $ad='EXACT_ANS';
  } else {   } else {
     $ad='INCORRECT';      $ad='INCORRECT';

Removed from v.1.33  
changed lines
  Added in v.1.34


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>