Autor Zpráva
Natt_52
Profil
prosím, nevíte někdo jak v php udělat nejmenší společný násobek?
Alphard
Profil
www.algoritmy.net/article/22615/Nejmensi-spolecny-nasobek
Natt_52
Profil
přes to mi to nejede, nevím co dělám špatně...
Alphard
Profil
Ten script je funkční, chyba bude mezi klávesnicí a židlí. (Snad tohle stačí jako popostrčení k bližšímu popisu problému a dosavadního řešení.)
Bubák
Profil
Zřejmě to máš rozbité.
Natt_52
Profil
a stačí to jen zkopírovat? asi né co? ...nerozumím totiž tomu mam to jako céčkový předmět do školy
yFang
Profil
Natt_52:
a stačí to jen zkopírovat? asi né co? ...nerozumím totiž tomu mam to jako céčkový předmět do školy
A to se máš v tom předmětu naučit kopírovat? asi né co? Možná by bylo dobré nejdřív pochopit, jak ten algoritmus funguje, a pak to napsat.
Natt_52
Profil
yFang:
myslím, že kdybych tomu rozuměla nepíšu tady...proč tady asi píšu? abych to pochopila...
juriad
Profil
Natt_52:
Jednou píšeš o PHP, podruhé o C. Tak si vyber, o co vlastně jde. Jsou to dva úplně odlišné jazyky.
Na té odkázané stránce je algoritmus dopodrobna vysvětlen na příkladech. Je tam pak řečeno, že ve skutečnosti se počítá z největšího společného dělitele (Eukleidův algoritmus). A odkaz, jak spočítat ten. Umíš ten postup provést na papíře?

Pokud nám nenapíšeš kód, který jsi zkoušela, tak my nemůžeme vědět, jakou chybu jsi udělala. My ti jsme ochotní pomoct, ale když neřekneš s čím máš problém, není šance.
Natt_52
Profil
o žádném C jsem nepsala... juriad mám toto v html :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  <meta http-equiv="content-type" content="text/html; charset=windows-1250">
  <meta name="generator" content="PSPad editor, http://www.pspad.com">
  <title></title>
  </head>
  <body>
         <h1>Úkol</h1>
  <h2>Nejmenší společný násobek</h2>
      
   <form method="get" action="ukol.php" method="post" >
    <br>
     číslo 1
    <input type="text" name="nasobek1" value="" />   
    <br>
    číslo 2
    <input type="text" name="nasobek2" value="" />   
    <input type="submit" value="Vypočítej" />
              

</form>
</body>
  </body>
</html>
a v php :
 <meta http-equiv="Content-Type" content="text/html" charset="Windows-1250" />
    <title>Nejmenší společný násobek</title>
  </head>
  <body>
           <h2>Nejmenší společný násobek</h2>
           
   <?php
      $nasobek1=$_REQUEST["cislo1"];
      $nasobek2=$_REQUEST["cislo2"];
      $nasobek= lcm(nasobek1,nasobek2)
      ?> 
      První násobek: 
    <?php echo ($nasobek1); ?> <br />
    Druhý násobek: 
    <?php echo ($nasobek2); ?> <br />
    Výsledek:
    <?php
        $nasobek = function lcm($nasobek1, $nasobek2) {
if ($nasobek1 == 0 || $nasobek2 == 0) {
return 0;
}
return ($nasobek1 * $nasobek2) / gcd($nasobek1, $nasobek2);
}
        echo ($nasobek); 
    ?> 
  </body>
</html>


to php je 100% špatně a právě s tím si nevím rady

Moderátor juriad: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ).
anonymníí
Profil *
Natt_52:
A funkci gcd z řádku 22 druhého kódu máš kde? Musíš přemýšlet, ne jen kopírovat části kódů. A sledovat chybové hlášky, pokud je máš zapnuté. Pokud ne, zapni si je.
juriad
Profil
Ok, já pochopil Céčkový předmět jako programování v jazyce C. :-)

Zkusme to trošku zjednodušit, toto bud stránka index.html:
<!DOCTYPE html>
<html>
    <head>
        <meta charset="windows-1250">
        <title>Úkol</title>
    </head>
    <body>
        <h1>Úkol</h1>
        <h2>Nejmenší společný násobek</h2>
        <form method="get" action="ukol.php">
            Číslo 1:
            <input type="number" name="cislo1">   
            <br>
            Číslo 2:
            <input type="number" name="cislo2">  
            <br>
            <input type="submit" value="Vypočítej">
        </form>
    </body>
</html>

A teď PHP. Začneme tím, že si úplně na začátku zadefinujeme funkce gcd a lcm (protože lcm potřebuje funkci gcd).
Dále si do proměnných uložíme parametry z formuláře a vypočítáme nejmenší společný násobek.
Nakonec vypíšeme stránku a na vhodná místa doplníme výpisy proměnných.
<?php

# počítá největšího společného dělitele
function gcd($a, $b) {
    if ($a < 1 || $b < 1) {
        die("a or b is less than 1");
    }
    $r = 0;
    do {
        $r = $a % $b;
        $a = $b;
        $b = $r;
    } while ($b != 0);
    return $a;
}

# počítá nejmenší společný násobek
function lcm($a, $b) {
    if ($a == 0 || $b == 0) {
        return 0;
    }
    return ($a * $b) / gcd($a, $b);
}

# samotné zpracování
$cislo1 = $_GET['cislo1'];
$cislo2 = $_GET['cislo2'];
$nsn = lcm($cislo1, $cislo2);

# následuje HTML stránka s vloženými proměnnými
?>
<!DOCTYPE html>
<html>
    <head>
        <meta charset="windows-1250">
        <title>Úkol</title>
    </head>
    <body>
        <h1>Úkol</h1>
        <h2>Nejmenší společný násobek</h2>
        Nejmenší společný násobek čísel <?= $cislo1 ?> a <?= $cislo2 ?> je <?= $nsn ?>.
        <br>
        <a href="index.html">Zpět na formulář</a>
    </body>
</html>
Natt_52
Profil
juriad:
dekujiiii

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: