s n h m r u
i

Übungen: Die Listenfunktionen filter und fold

Aufgabe 1: Klausurergebnisse

Bestehende Datei - listenFunktionen.rkt.rkt

Frau Storkov ist seit vier Jahren als Informatikprofessorin an einer Universität tätig. Jedes Jahr bietet sie einen Kurs zur funktionalen Programmierung an, der mit einer Abschlussklausur endet. Nach dem Abschluss des vierten Jahres möchte sie sich die Klausurergebnisse noch einmal genauer anschauen. Unter anderem interessiert sie, wie viele Studierende jedes Jahr teilnehmen und ob sie die Prüfungen über die Jahre hinweg etwa gleich schwer gestaltet hat. Hierzu hat sie die Notenlisten der einzelnen Jahre in einer Liste zusammengefasst:

(define notenliste
  (list
   (list 3.3 1 1.7 3.3 1.3 2.7 2.3 2.7 1.7 3 3 1 3 4 5 2.0 4 3.3 4 1 5 1 5 1 3 2.0 5 2.3 2.7 2.3 2.3 3.3 2.7 1 3.3 2.7 3.3 1.3 1 3.3)
   (list 2.3 1.7 1 3.7 3.7 3 3 1 1 1.7 4 1 3.7 2.0 1.3 3.3 2.0 5 4 1.7 3.3 1.7 1.3 3.7 5 2.7 1.7 4 3.3 3.3 3.3 3.7 1.7)
   (list 3.7 1 2.3 2.0 2.0 1.7 2.3 1 3 1.3 5 1.7 4 3.3 5 2.3 2.3 3.3 4 5 3 2.7 3 3 1 2.3 2.7 5 4 3.3 2.0 3.3 1.3 4 4 3.7 3 2.3 2.0 3.3)
   (list 2.0 5 2.3 1 2.0 3.7 5 1 1 2 3 2.7 3.3 2.0 5 1.7 2.7 3.7 1.7 1 5 2 3.3 4 3 1.3 3 2.3 3 5 1.7 2.3 1 1.3 2.0 1 1.3 1.7 5)))

(a) Ermittle für jedes Jahr die Anzahl der Studierenden, die an der Klausur teilgenommen haben.

(b) Ermittle die durchschnittliche Anzahl an Studierenden, die an der Klausur teilgenommen haben.

(c) Ermittle für jedes Jahr die durchschnittlich erzielte Note aller Studierenden.

(d) Ermittle die durchschnittlich erzielte Note über alle vier Jahre.

(e) Ermittle den Prozentsatz an Studierenden, die durchschnittlich die Klausur nicht bestehen.
Hinweis: Eine Uni-Klausur gilt mit der Note 5.0 als nicht bestanden.



Aufgabe 2: Elemente des Periodensystems

Bestehende Datei - listenFunktionen.rkt.rkt

In den Naturwissenschaften spielt es eine entscheidende Rolle, unter welchen Bedingungen bestimmte Stoffeigenschaften beobachtet oder gemessen werden. Eine dieser Eigenschaften ist der Aggregatzustand eines Elements. Um die internationale Vergleichbarkeit und Reproduzierbarkeit dieser Zustände zu gewährleisten, wurden Standardbedingungen definiert. Üblich ist hier die Verwendung der SATP-Bedingungen (Standard Ambient Temperature and Pressure). Diese entsprechen 298,15 K (25 °C) und 1,013 bar.

Im untenstehenden Racket-Code findest du eine Liste mit den ersten 98 Elementen des Periodensystems, definiert mit Symbol, Ordnungszahl und Aggregatzustand unter SATP. Beantworte mithilfe des Codes die folgenden Fragestellungen:

(a) Welche Elemente sind unter SATP flüssig?

(b) Wie viele Elemente sind unter SATP gasförmig?

(c) Wie viel Prozent der Elemente haben unter SATP einen festen Aggregatzustand?

(define aggregatzustand
  (signature
   (enum "gas" "fest" "fluessig")))

(define-record element
  make-element
  (element-symbol string)
  (element-ordnungszahl natural)
  (element-aggregat aggregatzustand)) 

(define periodensystem
  (list
   (make-element "H" 1 "gas")
   (make-element "He" 2 "gas")
   (make-element "Li" 3 "fest")
   (make-element "Be" 4 "fest")
   (make-element "B" 5 "fest")
   (make-element "C" 6 "fest")
   (make-element "N" 7 "gas")
   (make-element "O" 8 "gas")
   (make-element "F" 9 "gas")
   (make-element "Ne" 10 "gas")
   (make-element "Na" 11 "fest")
   (make-element "Mg" 12 "fest")
   (make-element "Al" 13 "fest")
   (make-element "Si" 14 "fest")
   (make-element "P" 15 "fest")
   (make-element "S" 16 "fest")
   (make-element "Cl" 17 "gas")
   (make-element "Ar" 18 "gas")
   (make-element "K" 19 "fest")
   (make-element "Ca" 20 "fest")
   (make-element "Sc" 21 "fest")
   (make-element "Ti" 22 "fest")
   (make-element "V" 23 "fest")
   (make-element "Cr" 24 "fest")
   (make-element "Mn" 25 "fest")
   (make-element "Fe" 26 "fest")
   (make-element "Co" 27 "fest")
   (make-element "Ni" 28 "fest")
   (make-element "Cu" 29 "fest")
   (make-element "Zn" 30 "fest")
   (make-element "Ga" 31 "fest")
   (make-element "Ge" 32 "fest")
   (make-element "As" 33 "fest")
   (make-element "Se" 34 "fest")
   (make-element "Br" 35 "fluessig")
   (make-element "Kr" 36 "gas")
   (make-element "Rb" 37 "fest")
   (make-element "Sr" 38 "fest")
   (make-element "Y" 39 "fest")
   (make-element "Zr" 40 "fest")
   (make-element "Nb" 41 "fest")
   (make-element "Mo" 42 "fest")
   (make-element "Tc" 43 "fest")
   (make-element "Ru" 44 "fest")
   (make-element "Rh" 45 "fest")
   (make-element "Pd" 46 "fest")
   (make-element "Ag" 47 "fest")
   (make-element "Cd" 48 "fest")
   (make-element "In" 49 "fest")
   (make-element "Sn" 50 "fest")
   (make-element "Sb" 51 "fest")
   (make-element "Te" 52 "fest")
   (make-element "I" 53 "fest")
   (make-element "Xe" 54 "gas")
   (make-element "Cs" 55 "fest")
   (make-element "Ba" 56 "fest")
   (make-element "La" 57 "fest")
   (make-element "Ce" 58 "fest")
   (make-element "Pr" 59 "fest")
   (make-element "Nd" 60 "fest")
   (make-element "Pm" 61 "fest")
   (make-element "Sm" 62 "fest")
   (make-element "Eu" 63 "fest")
   (make-element "Gd" 64 "fest")
   (make-element "Tb" 65 "fest")
   (make-element "Dy" 66 "fest")
   (make-element "Ho" 67 "fest")
   (make-element "Er" 68 "fest")
   (make-element "Tm" 69 "fest")
   (make-element "Yb" 70 "fest")
   (make-element "Lu" 71 "fest")
   (make-element "Hf" 72 "fest")
   (make-element "Ta" 73 "fest")
   (make-element "W" 74 "fest")
   (make-element "Re" 75 "fest")
   (make-element "Os" 76 "fest")
   (make-element "Ir" 77 "fest")
   (make-element "Pt" 78 "fest")
   (make-element "Au" 79 "fest")
   (make-element "Hg" 80 "fluessig")
   (make-element "Tl" 81 "fest")
   (make-element "Pb" 82 "fest")
   (make-element "Bi" 83 "fest")
   (make-element "Po" 84 "fest")
   (make-element "At" 85 "fest")
   (make-element "Rn" 86 "gas")
   (make-element "Fr" 87 "fest")
   (make-element "Ra" 88 "fest")
   (make-element "Ac" 89 "fest")
   (make-element "Th" 90 "fest")
   (make-element "Pa" 91 "fest")
   (make-element "U" 92 "fest")
   (make-element "Np" 93 "fest")
   (make-element "Pu" 94 "fest")
   (make-element "Am" 95 "fest")
   (make-element "Cm" 96 "fest")
   (make-element "Bk" 97 "fest")
   (make-element "Cf" 98 "fest")))

Suche

v
8.3.3.4.1.3 Übungen: Die Listenfunktionen filter und fold
Kopieren durch Anklicken

Rückmeldung geben