Übungsaufgabe für alle :: Nr. 3

Übersicht BlitzBasic Beginners-Corner

Gehe zu Seite Zurück  1, 2, 3, 4  Weiter

Neue Antwort erstellen

 

noir

BeitragFr, Dez 24, 2004 0:19
Antworten mit Zitat
Benutzer-Profile anzeigen
bei mir geht er

übrigens mach noch dein locate weg, benutze lieber text, denn so wie du das versucht hast zu programmieren überschreiben sich die ergebnisse auf dem bildschirm. oder positioniere cls und locate richtig.

welche fehlermeldung kommt den.

ps. wenn du noch mehr fragen zu diesem mini code öffne ein neues thema, denn hier is nicht der richtige platz dafür, hier sollten nur "wichtige" posts rein, die direkt den wettbewerb betreffen.
  • Zuletzt bearbeitet von noir am Fr, Dez 24, 2004 0:21, insgesamt einmal bearbeitet
 

azureuz

BeitragFr, Dez 24, 2004 0:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
   Function dez()
      Cls
      Locate 0,0
      dezi$=Input("Bitte Dezimalzahl eingeben: ")
      Locate 0,0
      Print "Hexdezimal: "+Hex$(dezi$)
      Print "Binär: "+Bin$(dezi$)
      Cls
      WaitKey()
   End Function


das geht bei dir...? was? kann ich dir mal meinen kompletten code per pm oder so schicken?

Holzchopf

Meisterpacker

BeitragFr, Dez 24, 2004 0:22
Antworten mit Zitat
Benutzer-Profile anzeigen
azureuz hat Folgendes geschrieben:
nein. irgendwie steig ich bei dir nicht durch. so sieht der code teil aus:

Code: [AUSKLAPPEN]
   Function dez()
      Cls
      Locate 0,0
      dezi$=Input("Bitte Dezimalzahl eingeben: ")
      Locate 0,0
      Print "Hexdezimal: "+Hex$(dezi$)
      Print "Binär: "+Bin$(dezi$)
      Cls
      WaitKey()
   End Function


mehr nicht. keine 2 teile. du verwirrst mich hier echt...


azureuz hat Folgendes geschrieben:
Code: [AUSKLAPPEN]
   Function dez()
      Cls
      Locate 0,0
      dezi$=Input("Bitte Dezimalzahl eingeben: ")
      Locate 0,0
      Print "Hexdezimal: "+Hex$(dezi$)
      Print "Binär: "+Bin$(dezi$)
      Cls
      WaitKey()
   End Function


das geht bei dir...? was? kann ich dir mal meinen kompletten code per pm oder so schicken?


Was jetzt? Erst sagst du, dass da keine weiteren Teile sind und jetzt sprichst du von deinem kompletten Code Question Wer verwirrt hier wen wohl mehr Confused
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BYBinaryBorn - Yogurt ♫ (31.10.2018)
Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm
 

noir

BeitragFr, Dez 24, 2004 0:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]

dez() ;<-- du musst die funktion aufrufen, falls du das nicht gemacht hast, obwohl dies nicht zu einer fehlermeldung führt.

;kurz und bündig
Function dez() 
      dezi$=Input("Bitte Dezimalzahl eingeben: ")
      Print "Hexdezimal: "+Hex$(dezi$)
      Print "Binär: "+Bin$(dezi$)
      WaitKey()
End Function


- hier meine letzte antwort!



!Vielleicht is der Fehler in deinem übrigen Code Twisted Evil
  • Zuletzt bearbeitet von noir am Fr, Dez 24, 2004 0:29, insgesamt 2-mal bearbeitet
 

azureuz

BeitragFr, Dez 24, 2004 0:28
Antworten mit Zitat
Benutzer-Profile anzeigen
@holzkopf
natürlich geht es noch weiter. ich wollte jetzt aber nicht alles posten. nnacher funzt es doch und dann ist das ne lösung etc., verstehst? ich hab hier nur nen teil gepostet.

@noir
die funktion wird aufgerufen, aber der fehler kommt immernoch. oh man...das wird wohl nie was :/

