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

اختبر قدراتك في C/CPP - الحلقة الخامسة, الجزء السادس

مغلق
بدأه Snack3r في 25 سبتمبر 2012 · 7 رد · 1,534 مشاهدة · في اختبر قداراتك
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

الحلقة الأولى.

الحلقة الثانية - الجزء الأول.

الحلقة الثانية - الجزء الثاني.

الحلقة الثانية - الجزء الثالث.

الحلقة الثانية - الجزء الرابع.

الحلقة الثانية - الجزء الخامس.

الحلقة الثانية - الجزء السادس و الأخير.

الحلقة الثالثة - الجزء الأول.

الحلقة الثالثة - الجزء الثاني.

الحلقة الثالثة - الجزء الثالث.

الحلقة الثالثة - الجزء الرابع.

الحلقة الثالثة - الجزء الخامس و الأخير.

الحلقة الرابعة - الجزء الأول.

الحلقة الرابعة - الجزء الثاني.

الحلقة الرابعة - الجزء الثالث.

الحلقة الرابعة - الجزء الرابع.

الحلقة الرابعة - الجزء الخامس.

الحلقة الرابعة - الجزء السادس.

الحلقة الرابعة - الجزء السابع.

الحلقة الرابعة - الجزء الثامن.

الحلقة الرابعة - الجزء التاسع.

الحلقة الرابعة - الجزء العاشر.

الحلقة الرابعة - الجزء الحادي عشر.

الحلقة الرابعة - الجزء الثاني عشر.

الحلقة الرابعة - الجزء الثالث عشر.

الحلقة الرابعة - الجزء الرابع عشر.

الحلقة الرابعة - الجزء الخامس عشر.

الحلقة الرابعة - الجزء السادس عشر.

الحلقة الرابعة - الجزء السابع عشر.

الحلقة الرابعة - الجزء الثامن عشر.

الحلقة الرابعة - الجزء التاسع عشر.

الحلقة الرابعة - الجزء العشرون و الأخير.

الحلقة الخامسة - الجزء الأول.

الحلقة الخامسة - الجزء الثاني.

الحلقة الخامسة - الجزء الثالث.

الحلقة الخامسة - الجزء الرابع.

الحلقة الخامسة - الجزء الخامس.

مرحبا بكم إخوتي الكرام في الجزء السادس من الحلقة الخامسة من سلسلة اختبر قدراتك, قمتُ بتقسيم الحلقة الخامسة إلى عدة أجزاء, مُرتبة حسب الصعوبة.

أجزاء هذه الحلقة ستكون خاصة بمتفرقات C/C++.

الإختبار الخامس (الجزء السادس) :

اكتب دالة تعاودية أو تراجعية (Recursive function) تقوم بحساب post-219439-008722900 1348556302_thumb.p حيث عدد x حقيقي و y عدد صحيح.

مثال :

post-219439-093211100 1348556646_thumb.p

post-219439-020307700 1348556651_thumb.p

سأضع حل السؤال بعد إنتهاء عرض المحاولات.

المرفقات
1f999472026edfc1a67e2edc38ee8e5b.pngtest1.pngtest2.png
2
#2

أظنني سأبدأ بمحاولتي هذه المرة :happy:

#include <stdio.h>

int main() {
    int n;
    double x, puissance(double, int);
    printf("Donnez une valeur réelle : ");
    scanf("%le", &x);
    printf("Donnez une puissance entière : ");
    scanf("%d", &n);
    printf("%le à la puissance %d = %le", x, n, puissance(x, n));
}

double puissance(double x, int n) {
    double z;
    if (n < 0) return (puissance(1.0 / x, -n));
    else if (n == 0) return (1);
    else if (n == 1) return (x);
    else if (n % 2 == 0) {
        z = puissance(x, n / 2);
        return (z * z);
    } else return (x * puissance(x, n - 1));
}
1
#3

سؤال جميل جدا جازك الله خيرا أخي أحمد ...

هذه محاولتي البسيطة :

#include <iostream>

using namespace std;
float pow(float a,int b)
{
if(b==0)return 1;
return a*pow(a,b-1);
}
int main() {
        printf("%f\n",pow(5,2));
        return 0;
#4

ما هذه المحاولة أخي مصطفى ؟ :blink:

الدالة printf ليست موجودة في المكتبة iostream بل cstdio ! ثم لماذا قمتَ بتضمين مساحة الأسماء std و الكود مكتوب على طريقة الــ Old-Style ؟

أيضا, ستحدث كوارث لبرنامجك عندما تأخذ b قيمة سالبة !

#5

سأكون على جناج سفر الليلة إن شاء الله, سأنقطع عن المنتدى لعدة أشهر نظراً لانشغالي التام في الأشهر المقبلة.

سأستكمل بقية حلقات السلسلة عند عودتي إن شاء الله.

لا تنسوني من صالح الدعاء.

أخوكم أحمد.

#6
اقتباس
الدالة printf ليست موجودة في المكتبة iostream بل cstdio

والمكتبة cstdio مضمنة ضمن iostream ألا تعلم هذا happy.gifhappy.gif

اقتباس
ثم لماذا قمتَ بتضمين مساحة الأسماء std و الكود مكتوب على طريقة الــ Old-Style ؟

هذا macro أكتبه عند أي برنامج (ولم أنتبه له .. هنا)

اقتباس
أيضا, ستحدث كوارث لبرنامجك عندما تأخذ b قيمة سالبة !

معك حق في هذه laugh.giflaugh.gif

اقتباس
سأكون على جناج سفر الليلة إن شاء الله, سأنقطع عن المنتدى لعدة أشهر نظراً لانشغالي التام في الأشهر المقبلة.

سأستكمل بقية حلقات السلسلة عند عودتي إن شاء الله.

لا تنسوني من صالح الدعاء.

أخوكم أحمد.

وفقك الله وسدد خطاك ... أظن أن كل من في المنتدى دون استثاء يتمنى لك التوفيق ...

أسأل الله أن يعينك في كل خطوة ويوفقك في كل مراد ...

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

#7

كود سي++

#include <iostream>
using namespace std;

double pooow(double x, int y) {
	if (y < 0)
    	return (pooow(1.0 / x, -y));
	else if (y == 0)
    	return 1;
	else if (y == 1)
    	return x;
	else
    	return (x * pooow(x, y - 1));
}

int main() {
	double x = 0.0;
	int y = 0;
	cout << "Enter x: "; cin >> x;
	cout << "Enter y: "; cin >> y;
	cout << pooow(x, y);

	return 0;
}

المخرجات

Enter x: 5
Enter y: 3
125
RUN SUCCESSFUL (total time: 3s)

post-15367-027053900%201340345097.gifpost-15367-087183200%201340344597.gif
post-247365-0-10080400-1379403554_thumb.

#8
#include <stdio.h>

long _pow_pui(int , int);

int main()
{
  printf("%ld",_pow_pui(2,3));
  return 0;
}


long _pow_pui(int a, int b)
  {
	if(!b) return 1;
	else if(!(b^1)) return a;
	else
	{
   	b--;
   	return (a* _pow_pui(a,b));
	}
  }

اقتباس
سأكون على جناج سفر الليلة إن شاء الله, سأنقطع عن المنتدى لعدة أشهر نظراً لانشغالي التام في الأشهر المقبلة.

أتمنى لك التوفيق و سننتظر عودتك إلينا بفارغ الصبر مع أمنياتنا لك بالنجاح :cool:

i love you mama

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

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