Programiranje u C++-u - pitanja i odgovori izdvojena tema

poruka: 7.283
|
čitano: 1.537.603
|
moderatori: Lazarus Long, XXX-Man, vincimus
+/- sve poruke
ravni prikaz
starije poruke gore
13 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

Hvala, imam racun na carnetu

12 godina
offline
Re: Programiranje u C++-u - pitanja i odgovori

Bjarne Stoustrup - The C++ Programming Language!

13 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

ovako, radim program za upis n ucenika u datoteku.. uz ime i prezime ide i prosjek ocjena i broj izostanaka, i trebam ispisati imena po abecedi, ja sam sve rijesio osim ovoga sortiranja po abecedi, jel moze netko rec kako cu to, bio bih veoma zahvalan kad bi mi napisao dio koda jer sutra moran predati seminarski a tu sam zapeo :?

One day, I looked up in the sky. A bird came by and shit into my eye. I didn't laugh. I didn't cry. I was just happy, that cows can't fly.
Moj PC  
0 0 hvala 0
16 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
majstorSZ kaže...

ovako, radim program za upis n ucenika u datoteku.. uz ime i prezime ide i prosjek ocjena i broj izostanaka, i trebam ispisati imena po abecedi, ja sam sve rijesio osim ovoga sortiranja po abecedi, jel moze netko rec kako cu to, bio bih veoma zahvalan kad bi mi napisao dio koda jer sutra moran predati seminarski a tu sam zapeo :?

Sort po imenu i prezimenu sam i ja neki dan pokušao napraviti, s tim da sam ja radio upis iz datoteke i ispis u stdout. Nisam završio pošto sam imao jedan problem.

 

Zamislio sam to tako da učitavam imena, uspoređujem ih s već učitanim imenima u petlji funkcijom strcmp koja daje -1 ako je niz "manji" po brojčanim ascii vrijednostima, 0 ako je jednak i 1 ako je "veći" po ascii-ju, te ih tako sortiram. Problem mi je bio što sam za sva imena koristio jedno polje tako da ih nisam mogao uspoređivati pravilno, a nisam vidio način da stavim imena u različita polja pošto je broj imena bio varijabilan.

 

Tako da i mene zanima rješenje :D

~~~ You know, half these gook whores are serving officers in the Vietcong. The other half have got TB. Be sure you only fuck the ones that cough. ~~~
Poruka je uređivana zadnji put pon 16.4.2012 12:33 (i_rambo_plache).
16 godina
offline
Programiranje u C++-u - pitanja i odgovori

Trebao bih neki dobar a relativno jednostavan (razumljiv) tutorial za višenitno programiranje u c++.

Ako netko zna neki dobar (bilo u pisanom ili video obliku), zamolio bih da mi da link ili nešto slično.

Prodajem RAGE za PS3: http://www.bug.hr/forum/topic/igre-accounti-igrama/prodaja-igra-rage-playstation-3/129629.aspx?page=0&jumpto=2529211&sort=asc&view=flat
Moj PC  
0 0 hvala 0
13 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
i_rambo_plache kaže...
...

Zamislio sam to tako da učitavam imena, uspoređujem ih s već učitanim imenima u petlji funkcijom strcmp koja daje -1 ako je niz "manji" po brojčanim ascii vrijednostima, 0 ako je jednak i 1 ako je "veći" po ascii-ju, te ih tako sortiram. Problem mi je bio što sam za sva imena koristio jedno polje tako da ih nisam mogao uspoređivati pravilno, a nisam vidio način da stavim imena u različita polja pošto je broj imena bio varijabilan.

Dinamički preko pokazivača alociraj polje točno one duljine koje ti treba te ga onda popuni imenima i sortiraj.

 

191x7 kaže...

Trebao bih neki dobar a relativno jednostavan (razumljiv) tutorial za višenitno programiranje u c++.

Ako netko zna neki dobar (bilo u pisanom ili video obliku), zamolio bih da mi da link ili nešto slično.

Za višenitno (multi-threading) programiranje nema podrške u standardnoj biblioteci već trebaš koristiti neke druge biblioteke poput boost, vcl i sl.

13 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
@i_rambo_place, i ja sam tako nesto pokusavao i nije mi radilo, upis je bio pomocu strukture u datoteku..
bio sam nasao i neku funkciju string.compare i isto nije tilo radit :!

u vezi lotetature, ima ona knjiga program c sa nekakvim narancama i prilicno je dobra, bar meni a imas tu negdi na forumu linkove sa litetaturom u pdf formatu, procackaj malo :)
One day, I looked up in the sky. A bird came by and shit into my eye. I didn't laugh. I didn't cry. I was just happy, that cows can't fly.
16 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
TracerCPP kaže...

