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

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

Ovako napamet sad kad gledam... d3 ima vrijednost 42 i pri pozivu funkcije addone taj objekt predaješ (kopiraš) njenom parametru d (također objektu tipa demo). Tad se ispisuje copy constructor(42). Povratna vrijednost funkcije je također objekt demo pa se pri konačnom stvaranju d4 opet poziva copy konstruktor - copy constructor(43) - poziv funkcije addone je povećao vrijednost za 1. U pravilu, sve ono što si ti već rekao..

Poruka je uređivana zadnji put pon 19.9.2011 22:25 (TracerCPP).
14 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

Probavo sam sam rješiti ali nije išlo. Točnije kad unosim broejve mogu unositi do besvjesti. Nikad da petlja prekine a znam da je uvjet u petlji dobar.

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

reka san da ne znan ama bas nista i da cu sam pokusat priko tutorijala naucit...

a tebi ako je danas los dan ili si se diga na na livu nogu lici svoje frustracije negdi drugo...pravi si drnde,nisi moga izabrat bolji nick.

i dobro si ga reka... a jesan ispa nepristojan prije, da ti za ispriku izguglam neki video tutorijal ?  {#}

ne triba sve ok,iman sve tutorijale

17 godina
offline
Programiranje u C++-u - pitanja i odgovori

Ja sam u MS VS-u opalio break point na d4 i sa buttonom F11 išao korak po korak.

Dobio sam sljedeći rezultat:

 

D4 - 

1 . poziva konstruktor kopije vraća x - 42 i opet ide u main

2. poziva funkciju addone x povećava na 43

3. iz addone vraća u konstruktor kopije x ostaje 43

imaš ispisan slijed 42 - 43 jer ti jedino ispisuje vrijednost u konstruktoru kopije - a u funkciji addone nema ispisa.

 

addone je funkcija , naravno -ne konstruktor

dakle - ovdje je funkcija addone "zakomplicirala" stvari - vraća objekt koji poziva konstruktor kopije

 

Poruka je uređivana zadnji put pon 19.9.2011 23:04 (Floki).
 
0 0 hvala 1
17 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
Floki kaže...

Ja sam u MS VS-u opalio break point na d4 i sa buttonom F11 išao korak po korak.

Dobio sam sljedeći rezultat:

 

D4 - 

1 . poziva konstruktor kopije vraća x - 42 i opet ide u main

2. poziva konstruktor addone x povećava na 43

3. iz addone vraća u konstruktor kopije x ostaje 43

 

Znaci ako sam dobro skuzio ispis je isto kao i meni?

 

default constructor

copy constructor(0)

constructor(42)

copy constructor(42)

copy constructor(43)

 

Malo sam istrazival, naime Standard dozvoljava kompajlerima da maknu nepotrebne pozive konstruktora kopije (onda ne bi ispisalo predzadnju liniju copy constructor(42)), ali ne rade svi kompajleri tu optimizaciju na svoju ruku, vecini treba dati switch kojim se naznacuje da se zeli takva optimizacija.

Gentoo... it's like wiping your ass with silk. Or sandpaper. // There no school like the old school and I'm the fucking headmaster!
14 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

Pri samoj predaji objekta d3 funkciji addon poziva se copy-konstruktor . Vrlo lako za provjeriti:

 

void addone(demo d)
{
 //
}

demo d3(10);
addone(d3);

 

 

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

Pozdrav svima..

Trenutno razvijam program za 3d rekonstrukciju scene iz više 2d slika. Zapeo sam na jednom dijelu gdje želim te slike prikazati u obliku galerije. Ono što je specifično je to da želim

kada stisnem tipku end da ode na zadnju sliku iz galerije, tipka home prva slika iz galerije, page up iduča slika,page down prethodna slika. Do sada sam napravio ovo:

 

//u hederu
IplImage *m_Input[50];

//u glavnom programu

int v=1;
CString ff;
ff.Format ("%d",v);
const TCHAR* cstr = (LPCTSTR)ff;
ShowImage(cstr,m_Input[v]);
do{
if(GetAsyncKeyState(VK_END))

cvDestroyWindow(cstr);
v=50;
ff.Format ("%d",v);
const TCHAR* cstr = (LPCTSTR)ff;
ShowImage(cstr,m_Input[v]);
}
if(GetAsyncKeyState(VK_HOME))
{
cvDestroyWindow(cstr);
v=1;
ff.Format ("%d",v);
const TCHAR* cstr = (LPCTSTR)ff;
ShowImage(cstr,m_Input[v]);
}
if(GetAsyncKeyState(VK_PRIOR))
{
cvDestroyWindow(cstr);

if (v==50) 
{
v=1;
}
if(v<50) 
{
v++;
}
ff.Format ("%d",v);
const TCHAR* cstr = (LPCTSTR)ff;
ShowImage(cstr,m_Input[v]);
}
if(GetAsyncKeyState(VK_NEXT))
{
cvDestroyWindow(cstr);
if (v==1)
{
v=50;
}
if (v > 1) 
{
v--;
}
ff.Format ("%d",v);
const TCHAR* cstr = (LPCTSTR)ff;
ShowImage(cstr,m_Input[v]);
}
if(GetAsyncKeyState(VK_ESCAPE))
{
break;
}

}while(true); 

 

 

