تعلم كيفية البرمجة في C

تعلم البرمجة في C :

الجزء الثالث

  • برنامجك الأول
لقد أعددنا الأرض حتى الآن ، والآن سيكون من الجيد أن نبدأ بالبرمجة قليلاً ، ماذا تقول؟ هذا هو الهدف من هذا الفصل! في نهاية الأمر ، سوف تكون قد نجحت في إنشاء برنامجك الأول!
حسنًا ، سيكون هذا البرنامج باللونين الأسود والأبيض وسيقول فقط مرحباً ، سيبدو غير مجدي تمامًا ولكنه سيكون الأول. يمكنني أن أؤكد لك أنك ستفتخر بذلك.
  • وحدة التحكم(console) أو النافذة؟
تحدثنا بسرعة عن مفهوم "برنامج وحدة التحكم" و "برنامج النافذة" في الفصل السابق. لقد سألنا ىضى عن نوع البرنامج الذي أردنا إنشائه وأخبرتك بالقنر على وحدة التحكم(console)
يجب أن يكون معروفًا أن هناك نوعين من البرامج ، لا أكثر:

برامج مع ويندوز.

برامج وحدة التحكم.

برامج النوافذ:

هذه هي البرامج التي تعرفها.
الشكل التالي هو مثال على برنامج نافذة تعرفه على الأرجح.
Le programme Paint
لذلك هذا هو برنامج مع ويندوز. أعتقد أنك تريد إنشاء هذا النوع من البرامج ، أليس كذلك؟ حسنا ... لن تذهب بعيدا!

في الواقع ، من الممكن إنشاء برامج بنوافذ في C ، ولكن ... عندما نبدأ ، الأمر معقد للغاية!
للبدء ، من الأفضل البدء بإنشاء برامج وحدة التحكم.

ولكن بالمناسبة ، ما هو شكل برنامج وحدة التحكم؟

برامج وحدة التحكم:

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

بالطبع ، لقد مر الوقت. إذا أصبح الكمبيوتر "سائدًا" ، فمن خلال البساطة المتزايدة من خلال استخدام النوافذ على نظامي التشغيل Windows و OS X في النصف الثاني من الثمانينات ، نسي الكثير من الناس هذا اليوم ما كان وحدة التحكم. نعم أنت هناك ، لا تنظر خلفك ، أعلم أنك تتساءل!

لدي خبر كبير! وحدة التحكم ليست ميتة! في الواقع ، لقد أحيى لينكس استخدام وحدة التحكم. الشكل التالي هو لقطة شاشة لوحدة تحكم Linux.
Un exemple de console, ici sous Linux
بررر ... مرعبة ، هاه؟ هنا لديك الآن فكرة صغيرة عن شكل وحدة التحكم.

ومع ذلك ، عدة ملاحظات:

اليوم نحن نعرف كيف نعرض اللون ، لذلك كل شيء ليس أبيض وأسود كما قد يظن المرء ؛

وحدة التحكم غير مرحب بها للمبتدئين.

ومع ذلك ، فهي أداة قوية عندما يعرف المرء كيفية السيطرة عليها.

كما قلت أعلاه، إنشاء برامج في وضع "وحدة"، كما هنا، فمن السهل جدا ومثالية للمبتدئين (وهو ليس الحال بالنسبة لوضع برامج "نافذة").

لاحظ أن وحدة التحكم قد تطورت: يمكنها عرض الألوان ، ولا شيء يمنعك من وضع صورة خلفية.

وتحت ويندوز؟ لا يوجد وحدة التحكم؟

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

يوضح الشكل التالي وحدة تحكم Windows الجميلة.
La console de Windows
إذا كنت تستخدم نظام التشغيل Windows ، فاعرف أنه في نافذة تبدو على هذا النحو ، سنجعل برامجنا الأولى. إذا اخترت أن أبدأ ببرامج وحدة التحكم الصغيرة ، فلا تزعجك ، بل على العكس! بدءًا من برامج وحدة التحكم ، ستتعرف على الأساسيات اللازمة لإنشاء النوافذ.

لذا اطمئن: بمجرد أن يكون لدينا مستوى لإنشاء النوافذ ، سنرى كيف نفعل ذلك.

بالنسبة لأي برنامج ، سيكون من الضروري كتابة الحد الأدنى من التعليمات البرمجية. هذا الرمز لن يفعل أي شيء لكنه ضروري.
هذا هو "رمز الحد الأدنى" الذي سنكتشفه الآن. يجب أن يكون الأساس لمعظم برامج اللغة C الخاصة بك.

اطلب الحد الأدنى لرمز IDE الخاص بك:

للتذكير ، تحت Code :: Blocks (وهو IDE سأستخدمه خلال هذه الدورة التدريبية) ، عليك الانتقال إلى menuFile / New / Project ، ثم اختيار ApplicationConsole وتحديد لغة C.

الكود :: الكتل بالتالي ولدت الحد الأدنى من كود C التي نحتاجها. هاهو :

  1. #include <stdio.h>
  2. #include <stdlib.h>

  3. int main()
  4. {
  5.     printf("Hello world!\n");
  6.     return 0;
  7. }

لاحظ أن الخط:
  1. int main()
... يمكن أيضًا كتابته على شكل:
  1. int main(int argc, char *argv[])

كلتا الكتابتين ممكنتان ، لكن الثانية (المعقدة) هي الأكثر شيوعًا. سوف أميل إلى استخدام الأخير بدلاً من ذلك في الفصول القادمة.

بقدر ما نشعر بالقلق ، سواء كنا نستخدم واحدة أو أخرى ، والتي لن تغير أي شيء بالنسبة لنا. لا داعي للقلق ، خاصة وأننا لا نملك حتى الآن المستوى اللازم لتحليل ما يعنيه ذلك.

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

احفظ كل شيء. نعم ، أعلم أننا لم نقم بأي شيء بعد ، ولكن سجلنا على أي حال ، إنها عادة جيدة. عادة ما يكون لديك ملف مصدر واحد يسمى ماين.چ (والباقي هي ملفات مشروع تم إنشاؤها بواسطة ىضى الخاص بك).

دعونا نحلل الكود

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

لنبدأ بالخطين الأولين المتشابهين للغاية:
  1. #include <stdio.h>
  2. #include <stdlib.h>
هذه هي خطوط خاصة يمكن رؤيتها في أعلى الملفات المصدر فقط. هذه الخطوط يمكن التعرف عليها بسهولة لأنها تبدأ ب #. تسمى هذه الخطوط الخاصة توجيهات preprocessor (اسم معقد ، أليس كذلك؟). هذه هي الخطوط التي سيتم قراءتها من قبل برنامج يسمى preprocessor ، وهو برنامج يبدأ في بداية التجميع.

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

نعم ، ولكن ماذا تعني هذه السطور؟ أود أن أعرف على أي حال!

تعني الكلمة الإنجليزية include "تضمين" بالعربية . تتطلب هذه الخطوط تضمين ملفات في المشروع ، أي لإضافة ملفات التصنيف.
هناك سطرين ، لذلك تم تضمين ملفين. تسمى هذه الملفات stdio.h و stdlib.h. هذه الملفات موجودة بالفعل ، ملفات مصدر جاهزة. سنرى لاحقا أنهم يطلقون على المكتبات (البعض يتحدث أيضا عن المكتبات لكنه الانجليكانية). بشكل أساسي ، تحتوي هذه الملفات على رمز جاهز يمكنه عرض النص على الشاشة.

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

باختصار ، وباختصار ، يشتمل أول سطرين على مكتبات تسمح لنا (من بين أشياء أخرى) بعرض نص على الشاشة بسهولة تامة.

دعنا ننتقل الباقي هو كل ذلك:
  1. int main()
  2. {
  3.     printf("Hello world!\n");
  4.     return 0;
  5. }
ما تراه هناك ما يسمى وظيفة main. يتكون البرنامج في لغة C من وظائف ، ويحتوي فقط على ذلك. في الوقت الحالي ، يحتوي برنامجنا على وظيفة واحدة فقط.

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

دون الخوض في تفاصيل بناء وظيفة (من المبكر جدا ، سوف نتحدث مرة أخرى في وقت لاحق) ، دعونا نحلل الأجزاء الرئيسية. يحتوي السطر الأول على اسم الدالة ، وهي الكلمة الثانية.
نعم ، تسمى وظيفتنا اليد. هو اسم الدالة الخاصة التي تعني "الرئيسي". الرئيسية هي الوظيفة الرئيسية للبرنامج الخاص بك ، هو دائما عن طريق الوظيفة الرئيسية التي يبدأها البرنامج.

تحتوي الدالة على بداية ونهاية ، محاطتين بالأقواس المعقوفة {و}. جميع الوظائف الرئيسية هي بالتالي بين هذه الأقواس. إذا اتبعت بشكل صحيح ، فإن وظيفتنا الرئيسية تحتوي على سطرين:
  1. printf("Hello world!\n");
  2. return 0;
هذه الخطوط داخل وظيفة لها اسم. يطلق عليها تعليمات instructions(انها المفردات التي يجب تذكرها).
كل تعليمة هي أمر للكمبيوتر. يطلب كل من هذه السطور من الكمبيوتر القيام بشيء محدد.

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

لا يعد البرنامج في نهاية المطاف أكثر من سلسلة من التعليمات: "افعل هذا" ، "افعل ذلك". أنت تعطي أوامر لجهاز الكمبيوتر الخاص بك وينفذها. على الأقل إذا فعلت ذلك بشكل جيد.
مهم جدًا: يجب أن تنتهي أي تعليمات بفاصلة منقوطة "؛" هذه هي الطريقة التي نتعرف بها على التعليمات وما هو غير ذلك. إذا نسيت وضع فاصلة منقوطة في نهاية إحدى التعليمات ، فلن يتم ترجمة البرنامج الخاص بك!
السطر الأول: ;(printf("Hello world!"\n اطلب عرض رسالة "مرحبا بالعالم! " على الشاشة. عندما يصل برنامجك إلى هذا الخط ، سيعرض رسالة على الشاشة ، ثم ينتقل إلى التعليمات التالية.

دعونا نذهب إلى التعليمات التالية على وجه التحديد:
return 0 ؛
حسناً ، هذا يعني أنه انتهى (نعم ، بالفعل). يشير هذا السطر إلى أننا في نهاية وظيفتنا الرئيسية ويطلب إرجاع 0.
لماذا يعرض برنامجي الرقم 0؟
في الواقع ، كل برنامج بمجرد الانتهاء من إرجاع قيمة ، على سبيل المثال أن أقول أن كل شيء سار بشكل جيد. في الممارسة ، 0 تعني "كل شيء سار بشكل جيد" وأي قيمة أخرى تعني "خطأ". في معظم الأوقات ، لا يتم استخدام هذه القيمة حقًا ، ولكن لا يزال عليك إعادة واحدة.
كان برنامجك سيعمل بدون العائد 0 ، لكننا سنقول أنه أكثر نظافة وأكثر جدية لوضعه ، لذا وضعناه.

وهذا كل شيء! نحن فقط بالتفصيل عملية صغيرة من الحد الأدنى للشفرة.

من المؤكد أننا لم نر كل شيء في العمق ، ويجب أن تكون لديك بعض الأسئلة المعلقة. كن مطمئنًا: ستجد جميع أسئلتك إجابة شيئًا فشيئًا. لا استطيع ان اقول لكم كل شيء في وقت واحد ، سيكون الكثير من الاستيعاب.

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

عقد: كما أنا في مزاج جيد ، أعطيك رسم تخطيطي يلخص المفردات المستفادة للتو (الشكل التالي).
Le vocabulaire du programme minimal

دعونا نختبر برنامجنا

اختبار يجب ان تذهب بسرعة. كل ما عليك القيام به هو ترجمة المشروع وتشغيله (انقر فوق رمز "build & run" ضمن Code :: Blocks).
إذا لم تقم بذلك بالفعل ، فستتم مطالبتك بحفظ الملفات. تفعل ذلك.
إذا لم يعمل التحويل البرمجي وكان لديك خطأ كالتالي: "My-program-Release" يستخدم مترجمًا غير صالح. تخطي ... لا شيء يجب القيام به ... وهذا يعني أنك قمت بتنزيل إصدار Code :: Blocks بدون mingw (المحول البرمجي). ارجع إلى موقع Code :: Blocks لتنزيل النسخة مع mingw.
بعد فترة انتظار لا تطاق (تجميع) ، سيظهر برنامجك الأول أمام عينيك بشكل كامل مع السعادة (الشكل التالي).
Votre premier programme !
يعرض البرنامج "Hello world! (في السطر الأول).
تم إنشاء الأسطر أدناه بواسطة Code :: Blocks وتشير إلى أن البرنامج تم تشغيله بشكل جيد ومقدار الوقت المنقضي منذ الإطلاق.

ستتم مطالبتك بالضغط على أي مفتاح على لوحة المفاتيح لإغلاق النافذة. توقف البرنامج الخاص بك بعد ذلك. نعم ، أنا أعلم أنه ليس متعاليا. لكن مهلا ، على أي حال! إنه البرنامج الأول ، لحظة ستتذكرها طوال حياتك! ... لا؟

  • اكتب رسالة على الشاشة
من الآن فصاعدا ، سوف نقوم بتعديل أنفسنا رمز هذا البرنامج الحد الأدنى.مهمتك ، إذا كنت توافق على: عرض رسالة "مرحبا" على الشاشة.
كما كان من قبل ، يجب فتح وحدة التحكم. يجب أن تظهر الرسالة "Hello" في وحدة التحكم.
كيف تختار النص الذي يظهر على الشاشة؟
سيكون بسيطا جدا. إذا كنت تبدأ من الكود الموضح أعلاه ، فاستبدل ببساطة "Hello world!" بواسطة "Hello" في السطر الذي يستخدم printf.
كما أخبرتك سابقًا ، printf عبارة عن تعليمات. إنها تطلب من الكمبيوتر: "أرني هذه الرسالة على الشاشة".يجب أن تعرف أن printf هو في الواقع وظيفة سبق أن كتبها مُبرمجون آخرون أمامك.
هذه الوظيفة ، أين تقع؟ أنا أرى فقط الوظيفة الرئيسية!
هل تتذكر هذين الخطين؟


  1. #include <stdio.h>

  2. #include <stdlib.h>



أخبرتك أنهم سمحوا لك بإضافة المكتبات إلى برنامجك.

المكتبات هي في الواقع ملفات ذات أطنان من الوظائف كلها جاهزة للداخل. تحتوي هذه الملفات (stdio.h و stdlib.h) على معظم الوظائف الأساسية المطلوبة في أحد البرامج. يحتوي stdio.h على وجه الخصوص على وظائف لعرض الأشياء على الشاشة (مثل printf) ولكن أيضًا مطالبة المستخدم بكتابة شيء ما (هذه هي الوظائف التي سنراها لاحقًا).

قل مرحبا

في وظيفتنا الرئيسية ، نستخدم وظيفة printf. إنها وظيفة تستدعي وظيفة أخرى (هنا ، main يدعو printf). سترى أنه طوال الوقت في C: تحتوي الدالة على تعليمات تستدعي وظائف أخرى ، وهكذا.

لذا ، لاستدعاء وظيفة ، فهي بسيطة: اكتب اسمك فقط ، متبوعًا بأقواسين ، ثم فاصلة منقوطة.


  1. printf();


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

في حالتنا ، سنكتب بالضبط:
  1. printf("Hello");

أرجو ألا تنسى الفاصلة المنقوطة في النهاية ، أذكرك بأنها مهمة للغاية! هذا يدل على أن التعليمات تتوقف عند هذا الحد.

إليك شفرة المصدر التي يجب أن تكون أمامك:
  1. #include <stdio.h>

  2. #include <stdlib.h>


  3. int main()

  4. {

  5.   printf("Bonjour");

  6.   return 0;

  7. }

لذلك لدينا اثنين من التعليمات التي يتم ترتيبها من أجل الكمبيوتر:

يظهر "مرحبا" على الشاشة.

اكتمال المهمة الرئيسية ، إرجاع 0. ثم يتوقف البرنامج.

التين. يظهر التالي ما يعطي هذا البرنامج على الشاشة.
Un programme poli qui dit Bonjour
وكما ترى ، فإن السطر "Hello" عالق قليلاً مع باقي النص ، على عكس ما كان عليه في السابق.
أحد الحلول لجعل برنامجنا أكثر ملاءمة هو العودة إلى الخط بعد "Hello" (كما لو أننا ضغطنا على مفتاح "Enter").

ولكن بطبيعة الحال ، سيكون من السهل جدًا كتابة "أدخل" في شفرة المصدر الخاصة بنا حتى يتم الدخول على الشاشة! سيتعين علينا استخدام ما نطلق عليه الأحرف الخاصة ...

الأحرف الخاصة

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

\ n: ارجع إلى السطر (= "أدخل")؛

\ t: الجدولة.

في حالتنا ، لإنشاء إدخال ، فقط اكتب \ n لإنشاء سطر جديد.
لذلك إذا أردت إنشاء سطر بعد كلمة "مرحبًا" ، ينبغي علي كتابة:

  1. printf("Bonjour\n");

يفهم جهاز الكمبيوتر الخاص بك أنه يجب إظهار "مرحبًا" متبوعًا بخط جديد (الشكل التالي).
Le programme Bonjour avec un saut de ligne
انها بالفعل أفضل قليلا ، أليس كذلك؟

باختصار:

-يمكن للبرامج التواصل مع المستخدم عبر وحدة تحكم أو نافذة.

-من الأسهل كثيرًا أن تعمل برامجنا الأولى مع وحدة التحكم ، على الرغم من أنها أقل جاذبية للمبتدئين. هذا لن يمنعنا من العمل مع النوافذ في الجزء الثالث. كل شيء يأتي لأولئك الذين ينتظرون. ؛)

-يتكون البرنامج من عبارات تنتهي جميعها بفاصلة منقوطة.

-وترد التعليمات في الوظائف التي تجعل من الممكن تصنيفها ، كما هو الحال في المربعات.

-الوظيفة الرئيسية (التي تعني "main") هي الوظيفة التي يبدأ بها البرنامج. هذا هو الوحيد الذي هو إلزامي ، لا يمكن تجميع أي برنامج دون ذلك.

-printf هي ميزة جاهزة تعرض رسالة على الشاشة في وحدة التحكم.

-printf موجودة في مكتبة بها العديد من الوظائف الجاهزة للاستخدام.

 كاتب الموضوع : ايمن اشقير

Aucun commentaire

Images de thèmes de centauria. Fourni par Blogger.