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:

Ergebnisse in einer Tabelle darstellen

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



Anmeldungsdatum: 12.07.2014
Beiträge: 4

BeitragVerfasst am: 12.07.2014, 14:13    Titel: Ergebnisse in einer Tabelle darstellen Antworten mit Zitat

Guten Tag,

ich bin neu in QBasic und würde gerne wissen wie ich meine Ergebnisse in einer Tabelle darstellen kann, damit es schön aussieht?

Ich habe so weit das Programm geschrieben und alles funktioniert.
Das Programm soll die x und y Werte einer Funktion darstellen.
Momentan gibt er die Werte folgendermaßen aus:
"y=+#.###"
"z=+#.###"
"y=+#.###"
.
.
.
und so weiter nun möchte ich aber das er diese Werte in einer Tabelle schreibt und schick aussieht.
Sprich 2 Spalten mit "Obere Grenze-Untere Grenze* Schrittweite" Zeilen
Gibt es dort eine Möglichkeit?
Ich finde leider kaum etwas im Internet darüber.

Danke und beste Grüße, Metzner
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5900
Wohnort: Deutschland

BeitragVerfasst am: 12.07.2014, 14:32    Titel: PRINT USING Antworten mit Zitat

Hallo und willkommen im Forum!

Meinst du QBasic oder FreeBASIC? Du schreibst zwar QBasic, hast aber im FreeBASIC-Unterforum gepostet, von daher die Frage. lächeln

Hier jedenfalls mal eine FreeBASIC-Lösung: Meinst du das so?

Code:
Randomize Timer

Const Anzahl = 10

Dim As Double x(1 To Anzahl), y(1 To Anzahl), z(1 To Anzahl)
Dim As Integer i

'Zufallsdaten erzeugen:
For i = LBound(x) To UBound(x)
    x(i) = RND * 10 - 5
    y(i) = RND * 10 - 5
    z(i) = RND * 10 - 5
Next i

' Ausgabe als Tabelle

Print "+ Daten ---------------------------+"
Print "| Index | X-Wert | Y-Wert | Z-Wert |"
Print "+----------------------------------+"

For i = LBound(x) To UBound(x)
    Print Using "| ##### | +#.### | +#.### | +#.### |"; i; x(i); y(i); z(i)
Next i

Print "+----------------------------------+"

GetKey
End


Sieht ausgeführt so aus (Bild zum Vergrößern anklicken):



Viele Grüße & ein schönes Wochenende!
Sebastian
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Metzner



Anmeldungsdatum: 12.07.2014
Beiträge: 4

BeitragVerfasst am: 12.07.2014, 17:38    Titel: Antworten mit Zitat

Danke. Ich meine qbasic. kann der Thread verschoben werden oder soll ich neu öffnen?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5900
Wohnort: Deutschland

BeitragVerfasst am: 12.07.2014, 17:47    Titel: Antworten mit Zitat

Hallo,

der Thread ist jetzt verschoben.

In QBASIC funktioniert die spaltenweise Ausgabe von Zahlen genauso, auch da heißt der Befehl "PRINT USING".

Nur im Beispielcode "drum herum" muss man ein bisschen ändern. Zum Beispiel kann man in QB nicht schreiben:
Code:
Dim As Double x(1 To Anzahl), y(1 To Anzahl), z(1 To Anzahl)

sondern muss die Langversion nehmen:
Code:
Dim x(1 To Anzahl) As Double, y(1 To Anzahl) As Double, z(1 To Anzahl) As Double


Heutzutage, wo QB-Programme (DOS / 16-Bit) auf den gängigen Workstations (64-Bit-Versionen von Windows 7 aufwärts) gar nicht mehr ohne Emulator lauffähig sind, würde ich kein neues Projekt mehr mit QB anfangen / durchziehen. Da würde ich dann gleich auf FreeBASIC setzen, weil man die damit erzeugten Programme problemlos auch unter Windows 8.1 64-Bit oder sogar Linux ausführen kann - ganz ohne Emulator, sondern nativ. lächeln

Aber unabhängig vom eingesetzten Compiler: Meinst du so eine Darstellung wie auf dem Screenshot?

Viele Grüße!
Sebastian
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Metzner



Anmeldungsdatum: 12.07.2014
Beiträge: 4

BeitragVerfasst am: 12.07.2014, 17:58    Titel: Antworten mit Zitat

Ja ich meine in etwa die wie im Screenshot abgebildete Darstellung. Werde ich mich jetzt mal dran versuchen. Danke!

Also schonmal Danke. Hat weitergeholfen. Am Ziel bin ich allerdings noch lange nicht!

Edit:
Problem seht ihr unten:
die X-Werte sind falsch. Stellt euch dies als Koordinatensystem vor.
Ich will mir zu den X-Werten von 0-5 in der Schrittweise s die dazugehörigen Y-Ergebnnisse anzeigen lassen.
Leider haut dies noch nicht hin und ich bin noch am suchen. Vielleicht könnt ihr die Suche ja verkürzen zwinkern




http://www.bilder-space.de/bild-jpg-17608.htm
http://www.bilder-space.de/bild-jpg-17610.htm
Zitat:
P = o - u
anzahl = P / s
DIM x(1 TO anzahl) AS DOUBLE, y(1 TO anzahl) AS DOUBLE
DIM i(1 TO anzahl) AS INTEGER
'Zufallsdaten erzeugen
FOR i = LBOUND(x) TO UBOUND(x)
x(i) = RND * 10 - 5
y(i) = RND * 10 - 5
NEXT i