Nažalost ovaj kod ne radi baš ono što bih ja htio.

 

Prvi problem je taj što kad stisnem page up ili page down on mi premota jedno 3-4 slike u šutu kao da sam držao tipku malo duže pa je primio više signala pa ih je tako i prebacio..

Zna li itko zašto je to tako?

 

A drugi problem je taj što mi uopce ne prikaže slike nego samo prazan prozor u kojemu inače budu slike,još je zanimljivije to kada stisnem escape za izlazi iz while petlje TEK onda mi prikaže sliku za zadnju vrijednost v varijable. Za ovaj drugi problem jedan programer mi je rekao da je to tako zbog toga što je kod u beskonačnoj while petlji pa program nema vremena uploadati sliku, i napomenuo mi je da koristim WM_KEYDOWN message handler. Ja sam malo tražio po netu o toj temi, ali meni je to jako zbunjujuče budučui da sam početnik. Moje pitanje je dali je to moguče to napraviti pomoču while petlje ili baš moram koristit message handler?

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

To je zato jer koristiš GetAsyncKeyState. Ta funkcija radi na nivou cijelog OS-a i hvata tipke bilo da su stisnute unutar tvoje aplikacije ili negdje drugdje (što može prouzročiti ogroman bug u tvojoj aplikaciji) te nerjetko procesira višestruke poruke za dohvat pritisnute tipke. Umjesto toga koristi OnKeyDown ili OnKeyUp evente.

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

Ima nekog smisla..

Nego hoces mi reči kako se koristi, jer sam ti ja totalni početnik.

Probao sam stavit OnKeyDown umjesto GetAnsiKeyState, no to nemože tako.. potrebno je deklarirati ili nešto

Hočeš li mi molimte napisati kako bi to trebalo iči plsss

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

Sama forma (CDialog u MFC-u) bi trebala imati evente tipa OnKeyDown i OnKeyUp. Unutar njih se detektira koja tipka je pritisnuta i što bi tada trebalo raditi.

 

http://social.msdn.microsoft.com/forums/en-us/csharpgeneral/thread/F8F5F159-6FB3-4038-8337-369F4C4948CF

http://msdn.microsoft.com/en-us/library/983st27a%28v=vs.80%29.aspx

 

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

Da li mi neko moze napisat program za c++ koji izracunava povrsinu i obim pravougaonika

http://www.bug.hr/forum/topic/softver-literatura-usluge/prodaja-knjige-hardware/103166.aspx
 
0 0 hvala 0
17 godina
moderator
online
Re: Programiranje u C++-u - pitanja i odgovori
Intelovac123 kaže...

