Aufgabe 4

1. Frage

Lösung

#!/usr/bin/perl -w
# Lese zwei Namen von der Konsole ein und gebe Sie anschließend wieder aus

use strict;
{
   my ($name1, $name2);
   print("Geben Sie den ersten Vorname ein >>");
   chomp ($name1=<>);
   print("Geben Sie den zweiten Vorname ein >>");
   chomp ($name2=<>);
   print ("Der erste Vorname ist $name1 und der zweite Vorname ist $name2\nAuf Wiedersehen.\n");
}

2. Frage

Lösung

#!/usr/bin/perl -w
# Lese vier Namen ein, speichere sie in einer Liste und gib den aplphabetisch größten und kleinsten aus

use strict;
{
   my (@namen, $i);
   
   for ($i=0; $i<4; $i++) {
      print("Geben Sie den ",$i+1,". Namen ein >>> ");
      chomp ($namen[$i]=<>);
   }
   
   # Function @Liste = sort(@Liste) - sortiert eine @Liste in alfabetische Ordnung
   @namen = sort @namen;     
   
   print("Der alphabetisch größte Name   >>> $namen[3]\n");
   print("Der alphabetisch kleinste Name >>> $namen[0]\n");
}

ODER ohne 'sort'

#!/usr/bin/perl -w
# Lese vier Namen ein, speichere sie in einer Liste und gib den aplphabetisch größten und kleinsten aus

use strict;
{
   my (@namen, $i, $min, $max);
   
   for ($i=0; $i<4; $i++) {
      print("Geben Sie den ",$i+1,". Namen ein >>> ");
      chomp ($namen[$i]=<>);
   }
   
   $min = $namen[0];
   $max = $namen[0];
   
   for ($i=1; $i<4; $i++) {
      if ($min gt $namen[$i]) {
         $min = $namen[$i];
      }
      if ($max lt $namen[$i]) {
         $max = $namen[$i];
      }
   }
   
   print("Der alphabetisch größte Name   >>> $max\n");
   print("Der alphabetisch kleinste Name >>> $min\n");
}

3. Frage

Lösung

#!/usr/bin/perl -w
# Zahlenraten

use strict;
{
   print "Ich habe mir eine Zahl zwischen 0 und 100 ausgedacht, erraten Sie sie: \n";
   
   my $zahl_intern = 13;         
   #my $zahl_intern = int(rand(100)); # Das macht mehr Spas :-)
   
   my $zahl_eingabe;
   
   do {
      print("Geben Sie eine Zahl ein >>");
      $zahl_eingabe=<>;
      print("Die eingegebene Zahl ist grösser. \n") if ($zahl_eingabe > $zahl_intern);
      print("Die eingegebene Zahl ist kleiner. \n") if ($zahl_eingabe < $zahl_intern);
   } until ($zahl_intern == $zahl_eingabe);
    
   print ("Sie haben die Zahl erraten!\n");
}

4. Frage

Lösung

#!/usr/bin/perl -w
# Zahlenraten, maximal 5 Versuche

use strict;
{
   print "Ich habe mir eine Zahl zwischen 0 und 100 ausgedacht, erraten Sie sie! \n";
   print "Sie haben 5 Versuche.";

   my $zahl_intern = 13;         
   # my $zahl_intern = int(rand(100)); # Das macht mehr Spas :-)
   
   my $zahl_eingabe;
   my $counter = 0;
   
   do {
      $counter++;
      print("$counter. Versuch. Geben Sie eine Zahl ein >>");
      chomp ($zahl_eingabe=<>);
      print("Die eingegebene Zahl ist grösser. \n") if ($zahl_eingabe > $zahl_intern);
      print("Die eingegebene Zahl ist kleiner. \n") if ($zahl_eingabe < $zahl_intern);
   } until ($zahl_intern == $zahl_eingabe)||($counter == 5);
    
   if($zahl_intern == $zahl_eingabe) {
      print ("Sie haben die Zahl nach ", $counter, " Versuche erraten!\n");
   } else {
      print("Sie haben die Zahl leider nicht erraten. Die richtige Zahl war ", $zahl_intern, ".\n");
   }
}

5. Frage

Lösung

#!/usr/bin/perl -w
# Passwort raten, maximal 5 Versuche

use strict;
{
   print "Sie sollen das Passwort erraten.\n";

   my $parrwort_intern = "Perl_Programm";         
   
   my $passwort_eingabe;
   my $counter = 0;
   
   do {
      $counter++;
      print("$counter. Versuch. Geben Sie das Passwort ein >>");
      chomp ($passwort_eingabe=<>);
      print("Leider Falsch \n") if ($passwort_eingabe ne $parrwort_intern);
      
   } until ($parrwort_intern eq $passwort_eingabe)||($counter == 5);
    
   if($parrwort_intern eq $passwort_eingabe) {
      print ("Sie haben das Passwort nach ", $counter, " Versuche erraten!\n");
   } else {
     print("Sie haben das Passwort leider nicht erraten.\n");
   }
}