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

عدد

مغلق
بدأه مبرمجة new في 9 مايو 2006 · 12 رد · 994 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام علكيم

حاولت فيه كثير مع ان سؤال سهل بس ما عرفت الغلط وين

هذا برنامج يحسب قيمة العدد بالاس بدون استخدام عمليات الضرب

مثلا 2^3 يساوي 9 لكن برنامجى على مايبدو يحسب 3+3+3+3=12

 #include<iostream.h>
void main()
{ int i,j;
int x,n,sum=0;
cin>>x>>n;
for(i=0;i<x-1;i++)
{for(j=0;j<n;j++)
sum+=x;
}
cout<<sum;
}
#2

السلام عليكم اختى مبرمجة new

في خاصيه تستخدميه للعمليات الحسابيه مثل الاس pow وتستخدم مع المكتبه # include <math.h>

هذا البرنامج يحسبلك 3 اوس 2 = 9

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



  void main()
    {  clrscr();
      int i,j;
  int sum=1;;
     for(i=1; i<=3;i++)
       {
	cout<<"\n";
    for(j=1;j<=2;j++)
	{     
    sum=pow(i,j);
	}  }
	cout<<"The result of 3 pow 2 =  "<<sum;


}
#3
for(i=0;i<x;i++)
{for(j=1;j<n;j++)
#4

السلام عليكم

شكرا لكم وجزكم الله خير

#5

السلام عليكم

كما ذكر soso_d يوجد امر جاهز للهذه العملية.

و تكون ذات فائدة للرفع لآس كسرى فضلاً عن اساس كسرى.

عموماً هذه العملية تحل باستخدام مفكوكات القوى و ليس هذا المجال حاليًاً.

ولكن يبدو ان هذا السؤال تمرين على استخدام التكرار او ما شابه و ليس للاستخدام المباشر.

لذا اود توضيح شئ فى البداية

لضرب عددين باستخدام الجمع نستعمل التكرار التالى

sum=0;
	for(j=0;j<n;j++){
  sum+=x;
	}

و يكون الناتج هو حصل ضرب n*x

طيب لو عايزن نرفع لآس يعنى نكرر الضرب n من المرات

مثال

5^3

n=3

x=5

الاساس x

1- sum=5

2- sum=5*5=25

3- sum=25*5=125

يعنى نكرر الضرب بمقدار الاس و كل مره بنضرب فى الحاصل السابق

هنا نفرض انه k

و بالتالى يكون البرنامج كما يلى

مع ملاحظة ان الكلام ده خطاء فى حالات استخدام الارقام السالبة و الكسرية و 0

#include<iostream.h>
void main()
{
	int i,j;
	int x,n,k, sum;
	cin>>x>>n;

	k=x;  // to get first time
	sum=x;   // for n=1
	for(i=0;i<n-1;i++){
  sum=0;
  for(j=0;j<k;j++){
 	 sum+=x;
  }
  k=sum;
	}
	cout<<sum;
}
#6

شكرا اخوي pointer vc كلامك صحيح

اصلا كانت عندي المشكلة في

sum=0;
 for(j=0;j<k;j++){
  sum+=x;

وبالتحديد فى sum=0 لكن الان فهمت شكرا جزيلا

#7

لماذا لا تطورين البرنامج لتجعليه يحسب الأعداد ذات القوة السالبة وليس الموجبـة

#8

إن شاء الله اخي سوف احاول فيه ولكن ليس الان لأن عندي امتحانات و شكرا

#9
مبرمجة new كتب:
 #include<iostream.h>
void main()
{ int i,j;
int x,n,sum=0;
cin>>x>>n;
for(i=0;i<x-1;i++)
{for(j=0;j<n;j++)
sum+=x;
}
cout<<sum;
}

المفروض ان عملية الرفع لاس هى عملية ضرب وليست عملية جمع يعنى الخطل فى جمله

sum=0;

المفروض تعرفى

sum=1

وتكون الجمله داخل ال loop

sum*=x;

بدلا من

sum+=x;

وايضا اعتقد ان loop واحده تكفى تبدا من صرف حتى الاس مش فاهم ليه عملتى اتنين loop اعتقد تكفى loop واحده فقط لو افترضنا ان n تمثل الاس

for(int i=0;i<n;i++)

اتمنى يكون البرنامج شغال صح بعد التعديلات دى

#10
مبرمجة new كتب:
هذا برنامج يحسب قيمة العدد بالاس بدون استخدام عمليات الضرب

قد أشارت الى أنها لا تريد استخدام عمليات الضرب ..

#11

اهلا بالعضو m_gabr_1985

السؤال الاصلى هو

اقتباس
هذا برنامج يحسب قيمة العدد بالاس بدون استخدام عمليات الضرب

طبعا الضرب تكرار الجمع و الرفع لآس تكرار الضرب يعنى 2 تكرار محتاجين حلقتين تكرار

طبعاً استخدام الضرب مباشرة يلغى احد التكرارين

اطيب تحياتى

#12

اسف جدا على السهو ماخدتش بالى فعلا من الجمله دى خالص انا حاولت المساعده فقط لكن للاسف مقراتش الموضوع كويس وسهيت عن هذه الجمله المهمه جدا

شكرا لتنبيهاتكم

واسف مره تانيه على الخطا

#13

السلام عليكم

شكرا لكم جمعيا وبالنسبة لحساب الاس السالب فهي كالتالى لوكنا مثلا نريد 3-^2 فيكون الحل 3^2/1 والبرنامج هو كالتالى

#include<iostream.h>
void main()
{int i,j;
double x,n,k,sum;
cin>>x>>n;
k=x;
for(i=0;i<n-1;i++)
{sum=0;
for(j=0;j<k;j++)
{sum+=x;
}
k=sum;
}
cout<<1/sum;

}

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

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