AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Punkt vor Strich?

Ein Thema von Die Muhkuh · begonnen am 27. Aug 2003 · letzter Beitrag vom 29. Aug 2003
Antwort Antwort
Seite 1 von 3  1 23      
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#1

Punkt vor Strich?

  Alt 27. Aug 2003, 08:58
Ich hab nen Rechner programmiert der mit 2 bis 5 Zahlen rechnet allerding so wie man es ihm sagt also 5+4*2-5=13 eigentlich müsste ja 8 rauskommen.

Im Klarext wie kann ich dem Rechner "beibringen" das er Punkt vor Strich rechnet?

greetz

Spider
Manuel
  Mit Zitat antworten Zitat
Illuminator-23-5
(Gast)

n/a Beiträge
 
#2

Re: Punkt vor Strich?

  Alt 27. Aug 2003, 09:03
du könntest von vorne bis hinten alles durchgehen und alle multiplikationen/divisionen erledigen und erst in einem 2. Schritt addition/subtraktion
5+4*2-5=
5+8-5=
8
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#3

Re: Punkt vor Strich?

  Alt 27. Aug 2003, 19:22
Ähm ja schön, nur wie geht das??? Hast du nen Beispiel Code?
Manuel
  Mit Zitat antworten Zitat
Illuminator-23-5
(Gast)

n/a Beiträge
 
#4

Re: Punkt vor Strich?

  Alt 27. Aug 2003, 19:31
wie speicherst du die rechnung? ich könnt dann im fall schnell was schreiben
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#5

Re: Punkt vor Strich?

  Alt 27. Aug 2003, 19:52
Also hier ist der !!!gesamte!!! Code:
Delphi-Quellcode:
var
  Rechnen: TRechnen;
  a, b, c, d, e, f, g, z1, z2, z3, er : Extended;

implementation

uses Unit1, Unit2, Unit4, Unit5, Unit6, Unit7, shellapi;

{$R *.DFM}

procedure TRechnen.Button5Click(Sender: TObject);
begin
  
  if Combobox5.itemindex = 0 then
    begin
      a := strtofloat (Edit1.text);
      b := strtofloat (Edit2.text);

        case Combobox1.itemindex of
          0: er := a + b;
          1: er := a - b;
          2: er := a * b;
          3: er := a / b;
        end;
      Panel1.caption := floattostr (er);
    end;

  if Combobox5.itemindex = 1 then
    begin
      a := strtofloat (Edit1.text);
      b := strtofloat (edit2.text);
      c := strtofloat (Edit3.text);

        case Combobox1.ItemIndex of
          0: z1 := a + b;
          1: z1 := a - b;
          2: z1 := a * b;
          3: z1 := a / b;
        end;

        case combobox2.itemindex of
          0: er := z1 + c;
          1: er := z1 - c;
          2: er := z1 * c;
          3: er := z1 / c;
        end;
      Panel1.caption := floattostr (er);
     end;

    if Combobox5.itemindex = 2 then
      begin
        a := strtofloat (Edit1.text);
        b := strtofloat (Edit2.text);
        c := strtofloat (Edit3.text);
        d := strtofloat (Edit4.text);

          case Combobox1.itemindex of
            0: z1 := a + b;
            1: z1 := a - b;
            2: z1 := a * b;
            3: z1 := a / b;
          end;

          case combobox2.itemindex of
            0: z2 := z1 + c;
            1: z2 := z1 - c;
            2: z2 := z1 * c;
            3: z2 := z1 / c;
          end;

          case Combobox3.ItemIndex of
            0 : er := z2 + d;
            1 : er := z2 - d;
            2 : er := z2 * d;
            3 : er := z2 / d;
          end;
        Panel1.caption := floattostr (er);
      end;

    if Combobox5.itemindex = 3 then
      begin
         a := strtofloat (Edit1.text);
         b := strtofloat (Edit2.text);
         c := strtofloat (Edit3.text);
         d := strtofloat (Edit4.text);
         e := strtofloat (Edit5.text);

           case Combobox1.itemindex of
             0: z1 := a + b;
             1: z1 := a - b;
             2: z1 := a * b;
             3: z1 := a / b;
           end;

           case combobox2.itemindex of
             0: z2 := z1 + c;
             1: z2 := z1 - c;
             2: z2 := z1 * c;
             3: z2 := z1 / c;
           end;

           case Combobox3.ItemIndex of
             0 : z3 := z2 + d;
             1 : z3 := z2 - d;
             2 : z3 := z2 * d;
             3 : z3 := z2 / d;
           end;

           case Combobox3.ItemIndex of
             0 : er := z3 + d;
             1 : er := z3 - d;
             2 : er := z3 * d;
             3 : er := z3 / d;
           end;
         Panel1.caption := floattostr (er);
      end;

    if Combobox5.itemindex = 4 then
      begin
        f := strtofloat (Edit1.text);

        er := Sqr(f);
        Panel1.caption := floattostr (er);
      end;
    if Combobox5.ItemIndex = 5 then
      begin
        g := strtofloat (Edit1.text);

        er:= Sqrt(g) ;
        Panel1.caption := floattostr (er);
      end;
