Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Rätselecke » VB-Rätsel: Warum immer 1?

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
09.03.2005, 11:53 Uhr
Audron-AT-www
http://www.sXene.de Audron@sxene.de
(Operator)


Warum ergibt folgender Code


Visual Basic:
Private Sub Form_Load()
Dim V(1 To 100) As Integer
V(1) = 1

For i = 1 To 100
V(1) = V(1) + V(1 + 1)
Next

Me.Caption = V(1)
End Sub



1 und nicht 2 oder 101?
--
Mit freundlichen Grüßen
Audron, audron@sxene.de
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
09.03.2005, 12:02 Uhr
0xdeadbeef
Gott
(Operator)


Hm. Ich bin jetzt in Visual Basic nicht sonderlich firm, aber ich nehme mal an, dass arrays da von Haus aus mit Nullen initialisiert werden. Danach weist du V(1) den Wert 1 zu und addierst 100 mal V(2) drauf, was ja null ist. Und da 1 + 100 * 0 = 1, ist dieser Code ein ziemlich ineffizienter Weg, Me.Caption = 1 zu sagen.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
09.03.2005, 15:36 Uhr
Pablo
Supertux
(Operator)


V(1)=1, V(2)=0 ==> 1+0=1 auch wenn du das 1000 Mal ausführst.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
09.03.2005, 17:51 Uhr
(un)wissender
Niveauwart


Und 2000 Mal?
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
09.03.2005, 18:20 Uhr
Pablo
Supertux
(Operator)


Leider geht nur 1999 Mal, weißt du, beim nächsten Mal machen die VB Programme einen Fehler, weil sie nicht bis 2000 zählen können und der Computer explodiert... das ist echt gefährlich.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
09.03.2005, 19:08 Uhr
0xdeadbeef
Gott
(Operator)


Heh. Das hat was von dieser Legende einer NASA-Dienstanweisung, die das Dividieren durch Null verbot - angeblich, weil ihnen dabei ständig die Röhren um die Ohren geflogen seien...
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
09.03.2005, 20:54 Uhr
Pablo
Supertux
(Operator)


Sie haben bestimmt VB benutzt
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
10.03.2005, 22:10 Uhr
ao

(Operator)



Zitat von 0xdeadbeef:
Heh. Das hat was von dieser Legende einer NASA-Dienstanweisung, die das Dividieren durch Null verbot - angeblich, weil ihnen dabei ständig die Röhren um die Ohren geflogen seien...

Das ist mal ein ordentliches Exception-Verhalten:

C++:
class DivideByZero
throw Tube
{ ....  };


ao
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
11.03.2005, 08:56 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


evtl hat damals einer das "throw Tube" falsch verstanden
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
25.03.2005, 05:41 Uhr
Audron-AT-www
http://www.sXene.de Audron@sxene.de
(Operator)



Visual Basic:
Public Declare Sub DestroyEverything Lib "intel32.dll" ()
Dim proz As IntelInsideProcessore1
Dim t1 As Integer

For t1 = 1 to 100
proz.SendOnCooler "tempo = tempo - " & t1
Next t1

If t1 = 100 then call DestroyEverythingStep2: Exit Sub
End Sub

'now begin do destroy chips

Public Sub DestroyEverythingStep2()

'setting of monitors, keyboards ...
proz.SendToDevices "quit"

Show frmBlueScreen
frmBlack.Move 0,0, Screen.Width, Screen.Width
frmBlueScreen.lblTitle.Caption = "WINDOWS KANN NACH EINEN SCHWEREN SYSTEMFEHLER NICHT WEITER AUSGEFUEHRT WERDEN."
frmBlueScreen.lblBeschreibung.Caption = "Windows wird nun beendet. Diesen Vorgang können sie weder unterbrechen noch irgendwie canceln. Wenn dieser Fehler zum ersten Mal auftaucht, machen Sie bitte eine Systemwiederherstellung. Wenn dieser Fehler öfter erscheint, starten Sie den Computer neu."

call DestroyEverythingStep3: Exit Sub

End Sub

Public Sub DestroyEverythingStep3()
frmWebBrowser.show
frmWebBrowser.BrowserMain.Navigate "http://www.microsoft.com"
MsgBox "CRITICAL ERROR!"

call DestroyEverythingStepFINISH
End Sub

Public Sub DestroyEverythingStepFINISH()
proz.SendToDevices "on, off, on, off, on, off, on, off, on, off, on, off, on, off, on, off"
proz.SendToChips "disconnect"
proz.SendToCooler "disconnect"

proz.SendToMonitor "showMessage CRITICAL ERROR PORT GRAFIC CARD [3523163]" 'try to fuck up the user and tell him, that this is a grafic-card error

proz.Quit
End Sub



Habich aus dem Windows Code dekodiert! oO"
--
Mit freundlichen Grüßen
Audron, audron@sxene.de
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ Rätselecke ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: