اذهب إلى المحتوى
  • 0

خوارزمية بطريقة ال recursion بلغة ++C

نيلاي

السؤال

Recommended Posts

  • 0

أهلا بك  

على حسب ما فهمت من حضرتك ،  فإنه مطلوب منك  عمل خوارزمية بطريقة ال recursion أي أن يعيد الإقتران نداء نفسه و ليس بطرقة الـ loop 

هذا كود للخوارزمية بلغة ال c++ 

// خوارزمية بلغة ال C++ 
// recursion 
// للتحول من بايناري الى دسمال 
#include <bits/stdc++.h> 
using namespace std; 
  
// الإقتران الأساسي
int MybinaryVal(double par) 
{ 	
  //  فحص الرقم المدخل اذا كان  مساوي للصفر 
    if (par == 0)  
    {
       return 0;  
      // اذا كان الرقم أقل من صفر ف هو غير مقبول 
    }else if(par < 0 ){
    	return "number par must be postive" ; 
      // اذا كان الرقم أكبر من صفر يتم تنفيذ الإقتران
    }else{
        return (decimal_number % 2 + 10 *  
                MybinaryVal(par / 2)); 
    }
} 
  
// كود التسشغيل
int main() 
{ 
    int par = 10; 
    cout << MybinaryVal(par); 
    return 0; 
} 
رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 19 ساعات قال ماجد قطوسة:

أهلا بك  

على حسب ما فهمت من حضرتك ،  فإنه مطلوب منك  عمل خوارزمية بطريقة ال recursion أي أن يعيد الإقتران نداء نفسه و ليس بطرقة الـ loop 

هذا كود للخوارزمية بلغة ال c++ 


// خوارزمية بلغة ال C++ 
// recursion 
// للتحول من بايناري الى دسمال 
#include <bits/stdc++.h> 
using namespace std; 
  
// الإقتران الأساسي
int MybinaryVal(double par) 
{ 	
  //  فحص الرقم المدخل اذا كان  مساوي للصفر 
    if (par == 0)  
    {
       return 0;  
      // اذا كان الرقم أقل من صفر ف هو غير مقبول 
    }else if(par < 0 ){
    	return "number par must be postive" ; 
      // اذا كان الرقم أكبر من صفر يتم تنفيذ الإقتران
    }else{
        return (decimal_number % 2 + 10 *  
                MybinaryVal(par / 2)); 
    }
} 
  
// كود التسشغيل
int main() 
{ 
    int par = 10; 
    cout << MybinaryVal(par); 
    return 0; 
} 

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

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ On 26‏/6‏/2020 at 23:58 قال ماجد قطوسة:

 

حل السؤال بلغه cpp

اقتباس

#include <iostream>
#include <cmath>
  
static void printBin(int num, int bitIdx){
  if (bitIdx<0)
    return ;
  
  std::cout<< ((num&(1<<bitIdx))?1:0);
  printBin(num, bitIdx-1);
}

static void decNum(int num, int bits){
  if (num<0)
    return;
  
  printBin (num, bits-1);  std::cout<<std::endl;
  decNum(num-1, bits);
}

void MyBinaryValues (double par){
  int bits, power;
  
  if (par<=0.0)
    return;
  
  bits=floor (par);
  power=pow(2, bits)-1;	
  
  decNum(power, bits);
}

int main(int argc, char **argv){
	
	std::cout<<"MyBinaryValues(2.4);"<<std::endl;
	MyBinaryValues(2.4);
	
	std::cout<<std::endl;
	
	std::cout<<"MyBinaryValues(3.2);"<<std::endl;
	MyBinaryValues(3.2);
	
	return 0;
}

 

 

تم التعديل في بواسطة Hamada Sayed
رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ On 27‏/6‏/2020 at 00:58 قال ماجد قطوسة:

أهلا بك  

على حسب ما فهمت من حضرتك ،  فإنه مطلوب منك  عمل خوارزمية بطريقة ال recursion أي أن يعيد الإقتران نداء نفسه و ليس بطرقة الـ loop 

هذا كود للخوارزمية بلغة ال c++ 


// خوارزمية بلغة ال C++ 
// recursion 
// للتحول من بايناري الى دسمال 
#include <bits/stdc++.h> 
using namespace std; 
  
// الإقتران الأساسي
int MybinaryVal(double par) 
{ 	
  //  فحص الرقم المدخل اذا كان  مساوي للصفر 
    if (par == 0)  
    {
       return 0;  
      // اذا كان الرقم أقل من صفر ف هو غير مقبول 
    }else if(par < 0 ){
    	return "number par must be postive" ; 
      // اذا كان الرقم أكبر من صفر يتم تنفيذ الإقتران
    }else{
        return (decimal_number % 2 + 10 *  
                MybinaryVal(par / 2)); 
    }
} 
  
// كود التسشغيل
int main() 
{ 
    int par = 10; 
    cout << MybinaryVal(par); 
    return 0; 
} 

طبقت البرنامج على الc++shell ولكن ظهرت اغلاط ولم يشتغل البرنامج  

بتاريخ 9 ساعات قال Hamada Sayed:

حل السؤال بلغه cpp

 

شكرا اخي العزيز ولكن هل لا مانع لديك ان تكتب البرنامج في الc++ اقدر جهدك وجزاك الله خير 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...