Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Rownanie kwadratowe.
Phivko
post
Post #1





Grupa: Zarejestrowani
Postów: 37
Pomógł: 0
Dołączył: 3.05.2003
Skąd: Szczecinek

Ostrzeżenie: (0%)
-----


To jest skrypt z kasiążki, który wyświetla formularz z możliwością wpisania trzech danych a, b i c, a potem oblicza rozwiazanie rownania kwadratowego ax2+bx+c=0:

[php:1:8616e1ec27]<?php

// Pobiera od użytkownika współczynniki równania, a następnie
// oblicza wartości zerowe równania kwadratowego.
$a = str_replace (",", ".", $a); settype ($a, "double");
$b = str_replace (",", ".", $(IMG:http://forum.php.pl/style_emoticons/default/cool.gif) ; settype ($b, "double");
$c = str_replace (",", ".", $c); settype ($c, "double");
if ($a || $b || $c) { # wartości w formularzu s± ok
print ("a = $a, b = $b, b = $c<BR>");
if ($a) {
$delta = $b*$b-4*$a*$c;
if ($delta < 0) {
print ('Równanie nie ma pierwiastków rzeczywistych');
} elseif ($delta == 0) {
$x1 = -$b/(2 * $a);
print ("Równanie ma jeden pierwiastek rzeczywisty: $x1");
} else {
$x1 = (-$b-sqrt($delta)) / (2*$a);
$x2 = (-$b+sqrt($delta)) / (2*$a);
print ("Równanie ma dwa pierwiastki rzeczywiste: $x1 i $x2");
}
} elseif ($(IMG:http://forum.php.pl/style_emoticons/default/cool.gif) {
$x1 = -$c/$b;
print ("Równanie ma jeden pierwiastek rzeczywisty: $x1");
} else {
print ('Równanie nie ma pierwiastków rzeczywistych');
}
print '<BR><A HREF="4-03.php">Powrót do formularza</A>';
} else { # nie ma wpisanych danych, wyświetlamy formularz
print '<FORM ACTION="4-03.php" METHOD=GET>';
print 'a: <INPUT TYPE="text" NAME="a"><BR>';
print 'b: <INPUT TYPE="text" NAME="b"><BR>';
print 'c: <INPUT TYPE="text" NAME="c"><BR>';
print '<INPUT TYPE="submit" VALUE="Wyślij">';
print '</FORM>';
}

?>[/php:1:8616e1ec27]

Moze mi ktoś powiedziec po co są linie: 10, 22, 23, 24, 25, 26, 27. Czy wogole sa potrzebne?. Wlasnie ucze sie php i oprocz wymienionych wyzej linii caly skrypt jest dla mnie jasny.
Po usunięciu tych linii skrypt dziala poprawnie.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Koshin
post
Post #2





Grupa: Zarejestrowani
Postów: 196
Pomógł: 0
Dołączył: 29.04.2002
Skąd: jesteś?

Ostrzeżenie: (0%)
-----


if ($a)

wydaje mi sie ze jesli zmienna $a zawiera jakas wartosc to wynikiem if($a) jest TRUE (czyli instrukcje sa wykonywane) podobnie w lini 22. to jest po prostu taki myk, w razie gdybys nie podal wartosci a, lub b -> wtedy inaczej sie rownanie liczy.

23 - zwykle dzielenie i przypisanie wyniku do zmiennej $x1

kolejne linijki sa drukowaniem rozwiazania rownania.. dla jednego rozwiazania oraz dla braku rozwiazania. bo jak zapewne wiesz, rownania kwadratowe moga miec 3 rowne wersje rozwiazania (zalezy od rownania)

oczywiscie mozesz je pominac. ale jaki sens wtedy to liczyc??

skrypt prawdopodobnie dziala poprawnie (lub prawie poprawnie) tylko dla konkretnych wartosci zmiennych.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 3.10.2025 - 08:25