abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
eParkomat, startup z ČR, postoupil mezi finalisty evropského akcelerátoru ChallengeUp!
Robot na pivo mu otevřel dveře k opravdovému byznysu
Internet věcí: Propojený svět? Už se to blíží...
včera 16:24 | Nová verze

Byla vydána Mageia 5.1. Jedná se o první opravné vydání verze 5, jež vyšla v červnu loňského roku (zprávička). Uživatelům verze 5 nepřináší opravné vydání nic nového, samozřejmě pokud pravidelně aktualizují. Vydání obsahuje všechny aktualizace za posledního téměř půldruhého roku. Mageia 5.1 obsahuje LibreOffice 4.4.7, Linux 4.4.32, KDE4 4.14.5 nebo GNOME 3.14.3.

Ladislav Hagara | Komentářů: 0
včera 13:42 | Pozvánky

V Praze probíhá konference Internet a Technologie 16.2, volné pokračování jarní konference sdružení CZ.NIC. Konferenci lze sledovat online na YouTube. K dispozici je také archiv předchozích konferencí.

Ladislav Hagara | Komentářů: 0
2.12. 22:44 | Komunita

Joinup informuje, že Mnichov používá open source groupware Kolab. V srpnu byl dokončen dvouletý přechod na toto řešení. V provozu je asi 60 000 poštovních schránek. Nejenom Kolabu se věnoval Georg Greve ve své přednášce Open Source: the future for the European institutions (SlideShare) na konferenci DIGITEC 2016, jež proběhla v úterý 29. listopadu v Bruselu. Videozáznam přednášek z hlavního sálu je ke zhlédnutí na Livestreamu.

Ladislav Hagara | Komentářů: 16
2.12. 15:30 | Zajímavý projekt

Společnost Jolla oznámila v příspěvku Case study: Sailfish Watch na svém blogu, že naportovala Sailfish OS na chytré hodinky. Využila a inspirovala se otevřeným operačním systémem pro chytré hodinky AsteroidOS. Použita je knihovna libhybris. Ukázka ovládání hodinek na YouTube.

Ladislav Hagara | Komentářů: 8
2.12. 14:15 | Nová verze

Byla vydána verze 7.1.0 skriptovacího jazyka PHP používaného zejména k vývoji dynamických webových stránek. Jedná se o první stabilní verzi nejnovější větvě 7.1. Přehled novinek v dokumentaci. Podrobnosti v ChangeLogu. K dispozici je také příručka pro přechod z PHP 7.0.x na PHP 7.1.x.

Ladislav Hagara | Komentářů: 2
2.12. 12:55 | Nová verze

Google Chrome 55 byl prohlášen za stabilní. Nejnovější stabilní verze 55.0.2883.75 tohoto webového prohlížeče přináší řadu oprav a vylepšení (YouTube). Opraveno bylo také 36 bezpečnostních chyb. Mariusz Mlynski si například vydělal 22 500 dolarů za 3 nahlášené chyby (Universal XSS in Blink).

Ladislav Hagara | Komentářů: 4
2.12. 11:55 | Pozvánky

Máte rádi svobodný software a hardware nebo se o nich chcete něco dozvědět? Přijďte na 135. sraz spolku OpenAlt, který se bude konat ve čtvrtek 8. prosince od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5). Sraz bude tentokrát tématický. Bude retro! K vidění budou přístroje jako Psion 5mx nebo Palm Z22. Ze svobodného hardwaru pak Openmoko nebo čtečka WikiReader. Přijďte se i vy pochlubit svými legendami, nebo alespoň na pivo. Moderní hardware má vstup samozřejmě také povolen.

xkucf03 | Komentářů: 0
2.12. 00:10 | Nová verze

Byla vydána verze 3.2 svobodného systému pro detekci a prevenci průniků a monitorování bezpečnosti počítačových sítí Suricata. Z novinek lze zmínit například podporu protokolů DNP3 a CIP/ENIP, vylepšenou podporu TLS a samozřejmě také aktualizovanou dokumentaci.

Ladislav Hagara | Komentářů: 0
1.12. 21:00 | Nová verze

Byla vydána beta verze Linux Mintu 18.1 s kódovým jménem Serena. Na blogu Linux Mintu jsou hned dvě oznámení. První o vydání Linux Mintu s prostředím MATE a druhé o vydání Linux Mintu s prostředím Cinnamon. Stejným způsobem jsou rozděleny také poznámky k vydání (MATE, Cinnamon) a přehled novinek s náhledy (MATE, Cinnamon). Linux Mint 18.1 bude podporován až do roku 2021.

Ladislav Hagara | Komentářů: 0
1.12. 16:42 | Nová verze

Byl vydán Devuan Jessie 1.0 Beta 2. Jedná se o druhou beta verzi forku Debianu bez systemd představeného v listopadu 2014 (zprávička). První beta verze byla vydána v dubnu letošního roku (zprávička). Jedna z posledních přednášek věnovaných Devuanu proběhla v listopadu na konferenci FSCONS 2016 (YouTube, pdf).

Ladislav Hagara | Komentářů: 0
Kolik máte dat ve svém domovském adresáři na svém primárním osobním počítači?
 (32%)
 (24%)
 (29%)
 (7%)
 (5%)
 (3%)
Celkem 767 hlasů
 Komentářů: 50, poslední 29.11. 15:50
Rozcestník
Reklama
Štítky: není přiřazen žádný štítek

Dotaz: Podmínka

29.11.2010 19:23 marky
Podmínka
Přečteno: 452×
Dobrý den,

potřeboval bych poradit, jak bych mohl zkontrolovat urcity pocet slov pomoci podminky, ale vubec netusim jak to udelat..

Budu mít nějake slova např. město, vesnice, zahrada, pole, alej, olej a mogul :)

a potreboval bych napsat podminku,ktera by se rovnala nekteremu z techto slov. Poradi nekdo? Dekuji

Odpovědi

29.11.2010 19:46 rastos | skóre: 60 | blog: rastos
Rozbalit Rozbalit vše Re: Podmínka
Podmienka sa nerovná. Podmienka sa vyhodnocuje. Zamysli sa a napíš ešte raz, čo chceš.
29.11.2010 20:06 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: Podmínka
Také by možná nebylo úplně od věci prozradit, o jaký jazyk se jedná…
29.11.2010 21:07 marky
Rozbalit Rozbalit vše Re: Podmínka
Jejda to jsem zapomel, jedna se o PHP..

budu mit promennou

$mojeProm a ta bude obsahovat vzdy nejake slovo..

Pak budu mit ja nejake svoje slova (asi pres pole bych to chtel, nevim co bude lepsi) a potrebuji podminku, ktere mi zjisti to, jestli v $mojeProm obsahuje slovo ktere mam i ja uz ulozene v tom poli. Dekuji
29.11.2010 21:56 Petr Šobáň | skóre: 79 | blog: soban | Olomouc
Rozbalit Rozbalit vše Re: Podmínka
PHP - Větvení

Pokud je slov málo tak použij switch:
$jmeno = "Petr";
switch ($jmeno){
case "Honza" :
echo("Honza");
break;
case "Jiří" :
echo("Jiří");
break;
default :
echo("Petr");
}
Pokud je toho více tak použít if a cyklus for.
for($c=1; $c<100; $c++){
if($seznam[$c] == $slovo) { echo ("našel jsem slovo ". $slovo); break; }
}
Jendа avatar 30.11.2010 17:22 Jendа | skóre: 73 | blog: Výlevníček | JO70FB
Rozbalit Rozbalit vše Re: Podmínka
$c=1; $c<100; $c++
Out of index! :) count($arr) (a navíc se snad čísluje od 0, ne?)
30.11.2010 21:38 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Podmínka
Q:a navíc se snad čísluje od 0, ne?

A:Jak kdy:

$a = array(1 => 'pepa','franta');
$c = count($a);
for($i=1;$i<=$c;$i++)
  echo $a[$i] . "\n";
…ne že bych to obvykle dělal… :)
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
rADOn avatar 30.11.2010 18:21 rADOn | skóre: 44 | blog: bloK | Praha
Rozbalit Rozbalit vše Re: Podmínka
Prochazet pres indexovou promenu je zrovna ukazkove spatny pristup, php ma na tohle konstrukci foreach
"2^24 comments ought to be enough for anyone" -- CmdrTaco
30.11.2010 20:31 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: Podmínka
Ukázkově špatná je na tom jen ta naslepo nastřelená horní mez, jinak samozřejmě to, že PHP má foreach(), ani zdaleka neznamená, že se musí za každou cenu použít.
30.11.2010 20:50 Petr Šobáň | skóre: 79 | blog: soban | Olomouc
Rozbalit Rozbalit vše Re: Podmínka
Jasně že $c<100; je špatně správně tam má být hodnota podle toho jak velké je to pole.

Normální člověk to pochopí že tam nemůže být 100 když bude mít pole rozdílnou velikost.

Zajímavé je že když se zeptal jak to řešit tak nikdo neporadil a teď se hledají chybičky.
30.11.2010 21:34 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Podmínka
Ukázkově špatný názor :)
Obě konstrukce jsou ekvivalentní a pokud bychom lpěli na milisekundách, tak foreach je obvykle nepatrně rychlejší prochází-li nějaké pole polí apod. for je obvykle nepatrně rychlejší procházíme-li pole například čísel.
Pokud ovšem potřebujeme znát číslo iterace již je vhodnější použít for, a zas pokud máme pole asociativní (nebo potřebujeme znát klíč a současně hodnotu), je obvykle vhodnější použít foreach (samozřejmně nemusíme, vytáhneme si klíče a procházíme ty).
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
rADOn avatar 1.12.2010 11:48 rADOn | skóre: 44 | blog: bloK | Praha
Rozbalit Rozbalit vše Re: Podmínka
Obě konstrukce nejsou zcela ekvivalentni - jedna z nich je slozitejsi. A podle urovne dotazu soudim, ze pro autora bude ten rozdil znacny.

Nanestesti lidi vychovany na C nebo pascalu tenhle rozdil nejsou zvykli videt a tenhle blbej mem se siri dal a dal :-(
"2^24 comments ought to be enough for anyone" -- CmdrTaco
1.12.2010 14:38 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Podmínka
Co se složitosti týče, klasický for je například pro mně mnohem jednoduší, bo je ve většině jazyků stejný.
Konstrukcí obojího docílíte téhož výsledku.
Ekvivalentní nejsou spíše z důvodu, „kde“ se uchovává pozice, foreach ji má uvnitř, u for ji má programátor v režii.
Mohl by jste mi prosím blíže vysvětlit proč je špatné používat for a dobré používat foreach, když každé je trochu vhodnější na něco jiného a obě jsou to platné konstrukce jazyka?
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
rADOn avatar 1.12.2010 15:24 rADOn | skóre: 44 | blog: bloK | Praha
Rozbalit Rozbalit vše Re: Podmínka
Rozdíl je právě v tom …bo je ve většině jazyků stejný. Začátečník který žádné další jazyky nezná tohle neocení, zato vidí složitější kód. Nejde ani tak o to, že by konstrukce cyklu byla složitá - ta se koneckonců napíse jen jednou. Hlavně ale musí při každém odkazu na iterovaný prvek dereferencovat iterátor, v tomhle případě numerický odkaz. Psát všude hranaté navíc závorky s indexem. Je to jednoduchý, ale úplně zbytečný krok. Mentální model foreach je jednodušší - máš jen množinu a jeden iterovaný kus, numerický index je něco zbytečného navíc. Ba co víc, podle mé zkušenosti ve skutečnosti je explictní iterátor nutný jen zřídka, většina phpčkařů ho píše čistě ze zvyku. V pythonu třeba ani céčkovský for cyklus není a vůbec se mi po něm nestýská.
"2^24 comments ought to be enough for anyone" -- CmdrTaco
1.12.2010 15:49 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: Podmínka
To, že zápis vypadá ve zdrojáku jednodušeji, ještě automaticky neznamená, že je také efektivnější. Právě v PHP je to velmi často naopak.
1.12.2010 15:57 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Podmínka
Rozdíl v tom je - to beru, narážím neustále na „ukazkove spatny pristup“ - to mi nedá spát.
Hranaté závorky mají zas krásu v tom, že je přístupný jakýkoliv prvek pole a není nutné například uchovávat minulou hodnotu apod. Hranaté závorky stačí napsat jen jednou a pomocnou proměnou si vytvořit sám.
Už jsem hodně× narazil na případ, že jsem musel počitadélko přidat a pak si řeknete, „proč jsem tam rovnou nedal for“.
A také se docela často stává (na rozdíl od vaší zkušenosti), že v průběhu cyklu potřebujete znát například (nejen) minulou hodnotu apod. a to přes foreach už je docela opruz.
Vaše důvody jste vysvětlil, ale mě se zdá, že je to dost úzké, zaměřené jen na jeden druh problematiky (vypsat číselník, projít pole), ale jak jsem uvedl výše, je spousta případů, že for je daleko vhodnější.
PS: Oblibu pythonu mám těsně nad Visual Basic-em - nesedí mi - jak nemusím nepoužiji ho :)
(Tímto nechci zakládat debatu o kvalitě pythonu)
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
rADOn avatar 1.12.2010 19:46 rADOn | skóre: 44 | blog: bloK | Praha
Rozbalit Rozbalit vše Re: Podmínka
„Ukázkově špatným přístupem“ jsem myslel to, že neznalému člověku je lépe začít tím jednodušším. Na to přišel už komenský blahé paměti. Stejně tak je přece možné zkonstruovat cyklus pomocí while, rekurzí nebo pro mě za mě přes goto. Každý ze těch způsobů má svoje využití, ale to neznamená že každý je stejně srozumitelný. A cpát neznalému for protože jsem na něj zvyklý z C je stejně hloupé jako použít goto, protože jsem na něj zvyklý z asembleru. Jediný rozdíl je, že historických důvodů tady je převaha bývalých pascalistů. Iracionální zvyk, nic víc.

