لغة البرمجة سي هي واحدة من اللغات الأكثر شعبية التي تستخدم على نطاق واسع لتطوير برامج النظام. وهي معروفة بكفاءتها وسرعة تنفيذها ، ولكن مثل أي لغة أخرى ، لها حدودها وعيوبها.
أحد العيوب الرئيسية للغة سي هو عدم وجود دعم مدمج للبرمجة الشيئية. ج يفتقر إلى الطبقات ، والأشياء ، والميراث ، وتعدد الأشكال-المفاهيم الأساسية لل أوب التي يتم تنفيذها في لغات مثل ج++ ، جافا ، و بيثون. بدلا من ذلك ، يوفر ج آليات الهيكل والمؤشر التي يمكن استخدامها لإنشاء تجريدات البيانات ، ولكن لا توفر الدعم الكامل أوب.
بالإضافة إلى ذلك ، لا تحتوي لغة سي على دعم مدمج لسلسلة من الأحرف كنوع بيانات. بدلا من ذلك ، يتم تمثيل السلاسل عادة بمصفوفات من الأحرف ، وللعمل مع السلاسل ، تحتاج إلى استخدام وظائف من مكتبة سي القياسية ، مثل سترلين() وستركات(). هذا يمكن أن يجعل العمل مع السلاسل أكثر صعوبة ويتطلب المزيد من التعليمات البرمجية مقارنة باللغات التي تحتوي على دعم سلسلة مدمج.
عملية أخرى غير موجودة في ج هي استثناء. تفتقر لغة ج إلى آلية معالجة الاستثناء التي تسمح لك بالقبض على المواقف الاستثنائية والتعامل معها. بدلا من ذلك ، ج يستخدم رموز الخطأ أو قيم إرجاع الدالة للتعامل مع الأخطاء. هذا يمكن أن يعقد التعليمات البرمجية وجعلها أقل قابلية للقراءة وعرضة للخطأ.
في الختام ، على الرغم من أن لغة البرمجة ج لها العديد من المزايا ، مثل الأداء العالي والكفاءة ، إلا أن لها أيضا حدودها وعيوبها. عدم وجود دعم أوب ، وعدم وجود المدمج في دعم سلسلة ، وعدم وجود آلية معالجة استثناء جعل ج أقل ملاءمة لتطوير مشاريع البرمجيات المعقدة والقابلة للتطوير.
- وصف لغة البرمجة سي
- العمليات غير الموجودة في لغة سي
- العمليات الحسابية
- العمليات مع الأحرف والسلاسل
- عمليات البت
- العمليات الشرطية
- عمليات الذاكرة
- عمليات الإدخال والإخراج
- عمليات الملف
- سؤال وجواب
- ما هي العمليات مفقودة في لغة البرمجة ج?
- هل من الممكن إجراء عمليات مع سلاسل الأحرف في اللغة ج?
- هل يمكنني استخدام مشغلي الفروع والحلقات في لغة البرمجة ج?
وصف لغة البرمجة سي
ال لغة البرمجة سي هي لغة برمجة عالية المستوى تم إنشاؤها في عام 1972 بواسطة مختبرات بيل الموظفين دينيس ريتشي و كين طومسون. ج هي واحدة من لغات البرمجة الأكثر شعبية وتستخدم على نطاق واسع لتطوير أنظمة التشغيل وبرامج تشغيل الأجهزة والأنظمة المدمجة والألعاب والتطبيقات الأخرى.
ج تم إنشاؤه في الأصل لتطوير نظام تشغيل يونكس ، لذلك تم تصميمه للعمل مع مكالمات النظام ومعالجة الذاكرة. ومع ذلك ، أصبحت اللغة لاحقا متعددة الأغراض ووجدت تطبيقا في العديد من المجالات.
ملامح اللغة ج:
- بناء جملة بسيط. تحتوي لغة سي على بناء جملة مضغوط ومفهوم ، مما يجعل من السهل فهم رمز البرنامج.
- الوصول المباشر إلى الذاكرة. ج يوفر القدرة على التعامل مع الذاكرة مباشرة ، مما يضمن الأداء العالي.
- عبر منصة. يمكن تجميع البرامج المكتوبة بلغة ج وتشغيلها على منصات مختلفة دون تغيير التعليمات البرمجية.
- مكتبة قياسية غنية. ج لديه مكتبة قياسية واسعة توفر وظائف مختلفة للعمل مع الملفات والسلاسل والعمليات الحسابية ، إلخ.
- برمجة منخفضة المستوى. تسمح لك لغة سي بكتابة رمز منخفض المستوى ، بما في ذلك استخدام المؤشرات وعمليات البت.
مثال على برنامج في ج:
# تشمل
كثافة العمليات الرئيسية () {
برينتف ("مرحبا ، العالم!");
العودة 0;
}
هي نقطة الدخول إلى البرنامج.
لغة البرمجة سي لها حدودها ولا تدعم بعض العمليات ، مثل البرمجة الشيئية والإدارة التلقائية للذاكرة. ومع ذلك ، نظرا لبساطتها وكفاءتها ، تظل لغة البرمجة شائعة ومطلوبة.
العمليات غير الموجودة في لغة سي
لغة البرمجة سي هي واحدة من لغات البرمجة الأكثر شعبية وتستخدم على نطاق واسع. يحتوي على ميزات قوية وبناء جملة بسيط يسمح للمطورين بإنشاء كود عالي الكفاءة وسريع المفعول. ومع ذلك ، ج يفتقر إلى بعض العمليات والوظائف التي يمكن أن تكون مفيدة في تطوير بعض أنواع البرامج.
فيما يلي بعض العمليات غير المتوفرة في لغة البرمجة سي:
- .
- ، الذي يقارن سلسلتين ويعيد عددا صحيحا يشير إلى نتيجة المقارنة.
- العمليات الحسابية مع الأعداد المركبة: ج لا يحتوي على دعم مدمج للعمل مع الأعداد المركبة. ومع ذلك ، يمكن للمطورين استخدام مكتبات الجهات الخارجية أو تنفيذ وظائفهم الخاصة للعمل مع الأعداد المركبة.
- وغيرها ، للعمل مع الملفات.
على الرغم من أن بعض هذه العمليات مفقودة من لغة سي ، إلا أن قدراتها القوية ومرونتها تسمح للمطورين بتحقيق الوظيفة المطلوبة باستخدام الأدوات والمكتبات المتاحة.
العمليات الحسابية
تقدم لغة البرمجة سي مجموعة واسعة من العمليات الحسابية للعمل مع الأرقام. ومع ذلك ، هناك بعض العمليات المفقودة في هذه اللغة.
فيما يلي بعض العمليات غير الموجودة في ج:
- الأس: لا يوجد عامل في ج لأسي رقم. ومع ذلك ، هناك طرق مختلفة لتنفيذ هذه العملية باستخدام الحلقات أو الرياضيات.مكتبة ح.
- زيادة وانقاص الدرجة: في ج لا يوجد مشغلون لزيادة وإنقاص رقم بدرجة معينة. ولكن يمكنك استخدام الحلقات أو العمليات الحسابية القياسية لتحقيق هذا التأثير.
- القسمة مع الباقي: في ج ، لا توجد عملية تعيد حاصل القسمة وبقية القسمة في نفس الوقت. بدلا من ذلك ، ج يوفر عامل القسمة (/) للحصول على حاصل القسمة والباقي من عامل القسمة ( ٪ ) للحصول على الباقي.
على الرغم من عدم وجود بعض العمليات ، توفر لغة البرمجة سي أدوات قوية ومرنة للعمل مع الأرقام. تتيح معرفة العمليات الحسابية الأساسية وقواعد استخدامها للمبرمج إجراء حسابات مختلفة بشكل فعال والعمل مع الأرقام.
العمليات مع الأحرف والسلاسل
توفر لغة البرمجة سي بعض العمليات الأساسية للعمل مع الأحرف والسلاسل. ولكن هناك أيضا بعض العمليات المفقودة في ج وتتطلب مكتبات أو وظائف إضافية لأدائها.
فيما يلي بعض العمليات التي تحتوي على أحرف وسلاسل غير مدعومة أصلا في لغة سي:
- سلسلة سلسلة: لا توجد عمليات مدمجة في ج لدمج سلسلتين في واحد. ومع ذلك ، يمكنك استخدام وظائف من السلسلة.ح مكتبة ، مثل ستركات أو سترنكات ، لدمج سلسلتين في واحد.
- مقارنة السلسلة: ج لا يوفر طريقة فورية لمقارنة سلسلتين كاملتين. بدلا من ذلك ، يمكنك استخدام وظائف من السلسلة.مكتبة ح ، مثل ستركمب أو سترنكمب ، لمقارنة سلسلتين والحصول على نتيجة المقارنة.
- البحث عن حرف في سلسلة: لا تحتوي لغة سي على عمليات مضمنة للبحث عن حرف في سلسلة. ومع ذلك ، يمكنك استخدام وظائف من مكتبة السلسلة.ح ، مثل سترتشر أو سترتشر ، للعثور على التكرار الأول أو الأخير لحرف في سلسلة.
أيضا ، لا توجد عمليات في ج تسمح لك بتغيير الأحرف في سلسلة أو حذف أحرف معينة من سلسلة. ومع ذلك ، يمكنك تنفيذ الوظائف الخاصة بك لأداء مثل هذه العمليات.
عمليات البت
توفر لغة البرمجة سي مجموعة قوية من العمليات للعمل مع البتات التي تسمح لك بمعالجة البتات الفردية في الأعداد الصحيحة. ومع ذلك ، على الرغم من ذلك ، تفتقر لغة سي إلى بعض عمليات البت الأكثر تقدما التي قد تكون متاحة بلغات برمجة أخرى.
وهنا بعض العمليات التي لا تتوفر في اللغة ج:
- تحويل البتات إلى اليسار واليمين مع إضافة الأصفار: في بعض لغات البرمجة ، مثل ج++ ، هناك عوامل تشغيل لتحويل البتات إلى اليسار ( < > ) ، والتي تؤدي أيضا إضافة الأصفار. في ال لغة ج ، يقوم هؤلاء المشغلون أيضا بتحويل البتات ، لكنهم لا يضيفون أصفارا.
- انعكاس بت: اللغة ج لديها لا (~) المشغل الذي يقلب كل بت في عدد. ومع ذلك ، في اللغة ج لا يوجد عامل لعكس بت واحد فقط.
- ضبط البتات وإعادة ضبطها والتحقق منها: تحتوي بعض لغات البرمجة على عمليات تسمح لك بتعيين البتات الفردية وإعادة تعيينها والتحقق منها في رقم. في ج ، يمكنك استخدام أقنعة البت وعمليات البت لتنفيذ هذه العمليات ، ولكن لا توجد عوامل تشغيل خاصة لهذا الغرض.
على الرغم من عدم وجود بعض عمليات البت في لغة ج ، لا تزال عمليات البت الخاصة بها توفر وظائف مرنة للغاية للعمل مع البتات في الأعداد الصحيحة. ومع ذلك ، إذا كنت بحاجة إلى استخدام عمليات البت المتقدمة هذه ، فيمكنك التفكير في لغات برمجة أخرى توفر نطاقا أوسع من الإمكانات في هذا المجال.
العمليات الشرطية
ال لغة البرمجة ج يوفر العديد من العمليات الشرطية لإجراء فحوصات مختلفة واتخاذ القرارات في البرنامج. ومع ذلك ، ج ليس لديها بعض العمليات التي يمكن أن تكون مفيدة في حل مهام معينة.
وفيما يلي بعض العمليات الشرطية التي لا تتوفر في اللغة ج:
- المشغل الثلاثي هو عامل يسمح لك بتقصير تسجيل التعبير الشرطي مع فرعين. لم يكن متوفرا في ج ، بدلا من ذلك يتم استخدام النموذج الكلاسيكي إذا-آخر.
- تبديل المشغل مع القدرة على المقارنة حسب النطاق-مشغل التبديل في ج يسمح لك باستخدام قيم محددة فقط للمقارنة ، ولكن ليس نطاقات القيم. إذا كنت بحاجة إلى التحقق من أن الرقم في نطاق معين ، لديك لاستخدام إذا-آخر بناء.
- عوامل مقارنة السلاسل-في ج ، لا يمكنك مقارنة السلاسل باستخدام عوامل المقارنة مثل ">", "<=", "!=". لمقارنة السلاسل في ج ، تحتاج إلى استخدام وظائف من السلسلة.مكتبة ح ، على سبيل المثال ، ستركمب().
على الرغم من أن ج لا تملك هذه العمليات ، يمكن للمبرمجين استخدام بنيات لغة أخرى ومكتبات قياسية لإجراء فحوصات مماثلة واتخاذ القرارات.
عمليات الذاكرة
لغة البرمجة ج لديها حرف على مستوى منخفض ، وبالتالي فإنه يوفر فرصة للعمل مباشرة مع ذاكرة الكمبيوتر. في الوقت نفسه ، تفتقر ج إلى بعض العمليات المريحة النموذجية للغات ذات المستوى الأعلى.
- التخصيص التلقائي للذاكرة-ج لا يحتوي على عمليات مضمنة للتخصيص التلقائي للذاكرة عند التصريح عن المتغيرات. الحاجة إلى تخصيص يدويا والذاكرة الحرة يمكن أن تزيد من تعقيد البرنامج وزيادة احتمال الأخطاء.
- جامع القمامة-ج لا يوفر آلية مدمجة لتحرير الذاكرة تلقائيا المستخدمة من قبل الكائنات التي لم تعد هناك حاجة إليها. هذا يعني أنه يتعين على المبرمجين تحرير الذاكرة بشكل صريح بعد استخدام كل كائن ، والتي يمكن أن تكون عملية تستغرق وقتا طويلا وخاطئة.
- تغيير حجم الذاكرة الديناميكية-لا توجد عمليات في ج لتغيير حجم الذاكرة المخصصة ديناميكيا. هذا يجعل العمل مع هياكل البيانات المرنة والقابلة للتغيير أكثر صعوبة ويتطلب المزيد من الجهد والوقت من المبرمج.
- مؤشر التلاعب-العمل مع مؤشرات في ج يمكن أن يكون صعبا وعرضة للخطأ. يمكن أن يؤدي عدم وجود عمليات للتلاعب البسيط ، مثل نسخ مؤشر أو مقارنة المؤشرات بالمساواة ، إلى تعقيد البرمجة وزيادة احتمالية حدوث أخطاء.
بشكل عام ، تتطلب عمليات الذاكرة في لغة البرمجة سي نهجا أكثر حذرا واهتماما بالتفاصيل من جانب المبرمج. ومع ذلك ، فإن هذا يسمح بإدارة ذاكرة أكثر مرونة والاستخدام الفعال لمواردها.
عمليات الإدخال والإخراج
ج هي لغة برمجة قياسية توفر مجموعة من عمليات الإدخال والإخراج الأساسية (الإدخال/الإخراج). ومع ذلك ، فإن لغة ج تفتقر إلى بعض العمليات التي يمكن أن تكون مفيدة في بعض المواقف. في هذا القسم ، سنلقي نظرة على بعضها.
1. عملية إدخال حرف لوحة المفاتيح:
في ج ، يتم استخدام وظيفة جيتشار () لإدخال حرف من لوحة المفاتيح. ومع ذلك ، فإنه يعود حرف واحد فقط. إذا كنت بحاجة إلى إدخال سلسلة أو عدد معين من الأحرف ، فأنت بحاجة إلى استخدام حلقة أو وظيفة أخرى ، مثل جيتس(). ومع ذلك ، فإن يحصل() تعتبر وظيفة غير آمنة وعفا عليها الزمن ، ولا ينصح استخدامه.
2. عملية عرض خط على الشاشة:
في ج ، يتم استخدام وظيفة برينتف () لعرض خط على الشاشة. ومع ذلك ، تسمح لك هذه الوظيفة بإخراج سطر واحد فقط. إذا كنت بحاجة إلى إخراج خطوط متعددة ، تحتاج إلى استخدام حلقة أو سلسلة وظائف مثل يضع() أو فبوت().
3. ملف القراءة والكتابة العملية:
ج لا توفر الدعم الأصلي لملف القراءة والكتابة العمليات. ومع ذلك ، يمكنك استخدام مكتبات الإدخال/الإخراج القياسية مثل ستديو.ح للعمل مع الملفات.
باستخدام وظائف الإدخال والإخراج القياسية ، يمكنك معالجة البيانات والتفاعل مع المستخدم وإجراء عمليات الإدخال والإخراج الأخرى بلغة سي. ومع ذلك ، تتطلب بعض العمليات ، مثل كتابة سطر من لوحة المفاتيح أو إخراج عدة أسطر في نفس الوقت ، رمزا إضافيا أو استخدام وظائف خاصة.
عمليات الملف
لا تحتوي لغة البرمجة سي على عمليات مضمنة للعمل مع الملفات. ومع ذلك ، لإجراء عمليات مع الملفات في ج ، يمكنك استخدام ستديو.h
مكتبة. ستديو.ح توفر المكتبة مجموعة من الوظائف لفتح الملفات وقراءتها وكتابتها وإغلاقها. فيما يلي الوظائف الرئيسية للعمل مع الملفات:
- فتح: تفتح الوظيفة الملف في الوضع المحدد (قراءة ، كتابة ، إلخ.) وإرجاع مؤشر إلى بنية الملف ، الذي يمثل الملف المفتوح.
- إغلاق: وظيفة إغلاق الملف المحدد.
- فريد: وظيفة يقرأ البيانات من الملف المحدد.
- فوريت: وظيفة يكتب البيانات إلى الملف المحدد.
- فسيك: تقوم الدالة بتعيين مؤشر الموضع إلى الموقع المحدد في الملف.
- فتيل: تقوم الدالة بإرجاع موضع المؤشر الحالي في الملف.
بالإضافة إلى ذلك ، ستديو.ح مكتبة يوفر وظائف للعمل مع الملفات النصية ، مثل فسكانف و فبرينتف ، والتي تسمح القراءة المنسقة وكتابة البيانات إلى الملفات.
من المهم ملاحظة أن عمليات الملفات في ج يمكن أن تكون غير آمنة لأنه لا توجد آليات للتحقق من الأخطاء لفتح الملفات وقراءتها وكتابتها. لذلك ، يوصى بالتحقق بعناية من قيم إرجاع الوظائف والتعامل مع الأخطاء المحتملة.
سؤال وجواب
ما هي العمليات مفقودة في لغة البرمجة ج?
تفتقر لغة البرمجة سي إلى عمليات إدارة الذاكرة مثل الجديد والحذف ، والتي تستخدم لتخصيص الذاكرة وتحريرها ديناميكيا.
هل من الممكن إجراء عمليات مع سلاسل الأحرف في ج?
نعم ، توفر اللغة ج للعمل مع سلاسل الأحرف باستخدام مكتبة من الوظائف مثل ستركبي ، ستركات ، سترلين ، الخ
. هل يمكنني استخدام المتفرعة المشغلين والحلقات في لغة البرمجة ج?
نعم ، اللغة ج لديها المتفرعة المشغلين مثل إذا-آخر ، التبديل حالة ، ومشغلي حلقة مثل ل ، في حين ، تفعل في حين ، والتي تسمح لك لأداء العمليات الشرطية وتكرار كتلة من التعليمات البرمجية عدة مرات.