بدايه مبرمج
2.15K subscribers
77 photos
153 files
262 links
طريقك الى عالم البرمجه😍
حيث 1+1 لايساوي 2

💫أول قناه تستهدف الطلاب المبدئين وتبدا بالشروحات من الصفر...
Download Telegram
أساسيات لغة C#.pdf
1 MB
ملف سي شارب عربي
إ₰ـــ👨🏻‍💻👩🏻‍💻ـــ₰❥

ما هي لغة C# (سي شارب)؟

هي لغة برمجة مستلهمه من لغة Java حيث ان بين اللغتين تطابق كبير جدا ...

الا ان لغة C# تفوقت على الجافا في بعض الجوانب.

أنتجت من قبل شركة مايكروسوفت في عام 2000 تزامنا مع الإعلان عن بيئة العمل .NET

•┈┈┈•❈••✦✾✦••❈•┈┈┈•
•┈┈┈•❈••✦✾✦••❈•┈┈┈•
إ₰ـــــ👨🏻‍💻👩🏻‍💻ــــ₰❥

من مزايا لغة #C :

- لغة تجمع صفات كل من C و Visual Basic و C++ و Java.

- لغة كائنات (Objects) كما في لغة Java

- اعتمادها على بيئة .NET والتي تمنحها خاصية Runtime

- بسيطة التعلم حيث تحتوي على 80 كلمة محجوزة فقط (Keyword)
و12 نوع من انواع البيانات (datatypes)

- التطوير المستمر للغة
- متعددة المنصات
- متعددة بيئات العمل

•┈┈┈•❈••✦✾✦••❈•┈┈┈•
•┈┈┈•❈••✦✾✦••❈•┈┈┈•
إ₰ـــــ👨🏻‍💻👩🏻‍💻ــــ₰❥

ماذا يمكنك ان تبرمج في لغة #C :

- desktop applications
- web services

- client-server applications
- database applications

- phones applications (Android, IOS, WindowsPhone)

- 3D games for almost all platforms (PlayStation, Xbox, Wii, PC, Android, IOS, .....)

- and much more


•┈┈┈•❈••✦✾✦••❈•┈┈┈•
•┈┈┈•❈••✦✾✦••❈•┈┈┈•
إ₰ـــــ👨🏻‍💻👩🏻‍💻ــــ₰❥

لغة البرمجة سي شارب هي لغة برمجة حديثة تتبناها شركة مايكروسوفت وبدأ ظهورها رسميا سنة 2002 ضمن اطار العمل framework1.0...


ماهو الــframework ؟
عبارة عن اطار عمل برمجي
development platform

يسمح لك بالتطوير بمجموعة من لغات البرمجة من بينها سي شارب والفيجوال بزيك وغيرها...

ولكي نتمكن من استخدام الــframework والبرمجة بلغة سي شارب او لغة فيجوال بيسك

سوف نحتاج الى برنامج يسمى ميكروسوفت فيجوال ستوديو
Microsoft Visual studio

وهو البرنامج اللي من خلاله سننشئ برامجنا بلغة السي شارب


•┈┈┈•❈••✦✾✦••❈•┈┈┈•
•┈┈┈•❈••✦✾✦••❈•┈┈┈•
إ₰ـــــ👨🏻‍💻👩🏻‍💻ــــ₰❥

تحميل نسخة فيجوال.....

١- نفتح المتصفح ندخل قوقل
٢- في خانة البحث نكتب
MicrosoftVisual studio 2019

٣ - سيظهر لنا في النتيجة الاولى الموقع الرسمي لميكروسوفت
٤ - مباشرة ندخل الى فضاء التحميل Download

•┈┈┈•❈••✦✾✦••❈•┈┈┈•
•┈┈┈•❈••✦✾✦••❈•┈┈┈•
إ₰ـــــ👨🏻‍💻👩🏻‍💻ــــ₰❥

لإنشاء مشروع نفتح البرنامج ثم ....
1 - file
2- new
3 - project
4 - console application نحدد
5- name اسم المشروع
6- location مكان الحفظ
7- solution name
المجلد الجامع الذي يحتوي كل ملفات المشروع

او باختصار نضغط على
Ctrl+shift

اول نافذة تظهر المسماة
program. cs
وهو الكلاس الرئيسي...
الذي يحتوي المجلد الجامع
solution name

والذي يحتوي على كل ملفات المشروع واللي يهمنا الان ملف
program. cs

اول دخول لملف
program. CS
نلاحظ ان السطور الاولى تبتدئ بالكلمة using

