-
Re: Tečaj C-a za sve uzraste by cham3leon
Super, ali ima problem, dobijem ispisano samo zadnjih 300 redova, tj. od broja 9701 do 9999, plus pauza. Mislim, on sve ispiše, ali zadnjih 299 brojeva mi je jedino vidljivo, pa ih ne mogu sve obilježiti/selectati i kopirati. :(
Znaš li kako napraviti da taj printf ispisuje u file? Ili možda imaš neku drugu ideju? ^^
-
Re: Tečaj C-a za sve uzraste by cham3leon
Ah, nisam se uopće sjetio toga! Smislim nešto pa napravim sad začas.
-
Re: Tečaj C-a za sve uzraste by cham3leon
Čekaj, stani, ne moraš!
Evo, preko batcha (iz tvog Project1.exe fajla) sam izvukao sve. :D
http://www.2shared.com/document/7yFYe5or/save.html
Zahvaljujem ti. :)
Upravo si pridonio podzemnom svijetu virusa, jednog dana ćeš goriti u paklu s nama. :P
-
Re: Tečaj C-a za sve uzraste by cham3leon
Napravio sam ja upravo jednu modificiranu verziju i uploadao, ali onda ok. Ako ti slučajno bude trebalo, this.
-
Re: Tečaj C-a za sve uzraste by cham3leon
THX, trebati će. :)
Virusa nikad' dosta.
Pomoću ovoga što si napravio, pomoću IZArc-ovog DLL-a, pomoću WinRAR-ovog DLL-a, pomoću mog starog virusa koji u arhivi zauzima 72 KB-a, a otpakiran zauzima 1024 MB-a (veoma se brzo otpakirava; otkrili su ga i nazvali "Bomber") ću sada napraviti da kreira 9999 takvih po 1024 MB-a, tj. zauzeti će 10 240 000 MB-a (1 TB) po folderu i to ultra brzo jer se brzo otpakirava (cca 10 sekundi za 1 GB), puniti će disk i nakon što ga se obriše/uništi (kao infekciju, jel'), a 1024.DLL fajlovi se neće moći tako lako pronaći i obrisati. Tako ću opravdati ime kojem su ga nazvali.
Pravo ime mu je "1024" (1000 MB = 0,99 GB; 1024 MB = 1,00 GB), a ne "Bomber." :kill:
Ako netko hoće biti tester, neka se javi. :D
-
Re: Tečaj C-a za sve uzraste by cham3leon
Više ti ne pišem nikakve programe, pa makar ficleke od 10 linija koda kao ovaj.
-
Re: Tečaj C-a za sve uzraste by cham3leon
He, he, pa ja ću ti prodati foru da mi je za fax DZ. :P
Da imam program, ne bi mi bilo teško sklepati nešto i kompajlirati, a ovi online kompajleri u koje napišeš ili paste-aš code i kompajliraš da ti pošalje file kojeg spremiš ne funkcioniraju sa svim kodovima, npr. ovaj gore code neće kompajlirati iz nekih svojih fora.
Edit: Evo, napisao sam virusa, ima 260 139 linija koda (ili ti ga 10 000 × 26), tj. 11 MB-a koda, plus ostali fajlovi nešto sitno (0,5 MB). ^^
To je glavni virus, sada mogu izvoditi kerefeke i napraviti backup, worma da se množi, start-upera, itd., ali ne da mi se, ovakav trojan mi je dovoljan. ^^
-
Re: Tečaj C-a za sve uzraste by cham3leon
ajde c podjeli s nama source.. bas me zanima tih 11mb cistog koda.. ja kada sam radio na flash based mmou, radjen je preko godinu dana i imao sam svega 40 000 linija koda.. bas me zanima taj stil programiranja i kakva je to optimizacija ako ti za nesto tako jednostavno treba 250k linija djizus
-
Re: Tečaj C-a za sve uzraste by cham3leon
Ne znam sada gdje mi je, ali to ti je ograničenje batcha, za svaku particiju trebam napisati code (jednostavni c/p/e), pa da on vidi koje particije ima (i da ju odere), a koje nema (pa da ju preskoči), i svakako, batchne podržava kodove poput X+1=X, pa da se to stalno vrti. Napisao sam 10 000 × 26, jer postoji 26 particija, od toga za svaku particiju je 10 000 linija bilo, pa možeš to idjeti i iz "260 139" linija koda, u biti nije bilo toga puno, eventualno ako se sastoji od 50 linija koda (izuzevši 9999, plus c/p/e).
-
Re: Tečaj C-a za sve uzraste by cham3leon
a tek sam sad skuzio da je jezik dos :S to si moga puno jednostavnije i lakse napraviti u C++u
npr tamo ima podrska za dos (batch)
mogao si napraviti jednostavni loop
u kojem bi sa system("dos kod"); odradio dos dio, a loop bi odradio u C++u.. bilo bi max 11k linija koda. :P
edit : i nije x + 1 = x nego x = x + 1 :P
-
Re: Tečaj C-a za sve uzraste by cham3leon
Da. Ali skužio sam da dosta toga on ne podržava od batcha u C-u.
I nije DOS jezik, nego Batch, razlika je velika. :P
-
Re: Tečaj C-a za sve uzraste by cham3leon
a nezz nisam nikad radio u batchu..
-
Re: Tečaj C-a za sve uzraste by cham3leon
Kad probam ovaj kod u prvom postu uvijek pokazuje neku gresku
EDIT:nisam odabro console application sad je ok :D
-
Re: Tečaj C-a za sve uzraste by cham3leon
Posto mi je isteko edit,sry na dp-u,da pitam...
Pravim text based igru i zanima me kako da stavim ono da imaju opcije npr:
Raja te zove da igras lopte ti ces
1.pristati i igrati
2.ostati sjediti
nadam se da me kuzite
-
Re: Tečaj C-a za sve uzraste by cham3leon
objašnjeno ti je to na 2 strani tutoriala, sekcija grananje.
-
Re: Tečaj C-a za sve uzraste by cham3leon
Plus, kad imaš više od 2 ili 3 grane svakako treba koristiti select - case grananje, koje sam koliko vidim iz nekog razloga na 2. stranici threada nazvao "switch - case", ne znam točno otkud mi to, možda iz VB-a ili nečeg. Dakle nije switch nego select. Isprike.
-
Re: Tečaj C-a za sve uzraste by cham3leon
Da nisi možda switch case pokupio iz VHDL-a na Digitalnoj Logici?
-
Re: Tečaj C-a za sve uzraste by cham3leon
Teško jer taj VHDL nisam znao i neću znat, nije mi se dalo zajebavat s time, prošo sam i bez toga xD
Btw, krenut ću dalje uskoro sa tutorialom. Bio bi red.
-
Re: Tečaj C-a za sve uzraste by cham3leon
mozda switch-case ima neke veze s linuxom, jer su nas tako ucili switch case, ne select case.
-
Re: Tečaj C-a za sve uzraste by cham3leon
7. Pointeri (pokazivači)
E sad, ako ste svladali sve ovo do sada, možda mislite da je C jezik mačji kašalj, ali zato su tu pointeri da vas uvjere u suprotno :>
Naravno, malo pretjerujem, ali ovo je već nešto malo napredniji koncept u programiranju za koji obično treba naučiti razmišljati na jedan drukčiji način.
Prije svega moramo se malo upoznati sa načinima manipuliranja računalnom memorijom koje nam C nudi i osnovnim principima funkcioniranja iste. Kad kažem "memorija" mislim na primarnu ili radnu memoriju, a to su kao što većina vas zna oni keksići utaknuti u matičnu ploču. Naime, radna memorija za razliku od hard diska ne pohranjuje trajno podatke, već samo dok je pod naponom, odnosno dok računalo radi. Njena funkcija je da se u nju privremeno pohranjuju svi podaci koji su potrebni dok se izvodi neki program, a to znači da se svaka varijabla koju ste deklarirali smješta na određeno mjesto u memoriji tokom izvođenja vašeg programa i zauzima određeni prostor u njoj. Koliko mjesta će zauzeti zavisi o tipu varijable. Tako će znak, odnosno character varijabla zauzeti jedan bajt u memoriji, a integer 4 bajta. Svaki character i integer kojima se tako rezervira mjesto u memoriji dobit će adresu za svoj dio memorije (bez obzira koliko je bajta taj dio velik).
Pointer je naime varijabla, ali čiji je sadržaj adresa neke druge varijable. Zbunjeni? Evo slič'ca:
http://i.imgur.com/wp3ke.png
Imajte na umu da se pointer p ne razlikuje od obične varijable, i on ima neku adresu i sadržaj, ali taj sadržaj je adresa neke druge varijable tog tipa (pointer također mora biti određenog tipa podataka i potom može pokazivati samo na taj isti tip podataka; ako je character tip pokazuje samo na varijable koje zauzmu jedan bajt, a ne na one koji uzmu primjerice 4 bajta).
I da, možete potom stvoriti još jedan pointer koji će pokazivati na pointer p, pa onda još jedan pointer koji će pokazivati na taj pointer... Inception. Ali počnimo mi od početka.
Pointer jest varijabla, ali svejedno morate označiti da se radi o pointeru, a to ćete učiniti dodavanjem asteriska (*) ispred imena pointera:
Asterisk i ampersand (* , &) su dva operatora koja morate znati koristiti kad baratate s pointerima. Osim za deklaraciju, * će služiti u samom programu kad budemo htjeli iskoristiti ne sadržaj neke varijable, nego sadržaj druge varijable koja se nalazi na adresi sadržanoj u našoj varijabli. U ovom primjeru sa b i p u kojem p sadrži adresu od b, a b sadrži vrijednost 100, ako pozovemo ispis p, ispisat će se adresa varijable b, a ako pozovemo ispis *p, ispisat će se vrijednost 100.
& ispred varijable pak znači da umjesto sadržaja te varijable tražimo adresu, odnosno ako pozovemo ispis &b dobit ćemo rezultat 6, njegovu adresu.
Ispravan način da natjeramo p da pokazuje na b jest:
A ako hoćemo preko pokazivača p promijeniti b...
Slobodno probajte i igrajte se s tim.
Ovo zasad zvuči doista glupo, previše komplicirano i nepotrebno, ali je jedini način za rješavanje nekih dosta kompleksnijih zadataka, pa svaki iole ozbiljniji C programer mora poznavati aritmetiku pokazivača. Budući da nismo još daleko došli, jedini koristan primjer kojeg možete razumjeti jest uporaba pointera kod matrica i nizova.
Naime, ako se vratimo na prikaz memorije kao niza kvadratića, dvije varijable uopće ne moraju biti jedna do druge u memoriji, ali array (niz/polje) i matrica je uvijek "na kupu", odnosno članovi niza/matrice su uvijek jedan do drugoga. To znači da ako imamo pokazivač p koji pokazuje na nulti element nekog niza, ako ga povećamo za 1...
Code:
p = &niz[0];
p = p +1; // (može i p++;)
... pokazivat će nam na prvi element niza. Zapravo, svaki niz i matrica su pokazivači, ovaj sistem sa navođenjem željenog elementa niza u uglatim zagradama je tu za programera da mu malo olakša stvar.
Ne mogu se sjetiti nekog konkretnog zadatka vezanog za pokazivače a da opet nema nizove i matrice jer je to prejednostavno. Njihovu pravu funkciju ćemo vidjeti uskoro. Ipak, možete probati kako pointeri funkcioniraju, šetati s njima po nizovima i matricama i tako dalje.
NAPOMENA: Izgleda da je ono ipak switch case. Select je valjda u C# i sličnim programskim jezicima. Ispričavam se, nebrojeno puta mi se dogodilo da ne znam je li switch ili select :/
-
Re: Tečaj C-a za sve uzraste by cham3leon
koji epski ress, GG anyway, do continue
-
Re: Tečaj C-a za sve uzraste by cham3leon
Đizs Krajst :shock: Svaka cast xD
Nego,napravio sam nesto od txt based igre i kako da ja napravim .exe file od toga da prijatelji mogu skinuti i probati to?
-
Re: Tečaj C-a za sve uzraste by cham3leon
Nisam siguran, inače ne koristim DevC++, ali svakako prvo ono što si napisao mora biti dio nekog projekta. Kad napraviš projekt i dodaš u njega taj fajl koji si napisao (ako već nije u projektu), desni klik na projekt, properties i tamo na prvom tabu ti piše output file path - to je adresa za exe, vjerojatno ga napravi nakon compileanja.
-
Re: Tečaj C-a za sve uzraste by cham3leon
Samo mi se stvorilo u .exe fileu
Nego o5 ja sa pitanjima :D
u ovoj igri viewtopic.php?f=45&t=33610&start=0
Koji je kod da ako pogrijesi da ga vrati na to pitanje kao 2x2+2 =?,ti upises 8 da mu izbaci Sry,that's not correct,please try again!
druga stvar,kako da stavim(da se vratim na isti primjer),2x2+2=?,trazio sam na googleu ali on izbaci samo sa opcijama,to i ja znam napravit,nego zelim igru napraviti malo zabavnijom a ne da milijunaš napravim :D
-
Re: Tečaj C-a za sve uzraste by cham3leon
Misliš, da te pita unedogled to pitanje dok točno ne odgovoriš? Najbolje bi bilo staviti pitanje unutar beskonačne petlje (while (1)) i onda u slučaju točnog odgovora da se izvrši naredba break; koja prekida petlju.
ovo drugo sad ne razumijem, šta želiš napravit?
-
Re: Tečaj C-a za sve uzraste by cham3leon
Vako,recimo stavim pitanje Sudjelujete u trci. Pretjecete drugu osobu. Na kojemu ste Vi mjestu? HINT:Napisi brojem
I normalno on ce napisati 2
Ja sam tu zagonetku napisao ali kako nisam znao kako da stavim da moras brojem upisat ja sam samo 1.prvi,2.drugi pa mi igra ispadne ko milijunas :D
Znaci zelim da postavim pitanje koje on mora bez opcija odgovorit
-
Re: Tečaj C-a za sve uzraste by cham3leon
Pa... ne navedeš nijednu opciju nego napišeš taj broj ili riječ...
Aha, kužim, ti bi htio da korisnik može upisat neku riječ?
-
Re: Tečaj C-a za sve uzraste by cham3leon
Da to,evo u gamerovoj igri moras upisati www.google.com,takoSi ja zelim da rijec moras upisat
-
Re: Tečaj C-a za sve uzraste by cham3leon
A ono što ti treba su stringovi, koje sam eto trebao ubaciti odmah poslije redova i matrica, ali nije problem, to ću staviti kao iduću lekciju, valjda ću je sutra napisat...
-
Re: Tečaj C-a za sve uzraste by cham3leon
E onako, neznam gdje da pitam. Pretpostavljam da bi, kad pohvatam osnove u Qbasic-u, trebao prijeći na neki bolji programski jezik, što bi mi preporučili? Ovaj C+++ mi se čini dosta kompliciran, jel' ima nešto jednostavnije a ipak ne ograničeno kao Q?
-
Re: Tečaj C-a za sve uzraste by cham3leon
Pa, zavisi koliko daleko želiš ići. Korisna stvar u svim ozbiljnijim primjenama danas je objektno orijentirano programiranje koje funkcionira nešto drukčije od ovog proceduralnog koje možeš naučiti u Qbasicu ili C-u. Ako budem radio još jednu ovakvu temu, vjerojatno ću staviti neki objektno orijentirani jezik. Filozofija OO programiranja je nešto drukčija i bilo bi dobro da se vješto snalaziš u "običnim" proceduralnim jezicima.
C i C++ se čine komplicirani jer su to relativno niski programski jezici, baš se sad u ovoj zadnjoj mini-lekciji vidi da se u C-u često manipulira memorijom, ne samo u vidu pointera nego je ponekad potrebno i određenim naredbama alocirati (rezervirati) memorijski prostor, osloboditi ga, i tako dalje. Većina današnjih popularnijih jezika je na dosta višoj razini pa tako obično te stvari rade automatski, čak kod deklaracije varijabli nije potrebno definirati tip varijable, a ponekad nije potrebna ni sama deklaracija. Vjerojatno je najinteresantniji Python koji je sve popularniji i predviđa mu se svijetla budućnost, ali ako se ne varam i on je objektno orijentirani jezik tako da treba prvo pohvatati neke principe OO programiranja.
I inače, tkogod se misli zaozbiljno baviti programiranjem ne bi trebao stalno mlatiti po istom, nego konstantno učiti neke druge nove stvari i razviti vještinu snalaženja u novim jezicima i tehnologijama, što i nije baš toliko teško jer uz kvalitetan pristup internetu i Googleu imaš na raspolaganju stotine tutoriala i manuala.
-
Re: Tečaj C-a za sve uzraste by cham3leon
Oke, budem probao Python.
Ali evo recimo da bih htio napraviti oldskul textualnu igru, baziranu na komandama, što bi mi bilo najbolje za to?
-
Re: Tečaj C-a za sve uzraste by cham3leon
Koja je razlike izmedju printf i cout komande?
-
Re: Tečaj C-a za sve uzraste by cham3leon
Mislim da cout nije dio stdio.h libraryja kojeg ovdje koristimo. Ne znam da li se uopće može koristiti u C-u. Naime, stdio.h je za ovo što mi radimo osnovni library jer sadrži printf, scanf itd. Koja je točno razlika ne znam, jer koristim isključivo printf funkciju.
@Sonic: Za text based igre bi trebalo biti dobro bilo što. Ali pretpostavljam da je iz određenih razloga bolji OO pristup pa tu opet uskače taj Python. Što se tiče nekakvih grafičkih igara, za to je prvo potreban neki engine koji će to iscrtavati i tako dalje, ali to neće biti dio ovog tutoriala.
-
Re: Tečaj C-a za sve uzraste by cham3leon
Aha,evo gledam malo po googleu o txt based igrama i pronadje ovako nesto
Code:
cout <<"\tWelcome to my text based game!\n";
-
Re: Tečaj C-a za sve uzraste by cham3leon
Jednostavne txt based igre su dobar testni poligon za neke jednostavnije stvari koje smo obradili, ali ako se interesirate za pravljenje igara, morat ćete se dobro strpiti, jer ovo su tek osnove koje će trebati primjeniti negdje. Volio bih jednom napraviti i tutorial za neki engine ili python igre, ali nažalost nisam dovoljno iskusan u tom polju, nije to baš u mojem spektru interesa.
-
Re: Tečaj C-a za sve uzraste by cham3leon
zar nije cout za C++ sto je printf za C?
-
Re: Tečaj C-a za sve uzraste by cham3leon
Vjerojatno. Nisam radio u C++ tako da ne znam.
-
Re: Tečaj C-a za sve uzraste by cham3leon
= Citat =:
Izvorno postao Gu$ht3r
zar nije cout za C++ sto je printf za C?
Moglo bi se reći. Oba služe za ispis na standardni izlaz, ali ispod haube rade dosta drugačije.
-
Re: Tečaj C-a za sve uzraste by cham3leon
Meni je najveci prolem kreativnost kako bi napravio nesto dobro.
Nikad nisam imao smisla za mastu da napravim nesto kreativno.
Sad igru krenem,super pocetak i zastanem jer mi ponestane ideja :D a inace sam vise VL nego RL tip :D draza mi je fantazija i tako...