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

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

Ma kakva polja, u petlji while provjeriti interval kod unosa i to je to, ne do while, čemu ići u tijelo do while bez veze, prvi unos staviti ispred while petlje, a pošto interval ima uglate zagrade, rubovi intervala su uključeni.

Ja mislim da se prekidni broj ne broji u interval, jer kad bi se brojio onda bi uvijek rezultat bio false.

 

 

Može i ovako:

 

#include <iostream>
using namespace std;


int main()
{
    double broj;
    bool svojstvo = true;
    cin >> broj;
    for (; broj >= 0;)
    {
       if (broj < 1 || broj > 100)
          svojstvo = false;
       cin >> broj;
    }
    cout << svojstvo;
    return 0;
}

 

Poruka je uređivana zadnji put sub 11.1.2014 21:21 (Floki).
 
1 0 hvala 1
16 godina
offline
Programiranje u C++-u - pitanja i odgovori

Trebam pomoc u vezi funkcija, nesto mi ne valja a ne mogu skuzit sta. Hvala.

 

/*Napiši deklaraciju i definiciju funkcije koja ima tri cjelobrojna parametra i vraća zbroj svojih parametara. */

#include <iostream>

 

using namespace std;

 

int zbroj(int a, int b, int c);

 

int main()

{

   zbroj();

   return 0;

}

 

int zbroj(a,b,c){

   cout << "Unesi 3 broja za zbrajanje: ";

   int a;

   int b;

   int c;

   int suma = 0;

   cin >> a;

   cin >> b;

   cin >> c;

   suma = a + b + c;

   cout << "Suma 3 unesena broja je: " << suma << endl; 

 return (suma);

}

Windows Phone FTW
Moj PC  
0 0 hvala 0
13 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

Pogledaj definiciju funkcije, pogledaj sta jos salje i kako inicijaliziras varijable u funkciji.

Poruka je uređivana zadnji put ned 12.1.2014 19:42 (TaG).
 
0 0 hvala 1
17 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

Problem je u pozivu funkcije zbroj(). Prototip funkcije kaze da funkcija prima tri broja, ali ti joj nigdje nisi poslao tri broja jer pozivas funkciju bez argumenta:

zbroj(/* ovdje inace idu argumenti */);

 

To bi sve skupa trebalo izgledati ovako:

int zbroj(int a, int b, int c)
{
    int suma = 0;
    suma = a + b + c;
    return suma;
}

 

I onda u mainu kad pozivas funkciju:

int main()
{
    cout << zbroj(2, 3, 5); // primjeti da smo funkciji predali tri argumenta koja joj trebaju
    return 0;
}

 

Sto ce ispisati:

10

Perhaps today IS a good day to die. PREPARE FOR RAMMING SPEED!
Poruka je uređivana zadnji put ned 12.1.2014 21:04 (1domagoj1).
14 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
1domagoj1 kaže...
To bi sve skupa trebalo izgledati ovako:

int zbroj(a, b, c)

...

Nema tipova u deklaraciji...

Kada lajavci laju onda završe ovako: http://i471.photobucket.com/albums/rr77/toropreto/2012-07-0813_30_07.gif
13 godina
offline
Programiranje u C++-u - pitanja i odgovori

int zbroj( int a, int b, int c){
int suma=0;
suma=a+b+c;
return suma;
}

Poruka je uređivana zadnji put ned 12.1.2014 21:00 (Luka123).
Moj PC  
0 0 hvala 1
17 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
TracerCPP kaže...

Nema tipova u deklaraciji...

Eh hvala, nisam odmah skuzio, jer obicno ne pisem deklaracije, pa onda definicije, vec drito definicije. Iako je mozda ovo prvo bolje.