Da li mi neko moze napisat program za c++ koji izracunava povrsinu i obim pravougaonika

Reci da se šališ! Zar ne znaš osnovne naredbe C++-a? Zar ne znaš kako se izračunava površina i opseg pravokutnika? Gdje je problem?

14 godina
offline
Re: Programiranje u C++-u - pitanja i odgovori
mbaksa kaže...
  Gdje je problem?

  To ti je onaj problem kod odgoja djece - Kada djete naučiš da mu sve ti radiš, onda se nauči i tako za svaku sitnicu čeka da mu drugi uradi, kao npr.

 

http://www.bug.hr/forum/topic/skola-osnovna-srednja-faks/ah-ta-skola/26142.aspx?page=150&jumpto=2265229&sort=asc&view=flat

{One death is tragedy, but a million deaths is statistics}
14 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

Ovo nije za mene......

 

http://www.bug.hr/forum/topic/softver-literatura-usluge/prodaja-knjige-hardware/103166.aspx
 
0 0 hvala 0
17 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
Intelovac123 kaže...

Da li mi neko moze napisat program za c++ koji izracunava povrsinu i obim pravougaonika

Sve se moze dogovoriti. Ponudu (novcanu naravno, ne primam u naturi) posalji na PP ili ovdje, meni je svejedno.

Gentoo... it's like wiping your ass with silk. Or sandpaper. // There no school like the old school and I'm the fucking headmaster!
13 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

