منتدى الإلكترونيات قسم الالكترونكس لمناقشة الافكار والمعلومات المتعلقة بالهندسة الالكترونية للمبتدئين والهواة والفنيين - Electronics

   

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 17-10-2022, 08:45 PM المشاركة 9   
افتراضي




6- العمليات والعوامل الحسابية Arithmetic

كود:
+,-,*,/

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

كود:
Example15:
# using some arithmetic in expressions

forward(2+3)
if(3*4 < 13){
    x = 3
    left(x-2)
}
backward(-(3+4)/2)



7- المتغيرات Variables

كود:
x = ...

باستخدام المتغيرات ، يمكنك تذكر القيم تحت اسم يمكنك اختياره بنفسك. تتوفر قيم هذه المتغيرات لاحقًا في النص script بأكمله . يمكنك الحصول على هذه القيم باستخدام الاسم مرة أخرى. يمكنك تذكر قيم أي تعبير.

كود:
Example16:
# store a number
x = 42

# store another number, based on x
y = x / 2

# store a logical expression
clear = leftIsClear & frontIsClear & rightIsClear

# store the actual number of steps taken
# until you bumped (returned by "forward")
actual = forward(100)

if(clear){
     right(2)
     forward(actual) # go back
}
left(y)

8- النهاية End
الأمر :

كود:
End

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

كود:
Example17:
# stop after 5 steps, or earlier when you encounter a beacon on the right
repeat(5)
{
	forward(1)
	if(rightIsBeacon)
	{
		end # stops execution of the program
	}
}
# normal end of the program

اعلانات

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 17-10-2022, 09:01 PM المشاركة 10   
افتراضي


مثال : تابع الخط Line follower
في الخريطة الافتراضية default.map تجد خطًا أبيض في الشرق. يشكل هذا الخط مسارًا عبر البيئة. كيف يمكنك جعل الروبوت يتبع هذا المسار؟

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

انظر أيضًا: التعليمات الأساسية: move, see, programming structures ، هياكل البرمجة: الحلقات ، الإجراءات ، هياكل الشرط ، النهاية loops, procedures, if-structures, end

[IMG][/IMG]

كود:
# Go to the start of the line

right
forward(8)


# Keep on track step by step

repeat
{
    if(frontIsWhite){
        forward(1)
    }
    else if(rightIsWhite){
        right
    }
    else if(leftIsWhite){
        left
    }
    else if(frontIsObstacle){
        end
    }

• فى البداية يتم وضع الربوت عند بداية الخط

كود:
right
forward(8)

• يتم عمل حلقة تكرار لانهائى بهيكل repeat ، داخل هذه الحلقة يوجد 4 حالات لهيكل الشرط if (condition) {…} else if (condition) {…} . يتم تفيذ الحالة الأولى أو الثانية أو الثالثة ويتكرر هذا العمل ختى الوصول إلى الحالة الرابعة حيث يتم إنهاء end الحلقة والبرنامج .
- الحالة الأولى : اختبار الأمام أبيض ، فى حالة الصواب تقدم خطوة للأمام

كود:
    if(frontIsWhite){
        forward(1)
    }

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

كود:
   else if(rightIsWhite){
        right
    }


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


كود:
  else if(leftIsWhite){
        left
    }

- الحالة الرابعة : اختبار عائق بالأمام ، فى حالة الصواب يتم إنهاء البرنامج بالتعليمة end .

كود:
else if(frontIsObstacle){
        end
    }


نهج آخر هو استخدام ما يسمى الإجراءات العودية recursive procedures. في البرنامج النصي script التالي ، ترى أنه تم تعريف الإجراء follow . في هذا الإجراء ، بعد تنفيذ الخطوة الصحيحة ، سترى أن follow يستخدم في تعريفه الخاص. ما تحصل عليه هو تسلسل من follow (...follow(...follow(...)...)...) يؤدي الإجراء الصحيح في كل خطوة لإنجاز المهمة. يُطلق على هذا التعريف المتكرر اسم العودية recursion ، ومن المحتمل أن تجده غريبًا نوعًا ما في المرة الأولى التي تراها فيه. لا تقلق ، العب بها(تمرن عليها) وسيصبح الأمر أكثر وضوحًا.


كود:
# Go to the start of the line

right
forward(8)


# Start tracking

follow


# Recursive definition for tracking
procedure follow{
    if(frontIsWhite){
        forward(1)
        follow
    }
    else if(rightIsWhite){
        right
        follow
    }
    else if(leftIsWhite){
        left
        follow
    }
    else if(frontIsObstacle){
        # Finish the current procedure call
        # (because there is nothing to after 
        # this return, all calls will be finished
        # and the program stops)
        return
    }
}

تمرير المنارات Pass beacons
الخريطة المستخدمة : map: passBeacons.map

[IMG][/IMG]


كود:
# Pass beacons script
# map: passBeacons.map

right
repeatWhile(frontIsClear){
    forward(1)
}

repeatWhile(frontIsBeacon){
    pickUp
    turn
    putDown
    turn
    forward(1)
}

forward(2)

procedure turn{
    right
    right
}

اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )

الصورة الرمزية مسلم11
مسلم11
:: عضو ذهبي ::
تاريخ التسجيل: Jun 2009
الدولة: بلاد الشام
المشاركات: 3,679
نشاط [ مسلم11 ]
قوة السمعة:
قديم 19-10-2022, 10:53 PM المشاركة 11   
افتراضي


السلام عليكم ورحمة الله وبركاته
الحمد لله رب العالمين ان اخرجك الينا بخير وسلامة
اشكر لك ما تقدم و اتمنى لك دوام الصحة والعافية


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 21-10-2022, 03:18 PM المشاركة 12   
افتراضي


شكرا لك أخى الكريم الفاضل

الحمد لله رب العالمين



الساعة معتمدة بتوقيت جرينتش +3 الساعة الآن: 03:04 AM
موقع القرية الالكترونية غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء
فعلى كل شخص تحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه
التعليقات المنشورة لا تعبر عن رأي موقع القرية الالكترونية ولايتحمل الموقع أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر)