منتدى استراحات زايد

منتدى استراحات زايد (http://vb.ma7room.com/index.php)
-   منتدى أخبار المواقع والمنتديات العربية والأجنبية (http://vb.ma7room.com/forumdisplay.php?f=183)
-   -   الدرس الثالث : المتغيرات في السي (http://vb.ma7room.com/showthread.php?t=64260)

محروم.كوم 04-06-2009 06:10 AM

الدرس الثالث : المتغيرات في السي
 
السلام عليكم ورحمة الله وبركاته


نتطرق إن شاء الله في هذا الموضوع إلى ثلاث نقط :

- ما هي المتغيرات ؟
- أنواعها
- كيفية استعمالها

أحب أولا أن أذكر أنواع الذاكرات في الحاسب الالي, فالحاسب الالي يرتكز على أربع أنواع من الذاكرات و هي مرتبة من الاسرع إلى الأبطئ :

- Registers : يستعملها المعالج ليضع فيها معطيات قبل استعمالها في تطبيق معين, وهي سريعة جدا وتعين المعالج على الرفع من مستوى أدائه بصفة كبيرة

- Cache memory : وهي الذاكرة تقوم مقام الرابط بين الريجسترات من جهة و الذاركة الحية RAM من جهة أخرى

- الذاكرة الحية أو ما يسمى ب RAM وهي الذاركة التي ستنتعامل معها من خلال تطبيقاتنا

- وأخيرا الذاكرة الميتة ROM وهي الهارد ديسك التي تحتوي على المعلومات التي تبقى و تستمر حتى في غياب الكهرباء عن الجهاز أي أنها ميتة :d

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


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

http://www.easy-upload.net/fichiers/...0093716010.png

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

يعني من الاخر الذاكر الحية هي التي ستكون خزانة المتغيرات التي ستستعملها في برامجنا... يعني لما نريد نستعمل متغير ما مش ويين ممكن نحطه بحيث لما يجي البرنامج ويحتاج لتلك المعلومة يلاقيها موجودة و يستعملها... او لما نريد من المستعمل أنه يدخل قيمة معينة لازم نحفظ هالقيمة في مكان ما لحين ما نستعملها و نرد له بالنتيجة

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

عندما نريد أن نعلن عن استعمالنا لمتغير معين, نقوم بشيئين : نقوم بتحديد نوعه و قيمته التي سيحملها

من بين أهم المتغيرات التي سنستعملها نجد الأعداد فهي تنقسم إلى أقسام : قسم الأعداد الصحيحة الطبيعية الموجبة منها والسلبية...وقسم الأعدا العشرية أي التي فيها فاصلة الموجبة منها والسالبة

الجدول التالي يظهر لنا المتغيرات الأساسية التي يمكن أن نستعملها في الكود


http://www.easy-upload.net/fichiers/...0937165728.png

هذا تعريف بها :


كود:
int -> integer variable
short -> short integer
long -> long integer
float -> single precision real (floating point) variable
double -> double precision real (floating point) variable
char -> character variable (single byte)

فمثلا المتغير من نوع char يمكن أن يأخد قيمة a او b ....
متغير من نوع int يمكن يأخد القيمة 1 أو 3000 .....

إلى اخر الأمثلة وهذا على حسب الخانة الأخيرة التي تحدد مجال المتغير Range

سنعطي أمثلة على ذلك.

كود:
#include
#include

int main(int argc, char *argv[])
{
char var;
int a;
system("PAUSE");
return 0;
}
كما ترون فقد قمنا بتقديم متغيرين باسم var والثاني باسم a
المتغير الأول من نوع char
والثاني من نوع int أي يمكن أن يحتوي على الأعداد التي تنتمي إلى Range المحدد في الجدول أعلاه

نقوم الان بتحليل الكود التالي :
كود:
#include
#include

int main(int argc, char *argv[])
{
char var;
int a = 1;
var = 'd';
printf(" this is our variables, a = %d and var = %c \n",a,var);
system("PAUSE");
return 0;
}
في هذا الكود قمنا بإعلان متغيرين وطريقة إعطاء المتغير قيمة تختلف على حسب الاستعمال المراد له. فمثلا إن كنا نعلم قيمة المتغير مسبقا فيمكن أن نحددها له سواء في سطر مغاير للسطر الذي ذكرناه فيه كما فعلنا مع var
أو في نفس لحظة تقديمه كما فعلنا مع a
وكلا الطريقتين مسموح بهما

فيما يتعلق بالسطر الذي يخرج لنا و طبع الناتج على الشاشة

كود:
printf(" this is our variables, a = %d and var = %c \n",a,var);
هنا نضع بين" " ما نريد أن نطبعه على الشاشة مع مراعاة أن نضع مكان قيمة المتغير التي نريد طباعته مع الجملة نضع الرمز دولار وإلى جانبه نضع حرف أو اثنين يحددان نوع المتغير المراد إظهار قيمته. فمثلا بالنسبة ل int نضع d وبالنسبة ل char نضع c
للحصول على بقية الرموز بالنسبة للمتغيرات الأخرى فهو سهل جدا يكفي كتابتها في غووغل للحصول عليها

وبعد إغلاق "" نذكر المتغيرات بترتيب ظهورها مفصولة بالفاصلة

نذهب الان إلى التنفيذ

سنحصل على الحاصل التالي بعد عمل Run

كود:
this is our variables, a = 1 and var = d
نشوف الان الحالة الأخرى وهي لما نطلب من اليوزر ادخال قيمة المتغير

كود:
#include
#include

int main(int argc, char *argv[])
{
int var;
printf(" Please enter the var: \n");
scanf("%d",&var);
printf(" this is our variable var= %d \n",var);
system("PAUSE");
return 0;
}
في هذا الكود أعلننا متغير جديد من نوع int وطلبنا عن طريق الشاشة من اليوزر من إدخال قيمته
استعملنا لهذا الغرض الدالة scanf
عندما نريد استعمالها نحدد نوع المتغير كما فعلنا مع printf وبعد ذلك نحدد مكان تسجيل القيمة عن طريق كتابة & مساندة للمتغير
فمثلا لوكان المتغير هو student من نوع char

كود:
scanf("%c",&student);
لو كان في أي تساؤل حول هذه الدالة فلا تترددوا في ذلك .....

نجي الان إلى التنفيذ....
ننفذ فيطلع لنا على الشاشة :

كود:
Please enter the var:
ندخل قيمة معينه مثلا 34 و نضغط على ENTER

نحصل على التالي :

كود:
Please enter the var:
34
this is our variable var= 34

إخواني لكي لا أطيل عليكم ولكي نستفيذ أكثر ... أريد من المتابعين للدروس أن يقومو ببرنامج يقوم بالتالي :


نعلن فيه عن متغييرين من نوع int يدخلهما المستعمل ونقوم احنا بجمع القيمتين و نطبع الناتج على الشاشة..... تمرين سهل نوعا ما ولكن كل واحد وشطارته في إظافة أشياء ممكن تغني من معلوماته...

ملاحظة : ممكن تلاحظوا أني لا أعطي كل المعلومات وذلك لأني أريد أن يكون المتتبع من النوع الذي يثري دراسته... يعني أنا أعطيك المهم في الأمر والأشياء الأخرى ممكن تتعلمها قياسا على ما ذكرته, واسف للتقصير

لأي استفسار أخوكم محمد في الخدمة
الله المستعان.

نهاية


الساعة الآن 08:58 PM

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO 3.5.2 TranZ By Almuhajir


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227