Forum Sveta kompjutera

Nazad   Forum Sveta kompjutera > Test Run > Programiranje

Programiranje Programski jezici, tehnike, alatke...

Odgovor
 
Alatke vezane za temu Vrste prikaza
Stara 8.3.2017, 18:26   #1
Milan1997
Veteran
 
Član od: 22.5.2011.
Lokacija: Novi Sad
Poruke: 497
Zahvalnice: 31
Zahvaljeno 42 puta na 34 poruka
Slanje poruke preko Skypea korisniku Milan1997
Određen forumom Mišljenje o C-u

Zdravo svima, počeo sam danas zvanično da učim C i deluje mi jako zanimljivo. Programirao sam u Pythonu i JS-u ali ovo je nešto sasvim novo. Pa sam hteo da čujem Vaša iskustva. Koliko C ima budućnost? Da li je primenljiv i šta se može sve raditi sa njim. Takođe literatura za učenje bi mi dobrodošla.
Hvala unapred!
Milan1997 je offline   Odgovor sa citatom ove poruke
Stara 8.3.2017, 19:03   #2
voodoo_
V.I.P. GNU/Linux
 
Avatar korisnika voodoo_
 
Član od: 1.11.2005.
Poruke: 11.166
Zahvalnice: 2.085
Zahvaljeno 4.923 puta na 2.859 poruka
Određen forumom Re: Mišljenje o C-u

Za programiranje na embedded platformama, i generalno za pisanje operativnih sistema i drajvera (npr. Linux i Windows), C je nezamenljiv. Za ostalo je previše naporan, u smislu da se održavanje glomaznog C koda pretvara u kuluk jer traži više pažnje i koncentracije nego jezici sa većim nivoom apstrakcije. Ali ako ništa, interfejs između C biblioteka i drugih jezika je koncizan i stabilan, što se ne bi moglo reći za npr. C++.

Od knjiga, jedna jedina posle koje stvarno možeš da postaneš dobar C programer je "C Programming: A Modern Approach", drugo izdanje

https://www.amazon.com/C-Programming.../dp/0393979504

Neko će ti možda preporučiti Kerigana i Ričija, ali uz dužno poštovanje autorima (koji su izmislili jezik), zastarela je i previše "školska".
voodoo_ je offline   Odgovor sa citatom ove poruke
Sledeći korisnik se zahvaljuje korisniku voodoo_ na korisnoj poruci:
Milan1997 (9.3.2017)
Stara 8.3.2017, 19:13   #3
enaB
Član
 
Član od: 1.12.2005.
Lokacija: Batajnica
Poruke: 184
Zahvalnice: 9
Zahvaljeno 42 puta na 32 poruka
Određen forumom Re: Mišljenje o C-u

Potražnja nije velika, ali je ponuda još manja pa nema mnogo konkurencije za posao jednom kad naučiš.
enaB je offline   Odgovor sa citatom ove poruke
Sledeći korisnik se zahvaljuje korisniku enaB na korisnoj poruci:
Milan1997 (9.3.2017)
Stara 9.3.2017, 0:56   #4
analayzer
Starosedelac
 
Član od: 2.6.2008.
Lokacija: Vršac
Poruke: 1.752
Zahvalnice: 92
Zahvaljeno 311 puta na 294 poruka
Određen forumom Re: Mišljenje o C-u

Jedina iz koje možeš naučiti c je Modern approach..... nemojmo preterivati baš sam je sada prelistao pdf..... Ima i drugih knjiga koje su i bolje. Stvar ukusa. Moja omiljena koju trenutno iščitavam je Deitelova How to program C. Ona mi najviše leži a imaš i C.Primer.Plus.6th.Edition, C Without Fear, 3rd Edition, Apress.Beginning.C.5th.Edition,itd.. Ako oćeš na Serbskom onda samo na kombib pa tamo pretraži.
analayzer je offline   Odgovor sa citatom ove poruke
Sledeći korisnik se zahvaljuje korisniku analayzer na korisnoj poruci:
Milan1997 (9.3.2017)
Stara 15.3.2017, 20:35   #5
NovaNada
Član
 
Član od: 13.3.2017.
Poruke: 55
Zahvalnice: 30
Zahvaljeno 3 puta na 3 poruka
Određen forumom Re: Mišljenje o C-u

Gospodo programeri, kako ste naučili da zadati problem predstavite kao algoritam? Na faksu se patim sa programiranjem. Nije mi problem da shvatim pokazivače, petlje, nizove liste teoretski, ali kada treba ispitni zadatak da rešim, nikako ne mogu da smislim rešenje. Svi mi govore: "To se uči radom, samo rešavaj probleme i shvatićeš sam". Kako ja da znam da je moje rešenje dobro kada nemam sa čim da uporedim?
NovaNada je offline   Odgovor sa citatom ove poruke
Stara 15.3.2017, 22:26   #6
Teva
Starosedelac
 
Član od: 23.2.2006.
Lokacija: Tamo gde su kuće od čokolade i prozori od marmelade....
Poruke: 1.579
Zahvalnice: 195
Zahvaljeno 301 puta na 171 poruka
Određen forumom Re: Mišljenje o C-u

Odgovoriš na par vrlo jednostavnih pitanja:

Jel radi tačno?
Jel radi tačno i brzo za veliki ulaz?
Jel radi tačno i brzo za veliki ulaz i neko drugi može bez po muke da ga pročita?

E ako na sva tri odgovoriš potvrdno, dobro ti je. xD

Ja sam to učio na URMu. Stiče se iskustvom jer problem možeš da napadneš sa više tehnika, a ne mož da ih znaš ako ih ne vidiš negde. Tj. možeš al je bolno. Uglavnom ti je podeli pa vladaj, dobiješ problem razbiješ ga na niz manjih problema pa njih na niz još manjih problema dok ne dođeš do onog što znaš da rešiš i onda lagano rešavaš deo po deo dok ne dobiješ rešenje početnog problema.
Teva je offline   Odgovor sa citatom ove poruke
Stara 16.3.2017, 15:06   #7
analayzer
Starosedelac
 
Član od: 2.6.2008.
Lokacija: Vršac
Poruke: 1.752
Zahvalnice: 92
Zahvaljeno 311 puta na 294 poruka
Određen forumom Re: Mišljenje o C-u

Ja nešto mislim da treba probati od kraja odnosno kakav rezultat trebaš dobiti tim programom onda ti ostaje samo da štimuješ algoritme način da bi dobio traženi rezultat ako se ne varam.
analayzer je offline   Odgovor sa citatom ove poruke
Stara 16.3.2017, 21:07   #8
NovaNada
Član
 
Član od: 13.3.2017.
Poruke: 55
Zahvalnice: 30
Zahvaljeno 3 puta na 3 poruka
Određen forumom Re: Mišljenje o C-u

@analayzer
Zanimljivo, nisam do sada razmišljao da krenem od kraja, probaću taj metod.

@Teva
Daleko sam ja od drugog pitanja, mada se na početnim kursevima Programiranje 1 i 2 i neočekuju neki napredni algoritmi, već samo koliko-toliko optimizovano rešenje.
Rastavljanje na manje pa na manje probleme ću početi da primenjujem, verujem da će mi to pomoći.
NovaNada je offline   Odgovor sa citatom ove poruke
Stara 19.3.2017, 13:15   #9
Teva
Starosedelac
 
Član od: 23.2.2006.
Lokacija: Tamo gde su kuće od čokolade i prozori od marmelade....
Poruke: 1.579
Zahvalnice: 195
Zahvaljeno 301 puta na 171 poruka
Određen forumom Re: Mišljenje o C-u

Nije navedeno kolko je veliki ulaz Niko od tebe ne očekuje da na početku radiš sa ogromnim ulazom, al recimo ulaz reda veličina ~100k je sasvim okej. Čisto da vidiš razliku recimo između n^2 i n slozenosti. Pa kasnije kad postaneš bolji programer možeš da pređeš i na veći ulaz.

Dosta sam ljudi sreo koji ne obraćaju pažnju na to već su u fazonu, jel radi? Radi. Super ajmo dalje. Nije baš sve u tome.
Teva je offline   Odgovor sa citatom ove poruke
Stara 21.3.2017, 18:26   #10
NovaNada
Član
 
Član od: 13.3.2017.
Poruke: 55
Zahvalnice: 30
Zahvaljeno 3 puta na 3 poruka
Određen forumom Re: Mišljenje o C-u

Pogledaj ovde: http://rti.etf.bg.ac.rs/rti/ir1p2/rokovi.html kakve zadatke imam. Kasnije ću izučavati algoritme i strukture, sad bi trebalo nekako da savladam ove zadačiće.
Vama su verovatno smešni, ali ja neke i po par dana rešavam a neke nisam ni uspeo da rešim.
NovaNada je offline   Odgovor sa citatom ove poruke
Stara 23.3.2017, 19:46   #11
analayzer
Starosedelac
 
Član od: 2.6.2008.
Lokacija: Vršac
Poruke: 1.752
Zahvalnice: 92
Zahvaljeno 311 puta na 294 poruka
Određen forumom Re: Mišljenje o C-u

Eh, da je Bil Gates rešavao tvoje zadatke sada ne bi bilo ni Windowsa 10. Još bi bili na Unixu kao i tvoji profesori što su. Nije ni čudo što štrajkuju zbog male plate jer sa ovim "znanjem" ni ne mogu da zarade veću. Zarađuju oni stručnjaci koji prave Maju i 3DMax... ovako neće ti biti dovoljna dva oka za plakanje...
analayzer je offline   Odgovor sa citatom ove poruke
Stara 23.3.2017, 22:39   #12
voodoo_
V.I.P. GNU/Linux
 
Avatar korisnika voodoo_
 
Član od: 1.11.2005.
Poruke: 11.166
Zahvalnice: 2.085
Zahvaljeno 4.923 puta na 2.859 poruka
Određen forumom Re: Mišljenje o C-u

Pošto je Windows 10 baš ono golem tehnološki napredak u odnosu na Unix, a ne fundamentalno isti Windows NT kernel od pre 20 godina + GUI šminka.
voodoo_ je offline   Odgovor sa citatom ove poruke
Sledeći korisnik se zahvaljuje korisniku voodoo_ na korisnoj poruci:
NovaNada (23.3.2017)
Stara 24.3.2017, 5:51   #13
Remedy
Veteran
 
Član od: 5.11.2005.
Poruke: 826
Zahvalnice: 177
Zahvaljeno 199 puta na 154 poruka
Određen forumom Re: Mišljenje o C-u

Citat:
Teva kaže: Pregled poruke
Jel radi tačno i brzo za veliki ulaz?
Jel radi tačno i brzo za veliki ulaz i neko drugi može bez po muke da ga pročita?
Gde se u praksi postavlja granica između ova dva (pitanje svima, ne samo za Tevu)? Evo šta me navelo na pitanje. Radim nešto i došao sam do faze da je utegnuto i keširano sve što može, jedini način da se dalje ubrza (zbog velikog broja iteracija) je smanjenje broja poziva metoda. To onda dovodi do metoda koji ne mogu da stanu na ekran, preko 2 nivoa indentationa (da ne kažem uvlačenja )... Ali moglo bi da se prepolovi vreme izvršenja. U mom slučaju to nije neophodno (u pitanju su deseti delovi sekunde), ali viđao sam takav code, tj code koji je zbog brzine izvršenja nečitko pisan (autor bi čupao kosu da ga pitaju da nešto promeni posle par meseci). Meni je od brzine nekako važnije da bude čitko, a opet šta ako je situacija gde nije zgodno da korisnik čeka izvršenje.

Kad smo već kod C-a
Write in C

Poslednja ispravka: Remedy (24.3.2017 u 6:08)
Remedy je offline   Odgovor sa citatom ove poruke
Stara 26.3.2017, 12:15   #14
Teva
Starosedelac
 
Član od: 23.2.2006.
Lokacija: Tamo gde su kuće od čokolade i prozori od marmelade....
Poruke: 1.579
Zahvalnice: 195
Zahvaljeno 301 puta na 171 poruka
Određen forumom Re: Mišljenje o C-u

Imaš coding stilove koji propisuju šta se radi i kako se linija "lomi" ukoliko ne može da stane u propisan standard koji se koristi u projektu (80 il 120 karaktera).

