C++ zadaci,resenja,pitanja,tutoriali

u pravu si to za spamovanje.......nisam toliko strucan da sudim alki smatram da je malo ko na forumu.......i jos nesto........ja sa nekoliko prijatelja radim razne projekte tj. programe za koje naravno uzimamo pare i sve to..........prvenstveno zbog gui-a radimo u c#........a ja i dalje radim c++ kada su u pitanju zadaci tako da...........nebitno samo hocu da dokazem da c# nije deciji jezik kao sto mnogi misle..............

Naravno da nije, fora je da je još uvijek previše mlad da bi konkurisao C++ u nekim stvarima. Zato takođe možeš naći dosta mišljenja da će ga vremenom stići... :)
 
2Paca
nece mo se vise svadjati
ja sam samo hteo da ti objasnim da ne treba pljuvati c++ zato sto je malo komplikovani
Zaradjujem i ja pare sa QT-em pa sta sad :D
Inace nije C# napravio Microsoft vec je napravio samo .NET Framework
Ko ne voli microsoft i njegove proizvode (a to sam ja) nece koristiti .NET i tacka vec ce lepo uzeti npr mono ili ce pr4omeniti jezik :)

Ajde sad lepo da nam neko napise neke primere sa QT-em ako je radio da nepisem samo ja:)
 
meni se svidja visual comp. za c++ ..........bas mi je ok.....inace v c++ ima drag-drop sistem za pravljenje formi.....moze da pravi sve....bas je dobar.....bolji od dev-c++............cujem i da je kompajler tj. clr bolji od onog na dev-u....zab sam kako se zove :))))........ae daj jedan zadatak...:)
 
to je klasa koja sluzi za kontrolu widget-a u qt-u
npr da bi napravio formu u QT-u mogu se koristiti sledece klase
1 QWidget
2 QMainWindow
3 QDialog
razlike mozes pronaci u zvanicnoj dokumentaci
u zadatku pise QWidget
SUPER
u main funkciji napravimo objekat koji ce da nasledi QWidget
a posle koriscenje klase QDesktopWidget izracunamo centar i tu prikazemo QWidget fa funkcijom show()
 
ej 'oce li neko da mi kaze sto ovo ne radi ?? uvek mi je p=29

pravougaonik.h
Kod:
class Pravougaonik
{
    int a,b;
    int P;
    public :
        void Pravougaonik::Uzmi(int x,int y) const ;
        void Pravougaonik::RacunajPovrsinu(Pravougaonik) const ;
        void Pravougaonik::Pisi(Pravougaonik);
};




pravougaonik.C

Kod:
#include "pravougaonik.h"
#include <iostream>
#include <stdlib.h>

using namespace std;

void Pravougaonik::Uzmi(int x,int y)
{   
    a=x;
    b=y;
}
void Pravougaonik::RacunajPovrsinu(Pravougaonik p)
{
    p.P=0;
    p.P=p.a*p.b;
}

void Pravougaonik::Pisi(Pravougaonik p)
{
    cout <<"P = "<< p.P;
}


i main.cpp

Kod:
#include "pravougaonik.h"
#include <iostream>
#include <stdlib.h>


using namespace std;

int main(int argc, char *argv[])
{
    Pravougaonik Novi;
    
    int q,w;
    
    cin >> q;
    cin >> w;
    
    Novi.Uzmi(q,w);
    Novi.RacunajPovrsinu(Novi);
    Novi.Pisi(Novi);
    
  
  system("PAUSE");	
  return 0;
}


??
 
ne treba skontao sam :D

Imam par primjedbi na tvoje rješenje. Radi ono i ovako, ali može bolje ovo da se napiše. ;)

1. Kad si unutar klase Pravougaonik, dovoljno je da napišeš void Uzmi, nema potrebe za razrješenjem dosega sa Pravougaonik::Uzmi.


2. Nije ti radilo vjerovatno zato što si stavio const za računanje površine. Ali, vidi ovo - svaka metoda koja je članica klase, a nije deklarisana kao friend, ima jedan skriveni argument. Ta argment je prvi argument metode (ako ih ima više), odnosno jedini (ako stoje samo () zagrade). this je pokazivač na tekući objekat. Tako pošto si stavio argumente x i y, probaj da u nekoj metodi napišeš this-> - ispisaće ponuđene opcije, a to su svi elementi klase koji su do sad definisani, znači imaćeš u meniju da odabereš x, y ili bilo koju metodu do tog trenutka definisanu. Pošto ti ovom metodom koristiš samo elemente klase, nemaš potrebu za nekim dodatnim argumentima, onda ti je bolje napisati ovako:

Kod:
class Pravougaonik
{
	double a,b;
public :
	explicit Pravougaonik (int a = 1, int b = 1); // ovo je specijalni tip metode - konstruktor (može biti više različitih, a destruktor samo jedan, explicit ne moraš stavljati još, ali čim počneš sa konstruktorima, nauči kad se i kako koristi)

	double Povrsina () const; // računa površinu, pozivaš tamo gdje bi inače stavio P
	void Pisi() const; // ovdje imaš jedan argument - this, tj. pokazivač na tekući objekat
};

Kod:
#include "pravougaonik.h"
#include <iostream>
#include <cstdlib>

using namespace std;

Pravougaonik::Pravougaonik (int a, int b)
{   
	if ((a <= 0) || (b <= 0)) exit (1);
	x = a; y = b;
}

double Pravougaonik::Povrsina () const
{
	return x * y;
}

void Pravougaonik::Pisi() const
{
	cout << "x = " << x << " , y = " << y << " , P = " << Povrsina (); // isto kao da si napisao this->x, this->y, this->Povrsina () jer metoda Pisi nije friend, već prava metoda članica klase, pa ima pokazivač this koji pokazuje na tekući objekat te klase. Zato nemaš potrebe prosleđivati objekat tipa klase (kao ti što si prosleđivao p, kad već imaš pokazivač na taj isti objekat. Ono što si ti radio jeste da iz nekog objekta obj1 pozoveš za neki drugi objekat metodu za površinu. Zašto? Nema potrebe. Mogao bi uraditi obj1.Povrsina(obj2); Zar nije lakše pisati obj2.Povrsina();?
}

Kod:
#include "pravougaonik.h"
#include <iostream>
#include <cstdlib>


using namespace std;

int main(int argc, char *argv[])
{
	double a, b;

	cin >> q;
	cin >> w;

	Pravougaonik p = new Pravougaonik (q, w);

	p.Pisi ();

	system("PAUSE");
	cout << endl;
	return 0;
}

Stavio sam:
a) umjesto int - double, da mogu i realni brojevi
b) izbacio višak Pravougaonik:: unutar same klase (i dalje mora onaj dio u posebnom .cpp fajlu)
c) umjesto Uzmi metode stavio sam konstruktor, mada je tvoja sreća što u ovom slučaju postoji podrazumjevani konstruktor kad ti ne napišeš svoj, ali si morao ručno unositi vrijednosti. Pogledaj malo po netu, ovo je jako bitno za oop!
d) umjesto <stdlib.h> sam stavio <cstdlib>
e) izbacio sam ti nepotrebne argumente u metodama. Dodao const tamo gdje samo čitaš argumente i računaš, a ne mijenjaš argumente.
f) računanje površine sam ti integrisao u metodu za ispis. Možeš je i ovako koristiti, kao imeobjekta.Povrsina ()
 
ej dobio sam ideju da napravimo neki tip tima ljudi sa krste koji rade u c/c++/c# koji mogu da naprave sopstveni forum, da rade projekte zajedno, itd.....

Nije da te obeshrabrujem, ali:

a) nas nekoliko da drži čitav forum? mnogo muke da bi povećali posjećenost, držali servere, reklamirali se... zbog čega?
b) forum drže ozbiljni ljudi, a forum na temu c/c++/c# mora imati dobre programere koji će privući druge... gdje tu vidiš nas?
c) nemam ja ništa protiv tebe, ali još ni osnove nisi zagrebao. počeli smo približno u isto vrijeme, a već mnogo kasniš. bolje uzmi dobru literaturu i zapni. ako ti nešto nije jasno, slobodno pitaj. doduše počeo si ići oop pristupom, odbacuješ polako c-like stil, što je u c++ dobro. :)
 
zaostajem u c++ definitivno :D :D............***........vide sam zavolio c# i delphi..........trudim se :D :D......koliko god mogu :D......hvala :D.....znao sam ovo za this ali nisam pronasao njegovu upotrebu u c++.............hvala o5 puno :D :D......usput koje si godiste ??

Sad znaš zašto neke metode imaju "praznu" listu argumenata. ;)

I pogledaj malo detaljnije sad konstruktore, a kad njih savladaš, uči preklapanje operatora. Ako ti treba pomoć, javi mi se slobodno, ovdje na temi ili preko poruke. :)
 
da da hvala u svakom slucaju ali sada pravim malu pauzu sa programiranjem jer sam zavrsio posledji projekat u ovoj godini..........sada cu poceti da radim matematiku sam...........kad sam sam mogao da doguram dovde sa programiranjem probacu 100 puta manje sa matematikom..........o5 hvala u svakom slucaju x) :D :D :D :D
 
Evo malo da se vratimo na temu nasao sam na netu jedan zanimljiv bit hack sa kojim se moze odrediti da je broj paran ili neparan iako je to poprilicno jednostavno odraditi ovako je brze iako nema potreba da bude brze tako da je ovo manje vise beskorisno ali zanimljivo bar za mene :D

Zadatak odrediti da li je uneti broj n paran ili neparan:

Kod:
#include<iostream>

int main()
{
unsigned int n;
std::cin>>n;

if((n & 1)== 0)
std::cout<<"Broj je paran";
else
std::cout<<"Broj je neparan";


return 0;
}

sad jedini deo koda koji je najbitniji
Kod:
if((n & 1)== 0)
testira da li je broj paran tako sto koristi bitwise operator AND & jer ako je broj neparan njegova poslednji broj kada je predstavljen binarno je 1 i kada bude 1&1 onda dobijemo 1 i broj je neparan a ako je 0&1 onda dobijemo 0 i broj je paran evo na primeru:

Kod:
0101  //broj 5 predstavljen binarno
&       //operator and
0001  // broj 1
i dobijemo
Kod:
0001  //i broj je neparan jer je zadnji 1
 
поздрав програмери. имам један проблем, ако може помоћ:
треба написати класу низова реалних бројева која садржи конструктор, конструктор копије, деструктор, сабирање и одузимање 2 низа, одређивање максимума и минимума, сортирање, надовезивање два низа један на други, обртање редоследа елемената низа, читање и писање низа, множење низа целим бројем и додавање новог елемента на крај низа.
у главном програму проверити класу...
нешто сам покушала, али ме сабирање и надовезивање уби...
хвала унапред!
 
ej bequick DarkSoul ili bilo ko ae da mi napisete najbolje naredbe za konverzije tipova jel moze.....treba mi :D :D :D.......cuo sam da ima itoa i atoa ali da one nisu sastavni dioo c++ ili tako nesto nzm........samo ako moze one neke konverzije poput int to string, string to int, double to int, i to znate vec :D :D hvala unapred :D
 

Back
Top