www.jammni.de

Logo - Kleiner Drache
Login
Username:

Passwort:

Daten merken
Auto-Login
Registrieren
 
Online
niemand
 
Forumsuche
Suche nach:

Logo - DracheHaskell-Forum

vorherige Seite 1 2 3 nächste Seite

Icegirl

Gepostet:
22.08.2005 20:31

   
mehr oder weniger habe ich an den aufgaben herum exprementiert, weiß nur nicht, ob die nun richtig sind ;)
weiß schon, wie rekursion funktioniert, aber irgendwie ist es doof... aber nun gut, muss mich wohl dadurch wälzen. auf jeden fall danke für deine hilfe ^^' wenn ich weitere fragen habe, weiß ich, dass ich hier gut dran bin und das heißt ich werde öfters wohl fragen... hoffe dir macht das nichts aus? Smilie
Zum Seitenanfang    
 
Jacke

Gepostet:
23.08.2005 09:20

   
nö das stört mich nichSmilie ich helf dir doch gerne
du aufgaben sind richtig wenn sie funktionieren...bei Programmieren ist es immer so das viele wege zum Ziel führen...Smilie

gruß jacke
Zum Seitenanfang    
 
Icegirl

Gepostet:
25.08.2005 08:58

   
So, vorher kannst du so gut Haskell? habe ich keine Lust mehr auf sowas. Find es so krass ätzend... Smilie
Habe wieder neue Aufgaben...

Alles Rekursion -.-"

Eine Funktion gibtNtesElement soll zu einer beliebigen Liste das n-te Element liefer ( 0 < n < laenge -1)
Bsp: gibtNtesElement "Hello World" 4 (Ergebnis o)

Schreibe eine Funktion zaehlen und fett enthalten, die beide eine Liste und ein Element enthalten. zaehlen liefert die Häufigkeit, wie oft das Element in der Liste enthalten ist, enthalten liefert True ,wenn das Element mindestens einmal in der Liste enthalten ist.
Bsp: enthalten [2,5,7,9] 4 (Ergebnis: False)
zaehlen "Hello World" '1' (Ergebnis: 3)

Schreiben Sie Funktionen musterA, musterB und musterC, die folgende Sternchenmuster auf dem Bildschrim ausgeben. Dabei sollte die Höhe der Figur frei wählbar sein.
(a) musterA 9

*********
********
*******
******
*****
****
***
**
*

(b) musterB

*********
-*******
--*****
---***
----*

(die Bindestriche sollen Leerzeichen darstellen)

(c)

----*
---***
--*****
-*******
*********
-*******
--*****
---***
----*

(die Bindestriche sollen Leerzeichen darstellen)


So wäre halt nett, wenn du mir wieder helfen könntest, wo du kannst und weiteres werd ich wieder herum exprementieren Smilie Danke schön
Zum Seitenanfang    
 
Jacke

Gepostet:
25.08.2005 14:30

   
also ich mach erstmal die erste ich beantworte die anderen fragen aber noch nachher^^

also gib n -tes Element sieht so aus
da wir den Typ der Eingabeliste nicht genau kennen nehmen wir einen generischen typen...wir können das mit den typen aber auch weglassen das ist Haskell nämlich egal :-)
Listen macht man übrigens mit [] also ne Liste von Ints sieht dann so aus [Int] und als Eingabe dann so (1,2,3,4)
die Liste ist hier also kopf:rest...kopf ist das erste Element der Liste und rest der Rest der Liste
der : Operator fügt dann beides zusammen

gib:: ([a],Int)->Int   ---die zeile ist nicht so wichtig...:-) aber man gibt sie mit an
gib (kopf:rest, 0)=kopf
gib (kopf:rest, n)=gib (rest, n-1)


so das dürfte eigentlich funktionieren...:-)
ich werde ab hier den kopf der Liste immer x nennen und den rest xs...ist kürzer

ok die zweite aufgabe ist schon etwas Schwieriger:
also wir hören auf wenn wir die ganze liste durchlaufen haben...die Striche müssen eingerückt sein sonst funktionierts nicht

enthalten::([a],a)->Bool
enthalten [] b=False
enthalten x:xs b
|x==b =True
|otherwise enthalten(x,b)



ich hatte haskell im ersten Semester an der Uni...bin jetzt übrigens schon im 4ten

gruß jackeSmilie
Zum Seitenanfang    
 
Jacke

Gepostet:
25.08.2005 14:47

   
zaehlen::([a],a)->Int
zaehlen [] b=0
zaehlen x:xs b
|x==b =zaehlen(xs,b)+1 ---nich vergessen hier einzurücken
|otherwise =zaehlen(xs,b) ---hier auch



hmm ich bin mir nicht ganz sicher ob die musteraufgaben so funktioniert ich mach das mal heute abend...
Zum Seitenanfang    
 
Icegirl

Gepostet:
26.08.2005 11:22

   
funktioniert irgendwie alles nicht Smilie
muss mir später noch mal angucken, aber ein semester haskell und trotzdem so gut? mache jetzt gerade haskell und irgendwie verstehe ich alles nicht mehr.. ist informatik-studium eigentlich so leicht? Smilie
Zum Seitenanfang    
 
Jacke

Gepostet:
27.08.2005 08:48

   
nein das studium ist wirklich sehr schwer...ich bin froh das ich nach dem nächsten semester alle scheine zusammen habe und dann meinen bachelor habe...ich werde am sonntag alles noch mal in ruhe durchkucken...ich muß nämlich heute auf ne familienfeier...
in der uni bringen sie einen sehr gut programmieren bei...auch in einen semester ^^
#gruß jacke
Zum Seitenanfang    
 
Icegirl

Gepostet:
27.08.2005 09:08

   
danke für deine mühe, hab gestern auch mal ran versucht und exprementiert. klappt nicht so gut und sehe eigentlich so aus -> Smilie
wünsche dir aber viel spaß bei deiner fam.feier Smilie
bis bald dann
ice
Zum Seitenanfang    
 
Jacke

Gepostet:
28.08.2005 18:26

   
das ist zählen

zaehlen ([],b)=0
zaehlen (x:xs,b)
|x==b =zaehlen(xs,b)+1
|otherwise =zaehlen(xs,b)


eingabe:
Main> zaehlen ([1,2,3,4],3)
1


du mußt in dem quelltext scrollen


gib (kopf:rest) 0=kopf
gib (kopf:rest) n=gib (rest, n-1)


aufruf
Main> gib ([1,2,3,4] 3)
4

so das hier ist enthalten...du mußt auch wieder im code scrollen

enthalten [] b= False
enthalten (x:xs) b
|x==b = True
|otherwise = enthalten xs b



Main> enthalten "hallo" 'l'
True




Zum Seitenanfang    
 
Jacke

Gepostet:
28.08.2005 21:16

   
import IO
umbruch ="\n"
muster::Int->String
muster 0= ""
muster n=(nsternchen n)++umbruch ++ muster(n-1)
where
nsternchen 1="*"
nsternchen n='*':nsternchen(n-1)
musterA ::Int->IO()
musterA x=putStr (muster x)







so das ist musterA
Zum Seitenanfang    
 

vorherige Seite 1 2 3 nächste Seite