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 (1 - 12)
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
scanner
post
Post #3





Grupa: Zarząd
Postów: 3 503
Pomógł: 28
Dołączył: 17.10.2002
Skąd: Wrocław




OSTRZEŻENIE:
PROSZĘ NADAWAĆ WĄTKOM SENSOWNE TYTUŁY.
Go to the top of the page
+Quote Post
Phivko
post
Post #4





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

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


Ok, juz rozumiem ale...
Czy 8 linia:

[php:1:8a223973fe]<?php
if ($a || $b || $c) { # wartości w formularzu są ok
?>[/php:1:8a223973fe]
nie oznacza ze wszystkie wartosci a, b i c musza byc wpisane?
Go to the top of the page
+Quote Post
DeyV
post
Post #5





Grupa: Zarząd
Postów: 2 277
Pomógł: 6
Dołączył: 27.12.2002
Skąd: Wołów/Wrocław




nie - zapis || oznacza lub (or), czyli, id ($a || $b || $c) oznacza jeśli a lub b lub c jest wpisane, wtedy ...
Jeśli chiałbyś, by sparawdzać, czy wszystkie wartośći są wpisane, musisz zkorzystać z and (&&)

A takie tytuły tamatów naprawdę drażnią.
Go to the top of the page
+Quote Post
scanner
post
Post #6





Grupa: Zarząd
Postów: 3 503
Pomógł: 28
Dołączył: 17.10.2002
Skąd: Wrocław




Cytat
23  - zwykle dzielenie i przypisanie wyniku do zmiennej $x1
Ze zmianą znaku.[php:1:4d55f46570]<?php
$x1 = (-1)*($c/$(IMG:http://forum.php.pl/style_emoticons/default/cool.gif) ;
?>[/php:1:4d55f46570]
Go to the top of the page
+Quote Post
Phivko
post
Post #7





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

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


Rozumiem to tak:

if ($a) - jezeli jest zmienna a (zmienne b i c moga byc ale nie musza) to...
if ($(IMG:http://forum.php.pl/style_emoticons/default/cool.gif) - jezeli nie ma zmiennej a, jest zmienna b, (zmienna c moze byc ale nie musi) to...

Tak Koshin masz racje, po usunieciu linijek, o ktorych mowa skrypt obliczy wynik tylko gdy wszystkie zmienne sa wpisane.
Nie mogelm sie polapac o co chodzi poniewaz myslalem, ze ten zapis if ($a || $b || $c) ozacza, ze wszystkie zmienne musza byc wpisane.

Jeszcze jedno. Między tymi zapisami:

[php:1:657578915c]<?php
$x1 = -$c/$b;
?>[/php:1:657578915c]
[php:1:657578915c]<?php
$x1 = (-1)*($c/$(IMG:http://forum.php.pl/style_emoticons/default/cool.gif) ;
?>[/php:1:657578915c]
nie ma chyba zadnej roznicy w wyswietlaniu, oba sa poprawne? czy ktorys jest bardziej zalecany?
Go to the top of the page
+Quote Post
scanner
post
Post #8





Grupa: Zarząd
Postów: 3 503
Pomógł: 28
Dołączył: 17.10.2002
Skąd: Wrocław




pierwszy jest szybszy i czytelniejszy. Zresztą w matematyce jako takiej jest konstrukcja y = -x i jest ona poprawna.
Go to the top of the page
+Quote Post
Phivko
post
Post #9





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

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


Ok.
Dowiedzialem sie juz wszystkiego co chcialem.
Dzieki.
Nara.
Go to the top of the page
+Quote Post
Cudi
post
Post #10


Administrator planeta/IRC


Grupa: Przyjaciele php.pl
Postów: 385
Pomógł: 0
Dołączył: 19.04.2003
Skąd: Zabrze

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


Cytat
Rozumiem to tak:

if ($a) - jezeli jest zmienna a (zmienne b i c moga byc ale nie musza) to...
if ($(IMG:http://forum.php.pl/style_emoticons/default/cool.gif) - jezeli nie ma zmiennej a, jest zmienna b, (zmienna c moze byc ale nie musi) to...


To źle rozumiesz...
if ($a) - sprawdza tylko wartość zmiennej $a, a reszte ma w d...
if ($(IMG:http://forum.php.pl/style_emoticons/default/cool.gif) - j.w tyle że zmiennej $b...
if ( empty($a) && isset($(IMG:http://forum.php.pl/style_emoticons/default/cool.gif) ) - jezeli nie ma zmiennej a, jest zmienna b, (zmienna c moze byc ale nie musi) to...
Go to the top of the page
+Quote Post
qbba
post
Post #11





Grupa: Zarejestrowani
Postów: 78
Pomógł: 0
Dołączył: 25.10.2002
Skąd: z kabla:)/ czewa

Ostrzeżenie: (10%)
X----


Cytat
if ( empty($a) && isset($(IMG:http://forum.php.pl/style_emoticons/default/cool.gif) ) - jezeli nie ma zmiennej a, jest zmienna b, (zmienna c moze byc ale nie musi) to...


if ( empty($a) && isset($(IMG:http://forum.php.pl/style_emoticons/default/cool.gif) ) - jezeli zmienna a jest pusta (0), i jest zmienna b, (zmienna c moze byc ale nie musi) to...

jak chcesz sprawdzic czy nie ma zmiennej to
[php:1:be8e55955a]<?php
if( !isset($(IMG:http://forum.php.pl/style_emoticons/default/cool.gif) )
?>[/php:1:be8e55955a]
Go to the top of the page
+Quote Post
Cudi
post
Post #12


Administrator planeta/IRC


Grupa: Przyjaciele php.pl
Postów: 385
Pomógł: 0
Dołączył: 19.04.2003
Skąd: Zabrze

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


Jeśli zmiennej nie ma to funkcja empty() równierz zwróci TRUE...
Go to the top of the page
+Quote Post
Phivko
post
Post #13





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

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


Cytat
Cytat
Rozumiem to tak:

if ($a) - jezeli jest zmienna a (zmienne b i c moga byc ale nie musza) to...
if ($(IMG:http://forum.php.pl/style_emoticons/default/cool.gif) - jezeli nie ma zmiennej a, jest zmienna b, (zmienna c moze byc ale nie musi) to...


To źle rozumiesz...
if ($a) - sprawdza tylko wartość zmiennej $a, a reszte ma w d...
if ($(IMG:http://forum.php.pl/style_emoticons/default/cool.gif) - j.w tyle że zmiennej $b...
if ( empty($a) && isset($(IMG:http://forum.php.pl/style_emoticons/default/cool.gif) ) - jezeli nie ma zmiennej a, jest zmienna b, (zmienna c moze byc ale nie musi) to...

Dobrze rozumiem:
if ($a) - napisales to co ja tylko innymi slowami...
if ($(IMG:http://forum.php.pl/style_emoticons/default/cool.gif) - if ($a) jest wyzej to znaczy, ze jesli bedzie $a to nie dojdzie do sprawdzania $b, czyli aby sprawdzil $b nie moze byc zmiennej a czyli:
Cytat
nie ma zmiennej a, jest zmienna b, (zmienna c moze byc ale nie musi) to...
Go to the top of the page
+Quote Post

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: 22.08.2025 - 15:13