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

خطآء فيّ البرنآمج

بدأه مبتدئه برمجه في 19 مارس 2010 · 2 رد · 323 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلآم عليكم

أنآ مبتدئه في برمجه c++

كل مرآ أكتب فيهآ البرِنآمج التآلي / يطلع لي خطآء بـ السطر 3 و4 و14 و16 و21 و 26

يآليت توضوحون بـ أسرع وقت ، ليه يطلع الخطآء ؟! وتعيدون كتآبته صح

وأكون شآكره لكم ~

#include <iostream>
using namespace std;
int ProductTwo(int,int);
viod ProductFour(int,int,int,int);
int num1,num2,num3,num4;
int main()
{
cout << "this program will Multiply numbers, by using two functions" << endl;
float num5;
num1=2;
num2=4;
num3=ProductTwo(num1,num2);
cout<<"Number 1 = "<<num1<<" Number 2 = "<<num2<<" Number 3 = "<<num3<<endl;
num4=ProductTwo();
cout<<"Number 4 = "<<num4<<endl;
num5=ProductFour(num1,num2,num3);
cout<<"Number 4 = "<<num5<<endl;
return 0;
}
float ProductTwo(int x, int y)
{
return (x*y);
}
int ProductFour(int n1, int n2, float n3, int n4)
{
return (n1*n2*n3*n4);
}

تم تعديل هذه المشاركة بواسطة مبتدئه برمجه في 19 مارس 2010 في 09:58

#2

السلام عليكم

الأخطاء في الكود كما في الكود مشار إليها

#include <iostream>
using namespace std;
int ProductTwo(int,int);
viod ProductFour(int,int,int,int);// أول خطأ 
int num1,num2,num3,num4;
int main()
{
cout << "this program will Multiply numbers, by using two functions" << endl;
float num5;
num1=2;
num2=4;
num3=ProductTwo(num1,num2);
cout<<"Number 1 = "<<num1<<" Number 2 = "<<num2<<" Number 3 = "<<num3<<endl;
num4=ProductTwo();//الخطأ الثاني 
cout<<"Number 4 = "<<num4<<endl;
num5=ProductFour(num1,num2,num3);//الخطأ الثالث 
cout<<"Number 4 = "<<num5<<endl;
return 0;
}
float ProductTwo(int x, int y)
{
return (x*y);
}
int ProductFour(int n1, int n2, float n3, int n4)
{
return (n1*n2*n3*n4);
}

الخطأ الأول :

أولاً لديك خطأ إملائي في الـvoid فلقد كتبتيها viod وأما الأمر الأخر فإنه من الخطأ أن تضعي نوع التابع void و هذا التابع يعيد قيمة و هي x*y وكما نعلم أن void للدوال التي لا تعيد قيمة.

الخطأ الثاني :

أنك يجب أن تحددي للكومبايلر الوسطاء و لا يجوز أن تستدعي الدالة -حسب ما أعلم- دون إعطاء وسطاء parameters لذلك يظهر لك المترجم خطأ عندما يقول أن الوسطاء لا يمكن أن يكونوا صفراً .

الخطأ الثالث:

عندما استدعيتي التابع ProductFour حددتي له ثلاث وسطاء وهو يحتاج لأربع وسطاء .

الخطأ الرابع:

أنك في تعريف ProductFour و ضعت له

int ProductFour(int n1, int n2, float n3, int n4)

ولكن أنت صرحت عنه في الأعلى بأربع متغيرات من نوع int

الخطأ الخامس:

كتبت في تعريف التابع الثاني

float ProductTwo(int x, int y)

ولكن قد صرحت أنه من نوعint لذلك يجب أن تنتبهي لهذه الملاحظة:

نوع الوسطاء في عبارة الاستدعاء يجب أن يكونوا من نفس نوع الوسطاء في تعريف التابع/أي جسم التابع البرمجي/

وأيضاً نوع قيمة إرجاع التابع في عبارة التصريح و التعريف يجب أن تكون من نوع واحد .

هذا ما لاحظته من أخطاء و الله أعلم .

و بالتالي و بما أن نص السؤال ليس بين يدي فهذا تصحيح للبرنامج ليصبح يعمل و لكن ربما لا يتوافق مع نص السؤال

#include <iostream>
using namespace std;
int ProductTwo(int,int);
int ProductFour(int,int,int,int); 
int num1,num2,num3,num4;
int main()
{
cout << "this program will Multiply numbers, by using two functions" << endl;
float num5;
num1=2;
num2=4;
num3=ProductTwo(num1,num2);
cout<<"Number 1 = "<<num1<<" Number 2 = "<<num2<<" Number 3 = "<<num3<<endl;
num4=ProductTwo(num1,num2);
cout<<"Number 4 = "<<num4<<endl;
num5=ProductFour(num1,num2,num3,num4);
cout<<"Number 4 = "<<num5<<endl;
return 0;
}
int ProductTwo(int x, int y)
{
return (x*y);
}
int ProductFour(int n1, int n2, int n3, int n4)
{
return (n1*n2*n3*n4);
}

تم تعديل هذه المشاركة بواسطة yahya91 في 19 مارس 2010 في 11:48

#3

yahya91

الله يسعدك و يجزآك خير

شرح وآفـِي و كآفـِي :)

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