Quantcast

Programerski kutak

Moghrion

Poznat
Moderator
Poruka
9.734
Ма, јес'.... дал'је могуће да неко ко обећава брзо и лако знање о тако комплексној материји, за мало јачу, али разумљиву цену, обзиром да се ипак о профитабилној вештини ради... није искрен?
 

gost 390446

Iskusan
Poruka
5.732
Ok, sada sam detaljnije pogledao: "Javascript Course Overview" za 2 meseca. To je tacno, dva meseca je dovoljno za Overview! Koliko da se povrsno upoznaju polaznici kursa.

Medjutim, ono sto me jako nervira, je sto ovi u instant skolama tvrde da ce od osobe koja nikada nije se bavila programiranjem u zivotu (ili je u skoli napisala tri programa u pascalu, za racunanje zbira, razlike i proizvoda dva broja) da napravi programere u odredjenom programskom/script jeziku! :evil:

Programiranje je, bre, zanat koji se uci jako dugo, najmanje godinu dana intenzivnog rada (ali bas intenzivnog - sto posto posvecenost) je potrebno da se stvori junior developer, koji moze da zapocne neku komercijalnu pricu. I, da, podrazumeva se da osoba ima odlicno znanje matematike, ili da je bar nekada bila odlicna iz matematike, i da ima minimum 120 IQ.
Svaki drugi sucaj bi zahtevao dosta vise vremena.
I to je sve, samo da se stvori junior, koji moze da negde u nekoj firmi zapocne strpljivo svoju pricu software developera, strpljivo i lagano....

Ove koji obecavaju programera da naprave za kratki period, treba pohapsiti!
 

Lakisa123

Početnik
Poruka
13
Cao, zanima me vase misljenje o VISER-u kao skoli.. Oduvek se interesujem za racunare i softfer.. ali uglavnom ciljam na programiranje.. Zato me zanima kakvi su profesori u ovoj skoli i kakvo je samo programiranje, je l moze lepo da se nauci i izadje iz skole sa puno vise iskustva ? (ciljam na smer NRT)
Pozdrav ! :bye:
 

Sabonis

Domaćin
Poruka
4.143
Nikad mi nista niste pomogli sto dovoljno govori o vama kakvi ste to programeri.Ovo vam je sansa da se ispravite- dobio sam source code necega koji se sastoji iz više delova i svi su npr. .bas ili .pas i sad kako da to iskompajliram preko Basica odnosno Pascala?
 

gost 390446

Iskusan
Poruka
5.732
Nikad mi nista niste pomogli sto dovoljno govori o vama kakvi ste to programeri.Ovo vam je sansa da se ispravite- dobio sam source code necega koji se sastoji iz više delova i svi su npr. .bas ili .pas i sad kako da to iskompajliram preko Basica odnosno Pascala?
Zasto smatras da treba neko da resava tvoje probleme ovde? Godinu dana sam na krstarici, i aktivan na pdf-u programiranje, i ne secam se da si ikada ista pitao.

I ne ocekuj da ti neko da konacno resenje, ovo je forum, dobices smernice, a onda prati smernice i resi sam problem.
I smernice, bar one koje ja dajem ljudima ovde, uvek su univerzalne: rade za bilo koji programski jezik, bilo koju situaciju - to su globalna pravila koja treba da se znaju.
Sve ostalo su nijanse koje sam usput treba da skapiras - i tako postanes developer.

@pitanje:
Prvi nacin:
1. Da bi kompajlirao odredjeni source code, nebitno u kojem programskom jeziku je pisan, treba da imas instaliran na svom racunaru kompajler za taj programski jezik.
2. Treba da pronadjes koji od fajlova sadrzi, takozvanu, Main() funkciju, glavnu ulaznu funkciju u program.
3. Obicno postoji odredjena konzolna aplikacija, koju pokrenes, navigiras kroz filesystem do svog zeljenog source-coda, i otkucas odredjenu komandu kojom ces pokrenuti kompajliranje. Prilikom komande za kompajliranje, moraces da navedes ime fajla koji sadrzi Main() funkciju - jer odatle sve krece, i kompajliranje i izvrsavanje.
4. Obicno, preko te iste konzolne aplikacije, ces moci nakon kompajliranja, da zadas komandu i za pokretanje programa.

