المحور الثاني

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 14

‫اﻟﻤﺤﻮر الﺛﺎﻧﻲ‬

‫ﻣﺪﺧﻞ ﻟﻠﺨﻮارزﻣﯿﺎت‬
‫اﻷھﺪاف اﻟﺘﻌﻠﯿﻤﯿﺔ‪:‬‬

‫‪ ‬اﻟﺘﻌﺮف ﻋﻠﻰ أﺳﺎﺳﯿﺎت اﻟﺒﺮﻣﺠﺔ‪.‬‬


‫‪ ‬اﻟﺘﻌﺮف ﻋﻠﻰ ﻣﺮاﺣﻞ ﻛﺘﺎﺑﺔ ﺑﺮﻧﺎﻣﺞ‪.‬‬
‫‪ ‬اﻟﺘﻌﺮف ﻋﻠﻰ ﺑﻌﺾ أﻧﻮاع ﻟﻐﺎت اﻟﺒﺮﻣﺠﺔ‪.‬‬
‫‪ ‬اﻟﺘﻌﺮف ﻋﻠﻰ اﻟﺨﻮارزﻣﯿﺎت‪.‬‬

‫‪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‬ﻻ ﯾﺴﺘﻄﯿﻊ اﻹﻧﺴﺎن اﺳﺘﻌﻤﺎﻟﮭﺎ ﺑﺴﮭﻮﻟﺔ ﻟﺪى اﺣﺘﺎج‬
‫اﻹﻧﺴﺎن ﻟﻤﺘﺮﺟﻢ ﻟﯿﻜﻮن وﺳﯿﻄﺎ ﺑﯿﻦ اﻹﻧﺴﺎن و اﻟﺤﺎﺳﻮب‪ ،‬ﻣﻦ ھﻨﺎ ظﮭﺮت ﻟﻐﺎت اﻟﺒﺮﻣﺠﺔ اﻟﻘﺮﯾﺒﺔ ﻣﻦ ﻟﻐﺔ‬
‫اﻹﻧﺴﺎن أو ﺑﺄﺻﺢ اﻷﻗﺮب ﻣﻦ اﻟﻠﻐﺔ اﻹﻧﺠﻠﯿﺰﯾﺔ‪ .‬وھﺬه ﻟﻐﺎت اﻟﺒﺮﻣﺠﺔ ﻋﺪﯾﺪة وﻣﺘﻨﻮﻋﺔ‪.‬‬

‫ﻓﻲ ھﺬا اﻟﻤﺤﻮر ﺳﻮف ﻧﻌﺮف ﻣﻔﮭﻮم ﻟﻐﺔ اﻟﺒﺮﻣﺠﺔ وﻧﻌﺮض أﻧﻮاﻋﮭﺎ وﻧﺘﻌﺮف ﻋﻠﻰ أﺳﺎﺳﯿﺎت اﻟﺒﺮﻣﺠﺔ ﻣﻦ‬
‫ﺧﻼل ﺗﻌﻠﻢ اﻟﺨﻮارزﻣﯿﺎت‪.‬‬

