[Perl] DOS Rechner Problem

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • [Perl] DOS Rechner Problem

    Ich habe meinen kleinen Rechner mal erweitert.

    Er soll checken ob auch zahlen eingegeben wurden. Nur das was ich gemacht habe stellt sich auch als ein tolles Problem da.

    Den er checkt zwar ob 1, 2 ... 8 und 9 drin sind, aber sobalt ich eine 2, oer 3stellige zahl benutze meckert er natürlich auch und sagt ich hätte keine zahl eingegeben. Wie umgehe ich das ?!


    Hier mein Quellcode:

    Code:
    #!perl
    
    
    $test=0;
    do {
      print "Geben Sie eine Zahl ein:\n";
      $Zahl1 = <STDIN>;
      chomp $Zahl1;
      if (($Zahl1 ne "0") and ($Zahl1 ne "1") and ($Zahl1 ne "2") and ($Zahl1 ne "3") and ($Zahl1 ne "4") and ($Zahl1 ne "5") and ($Zahl1 ne "6") and ($Zahl1 ne "7") and ($Zahl1 ne "8") and ($Zahl1 ne "9")){
        print "Sie haben keine Zahl eingegeben bitte geben Sie eine Zahl ein !\n";
        } 
      else { $test = 1; }
      } until ($test == 1);
    
    
    $test= 2;
    do {
      print "Geben Sie ein was sie machen wollen: ( +, -, * oder /):\n";
      $operator = <STDIN>;
      chomp $operator;
      if (($operator ne "+") and ($operator ne "-") and ($operator ne "*") and ($operator ne "/")){
        print "Fehler. Sie mussen ein +, -,* oder / Zeichen eingeben und Enter drucken !\n";
        } 
      else { $test = 3; }
       } until ($test == 3);
    
    $test= 4;
    do {
      print "Geben Sie noch eine Zahl ein:\n";
      $Zahl2 = <STDIN>;
      chomp $Zahl2;
      if (($Zahl2 ne "0") and ($Zahl2 ne "1") and ($Zahl2 ne "2") and ($Zahl2 ne "3") and ($Zahl2 ne "4") and ($Zahl2 ne "5") and ($Zahl2 ne "6") and ($Zahl2 ne "7") and ($Zahl2 ne "8") and ($Zahl2 ne "9")){
        print "Sie haben keine Zahl eingegeben bitte geben Sie eine Zahl ein !\n";
        } 
      else { $test = 5; }
       } until ($test == 5);
    
    print "\n";
    
    $ZahlC1 = $Zahl1 + $Zahl2;
    $ZahlC2 = $Zahl1 - $Zahl2;
    $ZahlC3 = $Zahl1 * $Zahl2;
    $ZahlC4 = $Zahl1 / $Zahl2;
    
    if ($operator  eq "+") {
       print $Zahl1." + ".$Zahl2." = ".$ZahlC1."\n";
     }
    elsif ($operator eq "-") {
       print $Zahl1." - ".$Zahl2." = ".$ZahlC2."\n";
     }
    elsif ($operator eq "*") {
       print $Zahl1." * ".$Zahl2." = ".$ZahlC3."\n";
     }
    elsif ($operator eq "/"){
       print $Zahl1." / ".$Zahl2." = ".$ZahlC4."\n";
     }
    else {
       print "Es ist ein Fehler aufgetretten. Wiederholen sie den Vorgang oder wenden Sie sich an den Coder -> [EMAIL]T.uX@gmx.de[/EMAIL]";
     }
    
    print "\n\n\nVielen Dank das Sie den Rechner von KJ187 benuzt haben.\n";
    print "vIsIt uS @ [URL]http://www.os-support.de.tt[/URL] or [URL]http://www.codinf-support.de.tt\n\n\n[/URL]";

  • #2
    ok habs durch hilfe eines Buddies hinbekommen... jetzt steht aber trotzdem noch eine farge auf.
    Wie erlaube ich ihm das er auch kommazahlen und nicht nur ganze zahlen annimmt. ?

    hier der neue Quellcode:

    Code:
    #!perl
    
    @zahlen = ('0123456789');
    
    
    $test=0;
    do {
      print "Geben Sie eine Zahl ein:\n";
      $Zahl1 = <STDIN>;
      chomp $Zahl1;
      if($Zahl1 =~ /\D/){
        print "Sie haben keine Zahl eingegeben bitte geben Sie eine Zahl ein !\n";
        }
      else { $test = 1; }
      } until ($test == 1);
    
    
    $test= 2;
    do {
      print "Geben Sie ein was sie machen wollen: ( +, -, * oder /):\n";
      $operator = <STDIN>;
      chomp $operator;
      if (($operator ne "+") and ($operator ne "-") and ($operator ne "*") and ($operator ne "/")){
        print "Fehler. Sie mussen ein +, -,* oder / Zeichen eingeben und Enter drucken !\n";
        }
      else { $test = 3; }
       } until ($test == 3);
    
    $test= 4;
    do {
      print "Geben Sie noch eine Zahl ein:\n";
      $Zahl2 = <STDIN>;
      chomp $Zahl2;
      if($Zahl2 =~ /\D/){
        print "Sie haben keine Zahl eingegeben bitte geben Sie eine Zahl ein !\n";
        }
      else { $test = 5; }
       } until ($test == 5);
    
    print "\n";
    
    $ZahlC1 = $Zahl1 + $Zahl2;
    $ZahlC2 = $Zahl1 - $Zahl2;
    $ZahlC3 = $Zahl1 * $Zahl2;
    $ZahlC4 = $Zahl1 / $Zahl2;
    
    if ($operator  eq "+") {
       print $Zahl1." + ".$Zahl2." = ".$ZahlC1."\n";
     }
    elsif ($operator eq "-") {
       print $Zahl1." - ".$Zahl2." = ".$ZahlC2."\n";
     }
    elsif ($operator eq "*") {
       print $Zahl1." * ".$Zahl2." = ".$ZahlC3."\n";
     }
    elsif ($operator eq "/"){
       print $Zahl1." / ".$Zahl2." = ".$ZahlC4."\n";
     }
    else {
       print "Es ist ein Fehler aufgetretten. Wiederholen sie den Vorgang oder wenden Sie sich an den Coder -> [email]T.uX@gmx.de[/email]";
     }
    
    print "\n\n\nVielen Dank das Sie den Rechner von KJ187 benuzt haben.\n";
    print "vIsIt uS @ [url]http://www.os-support.de.tt[/url] or [url]http://www.codinf-support.de.tt\n\n\n[/url]";

    Comment

    Working...
    X