1 Tagesüberblick 6 Lösung Hausaufgabe/Fragen Weitere besondere Variablen Hier-Dokument Unterprogramme.

Slides:



Advertisements
Ähnliche Präsentationen
der Universität Oldenburg
Advertisements

Ausführen.
Zusammenfassung der Vorwoche
12. Iteration und Rekursion
4. Serverbasierte Programmierung: Perl 4.1Grundlagen 4.1.1HTTP-Server und CGI-Schnittstelle 4.1.2Formulare 4.1.3Ein einfaches Perl Programm 4.2Interaktion.
Imperative Programmierung -Entwicklungswerkzeuge
Java: Objektorientierte Programmierung
FH-Hof Indirekte Adressierung Richard Göbel. FH-Hof Einfache Speicherung von Daten Eine "einfache" Deklaration definiert direkt eine Speicherplatz für.
Java: Referenzen und Zeichenketten
Java: Grundlagen der Objektorientierung
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,
Ein Beispiel in Java.
Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung Kapitel 12: „Variablen und Konstanten verwenden und Spiele.
Perl-Grundlagen Teile der Präsentation von A. Grupp,
Oracle WebServer - Einführung. © Prof. T. Kudraß, HTWK Leipzig Oracle Web Application Server HTML WebServer ® File system Static HTML PL/SQL Packages.
Imperative Programmierung Funktionen und Parameter
PKJ 2005/1 Stefan Dissmann Methoden (Motivation) Idee: Identische Programmabschnitte zusammenfassen und mit einem Namen versehen Vorteile: Übersichtlichkeit.
PKJ 2005/1 Stefan Dissmann Ausblick Es fehlen noch: Möglichkeiten zum Strukturieren größerer Programme Umgang mit variabler Zahl von Elementen Umgang mit.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Vorwoche Programm besteht aus mehreren Bestandteilen: Schlüsselwörter Sonderzeichen Bezeichner Kommentare Texte.
Zusammenfassung Vorwoche
PKJ 2005/1 Stefan Dissmann Zusammenfassung Vorwoche Methoden sind mit einem Namen versehene Programmabschnitte besitzen Rückgabetyp, Namen, Parameterliste.
Die Skriptsprache Perl (6) Wolfgang Friebel DESY Zeuthen.
Die Skriptsprache Perl (7)
Die Skriptsprache Perl (8) Wolfgang Friebel DESY Zeuthen.
Die Skriptsprache Perl (2) Wolfgang Friebel DESY Zeuthen.
Packages Vortrag : Cornelia Hardt 23. November 1999.
DVG Kommentare1 Kommentare. DVG Kommentare 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht.
DVG Methoden 1 Methoden. 2 int dezi = Integer.parseInt(args[0]); boolean vz = (dezi>=0); dezi = Math.abs(dezi); String Bin = ""; do { } while.
DVG Kommentare 1 Kommentare. 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht bis zum Ende der Zeile.
DBD::PO Mit SQL GNU gettext PO-Files bearbeiten. Über was ich heute spreche. Vom Quelltext bis zur mehrsprachigen Anwendung. Formate Irrwege Lösungen.
FH-Hof HTML - Einführung Richard Göbel. FH-Hof Komponenten des World Wide Webs WWW Browser HyperText Transfer Protocol (HTTP) via Internet WWW Server.
Mehr Qualität und schnellere Marktreife durch effiziente Softwaretests
Term {abstrakt} alsText(){abstrakt} berechnen(Belegung){abstrakt} Zahl alsText() berechnen(Belegung) double wert Variable alsText() berechnen(Belegung)
Java programmieren mit JavaKara
Einführung in die Programmiersprache Java
Einführung in die Programmiersprache C 3.Tag Institut für Mathematische Optimierung - Technische Universität Braunschweig.
Prozeduren und Funktionen
C-Einstieg. Agenda 1Vorbereitung 2Aufbau eines Programms 2.1Header 2.2 Methoden 2.3Main 3Datentypen & Variablen 4Operatoren(+, -, *, /) 5Logik 5.1IF 5.2Switch.
Unterprogramme in JAVA
JAV | Titel des Dokuments | Mai 2012 | Seite 1 HIER STEHT DIE HEADLINE, 2 ZEILEN Subheadline einzeilig.
Einführung in PHP.
Einführung in PHP 5.
Mag. Andreas Starzer weloveIT – EDV Dienstleistungen
1 Tagesüberblick 2 Lösung Hausaufgabe/Fragen Datei- ein- und ausgabe Schleifen Vergleiche Wahrheit.
1 Tagesüberblick 3 Lösung Hausaufgabe/Fragen Zeilenweises Lesen von Dateien Schleifenausbrüche Die Variable $_ Textfunktionen.
1 Tagesüberblick 4 Lösung Hausaufgabe/Fragen Mustervergleiche.
Java-Kurs Übung Benutzeroberflächen und Graphik
Alois Schütte Advanced System Programming 2 Interprozeßkommunikation  2.1 JVM Ablaufumgebung  2.2 Java Native Interface (JNI)  Verwendung von.
Willkommen in Berlin.
Übung Informatik I exercise01. 2 Inhaltsübersicht Nachbesprechung Übung 1 Individuelle Fragen/Bemerkungen.
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.
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 Tagesüberblick 7 Lösung Hausaufgabe/Fragen mehrdimensionale Datenstrukturen Module Fehlersuche Zusammenfassung Feedback.
Parallel Programming OpenMP und JOMP
Unterprogramme / Methoden
Test 1 Test 2 Test 3. Test 4 Test 5 Test 6 Test 7 Test 8 Test 9.
Funktionen, Felder und Parameter- übergabe. Funktionsaufruf mit Feld als Parameter: Parameter = Name des Feldes.
Tutorium Software-Engineering SS14 Florian Manghofer.
Funktionen (Zweck und Eigenschaften) Funktionen sind Unterprogramme, die einen bestimmten Zweck erfüllen Sie zerlegen Probleme in kleine, abgeschlossene.
Netzwerk - Programmierung
Das IT - Informationssystem
Netzwerk - Programmierung
Netzwerk - Programmierung
Netzwerk - Programmierung
Test.
Cäsar-Verschlüsselung
Cäsar-Verschlüsselung
Implementieren von Klassen
 Präsentation transkript:

