C# :: Aufgabe #235
3 Lösungen

Übung zu For-Schleifen
Anfänger - C#
von Blasius18
- 27.09.2018 um 18:41 Uhr
Die Fakultät einer Ganzzahl in den Grenzen von 0<=n<=60
als Konsolenanwendung umsetzen.
Der Anwender wird aufgefordet, eine Zahl in den Grenzen von 0 bis 60 einzugeben.
Das Programm errechnet den Wert und gibt ihn wieder aus.
Um die Entwicklung besser verfolgen zu können wird in jedem Schleifendurchgang der Aktuelle wert der Fakultät beim ,i-ten` schleifendurchgang ausgegeben.
Zusatzfeature (kann..)
gibt der Nutzer eine Zahl > 60 ein, gibt's einen Hinweis und er wird erneurt zur Eingabe einer Zahl 1 < zahl < 60 aufgefordert.
hat er 3 mal eine falsche Zahl eingegeben, bricht das Programm ab.
als Konsolenanwendung umsetzen.
Der Anwender wird aufgefordet, eine Zahl in den Grenzen von 0 bis 60 einzugeben.
Das Programm errechnet den Wert und gibt ihn wieder aus.
Um die Entwicklung besser verfolgen zu können wird in jedem Schleifendurchgang der Aktuelle wert der Fakultät beim ,i-ten` schleifendurchgang ausgegeben.
Zusatzfeature (kann..)
gibt der Nutzer eine Zahl > 60 ein, gibt's einen Hinweis und er wird erneurt zur Eingabe einer Zahl 1 < zahl < 60 aufgefordert.
hat er 3 mal eine falsche Zahl eingegeben, bricht das Programm ab.
Lösungen:

using System; using System.Numerics; namespace Fakultaet_235 { class Program { static void Main(string[] args) { int n = 0; int eingabeversuche = 0; try { do { if (eingabeversuche == 3) { throw new Exception("Zu viele ungültige Eingaben.\nProgramm wird beendet."); } Console.Clear(); Console.WriteLine("Bitte geben Sie eine Zahl in mit folgenden Grenzen ein 0<=n<=60"); Console.Write("> "); eingabeversuche++; } while (int.TryParse(Console.ReadLine(), out n) == false || n < 0 || n > 60); Console.WriteLine(); Program.calcFactorial(n); } catch (Exception ex) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine(); Console.WriteLine(ex.Message); Console.ResetColor(); } Console.ReadLine(); } private static void calcFactorial(int n) { BigInteger result = new BigInteger(n); int index = 1; for (int value = n-1; value > 1; value--) { result *= value; Console.WriteLine("{0}\t{1}", index++, result); } } } }

class Program { static void Main(string[] args) { ulong eingabe; int zähler = 1; do { Console.Write("Gebe eine Zahl zwischen 0 und 60 an: "); eingabe = Convert.ToUInt64(Console.ReadLine()); if (eingabe > 60) Console.WriteLine("Falsche Eingabe, Zahl muss kleiner oder gleich 60 sein!"); if (zähler == 3 && eingabe > 60) { Console.Write("Programm wird Beendet!"); Console.ReadLine(); return; } zähler++; } while (eingabe > 60); ulong zwischen = 1; for (ulong i = 1; i<=eingabe;i++) { zwischen *= i; Console.WriteLine("{0,2}: {1}",i, zwischen); } Console.WriteLine("Falkultät von {0} ist: {1}",eingabe, zwischen); Console.ReadLine(); } }

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Fakultät { class Program { static void Main(string[] args) { Int64 startZahl = 1; Int64 eingabeZahl; Int64 versuche = 3; do { Console.Clear(); Console.WriteLine($"Versuch: {versuche} "); Console.Write(@"Zahl zwischen (1 und 60) eingeben: "); if (versuche == 0) { break; } eingabeZahl = Convert.ToInt64(Console.ReadLine()); if (eingabeZahl >= 1 && eingabeZahl <= 60) { berechneFakultät(eingabeZahl); break; } else { versuche -= 1; continue; } } while (true); Console.WriteLine(); Console.WriteLine(); Console.WriteLine("Tschüss"); Console.ReadLine(); } static void berechneFakultät(Int64 eingabe) { Int64 ergebnis = 1; for (int i = 1; i <= eingabe; i++) { ergebnis *= i; Console.WriteLine($"Ergebnis = {ergebnis}"); } } } }