end;

procedure TRechnen.ComboBox5Change(Sender: TObject);
begin
  if Combobox5.ItemIndex = 0 then
    begin
      Edit1.visible := true;
      Edit2.visible := true;
      Edit3.visible := false;
      Edit4.visible := false;
      Edit5.visible := false;
      Edit1.text := '';
      Edit2.text := '';
      Edit3.text := '';
      Edit4.text := '';
      Edit5.text := '';

      Combobox1.visible := true;
      Combobox2.visible := false;
      combobox3.visible := false;
      Combobox4.visible := false;
      Combobox1.Text := '';
      Combobox2.Text := '';
      Combobox3.Text := '';
      Combobox4.Text := '';
      Combobox5.Text := '';

      Panel1.Caption := '';
     end;

  if Combobox5.itemindex = 1 then
    begin
      Edit1.visible := true;
      Edit2.visible := true;
      Edit3.visible := true;
      Edit4.visible := false;
      Edit5.visible := false;
      Edit1.text := '';
      Edit2.text := '';
      Edit3.text := '';
      Edit4.text := '';
      Edit5.text := '';

      Combobox1.visible := true;
      Combobox2.visible := true;
      combobox3.visible := false;
      Combobox4.visible := false;
      Combobox1.Text := '';
      Combobox2.Text := '';
      Combobox3.Text := '';
      Combobox4.Text := '';
      Combobox5.Text := '';

      Panel1.Caption := '';
    end;

  if Combobox5.itemindex = 2 then
    begin
      Edit1.visible := true;
      Edit2.visible := true;
      Edit3.visible := true;
      Edit4.visible := true;
      Edit5.visible := false;
      Edit1.text := '';
      Edit2.text := '';
      Edit3.text := '';
      Edit4.text := '';
      Edit5.text := '';

      Combobox1.visible := true;
      Combobox2.visible := true;
      combobox3.visible := true;
      Combobox4.visible := false;
      Combobox1.Text := '';
      Combobox2.Text := '';
      Combobox3.Text := '';
      Combobox4.Text := '';
      Combobox5.Text := '';

      Panel1.Caption := '';
    end;

   if Combobox5.itemindex = 3 then
     begin
       Edit1.visible := true;
       Edit2.visible := true;
       Edit3.visible := true;
       Edit4.visible := true;
       Edit5.visible := true;
       Edit1.text := '';
       Edit2.text := '';
       Edit3.text := '';
       Edit4.text := '';
       Edit5.text := '';

       Combobox1.visible := true;
       Combobox2.visible := true;
       combobox3.visible := true;
       Combobox4.visible := true;
       Combobox1.Text := '';
       Combobox2.Text := '';
       Combobox3.Text := '';
       Combobox4.Text := '';
       Combobox5.Text := '';

       Panel1.Caption := '';
     end;

   if Combobox5.itemindex = 4 then
     begin
       Edit1.visible := true;
       Edit2.visible := false;
       Edit3.visible := false;
       Edit4.visible := false;
       Edit5.visible := false;
       Edit1.text := '';
       Edit2.text := '';
       Edit3.text := '';
       Edit4.text := '';
       Edit5.text := '';

       Combobox1.visible := false;
       Combobox2.visible := false;
       combobox3.visible := false;
       Combobox4.visible := false;
       Combobox1.Text := '';
       Combobox2.Text := '';
       Combobox3.Text := '';
       Combobox4.Text := '';
       Combobox5.Text := '';

       Panel1.Caption := '';
     end;

   if Combobox5.itemindex = 5 then
     begin
       Edit1.visible := true;
       Edit2.visible := false;
       Edit3.visible := false;
       Edit4.visible := false;
       Edit5.visible := false;
       Edit1.text := '';
       Edit2.text := '';
       Edit3.text := '';
       Edit4.text := '';
       Edit5.text := '';

       Combobox1.visible := false;
       Combobox2.visible := false;
       combobox3.visible := false;
       Combobox4.visible := false;
       Combobox1.Text := '';
       Combobox2.Text := '';
       Combobox3.Text := '';
       Combobox4.Text := '';
       Combobox5.Text := '';

       Panel1.Caption := '';
     end;