‫ﻟﻐﺔ اﻟﺒﺮﻣﺠﺔ )‪(langage de programmation‬‬ ‫‪.II‬‬


‫ھﻲ ﻟﻐﺔ ﺗﺘﻜﻮن ﻣﻦ رﻣﻮز و ﻣﻔﺮدات ﻣﺤﺪدة وﻣﺘﻔﻖ ﻋﻠﯿﮭﺎ‪ ،‬ﺗﺴﺘﻌﻤﻞ ﻟﻜﺘﺎﺑﺔ اﻟﺘﻌﻠﯿﻤﺎت وﻓﻘﺎ ﻟﻘﻮاﻋﺪ ﻣﺤﺪدة‪.‬‬

‫ﺣﺎﻟﯿﺎ ﯾﻮﺟﺪ اﻵﻻف ﻣﻦ ﻟﻐﺎت اﻟﺒﺮﻣﺠﺔ ﻟﻜﻞ ﻣﻨﮭﺎ ﺧﺼﺎﺋﺺ ﺗﻤﯿﺰھﺎ وﺗﺠﻌﻠﮭﺎ ﻣﻨﺎﺳﺒﺔ ﻟﻨﻮع ﻣﻌﯿﻦ ﻣﻦ اﻟﺒﺮاﻣﺞ‪.‬‬
‫تﺗﻌﺎﻣﻞ ﻣﻊ‬ ‫ﻛﻤﺎ أن ﻟﻠﻐﺎت اﻟﺒﺮﻣﺠﺔ أﯾﻀﺎ ﺧﺼﺎﺋﺺ ﻣﺸﺘﺮﻛﺔ و ﺣﺪود ﻣﺸﺘﺮﻛﺔ ﺑﺤﻜﻢ أن ﻛﻞ ھﺬه اﻟﻠﻐﺎت‬
‫اﻟﺤﺎﺳﻮب‪ .‬وﺗﺘﻄﻮر اﻟﺒﺮﻣﺠﺔ ﻣﻊ ﺗﻄﻮر اﻟﺤﺎﺳﻮب ﻣﻦ ﺣﯿﺚ ﻗﺪرة اﻟﻤﻌﺎﻟﺞ و ﺳﻌﺔ اﻟﺘﺨﺰﯾﻦ ﻓﻲ اﻟﺬاﻛﺮة اﻟﺤﯿﺔ‪.‬‬
‫وﺗﺘﻤﺜﻞ ﺧﺼﺎﺋﺺ ﻟﻐﺔ اﻟﺒﺮﻣﺠﺔ ﻓﻲ ﻣﺎ ﯾﻠﻲ‪:‬‬

‫‪ ‬اﻟﺒﯿﺎﻧﺎت و ﻛﯿﻔﯿﺔ ﺗﺨﺰﻧﮭﺎ‬

‫‪3‬‬
‫اﻟﻤﺤﻮر اﻟﺜﺎﻧﻲ‪ :‬ﻣﺪﺧﻞ ﻟﻠﺨﻮارزﻣﯿﺎت‬

‫‪ ‬اﻷواﻣﺮ وﻛﯿﻔﯿﺔ ﺗﻨﻈﯿﻤﮭﺎ‬


‫‪ ‬ﺑﻨﺎء اﻟﺒﺮاﻣﺞ‬

‫ﺗﻌﺮﯾﻔﺎت‬ ‫‪.III‬‬
‫ﻣﺤﺪد‪ ،‬واﻟﺘﻲ ﺗﺸﻤﻞ اﻟﺮﻣﻮز واﻟﻘﻮاﻋﺪ اﻟﻨﺤﻮﯾﺔ‪ ،‬واﻟﺘﻲ ﺗﺮﺗﺒﻂ ﺑﺎﻟﻘﻮاﻋﺪ‬ ‫ﯾﺘﻢ إﻧﺸﺎء ﻟﻐﺔ ﺑﺮﻣﺠﺔ ﻣﻦ ﻗﻮاﻋﺪ‬
‫اﻟﺪﻻﻟﯿﺔ‪ .‬ھﺬه اﻟﻌﻨﺎﺻﺮ أﻛﺜﺮ أو أﻗﻞ ﺗﻌﻘﯿﺪًا اﻋﺘﻤﺎدًا ﻋﻠﻰ ﻗﺪرة اﻟﻠﻐﺔ‪.‬‬

‫‪ .1‬ﻗﻮاﻋﺪ اﻟﺼﯿﺎﻏﺔ )‪(les règles de syntaxe‬‬


‫وھﻲ اﻟﻘﺎﻋﺪ اﻟﺘﻲ ﺗﺘﺤﻜﻢ ﻓﻲ اﻟﻄﺮق اﻟﻤﺨﺘﻠﻔﺔ اﻟﺘﻲ ﯾﻤﻜﻦ ﻣﻦ ﺧﻼﻟﮭﺎ اﻟﺠﻤﻊ ﺑﯿﻦ ﻋﻨﺎﺻﺮ اﻟﻠﻐﺔ ﻟﻠﺤﺼﻮل ﻋﻠﻰ‬
‫اﻟﺒﺮاﻣﺞ‪ .‬ﻣﺜﻞ ‪ :‬ﯾﺠﺐ وﺿﻊ ﻧﻘﻄﺔ ﻓﺎﺻﻠﺔ ; ﻓﻲ ﻧﮭﺎﯾﺔ ﻛﻞ ﺗﻌﻠﯿﻤﺔ‪.‬‬

‫‪ .2‬اﻟﻤﻔﺮدات )‪(le vocabulaires‬‬


‫وھﻲ ﻣﺠﻤﻮﻋﺔ اﻟﻜﻠﻤﺎت )ﻣﺜﻞ‪ ( begin, end, read, .... :‬و اﻟﺮﻣﻮز )ﻣﺜﻞ‪ (.... & / - + :‬اﻟﻤﺴﺘﻌﻤﻠﺔ ﻓﻲ‬
‫ﻛﺘﺎﺑﺔ اﻟﺘﻌﻠﯿﻤﺎت وھﻲ ﻣﺠﻤﻮﻋﺔ ﻣﺤﺪودة‪ .‬ﻟﻜﻞ ﻛﻠﻤﺔ أو رﻣﺰ اﺳﺘﺨﺪاﻣﺎت ﻣﻌﯿﻨﺔ‪.‬‬

‫‪ .3‬دﻻﻻت )‪(la sémantique‬‬


‫ﺗﺤﺪد اﻟﻘﻮاﻋﺪ اﻟﺪﻻﻟﯿﺔ ﻣﻌﻨﻰ ﻛﻞ ﺟﻤﻠﺔ ﻣﻦ اﻟﺠﻤﻞ اﻟﺘﻲ ﯾﻤﻜﻦ ﺑﻨﺎؤھﺎ ﻓﻲ اﻟﻠﻐﺔ‪ ،‬ﻋﻠﻰ وﺟﮫ اﻟﺨﺼﻮص ﻣﺎ‬
‫ﺳﺘﻜﻮن آﺛﺎر اﻟﺠﻤﻠﺔ ﻋﻨﺪ ﺗﺸﻐﯿﻞ اﻟﺒﺮﻧﺎﻣﺞ‪.‬‬

‫أﺻﻨﺎف ﻟﻐﺔ اﻟﺒﺮﻣﺠﺔ‬ ‫‪.IV‬‬


‫ﺣﺎﻟﯿﺎ ﯾﻮﺟﺪ اﻵﻻف ﻣﻦ ﻟﻐﺎت اﻟﺒﺮﻣﺠﺔ ﯾﻤﻜﻦ ﺗﺼﻨﯿﻔﮭﺎ ﺣﺴﺐ ﻋﺪة ﻣﻌﺎﯾﯿﺮ‪ .‬ﯾﻤﻜﻦ ﻟﻠﻐﺔ اﻟﺒﺮﻣﺠﺔ أن ﺗﻨﺘﻤﻲ إﻟﻰ‬
‫ﻋﺪة أﺻﻨﺎف ﺣﺴﺐ ﺧﺼﺎﺋﺼﮭﺎ‪.‬‬

‫‪ .1‬ﺗﺼﻨﯿﻒ ﺣﺴﺐ ﻗﺮﺑﮭﺎ ﻣﻦ ﻟﻐﺔ اﻹﻧﺴﺎن‬

‫‌أ‪ .‬ﻟﻐﺔ ﻣﻨﺨﻔﻀﺔ اﻟﻤﺴﺘﻮى )‪(bas niveau‬‬


‫ھﻲ ﻗﺮﯾﺒﺔ ﻣﻦ ﻟﻐﺔ اﻵﻟﺔ وھﻲ ﻟﻐﺔ ﺟﺪ ﻣﻌﻘﺪة ﯾﺴﺘﻌﻤﻠﮭﺎ اﻟﻤﺒﺮﻣﺠﻮن اﻟﻤﺘﺨﺼﺼﻮن ﻓﻲ اﻟﻤﻌﻠﻮﻣﺎﺗﯿﺔ‬
‫ﻷﻧﮭﺎ ﺗﺴﮭﻞ اﺳﺘﻐﻼل اﻟﻤﻜﻮﻧﺎت اﻟﺪاﺧﻠﯿﺔ ﻟﻠﺤﺎﺳﻮب وﺗﺴﻤﻰ ﻟﻐﺔ اﻟﺘﺠﻤﯿﻊ )‪.(assembleur‬‬

‫ب‪ .‬ﻟﻐﺔ ﻋﺎﻟﯿﺔ اﻟﻤﺴﺘﻮى )‪(haut niveau‬‬


‫‌‬
‫ھﻲ ﻗﺮﯾﺒﺔ ﻣﻦ ﻟﻐﺔ اﻹﻧﺴﺎن )اﻟﻠﻐﺔ اﻹﻧﺠﻠﯿﺰﯾﺔ( وھﻲ ﻣﺘﻌﺪدة وﻓﯿﮭﺎ أﻧﻮاع ﻛﺜﯿﺮة‪ .‬وﺗﺘﯿﺢ ﻟﮫ ﻛﺘﺎﺑﺔ ﺑﺮاﻣﺞ ﺟﺪ‬
‫ﻣﻌﻘﺪة ﻣﻦ ﺧﻼل ﺧﺎﺻﯿﺔ اﺳﺘﻌﻤﺎل ﻣﻜﺘﺒﺎت اﻟﺒﺮاﻣﺞ اﻟﻤﻌﺮﻓﺔ ﻣﺴﺒﻘﺎ‪ ،‬ﺑﺤﯿﺚ ﯾﻤﻜﻦ ﻟﻠﻤﺒﺮﻣﺞ ﻣﻦ ﺗﻌﺪﯾﻞ‬
‫‪4‬‬
‫اﻟﻤﺤﻮر اﻟﺜﺎﻧﻲ‪ :‬ﻣﺪﺧﻞ ﻟﻠﺨﻮارزﻣﯿﺎت‬

‫ﺑﺮﻧﺎﻣﺞ ﻣﻮﺟﻮد ﻓﻲ اﻟﻤﻜﺘﺒﺔ أو اﺳﺘﻌﻤﺎﻟﮫ دون اﻟﺤﺎﺟﺔ ﻹﻋﺎدة ﻛﺘﺎﺑﺘﮫ‪ .‬وأﯾﻀﺎ ﯾﻮﻓﺮ ھﺬا اﻟﻨﻮع ﻣﻦ اﻟﻠﻐﺎت‬
‫ھﯿﺎﻛﻞ ﺑﯿﺎﻧﺎت ﻣﺘﻌﺪدة ﺗﺴﻤﺢ ﺑﺘﻤﺜﯿﻞ اﻟﺒﯿﺎﻧﺎت ﺑﻄﺮﯾﻖ أﺳﺮع وأوﺿﺢ‪.‬‬

‫‪ .2‬ﺗﺼﻨﯿﻒ ﺣﺴﺐ طﺮﯾﻘﺔ ﺗﻨﻔﯿﺬھﺎ‬


‫ﻟﺘﻨﻔﯿﺬ ﺑﺮﻧﺎﻣﺞ ﻓﻲ ﺣﺎﺳﻮب ﻣﻌﯿﻦ ﻧﺤﺘﺎج إﻟﻰ ﻣﺘﺮﺟﻢ اﻟﻠﻐﺔ اﻟﺬي ﯾﻘﻮم ﺑﺘﺮﺟﻤﺔ اﻟﺒﺮﻧﺎﻣﺞ إﻟﻰ ﻟﻐﺔ اﻵﻟﺔ ﯾﻮﺟﺪ‬
‫ﻧﻮﻋﺎن ﻣﻦ اﻟﻤﺘﺮﺟﻤﯿﻦ‪:‬‬

‫‌أ‪ .‬اﻟﻤﺘﺮﺟﻢ اﻟﻤﺤﻮل )‪(Compilateur‬‬


‫أﯾﻦ ﺗﺘﻢ ﻗﺮاءة اﻟﺒﺮﻧﺎﻣﺞ ﻛﺎﻣﻞ و اﻟﺘﺤﻘﻖ ﻣﻦ اﻷﺧﻄﺎء ﻓﻲ اﻟﺼﯿﺎﻏﺔ ﺛﻢ ﻓﻲ ﺣﺎﻟﺔ ﻋﺪم وﺟﻮدھﺎ ﺗﺘﻢ ﺗﺮﺟﻤﺔ‬
‫اﻟﺒﺮﻧﺎﻣﺞ ﻛﺎﻣﻼ إﻟﻰ ﻟﻐﺔ اﻵﻟﺔ ﺑﻌﺪھﺎ ﯾﻨﻔﺬ اﻟﺒﺮﻧﺎﻣﺞ اﻟﻤﺘﺤﺼﻞ ﻋﻠﯿﮫ وﯾﺘﻤﯿﺰ ھﺬا اﻟﻨﻮع ﺑﻤﺎ ﯾﻠﻲ‪:‬‬

‫‪ o‬ﯾﺘﻢ اﻟﻔﺤﺺ ﻋﻠﻰ اﻷﺧﻄﺎء ﻓﻲ اﻟﺼﯿﺎﻏﺔ وﻟﯿﺲ اﻟﻤﻨﻄﻘﯿﺔ‪.‬‬


‫‪ o‬ﻻ ﯾﻤﻜﻦ ﺗﻨﻔﯿﺬ اﻟﺘﻄﺒﯿﻖ اﻟﻤﺘﺤﺼﻞ ﻋﻠﯿﮫ ﻓﻲ ﻧﻈﺎم ﺗﺸﻐﯿﻞ آﺧﺮ‪.‬‬

‫ب‪ .‬اﻟﻤﺘﺮﺟﻢ اﻟﻤﻔﺴﺮ ) ‪(Interpréteur‬‬


‫‌‬
‫أﯾﻦ ﯾﺘﻢ اﻟﻌﻤﻞ ﻋﻠﻰ اﻟﺒﺮﻧﺎﻣﺞ ﺳﻄﺮ ﺑﺴﻄﺮ ﺣﯿﺚ ﺗﺘﻢ ﻗﺮاءة ﺳﻄﺮ واﻟﺘﺤﻘﻖ ﻣﻦ اﻷﺧﻄﺎء اﻟﻨﺤﻮﯾﺔ ﺛﻢ ﺗﺮﺟﻤﺔ‬
‫اﻟﺴﻄﺮ وﺗﻨﻔﯿﺬه ﻣﺒﺎﺷﺮة وﯾﺘﻤﯿﺰ ھﺬا اﻟﻨﻮع ﺑﻤﺎ ﯾﻠﻲ‪:‬‬

‫‪ o‬ﯾﺴﮭﻞ اﻛﺘﺸﺎف اﻷﺧﻄﺎء اﻟﻨﺤﻮﯾﺔ ﻓﻲ ﻛﻞ ﺳﻄﺮ‬


‫‪ o‬ﯾﺴﻤﺢ ﺑﺎﻛﺘﺸﺎف اﻷﺧﻄﺎء اﻟﻤﻨﻄﻘﯿﺔ ﻓﻲ ﻛﻞ ﺳﻄﺮ‬
‫‪ o‬ﯾﺴﻤﺢ ﺑﻜﺘﺎﺑﺔ ﻧﺼﻮص ﻟﻸواﻣﺮ )‪ (script‬أي ﺗﻌﻠﯿﻤﺎت ﻣﻨﻔﺮدة‬
‫‪ o‬ﻻ ﯾﻮﺟﺪ ﻣﻠﻒ ﻣﻜﺘﻮب ﺑﻠﻐﺔ اﻵﻟﺔ ﺑﺤﯿﺚ ﻓﻲ ﻛﻞ ﻣﺮة ﯾﺠﺐ إﻋﺎدة اﻟﺘﺮﺟﻤﺔ وھﺬا ﻣﺎ ﯾﺠﻌﻞ‬
‫ﻋﻤﻞ اﻟﻤﻔﺴﺮ ﺑﻄﯿﺌﺎ ﺑﺎﻟﻤﻘﺎرﻧﺔ ﻣﻊ اﻟﻤﺤﻮل‪.‬‬

‫‪ .3‬ﺗﺼﻨﯿﻒ ﺣﺴﺐ طﺮﯾﻘﺔ ﺑﻨﺎء اﻟﺒﺮﻧﺎﻣﺞ )‪( paradigme‬‬

‫‌أ‪ .‬ﻟﻐﺎت إﺟﺮاﺋﯿﺔ )‪(impératif ou procédural‬‬


‫ﻧﻔﺬ اﻟﺸﺨﺺ‬ ‫ﯾﺴﺘﻨﺪ اﻟﻨﻤﻮذج اﻹﻟﺰاﻣﻲ أو اﻹﺟﺮاﺋﻲ إﻟﻰ ﻣﺒﺪأ ﺗﻨﻔﯿﺬ اﻟﺘﻌﻠﯿﻤﺎت ﺧﻄﻮة ﺑﺨﻄﻮة ‪ ،‬ﺗﻤﺎ ًﻣﺎ ﻛﻤﺎ ي‬
‫وﺻﻔﺔ اﻟﻄﮭﻲ‪.‬‬

‫ب‪ .‬ﻟﻐﺎت ﺷﯿﺌﯿﺔ أو اﻟﻤﻮﺟﮭﺔ ﻟﻠﻜﺎﺋﻦ )"‪( orienté objet "OOP‬‬


