PDA

Դիտել ողջ տարբերակը : Ով գաղափար ունի VIsual C++-ից



Stranger
14.05.2008, 15:13
Ժողովուրդ շտապ պետք է կարկուլյատոր գրված C++- ով.

nenesys
14.05.2008, 16:20
կալկուլատոր Visual-ի տակ թե Consoli ?

Programmer
14.05.2008, 16:50
Ժողովուրդ շտապ պետք է կարկուլյատոր գրված C++- ով.

Իսկ ինչով կարանք օգնենք?
Պատրաստի ծրագիրն էս ւոզւմ, թե օգնենք որ դու գրես?

Enipra
14.05.2008, 20:13
Էս ծրագիրը մի 3-4 տարվա պատմություն ունի, գրել եմ առաջին կամ երկրորդ կուրսում, չեմ հիշում ինչ, ոնց, նոր էինք սովորում... կոդի մեջ թերություններ կլինեն, ոնց էլ չլինի, բայց նորմալ աշխատում ա էլի ;)

Stranger
19.05.2008, 15:57
Էս ծրագիրը մի 3-4 տարվա պատմություն ունի, գրել եմ առաջին կամ երկրորդ կուրսում, չեմ հիշում ինչ, ոնց, նոր էինք սովորում... կոդի մեջ թերություններ կլինեն, ոնց էլ չլինի, բայց նորմալ աշխատում ա էլի ;)


Շնորհակալ եմ :ok շատ-շատ

Tigran Adunts
21.05.2008, 13:15
Կուրսայինս հենց կալկուլատորա, արդեն հանձնում եմ 2շաբթի, բայց գաղափար չունեմ :D

PygmaliOn
31.05.2009, 20:48
մդաա, մի կալկուլյատոր (հաշվիչ) եմ գրել, շատ-շատ պարզ, բայց կուզենայի, որ այն աշխատեր նաև սահող կետով թվերի(իրական թվերի) հետ: Այլ ի՞նչ ձև կա կենդանացնելու կետով կոճակը...
Մի մաս կոդից.

void CCalcDlg::OnEqu()
{
switch(m_operation)
{case ADD:m_number+=m_result; break;
case SUB:m_number=m_result-m_number; break;
case MUL:m_number=m_result*m_number; break;
case DIV:if(m_result%m_number==0)
{ m_number=m_result/m_number; UpdateData(FALSE);}

else
{CString str;
str.Format("%10.3f", (double)m_result/m_number);
SetDlgItemText(IDC_EDIT1, str);
}
break;
}
if(m_operation!=DIV)UpdateData(FALSE);
m_number=0;
OnNumber();
}
void CCalcDlg::OnDot()
{
///???????????? այստեղ չգիտեմ....
}

PygmaliOn
01.06.2009, 21:12
լավ ստացվեց...:)

Հովհաննես
29.07.2009, 12:34
Բայց եթե կալկուլյատորը պետք է նաև վիզուալ սարքել դա մեծ խնդիր կառաջացնի, որովհետեև c++ վիզուալ մասը սկզբում շատ բարդ է

_DEATH_
29.07.2009, 20:11
Բայց եթե կալկուլյատորը պետք է նաև վիզուալ սարքել դա մեծ խնդիր կառաջացնի, որովհետեև c++ վիզուալ մասը սկզբում շատ բարդ է

win api գոյություն ունի շատ դաժան, mfc էլի դաժան: Եվ Qt գոյություն ունի, երեքն էլ գիտեմ, սեփական փորձիցս ասեմ: Կառավարման հիմունքների համար "Դասակարգման մեթոդ"-ի ծրագիրը նախ win api-ով եմ գրել 1548 տող, հետո Qt-ով 158 տող: Qt-ով գրածը շատ ավելի հաճելի տեսք ունի, շատ ավելի հարմար է օգտագործել. շատ ավելի տրամաբանական ու պարզ ա ծրագրի կոդը, մոտ 10 անգամ ավելի քիչ ժամանակ եմ ծախսել, իմիջայլիոց առաջին անգամ եմ Qt-ով գրել: Վինդուսի տակ էլ, Լինուքսի տակ էլ կոմպիլացիա արել եմ աշխատել ա, իսկ win api-ն մենակ վինդուս: Միակ առավելությունը win api-ի էն ա, որ վինդուսի համար ցածր մակարդակով ա գրած, ծրագիրը ավելի փոքր ա չափսը ու արագ ա աշխատում ու վինդուսից մեջ եղած գրադարաններից բացի էլ ոչ մի գրադարան չի պահանջում:

xaker00
24.09.2009, 20:20
Էս ծրագիրը մի 3-4 տարվա պատմություն ունի, գրել եմ առաջին կամ երկրորդ կուրսում, չեմ հիշում ինչ, ոնց, նոր էինք սովորում... կոդի մեջ թերություններ կլինեն, ոնց էլ չլինի, բայց նորմալ աշխատում ա էլի ;)

ես կալկւլիատորը, ոնց էկզե ֆայլ սարքեմ՞:(

Elmo
24.09.2009, 21:13
ես կալկւլիատորը, ոնց էկզե ֆայլ սարքեմ՞:(

Կոմպիլյացիա արա:
Ի միջայլոց նոր կոմպիլյատորներում(իմ դեպքում visaul studio 2008) վերբեռնած pow ֆունկցիայի նորմալ աշխատանքի համար բոլոր m_tiv=(int)(m_tiv*pow(10, ex)/10); տողերում պետք է 10 թիվը գրել 10,0 տեսքովլ:
Այսինքն m_tiv=(int)(m_tiv*pow(10.0, ex)/10);

Իմ մոտ միայն դրանից հետո սկսեց աշխատել:

Cyber
26.09.2009, 16:45
Ահա իմ գրած հաշվիչը



#include<iostream.h>
#include<math.h>
// ast = ( 180 / pi ) * rad
const double degress = 0.0174532925199432958 ; // 3.141926535897932384626433832795 / 180
double gumarum (double a , double b)

{
cout << "aha gumar@\t\t" << a + b << endl << endl ;
return 0 ;
}


double hanum (double a , double b)

{
cout << "aha tarberutyun@\t" << a - b << endl << endl ;
return 0 ;
}

double bazmapatkum (double a , double b)

{
cout << "aha artadryal@\t\t" << a * b << endl << endl ;
return 0 ;
}

double bazhanum (double a , double b)

{
cout << "aha qanord@\t\t" << a / b << endl << endl ;
return 0 ;
}

double sinus (double a)
{
cout << "aha sinus@\t\t" << sin(a * degress) << endl << endl ;
return 0;
}

double cosinus (double a)
{
cout << "aha sinus@\t\t" << cos(a * degress) << endl << endl ;
return 0;
}

double tangens (double a)
{
cout << "aha tangens@\t\t" << tan(a * degress) << endl << endl ;
return 0;
}

double logaritm (double a , double b)

{
cout << "aha logaritm@\t\t" << log(b) / log(a) << endl << endl ;
return 0 ;
}

double astichan (double a , double b)

{
cout << "aha ardyunq@\t\t" << pow(a,b) << endl << endl ;
return 0 ;
}

double armat (double a , double b)

{
cout << "aha ardyunq@\t\t" << pow(a,1/b) << endl << endl ;
return 0 ;
}

int bun ()
{
double a;
double b;
short int action ;
cout << "Mutqagrir hetevyal tiv@ hetevyal gortzoxutyan hamar" << endl ;
cout << "1\tgumarum" << " ||\t" <<"5\tsin" << " ||\t"<<" 9\tarmat"<<endl ;
cout << "2\thanum" << " ||\t" <<"6\tcos" << " ||\t"<<" 10\tastichan" << endl ;
cout << "3\tbazmapatkum" << " ||\t" <<"7\ttan" << endl ;
cout << "4\tbazhanum" << " ||\t" <<"8\tlog" <<endl ;
cin >> action ;
if ( action == 1 )
{
cout << "Mutqagrir erku tiv" << endl;
cout << "\t\t\t";
cin >> a ;
cout << "\t\t\t";
cin >> b ;
gumarum(a,b);
}
if (action == 2 )
{
cout << "Mutqagrir erku tiv" << endl;
cout << "\t\t\t";
cin >> a ;
cout << "\t\t\t";
cin >> b ;
hanum(a,b);
}
if (action == 3 )
{
cout << "Mutqagrir erku tiv" << endl;
cout << "\t\t\t";
cin >> a ;
cout << "\t\t\t";
cin >> b ;
bazmapatkum(a,b);
}
if (action == 4 )
{
cout << "Mutqagrir erku tiv" << endl;
cout << "\t\t\t";
cin >> a ;
cout << "\t\t\t";
cin >> b ;
bazhanum(a,b);
}
if (action == 5)
{
cout << "Mutqagrir mek tiv" << endl;
cout << "\t\t\t";
cin >> a ;
sinus(a);
}
if (action == 6)
{
cout << "Mutqagrir mek tiv" << endl;
cout << "\t\t\t";
cin >> a ;
cosinus(a);
}
if (action == 7 )
{
cout << "Mutqagrir mek tiv" << endl;
cout << "\t\t\t";
cin >> a ;
tangens(a);
}
if (action == 8 )
{
cout << "Mutqagrir himq@ ev tiv@" << endl;
cout << "\t\t\t";
cin >> a ;
cout << "\t\t\t";
cin >> b ;
logaritm(a,b);
}
if (action == 9 )
{
cout << "Mutqagrir tiv@ ev astichan@" << endl;
cout << "\t\t\t";
cin >> a ;
cout << "\t\t\t";
cin >> b ;
armat(a,b);
}
if (action == 10 )
{
cout << "Mutqagrir tiv@ ev astichan@" << endl;
cout << "\t\t\t";
cin >> a ;
cout << "\t\t\t";
cin >> b ;
astichan(a,b);
}
if ( action > 10 || action < 1 )
{
cout << "*>*>*>*>*>*>*>*>*>*>*>*>>>>>>>_____Sxal_____<<<<<<<*<*<*<*<*<*<*<*<*<*<*<*" << endl ;
}

return bun();
}

int main()
{

cout << "Barev , du bacel es Hrant-i tzragravoratz Hasvic@" << endl ;
bun () ;
return 0;
}

Ես նոր եմ սովորում :
Enipra դու որտեղ ես սովորել ?

_DEATH_
26.09.2009, 17:53
Ահա իմ գրած հաշվիչը

Լրիվ նայելու հավես չունեմ, բայց մի հատ աչքի տակով նայեցի իրար հետևից եկող չորս տող ու ամեն տողում մի բան դուրս չեկավ…


int bun ()
{
double a;
double b;
short int action ;

1) bun() աշխատի ֆունկցիայի անունի ու փակագծերի մեջտեղը պռոբել չդնել, որովհետև որոշ կոմպիլյատոռներ սխալ են տալիս տենց
2) double a, b; նույն տիպի երկու փոփոխական կարող ես իրար հետ հայտարարել ստորակետով անջատելով, տենց էլ կլինի, բայց կլասսների համար ա մենակ պետք տենց գրել, էն էլ պարտադիր չի, ակներև լինելու համար են տենց գրում, որ կլասսի անդամները պարզ երևան…
3)short int action ; սրա փոխարեն գրի int action ;
short գրի մենակ խիստ անհրաժեշտության դեպքում, ասենք եթե հարուր հազար էլեմենտով զանգված ա ու քո համար էլ 195 kb օպերատիվ հիշողությունը ճոխություն ա: :D

