zahlen zählen...

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

Splinner

Betreff: zahlen zählen...

BeitragMi, Jun 30, 2004 0:44
Antworten mit Zitat
Benutzer-Profile anzeigen
hallo,

is nur n total kleines prob aber ich komm nicht dahinter :

Code: [AUSKLAPPEN]

Global x1$,x2

For x = 1 To 100
   x1 = x
   For y = 1 To Len(x1)
    If Instr(x1,"9") Then
     x2=x2+1
     x1 = Replace(x1,"9","n")
    End If   
   Next
 Print x1
Next

Color 0,200,0 :Print "Ergebnis : "+x2
WaitKey()
End


so , ich will das am ende das ergebnis 20 ist....
die frage ist wie oft schreibt man die zahl 9 wenn man die zahlen 1 bis 100 aufschreibt....doch ich bekomme es aus irgendwelchen gründen nicht hin den string richtig abzufragen damit er jede zahl in einer zahl abfragt...das ergebnis ist immer 19...

also z.b. bei 99 muss er ja 2 mal die 9 zählen , das tut er aber nicht...
das da oben ist ca. der 6te versuch , hab schon alle mögliche hin und her programmiert aber komm zu keinem ergebnis...hab lange nichtmehr programmiert , warscheinlich muss ich nur mal wieder reinkommen...

soli

BeitragMi, Jun 30, 2004 2:21
Antworten mit Zitat
Benutzer-Profile anzeigen
du vermischt da variablen mit strings.
wenn überhaut dann müsste es so heissen

x1$=str$(x)

und dann benutzt du am besten mid$
zum absuchen.

also pseudo
for x=1 to 100
for laenge=1 to len(str$(x)
if mid$(str$(x), laenge,1)=str$(9)
; mach was
endif
next
next
solitaire
 

Dreamora

BeitragMi, Jun 30, 2004 2:30
Antworten mit Zitat
Benutzer-Profile anzeigen
wo is genau das problem?
von 1 - 100 sind auch nur 19 9en ...

9 - 19 - 29 - 39 - 49 - 59 - 69 - 79 - 89 = 9
90 - 91 - 92 - 93 - 94 - 95 - 96 - 97 - 98 - 99 = 10


Oder habe ich da irgend eine 9 verpeilt?
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

soli

BeitragMi, Jun 30, 2004 3:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Oder habe ich da irgend eine 9 verpeilt?


99= eine 9 + eine 9 = 2 Neunen
solitaire

regaa

Betreff: Re: zahlen zählen...

BeitragMi, Jun 30, 2004 10:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Splinner hat Folgendes geschrieben:
hallo,

is nur n total kleines prob aber ich komm nicht dahinter :

Code: [AUSKLAPPEN]

    If Instr(x1,"9") Then
 ...



Du prüfst ja auch nur auf eine 9. Versuch jede Ziffer durchzugehen und nicht sofort die ganze Zahl.

EDIT: Sry, verguckt, hab die replace - zeile nicht gesehen.
UltraMixer Professional 3 - Download
QB,HTML,CSS,JS,PHP,SQL,>>B2D,B3D,BP,BlitzMax,C,C++,Java,C#,VB6 , C#, VB.Net
 

Dreamora

BeitragMi, Jun 30, 2004 10:36
Antworten mit Zitat
Benutzer-Profile anzeigen
versuchs ma mit mid, vielleicht findet sich damit 2x die 9?
weil das replace sollte eigentlich alle 9 auf einma ersetzen.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Jan_

Ehemaliger Admin

BeitragMi, Jun 30, 2004 10:58
Antworten mit Zitat
Benutzer-Profile anzeigen
weil du bei Replace alle auf n setzt!
Global x1$,x2

Code: [AUSKLAPPEN]
For x = 1 To 200
   x1 = x
   Repeat
      pos = Instr(x1,"9",y)
      If pos Then
         x2=x2+1
      End If
      y = pos+1
   Until pos =0
   Print x1
Next

Print "Ergebnis : "+x2
WaitKey()
End
between angels and insects

Splinner

BeitragMi, Jun 30, 2004 13:13
Antworten mit Zitat
Benutzer-Profile anzeigen
danke für die vielen antworten....

genau das wars! ich hab mid verplant und irgendwie auch nicht mehr gewusst das replace alle zahlen dann gleich auf n setzt...
danke genau das war der fehler...

Splinner

BeitragMi, Jun 30, 2004 13:15
Antworten mit Zitat
Benutzer-Profile anzeigen
wow , ich habe gerade eine neue erkenntnis erlangt das : instr() auch aus einer zahl suchen kann, es muss garkein string sein...

regaa

BeitragMi, Jun 30, 2004 16:52
Antworten mit Zitat
Benutzer-Profile anzeigen
ja stell dir vor ne zahl kann auch ein string sein.
UltraMixer Professional 3 - Download
QB,HTML,CSS,JS,PHP,SQL,>>B2D,B3D,BP,BlitzMax,C,C++,Java,C#,VB6 , C#, VB.Net

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group