Perhaps today IS a good day to die. PREPARE FOR RAMMING SPEED!
16 godina
offline
Re: Programiranje u c++-u- pitanja i odgovori
ee sada radi, hvala vam!
jedno pitanje u vezi toga, dali ja mogu u cout upisat a, b i c, pa da program pita korisnika unos 3 broja koja se preko funkcije zbrajaju?
Windows Phone FTW
17 godina
neaktivan
offline
Re: Programiranje u c++-u- pitanja i odgovori
DommY kaže...
ee sada radi, hvala vam!
jedno pitanje u vezi toga, dali ja mogu u cout upisat a, b i c, pa da program pita korisnika unos 3 broja koja se preko funkcije zbrajaju?

Da, naravno, ne bas tako kako si opisao, ali nesto ovako?

int main()
{
    int broj1;
    int broj2;
    int broj3;

    cin >> broj1;
    cin >> broj2;
    cin >> broj3;

    cout << zbroj(broj1, broj2, broj3);

    return 0;
}

 

Naravno, slobodno dodas coutove koji ce reci korisniku "Upisi tri broja" i sl.

Perhaps today IS a good day to die. PREPARE FOR RAMMING SPEED!
13 godina
offline
Re: Programiranje u c++-u- pitanja i odgovori
DommY kaže...
ee sada radi, hvala vam!
jedno pitanje u vezi toga, dali ja mogu u cout upisat a, b i c, pa da program pita korisnika unos 3 broja koja se preko funkcije zbrajaju?

Mislim da bi to mogo sam malo, pa nije tako tesko ;)

16 godina
offline
Re: Programiranje u c++-u- pitanja i odgovori
1domagoj1 kaže...
DommY kaže...
ee sada radi, hvala vam!
jedno pitanje u vezi toga, dali ja mogu u cout upisat a, b i c, pa da program pita korisnika unos 3 broja koja se preko funkcije zbrajaju?

Da, naravno, ne bas tako kako si opisao, ali nesto ovako?

int main()
{
    int broj1;
    int broj2;
    int broj3;

    cin >> broj1;
    cin >> broj2;
    cin >> broj3;

    cout << zbroj(broj1, broj2, broj3);

    return 0;
}

 

Naravno, slobodno dodas coutove koji ce reci korisniku "Upisi tri broja" i sl.

Shvatio, super, hvala :)

Evo mog rjesenja na tvoj uzor:

 

/*Napiši deklaraciju i definiciju funkcije koja ima tri cjelobrojna parametra i vraca zbroj svojih parametara. */

#include <iostream>

using namespace std;

int zbroj(int a, int b, int c){

   int suma = 0;

   suma = a + b + c;

   return suma;

}

 

int main()

{

   int a,b,c;

   cout << "a = ";

   cin >> a;

   cout << "b = ";

   cin >> b;

   cout << "c = ";

   cin >> c;

   zbroj(a,b,c);

   cout << endl;

   cout << "Zbroj = " << zbroj(a,b,c) << endl;

   return 0;

}

 

 

Luka123 kaže...
DommY kaže...
ee sada radi, hvala vam!
jedno pitanje u vezi toga, dali ja mogu u cout upisat a, b i c, pa da program pita korisnika unos 3 broja koja se preko funkcije zbrajaju?

Mislim da bi to mogo sam malo, pa nije tako tesko ;)

A sta kad neznam pravila, znam da sam dosadan malo al treba mi i zelim naucit.

Evo kako sam ja mislio da to ide:

 

/*Napiši deklaraciju i definiciju funkcije koja ima tri cjelobrojna parametra i vraca zbroj svojih parametara. */

#include <iostream>

using namespace std;

int zbroj(int a, int b, int c){

   int suma = 0;

   suma = a + b + c;

   return suma;

   int a,b,c;

   cout << "a = ";

   cin >> a;

   cout << "b = ";

   cin >> b;

   cout << "c = ";

   cin >> c;

   zbroj(a,b,c);

   cout << endl;

}

 

int main()

{

   cout << zbroj(a,b,c) << endl;

   return 0;

}

Znaci sve bi stavio u funkciju i onda bi je u mainu pozvao i onda bi se sve to izvrsilo. Al ocito ne ide tako. Hvala! :)

Windows Phone FTW
16 godina
offline
Programiranje u C++-u - pitanja i odgovori

Moze neko objasnit? Hvala.

Windows Phone FTW
Moj PC  
0 0 hvala 0
13 godina
offline
Re: Programiranje u C++-u - pitanja i odgovori
DommY kaže...

Moze neko objasnit? Hvala.

Prvo saljes adresu od N i P, i baza postaje 2, eksponent 3 i sto se dogodi u while petlji.

Sve dok je eksponent veci od 1 radi ovo produkt = 1*2(baza), pa u manji eksponent za 1 3-1 = 2, pa onda opet.
sad  je produkt 2 , Produkt = 2*2 = 4,
eksponent 1
I zadnji put jer u while petlji odgovara svojstvo da je eksponent = 1 sto vidis iz ovog while(eksponent >=1) znaci 1=1 odgovara, produkt = 4*2 = 8,
i sad je eksponent = 0, i on pogleda da li odgovara svojstvo while(eksponent >=1), nepase, znaci vrati produkt = 8.

Bazu nismo dirali a ona je bila 2, eksponent je postao 0, a rezultat je poprimio svojstvo 8, jer u funkciji se vraca sa return Produkt;


eto procitaj pazljivo :)



Edit: Malo pazljivo pogledaj gradivo, ovo je ocito provjera znanja sa adresama, odnosno kad upises nesto ovako int& a = b; sto se dogodi?

Poruka je uređivana zadnji put pon 13.1.2014 13:49 (Luka123).
16 godina
offline
Re: Programiranje u C++-u - pitanja i odgovori
Luka123 kaže...
DommY kaže...

Moze neko objasnit? Hvala.

Prvo saljes adresu od N i P, i baza postaje 2, eksponent 3 i sto se dogodi u while petlji.

Sve dok je eksponent veci od 1 radi ovo produkt = 1*2(baza), pa u manji eksponent za 1 3-1 = 2, pa onda opet.
sad  je produkt 2 , Produkt = 2*2 = 4,
eksponent 1
I zadnji put jer u while petlji odgovara svojstvo da je eksponent = 1 sto vidis iz ovog while(eksponent >=1) znaci 1=1 odgovara, produkt = 4*2 = 8,
i sad je eksponent = 0, i on pogleda da li odgovara svojstvo while(eksponent >=1), nepase, znaci vrati produkt = 8.

Bazu nismo dirali a ona je bila 2, eksponent je postao 0, a rezultat je poprimio svojstvo 8, jer u funkciji se vraca sa return Produkt;


eto procitaj pazljivo :)



Edit: Malo pazljivo pogledaj gradivo, ovo je ocito provjera znanja sa adresama, odnosno kad upises nesto ovako int& a = b; sto se dogodi?

Shvatio sam, hvala.

A ovo u vezi edita, ovaj & sam ignorirao, rjesavao sam po tvojem objasnjenju, to je valjda nekakvo prosljedivanje vrijednosti referencom? Sta to uopce znaci?

int& a = b, mozda da se vrijednost b pridruzuje u a? Neznam bas.

Windows Phone FTW
13 godina
offline
Re: Programiranje u C++-u - pitanja i odgovori
DommY kaže...
Luka123 kaže...
DommY kaže...

Moze neko objasnit? Hvala.

Prvo saljes adresu od N i P, i baza postaje 2, eksponent 3 i sto se dogodi u while petlji.

Sve dok je eksponent veci od 1 radi ovo produkt = 1*2(baza), pa u manji eksponent za 1 3-1 = 2, pa onda opet.
sad  je produkt 2 , Produkt = 2*2 = 4,
eksponent 1
I zadnji put jer u while petlji odgovara svojstvo da je eksponent = 1 sto vidis iz ovog while(eksponent >=1) znaci 1=1 odgovara, produkt = 4*2 = 8,
i sad je eksponent = 0, i on pogleda da li odgovara svojstvo while(eksponent >=1), nepase, znaci vrati produkt = 8.

