[php] pole trójkąta o podanych wierzchołkach

Awatar użytkownika
nuclear
Gość Specjalny
Gość Specjalny
Posty: 1501
Rejestracja: 22 paź 2006, o 12:01
Płeć: Mężczyzna
Lokalizacja: Kraków
Podziękował: 16 razy
Pomógł: 264 razy

[php] pole trójkąta o podanych wierzchołkach

Post autor: nuclear » 2 paź 2007, o 20:36

Witam
mam do napisania w php skrypt który ma liczyć pole trójkąta o podanych wierzchołkach
doszedłem do czegoś takiego

Kod: Zaznacz cały

<?
$wAx = $_POST['wAx'];
$wBx = $_POST['wBx'];
$wCx = $_POST['wCx'];
$wAy = $_POST['wAy'];
$wBy = $_POST['wBy'];
$wCy = $_POST['wCy'];
if ($wAx and $wAy and $wBx and $wBy and $wCx and $wCy && $w<=0){
print 'błąd wspolrzednych';
print '<br><a href="4_1.php">Powrót do formularza</a>';
}
else if ($wAx and $wAy and $wBx and $wBy and $wCx and $wCy) {
$w= ($wAx*$wBy + $wAy*$wCx + $wBx*$wCy - $wCx*$wBy - $wCy*$wAx - $wBx*$wAy) / 2 ;
print "Pole trojkata o wprowadzonych współżednych wynosi: $w" ;
print '<br><a href="4_1.php">Powrót do formularza</a>';
} else {
print '<form action= "4_1.php" method=post>';
print 'Wpisz tekst do pola formularza<br>';
print 'wierzchołekA' ;
print '<input type="text" name="wAx">';
print '<input type="text" name="wAy"><br>';
print 'wierzchołekB' ;
print '<input type="text" name="wBx">';
print '<input type="text" name="wBy"><br>';
print 'wierzchołekC' ;
print '<input type="text" name="wCx">';
print '<input type="text" name="wCy"><br>';
print '<input type="submit" value="Licz">';
print '</form>'; 
}
?>
Proszę o podpowiedz co w tym skrypcie jest błedne
Rekrutacja Instytut Matematyczny, Uniwersytet Wrocławski (gif)

luka52
Gość Specjalny
Gość Specjalny
Posty: 8602
Rejestracja: 1 maja 2006, o 20:54
Płeć: Mężczyzna
Lokalizacja: Kraków
Podziękował: 47 razy
Pomógł: 1817 razy

[php] pole trójkąta o podanych wierzchołkach

Post autor: luka52 » 2 paź 2007, o 20:56

Osobiście użyłbym warunku:

Kod: Zaznacz cały

if ($_POST)
do sprawdzenia czy jakieś dane zostały wysłane, a dopiero potem sprawdzał, czy wierzchołki są poprawne.

PS. $w może przyjąć wartość ujemną - we właściwym wzorze (znajdującym się np. w tablicach maturalnych ) jest jeszcze wartość bezwzględna (o której zapomniałeś).

Rafal88K
Użytkownik
Użytkownik
Posty: 311
Rejestracja: 15 mar 2007, o 16:52
Płeć: Mężczyzna
Lokalizacja: Lublin
Podziękował: 28 razy
Pomógł: 54 razy

[php] pole trójkąta o podanych wierzchołkach

Post autor: Rafal88K » 3 paź 2007, o 01:42

Masz tak:

Kod: Zaznacz cały

if ($wAx and $wAy and $wBx and $wBy and $wCx and $wCy && $w<=0)
A dopiero później:

Kod: Zaznacz cały

else if ($wAx and $wAy and $wBx and $wBy and $wCx and $wCy) {
$w= ($wAx*$wBy + $wAy*$wCx + $wBx*$wCy - $wCx*$wBy - $wCy*$wAx - $wBx*$wAy) / 2 ;
Nie możesz najpierw sprawdzić zmianą a dopiero później ją zainicjalizować I do tego zobacz co napisał luka

W PHP wartość bezwzględna to:

Kod: Zaznacz cały

$abs1 = abs(14);   // $abs1 = 14
$abs2 = abs(-23);   // $abs2 = 23 

ODPOWIEDZ