Zum Inhalt springen

Max01

Mitglieder
  • Gesamte Inhalte

    10
  • Benutzer seit

  • Letzter Besuch

Reputationsaktivitäten

  1. Like
    Max01 reagierte auf Whiz-zarD in C# code in der Ausgabe auf Nachfrage auf Anfang setzen   
    So, wie der hier steht, kann er gar nicht laufen:
    private static char GetOperator(string gleichung) { //mal rechnung for (int i = 0; i < gleichung.Length; i++) { char zeichen = gleichung; [...] } [...] } Der Parameter "gleichung" dieser Methode ist ein string. Die Variable "zeichen" ist aber ein char und dennoch wird Variable mit "gleichung" intialisiert.
    char zeichen = gleichung; Beides sind aber unterschiedliche Typen.
  2. Like
    Max01 reagierte auf KeeperOfCoffee in C# code in der Ausgabe auf Nachfrage auf Anfang setzen   
    so wie ich das verstanden habe, kommt das mit den Schleifen von seinem Chef.
    So wie ich da sehe fehlen hier noch grundlegende Kenntnisse. 
    Bitte erst mal ein wenig üben, bevor du an dem Rechner weitermachst.
  3. Like
    Max01 reagierte auf KeeperOfCoffee in C# code in der Ausgabe auf Nachfrage auf Anfang setzen   
    https://www.codecademy.com/learn/learn-c-sharp
    https://docs.microsoft.com/de-de/dotnet/csharp/getting-started/
    Lies/Arbeite dich erstmal in die Sprache ein
  4. Danke
    Max01 reagierte auf Whiz-zarD in C# code in der Ausgabe auf Nachfrage auf Anfang setzen   
    Und wenn wir schon beim Thema "Taschenrechner" sind:
    Wie man einen Taschenrechner programmiert
  5. Danke
    Max01 reagierte auf Chief Wiggum in C# code in der Ausgabe auf Nachfrage auf Anfang setzen   
    Hallo,
    bitte verwende für Programmierfragen auch die passenden Unterbereiche dafür - ich habe den Thread mal richtig einsortiert.
    Danke.
  6. Like
    Max01 reagierte auf KeeperOfCoffee in C# code in der Ausgabe auf Nachfrage auf Anfang setzen   
    Lagere das Zeug aus deiner Main() erstmal ein eine eigene Methode, die dann so lange läuft, wie deine Methode true zurückgibt (also an die Schleife). Ob true oder false zurückkommen entscheidet halt der Benutzer, wenn du abfragst, ob er noch eine Rechnung machen will.
    Übrigens: Das hättest du locker in den anderen Thread packen können. Ist schließlich das gleiche Thema. 
  7. Like
    Max01 reagierte auf Whiz-zarD in C# code in der Ausgabe auf Nachfrage auf Anfang setzen   
    Ja. Alles, was in Main() steht.
  8. Like
    Max01 reagierte auf thereisnospace in C# code in der Ausgabe auf Nachfrage auf Anfang setzen   
    Die Lösung werde ich dir hier nicht präsentieren, aber vielleicht ein etwas anschaulicheres Bild:
    solange (Bedingung!=Erfuellt) { Rechne,Rechne,Rechne() wenn (fertiggerechnet) { Bedingung=Erfuellt } ansonsten { Bedingung=NichtErfuellt } }  
  9. Like
    Max01 reagierte auf Kleinrechner in C# code in der Ausgabe auf Nachfrage auf Anfang setzen   
    Solange der Benutzer nicht abbricht, zeigst du ihm du ihm die Starteingabe an, das ganze jetzt noch auf englisch.
  10. Like
    Max01 reagierte auf Listener in C# code in der Ausgabe auf Nachfrage auf Anfang setzen   
    Du kannst das Programm solange laufen lassen, wie $answer=false ist. Am Ende des Programms lässt du dann mit einer Eingabe die Varible $answer befüllen. Entweder mit true oder false, je nachdem was dein User eingibt. 
    Das sollte für so ein Basis-Tutorial denke mal Okay sein.
  11. Haha
    Max01 hat eine Reaktion von thereisnospace erhalten in Gleichungen lösen unter C#   
    ehre @thereisnospace
  12. Danke
    Max01 reagierte auf thereisnospace in Gleichungen lösen unter C#   
    Hey du Totengräber, achte mal aufs Datum.
    Aber ich bin mal so nett:
    http://www.ne555.at/2014/index.php/pc-programmierung/einfuehrung-c/215-programmierbeispiel-quadratische-gleichung.html
     
  13. Danke
    Max01 reagierte auf flashpixx in Punkt vor Strichrechnung   
    Warum schreibst Du nicht zuerst einmal Deine komplette Berechnung in einen Syntaxbaum und traversierst diesen dann entsprechend. In den Blättern stehen die Zahlen, in den Knoten die Operatoren. Damit hast direkt Punkt vor Strichrechnung usw, sowie korrekte Klammerverarbeitung?

    Phil
  14. Positiv
    Max01 reagierte auf kross in Punkt vor Strichrechnung   
    so sollte es relativ einfach gehen
    -eingabe (werte und operanten merken)
    -anschließend aus dieser liste die operationen von der höchsten zur kleinsten priorität abarbeiten
    -bleibt nurnoch ein wert und keine operation mehr hat man das ergebnis

    zu tun
    erstmal ein neues leeres form erstellen und 6 buttons adden und code einfügen
    das beispielprojekt hat nur addition, multiplikation und potenzieren und als wert nur die zahl 3
    -erweitern um ziffern {0..9}/3
    -ziffern untereinander zu zahlen zusammenfassen (sind 2 werte an stelle i in der liste ohne rechenoperation benachbart wert=wert*10+wert[i+1], lösche wert[i+1])
    -erweitern um subtraktion/division
    -fehlerbehandlung (doppelte rechenoptoren abfangen etc)


    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace WindowsApplication5 { public partial class Form1 : Form { private List<Teil> m_teile; public enum operation { plus, minus, mal, durch, hoch, } public Form1() { InitializeComponent(); button1.Text = "3"; button2.Text = "+"; button3.Text = "*"; button4.Text = "^"; button5.Text = "Neu"; button6.Text = "="; m_teile = new List<Teil>(); } private void button1_Click(object sender, EventArgs e) { m_teile.Add(new Teil(3)); } private void button2_Click(object sender, EventArgs e) { m_teile.Add(new Teil(Operation.plus)); } private void button3_Click(object sender, EventArgs e) { m_teile.Add(new Teil(Operation.mal)); } private void button4_Click(object sender, EventArgs e) { m_teile.Add(new Teil(Operation.hoch)); } private void button5_Click(object sender, EventArgs e) { m_teile = new List<Teil>(); } private void button6_Click(object sender, EventArgs e) { //schrittweise aufloesen //erster schritt die ziffern zu zahlen zusammenfassen //!!!!todo im beispiel nur mit einstelligen ziffern gearbeitet //zweiter schritt potenzen ausrechnen //rechten und linken operand + rechenzeichen aus der liste löschen //ergebnis an deren stelle einfügen for (int i = 0; i < m_teile.Count; i++) { if (m_teile[i].Art == Teil.ArtEnum.RechenOperation && m_teile[i].Operation == Operation.hoch) { int erg = (int)Math.Pow(m_teile[i - 1].Wert, m_teile[i + 1].Wert); m_teile[i - 1].Wert = erg; //wert vor dem operand wird überschrieben spart herrauslöschen und anschließendes neu einfügen m_teile.RemoveRange(i, 2); i--;//i um eins verringern da durch das löschen der aktuellen position dort nun ein noch nicht verarbeiteter wert steht } } //dritter schritt multiplizieren (todo dividieren) for (int i = 0; i < m_teile.Count; i++) { if (m_teile[i].Art == Teil.ArtEnum.RechenOperation && m_teile[i].Operation == Operation.mal) { int erg = m_teile[i - 1].Wert * m_teile[i + 1].Wert; m_teile[i - 1].Wert = erg; //wert vor dem operand wird überschrieben spart herrauslöschen und anschließendes neu einfügen m_teile.RemoveRange(i, 2); i--;//i um eins verringern da durch das löschen der aktuellen position dort nun ein noch nicht verarbeiteter wert steht } } //letzter schritt addieren (todo subtrahieren) for (int i = 0; i < m_teile.Count; i++) { if (m_teile[i].Art == Teil.ArtEnum.RechenOperation && m_teile[i].Operation == Operation.plus) { int erg = m_teile[i - 1].Wert + m_teile[i + 1].Wert; m_teile[i - 1].Wert = erg; //wert vor dem operand wird überschrieben spart herrauslöschen und anschließendes neu einfügen m_teile.RemoveRange(i, 2); i--;//i um eins verringern da durch das löschen der aktuellen position dort nun ein noch nicht verarbeiteter wert steht } } //m_teile sollte nurnoch 1 eintrag haben dieser ist das ergebnis MessageBox.Show(m_teile[0].Wert.ToString()); } } public enum Operation { plus, minus, mal, durch, hoch, } public class Teil { private ArtEnum m_art; public ArtEnum Art { get { return m_art; } } private Operation m_operation; public Operation Operation { get { return m_operation; } } private int m_wert; public int Wert { get { return m_wert; } set { m_wert = value; } } public Teil(Operation _op) { m_art = ArtEnum.RechenOperation; m_operation = _op; } public Teil(int _wert) { m_wert = _wert; m_art = ArtEnum.Wert; } public enum ArtEnum { RechenOperation, Wert } } }
  15. verwirrt
    Max01 reagierte auf flashpixx in Punkt vor Strichrechnung   
    Meine Postings beziehen sich nicht auf eine Umsetzung in C# sondern um die theoretischen Grundlagen für die Problemlösung



    Sicher. Ich verstehe es so, dass eine Konsolenanwendung ausreichend ist, obwohl man ja auch ein Form machen kann, in dem man die zu berechnende Funktion auch als String in ein Textfeld eingeben kann. Die Progammlogik bleibt gleich

    Phil

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