Autor Zpráva
breeta
Profil *
Ahoj mám tenhle kod:


<?php 

$zacatek ="1";
$konec = "5";

while ($zacatek<=$konec) {
 echo 	"$zacatek," ;
        $zacatek++;  

}
?>


vypíše 1, 2, 3, 4, 5 jak mám nejlíp sečíst while aby výsledek byl 15?
Budilnek
Profil *
Sečíst while???
Majkl578
Profil
???

for($i = $x = 1; $i <= 5; $i++, $x += $i) {
  echo $i, ', ';
}


||

$a = $b = '';
for($i = $x = 1; $i <= 5; $i++, $x += $i) {
	$a .= ($a ? ', ' : '') . $i;
	$b .= ($b ? ', ' : '') . $x;
}
echo $a, "\n", $b;
Tomáš K.
Profil *
Čísla jsou čísla (bez uvozovek) a řetězce jsou řetězce (s uvozovkami). Je dobré to dodržovat
$zacatek =1;
$konec = 5;

$soucet = ($konec-$zacatek+1) *($zacatek + $konec) / 2
Philber
Profil
<?php 

$zacatek ="1";
$konec = "5";
$soucet = "0";
while ($zacatek<=$konec) {
 echo     "$zacatek," ;
        $soucet = $soucet + $zacatek;
        $zacatek++;  
  
}
echo "<br />";
echo "$soucet";
 ?>
Majkl578
Profil
Tomáš K.
a hele chytrak... pouc me jak donutim treba mysql_fetch_assoc vracet integer kdyz v db je int a i presto vraci vzdy string?

kdyby jsi radeji dal kod do pre
Joker
Profil
Philber
Fuj- čísla jako řetězce?!

Navíc, proč cyklus? Stačí se trochu zamyslet a zapojit matematiku a je to na jeden výpočet, viz Tomáš K.
Kdo ten vzorec nepochopil:
Chci vlastně součet aritmetické posloupnosti, kde první prvek je $zacatek, každý další je vždycky o jedničku vyšší než předchozí a poslední prvek je $konec. Neboli prvků v posloupnosti je $konec - $zacatek + 1 (to +1 kvůli tomu, že první je samotný $zacatek).
Součet prvních n členů aritmetické posloupnosti je: (n * (a1 + an)) / 2, čili v tomhle případě:
(($konec - $zacatek + 1) * ($zacatek + $konec)) / 2
Joker
Profil
Majkl578
pouc me jak donutim treba mysql_fetch_assoc vracet integer kdyz v db je int a i presto vraci vzdy string?
$cislo = intval($databaze["sloupec"]);

...každopádně když to vrátí funkce, tak budiž, ale dávat si sám do proměnných čísla v uvozovkách?!
Tomáš K.
Profil *
Neříkám, že je nutné to rozlišovat, ale že to je dobrý zvyk, zvlášť pokud tě to nic nestojí (např. v deklaraci). Funguje samozřejmě obojí. Ale s přístupem, že je to vlastně jedno, je možné, že časem narazí - tuším, že třeba v SQL neprojde
INSERT INTO table SET string=5
,
ale
INSERT INTO table SET string='5'

ano. Nemůžu to teď vyzkoušet. Možná to záleží na konfiguraci nebo nečem podobném, ale zdá se mi jednodušší datové typy dodržovat vždy a všude (pokud to mám zadarmo) a nemuset o podobných věcech uvažovat.

Co se týče mysql_fetch_assoc, tak jsem si ji v jednom projektu skutečně přepsal na vlastní, která dělá totéž, jen vrací datové typy dle databáze. Tedy jde to, ale tohle už mě stojí nějaké úsilí (a čas výpočtu), tam bych mu použití stringu na místě int určitě nevyčítal.

Kód do pre jsem dát zapomněl, za to se omlouvám.
Majkl578
Profil
Joker
nemluvim o konverzi na strane php, ta mi je jasna. byl to jen takovy priklad. cisla at si dava kam chce, beztak se mu pretypuje na int; rozhodne to je jeste relativne dobre reseni oproti jinym vecem co se tu casto objevuji. nerikam ale, ze spravne. osobne uz radeji neresim, jake prasecinky lidi vymysleji, proste jim napisu vlastni alternativu a tim to hasne.

Tomáš K.
tusim, ze v tomto pripade projde oboji
Joker
Profil
Majkl578
cisla at si dava kam chce, beztak se mu pretypuje na int
S tímhle přístupem nesouhlasím, to pak vede k tomu, že třeba v databázi někdo vyrobí všechny sloupce VARCHAR, protože do toho lze zadat cokoliv, i číslo, datum,...
breeta
Profil *
Joker

poradis me prosim co se týče té matematiky

aritmetické posloupnost pro sčítání je: (($konec - $zacatek + 1) * ($zacatek + $konec)) / 2
ale jak na odčítání dělení a násobení?
Philber
Profil
breeta co by si přesněji potřeboval ohledně té matematiky?
breeta
Profil *
Philber

zapis pro scitani napr 1 2 3 4 5 je (($konec - $zacatek + 1) * ($zacatek + $konec)) / 2

ale jek na odcitani a nasopeni a deleni 1 2 3 4 5
Nox
Profil
breeta
http://cs.wikipedia.org/wiki/Posloupnost
http://www.matweb.cz/posloupnosti
A studuj

Odčítání nepotřebuješ, odčítání je přičítání opačného čísla ($x * (-1) )
Dělení nepotřebuješ, dělení je násobení převráceným číslem ($x^-1 neboli 1/$x)
Majkl578
Profil
Joker
take s nim nesouhlasim, bohuzel vetsina tech "nezabehlych" uzivatelu dela :|

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: