C je procedualni jezik, njegov naslednik pa je C++, katerega glavna prednost je objektna usmerjenost.
Za enostaven problem si vzamimo kopico točk, katere ležijo na 2D površini. Točke se lahko premikajo in zanimajo nas razdalje med točkami.
Kako bi se lotili problema na procedularni način (funkcijsko)?
Primerek možne (neobjektne) rešitve:
#include < iostream >
#include < cmath >
using namespace std;
void izpisiTocko(int tockeX[],int tockeY[],int index_tocke)
{
cout<<"x:"<<tockeX[index_tocke]<<" y:"<<tockeY[index_tocke]<<endl;
}
double izracunajRazdaljo(int tockeX[],int tockeY[],int index_tocke1,int index_tocke2)
{
int razdaljaTockeX = tockeX[index_tocke1]-tockeX[index_tocke2];
int razdaljaTockeY = tockeY[index_tocke1]-tockeY[index_tocke2];
return sqrt(razdaljaTockeX*razdaljaTockeX+razdaljaTockeY*razdaljaTockeY);
}
void spremeniTocko(int tockeX[],int tockeY[],int index_tocke,int novX,int novY)
{
tockeX[index_tocke] = novX;
tockeY[index_tocke] = novY;
}
int main()
{
int tockeX[]={1,-1,3,4,5,0};
int tockeY[]={1,-4,-2,4,2,0};
spremeniTocko(tockeX,tockeY,5,2,2);
izpisiTocko(tockeX,tockeY,0);
izpisiTocko(tockeX,tockeY,5);
cout<<izracunajRazdaljo(tockeX,tockeY,0,5);
cin.get();
return 0;
}