Professional Documents
Culture Documents
Windows Programming Asst. Prof. Ali Kadhum Idrees
Windows Programming Asst. Prof. Ali Kadhum Idrees
Windows Programming Asst. Prof. Ali Kadhum Idrees
مالحظة
يتم في الجانب العملي تعلُم برمجة النوافذ باستخدام فيجوال بيسك ٢٠١٠
) (Windows programming using visual basic 2010حيث سيتم تعلُم
اساسيات ھذه المادة في المختبر باالضافة الى استخدام ھذه االساسيات في برمجة
الخوارزميات التي تُأخذ في الجانب النظري من كورس تصميم وتحليل
الخوارزميات.
المصادر:
1‐ Mastering Microso Visual Basic 2010
2‐ Mastering Microsoft Visual Basic.Net
Try
Catch
End Try
ﻫﺎﻣﺔ:
ﻣﻼﺣظﺔ ّ
ﺟﻳدا ،وﺗﺗﺳـﺎءﻝ :وﻟﻣـﺎذا ﻻ أﻛﺗـب اﻟﻛـود ﺑﻌـد ﻧﻬﺎﻳـﺔ ﻣﻘطـﻊ ﻻ رﻳب ّأﻧك ﻣﺎ زﻟت ﻟم ﺗﻔﻬم وظﻳﻔﺔ اﻟﻣﻘطﻊ ّ Finally
ﻟﻠﻛﻳﻔﻳ ــﺔ اﻟﺗ ــﻲ ﻳﻌﻣ ــﻝ ﺑﻬ ــﺎ ﻣﻌ ــﺎﻟﺞ
ّ اﻻﺳ ــﺗﺛﻧﺎء ﻛﻠّ ــﻪ ،ﺑ ــدﻻ ﻣ ــن ﻛﺗﺎﺑﺗ ــﻪ ﻓ ــﻲ ﺟﻣﻠ ــﺔ Finally؟ ﻫ ــذا ﻳﻌ ــود ﻓ ــﻲ اﻟواﻗ ــﻊ
إن ﺑﺈﻣﻛﺎﻧ ــك أن ﺗﻛﺗ ــب ﻣﻘ ــﺎطﻊ ﻟﻣﻌﺎﻟﺟ ــﺔ اﻻﺳ ــﺗﺛﻧﺎءات ،داﺧ ــﻝ ﻣﻘط ــﻊ ..Tryوﺑﺈﻣﻛﺎﻧ ــك ﻣ ــن داﺧ ــﻝ
اﻻﺳ ــﺗﺛﻧﺎءّ ..
ﻣﻘطـﻊ Tryأﻳﺿــﺎ ،اﺳـﺗدﻋﺎء إﺟـراءات أﺧـرى ،ﺑﻬــﺎ ﻣﻘـﺎطﻊ ﻟﻣﻌﺎﻟﺟــﺔ اﻻﺳـﺗﺛﻧﺎءات ..ﺑــدأت ﺗﻔﻬـم إذن ﻣﻌﻧــﻰ ﻛﻠﻣــﺔ
ـﻲ Structuredاﻟﺗــﻲ ﻧﺻـف ﺑﻬــﺎ ﻣﻌﺎﻟﺟــﺔ اﻻﺳـﺗﺛﻧﺎء؟ ﺑﻧــﺎء ﻋﻠـﻰ ﻫــذا ،ﻟــو ﺣـدث اﺳــﺗﺛﻧﺎء ،وﻟـم ﻳوﺟــد ﻣﻘطــﻊ
ﻫﻳﻛﻠ ّ
ﻓﺈن اﻟﺗﻧﻔﻳذ ﻳﻧﺗﻘﻝ ﻟﻣﻘطـﻊ ﻣﻌﺎﻟﺟـﺔ اﻟﺧطـﺄ اﻷﻋﻠـﻰ )اﻟـذي ﻳﺣﺗـوي ﻋﻠـﻰ Catchﻳﺣﺗوي ﻋﻠﻰ ﻧوع اﻟﺧطﺈ اﻟﻣﻧﺎﺳبّ ،
ـﺎﻟﻲ إﻟــﻰ اﻹﺟـراء اﻟـذي اﺳــﺗدﻋﺎﻩ )إذا ﻛــﺎن ﻫــذا اﻻﺳـﺗدﻋﺎء ﻗــد ﺣــدث ﻓــﻲ
ـﺎﻟﻲ( ،أو ﻳﻐــﺎدر اﻹﺟـراء اﻟﺣـ ّ
اﻟﻣﻘطـﻊ اﻟﺣـ ّ
ﺛم إﻟـﻰ اﻹﺟـراء اﻟـذي اﺳـﺗدﻋﺎﻩ ..وﻫﻛـذا ،ﺣﺗّـﻰ ﻳﻌﺛـر ﻋﻠـﻰ ﺟﻣﻠـﺔ Catchاﻟﻣﻧﺎﺳـﺑﺔ) ..ﻟـن ﻳﺣـدث ﺟﻣﻠﺔ ّ ..(Try
ﻫذا طﺑﻌﺎ ﻓﻲ ﺣﺎﻟﺔ اﺳﺗﺧدام ﺟﻣﻠﺔ Catchاﻟﻌﺎﻣﺔ:
As Exceptionاﺳم_اﻻﺳﺗﺛﻧﺎء Catch
ﻣﻣﺎ ﺳﺑق ﻳﺗّﺿﺢ ﻟك ﻣﺎ ﻳﻠﻲ: ﻓﻬﻲ ﺗﺗﻌﺎﻣﻝ ﻣﻊ أي ﻧوع ﻣن اﻻﺳﺗﺛﻧﺎءاتّ .
ـﺗم ﺗﻣرﻳــر اﻻﺳــﺗﺛﻧﺎء ﻋﺑــر اﻹﺟـراءات اﻟﻣﺧﺗﻠﻔــﺔ ﻣــن
ﻫﻳﻛﻠﻳــﺔ ،Structuredﺣﻳــث ﻳـ ّ
ّ أن ﻣﻌﺎﻟﺟــﺔ اﻟﺧطــﺄ
-١ﻣﻌﻧــﻰ ّ
ـﺗم اﻟﻌﺛــور ﻋﻠــﻰ اﻟﻣﻌــﺎﻟﺞ اﻟﻣﻧﺎﺳــب ﻟﻼﺳــﺗﺛﻧﺎء ..وﺑﻬــذا ﺗﻣﺗﻠــك ﺗﺣ ّﻛﻣــﺎ أﻛﺑــر ﻓــﻲ
اﻟــداﺧﻝ ﻟﻠﺧــﺎرج ـ إﻟــﻰ أن ﻳـ ّ
ﺿم ﻛ ّﻝ ﺟﻣﻝ اﻟﻣﻌﺎﻟﺟﺔ ﻓﻲ ﻣوﺿﻊ واﺣد. ﺗﺗم ،ﺑﺣﻳث ﻳﻣﻛﻧك ـ ﻟو أردت ـ ّ أي إﺟراء ّ ﻣﻌﺎﻟﺟﺔ اﻟﺧطﺈ وﻓﻲ ّ
ﺣﻳوﻳﺔ ﻟﻠﻐﺎﻳﺔ ،ﻓﻬـﻲ ﺗﻠـزم VBﺑﺗﻧﻔﻳـذ ﺑﻌـض اﻟﻛـود ﻗﺑـﻝ أن ﻳﻐـﺎدر اﻹﺟـراء ..وأﻧـت ﺗﻔﻬـم أن ﺟﻣﻠﺔ ّ Finally ّ -٢
اﻵن ﻛﻳــف ﻳﻣﻛــن ﻣﻐــﺎدرة اﻹﺟـراء إﺟﺑﺎرّﻳــﺎ ﻓــﻲ ﺣﺎﻟــﺔ ﺣــدوث اﺳــﺗﺛﻧﺎء ﻏﻳــر ﻣﻌــﺎﻟﺞ ..ﻟﻬــذا ﻓﻣــن اﻟﻣﻬـ ّـم ﺟـ ّـدا أن
أي ﻋﻣــﻝ ﻗــد ﺑدأﺗــﻪ ،ﺣﺗّــﻰ ﻻ ﺗﺣــدث ﻧﺗــﺎﺋﺞ ﺗﺳــﺗﺧدم ﻣﻘطــﻊ Finallyﻹﻏــﻼق اﻟﻣﻠﻔــﺎت اﻟﺗــﻲ ﻓﺗﺣﺗﻬــﺎ ٕواﻧﻬــﺎء ّ
ﻏﻳر ﻣﺗوﻗﻌﺔ.
ﺧﻠﻳﺔ اﻻﺳﺗﺛﻧﺎء ،اﻟﺗﻲ ﺗرﺛﻬﺎ ﻛ ّﻝ أﻧواع اﻻﺳﺗﺛﻧﺎءات اﻷﺧرى.
أﻫم ﺧﺻﺎﺋص ووﺳﺎﺋﻝ ّ
واﻵن ﺗﻌﺎﻝ ﻧرى ّ
أﻫم اﻻﺳﺗﺛﻧﺎءات
ﺑﻌض ّ
اﻟﺧﻠﻳ ــﺔ اﻟرﺋﻳﺳ ـ ّـﻳﺔ ﻟﻛـ ـ ّﻝ أﻧـ ـواع اﻻﺳ ــﺗﺛﻧﺎءات
اﻟﺧﻠﻳ ــﺔ ّ SystemException
اﻟﺧﺎﺻـــﺔ ﺑﺎﻟﻧظـــﺎم :ﺗﻣﺛّ ــﻝ ّ
ّ اﻻﺳـــﺗﺛﻧﺎءات
أي ﺧط ــﺈ ﻓـ ــﻲ
اﻟﻣوﺟ ــودة ﻓـ ــﻲ ﻓﺿـــﺎء اﻻﺳـ ــم ..Systemوﻳﻧطﻠ ــق اﻻﺳـ ــﺗﺛﻧﺎء SystemExceptionﻋﻧ ــد ﺣـ ــدوث ّ
ﺳﻧﻔﺻﻠﻪ ﻓﻲ اﻟﻣﻘﺎطﻊ اﻟﺗﺎﻟﻳﺔ.
ّ ﻣﻣﺎ
اﻟﻧظﺎمّ ،
ﺗﺿم:
اﻟﺧﺎﺻﺔ ﺑﺎﻟﺗطﺑﻳﻘﺎت واﻟﺑراﻣﺞ :ﺗرث ﻫذﻩ اﻻﺳﺗﺛﻧﺎءات اﻻﺳﺗﺛﻧﺎء ..SystemExceptionوﻫﻲ ّ ّ اﻻﺳﺗﺛﻧﺎءات
ﻣﺣﻣــﻝ UnLoaded
:AppDomainUnloadedExceptionﻳﺣـدث ﻋﻧــد ﻣﺣﺎوﻟــﺔ اﻟﺗﻌﺎﻣــﻝ ﻣــﻊ ﺗطﺑﻳــق ﻏﻳــر ّ
)ﺗم اﻧﺗﻬﺎؤﻩ ،أو ﻟم ﻳﺑدأ ﺑﻌد(.
ّ
:CannotUnloadAppDomainExceptionﻳﺣدث ﻋﻧدﻣﺎ ﺗﻔﺷﻝ ﻣﺣﺎوﻟﺔ إﻏﻼق unloadأﺣـد اﻟﺗطﺑﻳﻘـﺎت
.application domain
ـف ﺗﻧﻔﻳـذي executable fileﻏﻳـر ﺻـﺎﻟﺢ
:BadImageFormatExceptionﻳﺣدث ﻋﻧد ﻣﺣﺎوﻟﺔ ﺗﺷﻐﻳﻝ ﻣﻠ ّ
ﻟﻠﺗﺷﻐﻳﻝ.
اﻟﺣﺎﻟﻳﺔ.
ّ اﻟﻌﻣﻠﻳﺔ
ّ :ContextMarshalExceptionﻳﺣدث ﻋﻧدﻣﺎ ﺗﻔﺷﻝ ﻣﺣﺎوﻟﺔ اﻟﺗﻌﺎﻣﻝ ﻣﻊ ﻛﺎﺋن ﺧﺎرج ﺣدود
ـﺎص ﺑﺎﻟﻠﻐـ ــﺔ
ـﻲ ﻓـ ــﻲ ﻣﺣـ ـ ّـرك اﻟﺗﻧﻔﻳـ ــذ اﻟﺧـ ـ ّ
:ExecutionEngineExceptionﻳﺣـ ــدث ﻋﻧـ ــدﻣﺎ ﻳﺣـ ــدث ﺧطـ ــﺄ داﺧﻠـ ـ ّ
.CLR's Execution engine
:InvalidProgramExceptionﻳﺣدث ﻫذا اﻻﺳﺗﺛﻧﺎء إذا ﻛﺎن ﻫﻧﺎك ﺧطﺄ ﻓﻲ ﻣﺗرﺟم اﻟﻛود ّ ،compiler
ﻣﻣﺎ
ﺗﺗﺳﺑب أﻧت ﻓﻲ ﺣدوث ﻫذا اﻻﺳﺗﺛﻧﺎء.
ﻳؤدى إﻟﻰ ﺗرﺟﻣﺔ اﻟﺑرﻧﺎﻣﺞ ﺑطرﻳﻘﺔ ﺧﺎطﺋﺔ ..ﺑﺧﻼف ذﻟك ،ﻻ ﻳﻣﻛن أن ّ
ّ
ﻣﻌﻳﻧﺔ ﻏﻳر ﻣﺗﺎﺣﺔ ﺑواﺳطﺔ اﻟﺑرﻧﺎﻣﺞ.
:NotSupportedExceptionﻳﺣدث ﻋﻧدﻣﺎ ﺗﺣﺎوﻝ أداء وظﻳﻔﺔ ّ
:UnauthorizedAccessExceptionﻳﺣــدث ﻋﻧــد ﻣﺣﺎوﻟــﺔ اﻟﺗﻌﺎﻣــﻝ ﺑــدون ﺗﺻ ـرﻳﺢ ﻣــﻊ ﻋﻧﺻــر ﻣﺣﻣـ ّ
ـﻲ ﻣــن
ﻋﻧﺎﺻر اﻟﻧظﺎم.
ﺋﻳﺳﻳﺔ ،Base classﻟﻼﺳﺗﺛﻧﺎءات اﻟﺗﻲ ﺗﺣدث ﻓﻲ اﻟﺗطﺑﻳق.
اﻟﺧﻠﻳﺔ اﻟر ّ
:ApplicationExceptionﻳﻣﺛّﻝ ّ
ﻣﻌﻳن.
ﻣﻠف ّ .dll
:EntryPointNotFoundExceptionﻳﺣدث ﻋﻧدﻣﺎ ﻳﻔﺷﻝ اﺳﺗدﻋﺎء إﺣدى اﻟدواﻝ ﻣن ّ
اﻟﺧﺎﺻﺔ ﺑﺎﻟذاﻛرة:
ّ اﻻﺳﺗﺛﻧﺎءات
ﺗﺿم:
ﺗرث ﻫذﻩ اﻻﺳﺗﺛﻧﺎءات اﻻﺳﺗﺛﻧﺎء ..SystemExceptionوﻫﻲ ّ
:OutOfMemoryExceptionﻳﺣدث ﻋﻧدﻣﺎ ﻳﻌﺟز اﻟﺗطﺑﻳق ﻋن ﺣﺟز اﻟﻣﺳﺎﺣﺔ اﻟﻣطﻠوﺑﺔ ﻓﻲ اﻟذاﻛرة.
اﻟﻣﺧﺻﺻﺔ ﻟـﻪ ـ ﻓـﻲ
ّ اﻟرﺻﺔ stack
ّ :StackOverflowExceptionﻳﺣدث ﻋﻧدﻣﺎ ﻳﺳﺗﻧﻔد اﻟﺑرﻧﺎﻣﺞ ﻛ ّﻝ ﻣﺳﺎﺣﺔ
ﺟﻳدا.
اﻟﻐﺎﻟب ﺑﺳﺑب إﺟراء ارﺗدادي Recursive Procedureﻏﻳر ﻣﻛﺗوب ّ
اﻟﺧﺎﺻــﺔ ﺑﺎﻟﺗﻌﺎﻣــﻝ ﻣــﻊ اﻟﻛﺎﺋﻧــﺎت :ﺗــرث ﻫــذﻩ اﻻﺳــﺗﺛﻧﺎءات اﻻﺳــﺗﺛﻧﺎء ..SystemExceptionوﻫــﻲ
ّ اﻻﺳــﺗﺛﻧﺎءات
ﺗﺿم:
ّ
ﻋﻣﻠﻳــﺔ ﺗﺣوﻳــﻝ ﻏﻳــر ﻣﻣﻛﻧــﺔ ﺑــﻳن ﻧــوﻋﻳن ﻣــن اﻟﻛﺎﺋﻧــﺎت
:InvalidCastExceptionﻳﺣــدث ﺣﻳﻧﻣــﺎ ﺗﺣــﺎوﻝ إﺟ ـراء ّ
.Invalid conversion of types
:NullReferenceExceptionﻳﺣــدث ﻋﻧــدﻣﺎ ﺗﺣــﺎوﻝ أن ﺗﺗﻌﺎﻣــﻝ ﻣــﻊ وﺳــﻳﻠﺔ ﻏﻳــر ﻣﺷــﺗرﻛﺔ ،Non_shared
اﻟﺧﻠﻳﺔ.
أي ﻧﺳﺧﺔ Instanceﻣن ّﺑﻳﻧﻣﺎ اﻟﻛﺎﺋن ﻳﺷﻳر إﻟﻰ اﻟﻘﻳﻣﺔ ،Nothingﺑﻣﻌﻧﻰ ّأﻧﻪ ﻻ ﻳﺷﻳر إﻟﻰ ّ
ﻣﺣﻣﻠﺔ .Unloaded class :TypeUnloadedExceptionﻳﺣدث ﻋﻧد ﻣﺣﺎوﻟﺔ اﻟﺗﻌﺎﻣﻝ ﻣﻊ ّ
ﺧﻠﻳﺔ ﻏﻳر ّ
:TypeInitializationExceptionﻳﺣدث ﻋﻧد ﺣدوث ﺧطﺊ ﻓﻲ ﺣدث إﻧﺷﺎء اﻟﻛﺎﺋن .New
ﺋﻳﺳﻳﺔ ﻟﻼﺳﺗﺛﻧﺎء .ObjectDisposedException
اﻟﺧﻠﻳﺔ اﻟر ّ
:InvalidOperationExceptionﻫذﻩ ﻫﻲ ّ
ﺗم اﻟﺗﺧﻠّص ﻣﻧﻪ .Disposed
:ObjectDisposedExceptionﻳﺣدث ﻋﻧد ﻣﺣﺎوﻟﺔ اﺳﺗﺧدام ﻛﺎﺋن ّ
اﻟﺧﺎﺻﺔ ﺑﺎﻟﻣﺻﻔوﻓﺎت:
ّ اﻻﺳﺗﺛﻧﺎءات
ﺗﺿم:
ﺗرث ﻫذﻩ اﻻﺳﺗﺛﻧﺎءات اﻻﺳﺗﺛﻧﺎء ..SystemExceptionوﻫﻲ ّ
:ArrayTypeMismatchExceptionﻳﺣــدث ﻋﻧــدﻣﺎ ﺗﺣــﺎوﻝ وﺿــﻊ ﻗﻳﻣــﺔ ﻣــن ﻧــوع ﻏﻳــر ﻣﻧﺎﺳــب ﻓــﻲ إﺣــدى
ﺧﺎﻧﺎت اﻟﻣﺻﻔوﻓﺔ.
اﻟﺣﺳﺎﺑﻳﺔ:
ّ ﺑﺎﻟﻌﻣﻠﻳﺎت
ّ اﻟﺧﺎﺻﺔ
ّ اﻻﺳﺗﺛﻧﺎءات
ﺗﺿم:
ﺗرث ﻫذﻩ اﻻﺳﺗﺛﻧﺎءات اﻻﺳﺗﺛﻧﺎء ..SystemExceptionوﻫﻲ ّ
ـﺎﺑﻳﺔ ،ﺣﻳ ــث ﻳﺣ ــدث ﻫ ــذا اﻻﺳ ــﺗﺛﻧﺎء ﻋﻧ ــد
اﻟﺧﻠﻳ ــﺔ اﻟرﺋﻳﺳ ـ ّـﻳﺔ ﻟﻼﺳ ــﺗﺛﻧﺎءات اﻟﺣﺳ ـ ّ
:ArithmeticExceptionﻳﻣﺛّ ــﻝ ّ
اﻟﺧﻠﻳﺔ.
اﻟﺣﺳﺎﺑﻳﺔ ﻫذﻩ ّ
ّ ﺣﺳﺎﺑﻲ ..وﺗرث ﺑﺎﻗﻲ اﻻﺳﺗﺛﻧﺎءات
ّ أي ﺧطﺈ
ﺣدوث ّ
أن ﻗﺳــﻣﺔ
ـددا ﺻــﺣﻳﺣﺎ Integerﻋﻠــﻰ ﺻــﻔر ..ﻻﺣــظ ّ
:DivideByZeroExceptionﻳﺣــدث ﻋﻧــدﻣﺎ ﺗﻘﺳــم ﻋـ ً
اﻷﻋداد اﻟﻌﺷرّﻳﺔ ﻋﻠﻰ ﺻﻔر ﻻ ﺗرﻣﻲ ﻫذا اﻻﺳﺗﺛﻧﺎء ،ﺑﻝ ﻳﻧﺗﺞ ﻋﻧﻬﺎ اﻟﻘﻳﻣﺔ "ﻣﺎ ﻻ ﻧﻬﺎﻳﺔ".
:NotFiniteNumberExceptionﻳﺣــدث ﻋﻧــدﻣﺎ ﺗﺣــﺎوﻝ اﺳــﺗﺧدام رﻗــم ﻏﻳــر ﺻــﺎﻟﺢ ) ﻣــﺎ ﻻ ﻧﻬﺎﻳــﺔ اﻟﻣوﺟﺑــﺔ
ـﺎﺑﻳﺔ ﺗﺗطﻠّــب
ﻋﻣﻠﻳــﺔ ﺣﺳـ ّ
،PositiveInfinityﻣــﺎ ﻻ ﻧﻬﺎﻳــﺔ اﻟﺳــﺎﻟﺑﺔ ،NegativeInfinityﻟــﻳس رﻗﻣــﺎ (NaNﻓــﻲ ّ
رﻗﻣﺎ ﻣﻘﺑوﻻ.
اﻟرﻗﻣﻳﺔ اﻟﻣﺳﻣوح ﺑﻬﺎ.
ّ ﻣﻌﻳﻧﺔ ،اﻟﺣدود
ﺣﺳﺎﺑﻳﺔ ّ
ّ ﻋﻣﻠﻳﺔ
:OverflowExceptionﻳﺣدث ﻋﻧدﻣﺎ ﻳﺗﺟﺎوز ﻧﺎﺗﺞ ّ
ﻣﻠﺣق ٢
اﻟﻌد اﻟﺛﻧﺎﺋﻲ:
ﻧظﺎم ّ
ﻣﻔﻬوﻣﻪ:
أن ﻫــذا اﻟﻧظــﺎم ﻟــم ﻳﻛــن ﻓطرًّﻳــﺎ ﻛﻣــﺎ ﻻ ﺑـ ّـد
ي ﻫــو اﻟﻧظــﺎم اﻟوﺣﻳــد اﻟــذي ﻳﻣﻛــن اﺳــﺗﺧداﻣﻪ ﻟﻠﻌـ ّـد ،ﻛﻣــﺎ ّ
ﻟــﻳس اﻟﻧظــﺎم اﻟﻌﺷــر ّ
ـﻲ، ﺗﺗﺧﻳــﻝ ..ﻓﻣــﺛﻼ ،ﻛﺎﻧــت ﺣﺿــﺎرة اﻟﻌـراق اﻟﻘدﻳﻣــﺔ ﺗﺳــﺗﺧدم اﻟﻧظــﺎم اﻟﺳــﺗﻳﻧﻲ ﻟﻠﻌـ ّـد ،وذﻟــك ﻟﻣﻼءﻣﺗــﻪ ﻟﻠﻧظــﺎم اﻟﻔﻠﻛـ ّ و ّأﻧــك ّ
ﻣﺳﺗﺧدﻣﺎ ﺣﺗّﻰ اﻟﻳ ِ
ـوم ﻓـﻲ ﻗﻳـﺎس اﻟزواﻳـﺎ ،ﻓﺎﻟدرﺟـﺔ ﺗﺳـﺎوي ٦٠دﻗﻳﻘـﺔ واﻟدﻗﻳﻘـﺔ ﺗﺳـﺎوي ٦٠ﺛﺎﻧﻳـﺔ ،ﻛﻣـﺎ ّأﻧﻧـﺎ ً وﻫو ﻣﺎ زاﻝ
ﻳوﻣﻳﺎ ﻓﻲ ﻗﻳﺎس اﻟوﻗت ،ﻓﺎﻟﺳﺎﻋﺔ أﻳﺿﺎ ﺗﺳﺎوي ٦٠دﻗﻳﻘﺔ واﻟدﻗﻳﻘﺔ ﺗﺳـﺎوي ٦٠ ﻳﻧﻲ ّاﻟﻧظﺎم اﻟﺳﺗّ ّ
َ ﺟﻣﻳﻌﺎ ﻣﺎ زﻟﻧﺎ ﻧﺳﺗﺧدم
أن اﻟﻌﻼﻗــﺔ ﺑــﻳن اﻟﻣواﻗﻳــت وﻧظــﺎم اﻟﻔﻠــك ﻫــﻲ ﻋﻼﻗــﺔ
ﺛﺎﻧﻳــﺔ ،وذﻟــك ﻻرﺗﺑــﺎط اﻟزواﻳــﺎ واﻟوﻗــت ﺑﺣرﻛــﺔ اﻷﻓــﻼك )ﻻﺣــظ ّ
ﻣﺗوﻗّﻌﺔ ،ﻓﻧﺣن ﻧﻘﻳس اﻟوﻗت ﺗﺑﻌﺎ ﻟﺣرﻛﺔ اﻷرض ﺣوﻝ ﻧﻔﺳﻬﺎ وﺣوﻝ اﻟﺷﻣس( .وﻛﻘﺎﻋدة :ﻳﻣﻛﻧك اﺑﺗداع أي ﻧظـﺎم ﻋ ّـد
ﺗرﻳــدﻩ ،ﺣﺗّــﻰ وﻟــو ﻛــﺎن اﻟﻧظــﺎم اﻟﻣﺋــوي أو اﻷﻟﻔــﻲ ،وﻟﻛـ ّـن اﻟﻣﺷــﻛﻠﺔ اﻟﺗــﻲ ﺳــﺗواﺟﻬك ﻫــﻲ :ﻣــن أﻳــن ﺗــﺄﺗﻲ ﺑرﻣــوز ﻟﻬــذا
ي ،ﻧﺳــﺗﺧدم ﻋﺷ ـرة رﻣــوز ﻛﺄرﻗــﺎم ) ، (٩ ، ...... ،٢ ،١ ،٠ﺑﺣﻳــث اﻟﻧظــﺎم ﻻﺳــﺗﺧداﻣﻬﺎ ﻛﺄرﻗــﺎم؟ ﻓﻔــﻲ اﻟﻧظــﺎم اﻟﻌﺷــر ّ
ﻧﻬﺎﺋﻳ ــﺔ ﻣﻧﻬ ــﺎ ﺑﺗوﻟﻳﻔﻬ ــﺎ ﻣﻌ ــﺎ ،ﻣﺛ ــﻝ ..٦٤٩٨٦٣ ،٧٦٣٨ ،١٢٣إﻟ ــﺦ) .ﻛ ــﺎن ﻟﻠ ــوح اﻟﺣﺳ ــﺎب ﻳﻣﻛ ــن ﺗوﻟﻳ ــد أﻋ ــداد ﻻ ّ
ﻗﻧﻧ ـوا ﻗواﻋــد ﻫــذا اﻟﻧظــﺎم
ـﻳﻧﻲ اﻟﻔﺿــﻝ ﻓــﻲ اﺑﺗــداع ﻫــذا اﻟﻧظــﺎم ،وﻋــﻧﻬم ﻧﻘﻠــﻪ اﻟﻬﻧــود ،وﻋــﻧﻬم أﺧــذﻩ اﻟﻌــرب ﺣﻳــث ّ
اﻟﺻـ ّ
رﻣز ﻟﻠﺻﻔر( .وﻓﻲ ﻫذا اﻟﻧظـﺎم أﻳﺿـﺎ ،ﻳﻛﺗﺳـب اﻟـرﻗم ﻗﻳﻣﺗـﻪ ً
ﺗﺑﻌـﺎ ﻟﻠﺧﺎﻧـﺔ اﻟﺗـﻲ ﻳوﺟـد ﻓﻳﻬـﺎ ،ﻓﻔـﻲ ﺧﺎﻧـﺔ اﻵﺣـﺎد واﺑﺗﻛروا ًا
ﺗﻛون ﻗﻳﻣﺗﻪ ﻛﻣﺎ ﻫﻲ ،وﻓﻲ ﺧﺎﻧﺔ اﻟﻌﺷرات ﺗﻛون ﻗﻳﻣﺗﻪ ﻣﺿروﺑﺔ ﻓـﻲ ،١٠وﻓـﻲ ﺧﺎﻧـﺔ اﻟﻣﺋـﺎت ﺗﻛـون ﻗﻳﻣﺗـﻪ ﻣﺿـروﺑﺔ
ﻓﻲ . ،١٠٠
ﻷﻧـﻪ ﻓـﻲ ﺧﺎﻧـﺔ اﻟﻌﺷـرات( ١٠٠ ×١) ١٠٠ +
ﻓﻣﺛﻼ :اﻟﻌدد ١١١ﻫو ﻋﺑﺎرة ﻋـن ) ١ﻓـﻲ اﻵﺣـﺎد( ّ ١٠ × ١) ١٠ +
أن اﻟرﻗم واﺣد ﻗد اﺧﺗﻠﻔت ﻗﻳﻣﺗﻪ ﻋﻠﻰ ﺣﺳب ﻣوﺿﻌﻪ ﻓﻲ اﻟﻌدد.
ﻷﻧﻪ ﻓﻲ ﺧﺎﻧﺔ اﻟﻣﺋﺎت( ..وﻫﻛذا ﺗرى ّ
ّ
ﻋﺎﻣﺔ:
إن ﻟﻬذﻩ اﻟﺣﻘﻳﻘﺔ ﺻﻳﻐ ًﺔ ّّ
ﻓﺈن ﻗﻳﻣﺗﻪ "ق" ﺑﺎﻟﻧﺳﺑﺔ ﻟﻣوﻗﻌﻪ "م" ﻓﻲ اﻟﻌدد ﻫﻲ:
ي ،ﻟو ﻛﺎن ﻟدﻳك رﻗم "ر"ّ ،
ﻓﻲ اﻟﻧظﺎم اﻟﻌﺷر ّ
ق = ر × ) ١٠م .(١-
ـﻲء ﺑﺎﻟﻧﺳ ِ
ـﺑﺔ ﻟﻠﻛﻣﺑﻳـوﺗر اﻟﻛﻣﺑﻳوﺗر ﻫو أن ﻳﻧظر ﻓﻲ ﺟداوﻝ اﻟﺗﺣوﻳﻝ اﻟﻣﻧﺎﺳﺑﺔ ،وﻳﻌرض ﻟﻧﺎ اﻟﻘﻳﻣﺔ اﻟﻧﺎظرة ..إن ﻛـ ّﻝ ﺷ ٍ
ّ
اﻟﻣﺟردة اﻟﺗﻲ ﻳﺗﻌﺎﻣﻝ ﻣﻌﻬﺎ ،ﻳﻣﻛن أن ﺗﻔﻌﻝ ﻛ ّﻝ ﺷﻲء ..اﻟﻣﻬم :ﻫو اﻟزاوﻳﺔ اﻟﺗﻲ ﺗﻧظر ﻟﻬﺎ ﻣﻧﻬﺎ.
ّ ﻧﺳﺑﻲ ،ﻓﺎﻷرﻗﺎم
ّ
اﻟﺣﺳﺎﺑﻳﺔ:
ّ اﻟﻌﻣﻠﻳﺎت
ّ
أن اﻷﻣـر ﻓـﻲ ﻣﻧﺗﻬـﻰ اﻟﺑﺳـﺎطﺔ ،ﻓﺄﻧـت ﺗﺟﻣـﻊ رﻗﻣـﻲ اﻟﺛﻧﺎﺋﻳـﺔ ،ﻓﺳـﺗﺟد ّ
ّ ﻟو ﺣﺎوﻟـت إﺟـراء ﻋﻣﻠﻳـﺎت اﻟﺟﻣـﻊ ﻋﻠـﻰ اﻷﻋـداد
ﺧــﺎﻧﺗﻲ اﻵﺣ ــﺎد ﻓ ــﻲ اﻟﻌ ــددﻳن ،وﺗﺣﻣ ــﻝ ﻣﻌ ــك اﻟﺑ ــﺎﻗﻲ ﻟﺗﺟﻣﻌ ــﻪ ﻋﻠ ــﻰ ﻧ ــﺎﺗﺞ ﺟﻣ ــﻊ رﻗﻣ ــﻲ ﺧ ــﺎﻧﺗﻲ اﻟﺛﻧﺎﺋﻳ ــﺎت ،ﺛ ــم ﺧ ــﺎﻧﺗﻲ
يٕ ،وان ﻛﻧت ﻫﻧﺎ ﺳﺗﺻﺎدف ﺛﻼث ﺣﺎﻻت ﻓﺣﺳب:
اﻟرﺑﺎﻋﻳﺎت ،وﻫﻛذا .. ...ﻧﻔس ﻣﺎ ﺗﻔﻌﻠﻪ ﻓﻲ اﻟﻧظﺎم اﻟﻌﺷر ّ
-١أن ﻳﻛون اﻟرﻗﻣﺎن ﺻﻔرﻳن ،ﻓﻳﻛون ﻣﺟﻣوﻋﻬﻣﺎ ﺻﻔرا.
-٢أن ﻳﻛون أﺣد اﻟرﻗﻣﻳن ١واﻵﺧر ﺻﻔرا ،ﻓﻳﻛون ﻣﺟﻣوﻋﻬﻣﺎ .١
-٣أن ﻳﻛون ﻛﻼ اﻟرﻗﻣﻳن ،١ﻓﻳﻛون ﻣﺟﻣوﻋﻬﻣﺎ ،٠واﻟﺑﺎﻗﻲ واﺣد.
طﺑﻌـﺎ اﻟﺣﺎﻟـﺔ اﻷﺧﻳـرة ﻫـﻲ اﻟﺗــﻲ ﺳـﺗُرﺑﻛك ..ﻧﻔــس ﻣـﺎ ﺣـدث ﻟــك ﻋﻧـدﻣﺎ ﺗﻌﻠّﻣــت أن ﺟﻣـﻊ ٠ = ١ + ٩واﻟﺑــﺎﻗﻲ ) ١أي
= ) ..٢(١٠ﻛـﻝ ﻣـﺎ ﻳﺣـدث ﻫـو ّأﻧـك ﻋﻧـدﻣﺎ ﺗﺗﺟـﺎوز أﻗﺻـﻰ رﻗـم ﻓـﻲ اﻟﻧظـﺎم )٩ )١٠(٢
ﻓﺈن = ١+١ ..(١٠ﺑﺎﻟﻣﺛﻝّ ،
ﻓﻲ اﻟﻌﺷري ،و ١ﻓﻲ اﻟﺛﻧﺎﺋﻲ( ،ﺗﻧﺗﻘﻝ إﻟﻰ اﻟﺧﺎﻧﺔ اﻟﺗﺎﻟﻳﺔ وﻣﻌك اﻟﺑﺎﻗﻲ!
ﻓﻠﻧر ﻣﺛﺎﻻ ﻟﻠﺟﻣﻊ:
َ
١٠٠٠١١١
١١٠٠ +
ـــ
١٠١٠٠١١
ـﺎﺑﻳﺔ ،ﻛـﺎﻟطرح واﻟﺿـرب واﻟﻘﺳـﻣﺔ ،ﻓﻬـﻲ ﻛﻣـﺎ ﻗﻠﻧـﺎ ،ﻣﻣﺎﺛﻠـﺔ ﺗﻣﺎﻣـﺎ ﻟﻣﺛﻳﻼﺗﻬـﺎ
وﺑﺎﻟﻣﺛﻝ ،ﻳﻣﻛن إﺟـراء ﺑـﺎﻗﻲ اﻟﻌﻣﻠﻳـﺎت اﻟﺣﺳ ّ
ﻷن اﻟﺗطﺑﻳﻘــﺎت اﻟﺗــﻲ ﺗﺑﻧﻳﻬــﺎ ﻻ ﺗﺳــﺗﺧدم اﻟﺣﺳــﺎﺑﺎت
ـﺎﺑﻳﺔّ ،
وﻟﻛﻧﻧــﺎ ﻟــن ﻧرّﻛــز ﻋﻠــﻰ اﻟﻌﻣﻠﻳــﺎت اﻟﺣﺳـ ّ
يّ . ﻓــﻲ اﻟﻧظــﺎم اﻟﻌﺷــر ّ
اﻟﻣﻧطﻘﻳ ــﺔ ،ﻓﻛﺛﻳـ ـ ار ﻣ ــﺎ ﺳ ــﺗﺣﺗﺎﺟﻬﺎ ﻓ ــﻲ
ّ اﻟﻌﻣﻠﻳ ــﺎت
ّ ﻳﻬﻣﻧ ــﺎ ﻫﻧ ــﺎ ﻫ ــو
إن اﻟ ــذي ّ
يّ .
اﻟﺛﻧﺎﺋﻳ ــﺔٕ ،واّﻧﻣ ــﺎ ﺗﺳ ــﺗﺧدم اﻟﻧظ ــﺎم اﻟﻌﺷ ــر ّ
ّ
ﺑراﻣﺟك.
اﻟﻣﻧطﻘﻳﺔ
ّ اﻟﻌﻣﻠﻳﺎت
ّ
"ﻟﻳس" :NOT
اﻟﻣﺗﻐﻳر اﻟذي ﺗُﺟـرى ﻋﻠﻳـﻪ ،ﻣـن ﺻـواب ﻟﺧطـﺈ واﻟﻌﻛـس..
ّ اﻟﻌﻣﻠﻳﺔ ﺗﻌﻛس ﻗﻳﻣﺔ
ّ ﻓﺈن ﻫذﻩ
اﻟﻣﻧطﻘﻳﺔّ ،
ّ ﻟﻠﻣﺗﻐﻳرات
ّ ﺑﺎﻟﻧﺳﺑﺔ
واﻟﺟﻣﻠﺔ اﻟﺗﺎﻟﻳﺔ ﺗُرﻳك ﻣﺛﺎﻻ ﻟﻬذا:
Failure = Not Failure
وﻫﻲ طرﻳﻘﺔ ﻣﺧﺗﺻرة ﻟﻠطرﻳﻘﺔ اﻟﺗﺎﻟﻳﺔ:
If Failure = True Then
Failure = False
Else
Failure = True
End If
اﻟﺛﻧﺎﺋﻳﺔ؟
ّ وﻟﻛن ﻣﺎذا ﻋن اﺳﺗﺧدام ANDﻣﻊ اﻷﻋداد
اﻟﻌﻣﻠﻳﺔ ﻋﻧد ﺗطﺑﻳﻘﻬﺎ ﻋﻠﻰ ﺧﺎﻧﺗﻳن:
ّ ﻳوﺿﺢ ﻟﻧﺎ وظﻳﻔﺔ ﻫذﻩ
اﻟﺟدوﻝ اﻵﺗﻲ ّ
أوب ب أ
٠ ٠ ٠
Department of Computer Science College of Science for Women
10
Windows Programming Asst. Prof. Ali Kadhum Idrees
أن ﻧﺎﺗﺞ ﻋﻣﻠﻳﺔ "و" ﻋﻠـﻰ رﻗﻣـﻳن ﻓـﻲ ﺧـﺎﻧﺗﻳن ﻣﺗﻧـﺎظرﺗﻳن ﻣـن ﻋـددﻳن ،ﻫـو ﺻـﻔر داﺋﻣـﺎ ،إﻻ إذا ﻛـﺎن ﻛـﻼ اﻟـرﻗﻣﻳن
أي ّ
ﺟرب ﻫذا اﻟﻣﺛﺎﻝ:
ﻣﻌﺎ ّ ..١
Dim A As Byte = 5 , B As Byte = 34
)MsgBox (A AND B
ﻓﻲ اﻟﺑداﻳﺔ ﺗﻌﺎﻝ ﻧﺣوﻝ اﻟﻌددﻳن ﻟﻠﻧظﺎم اﻟﺛﻧﺎﺋﻲ:
.٢(٠٠٠٠٠١٠١) = ٥
= ٥ ٢ × ١ + ٤ ٢ × ٠ + ٣ ٢ × ٠ + ٢ ٢ × ٠ + ١ ٢ × ١ + ٠ ٢ × ٠ = ٣٢ + ٢ = ٣٤
).٢(٠٠١٠٠٠١٠
اﻷوﻝ ﻓ ــﻲ اﻟﺧــﺎﻧﺗﻳن اﻷوﻟ ــﻰ واﻟﺛﺎﻟﺛ ــﺔ ﻓﻘــط ،ﺑﻳﻧﻣ ــﺎ ﻳﻧ ــﺎظرﻩ اﻟــرﻗم ٠ﻓ ــﻲ ﻫ ــﺎﺗﻳن
أن اﻟ ــرﻗم ا ﻣوﺟ ــود ﻓــﻲ اﻟﻌ ــدد ّ
ﺗﻼﺣــظ ّ
اﻟﺧــﺎﻧﺗﻳن ﻓــﻲ اﻟﻌــدد اﻟﺛــﺎﻧﻲ ..إذن ﻛــﻝ اﻟﺧﺎﻧــﺎت اﻟﻧﺎﺗﺟــﺔ ﻋــن ﻋﻣﻠﻳــﺔ "و" ﺳــﺗﻛون أﺻــﻔﺎرا ..ﻟﻬــذا ﺳــﺗظﻬر ﻟــك اﻟرﺳــﺎﻟﺔ
وﻋﻠﻳﻬﺎ اﻟرﻗم .٠
اﻟﻌﻣﻠﻳﺔ:
ّ أﻫم ﺧواص ﻫذﻩ
و ّ
-١أ و أ = أ.
- ٢أ و .٠ = ٠
-٣أ و = ١أ.
-٤أ و ﻟﻳس أ = ) ٠ﻻ ﻳﻣﻛن أن ﻳﺟﺗﻣﻊ اﻟﺷﻲء وﻋﻛﺳﻪ ..ﻫذا ﺷرط ﺧﺎطﺊ داﺋﻣﺎ(.
"أو" :OR
اﻷوﻝ )أو( اﻟﺛـﺎﻧﻲ )أو( ﻛﻠﻳﻬﻣـﺎ
ﻣﻧطﻘﻳﻳن ،ﻟﻠﺗﺄ ّﻛد ﻣن ﺣدوث أﺣدﻫﻣﺎ ﻋﻠـﻰ اﻷﻗـﻝّ :
ّ ﻣﺗﻐﻳرﻳن
ّ ﺗﺳﺗﺧدم ﻫذﻩ اﻟﻌﻣﻠﻳﺔ ﻣﻊ
اﻟﻣﺛﺎﻝ ﻟﻠﺗوﺿﻳﺢ:
َ ﻣﻌﺎ ..ﺧذ ﻫذا
If ReadOnly Or Hidden Then
)"ﻻ ﻳﻣﻛن ﻓﺗﺢ اﻟﻣﻠف إذا ﻛﺎن ﻟﻠﻘراءة ﻓﻘط أو ُﻣﺧﻔﻰ"(MsgBox
اﻟﻣﻠف ﻟﻳس ﻣﺧﻔﻰ وﻟﻳس ﻟﻠﻘراءة ﻓﻘط ' Else
} اﻟﻛود اﻟﻣﻧﺎﺳب ﻟﻔﺗﺢ اﻟﻣﻠف {
End If
ـف إذا ﻟـــم ﻳﻛــن )ﻟﻠﻘــراءة ﻓﻘــط ،أو
وﻳﻣﻛــن إﻳﺟــﺎد ﺻــﻳﻐﺔ أﺧــرى ﻟﻠﻛــود اﻟﺳــﺎﺑق ،ﺑﺎﺳــﺗﺧدام ،NOTﻓﻧﻘــوم ﺑﻔــﺗﺢ اﻟﻣﻠـ ّ
ﻣﺧﻔﻰ(:
If Not (ReadOnly or Hidden) Then
} اﻟﻛود اﻟﻣﻧﺎﺳب ﻟﻔﺗﺢ اﻟﻣﻠف {
Else
)"ﻻ ﻳﻣﻛن ﻓﺗﺢ اﻟﻣﻠف إذا ﻛﺎن ﻟﻠﻘراءة ﻓﻘط أو ُﻣﺧﻔﻰ"(MsgBox
End If
أن اﻟﻧﻔﻲ ﻳﺷﻣﻝ ﻧـﺎﺗﺞ ﻛـﻝ ﻣـﺎ ﺑـﻳن اﻟﻘوﺳـﻳن ،ﻓﻣـﺛﻼ ﻟـو ﻛـﺎن اﻟﻣﻠـف ﻟﻠﻘـراءة ﻓﻘـط ،ReadOnly = Trueﻟﻛـﺎن
ﻻﺣظ ّ
ـﺗم
ـﺎﺋﻲ ..Falseإذن ﻓﻠـن ﻳ ّ
ﻧﺎﺗﺞ ﻋﻣﻠﻳﺔ "أو" ﻫـو ،Trueﺣﻳـث ﺳـﺗﺗم ﻋﻠﻳـﻪ ﻋﻣﻠﻳـﺔ اﻟﻧﻔـﻲ ،NOTﻟﻳﺻـﺑﺢ اﻟﻧـﺎﺗﺞ اﻟﻧﻬ ّ
ﻷن اﻟﺷــرط ﺧطــﺄ ،وﺳــﻳﻧﻔّذ اﻟﺑرﻧــﺎﻣﺞ اﻟﺣﺎﻟــﺔ اﻷﺧــرى .Elseوﻣــﺎ ازﻟــت ﻫﻧــﺎك طرﻳﻘــﺔ ﺛﺎﻟﺛــﺔ ﻟﺗﻧﻔﻳــذﺗﻧﻔﻳــذ ﺟﻣﻠــﺔ اﻟﺷــرطّ ،
ﺣدي ﻋﻣﻠﻳﺔ Orﻣﻊ ﻋﻛس اﻟﻣﻌﺎﻣـﻝ Orﻧﻔﺳـﻪ.. ك اﻟﻘوس ،ﺑﺈدﺧﺎﻝ NOTﻋﻠﻰ ّ ﻧﻔس اﻟﺑرﻧﺎﻣﺞ ،ﺣﻳث ﻳﻣﻛﻧﻧﺎ أن ﻧﻔ ّ
ﺗﻌﺎﻝ ﻧﺳﺗﻧﺗﺟﻬﺎ:
وﻟﻛن ﻣﺎ ﻫو ﻋﻛس Or؟َ ..
ﻟو ﻗﻠت :ﻟم ﻳﺄت )ﻣﺣﻣد أو أﺣﻣد( ،ﻓﺄﻧت ﺗﻌﻧﻲ أن اﻻﺛﻧﻳن ﻣﻌﺎ ﻟم ﻳﺄﺗﻳـﺎ ﺑﻌـد ..وﻳﻣﻛـن أن ﺗﻘـوﻝ ﻫـذﻩ اﻟﺟﻣﻠـﺔ ﺑطرﻳﻘـﺔ
أن ﻧﻔﻲ ANDﻫو .Or ِ
أﺧري ﻛﺎﻟﺗﺎﻟﻲ :ﻟم ﻳﺄت ﻣﺣﻣد و ﻟم ﻳﺄت أﺣﻣد .إذن ﻓﻧﻔﻲ ORﻫو ،ANDﻛﻣﺎ ّ
إذن :ﻟﻳس )ﻟﻠﻘراءة ﻓﻘط أو ﻣﺧﻔﻰ( = ﻟﻳس ﻟﻠﻘراءة ﻓﻘط وﻟﻳس ﻣﺧﻔﻰ:
If Not ReadOnly And Not Hidden Then
} اﻟﻛود اﻟﻣﻧﺎﺳب ﻟﻔﺗﺢ اﻟﻣﻠف {
Else
)"ﻻ ﻳﻣﻛن ﻓﺗﺢ اﻟﻣﻠف إذا ﻛﺎن ﻟﻠﻘراءة ﻓﻘط أو ُﻣﺧﻔﻰ"(MsgBox
End If
اﻟﺛﻧﺎﺋﻳﺔ؟
ّ وﻟﻛن ﻣﺎذا ﻋن اﺳﺗﺧدام ORﻣﻊ اﻷﻋداد
اﻟﻌﻣﻠﻳﺔ ﻋﻧد ﺗطﺑﻳﻘﻬﺎ ﻋﻠﻰ ﺧﺎﻧﺗﻳن:
ّ ﻳوﺿﺢ ﻟﻧﺎ وظﻳﻔﺔ ﻫذﻩ
اﻟﺟدوﻝ اﻵﺗﻲ ّ
أ أو ب ب أ
٠ ٠ ٠
١ ٠ ١
١ ١ ٠
١ ١ ١
أن ﻧﺎﺗﺞ ﻋﻣﻠﻳﺔ "أو" ﻋﻠﻰ رﻗﻣﻳن ﻓﻲ ﺧﺎﻧﺗﻳن ﻣﺗﻧﺎظرﺗﻳن ﻣن ﻋـددﻳن ،ﻫـو ١داﺋﻣـﺎ ،إﻻ إذا ﻛـﺎن ﻛـﻼ اﻟـرﻗﻣﻳن ﻣﻌـﺎ
أي ّ
ﺟرب ﻫذا اﻟﻣﺛﺎﻝ:
ﺻﻔراّ ..
Dim A As Byte = 5 , B As Byte = 34
)MsgBox (A Or B
.٢(٠٠٠٠٠١٠١) = ٥
.٢(٠٠١٠٠٠١٠) = ٣٤
واﻟﻧﺎﺗﺞ = ).٣٩ = ٣٢ +٤ + ٢ + ١ = ٢(٠٠١٠٠١١١
وﻫو اﻟرﻗم اﻟذي ﺳﻳﻌرﺿﻪ ﻟك اﻟرﺳﺎﻟﺔ.
ﺗﻼﺣــظ أن اﻟﻧــﺎﺗﺞ ..٣٤ + ٥ = ٣٩ﻻ ﺗﺟﻌــﻝ ذﻟــك ﻳﺧــدﻋك ،ﻓﻌﻣﻠﻳــﺔ "أو" ﻟﻳﺳــت ﻋﻣﻠﻳــﺔ ﺟﻣــﻊ ،واﻟــذي ﺟﻌﻠﻬــﺎ ﺗﺑــدو
أن ﻣوﺿﻊ اﻟرﻗم ١ﻏﻳر ﻣﺗﻧﺎظر ﻓﻲ اﻟﻌددﻳن ،وﻟو ﻧﻔّذت اﻟﻛود اﻟﺗﺎﻟﻲ ﻟﻔﻬﻣت ﻣﺎ أﻋﻧﻳﻪ:
ﻛذﻟك ﻫﻧﺎ ،ﻫو ّ
Dim A As Byte = 6 , B As Byte = 34
)MsgBox (A OR B
أن ﻧﺎﺗﺞ ﺟﻣﻊ ) (٣٤ + ٦ﻫو .٤٠ ﺣﻳث ﺳﺗﺟد أن اﻟرﺳﺎﻟﺔ ﺗﻌرض ﻟك اﻟرﻗم ،٣٨ﺑﻳﻧﻣﺎ ّ
اﻟﻌﻣﻠﻳﺔ:
ّ أﻫم ﺧواص ﻫذﻩو ّ
ا -أ أو أ = أ.
-٢أ أو = ٠أ.
اﻟﻌﻣﻠﻳﺔ:
ّ أﻫم ﺧواص ﻫذﻩ
و ّ
-١أ XORأ = .٠
-٢أ = ٠ XORأ.
).(A XOR 1 = NOT A -٣أ = ١ XORﻟﻳس أ
-٤أ XORﻟﻳس أ = .١
وﺑﻬــذﻩ اﻟطرﻳﻘــﺔ ،ﺳــﺗﺟد ّأﻧــك ﺗﺳــﺗطﻳﻊ ﺗــﺄﻟﻳف ٨أﻗﻧﻌــﺔ ﻓﻘــط ،ﺗﻌﺑــر ﺑﻬــﺎ ﻋــن ﻏﻳــﺎب ﻛــﻝ طﺎﻟــب ﻣــن اﻟطﻠﺑــﺔ ..ﺣــﺎوﻝ أن
أن اﻟـرﻗم )٢(١١١٠١١١١ ﺗﻛوﻳن ﻫذﻩ اﻷﻗﻧﻌﺔ ..وﻳﻣﻛﻧك ﺗﺳﻬﻳﻝ اﻷﻣـر ﻋﻠـﻰ ﻧﻔﺳـك ،ﻟـو ﻻﺣظـت ّ ِ ﻧﻔﺳك ﻋﻠﻰ ﺗدرب َ ّ
أن ﺑﺎﺳﺗطﺎﻋﺗك اﻟﺗﻌﺑﻳر ﻋن اﻟﻛود اﻟﺳﺎﺑق ﻛﺎﻟﺗﺎﻟﻲ:
ﻫو ﻣﻌﻛوس اﻟرﻗم )) ٢(٠٠٠١٠٠٠٠أي ..١٦ﻣﻌﻧﻰ ﻫذا ّ
)Students = Students And (Not 16
١-٥
ﺗﻌﺑر اﻟﺟﻣﻠﺔ اﻟﺗﺎﻟﻳﺔ ﻋن ﻏﻳﺎب اﻟطﺎﻟب رﻗم :N
وﻟو ﻻﺣظت أن ، (٢) = ١٦ﻓﻳﻣﻛﻧك أن ﺗﻔﻬم ﻛﻳف ﻳﻣﻛن أن ّ
))Students = Students And (Not 2^(N-1
اﻟﻣﺗﻐﻳر Nوﻣﻧﺣﻪ ﻗﻳﻣﺔ أوﻻ.
ّ ﻳﺟب ﻋﻠﻳك ﺗﻌرﻳف
وطﺑﻌﺎ ُ
ﻗﺎﻋدة:
ـﻔرا ،دون ﺗﻐﻳﻳــر ﺑـﺎﻗﻲ ﺧﺎﻧـﺎت اﻟﻌـدد ..وﻳـﺗم ﺗﻛوﻳﻧــﻪ
اﺳـﺗﺧدم ﻗﻧـﺎع Andﻟﺟﻌـﻝ ﻗﻳﻣـﺔ ﺧﺎﻧــﺔ أو أﻛﺛـر ﻓـﻲ ﻋـدد ﺻ ً
ﺑوﺿﻊ ﺻﻔر ﻓﻲ اﻟﻘﻧﺎع ﻓﻲ اﻟﻣواﺿﻊ اﻟﻣﻧﺎظرة ﻟﻠﺧﺎﻧﺎت اﻟﺗﻲ ﺗرﻳد ﺗﻐﻳﻳرﻫﺎ ،ووﺿﻊ ١ﻓﻲ ﺑﺎﻗﻲ ﺧﺎﻧﺎت اﻟﻘﻧﺎع.
ﺗﻛوﻳن ﻗﻧﺎع :Or
ﻣﺗﺄﺧرا ،وﺗرﻳد إﺛﺑـﺎت ﺣﺿـورﻩ ﻣ ّـرةً
ﺳﺟﻠﺗﻪ ﻓﻲ اﻟﻐﻳﺎب ﺑﻘﻧﺎع Andﻗد ﺣﺿر ّ أن اﻟطﺎﻟب اﻟﺧﺎﻣس اﻟذي ّ اﻓﺗرض اﻵن ّ
أﺧرى ،وﻛـﺎن ﻫﻧـﺎك ﻋـدد آﺧـر ﻣـن اﻟطـﻼب اﻟﻐـﺎﺋﺑﻳن ،ﺑﺣﻳـث ﻻ ﺗرﻳـد ﺗﻐﻳﻳـر ﺑـﺎﻗﻲ ﻗـﻳم اﻟﺧﺎﻧـﺎت ..ﻓـﻲ ﻫـذﻩ اﻟﺣﻠـﺔ ﻟـن
ﻷﻧــﻪ ﻻ ُﻳﺳــﺗﺧدم إﻻ ﻟوﺿــﻊ اﻷﺻــﻔﺎر ..ﻫﻧــﺎ ﻳﻣﻛــن اﺳــﺗﺧدام ﻗﻧــﺎع ،Orﺑﺗﻛــوﻳن رﻗــم ﻛﻠــﻪ أﺻــﻔﺎر ﻳﻔﻳــدﻧﺎ ﻗﻧــﺎع ّ ،And
ﻳﻐﻳـ ــر اﻟﺧﺎﻧـ ــﺔ اﻟﻣﻧـ ــﺎظرة ﻓـ ــﻲ ﻋﻣﻠﻳـ ــﺔ ،(Orﻣـ ــﺎ ﻋـ ــدا اﻟﺧﺎﻧـ ــﺔ اﻟﺧﺎﻣﺳـ ــﺔ ﻓﺳـ ــﻧﺟﻌﻠﻬﺎ ١
)اﻟﺧﺎﺻ ـ ّـﻳﺔ اﻟﺛﺎﻧﻳـ ــﺔ :اﻟﺻـ ــﻔر ﻻ ّ
)اﻟﺧﺎﺻﻳﺔ اﻟﺛﺎﻟﺛﺔ( ..ﻓﻲ ﻫذﻩ اﻟﺣﺎﻟﺔ ﺳﻳﻛون اﻟﻘﻧﺎع ﻫو ).١٦ = ٢(٠٠٠١٠٠٠٠
ّ
Students = Students Or 16
ﻋﺎﻣﺔ ،ﻳﻣﻛﻧك ﺗﻐﻳﻳر اﻟﺧﺎﻧﺔ رﻗم Nﻟﺗﺻﺑﺢ ،١ﺑﺎﻟﺟﻣﻠﺔ اﻟﺗﺎﻟﻳﺔ:
وﺑﺻورة ّ
)Students = Students Or 2^(N-1
ﻗﺎﻋدة:
اﺳﺗﺧدم ﻗﻧﺎع Orﻟوﺿﻊ ﺧﺎﻧـﺔ أو أﻛﺛـر ﻓـﻲ ﻋـدد ﺑواﺣـد ،دون ﺗﻐﻳﻳـر ﺑـﺎﻗﻲ ﺧﺎﻧـﺎت اﻟﻌـدد ..وﻳـﺗم ﺗﻛوﻳﻧـﻪ ﺑوﺿـﻊ
١ﻓﻲ اﻟﻘﻧﺎع ﻓﻲ اﻟﻣواﺿﻊ اﻟﻣﻧﺎظرة ﻟﻠﺧﺎﻧﺎت اﻟﺗﻲ ﺗرﻳد ﺗﻐﻳﻳرﻫﺎ ،ووﺿﻊ ٠ﻓﻲ ﺑﺎﻗﻲ ﺧﺎﻧﺎت اﻟﻘﻧﺎع.
ﺗﻛوﻳن ﻗﻧﺎع :XOR
ﻫﺎﻣــﺎ ﺟــدا ﻣــن أﻧـواع اﻷﻗﻧﻌــﺔ ،وذﻟــك ﻓــﻲ ﺣﺎﻟــﺔ إذا ﻣــﺎ أردﻧــﺎ ﻋﻛــس ﻗﻳﻣــﺔ ﺑﻌــض اﻟﺧﺎﻧــﺎت ﻓــﻲ
ﺗﻘـ ّـدم ﻟﻧــﺎ XORﻧوﻋــﺎ ّ
ﻋدد ،دون ﺗﻐﻳﻳر ﺑﺎﻗﻲ اﻟﺧﺎﻧﺎت .اﻓرض ﻣﺛﻼ ـ ﻣـﺛﻼ ﻳﻌﻧـﻲ!! ـ ّأﻧـك ﺗرﻳـد أن ﺗﻌﺑـث ﻣـﻊ اﻟطﺎﻟـب اﻟﺧـﺎﻣس اﻟـذي أرﻫﻘﻧـﺎ
ﻣــﻊ ﻗﻧــﺎﻋﻲ Andو ،Orﻓﻘـ ّـررت أن ﺗﻌﻛــس ﺣــﺎﻻت ﺣﺿــورﻩ ﻫــذا اﻷﺳــﺑوع ﻛﻧــوٍع ﻣــن اﻟﻣﻘﺎﻟــب اﻟﺳــﺎﺧﻧﺔ ..ﻓــﻲ ﻫــذﻩ
ﻷن
اﻟﺣﺎﻟــﺔ ﺳﺗﺳــﺗﺧدم XORﻣــﻊ ﻧﻔــس ﻗﻧــﺎع ) Orﻻ ﺗــﻧس أن "أو اﻟﻣﻘﺻــورة" XORﻫــﻲ ﺣﺎﻟــﺔ ﺧﺎﺻــﺔ ﻣــن ّ ،(Or
اﻟﺧﺎﻧﺔ اﻟﺗﻲ ﺑﻬﺎ واﺣد ﻓﻲ اﻟﻘﻧـﺎع ﺗﻌﻛـس ﻗﻳﻣـﺔ اﻟﺧﺎﻧـﺔ اﻟﺗـﻲ ﺗﻧﺎظرﻫـﺎ ﻓـﻲ اﻟﻌـدد ،ﺑﻳﻧﻣـﺎ ﻻ ﺗـؤﺛّر اﻟﺧﺎﻧـﺔ اﻟﺗـﻲ ﺑﻬـﺎ ﺻـﻔر
ﻓﻳﻣﺎ ﻳﻧﺎظرﻫﺎ ﻣن ﺧﺎﻧﺎت.
Students = Students XOR 16
ﻷن
ﻷﻧﻧــﺎ اﺳــﺗﺧدﻣﻧﺎ اﻟــرﻗم ١٦ﻣ ـرﺗﻳن :ﻣ ـرة ﻣــﻊ ORوﻣ ـرة ﻣــﻊ ،XORﻓﺎﻟﻧــﺎﺗﺞ ﺳــﻳﺧﺗﻠف ﻓــﻲ اﻟﺣــﺎﻟﺗﻳنّ ،
ﻻ ﺗرﺗﺑــك ّ
ﺑﺎﻟﻌﻣﻠﻳﺔ ﻛذﻟك.
ّ اﻟﻌﺑرة ﻟﻳﺳت ﺑﺎﻟﻘﻧﺎع ﻓﻘطٕ ،واﻧﻣﺎ
ﻗﺎﻋدة:
اﺳﺗﺧدم ﻗﻧﺎع "أو اﻟﻣﻘﺻورة" XORﻟﻌﻛس ﻗﻳﻣﺔ ﺧﺎﻧﺔ أو أﻛﺛر ﻓﻲ ﻋدد ،دون ﺗﻐﻳﻳر ﺑﺎﻗﻲ ﺧﺎﻧﺎت اﻟﻌدد ..وﻳﺗم
ﺗﻛوﻳن ﻫذا اﻟﻘﻧﺎع ﺑوﺿﻊ ١ﻓﻲ اﻟﻘﻧﺎع ﻓـﻲ اﻟﺧﺎﻧـﺎت اﻟﻣﻧـﺎظرة ﻟﻠﺧﺎﻧـﺎت اﻟﺗـﻲ ﺗرﻳـد ﻋﻛﺳـﻬﺎ ﻓـﻲ اﻟﻌـدد ،ووﺿـﻊ ٠
ﻓﻲ ﺑﺎﻗﻲ ﺧﺎﻧﺎت اﻟﻘﻧﺎع.
ﻣﺷروع اﻷﻗﻧﻌﺔ:
ـف واﻟــدوران؟ ..ﻟﻣــﺎذا ﻻ أﻋـ ّـرف ٨ﻣﺗﻐﻳ ـرات :واﺣــد ﻟﻛــﻝ طﺎﻟــب ،ﺑــدﻻ ﻣــن ﻣوﺿــوع
طﺑﻌــﺎ ﺳﺗﺗﺳــﺎءﻝ :وﻟﻣــﺎذا ﻫــذا اﻟﻠـ ّ
ﺧﺎﺻـﺔ ّأﻧـك ﻟـن ﺗﺗﻌﺎﻣـﻝ ﻣـﻊ ٨طـﻼبّ اﻟﻣؤ ّﺷرات واﻷﻗﻧﻌﺔ ﻫذا؟ وﻟﻛن أﺣﻳﺎﻧﺎ ﺗﺑـدو اﻟطرﻳﻘـﺔ اﻷوﻟـﻰ أوﻓـر ﻓـﻲ اﻟﺣﺟـم،
ﻓﻘــط ﻓــﻲ ﻛ ـ ّﻝ ﻣــرة .ﻋﺎﻣ ـﺔً ،ﻫــذﻩ ﻣﺟــرد طرﻳﻘــﺔ ،ﺗﺳــﺗطﻳﻊ أن ﺗﺿــﻳﻔﻬﺎ ﻟﺳــﺟ ّﻝ ﺧﺑ ارﺗــك ،وﻫــﻲ ﺷــﺎﺋﻌﺔ اﻻﺳـ ِ
ـﺗﺧدام ﻓــﻲ ّ ّ ّ
اﻟﺑرﻣﺟــﺔ ،وﺳــﺗﻘﺎﺑﻠك ﻛﺛﻳـ ًـرا .ﻓﻣ ـﺛﻼ ،ﻋﻧــد اﻟﺗﻌﺎﻣـ ِـﻝ ﻣــﻊ اﻟﻣﻠﻔّــﺎت ،ﻫﻧــﺎك ﺧﺎﺻـ ّـﻳﺔ اﺳــﻣﻬﺎ ،GetAttributesﺗﻌﻳــد ﻟــك
ـف ﻗـد
أن اﻟﻣﻠ ّ
ـﻲ ...Normalإﻟـﺦ ..(.اﻟﻣﺷـﻛﻠﺔ ّ اﻟﻣﻠف )ﻟﻠﻘراءة ﻓﻘـط ،ReadOnlyﻣﺧﻔـﻰ ،Hiddenطﺑﻳﻌ ّ ّ ﺳﻣﺎت
وﺧﻔﻳــﺎ ..ﻓﻛﻳــف إذن ﻳﻣﻛــن اﻟﺗﻌﺑﻳــر ﻋــن ﻛ ـ ّﻝ ﻫــذﻩ
ـون ﻟﻠﻘ ـراءة ﻓﻘــط ّ
ﻳﻣﺗﻠــك أﻛﺛــر ﻣــن ﺳــﻣﺔ ﻓــﻲ ﻧﻔــس اﻟوﻗــت ،ﻛــﺄن ﻳﻛـ َ
ـﺎﻝ ﻧــرى ﺑﻌــض اﻟﻛــود ،واﻟــذي ﺳــﺗﺟدﻩ
اﻟﺳــﻣﺎت ﺑﺧﺎﺻـ ّـﻳﺔ واﺣــدة؟ ..آﻩ ..ﻓﻬﻣـت! ..ﺳﻧﺳــﺗﺧدم اﻟﻣؤ ّﺷـرات واﻷﻗﻧﻌــﺔ .ﺗﻌـ َ
ﻣﺷــروﺣﺎ ﺑﺎﻟﺗﻔﺻــﻳﻝ ﻓــﻲ اﻟﻔﺻــﻝ اﻟﻌﺎﺷــر "اﻟﻣﻠﻔّــﺎت" .ﻓــﻲ اﻟﺑداﻳــﺔ ﻳﺟــب أن ﺗﻛﺗــب ﺟﻣﻠــﺔ اﻻﺳــﺗﻳراد اﻟﺗﺎﻟﻳــﺔ ﻓــﻲ أﻗﺻــﻰ
ﺑداﻳﺔ ﻛود اﻟﻧﻣوذج ،ﻗﺑﻝ ﺟﻣﻠﺔ ﺗﻌرﻳف اﻟﻧﻣوذج ﻧﻔﺳﻪ:
Imports System.IO
اﻟﻣﻠف ":"C:\boot.ini ّ ﺗﻌﺎﻝ ﻧﻘ أر ﺳﻣﺎت
واﻵن َ
)"Dim FA As FileAttributes = File.GetAttributes("C:\boot.ini
)MsgBox(FA.ToString
ـﻲ
إن اﻟﻛــود اﻟﺗــﺎﻟﻲ ﻳﺳــﺗﺧدم ﻗﻧــﺎع ANDﻟﻠــﺗﺧﻠّص ﻣــن ﺳــﻣﺔ ﺧﻔـ ّ
ـﺎﻝ ﻧــرى اﺳــﺗﺧداﻣﺎ ﻟﻛ ـ ّﻝ ﻧــوع ﻣــن اﻷﻗﻧﻌــﺔّ :
ﺛـ ّـم ﺗﻌـ َ
اﻟﻣﻠف ﻗﺎﺑﻼ ﻟﻠﻘراءة واﻟﻛﺗﺎﺑﺔ ..ﻻﺣظ ّأﻧﻧﺎ ﻟن ﻧﺳﺗﺧدم اﻷرﻗـﺎم ﻣﺑﺎﺷـرةً ،ﺑـﻝ ﺳﻧﺳـﺗﻔﻳد ﻣـن اﻟﻣرﻗّﻣـﺎت،
ّ ،Hiddenوﻳﻌﻳد
اﻟﺗﻲ ﺗﺟﻌﻝ اﻟﻛود واﺿﺣﺎ وﻣﻔﻬوﻣﺎ:
)FA = FA And (Not FileAttributes.Hidden
)MsgBox(FA.ToString
اﻟﻣﻠف:
ّ واﻟﻛود اﻟﺗﺎﻟﻲ ﻳﺿﻳف ﺳﻣﺔ ﻟﻠﻘراءة ﻓﻘط ﻟﺳﻣﺎت
FA = FA Or FileAttributes.ReadOnly
)MsgBox(FA.ToString
ﻣرة أﺧرى ﻟﺗﻌود ﻟﺣﺎﻟﺗﻬﺎ اﻷوﻟﻰ: ﺛم ﻳﻌﻛﺳﻬﺎ ّ أﻣﺎ اﻟﻛود اﻟﺗﺎﻟﻲ ﻓﻳﻌﻛس ﺣﺎﻟﺔ اﻟﺳﻣﺔ ّ System ّ
FA = FA XOr FileAttributes.System
)MsgBox(FA.ToString
FA = FA XOr FileAttributes.System
)MsgBox(FA.ToString
وﻳﻣﻛﻧك ﺗﺟرﺑﺔ ﻫذا اﻟﻛود ﻓﻲ ﺗطﺑﻳق Maskingﻓﻲ ﻣﺟﻠّد ﺑراﻣﺞ ﻫذا اﻟﻣﻠﺣق.
ﻣﻠﺣق ٣
اﻟرﻳﺎﺿﻳﺔ
ّ اﻟدوا ّﻝ
اﻟرﻳﺎﺿﻳﺎت :Math
ّ ﺧﻠﻳﺔ
ّ
اﺋﻳﺔ:
ﺗوﻟﻳد اﻷﻋداد اﻟﻌﺷو ّ
اﻟرﻳﺎﺿﻳﺎت :Math
ّ ﺧﻠﻳﺔ
ّ
اﻟﺧﻠﻳﺔ ﻋﻠﻰ اﻟﺻﻳﻐﺔ اﻟﺗﺎﻟﻳﺔ:
ﺗﻌرﻳﻔﻬﺎ واﺳﺗﺧداﻣﻬﺎ :ﺗﺳﺗﺧدم ﻫذﻩ ّ
)اﻟﻣﻌﺎﻣﻼت(اﺳم اﻟداﻟﺔ = Math.اﻟﻧﺎﺗﺞ
Department of Computer Science College of Science for Women
16
Windows Programming Asst. Prof. Ali Kadhum Idrees
ﻣﺛﺎﻝ:
Dim X As Integer = 10
Dim Y As Integer = 5
ﺳﺗﻌرض اﻟرﺳﺎﻟﺔ اﻟرﻗم MsgBox (Math.Max(X,Y)) ' ١٠
اﻷﺳﺎﺳﻳﺔ:
ّ اﻟدوا ّﻝ
ﺗﺳﺗﻘﺑﻝ ﻋددﻳن ،وﺗﻌﻳد أﻛﺑرﻫﻣﺎ. أﻛﺑر ﻋدد Max
ﺗﺳﺗﻘﺑﻝ ﻋددﻳن ،وﺗﻌﻳد أﺻﻐرﻫﻣﺎ. أﺻﻐر ﻋدد Min
ﻓﺈﻧﻬـﺎ ﺗﻌﻳـد
ﺗﻌﻳد رﻗﻣﺎ ﺻﺣﻳﺣﺎ أﻛﺑرﻣن أو ﻳﺳﺎوي اﻟرﻗم اﻟﻣرﺳﻝ ﻟﻬﺎ ..ﻓﻣﺛﻼ ﻟـو أرﺳـﻠت ﻟﻬـﺎ ّ ٥ أﻛﺑر ﻋدد ﺻﺣﻳﺢ
ﻓﺈﻧﻬﺎ ﺗﻌﻳد .٦
،٥وﻟو أرﺳﻠت ﻟﻬﺎ ّ ٥.١
Ceiling
ﻣﻣﺎﺛﻠﺔ ﻟﻠداﻟﺔ ،Intﺣﻳث ﺗﻌﻳد رﻗﻣﺎ ﺻﺣﻳﺣﺎ أﺻـﻐر ﻣـن أو ﻳﺳـﺎوي اﻟـرﻗم اﻟﻣرﺳـﻝ ﻟﻬـﺎ ..ﻓﻣـﺛﻼ أﺻﻐر ﻋدد ﺻﺣﻳﺢ
ﻓﺈﻧﻬﺎ ﺗﻌﻳد ٥أﻳﺿﺎ.
ﻓﺈﻧﻬﺎ ﺗﻌﻳد ،٥وﻟو أرﺳﻠت ﻟﻬﺎ ّ ٥.١
ﻟو أرﺳﻠت ﻟﻬﺎ ّ ٥
Floor
ﻓﺈﻧﻬـﺎ ﺗﻌﻳـد
ﻣﻘرﺑﺎ إﻟـﻰ أﻗـرب ﻋـدد ﺻـﺣﻳﺢ ..ﻓﻣـﺛﻼ ﻟـو أرﺳـﻠت ﻟﻬـﺎ ّ ٥.١
ﺗﻌﻳد اﻟرﻗم اﻟﻣرﺳﻝ ﻟﻬﺎ ّ ﺗﻘرﻳب اﻟﻌدد
ﻓﺈﻧﻬﺎ ﺗﻌﻳد .٦
،٥وﻟو أرﺳﻠت ﻟﻬﺎ ّ ٥.٥
Round
اﻷوﻝ ﻋﻠــﻰ
ﻣﻣﺎﺛﻠــﺔ ﻟﺗﻌﺑﻳــر Divﻓــﻲ ﻓﻳﺟﻳ ـواﻝ ﺑﻳزﻳــك ،ﺣﻳــث ﺗﻌﻳــد اﻟﺑــﺎﻗﻲ ﻣــن ﻗﺳــﻣﺔ اﻟﻣﻌﺎﻣــﻝ ّ ﺑﺎﻗﻲ اﻟﻘﺳﻣﺔ
اﻟﻣﻌﺎﻣﻝ اﻟﺛﺎﻧﻲ. IEEERemainder
اﺋدﻳﺔ:
ﺛﻳﺔ واﻟز ّ
اﻟدوا ّﻝ اﻟﻣﺛﻠّ ّ
ﺟﻳــب ﺗﻣــﺎم اﻟزاوﻳــﺔ ﻓــﻲ ﺣﺳــﺎب اﻟﻣﺛﻠّﺛــﺎت ،وﻫــﻲ ﻋﺑــﺎرة ﻋــن ﻧــﺎﺗﺞ ﻗﺳــﻣﺔ طــوﻝ اﻟﺿــﻠﻊ اﻟﻣﺟــﺎور ﻟﻠزاوﻳــﺔ ﺟﺗﺎ
ﻋﻠﻰ طوﻝ اﻟوﺗر ﻓﻲ اﻟﻣﺛﻠّث ﻗﺎﺋم اﻟزاوﻳﺔ. Cos
ﻋﻛس اﻟداﻟﺔ اﻟﺳﺎﺑﻘﺔ ،ﻓﻬﻲ ﺗﻌﻳد ﻟك اﻟزاوﻳﺔ إذا أرﺳﻠت ﻟﻬﺎ ﺟﺗﺎ اﻟزاوﻳﺔ. ﺟﺗﺎAcos ١-
ﺟﻳــب اﻟزاوﻳــﺔ ﻓــﻲ ﺣﺳــﺎب اﻟﻣﺛﻠّﺛــﺎت ،وﻫــﻲ ﻋﺑــﺎرة ﻋــن ﻧــﺎﺗﺞ ﻗﺳــﻣﺔ طــوﻝ اﻟﺿــﻠﻊ اﻟﻣﻘﺎﺑــﻝ ﻟﻠزاوﻳــﺔ ﻋﻠــﻰ ﺟﺎ Sin
طوﻝ اﻟوﺗر ﻓﻲ اﻟﻣﺛﻠّث ﻗﺎﺋم اﻟزاوﻳﺔ.
١-
ﻋﻛس اﻟداﻟﺔ اﻟﺳﺎﺑﻘﺔ ،ﻓﻬﻲ ﺗﻌﻳد ﻟك اﻟزاوﻳﺔ إذا أرﺳﻠت ﻟﻬﺎ ﺟﺎ اﻟزاوﻳﺔ. Asin ﺟﺎ
ظ ـ ّﻝ اﻟزاوﻳــﺔ )ﻣﻳــﻝ اﻟﻣﻣــﺎس ﻟﻠﻣﻧﺣﻧــﻰ ﻋﻧــد ﻧﻘطــﺔ ﻣﻌﻳﻧــﺔ( ﻓــﻲ ﺣﺳــﺎب اﻟﻣﺛﻠّﺛــﺎت ،وﻫــو ﻋﺑــﺎرة ﻋــن ﻧــﺎﺗﺞ ظﺎ Tan
ﻗﺳﻣﺔ:
ﺟﺎ ÷ ﺟﺗﺎ )طوﻝ اﻟﺿﻠﻊ اﻟﻣﻘﺎﺑﻝ ﻟﻠزاوﻳﺔ ÷ طوﻝ اﻟﺿﻠﻊ اﻟﻣﺟﺎور ﻟﻬﺎ ﻓﻲ اﻟﻣﺛﻠّث ﻗﺎﺋم اﻟزاوﻳﺔ(.
١-
ﻋﻛس اﻟداﻟﺔ اﻟﺳﺎﺑﻘﺔ ،ﻓﻬﻲ ﺗﻌﻳد ﻟك اﻟزاوﻳﺔ إذا أرﺳﻠت ﻟﻬﺎ ظﻝ اﻟزاوﻳﺔ. Atan ظﺎ
وﻟﻛﻧﻬــﺎ ﺗﺣﺳــب اﻟزاوﻳــﺔ ﻣــن ﻧــﺎﺗﺞ ﻗﺳــﻣﺔ اﻟــرﻗﻣﻳن اﻟﻣرﺳــﻠﻳن ﻟﻬــﺎ ..ﻫــذا اﻟرﻗﻣــﺎن ﻗــد
ﻣﺛــﻝ اﻟداﻟــﺔ اﻟﺳــﺎﺑﻘﺔّ ،
Atan2
ـﺎس ،أو ﻳﻣـﺛﻼن ﺟـﺎ وﺟﺗـﺎ ،أو اﻷﻓﻘﻲ ﻟﻠﻧﻘطﺔ اﻟﺗﻲ ﻧﺣﺳـب ﻋﻧـدﻫﺎ ﻣﻳـﻝ اﻟﻣﻣ ّ أﺳﻲ و ّ اﻹﺣداﺛﻳﻳن اﻟر ّ
ّ ﻳﻣﺛّﻼن
ﻳﻣﺛّﻼن طوﻟﻲ اﻟﺿﻠﻌﻳن اﻟﻣﻘﺎﺑﻝ واﻟﻣﺟﺎور ﻟﻠزاوﻳﺔ ﻓﻲ اﻟﻣﺛﻠّث.
ـﺗم ﺑﻬــذﻩ
اﺋدﻳــﺔ ) ..Hyperbolic Cosإذا ﻟــم ﺗﻛــن ﺿــﻠﻳﻌﺎ ﺑﺎﻟرﻳﺎﺿــﻳﺎت ،ﻓــﻼ ﺗﻬـ ّ
ﺟﻳــب ﺗﻣــﺎم اﻟزاوﻳــﺔ اﻟز ّ
Cosh
اﺋدﻳﺔ(.
اﻟدواﻝ اﻟز ّ
اﺋدﻳﺔ .Hyperbolic Sin
ﺟﻳب اﻟزاوﻳﺔ اﻟز ّ
Sinh
اﻟﺛواﺑت:
ﻳﺎﺿﻳﺎت ﻋﻠﻰ ﺛﺎﺑﺗﻳن ،ﻫﻣﺎ:
ﺧﻠﻳﺔ اﻟر ّ
ﺗﺣﺗوي ّ
[1]١
. ﻓﺈن ﻗﻳﻣﺗﻪ ﺗﺳﺎوي ﺗﻘرﻳﺑﺎ ٢.٧٢
اﻟطﺑﻳﻌﻲ :Eوﻛﻣﺎ ذﻛرﻧﺎ ّ
ّ اﻷﺳﺎس
اﻟﺗﻘرﻳﺑﻳﺔ "ط" :PIاﻟﻧﺳﺑﺔ ﺑﻳن ﻣﺣﻳط اﻟداﺋرة وطوﻝ ﻗطرﻫﺎ ،وﺗﺳﺎوي ﺗﻘرﻳﺑﺎ ) (٧ ÷ ٢٢أو .٣.١٤
ّ اﻟﻧﺳﺑﺔ
اﺋﻳﺔ:
ﺗوﻟﻳد اﻷﻋداد اﻟﻌﺷو ّ
-١ﺑﺎﺳﺗﺧدام دواﻝ :VB
اﺋﻳﺔ:
ﻫﺎﻣﺗﻳن ﻟﺗوﻟﻳد اﻷﻋداد اﻟﻌﺷو ّ
ﻳﻣﻧﺣك VBداﻟﺗﻳن ّ