Perl/Zahlenraten

Aus Ubuntu-Forum Wiki

Wechseln zu: Navigation, Suche

Allgemeines

Hier befindet sich ein Lösungsvorschlag für die Perl-Aufgabe von der Seite: Perl.

#!/usr/bin/perl
use strict;
use warnings;
 
sub addieren
{
   my ($random, $wahl, $count) = @_;
   if ($wahl < $random)
   {
   	print "Die Zahl ist groesser!\n";
   }
   elsif ($wahl > $random)
   {
   	print "Die Zahl ist kleiner!\n";
   }
   else
   {
   	print "Glueckwunsch, Sie haben die Zahl nach $count Versuchen herausgefunden!\n";
   }
}
 
my $random = int(rand(100));
my $count = 1;
my $wahl = undef;
 
print "\tZ A H L E N R A T EN\n\n";
print "Versuchen Sie die Zahl zwischen 0 und 99 in moeglischt wenigen Versuchen herauszufinden!\n";
do
{
 	print "Geben Sie Ihren Tipp ab: ";
 	$wahl = <STDIN>;
 	&addieren($random,$wahl, $count);
 	$count++;
} while ($random != $wahl);

Das Programm startet mit der Variableninitialisierung:

my $random = int(rand(100));

Dabei wird der Variable $random eine zufällige Zahl, von 0 bis 99 zugewiesen. (Die Zahl 100 kann mit diesem Aufruf niemals erreicht werden)

Der Befehl rand(); erzeugt ohne weitere Argumente eine Gleitkommazahl zwischen 0 und 1. Da wir aber in unserem Programm nur Integerzahlen (Ganze Zahlen) erzeugen wollen, müssen wir ein int() dem rand()-Befehl voranstellen.

Den Zähler $count setzen wir auf 1 und der Variable $wahl geben wir den Wert undef (undefiniert).

Danach startet die do / while -Schleife die ja immer mindestens einmal durchlaufen werden muss! Nach der Tastaturabfrage in die Variable $wahl, wird in diesem Programm die Subroutine addieren aufgerufen. Dabei übergeben wir der Funktion die Variablen $random (Die zufällige generierte zahl zwischen 1 und 100), $wahl (Die vom Benutzer geratene Zahl) und $count (Die Zählervariable, welche die Anzahl der Versuche enthält).

In der Funktion selbst machen wir uns die drei Variablen mit dem Codeteil:

my ($random, $wahl, $count) = @_;

verfügbar. Es folgen drei IF-Anweisungen die angeben was geschieht, wenn die geratene Zahl größer / kleiner oder gleich der zufälligen Zahl ist.

Meine Werkzeuge
Namensräume
Varianten
Aktionen
Forum
Navigation
Internes
Bearbeitungshilfen
Werkzeuge