diff options
Diffstat (limited to 'Aufgabe3/Buchstabenraetzel.pl')
| -rw-r--r-- | Aufgabe3/Buchstabenraetzel.pl | 123 |
1 files changed, 123 insertions, 0 deletions
diff --git a/Aufgabe3/Buchstabenraetzel.pl b/Aufgabe3/Buchstabenraetzel.pl new file mode 100644 index 0000000..cb882b4 --- /dev/null +++ b/Aufgabe3/Buchstabenraetzel.pl @@ -0,0 +1,123 @@ +#!/usr/bin/env perl +#=============================================================================== +# +# FILE: Buchstabenrätzel.pl +# +# USAGE: ./Buchstabenrätzel.pl +# +# DESCRIPTION: Testet zwei Wort listen auf gleiche vorkommen. +# +# OPTIONS: --- +# REQUIREMENTS: --- +# BUGS: --- +# NOTES: --- +# AUTHOR: Martin Talarczyk (MT), talarczyk.martin@fh-swf.de +# ORGANIZATION: FH Südwestfalen, Iserlohn +# Matrikel-Nr.: 10036162 +# VERSION: 1.0 +# CREATED: 28.10.2015 08:43:14 +# REVISION: --- +#=============================================================================== + +use strict; +use warnings; +use utf8; + +binmode (STDIN, ":encoding(UTF-8)"); +binmode (STDOUT, ":encoding(UTF-8)"); +binmode (STDERR, ":encoding(UTF-8)"); +use open ":encoding(UTF-8)"; + + +#------------------------------------------------------------------------------- +# Variabelen Deklarasion +#------------------------------------------------------------------------------- + +my $wolistfp_file_name = 'german.lst'; # input file name +my $infifp_file_name = 'quadrat.dat'; # input file name +my $outputFile = "loesung.dat"; +#hash mit Deutschen Wörtern aus german.list +my %german; +my @loesung; +my @loesung_unique; + + +#==================================================================================== +# Wörter list lesen german.lst +#==================================================================================== +print "Wörter liste lesen...\n"; + +open my $wolistfp, '<', $wolistfp_file_name + or die "$0 : failed to open input file '$wolistfp_file_name' : $!\n"; + + + +while (my $word = <$wolistfp>) +{ + $word = uc $word; + + $german {$word} = $word; +} + +close $wolistfp + or warn "$0 : failed to close input file '$wolistfp_file_name' : $!\n"; + +#==================================================================================== +# lese quadrat.dat +#==================================================================================== +print "Lese Input Datei...\n"; + +open my $infifp, '<', $infifp_file_name + or die "$0 : failed to open input file '$infifp_file_name' : $!\n"; + +while ( my $line = <$infifp>) +{ + #Wenn ein Deutsches Wort (german.list) füge zu lösung hinzu. + push (@loesung, $line) if exists $german {$line}; +} + +close $infifp + or warn "$0 : failed to close input file '$infifp_file_name' : $!\n"; + +print "Feld Sortiren...\n"; +@loesung = sort @loesung; + + +print @loesung . " Wörter gefunden!\n"; + +#==================================================================================== +# Entferne dopelte +#==================================================================================== +print "entferen dopelte...\n"; + +my $count = 0; +push @loesung_unique, $loesung[$count]; + +foreach ( @loesung) +{ + if ($loesung_unique[-1] ne $_) + { + push @loesung_unique, $_; + } +} + +#==================================================================================== +# Schrebie in Ausgabedatei loesung.dat +#==================================================================================== + +print "Schreibe in Ausgabedatei\n"; + + +my $opfp_file_name = 'loesung.dat'; # output file name + +open my $opfp, '>', $opfp_file_name + or die "$0 : failed to open output file '$opfp_file_name' : $!\n"; + +print $opfp @loesung_unique; + +close $opfp + or warn "$0 : failed to close output file '$opfp_file_name' : $!\n"; + +print @loesung_unique . " Wörter ohne doppelte gefunden!\n"; + + |
