Pomoc oko C++

poruka: 48
|
čitano: 9.155
|
moderatori: Lazarus Long, XXX-Man, vincimus
+/- sve poruke
ravni prikaz
starije poruke gore
13 godina
neaktivan
offline
Pomoc oko C++

E ovako ljudi  trebam nekog da mi ukaze na gresku ovdje

 

GRESKA JE BOLDOVANA

 

#include <iostream>

using namespace std;

int main;

{int x,y,n,zp,zn,i;

zp=zn=0;

cout<<"unesi donju granicu"<<endl;

cin>>x;

cout<<"unesi gornju granicu"<<endl;

cin>>y;

for(i=x;i<=y;i++)

{cout<<"unesi broj:"<<i<<endl;

cin>>n;

if(n%2==0)

zp=zp+n;

else

zn=zn+n;}

cout<<"zbir parnih:"<<zp<<endl;

cout<<"zbir neparnih:"<<endl;

system ("pause");

return 0;

}

 

Ako neko zna bio bih zahvalan :D

 

btw dole mi izbacuje da je greska

 

4 C:\Users\PCP\Desktop\Untitled1.cpp expected unqualified-id before '{' token 

4 C:\Users\PCP\Desktop\Untitled1.cpp expected `,' or `;' before '{' token 

 
0 0 hvala 0
16 godina
neaktivan
offline
Re: Pomoc oko C++

Kada se otvara funkcija main, piše se:

 

int main()

{

     //Tijelo funkcije

}

 

Vi ste napisali "int main;", što nije dobro.

16 godina
neaktivan
offline
Re: Pomoc oko C++
BlooD kaže...

E ovako ljudi  trebam nekog da mi ukaze na gresku ovdje

 

GRESKA JE BOLDOVANA

 

 

#include <iostream>

using namespace std;

int main;

{int x,y,n,zp,zn,i;

zp=zn=0;

Greška ti je podcrtano i boldano. Makni točku-zarez (";"), tj. izbriši. I daj to malo ljepše formatiraj, uvlačenje, razmaci i to... Nešto ovak:

 

int main()

{

     int x, y, n, zp, zn, i;

 

     //bla bla neki kod dalje;

 

     return 0;

 

}

Q: a kako se to linux ponasa kad crkne hdd? A: zastekava svakih 60 sec,ali prezivi se
Poruka je uređivana zadnji put sri 16.2.2011 19:41 (1domagoj1).
16 godina
neaktivan
offline
Re: Pomoc oko C++
BlooD kaže...

GRESKA JE BOLDOVANA

 

 

int main;


13 godina
neaktivan
offline
Pomoc oko C++

Toooo radi :D

 

hvala

 

nemojte lockati temu, trebace mi jos.....

 

 

EDIT

 

 

E sad ovo tek nije normalno >.<

Ima najmanje 7 gresaka a ne kuzim se bas u programiranje, tako da ne razumijem ovo greske, ucim sad...

 

#include <iostream>

using namespace std;

int main()

{int x,y,n,i,kv;

double ko,kv;

cout<<"unesi donju granicu"<<endl;

cin>>x;

cout<<"unesi gornju granicu"<<endl;

cin>>y;

for(i=x;i<=y;i++)

{cout<<"unesi broj:"<<i<<endl;

cin>>n;

kv=n*n;

ko=sqrt(1.0*n);

rv=1/(1.0*n);

cout<<"kvadrat:"<<kv<<endl;

cout<<"korijen:"<<ko<<endl;

cout<<"rec.vrijednost:"<<rc<<endl;}

system("pause");

return 0;

}

Poruka je uređivana zadnji put sri 16.2.2011 19:52 (BlooD).
 
0 0 hvala 0
15 godina
neaktivan
offline
Re: Pomoc oko C++

Iz ovog programčića se vidi da ne učiš na dobar način...varijable su ti istog imena a različitog tipa,nisi uključio <cmath> za sqrt,ne razumiješ scope,tok programa,deklariranje .

Kreni od tih pojmova i onda kreni na petlje i takve malo malo teže zadatke.Jednostavno previše ideš naprijed a ne znaš sintaksu i tok programa .

Kreni od osnovnih pojmova kako se imenuju varijable ,koje je područje "dohvatljivosti" tih varijabli,što su to lokalne a što globalne varijable ,kako funkcionira for petlja i dijelovi for petlje ,što ona radi i što se dešava sa varijablama unutar petlje i van petlje (govorim o deklariranju)....što je deklaracija a što definicija u C++-u idt itd...kad te pojmove naučiš onda češ i razumjeti tvoje greške koje su potpuno normalne ako učiš na ovako krivi način.

 

Private
Poruka je uređivana zadnji put sri 16.2.2011 20:16 (Private).
14 godina
offline
Pomoc oko C++

Evo par glupih, ali bitnih pitanja koje dosada nisam naučio.

  1. Pri inicijalizaciji varijable u c++-u, da li se varijabala automatski inicijalizira na 0 ili primi neku vrijednost koja se već nalazila na memorijskoj adresi varijable? Ovisi li to o kompajleru?
  2. Isto kao prvo samo za polje.

 

Unaprijed se zahvaljujem na odgovoru-

Unatoč glupome nadimku kojeg ne mogu promijeniti,ne igram CoD i sl.
 
0 0 hvala 0
16 godina
neaktivan
offline
Re: Pomoc oko C++
captain_soap_McTawish kaže...

Evo par glupih, ali bitnih pitanja koje dosada nisam naučio.

  1. Pri inicijalizaciji varijable u c++-u, da li se varijabala automatski inicijalizira na 0 ili primi neku vrijednost koja se već nalazila na memorijskoj adresi varijable? Ovisi li to o kompajleru?
  2. Isto kao prvo samo za polje.

 

Unaprijed se zahvaljujem na odgovoru-

1. Ne inicijalizira se. Vjerojatno ovisi i o kompajleru, pa neki kompajleri možda i inicijaliziraju, ali u pravilu ne. Na tebi je ta odgovornost, uvijek inicijaliziraj varijable. Inače dobiš smeće.

2. Isto vrijedi i za polje.

 

Iako, statičke varijable po standardu trebaju biti inicijalizirane na 0, opet, jako je dobra praksa sam inicijalizirati. Ne znam točno za C++, ali ako koristiš malloc za dinamičku alokaciju, on ne inicijalizira, dok funkcija calloc radi isto što i malloc, ali razlika je ta što calloc inicijalizira sve elemente polja na 0.

Q: a kako se to linux ponasa kad crkne hdd? A: zastekava svakih 60 sec,ali prezivi se
Poruka je uređivana zadnji put uto 8.3.2011 20:47 (1domagoj1).
14 godina
offline
Re: Pomoc oko C++
1domagoj1 kaže...

1. Ne inicijalizira se. Vjerojatno ovisi i o kompajleru, pa neki kompajleri možda i inicijaliziraju, ali u pravilu ne. Na tebi je ta odgovornost, uvijek inicijaliziraj varijable. Inače dobiš smeće.

2. Isto vrijedi i za polje.

 

Iako, statičke varijable po standardu trebaju biti inicijalizirane na 0, opet, jako je dobra praksa sam inicijalizirati. Ne znam točno za C++, ali ako koristiš malloc za dinamičku alokaciju, on ne inicijalizira, dok funkcija calloc radi isto što i malloc, ali razlika je ta što calloc inicijalizira sve elemente polja na 0.

Hvala na odgovoru!

No što se tiče ove inicijalizacije, koji je najbolji način da odjednom inicijaliziram sve članove višedimenzionalnog polja na nulu? Dosta je "nezgodno" to učiniti putem for petlje, a ja još ne razumijem ove funkcije jer nisam došao do toga. Ja sam još na algoritmima i ugrađenim tipovima varijabli(int, float, char...)

Unatoč glupome nadimku kojeg ne mogu promijeniti,ne igram CoD i sl.
16 godina
neaktivan
offline
Pomoc oko C++

Ako imaš statički alocirano polje, možeš sve elemente na nulu inicijalizirati vrlo jednostavno:

 

#include <stdio.h>

int main()
{
   int polje[100][100] = {{0}};
    int i, j;

    for(i = 0; i < 100; i++)
        for(j = 0; j < 100; j++)
            printf("%d", polje[i][j]);

    return 0;
}

 

Ista stvar vrijedi i za jednodimenzionalna polja i višedimenzionalna polja.

 

int polje[100] = {0}; //inicijalizira sve clanove jednodimenzionalnog polja na 0

int polje[100][100][100] = {{0}}; //inicijalizira sve clanove trodimenzionalnog polja na 0

 

Ako trebaš inicijalizirati na neke druge vrijednosti, bojim se da onda neće biti tak lako.

 

Ako koristiš recimo GCC, kod njega može proći ovakva sintaksa:

 

int polje[1024] = {[0 ... 1023] = 5};

 

To će inicijalizirati sve članove polja na 5.

Q: a kako se to linux ponasa kad crkne hdd? A: zastekava svakih 60 sec,ali prezivi se
 
1 0 hvala 1
13 godina
offline
Pomoc oko C++
pri globalnoj deklaraciji ,0
pri lokalnoj,smece.
logika ne postoji.
 
1 0 hvala 0
15 godina
offline
Pomoc oko C++

Evo da ne otvaram novu temu radi jednog pitanja, isprike autoru ako mu smeta što se ovamo guram. :)

 

Jel mi može netko pomoći jer sam ja zapeo i ne znam gdje je problem.

 

Pokušao sam i s cplusplusom i tamošnjim primjerima, ali nikako ne ide...

 

Dakle, isprogramirati ovu formulu

 

x*n^(-a) gdje je a= -log(y)/log(2), dakle x*n^(-log(y)/log(2))

 

evo ja sam to pokušao ovako(jedan od brojnih pokušaja, da imate primjer pogrešnoga :) ), ali ne dobivam točan rezultat.

