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:

Problemen mit Dezimalzahlen und Ihre Kommas

 
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
Schbezzy



Anmeldungsdatum: 01.10.2006
Beiträge: 2

BeitragVerfasst am: 01.10.2006, 05:58    Titel: Problemen mit Dezimalzahlen und Ihre Kommas Antworten mit Zitat

Hallo, ich hoffe mir kann einer helfen, also folgendes:
Ich versuch gerade eine Programmschleife mit Do...LOOP zu erstellen, die eine normale Dezimalzahl in eine DUAL-Zahl umwandeln soll. Jeder Schritt den sie Durchläuft soll gePRINTet werden.
z.B:
78

um daraus eine DUALzahl zu gewinnen muss man sie so lange durch 2 teilen bis sie an 0 angekommen ist. Immer wenn ein Rest übrig ist, d.h. wenn sich eine Kommazahl bildet, dann wird eine 1 ausgegeben. dann wird die kommazahl abgerundet auf eine Ganzzahl.

78/2 = 39 = 0 als Rest
39/2 = 19.5 = 1 als Rest
19/2 = 9.5 = 1 als Rest
9/2 = 4.5 = 1 ...usw...
4/2 = 2 = 0
2/2 = 1 = 0
1/2 = 0.5 = 1
verkehrt herum gelesen (von unten nach oben) entsteht dann die
DUALZAHL von 78, nämlich: 1001110

Jetzt meine Frage: Gibt es einen Befehl, der erkennt ob es sich bei der Zahl um eine Ganzzahl handelt oder ob es eine Kommazahl ist?
z.B. so, IF zahl = REST then PRINT "1" ELSE PRINT "0"

gibt es einen Befehl der eine Kommazahl abrundet auf eine Ganzzahl?

Ich hoffe es kann mir jemand Helfen.
Danke schon mal im vorraus.

PS: Da ich noch nich so gängig in FB bin hoffe ich dass fals ihr Fehler im Beispiel zur programmierung findet es mir verzeiht grinsen

MfG Schbezzy happy
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Lutz Ifer
Grillmeister


Anmeldungsdatum: 23.09.2005
Beiträge: 555

BeitragVerfasst am: 01.10.2006, 08:25    Titel: Antworten mit Zitat

Code:
dim as integer meinezahl
dim as string meinezahlindualdarstellung

meinezahl = 34
meinezahlindualdarstellung = bin(meinezahl)
print meinezahlindualdarstellung
'dieses war der erste streich, doch der zweite folgt sogleich:

if int(meinezahl) = meinezahl then
    print "meinezahl ist eine ganzzahl"
else
    print "meinezahl ist eine kommazahl"
end if


=> bin() wandelt eine zahl in einen string um, der das dualzahlpendant der zahl enthält,
=> int() wandelt eine zahl in eine ganzzahl um, und wenn eine zahl gleich ihrem ganzzahligen anteil ist, dann ist die zahl selber ganzzahl.

Gruß
Lutz böse Ifer
_________________
Wahnsinn ist nur die Antwort einer gesunden Psyche auf eine kranke Gesellschaft.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Wasja



Anmeldungsdatum: 18.04.2006
Beiträge: 19

BeitragVerfasst am: 01.10.2006, 08:26    Titel: Antworten mit Zitat

Hallo! Um den Rest der Teilung durch 2 zu erkennen ist der Befehl x MOD 2 am besten geeignet. Um dann den Rest 1 auszugeben, kannst du einfach machen...

Code:

x=78 'Festlegen der Zahl die Als Dualzahl angezeigt werden soll.
DO
  x MOD 2 'Drch 2 Teilen und den Rest bestimmen
  y=INT(x) 'Den Rest auf die nächste Ganzzahl aufrunden
  PRINT x 'Die Zahl 1 oder 0 ausgeben
LOOP UNTIL x=1 'oder was anderes zum Beenden der Schleife...


Was du aber auch machen könntest, such dir eine Tabelle, in der alle Dualzahlen bis 255 drinstehen und mach es mit PRINT USING... Dabei kannst du auch das ganze Programm umschreiben und ohne Schleife betreiben... Must halt am Anfang eine IF-Abfrage machen, in welchem Bereich die Zahl liegt.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
dreael
Administrator


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

BeitragVerfasst am: 01.10.2006, 10:10    Titel: Antworten mit Zitat

Habe zum Thema Basisumwandlung einen kleinen Code bereitgestellt:

http://beilagen.dreael.ch/QB/BASUMW.BAS

=> Wandelt zu beliebigen Basen (2-36) um. Die wichtigsten Operationen sind die Ganzzahldivision ("\") und Modulo ("MOD"). Im Wesentlichen dividiert man einfach eine Stelle nach der anderen heraus, bis 0 verbleibt.
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
RaideR



Anmeldungsdatum: 15.09.2006
Beiträge: 21

BeitragVerfasst am: 01.10.2006, 12:46    Titel: Re: Problemen mit Dezimalzahlen und Ihre Kommas Antworten mit Zitat

[quote="Schbezzy"]gibt es einen Befehl der eine Kommazahl abrundet auf eine Ganzzahl? quote]

also um eine Kommazahl aufzurunden bzw. abrunden muss du das hier machen
Code:
Int (Zahl+0.5)

int streicht die stellen hinterm komma weg
hoffe ich hab deine frage richtig verstanden zwinkern
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Schbezzy



Anmeldungsdatum: 01.10.2006
Beiträge: 2

BeitragVerfasst am: 01.10.2006, 16:38    Titel: Dankeschön Antworten mit Zitat

Warum das so kompliziert rechnen wenns auch einfach geht,lachen
die Lösung von Lutz Ifer ist da am ehesten hingekommen,
danke trotzdem euch allen für eure bemühungen happy
Den Befehl BIN habe ich gesucht Autsch!

Gruss Schbezzy
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 01.10.2006, 17:50    Titel: Re: Problemen mit Dezimalzahlen und Ihre Kommas Antworten mit Zitat

RaideR hat Folgendes geschrieben:
Schbezzy hat Folgendes geschrieben:
gibt es einen Befehl der eine Kommazahl abrundet auf eine Ganzzahl?


also um eine Kommazahl aufzurunden bzw. abrunden muss du das hier machen
Code:
Int (Zahl+0.5)

int streicht die stellen hinterm komma weg
hoffe ich hab deine frage richtig verstanden zwinkern

Es gibt auch noch CInt, dort kann man sich das +0.5 sparen zwinkern
_________________
http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight
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