Autor | Zpráva | ||
---|---|---|---|
pavelt Profil * |
Prosím o pomoc s převodem 2 vývojových diagramůdo php.
| podminka 1 - | | podminka 2 -----> | | vykonej A vykonej B | | ------------------ | 1. diagram upravený pro PHP, ale nešikovný, má "vykonej B" 2x: | podminka 1 ----- | | podminka 2 | | | | vykonej A vykonej B vykonej B | | | ------------------------- | puvodní 2. diagram: | podminka 1 -------- | | podminka 2-><--------podminka 3 | | | vykonej A vykonej B vykonej C | | | ------------------------------- | 2. diagram upravený pro PHP, ale nešikovný, má také "vykonej B" 2x: | podminka 1 ------- | | podminka 2 podminka 3 | | | | vykonej A vykonej B vykonej B vykonej C | | | | -------------------------------------- | Kdyby bylo možné použít něco jako Go To .., bylo by to jednoduché.Napadlo mne "vykonej B" includovat 2x z externího souboru, ale to není moc pěkné řešení, rád bych jediný kompaktní php kód. Díky Pavel Moderátor Chamurappi: Na zachování mezer a neproporciální písmo tu máme značky [pre] a [/pre] (stačí kliknout na ). Moderátor Chamurappi: Hm, tak to moc nepomohlo, smůla :-)
|
||
pavelt Profil * |
#2 · Zasláno: 18. 5. 2009, 12:48:16
Hm, tak mnoho mezer za sebou bylo nahrazeno jedinou a vývoják teď vypadá "móc hezky". Omlouvám se, jdu mezery nahradit pevnými, co to provede. Pavel
|
||
tiso Profil |
#3 · Zasláno: 18. 5. 2009, 12:50:56 · Upravil/a: tiso
pavelt - chcelo by to obrázok!
|
||
pavelt Profil * |
|
podminka 1 - | | podminka 2 -----> | | vykonej A vykonej B | | ------------------ | 1. diagram upravený pro PHP, ale nešikovný, má "vykonej B" 2x: | podminka 1 ----- | | podminka 2 | | | | vykonej A vykonej B vykonej B | | | ------------------------- | puvodní 2. diagram: | podminka 1 -------- | | podminka 2-><--------podminka 3 | | | vykonej A vykonej B vykonej C | | | ------------------------------- | 2. diagram upravený pro PHP, ale nešikovný, má také "vykonej B" 2x: | podminka 1 ------- | | podminka 2 podminka 3 | | | | vykonej A vykonej B vykonej B vykonej C | | | | -------------------------------------- | Moderátor Chamurappi: Zkusil jsem nahradit za skutečné tvrdé mezery.
|
||
pavelt Profil * |
#5 · Zasláno: 18. 5. 2009, 12:51:54
Ajaj, tak to nepůjde.
|
||
rohl Profil |
#6 · Zasláno: 18. 5. 2009, 13:21:25
Asi sem tupej, ale totálně ten tvůj popis (ještě stěma mezerama) nechápu.
|
||
DJ Miky Profil |
#7 · Zasláno: 18. 5. 2009, 13:41:43 · Upravil/a: DJ Miky
<br> | <br> podminka 1 - <br> | | <br> podminka 2 -----> <br> | | <br>vykonej A vykonej B <br> | | <br> ------------------ <br> | <br> <br> <br>1. diagram upravenę pro PHP, ale nečikovnę, má "vykonej B" 2x: <br> | <br> podminka 1 ----- <br> | | <br> podminka 2 | <br> | | | <br>vykonej A vykonej B vykonej B <br> | | | <br> ------------------------- <br> | <br> <br> <br>puvodní 2. diagram: <br> | <br> podminka 1 -------- <br> | | <br> podminka 2-><--------podminka 3 <br> | | | <br>vykonej A vykonej B vykonej C <br> | | | <br> ------------------------------- <br> | <br> <br> <br>2. diagram upravenę pro PHP, ale nečikovnę, má také "vykonej B" 2x: <br> | <br> podminka 1 ------- <br> | | <br> podminka 2 podminka 3 <br> | | | | <br>vykonej A vykonej B vykonej B vykonej C <br> | | | | <br> -------------------------------------- <br> | EDIT: Tak to se taky moc nepovedlo... |
||
pavelt Profil * |
#8 · Zasláno: 18. 5. 2009, 13:53:35
Vytvářím simulaci MIDI analýzy a používám tenhle konkrétní vývojový diagram:
http://www.geocities.com/JDPetkov/documents/midi/mdec64fc.pdf Potíž mám se skokem od podmínky <INBYTE is REALTIME STATUS>-No k vykonání příkazu MIDISTATUS = INBYTE a podobně se skokem od RECBYTES = 1 k podmínce <RECBYTES = PACKSIZE?> Snažil jsem se udělat podobný miniaturní vývojáček se skoky do jiné větve pomocí textu, ale nepodařilo se. Tak se omlouvám, třeba, když se budeme bavit o konkrétním případu, to půjde lépe. Díky moc. Pavel |
||
Chamurappi Profil |
#9 · Zasláno: 18. 5. 2009, 13:54:34
Příspěvek [#4] už vypadá snesitelně.
|
||
Alphard Profil |
#10 · Zasláno: 18. 5. 2009, 14:04:44
pavelt:
Goto mi ani tak nechybí, říkávalo se, že kdo se nebojí goto, nebojí se ničeho. :-) Než začnu zkoumat ty diagramy, zkusím obecnou radu. Nešlo by použít funkce? Je to typické řešení opakujícího se kódu. Jednou ji vytvoříte a pak ji zavoláte, kolikrát budete chtít. |
||
pavelt Profil * |
#11 · Zasláno: 18. 5. 2009, 14:06:36
Chamurappi: Díky za "polidštění " toho mého výtvoru do snad pochopitelnější garfické formy.
Jde mi o to, že systém využívá v několika různých částech logické struktury shodnou část kódu. Ve vývojáku se jim to dělá, když namíří čáru s šipkou prostě jinam, ale jak to v kódu bez skoků naprogramovat. Samozřejmě lze shodnou část kódu zkopírovat na to druhé místo, vzniká ale nebezpečí chyby při editaci této části (v jedné na něco zapomenu a je potíž). Pak, jak jsem se zmínil lze společnou část kódu napsat do externího .php souboru a ten do dvou různých míst includovat. To je řešení, ale moc se mi nelíbí. Možná lze i vývojový diagram přepsat bez ztráty funkčnosti do jiné podoby. Do toho jsem se zatím nepustil, zhledám možnosti php. Pavel |
||
pavelt Profil * |
#12 · Zasláno: 18. 5. 2009, 14:09:33
Alphard: I funkce by šla, podobně jako include. Pravděpodobně se něčemu podobnému nevyhnu. Ale není to problém, vadit mi to nebude, jen jsem chtěl zkusit mít celý kód pohromadě. Díky
|
||
Jan Tvrdík Profil |
#13 · Zasláno: 18. 5. 2009, 14:10:58
pavelt:
Funkce jsou o hodně lepší a rychlejší než include. |
||
tiso Profil |
#14 · Zasláno: 18. 5. 2009, 14:15:55
pavelt - prvý diagram:
if(podminka1 AND podminka2){ //vykonej A } else{ //vykonej B } |
||
tiso Profil |
#15 · Zasláno: 18. 5. 2009, 14:20:41 · Upravil/a: tiso
pavelt druhý:
if(podminka1 AND podminka2){ //vykonej A } elseif(!podminka1 AND podminka3){ //vykonej C } else{ //vykonej B } Ak som sa netrafil s + a - tak sa treba pohrať s negáciami pri jednotlivých podmienkach... |
||
Alphard Profil |
#16 · Zasláno: 18. 5. 2009, 14:22:43
pavelt:
„Ale není to problém, vadit mi to nebude, jen jsem chtěl zkusit mít celý kód pohromadě.“ Řekl bych, že tendence je přesně opačná. Především s objekty a MVC(P) architekturou. Složitější problém se necpe do jednoho nepřehledného bloku kódu, ale rozděluje se na jednodušší logické celky, ty se řeší samostatně a pak se to poskládá dohromady. Jestli to chcete držet pohromadě, bude nejlepší vytvořit si zapouzdřující třídu, jednotlivé bloky kódu rozdělit do metod a s jejich pomocí je zpracovat. Způsoben, který ukazuje tiso může samozřejmě vyřešit i ten druhý diagram if (podminka1 && podminka2) vykonej A; elseif (!podminka1 && !podminka3) vykonej C; else vykonej B; |
||
pavelt Profil * |
#17 · Zasláno: 18. 5. 2009, 15:16:05
Jan Tvrdík, Alphard:
Tahleta aplikace je v podstatě jednoúčelová. Na ní ověřím přes web funkčnost selekce MIDI příkazů a pak bude kód přepsán do C pro 8 bitový mikrokontroler. I u mikrokontroléru lze použít funkce, ale už ne třídy a metody. Funkce zatěžují mikrokontroler více, než vícenásobné vložení jiné části kódu podobně jako u include v PHP. PHP zde používám proto, protože se mi o mnoho rychleji programuje a daleko jednodušeji testuje, výhoda kódu PHP napsaného "na jednom listu" je docela veliká podobnost s C kódem mikrokontroleru. Přepsat PHP do C pak bude triviální. Navíc na testování na PHP nepotřebuji zvláštní hardwarová rozhraní a test může provádět kdokoliv on-line. |
||
tiso Profil |
#18 · Zasláno: 18. 5. 2009, 15:24:49
pavelt „Funkce zatěžují mikrokontroler více, než vícenásobné vložení jiné části kódu podobně jako u include v PHP.“
Tu pletieš 2 rozdielne veci dokopy... 1. vykonanie user funkcie bude vždy pomalšie ako vykonanie vstavaných inštrukcií/funkcií jazyka, je jedno či je to C, asembler alebo PHP 2. include je pomalšie preto, lebo sa musí načítať ďalší súbor z disku. |
||
pavelt Profil * |
#19 · Zasláno: 18. 5. 2009, 17:03:02
Pojďme se vrátit k vývojovému diagramu a php. Rád bych kód bez funkcí. Zkusil jsem diagram rozpracovat s includovanými částmi kódu a funguje to myslím dobře. Ještě se pustím do překreslení diagramu podle předchozích rad a úpravy php.
Pavel |
||
tiso Profil |
#20 · Zasláno: 18. 5. 2009, 17:08:34
|
||
pavelt Profil * |
#21 · Zasláno: 18. 5. 2009, 18:52:04
Četl, díky. „Ještě se pustím do překreslení diagramu podle předchozích rad a úpravy php.“
|
||
Časová prodleva: 15 let
|
0