اريد تعلم لغة برمجة وتخايرت بين delphi ;pascal ;vb اريد نصيحة
مادا تنصحوني
هذه لغات أكل عليها الدهر والأفضل أن تجد غيرها ان كنت تريد تطبيقات سطح مكتب تعلم سي شارب أو سي بلس بلس مع qt أو تعلم جافاسكربت وتطوير تطبيقات الويب
Delphi ما تزال مستخدمة بشكل كبير فى كل مكان, و خصوصا فى تطبيقات سطح المكتب.
QT بطيئة و مجرد فوضى اكثر منها مكتبة! و لا تقترب حتى من مكتبات VCL الشاملة و السريعة و المرتبة بشكل جيد.
جافاسكريبت ليست لغة برمجة بالمعنى المفهوم, بل هى script لتصميم صفحات ويب تفاعلية.
سى# هى ليست بديل لسى++, بل هى "تسهيل" موجه اساسا للمبرمجين المبتدئين (اعذرنى) او للenterprise التى تعتمد بشكل كبير على الDB اكثر من البرمجة نفسها ( و بالتالى لا تحتاج الى لغة سريعة لأن المعالجة تعتمد بالأساس على محرك الDatabase و المكتوب على سى++ بالمناسبة!)
نفس هذا الكلام ينطبق على VB حاليا, فهى نفسها C# لكن مع syntax مختلف.
الDelphi هى البديل الوحيد لسى++ حاليا, فاذا اردت برمجة احترافية و لا تحب سى++ لسبب أو لأخر, فتقريبا بديلك البديهى الوحيد هو دلفى.
دلفى تعتمد على لغة باسكال, و هى لغة "أشيك" من سى++ و اسهل فى القراءة.
لا اعرف حقا ما المترجم الذى استخدمته, لكن يمكن بالطبع طباعة متغير ذى قيمة عشرية بشكل صحيح! و هذا شىء فعلته و متأكد ان ملايين غيرى فعلوه دون مشاكل!
فى formatting output انت تدخل طول العدد الاقصى و هذا المفترض ان يكون معروفا او متوقعا, الأمر نفسه فى سى++ اذا اردت تحويل الرقم الى متغير حرفى (دالة gcvt).
عموما فى Delphi فان مكتبات VCL توفر وسائل أسهل لاخراج المتغيرات العشرية مثل formatfloat
وكيف عرفت قيمة المتغير؟ هل قمت باستخدام ال debugger ؟ ربما خطأ في حساباتك
الدالة formatfloat موجودة في المترجمين Free pascal و delphi وهي تستخدم لتغيير ال format وليس القيمة
وكما قال فادي
ملايين غيرى فعلوه دون مشاكل!
هل يمكن ان ترينا الكود الذي تسبب في المشكلة؟
اولا الحاسوب يقوم بتقريب الكسور ، يعني طول (او دقة) الرقم محدودة لذا النتيجة صحيحة
4.99999999999999999979E-0004 = 0.0005
و الرقم 0.0005 هو رقم دوري في النظام الثنائي
يمكنك استخدام
WriteLn(FormatFloat('0.######################',x));
اعتقد ان عدد المنازل العشرية اكثر من كافي
التعليقات