[php]silnia dla dowolnej wartości

Awatar użytkownika
refuss
Użytkownik
Użytkownik
Posty: 153
Rejestracja: 19 sty 2008, o 17:11
Płeć: Mężczyzna
Lokalizacja: knurów
Podziękował: 41 razy
Pomógł: 4 razy

[php]silnia dla dowolnej wartości

Post autor: refuss »

Witam

Mam skrypt na liczenie silni:

Kod: Zaznacz cały

 <?
       $n = 10;
       
       $silnia = 1;
       for ($i=1; $i<=$n; $i++) {
         $silnia *= $i;
       }
       echo ("$n! = $silnia");
  ?>
Jak to zmienić aby z poziomu formularza po wpisaniu wartości program mógłby liczyć dowolną wartość silni?
matshadow
Użytkownik
Użytkownik
Posty: 941
Rejestracja: 17 gru 2007, o 21:48
Płeć: Mężczyzna
Lokalizacja: Kingdom Hearts
Podziękował: 6 razy
Pomógł: 222 razy

[php]silnia dla dowolnej wartości

Post autor: matshadow »

Coś w tym stylu:
w kodzie html

Kod: Zaznacz cały

<form action="silnia.php" method="post">
<input type="text" name="n" size=10 maxlength="10">
w pliku silnia.php

Kod: Zaznacz cały

<?php
$n = $_POST['n'];
$silnia = 1;
       for ($i=1; $i<=$n; $i++) {
         $silnia *= $i;
       }
       echo ("$n! = $silnia");
?>
</body>
</html>
Awatar użytkownika
refuss
Użytkownik
Użytkownik
Posty: 153
Rejestracja: 19 sty 2008, o 17:11
Płeć: Mężczyzna
Lokalizacja: knurów
Podziękował: 41 razy
Pomógł: 4 razy

[php]silnia dla dowolnej wartości

Post autor: refuss »

A jak teraz odnieść tę silnię do poziomu formularza? bo mam taki kod:

Kod: Zaznacz cały

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1250" />
<title>Projekt z php</title>
</head>
<body BGCOLOR=#6A5ACD>
<form action="plik.php" method="post">

<center><h2>Kalkulator naukowy</h2></center> <br />
<center>Podaj a:<input type"text" name="a" size=10 maxlength="10">
Podaj b:<input type"text" name="b" size=10 maxlength="10"> <br /><br /></center>
<center><b>Wybierz działanie:<br />
<p><input type="radio" name="kalk" value="dodaj">dodawanie <input type="radio" name="kalk" value="odejmij">odejmowanie
<input type="radio" name="kalk" value="pomnoz">mnożenie <input type="radio" name="kalk" value="podziel"> 
dzielenie <input type="radio" name="kalk" value="potega"> potęgowanie</p>
<p><input type="radio" name="kalk" value="silnia">silnia <input type="radio" name="kalk" value="logarytm">
ln <input type="radio" name="kalk" value="ulamek">1/x </p>
<p><input type="radio" name="kalk" value="sin">sin <input type="radio" name="kalk" value="cos"> cos <input type="radio" name="kalk" value="tg">
tg <input type="radio" name="kalk" value="ctg"> ctg </p></b>
<center><input type="submit" value="Oblicz"><input type="reset" value="Wyczyść"></center>
<?
$a=$_POST['a'];
$b=$_POST['b'];
$dz1=$a+$b;
$dz2=$a-$b;
$dz3=$a*$b;
if($b == 0)
{
	echo "Nie dzielimy przez 0";
}
else{
$dz4=$a/$b;}
$dz5=pow($a,$b);
       $n = $_POST['n'];       
       $silnia = 1;
       for ($a=1; $i<=$n; $a++) {
         $silnia *= $a;
       }
$dz6=$silnia($a);


switch ( $_POST['kalk'] )
{
     case 'dodaj':
             echo "Wynikiem jest $dz1" ;
     break;

     case 'odejmij':
            echo "Wynikiem jest $dz2";
     break;
    
     case 'pomnoz':
            echo "Wynikiem jest $dz3";
     break;

     case 'podziel':
            echo "Wynikiem jest $dz4";
     break;
     case 'potega':
     		echo "Wynikiem jest $dz5";
     break;
     case 'silnia':
     		echo "Wynikiem jest $dz6";
     break;
     
 }
?>
</body>
</html>
exother
Użytkownik
Użytkownik
Posty: 97
Rejestracja: 28 wrz 2009, o 15:01
Płeć: Mężczyzna
Podziękował: 3 razy
Pomógł: 9 razy

[php]silnia dla dowolnej wartości

Post autor: exother »

Oj, nababrałeś ; d

Do "projektów" tego typu przydaje się OOP.

Kod: Zaznacz cały

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1250" />
<title>Projekt z php</title>
</head>
<body BGCOLOR=#6A5ACD>
<form action="plik.php" method="post">

<center><h2>Kalkulator naukowy</h2></center> <br />
<center>Podaj a:<input type"text" name="a" size=10 maxlength="10">
Podaj b:<input type"text" name="b" size=10 maxlength="10"> <br /><br /></center>
<center><b>Wybierz działanie:<br />
<p><input type="radio" name="kalk" value="dodaj">dodawanie <input type="radio" name="kalk" value="odejmij">odejmowanie
<input type="radio" name="kalk" value="pomnoz">mnożenie <input type="radio" name="kalk" value="podziel">
dzielenie <input type="radio" name="kalk" value="potega"> potęgowanie</p>
<p><input type="radio" name="kalk" value="silnia">silnia <input type="radio" name="kalk" value="logarytm">
ln <input type="radio" name="kalk" value="ulamek">1/x </p>
<p><input type="radio" name="kalk" value="sin">sin <input type="radio" name="kalk" value="cos"> cos <input type="radio" name="kalk" value="tg">
tg <input type="radio" name="kalk" value="ctg"> ctg </p></b>
<center><input type="submit" value="Oblicz"><input type="reset" value="Wyczyść"></center>
<?
$a=$_POST['a'];
$b=$_POST['b'];
$dz1=$a+$b;
$dz2=$a-$b;
$dz3=$a*$b;
if($b == 0)
{
   echo "Nie dzielimy przez 0";
}
else{
$dz4=$a/$b;}
$dz5=pow($a,$b);
       $n = $_POST['a'];       
       $silnia = 1;
       for ($a=1; $i<=$n; $a++) {
         $silnia *= $a;
       }
$dz6=$silnia;


switch ( $_POST['kalk'] )
{
     case 'dodaj':
             echo "Wynikiem jest $dz1" ;
     break;

     case 'odejmij':
            echo "Wynikiem jest $dz2";
     break;
   
     case 'pomnoz':
            echo "Wynikiem jest $dz3";
     break;

     case 'podziel':
            echo "Wynikiem jest $dz4";
     break;
     case 'potega':
           echo "Wynikiem jest $dz5";
     break;
     case 'silnia':
           echo "Wynikiem jest $dz6";
     break;
     
}
?>
</body>
</html>

Coś takiego powinno zadziałać.
ODPOWIEDZ