C/C++

Vnuce

http://abix.mk
Член од
20 март 2006
Мислења
2.602
Поени од реакции
223
Какви стандарди измизлувам, сум видел милијарда програми што делат еден ист header и повикуваат функции од него
Вакви:

Еве на пр. код за множење , делење собирање и одземање, самите операции да се во header-ot додека вредностите во cpp-to.
Едно е декларација на функција, а друго дефиниција на фунцкија.
Header-ot треба да го содржи само интерфејсот, ништо повеќе. (Има исклучоци за inline операции, мада што има поубав начин... али тоа не е битно во муабетов)

Ме сфаќаш? :smir:
 

VOLK2234

еврофоб и хомоскептик
Член од
16 септември 2008
Мислења
5.517
Поени од реакции
4.387
Едно е декларација на функција, а друго дефиниција на фунцкија.
Header-ot треба да го содржи само интерфејсот, ништо повеќе. (Има исклучоци за inline операции, мада што има поубав начин... али тоа не е битно во муабетов)

Ме сфаќаш? :smir:

Би те сватил ако објасниш попрактично

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

#define N_PNT 50

typedef struct TPoint {
int x;
int y;
} TPT;

TPT Points[] =
{{73, 58}, {45, 19}, {89, 6}, {22, 40}, {92, 16}, {65, 66},
{55, 4}, {45, 18}, {64, 13}, {56, 81}, {73, 33}, {58, 40},
{40, 71}, {90, 60}, {16, 47}, {6, 52}, {62, 91}, {90, 83},
{69, 78}, {61, 62}, {71, 57}, {32, 53}, {67, 91}, {83, 89},
{14, 53}, {45, 35}, {11, 6}, {9, 50}, {70, 65}, {50, 47},
{65, 57}, {40, 68}, {44, 40}, {77, 61}, {27, 59}, {27, 54},
{94, 89}, {90, 88}, {61, 66}, {72, 4}, {11, 41}, {3, 74},
{44, 33}, {47, 79}, {68, 33}, {32, 64}, {66, 23}, {55, 12},
{37, 54}, {28, 95}};

double GetDistancePoints( TPT A, TPT B )
{
return( sqrt( pow( (B.x - A.x), 2 ) + pow( (B.y - A.y), 2 ) ) );
}

int main(int argc, char* argv[])
{
int i, j, k,
MaxI, MaxJ, MinI, MinJ, MaxSI, MaxSJ, MaxSK;
double MaxD, MinD, D, A, B, C, P, S, MaxS;

for ( i = 0; i < N_PNT; i++ )
for ( j = i + 1; j < N_PNT; j++ ) {
D = GetDistancePoints( Points, Points[j] );
if ( i == 0 && j == 1 ) {
MaxD = MinD = D;
MaxI = MinI = 0;
MaxJ = MinJ = 1;
}
else {
if ( D > MaxD ) {
MaxD = D;
MaxI = i;
MaxJ = j;
}

if ( D < MinD ) {
MinD = D;
MinI = i;
MinJ = j;
}
}
}

for ( i = 0; i < N_PNT; i++ )
for ( j = i + 1; j < N_PNT; j++ )
for ( k = j + 1; k < N_PNT; k++ ) {
A = GetDistancePoints( Points, Points[j] );
B = GetDistancePoints( Points, Points[k] );
C = GetDistancePoints( Points[j], Points[k] );
P = (A + B + C) / 2;
S = sqrt( P * (P - A) * (P - B) * (P - C) );

if ( i == 0 && j == 1 && k == 2 ) {
MaxS = S;
MaxSI = i;
MaxSJ = j;
MaxSK = k;
}
else
if ( MaxS < S ) {
MaxSI = i;
MaxSJ = j;
MaxSK = k;
MaxS = S;
}
}

cout << "1) MinDistancePoints = " << MinD << " between points P"
<< MinI + 1 << "(" << Points[MinI].x << ", "
<< Points[MinI].y << ") and "
<< "P" << MinJ + 1 << "(" << Points[MinJ].x << ", "
<< Points[MinJ].y << ");" << endl;

cout << "2) MaxDistancePoints = " << MaxD << " between points P"
<< MaxI + 1 << "(" << Points[MaxI].x << ", "
<< Points[MaxI].y << ") and "
<< "P" << MaxJ + 1 << "(" << Points[MaxJ].x << ", "
<< Points[MaxJ].y << ");" << endl;

cout << "3) Largest area of triangle = " << MaxS << " with points P"
<< MaxSI + 1 << "(" << Points[MaxSI].x << ", "
<< Points[MaxSI].y << ") and "
<< "P" << MaxSJ + 1 << "(" << Points[MaxSJ].x << ", "
<< Points[MaxSJ].y << ") and "
<< "P" << MaxSK + 1 << "(" << Points[MaxSK].x << ", "
<< Points[MaxSK].y << ");" << endl;

system( "pause" );

return 0;
}

Како да го разделам ова во header i source????
 
Член од
8 октомври 2007
Мислења
4.680
Поени од реакции
8.511
Би те сватил ако објасниш попрактично


Како да го разделам ова во header i source????
Нека хедерот се вика:
Funkcija.h
Во него ќе имаш:

#ifndef FUNKCIJA_H
#define FUNKCIJA_H

#include <iostream>
#include <math>
#include <stdlib.h>
using namespace std;
#define N_PNT 50

typedef struct TPoint {
int x;
int y;
} TPT;

double GetDistancePoints( TPT A, TPT B );
#endif

Во Funkcija.cpp ќе имаш:

#include "Funkcija.h" // treba da e vo ist folder kako i Funkcija.cpp

TPT Points[] =
{{73, 58}, {45, 19}, {89, 6}, {22, 40}, {92, 16}, {65, 66},
{55, 4}, {45, 18}, {64, 13}, {56, 81}, {73, 33}, {58, 40},
{40, 71}, {90, 60}, {16, 47}, {6, 52}, {62, 91}, {90, 83},
{69, 78}, {61, 62}, {71, 57}, {32, 53}, {67, 91}, {83, 89},
{14, 53}, {45, 35}, {11, 6}, {9, 50}, {70, 65}, {50, 47},
{65, 57}, {40, 68}, {44, 40}, {77, 61}, {27, 59}, {27, 54},
{94, 89}, {90, 88}, {61, 66}, {72, 4}, {11, 41}, {3, 74},
{44, 33}, {47, 79}, {68, 33}, {32, 64}, {66, 23}, {55, 12},
{37, 54}, {28, 95}};

double GetDistancePoints( TPT A, TPT B )
{
return( sqrt( pow( (B.x - A.x), 2 ) + pow( (B.y - A.y), 2 ) ) );
}

И на крај направи еден Main.cpp фајл во кој ќе имаш:

#include "Funkcija.h" //Funkcija.h i Funkcija.cpp treba da se vo ist folder //so Main.cpp
int main(int argc, char* argv[])
{
int i, j, k,
MaxI, MaxJ, MinI, MinJ, MaxSI, MaxSJ, MaxSK;
double MaxD, MinD, D, A, B, C, P, S, MaxS;

for ( i = 0; i < N_PNT; i++ )
for ( j = i + 1; j < N_PNT; j++ ) {
D = GetDistancePoints( Points, Points[j] );
if ( i == 0 && j == 1 ) {
MaxD = MinD = D;
MaxI = MinI = 0;
MaxJ = MinJ = 1;
}
else {
if ( D > MaxD ) {
MaxD = D;
MaxI = i;
MaxJ = j;
}

if ( D < MinD ) {
MinD = D;
MinI = i;
MinJ = j;
}
}
}

for ( i = 0; i < N_PNT; i++ )
for ( j = i + 1; j < N_PNT; j++ )
for ( k = j + 1; k < N_PNT; k++ ) {
A = GetDistancePoints( Points, Points[j] );
B = GetDistancePoints( Points, Points[k] );
C = GetDistancePoints( Points[j], Points[k] );
P = (A + B + C) / 2;
S = sqrt( P * (P - A) * (P - B) * (P - C) );

if ( i == 0 && j == 1 && k == 2 ) {
MaxS = S;
MaxSI = i;
MaxSJ = j;
MaxSK = k;
}
else
if ( MaxS < S ) {
MaxSI = i;
MaxSJ = j;
MaxSK = k;
MaxS = S;
}
}

cout << "1) MinDistancePoints = " << MinD << " between points P"
<< MinI + 1 << "(" << Points[MinI].x << ", "
<< Points[MinI].y << ") and "
<< "P" << MinJ + 1 << "(" << Points[MinJ].x << ", "
<< Points[MinJ].y << ");" << endl;

cout << "2) MaxDistancePoints = " << MaxD << " between points P"
<< MaxI + 1 << "(" << Points[MaxI].x << ", "
<< Points[MaxI].y << ") and "
<< "P" << MaxJ + 1 << "(" << Points[MaxJ].x << ", "
<< Points[MaxJ].y << ");" << endl;

cout << "3) Largest area of triangle = " << MaxS << " with points P"
<< MaxSI + 1 << "(" << Points[MaxSI].x << ", "
<< Points[MaxSI].y << ") and "
<< "P" << MaxSJ + 1 << "(" << Points[MaxSJ].x << ", "
<< Points[MaxSJ].y << ") and "
<< "P" << MaxSK + 1 << "(" << Points[MaxSK].x << ", "
<< Points[MaxSK].y << ");" << endl;

system( "PAUSE" );

return 0;
}

Ако имаш некој проблем пиши може ќе можам да помогнам
 

VOLK2234

еврофоб и хомоскептик
Член од
16 септември 2008
Мислења
5.517
Поени од реакции
4.387
Фала друже :vozbud:
 

VOLK2234

еврофоб и хомоскептик
Член од
16 септември 2008
Мислења
5.517
Поени од реакции
4.387
Ova so CodeBlocks

C:\Documents and Settings\usr\Desktop\CodeBlocksProjects\GLUT\distance\main.cpp||In function `int main(int, char**)':|

C:\Documents and Settings\usr\Desktop\CodeBlocksProjects\GLUT\distance\main.cpp|10|error: `Points' was not declared in this scope|

C:\Documents and Settings\usr\Desktop\CodeBlocksProjects\GLUT\distance\main.cpp|34|error: `Points' was not declared in this scope|

C:\Documents and Settings\usr\Desktop\CodeBlocksProjects\GLUT\distance\main.cpp|56|error: `Points' was not declared in this scope|
||=== Build finished: 3 errors, 0 warnings ===|
 
Член од
8 октомври 2007
Мислења
4.680
Поени од реакции
8.511
Ova so CodeBlocks

C:\Documents and Settings\usr\Desktop\CodeBlocksProjects\GLUT\distance\main.cpp||In function `int main(int, char**)':|

C:\Documents and Settings\usr\Desktop\CodeBlocksProjects\GLUT\distance\main.cpp|10|error: `Points' was not declared in this scope|

C:\Documents and Settings\usr\Desktop\CodeBlocksProjects\GLUT\distance\main.cpp|34|error: `Points' was not declared in this scope|

C:\Documents and Settings\usr\Desktop\CodeBlocksProjects\GLUT\distance\main.cpp|56|error: `Points' was not declared in this scope|
||=== Build finished: 3 errors, 0 warnings ===|

Пробај префрли ги:

TPT Points[] =
{{73, 58}, {45, 19}, {89, 6}, {22, 40}, {92, 16}, {65, 66},
{55, 4}, {45, 18}, {64, 13}, {56, 81}, {73, 33}, {58, 40},
{40, 71}, {90, 60}, {16, 47}, {6, 52}, {62, 91}, {90, 83},
{69, 78}, {61, 62}, {71, 57}, {32, 53}, {67, 91}, {83, 89},
{14, 53}, {45, 35}, {11, 6}, {9, 50}, {70, 65}, {50, 47},
{65, 57}, {40, 68}, {44, 40}, {77, 61}, {27, 59}, {27, 54},
{94, 89}, {90, 88}, {61, 66}, {72, 4}, {11, 41}, {3, 74},
{44, 33}, {47, 79}, {68, 33}, {32, 64}, {66, 23}, {55, 12},
{37, 54}, {28, 95}};

од Funkcija.cpp во Funkcija.h, после последниот ред

А ако и тоа не сака префрли ги
TPT Points[] =
{{73, 58}, {45, 19}, {89, 6}, {22, 40}, {92, 16}, {65, 66},
{55, 4}, {45, 18}, {64, 13}, {56, 81}, {73, 33}, {58, 40},
{40, 71}, {90, 60}, {16, 47}, {6, 52}, {62, 91}, {90, 83},
{69, 78}, {61, 62}, {71, 57}, {32, 53}, {67, 91}, {83, 89},
{14, 53}, {45, 35}, {11, 6}, {9, 50}, {70, 65}, {50, 47},
{65, 57}, {40, 68}, {44, 40}, {77, 61}, {27, 59}, {27, 54},
{94, 89}, {90, 88}, {61, 66}, {72, 4}, {11, 41}, {3, 74},
{44, 33}, {47, 79}, {68, 33}, {32, 64}, {66, 23}, {55, 12},
{37, 54}, {28, 95}};

во Main.cpp



Извини што не можев да пишам порано
 

аце_шваба

ГОРД ВУЈКО
Член од
10 септември 2008
Мислења
1.512
Поени од реакции
45
ако може некој да ми ја најде грешката, не верувам дека ќе му биде тешко на некој шо повеќе се разбира од мене
using namespace std;
# include <iostream.h>
# include <cmath>
int main()
{
int i,j;
cout<<"mojvnesen tekst 1"<<endl<<"mojvnesen tekst 2"<<endl;
cout<<"zapsi edna brojka";
cin>>j;
for (i=0,i<j,i++)
{
cout<<" mojvnesen tekst 3";
if (j%10==0){cout<<endl;
}
}
if(j<10){cout<<"mojvnesen tekst 4"<<j<<endl;
}
else {
cout<<"mojvnesen tekst 5"<<j<<"pati"<<endl<<"mojvnesen tekst 6"<<endl;
}
system("PAUSE");
return 0;
}
фала однапред
 

SkyDriver

Would like my bananna ?
Член од
31 јули 2008
Мислења
2.140
Поени од реакции
221
ако може некој да ми ја најде грешката, не верувам дека ќе му биде тешко на некој шо повеќе се разбира од мене
фала однапред
for циклусот вака направи го

Код:
for (i=0;i<j;i++)
Значи место запирките... стави точка-запирка. Мислам дека само тоа е грешката.

Друже... една забележка... кога работиш во C++ користи ја библиотеката iostream, библиотеката cmath во овој случај не ти треба (доволна ти е само iostream) и кога пишуваш код гледај да ти биде посреден малце :) ако би работел на некој посложен програм ќе се изгубиш ако не ти е среден кодот. Исто така за нов ред поедноставно би ти било да користиш \n место endl... на крај место system("pause") користи cin.get() и тоа return 0 не ти е потребно доколку сакаш програмата да заврши по извршувањето... и последна ствар... кога декларираш променливи одма доделувај им вредност зашто во спротивно тие си земаат вредност од нивната меморија и може да се деси да добиваш грешни резултати...

Код:
# include <iostream>

using namespace std;

int main()
{
    int j=0;
    cout << "Moj vnesen tekst 1.\nMoj vnesen tekst 2.\n\n";
    cout << "Kolku pati sakate da se povtori zborot 'Zdravo' ? ";
    cin >> j;
    
    cout << endl;
    
    for (int i=1;i<=j;i++){
        cout<<"Zdravo\tPovtoruvane br: " << i <<endl;
        }
        
    cout << endl;
    
    if (j%10==0){
                 cout<<"Brojot " << j << " e cel broj.\n\n";
                 }
                 else
                 {
                     cout<<"Brojot " << j << " ne e cel broj.\n\n";
                 }
                     
    if(j<10){
             cout<<"Brojot " << j << " e pomal od 10.\n";
             }
             else
             {
                 cout<< "Brojot " << j << " e ednakov ili pogolem od 10.\n";
             }
             
cin.get();
cin.get();
}
 

аце_шваба

ГОРД ВУЈКО
Член од
10 септември 2008
Мислења
1.512
Поени од реакции
45
for циклусот вака направи го

Код:
for (i=0;i<j;i++)
Значи место запирките... стави точка-запирка. Мислам дека само тоа е грешката.
фала многу другар
инаку немам работено С++ одамна затоа вакви глупи грешкиме збунија, а програмата ми беше колку да се позезам со едно дете не е ништо посериозна
уште ендаш фала
 
Член од
11 август 2008
Мислења
32
Поени од реакции
1
Ako moze pomos pri resavanje na ovaa programa vo C:

1. Dadeni se n tocki vo ramninata. Da se najde prosekot asr od dolzinite na site dijagonali na formiraniot n-agolnik i da se ispecatat koordinatite na krajnite tocki na stranata od n-agolnikot koja ima najpriblizna dolzina do asr.
 

SkyDriver

Would like my bananna ?
Член од
31 јули 2008
Мислења
2.140
Поени од реакции
221
Ako moze pomos pri resavanje na ovaa programa vo C:

1. Dadeni se n tocki vo ramninata. Da se najde prosekot asr od dolzinite na site dijagonali na formiraniot n-agolnik i da se ispecatat koordinatite na krajnite tocki na stranata od n-agolnikot koja ima najpriblizna dolzina do asr.
Тригонометрија ? :jaj:

Математички се решава по ред...

D=n(n-3)/2
asr = вкупниот збир на должините / вкупниот број на дијагоналите.

...и се така додека да дојдеш до решението, али во програмирањето да знаеш дека ако идеш така по ред нема да ти е точна задачата. Значи тебе ти се бараат само координатите, а не ти се бара цела задача по ред. Доколку би ја решавал дела задача по ред и ако дојде до пресметки со поголеми броеви нема да ти дава точни резултати програмата.
Е сеа незнам точно по која „формула“ би ја решавал задачава (мразам математика), али ако ми текне некое решение ќе го пишам.
 

nozo.mk

Ultras Karpos Boys
Член од
6 септември 2007
Мислења
472
Поени од реакции
18
Како во Visual C++ да ги менувам вредностите на properties за диалог , но преку код. На пример со код сакам да ја сменам вредноста на Border од Dialog Frame во None.
 

SkyDriver

Would like my bananna ?
Член од
31 јули 2008
Мислења
2.140
Поени од реакции
221
Како во Visual C++ да ги менувам вредностите на properties за диалог , но преку код. На пример со код сакам да ја сменам вредноста на Border од Dialog Frame во None.
Ако мислиш за CLR Windows App... вака...

Еве ти пример како да ја сетираш позицијата да речеме на еден лабел:
Код:
// Кај „x“ пишуваш вредност за хоризонтална позоција.
// Кај „y“ пишуваш вредност за вертикална позоција.
label1->Location = System::Drawing::Point(x, y);

//Еве детално како би изгледало...
label1->Location = System::Drawing::Point(40, 161);
Еве ти пример и за боја на лабел:
Код:
label1->ForeColor = System::Drawing::Color::Green;
Сите елементи така ги „кодираш“... значи како „дефиниција“ вака ќе му дојде:
Код:
imetoNaElementot->propertiesDelot = System:: ...
// Кога ќе го пишеш scope операторот ќе ти се појави слегнувачки прозор... 
// Листај и барај што ти треба :)
Ваљда разбра што сакав да кажам :)
 

nozo.mk

Ultras Karpos Boys
Член од
6 септември 2007
Мислења
472
Поени од реакции
18
Дада ова ми е јасно. Ова е за сетирање на контроли. Но мене не ми треба да подесувам контроли туку самиот диалог. За диалогот мислам неможе вака т.е незнам со кое име/променлива да му пристапам
 

Kajgana Shop

На врв Bottom