-
*************************
*****الدرس الثاني******
*************************
ها نحن أخي العزيز نتواصل في تقديم الدروس في لغة سي عسى أن ينفعنا المولى عز وجل بها .... ولا تنسى أني لا أدعي معرفة كل شيء عن هذه اللغة و لكن على الأقل لن أنشر معلومات خاطئة بإذن الله.... باب النقد مفتوح على مصراعيه -------------------------------
إن البرنامج بلغة سي عبارة عن كتابة دوال(functions)
في ملف واحد على أن يكون أحد هذه الدوال اسمهmain
حيث يبدء تنفيذ البرنامج من هذه الداله .أما الدوال الأخرى فيتم استدعائها داخل هذه الداله
Functions:
تتكون كل داله من جزئين أساسيين هما:
1-Header(الرأس)
2-Body(الجسم)
و لتوضيح ذلك انظر المثال التالي:
---------
1- | #include <stdio.h>
| int main(void)
----------
----------
2- | {
| int x;
| printf("I Love Swalif \n");
| printf("If you love swalif then press 1\n");
| printf("If you don't then press 0\n");
| scanf("%d",&x);
| return 0;
| }
---------
إن الجزء المرقم برقم واحد هو الرأس والثاني هو الجسم
التفاصيل:
#include <stdio.h>:
هذه الرموز تفيد الcompiler لإنها تأخذ نسخه من الملف المكتوب اسمه بين القوسين وتضعه هنا ونحن نحتاج هذا الملف حتى نتمكن من استخدام الدالتين المعرفتين مسبقافي مكتبة السي (printf & scanf)
اللتين سنأتي على شرحهما لاحقا
int main(void):
هذا هو اسم الداله و نوعها
int:يعني عدد عشري صحيح
void:أي أن الداله لاتقبل أي متغيرات مرسله
{
هذا القوس هو للدلالة على بداية جسم الداله
int x;
هنا عرفنا متغير اسمهx و نوعه int ثم كتبنا الفاصله المنقوطه للدلالة على نهاية أي سطر في جسم الداله مع ملاحظة اننا لانكتبها بعد اسم الداله كما هو موضح أعلاه
printf(" أي نص \n");
هذه الداله تكتب على الشاشة أي نص مكتوب بداخلها ثم تنزل السطر التالي بسبب كتابة \n داخلها و يمكن أن تكتب \n أكثر من مره داخل النص ليبدء سطر جديد في كل مره تكتبها كما تستطيع الاستغناء عنها تماما
scanf:هذه الداله تقرأ من لوحة المفاتيح ما تدخله و تخزنه في المتغير المذكور فيها x في المثال السابق
%d:حتى تبين للجهاز أنك ستقرأ عدد صحيح
&x:أي خزن ما تقرأه في عنوان المتغير xفي الذاكره
return 0; :
حتى يرجع التحكم لنظام التشغيل والرقم صفر دلاله على الرجوع بطريقة صحيحة
}
هذا القوس لانهاء الداله
حاول كتابة هذا البرنامج بنفسك و تأكد من أنك فهمت كل سطر
لا تترد بطرح أي سؤال
-------------------------------------
لمراجعة الدرس الأول اضغط هنا
www.swalif.net/swalifsoft/ubb/Forum6/HTML/000083.html
------------------
لا إله إلا الله
-
يا جماعه أنا آسفة اذا كان الكتابة غير واضحه اعذروني
------------------
لا إله إلا الله
-
شكرا xoxo على الدرس
d% معناها قراءة عدد صحيح ووضعه في المتغير x ماذا لو أريد قراءة عدد حقيقي كسري أو قراءة حروف
وكيف يتم تعريف العدد الكسري real والرموز char
كيف أتحكم بالمدخلات بحيث أجعل البرنامج لا يقبل مدخل إلا العددين 0 ويرفض الأعداد الأخرى ويعيد السؤال
أتمنى شرح الدالة return بشكل أكبر فلم أفهم عملها جيدا
وشكرا لك
مجرد إقتراح ما رأيك بعمل موقع عن السي والباسكال نضع فيه الدروس التي نطرحها هنا ويساعدنا فيه من يعرف عن الفيجول بيسك فيضيف دروس لها أعتقد أنه سيكون موقع مفيد وربما بتوفيق الله يتطور الموقع ويصبح مثل موقع لينكس العرب فأنظر إلى بداية ذلك الموقع وحاله الآن
------------------
البريد الإلكتروني lonly200@yahoo.com
-
أخوي الخبير أنا كنت ناوية أترك الإجابة عن أسئلتك في دروس مخصصة
لكن ما في مانع من ذكرها هنا للفائدة
لتعريف realفي سي نستخدم النوع duoble or float
و الأفضل هو double
مثلا double x;
و لتعريف حرف نستخدمchar مثل باسكال
مثلا char ch;
ولقراءة الأرقام اللي فيها فاصله لازم نستخدمF%
و لقراءة الحروف نستخدم c%
ولقراءة سلسلة من الحروفstringنستخدم s%
بدل d%
ولقراءة رقمين مثلا نكتب
(scanf("%d%d",&x,&y
يعني خزن في xالعدد الأول و في yالعدد الثاني
بالنسبة لاقتراحك صدقني أنا كنت أفكر بنفس الفكرة وأنا عندي خبرة
صحيحة بسيطة بس اسمها خبرة في تصميم الصفحات ياريت يكون في خطوة
جدية...إذا ماعندك مانع ارسلي الباس ورد حقت موقعك الجديد علشان
أقدر أتصرف من عندي وأرسل كل اقتراحاتك على عنواني
xoxo@swalif.com
------------------
لا إله إلا الله
-
.....
....
..
.
أما بالنسبة ل return
أنت لو كتبت هذا الأمر بأي مكان داخل الbody لأي دالة
فإنها راح تتسبب بوقف هذه الدالة و العودة إلى الدالة المنادية
كما أنك إذا كتبت قيمة بعدها مثلاreturn 0 كما في المثال السابق
فإن الدالة تصبح لها هذه القيمة يعني لو طلبت أنك تطبع الدالة
فإن القيمة المطبوعة هي القيمة الي كتبتها عند return
------------------
لا إله إلا الله
-
السلام عليكم ورحمة الله وبركاته
بالنسبة لسؤال "الخبير" : كيف أتحكم بالمدخلات بحيث أجعل البرنامج لا يقبل مدخل إلا العددين 0 ويرفض الأعداد الأخرى ويعيد السؤال ...(على فكرة ليس هناك سوى عدد واحد ، سأفترض أن العدد الثاني هو 1 ) .
قم بالتالي :
}do
؛("printf("(Re)Enter your choice..\n
؛(scanf("%d",&x
؛(while(x != 0 && x != 1{
تستطيع أن تتحكم في الشرط الذي تريده ، فمثلا لو إشترطت أن يكون العدد المدخل أكبر من أو يساوي الخمسه و أقل من العشره ، فغير آخر سطر ليكون كالتالي :
؛(while(x >= 5 && x < 10
ملاحظة (في الوقت الضائع) حول أمر العودة إلى الداعي return :
يمكن إرجاع القيمه المحدده في وصف الداله فقط Function declaration ، يعني لو كانت هناك داله معرفه كالتالي :
؛(...)int SomeFunction
فإنك داخل هذه الداله لا تستطيع إستخدام الأمر return هكذا لوحده بدون قيمه(ويجب أن تكون هذه القيمه من النوع int ).
كذلك لو كانت الداله محايده void أي لا تعيد أي قيمه كالتالي :
؛(...)void SomeFunction
فإنك لا تستطيع غير إستخدام الأمر return لوحده ، بينما لو إستخدمته ليعيد قيمه ما مثلا 1 كالتالي :
؛return 1
فإن هذا سينتج عن خطأ في الترجمه .
دمتم بخير
[b]<small><small>[ تم تعديل الموضوع بواسطة xeerh يوم 24-03-2000]
ضوابط المشاركة
- لا تستطيع إضافة مواضيع جديدة
- لا تستطيع الرد على المواضيع
- لا تستطيع إرفاق ملفات
- لا تستطيع تعديل مشاركاتك
-
قوانين المنتدى
أضف موقعك هنا|
شقق للايجار في الكويت |
بيوت للبيع في الكويت |
شركة كشف تسربات المياه |
شركة عزل اسطح بالرياض |
عزل فوم بالرياض|
عزل اسطح بالرياض |
كشف تسربات المياة بالرياض |
شركة عزل اسطح بالرياض