'**************Ausgabe der Tabelle************
PRINT "+ Ergebnistabelle---------+"
PRINT "| Index I X-Wert I Y-Wert |"
PRINT "+-------------------------+"

FOR i = LBOUND(x) TO UBOUND(x)
PRINT USING "| ##### | +#.### | +#.### | +#.### |"; i; x(i); y(i)
NEXT i
PRINT "+-------------------------+"
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5900
Wohnort: Deutschland

BeitragVerfasst am: 12.07.2014, 20:12    Titel: Wertetabelle für lineare Funktion Antworten mit Zitat

Hallo,

was hältst du hiervon:


Hier der Code dazu, dieses Mal für QB:
Code:
CLS

DIM m AS DOUBLE, b AS DOUBLE, von AS DOUBLE, bis AS DOUBLE, s AS DOUBLE

PRINT "Lineare Funktion - Wertetabelle"
INPUT "m = ", m
INPUT "b = ", b
INPUT "Untere Grenze der Wertetabelle: ", von
INPUT "Obere Grenze der Wertetabelle: ", bis
INPUT "Schrittweite fuer Wertetabelle: ", s

PRINT    'Leerzeile

IF ((von > bis) OR (s <= 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

PRINT "Die Funktionsvorschrift lautet:  "; CHR$(159);
PRINT USING "(x) = #.### * x + #.###"; m; b
PRINT

DIM xAktuell AS DOUBLE

PRINT "ÚÄ Wertetabelle ÄÄ¿"
PRINT "³  x     ³  y     ³"
PRINT "ÃÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄ´"

xAktuell = von
DO
        PRINT USING "³ ##.### ³ ##.### ³"; xAktuell; (m * xAktuell + b)
        xAktuell = xAktuell + s
LOOP UNTIL xAktuell > bis

PRINT "ÀÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÙ"

SLEEP
END


Den Code kannst du hier direkt als BAS herunterladen: http://users.freebasic-portal.de/sebastian/qb/WERTETAB.BAS

Viele Grüße!
Sebastian
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Metzner



Anmeldungsdatum: 12.07.2014
Beiträge: 4

BeitragVerfasst am: 12.07.2014, 20:42    Titel: Re: Wertetabelle für lineare Funktion Antworten mit Zitat

Grandios. Danke!

Habe so weit alles fertig.
Jetzt ist das Problem, dass ich einige Sachen erläutern muss.
1. Wo finde ich sonst die Befehle für die Tabelle?
Zitat:
PRINT "ÚÄ Wertetabelle ÄÄ¿"
PRINT "³ x ³ y ³"
PRINT "ÃÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄ´"

xAktuell = von
DO
PRINT USING "³ ##.### ³ ##.### ³"; xAktuell; (m * xAktuell + b)
xAktuell = xAktuell + s
LOOP UNTIL xAktuell > bis

PRINT "ÀÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÙ"

SLEEP
END


Ich hätte nicht gewusst bzw wusste bis zum kopieren nicht, dass die Buchstaben ÚÄ zum beispiel eine Ecke ergeben.
Ansonsten sehr cool. Das gefällt mir echt gut. Danke


EDIT:
2. Kann man etwas einbauen, dass es im program erst weiter geht wenn man etwas eintippt und man nicht durch drücken der Enter-Taste das Programm weiter laufen lassen kann?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5900
Wohnort: Deutschland

BeitragVerfasst am: 12.07.2014, 20:59    Titel: Re: Wertetabelle für lineare Funktion Antworten mit Zitat

Metzner hat Folgendes geschrieben:
1. Wo finde ich sonst die Befehle für die Tabelle?

Diese Sonderzeichen kann man in einer ASCII-Tabelle nachschlagen, zum Beispiel hier:
http://www.o-bizz.de/qbdown/qbeigen/pics/ascii_gross.gif

Das Problem dabei ist, dass die Tabellen für DOS (QB) und Windows unterschiedlich sind. Was in QB unter DOS eine Kästchen-Ecke ist, ist unter Windows irgendein fremdsprachiger Buchstabe. Und umgekehrt. Die Zahlen aus der verlinkten Tabelle oben gelten für DOS/QB und ergeben unter Windows teilweise nur komisches Zeug.

Wenn du in QB bist, kannst du über die Eingabe von ALT (gedrückt halten) und der Nummer auf dem Nummernblock (siehe verlinkte Tabelle) die Zeichen einfügen. Wichtig ist, dass man die Nummern nur über den Nummernblock rechts eingeben kann (und nicht über die Zahlen-Tastenleiste über den Buchstaben). Die Num-LED muss dabei aktiv sein.

Wenn du in QB zum Beispiel ALT gedrückt hältst und dann auf dem Nummernblock 197 eingibst, bekommst du ein Tabellenkreuz.

Metzner hat Folgendes geschrieben:
EDIT:
2. Kann man etwas einbauen, dass es im program erst weiter geht wenn man etwas eintippt und man nicht durch drücken der Enter-Taste das Programm weiter laufen lassen kann?

Ja, das geht:
Code:
Dim Eingabe As String
Do
  Input "Geben Sie WEITER ein, um fortzufahren: ", Eingabe
  If (Eingabe <> "WEITER") Then
    Print "Die Eingabe war ungueltig und muss wiederholt werden."
  End If
Loop Until Eingabe = "WEITER"
Print "Jetzt geht's weiter!"

_________________
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 QBasic. 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