AGB  ·  Datenschutz  ·  Impressum  







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

imaginäre Zahlen

Ein Thema von Stutz · begonnen am 19. Jun 2008 · letzter Beitrag vom 25. Jun 2008
Antwort Antwort
Stutz

Registriert seit: 3. Apr 2006
Ort: Bad Waldsee
11 Beiträge
 
#1

Re: imaginäre Zahlen

  Alt 24. Jun 2008, 23:33
hi,

ich hab mal angefangen einen parser zu schreiben, der mir imaginär und realteil trennt. is zwar chaotisch und wahrscheinlich der am schlimmsten programmierte quellcode der hier bisher gepostet wird, aber ich kanns net besser und steh bisher noch dazu. falls ihr verbesserungsvorschläge habt, bin ich offen für alles.

Delphi-Quellcode:
function imaginaerteil_bestimmen(komplex:string):string;
var
   imaginaer,real,merker,vz:string;
   bimag:boolean;
   i:integer;
   offene_klammer:integer;
begin
   offene_klammer:=0;
   bimag := false;
   real := '';
   imaginaer :='';
   vz:='+';
   for i:=1to length(komplex)+1 do
   begin

      if (komplex[i] = '(')then
      offene_klammer := offene_klammer +1;


      if (komplex[i]=')')then
      offene_klammer := offene_klammer -1;


      if(offene_klammer =0) then //wenn an stelle i keine klammer offen ist
      begin


         if ((komplex[i] <> '+') and (komplex[i]<>'-')and (i<=length(komplex))) then //wenn inerhalb der punkt vor strich rechnung
         begin
            merker := merker+komplex[i];
            if komplex[i]='ithen
               begin
               bimag := true;
               end;

         end

         else if i>1 then//wenn plus oder minus kommt die volle gleichung in imaginaerteil oder realteil speichern
         begin
            if bimag = true then
            begin
               imaginaer := imaginaer +vz+ merker;
               bimag := false;
            end
            else
            begin
               real := real+vz+merker;
            end;
            merker := '';
         end;



      //aktuelles vorzeichen merken
         if komplex[i]='-then
         begin
            vz:='-';
         end;

         if komplex[i]='+then
         begin
            vz:='+';
         end;



      end


      else//inerhalb einer oder mehreren klammern
      begin
         merker := merker + komplex[i];//klammer wird prinzipiell als ganzes betrachtet
         //markieren wenn imaginaere zahl
         if komplex[i]='ithen
         begin
            bimag := true;
         end;
      end;





   end;
   
   imaginaerteil_bestimmen := 'realteil: '+real + #13 +'imaginaerteil: '+ imaginaer;
end;

PS:mir fiel gerade auf dass es sehr verwirrend is dass die schleifenvariable i heißt und ich ständig nach i suche, ich glaube das sollte ich so schnell wie möglich ändern

gruß
stutz
wer versucht das zu finden was er sucht, wird niemals erfolg haben,
um erfolg zu haben muss man das suchen was man findet.
  Mit Zitat antworten Zitat
Antwort Antwort


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 18:33 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz