الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مشكلة في برنامج الجذر النوني

مغلق
بدأه الحذر في 19 نوفمبر 2005 · 1 رد · 795 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم و رحمة الله و بركاته

انا ابغى اسوي برنامج للجذر النوني و الطريقة هي:

a=القيمة التي تحت الجذر

n= الاس الجذري

انك تفرض قيمتي xold & xnew

و تفرض ان xold=a

xnew=xold -(xod^n-a)/(2*n*xold^(n-1)). this is the rul

هذا هو القانون المستخدم

و انا حليتها بال do loop

و الشرط هو ان القيمة المطلقة للفرق بين xold-xnew اقل من 0.00001

البرنامج خالي من الاخطاء بس يا ريت تقولوا لي هل في خطا في كتابة البرنامج او القانون خطا

هذا حلي:

#include <iostream>
#include <cmath>
using namespace std;

int main()
{
//	int n;

	double a,xnew;

    cin >> a;

	double xold;

	xnew=a;

	double n;

    cin >> n;



	do
	{
xold=xnew;

    
  xnew=xold-((pow(xold,n)-a)/(2.0*n*pow(xold,n-1)));


	}

	while (fabs(xnew-xold)<0.00001);

  cout << xnew;

	return 0;

}

ارجو افادتي و السلام عليكم و رحمة الله و بركاته

تم تعديل هذه المشاركة بواسطة Sultan_Althibity في 19 نوفمبر 2005 في 18:51

I_can_always_make_you_smile_by_Praerion.jpg

#2
// main idea
// a = b^z
// ln(a) = z*ln(b)
// a = e( c*ln(b) )

#include <iostream>
#include <cmath>
using namespace std;

double fact(int x)
{
	double y=1;
	for (int i=2; i<=x; i++)
	{
  y=y*i;
	}
	return y;
}

double e(double x)
{
	double y=1;
	for (int i=1; i<50; i++)
	{
  y=y+( pow(x,i)/fact(i) );
	}
	return y;
 }

int main()
{
	// int n;

	double a,xnew;
	cin >> a;
	double xold;
	xnew=a;
	double n;
	cin >> n;

	xnew=e((1/n)*log(a));

	cout << xnew;

return 0;

}

هذا الموضوع مغلق.

مواضيع مشابهة