بسم الله الرحمن الرحيم
الآلات تفهم الثنائية فقط. عندما نكتب قائمة من التعليمات التي يمكن للإنسان قراءتها لجهاز الكمبيوتر، فإن الآلات لا تفهم إلا ما نسميه الآن رمز الآلة. يتكون رمز الجهاز هذا فقط من 1 و0.
باستخدام برنامج خاص يسمى المترجم، يمكننا تحويل كود المصدر إلى كود الآلة.
يمكننا الحكم على الكود الجيد وفقًا لثلاثة معايير:
إذا أردنا طباعة بعض النصوص على الشاشة بلغة البرمجة C، نستخدم الدالة printf:
#includeتقوم وظيفةint main(void) { printf("salom, dunyo\n") }
printf بطباعة النص hello,world. يخبر الحرف \ الخاص الموجود به المترجم أن الحرف التالي عبارة عن تعليمات خاصة. والرمز n التالي يعني "سطر جديد" (سطر جديد).
التعبير الموجود في السطر الأول من التعليمات البرمجية هو أمر خاص جدًا ينص على أننا نريد استخدام إمكانيات مكتبة تسمى stdio.h. تتيح لنا هذه المكتبة استخدام وظيفة printf.
المكتبات عبارة عن مجموعة من الوظائف الجاهزة التي يمكننا استخدامها في الكود الخاص بنا.
دعونا نكتب بعض التعليمات البرمجية في لغة C التي ترحب بالمستخدم من خلال سؤاله عن اسمه:
#include#include int main(void) { string answer = get_string("Ismingiz nima? "); printf("Assalomu alaykum, %s\n", answer); }
سيتم استخدام إمكانات مكتبة cs50.h، التي تم تطويرها خصيصًا لدورة CS50، خلال هذه الدورة التدريبية. إحداها هي الدالة get_string. يتم استخدام الدالة get_string لاسترداد النص الذي أدخله المستخدم.
الإجابة هي مكان مخصص لتذكر نص خاص يدخله المستخدم، والذي نسميه المتغير. الإجابة من النوع سلسلة. هناك أيضًا العديد من أنواع البيانات إلى جانب int، bool، char وما إلى ذلك.
%s هو عنصر نائب يسمى رمز التنسيق الذي يخبر الدالة printf بالاستعداد لقبول بعض متغيرات السلسلة.
هناك أيضًا رموز تنسيق لأنواع البيانات الأخرى، على سبيل المثال:
%i مخصص لـ int (الأعداد الصحيحة).
لنطلب من المستخدم إدخال متغيرات x وy من النوع int ومقارنة أرقام الإدخال ببعضها البعض:
#include#include int main(void) { int x = get_int("x ni kiriting: "); int y = get_int("y ni kiriting: "); if (x نحن هنا نقوم بإنشاء متغيرين من النوع int (integer)، x وy. يتم ملء قيمها باستخدام وظيفة get_int في مكتبة cs50.h. وباستخدام المعامل الشرطي نقوم بمقارنة قيم x و y ونعرض رسالة على الشاشة حسب النتيجة.
المخطط التفصيلي هو طريقة يمكننا من خلالها التحقق من كيفية عمل برنامج الكمبيوتر. بهذه الطريقة يمكننا التحقق من كفاءة الكود الخاص بنا.
دعونا نرى المخطط التفصيلي للكود الخاص بنا أعلاه:يمكننا تحسين البرنامج عن طريق البرمجة على النحو التالي:
#include#include int main(void) { int x = get_int("x ni kiriting: "); int y = get_int("y ni kiriting: "); if (x y) { printf("x soni y sonidan katta\n"); } else { printf("x soni y soniga teng\n"); } } يتم الآن النظر في جميع الحالات المحتملة. دعونا نرى المخطط التفصيلي الخاص به:
عوامل التكرار
دعونا نطبع "مواء" 3 مرات:
#includeint main(void) { printf("meow\n"); printf("meow\n"); printf("meow\n"); } الكود الذي كتبناه يعمل بشكل صحيح، ولكن يمكننا تحسين برنامجنا عن طريق تجنب التكرار فيه:
#includeint main(void) { int i = 0; while (i في هذا يتم إنشاء المتغير i من النوع int وتخصيص القيمة 3 له. ثم يتم إنشاء حلقة زمنية تستمر لـ i يمكننا تحسين تصميم برنامجنا بشكل أكبر باستخدام حلقة for:
#includeint main(void) { for (int i = 0; i تأخذ حلقة for ثلاث وسائط.
الوسيط الأول: int i = 0 يقوم بتهيئة العداد الخاص بنا.
الوسيطة الثانية: i أخيرًا، تخبرنا الوسيطة i أنه في كل مرة تتم زيادة i بمقدار واحد.
يمكننا أيضًا إنشاء وظيفتنا الخاصة:void meow(void) { printf("meow\n"); }باطل - يعني أن الدالة لا تُرجع أي قيمة. بين قوسين (باطل) - يعني أن الوظيفة لا تقبل أي معلمات. نستخدم وظيفة المواء التي تم إنشاؤها داخل الوظيفة الرئيسية:
#تتضمنمواء باطلة(باطل); إنت الرئيسي (باطل) { من أجل (int i = 0; i #include void meow(void); int main(void) { for (int i = 0; i يتم تقديم النموذج الأولي للوظيفة كـ void meow(void) في الجزء العلوي من الكود حتى نتمكن من استدعاء وظيفة meow داخل الوظيفة الرئيسية. العوامل الحسابية والتجريد
لنصنع آلة حاسبة بلغة C:
#تتضمن
#تشمل إنت الرئيسي (باطل) { // أدخل قيمة x int x = get_int("x: "); // أدخل قيمة y int y = get_int("y: "); // تنفيذ عملية الإضافة printf("%i\n", x y); } #includevoid meow(void); int main(void) { for (int i = 0; i تطلب وظيفة get_int من المستخدم إدخال قيم للمتغيرات الصحيحة x وy. تقوم الدالة printf بعد ذلك بطباعة قيمة x y باستخدام رمز التنسيق لعدد صحيح - الرمز %i.
العوامل الحسابية هي عمليات رياضية يدعمها المترجم. تتضمن العوامل الحسابية في لغة C ما يلي:
- للإضافة؛
- - - لاستخلاص؛
- * - لمضاعفه؛
- / - للتقسيم؛
- % - لحساب الباقي عند قسمة رقم على رقم آخر.
التجريد هو فن تبسيط الكود الخاص بنا عن طريق تقسيم المشكلة إلى أجزاء أصغر. يمكننا تلخيص الكود أعلاه كما يلي:
#تتضمن#تشمل int add(int a, int b); إنت الرئيسي (باطل) { // أدخل قيمة x int x = get_int("x: "); // أدخل قيمة y int y = get_int("y: "); // تنفيذ عملية الإضافة printf("%i\n", add(x, y)); } كثافة العمليات إضافة (كثافة العمليات أ، كثافة العمليات ب) { العودة ب. } #includevoid meow(void); int main(void) { for (int i = 0; i في هذا، يتم الإعلان عن وظيفة إضافة منفصلة، والتي تقبل الأعداد الصحيحة a و b كمعلمات وترجع مجموعها، ويتم استدعاء وظيفة add(x, y) الخاصة بنا عن طريق أخذ الأعداد الصحيحة x و y كوسائط في الوظيفة الرئيسية. تعليقات
التعليقات هي الأجزاء الأساسية لبرنامج الكمبيوتر، وهي التعليقات التي نقدمها بشكل واضح وموجز للمبرمجين الآخرين وكذلك لأنفسنا، لتوضيح ما يفعله الكود الذي نكتبه. نستخدم فقط علامتين // لكتابة تعليق:
#تتضمن#تشمل إنت الرئيسي (باطل) { // أدخل عددًا صحيحًا موجبًا كثافة العمليات ن؛ يفعل { n = get_int("أدخل عددًا صحيحًا موجبًا:"); } بينما (ن #include void meow(void); int main(void) { for (int i = 0; i أنواع البيانات
أنواع البيانات تحدد نوع البيانات التي يمكن تخزينها في متغير. على سبيل المثال، يمكن للمتغيرات تخزين الأرقام أو الأحرف أو القيم المنطقية. نوع المتغير يخبر الكمبيوتر بكيفية التعامل مع تلك البيانات. أنواع البيانات الشائعة في لغة C هي:
منطقي: يمكن أن يحتوي على قيم منطقية مثل
كل نوع له حدوده الخاصة. على سبيل المثال، نظرًا لقيود الذاكرة، يمكن أن تكون القيمة القصوى لـ int هي 4294967295. إذا حاولنا حساب عدد صحيح يتجاوز الحد الأقصى لقيمته، فسيؤدي ذلك إلى قيام المتغير بتخزين قيمة غير صالحة (- صحيح (صحيح) أو خطأ (خطأ).
char: يمكنه تخزين حرف واحد فقط.- تعويم: عدد حقيقي ذو قيم عشرية.
- int: عدد صحيح بدون علامة عشرية.
- طويل: يمكن تخزين عدد صحيح أكبر من int لأنه يستخدم المزيد من البتات.
- السلسلة: يمكنها تخزين سلسلة من الأحرف (على سبيل المثال كلمة).
عدد صحيح تجاوز ). الاستخدام غير السليم للذاكرة يمكن أن يسبب أخطاء أو مشاكل في التعليمات البرمجية الخاصة بنا. لتجنب المشاكل، نحتاج إلى التأكد من أننا نستخدم نوع البيانات الصحيح.
تستخدم هذه المقالة مصدر CS50x 2024.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3