Dinamički preko pokazivača alociraj polje točno one duljine koje ti treba te ga onda popuni imenima i sortiraj.

Nisam još učio dinamičku alokaciju... :D pitao bi ja i prije za pomoć, ali sam znao da je tu u igri vjerojatno nešto što ja još ne znam.

~~~ You know, half these gook whores are serving officers in the Vietcong. The other half have got TB. Be sure you only fuck the ones that cough. ~~~
13 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
dinamicka alokacija, jel to ono ftell, fseek?
One day, I looked up in the sky. A bird came by and shit into my eye. I didn't laugh. I didn't cry. I was just happy, that cows can't fly.
16 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
majstorSZ kaže...
dinamicka alokacija, jel to ono ftell, fseek?

To su funkcije :) Dinamička alokacija bi trebala biti ovo.

~~~ You know, half these gook whores are serving officers in the Vietcong. The other half have got TB. Be sure you only fuck the ones that cough. ~~~
12 godina
offline
Re: Programiranje u C++-u - pitanja i odgovori
majstorSZ kaže...
dinamicka alokacija, jel to ono ftell, fseek?

U tvojoj je glavi kupus! Zato što si učio prebrzo i predaleko. Vrati se na početak od varijabli, i polako.

Što se ftella i fseeka tiče, to su funkcije za rad sa dadotekama.
http://www.cplusplus.com/reference/clibrary/cstdio/ftell/

http://www.cplusplus.com/reference/clibrary/cstdio/fseek/

12 godina
offline
Re: Programiranje u C++-u - pitanja i odgovori
i_rambo_plache kaže...

To su funkcije :) Dinamička alokacija bi trebala biti ovo.

I alokacija se probitno implementirala preko funkcija malloc i realocirala pomoću realloc, a oslobađala pomoću free funkcijom.

U strukturno-proceduralnom programiranju sve su funkcije i strukture.

 

P.S u C-u i danas se alocira pomoću gore navedenih funkcija, tek u C++-u imaš mogućnost alocirati pomoću new i delete operatora.

Poruka je uređivana zadnji put pon 16.4.2012 16:57 (royalhero).
15 godina
offline
Re: Programiranje u C++-u - pitanja i odgovori

Malloc i realloc su iz C-a ,u C++-u možeš koristiti new i delete.

EDIT:Sad vidim da je kolega već gore napisao.

AC Milan - IL CLUB PIU' TITOLATO AL MONDO
Poruka je uređivana zadnji put pon 16.4.2012 17:19 (emerik).
13 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
ma nije kupus :)
iskreno, prvi put cujem pa sam napisao ftell i fseek pa kud puklo da puklo xD
A u c++ nisam otisao predaleko jer ne ucim samostalno vec u skoli po planu i programu, valjda oni znaju sta rade :D
One day, I looked up in the sky. A bird came by and shit into my eye. I didn't laugh. I didn't cry. I was just happy, that cows can't fly.
14 godina
offline
Re: Programiranje u C++-u - pitanja i odgovori
majstorSZ kaže...
ma nije kupus :)
iskreno, prvi put cujem pa sam napisao ftell i fseek pa kud puklo da puklo xD
A u c++ nisam otisao predaleko jer ne ucim samostalno vec u skoli po planu i programu, valjda oni znaju sta rade :D

Sumnjam da bas znaju sto rade, jer je skolski program jednostavno prespor i preslab. Ako se zanima programiranje onda moras puno vise raditi samostalno jer nije bas velika sansa da ces u srednjoj skoli u razredu nesto nauciti.

Twitter- @capttawish Linux/GNU live forever.
Poruka je uređivana zadnji put pon 16.4.2012 17:43 (captain_soap_McTawish).
12 godina
offline
Re: Programiranje u C++-u - pitanja i odgovori
captain_soap_McTawish kaže...

Sumnjam da bas znaju sto rade, jer je skolski program jednostavno prespor i preslab. Ako se zanima programiranje onda moras puno vise raditi samostalno jer nije bas velika sansa da ces u srednjoj skoli u razredu nesto nauciti.

Malo je reći. Jednostavno ni profesori nisu kompetentni, bolje bi predavali mi iz ove teme (osim Tracera, koji već predaje). Ali idemo u OffTopic...

14 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
i_rambo_plache kaže...
Problem mi je bio što sam za sva imena koristio jedno polje tako da ih nisam mogao uspoređivati pravilno, a nisam vidio način da stavim imena u različita polja pošto je broj imena bio varijabilan.

