Aufgabe 9

1. Frage

Lösung

#Aufgabe 9.1
_______________________________________
Dezimal | Binär         | Oktal | Hex |
---------------------------------------
15      |          1111 | 17    | F   |
22      |         10110 | 26    | 16  |
256     |    1 00000000 | 400   | 100 |
512     |   10 00000000 | 1000  | 200 |
1024    |  100 00000000 | 2000  | 400 |
2048    | 1000 00000000 | 4000  | 800 |
---------------------------------------

2. Frage

Lösung

#Aufgabe 9.2

Weiß
ÄäÜüÖö

in ISO-Latin:

0000000 062527 157551 142012 156344 153374 000366
0000013


in UTF-8:

0000000 062527 141551 005237 102303 122303 116303 136303 113303
0000020 133303
0000022



(mehr Bytes in UTF-8, da Multibyte-Character enthalten sind)

3. Frage

Lösung

#Aufgabe 9.3

über

inp.txt:

0000000 303 274   b   e   r
        303 274 142 145 162


utf8.txt:

0000000 303 274   b   e   r
        303 274 142 145 162


iso.txt:

0000000 374   b   e   r
        374 142 145 162



inp.txt = 4 bytes
inpISO.txt = 4 bytes
inpUTF8 = 5 bytes

Welche Dateien identisch sind, hängt davon ab,
ob inp.txt im ISO-LATIN oder UTF8 Format gespeichert wurde
und ob es überschüssige \n-Zeichen oder ähnliches gibt.

Befehl (z.B.): diff -qs

4. Frage

Lösung

#!/usr/bin/perl
#Aufgabe 9.4.1
#Liest zwei Wörter ein und testet, ob es sich um Zwei Anagramme handelt

use strict;
use warnings;
use locale;


my ($word1, $word2, @list1, @list2);
my $anagramme = "true";

print "Bitte geben Sie das erste Wort ein: ";
chomp($word1 = <>);
$word1 = lc($word1);
print "Bitte geben Sie das zweite Wort ein: ";
chomp($word2 = <>);
$word2 = lc($word2);

@list1 = split(//,$word1);
@list2 = split(//,$word2);
@list1 = sort(@list1);
@list2 = sort(@list2);

if(length($word1) != length($word2)) {
  $anagramme = "false";
  print "Die Länge der beiden Wörter stimmt schon gar nicht überein =>\nKeine Anagramme\n";
} else {
  for(my $i=0;$i<length($word1);$i++) {
    if($list1[$i] ne $list2[$i]) {
      $anagramme = "false";
      last;
    }
  }

  if ($anagramme eq "true") {
    print "$word1 und $word2 sind Anagramme :)\n";
  } else {
    print "$word1 und $word2 sind keine Anagramme :(\n";
  }
}


#!/usr/bin/perl
#Aufgabe 9.4.2
#Liest ein Wort ein und testet, ob es ein Anagramm zum intern gespeicherten Wort ist

use strict;
use warnings;
use locale;


my ($word,@list1,@list2);
my $myWord = "hobbit";
my $anagramme = "true";

print "Bitte geben Sie ein Wort ein: ";
chomp($word = <>);
$word = lc($word);

@list1 = split(//,$myWord);
@list2 = split(//,$word);
@list1 = sort(@list1);
@list2 = sort(@list2);

if(length($word) != length($myWord)) {
  $anagramme = "false";
  print "Die Länge des eingegebenen Wortes stimmt nicht mit der Länge des internen Wortes überein.\nSie sind keine Anagramme von einander.\n";
} else {
  for(my $i=0;$i<length($word);$i++) {
    if($list1[$i] ne $list2[$i]) {
      $anagramme = "false";
      last;
    }
  }

  if ($anagramme eq "true") {
    print "Das eingegebene Wort und das interne Wort sind Anagramme von einander.\n";
  } else {
    print "Das eingegebene Wort und das interne Wort sind keine Anagramme von einander.\n";
  }
}

5-8. Frage

Lösung

#!/usr/bin/perl
#Aufgabe 9.5-9.8
#Fordert den Benutzer auf, ein Anagramm zu einem intern gespeicherten Wort zu finden

use strict;
use warnings;
use utf8;
use locale;


my ($word1,@list1,@list2);
my $myWord = "Hobbit";
my $anagramme = "true";
my $lcWord = lc($myWord);
print "Finden Sie ein Anagramm zu \"$myWord\": ";
chomp($word1 = <>);
my $lcword1 = lc($word1);

@list1 = split(//,$lcword1);
@list2 = split(//,$lcWord);
@list1 = sort(@list1);
@list2 = sort(@list2);

if(length($lcword1) != length($lcWord)) {
  $anagramme = "false";
  print "Die Länge von \"$word1\" stimmt schon gar nicht mit der Länge von \"$myWord\" überein =>\nKeine Anagramme\n";
} else {
  for(my $i=0;$i<length($lcword1);$i++) {
    if($list1[$i] ne $list2[$i]) {
      $anagramme = "false";
      last;
    }
  }

  if ($anagramme eq "true") {
    print "\"$word1\" und \"$myWord\" sind Anagramme von einander.\n";
  } else {
    print "\"$word1\" und \"$myWord\" sind keine Anagramme von einander.\n";
  }
}