PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Visual Basic Frage - bestimmt nichts schweres ;-)


andre87
2009-07-06, 11:57:42
Hi,
schreiben bald ne Winfo Klausur, die auch Visual Basci behandelt, leider bin ich daim moment (noch) ein bisschen überfordert:redface:

Könnte mir vll jmd sagen was bei dem Programmtext falsch ist und im besten Fall noch warum?
Wäre echt super!

http://www.abload.de/img/aufgabe3bor.jpg

mfg

Gast
2009-07-06, 12:07:54
Anzahl - Val(...) - Rechnung ohne Ziel

select case .. THEN - Interesanter Dialekt

sollte auch END SELECT heissen ;-)

Tbeuro.text - Str(...) - Sollte man lieber "=" benutzen



PS: wenn du schon solche Fatalen Sachen nicht bemerkst - Dann Gnade dir Gott
bei der Prüfung - Dein Lehrer wirds nicht tun.

SentinelBorg
2009-07-06, 12:11:38
Bei Anzahl steht auch die falsche Textbox drin. Und irgendwo müsste dann EUR auch mal Anzahl gerechnet werden. ^^

andre87
2009-07-06, 12:19:39
Bei Anzahl steht auch die falsche Textbox drin. Und irgendwo müsste dann EUR auch mal Anzahl gerechnet werden. ^^

danke schonmal,

also mus das dann Anzahl=Val(tbxAnzahl.Text) heißen?

und was ist richtig, tbx*.texte oder tbx*_text ?


und müsste EUR in der zweiten Zeile nicht als Currency definiert sein?


und warum schreibt man unten nochmal tbxEuro.text = Str (EUR) hin, was hat das für einen Sinn?





So habe noch eine weitere Aufgabe:

Dim x as Integer, Dim y as Integer
x=val(txtZahl1.Text)
y=val(txtZahl2.Text)
if x>y then
MsgBox ("x<y")
Ende if

so jetzt sollen hier, lexikalischer, syntaktischer und semantischer Fehler bestimmt werden.

den lexikalischen hab ich, is ja offensichtlich bei dem Ende If.

der semantische ist bei der MsgBox, da sollte dann doch "x>y" stehen oder?

nur wo ist der syntaktische?

Der_Donnervogel
2009-07-06, 13:56:04
Richtig ist der Punkt und nicht der Unterstrich. Unterstriche haben in den allermeisten Sprachen keine Bedeutung. Diese werden nur genutzt um Leerzeichen zu ersetzen, die bei Variablen oder Funktionsnamen nicht erlaubt sind. Beispielsweise wird dann "Meine_Variable" statt "Meine Variable" geschrieben. Punkte dagegen haben sehr oft eine Bedeutung und trennen beispielsweise Objekt und Methode wie z.B. objekt.machwas()

Ich würde empfehlen, einfach schnell Visual Studio Express für VB.Net herunter zu laden und dort etwas zu experimentieren. Das ist eine recht gute Entwicklungsumgebung und es gibt auch eine Hilfe dazu.

Übrigens sind im ersten Programm folgende Fehler drinn:


Die Variable EUR als Integer zu definieren ist problematisch. Solange die Preise nur Ganzzahlen sind, funktioniert es. Ansonsten wäre ein Typ wie Currency besser.
Das selbe gilt auch für Stunden. Sofern auch Dinge wie 1,5 Stunden erlaubt sind, reicht ein Integer nicht mehr aus. In der Praxis wäre ein einfaches val() hier sowieso zu wenig, da User auch Dinge wie 1:30 eingeben könnten, aber das führt zu weit.
Stunde = Val(tbxStunden_text) Hier sind gleich zwei Fehler drinnen. Erstens heißt die Variablen "Stunden" und nicht "Stunde" und zweitens müßte es tbxStunden.text sein.
Anzahl = Val(tbxStunden_text) ist falsch, denn hier müßte es natürlich Anzahl = Val(tbxAnzahl.text) sein
Select Case Stunden then ist falsch, da das "then" beim Select nichts verloren hat. Das gehört zum if.
End If das müßte ein End Select sein
tbxEuro.Text = Str(EUR) ist falsch. Hier müßte so etwas in der Art sein: tbxEuro.Text = Str(EUR * Anzahl)

andre87
2009-07-06, 14:04:21
wow, danke , das hiflt mir aufjedenfall weiter.

nur eine frage noch:

für was steht das hier denn überhaupt?

tbxEuro.Text = Str(EUR)

wird da definiert was in der textbox dann stehen soll? das Str steht für string???



und kannst du vll noch was zu der aufgabe mit den lexikalischen fehlern etc sagen?

Der_Donnervogel
2009-07-06, 14:42:18
Ja, mit dieser Zuweisung wird der Wert der in der Textbox steht geändert. Über das .Text Property kann man sowohl abfragen was in der Textbox drinnen steht, als auch den Wert neu setzen.

Str() macht nichts anderes als ein Objekt in einen String umzuwandeln. Es macht also aus der Zahl 5 den String "5". Diese Funktion ist bei VB übrigens nicht zwingend notwendig und wird deshalb sehr oft weggelassen.

tbxEuro.Text = Str(EUR)
und
tbxEuro.Text = EUR

machen genau das selbe, da VB Typen auch automatisch umwandelt, sofern dies möglich ist.

Zur zweiten Aufgabe:
Dort sind wirklich mehrere Fehler drinnen. Allerdings sind die sehr einfach zu finden. Wie gesagt, ich würde empfehlen Visual Studio herunter zu laden. Das wird zumindest die lexikalischen und syntaktischen Fehler gleich beanstanden. Mit einem kurzen Test wird man dann auch die semantischen Fehler schnell finden.

Übrigens so als kleinen Tipp zur Aufgabe. Ich sehe so auf den ersten Blick keinen lexikalischen Fehler, zwei Syntaxfehler und einen Semantikfehler.
den lexikalischen hab ich, is ja offensichtlich bei dem Ende If.

der semantische ist bei der MsgBox, da sollte dann doch "x>y" stehen oder?

nur wo ist der syntaktische?Also das "Ende" ist falsch. Ich hätte jetzt zwar gedacht, das ist ein Syntaxfehler, aber egal. Falsch ist es auf jeden Fall. Der Semantikfehler ist das mit der MsgBox. ... und Syntaxfehler ist auch noch einer drinn und zwar ganz oben, beim Dim.