PDA

View Full Version : سوال: کد ریاضی با سی پلاست



pesarake
پنج شنبه 19 اردیبهشت 1392, 19:19 عصر
سلام دستان
که فرمول ریاضی هست میخوام تو برنامه بیارم
میتونید کمکم کنید؟
به زبان سی پلاس پلاس
میخوام یه برنامه بنویسم که اعداد از مبنای 2 به مبنای 10 رو تبدیل کنه و همچنین 10 رو به مبنای 16 رو تبدیل انجام بده
خیلی فوریه

eshaghrahimy
پنج شنبه 19 اردیبهشت 1392, 19:54 عصر
سلام این کد هرمبنایی را تبدیل به مبنای دیگه می کنه البته اینجا تالار c# عزیز
// mabna.cpp : Defines the entry point for the console application.
//

//#include "stdafx.h"
//
//
//int _tmain(int argc, _TCHAR* argv[])
//{
// return 0;
//}
//
#include "stdafx.h"

#include <iostream>
#include <conio.h>
#include <math.h>
using namespace std;
//----------------------------------------------//
char MyChar(long int num)
{
char a;
if (num <= 9 && num >= 0) a = num + 48;
else if (num == 10) a = 'A';
else if (num == 11) a = 'B';
else if (num == 12) a = 'C';
else if (num == 13) a = 'D';
else if (num == 14) a = 'E';
else if (num == 15) a = 'F';
return a;
}
//----------------------------------------------//
long int Myflag(long int mabna ,char num[])
{
long int i = 0 , counter = 0;
long int mynum;
long int flag = 1;

for ( i =0 ; num[i] != '\0' ; i++)
{
if (num[i] >=48 && num[i] <=57) mynum = num[i]-48 ;
else if (num[i] == 'A' || num[i] == 'a') mynum = 10;
else if (num[i] == 'B' || num[i] == 'b') mynum = 11;
else if (num[i] == 'C' || num[i] == 'c') mynum = 12;
else if (num[i] == 'D' || num[i] == 'd') mynum = 13;
else if (num[i] == 'E' || num[i] == 'e') mynum = 14;
else if (num[i] == 'F' || num[i] == 'f') mynum = 15;
if (mynum >= mabna) flag = 0;
}
return flag;
}
//----------------------------------------------//
long int Myten(long int mabna , char num[])
{
long int i = 0 , count = 0 , counter = 0;
long int ten = 0;
long int mynum;
for (i = 0 ; num[i] != '\0' ; i++ ) counter++;
counter--;
for ( i = counter ; i >=0 ; i--)
{
if (num[i] >=48 && num[i] <=57) mynum = num[i]-48 ;
else if (num[i] == 'A' || num[i] == 'a') mynum = 10;
else if (num[i] == 'B' || num[i] == 'b') mynum = 11;
else if (num[i] == 'C' || num[i] == 'c') mynum = 12;
else if (num[i] == 'D' || num[i] == 'd') mynum = 13;
else if (num[i] == 'E' || num[i] == 'e') mynum = 14;
else if (num[i] == 'F' || num[i] == 'f') mynum = 15;
ten =ten +(mynum * pow(mabna , count));
count++;
}
return ten;
}
//----------------------------------------------//
int main()
{
//clrscr();
long int mabna1 , mabna2 , count = 0 , ten , i , mod;
char all[100] , number , num[100];
cout << "Please Enter The Input Base= ";
cin >> mabna1;
cout << "Please Enter The Number= ";
cin >> all;
if (!Myflag (mabna1 , all))
{
cout << "\nThe Number Does Not Math With The Input Base";
}
else
{
cout << "Please Enter The Output Base= ";
cin >> mabna2;
ten = Myten (mabna1 , all);
mod = ten % mabna2;
num[0] = MyChar(mod);
while (ten >= mabna2)
{
ten /= mabna2;
mod = ten % mabna2;
count++;
num[count] = MyChar(mod);
}
for (i = count ; i >= 0 ; i--)
{
cout << num[i];
}
}
_getch();
return 0;
}

pesarake
پنج شنبه 19 اردیبهشت 1392, 20:53 عصر
با تشکر از دئوستمون
کسی میتونه کد دقیق رو بده بهم به همراه فایل اجرایی؟
خیلی نیاز دارم

_behnam_
جمعه 20 اردیبهشت 1392, 02:03 صبح
سلام. فکر کنم اینجا بخش سی شارپ باشه.
شما اگه توی بخش مربوط به سی پلاس پلاس سوال رو مطرح کنید زودتر به نتیجه میرسید.

موفق باشید/

pesarake
جمعه 20 اردیبهشت 1392, 22:16 عصر
ممنون میشم اینجا جوابمو بدین
نمیدونستم کجا پست بزنم
خیلی لازم دارم