Imas vise rjesenja. Ili prealocirati polje koje ce biti mnogo vece od najveceg ocekivanog broja imena (sirov pristup), ili pomocu funkcije "realloc" mijenjati velicinu polja dinamicki, ili koristiti nekakav inteligentniji oblik pohrane podataka koji se lagano moze prosirivati (recimo vezana lista, ili c++ vektor).

 

Recimo da se odlucis na ovo prvo, i znas da nikad, ali bas nikad neces imati posla sa vise od 1000 imena, onda napravis nesto ovakvo:

 

staticka alokacija polja na stacku:

char *imena[1001]={NULL};

 

dinamicka alokacija polja na heapu:

char **imena=(char**)calloc(1001, sizeof(char*));

 

Time ces napraviti polje od 1001 pokazivaca koje ces odmah inicijalizirati na NULL

 

Evo kako bi to koristio u praksi:

 

#include <stdlib.h>
#include <stdio.h>

int main()
{
    //varijabla "tekst" je polje od 20 pokazivaca
    //inicijaliziranih na NULL
    char *tekst[20]={NULL};
    char spremnik[1000];
    int linija=0;
    FILE *fh;

    //otvorimo datoteku
    if (!(fh=fopen("test.txt", "r")))
    {
        printf("Datoteka \"test.txt\" ne moze biti otvorena!\n");
        return 1;
    }

    //procitamo sadrzaj
    while (!feof(fh) && linija<20)
    {
        fgets(spremnik, 999, fh);
        tekst[linija]=(char*)calloc(1, strlen(spremnik)+1);
        strcpy(tekst[linija], spremnik);
        linija++;
    }
   
    //zatvorimo datoteku
    fclose(fh);

    //ispisemo sadrzaj na ekran
    for (linija=0; tekst[linija]; linija++)
        printf("%s", tekst[linija]);

    //oslobodimo alociranu memoriju
    for (linija=0; tekst[linija]; linija++)
        free(tekst[linija]);

    return 0;
}

 

Problemi s ovim pristupom:

  • Ocigledno hardkodirano ogranicenje broja linija teksta.
  • Pretpostavka da ce najdulja linija teksta biti kraca od 1000 znakova (razumna pretpostavka, ali ipak umanjuje robusnost programa).
  • feof je prilicno sirov pristup za detekciju kraja datoteke, pa ce petlja recimo procitati i praznu liniju teksta na kraju (ako ju imas).
  • Svaka procitana linija u pravilu zavrsava newline znakom kojeg bi se mozda zelio rijesiti, pa bi ga trebalo nekako filtrirati.

 

My computer once beat me at chess, but we got even after a round of boxing.
13 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
slazem se sa tobom..
Istina, odosmo u offtopic, nego ima li itko da zna rijesenje bez te neke alokacije :D
One day, I looked up in the sky. A bird came by and shit into my eye. I didn't laugh. I didn't cry. I was just happy, that cows can't fly.
16 godina
offline
Re: Programiranje u C++-u - pitanja i odgovori
TracerCPP kaže...

 

191x7 kaže...

Trebao bih neki dobar a relativno jednostavan (razumljiv) tutorial za višenitno programiranje u c++.

Ako netko zna neki dobar (bilo u pisanom ili video obliku), zamolio bih da mi da link ili nešto slično.

Za višenitno (multi-threading) programiranje nema podrške u standardnoj biblioteci već trebaš koristiti neke druge biblioteke poput boost, vcl i sl.

Pa dobro, onda trebam neki tutorial za to. Radili smo višenitne aplikacije pod jednim kolegijem na faksu prije nekoliko godina, problem je što ne nađem više tu literaturu a trebao bih isprogramirati nešto višenitno.

Prodajem RAGE za PS3: http://www.bug.hr/forum/topic/igre-accounti-igrama/prodaja-igra-rage-playstation-3/129629.aspx?page=0&amp;amp;jumpto=2529211&amp;amp;sort=asc&amp;amp;view=flat
12 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

Imam mali problem doma sa microsoft visual studiom.

 

Kad kontrolirano pokrenem program (ctrl+f5) font u cmd.exe mi je premali i ne vidim sta pise, kad ga provam full screenat poveca se prozor al font ostaje isti. zna iko rjesenje?

 

EDIT: i btw zna li iko sta radi '!' kao matematicka naredba. Koliko sam ja svatia sve brojeve razlicite od nule pretvara u nulu, a nulu pretvara u 1?

