Zum Inhalt springen

Max01

Mitglieder
  • Gesamte Inhalte

    10
  • Benutzer seit

  • Letzter Besuch

Beiträge von Max01

  1. vor 3 Minuten schrieb Whiz-zarD:

    Um das noch mal näher aufzugreifen: Dies ist kein Forum, wo man die Aufgaben von anderen übernimmt. Das musst du schon selbst machen. Wir können dir zwar zu konkreten Problemen Antworten geben aber wenn wir dir jetzt nun zeigen, was du genau machen sollst, lernst du nichts dazu.

    Ich kann dir den Hinweis geben, dass du dir mal while-schleifen anschauen sollst. 

    Noch eine Frage: Machst du gerade eine Ausbildung zum Fachinformatiker - Anwendungsentwickler und dein Chef ist dein Ausbilder?

    Okay werde ich machen und ja mach ich plus er ist mein chef

  2. Hey, könnte jemand mir netterweise Zeigen was ich verändern muss, damit ich die das Programm nochmal laufen lassen kann, ohne es zu beennden.

    Beste Grüße und danke schon mal 

    Max Schlensag

     

     

     

     

     

     

    namespace Taschenrechner2
    {
        public class Program
        {
            public static void Main(string[] args)
            {
                // Benutzer begrüßen
                Console.WriteLine("Hallo Benutzer, bitte Formel eingeben");

                //string gleichung = "13*-3";
                // string gleichung = "12*13";
                string gleichung = Console.ReadLine();

                // nächsten Operator ermitteln
                char operatorWert = GetOperator(gleichung);

                while (operatorWert != ' ')
                {
                    int index = gleichung.IndexOf(operatorWert);

                    Console.WriteLine("Der Operator ist an Stelle {0}", index);

                    int positionVorherrigerOperator = GetVorherrigerOperator(gleichung, index);

                    string wert1 = "";

                    for (int i = index - 1; i >= 0; i--)
                    {
                        if (i > positionVorherrigerOperator)
                        {
                            wert1 = gleichung + wert1;
                        }
                    }
                    // Operator suchenl
                    Console.WriteLine(wert1);

                    int positionNaechsterOperator = GetNaechsterOperator(gleichung, index + 1);

                    string wert2 = "";

                    for (int index2 = index + 1; index2 < gleichung.Length; index2++)
                    {
                        if (index2 < positionNaechsterOperator || positionNaechsterOperator == -1)
                        {
                            wert2 = wert2 + gleichung[index2];
                        }
                    }

                    Console.WriteLine(wert2);

                    // jetzt versuchen wir zu rechnen
                    double zahl1 = double.Parse(wert1);
                    double zahl2 = double.Parse(wert2);

                    double ergebnis = Rechne(zahl1, zahl2, operatorWert);

                    gleichung = gleichung.Replace(wert1 + operatorWert + wert2, ergebnis.ToString());
                    
                    operatorWert = GetOperator(gleichung);
                }
                //Ergebnis ausgeben plus Rechnung
                Console.WriteLine("Ergebnis: " + gleichung);
                Console.WriteLine("Wollen sie noch eine Rechnung rechnen, dann schreiben sie j wenn sie keine weitere Rechnung rechen wollen n");
                Console.ReadKey();

                


            }

            //switch 
            private static double Rechne(double zahl1, double zahl2, char operatorWert)
            {
                switch (operatorWert)
                {
                    case '*': return zahl1 * zahl2;
                    case '/': return zahl1 / zahl2;
                    case '+': return zahl1 + zahl2;
                    case '-': return zahl1 - zahl2;
                }

                throw new ArgumentException("da hat was nicht geklappt");
            }
            //Methode
            private static char GetOperator(string gleichung)
            {   //mal rechnung
                for (int i = 0; i < gleichung.Length; i++)
                {
                    char zeichen = gleichung;
                    char zeichen2 = i > 0 ? gleichung[i - 1] : ' ';
                    
                    if (zeichen == '*' && IsOperator(zeichen, zeichen2))
                    {
                        return '*';

                        


                    }
                    if (zeichen == '/' && IsOperator(zeichen, zeichen2))
                    {
                        return '/';
                    }


                    

                }
                //geteilt rechnung
                for (int i = 0; i < gleichung.Length; i++)
                {
                    char zeichen = gleichung;
                    char zeichen2 = i > 0 ? gleichung[i - 1] : ' ';

                    if (zeichen == '/' && IsOperator(zeichen, zeichen2))
                    {
                        return '/';
                    }
                }
                //plus rechnung
                for (int i = 0; i < gleichung.Length; i++)
                {
                    char zeichen = gleichung;
                    char zeichen2 = i > 0 ? gleichung[i - 1] : ' ';

                    if (zeichen == '+' && IsOperator(zeichen, zeichen2))
                    {
                        return '+';
                    }
                }
                //minus rechung
                for (int i = 0; i < gleichung.Length; i++)
                {
                    char zeichen = gleichung;
                    char zeichen2 = i > 0 ? gleichung[i - 1] : ' ';

                    if (zeichen == '-' && IsOperator(zeichen, zeichen2))
                    {
                        return '-';
                    }
                }

                return ' ';
            }

            private static int GetNaechsterOperator(string gleichung, int position)
            {
                int result = -1;

                for (int i = position; i < gleichung.Length; i++)
                {
                    char zeichen = gleichung;
                    char zeichen2 = i > 0 ? gleichung[i - 1] : ' ';

                    if (IsOperator(zeichen, zeichen2))
                    {
                        result = i;
                        break;
                    }
                }

                return result;
            }
            //Zweiten Operator finden
            private static int GetVorherrigerOperator(string gleichung, int index)
            {
                int result = -1;

                for (int i = index - 1; i >= 0; i--)
                {
                    char zeichen = gleichung;
                    char zeichen2 = i > 0 ? gleichung[i - 1] : ' ';

                    if (IsOperator(zeichen, zeichen2))
                    {
                        result = i;
                        break;
                    }
                }

                return result;
            }
            // Zum erkennen, dass es kein Operator ist
            private static bool IsOperator(char zeichen, char zeichen2)
            {
                if (zeichen == '*' || zeichen == '/' || zeichen == '+' || zeichen == '-')
                {
                    if (zeichen2 == '*' || zeichen2 == '/' || zeichen2 == '+' || zeichen2 == '-' || zeichen2 == ' ')
                    {
                        return false;
                    }

                    return true;
                }

                return false;
            }
        }
    }

  3. Hallo Fachinformatiker Community, ich habe einen Taschenrechner mit C# gebaut und soll nun das Programm so ändern, dass wenn das Ergebnis angezeigt wird, automatisch eine Frage kommt mit "wollen sie noch eine Rechnung eingeben, dann geben sie j ein wenn nicht n" oder so. auf jeden Fall brauche ich hilfe dabei, wie man auf das Programm wieder von vorne laufen lässt. 

    Weiß jemand wie das geht? 

     

    LG Max und danke schonmal

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...