C# Programm helfen?
Hey Leute, Hoffe euch gehts gut. Suche nach paar Programmierprofis unter uns. Undzwar muss ich für die Schule Hausaufgaben machen und habe das Programm schon fast fertig geschrieben. Mir fehlen leider noch paar Kleinigkeiten, die ich noch machen muss (weiß halt nicht wie). Erstmal die Fotos.
Der Benutzer soll das Gewicht und die Größe schreiben, aber ich weiß nicht wie ich das machen soll. Leider werden mir auch 2 Fehler angezeigt…. Danke euch
3 Antworten
1) Wie macht man einen Screenshot? - So einfach geht das.
2) Bei Aufruf deiner Methode, die den BMI berechnen soll, übergibst du ein Symbol bmi, welches in dem Kontext der ToString-Methode gar nicht gibt. Aber statt nun eine gültige Variable oder einen gültigen Wert zu übergeben, solltest du eher hinterfragen, wozu du diesen Parameter überhaupt brauchst. Die Methode soll doch einen BMI berechnen und nicht entgegennehmen.
Was allerdings klug wäre: Wenn du die Methode in ToString nur einmal aufrufen und das Ergebnis in einer Variable speichern würdest. Dann müsste die Rechnung nur ein einziges Mal durchgeführt werden, statt (wie derzeit) zweimal.
3) Ein grundsätzlicher Rat: Vermeide Umlaute/Sonderzeichen (wie ö, ß, u.ä.) in Bezeichnernamen. Ersetze sie dann eher (mit oe, ss, usw.).
4) So kannst du einen Wert (bzw. eine Zeile) von der Konsole lesen:
string eingabe = Console.ReadLine();
Anschließend bräuchtest du noch eine Typkonversion, da du ja mit einer Zahl arbeiten möchtest und nicht mit einer Zeichenkette. Im einfachsten Fall kannst du die Methoden der Convert-Klasse für die Umwandlung verwenden.
Beispiel:
double number = Convert.ToDouble(eingabe);
Dies setzt aber auch voraus, dass der Nutzer eine valide Zahl eingibt.
Alles schwierig zu sehen, weil es keine Screenshots sind, sondern Fotos. In dem Bereich sollte man eigentlich wissen, was Screenshots sind und wie das geht.
Auf Bild 2 sehe ich, dass du eine Methode aufrufst, welche double annimmt. Ist bmi denn ein double? Das erkenne ich da gerade nicht
in Bild 3 gibst du aus Gewicht: Größe: und dann erst die Werte, verbindest aber nicht die Werte mit der Ausgabe davor. Console.WriteLine("Text: " + variable); oder Console.WriteLine($"Text: {Variable}"); wäre da ein Beispiel für.
Das ist, was ich auf den Bildern erkennen kann. Nächstes Mal bitte Screenshots oder Code hier posten oder auf Paste bin. Und wenn du ihn hier postest, dann als Codeblock formatiert
In dem Bereich sollte man eigentlich wissen, was Screenshots sind und wie das geht.
In dem Bereich sollte man Code-Tags nutzen ;)
Die von gutefrage.net sind alles andere als gut, aber um Welten besser als Screenshots oder - Gott befahre - Fotos ...
Da, wo die Fehlermeldungen stehen, gibt es keine Variable namens bmi. Es macht sowieso keinen Sinn, der Funktion, die den BMI berechnen soll, einen bmi mitzugeben. Du müsstest die Größe und das Gewicht mitgeben.
Wenn die Größe oder das Gewicht nicht in den passenden Bereich fallen, gibt deine Funktion auch einfach irgendwas zurück, anstatt eine Fehlermeldung auszuspucken.
Ich weiß nicht, was ihr bei der Aufgabe für Vorgaben habt, aber ich finde die beiden Klassen viel zu aufgeblasen für die Aufgabe.
Du könntest auch einfach das hier machen, um zum gleichen Ergebnis zu kommen:
public static void Main()
{
Console.WriteLine("Gib dein Gewicht ein:");
double weight = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("Gib deine Größe ein:");
double height = Convert.ToDouble(Console.ReadLine());
Console.WriteLine($"Dein BMI beträgt {weight/(height*height):F}");
}