‫‌‬
‫اﻟﻤﻘﺼﻮد ﻣﻦ اﻟﻨﻤﻮذج اﻟﻤﻮﺟﮫ ﻟﻠﻜﺎﺋﻦ ھﻮ ﺗﺴﮭﯿﻞ ﺗﻘﺴﯿﻢ ﺑﺮﻧﺎﻣﺞ ﻛﺒﯿﺮ إﻟﻰ ﻋﺪة وﺣﺪات ﻣﻌﺰوﻟﺔ ﻋﻦ ﺑﻌﻀﮭﺎ‬
‫اﻟﺒﻌﺾ‪ .‬ﺣﯿﺚ أدﺧﻠﺖ ﻣﻔﺎھﯿﻢ الﻛﺎﺋﻦ واﻟﻤﯿﺮاث‪ .‬ﯾﺤﺘﻮي اﻟﻜﺎﺋﻦ ﻋﻠﻰ ﻣﺘﻐﯿﺮات ووظﺎﺋﻒ ﻣﺮﺗﺒﻄﺔ ﺑﻤﻮﺿﻮع‬

‫‪5‬‬
‫اﻟﻤﺤﻮر اﻟﺜﺎﻧﻲ‪ :‬ﻣﺪﺧﻞ ﻟﻠﺨﻮارزﻣﯿﺎت‬

