C# Fakultäts rechnung
Frage: C# Fakultäts rechnung(15 Antworten)
Hallo ich Arbeite grade an einer C# form anwendung zur fakultäts rechnung (fakultät 5= 120) 1*5 =5 2*5 =10 usw. Ergebnis 120 int iZahl = 0; int fakultät = 1; iZahl = Convert.ToInt32(tbZahl.Text); for (int i = 2; i <= iZahl; i++) { fakultät *= i; } lErgebnis.Text = Convert.ToString(fakultät); das ist die Anwendung ich hoffe es ist klar was ich meine und jemand kann helfen dankö |
Frage von LuckyXIII (ehem. Mitglied) | am 01.05.2011 - 14:39 |
Antwort von Harvard (ehem. Mitglied) | 01.05.2011 - 14:57 |
Also: Ich weiss nicht wo das Problem liegt, aber ich spiel hier mal Mike Shiva: In der For Schleife rechnest du das Zeug aus. for (int i = 2; i <= iZahl; i++) { fakultät *= i; System.out.println("Zwischenschritt: " + fakultät); } Weiss nicht was C# für ein Kommando braucht um Sachen auszugeben - habe einfach das Kommando von Java genommen. |
Antwort von LuckyXIII (ehem. Mitglied) | 01.05.2011 - 15:15 |
es geht darum das ich nicht genau weiss wie ich das anstelle das die zwischen schritte erstmal gerechnet werden bzw angezeigt werden da mein porgramm nur das endergebnis rechnet und anzeigt |
Antwort von Harvard (ehem. Mitglied) | 01.05.2011 - 15:27 |
Habe ich doch hingeschrieben? Das fett gedruckte? Nach jeder Berechnung ( fakultät *= i; ) einfach ausgeben? |
Antwort von LuckyXIII (ehem. Mitglied) | 01.05.2011 - 16:22 |
ich habe es mit dem versucht was du mir gegeben hast habe ein neuen label gemacht lZwischen lZwischen.Text("Zwischenschritt: " + fakultät); ergiebt aber genau das selbe ergebnis weil, es ist genau das selbe wie Ergebnis.Text = Convert.ToString(fakultät); nur mit Text ausgabe. Wie gesagt meine rechnung gibt nur das endergebniss aus da ich nur 1 rechnung habe aber ich weiss auch nicht genau wie ich das andres machen soll |
Antwort von swenzel (ehem. Mitglied) | 01.05.2011 - 16:26 |
Das liegt ganz einfach daran dass dein Label jedes mal neu gesetzt wird und du am ende logischerweise immer das gleiche hast. Du bräuchtest ein Textefeld bei dem du textfeld.Text = textfeld.Text+Convert.ToString(fakultät)+"\n"; setzt, denn sonst gehen die vorherigen Ergebnisse verloren. Gruß Swen |
Antwort von Harvard (ehem. Mitglied) | 01.05.2011 - 16:48 |
Du überschreibst es vorzu wieder... |
Antwort von LuckyXIII (ehem. Mitglied) | 01.05.2011 - 18:12 |
danke das hat super funktionirt =)nun gibt es 1 sache noch am ende habe ich nun das selbe ergebniss wie beim label endergebniss das ist auch logisch das versteh ich aber gibt es eine möglichkeit das letzte ergebnis in der Textbox weg zu lassen ?aber jetzt schon mal ein großes danke |
Antwort von Harvard (ehem. Mitglied) | 01.05.2011 - 18:23 |
Also 1 Schritt for dem Ergebniss? Du kannst es mit einer Abfrage machen: Wenn Schritt < Maximalschritt dann xyz sonst abc |
Antwort von LuckyXIII (ehem. Mitglied) | 01.05.2011 - 18:45 |
muss man das nicht mit gleich machen? also Wenn letzter schritt = iZahl dan nicht senden sonst weiter machen?^^das jetzt noch in c# wäre super |
Antwort von Harvard (ehem. Mitglied) | 01.05.2011 - 18:51 |
Selber denken macht schlau Es geht sowohl mit <= als auch mit =, alles eine Frage der Interpretation |
Antwort von LuckyXIII (ehem. Mitglied) | 01.05.2011 - 19:43 |
Hatte folgendes probiert: for (int i = 2; i <= iZahl; i++) { fakultät *= i; if (i = iZahl); { lErgebnis.Text = Convert.ToString(fakultät); } else { tbZwischen.Text = "Zwischen ergebnis:" + tbZwischen.Text + Convert.ToString(fakultät) + " "; } } aber er sagt mir schon : Eine implizite Konvertierung vom typ "int" in "bool" ist nicht möglich weisst aber nicht was er mir sagen will bzw was bool ist |
Antwort von Harvard (ehem. Mitglied) | 01.05.2011 - 20:15 |
Kennst Du den Unterschied zwischen = und == ? |
Antwort von LuckyXIII (ehem. Mitglied) | 01.05.2011 - 21:14 |
oh sry das war dumm von mir ...ja ich kenn den unterschied^^ also es geht..... ich habe die TB durch ein label ersetzt da sich die TB nicht anpasst und dan alles zusammen quetscht for (int i = 2; i <= iZahl; i++) { fakultät *= i; if (i == iZahl) { lErgebnis.Text = Convert.ToString(fakultät); } else { lZwischen.Text ="/n"+" Zwischen ergebnis" + lZwischen.Text + Convert.ToString(fakultät) + "/n"; } } so sieht es der code aus aber die Anzeige klapt nicht ganz da steht dan /nZwischen ergebniss /nZwischen ergebniss/nZwischen ergebniss 6 20 also es gibt probleme beim zeilen umbruch ansoten funktionirt das programm super wkann mir jemand sagen wo der fehler liegt bei der Ausgabe? |
Antwort von Harvard (ehem. Mitglied) | 01.05.2011 - 21:24 |
bei Convert.TOString(fakultät) + "/n" hängst du jedes mal ein Newline an. |
Antwort von LuckyXIII (ehem. Mitglied) | 02.05.2011 - 15:41 |
das möchte ich ja damit das untereinander geschrieben wird aber er sieht das /n nicht als zeilenbruch sonder als text an verstehe aber nicht warum |
2 ähnliche Fragen im Forum:
> Du befindest dich hier: Support-Forum - Informatik- Informationstechnik (1 Antworten)
- Informationstechnik Schnell! (2 Antworten)
- mehr ...
ÄHNLICHE FRAGEN:
- InformationstechnikAlso das problem ist ich schreibe morgen eine arbeit in its hab kp ja ich weiß samstags auch noch ich muss anchschreiben -.- ..
- Informationstechnik Schnell!Also das problem ist ich schreibe morgen eine arbeit in its hab kp ja ich weiß samstags auch noch ich muss anchschreiben -.- ..
- mehr ...
BELIEBTE DOWNLOADS:
- DIE “WENN-FORMEL“Die erklärung bzw. Formelbeschreibung für die "Wenn-Formel"
- mehr ...