EiP Übung

Ähnliche Dokumente
EiP Übung

Musterlösung Klausur 11/ Fragen zu utf-8: 1.1. Welche zwei Methoden gibt es, um STDIN und STDOUT auf utf-8 zu setzen.

KLAUSUR ZUM BACHELORMODUL,,EINFÜHRUNG IN DIE PROGRAMMIERUNG WS 2011/12, DR. MAXIMILIAN HADERSBECK KLAUSUR AM

EiP Übung

Musterlösung

perl sorting HOWTO.txt

KLAUSUR ZUM BACHELORMODUL EINFÜHRUNG IN DIE PROGRAMMIERUNG WS 2013/14, DR. MAXIMILIAN HADERSBECK KLAUSUR AM

Musterlösung Klausur 13/

10 Block 10: Verwendung von Modulen in Perl

KLAUSUR ZUM BACHELORMODUL EINFÜHRUNG IN DIE PROGRAMMIERUNG WS 2015/16, DR. MAXIMILIAN HADERSBECK KLAUSUR AM

Kommunikation von Prozessen: Signale und Pipes

KLAUSUR ZUM BACHELORMODUL EINFÜHRUNG IN DIE PROGRAMMIERUNG WS 2016/17, DR. MAXIMILIAN HADERSBECK KLAUSUR AM

ACHTE ÜBUNG ZUR EINFÜHRUNG IN DIE PROGRAMMIERUNG FÜR COMPUTERLINGUISTEN. Leonie Weißweiler

Referenz (1) Einführung in Perl Referenzen. Zwei Typen von Referenz. Referenz (2) Referenz = Verweis auf andere Daten

Übungspaket 22 Rekursive Funktionsaufrufe

Übungen Perlkurs 08: Referenzen

Objekterkennung auf Bildern mit OpenCV und Image::ObjectDetect

EiP Übung Sichern Sie im Verzeichnis aufg3 den Inhalt des Artikels im Wochenmagazin "der Freitag" über google in der Datei artikel.

Komplexe Datenstrukturen

SIEBTE ÜBUNG ZUR EINFÜHRUNG IN DIE PROGRAMMIERUNG FÜR COMPUTERLINGUISTEN. Leonie Weißweiler

Eine Beschreibung des Programms und der dahinter stehenden Philosophie.

FÜNFTE ÜBUNG ZUR EINFÜHRUNG IN DIE PROGRAMMIERUNG FÜR COMPUTERLINGUISTEN. Leonie Weißweiler

EiP Übung

Fehlersuche. Einführung in Perl Debugger. Start des Debuggers (1) Beispiel (1) #! /usr/local/bin/perl -wd. (M-x perl-mode) - Menü: Perl - Debugger


Perlkurs Dateiverarbeitung. Dr. Marc Zapatka Deutsches Krebsforschungszentrum Molekulare Genetik Gruppenleiter Bioinformatik

Kommandozeileneingabe. Einführung in Perl Kommandozeileneingabe etc. Kommandozeileneingabe Optionen. Kommandozeileneingabe Bsp (1)

Klassen. C++ Übung am 02. Juni 2016

Python für Linguisten

Städtisches Gymnasium Olpe Java Ht Informatik - Q1 Die Klasse List im Abitur Methoden und Beispielcode Hier alle wichtigen Methoden. Ein Beispielcode

Objektorientiertes Programmieren

Algorithmen und Datenstrukturen Tutorium Übungsaufgaben

Perl Programmierung Grundlagen

Variablen - %Hashes Was ist ein Hash? 'Assoziative Arrays'

1 Bizz Buzz Woof (ca =18 Punkte) def read file(file_in): fp = open(file_in, r ) l = fp.read() fp.close() return l

Excel + VBA. Ergänzungen. Kapitel 1 Einführung in VBA Sequentielle Textdateien HARALD NAHRSTEDT. Erstellt am

C# - Einführung in die Programmiersprache Methoden. Leibniz Universität IT Services

Übersicht Shell-Scripten

Einführung in Perl O'REILLY" 2. Auflage. Randal L. Schwartz & Tom Christiansen. Deutsche Übersetzung von Matthias Kalle Dalheimer

Shell. Oder Konsole suchen im Application Finder. Auch Terminal, Bash oder Kommandozeile genannt. Bash nimmt Befehle entgegen und führt diese aus

Übersicht PERL. !!!! Wichtig: Nach dem Befehl einem Strichpunkt setzen!!!!

Übersicht. Einführung in Perl Mustersuche III/ Datentypen II. Mehrzeiliges Matching (1) Mehrzeiliges Matching (2) chomp

Einführung in die Computerlinguistik Tokenizer und Textstatistik mit Perl

Literaturlisten erstellen durch Import aus dem Bib-Kat

Einführung in die Computerlinguistik Tokenizer und Textstatistik mit Perl

MODELL EL-9900 RECHNER MIT GRAFIK- FUNKTION BEDIENUNGSANLEITUNG

Lo sungen Struktogramme

ÜBUNG 3 ZUR EINFÜHRUNG IN DIE PROGRAMMIERUNG FÜR COMPUTERLINGUISTEN LEONIE WEIßWEILER

Komplexe Datenstrukturen

Title-Tag. Titel des HTML-Dokuments. Keywordhäufigkeit im Titel. Keyworddichte im Titel. Position des Keywords im Titel 1/9

Programming 101. Carl Herrmann IPMB & DKFZ

Allgemeines. Shell Programmierung Unix. Kommentar. Vorgangsweise. Mag. Thomas Griesmayer

Benutzerhandbuch. Liquid-Preisvergleichsportale. Version

Perl-Praxis. CGI-Skripte. Jörn Clausen

Wh.: for-schleife. Listen (1) Wh.: Schachtelung von for-schleifen. Listen (2) Bereichsoperator.. Programmierkurs für absolute Anfänger

XML-Frameworks in verschiedenen Programmiersprachen Proseminar Textkodierung und Auszeichnung

Musterlösung: 12. Jgst. 2. Kursarbeit Datum: Fach: Informationsverarbeitung (LK)

ÜBUNG 6 ZUR EINFÜHRUNG IN DIE PROGRAMMIERUNG FÜR COMPUTERLINGUISTEN. Leonie Weißweiler

Öffnen einer Datei. Programm mit einer Fehlermeldung beendet. open( IN, "datei.txt" ) or die( "open-fail: $!" );

Stream EDitor SED und Reguläre Ausdrücke

Der Editor Vim/gVim als Perl-IDE

LV 4752 / 7363 Web-Engineering/WBA Übung 01

Aufgabenblatt 2 Suchen und Sortieren. Aufgabe 1: Vergleiche und Sortieren in Java

Einführung in die Computerlinguistik Einführung in Perl (1)

Übungen zu Computeranwendung und Programmierung WS 17/18

Python Einführung. Monica Selva Soto. 24 März Mathematisches Institut

Netzwerk-Programmierung. Prozesse. Alexander Sczyrba Michael Beckstette.

Programmierung 1 (Wintersemester 2015/16) Wiederholungstutorium Lösungsblatt 15 (Linearer Speicher, Listen, Bäume)

Thomas Theis PHP4. Webserver-Programmierung für Um- und Einsteiger. Galileo Press

Transkript:

Musterlösung zu Blatt 10: 2. Suchen Sie alle Überschriften im Text: (In html Dateien werden Überschriften mit den HTML-Tags <h1>... </h1>, <h2>... </h2> bis <h4>.. ausgezeichnet.) # Programm: findet Ueberschriften my ($zeile,$regex); while($zeile = <TEXT>) for(my $i=1;$i<=4;$i++) $regex = "<h".$i.".*</h".$i.">"; if($zeile =~ /$regex/) print $zeile; 3. Extrahieren Sie aus allen Überschriften den Wert des title Attributs # Programm: extrahiert title aus Ueberschriften my ($zeile,$regex); while($zeile = <TEXT>) for(my $i=1;$i<=4;$i++) $regex = "<h".$i."(.*)</h".$i.">"; if($zeile =~ /$regex/) if($zeile =~ /title=\"(.*?)\"/) print $1."\n"; 1

