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

poruka: 7.285
|
čitano: 1.726.785
|
moderatori: XXX-Man, vincimus
+/- sve poruke
ravni prikaz
starije poruke gore
17 godina
offline
Programiranje u C++-u - pitanja i odgovori

Ako se funkcija sa jednim parametrom slijedno poziva, svaki put će biti jedna varijabla na stogu, i to na istoj adresi, a princip rada je prethodni objekt se uništi izlaskom iz funkcije, a sljedeći objekt se stvori novim pozivom.

Ako se ista funkcija rekurzijski pozove 100 puta, bit će 100 objekata na stogu, svaki objekt će imati svoju adresu, a objekti će se uništavati po LIFO sistemu, zadnji stvoren, prvi uništen, i tako do kraja.

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

Tracer jel bi mi mogo ti malo pojasnit taj va_list ? Gdje god sam naso nemogu skuzit , a posto ti znas c++ u detalj i imas svoju knjigu mozda bi ti to jasnije objasnio ?

 
0 0 hvala 0
14 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

Jesi li probao analizirati primjer na onom linku?

 

#include <stdio.h>
#include <stdarg.h>

int addThemAll( int numargs, ... )
{
    // So this function can accept a variable number
    // of arguments.  No (practically speaking) limits.

    // RULES you must know in order to be able to use "..." in one of your
    // own functions:
    //
    // 1)  The ... MUST appear exactly as ...
    // It cannot be "..." (with the quotes),
    //     '...', or anything else weird.
    //
    // 2)  The ... __MUST GO LAST__ IN THE ARGUMENT LIST
    //
    // 3)  THERE MUST BE AT LEAST ONE MANDATORY, NON-OPTIONAL ARGUMENT,
    //     THAT COMES BEFORE THE ...

    // We'll be using these macros here:
/*
     va_list    va_start    va_end    va_arg
*/

    // All of the above va_* things are actually special MACROS,
    // exclusively defined for us to use when working with
    // _V_ariable _A_rgument lists.

    // FIRST, we create a POINTER that will be used
    // to point to the first element of the VARIABLE
    // ARGUMENT LIST.
    va_list listPointer;

    // Currently, listPointer is UNINITIALIZED, however,
    // SO, now we make listPointer point to
    // the first argument in the list
    va_start( listPointer, numargs );

    // Notice that numargs is the LAST MANDATORY ARGUMENT
    // that the addThemAll() function takes.
    // By "LAST MANDATORY ARGUMENT", I mean 'numargs'
    // is the last argument to the addThemAll() function
    // JUST BEFORE the "..."

    // NEXT, we're going to start to actually retrieve
    // the values from the va_list itself.
    // THERE IS A CATCH HERE.  YOU MUST KNOW THE
    // DATA TYPE OF THE DATA YOU ARE RETRIEVING
    // FROM THE va_list.  In this example, I'm assuming
    // they're all ints, but you could always pass a format
    // string that lets you know the types.

    int sum = 0;
    for( int i = 0 ; i < numargs; i++ )
    {
        // GET an arg.  YOU MUST KNOW
        // THE TYPE OF THE ARG TO RETRIEVE
        // IT FROM THE va_list.
        int arg = va_arg( listPointer, int );

        printf( "    The %dth arg is %d\n", i, arg );

        sum += arg;
    }

    printf("--");
    printf("END OF ARGUMENT LIST\n\n");

    // FINALLY, we clean up by saying
    // va_end().  Don't forget to do this
    // BEFORE the addThemAll() function returns!
    va_end( listPointer );

    printf("The total sum was %d\n\n", sum);

    return sum;
}

int main()
{
    // Try it out.

    printf("Calling 'addThemAll( 3, 104, 29, 46 );' . . .\n");
    addThemAll( 3, 104, 29, 46 );

    printf("Calling 'addThemAll( 8,   1, 2, 3, 4, 5, 6, 7, 8 );' . . .\n");
    addThemAll( 8,   1, 2, 3, 4, 5, 6, 7, 8 );

    return 0;
}

 

Mislim da je ovdje sve jako dobro objašnjeno...

Poruka je uređivana zadnji put ned 26.2.2012 18:08 (TracerCPP).
17 godina
offline
Programiranje u C++-u - pitanja i odgovori

