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:

Frage Menü Aufbau
Gehe zu Seite Zurück  1, 2, 3, 4  Weiter
 
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
Haubitze



Anmeldungsdatum: 14.10.2009
Beiträge: 132

BeitragVerfasst am: 13.08.2015, 20:44    Titel: Antworten mit Zitat

ich glaube eher das das die # ind der zeile

Code:

y! = a# * x! ^ 3 + b# * x! ^ 2 + c# * x! + d#


sind. da ich in der beschreibung zu qbasics datenformaten diesen
datentype nicht enddecken konnte. also vermute ich du malst
wenn ueberhaupt an position y=0.

wo kommen denn a#,b#,c# und d# her?

salute

PS: der codetag ist [_code] und [_/code] ohne die _
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



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

BeitragVerfasst am: 13.08.2015, 20:46    Titel: Antworten mit Zitat

# steht für den DOUBLE-Datentyp.
_________________
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
Haubitze



Anmeldungsdatum: 14.10.2009
Beiträge: 132

BeitragVerfasst am: 13.08.2015, 21:09    Titel: Antworten mit Zitat

oh okay, aber die frage wo die variablen herkommen bleibt trozdem zwinkern
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Matze83



Anmeldungsdatum: 27.07.2015
Beiträge: 29

BeitragVerfasst am: 13.08.2015, 21:12    Titel: Antworten mit Zitat

Die stehen im DIM janz oben lächeln
also die Schrittweite habe ich verändert und man sieht jetzt auch eine Funktion aber sehr sehr schmal

Die Funktion ist weit nach oben gestreckt so meine Vermutung
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Haubitze



Anmeldungsdatum: 14.10.2009
Beiträge: 132

BeitragVerfasst am: 13.08.2015, 22:01    Titel: Antworten mit Zitat

okay Matze aber was ich eigendlich wissen moechte ist ob a,b,c,d ueberhaupt einen wert haben?

wenn nicht ist das ergebniss der funktion=0 da 0*irgendwas+0*irgenwas=0 ist.

Edit: oh falsch gelesen deinen letzten post lächeln
Edit2: dieser FB code sollte gehn und sollte recht einfach nach QBascic
zu portieren sein. frag mich jetzt aber nich warum der geht grinsen
Code:

screenres 640,480,32
   Dim As Single a,b,c,d
   a=1
   b=0.5
   c=2.1
   d=0.1
dim max as single=-999999999
dim min as single= 999999999
    FOR x As single = -320 TO 320 STEP 0.01
        Dim As Single y = a * x ^ 3 + b * x ^ 2 + c * x + d
        if y>max then max=y
        if y<min then min=y
    Next

    FOR x As single = -320 TO 320 STEP 0.01
        Dim As Single y = a * x ^ 3 + b * x ^ 2 + c * x + d
        PSET (x+320, (max-min)/(y*480)+240), &hffffff
    Next   
    Sleep 100
Wend


erklaerbaer darf hier wieder jemand anders machen warum das funktioniert
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
grindstone



Anmeldungsdatum: 03.10.2010
Beiträge: 1211
Wohnort: Ruhrpott

BeitragVerfasst am: 13.08.2015, 23:39    Titel: Antworten mit Zitat

Matze83 hat Folgendes geschrieben:
Die stehen im DIM janz oben
Welches DIM? Da sind beim Posten wohl einige Zeilen verlorengegangen. lächeln

Zitat:
...man sieht jetzt auch eine Funktion aber sehr sehr schmal
Dann solltest du einen anderen Maßstab für die x-Achse wählen.

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
Matze83



Anmeldungsdatum: 27.07.2015
Beiträge: 29

BeitragVerfasst am: 14.08.2015, 10:25    Titel: Antworten mit Zitat

Moin Jungs lächeln Ausgepennt und frisch ans Werk bin ich an mein Projekt gegangen ... Und nochmal neu gestartet und neu geschrieben... Jetzt passt es auch.... Aber eins fehlt mir und da könnte ich eure Hilfe gebrauchen ...
Ich habe eine Funktion gegeben, welche in mein Koordinatensystem angezeigt wird... Jetzt kann es passieren das das Koordinatensystem zu gross ist und die Funktion nicht wirklich gut dargestellt werden kann. Jetzt Möchte ich das man von anfang an bestimmt, in welchem Bereich das Koordinatensystem angezeigt werden soll um die Funktion besser darstellen zu können.

