Menu schließen

C# Fakultäts rechnung

Frage: C# Fakultäts rechnung
(15 Antworten)


Autor
Beiträge 0
14
Hallo ich Arbeite grade an einer C# form anwendung zur fakultäts rechnung (fakultät 5= 120)

diese läuft auch nun wollte ich als zusatz noch die zwischen schritte anzeigen lassen also bei 5 das dan als ergbnis steht
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


Autor
Beiträge 0
14
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.
Wieso gibst du es dann nicht bei jeder Berechnung gleich 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.


Autor
Beiträge 0
14
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


Autor
Beiträge 0
14
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?


Autor
Beiträge 0
14
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


Autor
Beiträge 0
14
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


Autor
Beiträge 0
14
Antwort von Harvard (ehem. Mitglied) | 01.05.2011 - 16:48
Du überschreibst es vorzu wieder...


Autor
Beiträge 0
14
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


Autor
Beiträge 0
14
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


Autor
Beiträge 0
14
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


Autor
Beiträge 0
14
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


Autor
Beiträge 0
14
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


Autor
Beiträge 0
14
Antwort von Harvard (ehem. Mitglied) | 01.05.2011 - 20:15
Kennst Du den Unterschied zwischen = und == ?


Autor
Beiträge 0
14
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?


Autor
Beiträge 0
14
Antwort von Harvard (ehem. Mitglied) | 01.05.2011 - 21:24
bei Convert.TOString(fakultät) + "/n" hängst du jedes mal ein Newline an.


Autor
Beiträge 0
14
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

Verstoß melden
Hast Du eine eigene Frage an unsere Informatik-Experten?

2 ähnliche Fragen im Forum: 1 passende Dokumente zum Thema:
> Du befindest dich hier: Support-Forum - Informatik
ÄHNLICHE FRAGEN:
  • Informationstechnik
    Also 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: