string string to chars يمكن تخزين سلسلة من المحارف
أمثلة :
char a = 'f';
string s1 = "Hello ";
string s2 = "World";
string s3 = s1 + s2;
//s3 is now "Hello World"
التحويل الضمني Implicit Conversion :
يمكن بشكل عام إسناد متغير من نمط إلى متغير من نمط آخر بشكل مباشر في حال كان مجال قيم المتغير الأول ضمن مجال قيم المتغير الثاني(بما معناه اسناد المتغير الصغير ضمن المتغير الكبير).
مثلا :
int i = 100;
long j;
j = i;
يبين الجدول التالي من أجل كل نمط من الأنماط التي يمكن الإسناد إليها بشكل ضمني:
* يمكن أيضاً إجراء عملية "قصر" بحيث نقوم بإسناد متغير من نمط ذو مجال قيم أكبر إلى نمط ذو مجال قيم أقل. بالطبع، يمكن الا تعطي هذه العملية نتائج صحيحة في حال كانت القيم المسندة خارج مجال المتغير المسند إليه.
* يمكن استخدام الطريقة checked لإطلاق استثناء في حال كانت عملية القصر تعطي نتائج صحيحة.
أمثلة :
//Explicit Conversion
long v = 30000;
int i= (int) v ;
//A valid Cast. The max is 2147483647
// i will be 30000
long g=3000000000;
int j= (int) v;
//An invalid Cast. The max is 2147483647
//j will be -129947296
int k= checked((int) g);
// throw an overflow exception if needed
double p=25.7;
int m= (int) p;
// m will be 25
char c = 'A';
int i = (int)c;
//i will be 65
int i = 10;
string s = i.ToString();
//s will be "10"
string ss = "300";
int j = int.Parse(ss);
//j will be 300
string sss = "34.678";
double x = double.Parse(sss);
//x will be 34.678
int k = int.Parse(sss);
//Throw an exception
اليكم هذا الفيديو لتوضيح كل ما سبق ..
وهكذا نكون قد عرضنا الانماط و طرق التحويل و القصر ...... تحياتي 🍀
تنفذ لطرق في الكثير من الاحيان على أغراض معينة. إلا أنه في لعديد من الحالات يمكن ان تهدف الطريقة إلى القيام بتنفيذ مهمة لا تتعلق بمحتوى أي غرض. تسمى هذه الطرق بالطرق الساكنة ويمكن التصريح عنها باستخدام الكلمة المفتاحية static. *يتم استدعاء طريق ساكنة من صف بكتابة اسم الصف متبوعاً بالمعامل (.) ثم اسم الطريقة مع تمرير معاملاتها إن وجدت بين قوسين:
ClassName MethodName( arguments )
*بالعودة إلى الصف GradeBook المنشئ في المثال السابق. سنقوم بتعديل الطريقة ()DisplayMessage بحيث تصبح ساكنة:
GradeBook.cs//
Class declaration with one method//
;using System
public class GradeBook
}
display a welcome message to the GradeBook user//
()public static void DisplayMessage
}
;Console.WriteLine( "Welcome to the Grade Book!" )
end method DisplayMessage//
{
end class GradeBook//
{
بالعودة إلى الملف GradeBookTest.cs لاستدعاء طريقة الصف الساكنة السابقة:
GradeBookTest.cs//
public class GradeBookTest
}
Main method begins program execution//
public static void Main( string[] args )
}
;()GradeBook.DisplayMessage
{
end Main//
{
end class GradeBookTest//
يكون ناتج التنفيذ:
!Welcome to the Grade Book
...Press any key to continue
التصريح عن طريقة ساكنة لها معاملات : نقوم فيما يلي بإضافة معامل الدخل courseName( اسم المادة) لطريقة الصف السابق الساكنة ليُصبح الصف:
GradeBook.cs//
Class declaration with a method that has a parameter//
;using System
public class GradeBook
}
display a welcome message to the GradeBook user//
public static void DisplayMessage( string courseName )
}
;Console.WriteLine( "Welcome to the grade book for\n{0}!", courseName )
{
end method DisplayMessage//
{
end class GradeBook//
نقوم باستدعاء الطريقة الساكنة السابقة ضمن الطريقة Main .يتم الطلب من المستخدم بإدخال سلسلة نصية (اسم المادة) ومن ثم تمرير القيمة كمعامل دخل للطريقة:
;using System
public class GradeBookTest
}
Main method begins program execution//
public static void Main( string[] args )
}
prompt for and input course name//
;Console.WriteLine( "Please enter the course name:" )
string nameOfCourse = Console.ReadLine(); // read a line of text
Console.WriteLine(); // output a blank line
call DisplayMessage method//
and pass nameOfCourse as an argument//
;GradeBook.DisplayMessage(nameOfCourse)
{
end Main//
{
end class GradeBookTest//
يكون التنفيذ مثالً:
:Please enter the course name
Programming
Welcome to the grade book for
!Programming
...Press any key to continue
الكلمة المفتاحية public: يجب التصريح عن طريقة في صف بأنها عامة كي نستطيع استدعائها في صف آخر. يتم التصريح عن طريقة بأنها عامة باستخدام الكلمة المفتاحية public. في حال كان استدعاء الطريقة ضمن نفس الصف فليس من الضروري التصريح عن الطريقة بأنها عامة. نقوم في المثال التالي بالتصريح عن الطريقة DisplayMessage ضمن نفس الصف GradeBookTest واستدعائها في الطريقة Main للصف نفسه:
;using System
public class GradeBookTest
}
static void DisplayMessage(string courseName)
}
,"!Console.WriteLine("Welcome to the grade book for\n{0}
(;courseName
{
end method DisplayMessage//
Main method begins program execution//
public static void Main( string[] args )
}
prompt for and input course name//
;Console.WriteLine("Please enter the course name:")
string nameOfCourse = Console.ReadLine(); // read a line of text
Console.WriteLine(); // output a blank line
call DisplayMessage method //
and pass nameOfCourse as an argument//
;DisplayMessage(nameOfCourse)
{
end Main//
{
end class GradeBookTest//
يكون ناتج التنفيذ:
:Please enter the course name
Programming
Welcome to the grade book for
!Programming
...Press any key to continue
الطريقة الساكنة Main:
يبدأ التنفيذ من الطريقة الساكنة Main والتي تكون معرفة عادة كما يلي:
public static void Main(string[] args)
يمكنك حذف المعاملات للطريقة ماين Main في حال عدم الحاجة إليها:
public static void Main()
عندما تقوم بتنفيذ التطبيق من سطر التعلميمات (line command) يمكنك كتابة اسم التطبيق متبوعًا بقيم لهذه المعاملات كما يبين المثال التالي:
;using System
public class MathTest
}
obtain three floating-point values and determine maximum value//
public static void Main(string[] args)
}
Console.WriteLine("Welcome to " + args[0] + " from " + args[1] );
{
end Main//
{
يمكنك في هذا المثال فتح نافذة الأوامر:
Accessories → Command Prompt
اكتب اسم الملف التنفيذي متبوعًا بقيم لمعاملات:
Microsoft Windows [Version 6.1.7601]
.Copyright (c) 2009 Microsoft Corporation. All rights reserved
C:\>TestMain.exe C# Microsoft
Welcome to C# from Microsoft
C:\>
ملاحظة: قمنا في مثالنا بنسخ الملف التنفيذي إلى المجلد \:C.
الان هذا فيديو توضيحي نكمل فيه ما تبقى من الصفوف و الاغراض و الطرق ... ثم شرح للطرق الساكنة ..
ايضا هذا فيديو توضيحي للطرق الساكنة ...
اذ كان لديكم اي استفسار اتركوه لي في التعليقات..بالتوفيق 🍀
سنستهل حديثنا اليوم اصدقائي وبعد تعرفنا على التعليمات
الاساسية في الخوارزميات، في إنشاء الصفوف و الاغراض في Visual Studio 2013 طبعا اذا قمت بالعمل
على نسخة حديثة فلا يهم كله ذات الامر الا ان النسخة الحديثة اكثر مساعدة في تحديد
مواضع الخطأ ونوعه وغيرها اي قد يمنعنا من فرصة التعلم و البحث الذاتي :
الصفوف و
الاغراض و الطرق
إنشاء صف يحوي طريقة وإنشاء غرض من الصف :
يسمح محيط العمل 2013Visual
Studio بإنشاء التطبيقات بشكل بسيط وسريع:
1.افتح محيط العمل Visual Studio 2013
2 .أنشئ مشروع جديد:
File → New → Project
3 .اختر Visual
C# Console Application ،وقم بإدخال اسم المشروع GradeBook ومسار
التخزين:
4 .يتم فتح مشروع جديد يحوي الملف Program. cs والذي بداخله الطريقة ( ) Main والتي هي نقطة
البدء بالتنفيذ:
5 .قم بتغيير اسم الملف Program. cs إلى GradeBookTest. cs لاحظ ان اسم الملف سيصبح
تلقائياً GradeBookTest أيضاً.
6 .انقر بالزر الأيمن على أيقونة المشروع GradeBook ثم اختر إضافة Add صف Class:
7 .قم بتسمية الصف الجديد GradeBook.
8 .قم بكتابة الطريقة البسيطة ()DisplayMessage في الصف والتي تظهر
الرسالة الترحيبية التالية :
// GradeBook.cs
// Class declaration with one method.
using System;
public class
GradeBook
{
// display a
welcome message to the GradeBook user
public void
DisplayMessage()
{
Console.WriteLine(
"Welcome to the Grade Book!" );
} // end
method DisplayMessage
} // end
class GradeBook
9 .افتح الملف cs.GradeBookTest لإنشاء غرض من الصف واستدعاء طريقة الصف:
//
GradeBookTest.cs
// Create a
GradeBook object and call its DisplayMessage method.
public class
GradeBookTest
{
// Main
method begins program execution
public static
void Main( string[] args )
{
// create a
GradeBook object and assign it to myGradeBook
GradeBook myGradeBook;
myGradeBook =
new GradeBook();
// call
myGradeBook's DisplayMessage method
myGradeBook.DisplayMessage();
} // end Main
} // end
class GradeBookTest
10 .قم بالتنفيذ:
Welcome to
the Grade Book!
Press any key
to continue . . .
11 .لاحظ أنك بعد إضافتك للصف الجديد GradeBook
أصبح لديك نمط بيانات جديد يمكنك تعريف متغيرات منهو انشاء أغراض جديدة.
12 .يتم استخدام المعامل new لإنشاء متغير(غرض object، منتسخ instance )جديد من الصف
.GradeBook
لاحظ المعامل (.) بعد اسم المتغير لاستدعاء طريقة الصف.
التصريح عن طريقة المعاملات الفرق بين :
التصريح عن طريقة لها معاملات :
نقوم
فيما يلي بإضافة معامل الدخل courseName(اسم المادة) لطريقة الصف السابق ليصبح
الصف:
// GradeBook.cs
// Class
declaration with a method that has a parameter.
using System;
public class
GradeBook
{
// display a
welcome message to the GradeBook user
public void
DisplayMessage( string courseName )
{
Console.WriteLine(
"Welcome to the grade book for\n{0}!", courseName );
} // end
method DisplayMessage
} // end
class GradeBook
ثم
نقوم بإنشاء غرض من الصف السابق واستدعاء الطريقة DisplayMessage مع تمرير قيمة لمعامل
الدخل. يتم الطلب من المستخدم بإدخال سلسلة نصية (اسم المادة) ومن ثم تمرير القيمة
كمعامل دخل للطريقة:
//GradeBookTest.cs
//Create a
GradeBook object and pass a String to
// its DisplayMessage method
using System;
public class
GradeBookTest
}
// Main
method begins program execution
public static
void Main( string[] args )
{
// create a
GradeBook object and assign it to myGradeBook
GradeBook
myGradeBook = new GradeBook();
// prompt for
and input course name
Console.WriteLine(
"Please enter the course name:" );
string
nameOfCourse = Console.ReadLine(); // read a line of text
Console.WriteLine();
// output a blank line
// call
myGradeBook's DisplayMessage method
// and pass
nameOfCourse as an argument
myGradeBook.DisplayMessage(nameOfCourse);
} // end Main
} // end
class GradeBookTest
يكون
التنفيذ مثلاً:
Please enter
the course name programming:
Welcome to
the grade book for programming!
Press any key
to continue
إليكم هذا الفيديو التوضيحي لكل ما شرح اعلاه :
يتبقى لنا هكذا القليل حتى نبدأ مع اساسيات لغة سي شارب ...أتمنى ان يكون كل ما ذكر واضحا🍀
تستعمل التعليمة التكرارية لتكرار تنفيذ مجموعة من
التعليمات يرتبط هذا التكرار بتحقق شرط، اذا يختبر الشرط فان كان الشرط محققا أي
صحيحا ستنفذ عندها مجموعة التعليمات ويكرر تنفيذ هذه التعليمات طالما أن الشرط
محقق.
وكشكل للتعليمة التكرارية :
مادام(شرط) كرر
بداية
مجموعة تعليمات
نهاية
وتسمى هذه التعليمة أيضا من بين بني التحكم، بالحلقة
التكرارية اذا انه في حال تحقق الشرط تنفذ مجموعة التعليمات ليعود التنفيذ إلى
اختبار الشرط من جديد، لتنفذ التعليمات من جديد ما دام الشرط محققا. وتبقى هذه
الحلقة او التكرار مستمرا في تنفيذ مجموعة التعليمات واختبار الشرط، حتى يصبح
الشرط غير محقق، عندها ينتقل التنفيذ الى التعليم التاليه لتعليمه التكرار.
مثال:
كتابة جدول الضرب للعدد 5 .
الفكره الخوارزمية : هي ما تقوم به فعليا بيدك. اي
تكرار كتابة أسطر من الشكل :
5*1=5
5*2=10
.
.
.
5*10=50
اي تكرار كتابة 5*i حيث i
تبدأ بالقيمة 1 ثم تزداد في كل عملية اعادة للحلقة التكرارية بمقدار واحد، حتى
تتوقف عند القيمة 10.
الخطوة الأولى والاهم هي ان نكتب خوارزمية الحل فعند
اتقاننا لكتابة الخوارزميات سيسهل علنا تطبيقها على شكل كود، فتكون خوارزمية الحل
في مثالنا هذا:
i → 1
مادام 10 )≤ ( i كرر
بداية
5, " x", i ,"= ",
5*iاكتب
i → i +1
نهاية
في كثير من حالات التكرار نستخدم متحولا يتزايد مع
تنفيذ التكرار، مثل حاله i
في مثالنا هذا، يسمى هذا المتحول عداد اي يعد مرات التكرار، وبما ان التكرار هو
حلقة نسميه ايضا عداد الحلقة التكرارية.
مثال 2:
المطلوب حساب مجموع الاعداد 1..2..3..g
حيث g تعطى كدخل.
الآن وبعد ان اكتملت لدينا التعليمات الخوارزمية
الاساسية، لنفكر بخوارزمية الحل باستخدام هذه التعليمات.
بعد ان نفهم المسالة جيدا، نحدد المعطيات و النتائج
بشكل دقيق، وتكون خوارزمية الحل بمحاولة بناء الخطوات لمعالجة المعطيات وصولا الى
النتائج.
المعطيات : g عدد صحيح موجب.
النتائج : مجموع
الاعداد 1...2...3..g
وليكن رمز هذا المجموع المتحول s.
الخوارزمية :
العلاقة بين المتحولين s
و g
هي s=1+2+3+...g
وكما هو امامكم ان الحل بديهي و هو تعليمة اسناد حتى
نحصل على المطلوب :
اقرأ g
S
← 1+2+3+...g
اكتب s
ما رايكم بالحل!! بالطبع لن يكون هذا الكلام مقبولا
خوارزميا لانه لن يكون مقبولا لا حاسوبيا ولا برمجيا.
لانه لا يمكن ان تكون تعليمة الاسناد مقبولة بهذا
الشكل ...g
انه مفهوم لنا لكنه غير قابل للحساب.
لكن لنتابع مع نفس الفكرة لكن باسلوب مختلف حيث اننا
سنجمع الى المتحول s
القيمة 1 ثم 2 ثم 3 الى … g
وجدنا بداية الفكرة : s→s+i حيث سيكون i
هو المتحول الذي سياخذ القيم من 1 حتى gهكذا نكون تخلصنا من
النقاط التي ادت لرفض الخوارزمية بداية بان جعلنا مكانها متحولا يعمل كعداد يتزايد بشكل تكراري نكرر زيادته
بمقدار 1 الى ان يصل إلى القيمة g اي شرط التكرار (g >= i).
خوارزمية الحل هي :
اقرأ g
S → 0
i→
1
مادام M) ≤ (i كرر
بداية
S→
S + i
→i
i +1
نهاية
اكتب S
لنتاكد من صحة الخوارزمية وذلك باختبارها يدويا من اجل
قيم مختلفة للمتحول g.
اذا كان الدخل g=1
شرط g >= i
تكرار
i
s
g
صح
0
1
0
1
خطا
1
2
1
1
الخرج يكون s=1
اذا كان الدخل g=3
شرط g >= i
تكرار
i
s
g
صح
0
1
0
3
صح
1
2
1
3
صح
2
3
3
3
خطا
3
4
6
3
الخرج هنا g=6
ان خوارزمية الحل ليست وحيدة مع انها ذات فكرة واحدة،
فدقة القيم و ترتيب المعلومات يمكن ان يعطي حلولا مختلفة.
اقرأ M
S → 1
i→
1
مادام( M < i ) كرر
بداية
i
→ i +1
S→
S + i
نهاية
اكتب S
هذه طريقة
ثانية لكتابة الخوارزمية. لكن لها نفس الفكرة و الحل.
ملاحظة :
إن كان الشرط دوما محقق، دائما صحيح لا يوجد تغيير في قيمته.. عندها ندخل في حلقة
تكرارية لا نهائية و هذا من اكبر الأخطاء البرمجية، اذ يستمر تكرار الحلقة بلا
توقف.
فان كانت مجموعة التعليمات لا تحمل في داخلها اي تعديل
علي اي من متحولاتها المضمنة بالشرط فهناك حتما حلقة تكرارية لا نهائية.
ان كنت من المهتمين بكل جديد فى العالم التقنى يمكنك
الاشترك فى قناة تى جو على اليوتيوب بالضغط على زر اليوتيوب فى الاسفل حتى تكون اول المستفيدين من شروحاتنا .
=================================
وان كان لديك اى اسئله او اقتراحات يمكنك التواصل معنا عبر مواقع التواصل الاجتماعى اسفل الرساله
وسوف نقوم بالرد فى اسرع وقت .
شكرا على المتابعه .