U praksi veoma relativno. Uglavnom zavisi od projekta i od toga šta se traži. Negde ćeš morati da žrtvuješ čitljivost po cenu performansi, a negde obrnuto. Po meni je bitnije da to bude lepo dokumentovano od toga da bude "ružno" napisano a da radi ko munja.

U ostalim slučajevima gledaš da oba budu optimizovana. Da ne žrtvuješ toliko brzinu po cenu lepote i obrnuto.

Viđao sam po kodu čak i komentare tipa "Dont touch this, don't read this, you dont need this nightmare in your life." ili "Ugly hack" ili "Dont touch, if you really need to, please read following link" i moj favorit "If I spent 4 days of my life to write it, you can spend at least 2 to read it"


PS Postoji čak i takmičenje u pisanju nečitljivog C koda http://www.ioccc.org/

Citat:
analayzer kaže: Pregled poruke
Eh, da je Bil Gates rešavao tvoje zadatke sada ne bi bilo ni Windowsa 10. Još bi bili na Unixu kao i tvoji profesori što su. Nije ni čudo što štrajkuju zbog male plate jer sa ovim "znanjem" ni ne mogu da zarade veću. Zarađuju oni stručnjaci koji prave Maju i 3DMax... ovako neće ti biti dovoljna dva oka za plakanje...
Molim te nemoj.
Teva je offline   Odgovor sa citatom ove poruke
Sledećih 2 korisnika se zahvaljuje korisniku Teva na korisnoj poruci:
brano88 (26.3.2017), Remedy (26.3.2017)
Stara 26.3.2017, 18:41   #15
Remedy
Veteran
 
Član od: 5.11.2005.
Poruke: 826
Zahvalnice: 177
Zahvaljeno 199 puta na 154 poruka
Određen forumom Re: Mišljenje o C-u

Citat:
Teva kaže: Pregled poruke
Imaš coding stilove koji propisuju šta se radi i kako se linija "lomi" ukoliko ne može da stane u propisan standard koji se koristi u projektu (80 il 120 karaktera).
Naravno, ono što napisah da volim da mi metod stane na ekran, mislio sam po vertikali. Obično mi je to znak da se u okviru funkcije radi previše stvari, tj da treba da padne refactoting. Onda nema potrebe za komentarisanjem code-a (ne mislim na dokumentovanje), nego na one komentare unutar metoda, tipa "ovde se radi to i to"... E sad, ne može baš uvek.

Ovo drugo što si napisao, to je ono na šta sam mislio. Šta su ljudi sretali u praksi (nevezano za jezik) i sa kakvim opravdanjima/komentarima? Sad mi pada na pamet situacija gde su umesto rekurzivne funkcije udarili switch, pa onda zavisno od broja slučajeva ide i po 6-7 umetnutih for petlji. Znači kad vidiš sve te indexe i countere , ali dobije se na brzini.
Remedy je offline   Odgovor sa citatom ove poruke
Stara 27.3.2017, 16:00   #16
Aibo
Deo inventara foruma
 
Avatar korisnika Aibo
 
Član od: 30.6.2008.
Lokacija: Beograd
Poruke: 7.295
Zahvalnice: 993
Zahvaljeno 3.965 puta na 2.387 poruka
Određen forumom Re: Mišljenje o C-u

Citat:
NovaNada kaže: Pregled poruke
Pogledaj ovde: http://rti.etf.bg.ac.rs/rti/ir1p2/rokovi.html kakve zadatke imam. Kasnije ću izučavati algoritme i strukture, sad bi trebalo nekako da savladam ove zadačiće.
Vama su verovatno smešni, ali ja neke i po par dana rešavam a neke nisam ni uspeo da rešim.
I ja sam tako lomio glavu svojevremeno na programiranju, i čini mi se da ti je najveći problem ovde rasčlanjavanje problema na celine koje možeš da rešiš. Ako pokušavanje da postaviš petlje, funkcije... koji će odraditi sve što treba izaziva osećaj totalne izgubljenosti i nemoći (kao što se sećam da je meni radilo), onda prvo kreni od toga da ispuniš samo jedan od zahteva, pa onda sledeći... i kada imaš rešenje za sve zahteve pojedinačno onda probaj da smisliš najzgodniji način da ih iskombinuješ u funkcionalnu celinu.

Na kraju, posle mnogo truda i znoja ako rezultat nije zadovoljavajuć pitaj kolege kojima ide bolje, ili asistente... i verovatno će ti dati neki totalno prostiji način koga se ti nisi setio. Ali tako naučenu stvar više nikada ne zaboravljaš.

Disclaimer: Ja nisam programer i ovo je samo savet nekoga ko se na programiranju u C i C++ provlačio sa 8-icama, i imao iste takve muke kao ti. Bilo mi je čak i zanimljivo ponekad ali nikada lako i prirodno kada treba da pretočim ovako narodski objašnjen zadatak u program, pa mi je sve uvek išlo - što bi Deadpool reako - with maximum effort.
Aibo je offline   Odgovor sa citatom ove poruke
Sledeći korisnik se zahvaljuje korisniku Aibo na korisnoj poruci:
NovaNada (27.3.2017)
Stara 27.3.2017, 19:50   #17
Teva
Starosedelac
 
Član od: 23.2.2006.
Lokacija: Tamo gde su kuće od čokolade i prozori od marmelade....
Poruke: 1.579
Zahvalnice: 195
Zahvaljeno 301 puta na 171 poruka
Određen forumom Re: Mišljenje o C-u

Citat:
Remedy kaže: Pregled poruke
Naravno, ono što napisah da volim da mi metod stane na ekran, mislio sam po vertikali. Obično mi je to znak da se u okviru funkcije radi previše stvari, tj da treba da padne refactoting. Onda nema potrebe za komentarisanjem code-a (ne mislim na dokumentovanje), nego na one komentare unutar metoda, tipa "ovde se radi to i to"... E sad, ne može baš uvek.

Ovo drugo što si napisao, to je ono na šta sam mislio. Šta su ljudi sretali u praksi (nevezano za jezik) i sa kakvim opravdanjima/komentarima? Sad mi pada na pamet situacija gde su umesto rekurzivne funkcije udarili switch, pa onda zavisno od broja slučajeva ide i po 6-7 umetnutih for petlji. Znači kad vidiš sve te indexe i countere , ali dobije se na brzini.
I to se definiše po standardu, koliko funkcija sme da bude velika. Obično do 100 linija max. Preko toga već ne može da se održava.

Vidiš to je sad problem jer tu imaš loš dizajn čim ti tako možeš da optimizuješ brzinu izvršavanja. Znači radiš neki prenos po vrednosti negde gde ne bi morao, ili ako ti je rekurzija u pitanju, možeš da refaktorišeš tako da bude repna rekurzija (kad je rek poziv poslednji, onda se ne zadržava stek okvir nego se skače nazad pa se otvara novi).

U principu, u većini slučajeva ti si nešto mogao bolje da napišeš ili bolje da projektuješ sistem, čim vidiš da nešto banalno ubrzava stvari za mnogo.

Ako sam te dobro shvatio ti imaš slučaj gde imaš metode A i B i metoda B poziva metodu A 100 puta a kada telo metode A strpaš umesto poziva onda se sve izvrši duplo brže? Ovo nagoveštava da ti nešto kopiraš prilikom tih poziva a možda bi mogao i da prosleđuješ pokazivač. Sa druge strane ako ti algoritam zahteva kopije onda imaš i metode razvijanja rekurzije i pisanje rekurzivnog algoritma bez rekurzije.
Teva je offline   Odgovor sa citatom ove poruke
Sledeći korisnik se zahvaljuje korisniku Teva na korisnoj poruci:
Remedy (28.3.2017)
Stara 27.3.2017, 21:11   #18
NovaNada
Član
 
Član od: 13.3.2017.
Poruke: 55
Zahvalnice: 30
Zahvaljeno 3 puta na 3 poruka
Određen forumom Re: Mišljenje o C-u

Citat:
Aibo kaže: Pregled poruke
I ja sam tako lomio glavu svojevremeno na programiranju, i čini mi se da ti je najveći problem ovde rasčlanjavanje problema na celine koje možeš da rešiš. Ako pokušavanje da postaviš petlje, funkcije... koji će odraditi sve što treba izaziva osećaj totalne izgubljenosti i nemoći (kao što se sećam da je meni radilo), onda prvo kreni od toga da ispuniš samo jedan od zahteva, pa onda sledeći... i kada imaš rešenje za sve zahteve pojedinačno onda probaj da smisliš najzgodniji način da ih iskombinuješ u funkcionalnu celinu.

Na kraju, posle mnogo truda i znoja ako rezultat nije zadovoljavajuć pitaj kolege kojima ide bolje, ili asistente... i verovatno će ti dati neki totalno prostiji način koga se ti nisi setio. Ali tako naučenu stvar više nikada ne zaboravljaš.

Disclaimer: Ja nisam programer i ovo je samo savet nekoga ko se na programiranju u C i C++ provlačio sa 8-icama, i imao iste takve muke kao ti. Bilo mi je čak i zanimljivo ponekad ali nikada lako i prirodno kada treba da pretočim ovako narodski objašnjen zadatak u program, pa mi je sve uvek išlo - što bi Deadpool reako - with maximum effort.
Da, i ja sve nekako na mišiće, dok neke kolege potpuno intuitivno smišljaju rešenja.

Sad sam našao neki način da pkoušam da napišem program praveći što više funkcija. Tako lakše pratim program + neke stvari mogu da primenim u više zadataka.
NovaNada je offline   Odgovor sa citatom ove poruke
Stara 28.3.2017, 2:28   #19
Remedy
Veteran
 
Član od: 5.11.2005.
Poruke: 826
Zahvalnice: 177
Zahvaljeno 199 puta na 154 poruka
Određen forumom Re: Mišljenje o C-u

Bilo bi dobro da moderatori izvuku postove u novu temu o algoritmima. Imam utisak da pišem off-topic, iako tema od 5. posta više nije o C-u.

Citat:
Teva kaže: Pregled poruke
Vidiš to je sad problem jer tu imaš loš dizajn čim ti tako možeš da optimizuješ brzinu izvršavanja. Znači radiš neki prenos po vrednosti negde gde ne bi morao, ili ako ti je rekurzija u pitanju, možeš da refaktorišeš tako da bude repna rekurzija (kad je rek poziv poslednji, onda se ne zadržava stek okvir nego se skače nazad pa se otvara novi)...
Hvala za ovo, u pravu si. U pitanju je složeniji slučaj od onoga što si opisao (npr kada se pozivi B,C,D i E zamene telom, dobije se ~15% ubrzanja, ali bi to moglo da se uradi i u okviru B,C,D i E dalje, pod pretpostavkom da i tu imam propust, odatle onaj zaključak o prepolovljenom vremenu). Kompleksan je scenario, veliki broj iteracija (za brojač iteracija u najsloženijem slučaju trebao bi mi unsigned 32-bit int), koncentrisao sam se na tačnost i čitljivost, i sad kad sam ga ostavio da se "hladi" par dana i kad sam pročitao tvoj post tačno znam gde sam prosledio vrednosti, a ne moram (u moju odbranu, retko imam prilike da pišem ovakve stvari). Ta jedna rekurzija koju imam je već repna, u međuvremenu sam video da još jedan niz mogu da keširam.
Remedy je offline   Odgovor sa citatom ove poruke
Odgovor

Bookmarks sajtovi

Alatke vezane za temu
Vrste prikaza

Vaš status
Ne možete postavljati teme
Ne možete odgovarati na poruke
Ne možete slati priloge uz poruke
Ne možete prepravljati svoje poruke

BB kod: uključeno
Smajliji: uključeno
[IMG] kod: uključeno
HTML kod: isključeno


Slične teme
tema temu započeo forum Odgovora Poslednja poruka
Gejmeri, potrebno mišljenje za novi PC baltazar.vb ŠDK - Osnovne komponente 19 16.3.2013 20:45
Vaše mišljenje: lenovo g570 ili asus x54h-sx091 SGBG ŠDK - Prenosni računari 7 10.1.2012 21:57
ECS A770M-A - mišljenje GoranSTX Osnovne komponente 5 25.1.2008 17:38
Vaše mišljenje o sledećoj konfiguraciji? M1los Šta da kupim? 20 11.10.2007 10:03


Sva vremena su po Griniču +2 h. Sada je 1:02.


Powered by vBulletin® verzija 3.8.7
Copyright ©2000–2024, vBulletin Solutions, Inc.
Hosted by Beograd.com