Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
OneCypher
Anmeldungsdatum: 23.09.2007 Beiträge: 802
|
Verfasst am: 24.09.2007, 10:29 Titel: Function mal anders? |
|
|
Ist wahrscheinlich eine relativ kurze Frage:
Kann ich einer Funktion einen Wert zuweisen?
Ich stelle mir das in folgender Art und Weise vor (was aber nicht funktionier):
Code: | declare function ausgabe as string
ausgabe = "Hallo Welt"
sleep
function ausgabe as string
print ausgabe
end function |
Als Ausgabe sollte dann "Hallo Welt" auf dem bildschirm erscheinen.
Mir ists schon klar das es sinnvoller wäre dafür eine Sub zu bemühen. Aber möchte einfach nur wissen ob dieser Weg irgendwie möglich ist. |
|
Nach oben |
|
 |
csde_rats

Anmeldungsdatum: 07.01.2007 Beiträge: 2292 Wohnort: Zwischen Sessel und Tastatur
|
|
Nach oben |
|
 |
OneCypher
Anmeldungsdatum: 23.09.2007 Beiträge: 802
|
Verfasst am: 24.09.2007, 11:42 Titel: |
|
|
Will aber, dass das so funktioniert *mitmfußganzfestaufstampf*
prinzipiell kann ich einer funktion einen wert zuweisen. Aber ich komm aus der funktion selber nicht an den Wert herran! |
|
Nach oben |
|
 |
OneCypher
Anmeldungsdatum: 23.09.2007 Beiträge: 802
|
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 24.09.2007, 13:04 Titel: |
|
|
also ich sehe das so, dass der LONG-Wert auch in diesem fall nur der rückgabe wert ist... ist aber ne vermutung... _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
csde_rats

Anmeldungsdatum: 07.01.2007 Beiträge: 2292 Wohnort: Zwischen Sessel und Tastatur
|
Verfasst am: 24.09.2007, 13:22 Titel: |
|
|
Dieser Code dort dient dazu, die Windows Lib "Urlmon.dll" dynamisch zu laden, da ist das durchaus möglich, ABER der Wert von "URLDownloadToFile" hat nichts mit dem Rückgabewert zutun! Es ist lediglich die "Adresse" der Funktion im RAM des Rechners  _________________ If hilfreicher_Beitrag then klick(location.here)
Klick |
|
Nach oben |
|
 |
OneCypher
Anmeldungsdatum: 23.09.2007 Beiträge: 802
|
Verfasst am: 24.09.2007, 13:51 Titel: anders gefragt.. |
|
|
Mal anders gefragt:
Ich habe innerhalb der Funktion ihren wert zugewiesen mit ... so.. nun geht die funktion aber weiter und ich möchte auslesen was ich bisher der funktion als rückgabewert übergeben habe.
Das hier funktioniert leider nicht (aber so würd ich mir das vorstellen) :
Code: | declare function ausgabe as string
print ausgabe
function ausgabe as string
function = "Hallo"
function = function & " Welt"
end function |
Statt "function" zur rückgabe zu benutzen könnte man natürlich auch den funktionsnamen selber benutzen (klappt aber genausowenig):
Code: | declare function ausgabe as string
print ausgabe
function ausgabe as string
ausgabe = "Hallo"
ausgabe = ausgabe & " Welt"
end function |
Jetzt könnte man auf die Idee kommen eine zweite string-variable zu dimensionieren deren wert man am ende der funktion übeträgt. Aber genau das möchte ich NICHT! |
|
Nach oben |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 24.09.2007, 14:38 Titel: |
|
|
und warum? _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
 |
OneCypher
Anmeldungsdatum: 23.09.2007 Beiträge: 802
|
Verfasst am: 24.09.2007, 14:40 Titel: |
|
|
Weil ich so vielleicht den wert auslesen könnte den ich einer funktion zuweise. Klar kann man fragen warum.. meine antwort ist: Ich möchte einfach nur die möglichkeiten kennen  |
|
Nach oben |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 24.09.2007, 14:49 Titel: |
|
|
hä? oO also wenn du nur die möglichkeiten kennen willst, diese möglichkeit gibt es einfach nicht, warum willst du es dann krampfhaft haben? gewöhn dir einfach an, ein "DIM result AS STRING : result = bla & blubb & soweiter : RETURN result" und fertig. _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
 |
OneCypher
Anmeldungsdatum: 23.09.2007 Beiträge: 802
|
Verfasst am: 24.09.2007, 15:02 Titel: |
|
|
Es muss aber doch möglich sein einer funktion einen wert auf dem umgekehrten weg zu übergeben..
also statt
Code: | ausgabe "Hallo Welt" |
hätte ich gerne
Code: | ausgabe = "Hallo Welt" |
sorry, wenn ich mich hier grad verkrampfe  |
|
Nach oben |
|
 |
Flo aka kleiner_hacker
Anmeldungsdatum: 23.06.2006 Beiträge: 1210
|
Verfasst am: 24.09.2007, 15:24 Titel: |
|
|
und wieso meinst du dass das möglich sein muss?
du kannst natürlich... (hehehehe)
ausgabe als shared string DIMen
eine sub schreiben, die kontrolliert, ob in ausgabe was drinn steht
wenn ja, print ausgabe
und diese sub als thread starten...
DAS sollte gehen oder? _________________ MFG
Flo
Satoru Iwata: Wer Spaß am Spielen hat, fragt nicht nach Grafik.
zum korrekten Verstaendnis meiner Beitraege ist die regelmaessige Wartung des Ironiedetektors unerlaesslich. |
|
Nach oben |
|
 |
