EiP Übung

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

EiP Übung

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

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

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

EiP Übung

EiP Übung

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

Einführung in die Programmierung für Computerlinguisten

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

EiP Übung

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

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

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

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

Arithmetik in der tcsh

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

Übersicht Shell-Scripten

Linux-Einführung Übung

Programmiertechnik 1 FOR-SCHLEIFEN

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

Verwenden Sie für jede Aufgabe die C++ IDE von Eclipse (pro Aufgabe ein Projekt).

GI Vektoren

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

6 UTF8 und Stringverarbeitung

Übungen zu Algorithmen

Computer & GNU/Linux Einführung Teil 4

TU Kaiserslautern. Übungsblatt 2: Software-Entwicklung 1 (WS 2017/18) Hinweise zu Einreichaufgaben. Hinweise zu den Übungen

Programmiertechnik 1 FOR-SCHLEIFEN

Übungen Programmieren 1 Felix Rohrer. Übungen

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

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

Übungen zur Vorlesung EidP (WS 2015/16) Blatt 6

Ausgabe:

Systemverwaltung mittels Skripts

Institut fu r Informatik

Vorsemesterkurs Informatik Übungsaufgaben. Tag 4a - Python

Übung zur Vorlesung EidP (WS 2018/19) Blatt 4

Einführung in PERL 2 Reguläre Ausdrücke

Informatik B von Adrian Neumann

Tutoraufgabe 1 (Casting): Programmierung WS17/18 Übungsblatt 2 (Abgabe ) Allgemeine Hinweise:

hue12 January 24, 2017

Strings. Daten aus Dateien einlesen und in Dateien speichern.

Ein- und Ausgabeumlenkung

Praktische Übung. Die Lernplattformen ILIAS ist mit Stud.IP verbunden, sodass Sie Lernmodule dieser Plattform

Rückgabewerte von Methoden

Aufgabenblatt: Methoden - rekursiv

Zeichenketten. Beispiel: Gegeben sind text1 = Hallo und text2= Welt. Dann wird in der Variablen text3 die Zeichenkette HalloWelt abgespeichert.

Anleitung Anleitung Anleitung Anleitung Anleitung Anleitung Anleitung Anleitung Anleitung

Programmierkurs Java

Shell-Scripting Linux-Kurs der Unix-AG

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

= 7 (In Binärdarstellung: = 0111; Unterlauf) = -8 (In Binärdarstellung: = 1000; Überlauf)

Musterlösung Klausur 13/

Primzahlen und Programmieren

Praktikum zur Vorlesung Einführung in die Programmierung WS 14/15 Blatt 3

Programming 101. Carl Herrmann IPMB & DKFZ

Vorlesung Unix-Praktikum

FH München, FB 03 FA WS 06/07. Ingenieurinformatik. Name Vorname Matrikelnummer Sem.Gr.: Hörsaal Platz

Informatik. Wiederholung Felder (Arrays), string. Vorlesung

Informatik für Schüler, Foliensatz 2 Ausdrücke, Variablen, Datentypen, Ein- und Ausgabe

Schleifen: Immer wieder dasselbe tun

01 Einführung in PHP. Einführung in PHP 1/13 PHP in Aktion

Funktionen in JavaScript

10 Block 10: Verwendung von Modulen in Perl

Arbeiten mit der Shell Teil 2

Arbeiten mit der Shell Teil 2

Grundlagen der Programmierung

Bash-Skripting Linux-Kurs der Unix-AG

Funktionen in JavaScript

Reguläre Ausdrücke Suchmuster, Pattern Matching

Schleifen und If-Abfragen

Musterlösung

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

07 Funktionen (Teil I)

Linux II. Reguläre Ausdrücke Editoren Scripting. 2 Linux II. Linux I II III Res WN/TT NLTK XML Weka E Reguläre Ausdrücke Editoren Scripting

Eine Beschreibung des Programms und der dahinter stehenden Philosophie.

Shell-Scripting Linux-Kurs der Unix-AG

Übungszettel 2a - Python

Programmieren. Aufgabe 1 (Eine erste Datenstruktur)

Python für Linguisten

Python 3.6. Erste Schritte auf dem Mac. Syshack. 22. Juni 2017 Version 2.0. Python Erste Schritte auf dem Mac Syshack, 22.