x*pow(n, float(- log10(y)/log10(2))) , ali naravno, ne mogu niti kompajlirati.

 

U čemu griješim? :)

 

Evo vam za primjer, da imate rješenje

 

x=2

n=40

y=0.85

a=0,2344

RJ=0.84

Can't find a better Jam!
Poruka je uređivana zadnji put ned 13.3.2011 0:39 (Gunner_V).
 
0 0 hvala 0
13 godina
offline
Re: Pomoc oko C++
Gunner_V kaže...

Evo da ne otvaram novu temu radi jednog pitanja, isprike autoru ako mu smeta što se ovamo guram. :)

 

Jel mi može netko pomoći jer sam ja zapeo i ne znam gdje je problem.

 

Pokušao sam i s cplusplusom i tamošnjim primjerima, ali nikako ne ide...

 

Dakle, isprogramirati ovu formulu

 

x*n^(-a) gdje je a= -log(y)/log(2), dakle x*n^(-log(y)/log(2))

 

evo ja sam to pokušao ovako(jedan od brojnih pokušaja, da imate primjer pogrešnoga :) ), ali ne dobivam točan rezultat.

x*pow(n, float(- log10(y)/log10(2))) , ali naravno, ne mogu niti kompajlirati.

 

U čemu griješim? :)

 

Evo vam za primjer, da imate rješenje

 

x=2

n=40

y=0.85

a=0,2344

RJ=0.84

ako pitas x*n^(-a), a a=-log(y)/log(2) ,onda to ti nije x*n^(-log(y)/log(2)) nego x*n^(log(y)/log(2))

 

evo kod

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

int main(){

    double x,y,n,rj;

    cin >> x >> n >> y;

    rj = x * pow(n,log(y)/log(2.00)) ;

    cout << rj << endl;

return 0;
}

logika ne postoji.
Poruka je uređivana zadnji put ned 13.3.2011 0:51 (KKristijan).
15 godina
offline
Pomoc oko C++

Hvala lega, radi. :)

 

A jesam ga zakomplicirao i s*ebao bezveze :S

Can't find a better Jam!
 
0 0 hvala 0
13 godina
offline
Re: Pomoc oko C++
Gunner_V kaže...

Hvala lega, radi. :)

 

A jesam ga zakomplicirao i s*ebao bezveze :S

Samo si predznak fulao :D

Inteligencija nije znanje,već mašta
15 godina
offline
Re: Pomoc oko C++
KKristijan kaže...
Gunner_V kaže...

Hvala lega, radi. :)

 

A jesam ga zakomplicirao i s*ebao bezveze :S

Samo si predznak fulao :D

 

 

Ma i ovo float(- log10(y)/log10(2), pogubio sam se s tim nakon čitanja tutorijala... Pa sad ti čitaj dalje... :D

Can't find a better Jam!
15 godina
offline
Pomoc oko C++

 

programeri, moze mala pomoc? počeli smo učiti bubble sort i zadan nam je pseudokod kojeg treba implementirat u program... ja sam nekako to stavio nutra u program, ali ne radi... molim za pomoć :D

pseudo kod: 

 

 

bubbleSort(Item a[], int l, int r)

f

for i = l to r  1 do

for j = r to i + 1 do

if a[j] < a[j  1] then

exchange(a[j],a[j-1])

end if

j = j  1

end for

i = i + 1

end for

 

moj program:

 

 

 

 

 

 

 

Moj PC  
0 0 hvala 0
13 godina
neaktivan
offline
Pomoc oko C++

Zdravo raja :)

Trebala bi mi pomoc oko jednog malog zadacica:

Numerologija je pseudo-nauka koja brojevima pridaje mistično značenje i tvrdi da se mnoga
svojstva raznih objekata mogu utvrditi proučavanjem strukture izvjesnih brojeva vezanik za te
objekte (npr. da se o karakteru neke osobe može saznati na osnovu njenog datuma rođenja). U
numerologiji se kao važno svojstvo nekog prirodnog broja definira njegova numerološka klasa
koja se dobija sabiranjem svih cifara datog broja, a zatim ponavljanjem istog postupka sa
novodobijenim brojem sve dok se kao rezultat ne dobije jednocifren broj. Na primjer,
numerološka klasa broja 39974285 je jednaka 2, jer je 3 + 9+ 9+ 7 + 4+2 + 8 + 5 = 47,
4 + 7 = 11 i, konačno, 1 +1 = 2. Znak broja se pri tome ignorora (broj –17 ima istu
numerološku klasu kao i broj 17). Napišite funkciju koja kao parametar prima vektor cijelih
brojeva a koja kao rezultat vraća novi vektor koji sadrži numerološke klase odgovarajućih
elemenata vektora koji je zadan kao parametar. Napisanu funkciju demonstrirajte u testnom
programu koji traži da se sa tastature unese slijed brojeva u neki vektor, a koji nakon toga
poziva napisanu funkciju da odredi numerološke klase unesenih brojeva i ispiše ih na ekran (u
vidu rečenica oblika “Numerološka klasa broja x iznosi y” i tako redom za sve brojeve.

 

eh sad,znam kako da idem kroz vektor for petljom i kako trebam "sijeckati"pojedine brojeve pa ih sabirati ali ne znam kako da pristupim svakom elementu vektora(koji svaki za sebe moze ima npr. 15 brojeva) :S

unaprijed zahvalna! :D

 
0 0 hvala 0
15 godina
offline
Re: Pomoc oko C++

Isti zadatak je već pitan, i to prije 2 dana...

 

evo ukratko algoritma:

 

for(i=0;i<velicina_vektora;++i)

{

      x=vektor[i];

      suma=0;

      do

      {

          suma=0;

       while(x>0)

       {

              suma+=x%10; 

              x/=10;

           }

           if (suma/10>0) x=suma;

           else numerološka[i]=suma;

 

      } while(suma/10>0)

}

 

otprilike to.

Uzet broj iz vektora, nać mu sumu znamenaka, ako je suma višeznamenkasta, opet joj nać sumu znamenaka i tako dok se ne dobije jednoznamenkast broj kojeg se spremi kao numerološku klasu.

Ovo moje pretpostvavlja da su brojevi u vektoru pozitivni, tako da ćeš ti trebat dodat računanje apsolutne vrijednosti (ili uvjetni operator ako si vješta s tim)

http://manutd-croatia.com/forum/index.php ... forum i udruga navijača Manchester Uniteda...
13 godina
neaktivan
offline
Pomoc oko C++

Nisam vidjela taj post :S Hvala u svakom slucaju,tako sam nesto i skontala :)

pozz

 
0 0 hvala 0
13 godina
neaktivan
offline
Pomoc oko C++

Jel bi mogao napisati cijeli kod vezano za ovaj zadatak sa numerologijom ...

 
0 0 hvala 0
13 godina
neaktivan
offline
Pomoc oko C++

E ovako uradi mi samo za prvi uneseni broj ..pa onda svakom dodjeljuje istu numerolosku klasu ???

 

#include <iostream>
#include <vector>

using namespace std;

int numerologija( vector<int> v ) {
    int i,S,x;
    vector<int> a(10);
    for (i=0;i<10;i++){
        x=v[i];
        do {
            S=0;
            while (x>0) {
                S+=x%10;
                x=x/10;
            }
            if (S/10>0) x=S;
            else a[i]=S;
        } while (S/10>0) ;
    return a[i];
    }
}

int main() {
    vector<int> b(10);
    int i;
    cout << "Unesite elemente vektora : " << endl;
    for (i=0;i<10;i++) {
        cin >> b[i];
    }
    for (i=0;i<10;i++) {
        cout << "Numeroloska klasa broja " << b[i] << "iznosi " << numerologija(b)  << endl;
    }
    return 0;
}

 
0 0 hvala 0
13 godina
neaktivan
offline
Re: Pomoc oko C++

etf zadaca tp :P

15 godina
offline
Re: Pomoc oko C++
rooney kaže...

E ovako uradi mi samo za prvi uneseni broj ..pa onda svakom dodjeljuje istu numerolosku klasu ???

 

Pozivaš funkciju numerologija na vektoru b za svaki b[i] - dakle zvat će se 10 puta funkcija kojoj šalješ cijeli vektor - ne valja.

Ili napravi funkciju koja prima vaktor i vraća vektor i zovi ju jednom ili napravi funkciju koja prima int i vraća int i zovi ju za svaki broj posebno. Kombinacija ili neće dat dobar rezultat ili će se zvat previše puta bezveze

 

Konkretno kod tebe zoveš fju za svaki b[i], no ona će radit samo sa v[0] i vratiti a[0]. Evo dvije opcije kako možeš napraviti tu funkciju

 

vector<int> numerologija( vector<int> v ) {
    int i,S,x;
    vector<int> a(10);
    for (i=0;i<10;i++){
        x=v[i];
        do {
            S=0;
            while (x>0) {
                S+=x%10;
                x=x/10;
            }
            if (S/10>0) x=S;
            else a[i]=S;
        } while (S/10>0) ;
    }

   return a;
}

 

poziv:

vector <int> a=numerologija(b);

for (i=0;i<10;i++)
        cout << "Numeroloska klasa broja " << b[i] << "iznosi " << a[i]  << endl;

 

int numerologija( int x) {
    int i,S,x,a;
        do {
            S=0;
            while (x>0) {
                S+=x%10;
                x=x/10;
            }
            if (S/10>0) x=S;
            else a=S;
        } while (S/10>0) ;

   return a;
}

 

poziv:

for (i=0;i<10;i++)
        cout << "Numeroloska klasa broja " << b[i] << "iznosi " <<numerologija(b[i])<< endl;

 

http://manutd-croatia.com/forum/index.php ... forum i udruga navijača Manchester Uniteda...
15 godina
offline
Re: Pomoc oko C++

Imam jedan problem, valjda ima netko tko se s time susreo.

 

Radim jedan program u kojem imam klasu koja ima static double**. Memoriju za taj double** sam alocirao dinamički (sa new). Kako na kraju izvođenja programa tu memoriju osloboditi?

Postoji li drugi način da koristim taj objekt (matricu), koja je ista za sve instance strukture a da ne bude globalna varijabla?

 

Hvala na pomoći

http://manutd-croatia.com/forum/index.php ... forum i udruga navijača Manchester Uniteda...
16 godina
neaktivan
offline
Re: Pomoc oko C++
Luuka kaže...

Imam jedan problem, valjda ima netko tko se s time susreo.

 

Radim jedan program u kojem imam klasu koja ima static double**. Memoriju za taj double** sam alocirao dinamički (sa new). Kako na kraju izvođenja programa tu memoriju osloboditi?

Postoji li drugi način da koristim taj objekt (matricu), koja je ista za sve instance strukture a da ne bude globalna varijabla?

 

Hvala na pomoći

delete [] ?

 

U destruktoru sa delete [] oslobodiš memoriju. Ak sam te dobro skužil. Mislim, bilo koji dinamički objekt razreda brišeš (to eksplicitno i trebaš raditi) operatorom delete, čak i ako klasa nema destruktor.

Q: a kako se to linux ponasa kad crkne hdd? A: zastekava svakih 60 sec,ali prezivi se
15 godina
offline
Re: Pomoc oko C++
1domagoj1 kaže...
Luuka kaže...

Imam jedan problem, valjda ima netko tko se s time susreo.

 

Radim jedan program u kojem imam klasu koja ima static double**. Memoriju za taj double** sam alocirao dinamički (sa new). Kako na kraju izvođenja programa tu memoriju osloboditi?

Postoji li drugi način da koristim taj objekt (matricu), koja je ista za sve instance strukture a da ne bude globalna varijabla?

 

Hvala na pomoći

delete [] ?

 

U destruktoru sa delete [] oslobodiš memoriju. Ak sam te dobro skužil. Mislim, bilo koji dinamički objekt razreda brišeš (to eksplicitno i trebaš raditi) operatorom delete, čak i ako klasa nema destruktor.

To znam i ja :D

Bed je kaj je taj pointer static, pa je zajednički svim varijablama klase i treba se uništit tek na izlazu iz programa. Ako ubacim delete[] u destruktor, ode static član nakon uništenja prve instance klase, a potreban je i dalje.

http://manutd-croatia.com/forum/index.php ... forum i udruga navijača Manchester Uniteda...
16 godina
neaktivan
offline
Pomoc oko C++

Aha, fakat static je. Konstruktori za globalne i statičke objekte se pozivaju prije ulaska u funkciju main(), a destruktori nakon završetka main()-a, ili ako naprasno prekineš izvođenje s exit(). S tim da će se konstruktori izvesti u redoslijedu deklaracija u kodu, a destruktori obrnutim redoslijedom. Jel si na to mislio?

Q: a kako se to linux ponasa kad crkne hdd? A: zastekava svakih 60 sec,ali prezivi se
 
0 0 hvala 0
15 godina
offline
Re: Pomoc oko C++
1domagoj1 kaže...

Aha, fakat static je. Konstruktori za globalne i statičke objekte se pozivaju prije ulaska u funkciju main(), a destruktori nakon završetka main()-a, ili ako naprasno prekineš izvođenje s exit(). S tim da će se konstruktori izvesti u redoslijedu deklaracija u kodu, a destruktori obrnutim redoslijedom. Jel si na to mislio?

I toga sam ja svjestan :D Treba mi način kako da oslobodim tu dinamički alociranu memoriju. Gdje ubacit te delete-ove? Na koji način napravit da se static član dealocira tek dok je sve gotovo?

http://manutd-croatia.com/forum/index.php ... forum i udruga navijača Manchester Uniteda...
16 godina
neaktivan
offline
Pomoc oko C++

Uh, moral buš mi malo bolje pojasniti situaciju jer bojim se da te nisam skužil. Em je kasno, em u glavi imam žurku koju su organizirale jednadžbe ravnina, pravaca, vektori, njihovi svi mogući umnošci i ostatak ekipe {#}.

Q: a kako se to linux ponasa kad crkne hdd? A: zastekava svakih 60 sec,ali prezivi se
Poruka je uređivana zadnji put uto 22.3.2011 0:51 (1domagoj1).
 
0 0 hvala 0
Nova poruka
E-mail:
Lozinka:
 
vrh stranice