@all
der code funktioniert ja so. wenn ich nur sgae das er mir die zahl die ich eingegeben habe ausgeben soll, macht er das. aber mit dem hex und bin geht das nicht.

es geht Shocked
ich hab mal die beiden anderen funktionen mit dem ";" weg gelassen und dann geht das...?

trotzdem an alle ein danke!

wunderkind

BeitragFr, Dez 24, 2004 8:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Hey, ihr seid gut dabei. Allerdings sollen die Funktionen zum Umwandeln selbstgeschrieben werden.

Kryan

BeitragFr, Dez 24, 2004 9:39
Antworten mit Zitat
Benutzer-Profile anzeigen
darf ich teilösungen schicken???
Webspaceanbieter?
Klick hier!
Kultige Spieleschmiede?
Klick hier!

wunderkind

BeitragFr, Dez 24, 2004 10:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Beantworte doch lieber Fragen wenn es welche geben sollte Wink.
 

David

BeitragFr, Dez 24, 2004 11:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

Soll geprüft werden ob Zahlen reale Zahlen eines bestimmten Systems sind?
Also nicht das "12345" als Binärzahl angeben werden darf usw.

grüße

wunderkind

BeitragFr, Dez 24, 2004 11:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Guter Einwand!

Eingabefehler müssen abgefangen werden! 011101105 wäre ein Fehler und muss "entdeckt" werden. A345F87ZZ ebenfalls.
 

David

BeitragFr, Dez 24, 2004 11:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

Gut, wenn jetzt keine weiteren Anforderungen kommen bin ich fertig! Wink

grüße

Kryan

BeitragFr, Dez 24, 2004 11:48
Antworten mit Zitat
Benutzer-Profile anzeigen
ich auch

wie hast du die überprüfung gemacht, ob es ne hex-zahl ist oder ne bin-zahl??
Webspaceanbieter?
Klick hier!
Kultige Spieleschmiede?
Klick hier!
 

David

BeitragFr, Dez 24, 2004 11:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

Beim Eingabestring jeden Charakter auf gültigkeit getestet... Wink

Nagut:

Code: [AUSKLAPPEN]

; ===================
;
; CheckValidBin()
;

Function CheckValidBin( val$ )
   For i% = 1 To Len( val$ )
      c$ = Mid( val$, i, 1 )
      
      If ( c$ < "0" Or c$ > "1" ) Return False
   Next
   
   Return True
End Function


grüße

D2006

Administrator

BeitragFr, Dez 24, 2004 12:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,

meine ersten Einwände, die ich in diesem Thread gepostet habe, brachten mich dazu eine Funktion Float -> Binär zu coden. Wie es so ist, bin ich gestern an einer Stelle stehengeblieben und konnte einen Fehler nicht finden. Diese Nacht ist er mir in der Einschlafphase dann einfach so eingefallen und jetzt geht es (war natürlich ein total simpler Fehler):

Float -> Binär
Code: [AUSKLAPPEN]

