BlackBoard » Design, Programmierung & Entwicklung » Programmieren » [Funktional]Quelltexte in Ordnung? » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen [Funktional]Quelltexte in Ordnung?
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
[DS]-=Pencil=- [DS]-=Pencil=- ist männlich
Senior Member


images/avatars/avatar-712.jpg

Dabei seit: 20.09.2002
Beiträge: 446
Herkunft: Berlin

[Funktional]Quelltexte in Ordnung?       Zum Anfang der Seite springen

Hy..

Ich habe ein paar Quelltexte für Gofer geschrieben(funktionale Programmierung) und leider habe ich ein paar Probleme und vielleicht könnt ihr euch ja nebenbei die Sachen mal angucken ob ihr sie für richtig empfindet...

Wir sollen immer in den 3 verschiedenen Versionen den Quellcode bringen... :/

Die Grundrechenarten geben einen Fehler von sich, das eine show-Funktion fehlt (?)

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
-- Grundrechenarten
-- Addition
-- funktional mit Guards
plus1 :: (Int,Int) -> Int
plus1(x,y) |otherwise = x+y

-- Imperativ
plus2 :: (Int,Int) -> Int
plus2(x,y) = x+y

-- funktional ohne Guards
plus3 :: (Int,Int) -> Int
plus3(x,y) = x+y



-- Subtraktion
-- funktional mit Guards
minus1 :: (Int,Int) -> Int
minus1(x,y) |otherwise = x-y

-- Imperativ
minus2 :: (Int,Int) -> Int
minus2(x,y) = x-y

-- funktional ohne Guards
minus3 :: (Int,Int) -> Int
minus3(x,y) = x-y


-- Multiplikation
-- funktional mit Guards
mal1 :: (Int,Int) -> Int
mal1(x,y) |otherwise = x*y

-- Imperativ
mal2 :: (Int,Int) -> Int
mal2(x,y) = x*y

-- funktional ohne Guards
mal3 :: (Int,Int) -> Int
mal3(x,y) = x*y


-- Division
-- funktional mit Guards
durch1 :: (Int,Int) -> Int
durch1(x,y) |otherwise = x/y

-- Imperativ
durch2 :: (Int,Int) -> Int
durch2(x,y) = x/y

-- funktional ohne Guards
durch3 :: (Int,Int) -> Int
durch3(x,y) = x/y


Sind die folgenden Partialsummen-Codes richtig(?)
das erste soll eine Addition einer Zahl darstellen,
das nächste soll die Summe der ersten n geraden Zahlen darstellen und
das letzte die summe der quadrate der ersten n zahlen..

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
-- Partialsumme

-- Funktional mit Guards
part_plus1 :: Int -> Int
part_plus1(n) | n<=1 
	 | otherwise = part1(n-1)+n

-- Imperativ
part_plus2 :: Int -> Int
part_plus2(n) = if n>1 then part2(n-1)+n

-- Funktional ohne Guards
part_plus3 :: Int -> Int
part_plus3(n) = n>1 = part3(n-1)+n


-- Funktional mit Guards
part_gerade1 :: Int -> Int
part_gerade1(n) | n<=1 
	 | otherwise = part1(n-1)+n*2

-- Imperativ
part_gerade2 :: Int -> Int
part_gerade2(n) = if n>1 then part2(n-1)+n*2

-- Funktional ohne Guards
part_gerade3 :: Int -> Int
part_gerade3(n) = n>1 = part3(n-1)+n*2



-- Funktional mit Guards
part_quadrat1 :: Int -> Int
part_quadrat1(n) | n<=1 
	 | otherwise = part1(n-1)+n*n

-- Imperativ
part_quadrat2 :: Int -> Int
part_quadrat2(n) = if n>1 then part2(n-1)+n*n

-- Funktional ohne Guards
part_quadrat3 :: Int -> Int
part_quadrat3(n) = n>1 = part3(n-1)+n*n



Ist der Quellcode der Potenzfunktion korrekt?

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
-- Potenzfunktion

-- Funktional mit Guards
potenz1 :: Int -> Int
potenz1(n) | n<=1 
	 | otherwise = part1(n-1)*n*n

-- Imperativ
potenz2 :: Int -> Int
potenz2(n) = if n>1 then part2(n-1)*n*n

-- Funktional ohne Guards
potenz3 :: Int -> Int
potenz3(n) = n>1 = part3(n-1)*n*n


Kann man das für den größten gemeinsamen Teiler so realisieren?:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
-- größter gemeinsamer Teiler

