1 Tagesüberblick 3 Lösung Hausaufgabe/Fragen Zeilenweises Lesen von Dateien Schleifenausbrüche Die Variable $_ Textfunktionen.

Slides:



Advertisements
Ähnliche Präsentationen
Excel – Kurs Philip Clasen
Advertisements

Die Schulkonsole für Lehrerinnen und Lehrer
Einführung in die Informatik: Programmierung und Software-Entwicklung
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
WS Prof. Dr. Th. Ottmann Algorithmentheorie 09 - Suche in Texten KMP, BM.
Zusammenfassung der Vorwoche
Klicke Dich mit der linken Maustaste durch das Übungsprogramm! Vereinfachung von Termen Ein Übungsprogramm der IGS - Hamm/Sieg © IGS-Hamm/Sieg 2006 Dietmar.
Sortierverfahren Richard Göbel.
Sortierverfahren Richard Göbel.
FH-Hof Optimierungsverfahren für kombinatorische Probleme Richard Göbel.
Dateihandles Um in Perl eine bestimmte Datei zum Lesen, Schreiben oder Anhängen zu öffnen, benötigt man so genannte Dateihandles. Ein Dateihandle ist der.
Funktion defined Die Funktion defined testet, ob eine Variable einen anderen Wert als undef enthält. Ist der Wert undef, so wird falsch zurückgegeben,
Algorithmentheorie 04 –Hashing
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (05 – Elementare Datenstrukturen) Prof. Th. Ottmann.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 6 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
Processing: Arrays & Laden von Dateien Aufbauend auf dem Beispiel: File I/O LoadFile1.
Grundkurs Theoretische Informatik, Folie 2.1 © 2006 G. Vossen,K.-U. Witt Grundkurs Theoretische Informatik Kapitel 2 Gottfried Vossen Kurt-Ulrich Witt.
Perl-Grundlagen Teile der Präsentation von A. Grupp,
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 7 Claudio Moraga, Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
Klausur „Diskrete Mathematik II“
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik I Vorlesung Listen-
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
PKJ 2005/1 Stefan Dissmann Zusammenfassung der Vorwoche Variable stehen für (einen) Wert, der sich im Programmablauf ändern kann. Variablen besitzen einen.
Zusammenfassung Vorwoche
PKJ 2005/1 Stefan Dissmann Zusammenfassung Vorwoche Methoden sind mit einem Namen versehene Programmabschnitte besitzen Rückgabetyp, Namen, Parameterliste.
Die Skriptsprache Perl (2) Wolfgang Friebel DESY Zeuthen.
Excel Kurs Teil VII Textfunktionen ( TEXT, LÄNGE, LINKS, RECHTS, TEIL, FINDEN ) Einladen von Textdateien Text in Spalten F. Bäumer.
DVG Ablaufsteuerung
Heute: Scherenzange zeichnen
Ralf KüstersDagstuhl 2008/11/30 2 Ralf KüstersDagstuhl 2008/11/30 3.
PRJ 2007/1 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen,
Bild 1.1 Copyright © Alfred Mertins | Signaltheorie, 2. Auflage Vieweg+Teubner PLUS Zusatzmaterialien Vieweg+Teubner Verlag | Wiesbaden.
20:00.
Selbsttest zum Modul 2 Informationstechnik
TWS/Graph HORIZONT Produkt-Präsentation Software für Rechenzentren
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Präsentation C Tutorium von Daniel J. Nowak Folie 1 C Tutorium.
FORTRAN 77.
HORIZONT 1 XINFO ® Das IT - Informationssystem HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 /
HORIZONT 1 XINFO ® Das IT - Informationssystem PL/1 Scanner HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 540.
Vorlesung Mai 2000 Konstruktion des Voronoi-Diagramms II
Das IT - Informationssystem
Was mich ursprünglich von Perl überzeugt hat. Gegeben ist eine Textdatei, deren Größe unbekannt ist. Sie ist jedoch so klein, daß sie komplett in den Speicher.
MINDREADER Ein magisch - interaktives Erlebnis mit ENZO PAOLO
1 (C)2006, Hermann Knoll, HTW Chur, FHO Quadratische Reste Definitionen: Quadratischer Rest Quadratwurzel Anwendungen.
Analyseprodukte numerischer Modelle
PHP: Operatoren und Kontrollstrukturen
Schutzvermerk nach DIN 34 beachten 20/05/14 Seite 1 Grundlagen XSoft Lösung :Logische Grundschaltung IEC-Grundlagen und logische Verknüpfungen.
1 Tagesüberblick 2 Lösung Hausaufgabe/Fragen Datei- ein- und ausgabe Schleifen Vergleiche Wahrheit.
Vortrag von Rechtsanwältin Verena Nedden, Fachanwältin für Steuerrecht zur Veranstaltung Wege zum bedingungslosen Grundeinkommen der Piratenpartei Rhein-Hessen.
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Ertragsteuern, 5. Auflage Christiana Djanani, Gernot Brähler, Christian Lösel, Andreas Krenzin © UVK Verlagsgesellschaft mbH, Konstanz und München 2012.
SFZ Sj 13/14 GZG FN W.Seyboldt 1 SFZ FN Sj. 13/14 Python Grundlagen.
SFZ FN Sj. 13/14 Python Grundlagen InfK12 Sj 13/14 GZG FN W.Seyboldt.
1 Tagesüberblick 4 Lösung Hausaufgabe/Fragen Mustervergleiche.
Blockseminar Allgemeine Technologien II Dozent: P. Sahle März 2009 PHP in HTML Referentin: Angela Brinck.
Lösung Hausaufgabe 4-1 #!perl -w $infile = "daten4-1.txt"; $count1 = $count2 = 0; open (IN,$infile) || die "Oeffnen: $infile $!"; while ( ){ $count2 +=
1 Tagesüberblick 5 Lösung Hausaufgabe/Fragen Assoziative Felder Funktionen zu Variablenbehandlung.
Das IT - Informationssystem
1 Lösung Hausaufgabe 5-1 Seite 1 #!perl -w # Datei Oeffnen und Variablen initialisieren $infile = "daten5-3.txt"; $im=$iw=$sm=$sw=0; open (IN,$infile)
1 Medienpädagogischer Forschungsverbund Südwest KIM-Studie 2014 Landesanstalt für Kommunikation Baden-Württemberg (LFK) Landeszentrale für Medien und Kommunikation.
Monatsbericht Ausgleichsenergiemarkt Gas – Oktober
Programmierungssprache PERL
1 Tagesüberblick 7 Lösung Hausaufgabe/Fragen mehrdimensionale Datenstrukturen Module Fehlersuche Zusammenfassung Feedback.
Klausur „Diskrete Mathematik II“
Arbeiten mit dem Terminal
 Präsentation transkript:

