PDA

View Full Version : تابع به توان رسانده دو عدد



MShirzadi
پنج شنبه 29 آذر 1386, 02:00 صبح
دوستان سلام
من یه سئوال داشتم نمی دونم که انجا مطرح کردم اشتباهه یانه؟؟
می خوام بدونم که جواب سئوال زیر چی می شه
یه تابیعی بنوبسید که دو ورودی a و b را بگیرد و a را به توان b برساند و مقدار a هم میتواند صحیح باشد هم اعشاری و مقدار b هم میتواند مثبا باشد و هم منفی و توجه داشته یاشید که از شرط هم نم توانید استفاده کنید

با تشکر از همه

404_3140
پنج شنبه 29 آذر 1386, 08:19 صبح
می شه یه ایف گذاشت اگه - یا + باشه مقدار b. اونوقت کار یه فور هست.. برای منفی ها هر بار تقسیم می کنیم به a برای + ها ضرب می کنیم در a

seyedVB
پنج شنبه 29 آذر 1386, 11:02 صبح
سلام ... بیا ...


float PowerCalculate(float A, float B)
{
float C = 1;
if (B < 0)
{
while (B < 0)
{
C = C * A;
B = B + 1;
}
return (1/C);

}
if (B >= 0)
{
while (B > 0)
{
C = C * A;
B = B - 1;
}
}

return C;
}

MShirzadi
جمعه 30 آذر 1386, 02:38 صبح
دوستان همگی خسته نباشید دیگه به سئوال توجه نمی کنید؟؟؟؟
فکر کنم گفتم شرط نباشه

توجه داشته یاشید که از شرط هم نم توانید استفاده کنی

MShirzadi
جمعه 30 آذر 1386, 03:03 صبح
البته من روی کد دوستمون آقای seyedVB فکر کردم به شکل زیر جواب درست در میاد


float PowerCalculate(float A, float B)
{
float C = 1;
while (B < 0)
{
C = C * A;
B = B + 1;
}
C=1/C;

while (B > 0)
{
C = C * A;
B = B - 1;
}
return C;
}

404_3140
جمعه 30 آذر 1386, 07:53 صبح
توجه داشته یاشید که از شرط هم نم توانید استفاده کنی
این رو ندیده بودم :لبخند:

someCoder
جمعه 30 آذر 1386, 11:04 صبح
x = a^b
Ln(x) = Ln(a^b)
Ln(x) = b*Ln(a)
x = exp(b*Ln(a))

mohammadkhan
شنبه 01 دی 1386, 00:02 صبح
بیا داداش
البته اگه هنوز دیر نشده باشه



#include<stdio.h>
int main()
{
int a,b,c=1;
printf("\n Input number1:");
scanf("%d",&a);
printf("\n Input number2:");
scanf("%d",&b);
for(int i=0;i<b;i++)
c*=a;
printf("\n %d ^ %d = %d",a,b,c);
scanf("%d",&a);
return 0;
}

MShirzadi
شنبه 01 دی 1386, 02:32 صبح
داداش برای عدد a^-2 که جواب نمی ده چون حلقه همی شه داره زیاد میشه
دقت کن

someCoder
شنبه 01 دی 1386, 13:45 عصر
خوندی پست منو؟

a^b = exp(b*Ln(a))

mohammadkhan
شنبه 01 دی 1386, 23:52 عصر
با منی؟
من که کدم کامل و واضح و درست بود
این مال ترم 1 بود هنوز داشتمش تو آرشیو گزاشتم واست

MShirzadi
یک شنبه 02 دی 1386, 12:09 عصر
بیا داداش
البته اگه هنوز دیر نشده باشه



#include<stdio.h>
int main()
{
int a,b,c=1;
printf("\n Input number1:");
scanf("%d",&a);
printf("\n Input number2:");
scanf("%d",&b);
for(int i=0;i<b;i++)
c*=a;
printf("\n %d ^ %d = %d",a,b,c);
scanf("%d",&a);
return 0;
}





با منی؟
من که کدم کامل و واضح و درست بود
این مال ترم 1 بود هنوز داشتمش تو آرشیو گزاشتم واست


دوست عزیز دقت کن اگر شما یه عدد رو به توان یه عدد منفی برسونی دیکه این برنامه ی شما دست نیست چون حلقه دیگه اجرا نمی شه چون i<b در همان اولین اجرا درست است