SakiSa Geschrieben 17. März 2009 Geschrieben 17. März 2009 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 Zitieren
robotto7831a Geschrieben 17. März 2009 Geschrieben 17. März 2009 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 Zitieren
SakiSa Geschrieben 17. März 2009 Autor Geschrieben 17. März 2009 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ß! lg SakiSa Zitieren
robotto7831a Geschrieben 17. März 2009 Geschrieben 17. März 2009 Also die Zeilen Zahl1 + Zahl2 = Ergebnis Ergebnis = Berechnen [/code] müssen schon mal so lauten: [code] Ergebnis = Zahl1 + Zahl2 Berechnen = Ergebnis Frank Zitieren
flashpixx Geschrieben 17. März 2009 Geschrieben 17. März 2009 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 Daten aus dem Feld XYZ aus der Oberfläche in eine Variable lesenDaten aus dem Feld ABC aus der Oberfläche in eine Variable lesenmathematischen Operator aus der Oberfläche in eine Variable lesenBerechnung in Variable durchführenberechnete 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 Zitieren
SakiSa Geschrieben 17. März 2009 Autor Geschrieben 17. März 2009 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 Daten aus dem Feld XYZ aus der Oberfläche in eine Variable lesenDaten aus dem Feld ABC aus der Oberfläche in eine Variable lesenmathematischen Operator aus der Oberfläche in eine Variable lesenBerechnung in Variable durchführenberechnete 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 Zitieren
SakiSa Geschrieben 17. März 2009 Autor Geschrieben 17. März 2009 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 Zitieren
robotto7831a Geschrieben 17. März 2009 Geschrieben 17. März 2009 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 Zitieren
SakiSa Geschrieben 17. März 2009 Autor Geschrieben 17. März 2009 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 Zitieren
Amenos Geschrieben 17. März 2009 Geschrieben 17. März 2009 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 also.. klein anfangen und dann wird das schon - der rest ist syntax - wie es so schön heisst Zitieren
SakiSa Geschrieben 17. März 2009 Autor Geschrieben 17. März 2009 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 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;) Zitieren
Amenos Geschrieben 18. März 2009 Geschrieben 18. März 2009 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. Zitieren
cartman1991 Geschrieben 18. März 2009 Geschrieben 18. März 2009 Heyo, Bin auch n blutiger Anfänger wie du ^^ Schnupper doch mal in dieses e-book rein >e-book< Nach den ersten paar Tagen kannste dann auch schon n Taschenrechner ^^ Mfg Cartman Zitieren
SakiSa Geschrieben 18. März 2009 Autor Geschrieben 18. März 2009 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 ) 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^^:) Zitieren
Amstelchen Geschrieben 18. März 2009 Geschrieben 18. März 2009 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 Zitieren
gelang(while)t Geschrieben 18. März 2009 Geschrieben 18. März 2009 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... Zitieren
SakiSa Geschrieben 19. März 2009 Autor Geschrieben 19. März 2009 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 Zitieren
Amstelchen Geschrieben 19. März 2009 Geschrieben 19. März 2009 ich hab da wohl etwas danebengegriffen mit den 8 bis 10 jahren der extended support für VB 6 lief bis 03/2008. vielleicht ganz interessant: Visual Basic 6.0 Resource Center Support Statement for Visual Basic 6.0 on Windows Vista and Windows Server 2008 Product Family Life Cycle Guidelines for Visual Basic 6.0 s'Amstel Zitieren
Dani_Various Geschrieben 24. März 2009 Geschrieben 24. März 2009 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: Sequenzen (Zuweisungen) Abfragen 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 Zitieren
SakiSa Geschrieben 24. März 2009 Autor Geschrieben 24. März 2009 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: Sequenzen (Zuweisungen) Abfragen 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 aber für weitere tips und hilfen bin ich offen Zitieren
0Cell0 Geschrieben 5. Juni 2009 Geschrieben 5. Juni 2009 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: 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 Zitieren
Empfohlene Beiträge
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.