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:

Ohne Zwischenräume drucken

 
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
Z2012



Anmeldungsdatum: 03.05.2020
Beiträge: 22
Wohnort: Großdeutschland

BeitragVerfasst am: 09.05.2020, 17:55    Titel: Ohne Zwischenräume drucken Antworten mit Zitat

Hallo,

ich möchte ohne Zwischenräume drucken lassen.

Folgender Code:

Code:
Dim As Byte A=0, B=10, C=0
CLS
Print "Inhalt der Variablen A ist", A, "B ist", B, "C ist", C
Sleep 4500
Do 'Beginn Schleife
   Cls
   A=(A+10)
   Print "A=", A
   B=(B+10)
   C=Sqr(A^2)+(B^2)
   Print "Schleife, Inhalt der Variablen A=", A, "B=", B, "C=", C
   Sleep 1500
   If A<100 Then
      Continue Do
   Else
      Exit Do
   End If
Loop 'Ende Schleife
Print "OK End IF"
Sleep


MfG
_________________
Z2012

A C H T U N G Sarkasmus:

Nur nicht hetzen, (Hobby <> Semiprofi oder Profi)-Proggramira brauchen etwas länger.
(frei nach mir)

Es gibt keinen Königsweg zur Mathematik oder Programmierung.
(frei nach Euklid)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden AIM-Name Yahoo Messenger MSN Messenger
grindstone



Anmeldungsdatum: 03.10.2010
Beiträge: 986
Wohnort: Ruhrpott

BeitragVerfasst am: 09.05.2020, 19:19    Titel: Antworten mit Zitat

Das geht mit Semikolon statt Komma:
Code:
Dim As Byte A=0, B=10, C=0
CLS
Print "Inhalt der Variablen A ist"; A, "B ist"; B, "C ist"; C
Sleep 4500
Do 'Beginn Schleife
   Cls
   A=(A+10)
   Print "A="; A
   B=(B+10)
   C=Sqr(A^2)+(B^2)
   Print "Schleife, Inhalt der Variablen A="; A, "B=";B, "C="; C
   Sleep 1500
   If A<100 Then
      Continue Do
   Else
      Exit Do
   End If
Loop 'Ende Schleife
Print "OK End IF"
Sleep


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
Z2012



Anmeldungsdatum: 03.05.2020
Beiträge: 22
Wohnort: Großdeutschland

BeitragVerfasst am: 10.05.2020, 09:50    Titel: Druckausrichtung, Leerzeile und exakte Position Antworten mit Zitat

Hallo,

dass mit den Semikolons funktioniert prima, Danke für den Tipp.
Eine Frage hätt ich noch:
Ich möchte Links, Mittig und Rechts drucken, aber alles in einer Zeile. Nach einer Leerzeile möchte ich in eine ganz bestimmte Position drucken, sagen wir Zeile 19 Position von Links 54.
Geht dass?

MfG
_________________
Z2012

A C H T U N G Sarkasmus:

Nur nicht hetzen, (Hobby <> Semiprofi oder Profi)-Proggramira brauchen etwas länger.
(frei nach mir)

Es gibt keinen Königsweg zur Mathematik oder Programmierung.
(frei nach Euklid)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden AIM-Name Yahoo Messenger MSN Messenger
HorstD



Anmeldungsdatum: 01.11.2007
Beiträge: 89

BeitragVerfasst am: 10.05.2020, 15:23    Titel: Antworten mit Zitat

Siehe: Locate
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Z2012



Anmeldungsdatum: 03.05.2020
Beiträge: 22
Wohnort: Großdeutschland

BeitragVerfasst am: 11.05.2020, 10:52    Titel: Antworten mit Zitat

Achtung - Sarkasmus

Guten Tag,

Danke für den Hinweis.

Das weiß doch jeder, dass man "Locate" suchen muss, um mit der Anweisung LOCATE 10, 5, 0 die Cursorposition zu verändern, damit an einer bestimmten Stelle gedruckt und der Cursor und mit 0 ausgeschaltet wird.
Was gedruckt wird steht dann erst in der nächsten Programm-Zeile, lt. Beispiel.
Ich finde aber keine Erklärung wie die Druck-Ausrichtung (=Alignment) geht. Oder geht das auch mit LOCATE?

MfG[/u]
_________________
Z2012

A C H T U N G Sarkasmus:

Nur nicht hetzen, (Hobby <> Semiprofi oder Profi)-Proggramira brauchen etwas länger.
(frei nach mir)

Es gibt keinen Königsweg zur Mathematik oder Programmierung.
(frei nach Euklid)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden AIM-Name Yahoo Messenger MSN Messenger
grindstone



Anmeldungsdatum: 03.10.2010
Beiträge: 986
Wohnort: Ruhrpott

BeitragVerfasst am: 11.05.2020, 16:12    Titel: Antworten mit Zitat

Z2012 hat Folgendes geschrieben:
Ich finde aber keine Erklärung wie die Druck-Ausrichtung (=Alignment) geht. Oder geht das auch mit LOCATE?
Natürlich geht das, ist aber mit etwas Rechnerei (und vorherigem Nachdenken [sarkasmus] FRECHHEIT! Alles muß man selber machen! Zunge rausstrecken [/sarkasmus]) verbunden:

Code:
Dim As Byte A=0, B=10, C=0
Dim As Integer zeile, spalte, zeilenlaenge = 80
Dim As String druck

CLS
Print "Inhalt der Variablen A ist"; A, "B ist"; B, "C ist"; C
Sleep 500