1 Tagesüberblick 3 Lösung Hausaufgabe/Fragen Zeilenweises Lesen von Dateien Schleifenausbrüche Die Variable $_ Textfunktionen

2 Zeilenweise lesen aus Dateien while-Schleife $file = "daten"; open (INFO,$file) || die "Oeffnen $file $!"; while ($a = ) # lese Zeile in Variable print $a; # automatisch beendet bei EOF } close (INFO);

3 Zeilenweise lesen aus Dateien do until-Schleife $file = "daten"; open(ABC,$file) || die "Oeffnen $file $!"; do { # Der Parameter EOF wird gesetzt, $c= ; # wenn beim Lesen das Datei- print $c; # ende erreicht wird. } # Es muss hier beachtet werden, until(eof);# dass leere Dateien nicht sauber close(ABC)# behandelt werden.

4 Schleifenausbruch last $file='daten2-1.txt'; open (INFO,$file) || die "Oeffnen $file $!"; while ($a = ) { print $a; chomp ($a); last if ($a eq 'Schluss');# Abbruch wenn }# Bedingung erfüllt close (INFO);

5 Schleifenneustart next $file='daten2-1.txt'; open (INFO,$file) || die "Oeffnen $file $!"; while ($a = ) { chomp ($a); next if (length($a) == 0);# nächster Schleifen- print "$a\n";# durchlauf wenn Be- }# dingung erfüllt. close (INFO);

6 Die besondere Variable $_ (I) $file = "daten"; open (INFO,$file) || die "Oeffnen $file $!"; while ($_ = ) { print $_; } close (INFO);

7 Die besondere Variable $_ (II) $file = "daten"; open (INFO,$file) || die "Oeffnen $file $!"; while ( ) { print; } close (INFO);

8 Zu Beachten # $_ können sie nicht immer weglassen! $file = "daten"; open (INFO,$file) || die "Oeffnen $file $!"; while ( ) { print "$_\n";# Hier ist $_ nötig! } close (INFO);

9 Textfunktionen split# teilt String in Liste join# verbindet Strings einer Liste tr #Translationsoperator für Zeichen substr #extrahiert Teilstring aus String index# Positon eines Strings in String

10 split (I) $info="Einstein : Albert : : /,$info);# teilt an den : # die Zeichenkette # $info auf print # liefert: Einstein Albert Nobelpreistraeger

11 split (II) #perl -w $info="Einstein : Albert : Nobelpreistraeger"; ($name,$vorname,$beruf)=split(/ : /,$info); # teilt an den : die Zeichenkette $info auf # falls links zu wenig Skalare stehen, wird # der Rest verschluckt print "$name,$vorname,$beruf"; # liefert: Einstein,Albert,Nobelpreistraeger

12 join $abc=join(" : Zusammenfuegen # mit : als Trenner ",$abc); # Zusammenfuegen newline als # Trenner und Leerzeichen # für eine Leerzeile # Beachte: mehrere Argumente print "$abc\n$def";

13 Ergebnis Einstein:Albert:Nobelpreistraeger Einstein Albert Nobelpreistraeger Einstein:Albert:Nobelpreistraeger

14 Aufgaben 3-1 Die Datei daten3-1.txt enthält in jeder Zeile einen Namen, einen Vornamen und ein Alter jeweils durch Komma getrennt. Lesen Sie dies ein und geben Sie alle Informationen jeweils in folgendem Format aus: Vorname Name:Alter 3-2 Speichern Sie jetzt die Daten in der ursprüng- lichen Reihenfolge, jedoch mit Semikolon als Trennzeichen in einer zweiten Datei ab.

15 Aufgabe 3-3 Die Datei daten3-2.txt enthält in jeder Zeile einen Namen, einen Vornamen, ein Kürzel für das Geschlecht (w,m) und ein Alter jeweils durch Komma getrennt. Lesen Sie dies ein und ermitteln Sie das Durchschnittsalter für das jeweilige Geschlecht. 3-3 Anschließend geben Sie das jeweilige Durchschnittsalter aus.

16 tr (translate) tr/Suchliste/Ersatzliste/[s][c]... –Ersetzen der Zeichen in der Suchliste durch die Zeichen der Ersatzliste –Wirkt normalerweise auf $_ –c Entfernen der Suchliste aus dem gesamten Zeichenvorrat und verwenden der resultierenden Zeichenkette als Suchliste (Negation) –s Zusammenziehen aller mehrfach identischen Ersatzzeichen zu einem Ersatzzeichen

17 Beispiel $_="*a*12345*b*cdefdg#\n"; tr/a-zäöü/A-ZÄÖÜ/; # Umlautproblematik print;# in Windows !! # Umwandlung von $_ in Großbuchstaben tr/0-9/a-j/; # Umwandlung von 0-9 in a-j print;

18 Weitere Möglichkeiten $xyz='ab*cdef1* tr'; $xyz=~tr/\*/\#/; # tr / \* / \# / ersetze Stern mit Lattenzaun print "$xyz\n"; $num = ($xyz =~ tr/2/ä/); # ersetze 2 mit ä print "Anzahl=$num\nXYZ=$xyz\n"; # Umwandlung aller 2 in ä in $xyz # $num enthält die Anzahl der Translations

19 Ergebnis ab#cdef1# tr Anzahl=2 XYZ=ab#cdef1#ä43ä543tr

20 Beispiele tr/0-9/ /;# Ersetzt alle Zahlen durch # jeweils eine Leerstelle tr/0-9/ /c;# Ersetzt alle nicht-Zahlen # durch jeweils eine Leerstelle tr/0-9/ /s;# Ersetzt alle aufeinanderfolgenden # Zahlen durch genau eine Leerstelle

21 substr (string,start,lenght) $a="abcdefghijklmnopqrstuvwxyz"; $b=substr($a,3,4);# 4 Zeichen ab dem Vierten $c=substr($a,7);# Alle Zeichen ab dem Achten $d=substr($a,-8,5);# 5 Zeichen ab dem # Achtletzten print "$b:$c:$d";# liefert: # defg:hijklmnopqrstuvwxyz:stuvw # Merke vorn wird ab 0 gezählt, hinten ab 1

22 Besonderheiten von substr # Falls die Adressierung von substr außerhalb der Zeichen- # kette liegt: Fehler. Unbedingt sicherstellen, daß die Zeichen- # kette lang genug ist; oder Fehler abfangen. $b=substr($a." "x7,3,4); $c=substr($a." "x8,7); $d=substr((" "x8).$a,-8,5); $b=substr($a,3,4) || die "Fehler 4711" ; if (length($a) > 6){$b=substr($a,3,4)} # Fehlerbehandlung else{die '$a zu kurz';}

23 index Die Funktion index dient zum Suchen der Stelle des ersten Auftretens einer Teilzeichenkette in einer Zeichenkette. index(zeichenkette,teilzeichenkette) index(zeichenkette,teilzeichenkette,position) zeichenkette In dieser Zeichenkette wird gesucht. teilzeichenkette Diese Zeichenkette wird gesucht. position Ab dieser Stelle wird gesucht.

24 Beispiel #!perl -w $a='abcdefghijklmnopqrstuvwxyzabc'; $b=index($a,'b'); # erstes vorkommen von b $c=index($a,'bc',7); # zweites Vorkommen von bc $d=index($a,'789'); # string kommt nicht vor print "\$b=$b \$c=$c \$d=$d"; #liefert: $b=1 $c=27 $d=-1

25 Aufgaben Lesen Sie die Datei daten3-3.txt ein Wandeln Sie alle Klein- in Großbuchstaben um (nur int. Alphabet). 3-4 Geben Sie jeweils das vierte bis siebte Zeichen jeder Zeile aus. 3-5 Geben Sie die letzten 6 Zeichen jeder Zeile aus.

26 Aufgaben Lesen Sie die Datei daten3-4.txt ein. 3-6 Wenn in einer Zeile die Zeichenkette auf enthalten ist geben sie die Zeilennummer und Position der Zeichenkette an.

27 # Lösung 3-1a #!perl -w $file='daten3-1.txt'; open (INFO,$file) || die "Oeffnen $file $!"; while ($a= ) (/,/,$a); print "$infos[1] $infos[0]:$infos[2]"; } close (INFO);

28 # Lösung 3-1b #!perl -w $file='daten3-1.txt'; open (INFO,$file) || die "Oeffnen $file $!"; while ( ) { ($name,$vorname,$alter)=split (/,/); print "$vorname $name:$alter"; } close (INFO);

29 #Lösung 3-2a #!perl -w $file='daten3-1.txt'; $fileo='aufg3-2.out'; open (INFO,$file) || die "Oeffnen $file $!"; open (QWE,">$fileo") || die "Oeffnen $fileo $!"; while ($a= ) (/,/,$a); print QWE join } close (INFO); close (QWE);

30 #Lösung 3-2b #!perl -w $file='daten3-1.txt'; $fileo='aufg3-2.out'; open (INFO,$file) || die "Oeffnen $file $!"; open (QWE,">$fileo") || die "Oeffnen $fileo $!"; while ( ) {print QWE join (';',split (/,/))} close (INFO); close (QWE);

31 # Lösung 3-3 Seite 1 #!perl -w $file='daten3-2.txt'; open (INFO,$file) || die "Oeffnen $file $!"; $w=$wsum=$m=$msum=0; while ( ) { ($a,$b,$gender,$age)=split (/,/);

32 # Lösung 3-3 Seite 2 if ($gender eq 'w'){ $w++; $wsum+=$age} elsif ($gender eq 'm'){ $m++; $msum+=$age} else{ print "Geschlechtsmerkmal $gender", " unbekannt\n"}}} close (INFO); print "Durchschnittsalter:\nW:", $wsum/$w,"\nM:",$msum/$m;

33 # Lösung 3-4 $file="daten3-2.txt"; open(IN,$file) || die "Oeffnen von $file $!"; while ( ){ chomp();# wichtig wg. anhaengen tr/a-z/A-Z/; print substr($_." "x7,3,4),"\n"; } close(IN);

34 #Lösung 3-5 $file="daten3-2.txt"; open(IN,$file) || die "Oeffnen von $file $!"; while ( ){ chomp();# sonst erwischt man \n mit tr/a-z/A-Z/; print substr((" "x6).$_,-6),"\n"; } close(IN);

35 # Lösung 3-6 $file='daten3-3.txt'; $kette='auf'; $zeilennr=0; open (XDF,$file) || die "Oeffnen $file $!"; while ($fgh= ) { $zeilennr++; $a=index($fgh,$kette); if ($a > -1){ print "Zeilennummer: $zeilennr Position: $a\n"; } close (XDF);

36 Hausaufgabe 3-1 Lesen Sie die Datei daten3-4.txt ein. Wenn in einer Zeile die Zeichenkette auf enthalten ist, geben sie die Zeilennummer und auf die Zeichenkette folgenden 4 Zeichen in die Datei ha3-1.out aus.

37 Lösung Hausaufgabe 3-1 Seite 1 #! perl -w $file='daten3-4.txt'; $ofile='ha3-1.out'; $zeilennr=0; open (XDF,$file) || die "Oeffnen $file $!"; open (RAUS,">$ofile") || die "Oeffnen $ofile $!";

38 Lösung Hausaufgabe 3-1 Seite 2 while ($fgh= ) { $zeilennr++; chomp($fgh); $a=index($fgh,'auf'); if ($a > -1){# Wenn Suchstring vorhanden print RAUS 'Zeilennummer: ',$zeilennr, ' vier folgende Zeichen: ',,substr($fgh." "x4,$a+3,4),"\n"}} close (RAUS);