Professional Documents
Culture Documents
ﻟﻐﺔ اﻟﺒﺮﻣﺠﺔ :ﻟﻐﺔ ﺧﺎﺻﺔ ﺑﺎﻟﻜﻤﺒﯿﻮﺗﺮ ﻳﺘﻢ ﻣﻦ ﺧﻼﻟﮭﺎ إﻧﺸﺎء ﺑﺮاﻣﺞ ﻣﻌﯿﻨﺔ ﻳﻔﮭﻤﮭﺎ
اﻟﻜﻤﺒﯿﻮﺗﺮ.
ﻣﮭﻤﺔ ھﺬه اﻟﺒﺮاﻣﺞ اﻟﺴﯿﻄﺮة واﻟﺘﺤﻜﻢ ﺑﻌﻤﻞ اﻟﺠﮭﺎز.
ﻤﺒﺮ ِﻣﺞ ﺑﻜﺘﺎﺑﺔ ﺷﯿﻔﺮة) ، (codeواﻟﺘﻲ اﻟﺒﺮﻣﺠﺔ :ھﻲ اﻟﻌﻤﻠﯿّﺔ اﻟﺘﻲ ﻳﻘﻮم ﻓﯿﮭﺎ اﻟ ُ
ﱠ
ﺗﺘﻤﺜﻞ ﺑﻤﺠﻤﻮﻋﺔ ﻣﻦ اﻷواﻣﺮ ،واﻟﺘﻲ ﺑﺪورھﺎ ﺗُﻨ ﱠﻔﺬ ﻋﻠﻰ اﻷﺟﮭﺰة اﻟﺤﺎﺳﻮﺑﯿ ّﺔ.
اﻟﻤﺘﺮﺟﻢ ) : (compilerھﻮ ﻋﺒﺎرة ﻋﻦ ﺑﺮﻧﺎﻣﺞ ﻳﻘﻮم ﺑﺘﺤﻮﻳﻞ ﻟﻐﺔ اﻟﺒﺮﻣﺠﺔ إﻟﻰ
ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻻﺻﻔﺎر و اﻟﻮاﺣﺪات اﻟﺘﻲ ﻳﻔﮭﻤﮭﺎ اﻟﺤﺎﺳﺐ.
أﻧﻮاع ﻟﻐﺎت اﻟﺒﺮﻣﺠﺔ
ﻟﻐﺔ اﻷﻟﺔ :ھﻲ اﻟﻠﻐﺔ اﻟﺘﻲ ﻳﻔﮭﻤﮭﺎ اﻟﺤﺎﺳﺐ ﺑﺸﻜﻞ ﻣﺒﺎﺷﺮ و ھﻲ ﻋﺒﺎرة ﻋﻦ ﻣﺠﻤﻮﻋﺔ
ﻣﻦ اﻷﺻﻔﺎر واﻟﻮاﺣﺪات .
ﻟﻐﺎت ﺑﺮﻣﺠﺔ ﻣﻨﺨﻔﻀﺔ اﻟﻤﺴﺘﻮى :ھﻲ ﻟﻐﺎت اﻟﺒﺮﻣﺠﺔ اﻷﻗﺮب ﻟﻠﻐﺔ اﻵﻟﺔ ،ﺑﺤﯿﺚ ﺗُﻌﺪ ﻟﻐﺔ
اﻵﻟﺔ ھﻲ اﻷﻗﻞ ﻣﺴﺘﻮى ،وﻳﺄﺗﻲ ﻓﻲ ﻣﺴﺘﻮى أﻗﻞ ﻣﻦ ﺑﻌﺪھﺎ ﻟﻐﺔ اﻟﺘﺠﻤﯿﻊ ) Assembly
ﻤﻦ ﻓﻘﻂ اﻷواﻣﺮ اﻟﺘﻲ ﻳﻔﮭﻤﮭﺎ ﺟﮭﺎز ،(languageإذ ﱠ
إن ھﺬه اﻟﻠﻐﺎت ﺗﺘﻤﯿﱠﺰ ﺑﻜﻮﻧﮭﺎ ﺗﺘﻀ ﱠ
اﻟﺤﺎﺳﻮب ،وﺑﺎﻟﺘﺎﻟﻲ ھﻲ اﻷﻛﺜﺮ ُﺑﻌﺪاً ﻋﻦ اﻟﻠﻐﺔ اﻟﺘﻲ ﻳﻔﮭﻤﮭﺎ اﻹﻧﺴﺎن ،وﻟﻜﻦ ﻓﻲ ﻧﻔﺲ
ﱡ
اﻟﺘﺤﻜﻢ اﻟﻜﺎﻣﻞ ﻓﻲ ﺑﺮﻧﺎﻣﺠﻪ. ﻤﺒﺮﻣﺞاﻟﻮﻗﺖ ﺗﺘﯿﺢ ﻟﻠ ُ
ﻟﻐﺎت اﻟﺒﺮﻣﺠﺔ ﻋﺎﻟﯿﺔ اﻟﻤﺴﺘﻮى :وھﻲ اﻷﺑﻌﺪ ﻋﻦ ﻟﻐﺔ اﻵﻟﺔ ،واﻷﻗﺮب ﻟﻔﮭﻢ اﻹﻧﺴﺎن ،وﻟﻜﻨّﮭﺎ
اﻟﺘﺤﻜﻢ اﻟﺬي ﺗﺘﯿﺤﻪ اﻟﻠﻐﺎت ﻣﻨﺨﻔﻀﺔ اﻟﻤﺴﺘﻮى ﻟﻠﻤﺒﺮﻣﺞ ،وذﻟﻚ ﱡ أﻳﻀﺎً ﻻ ﺗﺘﯿﺢ ﻧﻔﺲ ﻣﻘﺪار
ﻣﻦ ﺣﯿﺚ طﺮﻳﻘﺔ ﺗﻨﻈﯿﻢ اﻟﺤﺎﺳﻮب ﻟﻠﺬاﻛﺮة واﻟﺒﯿﺎﻧﺎت.
أﺷﮭﺮ ﻟﻐﺎت اﻟﺒﺮﻣﺠﺔ
ﻟﻐﺔ : Cﻟﻐﺔ ﻗﺪﻳﻤﺔ ظﮭﺮت ﻓﻲ اﻟﺴﺒﻌﯿﻨﯿﺎت ﻣﻦ اﻟﻘﺮن اﻟﻤﺎﺿﻲ و ﻣﺎ ﺗﺰال ﺗﺴﺘﺨﺪم اﻟﻰ
ﻳﻮﻣﻨﺎ ھﺬا ،ﺗﺘﻤﯿﺰ ﺑﺎﻟﺴﮭﻮﻟﺔ و ﻣﺘﻌﺪدة اﻻﺳﺘﻌﻤﺎل ﻣﻦ أﺷﮭﺮ اﺳﺘﺨﺪاﻣﺎﺗﮭﺎ ﺑﺮﻣﺠﺔ
اﻟﻤﺘﺤﻜﻤﺎت اﻟﻤﺼﻐﺮة .
ﻟﻐﺔ : C++و ھﻲ ﺗﻄﻮﻳﺮ ﻟﻠﻐﺔ Cو ﺗﻢ ﺗﺤﺪﻳﺜﮭﺎ واﺿﺎﻓﺔ اﻟﻘﻮاﻟﺐ ﻋﻠﯿﮭﺎ ،وھﻲ ﻟﻐﺔ واﺳﻌﺔ
اﻻﺳﺘﺨﺪام و ﺗﺴﺘﺨﺪم ﻓﻲ ﺑﺮﻣﺠﺔ اﻟﻤﺘﺤﻜﻤﺎت و أﻧﻈﻤﺔ اﻟﺘﺸﻐﯿﻞ و اﻟﺒﺮﻣﺠﯿﺎت اﻟﻤﺘﺨﻠﻘﺔ.
ﻟﻐﺔ : Javaوھﻲ ﻟﻐﺔ ﻛﺎﺋﻨﯿﺔ اﻟﺘﻮﺟﻪ وﺗﻌﺘﻤﺪ ﻋﻠﻰ اﻟﻘﻮاﻟﺐ و ظﮭﺮت ﻓﻲ اﻟﺘﺴﻌﯿﻨﯿﺎت ﻣﻦ
اﻟﻘﺮن اﻟﻤﺎﺿﻲ و ھﻲ ﻣﻦ أﻛﺜﺮ اﻟﻠﻔﺎت طﻠﺒﺎ ،ﺗﺴﺘﺨﺪم ﻓﻲ ﺗﻄﻮﻳﺮ اﻟﻮوﻳﺐ و اﻷﻟﻌﺎب و
ﺗﻄﺒﯿﻘﺎت اﻟﻤﻮﺑﺎﻳﻞ.
ﻟﻐﺔ : C#ھﻲ ﻟﻔﺔ ﻣﺘﻄﻮرة ﻣﻦ ﺷﺮﻛﺔ ﻣﺎﻳﻜﺮوﺳﻮﻓﺖ و ﺗﺪﻣﺞ ﺧﺼﺎﺋﺺ ﻟﻐﺘﻲ c , c++
ﺗﺴﺘﺨﺪم ﻓﻲ ﺗﻄﻮﻳﺮ اﻟﺒﺮﻣﺠﯿﺎت اﻟﻤﺨﺘﻠﻔﺔ ﻛﻤﺎ أﻧﮭﺎ ﺗﺪﻋﻢ ﺑﺮﻣﺠﺔ واﺟﮭﺔ اﻟﻤﺴﺘﺨﺪم.
ﻟﻔﺔ : Pythonو ھﻲ ﻟﻔﺔ ﻋﺎﻟﯿﺔ اﻟﻤﺴﺘﻮى ،ﺗﺴﺘﺨﺪم ﻓﻲ ﺗﻄﻮﻳﺮ اﻟﻨﺼﻮص اﻟﺘﻲ ﻳﺘﻢ
ﺗﻨﻔﯿﺬھﺎ ﻣﻦ ﺟﮭﺔ اﻟﺨﺎدم .
ﻟﻔﺔ : SQLو ھﻲ ﻟﻔﺔ ﻣﺨﺘﺼﺔ ﻓﻲ ﺑﺮﻣﺠﺔ ﻗﻮاﻋﺪ اﻟﺒﯿﺎﻧﺎت.
ﻟﻐﺔ C++
ھﻲ ﻟﻐﺔ ﺑﺮﻣﺠﺔ ﻛﺎﺋﻨﯿﺔ ،ﻣﺘﻌﺪدة أﻧﻤﺎط اﻟﺒﺮﻣﺠﺔ ،وﺗﻀﻢ اﻟﻌﺪﻳﺪ ﻣﻦ ﻣﯿﺰات ﻟﻐﺎت اﻟﺒﺮﻣﺠﺔ
ﻋﺎﻟﯿﺔ اﻟﻤﺴﺘﻮى وﻣﻨﺨﻔﻀﺔ اﻟﻤﺴﺘﻮى .ﺑﺪأ ﺗﻄﻮﻳﺮ ھﺬه اﻟﻠﻐﺔ ﻛﺎﻣﺘﺪاد ﻟﻠﻐﺔ Cﺗﺤﺖ اﺳﻢ ) C
ﻣﻊ اﻟﺼﻔﻮف( ﻣﻦ ﻗﺒﻞ ﺑﯿﺎرن ﺳﺘﺮوﺳﺘﺮوب ﻓﻲ ﻣﺨﺘﺒﺮات ﺑﻞ ﻋﺎم ۱۹۷۹وﺗﻢ إﺿﺎﻓﺔ اﻟﻌﺪﻳﺪ
ﻣﻦ اﻟﻤﯿﺰات اﻷﺧﺮى ﻻﺣﻘﺎً وﺗﻐﯿﺮ اﻻﺳﻢ ﻋﺎم ۱۹۸۳ﻟﯿﺼﺒﺢ C ++ﻣﻦ ﺑﺎب اﻟﺪﻋﺎﺑﺔ ﻋﺒﺮ
اﺳﺘﺨﺪام ﻣﻌﺎﻣﻞ اﻟﺰﻳﺎدة ﻟﺠﺎﻧﺐ اﺳﻢ ﻟﻐﺔ Cﺗﺄﻛﯿﺪاً ﻋﻠﻰ أﻧﮭﺎ اﻟﻠﻠﻌﺔ اﻟﺘﺎﻟﯿﺔ ﻟـ C
ﺗﻌﺘﺒﺮ C ++إﺣﺪى اﻟﻠﻐﺎت اﻷﻛﺜﺮ ﺷﯿﻮﻋﺎً وﻗﺪ اﺳﺘﺨﺪﻣﺖ ﻋﻠﻰ ﻧﻄﺎق واﺳﻊ ﻓﻲ ﺑﻨﺎء أﻧﻈﻤﺔ
اﻟﺘﺸﻐﯿﻞ واﻟﺘﻌﺎﻣﻞ ﻣﻊ اﻟﺒﻨﯿﺔ اﻟﺼﻠﺒﺔ ﻟﻠﺤﺎﺳﻮب اﺑﺘﺪا ًء ﻣﻦ اﻷﻧﻈﻤﺔ اﻟﺒﺮﻣﺠﯿﺔ وﺑﺮاﻣﺞ
اﻟﻤﺴﺘﺨﺪم ،ﻣﺮوراً ﺑﻤﺸﻐﻼت اﻷﺟﮭﺰة واﻷﻧﻈﻤﺔ اﻟﻤﺪﻣﺠﺔ واﻧﺘﮭﺎ ًء ﺑﺎﻟﻤﺨﺪﻣﺎت ﻋﺎﻟﯿﺔ اﻷداء
وﺑﺮاﻣﺞ اﻟﺘﺴﻠﯿﺔ ﻛﺎﻷﻟﻌﺎب اﻟﻔﯿﺪﻳﻮﻳﺔ ﻧﻈﺮاً ﻟﻘﺪرة ﺗﺼﺮﻳﻔﮭﺎ إﻟﻰ ﻛﻮد ﻟﻐﺔ ﺗﺠﻤﯿﻊ ﺷﺪﻳﺪ
اﻟﻔﻌﺎﻟﯿﺔ.
أﺣﺪ أﻛﺜﺮ اﺳﺘﺨﺪاﻣﺎت C ++إﺛﺎر ًة ﻟﻺﻋﺠﺎب ﺣﺴﺐ رأي ﺳﺘﺮوﺳﺘﺮوب ھﻮ اﺳﺘﺨﺪام C ++
ﻓﻲ ﻛﺘﺎﺑﺔ ﻗﺴﻢ ﻛﺒﯿﺮ ﻣﻦ أﻧﻈﻤﺔ اﻟﻘﯿﺎدة اﻷوﺗﻮﻣﺎﺗﯿﻜﯿﺔ ﻟﻠﻌﺮﺑﺎت اﻟﺘﻲ ﺗﺠﻮﻟﺖ ﻋﻠﻰ ﺳﻄﺢ
اﻟﻤﺮﻳﺦ.
ﺻﻔﺎت ﻟﻐﺔ c++
ﻳﻤﻜﻦ إﺿﺎﻓﺔ ﻛﻢ ھﺎﺋﻞ ﻣﻦ اﻟﻤﻜﺘﺒﺎت إﻟﻰ اﻟﺒﺮﻧﺎﻣﺞ و ذﻟﻚ ﺑﺎﺳﺘﺨﺪام ﺗﻌﻠﯿﻤﺔ include
ﻣﺜﺎل :إﺿﺎﻓﺔ ﻣﻜﺘﺒﯿﺔ اﻟﺮﻳﺎﺿﯿﺎت
>#include <cmath.h
ﻳﻜﺘﺐ اﻟﺒﺮﻧﺎﻣﺞ اﻟﺮﺋﯿﺴﻲ ﻛﻤﺎ ﻓﻲ اﻟﺸﻜﻞ:
{ )( int main
اﻟﺒﺮﻧﺎﻣﺞ
; return 0
}
ﻳﺘﻢ إﻧﮭﺎء اﻟﺒﺮﻧﺎﻣﺞ ﺑﺘﻌﻠﯿﻤﺔ .return 0
ﻻ ﺑﺪ ﻣﻦ وﺿﻊ ﻓﺎﺻﻠﺔ ﻣﻨﻘﻮطﺔ ﻋﻨﺪ ﻧﮭﺎﻳﺔ ﻛﻞ ﺳﻄﺮ ﻓﻲ .
اﻟﻤﺘﺤﻮﻻت )(Variables
ھﻲ ﻋﺒﺎرة ﻋﻦ أﺳﻤﺎء ﺗﺤﺠﺰ ﻣﻜﺎن ﻓﻲ اﻟﺬاﻛﺮة ﻟﯿﺘﻢ ﺗﺨﺰﻳﻦ اﻟﺒﯿﺎﻧﺎت ﻋﻠﯿﮭﺎ.
ﻋﻨﺪ ﺣﺠﺰ اﻟﻤﺘﺤﻮل ﻻﺑﺪ ﻣﻦ اﺧﺘﯿﺎر اﺳﻢ ﻟﻪ و ﻧﻮع اﻟﺒﯿﺎﻧﺎت اﻟﻤﺮاد ﺗﺨﺰﻳﻨﮭﺎ ﻓﯿﻪ .
ﻳﻘﻮم اﻟﺒﺮﻧﺎﻣﺞ ﺑﺤﺠﺰ ﻣﺴﺎﺣﺔ ﻓﻲ اﻟﺬاﻛﺮة ﺣﺴﺐ ﻧﻮع اﻟﻤﺘﺤﻮل اﻟﻤﺤﺠﻮز.
ﺗﺴﻤﯿﺔ اﻟﻤﺘﺤﻮﻻت
ﻳﻤﻜﻦ ان ﻳﺤﻮي اﺳﻢ اﻟﻤﺘﺤﻮل ﻋﻠﻰ أرﻗﺎم و ﺣﺮوف ﺷﺮط أﻻ ﻳﻜﻮن أول ﺣﺮف رﻗﻢ.
ﻣﺜﺎل :ﻻ ﻳﻤﻜﻦ ﺗﺴﻤﯿﺔ ﻣﺘﺤﻮل 4sensoreﺑﻞ ﻳﺴﻤﻰ .sensore4
ﻻ ﻳﻤﻜﻦ ﻟﻼﺳﻢ أن ﻳﺤﻮي أي رﻣﺰ ﻻﺗﯿﻨﻲ أو إﺷﺎرات اﻟﻌﻤﻠﯿﺎت اﻟﺤﺴﺎﺑﯿﺔ و ﻏﯿﺮھﺎ.
ﻻ ﻳﻤﻜﻦ ﻟﻼﺳﻢ ان ﻳﺤﻮي ﻋﻠﻰ ﻓﺮاغ .
ﻟﻐﺔ ال c++ﺣﺴﺎﺳﺔ ﻟﻸﺣﺮف اﻟﺼﻐﯿﺮة و اﻟﻜﺒﯿﺮة.
ﻣﺜﺎل :اﻟﻤﺘﺤﻮل Speedﻏﯿﺮ اﻟﻤﺘﺤﻮل .speed
ﻳﻤﻜﻦ اﺳﺘﺨﺪام اﻟﺸﺮﻳﻄﺔ اﻟﺴﻔﻠﯿﺔ )_( ﻓﻲ ﺗﺴﻤﯿﺔ اﻟﻤﺘﺤﻮﻻت .
ﻣﺜﺎل fisrt_sensor :و ﻻ ﻳﻤﻜﻦ ﻛﺘﺎﺑﺔ .first sensor
أﻧﻮاع اﻟﻤﺘﺤﻮﻻت Data Types
ھﻲ ﻣﺘﺤﻮﻻت ﻳﺘﻢ اﺳﻨﺎد ﻗﯿﻤﺔ ﻟﮭﺎ ﻋﻨﺪ ﺗﻌﺮﻳﮭﺎ وﻻ ﻳﻤﻜﻦ اﻟﺘﻌﺪﻳﻞ
ﻋﻠﯿﮭﺎ أﺑﺪا .
ﻳﺘﻢ ﺗﻌﺮﻳﻔﮭﺎ ﺑﺈﺿﺎﻓﺔ ﻛﻠﻤﺔ constﻗﺒﻞ اﻟﺘﻌﺮﻳﻒ .
ﻳﻤﻜﻦ ﺗﻌﺮﻳﻒ اﻷرﻗﺎم و اﻷﺳﻤﺎء ﺑﺄﺳﻤﺎء ﺧﺎﺻﺔ ﻻ ﺗﺪﺧﻞ ﻓﻲ اﻟﺬاﻛﺮة ﺗﻨﺎﺳﺐ اﻟﻤﺒﺮﻣﺞ .
و ﻻ ﻳﻤﻜﻦ ﺗﻄﺒﯿﻖ اﻟﻌﻤﻠﯿﺎت اﻟﺤﺴﺎﺑﯿﺔ ﻋﻠﯿﮭﺎ ﻣﺜﻞ اﻟﻤﺘﺤﻮﻻت .
ﺗﺘﻤﯿﺰ أﻧﮭﺎ ﻻ ﺗﺤﺠﺰ أي ﻣﻜﺎن ﻓﻲ اﻟﺬاﻛﺮة .
ﺗﻌﺮﻳﻒ ﺑﺈﺿﺎﻓﺔ ﻛﻠﻤﺔ #defineﺛﻢ اﻻﺳﻢ اﻟﺠﺪﻳﺪ و ﺑﻌﺪه اﻻﺳﻢ أو اﻟﺮﻗﻢ اﻟﻤﺮاد ﺗﻌﺮﻳﻔﻪ.
ﻻ ﺗﻀﺎف اﻟﻔﺎﺻﻠﺔ اﻟﻤﻨﻘﻮطﺔ إﻟﯿﻪ .
ﻣﺜﺎل :
#define pi 3.14
ﺗﻌﺮﻳﻒ ﻗﯿﻤﺔ pi 3.14
ﺗﺸﺎﺑﻪ اﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ
; S = 2*3.14* r
; S= 2*pi * 3.14
اﻟﺘﻌﻠﯿﻘﺎت Comments
int x = 65;
char ch = 'B';
float f = 14.34;
int main()
{
ch = x; //ch = 'A'
x = f; //x = 14
f = ch; //65
f = x; //f=14.0
}
اﻹدﺧﺎل و اﻹﺧﺮاج ﻓﻲ ﻟﻐﺔ C++
ﻳﻤﻜﻦ ادﺧﺎل و اﺧﺮاج اﻟﺒﯿﺎﻧﺎت ﻓﻲ ﻟﻐﺔ اﻟﺒﺮﻣﺠﺔ C++ﺑﺎﺳﺘﺨﺪام ﺗﻌﻠﯿﻤﺘﻲ .cin , cout
ﻻﺳﺘﻌﻤﺎل ﺟﺪاول اﻻدﺧﺎل و اﻹﺧﺮاج ﻻ ﺑﺪ ﻣﻦ إﺿﺎﻓﺔ ﻣﻜﺘﺒﯿﺔ . iostream
و ذﻟﻚ و ﻓﻖ اﻟﻄﺮﻳﻘﺔ اﻟﺘﺎﻟﯿﺔ:
>#include <iostream
وذﻟﻚ ﻹﺿﺎﻓﺔ ﻣﻜﺘﺒﯿﺔ اﻻدﺧﺎل و اﻹﺧﺮاج و ﺗﻮﺿﻊ ﻓﻲ ﺑﺪاﻳﺔ اﻟﺒﺮﻧﺎﻣﺞ و ﻳﻀﺎف ﺑﻌﺪھﺎ اﻟﺴﻄﺮ
اﻟﺘﺎﻟﻲ:
;using namespace std
ﺗﻌﻠﯿﻤﺔ اﻹﺧﺮاج ﻓﻲ ﻟﻐﺔ C++
ﻓﻲ ﺣﺎل أردﻧﺎ إظﮭﺎر ﻗﯿﻤﺔ ﻣﺘﺤﻮل ﻓﺘﻜﺘﺐ اﺳﻢ اﻟﻤﺘﺤﻮل ﺑﺪون)”“(.
ﻣﺜﺎل:
; c=b ﻳﻘﻮم ﺑﺎﺳﻨﺎد ﻗﯿﻤﺔ اﻟﻤﺘﺤﻮل bﻓﻲ اﻟﻤﺘﺤﻮل cﻟﻜﻦ ﺑﻤﺎ ان
اﻟﻤﺘﺤﻮل cﻣﻦ ﻧﻮع integerﻓﯿﺘﻢ ﺣﺬف اﻟﻔﻮاﺻﻞ.
cout << c <<endl ; //75 و ﻳﺘﻢ ﻋﺮﺿﮭﺎ ﺑﻌﺪ ذﻟﻚ
;c=a ﻳﻘﻮم ﺑﺎﺳﻨﺎد ﻗﯿﻤﺔ اﻟﻤﺘﺤﻮل aﻓﻲ اﻟﻤﺘﺤﻮل cﻟﻜﻦ ﺑﻤﺎ ان اﻟﻤﺘﺤﻮل
cﻣﻦ ﻧﻮع integerﻓﯿﺘﻢ ﺗﺨﺰﻳﻨﮭﺎ ﻛﺮﻗﻢ و ﻟﯿﺲ ﻛﻤﺤﺮف .
cout <<c<<endl ;//65
و ﻳﺘﻢ ﻋﺮﺿﮭﺎ ﺑﻌﺪ ذﻟﻚ
; a= b ﻳﻘﻮم ﺑﺎﺳﻨﺎد ﻗﯿﻤﺔ اﻟﻤﺘﺤﻮل bﻓﻲ اﻟﻤﺘﺤﻮل aﻟﻜﻦ ﺑﻤﺎ ان
cout <<a<< endl ; // K اﻟﻤﺘﺤﻮل aﻣﻦ ﻧﻮع characterﻓﯿﺘﻢ ﺗﺨﺰﻳﻨﻪ ﻛﻤﺤﺮف ﺣﺴﺐ
ﺟﺪول اﺳﻜﻲ
} و ﻳﺘﻢ ﻋﺮﺿﮭﺎ ﺑﻌﺪ ذﻟﻚ
ﺗﻌﻠﯿﻤﺎت اﻹدﺧﺎل ﻓﻲ ﻟﻐﺔ C++
ﻣﺜﺎل:
;cin >> var
;cin >> var1 >> var2
Basic operators اﻟﻌﻤﻠﯿﺎت اﻷﺳﺎﺳﯿﺔ
● int x = 4;
● x = 10; //x إﻟﻰ اﻟﻣﺗﺣول10 ﺗﻘﻮم ﺑﺈﺳﻨﺎد اﻟﻌﺪد
" - + ": ﻋﻤﻠﯿﺘﻲ اﻟﺠﻤﻊ و اﻟﻄﺮح ●
● int number1 = 9;
● int number2 = number1 / 5; //number2 = 1
ﻣﺜﺎل ﻟﺤﺴﺎب ﺳﺮﻋﺔ ﺣﺮﻛﺔ ﺟﺴﻢ :
● double distance = 15 ,time, speed; // km
● time = 10.300; // sec
● speed = distance / time; // speed = 1.45631068 km/sec
ﻋﻤﻠﯿﺔ ﺑﺎﻗﻲ اﻟﻘﺴﻤﺔ” : %
● ;int number1 = 9
● int number2 = number1 % 5; //number2 = 4
ﻣﻼﺣﻈﺔ ﻣﮭﻤﺔ :ﻳﻘﻮم اﻟﻤﺘﺮﺟﻢ ﺑﺤﺴﺎب اﻟﻌﻼﻗﺎت ﻣﻦ اﻟﯿﺴﺎر إﻟﻰ اﻟﯿﻤﯿﻦ و ﻓﻲ ﺣﺎل وﺟﻮد
اﻷﻗﻮاس ﻓﺘﻜﻮن اﻷوﻟﻮﻳﺔ ﻟﻸﻗﻮاس ﻛﻤﺎ ﻓﻲ اﻟﺮﻳﺎﺿﯿﺎت ﺗﻤﺎﻣﺎ.
ﻣﺜﺎل ﺣﺴﺎب طﻮل اﻟﻤﻮﺟﺔ ﺗﺮددھﺎ :khz ۳۰
double wave_length = (1 / 30000. ) * 1000; //note the dot
// wave_length = 0.033333
اﻹﺷﺎرات اﻟﺤﺴﺎﺑﯿﺔ اﻟﻤﺨﺘﺼﺮة
● }
أﻧﻈﻤﺔ اﻟﻌﺪ
اﻟﻨﻈﺎم اﻟﻌﺸﺮي Decimal System
ھﻮ اﻟﻨﻈﺎم اﻟﺬي ﻳﺴﺘﺨﺪﻣﻪ اﻟﺒﺸﺮ ﻓﻲ اﻟﻌﻤﻠﯿﺎت اﻟﺮﻳﺎﺿﯿﺔ و ●
اﻟﻤﻌﺎﻣﻼت و ...إﻟﺦ.
ﻧﻈﺎم اﻟﻌﺪ اﻟﻌﺸﺮي ﻳﻠﺰﻣﻨﺎ أن ﺗﻜﻮن اﻟﺨﺎﻧﺔ اﻟﻮاﺣﺪة ﻣﻨﻪ أﺣﺪ اﻷرﻗﺎم ●
●
اﻟﻨﻈﺎم اﻟﺜﻨﺎﺋﻲ Binary System
اﻟﺒﯿﺎﻧﺎت
ﻳﺘﻜﻮن اﻟﻨﻈﺎم اﻟﺜﻨﺎﺋﻲ ﻣﻦ ﺳﻠﺴﻠﺔ ﻣﻦ اﻟﺨﺎﻧﺎت ﻛﻞ ﺧﺎﻧﺔ ﺗﺤﺘﻤﻞ ان ●
ﺗﻀﺮب ﻛﻞ ﺧﺎﻧﺔ ﻣﻨﻪ ﺑﺈﺛﻨﯿﻦ ﻣﺮﻓﻮﻋﺔ إﻟﻰ ﻗﻮة ﺗﺤﺪد و ﻓﻖ ﺗﻮﺿﻊ ●
اﻟﺨﺎﻧﺔ
ﻣﺜﺎل: ●
ﺗﺤﻮﻳﻞ ﻣﻦ اﻟﻨﻈﺎم اﻟﺜﻨﺎﺋﻲ إﻟﻰ اﻟﻨﻈﺎم اﻟﻌﺸﺮي
اﻟﻤﺤﺎﺿﺮة اﻟﺜﺎﻧﯿﺔ
اﻟﻤﮭﻨﺪس :ﻣﺤﻤﺪ أزرق
اﻟﺒﻮاﺑﺎت اﻟﻤﻨﻄﻘﯿﺔ Logic gates
ا�خﺮج اﻟﺪﺧﻞ
Y A
1 0
0 1
اﻟﺒﻮاﺑﺎت اﻟﻤﻨﻄﻘﯿﺔ Logic gates
ا�خﺮج اﻟﺪﺧﻞ
Y B A
0 0 0
1 0 1
1 1 0
1 1 1
اﻟﺒﻮاﺑﺎت اﻟﻤﻨﻄﻘﯿﺔ Logic gates
ا�خﺮج اﻟﺪﺧﻞ
Y B A
0 0 0
0 0 1
0 1 0
1 1 1
اﻟﺒﻮاﺑﺎت اﻟﻤﻨﻄﻘﯿﺔ Logic gates
ا�خﺮج اﻟﺪﺧﻞ
Y B A
0 0 0
1 0 1
1 1 0
0 1 1
Boolean
false أوtrue ﺛﻨﺎﺋﯿﺔ ﺗﺄﺧﺬ إﻣﺎ ﻗﯿﻤﺔData Type ھﻮ ﺑﻨﯿﺔ ﻣﻌﻄﯿﺎت
ھﻲ ﻋﻤﻠﯿﺎت ﻟﻠﺘﺤﻘﻖ ﻣﻦ ﻋﻼﻗﺔ ﺑﯿﻦ ﻣﺪﺧﻠﯿﻦ ﺣﯿﺚ ﻳﻜﻮن ﻧﺎﺗﺞ ھﺬه اﻟﻌﻤﻠﯿﺎت إﻣﺎ
(false)۰أو (true)۱
ﻋﻤﻠﯿﺔ اﻟﺘﺤﻘﻖ ﻣﻦ اﻟﻤﺴﺎواة “ == ”:
ﻋﻤﻠﯿﺘﻲ اﻟﺘﺤﻘﻖ أﻛﺒﺮ ﻣﻊ اﻟﻤﺴﺎواة او اﺻﻐﺮ ﻣﻊ اﻟﻤﺴﺎواة” =< ” و “ => ” :
}
else
{
إذا ﻟم ﯾﺗﺣﻘﻖ اﻟﺷرط ﻧﻔذ اﻷﺗﻲ //...
}
if – else ﻣﺜﺎل
ﻣﺜﺎل ﻟﻤﻌﺮﻓﺔ ﻓﺌﺔ اﻟﻄﺎﻟﺐ ﻣﻦ ﻋﻼﻣﺘﻪ ﻓﻲ إﺣﺪى اﻹﻣﺘﺤﺎﻧﺎت ﺣﯿﺚ ﻧﻘﺮر أن ﻳﻜﻮن راﺳﺒﺎً أو
:ًﻧﺎﺟﺤﺎ
}
اﻟﺸﺮطﯿﺔelse if
) */اﻟﺸﺮط … *if( /
{
إذا ﺗﺣﻘﻖ اﻟﺷرط ﻧﻔذ اﻷﺗﻲ //...
}
) */ﺷﺮط أﺧﺮ … *else if( /
{
إذا ﻟم ﺗﺗﺣﻘﻖ اﻟﺷروط اﻟﺳﺎﺑﻘﺔ و ﺗﺣﻘﻖ اﻟﺷرط ھذا ﻧﻔذ اﻷﺗﻲ //...
}
else
{
إذا ﻟم ﺗﺗﺣﻘﻖ أي ﻣن اﻟﺷروط ﻧﻔذ اﻷﺗﻲ //...
}
ﻣﺜﺎل ﻧﻘﺮر أن ﻳﻜﻮن ﺿﻌﯿﻔﺎً ﻟﻤﻌﺮﻓﺔ ﻓﺌﺔ اﻟﻄﺎﻟﺐ ﻣﻦ ﻋﻼﻣﺘﻪ ﻓﻲ إﺣﺪى
:ًاﻹﻣﺘﺤﺎﻧﺎت ﺣﯿﺚ أو وﺳﻄﺎً أو ﺟﯿﺪاً أو ﻣﻤﺘﺎزا
#include <iostream>
using namespace std;
int main()
{
unsigned int student_grade; // Student grade variable
cout << “Enter student grade: “;
cin >> student_grade;
if(student_grade < 60) // Bad grade
{
cout << “Fail!” << endl;
}
else if((student_grade >= 60 )&&(student_grade < 70) // Moderate grade
{
cout << “Fair” << endl;
}
elseif((student_grade >=70)&&(student_grade < 80) // Good grade
{cout << “Good.” << endl;
}
elseif((student_grade >=80)&&(student_grade < 90) // Good grade
{cout << “Very Good.” << endl;
}
else // Excellent grade
{
cout << “Excellent!” << endl;
}
ﺑﺮﻣﺠﺔ ۱
اﻟﻤﺤﺎﺿﺮة اﻟﺜﺎﻟﺜﺔ
اﻟﻤﮭﻨﺪس :ﻣﺤﻤﺪ أزرق
أﻣﺜﻠﺔ
ﺑﺮﻧﺎﻣﺞ ﻳﻘﻮم ﺑﺈﻳﺠﺎد اﻟﻘﯿﻤﺔ اﻟﻤﻄﻠﻘﺔ ﻷي رﻗﻢ
ﺑﺮﻧﺎﻣﺞ ﻳﻘﻮم ﺑﺈدﺧﺎل رﻗﻢ وﻓﺤﺼﻪ ﻓﻲ ﺣﺎل ﻛﺎن اﻟﺮﻗﻢ ﺳﺎﻟﺒﺎ و ﻓﺮدﻳﺎ
ﻳﻀﺎف ﻟﻪ رﻗﻢ واﺣﺪ و ﻳﻀﺮب ﺑـ ۱-
ﺑﺮﻧﺎﻣﺞ ﻳﻘﻮم ﺑﺈدﺧﺎل رﻗﻢ ﻓﺎن ﻛﺎن ﻣﻦ ۱۸ﺣﺘﻰ ٥٦ﻳﻄﺒﻊ ﻣﻘﺒﻮل و اﻻ
ﻳﻄﺒﻊ ﻏﯿﺮ ﻣﻘﺒﻮل
ﻣﻼﺣﻈﺔ:
ان وﺿﻊ إﺷﺎرة \aﻓﻲ أﺧﺮ
إﺷﺎرة اﻟﺘﻨﺼﯿﺺ ﻳﻌﻄﻲ
ﻧﻐﻤﺔ ﺧﻄﺄ
ﻣﺜﺎل أﻋﺪ ﺣﺴﺎب اﻟﻘﯿﻤﺔ اﻟﻤﻄﻠﻘﺔ ﺑﺎﺳﺘﺨﺪام اﻟﻤﻌﺎﻣﻞ اﻟﺜﻼﺛﻲ
#include <iostream>
using namespace std;
int main()
{
int number;
int abs_number;
cout << "Enter a number ";
cin >> nummber;
abs_number = (number < 0)? number * 1: number;
cout << abs_number;
return 0;
}
برمجة 1
المحاضرة الرابعه
المهندس :محمد أزرق
ال switch
) */القيمة *switch (/
{
1 */:الحالة *case /
إذا نفذ حتى تصل إلى 1إذا تحققت أن القيمة تساوي الحالة // break
;break
2 */:الحالة *case /
إذا نفذ حتى تصل إلى 2إذا تحققت أن القيمة تساوي الحالة // break
;break
default:
نفذ إذا لم تتحقق أي حالة مما سبق //
}
وقت وصول القطار:مثال
include <iostream>
using namespace std;
int main()
{
int day_number;
cout << “Enter day by number (saturday = 0 ...): “;
cin >> day_number;
switch (day_number)
{
case 0:
cout << “Train will arrive at 8:00 AM” << endl;
break;
case 1:
case 4:
cout << “Train will arrive at 7:30 AM” << endl;
break;
case 2:
cout << “Train will arrive at 6:45 AM” << endl;
break;
case 3:
case 5:
case 6:
cout << “Holiday!!!” << endl;
break;
default:
cout << “Wrong Input” << endl;
}
return 0;}
برنامج آلة حاسبة باستخدام switch
الحلقات Loops
الحلقات :هي تكرار سلسلة من التعليمات ،و تقسم الحلقات إلى فئتين: ●
الحلقات العددية :التي يكون فيها عدد الدورات معين برقم ،مثال عليها حلقة for ●
الحلقات الشرطية :هي الحلقات التي يكون عدد الدورات فيها غير معينا ً لكن تنتهي الحلقة بتحقق شرط معين، ●
int main()
{
int number; // Input number storage
int power; // input power storage
int result; // the result of multiplying
cout << number << '^' << power << " = " << result << endl;
return 0;
}
برنامج لحساب العاملي لرقم
#include <iostream>
int main()
{
int number; // Input number storage
int result; // the result of multiplying
cout << "Enter number: ";
cin >> number ;
result = 1;
for(int i = 1; i <= number; i++)
{
result *=i;
}
)while(Condition
{
;code block
}
Condition: ھﻮ اﻟﺸﺮط اﻟﺬي ﺑﺘﺤﻘﻘﺔ ﺗﻜﻤﻞ اﻟﺤﻠﻘﺔ اﻟﺘﻜﺮار
Code block: ھﻲ اﻟﺘﻌﻠﯿﻤﺎت اﻟﻤﺮاد ﺗﻨﻔﯿﺬھﺎ داﺧﻞ اﻟﺤﻠﻘﺔ ﻓﻲ ﻛﻞ دورة ﻋﻤﻞ
flow chart ﻓﻲ الwhile ﺷﻜﻞ ال
while ﻣﺜﺎل ﻋﻦ إﺳﺘﻌﻤﺎل
وﻣن ﺛم ﯾطﺑﻌﮭﺎ وcapital letter و ﯾﺣوﻟﮭﺎ إﻟﻰsmall letter ﺑﺮﻧﺎﻣﺞ ﯾﻘﺒﻞ اﻟﺤﺮوف ﺑﺤﺠﻢ ●
#include <iostream>
using namespace std;
int main()
{
const unsigned char BEGIN_OF_SMALL_CHARS = 97;
const unsigned char END_OF_SMALL_CHARS = 122;
unsigned char ch;
ھﻲ ﺣﻠﻘﺔ ﺗﻨﻔﺬ اﻟﺘﻌﻠﯿﻤﺎت أوﻻً داﺧﻞ اﻟﺤﻠﻘﺔ ﻗﺒﻞ أن ﺗﺘﺤﻘﻖ ﻣﻦ اﻟﺸﺮط ●
do
{
;Code block
;) }while( condition
Condition: ھﻮ اﻟﺸﺮط اﻟﺬي ﺑﺘﺤﻘﻘﺔ ﺗﻜﻤﻞ اﻟﺤﻠﻘﺔ اﻟﺘﻜﺮار
Code block: ھﻲ اﻟﺘﻌﻠﯿﻤﺎت اﻟﻤﺮاد ﺗﻨﻔﯿﺬھﺎ داﺧﻞ اﻟﺤﻠﻘﺔ ﻓﻲ ﻛﻞ دورة ﻋﻤﻞ
flow chart ﻓﻲ الdo...whileﺷﻜﻞ ال
do...while ﻣﺜﺎل ﻋﻦ ال
ﻗﺎﺋﻤﺔ أواﻣﺮ
#include <iostream>
using namespace std;
int main()
{
char ch;
bool is_invalid_char;
12
break ﻣﺜﺎل أﺧﺮ ﻋﻦ إﺳﺘﺨﺪام
#include <iostream>
using namespace std;
cout << "value of a: " << a << endl;
int main () a = a + 1;
if( a > 15)
{
{
int a = 10; // Local variable // terminate the loop
declaration: break;
cout << “Enter number: “; }
}while( a < 20 );
cin >> a;
do // do loop execution return 0;
{ }
ﻣﺜﺎل أﺧﺮ ﺑﺮﻧﺎﻣﺞ ﻳﺠﻤﻊ ﻗﯿﻢ اﻹدﺧﺎل اﻟﻤﺘﺘﺎﻟﯿﺔ و ﻳﻘﻮم ﺑﻮﻗﻒ اﻹدﺧﺎل ﻋﻨﺪ إدﺧﺎل
۰ اﻟﻤﺴﺘﺨﺪم رﻗﻢ
#include <iostream>
using namespace std;
int main(){
float number, sum = 0.0;
while (true) else
{ {
cout << "Enter a number: "; break; // terminating the loop if
number equals to 0.0
cin >> number;
}
if(number != 0.0) }
{ cout << "Sum = " << sum;
sum += number; return 0;
}
}
ﺑﺮﻧﺎﻣﺞ ﻳﺤﺴﺐ ﻣﺠﻤﻮع ﻋﺸﺮ أرﻗﺎم و ﻳﻘﻒ ﻋﻨﺪﻣﺎ ﻳﻜﻮن اﻟﻤﺠﻤﻮع
ًاﻟﺤﺎﻟﻲ ﺳﺎﻟﺒﺎ
#include <iostream>
using namespace std;
if(sum < 0)
int main()
{
{ cout << "Negative sum" << endl;
const int INPUT_NUMBER_COUNT = 10; break;
}
int input_number; }
int sum = 0; if(sum >= 0)
{
for (int i = 1; i <= INPUT_NUMBER_COUNT; i++) cout << "The sum is " << sum << endl;
{ }
cout << "Enter number #" << i << ": ";
cout << "Program terminated!" << endl;
cin >> input_number; return 0;
sum += input_number; }
اﻟﻌﺒﺎرة continue
>#include <iostream
;using namespace std ھﻲ ﻋﺒﺎرة ﺗﺴﺘﺨﺪم ﻟﻠﻘﻔﺰ ﻣﻦ
)(int main اﻟﺪورة اﻟﺤﺎﻟﯿﺔ و اﻻﻧﺘﻘﺎل ﻋﻠﻰ
اﻟﺪورة اﻟﺘﻲ ﺗﻠﯿﮭﺎ
{
)for (int i = 1; i <= 10; ++i
{
)if( i == 6 || i == 9 ﻓﻲ ھﺬا اﻟﻤﺜﺎل ﻳﻘﻮم اﻟﺒﺮﻧﺎﻣﺞ
ﺑﺎﻟﻌﺪ ﻣﻦ اﻟﻮاﺣﺪ ﺣﺘﻰ اﻟﻌﺸﺮة
{
ﻟﻜﻨﻪ ﻟﻦ ﻳﻘﻮم ﺑﻌﺪ اﻟﺮﻗﻤﯿﻦ ٦و ۹
;continue
}
;'cout << i << '\t
}
;return 0
}
loops ﻣﻊ الcontinue ﻋﻤﻞ
17
ﻟﻌدد ﯾدﺧﻠﮫ اﻟﻣﺳﺗﺧدم3 ﺑﺮﻧﺎﻣﺞ ﻳﻘﻮم ﺑﻄﺒﻊ ﺳﻠﺴﺔ اﻟﻘﻮاﺳﻢ ﻋﻠﻰ
#include <iostream>
using namespace std;
int main()
{
int input_value;
cout << "Enter number: ";
cin >> input_value;
for(int i = 1; i <= input_value; i++)
{
if(i % 3==1) continue; // إذا ﻛﺎن اﻟﺮﻗﻢ ﻏﯿﺮ ﻗﺎﺳﻢ ﻋﻠﻰ3 ﻓﺗﺧطﻰ ھذه اﻟﺧطوة
cout << i << '\t';
}
return 0;}
ﺑﺮﻣﺠﺔ ۱
اﻟﻤﺤﺎﺿﺮة اﻟﺴﺎدﺳﺔ
م ﻣﺤﻤﺪ أزرق
اﻛﺘﺐ ﺑﺮﻧﺎﻣﺞ ﻟﺤﺴﺎب ﻗﺎﻧﻮن اوم
ﺑﺮﻧﺎﻣﺞ ﻟﺤﺴﺎب ﻣﻘﺴﻢ اﻟﺠﮭﺪ
اﻛﺘﺐ ﺑﺮﻧﺎﻣﺞ ﻳﻘﻮم ﺑﺤﺴﺎب ﺟﺪول اﻟﻀﺮب ﻟﺮﻗﻢ ﻣﺎ
اﻛﺘﺐ ﺑﺮﻧﺎﻣﺞ ﻳﻘﻮم ﺑﺎﻟﻌﺪ ﻣﻦ ۲۰ﺣﺘﻰ ۸۰ﺑﺨﻄﺔ ﻋﺪ ٥وﻻ
ﻳﻄﺒﻊ اﻟﻘﯿﻢ ۳۰و ٥۰و ٦۰
وظﯿﻔﺔ
أﻛﺘﺐ ﺑﺮﻧﺎﻣﺞ ﻳﻘﻮم ﺑﺤﺴﺎب ﻧﺎﺗﺞ ﻋﺪد ﻣﺮﻓﻮع إﻟﻰ ﻗﻮة ﻣﺘﻀﻤﻨﺎَ اﻟﻘﻮى اﻟﺴﺎﻟﺒﺔ
اﻛﺘﺐ ﺑﺮﻧﺎﻣﺞ ﻳﻘﻮم ﺑﺤﺴﺎب اﻟﻌﻼﻗﺔ اﻟﺘﺎﻟﯿﺔ :
ﻣﺴﺘﺨﺪﻣﺎ ﻣﻜﺘﺒﺔ اﻟﺮﻳﺎﺿﯿﺎت
= 𝑆𝑆 10 + 21 + 32 + 𝑛𝑛𝑛𝑛−1
اﻟﻤﺼﻔﻮﻓﺎت Arrays
ھﻲ ﻋﺒﺎرة ﻋﻦ ﺳﻠﺴﻠﺔ ﻣﺘﻮاﺻﻠﺔ ﻣﻦ اﻟﻤﺘﻐﯿﺮات ذات اﻟﻨﻮع اﻟﻮاﺣﺪ ﻓﻲ اﻟﺬاﻛﺮة ●
ﻣﺜﺎل:
;]int foo[5
ﺗﻌﺮﯾﻒ اﻟﻤﺼﻔﻮﻓﺔ Array decleration
وﯾﻤﻜﻦ أن ﻻ ﺗﺘﻀﻤﻦ اﻟﻘﯿﻢ ﻛﻠﮭﺎ ﻓﯿﻘﻮم اﻟﻤﺘﺮﺟﻢ ﺑﻮﺿﻊ أﺻﻔﺎر ﻣﻜﺎن اﻟﻌﻨﺎﺻﺮ اﻟﻠﺘﻲ ﻟﻢ ﺗﺤﺪد ﻗﯿﻤﮭﺎ ﻣﺜﺎل: ●
;]ArrayName[Index
ArrayName: ھﻮ اﺳﻢ اﻟﻤﺼﻔﻮﻓﺔ
Index: ھﻮ رﻗﻢ اﻟﻌﻨﺼﺮ اﻟﻤﺮاد ﻗﺮاﺋﺔ ﻗﯿﻤﺘﮫ
ﻧﺎﺗﺞ ھﺬه اﻟﺘﻌﻠﯿﻤﺔ ھﻲ ﻗﯿﻤﺔ اﻟﻌﻨﺼﺮ
ﻣﺜﺎل: ●
// arrays example
#include <iostream>
using namespace std;
int main()
{
int foo[5];
int result = 0;
for (int n = 0; n < 5; n++)
{
cout << “Enter element #” << n << “: “;
cin >> foo[n];
}
for (int j = 0; j < 5; j++)
{
result += foo[j];
}
cout << result << endl;
return 0;
}
ﻣﺜﺎل أﺧﺮ ﻋﻠﻰ اﻟﻤﺼﻔﻮﻓﺎت
ﺑﺮﻧﺎﻣﺞ ﯾﻘﻮم ﺑﺤﺴﺎب اﻟﻘﯿﻤﺔ اﻟﻜﺒﺮى و اﻟﻘﯿﻤﺔ اﻟﺼﻐﺮى ﻟﺴﻠﺴﻠﺔ ●
;]int input_values[INPUT_NUMBERS_COUNT ﯾﺠﺐ أن ﯾﻜﻮن اﻟﺤﺠﻢ إﻣﺎ ﻗﯿﻤﺔ ﻓﻮرﯾﺔ //
أو ﺛﺎﺑﺖ
;int min, max
for (int i = 0; i < INPUT_NUMBERS_COUNT; i++)
{
cin >> input_values[i];
}
min = max = input_values[0]; // set all registers to the first input number
for (int j = 1; j < INPUT_NUMBERS_COUNT; j++)
{
if(input_values[j] < min)
{
min = input_values[j];
}
else if(input_values[j] > max)
{
max = input_values[j];
}
}
cout << "The maximum number is: " << max << endl;
cout << "The minmum number is: " << min << endl;
return 0;
}
ﺑﺮﻣﺠﺔ ۱
اﻟﻤﺤﺎﺿﺮة اﻟﺴﺎدﺳﺔ
م ﻣﺤﻤﺪ أزرق
اﻛﺘﺐ ﺑﺮﻧﺎﻣﺞ ﻟﺤﺴﺎب ﻗﺎﻧﻮن اوم
ﺑﺮﻧﺎﻣﺞ ﻟﺤﺴﺎب ﻣﻘﺴﻢ اﻟﺠﮭﺪ
اﻛﺘﺐ ﺑﺮﻧﺎﻣﺞ ﻳﻘﻮم ﺑﺤﺴﺎب ﺟﺪول اﻟﻀﺮب ﻟﺮﻗﻢ ﻣﺎ
اﻛﺘﺐ ﺑﺮﻧﺎﻣﺞ ﻳﻘﻮم ﺑﺎﻟﻌﺪ ﻣﻦ ۲۰ﺣﺘﻰ ۸۰ﺑﺨﻄﺔ ﻋﺪ ٥وﻻ
ﻳﻄﺒﻊ اﻟﻘﯿﻢ ۳۰و ٥۰و ٦۰
اﻛﺘﺐ ﺑﺮﻧﺎﻣﺞ ﻳﻘﻮم ﺑﺤﺴﺎب ﻣﻌﺪل ﻋﻼﻣﺔ اﻟﻄﺎﻟﺐ ﺑﺤﯿﺚ ﻳﺴﺘﻤﺮ ﺑﺠﻤﻊ اﻟﻤﻮاد ﺣﯩﺚ ﻳﺪﺧﻞ
اﻟﻤﺴﺘﺨﺪم اﻟﺮﻗﻢ ﺻﻔﺮ ﻋﻨﺪھﺎ ﺗﻮﻗﻒ اﻟﺒﺮﻧﺎﻣﺞ و ﻓﻲ ﺣﺎل ادﺧﻞ اﻟﻤﺴﺘﺨﺪم ﻋﻼﻣﺔ أﻗﻞ ﻣﻦ ٦۰و
اﻛﺒﺮ ﻣﻦ ۱۰۰ﻳﻄﺒﻊ اﻟﺒﺮﻧﺎﻣﺞ ﻋﻼﻣﺔ ﺧﻄﺎ و ﻳﻄﻠﺐ اﻋﺎدة اﻻدﺧﺎل دون ان ﻳﺤﺴﺐ اﻟﻌﻼﻣﺔ اﻟﺘﻲ
ادﺧﻠﮭﺎ ﻓﻲ اﻟﻤﻌﺪل و ﻋﻨﺪ اﻧﺘﮭﺎء اﻟﺒﺮﻧﺎﻣﺞ ﻳﻄﺒﻊ ﻋﺪد اﻟﻤﻮاد اﻟﻤﺪﺧﻠﺔ واﻟﻤﻌﺪل
وظﯿﻔﺔ
أﻛﺘﺐ ﺑﺮﻧﺎﻣﺞ ﻳﻘﻮم ﺑﺤﺴﺎب ﻧﺎﺗﺞ ﻋﺪد ﻣﺮﻓﻮع إﻟﻰ ﻗﻮة ﻣﺘﻀﻤﻨﺎَ اﻟﻘﻮى اﻟﺴﺎﻟﺒﺔ
اﻛﺘﺐ ﺑﺮﻧﺎﻣﺞ ﻳﻘﻮم ﺑﺤﺴﺎب اﻟﻌﻼﻗﺔ اﻟﺘﺎﻟﯿﺔ :
ﻣﺴﺘﺨﺪﻣﺎ ﻣﻜﺘﺒﺔ اﻟﺮﻳﺎﺿﯿﺎت
= 𝑆𝑆 10 + 21 + 32 + 𝑛𝑛𝑛𝑛−1
اﻟﻤﺼﻔﻮﻓﺎت Arrays
ھﻲ ﻋﺒﺎرة ﻋﻦ ﺳﻠﺴﻠﺔ ﻣﺘﻮاﺻﻠﺔ ﻣﻦ اﻟﻤﺘﻐﯿﺮات ذات اﻟﻨﻮع اﻟﻮاﺣﺪ ﻓﻲ اﻟﺬاﻛﺮة ●
ﻣﺜﺎل:
;]int foo[5
ﺗﻌﺮﯾﻒ اﻟﻤﺼﻔﻮﻓﺔ Array decleration
وﯾﻤﻜﻦ أن ﻻ ﺗﺘﻀﻤﻦ اﻟﻘﯿﻢ ﻛﻠﮭﺎ ﻓﯿﻘﻮم اﻟﻤﺘﺮﺟﻢ ﺑﻮﺿﻊ أﺻﻔﺎر ﻣﻜﺎن اﻟﻌﻨﺎﺻﺮ اﻟﻠﺘﻲ ﻟﻢ ﺗﺤﺪد ﻗﯿﻤﮭﺎ ﻣﺜﺎل: ●
;]ArrayName[Index
ArrayName: ھﻮ اﺳﻢ اﻟﻤﺼﻔﻮﻓﺔ
Index: ھﻮ رﻗﻢ اﻟﻌﻨﺼﺮ اﻟﻤﺮاد ﻗﺮاﺋﺔ ﻗﯿﻤﺘﮫ
ﻧﺎﺗﺞ ھﺬه اﻟﺘﻌﻠﯿﻤﺔ ھﻲ ﻗﯿﻤﺔ اﻟﻌﻨﺼﺮ
ﻣﺜﺎل: ●
// arrays example
#include <iostream>
using namespace std;
int main()
{
int foo[5];
int result = 0;
for (int n = 0; n < 5; n++)
{
cout << “Enter element #” << n << “: “;
cin >> foo[n];
}
for (int j = 0; j < 5; j++)
{
result += foo[j];
}
cout << result << endl;
return 0;
}
ﻣﺜﺎل أﺧﺮ ﻋﻠﻰ اﻟﻤﺼﻔﻮﻓﺎت
ﺑﺮﻧﺎﻣﺞ ﯾﻘﻮم ﺑﺤﺴﺎب اﻟﻘﯿﻤﺔ اﻟﻜﺒﺮى و اﻟﻘﯿﻤﺔ اﻟﺼﻐﺮى و اﻟﻤﺘﻮﺳﻂ اﻟﺤﺴﺎﺑﻲ ●
ھﻲ ﻋﺒﺎرة ﻋﻦ ﺳﻠﺴﻠﺔ ﻣﺘﻮاﺻﻠﺔ ﻣﻦ اﻟﻤﺘﻐﯿﺮات ذات اﻟﻨﻮع اﻟﻮاﺣﺪ ﻓﻲ اﻟﺬاﻛﺮة ●
ﻣﺜﺎل:
;]int foo[5
ﺗﻌﺮﯾﻒ اﻟﻤﺼﻔﻮﻓﺔ Array decleration
وﯾﻤﻜﻦ أن ﻻ ﺗﺘﻀﻤﻦ اﻟﻘﯿﻢ ﻛﻠﮭﺎ ﻓﯿﻘﻮم اﻟﻤﺘﺮﺟﻢ ﺑﻮﺿﻊ أﺻﻔﺎر ﻣﻜﺎن اﻟﻌﻨﺎﺻﺮ اﻟﻠﺘﻲ ﻟﻢ ﺗﺤﺪد ﻗﯿﻤﮭﺎ ﻣﺜﺎل: ●
;]ArrayName[Index
ArrayName: ھﻮ اﺳﻢ اﻟﻤﺼﻔﻮﻓﺔ
Index: ھﻮ رﻗﻢ اﻟﻌﻨﺼﺮ اﻟﻤﺮاد ﻗﺮاﺋﺔ ﻗﯿﻤﺘﮫ
ﻧﺎﺗﺞ ھﺬه اﻟﺘﻌﻠﯿﻤﺔ ھﻲ ﻗﯿﻤﺔ اﻟﻌﻨﺼﺮ
ﻣﺜﺎل: ●
// arrays example
#include <iostream>
using namespace std;
int main()
{
int foo[5];
int result = 0;
for (int n = 0; n < 5; n++)
{
cout << “Enter element #” << n << “: “;
cin >> foo[n];
}
for (int j = 0; j < 5; j++)
{
result += foo[j];
}
cout << result << endl;
return 0;
}
ﻣﺜﺎل أﺧﺮ ﻋﻠﻰ اﻟﻤﺼﻔﻮﻓﺎت
ﺑﺮﻧﺎﻣﺞ ﯾﻘﻮم ﺑﺤﺴﺎب اﻟﻘﯿﻤﺔ اﻟﻜﺒﺮى و اﻟﻘﯿﻤﺔ اﻟﺼﻐﺮى و اﻟﻤﺘﻮﺳﻂ اﻟﺤﺴﺎﺑﻲ ●
اﻟﻤﺤﺎﺿﺮة اﻟﺘﺎﺳﻌﺔ
اﻟﻤﮭﻨﺪس :ﻣﺤﻤﺪ أزرق
Swapping اﻟﺘﺒﺪﯾﻞ
: ﻣﺜﺎل
int value_a = 34;
int value_b = 98;
int temp_value = value_b;
value_b = value_a;
value_a = temp_value;
// Now: value_a = 98; value_b = 98
اﻟﺘﺮﺗﯿﺐ Sorting
ﻧﻘﻮم ﺑﺘﺮﺗﯿﺐ اﻷﻋﺪاد ﻓﻲ ﻣﺼﻔﻮﻓﺔ ﯾﺪﺧﻠﮭﺎ اﻟﻤﺴﺘﺨﺪم ﺗﺼﺎﻋﺪﯾﺎ ً ﺑﺈﺳﺘﺨﺪام اﻟﺘﺒﺪﯾﻞ Swapingﺑﯾن
ﻓﻲ اﻟﻣﺻﻔوﻓﺔ 2 , 3ﺗﻘﻮم ﺑﻄﺒﻊ ﻗﯿﻤﺔ اﻟﻌﻨﺼﺮ اﻟﻤﺘﻮﺿﻊ ﻓﻲ اﻟﻤﻜﺎن cout << matrix[1][2]; //
int main()
{
const int MATRIX_ROWS = 3;
const int MATRIX_COLS = 3;
int a_mat[MATRIX_ROWS][MATRIX_COLS];
int b_mat[MATRIX_ROWS][MATRIX_COLS];
int sum_mat[MATRIX_ROWS][MATRIX_COLS];
}
}
cout << "Enter A matrix elements: " << endl;
for(int row_index = 0; row_index < MATRIX_ROWS; row_index++)
{
for(int col_index = 0; col_index < MATRIX_COLS; col_index++)
{
cout << "Element at(" << row_index << ", " << col_index
<< "): ";
cin >> a_mat[row_index][col_index];
}
}
اﻟﺬاﻛﺮة ھﻲ ﻋﺒﺎرة ﻋﻦ ﻣﺼﻔﻮﻓﺔ طﻮﻳﻠﺔ ﻣﻦ ال bytesو ﻳﺘﻢ اﻟﻮﺻﻮل ﻟﻌﻨﺎﺻﺮھﺎ ﺑﺎﻟﻌﻨﺎوﻳﻦ ،و ●
اﻟﻤﺆﺷﺮات) (pointersھﻲ ﻣﺘﻐﯿﺮات ﺗﺤﺘﻮي ﻋﻠﻰ ﻋﻨﻮان ﻓﻲ اﻟﺬاﻛﺮة ﺗﻮﺷﺮ ﻋﻠﯿﻪ. ●
ﻳﻤﻜﻦ ﺗﻌﺮﻳﻒ pointerﺑﻠﻐﺔ C/C++ﻛﺘﻌﺮﻳﻒ اﻟﻤﺘﺤﻮل اﻹﻋﺘﯿﺎدي ﻟﻜﻦ ﺑﺈﺿﺎﻓﺔ رﻣﺰ * ﻗﺒﻞ ●
17
اﻟﻌﻤﻠﯿﺔ )ﻋﻨﻮان ال( &
ﻳﻤﻜﻦ ﻣﻌﺮﻓﺔ ﻋﻨﻮان ﻣﺘﻐﯿﺮ ﻣﺎ ﻓﻲ اﻟﺬاﻛﺮة ﻋﻦ طﺮﻳﻖ اﻟﻌﻤﻠﯿﺔ )&( address ofﻛﻤﺎ ﻓﻲ ●
اﻟﻤﺜﺎل اﻟﺘﺎﻟﻲ:
;int var
تﻗﻮم ﺑﻄﺒﻊ ﻋﻨﻮان اﻟﻤﺘﻐﯿﺮ varﻓﻲ اﻟﺬاﻛﺮة cout << &var; //
ﻓﺒﺘﻠﻚ اﻟﻌﻤﻠﯿﺔ ﻧﻘﻮم ﺑﺈﺳﻨﺎد ﻗﯿﻤﺔ ﻟﻠﻤﺆﺷﺮ ﻋﻠﻰ ﺳﺒﯿﻞ اﻟﻤﺜﺎل: ●
إذا أردﻧﺎ أن ﻧﻄﺒﻊ ﻗﯿﻤﺔ ﻣﺆﺷﺮ ﻋﻠﻰ ﺳﺒﯿﻞ اﻟﻤﺜﺎل ﻧﻜﺘﺐ: ●
ﺗﻘﻮم ﺑﻄﺒﻊ اﻟﻤﻜﺎن اﻟﺬاﻛﺮي اﻟﻤﺆﺷﺮ إﻟﯿﻪ cout << ptr; //
18
اﻟﻌﻤﻠﯿﺔ ﻗﯿﻤﺔ ال)*(
ﻳﻤﻜﻨﻨﺎ اﻟﻮﺻﻮل إﻟﻰ اﻟﺒﯿﺎﻧﺎت اﻟﻤﺆﺷﺮ إﻟﯿﮭﺎ ﺑﻤﺆﺷﺮ ﻣﺎ ﻋﺒﺮ اﻟﻌﻤﻠﯿﺔ )*( value ofﻗﺒﻞ إﺳﻢ ●
اﻟﻤﺆﺷﺮ ﻣﺜﺎل:
;int z_val = 56
;int *ptr_to_z = &z_val
ﺗﻘﻮم ﺑﻄﺒﻊ ﻗﯿﻤﺔ اﻟﻤﺘﺤﻮل 56 z_valاﻟﺘﻲ ھﻲ cout << *ptr_to_z; //
وﻳﻤﻜﻨﻨﺎ إﺳﻨﺎد ﻗﯿﻤﺔ ﻟﻠﻌﻨﻮان اﻟﺬاﻛﺮي اﻟﻤﺆﺷﺮ إﻟﯿﻪ ﻋﻠﻰ ﺳﺒﯿﻞ اﻟﻤﺜﺎل ﺑﺎﻟﻄﺮﻳﻘﺔ اﻟﺘﺎﻟﯿﺔ: ●
#include <iostream>
using namespace std;
int main ()
{
int var = 20; // actual variable declaration.
int *ip; // pointer variable
ip = &var; // store address of var in pointer
variable
return 0;
}
اﻟﺘﺤﻮﻳﻼت ﻓﻲ اﻟﻤﺆﺷﺮات
Casting in pointers
إن اﻟﺘﺤﻮﻳﻞ ﻣﻦ ﻧﻮع ﻣﺆﺷﺮ إﻟﻰ ﻧﻮع ﻣﺆﺷﺮ أﺧﺮ ﻛﺎﻟﺘﺤﻮﻳﻞ ﻣﻦ * intإﻟﻰ * charﻣﻣﻛن ﻟﻛن ﻣﻌﻧﺎه ●
أن اﻟﻌﻨﺼﺮ اﻟﻤﺆﺷﺮ إﻟﯿﻪ ﺳﻮف ﻳﺘﻢ ﻗﺮاءة أول byteﻣﻨﻪ ﻓﻘﻂ
ﻣﺜﺎل: ●
23
ﻓﮭﻢ اﻟﻤﺼﻔﻮﻓﺎت ﺑﺸﻜﻞ أﻋﻤﻖ ۲
ﻳﻤﻜﻦ ﺗﻄﺒﯿﻖ اﻟﻌﻤﻠﯿﺎت اﻟﺤﺴﺎﺑﯿﺔ ﻋﻠﻰ اﻟﻤﺆﺷﺮات ﻛﻤﺎ ﻳﺘﻢ = )1ﺗﻄﺒﯿﻖ اﻟﻌﻤﻠﯿﺎت ذاﺗﮭﺎ ●
ﻋﻠﻰ اﻟﻤﺘﻐﯿﺮات وﻟﻜﻦ ھﻨﺎ ﻳﺘﻢ اﻟﺘﻌﺪﻳﻞ ﻋﻠﻰ اﻟﻌﻨﻮان اﻟﻤﺆﺷﺮ إﻟﯿﻪ.
ﻣﺜﺎل: ●
25
ﺑﻌﺾ اﻷﻣﻮر ﻓﻲ اﻟﻤﺆﺷﺮات
26