Drugi nacin:
Skoro svaki programski jezik ima napravljeno neko lepo visual-okruzenje (IDE), pa ako volis vise da radis tako nego u konzoli, onda pronadji za svoj programski jezik neko besplatno okruzenje (mozes i krekovano, kako ti volja), downloaduj i otvori te fajlove i kompajliraj ih. Moguce je da ces morati da kreiras empty projekat, pa da importujes te fajlove, i onda da pokrenes kompajliranje.

To su ti osnovni principi. Sad dalje, guraj sam.
 

miki208

Ističe se
Moderator
Poruka
2.842
Videli da vise ne pali kad dodju i traze sve na gotovo, pa im je sad taktika da pokusaju da ospore nase vestine (tako sto ce reci kakvi smo mi programeri ako ne znamo to sto pita), i onda ocekuju da cemo mi poleteti da se dokazujemo, i resicemo im problem.

EDIT:
Nego, da se manemo corava posla. Evo jedan mali problem za razmisljanje:

Dat je niz od n celobrojnih neoznacenih elemenata. Svi elementi osim jednog imaju svog para. Konstruisati algoritam linearne slozenosti za pronalazenje tog elementa bez para. Niz naravno nije sortiran. Algoritam treba da radi u mestu, odnosno prostorna slozenost je O(1).

Primer: za niz [3, 6, 8, 6, 9, 3, 8], algoritam vraca 9.
Resenje nije komplikovano, ali priznajem da nisam siguran da li bih dosao do toga samostalno.
Poprilicno sam se isfrustrirao kad sam video resenje :D
 
Poslednja izmena:

bmaxa

Aktivan član
Poruka
1.370
Evo u nimu. Resenje je prosto. Samo brises duplikate iz hash tabele. Hash tabela ima kompleksnost upita O(1) konstantna kompleksnost, tako da je algoritam O(n) (linearna komplesknost), posto bar jednom moras da prodjes ceo niz.
############################################################
import Tables
proc solve[T](data:seq[T]):T =
__if data.len == 0 : raise newException(Exception,"data len is zero")
__if data.len == 1 : return data[0]
__var tmp = initTable[T,int]()
__for i in 0..data.high :
____tmp.mgetOrPut(data,0) += 1
____if tmp[data] >1 :
______tmp.del(data)
__for i in tmp.keys :
____return i
let input = @[3, 6, 8, 6, 9, 3, 8]
echo solve(input)

edit: ne znam kako da ubacim indentaciju, space-ove mi pojede pa ne izgleda kako bih hteo ;(
_ je space. nim je kao python, indentacija je bitna
 
Poslednja izmena:

miki208

Ističe se
Moderator
Poruka
2.842
Sto se tice vremenske slozenosti, jasno je da ce biti linearna, ali je prostorna slozenost i dalje problem.
Resenje mora da ima prostornu slozenost O(1), a hash tabela ce imati otprilike O(b - a), gde su a i b opsezi brojeva u nizu. Moze se desiti da ima i manje, ili vise, sve zavisi od same implementacije mape, ali u svakom slucaju prostorna slozenost nece biti konstantna, vec ce na neki nacin biti zavisna od ulaza :)

Postoji resenje linearne slozenosti koje ima konstantnu prostornu slozenost. :)
 
Poslednja izmena:

bmaxa

Aktivan član
Poruka
1.370
"a hash tabela ce imati otprilike O(b - a), gde su a i b opsezi brojeva u nizu"

