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:

Übergabe eines Parameters u. Rückgabe von 8 Werten an das HP

 
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
bauigel



Anmeldungsdatum: 09.02.2018
Beiträge: 7
Wohnort: 75196 Remchingen

BeitragVerfasst am: 09.03.2018, 21:53    Titel: Übergabe eines Parameters u. Rückgabe von 8 Werten an das HP Antworten mit Zitat

Hallo,
ich erstelle gerade ein Programm zur Berechnung einer elastisch gebetteten Kreisplatte. Dabei wird ein Parameter an ein Unterprogramm übergeben. Das Unterprogramm berechnet dann mittels Reihen die sogenannten Thomson Funktionen und gibt 8 Werte zurück an das Hauptprogramm.
Wie muss ich die Prozedur mit Declare festlegen und den Parameter (X) über-geben und wie werden die 8 Werte an das Hauptprogramm zurückgegeben?
Vielen Dank für die Hilfe.
S. Wenz
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 09.03.2018, 22:06    Titel: User-Defined Type für "zusammengesetzte" Datenelem Antworten mit Zitat

Hallo,

für Datenelemente, die sich aus mehreren Unterelementen zusammensetzen (z. B. mehrere Koordinaten), kann man einen User-Defined Type (UDT) definieren. Das ist vergleichbar mit einem "struct" in C.

Hier ein Beispiel:
Code:
TYPE ThomsonErgebnis
    X As Double
    Y As Double
    Preis As Double
    Stueckzahl As Integer
    Beschriftung As String
    Farbe As String
    Skonto As Integer
END TYPE

Declare Function BerechneThomson( ByVal x As Integer ) As ThomsonErgebnis

' Pseudozufallszahlengenerator initialisieren
Randomize Timer


Dim eingabe As Integer
Input "Bitte eine Zahl eingeben, z. B. 100. --> x? ", eingabe

Dim ergebnis As ThomsonErgebnis
ergebnis = BerechneThomson( eingabe )

Print "Hier das Ergebnis:"
Print
Print "Thomson.X            = "; ergebnis.X
Print "Thomson.Y            = "; ergebnis.Y
Print "Thomson.Preis        = "; ergebnis.Preis
Print "Thomson.Stueckzahl   = "; ergebnis.Stueckzahl
Print "Thomson.Beschriftung = "; ergebnis.Beschriftung
Print "Thomson.Farbe        = "; ergebnis.Farbe
Print "Thomson.Skonto       = "; ergebnis.Skonto

GetKey
End



Function BerechneThomson( ByVal x As Integer ) As ThomsonErgebnis
    Dim erg As ThomsonErgebnis
    ' Man kann jetzt fuer alle Eigenschaften schreiben:
    ' erg.X = ...
    ' erg.Y = ...
    ' Man kann aber auch etwas Schreibarbeit mit "WITH" sparen:
    With erg
        .X = RND * x
        .Y = RND * x
        .Preis = RND * x * 10
        .Stueckzahl = x
        .Beschriftung = "Ergebnis fuer UserID " & x
        .Farbe = "gruen"
        .Skonto = Int(RND*5)
    End With
    ' Die Nutzung von With wäre auch im Hauptprogramm bei der PRINT-Ausgabe möglich
    Return erg
End Function


Viele Grüße!
Sebastian
_________________

Der Markt regelt das! | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
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