Informatik I - Übung 2 Programmieren in Eclipse

Klausur zu Grundlagen der Informatik / Allgemeine Informatik I 2. März 2006 (WS 2005/2006) Prof. Dr. Franz Schweiggert / Norbert Heidenbluth

Kurs 1613 Einführung in die imperative Programmierung Musterlösung zur Klausur am

Transkript:

Musterlösung zu Blatt 6: 1. Wie lautet das PERL Programm, das mit Hilfe einer Schleife jede Zahl zwischen 0 und 30 ausgibt und bei jeder durch 3 teilbaren Zahl dazu schreibt: "Ich bin durch 3 teilbar". # Programm: durch 3 teilen my $i; for ($i=0; $i<=30; $i++) if ($i % 3 == 0 && $i!=0) print "$i: Ich bin durch 3 teilbar.\n"; else print "$i\n"; 2. Erweitern Sie die letzte Aufgabe dahingehend, dass der Teiler 3 nicht mehr fest vorgegeben ist, sondern der Benutzer nach einem beliebigen Teiler gefragt wird. Mit diesem Teiler soll die Teilbarkeit mit dem Multiplikationsfaktor nach folgendem vorgebenen Muster ausgegeben werden: Ausgabe: Bitte geben Sie den Teiler ein > Eingabe: 5 Ausgabe: 0,1,2,3,4 5 : ich bin durch 5 teilbar, der Multiplikator ist 1 6,7,8,9, 10 : ich bin durch 5 teilbar, der Multiplikator ist 2 # Programm: durch 3 teilen my $i; my $teiler; print "Bitte geben Sie den Teiler ein:>>>\n"; chomp($teiler = <>); for ($i=0; $i<=30; $i++) if ($i % $teiler == 0 && $i!=0) print "\n$i : Ich bin durch $teiler teilbar, der Multiplikator ist ", $i/$teiler, ".\n"; else print "$i,"; 1

3. Schreiben Sie ein Programm, dem Sie eine Zeile eingeben können, und geben Sie nur die Vokale (aeiou) der Zeile auf dem Terminal aus. Tipp: "Zeile einlesen, mit split zerlegen und durch das Array mit einer for Schleife laufen" # Programm: liest aus Zeile nur die Vokale aus my $zeile; my (@buchstaben,@vokale); my $buchstaben; my $vokal; print"bitte geben Sie eine Zeile ein:>>>\n"; chomp($zeile=<>); $zeile=lc($zeile); @buchstaben=split(//,$zeile); @vokale=("a","e","i","o","u"); foreach $buchstaben(@buchstaben) foreach $vokal(@vokale) if ($buchstaben eq $vokal) print"$buchstaben"; print "\n"; 4. Holen Sie den Text eines Interviews von Gerhard Polt in der Süddeutschen Zeitung : "»Ich sinnlose vor mich hin... und das mit Begeisterung!«Gerhard Polt spricht über die Langeweile. Von Alex Rühle" mit folgendem Befehl: lynx -dump http://sz-magazin.sueddeutsche.de/texte/anzeigen/36659 und sichern Sie im Verzeichnis aufg3 den Inhalt des Interviews in der Datei 'artikel.txt'. cd aufg3 lynx -dump http://sz-magazin.sueddeutsche.de/texte/anzeigen/36659 > artikel.txt 2

5. Schreiben Sie ein PERL Programm, das den Text aus der Datei 'artikel.txt' liest und splitten Sie die einzelnen Zeilen, damit Sie das erste Wort jeder Zeile auf dem Teminal ausgeben können. # Programm: gibt erstes Wort der Zeile einer Datei aus my $zeile; my @woerter; my $woerter; while($zeile=<artikel>) #($woerter[0]) print "$woerter[0]\n"; # # falls das Wort nicht leer ist Achtung: es ist auch in Ordnung wenn ihr leere Wörter mit ausgebt, es war hier noch nicht verlangt zu testen ob am Anfang der Zeile auch wirklich ein Wort steht. 6. Schreiben Sie ein PERL Programm, das den Text aus der Datei 'atrikel.txt' liest und eine einspaltige Wortliste des Textes erzeugt. Speichern Sie die Wortliste in der Datei 'wortliste.txt'. # Programm: erzeugt einspaltige Wortliste in wortliste.txt my $output = "wortliste.txt"; my ($zeile, @woerter, $woerter, $element); open(wortliste, ">$output"); while($zeile=<artikel>) 3