Sometimes I feel like a prophet, misunderstood and under gun like a new disease disease disease
Poruka je uređivana zadnji put pon 16.4.2012 19:30 (cecenac).
Moj PC  
0 0 hvala 0
14 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
majstorSZ kaže...
Istina, odosmo u offtopic, nego ima li itko da zna rijesenje bez te neke alokacije :D

Pa tko je spominjao da tebi treba dinamicka alokacija memorije? Tebi treba obican bubble sort polja struktura.

 

Evo gle kako bih ja to recimo napravio:

 

#include <stdlib.h>
#include <stdio.h>

struct ucenik
{
    char ime[20];
    float prosjek;
    int izostanci;
};

int main()
{
    struct ucenik ucenici[4]={{"Marko", 4.2, 0},
                              {"Matej", 3.4, 3},
                              {"Ivan", 3.8, 5},
                              {"Luka", 4.3, 0}};
    struct ucenik temp;
    int n, i;

    //ovo je petlja koja sortira polje
    for (n=0; n<4; n++)
        for (i=0; i<3; i++)
            if (strcmp(ucenici[i].ime, ucenici[i+1].ime)>0)
            {
                temp=ucenici[i+1];
                ucenici[i+1]=ucenici[i];
                ucenici[i]=temp;
            }

    //ova petlja samo ispisuje sortirano polje na ekran
    for (n=0; n<4; n++)
    {
        printf("Ime: %s\n", ucenici[n].ime);
        printf("  Prosjek: %.02f\n", ucenici[n].prosjek);
        printf("  Izostanci: %d\n\n", ucenici[n].izostanci);
    }

    return 0;
}

Podatci su ovdje hardkodirani, ti prekroji da radi onako kako tebi treba.

My computer once beat me at chess, but we got even after a round of boxing.
15 godina
offline
Re: Programiranje u C++-u - pitanja i odgovori
cecenac kaže...

Imam mali problem doma sa microsoft visual studiom.

 

Kad kontrolirano pokrenem program (ctrl+f5) font u cmd.exe mi je premali i ne vidim sta pise, kad ga provam full screenat poveca se prozor al font ostaje isti. zna iko rjesenje?

 

EDIT: i btw zna li iko sta radi '!' kao matematicka naredba. Koliko sam ja svatia sve brojeve razlicite od nule pretvara u nulu, a nulu pretvara u 1?

Ako želiš povećat ekran.U CMD-u klikneš gore u traci desni tipku miša-properties-font i povećaš.

AC Milan - IL CLUB PIU' TITOLATO AL MONDO
14 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
191x7 kaže...

Pa dobro, onda trebam neki tutorial za to. Radili smo višenitne aplikacije pod jednim kolegijem na faksu prije nekoliko godina, problem je što ne nađem više tu literaturu a trebao bih isprogramirati nešto višenitno.

Zelis li putem Windows API-ja kreirati i kontrolirati niti, ili bi koristio nesto poput OpenMP?

 

cecenac kaže...
 EDIT: i btw zna li iko sta radi '!' kao matematicka naredba. Koliko sam ja svatia sve brojeve razlicite od nule pretvara u nulu, a nulu pretvara u 1?

"!" je takozvani logicki "not" operator.

 

To jest logicka negacija. Zamisli svugdje gdje pise taj usklicnik da pise "not" pa ce ti imati vise smisla kada citas. To bi ti tracer bolje znao objasniti :)

My computer once beat me at chess, but we got even after a round of boxing.
13 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
191x7 kaže...
TracerCPP kaže...

 

191x7 kaže...

Trebao bih neki dobar a relativno jednostavan (razumljiv) tutorial za višenitno programiranje u c++.

Ako netko zna neki dobar (bilo u pisanom ili video obliku), zamolio bih da mi da link ili nešto slično.

Za višenitno (multi-threading) programiranje nema podrške u standardnoj biblioteci već trebaš koristiti neke druge biblioteke poput boost, vcl i sl.

Pa dobro, onda trebam neki tutorial za to. Radili smo višenitne aplikacije pod jednim kolegijem na faksu prije nekoliko godina, problem je što ne nađem više tu literaturu a trebao bih isprogramirati nešto višenitno.

Kao što sam rekao, ako ćeš višenitno programiranje trebaš reći koju biblioteku/razvojno okruženje koristiš. VS i MFC, C++ Builder i VCL ili nešto treće?

16 godina
offline
Re: Programiranje u C++-u - pitanja i odgovori
TracerCPP kaže...

