Benutzer mit den meisten Antworten
Hilfe C# Funktionen

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
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- Als Antwort vorgeschlagen Aleksander Chalabashiev Montag, 13. Oktober 2014 06:24
- Als Antwort markiert Aleksander Chalabashiev Montag, 20. Oktober 2014 09:19
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- Als Antwort vorgeschlagen Aleksander Chalabashiev Montag, 13. Oktober 2014 06:24
- Als Antwort markiert Aleksander Chalabashiev Montag, 20. Oktober 2014 09:19