C
Strana 1 od 2 12 PoslednjaPoslednja
Prikazujem rezultate 1 do 25 od 43

Tema: C

  1. #1
    Obećava
    Učlanjen
    20.02.2004.
    Lokacija
    Beograd
    Poruke
    88
    Reputaciona moć
    51

    Podrazumevano C

    Ovo nek bude forum za pomoc ljudima koji se bave programiranjem u C-u,kao ja npr.sada.
    Moje prvo pitanje je kod konverzije za sta sluze %%.kapiram kad se koristi % pa tip konverzije,ali zasta sluze 2 %.I jos jedno pitanje ono sto se zove lvrednost sta to tacno predstavlja.Ja umem da je prepoznam,ali nisam bas sigurna da bih mogla da je definisem?
    A,da imam i jos jedno pitanje za realne tipove double,float i long double kako da znam koji kad da koristim,tj.kad da koristim double,kada float a kada long double(isto ovo vazi i za cele brojeve tj.kada se koristi samo int kada long int,a kada short int)

    Unapred hvala



  2. #2
    Veoma poznat
    Učlanjen
    07.12.2003.
    Lokacija
    bg
    Poruke
    11.980
    Reputaciona moć
    0

    Podrazumevano Re: C

    e ovo pre ne znam...a ovo posle: to utiche na opseg tvojih brojeva, tj koliko reci zauzima koji tip
    npr short int je 1B, long int je 3B (na primer)
    to ti utice na opseg brojeva (osam bitova pa vidi

  3. #3
    Primećen član
    Učlanjen
    04.03.2004.
    Lokacija
    UK
    Poruke
    558
    Reputaciona moć
    56

    Podrazumevano

    - %% sluzhi, jednostavno, da bi mogla da prikazhesh i taj znak pri ispisu
    - lVrednost ne morash da "prepoznash" - prepoznace je kompajler umesto tebe kad neshto zabrljash, odnosno kad kompletan izraz ne vraca vrednost koja se mozhe dodeliti bilo chemu
    - Koji tip da koristish zavisi iskljuchivo od toga shta ti treba. float ima mnogo manju preciznost od double tipa, ali je brzhi i "kraci". Na "long" slobodno zaboravi, jer nema velike praktichne primene (mpr. int i long su ista stvar na danashnjim kompajlerima za Win, jedino shto prema vazhecem standardu long garantuje 4 bajta duzhine, dok je int promenljive duzhine i zavisi od platforme). "short int" je 16-bitni celobrojni tip (dva bajta).

  4. #4
    Guest

    Podrazumevano

    da slozili smo se...
    lvalue bi bilo recimo nesto sto moze da dodje sa leve strane "=" znaci tome mozes da dodelis neku vrednost.

    int a; a je lvalue
    a-- = 10 (jeste lvalue - dodelis a 10 pa povecas)
    --a = 10 (ne moze jer ti povecas pa dodas..uf ne znam kako ali nekako mi je jasno)

    da li je ovo zadnje ok?

  5. #5
    Guest

    Podrazumevano

    a-- = 10 : a = (a=10) - 1
    --a = 10 : (a-1) = 10

    ako sam u pravu ??

  6. #6
    Obećava
    Učlanjen
    20.02.2004.
    Lokacija
    Beograd
    Poruke
    88
    Reputaciona moć
    51

    Podrazumevano Hvala svima

    E,hvala svima na pomoci za sada(bice tu jos pitanja ,garant).
    Za Gosta:sto se tice toga kako prepoznajem da li je nesto lvrednost ili ne mislila sam na to da ako je nesto slovo(tj.promenljiva) onda je to lvrednost zato sto sam ga unapred definisala i odredila mu mesto u memoiji,a neki izraz npr.ne moze biti lvrednost jer mu jos nije odredjeno mesto u memoriji.
    Hm,tako sam to ja shvatila.Nadam se da je to dobar rezon.

    Pozdrav

  7. #7
    Obećava
    Učlanjen
    20.02.2004.
    Lokacija
    Beograd
    Poruke
    88
    Reputaciona moć
    51

    Podrazumevano

    i ako sto rekoh evo mene u najskorije vreme sa novim pitanjcima.
    Pa da se o'ma bacimo na posao :-)
    E,'vako,ovog puta sam skupila vise pitanja pa cu da ih ispisem sve u jednoj poruci.
    Prvo sta je bocni efekat( cesto se spominje,a ja mu bas ne vidim neku prakticnu vrednost,pa me zato interesuje sta je i koja mu je svrha)
    Drugo:kod funkcije rand pominje se konstanta RAnd_max i kaze se da je vrednost funkcije rand pseudoslucajan broj sa ravnomernom raspodelom u opsegu [o,Rand_max].prvo ova recenica mi nije jasna(kakav pseudoslucajan broj),a onda mi nije jasno ta konstanta Rand_max kako se ona ustvari koristi)
    Trece za operacije sa bitovima tj.shiftovanje << i >> ovde mi nije jasno kako se vrsi shiftovanje u desno kod signed(tj.oznacenih)
    E a sad evo par primera koje ne mogu da resim za logicke operacije i rad sa bitovima 0xff56>>4(treba da se dobije 0xfff5,kako?)
    e,sad kod ovog primera sa logickim kako da znam da li je rezultat 1 ili 0 primeri:0x1234 i 022222&&055555
    Da,u predjasnjoj poruci zaboravi da pitam sta se podrazumeva pod pojmom 1 struka,2-struka i vise stuka tacnost?

    I evo za kraj 1 zadacic koji uopste ne kapiram,tj.ne kapiram princip ,a glasi:Vreme se predstavlja u obliku godine,meseca,dana,sata i minuta..Na c-u sasataviti program za pakovanje i obrnuti proces raspakivanja podataka o vremenu u jednu 32-bitnu celobrojnu promenljivu(Hm,prvo mi sama definicija tog pojma pakovanje i raspakiivanje vremena(naravno po bitovima)nije jasna)

    Eto,toliko od mene ovpg puta.
    Hvala!

    Pozdrav
    Jeki

  8. #8
    Guest

    Podrazumevano

    Pa bocni efekat je kada se nesto sa strane uradi u samom izrazu. Primer
    c=a + b++;
    gde je c=a+b sam izraz, a bozni efekat tog izraza je da se b povecao za jedan.

    Pa pseudoslucajan broj je "slucajni" broj koji se dobije pozivom funkcije. Nije u pitanju cisti slucajan broj jer ako napises program koji poziva 5 puta slucajan broj, svaki put kada pozoves program dobices 5 istih brojeva. Pa da bi dobila pravu slucajnonts onda tu sluzi funkcija randomize koja podesi koji"set" slucjnih brojeva zelis. Medjutim i tu dobijas istu pricu jer za isti vrednost randomize funkcije, slucajne vrednosti ce biti iste. Pa se u praksi za nazovi potupunu slucajnost koristi kao argument za randomize recimo vreme.

    2.
    In Numerical Recipes in C: The Art of Scientific Computing (William H.
    Press, Brian P. Flannery, Saul A. Teukolsky, William T. Vetterling; New
    York: Cambridge University Press, 1992 (2nd ed., p. 277)), the follow-
    ing comments are made:
    "If you want to generate a random integer between 1 and 10, you
    should always do it by using high-order bits, as in

    j=1+(int) (10.0*rand()/(RAND_MAX+1.0));

    and never by anything resembling

    j=1+(rand() % 10);

    (which uses lower-order bits)."


    A sto se tice zadatka pa to pakovanje je skracivanje zapisa, primera radi racnari mere vreme u sekundama on 1. januara 1970 godine. i taj zapis je dugacak 4 bajta. a ako bi ga pisala u nama citljivom obliku onda bi ta duzina bila mnogo duza od 4 bajta i u tom smislu se misli na pakovanje.
    unutar <time.h> imas funkciju time_t time(time_t *t); koja ti daje broj sekundi od 1.1.1970 i funkcije

    struct tm *gmtime(const time_t *timep);
    struct tm *gmtime_r(const time_t *timep, struct tm *result);

    struct tm *localtime(const time_t *timep);
    struct tm *localtime_r(const time_t *timep, struct tm *result);

    time_t mktime(struct tm *tm);

    koje rade konverzije;


    struct tm {
    int tm_sec; /* seconds */
    int tm_min; /* minutes */
    int tm_hour; /* hours */
    int tm_mday; /* day of the month */
    int tm_mon; /* month */
    int tm_year; /* year */
    int tm_wday; /* day of the week */
    int tm_yday; /* day in the year */
    int tm_isdst; /* daylight saving time */
    };

  9. #9
    Primećen član
    Učlanjen
    04.03.2004.
    Lokacija
    UK
    Poruke
    558
    Reputaciona moć
    56

    Podrazumevano

    OK, samo mali dodatak na prichu :

    > Shiftovanje u desno
    Kod signed brojeva, ako je najvishi bit "1" broj je negativan, tako ce se redom i popunjavarti, pri shiftovanju udesno, i vishi bitovi jedinicom, odnosno binarni negativni zapis ce biti ochuvan. Kod unsigned brojeva umesto jedinica, sa leve strane ulecu nule.

    > Pakovanje datuma
    Zadatak ti zahteva malo petljanja sa bitovima. Dakle, godinu mozhesh da spakujesh u odredjeni broj bitova zavisno odakle pochinjesh da brojish nultu godinu. Za mesece je dovoljno 4 bita (2^4=16), za dane 5 bitova (2^5=32), sate opet u 5 bitova, a minute u 6 (2^6=64). Ostaje ti 12 bitova za godinu (ali nakon shto odredish koja je godina nulta, naravno).
    Spakovano u 32 bita to je otprilike ovako :
    12 | 4 | 5 | 5 | 6 <- 0-ti bit
    G | D | M | S | Min

    Evo primera kako izvuci Sate ("time" je ona "spakovana" varijabla):

    unsigned sat =
    (time & 11111000000) >> 6;
    napisano u binarnom obliku da bi lakshe videla relaciju

    - a ovako upisati sate :

    time = time | (sati << 6);

    Sve ovo mozhe i mnogo lakshe uz bit-field, ali to je vec druga pricha

  10. #10
    Početnik
    Učlanjen
    19.05.2004.
    Poruke
    12
    Reputaciona moć
    0

    Podrazumevano

    Moze li neko d ami objasni algoritam selection i insertion sorta(tj.sortiranja)i da mi napisete kako se to izvodi u C-u?

    Hvala

    Marko

  11. #11
    Zainteresovan član
    Učlanjen
    09.12.2003.
    Lokacija
    beograd
    Poruke
    120
    Reputaciona moć
    53

    Podrazumevano

    Citat Original postavio markes
    Moze li neko d ami objasni algoritam selection i insertion sorta(tj.sortiranja)i da mi napisete kako se to izvodi u C-u?

    Hvala

    Marko
    ako nisam promeshao, jedan radi tako sto na pocetku birash (select) najveci/najmanji i dovodish ga na pravo mesto, pa onda od preostalih ponavljash isto to... a algoritam sa ubacivanjem radi tako sto na pocetku pretpostavljash da je niz uredjen pa onda ubacujesh element na pravo mesto, a obicno polazis od niza sa jednim clanom tako da je on uvek uredjen.... sad implementacija u sustini nije teska ako si ovo shvatio

  12. #12
    Obećava
    Učlanjen
    20.02.2004.
    Lokacija
    Beograd
    Poruke
    88
    Reputaciona moć
    51

    Podrazumevano

    e,vako tp it je fora sa uporedjivanjem(tj.sortiranje).

    imas ovaj deo obavezno

    For(i>1';i<n-1;i++)
    for(j>1;j<n;j++)
    (register int b=a[i],a[i]=a[j],a[j]=b)

    ja mislim da je to tako.bar tako je meni radilo.

    E,da samo kad smo kod toga nije mi jasno zasto i treba da bude manje od n-1?

    ako moze neko to da mi pojasni.

  13. #13
    Primećen član
    Učlanjen
    04.03.2004.
    Lokacija
    UK
    Poruke
    558
    Reputaciona moć
    56

    Podrazumevano

    E,da samo kad smo kod toga nije mi jasno zasto i treba da bude manje od n-1?
    Ako "odvrtish" algoritam na papiru, samo ce ti se kas'ti

    PS
    "register" keyword je veoma redak, ne videh ga u upotrebi odavno. Kompajleri su odaaavnooo postali veoma pametni, tako da takve stvari ne morash da optimizujesh za njih, sami ce oni to...

  14. #14
    Obećava
    Učlanjen
    20.02.2004.
    Lokacija
    Beograd
    Poruke
    88
    Reputaciona moć
    51

    Podrazumevano

    PA,dobro,ali ja obicno(dobro uvek)koristim tu modifikaciju da mu naglasim da ce postojati samo u tom delu,a da posle toga nestaje(i ako mi je potreban posle opet ispocetka mora da se stvori).Isto tako koristim i static za trajnu,tj.onu koju ce mi stalno ostati.
    Znam ja da je kompajler pametan,ali ipak......

    To ti je(bar tako ja to kapiram)na foru onoga kad vrsis izricitu konverziju u neki tip(ili ti kastovanje).Mislim kompajler ce ga prihvatiti i bez toga,ali mi u Visual-u prijavi warnings,a to ne podnosim :grrrrrr: :wink:

  15. #15
    Početnik
    Učlanjen
    19.05.2004.
    Poruke
    12
    Reputaciona moć
    0

    Podrazumevano

    Hvala vam na odgovorima i hvala na pomoci!

  16. #16
    Primećen član
    Učlanjen
    04.03.2004.
    Lokacija
    UK
    Poruke
    558
    Reputaciona moć
    56

    Podrazumevano

    ja obicno(dobro uvek)koristim tu modifikaciju da mu naglasim da ce postojati samo u tom delu,a da posle toga nestaje(i ako mi je potreban posle opet ispocetka mora da se stvori).
    "register" kao storage-type je preporuka, a ne naredba kompajleru
    Znachi, ako kompajler analizom koda utvrdi da nema slobodnih registara u datom trenutku zaboravice na tvoj zahtev.
    Ovo veoma zavisi i od platforme - npr. x86 je nevidjeni krsh od procesora sa jako malo, uglavnom specijalizovanih, registara, shto kompajleru jako otezhava posao. PPC (i svaki drugi RISC) imaju mnogo veci broj registara za opshtu namenu, tako da ce kompajler optimizovati onaj tvoj kod automatski (smeshtajuci brojache i privremene promenljive u registre automatski). Josh jednom, zaboravi na "register" u opshtem sluchaju. OK je za specifichne namene, ali forsirati to u nekom opshtem sluchaju je vishe losh programerski stil nego bilo koja dobit u brzini.

  17. #17
    Obećava
    Učlanjen
    20.02.2004.
    Lokacija
    Beograd
    Poruke
    88
    Reputaciona moć
    51

    Podrazumevano

    ok,hvala ti na savetu.
    Trudicu se da to izbegavam! :wink:

  18. #18
    Početnik
    Učlanjen
    19.05.2004.
    Poruke
    12
    Reputaciona moć
    0

    Podrazumevano

    Hm,evo mene ponovo.

    Nisam bas skapirao kako funkcionise kad se for,while i jos jedna naredba(ne mogu sad da se setim koja)kombinuju sa break,tj. to se zove sa izlazom u sredini(valjda)
    E,pa zna li neko da mi pojasni to malo kako funkcionise sa svim tim naredbama ponaosob i kad se koristi?

  19. #19
    Zainteresovan član
    Učlanjen
    09.12.2003.
    Lokacija
    beograd
    Poruke
    120
    Reputaciona moć
    53

    Podrazumevano

    Citat Original postavio markes
    Hm,evo mene ponovo.

    Nisam bas skapirao kako funkcionise kad se for,while i jos jedna naredba(ne mogu sad da se setim koja)kombinuju sa break,tj. to se zove sa izlazom u sredini(valjda)
    E,pa zna li neko da mi pojasni to malo kako funkcionise sa svim tim naredbama ponaosob i kad se koristi?
    znam da cete pljuvati po meni posle ovoga, ali bolje bi bilo da uzmesh knjigu za c (najbolje kerningen i rici) pa tamo pogledaj, jer ovo su zaista najelementarnija pitanja

  20. #20
    Početnik
    Učlanjen
    19.05.2004.
    Poruke
    12
    Reputaciona moć
    0

    Podrazumevano

    Bas ako je bitno koristim Krausovu knjigu i tamo ima tih algoritama,ali mi nije bilo jasni kako se koriste,pa sam zato pitao.
    Ako ne zelite da odgovorite u redu,ali ja bih mooooolio da mi neko odgovori.

    POzdrav

  21. #21
    Iskusan codemaker (avatar)
    Učlanjen
    05.04.2004.
    Lokacija
    Beograd
    Poruke
    6.416
    Reputaciona moć
    0

    Podrazumevano

    Citat Original postavio markes
    Bas ako je bitno koristim Krausovu knjigu i tamo ima tih algoritama,ali mi nije bilo jasni kako se koriste,pa sam zato pitao.
    Ako ne zelite da odgovorite u redu,ali ja bih mooooolio da mi neko odgovori.

    POzdrav
    Kernighan & Ritchie strana 62 i 63.
    Ne znam kako i iz Krausa ne vidis primer. Nema tu mnogo da se objasnjava a siguran sam da ima i u knjizi koju koristis primera.

    Izlaz "break" obezbedjuje rani izlaz iz "for", "while" i "do" petlje, kao i iz switch-a. Prouzrokuje da unutrasnja zatvorena petlja, ili "switch", bude pozvana trenutno.

    skraceni primer za "for"
    {
    for (n= 1; n<10,n++
    if "neki uslov"
    break /* prekida se petlja...
    return n
    }

    Pazljivije citaj, to su samo osnove osnovinih osnova... Nije tesko odgovoriti, ali ako vidim da se neko ne trydi vec zeli odmah sazvakano, nije uredu. To sa "break" si mogaoi skapirati sam za 15 sec...

  22. #22
    Primećen član
    Učlanjen
    24.11.2003.
    Poruke
    641
    Reputaciona moć
    58

    Podrazumevano

    da li neko ima u elektronskom formatu komande najcesce koriscenih biblioteka koje koristi gcc linux kompajler , po mogucnosti sa kratkim objasnjenjima znacenja.
    unapred hvala.

  23. #23
    Početnik
    Učlanjen
    19.05.2004.
    Poruke
    12
    Reputaciona moć
    0

    Podrazumevano

    Citat Original postavio codemaker
    Citat Original postavio markes
    Bas ako je bitno koristim Krausovu knjigu i tamo ima tih algoritama,ali mi nije bilo jasni kako se koriste,pa sam zato pitao.
    Ako ne zelite da odgovorite u redu,ali ja bih mooooolio da mi neko odgovori.

    POzdrav
    Kernighan & Ritchie strana 62 i 63.
    Ne znam kako i iz Krausa ne vidis primer. Nema tu mnogo da se objasnjava a siguran sam da ima i u knjizi koju koristis primera.

    Izlaz "break" obezbedjuje rani izlaz iz "for", "while" i "do" petlje, kao i iz switch-a. Prouzrokuje da unutrasnja zatvorena petlja, ili "switch", bude pozvana trenutno.

    skraceni primer za "for"
    {
    for (n= 1; n<10,n++
    if "neki uslov"
    break /* prekida se petlja...
    return n
    }

    Pazljivije citaj, to su samo osnove osnovinih osnova... Nije tesko odgovoriti, ali ako vidim da se neko ne trydi vec zeli odmah sazvakano, nije uredu. To sa "break" si mogaoi skapirati sam za 15 sec...
    Brate ako hoces da kazes da sam glup,ok,ali ja stvarno to nisam skapirao.I ne,nisam glup.

    Hvala ti sto si mi odgovorio!

  24. #24
    Iskusan codemaker (avatar)
    Učlanjen
    05.04.2004.
    Lokacija
    Beograd
    Poruke
    6.416
    Reputaciona moć
    0

    Podrazumevano

    Pazljivije citaj, to su samo osnove osnovinih osnova... Nije tesko odgovoriti, ali ako vidim da se neko ne trydi vec zeli odmah sazvakano, nije uredu. To sa "break" si mogaoi skapirati sam za 15 sec...
    Brate ako hoces da kazes da sam glup,ok,ali ja stvarno to nisam skapirao.I ne,nisam glup.
    Hvala ti sto si mi odgovorio!
    Pa zasto bih mislio da si glup? Niko se nije naucen rodio. Zeleo sam samo da kazem, da mnogo puta treba i sam da se potrudis da skapiras sta se u knjizi kaze, a ne da pri prvom problemu trazis da ti neko sazvace. Pogotovo tako elementarne i veoma jasne stvari...
    Na pamet mi nepada da ti kazem da si glup, mislim da treba vise koncentracije, to je to.

  25. #25
    Obećava
    Učlanjen
    20.02.2004.
    Lokacija
    Beograd
    Poruke
    88
    Reputaciona moć
    51

    Podrazumevano

    e,evo i mene!

    Nije me bilo dugo,da ,da znam!
    Nadam se da vam nisam mnooogo nedostajala! :wink:

    Imam pitanjce u vezi sa funkcijama sa promenljivim brojem argumenata!
    Tj.va_start,va_arg,va_end,pok_arg,posl_arg?
    Sta one rade i kad ih koristim?
    I da sto se tice makroa,kako da ih povezem sa datotekama,tj.sa cinjenicom da naprimer f-ja getc se ostvaruje kao makro?Dok se fgetcda kazem normalno ostvaruje?
    Sta to ustvari znaci da se 'ostvaruje kao makro?'

Pravila za slanje poruka

  • Ne možete kreirati novu temu
  • Ne možete poslati odgovor
  • Ne možete dodati priloge
  • Ne možete prepraviti svoju poruku
  •