C# :: Aufgabe #235

3 Lösungen Lösungen öffentlich

Ü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.

Lösungen:

1x
vote_ok
von Exception (4370 Punkte) - 23.12.2018 um 15:48 Uhr
Quellcode ausblenden C#-Code
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);
            }
        }
    }
}
1x
vote_ok
von Sito (100 Punkte) - 10.01.2019 um 08:28 Uhr
Quellcode ausblenden C#-Code
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();
        }
    }
1x
vote_ok
von Supergoof (150 Punkte) - 19.01.2019 um 21:46 Uhr
Quellcode ausblenden C#-Code
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}");
            }
        }
    }
}