Cyber
26.09.2009, 18:27
Ես նոր եմ սովորում , բայց ուզում եմ որ իմ ծրագրերը հնարավորին արագ աշխատեն ( նույնիսկ եթե ոչ մեկ չզգա այդ բանը ) , համ էլ էդ ձևով լեզուն կսովորեմ :

xaker00
26.09.2009, 18:35
Կոմպիլյացիա արա:
Ի միջայլոց նոր կոմպիլյատորներում(իմ դեպքում visaul studio 2008) վերբեռնած pow ֆունկցիայի նորմալ աշխատանքի համար բոլոր m_tiv=(int)(m_tiv*pow(10, ex)/10); տողերում պետք է 10 թիվը գրել 10,0 տեսքովլ:
Այսինքն m_tiv=(int)(m_tiv*pow(10.0, ex)/10);
մնում է ասեք թե ետ ինչպես անեմ՞

_DEATH_
26.09.2009, 19:33
Ես նոր եմ սովորում , բայց ուզում եմ որ իմ ծրագրերը հնարավորին արագ աշխատեն ( նույնիսկ եթե ոչ մեկ չզգա այդ բանը ) , համ էլ էդ ձևով լեզուն կսովորեմ :

Cyber ջան int-ի տեղը short int գրելով ընդհակառակը ծրագիրը դանդաղ ա աշխատում…

Cyber
27.09.2009, 09:38
Ո՞նց ,
Իմ մոտ int -ը 4 բայթ ա , short int -ը ՝ 2 բայթ :
խնդրում եմ ասա - էդ ո՞նց ա դանդաղ աշխատում :

Elmo
27.09.2009, 10:16
մնում է ասեք թե ետ ինչպես անեմ՞

Visual Studio տեղադրի, ու nor.dsw ֆայլը բացի դրանով: Մնացածը ինքդ կտեսնես :)

Cyber
27.09.2009, 10:55
Ո՞նց ,
Իմ մոտ int -ը 4 բայթ ա , short int -ը ՝ 2 բայթ :
խնդրում եմ ասա - էդ ո՞նց ա դանդաղ աշխատում :

Ի՞նչ կասես _DEATH_

_DEATH_
27.09.2009, 11:16
Ո՞նց ,
Իմ մոտ int -ը 4 բայթ ա , short int -ը ՝ 2 բայթ :
խնդրում եմ ասա - էդ ո՞նց ա դանդաղ աշխատում :


Ինչ կապ ունի որ int -ը 4 բայթ ա? Իմիջիայլոց էտ պարտադիր չի որ 4 բայթ լինի, կարա լինի 2, 4, 8,... արխիտեկտուռայից կախված: Իսկ short-ը օրենքով int-ի կեսն ա լինում, բայց Windows-ի դեպքում ինչքան գիտեմ ցանկացած կոմպի համար 16 բիթանոց ամբողջ թիվ ա, էտ դեպքում արդեն կասկած ա առաջանում որ ավելորդ ժամանակի կորուստ կլինի, ճիշտ ա ժամանակակից կոմպերի վրա ընդհանրապես անհնար կլինի տարբերությունը զգալ: Եթե win-ի համար ես ապագայում ծրագիր գրելու էտ հաշվի առ...
int-ի դեպքում թիվը լինում ա ճիշտ ռեգիստրի չափով:
Ամեն դեքում short int մի գրի, գոնե short գրի :D նույն բանն ա:

Cyber
29.09.2009, 17:49
C++ եմ սովորում ու գրքում մոտավորապես այսպիսի օրինակ կա


#include<iostream.h>
#include<cstdlib>

int main()
{
enum Days {Kiraki,Erkushapti,Ereqshapti,Choreqshapti,
Hingshapti,Urpat,Shapat} ;
int choice ;
cout << "Mutqagrir or@ ( 0-6 ) :" << endl;
cin >> choice ;
if ( choice = Kiraki || choice == Shapat ) //չգիտեմ ինչի ա մի տեղ = , մի տեղ == :o
cout << "Qo mot hangstyan or e :" << endl;
else
cout << "Qo mot paxat anelu or e :" << endl <<
"Gna paxat ara !!!" << endl << endl ;
system("pause");
return 0;
}

Իսկ դուք ինչ եք մտածում ???

One_Way_Ticket
29.09.2009, 18:05
== պիտի լինի, պարզապես սխալվել են:

_DEATH_
29.09.2009, 18:08
if ( choice = Kiraki || choice == Shapat ) //չգիտեմ ինչի ա մի տեղ = , մի տեղ == :o

Պետք ա լինի
if ( choice == Kiraki || choice == Shapat )

Մեկ հավասարը վերագրման նշանն ա, չնայած C-ում թույլատրվում ա պայմանի մեջ վերագրում կատարել: Օրինակ
if(a=5) cout<<"hopa";
Այս դեպքում a-ին վերագրվում ա 5 ու վերադարձվում ա վերագրման արժեքը, այսինքն 5, իսկ 5-ը հավաս չի 0, ուրեմն պայմանը ճիշտ ա դուրս գալիս ու կտպվի hopa

Էտ քո գրած պայմանի դեպքում choice = Kiraki || choice == Shapat, քանի որ enum Days-ում Kiraki-ին բան չի վերագրված, սկսվում ա 0-ից
այսինքն
Kiraki=0
Erkushapti=1
Ereqshapti=2
...
choice = Kiraki , ոչ թե ստուգում ա choice-ի ու Kiraki-ի հավասարությունը, այլ choice-ն վերագրում ա Kiraki, վերագրում տալիս ա 0, հետո choice-ը համեմատվում ա Shapat-ի հետ ու քանի որ վերագրվել ա 0, էլի հավասար չի լինում ու տալիս ա false, ||-ով պայմաները միացվում են 0 կամ false, արդյունքում պայմանը չի լինում ու դուրս ա գալիս որ կիրակին հանգստյան օր չի…

Ամեն ծրագրի մեջ դրա պատճառով տրամաբանական սխալ եմ ունենում, որը շատ դժվար ա գտնելը :( Ախր ձեռս Python-ին ա սովոր, որը սինտաքսային սխալ ա տալիս պայմանի մեջ վերագրում կատարելուց:

Cyber
29.09.2009, 18:21
շատ շատ մերսի , մի հատ հարց էլ MFC -ից ունեմ
մի տեղ տեսել եմ այսպիսի օպերատոր
void CTempHelloDlg::OnBeepButton()
{
// TODO: Add your control notification handler code here
MessageBeep((WORD)-2) ;
}

ինչի (WORD)-2[ այլ ոչ թե ասենք
սրանցից մեկը , որ մսդն - ից եմ նայել

Value Description
0xFFFFFFFF SystemDefault
MB_ICONASTERISK SystemAsterisk
MB_ICONEXCLAMATION SystemExclamation
MB_ICONHAND SystemHand
MB_ICONQUESTION SystemQuestion
MB_OK SystemDefault