![](/assets/vukajlija-8a1b5c1cfaa37915a8b4d51bf02b92cb0e9e1dd235e6e15aa94e201901a8c758.png)
"Slavna Vukajlija. Ima glupih stvari, ima bezveznih, ali ima i jako puno brilijantnih. Neću previše dužiti, samo odite tam pa vidite sami. Samo jedno upozorenje - ima ponešto napisano i na ćirilici (iako smatram da svako, ko kolko-tolko drži do opće kulture zna ćirilicu)."
Skodin blog | 04. Septembar, 2010.
Ma ok nego meni samo zbog ovog sto sam mu rekao da ce lakse naci posao sa tipa swift, pa i swiftui, android, flutter, kotlin..
dobro jbg, danas kao c programer neko sto naucio da programira u 30 prvo nece nikad naci poso, bas zbog ovih problema koji sam napisao u prethodnom postu ko primer, kojih imas 10000000 u C i C++, i zato se naravno i ne koriste cesto, a gde se koristi ti treba super iskusni programeri.
al kao nesto sto se uci, mislim da daje vrlo korisno iskustvo kako kompjuter radi, ako imas vremena da ucis. sto pomaze posle oko zajebanih problema u drugim programskim jezicima.
Ok, ko hoce da gleda kod nek ne gleda ono sto sam ovdje kopirao, jer je autoformatiranje Vukajlije sve pojebalo... Dakle, samo ono sto sam preko dropboxa serovao ima smisla, i na to mozete komentarisati.
Konkretno ova dva fajla:
https://www.dropbox.com/s/o5zld8unmh7iuu4/utrovacki.txt?dl=0
https://www.dropbox.com/s/sbj54qeanttxucv/grafik%20funkcije.txt?dl=0
Zasto C? Pa najvise zato sto se on radi u prvim sedmicama onog kursa CS50 za koji sam dobio odlicne preporuke, a uz to je besplatan.
Kontam nece skoditi... a naravno plan je da se predje na nesto modernije kasnije.
Sto se tice switcha, nisam koristio u onoj funkciji issamog zato sto se radi o nizu if statementa koji su nezavisni jedan od drugog... Zapravo moglo bi se to sve pisati i krace, ali bi onda bilo tipa
if (ovo || ono || onodruo || onotrece || onopeto || onodeseto)
E da ne bi sve to pisao tako u jednom redu, imam niz statementa. Result je na pocetku 0, a ako bilo koji od tih ifova bude tacan, result se mijenja na 1.
isto, koristi "tolower(str)" za proveravanje karaktera itd, i ovo za issamog, ili pisi hex brojke, ili jos bolje 'a' 'e' 'i' itd, ovako je necitljivo.
Nisam ovo zamislio kao neki production kod koji ce uvijek da radi besprekorno u svim uslovima. Ovo je cisto vjezba da napravim program koji pretvara rijec u utrovacki... pri normalnim unosima. Ali nije foolproof... ako neko unese rijec od 100 slova, program pada.
Sto se tice ovoga tolower, to sam mogao uraditi, dobra je preporuka...
Tipa ako neko unese rijec Pivo, rezultat ce biti uvozaPinje, a treba uvozapinje... ali nisam ni tu vodio racuna da bude sve 100% ispravno, bilo mi je bitno, hocu li uspijet postici utrovacki kako treba...
U pravu si i ovo za 'a' itd... mi smo prvo ucili kako se to provjerava na osnovu ASCII kodova, ali u sustini nepotrebno je, moglo se raditi i direktno sa slovima... a prethodno prebaciti sve u lowercase... Uglavnom to sam sinoc nabrzinu skarabudzio... al sve su primjedbe na mjestu.
Znam da ces mi reci "zasto me mrzis sto volim Seselja" ali stvarno bi trebao da izbacis i ovo "brojac" itd, veruj udje u naviku, bolje ispravi na vreme. Nisam hteo ko celt da te upucavam sad sa ovim AHA A STA SE DESAVA U OVOM SLUCAJU jer vidim da ti nije plan da pises bullet proof code ali makar stici te neke sitne dobre navike, tipa { u istom redu sa uslovom, razmak od 1 reda izmedju blokova koda, svi property na engleskom, kafa na 15 min itd
I odmah apliciraj negde i trazi veliku platu, odbice te ali da vezbas da budes bezobrazan. Trazi celtu da te vodi u Svicu i da ti nadje smestaj itd, pricaj ortacima kako mozes da hakujes instagram ribe na koju se loze ali neces jer nije ispravno
:D nisi ti lud Scouser...
al polako...
nemoj se braniti, dajemo ti drugarske savete
i to sto kazes...
samo treba ovo nastaviti na onoj temi... da ovu ne uzurpiramo
vidis, to je fora sa tim. nece. nece ni ako uneses 1000, ni 10000 u velikoj vecini slucajeva, sa x testova nece da da nikakvu gresku obradice rec i toliko.
osim kad se pogode uslovi da to alocira na kraju memorije, i onda dobijes seg fault gresku, koja te bar navodi na to sta se desilo, ili, cesce, ako alocira tvoj program nesto drugo odmah posle tog segmenta, gde ce scanf samo da nonsalantno prepise preko te memorije stagod da je uneseno, i onda da se desi error na nekom sasvim desetom mestu, u neko sasvim drugo vreme.
zato ti kazem, stavio si perfektan bag, ako hoces da das otkaz u firmi i da im ostavis najpodmukliji moguci poso da resavaju.
za bonus poene samo ne alociras brojkom, nego nekom promenljivom koja znas da je manje.
Stvarno jeste, evo sad sam isprobao... i radi i sa pozamasnim rijecima...
E sad, nisam siguran kako bi se to rijesilo... za integere je lako jer on ima fiksnu velicinu, ali string, moze da bude bilo koje velicine...
Znam da se moze implementirati neka funkcija koja alocira memoriju za string slovo po slovo zavisno od velicine stringa koji se unese, ali je prilicno komplikovano...
U pocetku smo na kursu koristili njihovu funkciju u okviru neke njihove biblioteke... a kasnije je receno da se ne treba na to vise oslanjati, vec ici sa scanf
evo koja je to funkcija
https://manual.cs50.io/3/get_string
ako ikada programiras u C-u, scanf nikada nemoj da pustis da cita nelimitirani string
scanf("%29s",rijec);
29 ti je maksimalni string sto mozes bezbedno da prihvatis, jer svaki string ima null karakter na kraju. odnosno, sad kad razmislim, mozda windows dodaje i /n/r sa konzole, tako da je dobra ideja da alociras jedno 3-4 bajta vise uvek.
ova sranja su razlog zasto se C vise nigde ne koristi osim u najbazicnijim kontrolerima, i za vezbu ovih stvari :)
pri cemu ni u sta ovo sto pricam nisam siguran, morao bi da guglam detalje kao i za sve u zivotu sto sam isprogramirao.
jeste tako
https://www.tutorialspoint.com/c_standard_library/c_function_scanf.htm
Dobro je ovo znati, dobra caka, znaci mogao sam sve probleme izbjeci samo dodavanjem broja ispred s... Hvala. Sad cu ovako raditi ubuduce...
Al eto, sto ti kazes, jest malo nezgodno... prvo moras lupiti koliko da alociras u mallocu, a onda opet moras u scanf ograniciti brojem, i to malo manjim od onog u mallocu.
sve to je logicno ako skapiras kako se memorija koristi, sta se upisuje za sta, kako se predstavlja string, sta je integer, float, array, pointer, sta je koliko bajta, itd.
nije lose da znas to, ne znam jel te uce. ali vazi ovo sto kaze skauzer, kad prodjes, ukapiras to, predjes na ucenje onog sa cim ces moci da pravis nesto. ali posle ovog ce biti malo lakse sutra, npr kad uzmes javaskript, pa imas funkciju sto sabira dva broja, pa saberes 2 i 3, i dobijes rezultat 23, da odmah provalis sta bi moglo da bude.
Radi se tu sve to sto si ti pomenuo, sve sam to vec presao. Mada uvijek nesto moze ostati malo nedoreceno. Ne moze pocetni kurs da pokreije bas sve detaljno.
Cak pravim i neku skriptu sam sebi u koju pisem najvaznije koncepte da ne zaboravim. Jer prije mi se znalo desiti da sam ucio neka sranja, pa izlapilo... Sad se cesto vracam na skriptu da se podsjetim nekih stvari, a onda bolje i pamtim.
https://youtu.be/FWvUkxWeIyY
Iskreno jedini razlozi zašto još uvek ostajem na forumu punom debila:
1. 99% su to ljudi od krvi i mesa
2. Mogu da nađem konkretne odgovore na konkretna pitanja
Donekle si u pravu
Postaje sve teže naći stvari na internetu a ne biti zatrpan masom affiliatea, .ru stranica, oglasa i sakatog machine translationa
jedini i glavni razlog ako ostajes negde gde mislis da su svi debili, jeste da si ti jos veci debil.
Ali ja ne mislim da su svi debili, debilu, zato i trpim debile zbog ovih što to nijesu, jel smo sad jasniji?