Autor Zpráva
David1256
Profil
Dobrý den, potřeboval bych po zadání krajních bodů intervalu vypsat ten interval a sudá čísla z něj. Ale nějak mi to nefunguje, žádnou chybu mi to nehlásí, ale přesto se nic nevypíše.
   <table align="center" rules="none" cellpadding=5 bgcolor=red>
<form method="get">
<tr><th colspan=2>Zadejte krajní body intervalu</th></tr>
<tr><td>1. bod: &nbsp;</td>
    <td><input type=text name="bod" size=4 ></td></tr>
<tr><td>2. bod:&nbsp; </td>
    <td><input type=text name="bodb" size=4></td></tr>
<tr><th colspan=2><input type=submit value="Počítej"></th></tr>        
</form>
</table>

<?php
if (isset($_GET["1bod"]) and  isset($_GET["2"]))  
{echo "Interval <$bod;$bodb>";
do {
if($bod%2==0)
echo "$bod";
$bod++;
}

while($bod<=$bodb);
}
 ?>
panther
Profil
David1256:
odkud bereš proměnné $_GET['1bod'], $_GET['2'], $bod a $bodb (ř. 13 a 14)?
David1256
Profil
A jo už jsem to opravil, a funguje to. Díky. Jak jsem totiž měnil názvy proměnných z čísel na písmena a na ty názvy proměnných v get nahoře jsem úplně zapomněl.
Joker
Profil
David1256:
Viz panther, v PHP se čte z jiných polí než jsou v HTML.

K tomu algoritmu, není zbytečné procházet všechna čísla z intervalu?
Pokud aktuální číslo je sudé, tak číslo o 1 vyšší nikdy sudé nebude.
Navíc ten algoritmus nebude správně fungovat v některých případech, konkrétně:
- Pokud zadám špatně interval, první číslo vyšší než druhé, vypíše se v případě že to první bylo sudé to první číslo, jinak nic.
- Pokud interval bude obsahovat nulu, vypíše ji to jako sudé číslo.
David1256
Profil
Joker:
Máš pravdu šlo by to udělat, jak říkáš. Mě napadla tahle možnost. Jak říká sama naše učitelka, co člověk to jiný algoritmus. K tomu, kdy bude fungovat správně a kdy ne: Viděl si někdy, že by se interval psal od většího čísla k menšímu? Nula snad není sudé číslo? :-)
panther
Profil
David1256:
Viděl si někdy, že by se interval psal od většího čísla k menšímu?
standardní to není, ale když děláš internetovou aplikaci, měl bys mít ošetřené všechny možnosti. Nevíš, kdo ji bude používat, o co se bude snažit.

To, že tohle je jen nějaké vypisování čísel na situaci nic nemění. Teď tu o nic nejde, později třeba půjde - a proto je dobře získávat správné návyky od začátku, pak si budeš těžce převykat.
Joker
Profil
David1256:
OK, s tou nulou to byl špatný příklad.

Viděl si někdy, že by se interval psal od většího čísla k menšímu?
Uživatel to může udělat. Jsou dvě správné možnosti jak reagovat:
1. Upozornit uživatele na chybu, vypsat nějakou chybovou hlášku.
2. Prohodit v takovém případě hranice tak, aby to fungovalo.

Ten popsaný skript se ovšem bude tvářit, že to je v pořádku, ale vypíše blbosti.
Například když zadám čísla 14 a 0, bude výstup:
Interval <14;0>14

Jak říká sama naše učitelka, co člověk to jiný algoritmus
Ovšem většina algoritmů není rovnocenných. Často celý rozdíl mezi amatérem a dobrým programátorem spočívá ve schopnosti najít ne nějaký algoritmus řešící problém, ale co nejlepší algoritmus řešící problém.
Meloun
Profil *
David1256:
Jsi si jistý, že 0 je sudá?

Původně jsem ti chtěl odpovědět, že sudá jsou čísla dělitelná dvěmi, tedy čísla, která při dělení nulou vrací přirozené číslo a vzhledem k tomu, že 0/2=0 a 0 není přirozeným číslem jsem to chtěl smést ze stolu...
Ale pak jsem nad tím zapolemizoval a říkal jsem si, že sudé jsou i -2, kdy -2/2=-1...

No a pak, to byl největší gól, jsem si pročetl Wikinu, která na jednom řádku říká "Sudá = 2Z = { …, −4, −2, 0, 2, 4, … }", přičemž se jí musím vysmát, protože 0 nenáleží Z a tedy ani 2Z....

