Die Webseiten der Fachschaft Informatik am ERG Saalfeld


Zahlenraten

Vom Computer wird eine Zahl im Bereich von 1 bis 1000 gewürfelt. Diese Zahl soll vom Nutzer erraten werden. Der Computer gibt jedes Mal an, ob die eingegebene Zahl zu klein oder zu groß war. Wenn die Zahl richtig war (erraten wurde), dann gibt er das an und beendet das Programm.
 

Programm

#!/usr/bin/perl
use strict;
use warnings;


print "\n";
print "Zahlen raten \n";
print "============ \n";
print "\n";

my $eingabe;
my $gewuerfelte_zahl  =  int(rand(800)) + 100;

print "Computer: ich habe eine ganze Zahl zwischen 1 und 1000 gewuerfelt. \n";
print "Sie sollen diese Zahl jetzt erraten. Ich sage Ihnen jedesmal,  \n";
print "ob Sie zu tief oder zu hoch liegen. \n\n";

do {
  print 'Geben Sie eine Zahl ein: ';
  $eingabe = <STDIN>;          # wir lesen ein
  chomp($eingabe);             # den Zeilenumbruch entfernen
  if ($eingabe < $gewuerfelte_zahl) {
    print " Die eingegebene Zahl ist zu klein! \n\n";
  }
  elsif ($eingabe > $gewuerfelte_zahl){
    print " Die eingegebene Zahl ist zu gross! \n\n";
  }
} while ($eingabe != $gewuerfelte_zahl);

print "\n!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! \n";
print   "Glueckwunsch: Sie haben die gewuerfelte Zahl $gewuerfelte_zahl erraten \n";
print   "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! \n";

__END__

 

Der Aufruf sah bei mir so aus:

 

Aufgaben

  1. Bringen Sie das Programm zum Laufen und testen Sie es.
  2. Kommentieren Sie das Programm (jede Zeile)!
  3. Zeichnen Sie zu diesem Programm ein Struktogramm.
  4. In welchem Bereich werden Zahlen wirklich gewürfelt?
  5. Wie müßte die Zeile mit  my $gewuerfelte_zahl = int(rand ...  aussehen, damit die Zahlen wirklich zwischen 1 und 1000 liegen?
  6. Ergänzen Sie das Programm so, dass auch die Anzahl der Versuche gezählt und ausgegeben werden.
  7. Die gewürfelte Zahl läßt sich immer mit maximal 10 Versuchen erraten. Wie geht das? Ergänzen Sie das Programm um eine Bewertung der Anzahl der Versuche.

 

zurück


© ERG Saalfeld   -   Hans-Dietrich Kirmse   11.01.2015