هذه الموجهات directive using تستعمل لجلب مجالات الاسماء او name spaces
سنأتي لها في الدروس القادمة..

الان بامكاننا التخلي عن كل الاسطر باستثناء
using System ;
لاننا سنحتاج الكلاسات المضمنة تحته

اسم المشروع my first project

صار بمثابة مجال الأسماء namespace

هنا عندنا class program هو بمثابة تعريف الكلاس الافتراضي
program. cs


Static void main(string[ ] args)

هذا الإجراء الرئيسي الذي ينبغي علينا كتابة الكود داخله هنا بين هذين القوسين اي الدالة الرئسية لكل مشروع

•┈┈┈•❈••✦✾✦••❈•┈┈┈•
•┈┈┈•❈••✦✾✦••❈•┈┈┈•
Forwarded from معلوماتك
ما اكثر شيئ مهم ، تأخذه بالأعتبار عند شراء جهاز الكمبيوتر!؟
Anonymous Poll
11%
كرت الشاشه
8%
حجم الهارد ديسك
9%
نوع الهارد ديسك(SSD,HDD)
67%
المعالج
5%
حجم الشاشه
إ₰ـــــ👨🏻‍💻👩🏻‍💻ــــ₰❥

مثال:

using System ;
namespace My_first_project
{
Class program
{
Static void main(string[ ] args)
{
console. WriteLine("hello c#");

}
}
}

نلاحظو ان النص بين مزدوجتين " " ثم في ختام السطر فاصلة منقوطة( نقطة فاصلة )

متى نضع نقطة فاصلة في السي شارب؟ نضعها عند نهاية كل جملة مستقلة بذاتها. والتي تسمى statement


بعد تنفيذ البرنامج السابق ستظهر شاشة سوداء ولكن سرعان ما ستختفي والسبب
عدم وجود امر لايقاف شاشة الكونسول.
لايقاف شاشة الكونسول نضيف كود
Console. readKey()

تعني ان الشاشة ستظل متوقفة الى ان يقوم المستخدم بالضغط على زر من ازرار لوحة المفاتيح

هذه هي نافذة الكونسول Console وهي شبيهه بنافذة الدوز

•┈┈┈•❈••✦✾✦••❈•┈┈┈•
•┈┈┈•❈••✦✾✦••❈•┈┈┈•

المخـ₰💻₰❥ـرجات

طريقة التنفيذ

١ - الضغط على المثلث الأخضر start
٢- الضغط على المفتاح f5

هاتين الطريقتين تمكننا من عمل

compile and debug and run
لهذا البرنامج
إ₰ـــــــ👨🏻‍💻👩🏻‍💻ـــــ₰❥

#الـتعــليقــات < comment >

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

اي لما الكومبايلر يمر على هذه الاكواد لن يقوم بترجمتها لانها ليست إلا عبارات توضيحية ...


وانواع التعليقات ...

1⃣لتعليق سطر واحد نستخدم الـدبل سلاش < // >
//this is a comment


2⃣لتعليق اكثر من سطر او جزء من سطر نستخدم .../* و */
/*
.....
*/


3⃣التعليق < /// >
عند عملها على برنامج الـvisual studio يظهر التالي
/// < summary >
///………
/// < summary >

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

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


•┈┈┈•❈••✦✾✦••❈•┈┈┈•
•┈┈┈•❈••✦✾✦••❈•┈┈┈•
إ₰ـــــــ👨🏻‍💻👩🏻‍💻ـــــ₰❥


#المتغيرات < variable >

تستخدم لتخزين بيانات مؤقتة في الذاكرة بغرض التعامل معها اثناء تنفيذ البرنامج……


طريقة الاعلان عن المتغيرات…
يكون عن طريق كتابة نوع المتغير…

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

١. المتغير الرقمي int
٢. النصي string
٣. متغير منطقي bool
٤. متغير التاريخ DateTime
٥. عشري يعني رقمي بس فيه فاصلة Double


شرط التسمية للمتغيرات ……
١. لا يبدأ برقم
٢. لا يبدأ برمز باستثناء بعض الرموز مثل < _ >
٣. عدم استخدام كلمات محجوزة مثل static
وهي الكلمات اللي يستخدمها مترجم السي شارب


•┈┈┈•❈••✦✾✦••❈•┈┈┈•
•┈┈┈•❈••✦✾✦••❈•┈┈┈•
إ₰ـــــــ👨🏻‍💻👩🏻‍💻ـــــ₰❥

using System;
namespace my_first_pproject
{
class Program
{
static void Main(string[] args)
{
Console.Title = "My frst rogram";
Console.Write("hello c# ");
Console.ReadKey();
}
}
}

عند تنفيذ البرنامج اي برنامج تظهر شاشة سوداء
< شاشة الدوز > ولكن سرعان ماتختفي لعدم وجود امر باستمرار شاشة كونسول

ولكن لجعل الشاشة السوداء تظل متوقفة الى ان يقوم المستخدم بالضغط على زر من ازرار لوحة المفاتيح نضيف الكود

console.readKey ()

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

Console.Title = "My frst rogram";

•┈┈┈•❈••✦✾✦••❈•┈┈┈•
•┈┈┈•❈••✦✾✦••❈•┈┈┈•
إ₰ـــــ👨🏻‍💻👩🏻‍💻ــــ₰❥

مثال توضيح معني المتغيرات variable :


using System;
namespace _2_variabal
{
class Program
{
static void Main(string[] args)
{

Console. WriteLine("hello c#");

//Variable Declaration
int number;
string text;
bool test;
DateTime myDate;
double number2;


//Assignment Operator.
number=8;
text= "Hamza";
test=false ;
myDate= DateTime.Now;
number2=5.54;
Console.Write("Date"+myDate);

Console.ReadKey( );
}
}
}


•┈┈┈•❈••✦✾✦••❈•┈┈┈•
•┈┈┈•❈••✦✾✦••❈•┈┈┈•


نلاحظ ان اسماء المتغيرات كلها تحتها سطر اخضر هذا يعني المتغير تم الاعلان عنه لكنه لم يستعمل بعد……


#طريقة_اسناد_القيم………

number=8;
هنا تم تخزين القيمة في المتغير الرقمي اللي سمعيناه number

Text= "Hamza" ;
النص يكون بين مزدوجتين

test=false ;
اسناد 0 او 1 للتعبيرات المنطقية bool


myDate= Date.Time.Now ().;
تهيئة تاريخ اليوم


Number2=5.54;
اسناد قيمة عشرية……
إ₰ـــــ👨🏻‍💻👩🏻‍💻ــــ₰❥

مثال توضيحي للثوابت constant :

using System;
namespace _2_constant
{
class Program
{
static void Main(string[] args)
{

Console. Title ="my first project ";

const int myNumber=3;
const string name="Allah kareem";

Console.Write("Name: " + name + " \nn: " + myNumber);

Console.ReadKey( );
}
}
}

•┈┈┈•❈••✦✾✦••❈•┈┈┈•
•┈┈┈•❈••✦✾✦••❈•┈┈┈•

الثوابت constant

هي مثل المتغيرات من حيث الدور ان قيمة الثابت تبقى ثابتة وغير قابلة للتغيير اثناء تنفيذ البرنامج run time


الاعلان عن الثابت يكون باستخدام الكلمة
Const int myNumber=3;
اعلان قيمة ثابتة…

Const string name=" Allah kareem";
اعلان نصي ثابت…
إ₰ــــ👨🏻‍💻👩🏻‍💻ــــ₰❥

#ادخال_البيانات_وطباعتها :

نطلب من المستخدم ادخال مثلا بيانات اسمه ثم نأخذها ونخزنها في متغير
فائدة هذه الطريقة ان نستطيع استخدام قيمة المتغير متى مانريد داخل البرنامج ونستطيع عرضها


طريقة قراءة البيانات تكون بالاعتماد على الدالة
Console. ReadLine( ) ;
هذه الدالة تمكننا من قراءة المدخلات


String name =Console. ReadLine( ) ;
الان اي قيمة يدخلها المستخدم ستخزن في المتغير name