To jsem z toho tumpachovej. Nám se gymplu vždy říkalo, že nula sudá není...
Meloun
Profil *
Meloun:
Odpovídám sám sobě... Dó prkvančic! jsem si popletl značky, kdy jsem si myslel, že Z jsou Přirozená, nikoli celá čísla. A tak dobře jsem se zasmál... :D :-(
Pak si wikina neprotiřečí, ale stejně jsem nad tím na vahách...
DJ Miky
Profil
Meloun:
Z = celá čísla. Nula není celé číslo?
(edit: Tak pozdě…)

Wikipedia i píše:
„Pokud je číslo násobkem dvou, je to sudé číslo, jinak je to liché číslo. (…) Číslo nula je sudé, neboť je rovno nula-krát dvěma.“
AM_
Profil
Meloun:
sudá jsou čísla dělitelná dvěmi, tedy čísla, která při dělení nulou vrací přirozené číslo
takové číslo bych chtěl vidět. Zatím všechna, která jsem viděl, vracela při dělení nulou spíš runtime error.

Ty se doma hodne nudíš, viď? :) nikdy v životě bych si nedokázal představit tak obsáhlou úvahu na téma "je nula sudá?".
Meloun
Profil *
AM:
Ty jo, jsem už hodně poblbl :D samozřejmě jsem chtěl napsat "při dělení dvěma" a přemýšlel nad další částí souvětí, kde podmětem byla nula :D z toho to asi pochází...

Ne, nuda mi nehrozí, na takových úvahách jen vesele prokrastinuju :D
Marek88
Profil
Kdo někdy hrál ruletu, tak ví, že nula neni ani sudá ani lichá... ;) :D
Tori
Profil
<mimo-téma>

David1256:
Viděl si někdy, že by se interval psal od většího čísla k menšímu?
Japonské hotely běžně používají infotabulky s čísly pokojů typu:
 <--    -->
1117   1140
  ~      ~
1104   1118

(edit pro AM_↓, ráda vyhovím :-)
_es
Profil
AM:
Meloun:
„sudá jsou čísla dělitelná dvěmi, tedy čísla, která při dělení nulou vrací přirozené číslo“
takové číslo bych chtěl vidět. Zatím všechna, která jsem viděl, vracela při dělení nulou spíš runtime error.
JS vracia Infinity, -Infinity, alebo NaN (pri nule). Ale prirodzené čísla to naozaj nie sú.
AM_
Profil
Tori:
to <mimo-téma> jsi neměl na konci příspěvku zavírat, vypadá, že se do toho tagu ještě leda cos nacpe.

_es:
mno, ne že by to na věci něco zásadního měnilo...

[#13] Marek88
je to jako s jezděním vlevo nebo vpravo - v zásadě je hlavně potřeba se na tom dohodnout...
ruletářům se samozřejmě hodí, aby sudá ani lichá nebyla, protože nula je ten prvek, který jim dává pravděpodobnostní výhodu... matematikům a programátorům se samozřejmě hodí, aby sudá byla, protože se prostě matematicky jako sudá chová, ať už sudost definuješ jakkoli rozumně pro celá čísla.
Keeehi
Profil
Je nula sudá?

Ve škole jsme sudost a lichost měli nadefinovanou akorát pro obor přirozených čísel. Dle toho tedy nula není ani sudá ani lichá. Pokoušel jsem se najít nějaký důvěryhodný zdroj, kde by byla přesná definice sudost/lichost, avšak se mi to nepodařilo. Kdybyste někdo o nějakém věděl, docela by mě to zajímalo.
AM_
Profil
co se týče totoho považoval bych wikipedii za dostatečně důvěryhodný zdroj: http://cs.wikipedia.org/wiki/Sudá_a_lichá_čísla
definice je prostá, intuitivní a smysluplná, a snad jediný argument, aby nula nebyla sudá, je, že by makléři ztráceli pravděpodobnostní výhodu v ruletě, ale tak prostě můžeme říci, že ruleta se hraje v oboru
N ∪ {0}, přičemž pro 0 sudost nedodefinujeme :)

Ale pokud jsme takoví puntíčkáři, že wikipedie pro nás není dostatečně důvěryhondý zdroj, ještě si dovolím rýpnout:

Keeehi:
Ve škole jsme sudost a lichost měli nadefinovanou akorát pro obor přirozených čísel. Dle toho tedy nula není ani sudá ani lichá.
Toto je částečně chybný úsudek. Pokud definujeme sudost pouze v N, nebude rozhodnutelné, zda je sudá 0, ale ani -1, -2, -3, -4, -5, -6 atd... prostě protože v N nejsou. resp. žádné číslo <= 0 nebude sudé ani liché.
Pokud ale sudost bude (a je) definována na celém Z, není jediný rozumný důvod, proč by -2 mělo být sudé a 0 ne.
Stejnětak nevidím jediný rozumný důvod nevěřit správnosti definice na wikipedii, ale toto mi přijde tak triviální, že kvůli tomu do knihovny nepoběžím.

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: