Forum » Programiranje » Kaj je to programerska logika?
Kaj je to programerska logika?
krenpac ::
Vsake toliko naletim kje, da kdo pravi, da je kao osvojil programersko logiko, pa da jo je osvojil že v SŠ, pa da mu je bilo na faksu pol lažje, pa da nekateri nikol ne osvojijo programerske logike itd. Pa kaj zaboga je sploh to "programerska" logika?
Ne vem, maš seznam številk - 3 2 9, najdi največjo. Programerska logika, da si pač zadevo predstavlaš po korakih al kaj? ko da bi rekl...
Vzami 1. število. Primerjaj ga z naslednjim. Če je večje, zamenjaj.
Vzami 2. število. Primerjaj ga s naslednjim. Če je večje zamenjaj.
...
Vzami zadnje število. Zadnje število je največje število.
Al kaj si vi predstavljate pod terminom "programeska logika"?
Ne vem, maš seznam številk - 3 2 9, najdi največjo. Programerska logika, da si pač zadevo predstavlaš po korakih al kaj? ko da bi rekl...
Vzami 1. število. Primerjaj ga z naslednjim. Če je večje, zamenjaj.
Vzami 2. število. Primerjaj ga s naslednjim. Če je večje zamenjaj.
...
Vzami zadnje število. Zadnje število je največje število.
Al kaj si vi predstavljate pod terminom "programeska logika"?
- spremenilo: krenpac ()
Blinder ::
Eh to je en bullshit ki ga programerji govorijo ko zeljio podkrepit izjave, da so oni pac nadnaravno inteligentni.
99.991% of over-25 population has tried kissing.
If you're one of the 0.009% who hasn't, copy & paste this in your Signature.
Intel i3-12100f gtx 3050 Pismo smo stari v bozjo mater. Recesija generacija
If you're one of the 0.009% who hasn't, copy & paste this in your Signature.
Intel i3-12100f gtx 3050 Pismo smo stari v bozjo mater. Recesija generacija
kakob ::
Al kaj si vi predstavljate pod terminom "programeska logika"?
Zmožnost implementacije efektivnih programskih rešitev preko razumevanja delovanja underlying piece-of-shit strojne in programske opreme.
Never take a financial advice from someone who works for a living.
Zgodovina sprememb…
- spremenilo: kakob ()
Iluvatar ::
Tudi sam sem slišal tak izraz. Večinoma v bolj začetniških krogih. Recimo v kontekstu: "...ta pa ima nabildano logiko.." ali pa: "...neprestano delam neke obrazce za zajem podatkov, logika pa mi stagnira..." ali pa: "on samo css šraufa, o logiki na backendu pa nima pojma...". Jaz bi rekel, da je za izrazom "logika" mišljena dobro razvita sposobnost analitičnega razmišljanja in mogoče poznavanje osnovnih algoritmov in načrtovalskih vzorcev.
krenpac ::
Al kaj si vi predstavljate pod terminom "programeska logika"?
Zmožnost implementacije efektivnih programskih rešitev preko razumevanja delovanja underlying piece-of-shit strojne in programske opreme.
Misliš zmožnost RAZVOJA in implementacije... Sama implementacija je zame bolj "obrtniška logika"
"on samo css šraufa, o logiki na backendu pa nima pojma..."
Zgodovina sprememb…
- spremenilo: krenpac ()
Lonsarg ::
Pri programiranju je morda en tak "eureka" za prebit, da si pač znaš vizualizirat kako teče po vrsti proces po kodi(zanke, rekurzivni klici,..).
Ampak ta led se ponavadi prebije v urah/dnevih ali pa sploh ne nikoli, vsak tako sem opazil pri ljudeh, ki jim je na neprogramerskem faksu edini programerski predmet delal težave.
Ena taka "eureka" je tut pri SQL, torej vizualizacija operacije med več množicami, tu opažam da se najde kak programer novinec, ki nikakor tega ne osvoji pri SQL, oziroma rabi res dolgo in enostavno ostane za vedno začetnik v SQL.
Ampak ta led se ponavadi prebije v urah/dnevih ali pa sploh ne nikoli, vsak tako sem opazil pri ljudeh, ki jim je na neprogramerskem faksu edini programerski predmet delal težave.
Ena taka "eureka" je tut pri SQL, torej vizualizacija operacije med več množicami, tu opažam da se najde kak programer novinec, ki nikakor tega ne osvoji pri SQL, oziroma rabi res dolgo in enostavno ostane za vedno začetnik v SQL.
Zgodovina sprememb…
- spremenil: Lonsarg ()
kuall ::
Imeti programersko logiko pomeni imeti in večati veselje in občutek za reševanje težkih programerskih problemov.
Furbo ::
A res noben ne zna modelu povedati, kaj je programerska logika?
Primer:
Žena pošlje svojega moža programerja v trgovino:"Kupi mi liter mleka, če bodo imeli jajca, jih kupi deset."
Model pride nazaj z 10 litri mleka in pravi:"Imeli so jajca!"
Primer:
Žena pošlje svojega moža programerja v trgovino:"Kupi mi liter mleka, če bodo imeli jajca, jih kupi deset."
Model pride nazaj z 10 litri mleka in pravi:"Imeli so jajca!"
i5-13600K, Noctua NH-D15, STRIX Z790-F, 32GB DDR5, 2TB Samsung 990PRO,
Toughpower GF3 1000W, RTX3070, ALIENWARE AW3423DWF, Dell S2722QC
Toughpower GF3 1000W, RTX3070, ALIENWARE AW3423DWF, Dell S2722QC
ssokec ::
Kaj je programiranje?
Programiranje je samo prelaganje nekega dela na procesor oziroma na računalnik.
Torej programer mora znati rešiti nek problem peš (na roke), potem pa poda navodila procesorju da namesto njega opravi delo. Od problema do rešitve obstaja več poti (rešitev).
Najboljša rešitev je pa seveda tista katera porabi najman procesorske moči, rama in je najhitrejša (uporabljena je bila najboljša programerska logika). Sam se velikokrat srečujem s takoimenovanim pozitivnim programiranjem to pomeni da programer izbere najkrajšo pot vendar pa ni pri tem predvidel možne napake "glupega" uporabnika in zadeva ne deluje se obesi ko uporabnik namesto pričakovane pozitivne številke v obrazec vnese nek drug znak v vnosno polje.
Vse možne neumnosti uporabnika seveda ni možno predvideti v beta verziji ampak dober je če jih že večino. To je razlika med dobrim programerjem in youtube programerjem.
Programiranje je samo prelaganje nekega dela na procesor oziroma na računalnik.
Torej programer mora znati rešiti nek problem peš (na roke), potem pa poda navodila procesorju da namesto njega opravi delo. Od problema do rešitve obstaja več poti (rešitev).
Najboljša rešitev je pa seveda tista katera porabi najman procesorske moči, rama in je najhitrejša (uporabljena je bila najboljša programerska logika). Sam se velikokrat srečujem s takoimenovanim pozitivnim programiranjem to pomeni da programer izbere najkrajšo pot vendar pa ni pri tem predvidel možne napake "glupega" uporabnika in zadeva ne deluje se obesi ko uporabnik namesto pričakovane pozitivne številke v obrazec vnese nek drug znak v vnosno polje.
Vse možne neumnosti uporabnika seveda ni možno predvideti v beta verziji ampak dober je če jih že večino. To je razlika med dobrim programerjem in youtube programerjem.
kakob ::
Al kaj si vi predstavljate pod terminom "programeska logika"?
Zmožnost implementacije efektivnih programskih rešitev preko razumevanja delovanja underlying piece-of-shit strojne in programske opreme.
Misliš zmožnost RAZVOJA in implementacije... Sama implementacija je zame bolj "obrtniška logika"
Prov je predpogoj in predpostavlja prvo.
Never take a financial advice from someone who works for a living.
Zgodovina sprememb…
- spremenilo: kakob ()
napsy ::
IMHO je to sposobnost resiti probleme na taksen nacin, da se resitev izrazi v programerski kodi, katero lahko racunalnik poganja.
"If you die, you die. But when you live you live. There is no time to waste."
Utk ::
Če imaš nekaj za rešit, znaš kako razbit na manjše dele, jih rešit, in s tem rešit celo stvar. Nekateri enostavno ne znajo kako se bi lotili. Pa se potem lotijo vseeno, ampak zelo nerodno, in predvsem nepotrebno komplicirano.
Netrunner ::
Programerska logika je samo to, da razumeš kako delujejo programerski jeziki. Ko jo enkrat osvojiš ti ne predstavlja velikih težav mirirat iz enega jezika na drugega.
V bistvu je samo izraz ki realno nič ne pomeni.
V bistvu je samo izraz ki realno nič ne pomeni.
Doing nothing is very hard to do... you never know when you're finished.
digitalcek ::
Treba se je zavedati, da je programerska logika, še bolje logika programmerjev, BISTVENO DRUGAČNA, kot logika navadnih ljudi.
Ker se najbrž strinjamo, da programerji pogosto programirajo za ljudi/uporabike tudi zato, da bi bilo uporabnikom lažje upravljati naprave, bi bilo upravičeno pričakovati, da se programerji nekako prilagodijo tistim 99,99999 % ljudem, ki te naprave uporabljajo.
Končno z "prijaznostjo" programiranja lahko dosežejo, da se v javnosti/na trgu govori, kako je nek izdelek dosti bolj prijazen uporabnikom, kot kakšen drug...
Nemci recimo v njihovih testih računalnikov, mobilnih telefonov, tablic, fotoaparatov, pralnihstrojev vedno ocenijo tudi prijaznost do uporabnika, s čimer verjetno mislijo na enostavnost (in kmečko logiko) uporabe, kajti vsak Hans pač ni strojni ali elektro inženir...
Žal pa ni tako, pogosto programerji pričakujejo, da se bodo uporabniki, ki jih je 99,99999 %, prilagodili njim, oziroma njihovi nemogoči logiki, ki jo nima nihče na tej kugli, razen oni sami.
Starejši se verjetno še spomnite računalnika Amiga? Znanec (sicer tudi uspešen šahist) je na njem "delal" neko grafiko, pa nikakor ni mogel iz slike izločiti kurzorja...
Po nekaj dneh konzultacij s takimi in drugačnimi "detektivi", je čisto slučajno ugotovil, da se kurzor spelje iz slike s kombinacijo 2 tipk, kar ne bi pričakoval nihče, pa tudi kombinacij dveh tipk je na tipkovnici kar nekaj...
Danes pa je situacija še slabša. Osebno sem s "konzultacijami" znancev, kje je kaj, in kaj je treba pritisniti, izgubil vsaj 300 ur, najbrž pa 1000, pač nisem zapisoval in štel....
Dajmo komplicirat, zakaj bi enostavno, predvsem pa logično.
Da upravičimo relativno visoke, včasih pa celo izjemne programerske plače?
Ker se najbrž strinjamo, da programerji pogosto programirajo za ljudi/uporabike tudi zato, da bi bilo uporabnikom lažje upravljati naprave, bi bilo upravičeno pričakovati, da se programerji nekako prilagodijo tistim 99,99999 % ljudem, ki te naprave uporabljajo.
Končno z "prijaznostjo" programiranja lahko dosežejo, da se v javnosti/na trgu govori, kako je nek izdelek dosti bolj prijazen uporabnikom, kot kakšen drug...
Nemci recimo v njihovih testih računalnikov, mobilnih telefonov, tablic, fotoaparatov, pralnihstrojev vedno ocenijo tudi prijaznost do uporabnika, s čimer verjetno mislijo na enostavnost (in kmečko logiko) uporabe, kajti vsak Hans pač ni strojni ali elektro inženir...
Žal pa ni tako, pogosto programerji pričakujejo, da se bodo uporabniki, ki jih je 99,99999 %, prilagodili njim, oziroma njihovi nemogoči logiki, ki jo nima nihče na tej kugli, razen oni sami.
Starejši se verjetno še spomnite računalnika Amiga? Znanec (sicer tudi uspešen šahist) je na njem "delal" neko grafiko, pa nikakor ni mogel iz slike izločiti kurzorja...
Po nekaj dneh konzultacij s takimi in drugačnimi "detektivi", je čisto slučajno ugotovil, da se kurzor spelje iz slike s kombinacijo 2 tipk, kar ne bi pričakoval nihče, pa tudi kombinacij dveh tipk je na tipkovnici kar nekaj...
Danes pa je situacija še slabša. Osebno sem s "konzultacijami" znancev, kje je kaj, in kaj je treba pritisniti, izgubil vsaj 300 ur, najbrž pa 1000, pač nisem zapisoval in štel....
Dajmo komplicirat, zakaj bi enostavno, predvsem pa logično.
Da upravičimo relativno visoke, včasih pa celo izjemne programerske plače?
SimplyMiha ::
V golem bistvu je analiza in razčlenitev problema na več manjših, lažje obvladljivih problemov, ter implementacija rešitve preko teh manjših problemov.
Na kratko: programerska logika je matematika.
Na kratko: programerska logika je matematika.
napsy ::
SimplyMiha je izjavil:
V golem bistvu je analiza in razčlenitev problema na več manjših, lažje obvladljivih problemov, ter implementacija rešitve preko teh manjših problemov.
Na kratko: programerska logika je matematika.
diskretna matematika, ce smo natancni... ki pa je precej drugacna od klasicne srednjesolske.
Se dalec pa programerji nismo neki ubermensch, kakor bi nekateri zeleli verjeti.
"If you die, you die. But when you live you live. There is no time to waste."
JanBrezov ::
Programerska logika je butast, neobstoječ termin, s katerim se največ ukvarjajo butci...
Če uporabim logiko:
1. Termin si uporabil, torej termin obstaja.
2. Trenutno se s tem termom na Slo-Tech največ ukvarjamo v tej temi. Po tvoji definiciji so sodelujoči butci. Ti si sodelujoči, iz tega lahko izpeljemo, da...
Naj poskusim svojo definicijo: "Programska logika je poznavanje konceptov in sposobnost uporabe teh konceptov za reševanje problemov s pomočjo specifičnega računskega stroja."
Ne omenjam, kakšnih problemov, torej definicija zajeme računske probleme, realne, zabavne itd. Omenjam specifični stroj, saj obstajajo različni stroji z različno logiko. Ne omenjam programskih jezikov, ker so ti ultimativno vezani na realni ali virtualni stroj, jezik je zgolj abstrakcija strojne opreme. Poleg tega hočem biti previden glede jezikov, ker niso vsi enaki, npr. logični jeziki (Prolog) so po logiki/vzorcu programiranja precej drugačni od imperativnih jezikov (C++, C#, PHP, JavaScript), ki so spet precej drugačni od deklarativnih jezikov (HTML, CSS, SQL). Bojda (ne vem) je programiranje za kvanti računalnik spet nekaj čisto drugega. Tranzicija med njimi ni enostavna. Digitalček razlaga o UX (user experience), ki je področje zase. Mogoče se kdo obregne ob besedo "računski" v moji definiciji.
Zgodovina sprememb…
- spremenil: JanBrezov ()
bbbbbb2015 ::
Vsake toliko naletim kje, da kdo pravi, da je kao osvojil programersko logiko, pa da jo je osvojil že v SŠ, pa da mu je bilo na faksu pol lažje, pa da nekateri nikol ne osvojijo programerske logike itd. Pa kaj zaboga je sploh to "programerska" logika?
Programerka logika je način ali zmožnost abstraktnega razmišljanja, da znaš problem na papirju ali z algoritmom rešiti.
Deloma je programerska logika povezana z matematiko, ki je podobna abstraktna logika. Dobri matematiki so tudi dobri programerji ali obratno.
Ni pa to 1:1, nekdo je lahko dober matematik, pa relativno slab programer.
Če tega nimaš kot naraven talent, ti bo na računalniškem faksu zelo težko. Ne pa nemogoče. Imel sem sošolko, ki je ravno tako diplomirala, njej je še v 4. letniku že malo manj trivialen algoritem predstavljal hude težave.
Algoritemsko te sicer naučijo razmišljati na faksu, vendar kot rečeno, če tega nimaš kot talent, boš v source kodo strmel kot v kitajske pismenke. Na računalniškem faksu, ko sem jaz hodil na faks v prvem letniku, debela polovica ni imela tri čiste in so vsi popadali. V glavnem so jih zredčile vaje. Eni so goljufali (vaje so jim drugi naredili), samo realno je to slaba popotnica.
Imeli smo eno punco, ki je pregoljufala praktično vse vaje, bila je leto starejša od mene, ko sem jaz diplomiral, je ona hodila v 3. letnik. Že takrat sem pomislil, da bi zanjo definitivno bilo bolje, da gre študirat nekaj drugega, ker je brezveze zgubila 2-3 leta.
Sem imel pa sošolca, ki je bil izjemen talent za programiranje. Vaje je rešil v tretjini časa, kot mi vsi ostali. Je pa dejanskop v VAX asemblerju progtramiral za neko firmo, mislim, da je to bila Metalna (to je sicer že vse propadlo).
Ni pa (tudi on ne) faksa končal. Ker po prvem letniku sem bil tudi jaz zverziran v VAX asemblerju in sem ga zlahka ujel. Težava pa je bila, da sem jaz naprej študiral C/C++, Pascal, Lusp, FORTRAN, on pa je ostal tam, kjer je bil.
Dejansko je programiranje kot igranje klavirja. Talent rabiš, samo brez vloženega dela na mestu capljaš. Tako sem jaz v 4. letniku programiral svoj ISA (Instruction-Set Architecture), na superračunalniku, sošolec pa je še vedno drgnil tisti usran VAX asembler. Potem so prišli PCji in dejansko smo sošolca prehiteli vsi, ki smo količkaj imeli voljo do razvoja in odkrivanja novega.
Zgodovina sprememb…
- spremenilo: bbbbbb2015 ()
kakob ::
Programerska logika je samo to, da razumeš kako delujejo programerski jeziki. Ko jo enkrat osvojiš ti ne predstavlja velikih težav mirirat iz enega jezika na drugega.
In theory there is no difference between theory and practice. In practice there is.
Never take a financial advice from someone who works for a living.
Zgodovina sprememb…
- spremenilo: kakob ()
krneki0001 ::
bbbbbb2015 je izjavil:
Tako sem jaz v 4. letniku programiral svoj ISA (Instruction-Set Architecture), na superračunalniku, sošolec pa je še vedno drgnil tisti usran VAX asembler. Potem so prišli PCji in dejansko smo sošolca prehiteli vsi, ki smo količkaj imeli voljo do razvoja in odkrivanja novega.
Sošolec je še danes bolje plačan od vseh vas skupaj.
Asrock X99 Extreme 4 | Intel E5-2683V4 ES | 64GB DDR4 2400MHz ECC |
Samsung 250GB M.2 | Asus 1070 TI | 850W Antec | LC Tank Buster
Samsung 250GB M.2 | Asus 1070 TI | 850W Antec | LC Tank Buster
Looooooka ::
Razbit problem na dele kot je bilo napisano zgoraj.
Spisat kodo tako, da se jo da cim veckrat ponovno uporabit ne pa da se njena logika ponavlja v vsakem koraku.
Misliti 3 korake naprej ne pa zgolj resevati problema pred sabo. Na hitro spacana resitev danes je lahko drag problem jutri.
Ce se FDVjevcu in javnemu sektorju zdi sprejemljivo je velika verjetnost, da bos z uporabo programerske logike prisel do drugacne resitve.
FDVjevec ti bo na ves glas sredi trznice povedal vstopno kodo vrat. Programer bo, ko bos vprasal kako priti cez vrata ugotovil, da rabis kodo, da bos mogoce cez vrata spuscal tudi mamo in nekoga, ki ga bos zelel spustiti cez vrata samo enkrat, pa da bi bilo fino se zabelezit kdo je kdaj stopil cez vrata. Namesto danes cisto delujoce kode "if key = 'blabla'" bo predvidel vsaj 5 problemov na katere clovek ne pomisli, jih zreduciral na locene korake in spisal resitev, ki se jo bo dalo brez problema tudi nadgraditi. Ce je fer ti bo dal na voljo obe resitvi in te seznanil s posledicami.
Nekdo brez te logike ti bo spacal delujoco resitev, ki bo morala ob enem izmed prej ze predvidenib problemov v smeti.
Spisat kodo tako, da se jo da cim veckrat ponovno uporabit ne pa da se njena logika ponavlja v vsakem koraku.
Misliti 3 korake naprej ne pa zgolj resevati problema pred sabo. Na hitro spacana resitev danes je lahko drag problem jutri.
Ce se FDVjevcu in javnemu sektorju zdi sprejemljivo je velika verjetnost, da bos z uporabo programerske logike prisel do drugacne resitve.
FDVjevec ti bo na ves glas sredi trznice povedal vstopno kodo vrat. Programer bo, ko bos vprasal kako priti cez vrata ugotovil, da rabis kodo, da bos mogoce cez vrata spuscal tudi mamo in nekoga, ki ga bos zelel spustiti cez vrata samo enkrat, pa da bi bilo fino se zabelezit kdo je kdaj stopil cez vrata. Namesto danes cisto delujoce kode "if key = 'blabla'" bo predvidel vsaj 5 problemov na katere clovek ne pomisli, jih zreduciral na locene korake in spisal resitev, ki se jo bo dalo brez problema tudi nadgraditi. Ce je fer ti bo dal na voljo obe resitvi in te seznanil s posledicami.
Nekdo brez te logike ti bo spacal delujoco resitev, ki bo morala ob enem izmed prej ze predvidenib problemov v smeti.
jype ::
Odgovor na osnovno vprašanje je kompleksen, ker če ne bi bil, bi vsi razumeli, kaj to je.
Gre za sposobnost problem razčleniti na tako majhne korake, da je vsakega od njih mogoče ponazoriti s tako preprostim ukazom, da ga lahko izvede celo računalnik.
To sposobnost lahko razvijejo praktično vsi ljudje, le dobrega trenerja potrebujejo. Veliko težje je razviti izkušnje in analitično razmišljanje, kar se oboje dogaja na bistveno višjem nivoju, ter osvojiti znanje s tega področja, ki ga nima smisla izumljati od začetka, ampak ga je pametno spoznati iz literature.
Gre za sposobnost problem razčleniti na tako majhne korake, da je vsakega od njih mogoče ponazoriti s tako preprostim ukazom, da ga lahko izvede celo računalnik.
To sposobnost lahko razvijejo praktično vsi ljudje, le dobrega trenerja potrebujejo. Veliko težje je razviti izkušnje in analitično razmišljanje, kar se oboje dogaja na bistveno višjem nivoju, ter osvojiti znanje s tega področja, ki ga nima smisla izumljati od začetka, ampak ga je pametno spoznati iz literature.
Glugy ::
Misilm da je osnova programerske logike ( lahko me popravte če se motim) If stavek. Vse se da umestit skozi prizmo IF stavka. Če hočeš iti v trgovino moraš skozi te if stavke:
Če imaš hrane dovolj ne stori ničesar.
Če je pogoj da nimaš hrane zadoščen začni z proceduro nakupa.
Če imaš čevelj ki je preluknjan prekini proces nakupa. V nasprotnem primeru pa nadaljuj.
Če imaš čevelj ki smrdi prekini proces nakupa. V nasprotnem primeru pa nadaljuj.
Če imaš imaš na sebi nogavice nadaljuj. V nasprotnem primeru pa prekini.
Če si prekinil operacijo v zadnjih treh primerih začni z operacijo čevelj in nogavice.
Če nisi prekinil operacije nadaljuj.
Če imaš na voljo stopnice / stol se usedi ; sicer prekini z operacijo.
Če lahko sediš si obuj čevlje.
Če so ključi v vratih preskoči naslednjo operacijo; sicer začni z operacijo išči ključe.
Če ključev ni pri X išči ključe pri Y. itd itd...
Če je pogoj da so ključi v vratih zadoščen odkleni vrata. Sicer prekini z operacijo nakupovanje.
Če so vrata odklenjena pojdi ven. Če niso odklenjena poskusi znova enkrat. Ob ponovnem neuspehu prekini operacijo.
Če sta pogoja: sem zunaj; imam ključe zadoščena nadaljuj; z operacijo nakupovanje; sicer prekini.
To je tak na hitro da sploh pridš ven iz hiše je ogromno korakov; pa verjetn bi bil lahko še bolj natančn pri vseh teh operacijah ; ker mnoge se bi lahk razbile na še manjše operacije. Da sploh pridš do trgovine ; kaj šele da se vrneš in vse to je pa uff.... Pa verjetn nism najboljši da dajem take primere ker sam ne programiram ampak tako nekako si jz predstavljam programersko logiko. Sem pa sigurno še kakšno napako naredil pa preveč poenostavil.
Poleg tega pa programiranje niso samo IF stavki ampak še marsikej druzga kar jz ne razumem. Kaj hranit v spominu recimo da se kasnej lahko sklicuješ pa sploh slediš temu kar delaš da recimo da slediš uri in če ugotoviš da si pozen pohitriš korak. Recimo.
Če imaš hrane dovolj ne stori ničesar.
Če je pogoj da nimaš hrane zadoščen začni z proceduro nakupa.
Če imaš čevelj ki je preluknjan prekini proces nakupa. V nasprotnem primeru pa nadaljuj.
Če imaš čevelj ki smrdi prekini proces nakupa. V nasprotnem primeru pa nadaljuj.
Če imaš imaš na sebi nogavice nadaljuj. V nasprotnem primeru pa prekini.
Če si prekinil operacijo v zadnjih treh primerih začni z operacijo čevelj in nogavice.
Če nisi prekinil operacije nadaljuj.
Če imaš na voljo stopnice / stol se usedi ; sicer prekini z operacijo.
Če lahko sediš si obuj čevlje.
Če so ključi v vratih preskoči naslednjo operacijo; sicer začni z operacijo išči ključe.
Če ključev ni pri X išči ključe pri Y. itd itd...
Če je pogoj da so ključi v vratih zadoščen odkleni vrata. Sicer prekini z operacijo nakupovanje.
Če so vrata odklenjena pojdi ven. Če niso odklenjena poskusi znova enkrat. Ob ponovnem neuspehu prekini operacijo.
Če sta pogoja: sem zunaj; imam ključe zadoščena nadaljuj; z operacijo nakupovanje; sicer prekini.
To je tak na hitro da sploh pridš ven iz hiše je ogromno korakov; pa verjetn bi bil lahko še bolj natančn pri vseh teh operacijah ; ker mnoge se bi lahk razbile na še manjše operacije. Da sploh pridš do trgovine ; kaj šele da se vrneš in vse to je pa uff.... Pa verjetn nism najboljši da dajem take primere ker sam ne programiram ampak tako nekako si jz predstavljam programersko logiko. Sem pa sigurno še kakšno napako naredil pa preveč poenostavil.
Poleg tega pa programiranje niso samo IF stavki ampak še marsikej druzga kar jz ne razumem. Kaj hranit v spominu recimo da se kasnej lahko sklicuješ pa sploh slediš temu kar delaš da recimo da slediš uri in če ugotoviš da si pozen pohitriš korak. Recimo.
Zgodovina sprememb…
- spremenilo: Glugy ()
tomhuggins ::
Naj poskusim svojo definicijo: "Programska logika je poznavanje konceptov in sposobnost uporabe teh konceptov za reševanje problemov s pomočjo specifičnega računskega stroja."
Definicija je zelo neprecizna. Dopolniti moraš pojmovanje "specifični računski stroj", v splošnem je to lahko tudi abak, logaritemsko računalo, Iskrin kalkulator iz leta 1976 ipd. Črtaj "specifičnega" in vstavi izraz "programirljivega". V praksi še lahko rečeš tudi kar Turingovega.... Dober poskus, poba!
JanBrezov ::
tomhuggins je izjavil:
Naj poskusim svojo definicijo: "Programska logika je poznavanje konceptov in sposobnost uporabe teh konceptov za reševanje problemov s pomočjo specifičnega računskega stroja."
Definicija je zelo neprecizna. Dopolniti moraš pojmovanje "specifični računski stroj", v splošnem je to lahko tudi abak, logaritemsko računalo, Iskrin kalkulator iz leta 1976 ipd. Črtaj "specifičnega" in vstavi izraz "programirljivega". V praksi še lahko rečeš tudi kar Turingovega.... Dober poskus, poba!
Želel sem podati čim bolj generično definicijo. Podani predlogi jo naredijo manj generično.
Z besedo "specifičnega" želim namigniti, da je teh strojev več in da so različni, poznavanje enega ne pomaga pri poznavanju drugega. Uvedba "programirljivega" izloči neprogramirljive stroje. Sta abak in navadni kalkulator programirljiva? Verjetno ne. Sta računska stroja? Seveda, imata tudi svojo logiko, ki sta različni. Turingov model je samo eden izmed več modelov računanja, zato kvari generičnost moje definicije.
jacal ::
V anekdoti z mlekom in jajci bi moral tip, ki naj bi bil močan v logiki, takoj opaziti pomanjkljivost navodila (in terjati dodaten podatek).
Ostane pa poanta a'la "raztreseni profesor". Z nekaj smisla za empirijo vsakdanjega življenja, z nekaj "kmečke" oz. "zdrave" pameti bi mu bilo jasno, da žena najverjetneje potrebuje več jajc kot litrov mleka.
Ostane pa poanta a'la "raztreseni profesor". Z nekaj smisla za empirijo vsakdanjega življenja, z nekaj "kmečke" oz. "zdrave" pameti bi mu bilo jasno, da žena najverjetneje potrebuje več jajc kot litrov mleka.
tomhuggins ::
Želel sem podati čim bolj generično definicijo. Podani predlogi jo naredijo manj generično.
Z besedo "specifičnega" želim namigniti, da je teh strojev več in da so različni, poznavanje enega ne pomaga pri poznavanju drugega. Uvedba "programirljivega" izloči neprogramirljive stroje. Sta abak in navadni kalkulator programirljiva? Verjetno ne. Sta računska stroja? Seveda, imata tudi svojo logiko, ki sta različni. Turingov model je samo eden izmed več modelov računanja, zato kvari generičnost moje definicije.
Moraš prebrati svojo prvotno razlago tega pojma. Govoriva o delu s specifičnimi računskimi stroji. Sedaj poudarjaš tudi neprogramirljive - torej ti izjavljaš, da ima programska/programerska logika povezavo tudi z neprogramirljivimi stroji? Mar ne bi definicija programerske/programske logike bila bolj skladna z programirljivimi stroji in ne s slednjimi? Predpostaviva, da ima običajni - neprogramirljivi računski stroj le aritmetične zmožnosti in ne logičnih. Potemtakem padejo praktični vsi klasični algoritmi v vodo, ker se ne moreš nič odločiti (preko vejitev) posledično pa tudi ne ponavljati nekih korakov (preko zank, skokov). Hitro prideva do zaključka, da na teh strojih ne moreš programirati. Torej, če povzamem, programerska/programska logika ne more biti povezana z neprogramirljivimi računskimi stroji, saj z njimi ne moremo pisati programov. To seveda zavisi tudi od tega, kako si razlagava besede "programsko" in "programersko". Če obstaja način, kako programirati neprogramirljive računske stroje, se pa priporočam za popravek in s tem seveda moj argument pade v vodo.
Opažam še potencialno drugačno razlaganje pojmov s tvoje strani : izračunljivost je druga zadeva, morava pa paziti, da denimo zapisovanje postopka z Churchovim lambda računom ali npr. končnim avtomatom realno gledano ni primerljivo s tem, kar se v tej temi pojmuje kot programerska logika. Programerska logika se v tem kontekstu navezuje bolj na Turingov model, saj ljudje ob programiranju občajno govorijo o programiranju CPU-jev/krmilnikov, ne o pisanju lambda računov na papir.
Lep pozdrav.
- Dušan
Zgodovina sprememb…
- spremenilo: tomhuggins ()
Utk ::
Programersko logiko lahko kažeš tudi s svinčnikom na listu papirja, nima (kaj dosti) veze s strojem.
Lahko je pokažeš tudi pri gradnji hiše, če hočeš. Najbrž bo sicer potem hiša stala na strehi in imela garažo na podstrešju, ampak logika bo :)
Lahko je pokažeš tudi pri gradnji hiše, če hočeš. Najbrž bo sicer potem hiša stala na strehi in imela garažo na podstrešju, ampak logika bo :)
tomhuggins ::
Programersko logiko lahko kažeš tudi s svinčnikom na listu papirja, nima (kaj dosti) veze s strojem.
Lahko je pokažeš tudi pri gradnji hiše, če hočeš. Najbrž bo sicer potem hiša stala na strehi in imela garažo na podstrešju, ampak logika bo :)
Pri gradnji hiše? Malo še, pa bomo prišli na to, da se programerska logika lahko koristi pri poljubnemu trivialnemu opravilu... IMHO programerska logika ne more biti kar vse, ker ni vsak postopek nujno programerske narave. S tem ponovno pazimo na predpostavko, da je "progamersko" - s korenom "program" ali "progamer" vezano na nekoga, ki dela s programirljivo napravo. Ni vsak algoritem tudi program, vsebuje pa vsak neprazen program neki algoritem, v kolikor prejema podatke, jih obdeluje in vrne na izhodu.
Zgodovina sprememb…
- spremenilo: tomhuggins ()
Utk ::
Kot so tudi drugi napisali, razbiješ problem na manjše probleme in jih rešiš posebej. To je čisto splošna stvar, nima tolk veze s programiranjem. Verjetno ste samo preveč zabiti, da bi opazili druge ljudi, ki ne znajo tako razmišljat. In iščejo rešitev v eni potezi.
tomhuggins ::
Še dobro da "večina" neprogramerjev podaja boljše definicije od "manjšine" programerjev..... Debilno, kako lahko neki laiki v resnih debatah nabijajo bandwagoning logične zmote (tipa "Kot so tudi drugi napisali"), brez da bi podkrepili z utemeljitvijo/razlago lastnega prepričanja. To kar ti govoriš, ni programerska logika, temveč algoritmični pristop, ki se imenuje deli in vladaj (Divide and conquer). Res je, da se to da uporabiti izven programiranja, a ne vem, kako si ti razlagaš, da je to programerska logika. Izraz "Programerska logika" se verjetno povezuje s programiranjem ali programom, sicer beseda najbrž tako ne bi bila poimenovana? To kar ti izjavljaš je ekvivalentno izjavi, da "zidarska logika" nima povezave z delom zidarjev. Nauči se resno sodelovati v debati brez bednih bandwagoning argumentov, ali pa ne trolaj z logično nekonsistentnimi bedarijami.
Utk ::
Ja res je da ni vse v "deli in vladaj". Je nekaj tudi v iskanju pravil, namesto dodajanju izjem, kot radi delajo recimo pravniki, ali pa slovničarji. Še dosti tega je. Ampak tudi to nima veze s programljivim strojem. To lahko delaš tudi na papir, ali pa na neumen kalkulator.
Prepis nekega zakona v program bi bilo kretenski. Napisan zakon po programerski logiki bi bil carski.
Prepis nekega zakona v program bi bilo kretenski. Napisan zakon po programerski logiki bi bil carski.
jype ::
Ne gre toliko za deli in vladaj, kot gre za to, da so ukazi računalnika precej enostavni, kompleksnejše reči moraš pa zgraditi iz tega nabora - ko to počneš, razmišljanje v sklopu takšne hierarhije postane intuitivno in temu IMO rečemo "programerska logika".
Pika na i ::
kunigunda ::
Jest bi to zelo laicno povedu. Ko delas program, v bistvu implementiras logiko, katero bo racunalnik uporabljal za izvajanje.
To, da imas ti kot oseba programersko logiko pa je zgolj to, da imas to ze prej v glavi, tako da skozi programski jezik to preneses na racunalnik.
Boljso imas logiko, bolj tekoce bos to speljal brez nekega popravljanja.
To, da imas ti kot oseba programersko logiko pa je zgolj to, da imas to ze prej v glavi, tako da skozi programski jezik to preneses na racunalnik.
Boljso imas logiko, bolj tekoce bos to speljal brez nekega popravljanja.
kuall ::
Kot ponavadi delate vsi enako napako kot jo dela že šolski sistem: zanemarjate čustva, motivacijo in naravni talent.
Programersko logiko obvlada tisti, ki ima veselje do delanja načrtov in do tega, da bi rad vse razumel. To je odvisno od značaja, tega se ne moreš naučiti. Ko programiraš v bistvu organiziraš kaos v logičen delujč sistem. Na enak način ga organiziraš kot takrat, ko vidiš nekaj kar ne razumeš in bi tisto rad razumel.
Torej jaz trdim, da je najboljši programer tisti, ki ima veselje do tega, da bi vse rad razumel.
Programersko logiko obvlada tisti, ki ima veselje do delanja načrtov in do tega, da bi rad vse razumel. To je odvisno od značaja, tega se ne moreš naučiti. Ko programiraš v bistvu organiziraš kaos v logičen delujč sistem. Na enak način ga organiziraš kot takrat, ko vidiš nekaj kar ne razumeš in bi tisto rad razumel.
Torej jaz trdim, da je najboljši programer tisti, ki ima veselje do tega, da bi vse rad razumel.
kunigunda ::
Veselje do tega nima veze z logiko. Programiranje ni organizacija kaosa, ampak nekaj kar se iz nic ustvari (razn ce si mislil popravljanje programa za selebajzarjem :P)
Prav tako ni govora o programerjih ampak logiki.
Prav tako ni govora o programerjih ampak logiki.
TheBlueOne ::
Programerska logika zame pomeni, da nekdo pozna osnovno metode programiranja kakor vrste spremenljivk, zanke, kaksen je redosled izvajanja, objekti... kar je za vecino jezikov prakticno enako.
Ko nekdo, ki zna programirati spozna, da je samo programiranje enostavno, razumevanje tega, kar je ze na voljo v danem jeziku (knjiznice...) pa kompleksno in obsezno, pomeni, da pozna programersko logiko in da mora za programiranje v drugem jeziku samo pogledati, kako tocno izgledajo ukazi in prebrati kako deluje knjiznica, ki jo potrebuje za konkreten projekt.
Opozorim samo, da si je vecina programskih jezikov podobna, kakor da recimo hoces povedati nekaj po hrvasko, znas pa slovensko. Malo drug vrstni red, malo drugacne besede, veliko sorodnega, kjer pa obstajajo jeziki, ki so kakor kitajscina slovenscini. Dober primer je nemsko AWL od SIEMENSA. Ampak ce znas slovensko ves, da bo da kaj poves potreben vsaj glagol in kaksen samostalnik.
Ko nekdo, ki zna programirati spozna, da je samo programiranje enostavno, razumevanje tega, kar je ze na voljo v danem jeziku (knjiznice...) pa kompleksno in obsezno, pomeni, da pozna programersko logiko in da mora za programiranje v drugem jeziku samo pogledati, kako tocno izgledajo ukazi in prebrati kako deluje knjiznica, ki jo potrebuje za konkreten projekt.
Opozorim samo, da si je vecina programskih jezikov podobna, kakor da recimo hoces povedati nekaj po hrvasko, znas pa slovensko. Malo drug vrstni red, malo drugacne besede, veliko sorodnega, kjer pa obstajajo jeziki, ki so kakor kitajscina slovenscini. Dober primer je nemsko AWL od SIEMENSA. Ampak ce znas slovensko ves, da bo da kaj poves potreben vsaj glagol in kaksen samostalnik.
krneki0001 ::
Normalna logika:
A: Evo, povezao sam ti komp, možeš da ideš na net, a laptop pali kad ti ovaj crkne il kad si na putu, baterija će mu trajati dobrih 5 sati. Ovo ti je sad vrhunac savršenstva, trajaće doveka.
B: Svaka ti se dala! Može rakijica?
Programerska logika:
A:Sredio sam ti fiber-optičku mrežu, povezao sam ti laptop i komp od 16 gigabajta memorije i hard diskom od 4 terabajta, na kompu sam stavio Gentoo u kome imaš Windows 7 kao virtuelnu mašinu(al' ko još to koristi, samo deca, ko još igra igrice) i takođe sam ti stavio Gentoo na gaming (ko još igra igrice uopšte) laptop od soma evra koji stalno mora da bude povezan sa kompom ako hoćeš da na njemu koristiš Windows 7, pošto sam upalio Xen virtuelizaciju. Takođe mu ne radi wifi al' to bi trebalo da bude sređeno u sledećem kernel patch-u, samo ne zaboravi da ga rekompajluješ za svaki slučaj, da ne pomutiš GRUB (ono standardno, ./configure pa sudo make pa sudo make install). Eto, evo ti osnovno, mada ja bih ovde stavio jedan server sa SPARC čisto reda radi, i uveo bih ti 802.11n bežičnu mrežu i jedan poseban komp kao firewall.
B: A beži bre u kurac, ubio si mi želju za kompom *baca celu kontrapciju kroz prozor, dok programer tiho jadikuje*
Asrock X99 Extreme 4 | Intel E5-2683V4 ES | 64GB DDR4 2400MHz ECC |
Samsung 250GB M.2 | Asus 1070 TI | 850W Antec | LC Tank Buster
Samsung 250GB M.2 | Asus 1070 TI | 850W Antec | LC Tank Buster
shadeX ::
Razbit problem na dele kot je bilo napisano zgoraj.
Spisat kodo tako, da se jo da cim veckrat ponovno uporabit ne pa da se njena logika ponavlja v vsakem koraku.
Misliti 3 korake naprej ne pa zgolj resevati problema pred sabo. Na hitro spacana resitev danes je lahko drag problem jutri
Kot samouku, bi bil tale post zlata vreden nekaj let nazaj. Tvoj post sicer ne direktno ponazarja "programerske logike" ampak tudi principe OOP-ja. To kar si ti povedal v treh stavkih, sem jaz potreboval kar nekaj projektov za sabo. Ko sem se večkrat dobil, da sem že večkrat uporabil kodo, ki sem jo ŽE spisal mi ni bilo jasno, kako bi jo uporabil nazaj. Ampak sama struktura kode je bila tako slaba, da je bilo to nemogoče. Takrat mi ni bilo jasno, da je treba dejansko "predvidet prihodnost", da lahko zadevo spišeš čim bolj dinamično. Prav tako mi takrat ni bilo jasno, zakaj bi nekdo uporablil objekte, ko pa statične metode, spremenljivke, delujejo povsem OK - ubistvu še lažje ker jih pač lahko kličeš iz kjerkoli- vedel sem da ta pristop ni pravilen, ampak nisem razumel zakaj. Še manj mi je bilo jasno, zakaj bi nekdo potreboval razrede v razredu (takrat sem delal na Android projektu in je bilo dost tega, kot npr Dialog Builderji, itd).
Prebral sem dost (začetnih) knjig glede programiranja pa teh zadev nikoli ni bilo opisanih in pa tudi samih razlogov zakaj bi bilo tako.
Da bi imel nekoga, ki bi mi takrat povedal kaj sem delal narobe, ni bilo (slabost samouka), sem pa to dobil z izkušnjami in delom na samostojnih projektih.
Going back, sem nekaj celo tudi tukaj spraševal. Bil sem pa seveda tudi reden gost Stackoverflowa, danes imajo nekatera moja vprašanja po več kot 50k ogledov. ^_^
[Java] Castanje
[Android] Podatkovna baza
[Java] Konstruktor v dedovanem razredu
[Java] System.out.print = null
[Java] Iskanje duplikata v Arrayu
Zgodovina sprememb…
- spremenil: shadeX ()
kuall ::
Veselje do tega nima veze z logiko. Programiranje ni organizacija kaosa, ampak nekaj kar se iz nic ustvari (razn ce si mislil popravljanje programa za selebajzarjem :P)
Prav tako ni govora o programerjih ampak logiki.
Ne razumeš, da v frazi "programerska logika" beseda logika nima klasičnega pomena. Sinonim je za besedo "sistem".
Nobena stvar se ne ustvari iz nič. Programer nejasno in kaotično idejo razčleni, da postane razumljiva najprej njemu in potem celo tako neumni stvari kot je računalnik.
Wtf ni govora o programerjih? O kom pa je?
Najbolj na živce mi gredo ljudje, ki samo kritizirajo, posebej če kritizirajo zarad kritiziranja samega.
slovencl ::
Programer ponavadi samo poskrbi, da se neka rešitev implementira na računalniku. Do_rešitev_ponavadi_pride/Logiko_ponavadi_uporabi tisti nad programerjem, ki rešuje problem - fizik, matematik, kemik, itd. Tako da programer je v bistvu bolj samo prevajalec. Iz enega/znanstvenega jezika prevede v drugega/računalniškega - tako da mislim, da bi lahko imeli svojo smer tudi na filo faksu. Živ dokaz za to, da je programer prevajalec in ne uporablja logike je tudi to, da iz trgovine prinese šest litrov mleka namesto jajca.
Pa ne se zdej na to obešat, ker je samo provokacija ampak je pa utemeljena
Pa ne se zdej na to obešat, ker je samo provokacija ampak je pa utemeljena
Utk ::
Do takih absurdov pride samo, ce programer verjame, da narocnik ve kaj blebece in kaj rabi. Ne ve. Tisto babo, ki ga je poslala v trgovino, bi moral ignorirat, in jo samo vprasat kaj bo za vecerjo in kaj je v hladilniku. Kaj pa baba ve. Oz narocnik.
Zgodovina sprememb…
- spremenil: Utk ()
tomhuggins ::
Programer ponavadi samo poskrbi, da se neka rešitev implementira na računalniku.
Da, tako kot matematik "samo" odkriva nove matematične izreke, trditve..
Do_rešitev_ponavadi_pride/Logiko_ponavadi_uporabi tisti nad programerjem, ki rešuje problem - fizik, matematik, kemik, itd.
Do rešitev pride fizik/matematik/kemik. Predpostaviva, da je rešitev programska oprema, potemtakem je fizik/matematik/kemik tisti, ki je program ustvaril? Ali ni tako, da je on le pripomogel k določenim algoritmom/postopkom v programu? Je fizik/kemik/matematik tisti, ki je uporabil programersko logiko? Seveda tu ne upoštevaj fizikov/matematikov/kemikov, ki dejansko so programerji in programirajo dotično programsko rešitev.
Tako da programer je v bistvu bolj samo prevajalec.
To je res, programer prevaja najrazličnejše probleme v delujoče programe. Algoritme, opisane v naravnem jeziku prevaja v programske jezike. Odvisno od sposobnosti dotičnega programerja seveda le-ta tudi izboljšuje in prilagaja obstoječe algoritme.
Iz enega/znanstvenega jezika prevede v drugega/računalniškega - tako da mislim, da bi lahko imeli svojo smer tudi na filo faksu.
Malo si preberi, katera akademska področja padejo v domene filozofskih fakultet, ker si tu precej zgrešil.
Pa ne se zdej na to obešat, ker je samo provokacija
Zakaj potem izražaš mnenje/komuniciraš, če ne pričakuješ/želiš odziva?
ampak je pa utemeljena
Utemeljena? Kako le, do sedaj si samo navajal logične zmote in protislovja ter nisi ničesar pravzaprav utemeljil. Tvoj opisi so namreč poniževalnega značaja, pristranski, neutemeljeni in iskreno povedano precej zgrešeni.
Zgodovina sprememb…
- spremenilo: tomhuggins ()
BigWhale ::
Noben programer ne razmislja tko. Mamina navodila sta dva razlicna stavka in pri drugem je najhuje kar se lahko zgodi, da reces syntax error. In se to samo, ce imas pokvarjen parser.
"Buy one bottle of milk." - buy(1, milk)
"If they have eggs, bring six." if (check(eggs)) buy(6) /* Possible syntax error */
Tudi v primeru, ce bi bila stavka zdruzena v eno poved, je moznosti za taksno napacno informacijo malo, ce je parser za jezik vsaj priblizno pismen in uposteva gramatiko. Oziroma, ce jo strogo uposteva, potem je to nujno syntax error. Ce je pa loose coupled, potem pa privzame, da je zadaj manjkajoci zaimek, ki bi se praviloma nanasal na jajca. Ker se zaimki ponavadi nanasajo na samostalnik v istem stavku in ne v sosednjem.
Kaj je programerska logika? To je nekaj zelo podobnega kmecki logiki. Vsi o tem govorijo, nihce pa tocno ne ve kaj je, kaj sele, da bi jo lahko izmerili.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Nadpovrečno programiranjeOddelek: Programiranje | 9253 (6978) | jype |
» | Kje/kako ste se naučili programiranja? (strani: 1 2 3 4 5 )Oddelek: Programiranje | 59973 (44649) | DaMachk |
» | Programiranje nasplošnoOddelek: Programiranje | 7836 (5912) | kunigunda |
» | Kam po FRI-juOddelek: Šola | 6718 (5433) | Ciklamen |
» | Izbor programskega jezika in vaje(za učenje)Oddelek: Programiranje | 6794 (5699) | Yacked2 |