OneCypher
Anmeldungsdatum: 23.09.2007 Beiträge: 802
|
Verfasst am: 24.09.2007, 15:41 Titel: |
|
|
*seufz* .. vielen dank, aber nein, ich möchte auch keinen zusätzlichen thread.
Es gibt anscheinend 3 verschiedene Arten wie man eine funktion mit rückgabewert verlassen kann. "Return", "function" und den deklarierten namen der funktion.
Aber es muss doch eine möglichkeit geben den zugeordneten wert in der funktion auszuwerten..
(Wenn ihr noch mehr wege kennt eine funktion mit rückgabewert zu verlassen, bravo *lol*) |
|
Nach oben |
|
 |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 24.09.2007, 15:45 Titel: |
|
|
Hi OneCypher,
ich weis auch nicht was du da willst?
Möchtest du so etwas? Code: | FUNCTION ausgabe (eingabe AS STRING) AS STRING
ausgabe = eingabe + " Welt"
END FUNCTION
PRINT ausgabe("Hallo")
sleep |
_________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
Nach oben |
|
 |
OneCypher
Anmeldungsdatum: 23.09.2007 Beiträge: 802
|
Verfasst am: 24.09.2007, 15:56 Titel: |
|
|
Oder man stelle sich folgendes vor:
Ich möchte eine funktion die einem pixel einen RGB-Wert übergibt.
Code: | declare function pixel(x as integer,y as integer) as uinteger
pixel(100,100) = RGB(255,255,255)
function pixel(x as integer, y as integer) as uinteger
pset(x,y), pixel
end function |
In dem beispiel möchte ich dem pixel, an der position x100, y100 die farbe "weiss" zuweisen.
.. ich denke.. ich gebs langsam auf. Aber meiner ansicht nach, schön wärs gewesen... |
|
Nach oben |
|
 |
Michael712 aka anfänger, programmierer
Anmeldungsdatum: 26.03.2005 Beiträge: 1593
|
Verfasst am: 24.09.2007, 16:00 Titel: |
|
|
Nenne mir bitte einen Grund, wieso du es auf diese Art machen möchtest, dann kann ich dir vielleicht auch weiterhelfen. _________________
Code: | #include "signatur.bi" |
|
|
Nach oben |
|
 |
OneCypher
Anmeldungsdatum: 23.09.2007 Beiträge: 802
|
Verfasst am: 24.09.2007, 16:07 Titel: |
|
|
Ich könnte mit funktionen so umgehen wie mit variablen. An einigen stellen in verschiedenen programmen bei mir säh das echt sexy aus.
Aber nur mal zum verständnis meiner logik:
Wenn eine funktion etwas ausgeben (per z.B. per RETURN XY) kann, warum sollte man einer funktion nicht auch etwas zuweisen können (und das nicht nur als parameter)?
Am elegantesten wäre es doch, wenn man eine funktion nicht von einer variable unterscheiden könnte. Nur das eine funktion noch mit den eingegebenen werten "arbeiten" kann.
Warum sollten functionen immer nur auf der rechten seite einer gleichung stehen dürfen? |
|
Nach oben |
|
 |
PMedia
Anmeldungsdatum: 14.08.2006 Beiträge: 2847
|
Verfasst am: 24.09.2007, 16:17 Titel: |
|
|
OneCypher hat Folgendes geschrieben: | Oder man stelle sich folgendes vor:
Ich möchte eine funktion die einem pixel einen RGB-Wert übergibt.
Code: | declare function pixel(x as integer,y as integer) as uinteger
pixel(100,100) = RGB(255,255,255)
function pixel(x as integer, y as integer) as uinteger
pset(x,y), pixel
end function |
In dem beispiel möchte ich dem pixel, an der position x100, y100 die farbe "weiss" zuweisen.
.. ich denke.. ich gebs langsam auf. Aber meiner ansicht nach, schön wärs gewesen... |
Code: | declare function pixel(x as uinteger, y as uinteger, farbe as uinteger) as uinteger
Screen 18, 32
pixel(100, 100, RGB(255,255,255) )
function pixel(x as uinteger, y as uinteger, farbe as uinteger) as uinteger
pset(x,y), farbe
end function |
Sinnvoller wäre aber - erfüllt den gleichen Zweck:
Code: |
#define pixel pset
Screen 18, 32
Pixel (100,100), RGB(255,255,255)
|
Ungetestet, sollte aber gehn |
|
Nach oben |
|
 |
csde_rats

Anmeldungsdatum: 07.01.2007 Beiträge: 2292 Wohnort: Zwischen Sessel und Tastatur
|
Verfasst am: 24.09.2007, 16:21 Titel: |
|
|
OneCypher hat Folgendes geschrieben: | Am elegantesten wäre es doch, wenn man eine funktion nicht von einer variable unterscheiden könnte. Nur das eine funktion noch mit den eingegebenen werten "arbeiten" kann.
Warum sollten functionen immer nur auf der rechten seite einer gleichung stehen dürfen? |
Dann geh zu C/C++ bei einigen Compilern soll das mit Klassen gehn.  _________________ If hilfreicher_Beitrag then klick(location.here)
Klick |
|
Nach oben |
|
 |
PMedia
Anmeldungsdatum: 14.08.2006 Beiträge: 2847
|
Verfasst am: 24.09.2007, 16:24 Titel: |
|
|
Ähem, moment mal, mir is was eingefallen.
Das Vorhaben von OneCypher ist prinziepiell möglich, aber wohl nicht mehr ganz wie er es haben will...
Er könnte ein Array in Bildschirmgröße erstellen, und dieses dann stets PSetten, bzw, mit etwas kenntnissen direkt am ScreenPtr ausgeben oder Putten.
Dann wäre es prinzipiell möglich, aber das wären dann wirklich schon Variablen  |
|
Nach oben |
|
 |
|