4.Extrahieren Sie alle www Links und schreiben Sie die WWW-Adressen der Links in die Datei links.txt # Programm: extrahiert Links in links.txt open(links,">:utf8","links.txt"); while($zeile = <TEXT>) if($zeile =~ /href=\"(.*?)\"/) my $tmpzeile = $1; if($tmpzeile =~ /http/ /www/ ) print LINKS $tmpzeile."\n"; close LINKS; 5. Extrahieren Sie alle Zeilen, in denen "[Bearbeiten]" steht. # Programm: extrahiert alle Zeilen in denen [Bearbeiten] steht while($zeile = <TEXT>) #[Bearbeiten] wird in html als >Bearbeiten< dargestellt if($zeile =~ />Bearbeiten</) print $zeile."\n"; 2

6. Suchen Sie im Text alle Paare von identischen Wörtern. Groß/Kleinschreibung spielt keine Rolle. Hinweis: Paare von identischen Wörtern bedeutet für mich etwas wie die die, also zweimal das selbe Wort hintereinander. Dies kommt im Text bisher nicht vor und muss zum Testen eingefügt werden. # Programm: extrahiert alle Paare von identischen Woertern while($zeile = <TEXT>) if ($zeile =~/\b(\pl+)\b \b(\1)\b/i) print"$1 $2\n"; 8./9. Erzeugen Sie eine Frequenzliste aller großgeschriebenen Wörter aus der Datei polt.txt, die länger als 5 Buchstaben sind: ACHTUNG: In den HASH dürfen nur Wörter eingetragen werden, die das Kriterium "großgeschrieben und länger als 5 Buchstaben" erfüllen. Wie kann mit Systemroutinen Aufrufen ermittelen, wieviele KEYS im HASH sind? # Programm: erstellt Frequenzliste aller grossen Woerter die laenger als fuenf Buchstaben sind und gibt Anzahl der Keys aus my ($zeile,@woerter,%lexikon,@woerter_sortiert,$wort); open(text, "<:utf8","polt.txt") or die "file not found!"; while($zeile = <TEXT>) @woerter = split(/[\pz\pp\s]+/,$zeile); foreach $wort(@woerter) if($wort =~ /^\plu\pl5,$/) $lexikon$wort++; 3

@woerter_sortiert = sort $lexikon$a <=> $lexikon$b keys %lexikon; foreach $wort(@woerter_sortiert) print "Das Wort \"$wort\" kommt $lexikon$wortmal im Text vor.\n"; my $anzahl = scalar(keys %lexikon); print "Im Text sind $anzahl Keys vorhanden.\n"; 10. Schreiben Sie eine Subruotine my_reverse, die eine Zeile als Argument bekommt und die Elemente in umgekehrter Reihenfolge mit print ausgibt. ACHTUNG: Es darf die Systemroutine reverse nicht verwendet werden, alles muss innerhalb der Subroutine mit split und Arrays programmiert werden. # Programm: schreibt Subroutine, die Woerter in umgedrehter Reihenfolge zurueckgibt my ($zeile, $zeile_rueckwaerts); print "Bitte geben Sie eine Textzeile ein >>> "; chomp($zeile = <>); &my_reverse($zeile); sub my_reverse($) my $zeile = $_[0]; my $zeile_rueckwaerts = ""; my @woerter = split(/ /,$zeile); for(my $i = (scalar(@woerter)-1); $i >= 0; $i--) if($i==(scalar(@woerter)-1)) $zeile_rueckwaerts = $woerter[$i]; else $zeile_rueckwaerts = "$zeile_rueckwaerts $woerter[$i]"; print "$zeile_rueckwaerts\n"; 4

11. Schreiben Sie eine PERL- Subroutine print_words_with_index, das durch eine Liste von Wörter läuft und jedes Wort zusammen mit der Position innerhalb der Wortliste ausdruckt. # Programm: Subroutine, die jedes Wort in Liste mit Position ausdruckt my @woerter = ("der", "mann", "und", "die", "frau"); &print_words_with_index(@woerter); sub print_words_with_index(@) my @woerter = @_; for(my $i=1;$i<=scalar(@woerter);$i++) print "Wort $i = $woerter[$i-1]\n"; 5