foreach $element (@woerter) if ($element) print "$element \n"; print WORTLISTE "$element \n"; close (WORTLISTE); 7. Erweitern Sie das vorherige Programm dahingehend, das auch die Anzahl der Wörter, der Zeilen und die Anzahl der Zeichen (keine Spaces mitzählen!) in der Datei 'artikel.txt' gezählt werden. # Programm: erzeugt einspalte Wortliste in wortliste.txt und zaehlt my $output = "wortliste.txt"; my ($zeile, @woerter, $woerter, $element); my $anzzeilen = 0; my $anzwoerter = 0; my $anzbuchstaben = 0; open(wortliste, ">$output"); while($zeile=<artikel>) $anzzeilen++; foreach $element (@woerter) if ($element) $anzwoerter++; $anzbuchstaben = $anzbuchstaben + length($element); print "$element \n"; print WORTLISTE "$element \n"; print "Ihr Text hat $anzzeilen Zeilen, $anzwoerter Woerter und $anzbuchstaben Buchstaben!\n"; close (WORTLISTE); 4

8. Vergleichen Sie das Ergebnis der letzten Aufgabe mit der Ausgabe des UNIX- Befehls wc wc artikel.txt 9. Erweitern Sie das vorherige Programm dahingehend, dass Sie am Anfang des Progamms nach einem Wort gefragt werden und ausgeben ob das Wort, bzw. wie oft das Wort in der Datei 'artikel.txt' vorkommt. # Programm: sucht nach Wort in Wortliste my $output = "wortliste.txt"; my ($zeile, @woerter, $woerter, $element, $eingabe); my $anzzeilen = 0; my $anzwoerter = 0; my $anzbuchstaben = 0; my $anzeingabe = 0; open(wortliste, ">$output"); print"nach welchem Wort soll ich fuer Sie suchen? Eingabe:>>>\n"; chomp($eingabe = <>); while($zeile=<artikel>) $anzzeilen++; foreach $element (@woerter) if ($element) $anzwoerter++; $anzbuchstaben = $anzbuchstaben + length($element); print "$element \n"; print WORTLISTE "$element \n"; if ($element eq $eingabe) $anzeingabe++; print "Ihr Text hat $anzzeilen Zeilen, $anzwoerter Woerter und $anzbuchstaben Buchstaben!\n"; print "Ihr Wort $eingabe kommt im Text $anzeingabe mal vor!\n"; close (WORTLISTE); 5

10. Vergleichen Sie das Ergebnis der letzten Aufgabe mit den Werten, die die Lösung der Aufgabe 1 aus dem letzten Aufgabenblatt liefert. Wort Wert Übung 6 Wert Übung 5 die 44 45 und 33 36 der 34 36 den 16 22 wie 9 15 11. Wie sind folgende Zeichenketten in UTF-8 - und in ISO-Latin-1 Kodierung abgespeichert? (Tipp: Speichern Sie die Wörter in einer UTF-8 und dann in einer ISO-Latin 1 Datei und betrachten Sie, analog zur Vorlesung, den octal Dump der Datei mit dem unix-befehl od ) a) Zeichenkette : 'Anton' od testutf8 0000000 067101 067564 005156 000012 0000007 od testisolatin 0000000 067101 067564 005156 000012 0000007 b) Zeichenkette : 'Dez. 2010, 12:45' od testutf8 0000000 062504 027172 031040 030460 026060 030440 035062 032464 0000020 005012 0000022 od testisolatin 0000000 062504 027172 031040 030460 026060 030440 035062 032464 0000020 005012 0000022 6

c) Zeichenkette : 'äää üüü ööö' od testutf8 0000000 122303 122303 122303 141440 141674 141674 020274 133303 0000020 133303 133303 005012 0000026 od testisolatin 0000000 162344 020344 176374 020374 173366 005366 000012 0000015 Wo unterscheiden sich die Codierungen? Die Codierungen unterscheiden sich bei den Umlauten. Umlaute werden in UTF-8 als Mehrbytezeichen dargestellt. 7