Code:

            'Umschalten in den Grafikmodus 640x480 Pixel
            '
            'INPUT "Geben sie die gewnschte Intervallgrenze ein__"; lg!


            SCREEN 12

            'Sichtfenster im Grafikmodus festlegen fr Randabstand beginn x-Achse ab 10 bis 630 von 640x480
            '
            VIEW (10, 470)-(630, 10)


            'Koordinatenursprung ind die Fenstermitte legen und Fenster skalieren nach D und W

            WINDOW (-10, -10)-(10, 10)

            'Koordinatenachsen zeichen in der Farbe gelb:
            LINE (-10, 0)-(10, 0), 14
            LINE (0, -10)-(0, 10), 14

            'x-Achse mit Strichen skalieren:
            FOR i% = -10 TO 10
                LINE (i%, 0.1)-(i%, -0.1), 14
            NEXT i%
            '
            FOR i% = -10 TO 10
                LINE (-0.1, i%)-(0.1, i%), 14
            NEXT i%

            'Graph punktweise einzeichnen: Punktfarbe in Rot   Funktion
            '
            FOR x! = -10.4 TO 10.4 STEP 0.000001
                y! = a# * x! ^ 3 + b# * x! ^ 2 + c# * x! + d#
                PSET (x!, y!), 12
            NEXT x!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Haubitze



Anmeldungsdatum: 14.10.2009
Beiträge: 132

BeitragVerfasst am: 14.08.2015, 10:35    Titel: Antworten mit Zitat

hm sollte eigendlich ganz einfach sein,

Code:

input "x koordinate:",x1!
input "y koordinate:",y1!

'Graph punktweise einzeichnen: Punktfarbe in Rot   Funktion
            '
            FOR x! = -10.4+x1! TO 10.4+x1! STEP 0.000001
                y! = a# * x! ^ 3 + b# * x! ^ 2 + c# * x! + d#
                PSET (x!, y!+y1!), 12
            NEXT x!


so solltest du dir die koordinaten in deinem koordinatensystem
ausssuchen koennen. das ist jetzt zwar nich huebsch aber ich denke
du verstehst das prinzip.

salute
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Matze83



Anmeldungsdatum: 27.07.2015
Beiträge: 29

BeitragVerfasst am: 14.08.2015, 11:17    Titel: Antworten mit Zitat

Ne hat leider nicht geklappt... So ähnlich hatte ich es ja... und ich wollte ja die Koordinaten Achsen selber bestimmen können
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Matze83



Anmeldungsdatum: 27.07.2015
Beiträge: 29

BeitragVerfasst am: 14.08.2015, 11:45    Titel: Antworten mit Zitat

So, habe jetzt einfach das das für oben eingesetzt und passt...

Code:
               
 'Koordinatenursprung ind die Fenstermitte legen und Fenster skalieren nach D und W
                WINDOW (-lg, -lg)-(lg, lg)



Hab es zudem so geändert das man entscheiden kann, ob man das Koordinatensystem eingrenzen möchte oder nicht... Looooft lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



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

BeitragVerfasst am: 14.08.2015, 11:49    Titel: Antworten mit Zitat

Etwas in dieser Art?
Code:
'Umschalten in den Grafikmodus 640x480 Pixel
'
SCREEN 12

PRINT "Geben Sie die gewnschte Intervallgrenze ein:"
INPUT "Startwert x=", xStart%
INPUT "Endwert   x=", xEnde%
INPUT "Startwert y=", yStart%
INPUT "Endwert   y=", yEnde%

'Koordinatenachsen-Unterteilung
'
xWeite# = 5*(xEnde% - xStart%) / 640
yWeite# = 5*(yEnde% - yStart%) / 480

'Sichtfenster im Grafikmodus festlegen fr Randabstand Beginn x-Achse ab 10 bis 630 von 640x480
'
VIEW (10, 470)-(630, 10)


'Koordinatenursprung in die Fenstermitte legen und Fenster skalieren nach D und W

WINDOW (xStart%, yStart%)-(xEnde%, yEnde%)

'Koordinatenachsen zeichen in der Farbe gelb:
LINE (xStart%, 0)-(xEnde%, 0), 14
LINE (0, yStart%)-(0, yEnde%), 14

