Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

FUNCTION mit Variablen

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Turrican



Anmeldungsdatum: 12.12.2015
Beiträge: 5

BeitragVerfasst am: 02.01.2016, 11:52    Titel: FUNCTION mit Variablen Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Muttonhead



Anmeldungsdatum: 26.08.2008
Beiträge: 562
Wohnort: Jüterbog

BeitragVerfasst am: 02.01.2016, 12:09    Titel: Antworten mit Zitat

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... zwinkern
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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Turrican



Anmeldungsdatum: 12.12.2015
Beiträge: 5

BeitragVerfasst am: 02.01.2016, 12:25    Titel: Antworten mit Zitat

Muttonhead hat Folgendes geschrieben:
... indem du genau das (von dir) Zitierte machst... zwinkern
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
Benutzer-Profile anzeigen Private Nachricht senden
Muttonhead



Anmeldungsdatum: 26.08.2008
Beiträge: 562
Wohnort: Jüterbog

BeitragVerfasst am: 02.01.2016, 12:38    Titel: Antworten mit Zitat

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 lächeln ):

Code:
? rechnung (zahl1 , zahl2)
sleep


Mutton
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Turrican



Anmeldungsdatum: 12.12.2015
Beiträge: 5

BeitragVerfasst am: 02.01.2016, 12:48    Titel: Antworten mit Zitat

Genau das hatte ich noch nicht probiert.

Ich glaube nun habe ich es endgültig verstanden.

Ich danke Dir vielmals. Daumen rauf!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4594
Wohnort: ~/

BeitragVerfasst am: 02.01.2016, 15:34    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz