تعلم لغات البرمجة

العمليات الحسابية و المنطقية

العمليات :

العمليات الحسابية

العمليات الحسابية :

تحوي لغة #C العمليات الحسابية التالية:

1. الجمع (+) :

7 + 4 = 11

"Hello" + "Mamy" = "Hello Mamy"


2. الطرح (-) .

3. الضرب (*) .

4. القسمة الصحيحة (/) .

5. القسمة العشرية (/) .

6. باقي القسمة (%) .


أمثلة :

int n = 10;

int m = 3;

int r = n / m;

// r will be 3 

double n = 10;

double m = 3;

double r = n / m;

// r will be 3.333

char c = 'A';

int i;

i = c + 1;

// i will be 66


العمليات المنطقية:

العمليات المنطقية



تحوي لغة #C العمليات المنطقية التالية:

1. عملية (&&) وAND .

2. عملية (||) أو OR .

3. عملية النفي (!) .


أمثلة:

bool b;

int n = 10;

int m = 20;

b = ((n > m) || (m % n == 0));

// b will be true


معاملات المقارنة:

العمليات المنطقية معاملات المقارنة


تحوي لغة #C معاملات المقارنة التالية:

1. يساوي (==) .

2. لا يساوي  (!=) .

3. أكبر (>) .

4. أصغر (<) .

5. أكبر أو يساوي (>=) .

6. أصغر أو يساوي (<=) .


معاملات الزيادة والانقاص:

معاملات الزيادة و النقصان



تحوي لغة #C المعاملات التالية:

1. زيادة واحد (++) .

2. انقاص واحد (--) .


أمثلة :

int i = 10;

i++; //(i= i +1) i will be 11

i--; //(i= i -1) i will be 10


الإسناد :

 * يمكن استخدام الإسناد كما يلي:


1. الإسناد (=) .

2. الجمع ثم الإسناد (+=) .

3. الطرح ثم الإسناد (=-) .

4. الضرب ثم الإسناد (*=) .

5. القسمة ثم الإسناد  (/=) .

6. باقي القسمة ثم الإسناد  (%=) .


أمثلة :

int i = 10;

i += 5; // (i = i + 5) i will be 15

i -= 10; // (i = i - 10 ) i will be 5


معامل الاختبار الثلاثي: ? Operator Ternary The:


* يكون لهذا المعامل الشكل التالي:

一一一一一一一一一一一一

condition ? true-value : false-value


 *يستخدم لاختبار شرط معين واعادة قيمة إذا كان الشرط محققاً، و إعادة قيمة أخرى في حال عدم تحقق الشرط. 

 

* يبين المثال التالي استخدام هذا المعامل:


int x = 1;

string s = x.ToString() + " ";

s = s + (x == 1 ? "man" : "men");


اليكم فيديو توضيحي يبين كل ما تم شرحه في الاعلى ....

 تحياتي...🍀

اساسيات #C

 اساسيات #C

اساسيات لغة سي شارب



المتغيرات:

* المتغير هو عنوان منطقة محجوزة في الذاكرة يمكن الكتابة فيها والقراءة منها

* يتم التصريح عن المتغيرات باستخدام الشكل العام التالي:

 一一一一一一一一一一一

    ;type variable name  

 一一一一一一一一一一一

أمثلة :

int m;

int n, k;

int l = 100;

int a = 100, b, c = 200, d;


*يمكن أن يحتوي اسم المتغير على أحرف أو أرقام أو إشارة

* يجب أن يبدأ اسم المتغير بحرف أو إشارة _ 

* لا يمكن استخدام كلمات اللغة المفتاحية كإسم للمتغير.

* تتأثر اللغة بحالة الأحرف فالمتحول x هو غير X.


ملاحظة:لا يجوز التعامل مع متحول لم يعطى قيمة ابتدائية. فالتعليمات التالية مثالا:


int i, j;

i = j;


ستولد الخطأ التالي(استخدام متغير دون قيمة) :

Use of unassigned local variable j


أنماط البيانات:

 يحدد نمط بيانات المتغير القيم التي يمكن أن تسند للمتغير . كما يختلف حجم التخزين المطلوب للمتغير حسب نمطه. 


1 .أنماط الأعداد الصحيحة:

نعرض في الجدول التالي جميع أنماط الأعداد الصحيحة التي توفرها لنا لغة #C.


  الوصف                                                        مجال القيم           الاسم         

sbyte             -128 to 127                                               signed 8-bit integer

byte               0 to 255                                                    unsigned  8-bit integer

short             -32,768 to 32,767                                      signed 16-bit integer

ushort             0 to 65,535                                              usigned 16-bit integer

int                   -2,147,483,648 to 2,147,483,647           signed 32-bit integer

uint                  0 to 4,294,967,295                                usigned 32-bit integer

long               -9,223,372,036,854,775,808 to 

                        9,223,372,036,854,775,807                   signed 64-bit integer

ulong             0 to 18,446,744,073,709,551,615           usigned 64-bit integer



 2 .أنماط الأعداد العشرية:

نعرض في الجدول التالي جميع أنماط الأعداد العشرية التي توفرها لنا لغة #C.


الوصف                                                                      مجال القيم                    الاسم

float              + -  1.5*10_45 to + - 3.4*1038                             7 digits precision

double           + -  0.5 *10_324 to + - 1.7*10308                       15_16 precision digits 