'x-Achse mit Strichen skalieren:
FOR i% = xStart% TO xEnde%
    LINE (i%, -yWeite#)-(i%, yWeite#), 14
NEXT i%
'
FOR i% = yStart% TO yEnde%
    LINE (-xWeite#, i%)-(xWeite#, i%), 14
NEXT i%

'Graph punktweise einzeichnen: Punktfarbe in Rot   Funktion
'
FOR x! = xStart% TO xEnde% STEP 0.000001
    y! = a# * x! ^ 3 + b# * x! ^ 2 + c# * x! + d#
    PSET (x!, y!), 12
NEXT x!


edit: ok, war zu langsam; aber so kannst du auch noch unterschiedlich weit nach links und rechts. happy
_________________
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
Matze83



Anmeldungsdatum: 27.07.2015
Beiträge: 29

BeitragVerfasst am: 14.08.2015, 12:10    Titel: Antworten mit Zitat

ist ja nicht schlimm... Danke dir.. Aber der gedanke ist nicht schlecht.. Ich teste mal...zwinkern
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Matze83



Anmeldungsdatum: 27.07.2015
Beiträge: 29

BeitragVerfasst am: 14.08.2015, 12:45    Titel: Antworten mit Zitat

aaahhhrrrr
jetzt baue ich deins auch mit ein...
sprich zur Auswahl steht dann
- automatisches Koordinatensystem
- eigene Start und Endwerte angeben
- oder Intervall angeben wo dann alle Seiten gleich lang sind je nach Angabe..

Problem bei dir nur als Startwert für x und y muss ein Minus bei der eingabe erfolgen sonst klappt das nicht... Bin gerade am grübeln, das man kein Minuszeichen vorsetzen muss
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2507
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 14.08.2015, 13:20    Titel: Antworten mit Zitat

Jojo hat Folgendes geschrieben:
Das ist nur so halbrichtig, schließlich bekommt FreeBASIC ja momentan Booleans spendiert, und auch C++ hat einen echten booleschen Datentyp.

Danke für Deine Ergänzung. Wichtig einfach: Ein echter Boolean sollte bei einem gemischten Ausdruck zu Type Missmatch ähnlich Strings + Zahlen vermischen führen und nicht irgend eine automatische True-in-1-und-Falso-in-0-Konvertierung hintenrum auslösen.
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
nemored



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

BeitragVerfasst am: 14.08.2015, 20:46    Titel: Antworten mit Zitat

Dazu im englischen Forum: http://www.freebasic.net/forum/viewtopic.php?f=17&t=23786
Auf Seite 6 finden sich ein paar Dinge, die aktuell erlaubt bzw. nicht erlaubt sind. Nicht erlaubt sind unter anderem Ausdrücke wie "TRUE + i" oder "TRUE + TRUE" oder "i < TRUE". Der Ausdruck "1 AND TRUE" ist erlaubt, produziert aber eine Warnung.

@topic:
Matze83 hat Folgendes geschrieben:
Problem bei dir nur als Startwert für x und y muss ein Minus bei der eingabe erfolgen sonst klappt das nicht... Bin gerade am grübeln, das man kein Minuszeichen vorsetzen muss

Ich sehe da keine Schwierigkeiten. Teile dem Benutzer mit, dass er startX% und startY% ohne Vorzeichen einzugeben hat und setze im Quelltext überall, wo startX% (bzw. startY%) steht, ein Minuszeichen davor. Allerdings könnte der Benutzer ggf. auch mal Interesse daran haben, sich den Bereich von 10 bis 20 anzeigen zu lassen - das wird ihm dadurch genommen.
_________________
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
grindstone



Anmeldungsdatum: 03.10.2010
Beiträge: 1211
Wohnort: Ruhrpott

BeitragVerfasst am: 15.08.2015, 01:31    Titel: Antworten mit Zitat

nemored hat Folgendes geschrieben:
Allerdings könnte der Benutzer ggf. auch mal Interesse daran haben, sich den Bereich von 10 bis 20 anzeigen zu lassen - das wird ihm dadurch genommen.
Man könnte ja auch beim unteren Wert das Vorzeichen automatisch umkehren. Wer bei +10 beginnen möchte, muß dann eben -10 eingeben. Aber irgendwie empfände ich das als unsauber. Und sich solche möglichen Probleme aufzuhalsen, nur um einen Tastendruck zu sparen...

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
Matze83



Anmeldungsdatum: 27.07.2015
Beiträge: 29

BeitragVerfasst am: 16.08.2015, 12:53    Titel: Antworten mit Zitat

Ja das das habe ich als Benutzung bzw als Hinweis für die Benutzung dieser Auswahl mit hingeschrieben und das war denn auch mein Gedanke, das der Benutzer auch nur den positiven Bereich ansehen kann.... dann brauch er kein Minus zeichen voranschreiben Darum meine Entscheidung, wenn der Benutzer auch den negativen x Bereich haben will, dann muss er das Minuszeichen berücksichtigen... Ach das schon gut so lächeln Aber jetzt hat der Benutzer drei Möglichkeiten zur Ansciht dieser Funktionen... lächeln dange euch.... Macht euch noch einen schönen Sonntag....
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Matze83



Anmeldungsdatum: 27.07.2015
Beiträge: 29

BeitragVerfasst am: 17.08.2015, 10:08    Titel: Antworten mit Zitat

Ich find den Fehler einfach nicht und der wird mal wieder banal sein...

Sorry Jungs

ich möchte f(x) in die Tabelle eintragen und den dazugehörigen x Wert.
Startwert = von! und Endwert = bis!

Code:

DIM a#,b#,c#,d#,von!,bis!,schritte!, fx#, xakt#

IF ((von! > bis!) OR (schritte! <= 0)) THEN
    PRINT "Fehlerhafte Eingaben. Die obere Grenze muss groesser sein"
    PRINT "als die untere und die Schrittweite muss positiv sein."
    SLEEP: END
END IF


'Tabelle fuer die jeweilige Funktion

LOCATE 10, 5
PRINT " Wertetabelle fuer die jeweilige Funktion "


LOCATE 13, 5


PRINT "  ÚÄ Wertetabelle ÄÄ¿"
PRINT "  ³    x   ³  f(x)  ³"
PRINT "  ÃÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄ´"

xakt# = von!
fx# = a# * (xakt#) ^ 3 + b# * (xakt#) ^ 2 + c# * (xakt#) + d#
DO

    PRINT USING "³ ###.## ³ ###.## ³"; xakt#; fx#
    xakt# = xakt# + schritte!
    fx# = a# * (xakt#) ^ 3 + b# * (xakt#) ^ 2 + c# * (xakt#) + d#
LOOP UNTIL xakt! <= bis!


PRINT "  ÀÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÙ"
SLEEP
END


Code:

PRINT "  ÚÄ Wertetabelle ÄÄ¿"
PRINT "  ³    x   ³  f(x)  ³"
PRINT "  ÃÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄ´"

Das ist eine Tabelle.... Also nicht wundern
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Matze83



Anmeldungsdatum: 27.07.2015
Beiträge: 29

BeitragVerfasst am: 17.08.2015, 11:23    Titel: Antworten mit Zitat

Hat sich erledigt lächeln
Hab mein Fehler gefunden lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Matze83



Anmeldungsdatum: 27.07.2015
Beiträge: 29

BeitragVerfasst am: 18.10.2015, 10:03    Titel: Antworten mit Zitat

Moin moin Jungs...

Ich habe nochmal ein Anliegen.
und zwar habe ich mehrere Case Anwendungen , was einem Menü angehört.... Bin jetzt immer noch dabei die Graphische Darstellung zu bearbeiten...

Vorher ein Beispiel zum besseren Verständnis...
unter Case 3 werden Daten bearbeitet/abgerufen. ( Hochpunkte und Tiefpunkte te einer Funktion )
Diese Daten / Informationen sind soweit korrekt daher bearbeite ich die nächste Case-Anwendung.

Jetzt bin ich im Case 8 und bearbeite die graphische Darstellung anhand der der Hoch und Tiefpunkte die ich im case 3 erhalte.
Jetzt habe ich das Gefühl wenn ich sofort im case 8 die Graphische Darstellung abrufe, werden keinerlei Informationen welche im Case 3 erhalten habe im case 8 abgerufen...

Bin ich denn gezwungen, sobald ich qbasic laufen lasse, erst im case 3 diese daten abzurufen und danach im case 8 weiterzuarbeiten oder ????

Ich hoffe ihr Versteht mein Anliegen lächeln
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
Gehe zu Seite Zurück  1, 2, 3, 4  Weiter
Seite 3 von 4

 
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