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

  • نعم

    الأصوات: 27 96.4%
  • لا

    الأصوات: 1 3.6%

  • مجموع المصوتين
    28

المقدم بو همام

زيزوومى فضى
إنضم
6 فبراير 2008
المشاركات
1,908
مستوى التفاعل
1,830
النقاط
945
الإقامة
سورية
غير متصل
اللهم علمنا ما ينفعنا و انفعنا بما علمتنا وَ زِدْنا علماً
من عنوان الدورة الذي عنونتو به هيا بنا نتعلم البرمجة بواسطة السي شارب
أخواني الأعزاء أنا أتعلم البرمجة عن طريق النت و البحث في المواقع
و لست خبيرا فيها لكن في رأي أنا عندما تريد أن تتعلم شيئ و تتقنه حاول أن تعلم غيرك ما تعلمته وستجد نفسك أنك أتقنت الذي تتعلمه ولذلك أدعوكم جميعا لننشئ منهاجا خاصا بنا ... و سيكون أني سأضع شرح مما أتعلمه و وسنحاول أن نضع تمارين لأنفسننا و نبحث عن حلول لها على الإنترنت لنزيد من الخبرة
و من هذا الباب ما رئيكم أن نتعلم و نتساعد سوياً في تعلم هذه اللغة الجميلة
و أقتبس هذه الجمل
إصنع منهجك الخاص :- واحدة من إحدى ميزات الإعتماد على النفس في التعلم هو عدم إلتزامك بمنهج معين كما يحدث في المدارس والجامعات ، فقد تقضي الكثير من الوقت هناك تتعلم أشياء لن تفيدك فالمستقبل . ولكن علي العكس ففي هذه الطريقة أنت فقط من تحدد ماذا ستدرُس وإن كان مفيداً لك أم لا . لكن الحصول على مناهج جيده ليس بالسهولة المتوقعة ، فمعظم المناهج الموجودة على شبكة الإنترنت ليست كاملة وقد تكون ضعيفة المحتوى أيضاً . لذلك عليك بذل الكثير من الجهد والوقت والبحث هنا وهناك حتى تجد ما تبحث عنه وقد تضطر لشراء بعض المناهج أيضاً ولكن إنتبه لا تدفع أى نقود حتى تتأكد من جودة ومناسبة المحتوي لما تريد عن طريق مشاهدة الدروس المجانية أولاَ. ولكن إحذر أن تبالغ في جمع المناهج فتشتت نفسك وتضيع الكثير من الوقت في تعلم شيء لا تريده .
فقط إحتفظ بما يوصلك مباشرة الى هدفك .

------------------------------------------------------------------------
وسنضع بالبدأ النقاط الأساسية الذي سندخل بها ومن ثم النقاط الفرعية و ستكون على التوالي ::
النقاط الأساسي
سنبدأ



    • كونسول Console Application
    • أوامر الطباعة
    • المتغيرات
    • الجمل الشرطية
-------------------------------------------------

 

التعديل الأخير:
سوف نتعلم على فيجول ستيديو 2013
سوف أتجاوز طريقة التنصيب لسهولتها كتنصيب أي برنامج و لتوفر الطريقة على اليوتيوب بكثرة
واجهة البرنامج ...و ... فتح مشروع جديد كما في الصور
151314414993051.jpg
[/url][/IMG]



27690822119_e36faef6cb_b.jpg



25597964328_629ac0731d_b.jpg





في الصورة الثانية
1---- إسم المشروع
2---مسار حفظ المشروع
3----اسم السيليوشن

المشروع أو البروجكت هو جزء من السيليوشن ....أي أن السليوشن هو حاوية لجميع المشاريع المترابطة مع بعض.
 
التعديل الأخير:
سنبدأ مشروعنا الجديد
38589370815_249dae94ae_b.jpg




ستظهر لنا نافذة new project


وسنسميه zyzoom
و نسمي -solution: zyzoom-prog


39468236581_62000b102c_b.jpg
 
التعديل الأخير:
لاحظ الصورة الآتية وحاول أن تبحث عن أجوبة لهذه الأسئلة
أين نكتب الأكواد؟
ماهي المبادئ الأساسية في البرمجة في لغة سي شارب ؟
كيف أنفذ الكود البرمجي ؟
25597970668_26a0272c78_b.jpg

نكتب الكود البرمجي حاليا تحت الدالة Main بين القوسين Curly Braces
دائما الكود البرمجي ينهي بفاصلة منقوطة
دائما الأوامر البرمجية تبدأ بجرف كبير
سننفذ الكود البرمجي بالضغط على زر F5 في لوحة المفاتيح

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

ة
39438309092_7ec47e8db7_b.jpg



بعد كتابة الكود إضغط على F5 سيظهر لك تنفيذ الكود السابق في شاشة سوداء

الآن لاحظ بعض الآتي أن بعد نهاية كل كود برمجي نضع الفاصلة المنقوطة ; و أننا إستعملنا الحرف الكبير في بداية كل كلمة

لنشرح عن ما كتبناها من أكواد برمجية

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

39438564292_77bbcff7f4_b.jpg




الآن جرب أن تكتب الآتي
24602234757_1914692340_b.jpg

شغل البرنامج بالضغط على F5
الآن إستبدل ال WriteLine بـــ Write
شغل البرنامج بالضغط على F5
الآن ماذا شاهدت ؟

إستبدل ال WriteLine بـــ Write في السطرين الثاني والثالث فقط
شغل البرنامج بالضغط على F5

ماذا حصل ؟ ماذا تستنتج ؟

أنتظر منكم الجواب






 
التعديل الأخير:
في السابق تعلمنا كيف نطبع على الشاشة و اليوم سندخل في المتغيرات


ماذا أقصد بالمتغيرات (متغير رقمي , نصي , ..... سنتعرف عليها بالتدريج ) لنفرض أنا لدينا X و لدينا متغير z= 5 و أخبرتك أن ناتج جمع x مع 5 يساوي 8

إذا قيمة x هي 3

أي أن لدينا معادلة بسيطة هي

x=8-5

كيف سيفهم الكومبايلر في السي شارب أننا نستخدم الأرقام الصحيحة علينا أن نخبر الكومبايلر إحجز لنا مساحة من الذاكرة سنضع فيها رقم صحيح
ولهذا لنعلن عن متغير رقمي صحيح من نوع Integer ونسند له القيم
في الرياضيات كيف سنحسب قيمة X
سنكتب أن
X=8-z


أما في البرمجة لاحظ ما كتبناه
25618900838_afa15fd037_b.jpg

151324471539491.jpg


في السطر الأول والثاني أخبرنا الكومبايلر أن z و X متغير نوعه رقمي صحيح حيث أن إختصار Integer في السي شارب int
في السطر الثالث أخبرنا الكومبايلر أن قيمة Z هي 5 , و أخبرناه في السطر الرابع أننا سنحصل على قيمة إكس بعملية طرح 8 من z
السطر الخامس طلبنا منه أن يعطينا نتيجة المتغير x عند تنفيذ البرنامج إضغط على F5

سؤال اليوم ماذا وجدت فرق بين أمر الطباعة في هذا الدرس و الدرس السابق ؟
 
التعديل الأخير:
بارك الله فيك أخي الغالي
شرح رائع جداً ,و تبسيط للمعلومات
مجهود مميز منك
يٌثبت الموضوع لحين إنتهاء الدورة
 
توقيع : White Man
في الدرس السابق تعلمنا كيف نحجز قيمة رقمية اليوم كيف سنحجز قيمة نصية
لحجز قيمة نصية في الذاكرة نسند المتغير إلى String وذلك كالآتي
24622185797_54f4c62fc7_b.jpg

15135762286961.jpg




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

في السطر الثالث أخبرنا الكومبايلر أن يطبع لنا قيمة المتغير myname
الآن نفذ البرنامج بالضغط على CTRL+F5
لاحظ الآن لقد ظهرت النتيجة على الشاشة و لم نكتب الكود
; () Console.ReadKey

سؤال اليوم جوابه بالبحث عنه في الإنترنت

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

 
التعديل الأخير:
كيف نقوم بالبرمجة ... البرمجة في السي شارب جميله وذلك بتحويل ما تفكر به إلى أكواد برمجية شاهد هذا المثال البسيط
مثلا أريد أن أبرمج برنامج يقوم بالترحيب بشخص يدخل إسمه
كيف نقوم بذلك :
1- نطلب من المستخدم إدخال إسمه
2-نعرف متغير نصي
3-نخزن الإسم في متغير نصي
4-نعيد طباعة الإسم مع رسالة ترحيب
5-أمر إيقاف الكونسول من الخروج


كيف أفسر ذلك برمجياً
38780266194_8169002871_b.jpg

151359809947541.jpg


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

لاحظ كيف دمجنا محتو المتغير مع رسالة الترحيب
222:)
مارئيكم هل البرمجة في لغة السي شارب سهلة أم لا
:222p:222p
 
التعديل الأخير:
اليوم سوف نكتب برنامج ألة حاسبة بسيطة ستقوم بجمع عددين
كيف سيكون الكود البرمجي بمفهوم لغتنا المحكية:
1- رسالة تطلب من المستخدم إدخال رقم
2- نعرف متغير رقمي
3-نخزن الرقم في المتغير
4-رسالة تطلب من المستخدم إدخال رقم ثاني
5-نعرف متغير رقمي ثاني
6-نخزن الرقم في المتغير الثاني
7-نعرف متغير ثالث تكون قيمته ناتج جمع المتغير الأول و الثاني
8- نطبع الناتج على الشاشة
9-كود إيقاف شاشة الكونسول

سنفسر ما سبق بالكود بالبرمجي كالتالي :disappointed:(ملاحظة أنا احاول أن أبسط الأمور يوجد طرق مختصرة في كتابة الكود البرمجي سنتطرق لها في ما بعد))
27712372189_9a7e79b450_b.jpg

151367378312611.jpg

لاحظ الأمر الجديد int.parse

لماذا كتبنا int.parse قبل أمر إستقبال مايكتبه المستخدم
;()console.readline
السبب بالشرح البسيط
;()console.readline تسقبل نصوص
وال int يستقبل رقم صحيح و لذلك نستخدم دالة التحويل int.parse ونضع ()console.readline بين قوسين
لاحظ عندما نضع الماوس فوق ()console.readline
aeaf0d14-a236-45c0-9496-b5c6d1428bd4

151367447481491.jpg

برنامج الفيجول ستيديو يخبرنا أن الأمر ()console.readline يستقبل فقط متغير من النوع string

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

تمرين اليوم اكتب برنامج يقوم بسؤال المستخدم عن إسمه و عمره ثم يعيد طباعته على الشاشة


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

يجب عليك تسجيل الدخول أو التسجيل لمشاهدة الرابط المخفي

و الذي يحجز في الذاكرة 8 بيت فقط
و نقصل أكثر أي أنني إذا أردنا نخزن الرقم 1 أو الرقم 10 أو الرقم 100 أو أي رقم ضمن مجال

يجب عليك تسجيل الدخول أو التسجيل لمشاهدة الرابط المخفي

فسيحجز من الذاكرة 8 بيت فقط

انواع المتغيرات التي تخزن أرقام صحيحة و مالحجم الذي تحجزه من الذاكرة
a3e21ba6-d020-4714-a3d6-4de354a7675e
a3e21ba6-d020-4714-a3d6-4de354a7675e

38780309714_da0e20e7b4_b.jpg
 
التعديل الأخير:
لاحظنا في الصورة السابقة أن جميع المتغيرات تأخذ أرقام صحيحة مختلفة بمجالتها
لو كتبنا برنامج يقوم بقسمة عددين كالآتي
ملاحظة (( لقسمة عددين نستخدم / لإظهار باقي القسمة % الضرب * الطرح - ))
38780341224_98d93a48c7_b.jpg


151377027168221.jpg

"" لاحظ أننا كتبنا الأكواد بطريقة مختصرة قليلا ;222)""
6e7c47a1-59f0-4abb-ae5f-fc27cd802486

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

151383777240721.jpg

لدينا المتغيرات Float و double و decimal جميعهم متغيرات عشرية أكتب الأكواد الموجودة في الصورة السابقة و نفذ البرنامج لاحظ النتيجة ثم احذف // عن double و ضعها على ال float نفذ البرنامج و لاحظ النتيجة ثم إحذف // عن ال decimal و ضعها على ال double ولاحظ النتيجة ماذا تستنتج ;222)
--------------------------------------------
ملاحظة:
عندما نريد تحديد قيمة ابتدائية للمتغيرات الحقيقية بتعبير آخر Initializing a Real Number ، فيجب وضع حرف f او F على يمين الرقم المراد وضعه للمتغير هذا بالنسبة للـ float ، ونفس الشي بالنسبة للـ double و decimal ، نضع d او D للـ double و m او M للـ decimal ، وذلك للتأكد من ان المتغير يتم ادخاله ومعالجته على اساس نوع البيانات المتعلق به
.
 
التعديل الأخير:
اليوم سنتعلم الجمل الشرطية IF في السي الشارب جيث سنجد المتعه البرمجية :222D:222D:222D
ماذا أقصد بالجمل الشرطية ؟
مثال برمجي باللغة المحكية :
نريد أن نبرمج برنامج يدخل المستخدم عمره فسيخبره البرنامج هل هو طفل أو مراهق أو شاب أو كهل
ستكون الأكواد :
1- أدخل عمرك
2-نعرف متغير رقمي ونخزن فيه القيمة


3-إذا كان عمرك أقل من 12 أنت طفل
4- إذا كان عمرك أقل من 25 أنت مراهق
5- إذا كان عمرك أقل من 60 أنت شاب
6- إذا كان عمرك أكبر 60 فأنت كهل :222ROFLMAO:
طبعا ما سبق مثال :222D:222p لا علاقة له بالتصنيف :222ROFLMAO: كلنا شباب


نحول ما سبق ل لغة البرمجة
38780483364_39b117c5ca_b.jpg

151402648163441.jpg

لاحظ و تمعن في الصورة السابقة لدينا 4 جمل شرطية مابين القوسين الذي يأتي بعد IF هو الشرط و مابينا قوسين {} أوامر التي ستنفذ إذا تحقق الشرط

إذا الصيغة العامة للجمل الشرطية IF
360cf70c-dc7c-4769-a60e-872bc7ac2fe7
24622540727_9b9c37a09c_b.jpg

151402693792531.jpg

لاحظ عند كتابة شرط الثاني و الثالث كتبنا ELSE IF و عند إنتهينا من الشرط كتبنا فقط ELSE
كيف نفسر ذلك

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


لكن إذا أدخل المستخدم رقم و لنفرض أنه 90 سيتابع الكومبايلر إلى الجمله الثالثة لم يتحقق الشرط ثم يتابع إلى الجملة الرابعة و التي تعني أنه نفذ الأوامر البرمجية داخلي إذا لم يتحقق أي شرط سابق
----------------------------------------------------------------------

لم أكتب امر إيقاف شاشة الكونسول في تعليمات برنامجنا السابق سنستعيض عنها بالضغط على CTRL+F5
 
التعديل الأخير:
:222p:::وظيفة ::::222p
أكتب برنامج يقوم بالترحيب بالمستخدم و يطلب منه إدخال اسم المادة مثلا رياضيات ثم يطلب منك إدخال نتيجة المذاكرة الأولى ثم الثانية ثم نتيجة الفحص النصفي ثم يقوم بإيجاد المحصلة و يطبعه على الشاشة
 
حل الوظيفة السابقة
39489255061_3751320490_b.jpg

