Funktion um Zahlen auf Komma zu testen

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

Marius

Betreff: Funktion um Zahlen auf Komma zu testen

BeitragMi, Jan 07, 2004 15:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo!
Hat jemand ne Funktion die Blitz Basic vielleicht besitzt oder eine geschriebene die eine Zahl auf Komma testet und dann zb. Bei Komma 0 und bei ohne komma 1 rausgiebt?
Würd mich freuen.

Marius
Keybord not found!
Press F2 to continue!

DC

Sieger des B2D Retro Wettbewerb / Aug 04

BeitragMi, Jan 07, 2004 15:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
zahl1=14114
zahl2#=1314.1662
zahl3#=14114

Function komma(zahl$)
   If Instr(zahl$, ".") Then
      If Right(zahl$,2)=".0" Then
         Return 0
      Else
         Return 1
      EndIf
   Else
      Return 0
   EndIf
End Function

Print komma(zahl1)
Print komma(zahl2#)
Print komma(zahl3#)

WaitKey()
End


Hättest nur im Chat etwas länger warten müssen Wink
Core i5 4670K | 4 x 3,40 GHZ | 16 GB Ram | GeForce GTX 960 | HTC Vive | Win 10 Pro
www.UnrealSoftware.de | www.StrandedOnline.de | www.CS2D.com |
www.CarnageContest.com | www.Stranded3.com

bruZard

BeitragMi, Jan 07, 2004 15:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Wandle die Zahl in einen String um und prüfe mit InStr() ob ein Komma drin ist.
PIV 2,4GHz - 1GB DDR 333 - ATI Radeon9600 - WinXP - DX9.0c - BMax 1.14 - B3D 1.91 - 1280x1024x32

User posted image
 

konstantin

BeitragMi, Jan 07, 2004 15:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn eine Zahl Kommastellen hat (Dezimal), dann ist sie eine Float-Variable (gekennzeichnet durch ein #). Somit ist das prüfen sinnlos, weil es sich ja entweder um Integer oder Float handelt.
Wenn du meinst, wenn man ein String hat und den auf kommas zu untersuchen, dafür musst du einen parser schreiben der den string ausliest und einen wert zurückgibt, wenn ein komma enthalten ist.
 

OJay

BeitragMi, Jan 07, 2004 16:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
if instr(Zahl,",")
oder Code: [AUSKLAPPEN]
if instr(Zahl,".")


reicht doch vollkommen aus...was willst du da rumparsen?
 

Cloud

BeitragMi, Jan 07, 2004 16:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]

function KommaZahlJaNein(Zahl#)
  TempZahl% = floor(Zahl#)
  if Zahl# > TempZahl then
     return 1
  else
     return 0
  endif
end function


bei 1 kommazahl bei 0 keine (geht bei allen KommaZahlen außer wenn hinter dem komma nur 0 sind z.B. 1.00000)
Duron 1200 | 256 RAM | Geforce 2 TI

DC

Sieger des B2D Retro Wettbewerb / Aug 04

BeitragMi, Jan 07, 2004 18:53
Antworten mit Zitat
Benutzer-Profile anzeigen
@Cloud: Oh gute Lösung! Schöner als mein dummes teil Smile

@OJay: Weil man ja Variablen verwenden möchte. BB hängt leider an alle Floats ein ".0", wenn sie in Strings umgewandelt werden und kein Komma haben. Und für instr werden sie in Strings umgewandelt -> Instr liefert bei Floats nicht 0 zurück, egal ob es stellen hinterm Komma gibt oder nicht
Core i5 4670K | 4 x 3,40 GHZ | 16 GB Ram | GeForce GTX 960 | HTC Vive | Win 10 Pro
www.UnrealSoftware.de | www.StrandedOnline.de | www.CS2D.com |
www.CarnageContest.com | www.Stranded3.com

Travis

BeitragMi, Jan 07, 2004 19:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]

Zahl# = 3.141529

If Zahl# - Int(Zahl#) > 0 Then Komma = True
If Zahl# - Int(Zahl#) = 0 Then Komma = False

Print Zahl# + " Kommazahl " + Komma


Oder mit Funktion
Code: [AUSKLAPPEN]

Zahl# = 3.141529

Print Zahl# + " Kommazahl: " + Komma(Zahl#)

; Variable = Komma(Zahl#)
;Prüft, ob eine bestimmte Zahl eine Kommazahl ist.
;Gibt bei einer Kommazahl "1" zurück
;Gibt bei einer Ganzzahl "0" zurück.


Function Komma(Zahl#)
 If Zahl# - Int(Zahl#) > 0 Then Komma = True
 If Zahl# - Int(Zahl#) = 0 Then Komma = False
 Return Komma
End Function
www.funforge.org

Ich hasse WASD-Steuerung.

Man kann alles sagen, man muss es nur vernünftig begründen können.

mahe

BeitragMi, Jan 07, 2004 19:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
Function Komma(Zahl#)
 If Zahl# = Int(Zahl#) Then Return False
 Return True
End Function
ʇɹǝıdɯnɹɹoʞ ɹnʇɐuƃıs - ǝpoɥʇǝɯ-ɹoɹɹıɯ ɹǝp uı ,ɹoɹɹǝ,

Travis

BeitragMi, Jan 07, 2004 19:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Stimmt, die Version ist besser! Very Happy

Code: [AUSKLAPPEN]

If Zahl# - Int(Zahl#) = 0 Then Komma = False


Embarassed Embarassed Schäm
www.funforge.org

Ich hasse WASD-Steuerung.

Man kann alles sagen, man muss es nur vernünftig begründen können.

Valio

BeitragDo, Jan 08, 2004 2:17
Antworten mit Zitat
Benutzer-Profile anzeigen
mahe hat Folgendes geschrieben:
Code: [AUSKLAPPEN]
Function Komma(Zahl#)
 If Zahl# = Int(Zahl#) Then Return False
 Return True
End Function


Tststs Wink Code: [AUSKLAPPEN]
Function Komma(Zahl#)
 Return Zahl# <> Int(Zahl#)
End Function
Programming today is a race between software engineers striving to build better and bigger idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning. - Rick Cook
Gegen TCPA || Stoppt RFID || Tux user #361946 || User posted image

mahe

BeitragDo, Jan 08, 2004 20:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich denke jetzt ist es perfekt Very Happy
ʇɹǝıdɯnɹɹoʞ ɹnʇɐuƃıs - ǝpoɥʇǝɯ-ɹoɹɹıɯ ɹǝp uı ,ɹoɹɹǝ,
 

Marius

BeitragFr, Jan 09, 2004 15:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke Euch allen.
Ich bin noch Anfänger und wollte einfach mal aus Spass ein Programm schreiben, dass eine Zahl in ihre Teiler zerlegt. Bis zu 11 Stellen (manchmal auch weiter) funktioniert das auch gut. Das ist jetzt mein 2tes Programm. Mein erstes War eine Zinseszinsberechnung.
Hier ist der Code zu dem Zerlegprogramm mit dem Beispiel von Cloud:


;------Und los:

Graphics 600,700
Print "Hallo!"
Print "Ich bin ein Programm zum Zerlegen einer Zahl ohne Komma!"
Print "Bitte geben sie ihre Zahl ein:"

;------Input:

Zahl# = Input ()
test = 2
Print ""
Print "Die Zahl hat die Teiler:"

;------Rechnung:

.nochmal
Dividiert# = Zahl#/test
JaoderNein# = KommaZahlJaNein(Dividiert#)


If JaoderNein# = 1 Then
test = test + 1
Goto nochmal
EndIf

If JaoderNein# = 0 Then
Print test
Zahl# = Dividiert#
EndIf

If Zahl# = 1 Then Goto Schluss
If Zahl# > 1 Then Goto nochmal

;------Schlusssatz:

.Schluss
Print ""
Print ""
Print ""
Print "Dieses Programm ist durch internationale Uhrheberrechte geschützt."
Print "Alle erwähnten Marken sind Eigentum der Firma Marius Heil inc."
Print "Verletzung der Uhrheberrechte wird Zivil und Strafrechtlich verfolgt."
Print ""
Print "(c) by Marius Heil"

WaitKey
End


;------Funktion zum testen der Zahl auf Komma von Cloud:
Function KommaZahlJaNein(Dividiert#)
TempZahl% = Floor(Dividiert#)
If Dividiert# > TempZahl Then
Return 1
Else
Return 0
EndIf
End Function

WaitKey
End
Keybord not found!
Press F2 to continue!

Valio

BeitragFr, Jan 09, 2004 18:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Print "Dieses Programm ist durch internationale Uhrheberrechte geschützt."
Print "Alle erwähnten Marken sind Eigentum der Firma Marius Heil inc."
Print "Verletzung der Uhrheberrechte wird Zivil und Strafrechtlich verfolgt."

LOL, glaube nicht dass du eine eigene Firma besitzt Razz

Dein Programm gibt übrigens nur korrekte Ausgaben für n>=2 (d.h. nicht für 0, 1 und alle negativen Zahlen).
Programming today is a race between software engineers striving to build better and bigger idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning. - Rick Cook
Gegen TCPA || Stoppt RFID || Tux user #361946 || User posted image

Travis

BeitragFr, Jan 09, 2004 22:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Also mir reicht da ein einfaches "Copyright (C) 2004 by Travis" und natürlich der Programmname und die Version. Smile [/code]
www.funforge.org

Ich hasse WASD-Steuerung.

Man kann alles sagen, man muss es nur vernünftig begründen können.
 

Marius

BeitragSa, Jan 10, 2004 15:46
Antworten mit Zitat
Benutzer-Profile anzeigen
War auch nicht für Komma und negativzahlen gedacht.
Jetzt muss ich's mur noch ein bissl für Q Basic umscheiben, dass es in den Taschenrechner passt.
Keybord not found!
Press F2 to continue!

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group