Frage zu Funktion (funktioniert nicht ;)

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Fafnir

Betreff: Frage zu Funktion (funktioniert nicht ;)

BeitragDo, März 24, 2005 15:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo.

Ich arbeite gerade mit einem Arbeitskollegen an einer Aufgabe, die wir kurz programmtechnisch durchgehen wollten, uns aber kein Ergebnis liefert. Es geht darum, vier Zahlen zu vergleichen und die kleinste davon auszugeben. Die Aufgabe gibt folgenden Beispielcode vor:

vergleich(vergleich(a,b),vergleich(c,d))

Dazu haben wir folgenden Code geschtrieben:

BlitzBasic: [AUSKLAPPEN]
Dim ergebnis(2)
Global schritt

w = Input(\"Zahl1: \")
x = Input(\"Zahl2: \")
y = Input(\"Zahl3: \")
z = Input(\"Zahl4: \")

f(f(w,x),f(y,z))

Print : Print \"Die niedrigste Zahl aus der Reihe ist: \"+ergebnis(schritt)


Function f(a,b)
If a<b Then ergebnis(schritt)=a Else ergebnis(schritt)=b
If schritt < 2 Then schritt=schritt+1
End Function



Aber irgendwie ist das Ergebnis immer 0... Hat jemand eine Ahnung an was das liegen könnte? Kann die Funktion so evtl gar nicht ausgeführt werden? Daran, daß wir verschiedene Variablen nicht als global definiert haben kann es nicht liegen (oder?), denn auch als globale Variablen hat es nicht geklappt. Vielen Dank schonmal für Hilfen!!!!

Edit: hm ist in dem Code irgendwo der Wurm drin? Ich glaube das ist nicht ganz ausgereift... Die Frage zu der Aufgabe lautet: "Welches Ergebnis bringt folgende Funktion" (der Mann ist Schwede und das ganze ist auch auf schwedisch - furchtbar für mich Razz )

Ich glaube, die Frage ist vor allem, ist die Antwort "die kleinste aller Zahlen" oder "geht gar nicht"?
Werbung:
User posted image
Es sind User posted image Benutzer im Chat

Jolinah

BeitragDo, März 24, 2005 15:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Edit: Oder hab ich dich jetzt falsch verstanden und du darfst keine Rückgabewerte benutzen?

Code: [AUSKLAPPEN]

Function f(a,b)
  if a < b then
    return a
  else
    return b
  endif
End Function

print "Die kleinste Zahl ist: " + f(f(1,2), f(3,4))



Mit Rückgabewerten lässt sich das viel einfacher lösen Wink

f(1,2) gibt dann automatisch 1 zurück,
f(3,4) gibt 3 zurück,
raus kommt f(1,3) und das gibt 1 zurück

Fafnir

BeitragDo, März 24, 2005 15:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Super, funktioniert, danke!!!!!

Ich dachte auch an Return (zuerst), mir ist aber keine klare Lösung eingefallen, aber von den zweien die wir probiert hatten war meine letzte doch die etwas elegantere (hat zwar nicht funktioniert aber egal Rolling Eyes Laughing )

Danke nochmal! Very Happy
Werbung:
User posted image
Es sind User posted image Benutzer im Chat
 

David

BeitragDo, März 24, 2005 16:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

BlitzBasic: [AUSKLAPPEN]

Global schritt


Wenn du "schritt" den Wert 0 oder 1 zuweist, dann klappt dein obiger Code auch.
Obwohl ein Dimensionsfeld nicht wirklich sinnvoll ist, in deinem Fall! (Wurde ja aber schon gesagt)

grüße

Vinz

Betreff: .

BeitragDo, März 24, 2005 17:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Da ich immer versuche alles mit If abfragen zu losen hier meine variante:

Code: [AUSKLAPPEN]
Graphics 640,480, 2
SetBuffer BackBuffer()
Cls

a=Input("Zahl1: ")
b=Input("Zahl2: ")
c=Input("Zahl3: ")
d=Input("Zahl4: ")

If a<b And a<c And a<d Then Text 0,200, "kleinste Zahl ist: "+a+"  /Zahl1"
If b<a And b<c And b<d Then Text 0,200, "kleinste Zahl ist: "+b+"  /Zahl2"
If c<b And c<a And c<d Then Text 0,200, "kleinste Zahl ist: "+c+"  /Zahl3"
If d<b And d<c And d<a Then Text 0,200, "kleinste Zahl ist: "+d+"  /Zahl4"

Repeat

Until KeyHit(1)
End

Artemis

Betreff: Re: Frage zu Funktion (funktioniert nicht ;)

BeitragDo, März 24, 2005 17:20
Antworten mit Zitat
Benutzer-Profile anzeigen
@Vinz
Fafnir hat Folgendes geschrieben:
Die Aufgabe gibt folgenden Beispielcode vor:

vergleich(vergleich(a,b),vergleich(c,d))

Das wäre mit deinem nicht erfüllt!!
Troztdem lustig!

Vinz

Betreff: Re: Frage zu Funktion (funktioniert nicht ;)

BeitragDo, März 24, 2005 17:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Fafnir hat Folgendes geschrieben:
Die Aufgabe gibt folgenden Beispielcode vor:

vergleich(vergleich(a,b),vergleich(c,d))

So ist das gemeint, dachte das waere wirklich nur ein "Beispielcode".

Artemis

BeitragDo, März 24, 2005 17:27
Antworten mit Zitat
Benutzer-Profile anzeigen
kan auch sein!! *kein ahnung hab*

Alfadur

Betreff: Re: .

BeitragDo, März 24, 2005 17:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Vinz hat Folgendes geschrieben:
Da ich immer versuche alles mit If abfragen zu losen hier meine variante:

Code: [AUSKLAPPEN]
Graphics 640,480, 2
SetBuffer BackBuffer()
Cls

a=Input("Zahl1: ")
b=Input("Zahl2: ")
c=Input("Zahl3: ")
d=Input("Zahl4: ")

If a<b And a<c And a<d Then Text 0,200, "kleinste Zahl ist: "+a+"  /Zahl1"
If b<a And b<c And b<d Then Text 0,200, "kleinste Zahl ist: "+b+"  /Zahl2"
If c<b And c<a And c<d Then Text 0,200, "kleinste Zahl ist: "+c+"  /Zahl3"
If d<b And d<c And d<a Then Text 0,200, "kleinste Zahl ist: "+d+"  /Zahl4"

Repeat

Until KeyHit(1)
End



vinz, du solltest dir auf jedenfall nen anderen programmierstil zulegen, bzw anderer herangehensweisen überlegen, wenn du vorhast weiter SO zu programmieren dann wird das irgendwann nix mehr. was würdest du tun wären es nicht 4 sondern 10 oder 100 zahlen??
A Cray is the only computer that runs an endless loop in less than four hours.

Waveblue

BeitragDo, März 24, 2005 18:37
Antworten mit Zitat
Benutzer-Profile anzeigen
habs auch mal probiert!
Is eigentlich übelst einfach:
BlitzBasic: [AUSKLAPPEN]
a=Input(\"zahl1\")
b=Input(\"zahl2\")
c=Input(\"zahl3\")
d=Input(\"zahl4\")

Print vergleich(vergleich(a,b),vergleich(c,d))




Function vergleich(zahl1,zahl2)
If zahl1<zahl2 Then Return zahl1 Else Return zahl2
End Function
This is 10% luck
20% skill
15% concentrated power of will
5% pleasure, 50% pain
and 100% reason to remember the name

Fafnir

BeitragDo, März 24, 2005 20:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja, peinlich für mich, ich weiß Embarassed

Deine Lösung, Waveblue, entspricht der von Jolinah. Der Code ist aber schön effizient und klein, ganz anders als mein Versuch Sad

Very Happy
Werbung:
User posted image
Es sind User posted image Benutzer im Chat

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group