/ Forside/ Teknologi / Udvikling / PHP / Spørgsmål
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Løsning af 2. gradsligning....
Fra : ZeroXP
Vist : 1747 gange
134 point
Dato : 30-11-04 15:34

Hej

Jeg har fået stillet en opgave, som jeg lige pt står og har ingen idé om hvordan jeg skal løse.

opgaven lyder som følgende:

----
I programmeringssproget PHP skal der laves et program der løser en andengrads ligning af typen

ax2 + bx + c = 0
Programmet skal give mulighed for at brugeren kan indtaste de tre parametre a, b, c. Programmet skal endvidere kunne afgøre om der er to, en eller ingen løsninger.
----


Nogen som kan hjælpe en stakkels HTX elev, der sidder og ikke aner hva han skal...hehe

/ZeroXP

 
 
Kommentar
Fra : invisible


Dato : 30-11-04 16:08

Hvis du lige selv buger 2 min. på Google så får du løsningen.

Søg efter:
kode php ligning

hvis det ikke er nok sørger du efter:
kode ligning visual


Kommentar
Fra : johnny80


Dato : 30-11-04 17:51

Skulle der ikke stå ax^2 + bx + c = y?
Altså y istedet for 0

Jeg ved ikke så meget op programmering.

Men brug formel:
D = b^2 - 4ac

hvis
D<0 ingen løsning
D=0 en løsning
D>0 to løsninger

b^2 er b i anden

Kommentar
Fra : johnny80


Dato : 30-11-04 17:53

Og ja, der skal stå 0 tilsidst ikke y. Min fejl.

Kommentar
Fra : albi


Dato : 30-11-04 19:29

Hvis man bare skal skrive a, b og c så er det rimelig lige til at lave...

så skal du lave 3 input bokse med nogle variable og så skal du bruge formlen for en andengradsligning

men hvis man skal kunne skrive ligningen bliver det lidt sværrere

Kommentar
Fra : Lasse_Madsen


Dato : 30-11-04 21:35

Skal man kunne skrive ligningen eller kun indtaste a, b og c?

Accepteret svar
Fra : dhhansen

Modtaget 134 point
Dato : 03-12-04 00:07

Hej ZeroXP

Du skal først lave en side, hvor brugeren skal indtaste a, b og c. Det er naturligvis ikke nødvendigt at indtaste andet, da andengradsligningen netop er givet ved disse tre konstanter. For at brugeren kan indtaste a, b og c laver du en form i stil med denne. Bemærk at koden ikke er komplet (du skal jo også selv lave noget):

<form method="POST" action="beregn.php?>
a:<input type="text" name="a" size="5" value="">
b:<input type="text" name="b" size="5" value="">
osv...

<input type="submit" value="Beregn rødder" name="B1">
</form>

method="POST" er den metode, der bruges til at overføre data til "beregn.php"
action="beregn.php" er navnet på den php-fil der skal beregne resultatet.

input type="text" er felter til at indtaste tal og bogstaver
input type="submit" er den knap man skal trykke på for at eksekvere beregningen

Du skal nu lave en php-fil, der hedder beregn.php og som laver de nødvendige udregninger og returnerer resultatet til skærmen.

Den information, der intastes i formen, sendes med til den nye side og kan bruges direkte.

Den værdi der indtastes i det tekstfelt, hvor name="a" vil findes i variablen $a og kan bruges i dine beregninger.

Først beregner du diskriminanten. Den fortæller hvor mange løsninger vi har. Bemærk at du nu skal lave formler, hvor dine variabler indgår:

$d = ($b*$b) - (4*$a*$c);

Dette udregner altså diskriminanten efter formlen d = b^2 - 4ac og tildeler værdien til variablen $d . Læg mærke til at når du indsætter dine variabler i formlen vil udregningen blive foretaget med den værdi, der er gemt i variablen.

Hvis diskriminanten er positiv er der 2 løsninger som er givet ved:

x1 = (-b - sqrt(d)) / (2a)
x2 = (-b + sqrt(d)) / (2a)

Du skal altså lave formler, som ovenfor, der bruger dine variabler, til at udregne de ønskede væredier, og tildeler resultatet til nye variabler ($x1 og $x2 - variabler begynder med $). Bemærk at du her udnytter diskriminanten, d, som du lige har udregnet. Kvadratrod laver du med sådan: sqrt(x) Husk at sætte parenteser i dine formler, så du er sikker på at det er det korrekte den regner ud.

Hvis diskriminanten er nul er der en løsning som er givet ved:

x = -b / (2a)

Hvis diskriminanten er negativ er der ingen løsninger.

Du skal kunne skelne mellem disse tre situationer, så inden du udregner løsningerne skal du tjekke hvad diskriminanten er. Det gør du med en if sætning:

if($d > 0){ ..............}

if($d == 0){ ..............}

if($d < 0){ ..............}

Det fungerer sådan at hvis det der står i parentesen er sand vil det der står mellem de efterfølgende { } blive udført.

Det er vigtigt at du bruger == for at se om den er lig nul. Bruger du kun et lighedstegn vil du tildele den værdien nul, og det er du ikke interesseret i.

Du skal altså lave udregningerne mellem klammerne { }.

Når du har beregnet resultatet skal du skrive det til skærmen. Dette gør du også inden for klammerne { }. Skriv noget i stil med:

echo "Ligningen har to løsninger: x1=" . $x1 . "og x2=" . $x2 ".";

og tilsvarende for de andre situationer.

Håber det hjælper dig.

Kommentar
Fra : albi


Dato : 07-12-04 23:28

jahh det var vel det

Kommentar
Fra : ZeroXP


Dato : 15-04-05 15:21

Jeg havde ikke mulighed for at komme herind igen, efter jeg havde postet mit indlæg. Men nogle forskellige til at hjælpe mig, og har fået den lavet så den virker. Blev dog afleveret for sent.... ingen karakter så... snøft. Men det er meget lig det som "dhhansen" har skrevet, derfor får han pointne, og mange tak for hjælpen....
Har nu fået et nyt projekt igen i php, men der har jeg lavet et nyt sprgsmål til det.




Godkendelse af svar
Fra : ZeroXP


Dato : 15-04-05 15:24

Tak for svaret dhhansen.
                        

Du har følgende muligheder
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.

Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
Søg
Reklame
Statistik
Spørgsmål : 177578
Tips : 31968
Nyheder : 719565
Indlæg : 6409071
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste