‏إظهار الرسائل ذات التسميات دورة لغة السي. إظهار كافة الرسائل
‏إظهار الرسائل ذات التسميات دورة لغة السي. إظهار كافة الرسائل

الثلاثاء، 29 أكتوبر 2013

دورة لغة السي \ الشكل العام للبرامج في لغة السي , وطريقة استخدام دالة الاخراج printf




الشكل العام او هيكلية البرنامج في لغة السي قد تكون ثابته نوعا ما حيث يكون هيكل البرنامج علي الشكل التالي


الهيكل والشكل العام للبرامج في لغة السي

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

المكتبات والدوال 

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

اذاً عند كتابة اي برنامج بلغة السي يجب ان نستدعي الدوال والمكتبات التي سوف نستخدمها اثناء البرنامج ثم بعد ذلك نكتب دالة المين ثم نفتح الاقواس ثم نكتب الاكواد

دوال الاخراج في لغة السي

هي الدوال التي نستخدمها لاظهار رساله علي الشاشه او اظهار ناتج عملية ما قام بها البرنامج سوأ عمليه رياضيه او غيره
وسوف نتعرف علي الدالة  printf  وهي الداله التي نستخدمها عندما نريد ان نظهر اي شئ علي الشاشه سوأ ارقام او حروف او ناتج عمليه او اي رساله
ويكون استخدامها بالصيغه التاليه



صيغة الاعلان عن دالة الطباعه printf

حيث اولا نكتب  printf  ثم قوس ثم علامتي تنصيص ثم رمز المتغير الذي نريد طباعته ثم علامتي تنصيص ثم فاصله عاديه ثم المتغير الذي نريد طباعته ثم قوس ثم فاصله منقوطه

رمز المتغير الذي نريد طباعته 


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

رموز انواع المتغيرات في لغة السي


دعنا الان نكتب اول برنامج لنا ونناقشه وهو برنامج يقوم باظهار رساله علي الشاشه مكتوب عليها
 Hi This  my first Program
لكتابة برنامج يقوم باظهار هذه الرساله فقط نكتبه كالاتي

برنامج يقوم باظهار رساله نصيه علي الشاشه


ملاحظه نكتب البرنامج من غير الترقيم الجانبي هذه الارقام لتوضيح الخطوات في الشرح فقط

في الخطوه الاولي استدعينا المكتبه  stdio.h  لاننا نريد استخدام الداله  printf  في برنامجنا ومن دون هذه الخطوه لن يعمل البرنامج ولن يتعرف علي الداله  printf  المستخدمه في البرنامج
في الخطوه الثانيه استدعينا الداله  main  وهي الداله الرئيسية ومن دونها لن يعمل البرنامج كذلك ويتم الاعلان عنها دائما بهذه الصوره  () main  وهي اساسيه في اي برنامج 
الخطوه رقم 3  و 5 كذلك من الخطوات الثابته في اي برنامج وهما اقواس بداية البرنامج ونهايته
فيجب ان نبدأ البرنامج بقوس {  وننهي البرنامج بقوس } 
وعند عدم كتابة احدهم يظهر لك البرنامج رسالة خطأ
الان نرجع الي الخطوه 4 فيها استخدمنا الدالة printf  وهذه الصيغه ثابته لاظهار اي رساله نصية علي الشاشه
عند نهاية كل سطر برمجي يجب ان نضع فاصله منقوطه (;)  لنخبر البرنامج ان هذه السطر البرمجي قد انتهي ومن دونها سوف تظهر لنا رسالة خطأ ونسيانها من اكثر الاخطأ تكراراً عند كتابة البرامج
وعند تنفيذ هذا البرنامج سوف يظهر لنا علي شاشة التنفيذ هكذا
خرج برنامج يقوم باظهار رساله نصيه علي الشاشه


ملاحظه علامتي التنصيص قبل وبعد الرساله النصيه لا تظهر علي الشاشه

اذا نستخدم هذه الصيغة لاظهار اي رساله علي الشاشه فقط نكتب الرساله التي نريد ظهورها
اذاً اكتب برنامج يقوم باظهار اسمك علي الشاشه
وسوف يكون بالصوره التاليه

صيغه عامه لاظهار رساله نصيه علي الشاشه


فقط استبدل النص ( هنا اكتب ما تريده ان يظهر علي الشاشه )
بالرساله التي تريده ان تظهر علي الشاشه النص يكون باللغة الانجليزيه فقط

الان ماذا اذا اردنا ان نظهر رساله طويله ولكن نريد كل جزء منها يظهر في سطر منفرد
لنفعل ذلك ما علينا فقط الا ان نكتب n\  في المكان الذي نريد ن يذهب فيه البرنامج الي سطر جديد فالبرنامج عندما يجد n\ سوف يعلم انه عليه الانتقال الي سطر جديد
مثلا اذا اردنا ان نكتب برنامج يظهر هذه الرساله علي الشاشه
 my name is Alaeldin I'm engineer and I love engineering
لكن اريد ان تظهر هكذا 
my name is Alaeldin
في سطر ثم
 I'm engineer
في سطر اخر ثم
and I love engineering
في سطر اخر
لنفعل ذلك ما علينا سوي ان نكتب n\ في كل مكان نريد فيه ان ننتقل فيه الي سطر جديد
اذا سوف يكون البرنامج بالصوره التاليه

برنامج لاظهار عدة رسائل في الشاشه كل رساله في سطر

وهكذا سوف يكون جرج البرنامج


خرج لبرنامج يقوم باظهار عدة رسائل علي الشاشه كل رساله في سطر


شرح فيديو لهذا الدرس 


هنا نصل لنهاية هذا الدرس
ودمتم في سلام

السبت، 26 أكتوبر 2013

دورة لغة السي / المتغيرات والثوابت



المتغبرات والثوابت في لغة السي 


اولا المتغيرات والثوابت كلاهما عباره عن مواقع يتم حجزها في الذاكره (الرام RAM) لتُخزن فيها قيم محدده , يختلفان في ان الثوابت عباره عن مواقع في الذاكره عندما يتم تخزين قيم فيها فانها تكون ثابته لا يمكن تغييرها ابداً اثناء تنفيذ البرنامج ولتعديلها يجب التعديل في كود البرنامج اذاً الثوابت لا يمكن تغييرها اثنا تنفيذ البرنامج , اما المتغيرات فهي مواقع في الذاكره يمكن تغيير قيمها اثناء تنفيذ البرنامج بواسطة المستخدم او بواسطة البرنامج نفسه


مواقع الذاكره

في هذه الصوره قمنا بحجز موقعين في الذاكره احدهم اسميناه X والاخر اسميناه Y اذاً البرنامج سوف يتعامل مع هذين الموقعين ك X , Y بغض النظر عن القيم الموجوده فيهم وعندما نريد استخدام القيم الموجوده في هذين الموقعين اثناء البرنامج نستدعيهم عن طريق عناوين الموقعين X , Y . 

اذا لنحجز موقع في الذاكره لكي نخزن فيه قيم معينه هنالك صيغه ثابتة نتبعها 
 
اعلان المتغيرات

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

حيث Type of Variable تمثل نوع المتغير الذي نريد حجزه بمعني المكان الذي نريد حجزه ما  نوع  البيانات التي نريد ان نخزنها فيه ولدينا عدة انواع من البيانات منها
int اذا كنا نريد تخزين عدد حقيقي مثل 1 , 2 , 365 , 456 اي عدد من غير فاصله عشريه ويشغل مساحه قدرها 2 بايت من الذاكره .
float وهو عدد صحيح اي عدد يحتوي علي فاصله عشريه مثل 2.4 , 5.76
ويشغل مساحه قدرها 4 بايت .
char وهو متغير حرفي اي اننا اذا اردنا ان نخزن حرف او مجموعة حروف نعبر عنها بهذا المتغير مثل 'A' , 'B' . ويشغل مساحه في الذاكره قدرها 1 بايت لتخزين حرف واحد فقط

