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:

Unterprogramme

 
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
ALWIM



Anmeldungsdatum: 08.08.2006
Beiträge: 1037
Wohnort: Niederbayern

BeitragVerfasst am: 01.09.2015, 00:42    Titel: Unterprogramme Antworten mit Zitat

Mir ist aufgefallen dass Freebasic bei Unterprogrammen folgendes nicht schluckt:

Code:
DECLARE SUB Test (Testzahl(Zufall) AS STRING)

SUB Test (Testzahl(Zufall) AS STRING)

' Verarbeitung Testzahl(Zufall)

END SUB

kann man da irgendwas machen, dass ich die Variable Test(Zufall) im Unterprogramm verwenden kann? Die Variable Test(Zufall) soll, wenn möglich, dem Unterprogramm mit übergeben werden. Mir fällt auf die schnelle, keine geeignete Lösung ein? Forensuche hat nichts ergeben.

Gruß
ALWIM
_________________
SHELL SHUTDOWN -s -t 05


Zuletzt bearbeitet von ALWIM am 01.09.2015, 02:52, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



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

BeitragVerfasst am: 01.09.2015, 01:00    Titel: Antworten mit Zitat

Code:
RANDOMIZE
DECLARE SUB Test(txt AS STRING)
DIM AS STRING Testzahl(9) = {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j"}
DIM AS INTEGER zufall = INT(RND*10)
Test(Testzahl(zufall))

SUB Test(txt AS STRING)
  PRINT txt
END SUB

Allerdings bin ich mir nicht ganz darüber im Klaren, warum ein String Testzahl genannt wird.
_________________
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
ALWIM



Anmeldungsdatum: 08.08.2006
Beiträge: 1037
Wohnort: Niederbayern

BeitragVerfasst am: 01.09.2015, 02:41    Titel: Antworten mit Zitat

nemored hat Folgendes geschrieben:
Code:
RANDOMIZE
DECLARE SUB Test(txt AS STRING)
DIM AS STRING Testzahl(9) = {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j"}
DIM AS INTEGER zufall = INT(RND*10)
Test(Testzahl(zufall))

SUB Test(txt AS STRING)
  PRINT txt
END SUB

Allerdings bin ich mir nicht ganz darüber im Klaren, warum ein String Testzahl genannt wird.

Das mit "Testzahl" war nur ein Beispiel! In Wirklichkeit habe ich andere Namen.
mit dem Kopf durch die Mauer wollen Ich glaube jetzt verstehe ich, worauf man hinaus will! Eigentlich hätte ich da selber auch drauf kommen können? lächeln Ob ich mit meiner Vermutung recht habe, wird sich noch zeigen! Tests folgen später!!!

Vielen herzlichen Dank für die Hilfe!

Gruß
ALWIM
_________________
SHELL SHUTDOWN -s -t 05
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
grindstone



Anmeldungsdatum: 03.10.2010
Beiträge: 1211
Wohnort: Ruhrpott

BeitragVerfasst am: 01.09.2015, 02:44    Titel: Antworten mit Zitat

Was meinst du mit "nicht schlucken"? Wenn du einen Compilerfehler bekommst, liegt es an einer fehlenden Klammer in der Zeile
Code:
SUB Test (Testzahl(Zufall) AS STRING
Richtig muß es heißen:
Code:
SUB Test (Testzahl(Zufall) AS STRING)


Gruß
grindstone
_________________
For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
ALWIM



Anmeldungsdatum: 08.08.2006
Beiträge: 1037
Wohnort: Niederbayern

BeitragVerfasst am: 01.09.2015, 02:49    Titel: Antworten mit Zitat

grindstone hat Folgendes geschrieben:
Was meinst du mit "nicht schlucken"? Wenn du einen Compilerfehler bekommst, liegt es an einer fehlenden Klammer in der Zeile
Code:
SUB Test (Testzahl(Zufall) AS STRING
Richtig muß es heißen:
Code:
SUB Test (Testzahl(Zufall) AS STRING)


Gruß
grindstone
An der Klammer liegt es nicht, denn die ist im Programm vorhanden! Compilerfehler ist richtig!

Zitat:
Illegal specification, at parameter 1

_________________
SHELL SHUTDOWN -s -t 05
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Haubitze



Anmeldungsdatum: 14.10.2009
Beiträge: 132

BeitragVerfasst am: 01.09.2015, 03:00    Titel: Antworten mit Zitat

Code:

Randomize timer

Dim z As uinteger
Dim x(0 To 9) As String={"Lbound","b","c","d","r","s","e","w","g","Ubound"}

declare function test(testzahl() As String,zufall As UInteger ) as String

function test( testzahl() As String,zufall As UInteger ) as String
   If zufall>=UBound(testzahl) Then Return testzahl(UBound(testzahl))
   If zufall<=lBound(testzahl) Then Return testzahl(lBound(testzahl))
   Return testzahl(zufall)
End Function

For i As UInteger=0 To 10
    z=Int(Rnd*14)
    Print test( x() ,z)
next
sleep



evtl hab ich die frage nich richtig verstanden.

salute
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
grindstone



Anmeldungsdatum: 03.10.2010
Beiträge: 1211
Wohnort: Ruhrpott

BeitragVerfasst am: 01.09.2015, 11:43    Titel: Antworten mit Zitat

Ja, richtig, bevor man eine Antwort verfasst, sollte man den Beitrag, auf den man antwortet, SORGFÄLTIG durchlesen. Asche auf mein Haupt! Den illegalen Parameter hätte ich eigentlich sofort sehen sollen. peinlich

Gruß
grindstone
_________________
For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Haubitze



Anmeldungsdatum: 14.10.2009
Beiträge: 132

BeitragVerfasst am: 01.09.2015, 12:51    Titel: Antworten mit Zitat

hehe kein thema Grindstone, hatte das problem auch nich gleich gesehn,
dachte er will da ne function an ne function uebergeben.
dann die frage doch noch 2x gelesen und da wusste ich ah es
handelt sich um ein array was uebergeben werden soll.

also kleines program zur verdeutlichung geschrieben.

salute
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



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

BeitragVerfasst am: 01.09.2015, 13:16    Titel: Antworten mit Zitat

So wie es da steht, will er kein Array, sondern nur einen einzelnen Array-Wert übergeben - aber wir werden sehen. happy Stehen ja jetzt beide Variationen da.
_________________
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