‫ﻣﺎ‪ .‬ﯾﻤﻜﻦ أن ﺗﻜﻮن اﻟﻤﺘﻐﯿﺮات ﺧﺎﺻﺔ ‪ ،‬أي أﻧﮫ ﻻ ﯾﻤﻜﻦ اﻟﺘﻼﻋﺐ ﺑﮭﺎ إﻻ ﻋﻦ طﺮﯾﻖ اﻟﻜﺎﺋﻦ اﻟﺬي ﯾﺤﺘﻮي‬
‫ﻋﻠﯿﮭﺎ‪ .‬الﻛﺎﺋﻦ ﯾﺤﺘﻮي ﺿﻤﻨﯿًﺎ ﻋﻠﻰ ﻣﺘﻐﯿﺮات ووظﺎﺋﻒ أﺳﻼﻓﮫ ‪ ،‬وھﺬا الﺗﻮارث ﯾﺴﺎﻋﺪ ﻋﻠﻰ إﻋﺎدة اﺳﺘﺨﺪام‬
‫الوظﺎﺋﻒ‪ .‬ﯾﺘﯿﺢ اﻟﻨﻤﻮذج اﻟﻤﻮﺟﮫ ﻟﻠﻜﺎﺋﻦ إﻣﻜﺎﻧﯿﺔ رﺑﻂ اﻟﺒﯿﺎﻧﺎت ﺑﺎﻹﺟﺮاءات ﺑﻘﻮة‪.‬‬

‫‪ .4‬ﺗﺼﻨﯿﻒ ﺣﺴﺐ وظﯿﻔﺘﮭﺎ‬

‫‌أ‪ .‬إﻧﺸﺎء وﺗﻄﻮﯾﺮ اﻟﻤﻮاﻗﻊ اﻹﻟﻜﺘﺮوﻧﯿﺔ‬

‫ب‪ .‬ﻛﺘﺎﺑﺔ وﺗﻄﻮﯾﺮ اﻟﺒﺮاﻣﺞ وﯾﻮﺟﺪ ﻧﻮﻋﺎن‬


‫‌‬
‫‪ ‬ﻟﻐﺎت ﺑﺮﻣﺠﺔ ﻋﺎﻣﺔ‪ :‬وھﻲ ﻟﻐﺎت ﯾﻤﻜﻦ اﺳﺘﻌﻤﻠﮭﺎ ﻓﻲ ﻋﺪة ﻣﺠﻼت‬
‫‪ ‬ﻟﻐﺎت ﺑﺮﻣﺠﺔ ﺧﺎﺻﺔ‪ :‬ھﻲ ﻟﻐﺎت ﻣﺘﺨﺼﺼﺔ ﻓﻲ ﻣﺠﺎل ﻣﻌﯿﻦ ﻣﺜﻞ ﺗﺴﯿﯿﺮ اﻟﻤﺆﺳﺴﺎت ‪ -‬اﻟﺤﺴﺎﺑﺎت‬
‫اﻟﺮﯾﺎﺿﯿﺔ واﻟﻌﻠﻤﯿﺔ ‪..... -‬‬

‫ﻓﻲ اﻟﺠﺪول اﻟﺘﺎﻟﻲ ﺳﻮف ﻧﺼﻨﻒ اﻟﻠﻐﺎت اﻷﻛﺜﺮ اﻧﺘﺸﺎرا ﺣﺴﺐ اﻟﻤﻌﺎﯾﯿﺮ ﺳﺎﺑﻘﺔ اﻟﺬﻛﺮ‪.‬‬

‫ﺣﺴﺐ طﺮﯾﻘﺔ ﺑﻨﺎء‬


‫ﺣﺴﺐ طﺮﯾﻘﺔ ﺗﻨﻔﯿﺬھﺎ‬ ‫ﺣﺴﺐ وظﯿﻔﺘﮭﺎ‬
‫اﻟﺒﺮﻧﺎﻣﺞ‬
‫ﻣﺤﻮل‬ ‫ﻣﻔﺴﺮ‬ ‫إﺟﺮاﺋﯿﺔ‬ ‫‪OOP‬‬ ‫‪Web‬‬ ‫ﻋﺎﻣﺔ‬ ‫ﺧﺎﺻﺔ‬
‫‪C‬‬
‫‪PASCAL‬‬
‫‪JAVA‬‬
‫‪C++‬‬
‫‪Python‬‬
‫‪Fortran‬‬
‫‪Matlab‬‬
‫‪Oracle‬‬
‫‪Visual C‬‬
‫‪Java‬‬
‫‪Script‬‬
‫‪Cobol‬‬

‫‪6‬‬
‫اﻟﻤﺤﻮر اﻟﺜﺎﻧﻲ‪ :‬ﻣﺪﺧﻞ ﻟﻠﺨﻮارزﻣﯿﺎت‬

‫اﻟﻤﻔﺎھﯿﻢ اﻟﻤﺸﺘﺮﻛﺔ ﺑﯿﻦ اﻟﻠﻐﺎت‬ ‫‪.V‬‬


‫ﯾﺘﻢ اﺳﺘﺨﺪام ﻟﻐﺔ الﺑﺮﻣﺠﺔ ﻟﻮﺻﻒ ھﯿﺎﻛﻞ اﻟﺒﯿﺎﻧﺎت اﻟﺘﻲ ﺳﯿﺘﻢ اﺳﺘﺨﺪاﻣﮭﺎ ﺑﻮاﺳﻄﺔ اﻟﺤﺎﺳﻮب وﻛﯿﻔﯿﺔ اﻟﺘﻌﺎﻣﻞ‬
‫ﻣﻌﮭﺎ‪ .‬تﻗﺪم ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﻤﻔﺎھﯿﻢ ﻣﺜﻞ اﻟﺘﻌﻠﯿﻤﺎت واﻟﻤﺘﻐﯿﺮات واﻷﻧﻮاع واﻹﺟﺮاءات أو اﻟﻮظﺎﺋﻒ ‪ ،‬واﻟﺘﻲ‬
‫ﯾﻤﻜﻦ اﺳﺘﺨﺪاﻣﮭﺎ ﻛﺄوﻟﯿﺎت ﻟﺘﻄﻮﯾﺮ اﻟﺨﻮارزﻣﯿﺎت‪.‬‬

‫‪ .1‬اﻟﺘﻌﻠﯿﻤﺔ)‪(instruction‬‬
‫أﻣﺮ ﯾﻌﻄﻰ ﻟﻠﺤﺎﺳﻮب‪.‬‬

‫‪ .2‬ﻣﺘﻐﯿﺮ)‪(variable‬‬
‫اﺳﻢ يﺳﺘﺨﺪم ﻓﻲ الﺑﺮﻧﺎﻣﺞ ﻟﻺﺷﺎرة إﻟﻰ اﻟﺒﯿﺎﻧﺎت اﻟﺘﻲ ﯾﺴﺘﺨﺪﻣﮭﺎ اﻟﺒﺮﻧﺎﻣﺞ‪.‬‬

‫‪ .3‬ﺛﺎﺑﺖ)‪(constante‬‬
‫اﺳﻢ ﯾﺴﺘﺨﺪم ﻟﻺﺷﺎرة إﻟﻰ ﻗﯿﻤﺔ داﺋﻤﺔ‪.‬‬

‫‪ .4‬ﻧﻮع)‪(type‬‬
‫ھﺎ اﻟﺜﺎﻧﻲ‬ ‫ﻟﻜﻞ اﻟﺒﯿﺎﻧﺎت ﺗﺼﻨﯿﻒ ﯾﺆﺛﺮ ﻋﻠﻰ ﻧﻄﺎق اﻟﻘﯿﻢ اﻟﻤﺤﺘﻤﻠﺔ واﻟﻌﻤﻠﯿﺎت اﻟﺘﻲ ﯾﻤﻜﻦ إﺟﺮاؤھﺎ وﺗﻤﺜﯿﻞ‬
‫)‪ .(codage binaire‬تﻗﺪم ﻛﻞ ﻟﻐﺔ ﺑﺮﻣﺠﺔ ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻷﻧﻮاع اﻟﺒﺪاﺋﯿﺔ‪ ،‬اﻟﻤﻀﻤﻨﺔ ﻓﻲ اﻟﻠﻐﺔ‪ .‬وھﻨﺎك ﺑﻌﺾ‬
‫اﻟﻠﻐﺎت ﺗﻮﻓﺮ إﻣﻜﺎﻧﯿﺔ إﻧﺸﺎء أﻧﻮاع ﺟﺪﯾﺪة‪ .‬أﻧﻮاع اﻟﺒﯿﺎﻧﺎت اﻷوﻟﯿﺔ اﻟﺸﺎﺋﻌﺔ ھﻲ اﻷﻋﺪاد اﻟﺼﺤﯿﺤﺔ واﻷرﻗﺎم‬
‫اﻟﺤﻘﯿﻘﯿﺔ والﻣﻨﻄﻘﯿﺔ والﺳﻠﺴﺔ اﻟﺤﺮوف واﻟﻤﺆﺷﺮات‪.‬‬

‫‪ .5‬ھﯿﻜﻞ اﻟﺒﯿﺎﻧﺎت)‪(structure de données‬‬


‫)‪(tableaux‬‬ ‫طﺮﯾﻘﺔ ﻧﻤﻮذﺟﯿﺔ ﻟﺘﻨﻈﯿﻢ ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﺒﯿﺎﻧﺎت ﻓﻲ اﻟﺬاﻛﺮة‪ .‬اﻟﮭﯿﺎﻛﻞ اﻟﻌﺎﻣﺔ ھﻲ اﻟﺠﺪاول‬
‫واﻟﺴﺠﻼت)‪ (enregistrement‬واﻟﻘﻮاﺋﻢ)‪ (liste‬واﻟﻤﻜﺪﺳﺎت)‪ (pile‬واﻷﺷﺠﺎر)‪.(arbre‬‬

‫‪ .6‬ﺗﺼﺮﯾﺢ)‪(déclaration‬‬
‫ﻋﺒﺎرات ﺗﺴﺘﺨﺪم ﻓﻲ ﺑﺮﻧﺎﻣﺞ ﻹﻋﻼم اﻟﻤﺘﺮﺟﻢ )م ﺣﻮل ‪ ،‬م ﻓﺴﺮ( بأﺳﻤﺎء وﺧﺼﺎﺋﺺ ﻋﻨﺎﺻﺮ اﻟﺒﺮﻧﺎﻣﺞ ﻣﺜﻞ‬
‫اﻟﻤﺘﻐﯿﺮات واﻹﺟﺮاءات واﻷﻧﻮاع ‪...‬‬

‫‪ .7‬اﻹﺟﺮاءات واﻟﻮظﺎﺋﻒ واﻷﺳﺎﻟﯿﺐ)‪(procédure, fonction, méthode‬‬


‫وﺷﻜﻠﯿﺔ ﯾﻤﻜﻦ‬ ‫ﻣﻦ اﻟﺒﺮﻧﺎﻣﺞ ‪ ،‬وﺟﻌﻠﮫ ﻋﻤﻠﯿﺔ ﻋﺎﻣﺔ‬ ‫ﺗﻮﻓﺮ ﻟﻐﺎت اﻟﺒﺮﻣﺠﺔ اﻟﻤﺨﺘﻠﻔﺔ إﻣﻜﺎﻧﯿﺔ ﻋﺰل ﺟﺰء‬
‫اﺳﺘﺨﺪاﻣﮭﺎ ﺑﺸﻜﻞ ﻣﺘﻜﺮر‪ .‬ﺗﺴﻤﻰ ھﺬه اﻷﺟﺰاء إﺟﺮاءات أو وظﺎﺋﻒ أو طﺮق‪.‬‬

‫‪7‬‬
‫اﻟﻤﺤﻮر اﻟﺜﺎﻧﻲ‪ :‬ﻣﺪﺧﻞ ﻟﻠﺨﻮارزﻣﯿﺎت‬

‫‪ .8‬اﻟﻮﺣﺪات)‪(module‬‬
‫ﻀﺎ إﻣﻜﺎﻧﯿﺔ ﻗﻄﻊ ﺑﺮﻧﺎﻣﺞ إﻟﻰ ﻋﺪة أﺟﺰاء ﺗﺴﻤﻰ اﻟﻮﺣﺪات ‪ ،‬ﻛﻞ ﻣﻨﮭﺎ ﻟﮫ دور‬
‫ﯾﻤﻜﻦ أن ﺗﻮﻓﺮ ﻟﻐﺎت اﻟﺒﺮﻣﺠﺔ أﯾ ً‬
‫ﻣﺤﺪد ﺛﻢ ﯾﺠﻤﻊ ﺑﯿﻦ اﻷﺟﺰاء‪.‬‬

‫ﺗﮭﺪف ﻣﻔﺎھﯿﻢ اﻹﺟﺮاء واﻟﻮﺣﺪة إﻟﻰ ﺗﺴﮭﯿﻞ إﻧﺸﺎء ﺑﺮاﻣﺞ ﻣﻌﻘﺪة وﻛﺒﯿﺮة‪.‬‬

‫ﻛﯿﻔﯿﺔ ﻛﺘﺎﺑﺔ ﺑﺮﻧﺎﻣﺞ‬ ‫‪.VI‬‬


‫ﻟﯿﺘﻤﻜﻦ اﻟﻤﺒﺮﻣﺞ ﻣﻦ ﻛﺘﺎﺑﺔ ﺑﺮﻧﺎﻣﺞ ﯾﺤﻘﻖ ﻟﮫ ﻛﻞ اﻟﻨﺘﺎﺋﺞ اﻟﻤﻨﺘﻈﺮة ﯾﺠﺐ أوﻻ أن ﯾﻤﺮ ﺑﻌﺪة ﻣﺮاﺣﻞ أﺳﺎﺳﯿﺔ‬
‫وھﻲ‪:‬‬

‫‪ .1‬ﺗﻌﺮﯾﻒ ﺑﺎﻹﺷﻜﺎﻟﯿﺔ‬
‫ﺗﺤﺪﯾﺪ ﺟﻤﯿﻊ اﻟﻤﻌﻠﻮﻣﺎت اﻟﻤﺘﺎﺣﺔ و اﻟﻨﺘﺎﺋﺞ اﻟﻤﺮﺟﻮة‪.‬‬

‫ﻣﺜﻞ ‪ :‬إﯾﺠﺎد ﻗﻮاﺳﻢ ﻋﺪد ﺻﺤﯿﺢ‪.‬‬

‫اﻟﻤﻌﻠﻮﻣﺎت اﻟﻤﺘﺎﺣﺔ ھﻲ ﻋﺪد ﺻﺤﯿﺢ و اﻟﻨﺘﺎﺋﺞ اﻟﻤﻨﺘﻈﺮة ﻗﺎﺋﻤﺔ ﻗﻮاﺳﻢ ھﺬا اﻟﻌﺪد‬

‫‪ .2‬ﺗﺤﻠﯿﻞ اﻹﺷﻜﺎﻟﯿﺔ‬
‫إﯾﺠﺎد طﺮﯾﻘﺔ لتﻧﻘﻞ ﻣﻦ الﻣﻌﻄﯿﺎت إﻟﻰ اﻟﻨﺘﺎﺋﺞ أي ﺗﺤﺪﯾﺪ اﻟﺨﻄﻮات اﻟﻼزم اﻟﺘﻲ ﺗﺴﺘﻌﻤﻞ اﻟﻤﻌﻄﯿﺎت اﻟﻤﺘﺎﺣﺔ‬
‫ﻟﻠﻮﺻﻮل إﻟﻰ اﻟﻨﺘﺎﺋﺞ اﻟﻤﻨﺘﻈﺮة‪ .‬ﻓﻲ ﺑﻌﺾ اﻟﺤﺎﻻت‪ ،‬ﻗﺪ ﯾﻀﻄﺮ اﻟﻤﺮء إﻟﻰ إﺟﺮاء دراﺳﺔ ﻧﻈﺮﯾﺔ‪.‬‬

‫ﻣﺜﻞ‪:‬‬

‫‪ -‬ﻟﯿﻜﻦ ‪ N‬ﯾﻜﻮن ﻋﺪد ﺻﺤﯿﺢ‪.‬‬


‫‪ -‬ﻧﻘﺴﻢ ‪ N‬ﻋﻠﻰ ‪N / 2 ، ... ، 3 ، 2 ، 1 = i‬‬
‫‪ ‬إذا ﻛﺎن ﺑﺎﻗﻲ ﻗﺴﻢ ة ‪ N‬ﻋﻠﻰ ‪ i‬ﯾﺴﺎوي ‪ 0‬إذا‬
‫‪ i ‬ﻗﺎﺳﻢ‬
‫‪ i‬ﯾﻌﺮض ﻋﻠﻰ اﻟﺸﺎﺷﺔ‬ ‫‪‬‬

‫‪ .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‬أﻧﻮاع اﻟﺨﻮارزﻣﯿﺔ‬
‫ﻧﺠﺪ ﻧﻮﻋﺎن ھﻤﺎ اﻟﺨﻮارزﻣﯿﺎت اﻟﺤﺴﺎﺑﯿﺔ وﻏﯿﺮ ﺣﺴﺎﺑﯿﺔ‪:‬‬

‫‌أ‪ .‬اﻟﺨﻮارزﻣﯿﺔ ﻏﯿﺮ اﻟﺤﺴﺎﺑﯿﺔ‬


‫وھﻲ اﻟﺨﻮارزﻣﯿﺎت اﻷﻛﺜﺮ اﺳﺘﺨﺪاﻣﺎ‪ ،‬وﻧﺬﻛﺮ ﻣﻨﮭﺎ ﺗﻠﻚ اﻟﺘﻲ ﺗﻘﻮم ﺑﻤﻌﺎﻟﺠﺔ اﻟﻨﺼﻮص‪ ،‬ﺗﺨﺰﯾﻦ اﻟﻤﻌﻠﻮﻣﺎت‬
‫واﺳﺘﻌﺎدﺗﮭﺎ وإدارة ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت‪ ،‬وﺻﻔﺔ ﺗﺤﻀﯿﺮ طﺒﻖ‪ ،‬ﺗﻌﻠﯿﻢ ﻗﯿﺎدة اﻟﺴﯿﺎرة‪ ،‬اﻹرﺷﺎد إﻟﻰ ﻣﻜﺎن ﻣﺎ ‪.....‬‬

‫ب‪ .‬اﻟﺨﻮارزﻣﯿﺔ اﻟﺤﺴﺎﺑﯿﺔ‬


‫‌‬
‫وھﻲ ﺗﻠﻚ اﻟﺘﻲ ﺗﺘﻌﺎﻣﻞ ﻣﻊ اﻟﻤﻘﺎدﯾﺮ اﻟﺮﯾﺎﺿﯿﺔ أي اﻟﺘﻲ ﺗﺤﻞ ﻣﺸﺎﻛﻞ رﯾﺎﺿﯿﺔ ﻧﺬﻛﺮ ﻣﻨﮭﺎ‪ :‬ﺣﺴﺎب اﻟﻘﺎﺳﻢ اﻷﻛﺒﺮ‬
‫ﻟﻠﻌﺪدﯾﻦ طﺒﯿﻌﯿﯿﻦ‪ ،‬إﯾﺠﺎد ﺣﻠﻮل ﻣﻌﺎدﻟﺔ ‪.......‬‬

‫‪ .2‬طﺮق ﻛﺘﺎﺑﺔ اﻟﺨﻮارزﻣﯿﺔ‬


‫ﯾﻤﻜﻦ ﺻﯿﺎﻏﺔ اﻟﺨﻮارزﻣﯿﺎت ﺑﻄﺮق ﻋﺪﯾﺪة ﺗﺘﻔﺎوت ﻓﯿﻤﺎ ﺑﯿﻨﮭﺎ ﻣﻦ ﺣﯿﺚ دﻗﺔ اﻟﺘﻌﺒﯿﺮ وﺳﮭﻮﻟﺔ اﻟﻔﮭﻢ‪ .‬وأھﻢ‬
‫اﻟﻄﺮق اﻟﻤﺴﺘﺨﺪﻣﺔ ﻟﻜﺘﺎﺑﺔ اﻟﺨﻮارزﻣﯿﺎت ھﻲ‪:‬‬

‫‪11‬‬
‫اﻟﻤﺤﻮر اﻟﺜﺎﻧﻲ‪ :‬ﻣﺪﺧﻞ ﻟﻠﺨﻮارزﻣﯿﺎت‬

‫‌أ‪ .‬ﺑﯿﺎﻧﯿﺎ‬
‫ﺻﯿﺎﻏﺘﮭﺎ ﺑﻄﺮﯾﻘﺔ ﺑﯿﺎﻧﯿﺔ أي ﺑﻮاﺳﻄﺔ اﻟﻤﺨﻄﻂ اﻟﺘﺪﻓﻘﻲ‪ .‬وھﻮ ﺗﻤﺜﯿﻞ ﻣﺼﻮر ﻟﻠﺨﻮارزﻣﯿﺔ ﯾﻮﺿﺢ ﺧﻄﻮات ﺣﻞ‬
‫اﻟﻤﺸﻜﻠﺔ ﻣﻦ اﻟﺒﺪاﯾﺔ إﻟﻰ اﻟﻨﮭﺎﯾﺔ ﻣﻊ إﺧﻔﺎء اﻟﺘﻔﺎﺻﯿﻞ ﻹﻋﻄﺎء اﻟﺼﻮرة اﻟﻌﺎﻣﺔ ﻟﻠﺤﻞ‪ .‬و ﯾﻤﻜﻦ ﺗﺼﻨﯿﻔﮭﺎ إﻟﻰ‪:‬‬

‫ﻣﺨﻄﻄﺎت ﺳﯿﺮ اﻟﻌﻤﻠﯿﺎت ذات اﻟﺘﻜﺮار‬ ‫ﻣﺨﻄﻄﺎت ﺳﯿﺮ اﻟﻌﻤﻠﯿﺎت ذات‬ ‫ﻣﺨﻄﻄﺎت ﺳﯿﺮ‬
‫اﻟﺘﻔﺮع )اﻹﺧﺘﯿﺎر(‬ ‫اﻟﻌﻤﻠﯿﺎت الﻣﺘﺴﻠﺴﻠﺔ‬

‫أو‬

‫ب‪ .‬اﻟﺸﻔﺮة اﻟﻮﺻﻔﯿﺔ )‪(Pseudo-code‬‬


‫‌‬
‫وﺻﻒ اﻟﺨﻮارزﻣﯿﺔ ﺑﻠﻐﺎت اﻟﺒﺸﺮ ﻛﺎﻹﻧﺠﻠﯿﺰﯾﺔ أو اﻟﻔﺮﻧﺴﯿﺔ أو اﻟﻌﺮﺑﯿﺔ ﺑﻄﺮﯾﻘﺔ ﻣﺸﺎﺑﮭﮫ ﻟﻠﻐﺎت اﻟﺒﺮﻣﺠﺔ و ﻟﻜﻦ‬
‫ﺑﺪون أي اﻧﺘﻤﺎء ﻟﮭﺎ‪.‬‬

‫‪ ‬ﺻﯿﺎﻏﺘﮭﺎ ﺑﺎﻟﻠﻐﺔ اﻟﻄﺒﯿﻌﯿﺔ أﯾﻦ ﯾﺴﺘﺨﺪم اﻟﻘﻠﯿﻞ ﻣﻦ اﻟﺘﻔﺎﺻﯿﻞ )أي أﻗﺮب ﻟﻠﻐﺔ اﻟﺒﺸﺮ( ﻣﺜﻞ وﺻﻔﺎت‬
‫ﺗﺤﻀﯿﺮ اﻷطﺒﺎق أﯾﻀﺎ ﻛﺘﯿﺐ اﻹرﺷﺎدات ﻟﺠﮭﺎز ﻣﺎ‪....‬‬
‫‪ ‬ﺻﯿﺎﻏﺘﮭﺎ ﺑﺎﺳﺘﺨﺪام ﻟﻐﺔ رﻣﺰﯾﺔ ﺧﺎﺻﺔ أﯾﻦ ﯾﺴﺘﺨﺪم اﻟﻜﺜﯿﺮ ﻣﻦ اﻟﺘﻔﺎﺻﯿﻞ )ﻟﺘﺼﺒﺢ ﻗﺮﯾﺒﺔ ﻣﻦ ﻟﻐﺎت‬
‫اﻟﺒﺮﻣﺠﺔ(‪ .‬وھﺬه اﻟﻄﺮﯾﻖ اﻟﺘﻲ ﺳﻮف ﻧﺪرﺳﮭﺎ ﺑﺎﻟﺘﻔﺼﯿﻞ‪.‬‬

‫ﻣﺜﺎل‪ :‬أﻛﺘﺐ ﺧﻮارزﻣﯿﺔ ﻟﺤﺴﺎب ﻣﺤﯿﻂ وﻣﺴﺎﺣﺔ ﻣﺴﺘﻄﯿﻞ‬

‫‪12‬‬
‫اﻟﻤﺤﻮر اﻟﺜﺎﻧﻲ‪ :‬ﻣﺪﺧﻞ ﻟﻠﺨﻮارزﻣﯿﺎت‬

‫اﻟﻤﺨﻄﻂ اﻟﺘﺪﻓﻘﻲ‬ ‫اﻟﺮﻣﻮز اﻟﺨﺎﺻﺔ‬ ‫ﻟﻐﺔ اﻟﻌﺮﺑﯿﺔ‬


‫ﺧﻮارزﻣﯿﺔ ﺣﺴﺎب‬
‫ﺑﺪاﯾﺔ‬
‫اﻟﻤﺘﻐﯿﺮات‪:‬‬ ‫‪ (1‬ﺑﺪاﯾﺔ‬
‫أدﺧﻞ ‪Ln،Lg‬‬ ‫‪ :P ، S ، Ln ،Lg‬أﻋﺪاد طﺒﯿﻌﯿﺔ‬ ‫‪ (2‬أدﺧﻞ طﻮل وﻋﺮض اﻟﻤﺴﺘﻄﯿﻞ‬
‫اﻟﺒﺪاﯾﺔ‬ ‫‪ (3‬أﺣﺴﺐ‪:‬‬
‫‪S=Ln*Lg‬‬ ‫اﻗﺮأ)‪(Ln ،Lg‬‬ ‫ﻣﺴﺎﺣﺔ = اﻟﻄﻮل*اﻟﻌﺮض‬
‫‪P=(Ln+Lg)*2‬‬
‫‪S←Ln*Lg‬‬ ‫اﻟﻤﺤﯿﻂ=)اﻟﻄﻮل‪+‬اﻟﻌﺮض(*‪2‬‬
‫أﺧﺮج ‪P، S‬‬ ‫‪P←(Ln+Lg)*2‬‬ ‫‪ (4‬أﺧﺮج ﻗﯿﻤﺔ اﻟﻤﺴﺎﺣﺔ واﻟﻤﺤﯿﻂ‬
‫أﻛﺘﺐ ) ‪( P، S‬‬ ‫‪ (5‬اﻟﻨﮭﺎﯾﺔ‬
‫ﻧﮭﺎﯾﺔ‬ ‫اﻟﻨﮭﺎﯾﺔ‬

‫‪ .3‬ﻛﻠﻔﺔ اﻟﺨﻮارزﻣﯿﺔ‬
‫ﻟﺤﻞ ﻣﺸﻜﻠﺔ ﻣﺎ ﯾﻤﻜﻦ ﻛﺘﺎﺑﺔ ﻋﺪة ﺧﻮارزﻣﯿﺎت وﻧﻔﻀﻞ ﺧﻮارزﻣﯿﺔ ﻋﻠﻰ أﺧﺮى ﺑﺤﺴﺎب ﻛﻠﻔﺘﮭﺎ وھﻲ اﻟﻤﺴﺎﺣﺔ‬
‫اﻟﻼزﻣﺔ ﺣﺠﺰھﺎ ﻓﻲ اﻟﺬاﻛﺮة اﻟﺤﯿﺔ ﻟﻠﺤﺎﺳﻮب واﻟﺰﻣﻦ اﻟﻼزم ﻟﺘﻨﻔﯿﺬھﺎ ﻓﻜﻠﻤﺎ ﻛﺎﻧﺎ أﻗﻞ ﻛﺎﻧﺖ اﻟﺨﻮارزﻣﯿﺔ‬
‫أﻓﻀﻞ‪.‬‬

‫‪ .4‬اﻟﺒﻨﯿﺔ اﻟﻌﺎﻣﺔ ﻟﻠﺨﻮارزﻣﯿﺔ‬


‫ﺧﻮارزﻣﯿﺔ اﺳﻢ_اﻟﺨﻮارزﻣﯿﺔ‬ ‫رأس اﻟﺨﻮارزﻣﯿﺔ‬

‫اﻟﻤﺘﻐﯿﺮات‪ :‬ﻗﺎﺋﻤﺔ_اﻟﻤﺘﻐﯿﺮات_ﻣﻊ_أﻧﻮاﻋﮭﺎ‬
‫ﺟﺰء اﻟﺘﺼﺮﯾﺤﺎت ﺑﺎﻟﺒﯿﺎﻧﺎت‬
‫اﻟﺜﻮاﺑﺖ‪ :‬ﻗﺎﺋﻤﺔ_اﻟﺜﻮاﺑﺖ_ﻣﻊ_ﻗﯿﻤﮭﺎ‬
‫اﻟﻤﺴﺘﻌﻤﻠﺔ ﻟﻠﻤﻌﻄﯿﺎت واﻟﻨﺘﺎﺋﺞ‬
‫اﻟﺒﺪاﯾﺔ‬
‫اﻟﺘﻌﻠﯿﻤﺔ ‪1‬‬
‫اﻟﺘﻌﻠﯿﻤﺔ‪2‬‬
‫ﺟﺰء ﻣﻀﻤﻮن اﻟﺨﻮارزﻣﯿﺔ أي‬
‫‪.....‬‬
‫ﺳﻠﺴﻠﺔ اﻟﺘﻌﻠﯿﻤﺎت اﻟﻤﻄﺒﻘﺔ ﻋﻠﻰ‬
‫اﻟﺘﻌﻠﯿﻤﺔ ‪n‬‬
‫اﻟﻤﻌﻄﯿﺎت ﻹﻋﻄﺎء اﻟﻨﺘﺎﺋﺞ‬
‫اﻟﻨﮭﺎﯾﺔ‬
‫‪ .5‬ﺧﺼﺎﺋﺺ اﻟﺨﻮارزﻣﯿﺔ‬
‫‪ ‬ﯾﺠﺐ أن ﺗﺄﺧﺬ ﺑﻌﯿﻦ اﻻﻋﺘﺒﺎر ﺟﻤﯿﻊ اﻟﺤﺎﻻت اﻟﻤﺤﺘﻤﻠﺔ‪ :‬وھﻲ ﺗﺘﻌﺎﻣﻞ ﻣﻊ اﻟﺤﺎﻟﺔ اﻟﻌﺎﻣﺔ واﻟﺤﺎﻻت‬
‫الﺧﺎﺻﺔ‪.‬‬

‫‪13‬‬
‫اﻟﻤﺤﻮر اﻟﺜﺎﻧﻲ‪ :‬ﻣﺪﺧﻞ ﻟﻠﺨﻮارزﻣﯿﺎت‬

‫‪ ‬ﯾﺤﺘﻮي داﺋ ًﻤﺎ ﻋﻠﻰ ﻋﺪد ﻣﺤﺪد ﻣﻦ الﻋﻤﻠﯿﺎت‪.‬‬


‫‪ ‬ﻣﺴﺘﻘﻞ ﻋﻦ ﻟﻐﺎت اﻟﺒﺮﻣﺠﺔ وأﺟﮭﺰة اﻟﻜﻤﺒﯿﻮﺗﺮ‪.‬‬
‫‪ ‬ﻓﻲ ﺣﺎﻻت ﺗﻨﻔﯿﺬ ﻣﺸﺎﺑﮭﺔ )ﻣﻊ ﺑﯿﺎﻧﺎت ﻣﺘﻄﺎﺑﻘﺔ( ‪ ،‬ﻓﺈﻧﮫ ﯾﻮﻓﺮ داﺋ ًﻤﺎ ﻧﻔﺲ اﻟﻨﺘﯿﺠﺔ‪.‬‬

‫اﻟﺨﺎﺗﻤﺔ‬ ‫‪.VIII‬‬
‫ﻗﺪﻣﻨﺎ ﻓﻲ ھﺬا اﻟﻤﺤﻮر ﺗﻌﺮﯾﻒ ﻣﺼﻄﻠﺤﺎت اﻷﺳﺎﺳﯿﺔ ﻓﻲ اﻟﺒﺮﻣﺠﺔ ﺛﻢ ﻋﺮﺿﻨﺎ أﺻﻨﺎف ﻟﻐﺎت اﻟﺒﺮﻣﺠﺔ‬
‫ووﺿﺤﻨﺎ ﻣﺮاﺣﻞ ﻛﺘﺎﺑﺔ ﺑﺮﻧﺎﻣﺞ‪ .‬وﻣﻦ أھﻢ ھﺬه اﻟﻤﺮاﺣﻞ ﻣﺮﺣﻠﺔ ﻛﺘﺎﺑﺔ ﺧﻮارزﻣﯿﺔ ﻟﺤﻞ اﻟﻤﺸﻜﻞ أﯾﻦ ﺗﻌﺮﻓﻨﺎ‬
‫ﻋﻠﻰ طﺮق ﻛﺘﺎﺑﺔ اﻟﺨﻮارزﻣﯿﺔ وأﯾﻀﺎ ﺑﻨﯿﺘﮭﺎ اﻟﻌﺎﻣﺔ ﻓﻲ ﺣﺎﻟﺔ اﻟﻜﺘﺎﺑﺔ ﺑﺎﻟﺘﺮﻣﯿﺰ ﻟﮭﺎ وﺧﺼﺎﺋﺼﮭﺎ‪ .‬ﻓﻲ اﻟﻤﺤﻮر‬
‫اﻟﺘﺎﻟﻲ ﺳﻮف ﻧﻌﺮض ﻛﯿﻔﯿﺔ اﻟﺘﺼﺮﯾﺢ ﺑﺎﻟﺒﯿﺎﻧﺎت اﻟﺒﺴﯿﻄﺔ وﻧﺘﻌﺮف ﻋﻠﻰ ﺧﺼﺎﺋﺺ ﻛﻞ ﻧﻮع واﻟﻌﻤﻠﯿﺎت‬
‫اﻟﺨﺎﺻﺔ ﺑﮫ‪.‬‬

‫‪14‬‬

You might also like