Lösung zur F#-Aufgabe, Teil 4

14. September 2008 – 17:38 von Andreas

Ein paar Wochen sind nun vergangen und ich möchte euch die Lösung auf meine kleine F#-Aufgabe nicht vorenthalten.

Hier nochmal die Aufgabenbeschreibung:
Schreibt eine Funktion “create_matrix”, welche als Paramater die Zeilen, Spalten und einen Initialwert enthält (also “let create_matrix(rows,cols,initvalue) = …” ). Die Funktion gibt eine Liste zurück, welche wiederum für jede Zeile der Matrix wiederum eine Liste enthält.
Wird die Funktion folgendermaßen aufgerufen: “create_matrix(3,4,0)” so sollte folgende Liste (welche die 3×4-Matrix repräsentiert) erstellt und zurückgegeben werden: [ [ 0; 0; 0; 0]; [ 0; 0; 0; 0]; [ 0; 0; 0; 0] ].
Außerdem wäre es schön wenn ihr noch eine Funktion printmatrix schreiben würdet, welche die Matrix formatiert auf der Konsole ausgibt:

  1. printmatrix(create_matrix(3,4,0))

Ausgabe:
Matrix:
[0; 0; 0; 0]
[0; 0; 0; 0]
[0; 0; 0; 0]

Hier nun die Lösung mit ein wenig Kommentar:

  1. (*
  2.  Erstellt eine Matrix als Liste,
  3.  welche wiederum Listen enthaelt.
  4.  Dabei ist jede Liste innerhalb der
  5.  "root"-Liste eine Zeile.
  6.  *)
  7. let create_matrix(rows,cols,initvalue) =
  8.     [for x in 1 .. rows ->
  9.         [ for y in 1 .. cols -> initvalue] ]
  10.  
  11. (*
  12.  Gibt eine mit create_matrix erstellte
  13.  Matrix lesbar auf die Konsole aus.
  14. *)
  15. let printmatrix (matrix) =
  16.     print_string "Matrix:"
  17.     List.iter(fun list ->
  18.        print_string "\n"
  19.        print_any list) matrix

Wenn euch noch etwas unklar erscheinen sollte, dann postet die Frage einfach als Kommentar:)!

  1. 1 Trackback(s)

  2. Jul 5, 2010: MANUEL

Post a Comment