السلام عليكم ورحمة الله
إخواني، لقد قمت بتحميل كتاب الإكسير للأخ سلطان محمد الثبيتي من على المنتدى رغبة في تعلم السي ++ وقد استفدت منه كثيراً حتى الآن ولله الحمد، ولكن أثناء تعلمي لجملة For لاحظت خطأ في المثال العملي للأخ، حيث يقوم ببرمجة كود يحسب العدد الأكبر والأصغر من مجموعة أرقام يدخلها المستخدم، وها هو الكود _وهو موجود في الصفحتين 45-46:
1. #include <iostream>
2. using namespace std;
3.
4. int main()
5. {
6. int number=0;
7. int max=0;
8. int min=0;
9.
10.
11. for (int i=0; i< 10;i++) {
12. cout << "Enter the number:\t";
13. cin >> number;
14.
15. if (number > max)
16. max=number;
17.
18. if (number < min)
19. min=number;
20. }
21.
22. cout << endl << endl;
23. cout << "The Max Number is:\t" << max;
24. cout << "\nTne Min Number id:\t" << min;
25. cout << endl;
26.
27. return 0;
28.
29. }حسناً الخطأ هنا:
if (number<min) min=number;
حيث إن القيمة الأصلية للمتغير min هي الصفر، وبالتالي فلن يكون العدد محققاً لهذا الشرط إلا إذا كان عدداً سالباً، لذلك ينبغي إضافة الأمر التالي قبل مقارنة العدد مع القيمة الصغرى:
if (i==0) min=number;
لذلك أرجو من مشرفي القسم أن يقوموا بتعديل هذه الفقرة في الكتاب، وإعادة نشره بعد التعديل في المواضيع التي كان الكتاب منشوراً فيها، تفادياً لوقوع المبتدئين من أمثالي في الخطأ والحيرة.
وجزاكم الله كل الخير
