none
Hilfe C# Funktionen RRS feed

  • Frage

  • Hallo zusammen,

    bitte um dringende Hilfe. Ich muss ein C# Porgramm schreiben, aber ich habe keinen Schimmer wie das gehn soll, da ich mich bei Funktionen 0 auskenne.

    Das Beispiel sieht wie folgt aus:

    Schreiben Sie eine C# Funktion

    static void myCeil(int[] f, int val, ref int ceil, out bool contains), die die kleinste Zahl im Feld f ermittelt, die größer als val ist, diese in ceil speichert und contains auf true setzt.

    Ist keine Zahl in f enthalten die größer als val ist bleibt ceil unverändert und contains erhält den Wert false.

    Bin wirklich für jede Idee oder Lösungsansatz dankbar

    Schönen Sonntag, the boddy

    Sonntag, 12. Oktober 2014 11:11

Antworten

  • Hallo,
    dein Problem ist eigentlich mit den C# Grundlagen zu lösen. Darum verweise ich dich zunächst auf Methoden (C#-Programmierhandbuch).

    Die Logik innerhalb der Methode kann man auf viele unterschiedliche Arten lösen. Für einen Anfänger das Einfachste könnte folgendes sein:

    static void myCeil(int[] f, int val, ref int ceil, out bool contains)
    {
      int min=int.MaxValue;
      foreach(var x in f)//durchlaufe alle Werte){
        if(x<min && x>val)
          min=x;//Neues Minimum gefunden
        if(min==val)
          breal;//Schleife verlassen, da val gefunden wurde
      }
      contains=false;
      if(min != int.MaxValue)
      {
        //Minimum gefunden, dass größer als val ist
        ceil = min;
        contains=true;
      }  
    }

    Wobei das wie gesagt die absoluten Grundlagen sind, ohne die du nicht weit komme wirst. Wichtig ist darum zu verstehen was der Code macht.

    Man kann den Code auch noch komplexer gesalten, was für einen "Profi" auch kein Problem wäre, allerdings nicht zwingend nötig ist.
    Wichtig wäre noch eine Fehlerbehandlung, da bei meiner Lösung val immer kleiner sein muss als der Maximalwert eines Integers (int.MaxValue).



    Tom Lambert - C# MVP
    Wozu Antworten markieren und für Beiträge abstimmen? Klicke hier.
    Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter | Account bestätigen (Verify Your Account)
    Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets

    Sonntag, 12. Oktober 2014 13:23
    Moderator

Alle Antworten

  • Hallo,
    dein Problem ist eigentlich mit den C# Grundlagen zu lösen. Darum verweise ich dich zunächst auf Methoden (C#-Programmierhandbuch).

    Die Logik innerhalb der Methode kann man auf viele unterschiedliche Arten lösen. Für einen Anfänger das Einfachste könnte folgendes sein:

    static void myCeil(int[] f, int val, ref int ceil, out bool contains)
    {
      int min=int.MaxValue;
      foreach(var x in f)//durchlaufe alle Werte){
        if(x<min && x>val)
          min=x;//Neues Minimum gefunden
        if(min==val)
          breal;//Schleife verlassen, da val gefunden wurde
      }
      contains=false;
      if(min != int.MaxValue)
      {
        //Minimum gefunden, dass größer als val ist
        ceil = min;
        contains=true;
      }  
    }

    Wobei das wie gesagt die absoluten Grundlagen sind, ohne die du nicht weit komme wirst. Wichtig ist darum zu verstehen was der Code macht.

    Man kann den Code auch noch komplexer gesalten, was für einen "Profi" auch kein Problem wäre, allerdings nicht zwingend nötig ist.
    Wichtig wäre noch eine Fehlerbehandlung, da bei meiner Lösung val immer kleiner sein muss als der Maximalwert eines Integers (int.MaxValue).



    Tom Lambert - C# MVP
    Wozu Antworten markieren und für Beiträge abstimmen? Klicke hier.
    Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter | Account bestätigen (Verify Your Account)
    Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets

    Sonntag, 12. Oktober 2014 13:23
    Moderator
  • Hallo,

    vielen Dank für deine Antwort. Ich werde mich gleich damit auseinandersetzen. Hast mir sehr geholfen.

    Liebe Grüße

    theboddy

    Sonntag, 12. Oktober 2014 13:32