Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Haubitze
Anmeldungsdatum: 14.10.2009 Beiträge: 132
|
Verfasst am: 13.08.2015, 20:44 Titel: |
|
|
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 |
|
|
nemored
Anmeldungsdatum: 22.02.2007 Beiträge: 4597 Wohnort: ~/
|
Verfasst am: 13.08.2015, 20:46 Titel: |
|
|
# 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 |
|
|
Haubitze
Anmeldungsdatum: 14.10.2009 Beiträge: 132
|
Verfasst am: 13.08.2015, 21:09 Titel: |
|
|
oh okay, aber die frage wo die variablen herkommen bleibt trozdem |
|
Nach oben |
|
|
Matze83
Anmeldungsdatum: 27.07.2015 Beiträge: 29
|
Verfasst am: 13.08.2015, 21:12 Titel: |
|
|
Die stehen im DIM janz oben
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 |
|
|
Haubitze
Anmeldungsdatum: 14.10.2009 Beiträge: 132
|
Verfasst am: 13.08.2015, 22:01 Titel: |
|
|
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
Edit2: dieser FB code sollte gehn und sollte recht einfach nach QBascic
zu portieren sein. frag mich jetzt aber nich warum der geht
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 |
|
|
grindstone
Anmeldungsdatum: 03.10.2010 Beiträge: 1211 Wohnort: Ruhrpott
|
Verfasst am: 13.08.2015, 23:39 Titel: |
|
|
Matze83 hat Folgendes geschrieben: | Die stehen im DIM janz oben | Welches DIM? Da sind beim Posten wohl einige Zeilen verlorengegangen.
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 |
|
|
Matze83
Anmeldungsdatum: 27.07.2015 Beiträge: 29
|
Verfasst am: 14.08.2015, 10:25 Titel: |
|
|
Moin Jungs 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 |
|
|
Haubitze
Anmeldungsdatum: 14.10.2009 Beiträge: 132
|
Verfasst am: 14.08.2015, 10:35 Titel: |
|
|
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 |
|
|
Matze83
Anmeldungsdatum: 27.07.2015 Beiträge: 29
|
Verfasst am: 14.08.2015, 11:17 Titel: |
|
|
Ne hat leider nicht geklappt... So ähnlich hatte ich es ja... und ich wollte ja die Koordinaten Achsen selber bestimmen können |
|
Nach oben |
|
|
Matze83
Anmeldungsdatum: 27.07.2015 Beiträge: 29
|
Verfasst am: 14.08.2015, 11:45 Titel: |
|
|
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 |
|
Nach oben |
|
|
nemored
Anmeldungsdatum: 22.02.2007 Beiträge: 4597 Wohnort: ~/
|
Verfasst am: 14.08.2015, 11:49 Titel: |
|
|
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. _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
|
Matze83
Anmeldungsdatum: 27.07.2015 Beiträge: 29
|
Verfasst am: 14.08.2015, 12:10 Titel: |
|
|
ist ja nicht schlimm... Danke dir.. Aber der gedanke ist nicht schlecht.. Ich teste mal... |
|
Nach oben |
|
|
Matze83
Anmeldungsdatum: 27.07.2015 Beiträge: 29
|
Verfasst am: 14.08.2015, 12:45 Titel: |
|
|
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 |
|
|
dreael Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 2507 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 14.08.2015, 13:20 Titel: |
|
|
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 |
|
|
nemored
Anmeldungsdatum: 22.02.2007 Beiträge: 4597 Wohnort: ~/
|
Verfasst am: 14.08.2015, 20:46 Titel: |
|
|
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 |
|
|
grindstone
Anmeldungsdatum: 03.10.2010 Beiträge: 1211 Wohnort: Ruhrpott
|
Verfasst am: 15.08.2015, 01:31 Titel: |
|
|
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 |
|
|
Matze83
Anmeldungsdatum: 27.07.2015 Beiträge: 29
|
Verfasst am: 16.08.2015, 12:53 Titel: |
|
|
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 Aber jetzt hat der Benutzer drei Möglichkeiten zur Ansciht dieser Funktionen... dange euch.... Macht euch noch einen schönen Sonntag.... |
|
Nach oben |
|
|
Matze83
Anmeldungsdatum: 27.07.2015 Beiträge: 29
|
Verfasst am: 17.08.2015, 10:08 Titel: |
|
|
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 |
|
|
Matze83
Anmeldungsdatum: 27.07.2015 Beiträge: 29
|
Verfasst am: 17.08.2015, 11:23 Titel: |
|
|
Hat sich erledigt
Hab mein Fehler gefunden |
|
Nach oben |
|
|
Matze83
Anmeldungsdatum: 27.07.2015 Beiträge: 29
|
Verfasst am: 18.10.2015, 10:03 Titel: |
|
|
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 |
|
Nach oben |
|
|
|