1 Tagesüberblick 6 Lösung Hausaufgabe/Fragen Weitere besondere Variablen Hier-Dokument Unterprogramme

2 Weitere besondere enthält alle Argumente die an das # Programm übergeben wurden. %ENV# enthält die Variablen des Environ- # ments. Schlüssel sind die Variablen- # namen, diese weisen auf die Werte.

# Programm aufrufen mit: test.pl Ich bin ein Test foreach print "#$arg\n"} # liefert: #Ich #bin #ein #Test

4 %ENV print join(",",keys(%ENV)); # obiger Einzeiler könnte z. B. liefern # WINBOOTDIR,TMP,PROMPT,TEMP,... # COMSPEC,CMDLINE,PATH,WINDIR,... # BLASTER

5 Hier-Dokument #!perl -w $a=<<BLA; Ich bin ein Text, der in einem Hier- Dokument gespeichert ist. BLA print $a;

6 Programmausgabe Ich bin ein Text, der in einem Hier- Dokument gespeichert ist.

7 Hier-Dokument mit Variablen #!perl -w $b=1745; print <<BLA; Ich bin ein Text, der in einem Hier-Dokument gespeichert und mit Variablen angereichert ist. Z. B. $b ist eine schoene Zahl. BLA

8 Programmausgabe Ich bin ein Text, der in einem Hier-Dokument gespeichert und mit Variablen angereichert ist. Z. B ist eine schoene Zahl.

9 Aufgabe 6-1 Schreiben Sie ein Programm, dass Sie mit Namen als Parametern aufrufen können. Geben Sie für jeden Namen eine Zeile aus: Hallo Name Wenn kein Parameter angegeben wurde, geben Sie aus: Hallo Ihr da!

10 Aufgabe 6-2 Fragen Sie vom Benutzer seinen Namen, und sein Geburtsdatum ab. Geben Sie anschließend aus: Ihr Name ist: Name Ihr Geburtsdatum ist: Geburtsdatum Benutzen Sie hierzu eine einzelne Printanweisung mit einem Hier-Dokument

11 Aufgabe 6-3 Schreiben Sie ein Programm, daß alle Environment-Variablen, die als Argument übergeben wurden, mit ihren Werten ausgibt,. Anmerkung: Beachten Sie den Sonderfall, daß nichts übergeben wurde. Hier geben Sie alle Environment-Variablen mit ihren Werten aus. Beispiel: test.pl COMSPEC COMSPEC=C:\WINDOWS\COMMAND.COM

12 Unterprogramme sub beispiel{ print "Ein primitives Unterprogramm\n"; } &beispiel; &beispiel(12); &beispiel(1+3,"Text"); # Es gibt keine Probleme # falls man mehr Argumente als nötig übergibt

