Stránka: 1 z 1
| [ Príspevkov: 7 ] | |
Autor | Správa |
---|
Registrovaný: 01.05.07 Prihlásený: 23.07.19 Príspevky: 420 Témy: 151 | 151 |
čaute fešáci... robím zase príklad z knihy a mám kod ktorý je uvedený nižšie. problém spočíva v tom že sa mi z celého cyklu while neopakuje proces obsahujúci IF,Elseif..., zopakuju sa vždy iba "echa" a "postinkrementacie".... výsledok je taký že sa mi vyhodí jedna sada príkladov (má sa ich vyhodit zadaný počet) , a x krát "<br><br><br>";
a x krát $porovnavaciecislo; pričom x = zadaný počet sád (tolko malo byt sád príkladov)....mal som to povedne spravené cez while, tak som skúsil do while reku či sa to nespraví a ono nie..... vidíte tam nejakú vadu prosím?
Kód:
<?php $oblast = $_POST['oblast']; $sad = $_POST['sad']; $p = $_POST['p']; $mx = $_POST['mx']; $mn = $_POST['mn']; $max = $_POST['max']; $min = $_POST['min']; $porovnavaciecislo = 0; $po = 1;
do {
if ($oblast==1) { for ($po==1; $po<=$p;) { $a = mt_rand($min, $max); $b = mt_rand($min, $max); $sucet = $a + $b; if ($sucet <= $mx) { echo $a . " + " . $b . " =<br>"; $po++; } } }
elseif ($oblast==2) { for ($po==1; $po<=$p;) { $a = mt_rand($min, $max); $b = mt_rand($min, $max); $odpocet = $a - $b; if ($odpocet >= $mn) { echo $a . " - " . $b . " =<br>"; $po++; } } }
elseif ($oblast==3) { for ($po==1; $po<=$p;) { $a = mt_rand($min, $max); $b = mt_rand($min, $max); $sucin = $a * $b; if ($sucin <= $mx) { echo $a . " * " . $b . " =<br>"; $po++; } } }
else { for ($po==1; $po<=$p;) { $a = mt_rand($min, $max); $b = mt_rand($min, $max); $podiel = $a%$b; if (($podiel == 0) and ($podiel >= $mn)) { echo $a . " : " . $b . " =<br>"; $po++; } } }
echo "<br><br><br>"; $porovnavaciecislo++; echo $porovnavaciecislo; } while ($porovnavaciecislo <= $sad)
?>
|
|
Registrovaný: 05.09.09 Príspevky: 1141 Témy: 127 | 127 Bydlisko: Lehota pod ... |
určite sa to píše takto: for ($po==1; $po<=$p; ) ?!
|
|
Registrovaný: 24.01.08 Prihlásený: 13.09.17 Príspevky: 14572 Témy: 66 | 66 Bydlisko: Žilina |
davider, máš aspoň potuchy aký je rozdiel medzi "do.. while" a "while"? okrem toho si skontrolouj syntax cyklu "for"
_________________ C#, PHP, ... |
|
Registrovaný: 01.05.07 Prihlásený: 23.07.19 Príspevky: 420 Témy: 151 | 151 |
no do while mi vykoná tie veci minimálne jeden raz lebo sa podmienka overuje až na konci; u while to nemusí vykonat vobec lebo sa podmienka overuje na zaciatku....
čo sa týka for tak som tam vynechal tú poslednú vec v zátvorke, ale v knihe písali že je možné vynechat ktorúkolvek čast.....a mne tam nevyhovovalo hned robit inkrementáciu v cykle for, lebo najprv musel ten príklad ktorý mal byt zobrazený prejst podmienkou if.....
EDIT: hmmm...ešte teda pozerám že možno myslíte že by mal byt ten for takto:
"($po=1; $po<=$p; )";;; ale som mal zlé skúsenosti s jedným =, a myslel som si že ked tam dám iba jedno tak že mi bude vkuse priradzovat tú hodnotu, nie porovnávat....... preto som to tak spravil...ale ako pozerám na net, tak to je asi zle
|
|
Registrovaný: 24.01.08 Prihlásený: 13.09.17 Príspevky: 14572 Témy: 66 | 66 Bydlisko: Žilina |
jedno "=" priradenie, dve "==" je porovnávanie. Momentálne máš v tom cykle dvakrát porovnanie:
1.) či je $po rovné 1
2.) či je $po rovné alebo menšie ako $p
si si istý, že to je to, čo si chcel docieliť? Ak chceš cyklus na základe len jednej podmienky (povedzme $po <= $p), treba použiť napríklad cyklus "while", zbytočne tam budeš vymýšľať "for"
_________________ C#, PHP, ... |
|
Registrovaný: 01.05.07 Prihlásený: 23.07.19 Príspevky: 420 Témy: 151 | 151 |
kokos....husté...už to funguje ako má.....nj...mne to nejako vobec nedošlo že tym for premenná ==1 som vlastne povedal nech mi vyhodí sadu príkladov iba v prípade že sa premenná rovná hodnote 1 a tým že sa tam bola inkrementácia tak sa v dalšom kole cyklu už premenná hodnote 1 nerovnala.... nj.... ste dobrý hoši.... dík moc za rady;; bez pcfora by som asi stratil nervy, lebo som celkom labilný ked mi niečo nefunguje a ja neviem nájst chybu.....
|
|
Registrovaný: 09.09.07 Prihlásený: 07.11.16 Príspevky: 3114 Témy: 233 | 233 Bydlisko: Nové Zámky |
No, ten for cyklus si citaj takto:
Pre premennu $i = 1 (ktora sa rovna 1); pokial $i<10 (mensie ako 10); pripocitavaj k $i jednotku ($i++); Opakuj: { ... }
Samozrejme, mozes tu desinu aj jednotku nahradit aj premennou
_________________ "It took a lot of work, but this latest Linux patch enables support for machines with 4096 CPUs, up from the old limit of 1024." "Do you have support for smooth full-screen flash video yet?" "No, but who uses that?"
- ak dlho neodpisujem do témy, zabudol som na ňu, takže ma upozornite SS, ak chcete moju odpoveď |
|
Stránka: 1 z 1
| [ Príspevkov: 7 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| v PHP, ASP | 2 | 533 | 05.08.2010 10:24 eth4rendil | | v Assembler, C, C++, Pascal, Java | 4 | 532 | 25.03.2011 10:08 zaefrim | | v Assembler, C, C++, Pascal, Java | 6 | 487 | 05.03.2013 19:25 n0sf3ratus | | v Assembler, C, C++, Pascal, Java | 5 | 366 | 30.12.2010 8:55 reDo | | v PHP, ASP | 10 | 601 | 23.03.2008 18:01 Blackshadow | | v Assembler, C, C++, Pascal, Java | 3 | 374 | 09.03.2013 17:50 faraon | | v PHP, ASP | 4 | 563 | 29.07.2007 16:19 TECHNODROME | | v Assembler, C, C++, Pascal, Java | 1 | 350 | 10.12.2012 19:12 konray | | v PHP, ASP | 16 | 1072 | 16.10.2008 15:34 Roko | | v PHP, ASP | 4 | 540 | 10.05.2011 18:39 richo9996 | | v JavaScript, VBScript, Ajax | 5 | 557 | 31.10.2016 14:46 BX | | v Počítačové hry | 3 | 376 | 11.12.2014 23:22 Penguin 10 | | v PC zostavy | 18 | 801 | 20.11.2011 23:20 mino_85 | | v Ostatné | 15 | 1319 | 14.08.2008 17:01 neutronmind | | v PHP, ASP | 2 | 634 | 26.01.2011 16:55 Flety | | v HTML, XHTML, XML, CSS | 6 | 591 | 01.04.2008 20:31 Flety |
|