Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Turrican
Anmeldungsdatum: 12.12.2015 Beiträge: 5
|
Verfasst am: 02.01.2016, 11:52 Titel: FUNCTION mit Variablen |
|
|
Vermutlich für die Meisten ein recht simples Problem, welches ich trotz umfangreicher Recherche nicht selbst lösen konnte.
Wie stelle ich es an, dass eine Funktion per Variable Zahlen übergeben werden, die Funktion mit diesen Zahlen rechnet und das Ergebnis als Zahl (SINGLE) zurückliefert?
Anbei ein einfaches Beispiel (Kompilierungsvorgang bricht mit funktion4.bas(9) error 1: Argument count mismatch in '? rechnung' ab).
Ohne Variablem funktioniert es einwandfrei.
Vielen Dank.
Code: | DECLARE FUNCTION rechnung (zahl1 AS SINGLE, zahl2 AS SINGLE) AS SINGLE
DIM AS SINGLE zahl1, zahl2
INPUT "1. Zahl", zahl1
INPUT "2. Zahl", zahl2
?
? "Das Ergnis der Addition:"
? rechnung
FUNCTION rechnung (zahl1 AS SINGLE, zahl2 AS SINGLE) AS SINGLE
RETURN zahl1 + zahl2
END FUNCTION |
|
|
Nach oben |
|
|
Muttonhead
Anmeldungsdatum: 26.08.2008 Beiträge: 562 Wohnort: Jüterbog
|
Verfasst am: 02.01.2016, 12:09 Titel: |
|
|
Zitat: | Wie stelle ich es an, dass eine Funktion per Variable Zahlen übergeben werden, die Funktion mit diesen Zahlen rechnet und das Ergebnis als Zahl (SINGLE) zurückliefert? |
... indem du genau das (von dir) Zitierte machst...
der Funktion die Variablen übergeben, denn das machst du nicht!
Siehe dir mal die Zeile an wo dein Funktion aufgerufen wird, und die Klammern nicht vergessen.
Mutton |
|
Nach oben |
|
|
Turrican
Anmeldungsdatum: 12.12.2015 Beiträge: 5
|
Verfasst am: 02.01.2016, 12:25 Titel: |
|
|
Muttonhead hat Folgendes geschrieben: | ... indem du genau das (von dir) Zitierte machst...
der Funktion die Variablen übergeben, denn das machst du nicht! |
Ich dachte, genau das würde ich mit den Parametern (zahl1 AS SINGLE, zahl2 AS SINGLE) tun.
Ich finde die genaue Fehlerursache leider nicht. |
|
Nach oben |
|
|
Muttonhead
Anmeldungsdatum: 26.08.2008 Beiträge: 562 Wohnort: Jüterbog
|
Verfasst am: 02.01.2016, 12:38 Titel: |
|
|
Zitat: | Ich dachte, genau das würde ich mit den Parametern (zahl1 AS SINGLE, zahl2 AS SINGLE) tun.
Ich finde die genaue Fehlerursache leider nicht. |
Ich will jetzt nicht näher auf Funktionsdeklaration und Funktionsdefinition eingehen, da red ich mich nur um Kopf und Kragen...
Wichtig ist das du im Prinzip mit alledem folgendes vereinbart hast: die Funktion hat bei Aufruf(!!) zwei Argumente ( oder Parameter?, das hat jetzt bestimmt Folgen ):
Code: | ? rechnung (zahl1 , zahl2)
sleep |
Mutton |
|
Nach oben |
|
|
Turrican
Anmeldungsdatum: 12.12.2015 Beiträge: 5
|
Verfasst am: 02.01.2016, 12:48 Titel: |
|
|
Genau das hatte ich noch nicht probiert.
Ich glaube nun habe ich es endgültig verstanden.
Ich danke Dir vielmals. |
|
Nach oben |
|
|
nemored
Anmeldungsdatum: 22.02.2007 Beiträge: 4594 Wohnort: ~/
|
Verfasst am: 02.01.2016, 15:34 Titel: |
|
|
Dazu vielleicht noch die Information, dass die Variablennamen im Hauptprogramm nicht mit den Variablennamen im Unterprogramm übereinstimmen müssen - daher weiß das Unterprogramm nicht von allein, mit welchen Werten es rechnen soll, wenn sie ihm nicht übergeben werden.
Vielleicht ist das noch eine gute Wissens-Ergänzung:
http://users.freebasic-portal.de/nemored/buchBeginner/12_prozeduren.htm _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
|
|