ثم نكتب عبارة توضيحية تفيد المستخدم بانه يدخل اسمه
Console.writeLine(" enter your
name") ;

ثم نقوم بطباعة المدخل من قبل المستخدم
Console. WriteLine("hello mr : "
+name) ;

..........……………



الان مثلا نريد من المستخدم ادخال عمره فمن الخطأ ان نستخدم نفس الدالة السابقة
Console. ReadLine () ;

لانها خاصه بادخال القيم النصية( حروف ) الى متغير نصي string

اما الارقام نستخدم طريقتان للتحويل من نصي الى رقمي مثلا
#first way
int. Parse(Console.
ReadLine( ) ) ;

#second way
int age2=convert.ToInt32(console. ReadLine() ;
نحنفظ بطريقة وواحدة نحذفها

ثم نعدل دالة الطباعة


•┈┈┈•❈••✦✾✦••❈•┈┈┈•
•┈┈┈•❈••✦✾✦••❈•┈┈┈•
إ₰ــــ👨🏻‍💻👩🏻‍💻ــــ₰❥

كود توضيحي لمفهوم ادخال البيانات وطباعتها………

using System;
namespace My_first_project
{
class program
{
static void main(string[] args)
{
Console.Title = "my first project ";

Console.WriteLine(" enter your name");

String name = Console.
ReadLine();

Console.WriteLine(" enter your Age");


// first way
int age =int.Parse(Console.ReadLine());

//secondway
//int age2=convert.ToInt32(console. ReadLine() ;

// Console. Write("hello mr : " +name) ;

Console.Write("hello mr : "
+ name + " your age " +age);

Console.ReadKey();
}
}
}

•┈┈┈•❈••✦✾✦••❈•┈┈┈•
•┈┈┈•❈••✦✾✦••❈•┈┈┈•


المخـ₰💻₰❥ـرجات

enter your name
Hamza
enter your Age
20
hello mr : Hamza your age 20
إ₰ـــــــ👨🏻‍💻👩🏻‍💻ـــــ₰❥

#الروابط ( المعاملات )

هي مجموعة من الرموز التي نستخدمها لانجاز بعض العمليات

1⃣ - الروابط الرياضية
تستخدم للعمليات الحسابية
الرمز دوره
ا + ا الجمع
ا - ا الطرح
ا / ا القسمة
ا * ا الضرب
ا % ا باقي القسمة


2⃣ - الروابط المنطقية
تعيد لنا نتيجة true او false
صحيح او خطأ
وتستخدم للتحقق من صحة عبارة او مجموعة من العبارات
الرابط دوره
& & و T اذا الجميع صحيح
|| أو T اذا كان واحد T على الاقل

اcond? Var1:var2 يتحقق من الشرط فاذا تحقق الشرط يعطينا الامر الاول وإذا لم يتحقق يعطينا الامر الثاني


3⃣ - روابط المقارنه
تستعمل من أجل المقارنه بين المتغيرات
ا is ا للتحقق من قيمة المتغير
ا > ا أصغر من
ا < ا أكبر من
ا <= ، >= ا أكبر من او يساوي ، او اصغر من او يساوي
ا =! ا لا يساوي
ا == ا يساوي


4⃣ - روابط إعطاء القيم
ا = ا اسناد قيمة لمتغير
ا =%، =*، =/، =+ ا لها نفس دور العمليات الحسابية
ا++ ،-- تزيد او تنقص قيمة المتغير بواحد


•┈┈┈•❈••✦✾✦••❈•┈┈┈•
•┈┈┈•❈••✦✾✦••❈•┈┈┈•
إ₰ــــ👨🏻‍💻👩🏻‍💻ــــ₰❥

كود لتوضيح الروابط < المعاملات >


using System;
using System.Text;
using System.Threading.Tasks;
namespace Operators
{
class program
{
static void Main(string[] args)
{
//arithmetic operators

int x;
int y;
int sum;
x = 7;
y = 9;
sum = x + y;
Console.Write("the sum is=" + sum);

//test operator
bool test = 5 > 6;
Console.WriteLine("test :" + test);

//logic operators
bool test2 = 5 > 6 && 4 < 9;
Console.WriteLine("test2 : " + test2);
Console.ReadKey();
}
}
}


•┈┈┈•❈••✦✾✦••❈•┈┈┈•
•┈┈┈•❈••✦✾✦••❈•┈┈┈•


المخـ₰💻₰❥ـرجات

the sum is= 16
test : False
test2 : False
#Objects & #Classes

الكائنات والكلاسات هي احد المفاهيم (التقنيات) المستخدمة في منهجية البرمجة غرضية التوجه OOP لذا سنتعلم تصميم برنامج يستخدم الكائنات والكلاسات ولكن قبل ذلك يجب ان نعرف :

- ما هو الكائن ( object ) ؟
- ما هو الكلاس ( class) ؟


1⃣ الكائن Object :

تعريف عامي : الكائن هو أي شي له خصائص وله فعل .

امثلة :
- الكمبيوتر عبارة عن شيء له خصائصه وله افعال .
- الانسان نفسه عبارة عن شيء له خصائصه وله افعاله.
- السيارة عبارة عن شيء لها خصائص ولها افعال .


تعريف برمجي : عبارة عن شيء entity له خصائص attributes وله أفعال behavior .

entity : شيء ما
attributes : خصائص هذا الشيء
behavior : فعل او تصرف هذا الشيء


خصائص الكائن بالبرمجة :
1- Attributes :
خصائص الكائن يتم تمثيلها بالمتغيرات .

2- Behavior:
تصرفات الكائن يتم تمثيلها بالدوال الميثود.

3- identity: Object identity is typically implemented via a unique ID. The value of the ID is not visible to the external user.


مثال :
القلم لونه أحمر ونستخدمه للكتابة
* القلم هو الـ object
* اللون الأحمر هي الـ attribute
* الكتابة هي الـ behavior




2⃣ الكلاس Class :

عبارة عن templete قالب (وعاء) يحتوي على متغيرات ودوال.


يحتوي الكلاس على :

- data member المتغيرات
- method الدوال
- constructor دالة خاصة تشرح لاحقا
- block هي الاقواس { }



الشكل للعام لكتابة الكلاس :

class <class_name>{
data member;
method;
}



ملاحظة مهمه :
الكائن يعتبر حالة من الكلاس وبما انه حالة من الكلاس مستحيل يكون عندي كائن بدون كلاس لان الكائن ليس إلا نسخة فعلية من الكلاس .

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



مثال بسيط عن الكائن والكلاس :

1- الان في هذا الجزء سوف نقوم بإنشاء كلاس اسمه Student يحتوي على متغيرين id و name ودالة التشغيل main وتعتبر من الدوال لكنها اساسية لتشغيل البرنامج

class Student{
int id; //data member
String name; //data member

public static void main(String args[] ){

}
}



2- الان سنقوم بإنشاء الكائن بواسطة الكلمة المحجوزه new

class Student{
int id; //data member
String name; //data member

public static void main(String args[] ){
Student s1=new Student(); //انشاء الكائن
}
}

ملاحظة :
Student s1=new Student();
هذا السطر هي طريقة انشاء الكائن وسميناه s1 وراح ينسخ كل الاشياء الموجوده بالكلاس لاننا قلنا سابقا ان الكائن ليس الا نسخه من الكلاس الخام ولاحظ ايضا اسم Student لازم يكون نفس اسم الكلاس عشان يصبح نسخه من كلاسنا وهذه النسخه كما قلنا لها اسم s1



3- الان في هذا الجزء سنقوم بطباعة المتغيرين id و name من خلال استدعائها بواسطة اسم الكائن s1 ويستطيع استدعائها لانه صار نسخه من الكلاس يعني له الامكانيه برؤية كل شي بالكلاس.......

class Student{
int id; //data member
String name; //data member

public static void main(String args[ ] ){

Student s1=new Student();
console.writeline(s1.id);
console.writeline(s1.name);

}
}

المخرجات قيم افتراضيه وراح تكون كالتالي :
0
null
والسبب لاننا لما عرفنا المتغيرات بالكلاس ولم نعطي له اي قيمه فقط عرفنا متغيرات بدون اسناد قيم لها .

5 - الان احط قيم لمتغيراتي الموجوده بالكلاس من خلال كل الكائنات اللي سويناها ولكل كائن على حده استطيع اعطاء قيم مستقله للمتغيرات ومن ثم لا انسى اطبعهم كالتالي :


النسخة الاولى من الكلاس
Student s1=new Student();
s1.id = 369;
s1.name = "Aasam";
console.writeline(s1.id);
console.writeline(s1.name);

النسخة الثانية من الكلاس
Student s2=new Student();
s2.id = 369;
s2.name = "wasam";
console.writeline (s2.id);
console.writeline (s2.name);

ختاما الان اتضح لنا فائدة الكلاسات و الكائنات مجرد خصصنا كلاس وسوينا منه كائنات كثير باسطر قليله
بدل اني اكتب كلاس كامل لكل Student......
إ₰ـــــــ👨🏻‍💻👩🏻‍💻ـــــ₰❥

عندما يضحك المبرمج....😅

void main( )
{
Console.Write(makeSTR("ha", 4));
Console.ReadKey( );
}

string makeSTR(string s, int count)
{
string ss
for(int i = 0; i < count; ++i)
ss += s;
return ss;
}


•┈┈┈•❈••✦✾✦••❈•┈┈┈•
•┈┈┈•❈••✦✾✦••❈•┈┈┈•


المخـ₰💻₰❥ـرجات

hahahahaha