Praktické použití je něco úplně jiného nez vysvětlování začátečníkovi, zmínil jsem to jen aby bylo jasné že to není nějaký nepraktický nesmysl. Ale když už je o tom řeč… odkazování se na prvky „mimo pořadí“ je zlo, protože to vede k tomu že kód je proložený podmínkami na různé krajní stavy (předchozí prvek neexistuje při první iteraci apod.), nebo dokonce mění prvky okolo (v STL velké zlo a byl jsem rád že jsem se to odnaučil dřív než jsem se pustil do C++). Přitom většina takových konstrukcí jde napsat jinak. Rozdíl není v jazyce, ale v hlavě, v tom jakým způsobem jsi zvyklý algoritmizovat. Proto jsem zmiňoval python, ne že by byl lepší nebo horší, ale protože podněcuje tenhle „jiný“ pohled na věc. A protože to viditelně funguje - iteraci přes čísla v něm jde napodobit, ale málokdy se to používá. Klidně hoď nějaký „neřešitelný“ příklad a já něco vymyslím :-)

"2^24 comments ought to be enough for anyone" -- CmdrTaco
1.12.2010 23:22 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Podmínka
K odstavci 1. nemyslím si, že to tak je myslím si, že znát základní konstrukce jazyka je docela dobré a vybrat si optimální je lepší, než se na něco upnout.
Ke konci druhého odstavce, nemluvil jsem o neřešitelném problému.
- jakýkoliv neočíslovaný seznam, který je z nějakých důvodů vhodné očíslovat či oídečkovat před vložením do stránky - je třeba hodnota iterace a při foreach už máme dva iterátory
- násobení matic by mě zrovna nebavilo přes foreach
- úprava „bitmapy“, třeba rozmáznutí pohybem - vlastně cokoliv, by mě zrovna přes foreach nebavilo
- trend pomocí klouzavého průměru by mě taky nebavil pomocí foreach
.... mě tak jen napadlo
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
rADOn avatar 3.12.2010 14:13 rADOn | skóre: 44 | blog: bloK | Praha
Rozbalit Rozbalit vše Re: Podmínka
Tak to musim uznat ze mas pravdu, matematicky operace tohohle typu me nenapadly. V praci mam vsechny cisla v databazich, takze jsem zvyklej vsechno pocitat v sql :-)

Jenom s tim cislovanim nemas tak uplne pravdu - samotny for cyklus funguje lip jen kdyz muzes zacit od nuly. Pokud cislujes neco uprostred seznamu, tak tvoje pozice v datasetu neni stejna jako index, takze stejne potrebujes zvlastni cislovaci promenou. Cislovani vystupu z db byl jedinej pripad kdyz jsem si na for vzpomel - ale jen do chvile nez jsem zacal resit strankovani. (Ano, muzes scitat pozici a index, ale to je v php drazsi operace nez drzet dalsi pomennou.)
"2^24 comments ought to be enough for anyone" -- CmdrTaco
29.11.2010 21:58 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: Podmínka