-- Funktional mit Guards
ggt1 :: (Int,Int) -> Int
ggt1(m,n) | m>n = ggt1(m-n,n) 
	  | m<n = ggt1(m,n-m)
	 | otherwise = ggt(m,n) = m

-- Imperativ
ggt2 :: (Int,Int) -> Int
ggt2(m, n) = if m>n then ggt2=ggt2(m-n,n)
          else if m<n then ggt2 = ggt2(m,n-m)
	  else ggt2(m,n) = m

-- Funktional ohne Guards
ggt3 :: (Int,Int) -> Int
ggt3(m,n) = m>n = ggt3(m-n,n)
ggt3(m,n) = m<n = ggt3(m,n-m)
ggt3(m,n) = m=n = ggt3(m,n)


Nebenbei müssen wir noch eine Aufgabe zu Binomialkoeffizienten machen..
Wisst ihr wie man das anstellt?

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
                      n!
B(n,k) =  ---------------
                k! * (n-k)!

Weiteres zum Problem:

Falls 0 <= k <= n sonst B(n,k) = 0
Beachte 0! = 1


Ich wäre euch wirklich sehr dankbar für Rückantworten

Hope You Help

traurig

__________________
[DS]-=Pencil=-
---------------------------
Eleminate the Enemy | Staatsfeind
Destroy Facism
www.rtcw-prison.net - www.darksoldiers.de
----------------------------
10.02.2004 14:29 [DS]-=Pencil=- ist offline E-Mail an [DS]-=Pencil=- senden Homepage von [DS]-=Pencil=- Beiträge von [DS]-=Pencil=- suchen
Champus Champus ist männlich
BlackBoarder


images/avatars/avatar-2272.png

Dabei seit: 24.03.2002
Beiträge: 1.649
Herkunft: Karlsruhe

      Zum Anfang der Seite springen

[offtopic]
Alta ?!?!!
Was ist goofy oder wie die heisst denn für eine PRogrammiersprache? Für mich ales Hobbycoder (und nicht nur eben mal so ein bisschen html oder so) sieht die Sprache sehr verwirrend auf, da sie ganz anders aufgebaut ist als z.B. C o.ä.! Wofür wird so eine Komplexe Sprache denn erfordert? Und was ist mit "Funktional" gemeint? Sorry das ich frage aber es interessiert mich Augenzwinkern
[/offtopic]

Kein Plan zur Frage, sry

__________________
CorvusCorone -> Champus
10.02.2004 15:23 Champus ist offline Homepage von Champus Beiträge von Champus suchen
Bogus Bogus ist männlich
Unbedeutend


images/avatars/avatar-1140.jpg

Dabei seit: 23.07.2003
Beiträge: 468
Herkunft: ausm Dorf

      Zum Anfang der Seite springen

ist klar das der sagt das die show funktion fehlt. du hast ja auch überhaupt keine showfunktion eingegeben. ohne show kann der dir auch nichts anzeigen. ist ähnluch wie bei anderen programiersprachen der echo befehl, nur so als tipp, also ich glaub mal das das daran liegt... wird so geschreiben show "hallo du Ei Augenzwinkern "

also, ist wirklich nur se vermutung!!! großes Grinsen

@ .r|mda³
ich kenn sie auch nicht so wirklich, aber soviel hab ich ducrh googeln rausgefunden. Gofer ist eine funktionale, Haskell ähnliche Programmiersprache

Zitat:
von ne Seite... mom http://www.drweb.de/lexikon/gopher.shtml <---Gopher ist in gewisser Weise ein Vorläufer des WWW. Verschiedene Dokumente können von speziellen Gopher-Servern abgeholt werden, die auch untereinander verlinkt sein können. Die Bezeichnung Gopher (Sprich: Gofer) entstammt einer Verballhornung der Wörter "go for it", was so viel heißt wie "Hol es". Zwar existieren noch einige Gopher-Server, deren Bedeutung jedoch tendiert gegen Null. Der Dienst wurde praktisch komplett vom sehr viel mächtigeren und einfacher zu bedienenden WWW verdrängt.--->


__________________
man was hatte ich ne dämliche signatur oO

Dieser Beitrag wurde 3 mal editiert, zum letzten Mal von Bogus: 10.02.2004 16:55.

10.02.2004 16:49 Bogus ist offline E-Mail an Bogus senden Homepage von Bogus Beiträge von Bogus suchen
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
BlackBoard » Design, Programmierung & Entwicklung » Programmieren » [Funktional]Quelltexte in Ordnung?

Forensoftware: Burning Board 2.3.6, entwickelt von WoltLab GmbH