Ma jok. Upit u hash tabelu uopste ne zavisi od velicine niza. Da je tako upit bi bio O(n) a ne O(1). Hash tabela ti je prosti niz koji mapira hash f-ja u indeks ;)

edit:
samo jos pitanje: to tvoje resenje ne zavisi od tipa niza? Tj radi za stringove i bilo kakve objekte koje imaju definisanu operaciju jednakosti? Jer ovo moje resenje radi upravo za bilo koji tip ;)
i jos jedna stvar, na sta mislis kad kazes `prostorna slozenost O(1)`, to prvi put sad vidim? Big O oznacava kompleksnost operacija, to nikako ne mogu da povezem sa prostorom ;p
edit2:U stvari mislim da sad kapiram na sta si mislio ;) Ti u stvari zelis da se pronadje broj, tako da se ne koristi nikakav dodatni niz sa strane, vec da se operacije izvedu nad datim nizom,
sa eventualnim koriscenjem prostih varijabli ;)? Jel to?
 
Poslednja izmena:

miki208

Ističe se
Moderator
Poruka
2.842
E upravo tako :) Znam da je upit konstantan - u pogledu vremena (uglavnom, sto zavisi od izbora hash funkcije i razresavanja kolizije prilikom inserta, u opstem slucaju), ali memorija koju zauzima hash za odredjeni niz nije konstantna :)
Dodatni prostor mora da bude konstantan, nikako ne sme da zavisi od ulaza :)

A sto se tice big O, moze da se odnosi i na asimptotsku vremensku i na prostornu slozenost, to je matematicka notacija :)

Zaboravio sam da napomenem da su elementi iskljucivo celobrojni (unsigned npr), to sam nekako podrazumevao zbog test primera koji sam naveo, pa sam zaboravio, trebalo je da naglasim, izvinjavam se :D
Recimo da je ta cinjenica kljucna za dolazak do resenja :D

Uzgred, uopste nevezano za ovaj zadatak, da li ste znali da rekurzivno resenje ne moze da ima prostornu slozenost O(1)? :)
Osim ukoliko se ne radi o repnoj (tail) rekurziji koja moze biti optimizovana.
 
Poslednja izmena:

bmaxa

Aktivan član
Poruka
1.370
"A sto se tice big O, moze da se odnosi i na asimptotsku vremensku i na prostornu slozenost, to je matematicka notacija "

Heh, do sad nikad nisam video da Big O oznacava prostornu. One learns something new every day ;)

"Zaboravio sam da napomenem da su elementi iskljucivo celobrojni (unsigned npr), "

To sam i pretpostavio, jer ne vidim resenje kako si opisao inace ;)

"Uzgred, uopste nevezano za ovaj zadatak, da li ste znali da rekurzivno resenje ne moze da ima prostornu slozenost O(1)? "

Rekurzija ,ukoliko ne moze da se pretvori u petlju, svakako zahteva bar return adresu na steku ;)
 

bmaxa

Aktivan član
Poruka
1.370
I posle jos dva sata sam konacno resio ;)
Stos je u tome da se ponavlja tacno dva puta ;)
Radi se u sumi ali kojoj? Isprobavao sam sve moguce i nemoguce sume i jednacine i na kraju mi pade na pamet da operacija koja ponistava duplikate u sumi je xor ;)
Znaci radi se o xor sumi nad datim nizom...
############################################
proc solve(data:seq[int]):int =
__if data.len == 0 : raise newException(Exception,"data len is zero")
__if data.len == 1 : return data[0]
__result = data[0]
__for v in 1..data.high :
____result = result xor data[v]
var input = @[30,6,8,1,4,30,745,8,4,1,6]
echo solve(input)
 

bmaxa

Aktivan član
Poruka
1.370
Ajoj nemam sad vremena, probacu preko vikenda ;)

edit:
1. da li elementi mogu biti negativni? pretpostavljam onda da je broj predtsavljen u drugom komplementu?
2. da li se elementi mogu ponavljati?
 
Poslednja izmena:
Top