So sehen Programme bei mir in der Schule aus

Es gibt 19 Antworten in diesem Thema. Der letzte Beitrag () ist von MrTrebron.

    So sehen Programme bei mir in der Schule aus

    Da sich ein paar Leute über meinen Anfänglichen Programmierstil aufgeregt haben, hier mal ein bisschen Code von meinen Lehrer:

    SLN suche

    VB.NET-Quellcode

    1. Public Class CL_System
    2. Shared ArbVz As String 'von user änderbare Dateien
    3. Shared IniVz As String 'ini, txt (lesend) XML
    4. Shared datenvz As String
    5. Shared PrgVz As String 'Entwicklungsumgebung
    6. Shared quellVz As String
    7. Shared Sub New()
    8. Dim ordner As String()
    9. PrgVz = My.Computer.FileSystem.CurrentDirectory
    10. ordner = PrgVz.Split(CChar("\"))
    11. If ordner(UBound(ordner)) = "bin" Then
    12. quellVz = PrgVz.Substring(0, PrgVz.Length - ordner(UBound(ordner)).Length)
    13. ArbVz = quellVz & "arb\"
    14. IniVz = quellVz & "ini\"
    15. PrgVz = PrgVz & "\"
    16. Else
    17. If ordner(UBound(ordner)) = "Debug" Or ordner(UBound(ordner)) = "Release" Then
    18. quellVz = PrgVz.Substring(0, PrgVz.Length - ordner(UBound(ordner)).Length - ordner(UBound(ordner) - 1).Length - 1)
    19. ArbVz = quellVz & "arb\"
    20. IniVz = quellVz & "ini\"
    21. datenvz = quellVz & "daten\"
    22. PrgVz = quellVz
    23. Else
    24. PrgVz = PrgVz & "\"
    25. quellVz = PrgVz
    26. ArbVz = PrgVz & "arb\"
    27. IniVz = PrgVz & "ini\"
    28. datenvz = PrgVz & "daten\"
    29. End If
    30. End If
    31. End Sub
    32. Shared ReadOnly Property GetDatenVz() As String
    33. Get
    34. Return datenvz
    35. End Get
    36. End Property
    37. Shared ReadOnly Property GetArbVz() As String
    38. Get
    39. Return ArbVz
    40. End Get
    41. End Property
    42. Shared ReadOnly Property GetIniVz() As String
    43. Get
    44. Return IniVz
    45. End Get
    46. End Property
    47. Shared ReadOnly Property GetPRGVz() As String
    48. Get
    49. Return PrgVz
    50. End Get
    51. End Property
    52. Shared ReadOnly Property GetQuelllw() As String
    53. Get
    54. Return quellVz.Substring(0, 3)
    55. End Get
    56. End Property
    57. ''' <summary>
    58. ''' Gibt den Ordnername in dem sich die .sln Datei zurück
    59. ''' </summary>
    60. ''' <returns>Ordnername in dem sich die .sln </returns>
    61. Shared ReadOnly Property GetQuellVz() As String
    62. Get
    63. Return quellVz
    64. End Get
    65. End Property
    66. End Class



    Usere erste Class

    VB.NET-Quellcode

    1. <Serializable()>
    2. Public Class Heizung
    3. Private F_Mintemp As Decimal = 10
    4. Private F_Maxtemp As Decimal = 30
    5. Private F_Temp As Decimal = 15
    6. Private F_Bild As Image
    7. Private F_Bildverwalten As CL_BilderVerwalten
    8. Private F_Heizungsname As String
    9. Public Sub New()
    10. F_Bildverwalten = New CL_BilderVerwalten("Heizung/Bilder")
    11. F_Bild = F_Bildverwalten.getBild()
    12. End Sub
    13. Public Sub New(heizname As String)
    14. F_Bildverwalten = New CL_BilderVerwalten("Heizung/Bilder")
    15. F_Bild = F_Bildverwalten.getBild()
    16. F_Heizungsname = heizname
    17. End Sub
    18. Public ReadOnly Property getBild As Image
    19. Get
    20. Return F_Bild
    21. End Get
    22. End Property
    23. Public Property Mintemp As Decimal
    24. Get
    25. Return F_Mintemp
    26. End Get
    27. Set(value As Decimal)
    28. F_Mintemp = value
    29. End Set
    30. End Property
    31. Public Property Maxtemp As Decimal
    32. Get
    33. Return F_Maxtemp
    34. End Get
    35. Set(value As Decimal)
    36. F_Maxtemp = value
    37. End Set
    38. End Property
    39. Public ReadOnly Property Temp As Decimal 'Readonly wenn die prop nur gelesen werden soll
    40. Get
    41. Return F_Temp
    42. End Get
    43. End Property
    44. Public Property Heizungsname As String
    45. Get
    46. Return F_Heizungsname
    47. End Get
    48. Set(value As String)
    49. F_Heizungsname = value
    50. End Set
    51. End Property
    52. Public Sub Erhöhen()
    53. If F_Temp + 0.5 <= F_Maxtemp Then
    54. F_Temp += 0.5
    55. End If
    56. End Sub
    57. Public Sub Erhöhen(grad As Decimal)
    58. If F_Temp + grad <= F_Maxtemp Then
    59. F_Temp += grad
    60. End If
    61. End Sub
    62. Public Sub Senken()
    63. If F_Temp - 0.5 >= F_Mintemp Then
    64. F_Temp -= 0.5
    65. End If
    66. End Sub
    67. Public Sub Senken(grad As Decimal)
    68. If F_Temp - grad >= F_Mintemp Then
    69. F_Temp -= grad
    70. End If
    71. End Sub
    72. Public Function getTempprozent() As Decimal
    73. Dim prozent As Decimal
    74. prozent = (F_Temp - F_Mintemp) / (F_Maxtemp - F_Mintemp) * 100
    75. Return prozent
    76. End Function
    77. End Class



    Das Frm dazu

    VB.NET-Quellcode

    1. Public Class Heizung_Verwalten_1
    2. Dim meineHeizung As Heizung
    3. Dim heizungen_add As New listenverwaltung
    4. Private Sub Heizung_Verwalten_Load(sender As Object, e As System.EventArgs) Handles Me.Load
    5. PB_Temp.Maximum = 100
    6. PB_Temp.Minimum = 0
    7. PB_Temp.Style = ProgressBarStyle.Continuous
    8. PB_Bild.SizeMode = PictureBoxSizeMode.Zoom
    9. For i As Integer = 0 To heizungen_add.heizungs_anzahl() - 1
    10. lib_verwalten.Items.Add(heizungen_add.nehme_Heizung(i).Heizungsname)
    11. Next
    12. End Sub
    13. Private Sub anzeige()
    14. Tf_Temp.Text = meineHeizung.Temp
    15. PB_Temp.Value = meineHeizung.getTempprozent()
    16. PB_Bild.Image = meineHeizung.getBild
    17. Call tempfarbe(meineHeizung.Temp)
    18. End Sub
    19. Private Sub BSF_Senken_Click(sender As System.Object, e As System.EventArgs) Handles BSF_Senken.Click
    20. meineHeizung.Senken()
    21. Call anzeige()
    22. End Sub
    23. Private Sub BSF_Erhöhen_Click(sender As System.Object, e As System.EventArgs) Handles BSF_Erhöhen.Click
    24. meineHeizung.Erhöhen()
    25. Call anzeige()
    26. End Sub
    27. Private Sub Tf_Temp_TextChanged(sender As System.Object, e As System.EventArgs) Handles Tf_Temp.TextChanged
    28. End Sub
    29. Private Sub but_heizadd_Click(sender As System.Object, e As System.EventArgs) Handles but_heizadd.Click
    30. If tb_heizungsname.Text = "" Then
    31. MsgBox("Bitte Heizungsname eintragen")
    32. tb_heizungsname.Select()
    33. Exit Sub
    34. End If
    35. heizungen_add.neue_Heizung(tb_heizungsname.Text)
    36. lib_verwalten.Items.Add(tb_heizungsname.Text)
    37. meineHeizung = heizungen_add.nehme_Heizung(lib_verwalten.Items.Count - 1)
    38. Call anzeige()
    39. End Sub
    40. Private Sub lib_verwalten_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles lib_verwalten.SelectedIndexChanged
    41. meineHeizung = heizungen_add.nehme_Heizung(lib_verwalten.SelectedIndex)
    42. Call anzeige()
    43. End Sub
    44. Public Sub tempfarbe(wert As Integer)
    45. Select Case wert
    46. Case Is >= 25
    47. PB_Temp.ForeColor = Color.Red
    48. Case Is >= 15
    49. PB_Temp.ForeColor = Color.Green
    50. Case Is < 15
    51. PB_Temp.ForeColor = Color.Blue
    52. End Select
    53. End Sub
    54. Private Sub but_listspeichern_Click(sender As System.Object, e As System.EventArgs) Handles but_listspeichern.Click
    55. heizungen_add.heiz_speichern()
    56. End Sub
    57. End Class


    Diskutiert das mal aus :D

    LG

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Lord C“ ()

    @Lord C
    Es müsst heißen: "So sehen Programme bei mir in der Schule aus" oder "So sieht ein Programm bei mir in der Schule aus"

    Was ich mich jetzt noch frage, ist:"Was möchtest du und damit zeigen, bzw. sagen?"
    There is no CLOUD - just other people's computers

    Q: Why do JAVA developers wear glasses?
    A: Because they can't C#

    Daily prayer:
    "Dear Lord, grand me the strength not to kill any stupid people today and please grant me the ability to punch them in the face over standard TCP/IP."
    Ich hatte am Anfang meiner Zeit hier, ein bisschen was einstecken müssen und da hatte ich mal gesagt, dass ich so nen Thread mache.

    Und das da e fehlte im Titel liegt an der drecks Tastatur in der Schule.
    @Andi: du meinst vmtl. die Leerzeilen ohne Sinn (der Link ist mein Beitrag, diesen Punkt zu diskutieren)

    Aber ich glaube, ist ein Browser-Bug.

    @TE: bitte korrigiere die Darstellung mit der vbp-edit-Funktion.
    ZB kannst du aus der Solution in ein NotePad-Fenster kopieren, und von da aus ins VBP-Forum.

    Ansonsten hatter von den Deppen-Einstellungen offensichtlich noch den Deppen-Namespace drin, und macht leider regen Gebrauch davon, statt .Net zu programmieren. :thumbdown:
    Aber Option Strict scheint zumindest On zu sein :thumbup: , und er weiß Datentypen zu unterscheiden - das ist das Wichtigste :thumbup: .
    Dann hatter noch ne komische Benamung mit lauter sehr fragwürdigen Prefixen.
    Besonders abartig sind Public Properties, benamt wie GetArbVz - Getxx sollten nur Methoden heißen, und ArbVz ist auch kein Name für einen Public Member.
    Und er kennt das Schlüsselwort Shared :thumbup: , und sogar den Shared Konstruktor.
    Leider haben die Member dieser "Shared Class" keine Scope-Angabe, also nur Spezialisten können dem Code ablesen, welche der Member Private, Public oder Friend sind. :thumbdown:

    Und endlos viel trivial-Code, den man glaub heutzutage wesentlich kürzer formulieren könnte. :thumbdown:
    Also ich blick da bei den insges. knapp 400 Zeilen nicht durch, und mach mir auch nicht die Mühe.

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „ErfinderDesRades“ ()

    @ edr das Datentypisierte ist seit wir bei der oop sind. Davor wars schlimmer. Hab aber das alte Projekt nichtmehr gefunden ich schau dannach nochmal, da ist es unglaublisch schlimm. Was die Deppen angeht leider n´benutzt er sie sehr gerne und vermittelt das auch.
    Was Optiuon strict on angeht, das ist auf off gestellt. -.- und ich darfs nicht auf On stellen, er hätte mir halber den Kopf abgerissen als ich es mal gemacht hab.


    Den Edit mach ich gleich.
    Jo, also dass der Lehrkörper vielfach keine Ahnung hat, jedenfalls nicht vom Programmieren, ist ein viel bejammertes Thema, und ist auch wirklich eine kontinuirliche Dauer-Tragödie, und keine Besserung ist in Sicht ;( .
    Hier kannst du dich an weiteren solchen Fällen delektieren: Java und der Schulunterricht

    (Tatsächlich fehlt mir mal ein Beispiel, wo ein Lehrkörper sich als wirklich programmier-kompetent zeigt - also das müsste es eigentlich aber doch auch geben :/ )
    Ich denke es ist halt häufig so das es sich halt um einen Lehrer und um keinen Programmierer handelt.

    Und gerade bei VB.net besteht natürlich die Gefahr das der VisualBasic Namepsace importiert wird und dann auch genutzt wird.
    Denn die Leute die von VB6 oder VBA kommen kennen die Funktionen und nutzen diese.

    Würde man mit einer anderen Sprache anfangen kann es wieder anders aussehen.

    Das Wichtigste wäre aber IMHO das es ein Programmierer mit Lehrerkentnissen ist und nicht anders rum.

    Generell kann die Schule, auch die Berufsschule immer nur einen Einstieg biten. Die Basics halt.
    Die deutsche Sprache ist Freeware, du kannst sie benutzen, ohne dafür zu bezahlen. Sie ist aber nicht Open Source, also darfst du sie nicht verändern, wie es dir gerade passt.
    So Traurig es klingt, aber ich spreche da aus eigener Erfahrung (<- hab Lehramt studiert)

    Wenn ich mir mein Gehalt als Lehrer anschaue und das Gehalt das ich als Programmierer verdiene.
    Da ist es klar das es nur wenig "gute Programmierer" in der Lehre gibt.

    Das Lehramtstudium hat thematisch leider nix oder nur sehr wenig mit dem eingentlich Thema zu tun. 80% Vermittlung 20% Inhalt.
    Die Uni geht davon aus das sich Lehrer mit ihrem Fach selbsttätig auseinander setzen und den Inhalt erfassen.
    There is no CLOUD - just other people's computers

    Q: Why do JAVA developers wear glasses?
    A: Because they can't C#

    Daily prayer:
    "Dear Lord, grand me the strength not to kill any stupid people today and please grant me the ability to punch them in the face over standard TCP/IP."
    Das sollte ein Lehrer meiner Meinung nach auch machen. Ich kann mir wirklich vorstellen, dass Lehrer ein sehr Anspruchsvoller und Streßiger Beruf ist. Aber denoch sollte ein Informatik Lehrer auch ahnung von der Informatik haben.
    Meine Projekte Genesis Game Engine | GFX | smartli.me - Der smarte URL shortener

    Informatik ist was anderes als Programmieren - gugge Java und der Schulunterricht, insbesondere Blazes Erfahrungen.
    Selbst die Profs anne Uni - sogar in einschlägigen Studiengängen, und dort in den ausgewiesenen Programmier-Vorlesungen und -Seminaren - sind von ihre Programmier-Skills her oft genug regelrecht unterbelichtet.

    ErfinderDesRades schrieb:

    Selbst die Profs anne Uni - sogar in einschlägigen Studiengängen, und dort in den ausgewiesenen Programmier-Vorlesungen und -Seminaren - sind von ihre Programmier-Skills her oft genug regelrecht unterbelichtet


    Hörensagen oder wirklich dabei gewesen?
    Die deutsche Sprache ist Freeware, du kannst sie benutzen, ohne dafür zu bezahlen. Sie ist aber nicht Open Source, also darfst du sie nicht verändern, wie es dir gerade passt.
    Bei Java kann ich jetzt nicht sagen ob es dort Option Strict gibt.
    C# kennt das imho auch nicht.

    Was meines Wissens die typischen Programmiersprachen sind.
    Die deutsche Sprache ist Freeware, du kannst sie benutzen, ohne dafür zu bezahlen. Sie ist aber nicht Open Source, also darfst du sie nicht verändern, wie es dir gerade passt.
    @MrTrebron
    Das ist ja genau das problem Option Strict OFF gibt es bei den Programmiersprachen nicht. Nur bei VB. Daher sollte man Option Strict immer ON schalten.
    There is no CLOUD - just other people's computers

    Q: Why do JAVA developers wear glasses?
    A: Because they can't C#

    Daily prayer:
    "Dear Lord, grand me the strength not to kill any stupid people today and please grant me the ability to punch them in the face over standard TCP/IP."
    Ja, bloß will leider Microsoft die VB6, VBA Umsteiger nicht vergraulen und lässt deshalb bei der Auslieferung von Visual Studio Strict Off und den VisualBasic Namespace automatisch importiert.

    Bin da die Tage über einen Artikel in der dotnetpro gestolpert wo ich beim Codelisting auch gerne die .net Äquivalente gesehen hätte
    Die deutsche Sprache ist Freeware, du kannst sie benutzen, ohne dafür zu bezahlen. Sie ist aber nicht Open Source, also darfst du sie nicht verändern, wie es dir gerade passt.