مشاهدة النسخة كاملة : تعلم #c من الصفر


م.هبة عبد العزيز
25-02-2006, 12:25 AM
#C هي لغة بسيطة وحديثة، تتبع البرمجة الشيئية. اشتقت من لغتي الـ C++, C و تنطق (سي شارب). إنتاجيتها كبيرة كلغة الفيجوال بيسك و قوة لغة الـ ++ C
وتدعمها الـفيجوال ستوديو 7 (Visual Studio 7) أو الاصدارات الأحدث. وتدعم .NET Frameowrk و تدعم جميع المكتبات والأكواد التي تدعمها الفيجوال بسيك و السي.
وهناك COMPILERs أخرى لها .. كالذي تنتجه شركة بورلاند Borland و يسمى الاصدار القديم منه Power Builder أما في إصدار 2006 فنجد مع الدلفي C# builer

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

الجزء الأول

Hello World
أول برنامج نتعلم كتابته عند تعلم أي لغة هو كيف نكتب برنامج يظهر لنا جملة "Hello World" وفي هذه اللغة تكتب كما التالي:

http://img128.imageshack.us/img128/9249/14ra1.jpg
امتداد أو ملحق الملف لملف لغة السي شارب هو (.CS) مثلاً ملف هذا البرنامج اسمه hello.cs، والأمر الذي يستخدم لعمل compileأو تجميع للبرنامج هو

csc hello.cs

و الذي يكون ملف قابل للتطبيق اسمه hello.exe و عند تشغيله تظهر :


Hello world







وأريد أن أنوه أن الأمر csc نحتاجه عند كتابة البرنامج في كومبايلر أوامره كتابية ويمكن الاستغناء عنه في الفيجوال ستودير و البورلاند بلدر.


فحص واستنطاق للبرنامج المثال:
* using system يعني إيعاز وتوجيه لاستخدام الـ namespace الذي يسمى system و الممنوح من قبل .NET أثناء التشغيل، وهذا الـ namespace يحتوي على الصنف أو النوع console (Console class). ولما تستخدم الموجه using تعطيك الصلاحية إنك تستخدم أي من الـ classes و functions اللي فيها.
واحنا هنا استخدمنا الدالة WriteLine الموجودة في الـ class اللي اسمه Console اللي موجود في الـ System.

* الدالة الرئيسية Main Function عبارة عن دالة من الصنف أو الـ class اللي اسمه Hello. أي أنها ومحتوياتها من المتغيرات تعمل في نطاق هذا الـ namespace فقط و ليست global أو شاملة.


============================


أعرف ان اللي أقوله يحتاج لوقت للاستيعاب .. استخدام الـ classes و الـ namespaces هو المشكلة التي يجب تجاوزها عند تعلم البرمجة بالـ.NET لأن كله بالـ class و namespace ... أنا صعب عليا بالعربي وخاصى في مصطلحات البرمجة .. لذا يمكن يكون كلامي مش واضح..أي مصطلح مش واضح أو جملة مبهمة ..أحاول قدر الإمكان توضيحها .. وتوفير كتب الكترونية لشرحها.. أنا في انتظار الأسئلة والتعليقات.

...........................

يونس الحداد
25-02-2006, 12:42 AM
السلام عليكم ورحمة الله
أختي وتر :
بداية جيدة وفقك الله وحزاك كل خير

roses2f
25-02-2006, 01:27 AM
شكرا اخت وتر و ارجو منكي الاستمرار و عرضك جميل وسلس و هكذا يجب ان يكون من اجل المبتدئين الي مثلي و نحن بانتظار المزيد
و جعله الله في ميزان حسناتك

م.هبة عبد العزيز
11-03-2006, 10:48 AM
بارك الله فيكم و لكم إخوتي و اعذروني على التأخير

الدرس الثاني
=========================================

أنواع المتغيرات

C# تدعم نوعين رئيسين value types و reference types ، الـ value types تتضمن الأنواع البسيطة (char, int, float) بالإضافة لـ enum types و struct types.


أما بالنسبة للـ reference types تتضمن الـ class types, interface types, delegate types array types .

بعض الأنواع مألوفة وبعضها غريب و غير مفهوم .. المهم الآن أن نعرف أن هذه الأنواع موجودة و نفهمها لاحقا.

الـ value types تختلف عن الـ reference types أن المتغيرات من نوع value type تحتوي البيانات (data) مباشرة أما المتغيرات من نوع reference types فتحتوي على مرجع أو عنوان للكائن (object). وفي هذه الحالة يمكن لمتغيرين أن يكونا مرجعا ) referemce ) لنفس الكائن (object)، وهذا يعني أن عملية تجري على المتغير الأول تؤثر على المحتوى الذي يؤشر إليه المتغير الثاني. أما في الـ value types لكل متغير نسخته الخاصة من البيانات، في حالة أن متغيرين يحملان نفس البيانات و طبقت عملية على أحد المتغيرين فإن محتويات الآخر لا تتأثر بهذه العملية و لا نتائجها.

مثال:
http://img225.imageshack.us/img225/9214/image10bb.jpg

و النتيجة هي :

values : 0,123
refs : 123,123

تعيين قيمة للمتغير val1 لا يؤثر على المتغير val2 لأن كلاهما متغير محلي (local) ومن نوع value type (int) لكل منهما مساحته التخزينية الخاصة. في المقابل تعيين قيمة لـ ref2 أثر على الكائن الذي يؤشر إليه كلام المتغيرين ref1 و ref2.

يمكن تعريف أنواع أخرى مثل enum, struct و أيضاً من نوع class و interface و delegate، مثالاً على ذلك:

http://img74.imageshack.us/img74/712/image28eq.jpg

هذا المثال فقط لتوضيح كيفية التعريف فقط و ليس لشرح كل نوع.

يونس الحداد
11-03-2006, 08:08 PM
السلام عليكم ورحمة الله
الأخت م.هبه
مشكورة علي الشرح ووجود الآمثلة شئ مهم للمتلقي فمزيداُ من التألق والآبداع
وأنشأالله تكون ظروف غيابك خيراً

منو
11-03-2006, 08:17 PM
..لو سمحت ابغى اعرف اذا كان فيه كود او برنامج يحول الc#الى ماتلاب لان عندي مشروع بالماتلاب وابغى اسوي الوجهات بالC#وفي النهايه احوله كله لماتلاب

حمزة أحمد
13-03-2006, 09:54 PM
السلام عليكم
بارك الله فيك م.هبة tknk@@

م.هبة عبد العزيز
02-05-2006, 04:55 AM
الدرس الثالث
==============================
أنواع المتغيرات المعرفة = Predefined types
====================

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

الأنواع التي هي reference type هي الـ object و string
أما الأنواع الأخرى التي هي value type تتمثل في :

signed & unsigned integer= العدد الصحيح سواء بإشارة أو مطلق
floating point = العدد الحقيقي (صحيح و كسر)
bool = ثنائي
char = حرف
decimal = عشري

(1) integer

- المتغيرات التي تحمل قيمة صحيحة (سالبة أو موجبة) هي
sbyte.. short.. int.. long

-المتغيرات التي تحمل قيمة صحيحة مطلقة (بدون إشارة) فهي
byte.. ushort.. uint.. ulong

(2) float

- المتغيرات التي تحمل قيمو حقيقة (صحيحة أو صحيح وكسر) فهي
float .. double

(3)bool

-وهذا النوع من المتغيرات يستخدم للتعبير عن قيمة ثنائية لها احتمالين لا أكثر (الصحة أم الخطأ) و القيمة التي تحملها إما true أو false

(4) char

و يستخدم للتعبير عن حرف من حروف الـ Unicode و المتغير من هذا النوع يحمل حرف مكون من 16 bit

(5)decimal

وهو النوع الملائم للحسابات حيث أن التقريب غير مقبول و يستخدم بأكثرية في تطبيقات المالية و الضرائب وتحويل العملة و هو يعبر عن رقم من 28 خانة.

==========

في التالي بيان لكل نوع ومثال لتعريف متغير به:

object
نوع أساسي تندرج تحت كل الأنواع

object k= new stack();

=====
string
و هو عبارة عن سلسة من خروف الـ Unicode

string s="Hello";

=====
sbyte
8bit signed integral type

sbyte val=12;

=====
short
16bit signed integral type

short val=12;

=====
int
32bit signed integral type
int val=12;
=====
long
64bit signed integral type

long val1=12;
long val2=34L;

=====
byte
8bit unsigned integral type

byte val1=12;
byte val2=34U;

=====
ushort
16bit unsigned integral type

ushort val1=12;
ushort val2=34U;

=====
uint
32bit unsigned integral type

uint val1=12;
uint=34U;

=====
ulong
64bit unsigned integral type

ulong val1=12;
ulong val2=34U;
ulong val3=56L;
ulong val4=78L;

=====

للحديث بقية

فهد الرفاعي
02-05-2006, 10:34 AM
موضوع يستحق المتابعه .. واستغرب عدم تفاعل الاعضاء معه ..

بارك الله فيك مهندس هبه

أريج
12-05-2006, 06:20 PM
وابدي تكملي عن أدوات التي تستخدم في c++
بارك الله فيكي والله يرضي عنك
واجعلي نيتك لله

نورالدين حواص
13-06-2006, 12:42 AM
يعطيك العافية أختي
موضوع رائع
جهد كبير منك ارجو منك استمرار في ذلك

و جزاك الله الف خير ,,,

و بانتظار المزيد من ابداعاتك الرائعةbrove#42 b@#$ brove#42

warm_heart
25-07-2006, 11:01 AM
جزاك الله كل خير

sedeek
20-08-2006, 03:56 PM
من فضلك ممكن تعطيني فكرة برنامج يخرج رسالة عند تشغيل اي اغنية أو اي موسيقى على الجهاز وان لم تستطع فارجوك تساعدني على ان نبحث على برمجه لهذه الفكرة ولو تعرف حد يقدر يساعدنا من فضلك اخبره لعله يساعد ولو بفكرة بسيطه وجزاك الله خيرا ...... اخوك

عاشق فلسطين
16-10-2006, 10:35 PM
مشكوررررررررررره جدا يا روز انشاء الله بتفضلى ورده جميله فى سبيل العلم وتقديم الاشياء الجميله

14
14
14
14
14
تحياتى

esma
20-11-2006, 01:23 PM
بسم الله الرحمن الرحيم
شكرا سيدتي الفاضلة .انا اسماء طالبة سنة خامسة في كلية الهندسة قسم اعلام الي.في الواقع مشروع تخرجي هو خدمات الواب باستعمال نظام الاستخدام وينداوز و لينيكس.وكدلك احتاج الى الجافا و السي شارب.اود فقط ان اقول انه من الضروري ان يتعلم كل شخص يستعمل هاتين اللغتين approche objetاو ما يسمى بالنجليزية object approach .. ;
وفقكم الله و سدد خطاكم

سكارليت
25-11-2006, 12:20 AM
مشاء الله بارك الله فيك وجزاكى عنا كل الخير وجعله فى ميزان حسناتك يارب
فى انتظار القادم من الدروس

khalloudee
18-01-2007, 07:55 PM
مشكوووووووووووووور