AGB  ·  Datenschutz  ·  Impressum  







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

Polynom von 2tem Grad

Ein Thema von diavy · begonnen am 17. Jun 2012 · letzter Beitrag vom 18. Jun 2012
Antwort Antwort
haui95

Registriert seit: 1. Feb 2012
Ort: Niedersachsen
29 Beiträge
 
Delphi 7 Personal
 
#1

AW: Polynom von 2tem Grad

  Alt 17. Jun 2012, 17:37
Hier einmal ein Beispielcode, wie man es machen kann, es geht wahrscheinlich auch noch etwas eleganter, z.B. mit der P-Q-Formel, ähnelt aber der a-b-c-Formel, naja
Ich hoffe es hilft dir weiter ! Wie NamenLozer schon gesagt hat, hättest du deinen Quelltext ein bisschen besser formatieren können, da ich zum Beispiel kaum etwas unter deinen Variablennamen verstehen konnte, nur so als kleiner Ratschlag

Delphi-Quellcode:
program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var
  a, b, c, disk, x1, x2: Real;
begin
  disk := 0;
  readln(a, b, c);

  if (a = 0) then
    writeln('´Not solvable !')
  else
    begin
      disk := (b*b) - 4*a*c;
      if disk < 0 then
        writeln('There are 0 solutions for f(x) = 0 !')
      else
        begin
          disk := sqrt(disk);
          x1 := (-b + disk) / (2 * a);
          x2 := (-b - disk) / (2 * a);
          if (disk = 0) then
            begin
              writeln('There is 1 solution for f(x)=0 !');
              if (x1 >= 0) or (x2 >= 0) then
                writeln('The solution is positive !')
              else
                if (x1 < 0) or (x2 < 0) then
                  writeln('The solution is negative !');
            end
          else
            if (disk > 0) then
              begin
                writeln('There are 2 solutions for f(x)=0 !');
                if (x1 < 0) and (x2 >= 0) then
                  begin
                    writeln('The first solution is negative !');
                    writeln('The second solution is positive !');
                  end
                else
                  if (x1 >= 0) and (x2 < 0) then
                    begin
                      writeln('The first solution is positive !');
                      writeln('The second solution is negative !');
                    end
                else
                  if (x1 >= 0) and (x2 >= 0) then
                    writeln('Both solutions are positive !')
                else
                  if (x1 < 0) and (x2 < 0) then
                    writeln('Both solutions are negative !');
            end;
        end;
    end;
    readln;
end.
MfG

Hauke
Hauke

Geändert von haui95 (17. Jun 2012 um 17:47 Uhr)
  Mit Zitat antworten Zitat
diavy

Registriert seit: 11. Apr 2012
54 Beiträge
 
#2

AW: Polynom von 2tem Grad

  Alt 17. Jun 2012, 18:29
Erstmal Danke für die Antworten!

Zitat:
Und jetzt kannst du dir z.B. eine Tabelle machen, wann x1 und x2 positiv oder negativ sind.
Das musst du jetzt nur noch in Code überführen, was eine leichte Übung sein sollte.
Genau so bin ich eigentlich vorgegangen und trotzdem scheint es nicht zu klappen. :/

Hauke es ist ech nett dass du dir so viel Mühe gemacht hast den Code zu schreiben aber leider kann ich es nicht auf deine Weise lösen, da ich die Lösungen nicht rechnen darf, was bei dir leider der Fall ist("x1 := (-b + disk) / (2 * a);
x2 := (-b - disk) / (2 * a);").
  Mit Zitat antworten Zitat
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Polynom von 2tem Grad

  Alt 18. Jun 2012, 00:07
Bei deinem Beispiel prüft signfortwosubs if 2 > 0 then if 4 > 0 then aux:=false und somit wird The second one is negative ausgegeben.

Edit:
Bei signfortwoadd greift die Bedingung if (abs(y) > sqrt(z)) und somit wird The first one is positive ausgegeben.

Geändert von Bjoerk (18. Jun 2012 um 00:14 Uhr) Grund: Edit:
  Mit Zitat antworten Zitat
diavy

Registriert seit: 11. Apr 2012
54 Beiträge
 
#4

AW: Polynom von 2tem Grad

  Alt 18. Jun 2012, 22:19
Vielen Dank! Ist somit geklärt!
  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 04:08 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