151419488031361.jpg
من يخبرني ماوظيفة الذي وضعت تحته خط t\t\t\ و n\n\ حاول أن تحذفهم و تضعهم من حديد أو تزيد العدد منهم

والسطر قبل الأخير سأشرحه لاحقا لماذا وضعت {0} ... ابحث على النت طريقة طباعة خرج المتغيرات
 
التعديل الأخير:
السلام عليكم و رحمة الله و بركاته
==

إجابات أسئلة الدورة

#5

في الرد الخامس قمت بكتابة الأكواد التالية كما طلبت منا

1f26c7de43fd1.png


و النتيجة :

4de4f664894f2.png


الآن نستبدل WriteLine بـــ Write

c5c8ddae8d573.png


و النتيجة :

be47e200bfe24.png


ما حصل هو أن جملة الترحيب كتبت متداخلة في بعضها
أما عند كتابتنا للكود WriteLine فكتبت جملة الترحيب سطرا سطرا يعني منظمة
و هذا هو الإستنتاج

#6

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

#9

الجواب لسؤالك نجعل الكومبايلر يقرأ الإسم من المستخدم عن طريق الأمر التالي : Console.ReadLine()

#11

كتابة برنامج يقوم بسؤال المستخدم عن إسمه و عمره ثم يعيد طباعتهم على الشاشة :
الكود

380ab1a09e605.png


النتيجة :

80eb65c213d76.png


#13

كتابة الأكواد الموجودة في التعليق :

3741965a33347.png


النتيجة :

d4c64a4a31df8.png


الـ double الآن :

a5a29b96a90f9.png


و النتيجة :

532caa2cbe3410.png


الـ decimal الآن :

07122aba87da1.png


و النتيجة :

d1244dd8d0122.png


و الإستنتاج ببساطة :
Float - 32 bit (7 digits)
Double - 64 bit (15-16 digits)
Decimal - 128 bit (28-29 significant digits)

#15

الوظيفة قمت أنت بحلها :

ce0dcd411ef13.png


6e30d18c4f1e4.png


لذلك وظيفة t\t\t\ هي عمل فراغ قبل الجملة التي نكتب فيها هذه الإشارة
أما n\n\ فهي تعطي سطر جديد و إذا ما تم وضعها في وسط السترينغ فسوف تقسم السترينغ الى قسمين

في المكان {0} فسيوضع ضمنه قيمة المتغير final

........
و في إنتظار الدروس القادمة

♥♥♥
♥♥

 
أحسنت @MOHIII.DZ
بالنسبة decimal و ال double و ال float لاحظ أيضا أن استخدام ال decimal أدق بالتعاملات المالية
 

يجب عليك تسجيل الدخول أو التسجيل لمشاهدة الرابط المخفي


نعم الإستخدام الأساسي لـ Decimal هو المعاملات المالية
لأننا في المعاملات المالية نحتاج الأرقام الدقيقة !!! (y)



 
اليوم نتعلم الجمل الشرطية عن طريق ال switch
الصيغة العامة
38780556584_7e9f302b40_b.jpg

151428561491711.jpg

مثال على الجملة الشرطية عن طريق switch
27712707339_d205d1f130_b.jpg

151428585563261.jpg

لاحظ ما سبق

وضعنا بين القوسين المتغير الذي نريد أن ننفذ عليه الشرط
و فتحنا
قوسين {} و كتبنا بداخله case ثم رقم 1 أي نقول للكومبايلر إذا كانت القيمة المدخلة لل المتغير x تساوي 1
بعد قيمة المتغير وضعنا نقطتان لنضع الأوامر الذي نريد تنفيذها في حال تحقق الشرط
ثم وضعنا كلمة break لنقول للكومبايلر قف هنا في حال تححق الشرط ولا
تتحقق من الشروط الأخرى
و كلمة default نقول للكومبايلر أنه إذا لم يتحقق أي شرط ما سبق كلمة default نفذ الآتي
--------------------------

ملاحظة يمكننا وضع أكثر من شرط case
--------------------------------------------
 
التعديل الأخير:
عودة
أعلى