Bazu nismo dirali a ona je bila 2, eksponent je postao 0, a rezultat je poprimio svojstvo 8, jer u funkciji se vraca sa return Produkt;


eto procitaj pazljivo :)



Edit: Malo pazljivo pogledaj gradivo, ovo je ocito provjera znanja sa adresama, odnosno kad upises nesto ovako int& a = b; sto se dogodi?

Shvatio sam, hvala.

A ovo u vezi edita, ovaj & sam ignorirao, rjesavao sam po tvojem objasnjenju, to je valjda nekakvo prosljedivanje vrijednosti referencom? Sta to uopce znaci?

int& a = b, mozda da se vrijednost b pridruzuje u a? Neznam bas.

otvori c++ pa malo prouci, recimo da je a = 2, b = 3, sto ce se dogoditi ako upises da je
& a = b

 

pogledaj sto se dogadja sa adresama.

Mislim nisam ja profesor da objasnjavam, ovakve repeticije se vec naplacuju {#}

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

otvori c++ pa malo prouci, recimo da je a = 2, b = 3, sto ce se dogoditi ako upises da je
& a = b

 

pogledaj sto se dogadja sa adresama.

Mislim nisam ja profesor da objasnjavam, ovakve repeticije se vec naplacuju {#}

Valjda si mislio a& = b? Drugacije mi nije htijelo kompajlirat..

Ako ti se neda obasnjavat, nije problem, valjda bude netko drugi...

 

Zasto 1. slucaj nije jednak 2.slucaju? Samo sam mjenjao pozicije a i b.

Windows Phone FTW
14 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

To su reference. Referenca je samo još jedno ime za već postojeću varijablu. Npr:

 

int n = 5;
int &r = n; // r je samo još jedno dodatno ime za već postojeću varijablu n

// zato je sada
r = 10;
// isto kao da je napisano
n = 10;

 

 

 

Kada lajavci laju onda završe ovako: http://i471.photobucket.com/albums/rr77/toropreto/2012-07-0813_30_07.gif
Moj PC  
0 0 hvala 1
13 godina
offline
Re: Programiranje u C++-u - pitanja i odgovori
TracerCPP kaže...

To su reference. Referenca je samo još jedno ime za već postojeću varijablu. Npr:

 

int n = 5;
int &r = n; // r je samo još jedno dodatno ime za već postojeću varijablu n

// zato je sada
r = 10;
// isto kao da je napisano
n = 10;

 

 

 

Ok stoji objasnjenje, ali pitanje je zasto se to dogadja. Ako shvati zasto se to dogadja mislim da nece imati problema shvatiti gradivo.

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

Već sam ti rekao zašto se to događa - jer u oba slučaja radiš s istom varijablom tj. istim memorijskim prostorom.

Kada lajavci laju onda završe ovako: http://i471.photobucket.com/albums/rr77/toropreto/2012-07-0813_30_07.gif
13 godina
offline
Programiranje u C++-u - pitanja i odgovori

Ma znam ja. Ali ovaj gore nekuzi. Mora shvatiti razliku izmedju a=b i &a=b.

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

Ovaj znak (&) sluzi da varijabla proslijeduje vrijednost iz neke funkcije u main, tako da je na kraju i u mainu i u nekoj funkciji neka varijabla jednaka. 

Jesam shvatio dobro?

Windows Phone FTW
Moj PC  
0 0 hvala 0
13 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori
What Is a Reference?
There are two kinds of references: lvalue references and rvalue references. Essentially, a reference is
a name that can be used as an alias for something else.
An lvalue reference is an alias for another variable; it is called an lvalue reference because it refers to
a persistent storage location that can appear on the left of an assignment operation. Because an lvalue
reference is an alias and not a pointer, the variable for which it is an alias has to be specifi ed when the
reference is declared; unlike a pointer, a reference cannot be altered to represent another variable.
An rvalue reference can be used as an alias for a variable, just like an lvalue reference, but it differs
from an lvalue reference in that it can also reference an rvalue, which is a temporary value that is
essentially transient.
Ivor Horton's Beginning Visual C++ 2012
Kako, iz ceka ucis programirati?
 
0 0 hvala 1
16 godina
offline
Re: Programiranje u C++-u - pitanja i odgovori
TaG kaže...
What Is a Reference?
There are two kinds of references: lvalue references and rvalue references. Essentially, a reference is
a name that can be used as an alias for something else.
An lvalue reference is an alias for another variable; it is called an lvalue reference because it refers to
a persistent storage location that can appear on the left of an assignment operation. Because an lvalue
reference is an alias and not a pointer, the variable for which it is an alias has to be specifi ed when the
reference is declared; unlike a pointer, a reference cannot be altered to represent another variable.
An rvalue reference can be used as an alias for a variable, just like an lvalue reference, but it differs
from an lvalue reference in that it can also reference an rvalue, which is a temporary value that is
essentially transient.
Ivor Horton's Beginning Visual C++ 2012
Kako, iz ceka ucis programirati?

Citao sam ovdje o funkcijama..valjda sam skuzio

 

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

Ovdje imas popis odlicnih knjiga iz kojih mozes nauciti c++:

http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list

 

Nadam se da znas eng, ako ne kreni ucit

Ja sam C++ krenuo uciti s C++ Primer 

http://www.amazon.com/dp/0321714113/?tag=stackoverfl08-20

 

i nedavno sam bacio oko i na ovo:

Ivor Horton's Beginning Visual C++ 2012

 

isto ok knjiga za pocetak, barem meni

 

U njima imas objasnjeno sta je & i za sto sluzi i kako radi kao i mnoge ostale stvari,

tako da bi ja rade krenuo uciti po redu iz neke knjige kako "spada"...

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

Hvala, ali nemam sad vremena za knjige kupovat, vec se par dana spremam za taj mali ispit  u kojem moram znati kako rade funkcije. 

Ne kuzim zasto okolisate umjesto da mi jednostavno ukratko objasnite i sve super...

 

Sad, ako bi netko mogao, molio bi, da objasni kako doc do ovih rjesenja na slikama.

2. slika, odkud ono c=b na kraju?

4. slika, kad prodem kroz while petlju dode mi a[2]=3, a to nista ne mjenja brojeve koji su u polju, tako da bi ispis meni dosao 1 2 3 4 5, a treba biti obrnuto?

 

 

Hvala.

2.slika 2.slika
4.slika 4.slika
Windows Phone FTW
Moj PC  
0 1 hvala 0
17 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

Slika 2.

Obrati pozornost:

int func(int a, char& b); // boldano je referenca, procitaj sto ti je Tracer napisao za reference

Znaci kad se pozove:

func(b, c);

Mozes zamisliti kao: a = b i &b = c;

S obzirom da imas &b = c, znaci da kad kasnije napises b = 98, automatski mijenjas i c, tocnije, s dva razlicita naziva mijenjas jedno te istu kucicu u memoriji. Prvo je u toj kucici pisalo 97 (jer je znak 'a' dekadski 97, vidi ASCII tablicu), a zatim si upisao u tu istu kucicu broj 98 (preko drugog naziva iliti reference). Ako pogledas ASCII tablicu, vidjet ces da je broj 98 zapravo znak 'b', ako ga ispises kao char.

 

Slika 4.

Pisi si pojedina stanja na papir ako ti je lakse tako.

1:

i = 0, j = 4, uvjet je tocan, while se izvrsava.

a[0] je 1, to spremimo u temp.

a[4] je 5, to spremimo na mjesto a[0].

temp je 1, to spremimo u a[4].

U principu, napravili smo zamjenu prvog i zadnjeg elementa. Sad je poredak: 5 2 3 4 1.

2:

i = 1, j = 3, uvjet je tocan, while se izvrsava.

a[1] je 2, to spremimo u temp.

a[3] je 4, to spremimo na mjesto a[1].

temp je 2, to spremimo u a[3].

To je bila zamjena drugog i predzadnjeg elementa. Sad je poredak: 5 4 3 2 1.

3:

i = 2, j = 2, uvjet je tocan, while se izvrsava.

a[2] je 3, to spremimo u temp.

a[2] je 3, to spremimo na mjesto a[2].

temp je 2, to spremimo u a[2].

To je bila u stvari zamjena jednog te istog elementa, ne utjece na poredak. Poredak je i dalje isti: 5 4 3 2 1.

Perhaps today IS a good day to die. PREPARE FOR RAMMING SPEED!
Poruka je uređivana zadnji put uto 14.1.2014 0:42 (1domagoj1).
16 godina
offline
Programiranje u C++-u - pitanja i odgovori

Hvala, to se traži, sad je jasno..Nisam povezao ascii tablicu s zadatkom na drugoj slici pa me bunilo.. 

Windows Phone FTW
Moj PC  
0 0 hvala 0
15 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
DommY kaže...
Sad, ako bi netko mogao, molio bi, da objasni kako doc do ovih rjesenja na slikama.

Najlakše, pokreni debugger i idi polako liniju po liniju i prati što se događa s varijablama.

To understand what recursion is, you must first understand recursion.
17 godina
offline
Programiranje u C++-u - pitanja i odgovori

Neću ti se petljati u posao, ali po mom mišljenju ovo ti je pogrešan put učenja, takvi zadaci nisu teški, ali zahtjevaju poznavanje teorije uključno do funkcija.

Što ako ti da zadatak sa pokazivačima umjesto referencama, pa još da preneseš polje pokazivačem, pa koji sa aritmetikom pokazivača, dakle jednostavno moraš znati da je & operator dohvaćanja adrese.

Za ovo trebaš neku literaturu, osim ako baš ne pogode zadaci istovjetni ovima.

Pa vidio sam u onom zadatku da ti traži deklaraciju i definiciju funkcije, e pa, tko im brani da zatraže posebno, a ne implicitno. Tko im brani da ti uvale naredbu continue u petlju.

Poruka je uređivana zadnji put uto 14.1.2014 15:07 (Floki).
 
1 0 hvala 1
16 godina
offline
Re: Programiranje u C++-u - pitanja i odgovori
Floki kaže...

Neću ti se petljati u posao, ali po mom mišljenju ovo ti je pogrešan put učenja, takvi zadaci nisu teški, ali zahtjevaju poznavanje teorije uključno do funkcija.

Što ako ti da zadatak sa pokazivačima umjesto referencama, pa još da preneseš polje pokazivačem, pa koji sa aritmetikom pokazivača, dakle jednostavno moraš znati da je & operator dohvaćanja adrese.

Za ovo trebaš neku literaturu, osim ako baš ne pogode zadaci istovjetni ovima.

Pa vidio sam u onom zadatku da ti traži deklaraciju i definiciju funkcije, e pa, tko im brani da zatraže posebno, a ne implicitno. Tko im brani da ti uvale naredbu continue u petlju.

Kako onda da učim? Na informatici u Rijeci sam, 1. godina preddiplomskog studija. Pokazivače još nismo radili, tako da ne moze se i nije se to pojavilo (danas sam imao taj ispit).

Ove zadatke koje sam tu postao su iz neke pripreme, prema njima je sastavljen ispit. 

Windows Phone FTW
E-mail:
Lozinka:
 
vrh stranice