moze i ode... zanima i mene rjesenje {#}

17 godina
offline
Re: Programiranje u C++-u - pitanja i odgovori
demo addone(demo d)

{

//

return demo;

}

demoi d3(42);

demo d4(addone(d3);

 

 

 

Ovdje u stvari pozivom funkcije imamo dva pridruživanja varijable tipa demo, a pridruživanjem se vrši alokacija objekta - stoga se pozivaju konstruktori kopije.

1. pozivom funkcije varijabli d pridružujemo varijablu d3. d = d3 - alociramo objekt d - a vrijednost člana x objekta d dobija vrijednost 42

2. funkcija addone vraća objekt tipa demo i ponovno imamo pridruživanje d4 = d - alocira se objekt d4 - a član x objekta d4 dobija vrijednost 43 - pošto član x objekta d koji funkcija vraća ima sada vrijednost 43.

Sve je po pravilu - samo vidimo u primjeru ono što se dešava ispod haube pošto smo napravili konzolni ispis u konstruktoru - vidimo i alokaciju objekta d u funkciji demo addone(demo d), a ta alokacija se vrši pridruživanjem koje se vrši pozivom funkcije.

 

 

Poruka je uređivana zadnji put sri 21.9.2011 12:41 (Floki).
17 godina
offline
Re: Programiranje u C++-u - pitanja i odgovori
1domagoj1 kaže...
Intelovac123 kaže...

Da li mi neko moze napisat program za c++ koji izracunava povrsinu i obim pravougaonika

Sve se moze dogovoriti. Ponudu (novcanu naravno, ne primam u naturi) posalji na PP ili ovdje, meni je svejedno.

A profe ih ovdje čitaju - pa se zlobe - jer je uvijek standardna priča - kako im profe ništa ne pokazuju{#}

Poruka je uređivana zadnji put sri 21.9.2011 12:15 (Floki).
14 godina
protjeran
offline
Re: Programiranje u C++-u - pitanja i odgovori
Intelovac123 kaže...

Da li mi neko moze napisat program za c++ koji izracunava povrsinu i obim pravougaonika

Ovdje je bitna samo primjena znanja iz aritmetičkih operatora, deklaraciji varijabli i upisa i ispisa.

Evo ti kod, ali ako nemaš namjeru za ovo potruditi se.....

 

 

int main()

{

float a,b;

float p,o;

cout<<"Program za racunanje obima i površine pravougaonika."<<endl<<"Unesite veličine stranica"<<endl;

cin>>a>>b;

p=a*b;

o=2*(a+b);

cout<<"Površina pravougaonika je "<<p<<endl<<"Obim pravougaonika je "<<o<<endl;

return 0;

}

 

 

SENAID
Poruka je uređivana zadnji put sri 21.9.2011 13:59 (Senaid_gates).
13 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
TracerCPP kaže...

Sama forma (CDialog u MFC-u) bi trebala imati evente tipa OnKeyDown i OnKeyUp. Unutar njih se detektira koja tipka je pritisnuta i što bi tada trebalo raditi.

 

http://social.msdn.microsoft.com/forums/en-us/csharpgeneral/thread/F8F5F159-6FB3-4038-8337-369F4C4948CF

http://msdn.microsoft.com/en-us/library/983st27a%28v=vs.80%29.aspx

 

 

 

 

 

Evo ovak, malo sam promjenio kod. Stavio sam u class wizzardu onkeydown message za moj dijalog prozor i on mi je sam otvorio funkciju u koju sam napisao kod i to sad izgleda ovako:

 

 

 

void CzavrsniDlg::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)

{

int v=1;

CString ff;

ff.Format ("%d",v);

const TCHAR* cstr = (LPCTSTR)ff;

ShowImage(cstr,m_Input[v]);

switch (nChar) {

   case VK_HOME:

     cvDestroyWindow(cstr);

v=global;

ff.Format ("%d",v);

cstr = (LPCTSTR)ff;

ShowImage(cstr,m_Input[v]);

break;

   case VK_END:

     cvDestroyWindow(cstr);

     v=1;

ff.Format ("%d",v);

cstr = (LPCTSTR)ff;

ShowImage(cstr,m_Input[v]);

     break;

   case VK_PRIOR:

    cvDestroyWindow(cstr);

 

 if (v==global) 

 {

 v=1;

 }

 if (v < global) 

 {

 v++;

 }

ff.Format ("%d",v);

cstr = (LPCTSTR)ff;

ShowImage(cstr,m_Input[v]);

     break;

   case VK_NEXT:

     cvDestroyWindow(cstr);

if (v==1)

{

v=global;

}

 if (v > 1) 

 {

 v--;

}

ff.Format ("%d",v);

cstr = (LPCTSTR)ff;

ShowImage(cstr,m_Input[v]);

     break;

   default:

     break;

   }

 

CDialog::OnKeyDown(nChar, nRepCnt, nFlags);

}

 

 

Ali on sada uopce neradi nepokazuje mi oupce prozor za prikaz slike. Neznam u cemu bi mogao biti problem. Jel može opet neki hint (sorry ak sam naporan, al stvarno mi treba pomoč, da mogu sam nebi nikog tu gnjavio)

 

 

Poruka je uređivana zadnji put sri 21.9.2011 17:40 (glamba).
17 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

Nevezano za tvoj problem, bilo bi jako dobro da koristis stil Kod za prikaz koda, kad pises post tu gore kod stilovi imas Kod. Lakse je nama citati kod, a samim time i pomoci.

Gentoo... it's like wiping your ass with silk. Or sandpaper. // There no school like the old school and I'm the fucking headmaster!
 
1 0 hvala 0
14 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

To ti moraš provjeriti pod kojim uvjetima i kada pozivaš prozor, sa kojeg prozora hvataš tipke i kako ih procesiraš. Ja sam ti napisao koji event bi trebao koristiti no nažalost ti dalje moraš sam.

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

može li mi neko na ovakvom programu objasniti rad s poljima u c++

 

Upiši polje od 10 brojeva, brojeve na parnim pozicijama zbroji u jednu sumu, a na neparnim u drugu sumu...

★★★★★☆
Moj PC  
0 0 hvala 0
14 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
nani_cropes kaže...

može li mi neko na ovakvom programu objasniti rad s poljima u c++

 

Upiši polje od 10 brojeva, brojeve na parnim pozicijama zbroji u jednu sumu, a na neparnim u drugu sumu...

Stvoris polje npr. int P[10];

 

Petljom uneseš 10 brojeva;

 

Sada napravis slicno ovome:

 

for(i=0;i<10;i+=2)//Ovo su brojevi na neparnim pozicijama jer P[0] sadrzi broj koji je na prvoj poziciji odnosno neparnoj poziciji u zadanom polju

{

   zbr_neparnih+=P[i]);// zbr_neparnih mira na pocetku biti postavljen na 0

}

 

Ovako slicno napravis za parne pozicije

 

 

Poruka je uređivana zadnji put sri 21.9.2011 18:56 (ivanho).
14 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

može mi neko preporučit neku knjigu ili udžbenik o c++-u. Počeo sam programirati sa knjigom "c++ za apsolutne početnike", no u toj se knjizi opisuju i grafički programi koje mene (trenutno) ne zanimaju. Najviše sam zainteresiran za matematičke/logičke zadatke koji se pojavljuju na školskim/županijskim/državnim natjecanjima iz informatike. Vidio sam da se često preporučuje Demistificirani c++, no nisam siguran dal se u njemu opisuju samo matematički/logički programi ili i grafički.

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

eh i dalje ne ide... ali...pomoću int P[10] se znači stvara polje.. ovo u zagradi onda vjerojatno označuje kolko vrijednosti stane u polje.. to shvaćam

 

iskreno.. ostalo nemam pojma :S

★★★★★☆
14 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

Da li mi neko moze napisat osnovne naredbe funkcije c++ - a?

 

Tek pocinjem sa programiranjem.

 

Radio sam u qbasic i visual basic al to nije isto kao c++ pa se teze snalazim.

http://www.bug.hr/forum/topic/softver-literatura-usluge/prodaja-knjige-hardware/103166.aspx
 
0 0 hvala 0
17 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
Intelovac123 kaže...

Da li mi neko moze napisat osnovne naredbe funkcije c++ - a?

 

Tek pocinjem sa programiranjem.

 

Radio sam u qbasic i visual basic al to nije isto kao c++ pa se teze snalazim.

Evo.

http://www.learncpp.com/

http://www.cplusplus.com/

Gentoo... it's like wiping your ass with silk. Or sandpaper. // There no school like the old school and I'm the fucking headmaster!
Poruka je uređivana zadnji put sri 21.9.2011 19:56 (1domagoj1).
15 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
nani_cropes kaže...

eh i dalje ne ide... ali...pomoću int P[10] se znači stvara polje.. ovo u zagradi onda vjerojatno označuje kolko vrijednosti stane u polje.. to shvaćam

Da, kada deklariras varijablu u uglate zagrade stavljas koliko clanova ce to polje imati.

 

polje od 10 znakova:

char p[10];

 

polje od 10 integera (cijelih brojeva):

int p[10];

 

polje od 10 floating point brojeva (realnih brojeva):

float p[10];

 

I tako za sve ostale tipove. Pravilo je: tip imevarijable[broj clanova];

Tako da mozes raditi i polja struktura, polja polja (polje ciji su clanovi zapravo nova polja)...

 

Da bi pristupao odredenim clanovima polja koristis indeks tog clana:

npr. ako imas polje cijelih brojeva:

int p[20];

 

i zelis 15-om clanu dati neku vrijednost to cinis ovako:

p[14]=10;

 

Zasto 14 a ne 15? Zato sto prvi clan u polju nema indeks 1 nego 0, kako se pocinje brojati od nule tako su i indeksi ostalih clanova manji za jedan.

My computer once beat me at chess, but we got even after a round of boxing.
Poruka je uređivana zadnji put sri 21.9.2011 19:58 (rustweaver).
14 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
1domagoj1 kaže...
Intelovac123 kaže...

Da li mi neko moze napisat osnovne naredbe funkcije c++ - a?

 

Tek pocinjem sa programiranjem.

 

Radio sam u qbasic i visual basic al to nije isto kao c++ pa se teze snalazim.

Evo.

http://www.learncpp.com/

http://www.cplusplus.com/

da je na nasem prevod ????

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