Differences between revisions 1 and 3 (spanning 2 versions)
Revision 1 as of 2008-04-12 15:29:41
Size: 3335
Editor: anonymous
Comment:
Revision 3 as of 2008-04-12 15:48:14
Size: 4018
Editor: anonymous
Comment:
Deletions are marked like this. Additions are marked like this.
Line 8: Line 8:
= Lesson 1 - Exercises = = 1. Stunde - Übungen =
Line 10: Line 10:
== Module ==
Programmieren Sie eine XOR-Funktion gemäß der Tabelle. Dafür sollten Sie die Operationen
{{{and, or, not}}} sowie Klammern () verwenden.
== Logische Ausdrücke, Module ==

Programmieren Sie eine XOR-Funktion gemäß folgender Tabelle:

||'''A'''||'''B'''||'''A xor B'''||
||False || False|| False ||
||False || True || True ||
||True || False|| True ||
||True || True || False ||

Verwend
en Sie die Operationen
{{{and, or, not}}} und Klammern {{{()}}}.
Line 64: Line 73:
[[SiaExercisesLesson1LoesungLogischeAusdruecke|Loesung]]
Line 68: Line 77:
 Programmieren Sie eine Datums-Funktion, die die Zahl eines Monats im Jahr zurückliefert,
Programmieren Sie eine Datums-Funktion, die die Zahl eines Monats im Jahr zurückliefert,
Line 71: Line 81:

[[SiaExercisesLesson1LoesungDictionariesA|Loesung]]
Line 72: Line 84:
 Verwenden Sie die String-Methoden {{{.upper()}}} oder {{{.lower()}}} um Groß- und Kleinschreibung
Verwenden Sie die String-Methoden {{{.upper()}}} oder {{{.lower()}}} um Groß- und Kleinschreibung
Line 74: Line 87:
=== c) ===
[[SiaExercisesLesson1LoesungDictionariesB|Loesung]]

=== c) ===
Line 76: Line 92:

[[SiaExercisesLesson1LoesungDictionariesC|Loesung|]]
Line 84: Line 102:

[[SiaExercisesLesson1LoesungRange|Loesung|]]
Line 99: Line 119:
[[SiaExercisesLesson1LoesungListenStrings|Loesung|]]
Line 102: Line 124:

[[SiaExercisesLesson1LoesungSciPyModulA|Loesung|]]
Line 105: Line 130:

[[SiaExercisesLesson1LoesungSciPyModulB|Loesung|]]
Line 107: Line 135:

[[SiaExercisesLesson1LoesungSciPyModulC|Loesung|]]

SiaProgrammingPython

1. Stunde - Übungen

Logische Ausdrücke, Module

Programmieren Sie eine XOR-Funktion gemäß folgender Tabelle:

A

B

A xor B

False

False

False

False

True

True

True

False

True

True

True

False

Verwenden Sie die Operationen and, or, not und Klammern ().

Lösungshilfe:

Verwenden Sie die folgende Vorlage für das Modul logic.py und ergänzen Sie den Ausdruck ... in Zeile 5.

# Module logic.py

def xor(A,B):
    """Returns the logical exclusive or of A and B"""
    C=...
    return C

if __name__=='__main__': # Wird das Modul nicht importiert,
    # sondern mit run gestartet, dann wird dieser Test ausgefuehrt

    K=((False,False),(False,True),(True,False),(True,True))
    print 'A\tB\tA xor B'
    for k in K:
        A,B=k[0],k[1]
        print A,'\t',B,'\t',xor(A,B)

Öffnen Sie einem Editor Ihrer Wahl (xemacs, nedit) und speichern Sie die Datei unter dem Namen logic.py ab. Achten Sie beim Schreiben darauf, dass Sie Tabulatoren (TAB-Taste) und nicht Leerzeichen zur Formatierung verwenden. Das Modul enthält neben der Funktionsdeklaration ein Hauptprogramm, welches zum Test verwendet wird. Die Dokumentation geschieht mit den sogenannten Docstrings, die sich innerhalb der drei Anführungszeichen befindet. In einer for-Schleife werden die möglichen Logik-Kombinationen überprüft. Die Print-Ausgabe wird mit Tabulatoren formatiert. Kommentare werden mit einem Doppelkreuz eingeleitet.

Starten Sie IPython und überprüfen Sie Ihr Programm. Vergleichen Sie das Ergebnis mit der entsprechende scipy-Funktion.

In [1]: from logic import xor
In [2]: xor(False,False)
Out[2]: False
In [3]: xor(True,False)
Out[3]: True
In [4]: run xor
A B A xor B
False False False
False True True
True False True
True True False
In [5]: help(xor)
In [1]: from scipy import logical_xor
In [2]: logical_xor(True,True)
Out[2]: False

Loesung

Dictionaries

a)

Programmieren Sie eine Datums-Funktion, die die Zahl eines Monats im Jahr zurückliefert, wobei das Argument ein String (z.B. ’Oktober’) und der Rückgabewert ein Integer sein soll.

Loesung

b)

Verwenden Sie die String-Methoden .upper() oder .lower() um Groß- und Kleinschreibung zu berücksichtigen.

Loesung

c)

Programmieren Sie die Inversfunktion (Integer -> String).

Loesung

Range

Wie lautet der entsprechende range() Ausdruck für folgende Listen?

[1, 3, 5, 7, 9]
[5, 8, 11, 14, 17]
[19, 18, 17, 16, 15, 14, 13]

Loesung

Listen und Strings

Schreiben Sie ein Programm, welches eine Textdatei einliest und die darin enthaltenen Wörter entsprechend der Häufigkeit des Auftretens sortiert.

Lösungshilfe: Einlesen einer Datei in einen String s

s=file(’test.txt’).read()

Die Methode .split(arg) zerteilt einen String in eine Liste. Die Methode .count(arg) ermittelt die Häufigkeit. Sortieren gelingt mittels der Methode .sort() (in place).

Loesung

SciPy Routinen

a)

Welche Subpackages sind im scipy Modul enthalten?

Loesung

b)

Was für Funktionen enhalten die Subpackages io, ndimage, signal, stats? Nennen Sie jeweils 5 Beispiele

Loesung

c)

Wie wird der Laplace-Filter berechnet (siehe Sourcecode)

Loesung

LehreWiki: SiaExercisesLesson1 (last edited 2008-04-12 15:48:14 by anonymous)