Function float_bin$(val#)
   If val<0 Then vz$="1" Else vz$="0"
   val=Abs(val)
   
   dat$=""
   For t=20 To -20 Step -1
   If val# => 2^t Then val# = val - 2^t : dat$=dat$+"1" Else dat$=dat$+"0"
   If t=0 Then dat$=dat$+"."
   Next
   
   a = Instr(dat$,"1")
   b = Instr(dat$,".")
   If a > b Then a=b
   dat$=Mid$(dat$,a)
   a=0
   Repeat
    b=a+1
    a=Instr(dat$,"1",b)
   Until a=0
   dat$=Left$(dat$,b-1)    
   
   If Left$(dat$,1)="." Then
      c=Instr(dat$,"1")
      expo= - (c-1)
      dat$=Mid$(dat$,c+1)
   Else
      c=Instr(dat$,".")
      expo=c-2
      dat$=Replace(dat$,".","")
      dat$=Mid$(dat$,2)      
   EndIf
   
   For t=Len(dat$) To 22
   dat$=dat$+"0"
   Next
   dat$ = Left$(dat$,23)
   dat$ = vz$ + Right$(Bin$(127+expo),8)+dat$
   
   Return dat$
End Function


Binär -> Float (und Bit -> Byte)
Code: [AUSKLAPPEN]

Function bin_float#(dat$)
If Left$(dat$,1)="1" Then vz=-1 Else vz=1
expo = bit_byte(Mid$(dat,2,8)) - 127
val# = 2^expo
st = 10
For t=10 To 32
   If Mid$(dat$,t,1)="1" Then val#=val#+ 2^(9+expo-t)
Next   
Return val
End Function

Function bit_byte(dat$)
   val=0
   For t=1 To 8
      If Mid$(dat$,t,1)="1" Then val = val + 2^(8-t)
   Next
   Return val
End Function


Blöderweise gibts bei Zahlen wie .02 schon Artefakte.

Hier mal die Zahl 166.125 (war bei Wiki, zur Überprüfung) als Binärcode:
01000011 00100110 00100000 00000000

Ich poste sie jetzt schon, da sie ja sowieso außer Konkurrenz laufen.

Frohes Fest und MfG
D2006
 

David

BeitragFr, Dez 24, 2004 12:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

Sehr nice! Smile

grüße

Kryan

BeitragFr, Dez 24, 2004 12:26
Antworten mit Zitat
Benutzer-Profile anzeigen
ich so:
Code: [AUSKLAPPEN]
Function IsntHex(hexz$)
 For i=1 To Len( hexz$)
  fehler=1
  Select Mid$(hexz$,i,1)
  Case "0" fehler=0
  Case "1" fehler=0
  Case "2" fehler=0
  Case "3" fehler=0
  Case "4" fehler=0
  Case "5" fehler=0
  Case "6" fehler=0
  Case "7" fehler=0
  Case "8" fehler=0
  Case "9" fehler=0
  Case "A" fehler=0
  Case "B" fehler=0
  Case "C" fehler=0
  Case "D" fehler=0
  Case "E" fehler=0
  Case "F" fehler=0
  End Select
  If fehler Then Return 1
 Next
 Return 0
End Function
Function IsntBin(binz$)
 For i=1 To Len(binz$)
  fehler=1
  Select Mid$(binz$,i,1)
  Case "0" fehler=0
  Case "1" fehler=0
  End Select
  If fehler Then Return 1
 Next
 Return 0
End Function

wenn 1 zurückgegeben wird,dann isn fehler
Webspaceanbieter?
Klick hier!
Kultige Spieleschmiede?
Klick hier!
 

David

BeitragFr, Dez 24, 2004 12:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

Bisschen umständlich oder? Wink
Aber wenns denn klappt...

@D2006: Mit sowas hab ich auchmal rumhantiert, wollte damals wissen wie man aus Dateien 32 Bit Floatwerte auslesen kann. Also die reinen Bytewerte in den entsprechenden Floatwert.

http://mitglied.lycos.de/David...EFloat.cpp

grüße

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragSa, Dez 25, 2004 11:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,
habe das auch schon fertig, aber da ist noch ein Problem
Beispiel:
Bin nach Dez:
bis 26 bit geht es ohne Probleme aber
beim rechnen von 2^27 kommt das ergebnis in wissenschaftliche Notation oder wie das heißt !
Das ergebnis stimmt dann nicht richtig!

mit hex ist es noch schlimmer!
$F00000 =
15* 16^6 = 2.51658e+008 = 251658000
richtig ist aber 251658240
Crying or Very sad
ich könnte natürlich die Rechnungen noch selber coden damit ich nicht in wissenschaftlicher notation rechnen muß, aber die Zeit habe ich jetzt nicht!
Und die Lust läßt auch zu wünschen....

@wunderkind:
was dagegen wenn ich die exe schon jetzt reinstelle?
Code kommt aber erst am 30.
[BB2D | BB3D | BB+]

wunderkind

BeitragSo, Dez 26, 2004 18:15
Antworten mit Zitat
Benutzer-Profile anzeigen
@Rallimen
exe ist genehmigt Wink.

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragSo, Dez 26, 2004 18:40
Antworten mit Zitat
Benutzer-Profile anzeigen
hier kommt das Programm:
http://people.freenet.de/rallimen/Basic/
[BB2D | BB3D | BB+]

Gehe zu Seite Zurück  1, 2, 3, 4  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group