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:

Beiwerte anzeigen

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Spezielle Fragen
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
ITSchüler



Anmeldungsdatum: 17.07.2018
Beiträge: 1

BeitragVerfasst am: 17.07.2018, 07:28    Titel: Beiwerte anzeigen Antworten mit Zitat

Hey Leute. Habe ein Problem. Soll für die Schule was mit QBasic programmieren.

1. Auftrag: addieren von 3 Zahlen (geschafft)
2. Auftrag: "Erweitern Sie voriges Programm so, dass das Ergebnis automatisch in Kilo- Mega oder Giga Ohm ausgegeben wird, je nachdem, welcher Beiwert sind macht."

Bedenkt: Kilo=1.000 Mega=100.000 Giga=1.000.000.000

Also wie bekomme ich es hin, dass hinter dem Ergebnis meiner Addition ein Beiwert steht? Und wie bekomme ich das Programm dazu, mir passend zum Ergebnis Kilo anzuzeigen? Also bei 1000 Ohm = 1 kOhm??

Hilfe!!!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
grindstone



Anmeldungsdatum: 03.10.2010
Beiträge: 1208
Wohnort: Ruhrpott

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

Hallo ITSchüler und willkommen im Forum! lächeln

So etwas macht man mit einer mehrfachen Fallunterscheidung:
Code:
Dim As Integer zahl
Dim As Integer giga = 1000000000
Dim As Integer mega = 1000000
Dim As Integer kilo = 1000

'...
'hier wird die zahl berechnet
'...

If zahl >= giga Then
   Print zahl/giga; " GOhm"
ElseIf zahl >= mega Then
   Print zahl/mega; " MOhm"
ElseIf zahl >= kilo Then
   Print zahl/kilo; " kOhm"
Else
   Print zahl; " Ohm"
EndIf

Das ist jetzt freeBasic - Code, aber er müsste eigentlich 1:1 auch mit QBasic laufen.

Beachte auch (zum Thema guter Programmierstil) die Verwendung der Variablen (eigentlich benutzt man hierfür Konstanten, aber ich weiss jetzt so aus dem Kopf nicht, ob QBasic das kann) "giga", "mega" und "kilo", statt die Werte jedesmal direkt einzutippen. Das macht das Programm lesbarer und vermindert die Gefahr von Tippfehlern.

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
nemored



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

BeitragVerfasst am: 17.07.2018, 17:23    Titel: Antworten mit Zitat

Zitat:
Das ist jetzt freeBasic - Code, aber er müsste eigentlich 1:1 auch mit QBasic laufen.

Nicht ganz - Variablenbelegung in der DIM-Zeile sind in QBasic nicht möglich. Einfach in zwei Zeilen aufsplitten.
QBasic kann auch mit Konstanten (müsste mich sonst sehr irren).
_________________
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: 1208
Wohnort: Ruhrpott

BeitragVerfasst am: 19.07.2018, 08:21    Titel: Antworten mit Zitat

Stimmt. Ich habe mein QB mal ausgegraben, hier jetzt "richtiger" (und getesteter) QB - Quellcode:
Code:
DIM zahl AS LONG
CONST giga = 1000000000
CONST mega = 1000000
CONST kilo = 1000

'...
'hier wird die zahl berechnet
'...


IF zahl >= giga THEN
   PRINT zahl / giga; " GOhm"
ELSEIF zahl >= mega THEN
   PRINT zahl / mega; " MOhm"
ELSEIF zahl >= kilo THEN
   PRINT zahl / kilo; " kOhm"
ELSE
   PRINT zahl; " Ohm"
END IF



Gruß
grindstone

P.S.
@ITSchüler: Kleine Zusatzaufgabe ("nur für Spass", wie man hier bei uns sagt grinsen , und natürlich total freiwillig): In dem Beispiel werden die Vergleiche von "größer" nach "kleiner" durchgeführt (also erst giga, dann mega usw.). Ändere das Programm so, daß die Abfrage in umgekehrter Reihenfolge durchgeführt wird.
_________________
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
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Spezielle Fragen 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