Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> 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 (",", ".", $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 ($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.


--------------------
"A o co chodzi?" Phivko
Go to the top of the page
+Quote Post
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.


--------------------
My czuwamy.eu abyś mógł spać spokojnie
zapasowakopia.pl - myśl zanim będzie za późno.
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.


--------------------
scanner.info
Warto pamiętać: KISS, DRY
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?


--------------------
"A o co chodzi?" Phivko
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ą.


--------------------
"Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
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/$cool.gif;
?>[/php:1:4d55f46570]


--------------------
scanner.info
Warto pamiętać: KISS, DRY
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 ($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/$cool.gif;
?>[/php:1:657578915c]
nie ma chyba zadnej roznicy w wyswietlaniu, oba sa poprawne? czy ktorys jest bardziej zalecany?


--------------------
"A o co chodzi?" Phivko
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.


--------------------
scanner.info
Warto pamiętać: KISS, DRY
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.


--------------------
"A o co chodzi?" Phivko
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 ($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 ($cool.gif - j.w tyle że zmiennej $b...
if ( empty($a) && isset($cool.gif ) - jezeli nie ma zmiennej a, jest zmienna b, (zmienna c moze byc ale nie musi) to...


--------------------
"Programmers are in a race with the Universe to create bigger and better idiot-proof programs, while the Universe is trying to create bigger and better idiots. So far the Universe is winning."
Cudi's devBlog
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($cool.gif ) - jezeli nie ma zmiennej a, jest zmienna b, (zmienna c moze byc ale nie musi) to...


if ( empty($a) && isset($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($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...


--------------------
"Programmers are in a race with the Universe to create bigger and better idiot-proof programs, while the Universe is trying to create bigger and better idiots. So far the Universe is winning."
Cudi's devBlog
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 ($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 ($cool.gif - j.w tyle że zmiennej $b...
if ( empty($a) && isset($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 ($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...


--------------------
"A o co chodzi?" Phivko
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 00:34