Professional Documents
Culture Documents
المحور الثاني
المحور الثاني
ﻣﺪﺧﻞ ﻟﻠﺨﻮارزﻣﯿﺎت
اﻷھﺪاف اﻟﺘﻌﻠﯿﻤﯿﺔ:
1
...........................
3. ................................................................................................ اﻟﻤﻘﺪﻣﺔ I.
......................
................................
3 II.ﻟﻐﺔ اﻟﺒﺮﻣﺠﺔ )(LANGAGE DE PROGRAMMATION
...........................
4. ................................................................................................ .IIIﺗﻌﺮﯾﻔﺎت
................................
.............
4 ................................ ﻗﻮاﻋﺪ اﻟﺼﯿﺎﻏﺔ )(les règles de syntaxe .1
..........................
4................................................................ اﻟﻤﻔﺮدات )(le vocabulaires .2
.............................
...
4 ................................................................ دﻻﻻت )(la sémantique .3
..................
................................
4 ................................................................ .IVأﺻﻨﺎف ﻟﻐﺔ اﻟﺒﺮﻣﺠﺔ
.........................
................................
4 ................................ ﺗﺼﻨﯿﻒ ﺣﺴﺐ ﻗﺮﺑﮭﺎ ﻣﻦ ﻟﻐﺔ اﻹﻧﺴﺎن .1
..................
................................
4 ................................ ( bas niveau ) اﻟﻤﺴﺘﻮى ﻣﻨﺨﻔﻀﺔ ﻟﻐﺔ . أ
....................
................................
4 ................................ ﻟﻐﺔ ﻋﺎﻟﯿﺔ اﻟﻤﺴﺘﻮى )(haut niveau ب.
............................
5.. ................................................................ ﺗﺼﻨﯿﻒ ﺣﺴﺐ طﺮﯾﻘﺔ ﺗﻨﻔﯿﺬھﺎ .2
......................
................................
5 ................................ اﻟﻤﺘﺮﺟﻢ اﻟﻤﺤﻮل )(Compilateur أ.
.......................
................................
5 ................................ اﻟﻤﺘﺮﺟﻢ اﻟﻤﻔﺴﺮ ) (Interpréteur ب.
.............................
...
5 ................................ ﺗﺼﻨﯿﻒ ﺣﺴﺐ طﺮﯾﻘﺔ ﺑﻨﺎء اﻟﺒﺮﻧﺎﻣﺞ )( paradigme .3
................................
........
5 ................................ ﻟﻐﺎت إﺟﺮاﺋﯿﺔ )(impératif ou procédural أ.
.......................
................................
5 ﻟﻐﺎت ﺷﯿﺌﯿﺔ أو اﻟﻤﻮﺟﮭﺔ ﻟﻠﻜﺎﺋﻦ )"( orienté objet "OOP ب.
6
................................
.......... ................................................................ ﺗﺼﻨﯿﻒ ﺣﺴﺐ وظﯿﻔﺘﮭﺎ .4
........................
................................
6 ................................ إﻧﺸﺎء وﺗﻄﻮﯾﺮ اﻟﻤﻮاﻗﻊ اﻹﻟﻜﺘﺮوﻧﯿﺔ أ.
.....................
................................
6 ................................ ﻛﺘﺎﺑﺔ وﺗﻄﻮﯾﺮ اﻟﺒﺮاﻣﺞ وﯾﻮﺟﺪ ﻧﻮﻋﺎن ب.
................................
......
7 ................................................................ .Vاﻟﻤﻔﺎھﯿﻢ اﻟﻤﺸﺘﺮﻛﺔ ﺑﯿﻦ اﻟﻠﻐﺎت
................................
.......
7 ................................................................ اﻟﺘﻌﻠﯿﻤﺔ)(instruction .1
................................
..............
7 ................................................................ ﻣﺘﻐﯿﺮ)(variable .2
................................
..............
7 ................................................................ ﺛﺎﺑﺖ)(constante .3
7
.......................
................................ ................................................................ ﻧﻮع)(type .4
................................
...............
7 ................................ ھﯿﻜﻞ اﻟﺒﯿﺎﻧﺎت)(structure de données .5
................................
.......
7 ................................................................ ﺗﺼﺮﯾﺢ)(déclaration .6
................................
........
7 اﻹﺟﺮاءات واﻟﻮظﺎﺋﻒ واﻷﺳﺎﻟﯿﺐ)(procédure, fonction, méthode .7
................................
............
8 ................................................................ اﻟﻮﺣﺪات)(module .8
8
...................
................................ ................................................................ .VIﻛﯿﻔﯿﺔ ﻛﺘﺎﺑﺔ ﺑﺮﻧﺎﻣﺞ
................
................................
8 ................................................................ ﺗﻌﺮﯾﻒ ﺑﺎﻹﺷﻜﺎﻟﯿﺔ .1
...................
................................
8 ................................................................ ﺗﺤﻠﯿﻞ اﻹﺷﻜﺎﻟﯿﺔ .2
.................
................................
8 ................................................................ ﻛﺘﺎﺑﺔ اﻟﺨﻮارزﻣﯿﺔ .3
....................
................................
9 ................................................................ ﻛﺘﺎﺑﺔ اﻟﺒﺮﻧﺎﻣﺞ .4
...................
................................
10 ................................................................ ﺗﻨﻔﯿﺬ اﻟﺒﺮﻧﺎﻣﺞ .5
.........................
................................
11 ................................................................ .VIIاﻟﺨﻮارزﻣﯿﺎت
................................
..............
11 ................................................................ أﻧﻮاع اﻟﺨﻮارزﻣﯿﺔ .1
............................
11 ................................................................ اﻟﺨﻮارزﻣﯿﺔ ﻏﯿﺮ اﻟﺤﺴﺎﺑﯿﺔ أ.
11
................................
...... ................................................................ اﻟﺨﻮارزﻣﯿﺔ اﻟﺤﺴﺎﺑﯿﺔ ب.
................................
.......
11 ................................................................ طﺮق ﻛﺘﺎﺑﺔ اﻟﺨﻮارزﻣﯿﺔ .2
..........................
................................
12 ................................................................ ﺑﯿﺎﻧﯿﺎ أ.
....................
................................
12 ................................ اﻟﺸﻔﺮة اﻟﻮﺻﻔﯿﺔ )(Pseudo-code ب.
................................
...............
13 ................................................................ ﻛﻠﻔﺔ اﻟﺨﻮارزﻣﯿﺔ .3
................................
.....
13 ................................................................ اﻟﺒﻨﯿﺔ اﻟﻌﺎﻣﺔ ﻟﻠﺨﻮارزﻣﯿﺔ .4
................................
.........
13 ................................................................ ﺧﺼﺎﺋﺺ اﻟﺨﻮارزﻣﯿﺔ .5
............................
14 ................................................................................................ .IXاﻟﺨﺎﺗﻤﺔ
2
اﻟﻤﺤﻮر اﻟﺜﺎﻧﻲ :ﻣﺪﺧﻞ ﻟﻠﺨﻮارزﻣﯿﺎت
اﻟﻤﻘﺪﻣﺔ .I
ﻛﻤﺎ رأﯾﻨﺎ ﺳﺎﺑﻘﺎ ﻟﻼﺳﺘﻐﻼل اﻟﺤﺎﺳﻮب أو ﺗﻜﻠﯿﻔﮫ ﺑﻌﻤﻞ ﻣﻌﯿﻦ ،ﯾﺠﺐ اﺳﺘﻌﻤﺎل اﻟﺒﺮاﻣﺞ .ﻟﻜﻲ ﯾﻨﻔﺬ اﻟﺤﺎﺳﻮب ھﺬا
اﻟﺒﺮﻧﺎﻣﺞ ﯾﺠﺐ ﻛﺘﺎﺑﺔ اﻟﺘﻌﻠﯿﻤﺎت ﺑﻠﻐﺔ اﻵﻟﺔ ) .(la langage machineھﻨﺎ ﺗﻜﻤﻦ اﻟﺼﻌﻮﺑﺔ ﺑﺤﯿﺚ أن ﻟﻐﺔ
اﻵﻟﺔ ھﻲ ﻟﻐﺔ ﺛﻨﺎﺋﯿﺔ ) 0 ) (langage binaireو (1ﻻ ﯾﺴﺘﻄﯿﻊ اﻹﻧﺴﺎن اﺳﺘﻌﻤﺎﻟﮭﺎ ﺑﺴﮭﻮﻟﺔ ﻟﺪى اﺣﺘﺎج
اﻹﻧﺴﺎن ﻟﻤﺘﺮﺟﻢ ﻟﯿﻜﻮن وﺳﯿﻄﺎ ﺑﯿﻦ اﻹﻧﺴﺎن و اﻟﺤﺎﺳﻮب ،ﻣﻦ ھﻨﺎ ظﮭﺮت ﻟﻐﺎت اﻟﺒﺮﻣﺠﺔ اﻟﻘﺮﯾﺒﺔ ﻣﻦ ﻟﻐﺔ
اﻹﻧﺴﺎن أو ﺑﺄﺻﺢ اﻷﻗﺮب ﻣﻦ اﻟﻠﻐﺔ اﻹﻧﺠﻠﯿﺰﯾﺔ .وھﺬه ﻟﻐﺎت اﻟﺒﺮﻣﺠﺔ ﻋﺪﯾﺪة وﻣﺘﻨﻮﻋﺔ.
ﻓﻲ ھﺬا اﻟﻤﺤﻮر ﺳﻮف ﻧﻌﺮف ﻣﻔﮭﻮم ﻟﻐﺔ اﻟﺒﺮﻣﺠﺔ وﻧﻌﺮض أﻧﻮاﻋﮭﺎ وﻧﺘﻌﺮف ﻋﻠﻰ أﺳﺎﺳﯿﺎت اﻟﺒﺮﻣﺠﺔ ﻣﻦ
ﺧﻼل ﺗﻌﻠﻢ اﻟﺨﻮارزﻣﯿﺎت.
ﺣﺎﻟﯿﺎ ﯾﻮﺟﺪ اﻵﻻف ﻣﻦ ﻟﻐﺎت اﻟﺒﺮﻣﺠﺔ ﻟﻜﻞ ﻣﻨﮭﺎ ﺧﺼﺎﺋﺺ ﺗﻤﯿﺰھﺎ وﺗﺠﻌﻠﮭﺎ ﻣﻨﺎﺳﺒﺔ ﻟﻨﻮع ﻣﻌﯿﻦ ﻣﻦ اﻟﺒﺮاﻣﺞ.
تﺗﻌﺎﻣﻞ ﻣﻊ ﻛﻤﺎ أن ﻟﻠﻐﺎت اﻟﺒﺮﻣﺠﺔ أﯾﻀﺎ ﺧﺼﺎﺋﺺ ﻣﺸﺘﺮﻛﺔ و ﺣﺪود ﻣﺸﺘﺮﻛﺔ ﺑﺤﻜﻢ أن ﻛﻞ ھﺬه اﻟﻠﻐﺎت
اﻟﺤﺎﺳﻮب .وﺗﺘﻄﻮر اﻟﺒﺮﻣﺠﺔ ﻣﻊ ﺗﻄﻮر اﻟﺤﺎﺳﻮب ﻣﻦ ﺣﯿﺚ ﻗﺪرة اﻟﻤﻌﺎﻟﺞ و ﺳﻌﺔ اﻟﺘﺨﺰﯾﻦ ﻓﻲ اﻟﺬاﻛﺮة اﻟﺤﯿﺔ.
وﺗﺘﻤﺜﻞ ﺧﺼﺎﺋﺺ ﻟﻐﺔ اﻟﺒﺮﻣﺠﺔ ﻓﻲ ﻣﺎ ﯾﻠﻲ:
3
اﻟﻤﺤﻮر اﻟﺜﺎﻧﻲ :ﻣﺪﺧﻞ ﻟﻠﺨﻮارزﻣﯿﺎت
ﺗﻌﺮﯾﻔﺎت .III
ﻣﺤﺪد ،واﻟﺘﻲ ﺗﺸﻤﻞ اﻟﺮﻣﻮز واﻟﻘﻮاﻋﺪ اﻟﻨﺤﻮﯾﺔ ،واﻟﺘﻲ ﺗﺮﺗﺒﻂ ﺑﺎﻟﻘﻮاﻋﺪ ﯾﺘﻢ إﻧﺸﺎء ﻟﻐﺔ ﺑﺮﻣﺠﺔ ﻣﻦ ﻗﻮاﻋﺪ
اﻟﺪﻻﻟﯿﺔ .ھﺬه اﻟﻌﻨﺎﺻﺮ أﻛﺜﺮ أو أﻗﻞ ﺗﻌﻘﯿﺪًا اﻋﺘﻤﺎدًا ﻋﻠﻰ ﻗﺪرة اﻟﻠﻐﺔ.
ﺑﺮﻧﺎﻣﺞ ﻣﻮﺟﻮد ﻓﻲ اﻟﻤﻜﺘﺒﺔ أو اﺳﺘﻌﻤﺎﻟﮫ دون اﻟﺤﺎﺟﺔ ﻹﻋﺎدة ﻛﺘﺎﺑﺘﮫ .وأﯾﻀﺎ ﯾﻮﻓﺮ ھﺬا اﻟﻨﻮع ﻣﻦ اﻟﻠﻐﺎت
ھﯿﺎﻛﻞ ﺑﯿﺎﻧﺎت ﻣﺘﻌﺪدة ﺗﺴﻤﺢ ﺑﺘﻤﺜﯿﻞ اﻟﺒﯿﺎﻧﺎت ﺑﻄﺮﯾﻖ أﺳﺮع وأوﺿﺢ.
5
اﻟﻤﺤﻮر اﻟﺜﺎﻧﻲ :ﻣﺪﺧﻞ ﻟﻠﺨﻮارزﻣﯿﺎت
ﻣﺎ .ﯾﻤﻜﻦ أن ﺗﻜﻮن اﻟﻤﺘﻐﯿﺮات ﺧﺎﺻﺔ ،أي أﻧﮫ ﻻ ﯾﻤﻜﻦ اﻟﺘﻼﻋﺐ ﺑﮭﺎ إﻻ ﻋﻦ طﺮﯾﻖ اﻟﻜﺎﺋﻦ اﻟﺬي ﯾﺤﺘﻮي
ﻋﻠﯿﮭﺎ .الﻛﺎﺋﻦ ﯾﺤﺘﻮي ﺿﻤﻨﯿًﺎ ﻋﻠﻰ ﻣﺘﻐﯿﺮات ووظﺎﺋﻒ أﺳﻼﻓﮫ ،وھﺬا الﺗﻮارث ﯾﺴﺎﻋﺪ ﻋﻠﻰ إﻋﺎدة اﺳﺘﺨﺪام
الوظﺎﺋﻒ .ﯾﺘﯿﺢ اﻟﻨﻤﻮذج اﻟﻤﻮﺟﮫ ﻟﻠﻜﺎﺋﻦ إﻣﻜﺎﻧﯿﺔ رﺑﻂ اﻟﺒﯿﺎﻧﺎت ﺑﺎﻹﺟﺮاءات ﺑﻘﻮة.
ﻓﻲ اﻟﺠﺪول اﻟﺘﺎﻟﻲ ﺳﻮف ﻧﺼﻨﻒ اﻟﻠﻐﺎت اﻷﻛﺜﺮ اﻧﺘﺸﺎرا ﺣﺴﺐ اﻟﻤﻌﺎﯾﯿﺮ ﺳﺎﺑﻘﺔ اﻟﺬﻛﺮ.
6
اﻟﻤﺤﻮر اﻟﺜﺎﻧﻲ :ﻣﺪﺧﻞ ﻟﻠﺨﻮارزﻣﯿﺎت
.1اﻟﺘﻌﻠﯿﻤﺔ)(instruction
أﻣﺮ ﯾﻌﻄﻰ ﻟﻠﺤﺎﺳﻮب.
.2ﻣﺘﻐﯿﺮ)(variable
اﺳﻢ يﺳﺘﺨﺪم ﻓﻲ الﺑﺮﻧﺎﻣﺞ ﻟﻺﺷﺎرة إﻟﻰ اﻟﺒﯿﺎﻧﺎت اﻟﺘﻲ ﯾﺴﺘﺨﺪﻣﮭﺎ اﻟﺒﺮﻧﺎﻣﺞ.
.3ﺛﺎﺑﺖ)(constante
اﺳﻢ ﯾﺴﺘﺨﺪم ﻟﻺﺷﺎرة إﻟﻰ ﻗﯿﻤﺔ داﺋﻤﺔ.
.4ﻧﻮع)(type
ھﺎ اﻟﺜﺎﻧﻲ ﻟﻜﻞ اﻟﺒﯿﺎﻧﺎت ﺗﺼﻨﯿﻒ ﯾﺆﺛﺮ ﻋﻠﻰ ﻧﻄﺎق اﻟﻘﯿﻢ اﻟﻤﺤﺘﻤﻠﺔ واﻟﻌﻤﻠﯿﺎت اﻟﺘﻲ ﯾﻤﻜﻦ إﺟﺮاؤھﺎ وﺗﻤﺜﯿﻞ
) .(codage binaireتﻗﺪم ﻛﻞ ﻟﻐﺔ ﺑﺮﻣﺠﺔ ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻷﻧﻮاع اﻟﺒﺪاﺋﯿﺔ ،اﻟﻤﻀﻤﻨﺔ ﻓﻲ اﻟﻠﻐﺔ .وھﻨﺎك ﺑﻌﺾ
اﻟﻠﻐﺎت ﺗﻮﻓﺮ إﻣﻜﺎﻧﯿﺔ إﻧﺸﺎء أﻧﻮاع ﺟﺪﯾﺪة .أﻧﻮاع اﻟﺒﯿﺎﻧﺎت اﻷوﻟﯿﺔ اﻟﺸﺎﺋﻌﺔ ھﻲ اﻷﻋﺪاد اﻟﺼﺤﯿﺤﺔ واﻷرﻗﺎم
اﻟﺤﻘﯿﻘﯿﺔ والﻣﻨﻄﻘﯿﺔ والﺳﻠﺴﺔ اﻟﺤﺮوف واﻟﻤﺆﺷﺮات.
.6ﺗﺼﺮﯾﺢ)(déclaration
ﻋﺒﺎرات ﺗﺴﺘﺨﺪم ﻓﻲ ﺑﺮﻧﺎﻣﺞ ﻹﻋﻼم اﻟﻤﺘﺮﺟﻢ )م ﺣﻮل ،م ﻓﺴﺮ( بأﺳﻤﺎء وﺧﺼﺎﺋﺺ ﻋﻨﺎﺻﺮ اﻟﺒﺮﻧﺎﻣﺞ ﻣﺜﻞ
اﻟﻤﺘﻐﯿﺮات واﻹﺟﺮاءات واﻷﻧﻮاع ...
7
اﻟﻤﺤﻮر اﻟﺜﺎﻧﻲ :ﻣﺪﺧﻞ ﻟﻠﺨﻮارزﻣﯿﺎت
.8اﻟﻮﺣﺪات)(module
ﻀﺎ إﻣﻜﺎﻧﯿﺔ ﻗﻄﻊ ﺑﺮﻧﺎﻣﺞ إﻟﻰ ﻋﺪة أﺟﺰاء ﺗﺴﻤﻰ اﻟﻮﺣﺪات ،ﻛﻞ ﻣﻨﮭﺎ ﻟﮫ دور
ﯾﻤﻜﻦ أن ﺗﻮﻓﺮ ﻟﻐﺎت اﻟﺒﺮﻣﺠﺔ أﯾ ً
ﻣﺤﺪد ﺛﻢ ﯾﺠﻤﻊ ﺑﯿﻦ اﻷﺟﺰاء.
ﺗﮭﺪف ﻣﻔﺎھﯿﻢ اﻹﺟﺮاء واﻟﻮﺣﺪة إﻟﻰ ﺗﺴﮭﯿﻞ إﻧﺸﺎء ﺑﺮاﻣﺞ ﻣﻌﻘﺪة وﻛﺒﯿﺮة.
.1ﺗﻌﺮﯾﻒ ﺑﺎﻹﺷﻜﺎﻟﯿﺔ
ﺗﺤﺪﯾﺪ ﺟﻤﯿﻊ اﻟﻤﻌﻠﻮﻣﺎت اﻟﻤﺘﺎﺣﺔ و اﻟﻨﺘﺎﺋﺞ اﻟﻤﺮﺟﻮة.
اﻟﻤﻌﻠﻮﻣﺎت اﻟﻤﺘﺎﺣﺔ ھﻲ ﻋﺪد ﺻﺤﯿﺢ و اﻟﻨﺘﺎﺋﺞ اﻟﻤﻨﺘﻈﺮة ﻗﺎﺋﻤﺔ ﻗﻮاﺳﻢ ھﺬا اﻟﻌﺪد
.2ﺗﺤﻠﯿﻞ اﻹﺷﻜﺎﻟﯿﺔ
إﯾﺠﺎد طﺮﯾﻘﺔ لتﻧﻘﻞ ﻣﻦ الﻣﻌﻄﯿﺎت إﻟﻰ اﻟﻨﺘﺎﺋﺞ أي ﺗﺤﺪﯾﺪ اﻟﺨﻄﻮات اﻟﻼزم اﻟﺘﻲ ﺗﺴﺘﻌﻤﻞ اﻟﻤﻌﻄﯿﺎت اﻟﻤﺘﺎﺣﺔ
ﻟﻠﻮﺻﻮل إﻟﻰ اﻟﻨﺘﺎﺋﺞ اﻟﻤﻨﺘﻈﺮة .ﻓﻲ ﺑﻌﺾ اﻟﺤﺎﻻت ،ﻗﺪ ﯾﻀﻄﺮ اﻟﻤﺮء إﻟﻰ إﺟﺮاء دراﺳﺔ ﻧﻈﺮﯾﺔ.
ﻣﺜﻞ:
.3ﻛﺘﺎﺑﺔ اﻟﺨﻮارزﻣﯿﺔ
ﺗﺒﺴﯿﻂ ﺧﻄﻮات اﻟﺤﻞ أﻛﺜﺮ ﻣﻦ ﺧﻼل اﺳﺘﻌﻤﺎل اﻟﺨﻮارزﻣﯿﺎت .اﻟﺨﻮارزﻣﯿﺔ ھﻲ ﺳﻠﺴﻠﺔ ﻣﺤﺪودة ﻣﻦ اﻟﻌﻤﻠﯿﺎت
اﻷوﻟﯿﺔ )اﻟﺘﻌﻠﯿﻤﺎت( اﻟﺘﻲ ﺗﺸﻜﻞ ﻣﺨﻄ ً
ﻄﺎ ﻟﺤﺴﺎب أو ﺣﻞ ﻣﺸﻜﻠﺔ ﻣﺎ .ﺳﻤﯿﺖ ﻧﺴﺒﺔ إﻟﻰ اﻟﻌﺎﻟﻢ أﺑﻮ ﺟﻌﻔﺮ ﷴ ﺑﻦ
اﻟﻠﻐﺎت ﻣﻮﺳﻰ اﻟﺨﻮارزﻣﻲ اﻟﺬي اﺑﺘﻜﺮھﺎ ﻓﻲ اﻟﻘﺮن اﻟﺘﺎﺳﻊ اﻟﻤﯿﻼدي .اﻟﻜﻠﻤﺔ اﻟﻤﻨﺘﺸﺮة ﻓﻲ
اﻟﻼﺗﯿﻨﯿﺔ واﻷوروﺑﯿﺔ ھﻲ ).(algorithme
8
اﻟﻤﺤﻮر اﻟﺜﺎﻧﻲ :ﻣﺪﺧﻞ ﻟﻠﺨﻮارزﻣﯿﺎت
ﻣﺜﻞ:
ﺧﻮارزﻣﯿﺔ اﻟﻘﻮاﺳﻢ
اﻟﻤﺘﻐﯿﺮات:
: i ، Nﻋﺪد ﺻﺤﯿﺢ
اﻟﺒﺪاﯾﺔ
اﻗﺮأ)(N
ﻣﻦ أﺟﻞ I←1ﺣﺘﻰ ) (N div 2اﻋﻤﻞ
إذا ﻛﺎن ) ((N mod i)=0إذا
أﻛﺘﺐ )(i
ﻧﮭﺎﯾﺔ إذا ﻛﺎن
ﻧﮭﺎﯾﺔ ﻣﻦ أﺟﻞ
ﻧﮭﺎﯾﺔ
.4ﻛﺘﺎﺑﺔ اﻟﺒﺮﻧﺎﻣﺞ
ﻧﺨﺘﺎر ﻟﻐﺔ اﻟﺒﺮﻣﺠﺔ اﻟﻤﻨﺎﺳﺒﺔ ﺛﻢ ﻧﻌﯿﺪ ﻛﺘﺎﺑﺔ اﻟﺨﻮارزﻣﯿﺔ ﺑﮭﺎ:
9
اﻟﻤﺤﻮر اﻟﺜﺎﻧﻲ :ﻣﺪﺧﻞ ﻟﻠﺨﻮارزﻣﯿﺎت
.5ﺗﻨﻔﯿﺬ اﻟﺒﺮﻧﺎﻣﺞ
إذا ﻛﺎﻧﺖ ﻟﻐﺔ اﻟﺒﺮﻣﺠﺔ اﻟﻤﺨﺘﺎرة ﺗﺴﺘﻌﻤﻞ اﻟﻤﺤﻮل ﯾﻤﻜﻦ ﺗﻘﺴﯿﻢ ھﺬه اﻟﻤﺮﺣﻠﺔ إﻟﻰ ﻣﺮﺣﻠﺘﯿﻦ:
ﻣﺮﺣﻠﺔ اﻟﺘﺤﻮﯾﻞ ) (compilationأﯾﻦ ﯾﺘﻢ اﻟﺘﺪﻗﯿﻖ ﻓﻲ اﻟﺒﺮﻧﺎﻣﺞ ﺑﺎﺳﺘﻌﻤﺎل ﻗﻮاﻋﺪ اﻟﺼﯿﺎﻏﺔ ﻓﻲ ﺣﺎﻟﺔ
ﺧﻠﻮه ﻣﻦ أي أﺧﻄﺎء ﯾﺘﺮﺟﻢ اﻟﻤﺤﻮل اﻟﺒﺮﻧﺎﻣﺞ إﻟﻰ ﻟﻐﺔ اﻵﻟﺔ أﻣﺎ ﻓﻲ اﻟﺤﺎﻟﺔ اﻟﻤﻌﺎﻛﺴﺔ ﯾﻈﮭﺮ اﻟﻤﺤﻮل
ﻗﺎﺋﻤﺔ اﻷﺧﻄﺎء.
ﺗﻨﻔﯿﺬ اﻟﺒﺮﻧﺎﻣﺞ ) (exécution ou Run
ﻧﺘﺄﻛﺪ ﻣﻦ ﻓﻌﺎﻟﯿﺔ اﻟﺒﺮﻧﺎﻣﺞ ﻣﻦ ﺧﻼل إﻋﺎدة اﻟﺘﻨﻔﯿﺬ ﺑﻘﯿﻢ ﻣﺨﺘﻠﻔﺔ وﻓﻲ ﺣﺎﻟﺔ اﻟﺨﻄﺄ أي إﻋﻄﺎء ﻧﺘﺎﺋﺞ ﻏﯿﺮ ﻣﻨﺘﻈﺮة
ھﺬا ﯾﻌﻨﻲ وﺟﻮد أﺧﻄﺎء ﻣﻨﻄﻘﯿﺔ أو دﻻﻟﯿﺔ ) (des erreurs sémantiqueأي أﺧﻄﺎء ﻓﻲ ﻛﺘﺎﺑﺔ اﻟﺨﻮارزﻣﯿﺔ
ﺑﻠﻐﺔ اﻟﺒﺮﻣﺠﺔ أو ﻧﺮاﺟﻊ اﻟﺘﺤﻠﯿﻞ اﻷوﻟﻲ أي ﺧﻄﺄ ﻓﻲ طﺮﯾﻘﺔ اﻟﺤﻞ.
10
اﻟﻤﺤﻮر اﻟﺜﺎﻧﻲ :ﻣﺪﺧﻞ ﻟﻠﺨﻮارزﻣﯿﺎت
اﻟﺨﻮارزﻣﯿﺎت .VII
اﻟﺨﻮارزﻣﯿﺔ ھﻲ ﻣﺠﻤﻮﻋﺔ ﻣﻦ الﺧﻄﻮات اﻟﻤﺘﺘﺎﻟﯿﺔ واﻟﻤﻌﺪودة اﻟﺘﻲ ت ﻟﺰم ﻹﻧﺠﺎز ﻋﻤﻞ أو ﻟﺤﻞ ﻣﺸﻜﻠﺔ ﻣﺎ.
وھﺬه اﻟﺨﻄﻮات ﺗﻜﺘﺐ ﻋﻠﻰ ﺷﻜﻞ ﺛﻼﺛﺔ ﺗﺮاﻛﻲب أﺳﺎﺳﯿﺔ وھﻲ :اﻟﺘﺴﻠﺴﻞ واﻻﺧﺘﯿﺎر واﻟﺘﻜﺮار.
.1أﻧﻮاع اﻟﺨﻮارزﻣﯿﺔ
ﻧﺠﺪ ﻧﻮﻋﺎن ھﻤﺎ اﻟﺨﻮارزﻣﯿﺎت اﻟﺤﺴﺎﺑﯿﺔ وﻏﯿﺮ ﺣﺴﺎﺑﯿﺔ:
11
اﻟﻤﺤﻮر اﻟﺜﺎﻧﻲ :ﻣﺪﺧﻞ ﻟﻠﺨﻮارزﻣﯿﺎت
أ .ﺑﯿﺎﻧﯿﺎ
ﺻﯿﺎﻏﺘﮭﺎ ﺑﻄﺮﯾﻘﺔ ﺑﯿﺎﻧﯿﺔ أي ﺑﻮاﺳﻄﺔ اﻟﻤﺨﻄﻂ اﻟﺘﺪﻓﻘﻲ .وھﻮ ﺗﻤﺜﯿﻞ ﻣﺼﻮر ﻟﻠﺨﻮارزﻣﯿﺔ ﯾﻮﺿﺢ ﺧﻄﻮات ﺣﻞ
اﻟﻤﺸﻜﻠﺔ ﻣﻦ اﻟﺒﺪاﯾﺔ إﻟﻰ اﻟﻨﮭﺎﯾﺔ ﻣﻊ إﺧﻔﺎء اﻟﺘﻔﺎﺻﯿﻞ ﻹﻋﻄﺎء اﻟﺼﻮرة اﻟﻌﺎﻣﺔ ﻟﻠﺤﻞ .و ﯾﻤﻜﻦ ﺗﺼﻨﯿﻔﮭﺎ إﻟﻰ:
ﻣﺨﻄﻄﺎت ﺳﯿﺮ اﻟﻌﻤﻠﯿﺎت ذات اﻟﺘﻜﺮار ﻣﺨﻄﻄﺎت ﺳﯿﺮ اﻟﻌﻤﻠﯿﺎت ذات ﻣﺨﻄﻄﺎت ﺳﯿﺮ
اﻟﺘﻔﺮع )اﻹﺧﺘﯿﺎر( اﻟﻌﻤﻠﯿﺎت الﻣﺘﺴﻠﺴﻠﺔ
أو
ﺻﯿﺎﻏﺘﮭﺎ ﺑﺎﻟﻠﻐﺔ اﻟﻄﺒﯿﻌﯿﺔ أﯾﻦ ﯾﺴﺘﺨﺪم اﻟﻘﻠﯿﻞ ﻣﻦ اﻟﺘﻔﺎﺻﯿﻞ )أي أﻗﺮب ﻟﻠﻐﺔ اﻟﺒﺸﺮ( ﻣﺜﻞ وﺻﻔﺎت
ﺗﺤﻀﯿﺮ اﻷطﺒﺎق أﯾﻀﺎ ﻛﺘﯿﺐ اﻹرﺷﺎدات ﻟﺠﮭﺎز ﻣﺎ....
ﺻﯿﺎﻏﺘﮭﺎ ﺑﺎﺳﺘﺨﺪام ﻟﻐﺔ رﻣﺰﯾﺔ ﺧﺎﺻﺔ أﯾﻦ ﯾﺴﺘﺨﺪم اﻟﻜﺜﯿﺮ ﻣﻦ اﻟﺘﻔﺎﺻﯿﻞ )ﻟﺘﺼﺒﺢ ﻗﺮﯾﺒﺔ ﻣﻦ ﻟﻐﺎت
اﻟﺒﺮﻣﺠﺔ( .وھﺬه اﻟﻄﺮﯾﻖ اﻟﺘﻲ ﺳﻮف ﻧﺪرﺳﮭﺎ ﺑﺎﻟﺘﻔﺼﯿﻞ.
12
اﻟﻤﺤﻮر اﻟﺜﺎﻧﻲ :ﻣﺪﺧﻞ ﻟﻠﺨﻮارزﻣﯿﺎت
.3ﻛﻠﻔﺔ اﻟﺨﻮارزﻣﯿﺔ
ﻟﺤﻞ ﻣﺸﻜﻠﺔ ﻣﺎ ﯾﻤﻜﻦ ﻛﺘﺎﺑﺔ ﻋﺪة ﺧﻮارزﻣﯿﺎت وﻧﻔﻀﻞ ﺧﻮارزﻣﯿﺔ ﻋﻠﻰ أﺧﺮى ﺑﺤﺴﺎب ﻛﻠﻔﺘﮭﺎ وھﻲ اﻟﻤﺴﺎﺣﺔ
اﻟﻼزﻣﺔ ﺣﺠﺰھﺎ ﻓﻲ اﻟﺬاﻛﺮة اﻟﺤﯿﺔ ﻟﻠﺤﺎﺳﻮب واﻟﺰﻣﻦ اﻟﻼزم ﻟﺘﻨﻔﯿﺬھﺎ ﻓﻜﻠﻤﺎ ﻛﺎﻧﺎ أﻗﻞ ﻛﺎﻧﺖ اﻟﺨﻮارزﻣﯿﺔ
أﻓﻀﻞ.
اﻟﻤﺘﻐﯿﺮات :ﻗﺎﺋﻤﺔ_اﻟﻤﺘﻐﯿﺮات_ﻣﻊ_أﻧﻮاﻋﮭﺎ
ﺟﺰء اﻟﺘﺼﺮﯾﺤﺎت ﺑﺎﻟﺒﯿﺎﻧﺎت
اﻟﺜﻮاﺑﺖ :ﻗﺎﺋﻤﺔ_اﻟﺜﻮاﺑﺖ_ﻣﻊ_ﻗﯿﻤﮭﺎ
اﻟﻤﺴﺘﻌﻤﻠﺔ ﻟﻠﻤﻌﻄﯿﺎت واﻟﻨﺘﺎﺋﺞ
اﻟﺒﺪاﯾﺔ
اﻟﺘﻌﻠﯿﻤﺔ 1
اﻟﺘﻌﻠﯿﻤﺔ2
ﺟﺰء ﻣﻀﻤﻮن اﻟﺨﻮارزﻣﯿﺔ أي
.....
ﺳﻠﺴﻠﺔ اﻟﺘﻌﻠﯿﻤﺎت اﻟﻤﻄﺒﻘﺔ ﻋﻠﻰ
اﻟﺘﻌﻠﯿﻤﺔ n
اﻟﻤﻌﻄﯿﺎت ﻹﻋﻄﺎء اﻟﻨﺘﺎﺋﺞ
اﻟﻨﮭﺎﯾﺔ
.5ﺧﺼﺎﺋﺺ اﻟﺨﻮارزﻣﯿﺔ
ﯾﺠﺐ أن ﺗﺄﺧﺬ ﺑﻌﯿﻦ اﻻﻋﺘﺒﺎر ﺟﻤﯿﻊ اﻟﺤﺎﻻت اﻟﻤﺤﺘﻤﻠﺔ :وھﻲ ﺗﺘﻌﺎﻣﻞ ﻣﻊ اﻟﺤﺎﻟﺔ اﻟﻌﺎﻣﺔ واﻟﺤﺎﻻت
الﺧﺎﺻﺔ.
13
اﻟﻤﺤﻮر اﻟﺜﺎﻧﻲ :ﻣﺪﺧﻞ ﻟﻠﺨﻮارزﻣﯿﺎت
اﻟﺨﺎﺗﻤﺔ .VIII
ﻗﺪﻣﻨﺎ ﻓﻲ ھﺬا اﻟﻤﺤﻮر ﺗﻌﺮﯾﻒ ﻣﺼﻄﻠﺤﺎت اﻷﺳﺎﺳﯿﺔ ﻓﻲ اﻟﺒﺮﻣﺠﺔ ﺛﻢ ﻋﺮﺿﻨﺎ أﺻﻨﺎف ﻟﻐﺎت اﻟﺒﺮﻣﺠﺔ
ووﺿﺤﻨﺎ ﻣﺮاﺣﻞ ﻛﺘﺎﺑﺔ ﺑﺮﻧﺎﻣﺞ .وﻣﻦ أھﻢ ھﺬه اﻟﻤﺮاﺣﻞ ﻣﺮﺣﻠﺔ ﻛﺘﺎﺑﺔ ﺧﻮارزﻣﯿﺔ ﻟﺤﻞ اﻟﻤﺸﻜﻞ أﯾﻦ ﺗﻌﺮﻓﻨﺎ
ﻋﻠﻰ طﺮق ﻛﺘﺎﺑﺔ اﻟﺨﻮارزﻣﯿﺔ وأﯾﻀﺎ ﺑﻨﯿﺘﮭﺎ اﻟﻌﺎﻣﺔ ﻓﻲ ﺣﺎﻟﺔ اﻟﻜﺘﺎﺑﺔ ﺑﺎﻟﺘﺮﻣﯿﺰ ﻟﮭﺎ وﺧﺼﺎﺋﺼﮭﺎ .ﻓﻲ اﻟﻤﺤﻮر
اﻟﺘﺎﻟﻲ ﺳﻮف ﻧﻌﺮض ﻛﯿﻔﯿﺔ اﻟﺘﺼﺮﯾﺢ ﺑﺎﻟﺒﯿﺎﻧﺎت اﻟﺒﺴﯿﻄﺔ وﻧﺘﻌﺮف ﻋﻠﻰ ﺧﺼﺎﺋﺺ ﻛﻞ ﻧﻮع واﻟﻌﻤﻠﯿﺎت
اﻟﺨﺎﺻﺔ ﺑﮫ.
14