Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo~

In der Schule haben wir mit Visual Basic angefangen und ich muss mich leider als ein blutiger anfänger outen :(

Um kurz mein Problem darzustellen (bzgl. Additionsprogram):

Wir haben ein Additionsprogram (Kreisprogram, Zinsberechnungsprogram) angefangen. Ich sitze dann vor dem Pc und weiß im grunde nicht, wie ich diesen "Quellcode" schreiben soll.

Die oberfläche bekomme ich noch hin~ grad so uÛ

Andauernd kommen irgendwelche Fehlermeldungen und die Rechenzeichen verschwinden einfach und

Die Texte die wir von unserem Lehrer bekommen haben, helfen mir nicht wirklich weiter und im Netz finde ich nicht wirklich was.

Zudem sind in meiner Klasse einige, die das super beherrschen und der Lehrer schaut nur auf sie..also nach dem Motto: Wenn die das alles schön fertig gemacht haben, geht es zum nächsten Thema weiter ohne es nochmal zu erklären oder so.

Und ich verzweifel echt grad.

Ich weis nicht was ich noch machen soll...

Vielleicht findet sich hier einer der mir evtl. helfen könnte, vllt. auch emailkontakt oder msn oder icq zur hilfe~

wäre echt lieb

liebe grüße

SakiSa

Geschrieben

Hallo,

das scheint eine beliebte Krankheit bei Lehrern zu sein. Manche Lehrer machen es auch unbewusst und ohne böse Absicht. Hier solltest Du bei solchen Sachen sofort dein Veto einlegen. Auch wenn die anderen Klassenkamaraden mit Unmut reagieren sollten. Hier einfach ein breites Kreuz machen denn es geht um deine Ausbildung.

Wenn Du den Quellcode hier mal postest, dann bekommst Du sicherlich die richtigen Hinweise.

Frank

Geschrieben

Ja~

hatte man versucht! Er ist so: "Ich weiß alles hr nichts!" hauptsache er bekommt seinen unterricht durch!!

Ja brauch die Punkte für die Qualifikation fürs ABi uû°

na gut..ich weis es wimmelt evtl. von Fehlern aber naja:

Private_Sub Form_Load ()

Dim Zahl1 as Double

Dim Zahl2 as Double

Dim Ergebnis as Double

End Sub

Private_Sub Berechnen_Click ()

Zahl1 + Zahl2 = Ergebnis

Ergebnis = Berechnen

Also..sowas hab ich bisher...

und wie gesagt Rechenzeichen verschwinden seltsamer weise und mitlerweile stehe ich mit den PC´s auf Kriegsfuß!:D

lg

SakiSa

Geschrieben

Programmieren lernt man nicht von heute auf morgen, soviel muss Dir klar sein. Andere können das evtl besser, andere müssen es eben lernen. Vielleicht von mir der Ratschlag, bevor du mit Quellcodes anfängst, mach dir erst einmal eine Skizze (z.B. Struktogramm) was das Programm leisten soll. Also z.B. wenn Du einen Button klickst, was muss Du für Schritte machen, damit ein (Teil-) Ergebnis erzeugt wird. Sprich bei Dir

  1. Daten aus dem Feld XYZ aus der Oberfläche in eine Variable lesen
  2. Daten aus dem Feld ABC aus der Oberfläche in eine Variable lesen
  3. mathematischen Operator aus der Oberfläche in eine Variable lesen
  4. Berechnung in Variable durchführen
  5. berechnete Variable an Oberfläche übergeben

eben so in der Art, mache es so kleinen Schritten wie möglich, d.h. Du fängst mit groben Schritten und verfeinerst immer wieder, bis Du diese kleinen Schritte in einzelne Befehle fassen kannst, die Du dann codierst.

Die Befehle ist dann nur noch reine Lernsache, ähnlich wie Vokabeln

Phil

Geschrieben
Programmieren lernt man nicht von heute auf morgen, soviel muss Dir klar sein. Andere können das evtl besser, andere müssen es eben lernen. Vielleicht von mir der Ratschlag, bevor du mit Quellcodes anfängst, mach dir erst einmal eine Skizze (z.B. Struktogramm) was das Programm leisten soll. Also z.B. wenn Du einen Button klickst, was muss Du für Schritte machen, damit ein (Teil-) Ergebnis erzeugt wird. Sprich bei Dir

  1. Daten aus dem Feld XYZ aus der Oberfläche in eine Variable lesen
  2. Daten aus dem Feld ABC aus der Oberfläche in eine Variable lesen
  3. mathematischen Operator aus der Oberfläche in eine Variable lesen
  4. Berechnung in Variable durchführen
  5. berechnete Variable an Oberfläche übergeben

eben so in der Art, mache es so kleinen Schritten wie möglich, d.h. Du fängst mit groben Schritten und verfeinerst immer wieder, bis Du diese kleinen Schritte in einzelne Befehle fassen kannst, die Du dann codierst.

Die Befehle ist dann nur noch reine Lernsache, ähnlich wie Vokabeln

Phil

Ja danke~ ^^°

das kann ich ja seltsamer weise~

aber es klappt in vb nich..

kommen halt immer irgendwelche fehlermeldungen

Geschrieben
Also die Zeilen


Zahl1 + Zahl2 = Ergebnis

Ergebnis = Berechnen

müssen schon mal so lauten:

Ergebnis = Zahl1 + Zahl2

Berechnen = Ergebnis

Frank

hab ich so geschrieben und es kommt "Invalid outside procedure" v.v

Geschrieben
Gibt es dazu auch eine Zeilennummer oder springt der in eine Zeile?

Kommentiere doch mal alles aus und nimm es schrittweise rein um den Fehler zu finden.

Frank

nya...der markiert mit Private_Sub und dann kommt halt die fehlermeldung

also...das Steht da bei mir und markiert die erste zeile Private_Sub!

Private_Sub

Dim Zahl1 As Double

Dim Zahl2 As Double

Dim Ergebnis As Double

End Sub

Private Sub Berechnen_Click()

Ergebnis = Zahl1 + Zahl2

Berechnen = Ergebnis

End Sub

Geschrieben

versuchs mal mit

Dim Zahl1 as Double

Dim Zahl2 as Double

Dim Ergebnis as Double

Private Sub Berechnen_Click()

Ergebnis = Zahl1 + Zahl2

Berechnen = Ergebnis

End Sub

Vor meiner Ausbildung wollte ich unter keinen Umständen programmieren.. ;)

nuja.. seit nunmehr 1,5 jahren (eigentlich mit beginn meiner ausbildung) programmiere ich eigentlich nur noch :D also.. klein anfangen und dann wird das schon - der rest ist syntax - wie es so schön heisst :)

Geschrieben
versuchs mal mit

Dim Zahl1 as Double

Dim Zahl2 as Double

Dim Ergebnis as Double

Private Sub Berechnen_Click()

Ergebnis = Zahl1 + Zahl2

Berechnen = Ergebnis

End Sub

Vor meiner Ausbildung wollte ich unter keinen Umständen programmieren.. ;)

nuja.. seit nunmehr 1,5 jahren (eigentlich mit beginn meiner ausbildung) programmiere ich eigentlich nur noch :D also.. klein anfangen und dann wird das schon - der rest ist syntax - wie es so schön heisst :)

Also....ohne dieses am anfang private subd dingens?

geht das?

wie gesagt blutiger anfänger uu°° und hilflos;)

Geschrieben

jo genau

ich programmier zwar großteils VBA aber so den unterschied konnte ich bis dato nicht verstellen, und da gehts ohne ;) und mit "Dim.." deklarierst du dir ja variablen. deshalb sollte auch vb da keine "schachtelung" drumherum brauchen. was evtl. noch fehlen könnte (je nachdem ob VB das kann und es keine eigenschaft von VBA ist) wäre nen "Option Explicit" am modulbeginn, damit die variablen wirklich so deklariert werden wie du es willst.

Geschrieben
jo genau

ich programmier zwar großteils VBA aber so den unterschied konnte ich bis dato nicht verstellen, und da gehts ohne ;) und mit "Dim.." deklarierst du dir ja variablen. deshalb sollte auch vb da keine "schachtelung" drumherum brauchen. was evtl. noch fehlen könnte (je nachdem ob VB das kann und es keine eigenschaft von VBA ist) wäre nen "Option Explicit" am modulbeginn, damit die variablen wirklich so deklariert werden wie du es willst.

hm..ja....dieses option explicit kam in der schule auch heute die ganze zeit irgendwie

(hab ja versucht mitzukommen uû° naja...XDDDD egal :D)

aber gut...dann werde ich das heute mal versuchen danke~

aber..mal ne frage

ich hab mir ja die datei um vb bei mir zu installieren von der schule geholt. also von dem pc da aufn stick geamcht.

und~

da steht oben im fenster z.BVisual Basic 5.0

bei mir seht noch ce hinten dran..hat das was zu bedeuten?

@cartman

ui~ danke^^:):)

Geschrieben

hi...

nur mal eine Frage, hast du denn den Variaben zahl1 und zahl2 auch irgendwelche Werte gegeben?

Ansonsten könnte es aufgrund dessen auch schon zu Fehlern kommen!

Desweiteren immer daran denken...erst die Zuweisung, dann die Berechnung:

ergebnis = zahl1 + zahl2!!!

Achja und du willst zum Schluß den Wert ergebnis wieder mit einem Wert berechnen überschreiben...was steht denn in berechnen?

ach und lass dir ergebnis noch ausgeben^^

Schreibst du deine Sub's in einzelnen Modulen, wenn ja kann es sein das er die Variablen nicht sehen kann, weil du sie nicht "public" also öffentlich deklarierst!

also probier es mal aus, wenns dann nicht geht, schick wieder den code und Fehlermeldungen...

Geschrieben

:D

wenn das wirklich VB 5.0 ist, dann ist das uuuralt und seit mindestens 8 bis 10 jahren aus dem support.

in verbindung mit VB kenne ich CE nur als toolkit für mobilgeräte (navis, PDA's, ...).

s'Amstel

ja es ist 5.0

ich weis u.u

aber wir haben des halt im unterricht...keine ahnung warum der das macht!

*seufzt*

er hat die entscheidung der anderen klasse überlassen was wir durchnehmen :( leider

ahso..ö.ö

hatte mich nur gewundert was des heißt danke

Geschrieben

Also auch wenn ich mich zuletzt vor einigen jahren hier gemeldet habe, kann ich da noch ein wenig mitreden....immerhin ist meine Ausbildung schon ein wenig her :)

Also mal so als Crashkurs in Bezug auf VB (einschliesslich 6.0) und VBA....

Mal in Zusammenfassung die Basics:

1) Datentypen:

Um mit Variablen arbeiten zu können, müssen diese einen Datentyp haben.

Daher werden sie deklariert:Es gibt verschiedene Datentypen, die sich durch den Bereich unterscheiden. String für Zeichenketten (Wörter), Integer für Ganzzahlen(von -32768 bis +32767), Double für Kommazahlen und Long für Ganzzahlen größer als der Integerbereich.


Dim a as integer

Dim b as long

Dim c as double

Dim d as string

Dim d() as integer 

2) Es gibt Prozeduren und Functionen. Prozeduren werden "nur" abgearbeitet, Funktionen geben einen Wert zurück. Prozedur:

Sub test1()


end sub

Funktion: Gibt den Wert zurück, der der Funktion selbst zugewiesen wurde. Rückgabewert als String, Integer...sogar als Array Möglich.

Function test2() as string

   test2="hallo"

end Function

Beispiel Funktionsaufruf:

sub test1()

   msgbox test2

end sub

3)Grundpfeiler Prozedurale Programmierung steht auf 3 Grundpfeilern:
  1. Sequenzen (Zuweisungen)
  2. Abfragen
  3. Schleifen
Typische Sequenz:

i=1

Typische Abfrage:

If a=1 then

   ...

Elseif a=2 then

   ...

else

   ...

end if

oder aber mit Select case:

Select case i

case 1

   ...

case 2

   ...

case else

   ...

end select

Schleifen gibts in 2 Varianten: Kopfgesteuert und Fußgesteuert. Kopfgesteuert bedeutet: Erst die Abbruchbedingung, dann die Schleife. Fußgesteuert umgekehrt. Beispiel Kopfgesteuerte Schleife: Hier wird erst geprüft, ob die Bedingung schon zutrifft.

i=2

Do until i>1

   i=i+1

loop

Beispiel Fußgesteuerte Schleife: Hier wird IMMER erst einmal durchlaufen und dann geprüft, ob die Bedingung schon zutrifft.

i=1

Do 

   i=i+1

loop until i>1

Zuletzt gibt es noch festgesetzte Schleifen:

for i=1 to 10

   msgbox i

next i

DAS WARS AUCH SCHON FAST..... NAtürlich ist Programmierung weitaus komplizierter, aber es sollte ja auch nur ein Einstieg sein. Nun noch ein kleines Beispiel, wie eine Prozedur mit alle Grundpfeilern aussehen kann.

sub test()

Dim i as integer

dim str as string


i=0

do

   if i=1 then

      str="eins"

   elseif i=2 then

      str="zwei"

   else

      str=i

   end if


   Msgbox "I hat den Wert " & str


   i=i+1

loop until i>10


end sub

Und als Abschluss der Quellcode eines Quicksort für ein zweidimensionales Array:

Sub QuickSort(ByRef sArray As Variant, ByVal MinElem As Long, MaxElem As Long)

    Dim Mitte                 As Long

    Dim vDummy                As Variant

    Dim vDummy2               As Variant

    Dim i                     As Long

    Dim j                     As Long


    If MinElem > MaxElem Then

        Exit Sub

    End If


    Mitte = (MinElem + MaxElem) \ 2

    i = MinElem

    j = MaxElem


    Do


        Do While (sArray(0, i) < sArray(0, Mitte))

            i = i + 1

        Loop


        Do While (sArray(0, j) > sArray(0, Mitte))

            j = j - 1

        Loop


        If i <= j Then


            vDummy = sArray(0, j)

            vDummy2 = sArray(1, j)


            sArray(0, j) = sArray(0, i)

            sArray(1, j) = sArray(1, i)


            sArray(0, i) = vDummy

            sArray(1, i) = vDummy2


            i = i + 1

            j = j - 1

        End If


    Loop Until i > j


    QuickSort sArray, MinElem, j

    QuickSort sArray, i, MaxElem

End Sub

Geschrieben
Also auch wenn ich mich zuletzt vor einigen jahren hier gemeldet habe, kann ich da noch ein wenig mitreden....immerhin ist meine Ausbildung schon ein wenig her :)

Also mal so als Crashkurs in Bezug auf VB (einschliesslich 6.0) und VBA....

Mal in Zusammenfassung die Basics:

1) Datentypen:

Um mit Variablen arbeiten zu können, müssen diese einen Datentyp haben.

Daher werden sie deklariert:Es gibt verschiedene Datentypen, die sich durch den Bereich unterscheiden. String für Zeichenketten (Wörter), Integer für Ganzzahlen(von -32768 bis +32767), Double für Kommazahlen und Long für Ganzzahlen größer als der Integerbereich.


Dim a as integer

Dim b as long

Dim c as double

Dim d as string

Dim d() as integer 

2) Es gibt Prozeduren und Functionen. Prozeduren werden "nur" abgearbeitet, Funktionen geben einen Wert zurück. Prozedur:

Sub test1()


end sub

Funktion: Gibt den Wert zurück, der der Funktion selbst zugewiesen wurde. Rückgabewert als String, Integer...sogar als Array Möglich.

Function test2() as string

   test2="hallo"

end Function

Beispiel Funktionsaufruf:

sub test1()

   msgbox test2

end sub

3)Grundpfeiler Prozedurale Programmierung steht auf 3 Grundpfeilern:
  1. Sequenzen (Zuweisungen)
  2. Abfragen
  3. Schleifen
Typische Sequenz:

i=1

Typische Abfrage:

If a=1 then

   ...

Elseif a=2 then

   ...

else

   ...

end if

oder aber mit Select case:

Select case i

case 1

   ...

case 2

   ...

case else

   ...

end select

Schleifen gibts in 2 Varianten: Kopfgesteuert und Fußgesteuert. Kopfgesteuert bedeutet: Erst die Abbruchbedingung, dann die Schleife. Fußgesteuert umgekehrt. Beispiel Kopfgesteuerte Schleife: Hier wird erst geprüft, ob die Bedingung schon zutrifft.

i=2

Do until i>1

   i=i+1

loop

Beispiel Fußgesteuerte Schleife: Hier wird IMMER erst einmal durchlaufen und dann geprüft, ob die Bedingung schon zutrifft.

i=1

Do 

   i=i+1

loop until i>1

Zuletzt gibt es noch festgesetzte Schleifen:

for i=1 to 10

   msgbox i

next i

DAS WARS AUCH SCHON FAST..... NAtürlich ist Programmierung weitaus komplizierter, aber es sollte ja auch nur ein Einstieg sein. Nun noch ein kleines Beispiel, wie eine Prozedur mit alle Grundpfeilern aussehen kann.

sub test()

Dim i as integer

dim str as string


i=0

do

   if i=1 then

      str="eins"

   elseif i=2 then

      str="zwei"

   else

      str=i

   end if


   Msgbox "I hat den Wert " & str


   i=i+1

loop until i>10


end sub

Und als Abschluss der Quellcode eines Quicksort für ein zweidimensionales Array:

Sub QuickSort(ByRef sArray As Variant, ByVal MinElem As Long, MaxElem As Long)

    Dim Mitte                 As Long

    Dim vDummy                As Variant

    Dim vDummy2               As Variant

    Dim i                     As Long

    Dim j                     As Long


    If MinElem > MaxElem Then

        Exit Sub

    End If


    Mitte = (MinElem + MaxElem) \ 2

    i = MinElem

    j = MaxElem


    Do


        Do While (sArray(0, i) < sArray(0, Mitte))

            i = i + 1

        Loop


        Do While (sArray(0, j) > sArray(0, Mitte))

            j = j - 1

        Loop


        If i <= j Then


            vDummy = sArray(0, j)

            vDummy2 = sArray(1, j)


            sArray(0, j) = sArray(0, i)

            sArray(1, j) = sArray(1, i)


            sArray(0, i) = vDummy

            sArray(1, i) = vDummy2


            i = i + 1

            j = j - 1

        End If


    Loop Until i > j


    QuickSort sArray, MinElem, j

    QuickSort sArray, i, MaxElem

End Sub

Ah **

arigatou~

ö.ö das is mal ne erläuterung^^

ja..

ich werde mir das mal notieren und mit in unterricht nehmen morgen un übermorgen!

u.u

vlt. schaff ichs dann ja mal XDD

wenn nich habe ich ja noch die ganzen osterferien zeit zu üben!

und wollte mich hier schon gemeldet haben mein net ging nich..mal wieder

aber ich bin echt froh das es hier wenigstens kompetente leute gibt u_u nicht wie bei gewissen anderen seiten, wo man sofort angemotzt wird X.x

:D

aber für weitere tips und hilfen bin ich offen

;)

  • 2 Monate später...
Geschrieben

Also ich hab mal ein kleines Funktionierendes Programm auf Basis von deinem Problem geschrieben. Also der Code funktionier deffinitiv. Da du aber von nur abschreiben nichts lernst, habe ich jeden einzelnen codeschnipsel für dich komentiert. Damit du eine Ahnung bekommst, welcher code was genau tut.

Ich hoffe du kannst etwas damit anfangen auch wenn der Threat schon etwas älter ist.

also zuerst habe ich eine Form angelegt. Die sieht bei mir so aus:

form1.jpg

und dazu gehört nun folgender Code:


'Das hier bedeutet das wenn ich mich später

'bei den Variablen vertippen sollte das Programm sofort schreit

Option Explicit

Dim Zahl1 As Double 'Hier wird die Zahl1 Deklariert. Es ist ein Gleitkommazahl mit vorzeichen (double)

Dim Zahl2 As Double 'Hier wird dann auch noch Zahl2 deklariert

Dim Ergebnis As Double ' Wie sollte es anders sein, auch das Ergebnis wird deklariert



Private Sub cmd_berechnen_Click() 'Alles was ab hier kommt, passiert wenn man auf cmd_berechnen klickt


'Hier bekommt die Variable "Zahl1" einen Wert zugewiesen und zwar genau den der bei txt_zahl1

'In der Eigenschaft Text drin steht. Das ist im allgemeinen der Inhalt des Textfeldes.

'Kurz:

'Zahl1 = der Inhalt vom Textfeld txt_zahl1

Zahl1 = txt_zahl1.Text


'Hier Passiert dann noch das selbe mit der Variablen Zahl2 und Textfeld txt_zahl2

Zahl2 = txt_zahl2.Text


'Hier kommmt es dann zu eigentlichen Berechnung:

'Die Variable wird hier mit dem Ergebnis von Zahl1 und Zahl2 gefüllt.

'Also zuerst wird berechnet wieviel Zahl1 + Zahl2 ergibt (das macht das +) und dann

'wird das in die Variable "Ergebnis" geschrieben.

Ergebnis = Zahl1 + Zahl2


'Hier wird das Ergebnis der Rechnung nur noch ausgegeben.

'Der Inhalt der Variable Ergebnis wird in die Eigenschaft "Caption" von lbl_ergebnis geschrieben

'Das hört sich schlimmer an als es ist. Labels haben keine Text Eigenschaft. Die Caption Eigenschaft

'bewirkt aber das selbe. Das ist nur dafür gut das man das Ergebnis dann in lbl_ergebnis sehen kann.

lbl_ergebnis.Caption = Ergebnis


End Sub 'hier endet die Prozedur von cmd_berechnen

PS:

Alles was nach einem ' steht ist ein komentar und wird von VB überlesen :bimei

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...