2013-10-24 12:40:31 +02:00
|
|
|
#lang racket
|
2013-10-24 12:56:43 +02:00
|
|
|
|
|
|
|
#|
|
|
|
|
SE 3 Funktional Blatt 1
|
|
|
|
Abgebende: Jim 2martens, 2noack, 0giebel
|
|
|
|
|#
|
|
|
|
|
|
|
|
; 1.1
|
2013-10-25 13:30:26 +02:00
|
|
|
; degrees ist eine positive Zahl in Grad
|
2013-10-24 12:56:43 +02:00
|
|
|
(define (degreeToRadian degrees)
|
|
|
|
(/ (* degrees pi) 180)
|
|
|
|
)
|
2013-10-25 13:30:26 +02:00
|
|
|
; radians ist eine Zahl in Bogenmaß
|
2013-10-24 12:56:43 +02:00
|
|
|
(define (radianToDegree radians)
|
|
|
|
(/ (* radians 180) pi)
|
|
|
|
)
|
|
|
|
|
|
|
|
; 1.2
|
|
|
|
(define (my-acos cosinus)
|
|
|
|
; berechnen von alpha
|
|
|
|
(atan
|
|
|
|
; berechnen des tangens
|
|
|
|
(/
|
|
|
|
; berechnen des Sinus
|
|
|
|
(sqrt (- 1 (sqr cosinus)))
|
|
|
|
cosinus
|
|
|
|
)
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
; 1.3
|
2013-10-25 13:30:26 +02:00
|
|
|
; nauticMiles ist eine positive Zahl in nautischen Meilen
|
2013-10-24 12:56:43 +02:00
|
|
|
(define (nmToKM nauticMiles)
|
|
|
|
(* nauticMiles 1.852)
|
2013-10-24 14:22:48 +02:00
|
|
|
)
|
|
|
|
|
|
|
|
; 2.1
|
2013-10-25 13:30:26 +02:00
|
|
|
; breiteA laengeA breiteB laengeB alle in Grad angegeben
|
|
|
|
; westliche Länge und südliche Breite negativ angeben
|
2013-10-24 14:22:48 +02:00
|
|
|
(define (distanzAB breiteA laengeA breiteB laengeB)
|
|
|
|
; Parameter in Radiant umrechnen
|
|
|
|
(define breiteARad (degreeToRadian breiteA))
|
|
|
|
(define breiteBRad (degreeToRadian breiteB))
|
|
|
|
; Differenz geographische Längen
|
|
|
|
(define distanzLaenge
|
|
|
|
(- laengeB laengeA)
|
|
|
|
)
|
|
|
|
; Differenz in Radiant umrechnen
|
|
|
|
(define distanzLaengeRad (degreeToRadian distanzLaenge))
|
|
|
|
(define cosDG
|
|
|
|
; ausrechnen von cos dG im Bogenmaß
|
|
|
|
(+ (*
|
|
|
|
(sin breiteARad)
|
|
|
|
(sin breiteBRad)
|
|
|
|
)
|
|
|
|
(* (cos breiteARad)
|
|
|
|
(cos breiteBRad)
|
|
|
|
(cos distanzLaengeRad)
|
|
|
|
)
|
|
|
|
)
|
|
|
|
)
|
2013-10-25 13:30:26 +02:00
|
|
|
(define dG (acos cosDG))
|
2013-10-24 14:22:48 +02:00
|
|
|
; umrechen in Kilometer
|
|
|
|
(nmToKM
|
|
|
|
; ermitteln der Entfernung in Seemeilen
|
|
|
|
(* 60
|
|
|
|
; umwandeln in Grad
|
2013-10-25 13:30:26 +02:00
|
|
|
(radianToDegree dG)
|
2013-10-24 14:22:48 +02:00
|
|
|
)
|
|
|
|
)
|
|
|
|
)
|
2013-10-25 13:30:26 +02:00
|
|
|
|
|
|
|
; ausrechnen der Entfernung von Oslo und Hongkong
|
|
|
|
(display "Entfernung Oslo - Hongkong (in km): ")
|
|
|
|
(distanzAB 59.93 10.75 22.2 114.1)
|
|
|
|
(display "Entfernung San Francisco - Honolulu (in km): ")
|
|
|
|
(distanzAB 37.75 -122.45 21.32 -157.83)
|
|
|
|
(display "Entfernung Osterinsel - Lima (in km): ")
|
|
|
|
(distanzAB -27.1 -109.4 -12.1 -77.05)
|