PDA

View Full Version : سوال: راهنمایی برای تقسیم در حلقه while



Maryam.gh
جمعه 06 دی 1392, 20:54 عصر
سلام
یه مشکل در زبان c دارم ممنون میشم راهنمایی کنید
من میخوام برنامه تقسیم در حلقه while نوشته بشه
مثلا دو عدد داریم بصورت 0.034-=c=84.32 , d میخوایم تاوقتی یه مقدار مثل e=0.0001 نشده باشه یا به عبارت دیگه e به صفر نزدیک بشه تقسیم ادامه داشته باشه
بعد یه شرط هم داشته باشه مثلا اگر حاصل تقسیم منفی شد بزاره جای d واگر مثبت شد بزاره جایه c همین طوری ادامه بده تا صفر بشه یا نزدیک صفر بشه
مرسی ممنون:خجالت:

Maryam.gh
جمعه 06 دی 1392, 21:59 عصر
12 تا مشاهده کسی نبود راهنمایی کنه؟:ناراحت:

amin1softco
جمعه 06 دی 1392, 22:01 عصر
جدا سوال خیلی مبهمه خوب همین چیزایی که میگید اگر معادلش ifاست بنویسید یک تکه کد ببینیم چیکارش می شه کرد :دی

Maryam.gh
جمعه 06 دی 1392, 22:07 عصر
جدا سوال خیلی مبهمه خوب همین چیزایی که میگید اگر معادلش ifاست بنویسید یک تکه کد ببینیم چیکارش می شه کرد :دی

من اینارو نوشتم ولی میدونم اشتبه :لبخند:

while (e=0.00001){
e=(c+d)/2;
if (e>0)
c=e;
else
if (e<0)
d=e;
i=i++;
}
printf("\ntest e=%8.5f,tekrar i=%d",e,i);

amin1softco
جمعه 06 دی 1392, 22:20 عصر
نتایج افکار ما این شد .
double e,c,d;
d=-0.034;
c=84.32;
e=(c+d)/2;
int i ;
while (e==0.00001){
e/=2;
if (e>0)
e=(e+d)/2;
else
if (e<0)
e=(c+e)/2;
i++;
}
printf("\ntest e=%8.5f,tekrar i=%d",e,i);

Maryam.gh
جمعه 06 دی 1392, 22:38 عصر
نتایج افکار ما این شد .
double e,c,d;
d=-0.034;
c=84.32;
e=(c+d)/2;
int i ;
while (e==0.00001){
e/=2;
if (e>0)
e=(e+d)/2;
else
if (e<0)
e=(c+e)/2;
i++;
}
printf("\ntest e=%8.5f,tekrar i=%d",e,i);

مرسی از افکار شما
ولی نشد:ناراحت:

amin1softco
جمعه 06 دی 1392, 23:19 عصر
دیگه آخرش اینه
double e,c,d;
d=-0.034;
c=84.32;
e=(c+d)/2;
int i=0 ;
while (e>=0.000001){
e/=2;
if (e>0)
e=(e+d)/2;
else
if (e<0)
e=(c+e)/2;
i++;
}
printf("\ntest e=%8.5f,tekrar i=%d",e,i);

Maryam.gh
شنبه 07 دی 1392, 00:57 صبح
میخوام این تابع به صفر نزدیک بشه دوتا بازهم پیدا کردم
#include <conio.h>
#include <stdio.h>
#include <math.h>
int main()
{
int a=2,b=1,i;
double c,d,e,z;
c=(pow(a,7)*log(a)-6* pow((sin(a)),3)+3+cos(a));
d=(pow(b,7)*log(b)-6* pow((sin(b)),3)+3+cos(b));
while (e>=0.0001){

e=(c+d)/2;
if (e>0)
e=(e+d)/2;
else
if (e<0)
e=(c+e)/2;
i++;
}
printf("\ntest e=%8.5f,tekrar i=%d",e,i);
getch();
return 0;
}