هذه هي الانواع الرئيسية لانواع المتغيرات هنالك انواع اخري سوف نتطرق لها في اثناء البرامج .
اذاً نوع المتغير او الثابت نختاره علي حسب نوع القيم التي نريد ان نخزنها فيه .
Name of Variable هو اسم المتغير الذي نريد حجزه بمعني المكان الذي نريد حجزه لتخزين بيانات فيه ماذا نريد ان نسميه , لماذا نعطيه اسم ؟؟ حتي  نمكن البرنامج من الوصوصل لهذه القيمه متي ما احتاج اليها لانه قد يكون هنالك اكثر من موقع في الذاكره تحتوي علي نفس القيمه وللتمييز بينهم نعطي كل موقع اسم خاص به وعندما يحتاج البرنامج الي هذه القيمه لا يبحث عنها بقيمتها بل يبحث عنها عن طريق عنوان موقعها ثم ينظر الي محتوي هذا العنوان او الموقع
اذاً في البرامج لا نتعامل مع القيم مباشرة بل يجب ان نضعها في مواقع في الذاكره ونعطيها عنواناً او اسم .
اسماء المتغيرات ليست مرتبطه بصيغه محدده ويمكنك ان تختار اي اسم او حرف لتسمية المتغير لديك بشرط ان يكون ليس من الاسماء المحجوزه لاستخدام البرنامج
وان يبدأ اسم المتغير بحرف وان يتكون من حروف وارقام فقط ولا يسمح باستخدام التاثيرات النصيه مثل (#@$&!) ما عدا الشرطه التحتيه ( _ ) وان لا يكون طول الاسم اطول من 32 حرفا  وهنالك فرق بين الحروف الكبيتل والحروف الاسمول اي عندما نعلن عن متغير يجب ان نستدعيه بنفس الصيغه التي اعلناهو بها فهنالك فرق بين Name , name فكل كلمه تعتبر اسم لمتغير منفصل ,  و يحبذ ان يدل المتغير علي ما يحتويه مثلا اذا حجزنا متغير لنخزن فيه درجات طالب يفضل ان نسميه mark حتي يتسني لمن يقراء الكود البرمجي لبرنامجك ان يفهم البرنامج بسهول .

Value of Variable وهنا نكتب قيمة المتغير , بمعني القيمه التي نريد تخزينها في هذا الموقع او العنوان من الذاكره 
ويمكن اسناد القيم الي المتغيرات بطرق عديده منها
ان نعطي المتغير قيمته مباشرتاً

اعلان المتغيرات واعطائها قيم

ويمكن ان نعلن عن اسماء المتغيرات ونعطيها قيم لاحقاً
اعلان المتغيرات من غير قيم

ويمكن ان نسند قيمة متغير الي متغير اخر 

اعلان المتغيرات واسناد قيمة متغير الي متغير اخر


هنالك المزيد من الدروس في هذه الدوره اضغط هنا
وهنا نكون قد وصلنا الي نهاية هذا الدرس
ملاحظاتكم تجعلني اتحسن واقدم الافضل فلا تحرموني منها
ودمتم في سلام

الاثنين، 21 أكتوبر 2013

دورة اساسيات لغة السي شرح فيديو لتحميل وتسطيب برنامج pelles لكتابة البرامج وتنفيذها وكيفية انشاء مشروع جديد





ثاني درس لنا في دورة اساسيات لغة السي نخصصه لشرح البرنامج الذي سوف
 نعمل عليه
ونكتب الاكواد وننفذها عليه وهو برنامج pelles الشرح بالفيديو لتوضيح اكبر قدر ممكن من المعلومات 
الان اترككم مع الفيديو ومشاهدة طيبة اتمناها لكم

دورة اساسيات لغة السي \ مقدمة





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


فلنبدأ المشوار وربنا يوفقني لتقديم ما يفيدكم

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


اولا ما هي لغة السي وما هي اهميتها




تعتبر لغة السي من لغات البرمجه العالمية المنتشرة علي نطاق واسع

 تم  تصميمها و تطويرها بواسطة  كن تومسون , بايان كرنيغان , دينيس ريتشي , وذلك في الفتره ما بين عامي 1969 و 1972 وكان الهدف الاساسي من تصميمها وقتها هو استعمالها في تطوير نظام التشغيل يونكس لكن بعد ان ظهرت للوجود اكتشف المبرمجين قوة هذه اللغة فانتشرت علي نطاق واسع
 ودخلت في مجالات متعدده واصبحت استعمالاتها اكثر واستخدمت في تطوير الكثير من لغات البرمجه الاخري التي نعرفها اليوم كلغة السي بلس بلس والجافا وغيره الكثير من اللغات التي اعتمد مصمموها علي لغة السي كاساس لبناء  لغاتهم 


وسميت بلغة السي لانه كان هنالك قبلها لغة تدعي لغة البي (B) ولذلك تم اختيار الحرف الذي يلي حرف البي في اللغة الانجليزيه وهو حرف السي

اهمية هذه اللغة تاتي من امكانياتها القوية ولان مستواها قريب من لغة الالة فبالتالي استعمالها في التعامل مع الالات يكون افضل وتعد من اسرع اللغات التي تتعامل مع الالة وتعطي افضل اداء للهاردوير

اهمية لغة السي لنا كمهندسين الكترونيات تنبع من تعاملنا مع انظمة كثيرة تحتاج الي برمجة مثل المتحكم الدقيق او ما يعرف بال(مايكروكنترولا) وهو من ابسط الانظمة واسهلها برمجتاً اما في المستوي الاعلي نجد انظمة الامبدد سيستم التي يتطلب التعامل معها معرفة عميقة باحدي لغات البرمجة وكذلك في مجال الذكاء الاصطناعي الذي يعتمد بالكامل تقريبا علي لغات البرمجة ففي هذا المجال يتغمس مهندس الالكترونيات شخصية المبرمج تماماً اذاً فهي من الضروريات بالنسبة لنا


المتطلبات

اولا تحتاج الي البرنامج الذي سوف تقوم بكتابة برنامجك عليه ويقوم بتنفيذه او ما يسمي بالمترجم فالمترجم يقوم باخذ ما تكتبه من اكواد ويقوم بتحويلها الي لغة تفهمها الالة او الجهاز لكي يتم تنفيذ برنامجك اي هو الوسيط الذي يربط بينك وبين الجهاز حتي يخبره ما الذي مكتوب في برنامجك لكي يقوم بتنفيذه لان الالة لا تفهم الاكواد التي كتبتها انت هي فقط تفهم لغة ال 0 \ 1 
وهنالك العديد من المترجمات الشهيرة منها 

Visual C++  التابع لمايكروسوفت لكنه ليس مجاني وكبير الحجم
Code Block  فهو مجاني و خفيف و يصلح للمستويات المتوسطه والمبتدئين
 
Netbeans   مجاني و خفيف
Pelles   مجاني وسريع , برنامج خفيف وهو الذي سوف استخدمه للشرح وانفذ عليه جميع البرامج 

لتحميل ايا من هذه البرامج ليس عليك سوي الذهاب الي قوقل وكتابة اسم المترجم وسوف تجده في نتائج البحث الاوائل حمل المترجم من موقعه الاصلي

اولا لنتعرف علي برنامج او مترجم pelles   الذي سوف نقوم بكتابة البرامج عليه 

بعد تحميل البرنامج وتسطيبه وفتحه تجد النافذه التالية



---------------------------------------------------------------------------------






---------------------------------------------------------------------------------





فيديو عن طريقة تسطيب البرنامج والتعامل معه





                       

                      هنالك المزيد من الدروس في هذه الدوره اضغط هنا