13 Argumente sub printargs{# Beachte: print Die hat }# nichts mit der Variablen # $_ zu tun und ist lokal &printargs;# zum Unterprogramm &printargs(12); &printargs(1+3,"Text"); # liefert:;12;4 Text;

14 Einzelne Argumente sub print2args{# Auch die einzelnen print "$_[0] $_[1]\n";# Listenelemente }# $_[n] haben nichts # mit $_ zu tun. &print2args; &print2args(12); &print2args(1+3,"Text");

15 Explizite Rückgabe sub maximum{ if ($_[0] > $_[1]){ $a=$_[0]; } else{ $a=$_[1]; }# Der Rückgabewert return $a;# wird nach dem }# return übergeben print &maximum(14,27)

16 Rückgabewert dirty sub maximum{ if ($_[0] > $_[1]){ $_[0];# Der Rückgabewert }# ist der jeweils else{# letzte evaluierte Wert. $_[1];# Diese Form findet man }# gelegentlich vor. }# Keinesfalls benutzen print &maximum(14,27)

17 Frage: sub maximum{ if ($_[0] > $_[1]){ $a=$_[0]} else{ $a=$_[1]} print "$a\n"; } print &maximum(14,27) # Was wird ausgegeben?

18 Ergebnis 27 1 # Warum kam das heraus?

19 Lokale Variablen sub enthalten{ my ($a, $b);# lokale Variable def. ($a, $b)=($_[0],$_[1]);# zuweisen $a =~ s/\s//g;# \ whitespace $b =~ s/\s//g;# / entfernen return ($a =~ /$b/ | $b =~ /$a/);# enthalten ? } ($a, $b) = ("a b c-Dur","bc"); if (&enthalten($a,$b)){print "enthalten:\n$a\n$b"}

20 Ergebnis: enthalten: a b c-Dur b c Dies zeigt deutlich, daß die Variablen $a und $b im Unterprogramm von denen im Hauptprogramm verschieden sind, sonst wären alle Leerstellen verschwunden. Um dies zu verdeutlichen schreiben Sie ein # vor das my und testen dann.

21 my local my Variablen sind immer lokal zu dem Block in dem sie definiert sind. my ist vorzuziehen, da schneller und sicherer local Variablen sind lokal zu dem Block in dem sie definiert sind und in von diesem aufgerufenen Unterprogrammen ( geht nicht mit use strict ) ( War vor PERL 5 üblich )

22 Merke Die Variablen des Programms sind global wenn nichts anderes vorgegeben ist. Ans Unterprogramm übergebene Variablen können von diesem verändert werden. Um zu vermeiden, daß bei späteren Programm- weiterentwicklungen Kuddelmuddel auftritt sollte man alle im Unterprogramm verwendeten, nicht übergebenen Variablen lokalisieren.

23 use strict use strict;# jetzt müssen alle Variablen vor Ihrer # Benutzung definiert werden use vars qw($bb);# Global bekannt { my $aa;# Lokal bekannt $aa=$bb=1; print "$aa # "; &bla; } sub bla{ print ++$bb} # liefert: 1 # 2

24 Rekursion sub rec{ if ($_[0] < 10){# Immer auf Abbruch print $_[0]++,"\n";# achten! &rec($_[0]);# Falls noetig } # Schleifenzaehler }# mitführen $a=0; &rec($a);

25 Aufgabe 6-4 Lesen Sie die Datei daten6-1.txt ein. Wandeln Sie alle Klein- in Großbuchstaben um. –Tun Sie dies in einem Unterprogramm. Geben Sie die Zeilen zunächst im Unterprogramm in Großbuchstaben aus. Geben Sie die Zeilen anschließend im Hauptprogramm im Original aus.

26 Aufgabe 6-5 Erweitern Sie die im Beispiel genannte Maximumfunktion durch Verwendung der Rekursion auf beliebig viele Zahlen.

27 Aufgabe 6-6 Schreiben sie ein Unterprogramm zur Berechnung der Fakultät n!=1*2*3*.....*n

28 Hausaufgabe 6-1 Lesen Sie die Datei daten5-3.txt ein. Die Datei enthält in einer Zeile Name, Vorname, Geschlecht und Alter einer Person, jeweils durch Schrägstrich (/) getrennt. Ermitteln Sie für jede Person die Fakultät des Alters. Benutzen Sie hierzu ein Unterprogramm. Ermitteln Sie die Mittelwerte der Fakultäten jeweils nach Geschlecht getrennt und geben Sie aus.