decimal         + - 1.0*10_28 to + - 7.9*1028                              28_29 precision digits


 3 .النمط المنطقي :

يستخدم هذا النمط لتخزين قيمة منطقية صح ام خطأ. 

الوصف                                                                     مجال القيم                    الاسم

bool                     true , false                                                     قيمة منطقية صح ام خطأ


4.النمط المحرفي:

 يستخدم هذا النمط لتخزين محرف واحد.

الوصف                                                                     مجال القيم                    الاسم

char                   one char                                                          يمكن تخزين محرف واحد


5. السلاسل النصية:

 يستخدم هذا النمط لتخزين سلسلة من المحارف.

الوصف                                                                     مجال القيم                    الاسم

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;


يبين الجدول التالي من أجل كل نمط من الأنماط التي يمكن الإسناد إليها بشكل ضمني:


From                                                To

sbyte                             short, int, long, float, double, decimal

byte                              short, ushort, int, uint, long, ulong, float, double, decimal

short                             int, long, float, double, decimal

ushort                           int, uint, long, ulong, float, double, decimal

int                                 long, float, double, decimal

uint                              long, ulong, float, double, decimal

Long, ulong                 float, doule, decimal

float                             double


التحويل الصريح Explicit Conversion :

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

 

* يمكن استخدام الطريقة 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 roads

الطرق الساكنة static roads

المتغيرات والطرق الساكنة:

 تنفذ لطرق في الكثير من الاحيان على أغراض معينة. إلا أنه في لعديد من الحالات يمكن ان تهدف الطريقة إلى القيام بتنفيذ مهمة لا تتعلق بمحتوى أي غرض. تسمى هذه الطرق بالطرق الساكنة ويمكن التصريح عنها باستخدام الكلمة المفتاحية 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.

الان هذا فيديو توضيحي نكمل فيه ما تبقى من الصفوف و الاغراض و الطرق ... ثم شرح للطرق الساكنة ..




ايضا هذا فيديو توضيحي للطرق الساكنة ...




اذ كان لديكم اي استفسار اتركوه لي في التعليقات..بالتوفيق 🍀

الصفوف و الاغراض و الطرق Rows, objects, and methods

 

الصفوف و الاغراض و الطرق


سنستهل حديثنا اليوم اصدقائي وبعد تعرفنا على التعليمات الاساسية في الخوارزميات، في إنشاء الصفوف و الاغراض في Visual Studio 2013 طبعا اذا قمت بالعمل على نسخة حديثة فلا يهم كله ذات الامر الا ان النسخة الحديثة اكثر مساعدة في تحديد مواضع الخطأ ونوعه وغيرها اي قد يمنعنا من فرصة التعلم و البحث الذاتي :

 

الصفوف و الاغراض و الطرق

إنشاء صف يحوي طريقة وإنشاء غرض من الصف :

يسمح محيط العمل 2013 Visual 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


إليكم هذا الفيديو التوضيحي لكل ما شرح اعلاه :


 

 يتبقى لنا هكذا القليل حتى نبدأ مع اساسيات لغة سي شارب  ...أتمنى ان يكون كل ما ذكر واضحا🍀  

التعليمة التكرارية loop

 


 
التعليمة التكرارية loop

 

التعليمة التكرارية while :

تستعمل التعليمة التكرارية لتكرار تنفيذ مجموعة من التعليمات يرتبط هذا التكرار بتحقق شرط، اذا يختبر الشرط فان كان الشرط محققا أي صحيحا ستنفذ عندها مجموعة التعليمات ويكرر تنفيذ هذه التعليمات طالما أن الشرط محقق.

 

وكشكل للتعليمة التكرارية :

مادام (شرط) كرر

بداية

   مجموعة تعليمات

نهاية

 

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

 

مثال:

كتابة جدول الضرب للعدد 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

 

هذه طريقة ثانية لكتابة الخوارزمية. لكن لها نفس الفكرة و الحل.

 

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

فان كانت مجموعة التعليمات لا تحمل في داخلها اي تعديل علي اي من متحولاتها المضمنة بالشرط فهناك حتما حلقة تكرارية لا نهائية.

 

مثال:

اقرأ M

S→  0

i 1

مادام M) (i  كرر

بداية

S S + i

i i +1 هذا السطر من التعليمات غير موجود

نهاية

اكتب s

 

لاحظو ماذا سيحدث لو نسينا تعليمة تغيير المتحول :

g

s

i

تكرار

شرط g >= i

1

0

1

0

صح

1

1

1

1

صح

1

2

1

2

صح

1

3

1

3

صح

1

...

1

 

صح

1

لا نهاية اي اعلى قيمة ممكنة حاسوبياً

1

 

صح

 

اليكم فيديو توضيحي اصدقائي ...



الأشعارات
اهلا بك اخى الكريم فى مدونة تى جو
ان كنت من المهتمين بكل جديد فى العالم التقنى يمكنك الاشترك فى قناة تى جو على اليوتيوب بالضغط على زر اليوتيوب فى الاسفل حتى تكون اول المستفيدين من شروحاتنا .
=================================
وان كان لديك اى اسئله او اقتراحات يمكنك التواصل معنا عبر مواقع التواصل الاجتماعى اسفل الرساله وسوف نقوم بالرد فى اسرع وقت .
شكرا على المتابعه .

حسناً