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

Recursive Program

بدأه fatimah في 5 مارس 2009 · 4 رد · 540 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

وهائنا اطلب المساعدة في واجبي البسيط جدا في المستوى الثالث والاخير للغة سي بلس بلس

صار لي سنة وانا كلما واجهتني مشكلة الاقي المساعدة هنا ولم ارجع خائبة

وشكرا خاص للاخ فهد ماقصرت والله ياما ساعدتني

يعني انا اعرف احله بس فيه خطأ منطقي في البرنامج

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

المهم

هذا حلي اللي على قد عقلي

#include <iostream>
using namespace std;

int sumover(double a){
if (a <= 1)
return 1;
else
return  1/a + sumover(1/(a-1));
}

int main(){
double k;

cout << "please enter your number (K): "  << endl;
cin >> k;

cout << sumover(k);

cout.setf(ios::fixed);
cout.setf(ios::showpoint);
cout.precision(4);
return 0;
}

وظيفة البرنامج

هذا ليس شاشة البرنامج وانما مثال كيف يعمل البرنامج
Example: 
sumover(1) returns 1.0 (which is 1/1).
sumover(2) returns 1.5 (which is 1/1 + 1/2).
sumover(3) returns approximately 1.833 (which is 1/1 + 1/2 + 1/3).
Define sumover(0) to be


Please enter your number (k): 1 [Enter]
Result: 1 


Please enter your number (k): 3 [Enter]
Result: 1.833

وشكررررررررررا

تم تعديل هذه المشاركة بواسطة fatimah في 5 مارس 2009 في 19:29

#2
 

[color= #0000ff;]double sumover[color= #000000;]([color= #0000ff;]int a[color= #000000;]) [color= #000000;]{

[color= #0000ff;]if [color= #000000;](a [color= #000000;]== [color= #ff0000;]0[color= #000000;])

	[color= #0000ff;]return [color= #ff0000;]0;

[color= #0000ff;]else

	[color= #0000ff;]return [color= #ff0000;]1[color= #000000;]/a [color= #000000;]+ sumover[color= #000000;](a[color= #ff0000;]-1[color= #000000;]);

[color= #000000;]}

هذه الخوارزمية تفترض أن العدد المدخل ليس سالب. إن كانت لحل الأعداد السالبة أيضاً مثلا sumover(-3) فأضيفي شرط للتحقق من الإشارة وقومي بخزنه كقيمة boolean في متغير إن كان سالب مثلاً 1، ثم مرري العدد بالقيمة المطلقة وفي النهاية إن كانت القيمة الـ boolean تساوي 1 أعيدي ناتج الجمع بإشارة سالبة.

تم تعديل هذه المشاركة بواسطة Xacker في 5 مارس 2009 في 20:49

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#3

شكرا اخي الكريـــــمXacker

يعني باين انك متمكن من الحل في اشياء صححتي لي ياها ماتوقعت انها غلط

وكمان حكاية double function مادري وين عقلي كيف ماجت على بالي

لكن الحل لسه نفس النتيجة ماتغيرت

#4
post-7008-1236275261_thumb.png

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#5

شكرا اخي الكريم

يمكن عندي انا مشكلة مع الكودبلوك لاني مو متعودة استخدمه

شكرا مرة اخرى

جزاك الله خير

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