Kao što sam rekao, ako ćeš višenitno programiranje trebaš reći koju biblioteku/razvojno okruženje koristiš. VS i MFC, C++ Builder i VCL ili nešto treće?

MS Visual Studio 2008 na Windows 7 professional x64 sp1.

Prodajem RAGE za PS3: http://www.bug.hr/forum/topic/igre-accounti-igrama/prodaja-igra-rage-playstation-3/129629.aspx?page=0&amp;amp;jumpto=2529211&amp;amp;sort=asc&amp;amp;view=flat
13 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
191x7 kaže...
TracerCPP kaže...

Kao što sam rekao, ako ćeš višenitno programiranje trebaš reći koju biblioteku/razvojno okruženje koristiš. VS i MFC, C++ Builder i VCL ili nešto treće?

MS Visual Studio 2008 na Windows 7 professional x64 sp1.

Onda kopaj po googlu za MFC threading. Npr;

 

http://www.functionx.com/visualc/jamesprasanna/CWinThread.htm

12 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
rustweaver kaže...

"!" je takozvani logicki "not" operator.

 

To jest logicka negacija. Zamisli svugdje gdje pise taj usklicnik da pise "not" pa ce ti imati vise smisla kada citas. To bi ti tracer bolje znao objasniti :)

Nije mi jasno zasto C sve cijele brojeve razlicite od nula vidi ko 1 i onda ih '!' pretvara u nulu, a zasto samo nulu pretvara u jedinicu ?

 

Sometimes I feel like a prophet, misunderstood and under gun like a new disease disease disease
14 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
cecenac kaže...

Nije mi jasno zasto C sve cijele brojeve razlicite od nula vidi ko 1 i onda ih '!' pretvara u nulu, a zasto samo nulu pretvara u jedinicu ?

To trebas gledati na True/False nacin.

 

True ti se obicno povezuje sa brojem 1, dok se False obicno povezuje sa brojem 0. U C-u ti vrijedi nesto drukcije pravilo. Svaki broj razlicit od nule je True, dok je False nula.

 

Ako napises !2 ili !1 ili !bilo_koji_broj_a_da_nije_nula, C to vidi kao "not true", a ako nije "true" onda mora biti "false". Ili ako napises !0 onda ti je to "not false", a ako nije "false" onda mora biti "true" :D

My computer once beat me at chess, but we got even after a round of boxing.
13 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
rustweaver kaže...
majstorSZ kaže...
Istina, odosmo u offtopic, nego ima li itko da zna rijesenje bez te neke alokacije :D

Pa tko je spominjao da tebi treba dinamicka alokacija memorije? Tebi treba obican bubble sort polja struktura.

 

Evo gle kako bih ja to recimo napravio:

 

#include <stdlib.h>
#include <stdio.h>

struct ucenik
{
    char ime[20];
    float prosjek;
    int izostanci;
};

int main()
{
    struct ucenik ucenici[4]={{"Marko", 4.2, 0},
                              {"Matej", 3.4, 3},
                              {"Ivan", 3.8, 5},
                              {"Luka", 4.3, 0}};
    struct ucenik temp;
    int n, i;

    //ovo je petlja koja sortira polje
    for (n=0; n<4; n++)
        for (i=0; i<3; i++)
            if (strcmp(ucenici[i].ime, ucenici[i+1].ime)>0)
            {
                temp=ucenici[i+1];
                ucenici[i+1]=ucenici[i];
                ucenici[i]=temp;
            }

    //ova petlja samo ispisuje sortirano polje na ekran
    for (n=0; n<4; n++)
    {
        printf("Ime: %s\n", ucenici[n].ime);
        printf("  Prosjek: %.02f\n", ucenici[n].prosjek);
        printf("  Izostanci: %d\n\n", ucenici[n].izostanci);
    }

    return 0;
}

Podatci su ovdje hardkodirani, ti prekroji da radi onako kako tebi treba.

hvala na pomoci, sinoc sam napravio neki primjer bezveze, danas cu to isto primjenit na seminarski rad..

btw. pogresno sam ja shvatio, bio na satu pa nisam moga procitat postove kako treba xD

One day, I looked up in the sky. A bird came by and shit into my eye. I didn't laugh. I didn't cry. I was just happy, that cows can't fly.
13 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

Kako da izdvojim cifre bilo kojeg broja?

 

Ne treba mi kod,samo neko da objasni.

http://www.bug.hr/forum/topic/softver-literatura-usluge/prodaja-knjige-hardware/103166.aspx
 
0 0 hvala 0
E-mail:
Lozinka:
 
vrh stranice