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

الـfunction وتعديل الخطأ في البرنامج

بدأه الفجر المتفائل في 3 مايو 2012 · 15 رد · 992 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

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

اضع سؤالي + اجابتي بين أيديكم

أو بالأصح محاولتي وأرجو منكم المساعدة وجزاكم الله الجنان

السؤال::

write a program to calculate the area and circumference of circle

using function

where::

area_circle=PI*r*r

circumference_circle=2*PI*r

pI=3.1415926

r (for radius)l

هذا حلي لا أعلم ما الخطأ يظهر الناتج غير صحيح

#include<iostream.h>
double area(int r)
{
	double area_circle;
	double const PI=3.1415926;
	area_circle=PI*r*r;
	return area_circle;
}
double circumference_circle(int r)
{
	double circ;
	double const PI=3.1415926;
	circ=2*PI*r;
	return circ;
}
int main()
{
	int a;
	cin>>a;
	cout<<"area the circle="<<area(a)<<endl;
	cout<<"circumference the circle="<<circumference_circle(a)<<endl;
}

ما أحلل أبد إللي يأخذ حلي لتسليمه كواجب

تم تعديل هذه المشاركة بواسطة الفجر المتفائل في 3 مايو 2012 في 19:35

#2

الأخ الكريم/الأخت الكريمة

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

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

نود تنبيهك أن العنوان غير مناسب.

الرجاء اختيار عنوان مناسب أكثر في مواضيعك القادمة، وهذا بمثابة إشعار للأهمية.

وفي حال التكرار سيتعرض موضوعك للإغلاق والحذف!!!

قواعد المشاركة

/index.php?showtopic=29343

شاكرين لكم حُسن تعاونكم

مدونتي: C++ Tips and Tricks

#3

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

للأسف لم أفهم طريقة المشاركةة بالضبط في المنتدى

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

#4

انا حولت وكتبت الكود ده وشغال 100% وكمان بالفنكشن

ده هيحسب المحيط

#include <iostream>
using namespace std;
float circumference(float radius);
int main()
{
double rad;
cout <<"\nEnter radius of circle:";
cin >>rad;
cout <<"circumference is "<< circumference(rad)<< endl;
return 0;
}
//--------------------------------------------------------------
float circumference(float r)
{
const float PI= 3.14159F;
return 2 * r * PI;
}

وده هيحسب المساحة

#include <iostream>
using namespace std;
float circarea(float radius);
int main()
{
double rad;
cout <<"\nEnter radius of circle:";
cin >>rad;
cout <<"Area is "<< circarea(rad)<< endl;
return 0;
}
//--------------------------------------------------------------
float circarea(float r)
{
const float PI= 3.14159F;
return r * r * PI;
}

وده كود بيحسب الاتنين مع بعض

#include <iostream>
using namespace std;
float circumference(float radius);
float circarea(float redius);
int main()
{
double rad;
cout <<"\nEnter radius of circle:";
cin >>rad;
cout <<"circumference is "<< circumference(rad)<< endl;
cout <<"area is "<< circarea(rad)<< endl;
return 0;
}
//--------------------------------------------------------------
float circumference(float r)
{
const float PI= 3.14159F;
return 2 * r * PI;
} 
float circarea(float r)
{
const float PI= 3.14159F;
return r * r * PI;
}

:) :) :) :) :)

ياريت اكون قد افدتك ولا اريد منكم سوي الدعاء

تم تعديل هذه المشاركة بواسطة memo_elmasry في 4 مايو 2012 في 04:42

1
#5

مع العلم اختي الفاضلة ان كودك شغال 100% وانا جربته ايضا

#include<iostream>
using namespace std;
double area(int r)
{
        double area_circle;
        double const PI=3.1415926;
        area_circle=PI*r*r;
        return area_circle;
}
double circumference_circle(int r)
{
        double circ;
        double const PI=3.1415926;
        circ=2*PI*r;
        return circ;
}
int main()
{
        int a;
        cin>>a;
        cout<<"area the circle="<<area(a)<<endl;
        cout<<"circumference the circle="<<circumference_circle(a)<<endl;
}
1
#6

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

والكود شغال100% إللي أنا كاتبته

بس المشكلة الناتج يطلع غير صحيح

لأني ماعرفت rعلى إنها =0.5*a

لا أعلم أين أقوم بتعريفها

الصورة بإذن الله هتوضح أكثر

ياليت التصحيح على الكود بتاعي لأنه صحيح

مابقى غير تعريف rنصف القطر

والنواتج تكون مثل التي بالصورة إذا استخدمنا العدد 6