Napadají mne dvě možnosti:

  1. Strávíte pět minut procházením dokumentace a najdete tam funkci in_array().
  2. Strávíte pět minut tím, že napíšete prohledání pole cyklem.

Nejste-li schopen realizovat ani jednu z těchto variant (samozřejmě vám to nemusí nutně trvat celých pět minut) a nejste-li ani ochoten udělat něco proto, abyste byl, doporučuji zamyslet se, je-li programování pro vás vhodnou činností. Jinak tady totiž podobně "zapeklitých" problémů budete řešit nejméně deset denně.

29.11.2010 22:13 Petr Šobáň | skóre: 79 | blog: soban | Olomouc
Rozbalit Rozbalit vše Re: Podmínka
Buďme na něj trochu hodní......

Každý začínal, například ta funkce in_array() mě vůbec nenapadla protože já si píši většinou takové věci v "c" i když jsem php párkrát použil.
29.11.2010 22:29 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: Podmínka
To, že je na to v PHP extra funkce, je spíš takový bonus. Ale to, že někdo není schopen projít pole cyklem a najít v něm hodnotu, svědčí podle mne o neznalosti absolutních základů a to dotaz do poradny nevyřeší.
30.11.2010 21:44 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Podmínka
To asi ne, ale znám lidi co umí udělat krásné a validní stránky ovládají html,css apod., ale s php (či js) mají potíže a pokud potřebuje taková osoba jen nějakou drobnost v jinak statickém obsahu, tak ji jen stačí donutit k přesnému popisu problému a poradit. :)
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
2.12.2010 15:43 blondak | skóre: 36 | blog: Blondak | Čáslav
Rozbalit Rozbalit vše Re: Podmínka
in_array?
 $slova = array("slovo", "jiné slovo", "praha");
 var_dump(in_array("slovo", $slova));
 var_dump(in_array("false", $slova));
Každý problém ma své logické, snadno pochopitelné nesprávné řešení.
2.12.2010 16:10 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: Podmínka
Dobré jitro…
rADOn avatar 30.11.2010 18:15 rADOn | skóre: 44 | blog: bloK | Praha
Rozbalit Rozbalit vše Re: Podmínka
Pokud pro kazde slovo potrebujes aplikovat uniformni akci, pak hledas asociativni pole. Klicem je hledane slovo a hodnotou cokoliv potrebujes. Treba prekladac slov na cisla by vypadal takhle:
$name2num = array("pondeli" => 1, "utery" => 2, "streda" => 3, "ctvrtek" => 4, "patek" => 5, "sobota" => 6, "nedele" => 7);
a preklad je jednoduse vyhledani klice
$nazevdne = "pondeli";
$cislodne = $name2num[$nazevdne];
Pokud potrebujes pro kazde slovo delat neco jineho, musis prochazet pole rucne cyklem (pres foreach je to jednodussi nez for a cisleny index) nebo udelat switch, jak bylo receno vyse.
"2^24 comments ought to be enough for anyone" -- CmdrTaco
2.12.2010 15:59 blondak | skóre: 36 | blog: Blondak | Čáslav
Rozbalit Rozbalit vše Re: Podmínka
no taky by šlo použít call_user_func, ale asi bych do toho nešel
$name2num = array(
  "pondeli" => "funkce1",
  "utery" => "funkce1",
  "streda" => "funkce1",
  "ctvrtek" => "funkce2",
  "patek" => "funkce2",
  "sobota" => "funkce3",
  "nedele" => "funkce3"
);
$nazevdne = "pondeli";

function funkce1($param){ var_dump(__FUNCTION__); var_dump($param); }
function funkce2($param){ var_dump(__FUNCTION__); var_dump($param); }
function funkce3($param){ var_dump(__FUNCTION__); var_dump($param); }

if (isset($name2num[$nazevdne]) && is_callable($name2num[$nazevdne]))
  call_user_func($name2num[$nazevdne],$nazevdne);
Každý problém ma své logické, snadno pochopitelné nesprávné řešení.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.