end;
Das ist der doch nicht ganz gesamte Code(Der gesamte ist 850 Zeilen lang!) Wahrscheinlich hätte man einiges Verbessern können so weit bin ich nocht net!
Manuel
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#6

Re: Punkt vor Strich?

  Alt 27. Aug 2003, 19:52
Hier einige Ansätze:
1. suche ein Punkt-Zeichen. Kopiere die Zahlen vom Zeichen davor bis zum Zeichen danach raus. Speicher aber Position und Länge des ursprünglichen Strings, es wird nützlich sein
2. Löse diese (einfache) Rechnung
3. Setze das Ergebnis anstatt des Ausdrucks wieder ein:
Delphi-Quellcode:
Delete(Rechnung, Start, Laenge);
Insert(Rechnung, Start,ZwErgebnis);
4. Wiederhole das ganze bis kein Punktzeichen mehr da ist
5. Rechne alle Strichrechnungen nach deinem Muster aus.

Das sollte helfen, wenn nicht, lass dir von Illu den code schreiben
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#7

Re: Punkt vor Strich?

  Alt 27. Aug 2003, 19:54
Wie wäre es mit einer einfachen Klammerung
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#8

Re: Punkt vor Strich?

  Alt 27. Aug 2003, 19:54
Zitat von alcaeus:
Hier einige Ansätze:
1. suche ein Punkt-Zeichen. Kopiere die Zahlen vom Zeichen davor bis zum Zeichen danach raus. Speicher aber Position und Länge des ursprünglichen Strings, es wird nützlich sein
2. Löse diese (einfache) Rechnung
3. Setze das Ergebnis anstatt des Ausdrucks wieder ein:
Delphi-Quellcode:
Delete(Rechnung, Start, Laenge);
Insert(Rechnung, Start,ZwErgebnis);
4. Wiederhole das ganze bis kein Punktzeichen mehr da ist
5. Rechne alle Strichrechnungen nach deinem Muster aus.

Das sollte helfen, wenn nicht, lass dir von Illu den code schreiben
Ich versteh nur Bahnhof!
Ich prgrammier erst seit nem Jahr mit viertel Jaht pause!
Manuel
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#9

Re: Punkt vor Strich?

  Alt 27. Aug 2003, 20:00
PS: Fallse jemand das Programm möchte dann kann er es sich unter www.mani007.de downloaden!
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#10

Re: Punkt vor Strich?

  Alt 27. Aug 2003, 20:12
Mein Vorschlag ist doch etwas zu knapp: Ich meine den String um die Klammern zu erweitern und den dann auszuwerten. Das ganze läuft sowieso auf String-Manipulation hinaus. Das würde ich in Prozeduren aufteilen, dann sofern eine "(" kommt solange lesen bis ")" kommt. Den Ausdruck auswerten usw.
Gruß
Hansa
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:30 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz