PDA

View Full Version : درخواست راهنمایی



nanateam
یک شنبه 08 دی 1392, 23:42 عصر
با عرض سلام و ادب
میخوام تابعی بنویسم که دو ارگومان را بپذیرد و ارگومان اول را به توان ارگومان دوم برساند ارگومان اول یک مقدار doble و ارگومان دوم یک مقدار صحیح مثبت یا منفی است.برنامه ای میخوام که از ان استفاده کنه

double power(double a , int b)
{
double c = 1;
for(int i = 1 ; i<= b ; i++)
{
c*=a;
}
return c;
}
int main ()
{
double a;
int b;
cin >> a;
cin >> b;
cout << power(a,b);
return 0;
}

اینو یکی از بچه های بسار خوب انجمن کمکم کرد و نوشتیم ولی برای منفی نمیدونیم چی میشه ممنون میشم اگه کم و کسری داره کمکمون کنید تا درست بشه

amirhossein.ha
دوشنبه 09 دی 1392, 17:00 عصر
برنامه هاتون رو توی تگ قرار بدید تا درست نمایش داده بشه .

برای توان منفی هم اول توان مثبت رو محاسبه میکنیم بعد معکوس میکنیم

میتونید از این تابع استفاده کنید که توان رو به صورت بازگشتی محاسبه میکنه :‌

double power(double a,int b)
{
if(!b)
return 1;
if(b<0)
return 1/power(a,fabs(b));
if(b==1)
return a;
return a*power(a,b-1);
}

اگه سوالی در مورداین تابع داشتی بپرس

nanateam
سه شنبه 10 دی 1392, 23:52 عصر
ببخشید الان نوشتیم اینجا رو ایراد گرفت
cin >> a;
cin >> b;

میشه کامل و بدون نقص بنویسید مشگلش از کجاست؟

amirhossein.ha
چهارشنبه 11 دی 1392, 23:23 عصر
باید بگید ارورش چیه تا حلش کنیم ولی فک کنم یکی از اینا باشه :

اگه iostram رو include نکرده باشید ارور میده

این خظ رو هم به بالای برنامه تون اضافه کنید اگه نباشه ارور میده :‌
using namespace std;

nanateam
پنج شنبه 12 دی 1392, 11:28 صبح
ممنونم اقا این رو یکی از دوستام نوشت و واسم فرستاد اما وقتی اجراش میکنم یه لحظه باز میشه و بسته میشه برنامه نویسی سالمه اما نمیدونم چرا اینجوریه
#include <conio.h>
#include <iostream.h>
#include <math.h>
void tav(){
double a,r=1,r1;
int b,i;
cout << "please 2 number for a^b : ";
cin >> a >> b ;
if (b>1){
for (i=1 ; i<=b ; i++){
r = (double)r*a;
}
cout << "result : " << r ;
}
else if (b==1){cout << "result : " << a ;}
else if (b<1) {
for (i=1 ; i<=abs(b) ; i++){
r = (double)r*a;
}
r1 = (double)1/r;
cout << "result : " << r1 ;
}
}

// ---------------
int main(){
tav();
getch();
return 0;
}

ممنون میشم راهنماییم کنید

کامبیز اسدزاده
پنج شنبه 12 دی 1392, 12:10 عصر
این رو تست کنید


#include <conio.h>
#include <iostream>
#include <math.h>

using namespace std;

void tav(){
double a, r = 1, r1;
int b, i;
cout << "please 2 number for a^b : ";
cin >> a >> b;
if (b>1){
for (i = 1; i <= b; i++){
r = (double)r*a;
}
cout << "result : " << r;
}
else if (b == 1){ cout << "result : " << a; }
else if (b<1) {
for (i = 1; i <= abs(b); i++){
r = (double)r*a;
}
r1 = (double)1 / r;
cout << "result : " << r1;
}
}

// ---------------
int main(){
tav();
_getch();
return 0;
}

nanateam
پنج شنبه 12 دی 1392, 20:44 عصر
دستتون درد نکنه کار داد ممنونم

کامبیز اسدزاده
پنج شنبه 12 دی 1392, 20:55 عصر
دستتون درد نکنه کار داد ممنونم

توجه کنید در کد شما گزینه getch(); رو به _getch(); تبدیل کردم زیرا در نسخه C++11 به اینور این موارد منسوخ شده اند.