Jel mora baš profa @Tracer ili možemo i mi drugi, pa koliko znamo{#}

Aha, sve 5, ipak će on najboje to.

Poruka je uređivana zadnji put ned 26.2.2012 18:27 (Floki).
 
2 0 hvala 0
13 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

hahaha Floki , ma reko sam to zato sto kad sam zadnji put pito jedini se on javio :P

EDIT: btw Tracer jel u tvojoj knjizi objasnjeno pravljenje GUI programa?

Poruka je uređivana zadnji put ned 26.2.2012 18:39 (Fuhrer).
 
0 0 hvala 0
14 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
Floki kaže...

Jel mora baš profa @Tracer ili možemo i mi drugi, pa koliko znamo{#}

Aha, sve 5, ipak će on najboje to.

Ne mora značiti da ću ja najbolje. Štoviše, i izbjegavam odgovarati na pitanja početničkog karaktera. Tek eventualno na ona koja su mi iz nekog razloga zanimljivija. No u ovom slučaju sam posebno prozvan pa eto..

 

No svejedno, ako ima tko da bi napisao vlastiti primjer za ovo gore ili gornji primjer dodatno pojasnio - neka izvoli.

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

Jer fora je u tome što učim preko Demistificiranog C++-a ali to mi je malo preslozeno trenutno :)

 
0 0 hvala 0
17 godina
offline
Re: Programiranje u C++-u - pitanja i odgovori
TracerCPP kaže...
Floki kaže...

Jel mora baš profa @Tracer ili možemo i mi drugi, pa koliko znamo{#}

Aha, sve 5, ipak će on najboje to.

Ne mora značiti da ću ja najbolje. Štoviše, i izbjegavam odgovarati na pitanja početničkog karaktera. Tek eventualno na ona koja su mi iz nekog razloga zanimljivija. No u ovom slučaju sam posebno prozvan pa eto..

 

No svejedno, ako ima tko da bi napisao vlastiti primjer za ovo gore ili gornji primjer dodatno pojasnio - neka izvoli.

A kužim, pa se malo šalim, ni meni ne pašu početnička pitanja, a kamoli tebi, a što jest jest, po tvojoj knjizi bi to lako skužio, bar ja jesam{#}

Poruka je uređivana zadnji put ned 26.2.2012 19:17 (Floki).
17 godina
offline
Re: Programiranje u C++-u - pitanja i odgovori
Fuhrer kaže...

Jer fora je u tome što učim preko Demistificiranog C++-a ali to mi je malo preslozeno trenutno :)

Dakle, tu va_list koristiš kad hoćeš u funkciji dati promjenjiv broj argumenata, prvi argument ti označava broj ostalih argumenata koje predstaviš sa tri točke , a zatim nakon što deklariraš listu još koristiš tri makroa, va_start za inicijalizaciju liste argumenata, va_arg za dohvaćanje argumenata iz liste i va_end za zatvaranje liste argumenata.

 

Ovo ti je jednostavni primjer sa ove stranice http://www.cplusplus.com/reference/clibrary/cstdarg/va_arg/

Kao što možeš vidjeti, ova funkcija traži najveći broj od pozitivnih brojeva, a ima promjenjiv broj argumenata, s tim da prvi argument u funkciji označava broj ostalih argumenata.

 

 

#include <iostream>
#include<stdarg.h>

using namespace std;

 int Najveci(int brojElemenata, ...) // argumete deklariraš tako da deklariraš prvi koji znaći broj ostalih, pa tri točke
 {
    int privremeni, najveci = 0;
    va_list lista; // deklariraš listu argumenata
    va_start(lista, brojElemenata); // sa makroom va_start inicijaliziraš listu argumenata
    for(int i=0; i<brojElemenata; i++) // kao argumente makroa va_start uzmeš listu i broj elemenata liste
    {
       privremeni = va_arg(lista, int); // sa makroom va_arg dohvaćaš elemete iz liste
                                        // za parametre uzimaš listu i tip liste
       najveci = najveci>privremeni ? najveci : privremeni;
    }
    va_end(lista); // zatvaraš listu argumenata
    return najveci;
 }

int main(){
    int najveci;
    najveci = Najveci(4, 5, 10,3, 25);
    cout<< najveci;
    return 0;
}
Objašnjenja sam dao u komentarima, a ako ti još što nije jasno, pucaj.

Poruka je uređivana zadnji put ned 26.2.2012 19:45 (Floki).
14 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

radim algoritam koji bi unesene brojeve poredao u niz od najmanjeg prema najvecem, ali nikako mi ne uspijeva. udijelite neka zrnca mudrosti; gdje sam pogriješio?

 

#include <iostream>
#include <vector>
using namespace std;

/* funkcija provjerava koji je èlan u nizu
najmanji te izbacuje indeks tog najmanjeg èlana */

int najmanji (vector<int>niz)
{
      int manji=niz[0]+1,indeks;
      for (int i=0;i<int(niz.size());i++)
          if (manji>niz[i])
          {
            manji=niz[i];
            indeks=i;
          }

      return indeks;
}

int main()
{
      int kolicina,vf;
      cin>>kolicina;

      vector<int>niz(kolicina);
      vector<int>rjesenje;

      for (int i=0;i<kolicina;i++)
        cin>>niz[i];

      for (int i=0;i<kolicina;i++)
      {
        vf=najmanji(niz);
        rjesenje.push_back(niz[vf]);
        niz[vf]=niz[int(niz.size())];
        niz.pop_back();
      }

/* u vector "rjesenje" se ubacuje èlan niza sa indeksom koji je returnan iz funkcije (najmanjim èlanom niza);
tada isti taj èlan dobiva vrijednost posljednjeg èlana u vectoru "niz"
a posljednji èlan se mièe iz vectora. Petlja se ponavlja onoliko puta koliko je bilo èlanova vectora "niz" u samom poèetku */



      for (int i=0;i<kolicina;i++)
        cout<<rjesenje[i]<<" ";

//ispisuje se vector "rješenje" kojem su èlanovi poredani rastuæe

      return 0;
}

Igor
Poruka je uređivana zadnji put ned 26.2.2012 21:19 (CRT).
Moj PC  
0 0 hvala 0
17 godina
offline
Programiranje u C++-u - pitanja i odgovori

Kad si u Rimu, budi Rimljanin, odnosno ako koristiš vector container, onda koristi i algoritam sort.

 

 

#include <iostream>
#include<vector>
#include<algorithm>

using namespace std;

 
bool funkcija(int i, int j) {return i>j;}

int main(){
    vector<int> brojevi;
    cout<< "Unesi broj brojeva: ";
    int brojBrojeva, broj;
    cin>> brojBrojeva;
    for(int i=0; i<brojBrojeva; i++)
    {
       cout<< "Unesi " << i+1 << ". broj: ";
       cin>> broj;
       brojevi.push_back(broj);
      
    }
    sort(brojevi.begin(), brojevi.end(), funkcija );
    while(!brojevi.empty())
    {
       cout<< brojevi.back() << " ";
       brojevi.pop_back();
    }
    return 0;
}

 
0 0 hvala 1
14 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

zahvaljujem, nisam radio sam sortom niti znao da postoji. Ipak, zanima me sta sam tocno pogrijesio u kodu, jer sto se logicne strane tice, trebalo bi biti u redu.

Igor
Moj PC  
0 0 hvala 0
17 godina
offline
Programiranje u C++-u - pitanja i odgovori

Što je uopće svrha tog tvog algoritma? Stvaraš novi niz, a uništavaš stari niz. Pa ako ti nije cilj zadržati stari niz, onda si ga stvarno mogao poredati sort algoritmom i gotova stvar. Ali eto, neka ti bude, pogriješio si na dva mjesta, u funkciji za dobijanje najmanjeg indeksa si prvom članu pribrojio jedan, a u glavnom algoritmu si izašao iz ranga indeksa starog niza naredbom niz[niz.size()]. To tramakivanje je nepotrebno, jednostavno treba maknuti vrijednost na poziciji najmanjeg indeksa sa naredbom erase, btw. čemu koristiš cast int na naredbu niz.size(), to već jest int. Zašto pridružuješ nizu vrijednosti preko indeksa, radi sa naredbom push_back(), time ti alokacija niza na početku postaje nepotrebna.

 

Ovako bi radilo, mada ovo smatram nečim nepotrebim, jer ovakva specifikacija nema svrhe, a ovo bi se isplatilo raditi jedino kad je cilj zadržati stari neporedani niz i dobiti novi, a i tada bi bilo rješenje kopirati stari niz i ići sort algoritmom.

 

 

#include <iostream>
#include <vector>
using namespace std;

/* funkcija provjerava koji je èlan u nizu
najmanji te izbacuje indeks tog najmanjeg èlana */

int najmanji (vector<int>niz)
{
      int manji=niz[0],indeks=0;
      for (int i=1;i<niz.size();i++)
          if (manji>niz[i])
          {
            manji=niz[i];
            indeks=i;
          }

      return indeks;
}

int main()
{
      int kolicina,vf;
      cin>>kolicina;

      vector<int>niz(kolicina);
      vector<int>rjesenje;

      for (int i=0;i<kolicina;i++)
        cin>>niz[i];

      for (int i=0;i<kolicina;i++)
      {
        vf=najmanji(niz);
        rjesenje.push_back(niz[vf]);
       niz.erase(niz.begin() + vf);;
      }

/* u vector "rjesenje" se ubacuje èlan niza sa indeksom koji je returnan iz funkcije (najmanjim èlanom niza);
tada isti taj èlan dobiva vrijednost posljednjeg èlana u vectoru "niz"
a posljednji èlan se mièe iz vectora. Petlja se ponavlja onoliko puta koliko je bilo èlanova vectora "niz" u samom poèetku */



      for (int i=0;i<kolicina;i++)
        cout<<rjesenje[i]<<" ";

//ispisuje se vector "rješenje" kojem su èlanovi poredani rastuæe

      return 0;
}

 

 

Poruka je uređivana zadnji put pon 27.2.2012 12:43 (Floki).
 
0 0 hvala 1
17 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

imam problem s code blocksom, prvo mi nije uopče htjeo buildat code, te sam skužio da mi fale neki compileri ili nešto, sad kad sam to skinuo, builda mi bez problema, ali kad ga treba runat odma se proccess "terminira", odnosno uopče nema onog crnog prozora. zašto je tako?

 

http://imageshack.us/f/834/codeblocksshit.jpg/ evo slika, pošto nisam baš dobro objasnio problem. dakle pitanje mi je šta trebam napravit da mi se stvori taj crni prozor di trebam upisat podatke koji bi se onda obradili od strane programa.

 
0 0 hvala 0
15 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
RangeR kaže...

imam problem s code blocksom, prvo mi nije uopče htjeo buildat code, te sam skužio da mi fale neki compileri ili nešto, sad kad sam to skinuo, builda mi bez problema, ali kad ga treba runat odma se proccess "terminira", odnosno uopče nema onog crnog prozora. zašto je tako?

 

http://imageshack.us/f/834/codeblocksshit.jpg/ evo slika, pošto nisam baš dobro objasnio problem. dakle pitanje mi je šta trebam napravit da mi se stvori taj crni prozor di trebam upisat podatke koji bi se onda obradili od strane programa.

jesi li na poćetku ukljucio:

 

 #include <stdlib.h> ? google kaže da imaš problema sa MinGW - i da se to zna dogoditi ako ti nije instaliran na istoj particiji kao i .c dokument koji kompajliraš

~21 god, ETFOS, Slavonac, linux and open source fan, net addict, želim znati više, interesi: web dev, svemir, glazba...
14 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

@Floki - radim po knjizi od Marendića i Ćosića i sve što je spomenuto oko vectora (za sada) je: push.back(); pop.back(); imeniza.size(); tako da sam prilično ograničen. Ipak, hvala!

  Već kada sam kod te knjige, isplati li se učiti Allegro i neki "grafički prikaz", prijašnjim komentarima u toj temi oko toga zaključio bih da ne, ipak, allegra u toj knjizi ima poprilično - 100 stranica. Propuštam li nešto ako to preskočim?

Igor
Moj PC  
0 0 hvala 0
17 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
@kakapo probo sam ovo s includeom, a mingw i taj dokument su na istoj particiji, probo sam i reinstalirat, opet isto da onaj pg i fomit frame pointer nisu kompatibilni.
17 godina
offline
Re: Programiranje u C++-u - pitanja i odgovori
CRT kaže...

@Floki - radim po knjizi od Marendića i Ćosića i sve što je spomenuto oko vectora (za sada) je: push.back(); pop.back(); imeniza.size(); tako da sam prilično ograničen. Ipak, hvala!

  Već kada sam kod te knjige, isplati li se učiti Allegro i neki "grafički prikaz", prijašnjim komentarima u toj temi oko toga zaključio bih da ne, ipak, allegra u toj knjizi ima poprilično - 100 stranica. Propuštam li nešto ako to preskočim?

To nisam nikad učio, niti čitao tu knjigu, pa ti ne bi znao odgovoriti, a valjda se jave dečki koji su radili allegro.

Ovo ti je dobra stranica za proširiti znanje i podsjetiti se naučenog http://www.cplusplus.com/

Poruka je uređivana zadnji put pon 27.2.2012 22:34 (Floki).
15 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
CRT kaže...

Već kada sam kod te knjige, isplati li se učiti Allegro i neki "grafički prikaz", prijašnjim komentarima u toj temi oko toga zaključio bih da ne, ipak, allegra u toj knjizi ima poprilično - 100 stranica. Propuštam li nešto ako to preskočim?

Nece te ubiti ako ti se poslije znanje allegra pokaze beskorisnim, ali ce ti pomoci da prodes kroz knjigu i isprobas sve. Ako nista drugo barem ces malo trenirati mozak upijanjem novih informacija...

 

Kako svi bjeze od znanja u strahu da ne nauce nesto sto im se mozda ne isplati... -.-'

Ja sam sa Allegrom poslijednji puta imao posla jako davno, malo se toga sjecam ali se sjecam da mi nije bas zadavao probleme...

My computer once beat me at chess, but we got even after a round of boxing.
15 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
RangeR kaže...
@kakapo probo sam ovo s includeom, a mingw i taj dokument su na istoj particiji, probo sam i reinstalirat, opet isto da onaj pg i fomit frame pointer nisu kompatibilni.

Pa kako ti se sada odjednom pojavljuju ovi switchevi pri kompajliranju obicne datoteke? Jesi li ti ti skidao verziju code blocksa bez kompajlera pa naknadno stavljao mingw ili...?

 

Skini verziju sa kompajlerom pa probaj ponovno.

 

EDIT: cini se da nisi prvi kome se to dogada:

http://forums.codeblocks.org/index.php?topic=13300.0

 

probaj savjete sa te teme

My computer once beat me at chess, but we got even after a round of boxing.
Poruka je uređivana zadnji put pet 2.3.2012 3:19 (rustweaver).
17 godina
moderator
online
Re: Programiranje u C++-u - pitanja i odgovori
rustweaver kaže...
Kako svi bjeze od znanja u strahu da ne nauce nesto sto im se mozda ne isplati... -.-'

Nije stvar u tome da im se ne isplati (iako im se ne isplati {#}), nego je stvar u trošenju vremena koje se moglo iskoristiti za nešto drugo. Osobno pamćenje podataka baš i ne smatram nekim treniranjem mozga - umjesto toga bolje upamtiti neku pjesmicu. Treniranje mozga bilo bi recimo pokušavanje razumijevanja nekih novih koncepata.

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

Nije stvar u tome da im se ne isplati (iako im se ne isplati {#}), nego je stvar u trošenju vremena koje se moglo iskoristiti za nešto drugo.

Da sam ja tako mislio, puno toga danas ne bih znao... vrijeme se uvijek moze iskoristiti za nesto drugo, i uvijek postoji nesto pametnije sto se moze raditi. Isto tako je i vrijeme utroseno na trazenje neceg pametnijeg zapravo baceno vrijeme, koje se moglo potrositi na ucenje doslovce bilo cega drugoga. Bilo sto bi bio bolji izbor od brojanja zjaka. Shvacam ja sto zelis reci, ali i tvrdim da nece puno vremena izgubiti na allegro, jer se ne radi bas o nuklearnoj fizici.

 

Ovo me podsjeca na onu staru skolsku "sto ce to meni u zivotu?". {#}

My computer once beat me at chess, but we got even after a round of boxing.
14 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

zanima me dali da pređem na pirntf i scanf ili da ostanem na cin i cout, tj. koje naredbe su bolje?

Igor
Moj PC  
1 0 hvala 0
17 godina
moderator
online
Re: Programiranje u C++-u - pitanja i odgovori
CRT kaže...

zanima me dali da pređem na pirntf i scanf ili da ostanem na cin i cout, tj. koje naredbe su bolje?

Prijeđi na C# i GUI. {#} "Prelazak" s cin/cout (C++) na printf/scanf (C) je pretakanje iz šupljeg u prazno. Ti objekti/funkcije služe samo za ispis/dohvat podataka - s obzirom da smo debelo zašli u vrijeme GUI-a, ako ih koristiš za išta više od toga, profulao si poantu.

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

Može li mi tko pomoči rješiti ovaj zadatak?
Napiši program koji će prebrojiti i ispisati koliko je elemenata niza veće od 10,te izračunati i ispisati njihovu aritmetičku sredinu. 
Hvala unaprijed! 

muskarci imaju dvije emocije:napaljen i gladan...ako ga vidis bez erekcije, napravi mu sandwitch....
Moj PC  
0 0 hvala 0
13 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

koje su to finte

 

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

Može li mi tko pomoči rješiti ovaj zadatak?
Napiši program koji će prebrojiti i ispisati koliko je elemenata niza veće od 10,te izračunati i ispisati njihovu aritmetičku sredinu. 
Hvala unaprijed! 

 Vrlo jednostavno, imaš petlje, grananja, aritmetičke operatore, pa kreni, gdje zapneš javi.

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

 

evo ti za online primjer ako nisi doma , codepad.org , mijenjaj po volji argumente i veličinu.

 

 

#include <iostream>


using namespace std;


int main()
{
cout<< "primjer za niz brojeva :: 7 , 12 , 9 , 15 , 143  :: mijenjaj ih po zelji" << endl;
int number;
int* p = new int[5];
int temp = 0;
int num_added = 0;
float arit_midd;

*p     =   7;
*(p+1) =  12;
*(p+2) =   9;
*(p+3) =  15;
*(p+4) = 143;
 
for(int i=0 ; i<5 ; i++ )
{
if( (*(p+i)) > 10 )
 {
   temp = temp + 1;
   num_added = num_added + (*(p+i));
 }

}

arit_midd = (float)num_added/temp;

cout<< temp << "  clanova je vece od 10" << endl;
cout<< "aritmeticka sredina je :" << arit_midd;


return 0;

}

 

 

 

za home compiler:

 

#include <iostream>


using namespace std;


int main()
{
cout<< "upisi koliko clanova treba sadrzavati niz" << endl;
int number;
cin>> number;
int* p = new int[number];
for(int i=0 ; i<number ; i++)
{
  cin>>p[i];
}
int temp = 0;
int num_added = 0;
float arit_midd;


 
for(int i=0 ; i<number ; i++ )
{
if( p[i] > 10 )
 {
   temp = temp + 1;
   num_added = num_added + p[i];
 }

}

arit_midd = (float)num_added/temp;

cout<< temp << "  clanova je vece od 10" << endl;
cout<< "aritmeticka sredina je :" << arit_midd;

delete []p;
return 0;

}

Poruka je uređivana zadnji put pon 5.3.2012 14:48 (nik_02).
17 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

Hajd da i ja nešto pitam u ovoj temi. Naime, programiram program koji u formatiranu datoteku bilježi prosjek prisutnosti na satu. Problem je u tome što u varijable "dol" i "uku" učitava neke čudne brojeve, a trebao bi učitavati podatke koje se nalaze u datoteci čiji se izgled može vidjeti u funkciji "fprintf" pri dnu programa. Ista je šema bilo da fajl ispravnog formata već postoji ili nije kreiran. Evo i kôda:

 

#include <stdio.h>
int main () {
    FILE *fajl;
    fajl = fopen("opf.txt", "w+");

    int sk, dol, uku;
    float pos;

//učitavanje prijašnjih vrijednosti iz fajla

    fseek(fajl, 10, SEEK_SET);
    fscanf(fajl, "%d", &dol);

    fseek(fajl, 12, SEEK_SET);
    fscanf(fajl, "%d", &uku);

//korisnikov odabir

    printf("nisi bio (0), bio (1)\n");
    scanf("%d", &sk);

//rad sa zadanim podacima

    if(sk == 0)
        uku++;
    if(sk == 1) {
        dol++;
        uku++;
    }
    pos = ((float)dol/uku)*100;

    fseek(fajl, 0, SEEK_SET);
    fprintf(fajl, "Dolaznost:\n\n%d/%d -- %d%%", dol, uku, pos);
    fclose(fajl);

    return 0;
}

 

EDIT: nakon što sam upisao ovu liniju kôda u 5. red:

 

    fprintf(fajl, "Dolaznost:\n\n0/0 -- 100%%");

 

sam shvatio da je problem vjerojatno u tome što varijable "dol" i "uku" nisu bile definirane. Kako mijenjam brojeve označene žutim markerom, tako ih program pravilno čita s fseek/fscanf. Problem je u tome što su te vrijednosti na taj način konstantne, a ja bih htio svakim novim pokretanjem programa izmjenjivati prijašnju datoteku. Je li moguće to napraviti?

~~~ 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 uto 6.3.2012 22:36 (i_rambo_plache).
Moj PC  
0 0 hvala 0
14 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

Vjerojatno je fseek krivo pozicioniran. Ako je već riječ o formatiranoj datoteci varijable dol i uku bi trebao učitati iz datoteke slijedom (čitati podatak po podatak pa doći i do njih) a ne direktno im pristupiti preko fseek.

Poruka je uređivana zadnji put uto 6.3.2012 22:32 (TracerCPP).
E-mail:
Lozinka:
 
vrh stranice