1
0
This repository has been archived on 2025-03-31. You can view files and clone it, but cannot push or open issues or pull requests.
opal-examples/Blatt04/Blatt4.sign
2013-10-19 01:17:37 +02:00

73 lines
2.2 KiB
Plaintext

SIGNATURE Blatt4
IMPORT Nat ONLY nat
Seq[nat] ONLY seq
Seq[seq[nat]] ONLY seq
-- Design-Hinweis:
-- Normalerweise ist es nicht besonders sinnvoll, unzusammenhängende
-- Funktionen in einer Struktur anzusammeln. Der Einfachheit halber
-- verzichten wir jedoch darauf, das Aufgabenblatt in mehrere Strukturen
-- aufzuteilen.
-- Aufgabe 1 ------------------------------------------------------------------
-- Aufgabe 1.1 ----------------------------------------------------------------
-- Zerlegung einer natürlichen Zahl größer 1 in ihre Primfaktoren
FUN primeFactorDecomposition: nat -> seq[nat]
-- Aufgabe 1.2 ----------------------------------------------------------------
-- Aufteilen einer Sequenz in einen monoton aufsteigenden Präfix und den Rest
FUN ascendingPrefix: seq[nat] -> seq[nat] ** seq[nat]
-- Aufgabe 2 ------------------------------------------------------------------
-- Aufgabe 2.1 (Tut) ----------------------------------------------------------
-- Zerlegung einer Sequenz in monoton aufsteigende Teilsequenzen
FUN ascendingParts: seq[nat] -> seq[seq[nat]]
-- Aufgabe 2.2 (Tut) ----------------------------------------------------------
-- Potenzmenge einer Menge
FUN powerSet: seq[nat] -> seq[seq[nat]]
-- Aufgabe 2.3 ----------------------------------------------------------------
-- Permutationen einer Sequenz
FUN perm: seq[nat] -> seq[seq[nat]]
-- Aufgabe 3 ------------------------------------------------------------------
-- Aufgabe 3.1 (Tut) ----------------------------------------------------------
-- Produkt aus Matrix und Vektor
-- Die Anzahl der Spalten von M muß gleich der Anzahl der Elemente (Zeilen)
-- von v sein.
FUN matVecProd: seq[seq[nat]] ** seq[nat] -> seq[nat]
-- Aufgabe 3.2 ----------------------------------------------------------------
-- Transposition einer Matrix
FUN transp: seq[seq[nat]] -> seq[seq[nat]]
-- Aufgabe 3.3 ----------------------------------------------------------------
-- Produkt zweier Matrizen: C = A x B
-- A und B müssen verkettet sein,
-- d.h. Anzahl der Spalten von A = Anzahl der Zeilen von B
FUN matMatProd: seq[seq[nat]] ** seq[seq[nat]] -> seq[seq[nat]]
-- ----------------------------------------------------------------------------