Max01
-
Gesamte Inhalte
10 -
Benutzer seit
-
Letzter Besuch
Inhaltstyp
Profile
Forum
Downloads
Kalender
Blogs
Shop
Beiträge von Max01
-
-
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
-
Gerade eben schrieb Whiz-zarD:
Du hast doch in deiner Anwendung schon for-Schleifen verwendet. Wo ist nun das Problem?
Schaue dir doch mal andere Schleifen-Varianten an. z.B. while.
Das war mein chef
-
Könne mir trotzdem jemand ein Beispiel zeigen? Müsst es ja nicht anhand meines Taschenrechners machen
-
Gerade eben schrieb Whiz-zarD:
Stichwort: Schleife.
Du packst den Teil, der wiederholt werden soll in eine Schleife.
Also quasi alles?
-
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;
}
}
} -
@Exception könntest du mir netterweise ein beispiel zeigen. ich verstehe es auch nach dem lesen der Website nicht....
Beste Grüße Max
-
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
-
ehre @thereisnospace
- thereisnospace reagierte darauf
- 1
-
Hi, kann jemand sonnst mal ein Beispiel von einer C# Gleichung posten?
C# code in der Ausgabe auf Nachfrage auf Anfang setzen
in Anwendungsentwickler und Programmierer
Geschrieben
Was meinst du genau, er läuft bei mir Prima?