البرمجة

تحسين شيفرة برمجة C++ لحساب المسافة والسرعة

في مجال برمجة C++، يبدو أنك تواجه بعض المشاكل في تنفيذ الصيغ الرياضية لحساب المسافة والسرعة. للبداية، يجب عليك إصلاح بعض الأخطاء في الشيفرة البرمجية الخاصة بك.

أولًا وقبل كل شيء، يظهر أن لديك دالة getSeconds لكنك نسيت تعريفها بشكل صحيح. يجب أن يكون لديك تعريف للدالة في أعلى الشيفرة بناءً على الطريقة الصحيحة. قد يكون الشكل التالي هو الصحيح:

cpp
void getSeconds(void) { cout << "Please enter the time in seconds." << endl; cin >> seconds; } //end function getSeconds

بعد ذلك، لاحظ أن لديك تعريفًا متكررًا للمتغير seconds. لا تحتاج إلى إعادة تعريفه كمتغير عام وكذلك كمتغير محلي داخل الدالة main. قم بإزالة تعريف المتغير كمتغير عام، واستخدمه كمتغير محلي داخل الدالة main فقط.

ثانيًا، يظهر أنك تقوم بقراءة قيمة للثواني داخل الدالة main دون استدعاء دالة getSeconds التي قمت بتعريفها. يجب عليك استدعاء هذه الدالة للحصول على الإدخال من المستخدم قبل بدء الحلقة while.

تالثًا، يجب عليك تصحيح بعض الأخطاء النحوية في عبارة الطباعة. عليك إضافة فاصلة منقوطة بين الجملتين وتصحيح بعض العلامات في النص.

إليك نسخة معدلة من الشيفرة البرمجية:

cpp
#include #include #include using namespace std; const float GRAVITY = 9.807, INITIALVELOCITY = 0; int seconds; void getSeconds(void) { cout << "Please enter the time in seconds." << endl; cin >> seconds; } //end function getSeconds int main(int argc, char *argv[]) { float distance, velocity; getSeconds(); cout.setf(ios::fixed, ios::floatfield); while (seconds > 0) { distance = INITIALVELOCITY * seconds + (0.5 * GRAVITY * pow(seconds, 2)); velocity = INITIALVELOCITY + (GRAVITY * seconds); cout.precision(0); cout << endl << "WHEN THE TIME IS " << seconds << " SECONDS THE DISTANCE TRAVELED IS " << distance << " METERS. THE VELOCITY IS " << velocity << " METERS PER SECOND."; cout.precision(1); cout << seconds << " " << distance << " " << velocity << endl << endl; } system("PAUSE"); return EXIT_SUCCESS; } //end main

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

المزيد من المعلومات

بالطبع، دعوني أوسع المعلومات حول موضوع البرمجة بلغة C++ وكيف يمكنك تحسين شيفرتك البرمجية.

أولًا، يُفضل دائمًا استخدام أسلوب التعليق الواضح والمفهوم للكود البرمجي. يمكنك إضافة تعليقات توضح الخطوات الرئيسية والغرض من كل جزء في الكود. هذا سيسهل فهم الشيفرة للقراء، بما في ذلك نفسك والآخرين الذين قد يطالعون الكود في المستقبل.

على سبيل المثال، يمكنك إضافة تعليقات مثل:

cpp
// تعريف الثوابت للجاذبية والسرعة الابتدائية const float GRAVITY = 9.807, INITIAL_VELOCITY = 0; // تعريف متغير لتخزين الزمن بالثواني int seconds; // دالة للحصول على الإدخال من المستخدم بخصوص الزمن void getSeconds(void) { cout << "Please enter the time in seconds: "; cin >> seconds; } //end function getSeconds

ثانيًا، قد تكون مناسبة استخدام دوال فرعية (Functions) لتنظيم الشيفرة وجعلها أكثر قابلية للفهم وإعادة الاستخدام. على سبيل المثال، يمكنك إنشاء دالة لحساب المسافة ودالة لحساب السرعة، ومن ثم استدعائهما داخل الحلقة التكرارية.

cpp
// دالة لحساب المسافة float calculateDistance(float time) { return INITIAL_VELOCITY * time + (0.5 * GRAVITY * pow(time, 2)); } // دالة لحساب السرعة float calculateVelocity(float time) { return INITIAL_VELOCITY + (GRAVITY * time); } // دالة لطباعة النتائج void printResults(float time, float distance, float velocity) { cout.precision(0); cout << endl << "WHEN THE TIME IS " << time << " SECONDS THE DISTANCE TRAVELED IS " << distance << " METERS. THE VELOCITY IS " << velocity << " METERS PER SECOND."; cout.precision(1); cout << time << " " << distance << " " << velocity << endl << endl; }

ثم، داخل الدالة main، يمكنك استدعاء هذه الدوال كالتالي:

cpp
while (seconds > 0) { distance = calculateDistance(seconds); velocity = calculateVelocity(seconds); printResults(seconds, distance, velocity); // استمرار في الحصول على الإدخال من المستخدم getSeconds(); }

بهذه الطريقة، يمكنك جعل الكود أكثر هيكلة وسهولة في الصيانة. تجنب استخدام الأكواد المكررة وحاول تنظيمها بشكل منطقي.

أخيرًا، يُفضل دائمًا التحقق من صحة الإدخالات قبل استخدامها. على سبيل المثال، يمكنك التحقق مما إذا كانت القيمة المدخلة للزمن صحيحة أم لا، والتعامل بشكل مناسب مع أي أخطاء تحدث.

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

زر الذهاب إلى الأعلى