zeile = 2
Do
   A=(A+10)
   B=(B+10)
   C=Sqr(A^2)+(B^2)
   
   zeile += 1
   
   druck = "A = " + Str(A)
   spalte = 1 'linksbündig
   Locate zeile, spalte
   Print druck
   
   druck = "B = " + Str(B)
   spalte = zeilenlaenge / 2 - Len(druck) / 2 'zentriert
   Locate zeile, spalte
   Print druck
   
   druck = "C = " + Str(C)
   spalte = zeilenlaenge - Len(druck) 'rechtsbündig
   Locate zeile, spalte
   Print druck
   
   Sleep 500
   If A<100 Then
      Continue Do
   Else
      Exit Do
   End If
Loop
Print
Print "OK"
Sleep


Kleine Hausaufgabe: Schreib das Programm so um, dass alle Gleichheitszeichen sauber untereinander stehen!

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
Z2012



Anmeldungsdatum: 03.05.2020
Beiträge: 22
Wohnort: Großdeutschland

BeitragVerfasst am: 12.05.2020, 11:33    Titel: Antworten mit Zitat

Hallo,


Kleine Hausaufgabe: Schreib das Programm so um, dass alle Gleichheitszeichen sauber untereinander stehen!

Jetzt verstehe ich erst - es hat ein bisschen gedauert - FB kann kein Alignment, aber ich hab doch was zum Thema gelesen.
Es war in einem früheren Stadium, ich habe es mir nicht gemerkt!

MfG
_________________
Z2012

A C H T U N G Sarkasmus:

Nur nicht hetzen, (Hobby <> Semiprofi oder Profi)-Proggramira brauchen etwas länger.
(frei nach mir)

Es gibt keinen Königsweg zur Mathematik oder Programmierung.
(frei nach Euklid)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden AIM-Name Yahoo Messenger MSN Messenger
nemored



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

BeitragVerfasst am: 12.05.2020, 20:45    Titel: Antworten mit Zitat

Es gibt da noch (als Relikt aus der QBasic-Zeit) Dinge wie RSET. Allerdings finde ich, ehrlich gesagt, den Umgang damit nicht einfacher als das "selbst rechnen".

Text bündig zu setzen wäre eine schöne Anwendung einer eigenen Prozedur.
_________________
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
SpionAtom



Anmeldungsdatum: 10.01.2005
Beiträge: 312

BeitragVerfasst am: 26.05.2020, 10:31    Titel: PRINT USING Antworten mit Zitat

https://www.qbasic.net/en/reference/qb11/Statement/PRINT-USING.htm

Ich wollte, wenn es ums Formatieren geht noch USING einwerfen, was für numerische Tabellen eigentlich auch ganz nett ist.

Weiß aber nicht, ob es das in Fb auch gibt.
_________________
Inzwischen gehöre ich auch zu den BlitzBasicern. Also verzeiht mir, wenn mir mal ein LOCATE 100, 100 oder dergleichen rausrutscht.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
nemored



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

BeitragVerfasst am: 26.05.2020, 15:52    Titel: Antworten mit Zitat

Oh ja, danke für die Ergänzung: PRINT USING und FORMAT (letzteres ist eine Anleihe von VB), gibt es unter FreeBASIC ebenfalls.
https://www.freebasic-portal.de/befehlsreferenz/print-using-485.html
_________________
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
SpionAtom



Anmeldungsdatum: 10.01.2005
Beiträge: 312

BeitragVerfasst am: 27.05.2020, 14:15    Titel: Antworten mit Zitat

Wollte mal wieder QB coden, da hab ich gesehen, das ist ja FB, ...runterlad ...ide hol ...kurzindiedokugeschaut


Also definitiv bei Tabellen PRINT USING nutzen.
Du kannst das schön im Quelltext sehen, da sind dann Blöcke mit ###, und jeder Block steht für einen Zahlen-Wert - welcher Wert genau, steht dann dahinter (Drei Blöcke, drei Werte/Variablen dahinter).
Code:
print Using "A = ######      B = ######    C = ######"; a; b; c   



Dann ist mir aufgefallen, dass du fast einen Pythagoras anwendest, aber eben nur fast. Check mal deine Formel.
Code:
C = SQR(A^2 + B^2)

oder
Code:
C=Sqr(A^2)+(B^2)


Daran anknüpfend: A^2 kann bei A = 100 große Werte annehmen, also lieber Integer nehmen statt Byte.
Code:
Dim As Integer A=0, B=10, C=0


Und zu guter letzt, wenn du Do..Loop Schleifen benutzt, dann kannst du auf ein If verzichten, indem du das Ende so abänderst, wie ich es gemacht habe.
Code:
Loop Until A >= 100'Ende Schleife

heißt soviel wie: Wiederhole die Schleife nur, wenn A nicht größer oder gleich 100 ist, sonst verlasse die Schleife.


Code:
Dim As Integer A = 0, B = 10, C = 0

    Cls
    Print Using "A = ######      B = ######      C = ######"; a; b; c
    Print
    Print "A = (A + 10)    B = (B + 10)    C = SQR(A^2 + B^2)"
    Sleep 500
    Do
        'Werte neu berechnen
        A = (A + 10)
        B = (B + 10)
        C = Sqr((A^2) + (B^2))
   
        'Ausgabe der Zeile
        Print Using "A = ######      B = ######      C = ######"; a; b; c
        Sleep 500
   
    Loop Until A >= 100
    Print "OK"
    Sleep
End

_________________
Inzwischen gehöre ich auch zu den BlitzBasicern. Also verzeiht mir, wenn mir mal ein LOCATE 100, 100 oder dergleichen rausrutscht.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail 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 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