1336110244581.jpg

تم تعديل هذه المشاركة بواسطة الفجر المتفائل في 4 مايو 2012 في 12:52

#7

البرنامج سليم أخي, إدخل على هذه الصفحة وضع نصف القطر 6 وستظهر نفس النتائج :

r = 6 m

C = 37.6991 m

A = 113.097 m
2

ونتائج برنامجك :

6area the circle=113.097
circumference the circle=37.6991
#8

المعذرة أنا بنت ولست ولد :)

أعرف إن البرنامج تمام :haha:

بس الa ليست قيمة نصف القطر

وإنما القطر كامل

يعني لما أدخل 6لابد أن تقسم على 2لكي

يظهر لي في الناتج أنه مضروب بنصف القطر

يعني أعدل البرنامج يصير كذا

#include<iostream.h>
double area(int r)
{        
	double area_circle;        
	double const PI=3.1415926; 
	area_circle=PI*r*r;        
	return area_circle;
}
double circumference_circle(int r)
{        
	double circ;        
	double const PI=3.1415926;        
	circ=2*PI*r;        
	return circ;
}
int main()
{        
	cout<<"Enter Radius of Circle:"<<endl;
	int r;
	cin>>r;
	cout<<"area the circle="<<area(r)<<endl;        
	cout<<"circumference the circle="<<circumference_circle(r)<<endl;
}

ولا أنا غلطانةة

بورك فيكم وجزيتم الجنان

#9

الـr إختصار لـradius وتعني نصف القُطر. القُطر إسمه diameter وإختصاره d. إذا أردتِ أن يكون المُدخل هو القُطر قبل تمريرة للدالة إقسميه على 2 (إجعلي نوعه float لأن قسمة عدد صحيح مثل 5 على 2 ستعطي 2 وهذا خطأ), الناتج :

#include<iostream.h>
double area(int r)
{        
        double area_circle;        
        double const PI=3.1415926; 
        area_circle=PI*r*r;        
        return area_circle;
}
double circumference_circle(int r)
{        
        double circ;        
        double const PI=3.1415926;        
        circ=2*PI*r;        
        return circ;
}
int main()
{        
        cout<<"Enter Diameter of Circle:"<<endl;
        float r;
        cin>>r;
        r /= 2; // r = r / 2
        cout<<"area the circle="<<area(r)<<endl;        
        cout<<"circumference the circle="<<circumference_circle(r)<<endl;
}

Enter Diameter of Circle:6
area the circle=28.2743
circumference the circle=18.8496
1
#10

الله يجزاك الفردوس الأعلى من الجنةة والله ماقصرت

وماراح أنسى هالمساعدة

لين أموت

جزيت الجنان

وبارك الله فيك

#11

السلام عليكم أختي الفجر المتفائل

عندي ملاحظة صغيرة لك في البرنامج اللي واضعته أنك عرفتي الثابتة PI مرتين و بإمكانك تفادي هذه المشكلة بوضع define PI 22/7

تحت #include<> وكل مرة احتجتي لقيمة PI تستدعين فقط المختصر define و من مزايا المختصرات كذلك تقليص مساحة الذاكرة المخصصة للبرنامج

فمثلا لو وضعت const float pi في كل مرة تحتاجين لها فستزيدين من حجم الذاكرة الحية ram و هذا المتغير لن يموت إلا مع موت أو انتهاء البرنامج عكس define مدة حياته قصيرة

و ملاحظة أخرى double const PI=3.1415926; الأفضل أن تستعملي float بدل sizeof float=4 octets // sizeof double=8 octets double

هذا حلي ب c وممكن تبدلي الكود ل c++

مازلت أدرس في لغة c أما أكتبه لك ب c++ طبعا أنت ستبدلين كود c بكود c++ ماعندي أي شك في ذلك *-*

#include <stdio.h>
#include <math.h>
#define  PI 22/7

 //Réalisé par MOMO

 double P=0,S=0,*p=&P,*s=&S; //variables globales

 void P_and_S_circle(float *R) //Définition 'bottom-up'

  {     
      (*p)=(double)(*R)*2*PI ; //convert cast
      (*s)=(double)PI * pow(*R,2); 
  }


 int main(int argc, char *argv[])
  {

        float R=0;   

        printf("Radius of a circle :\t");
        scanf("%f",&R);

        P_and_S_circle(&R); //appel de fonction

        printf("\n\n\nP = %0.3lf\n\n\n\nS = %0.3lf",P,S);   


        getch();
  }

ووفقك الله و رعاك أخوك مغربي momo

i love you mama

#12

بارك الله فيك مومو وجزيت الجنان

أنا للأسف لم أدرس لغة السي

ولم نتطرق إليها في دراستنا أبد

للأسف هذي أول بدايةة لي في دراسةة

البرمجة درستها بلغةة سي++

بإذن الله أحاول أحول البرنامج

وعلى فكرة ليست لدي أستاذات أكفاء للغايةة

لذلك أبحث في كل ناحية من نواحي قوقل لكي أستفيد

وأجد شيء كافي يعلمني سي++

#13
الفجر المتفائل كتب:

بارك الله فيك مومو وجزيت الجنان

أنا للأسف لم أدرس لغة السي

ولم نتطرق إليها في دراستنا أبد

للأسف هذي أول بدايةة لي في دراسةة

البرمجة درستها بلغةة سي++

بإذن الله أحاول أحول البرنامج

وعلى فكرة ليست لدي أستاذات أكفاء للغايةة

لذلك أبحث في كل ناحية من نواحي قوقل لكي أستفيد

وأجد شيء كافي يعلمني سي++

لغة c هي البوابة الرئيسية للدخول لعالم البرمجة حيث أن فهم هذه اللغة جيدا و إتقانها بمثابة 90/100 من تعلم جميع لغات البرمجة

أنا صراحة أتعجب للأساتذة العرب فاهمين الحاجة بالمقلوب يبدأون من الأعلى إلى الأسفل عوض التدرج خطوة خطوة نحو الأعلى .

كل التوفيق أختي الفجر المتفائل

تم تعديل هذه المشاركة بواسطة مومو (momo) في 4 مايو 2012 في 15:28

i love you mama

#14

بارك الله فيك

وأعاننا الله على مانحن فيه

لله الحمد تم الإجـــــابة على الموضوع

وبارك الله في الجميع

#15

اختي " الفجر المتفائل"

انا كنت بعاني نفس مشاكلك دي ولكن الحمد لله نزلت الكتاب ده واتحلت كل مشاكلي فانا جيبتلك الرابط بتاعه ممكن تستفيدي منه

وبداخل هذا الكتاب شرح جميل وسلس وباللغة العربية ايضا

تفضلي رابط الكتاب هناااا

تحياااااتي اليكم جميعا

#16
اقتباس

تحت #include<> وكل مرة احتجتي لقيمة PI تستدعين فقط المختصر define و من مزايا المختصرات كذلك تقليص مساحة الذاكرة المخصصة للبرنامج

فمثلا لو وضعت const float pi في كل مرة تحتاجين لها فستزيدين من حجم الذاكرة الحية ram و هذا المتغير لن يموت إلا مع موت أو انتهاء البرنامج عكس define مدة حياته قصيرة

و ملاحظة أخرى double const PI=3.1415926; الأفضل أن تستعملي float بدل sizeof float=4 octets // sizeof double=8 octets double

لا يوجد مشكله فى تعريف ثابت كل مره داخل كل داله تستخدمها او حتى تعريف 100 ثابت داخل الداله. بالتأكيد الأفضل إذا كان الثابت سيتم استخدامه فى اكثر من مكان أن يتم تعريفه مره واحده و لكن بشكل عام طالما لم يتم أخذ عنوان الثابت او استخدام const_cast مع الثابت فسيقوم المترجم بتطبيق المفهو constant folding و هو استبدال اسم الثابت بقيمته.

داخل لغة الـ C نفس المفهوم قائم و يفضل استخدام الثوابت عن define# للقيم و ذلك لأنها تتيح للمترجم التحقق من الأخطاء.

اقتباس

لغة c هي البوابة الرئيسية للدخول لعالم البرمجة حيث أن فهم هذه اللغة جيدا و إتقانها بمثابة 90/100 من تعلم جميع لغات البرمجة

أنا صراحة أتعجب للأساتذة العرب فاهمين الحاجة بالمقلوب يبدأون من الأعلى إلى الأسفل عوض التدرج خطوة خطوة نحو الأعلى .

كلامك غير صحيح، مع العلم ان لغة ++C كانت تطوير للغة الـ C - كان ذلك فى الماضي و ليس الأن - إلا انها الأن لغة مستقله بذاتها و لا داعي لتعلمها حتى تتعلم لغة ++C.

داخل قسم ++C قبل المواضيع المثبته يوجد الأسئله الأكثر شيوعا فضلا قم بقرائتها.

و الله ولي التوفيق

1

مدونتي: C++ Tips and Tricks

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