N0Tb1t
./عضو جديد



السمعة:
بسم الله
في هذا المقال سنتعرف على تعريف المتغيرات وخطوات تعريفها وقواعد تسميتها بالإضافة إلى تعريف الثوابت وأنواعها وطرق تعريفها ونهايةً سنوضح الفرق بين المتغيرات والثوابت
أولاً:
المتغيرات (Variables):
1. بدايةً نقوم بتحديد نوع البيانات (والذي سوف نشرحه بالمقال القادم إن شاء الله)
2. تسمية المتغير : يجب أن يكون اسم المتغير فريداً 'unique' أي لا يتكرر ويتّبع قواعد التسمية التي سنشرحها تالياً
3. تخصيص قيمة ابتدائية : وهذه الخطوة اختيارية أي يمكنك إعطاء المتغير قيمة عند تعريفه
صيغة تعريف المتغير : syntax
قواعد تسمية المتغيرات:
يجب أن يبدأ الاسم بحرف أو علامة '_' (underscore).
يمكن أن يحتوي على الأحرف (a-z, A-Z)، الأرقام (0-9)، وعلامة '_'.
لا يُسمح باستخدام الكلمات المحجوزة (مثل int، return).
الحساسية لحالة الأحرف: Age و age يُعتبران متغيرين مختلفين
مثال:
الناتج :
ثانيا:
الثوابت (Constants):
وهناك طريقتين لتعريف الثوابت:
إما باستخدام الكلمة المفتاحية const او باستخدام #define.
الصيغة لاستخدام const (syntax) :
ملاحظة هامة : "يجب وجود قيمة في تعريف الثابت"
الصيغة لاستخدام define (syntax)# :
مثال:
الناتج:
هلأ يمكن يدور سؤال في راسك ما هو الفرق بين const و #define
1. استخدام const:
تعريف: تُستخدم لتحديد متغير ثابت لا يمكن تغيير قيمته أثناء وقت التنفيذ.
معالجته: يتم التعامل مع الثوابت المعرفة باستخدام const في مرحلة التنفيذ (runtime).
النطاق (Scope): تتبع القواعد الاعتيادية لنطاق المتغيرات في اللغة (محلية أو عامة).
النوع (Type): تحتاج إلى تحديد نوع المتغير، مما يجعل الشيفرة أكثر أمانًا من الأخطاء.
2.استخدام #define :
تعريف: تُستخدم لتعريف ماكرو ثابت (Macro) أو تعبير ثابت يتم استبداله حرفيًا أثناء مرحلة الترجمة.
معالجته: يتم استبدال القيمة المعرفة باستخدام #define مباشرةً أثناء الترجمة (compile time).
النطاق (Scope): ليس لها نطاق؛ يتم استبدالها في كل مكان في الكود حيث يتم استخدامها.
النوع (Type): لا تحتاج إلى نوع معين، وهذا قد يسبب أخطاء أثناء التنفيذ.
ويوضح الجدول التالي الفرق:
وأخيراً ما هو الفرق بين المتغيرات والثوابت
وكما يوضح الجدول التالي أهم الفروقات بينهما:
ملاحظة هامة:
اذا ما طبقت بإيدك ما حتفهم اتمنى منك التطبيق العملي.
ورأيكم مهم سواء نقد للتحسين او مدح للاستمرار
في هذا المقال سنتعرف على تعريف المتغيرات وخطوات تعريفها وقواعد تسميتها بالإضافة إلى تعريف الثوابت وأنواعها وطرق تعريفها ونهايةً سنوضح الفرق بين المتغيرات والثوابت
أولاً:
المتغيرات (Variables):
- تعريفها: هي عبارة عن مكان يتم حجزه في الذاكرة • (RAM) بهدف تخزين قيمه معينة فيها أثناء تشغيل البرنامج. حيث أنّ القيمة التي نضعها بالمتغير هي قيمة مؤقتة يتم حذفها من الذاكرة بمجرد أن يتوقف البرنامج. ويمكن تغيير قيمتها أثناء تنفيذ البرنامج.
1. بدايةً نقوم بتحديد نوع البيانات (والذي سوف نشرحه بالمقال القادم إن شاء الله)
2. تسمية المتغير : يجب أن يكون اسم المتغير فريداً 'unique' أي لا يتكرر ويتّبع قواعد التسمية التي سنشرحها تالياً
3. تخصيص قيمة ابتدائية : وهذه الخطوة اختيارية أي يمكنك إعطاء المتغير قيمة عند تعريفه
صيغة تعريف المتغير : syntax
C:
dataType(نوع البيانات) varName(اسم المتغير) = value(القيمة الابتدائيه);
قواعد تسمية المتغيرات:
يجب أن يبدأ الاسم بحرف أو علامة '_' (underscore).
يمكن أن يحتوي على الأحرف (a-z, A-Z)، الأرقام (0-9)، وعلامة '_'.
لا يُسمح باستخدام الكلمات المحجوزة (مثل int، return).
الحساسية لحالة الأحرف: Age و age يُعتبران متغيرين مختلفين
مثال:
C:
#include <stdio.h>
int main() {
int age = 25; // متغير من النوع int
float height = 5.8; // متغير عشري
char grade = 'A'; // متغير حرفي
char name[] = "Ali"; // متغير نصي (مصفوفة من الأحرف)
printf("Age: %d\n", age);
printf("Height: %.1f\n", height);
printf("Grade: %c\n", grade);
printf("Name: %s\n", name);
return 0;
}
الناتج :
C:
Age: 25
Height: 5.8
Grade: A
Name: Ali
ثانيا:
الثوابت (Constants):
- تعريفها: تُشبه المتغيرات واستخداماتها، لكن من إسمها يبدوا أنها عكس المتغيرات، فالمتغيرات تتغير! أما الثوابت ثابتة ﻻ تتغير وهنا تكمن أهميتها.
- ثوابت رقمية (Numeric Constants):
أعداد صحيحة: مثل 10، -5.
أعداد عشرية: مثل 3.14، -0.001. - ثوابت حرفية (Character Constants):
حرف واحد محصور بين علامات اقتباس مفردة ('A'، 'b'). - ثوابت نصية (String Constants):
نصوص محصورة بين علامات اقتباس مزدوجة ("Hello"). - ثوابت رمزية (Symbolic Constants):
تُعرّف باستخدام الكلمة المفتاحية const أو عن طريق #define.
وهناك طريقتين لتعريف الثوابت:
إما باستخدام الكلمة المفتاحية const او باستخدام #define.
الصيغة لاستخدام const (syntax) :
كود:
const(الكلمة المفتاحية) dataType(نوع البيانات) constName(اسم الثابت) = value(القيمة);
الصيغة لاستخدام define (syntax)# :
كود:
#define constName(اسم الثابت) value(القيمة)
C:
#include <stdio.h>
#define MAX_SIZE 100 // ثابت رمزي باستخدام #define
int main() {
const float PI = 3.14; // ثابت باستخدام const
printf("Value of PI: %.2f\n", PI);
printf("Maximum Size: %d\n", MAX_SIZE);
// محاولة تغيير قيمة ثابت ستؤدي إلى خطأ:
// PI = 3.14159; // خطأ!
// MAX_SIZE = 200; // خطأ!
return 0;
}
الناتج:
كود:
Value of PI: 3.14
Maximum Size: 100
هلأ يمكن يدور سؤال في راسك ما هو الفرق بين const و #define
1. استخدام const:
تعريف: تُستخدم لتحديد متغير ثابت لا يمكن تغيير قيمته أثناء وقت التنفيذ.
معالجته: يتم التعامل مع الثوابت المعرفة باستخدام const في مرحلة التنفيذ (runtime).
النطاق (Scope): تتبع القواعد الاعتيادية لنطاق المتغيرات في اللغة (محلية أو عامة).
النوع (Type): تحتاج إلى تحديد نوع المتغير، مما يجعل الشيفرة أكثر أمانًا من الأخطاء.
2.استخدام #define :
تعريف: تُستخدم لتعريف ماكرو ثابت (Macro) أو تعبير ثابت يتم استبداله حرفيًا أثناء مرحلة الترجمة.
معالجته: يتم استبدال القيمة المعرفة باستخدام #define مباشرةً أثناء الترجمة (compile time).
النطاق (Scope): ليس لها نطاق؛ يتم استبدالها في كل مكان في الكود حيث يتم استخدامها.
النوع (Type): لا تحتاج إلى نوع معين، وهذا قد يسبب أخطاء أثناء التنفيذ.
ويوضح الجدول التالي الفرق:
وأخيراً ما هو الفرق بين المتغيرات والثوابت
وكما يوضح الجدول التالي أهم الفروقات بينهما:
ملاحظة هامة:
اذا ما طبقت بإيدك ما حتفهم اتمنى منك التطبيق العملي.
ورأيكم مهم سواء نقد للتحسين او مدح للاستمرار
التعديل الأخير: