Search for notes by fellow students, in your own course and all over the country.
Browse our notes for titles which look like what you need, you can preview any of the notes via a sample of the contents. After you're happy these are the notes you're after simply pop them into your shopping cart.
Document Preview
Extracts from the notes are below, to see the PDF you'll receive please use the links above
ﻃﺮﻳﻖ اﻟﺒﺮﻣﺠﺔ
ﻓﻲ
هﺎﻧﻲ اﻷﺗﺎﺳﻲ – اﻟﻔﺮﻳﻖ اﻟﻌﺮﺑﻲ ﻟﻠﺒﺮﻣﺠﺔ
ﺁﺧﺮ ﺗﻌﺪﻳﻞ ﻓﻲ 1002/02/11
ﻃﺮﻳﻖ اﻟﺒﺮﻣﺠﺔ ﻓﻲ ﺳﻲ++
ﻣﻼﺣﻈﺔ : هﺬا اﻟﻜﺘﺎب هﻮ ﻗﻴﺪ اﻻﻋﺪاد ﺣﺎﻟﻴﺎ وهﻮ ﻟﻢ ﻳﻜﻤﻞ
...
com
ﺣﻘﻮق اﻟﻨﺸﺮ ﻣﺤﻔﻮﻇﺔ ﻟﻠﻔﺮﻳﻖ اﻟﻌﺮﺑﻲ ﻟﻠﺒﺮﻣﺠﺔ 1002 )(http://www
...
com
2
ﻃﺮﻳﻖ اﻟﺒﺮﻣﺠﺔ ﻓﻲ ﺳﻲ++
اﻟﻔﻬﺮس
ﺣﻘﻮق اﻟﻨﺸﺮ ﻣﺤﻔﻮﻇﺔ ﻟﻠﻔﺮﻳﻖ اﻟﻌﺮﺑﻲ ﻟﻠﺒﺮﻣﺠﺔ 1002 )(http://www
...
com
3
ﻃﺮﻳﻖ اﻟﺒﺮﻣﺠﺔ ﻓﻲ ﺳﻲ++
ﻣﻘﺪﻣﺔ
ﺣﻘﻮق اﻟﻨﺸﺮ ﻣﺤﻔﻮﻇﺔ ﻟﻠﻔﺮﻳﻖ اﻟﻌﺮﺑﻲ ﻟﻠﺒﺮﻣﺠﺔ 1002 )(http://www
...
com
4
ﻃﺮﻳﻖ اﻟﺒﺮﻣﺠﺔ ﻓﻲ ﺳﻲ++
ﺣﻘﻮق اﻟﻨﺸﺮ ﻣﺤﻔﻮﻇﺔ ﻟﻠﻔﺮﻳﻖ اﻟﻌﺮﺑﻲ ﻟﻠﺒﺮﻣﺠﺔ 1002 )(http://www
...
com
5
اﻟﺪرس اﻷول – أﺳﺎﺳﻴﺎت اﻟﺒﺮﻣﺠﺔ
ﻃﺮﻳﻖ اﻟﺒﺮﻣﺠﺔ ﻓﻲ ﺳﻲ++
أﺳﺎﺳﻴﺎت اﻟﺒﺮﻣﺠﺔ
ﻓﻲ هﺬا اﻟﺪرس ﺳﻮف أﺷﺮح آﻴﻔﻴﺔ آﺘﺎﺑﺔ أول ﺑﺮﻧﺎﻣﺞ ﻟﻚ ﺑﺎﻟﺴﻲ++ ﺑﺎﺳـﺘﺨﺪام 0
...
هـﺬا ﻻ ﻳﻌﻨـﻲ أﻧـﻪ ﻻﻳﻤﻜﻨـﻚ اﺳـﺘﺨﺪام
ﻣﺘﺮﺟﻤﺎت أﺧﺮى ﻣﺜﻞ ++ Borland Cوﻟﻜﻦ ﺳـﻮف ﻳﻜـﻮن ﺷـﺮﺣﻲ آﻠـﻪ ﻋﻠـﻰ ++ Visual Cوذﻟـﻚ ﻣـﻦ أﺟـﻞ اﻟـﺘﻤﻜﻦ ﻣـﻦ
اﺳﺘﺨﺪام هﺬﻩ اﻟﺒﻴﺌﺔ ﻓﻲ ﺣﺎل أردﻧﺎ ﻟﻼﻧﺘﻘﺎل إﻟﻰ ﺑﺮﻣﺠﺔ ﺗﻄﺒﻴﻘﺎت وﻧﺪوز ﺑﺎﺳﺘﺨﺪاﻣﻬﺎ
...
1
...
ﺣﺴـﻨﺎ ﻟﻤـﺎذا ﻻ
ﻧﺠﻬﺰ اﻟﺸﻮاء وﻧﻘﻮم ﺑﺘﺸﻐﻴﻞ اﻟﻔﻴﺠﻮال ﺳﻲ اﻵن !
إذا ﺗﻤﺖ ﻋﻤﻠﻴﺔ اﻟﺘﺸﻐﻴﻞ ﺑﻨﺠﺎح ﻃﺒﻌﺎ ﺳﻮف ﺗﺤﺼﻞ ﻋﻠﻰ ﺷﻜﻞ ﻣﺸﺎﺑﻪ إﻟﻰ اﻟﺸﻜﻞ 1
...
ﺷﻜﻞ 1 -1
اﻟﺨﻄﻮات اﻟﻼزﻣﺔ ﻣﻦ أﺟﻞ اﻟﺒﺪأ ﻓﻲ أي ﻣﺸﺮوع ﻓﻲ هﺬﻩ اﻟﺪروس هﻲ اﻟﺘﺎﻟﻴﺔ :
• اﺧﺘﺮ Newﻣﻦ اﻟﻘﺎﺋﻤﺔ Fileوﺳﻮف ﺗﺤﺼﻞ ﻋﻠﻰ ﻧﺎﻓﺬة آﻤﺎ ﻓﻲ اﻟﺸﻜﻞ 1-2
...
arabteam2000
...
Win32 Console Applicationوﻣـﻦ ﺛـﻢ اآﺘـﺐ اﺳـﻢ اﻟﻤﺸـﺮوع ﻓـﻲ اﻟﺨﺎﻧـﺔ
، Project Nameوﻟﻴﻜﻦ ﻋﻠﻰ ﺳﺒﻴﻞ اﻟﻤﺜﺎل اﺳﻢ اﻟﻤﺸﺮوع
...
• اﺿﻐﻂ ﻋﻠﻰ
...
ﺷﻜﻞ 1 -3
• ﺗﺄآﺪ ﻣﻦ اﺧﺘﻴﺎر An empty projectوﻣﻦ ﺛﻢ اﺿﻐﻂ ﻋﻠﻰ
...
ﻳﻤﻜﻨـﻚ
أن ﺗﺘﺨﻴﻞ اﻟﻤﺸﺮوع آﺒﻴﺌﺔ ﻋﻤﻞ ﻣﻨﻈﻤﺔ ﻟﺒﺮﻧﺎﻣﺠﻚ ، ﺣﻴﺚ ﺗﻘﻮم ﺑﺎﺿﺎﻓﺔ أي ﻋﺪد ﻣﻦ اﻟﻤﻠﻔـﺎت ﻟﻠﻤﺸـﺮوع وﺗﻨﻈﻴﻤﻬـﺎ ﺗﻤﺎﻣـﺎ
آﻤﺎ ﺗﻨﻈﻢ اﻟﻤﻠﻔﺎت ﻓﻲ ﻣﺴﺘﻜﺸﻒ اﻟﻮﻧﺪوز
...
ﻋﻨﺪ ﻋﻮدﺗﻚ إﻟﻰ اﻟﺒﻴﺌﺔ اﻟﺮﺋﻴﺴﻴﺔ ﻟﻠﻔﻴﺠﻮال ﺳﻲ ﺳﻮف ﺗﻼﺣﻆ أن اﻟﻘﺴﻢ اﻷﻳﺴﺮ ﺻﺎر ﻳﺤﺘﻮي ﻋﻠﻰ اﺳﻢ ﻣﺸﺮوﻋﻚ اﻟﺬي
آﺘﺒﺘﻪ وهﻲ ﻣﺸﺎﺑﻬﺔ ﻟﻠﺸﻜﻞ 1-4
...
هﺬﻩ اﻟﻤﺠﻠﺪات هـﻲ وهﻤﻴـﺔ أي ﻻ
ﻳﻮﺟﺪ ﻟﻬﺎ ﻣﻘﺎﺑﻞ ﻋﻠﻰ اﻟﻘﺮص اﻟﺼﻠﺐ
...
ﺣﻘﻮق اﻟﻨﺸﺮ ﻣﺤﻔﻮﻇﺔ ﻟﻠﻔﺮﻳﻖ اﻟﻌﺮﺑﻲ ﻟﻠﺒﺮﻣﺠﺔ 1002 )(http://www
...
com
7
اﻟﺪرس اﻷول – أﺳﺎﺳﻴﺎت اﻟﺒﺮﻣﺠﺔ
ﻃﺮﻳﻖ اﻟﺒﺮﻣﺠﺔ ﻓﻲ ﺳﻲ++
اﻵن ﻣﻦ أﺟﻞ آﺘﺎﺑﺔ اﻟﺒﺮﻧﺎﻣﺞ اﻷول ﻳﺠﺐ ﻋﻠﻴﻨﺎ ﻣﻦ اﻧﺸﺎء ﻣﻠﻒ آﻮد ﺟﺪﻳﺪ وهﺬا ﻣﻦ اﻷﻣﺮ Newﻣﻦ اﻟﻘﺎﺋﻤﺔ
...
Projectsﻃﺒﻌـﺎ ﻳﻤﻜﻨـﻚ أن
ﺗﺨﻤﻦ ﻣﺎهﻮ اﻟﺬي ﺳﻮف ﻧﺨﺘﺎرﻩ
...
ﺳﻮف ﺗﺠﺪ أﻧﻪ ﺗـﻢ اﺿـﺎﻓﺔ اﻟﻤﻠـﻒ test
...
>#include
cout << "My first program
;)0( return
}
1 PROGRAM
ﻳﺠﺐ أن ﺗﻨﺘﺒﻪ أن ﻟﻐﺔ اﻟﺴﻲ++ ﺗﻔﺮق ﺑﻴﻦ اﻷﺣﺮف اﻟﻜﺒﻴﺮة واﻷﺣﺮف اﻟﺼﻐﻴﺮة
...
main
2
...
ﻋﻤﻠﻴﺔ ﺗﺮﺟﻤﺔ اﻟﻤﺸﺮوع وﺑﻨﺎء اﻟﻤﻠﻒ اﻟﺘﻨﻔﻴﺬي ﻓﻲ اﻟﻔﻴﺠﻮال ﺳﻲ++ ﺗﺘﻢ ﺑﺨﻄﻮة واﺣﺪة وهﻲ ﻋﻦ ﻃﺮﻳﻖ اﺧﺘﻴﺎر اﻷﻣـﺮ
Build FirstProg
...
Fوﻣﻦ أﺟﻞ ﺗﻨﻔﻴـﺬ اﻟﻤﺸـﺮوع أو اﻟﻤﻠـﻒ اﻟﺘﻨﻔﻴـﺬي اﺧﺘـﺮ اﻷﻣـﺮ
Execute FirstProg
...
Ctrl+Fﻃﺒﻌـﺎ ﻳﻤﻜﻨـﻚ أوﻻ ﺑﻨـﺎء اﻟﻤﻠـﻒ اﻟﺘﻨﻔﻴـﺬي
وﻣﻦ ﺑﻌﺪهﺎ ﺗﻨﻔﻴﺬﻩ ﺑﺨﻄﻮﺗﻴﻦ وﻟﻜﻦ اﻷﻣﺮ Executeﻳﻘﻮم ﺑﺸﻜﻞ ﺁﻟﻲ ﺑﻌﻤﻠﻴﺔ اﻟﺘﺮﺟﻤﺔ وﺑﻨﺎء اﻟﻤﻠﻒ اﻟﺘﻨﻔﻴـﺬي إذا دﻋـﺎ اﻷﻣـﺮ
إﻟﻰ ذﻟﻚ
...
ﺷﻜﻞ 1 -5
ﺣﻘﻮق اﻟﻨﺸﺮ ﻣﺤﻔﻮﻇﺔ ﻟﻠﻔﺮﻳﻖ اﻟﻌﺮﺑﻲ ﻟﻠﺒﺮﻣﺠﺔ 1002 )(http://www
...
com
8
اﻟﺪرس اﻷول – أﺳﺎﺳﻴﺎت اﻟﺒﺮﻣﺠﺔ
ﻃﺮﻳﻖ اﻟﺒﺮﻣﺠﺔ ﻓﻲ ﺳﻲ++
3
...
اﻹﺟﺎﺑـﺔ
هﻲ آﻠﻤﺘﻴﻦ ﻃﺒﻌﺎ وهﻲ هﻨﺪﺳﺔ اﻟﺒﺮﻧﺎﻣﺞ ، ﺗﻤﺎﻣﺎ آﻤﺎ ﻳﻔﻌﻞ إﺧﻮاﻧﻨﺎ ﻓﻲ اﻟﻬﻨﺪﺳﺔ اﻟﻤﺪﻧﻴﺔ أم اﻟﻤﻌﻤﺎرﻳﺔ
...
ﻟﻦ أﺗﻄﺮق ﻓﻲ هﺬﻩ اﻟﺪروس إﻟﻰ ﻣﻮاﺿﻴﻊ اﻟﺘﺼﻤﻴﻢ وﺗﺤﻠﻴﻞ اﻟﻤﻮارد ﻷﻧﻬﺎ ﻗﺪ ﺗﻜﻮن ﺧﺎرﺟﺔ ﻋﻦ اﻃﺎر هﺬﻩ اﻟـﺪروس وﻟﻜـﻦ
آﺪروس ﻟﺘﻌﻠﻴﻢ ﻟﻐﺔ اﻟﺴﻲ++ ﻳﺠﺐ أن أﻧﻮﻩ إﻟﻰ ﻣﻮاﺿﻴﻊ ﺗﻨﻈﻴﻢ اﻟﺒﺮﻧﺎﻣﺞ واﻟﺘﻲ هﻲ ﺟﺰء ﻻ ﻳﺘﺠﺰء ﻣﻦ هﻨﺪﺳﺔ اﻟﺒﺮﻧﺎﻣﺞ
...
اﻟﺘﻌﻠﻴﻘـﺎت هـﻲ ﺟـﺰء ﻣـﻦ اﻟﺒﺮﻧـﺎﻣﺞ
اﻟﺬي ﻳﻬﻤﻞ أﺛﻨﺎء ﻋﻤﻠﻴﺔ ﺗﺮﺟﻤﺔ اﻟﺒﺮﻧﺎﻣﺞ وهﻲ ﺗﻔﻴﺪ ﻓﻲ ﺗﻔﺴـﻴﺮ اﻟﺨﻄـﻮات اﻟﺘـﻲ ﺗﻘـﻮم ﺑﻬـﺎ
...
)PROGRAM 1
...
2 (b
This program calculates the sum of 10 and 20 and prints it on screen
Programmed by : Anonymous
0003/1/1 : Date
*/
**
**
**
/*
)(int main
{
;int sum
// This will hold the sum of the numbers
// Store 10 + 20 in sum
// Print the sum value
;02 + 01 = sum
;cout << sum << endl
// End the program
;)0( return
}
ﻃﺒﻌﺎ ﺳﻮف ﺗﻘﻮل أن اﻟﺒﺮﻧﺎﻣﺞ اﻟﺜﺎﻧﻲ أﺳﻬﻞ ﻟﻠﻘﺮاﺋﺔ واﻟﻔﻬﻢ ﻣﻦ اﻷول ﻟﻌﺪة أﺳﺒﺎب
...
• وﺿﻊ أﺳﻄﺮ ﻓﺎرﻏﺔ ﺑﻴﻦ ﻗﺴﻢ وﺁﺧﺮ ﻓﻲ اﻟﻜﻮد ، اﻷﻗﺴﺎم ﺗﻜﻮن ﻣﺘﺮاﺑﻄﺔ ﻣﻨﻄﻘﻴﺎ ﻓﻴﻤﺎ ﺑﻴﻨﻬﺎ
...
ﺣﻘﻮق اﻟﻨﺸﺮ ﻣﺤﻔﻮﻇﺔ ﻟﻠﻔﺮﻳﻖ اﻟﻌﺮﺑﻲ ﻟﻠﺒﺮﻣﺠﺔ 1002 )(http://www
...
com
9
ﻃﺮﻳﻖ اﻟﺒﺮﻣﺠﺔ ﻓﻲ ﺳﻲ++
اﻟﺪرس اﻷول – أﺳﺎﺳﻴﺎت اﻟﺒﺮﻣﺠﺔ
ﺑﺎﻟﻨﺴﺒﺔ إﻟﻰ اﻟﺘﻌﻠﻴﻘﺎت ﻓﻴﻤﻜﻦ آﺘﺎﺑﺘﻬﺎ ﺑﺸﻜﻠﻴﻦ آﻤﺎ هﻮ ﻣﻮﺿﺢ ﻓﻲ اﻟﺒﺮﻧﺎﻣﺞ اﻷﺧﻴﺮ
...
أﻣﺎ اﻟﺸﻜﻞ اﻵﺧﺮ ﺑﺎﺳﺘﺨﺪام */ و /* اﻟﺮﻣﺰ اﻷول ﻳﻔـﺘﺢ ﻓﻘـﺮة ﺗﻌﻠﻴـﻖ
واﻟﺮﻣﺰ اﻟﺜﺎﻧﻲ ﻳﻐﻠﻖ هﺬﻩ اﻟﻔﻘﺮة ، ذآﺮت ﻓﻘﺮة ﻷن هﺬا اﻟﻨﻮع ﻣﻦ اﻟﺘﻌﻠﻴﻖ ﻣﻤﻜـﻦ أن ﻳﻤﺘـﺪ ﻋﻠـﻰ ﻋـﺪة أﺳـﻄﺮ أو ﻳﻤﻜـﻦ أن
ﻳﻜﻮن ﻓﻲ ﺳﻄﺮ واﺣﺪ
...
1 ﻣﻠﺨﺺ اﻟﺪرس
• ﻣﻦ أﺟﻞ اﻟﺒﺪأ ﺑﻤﺸﺮوع ﺑﺮﻣﺠﻲ ﻳﺠﺐ اﻧﺸﺎء ﻣﺸﺮوع ﺟﺪﻳﺪ ﻓﻲ اﻟﻔﻴﺠﻮال ﺳﻲ++ ﻋﻦ ﻃﺮﻳـﻖ اﺧﺘﻴـﺎر Newﻣـﻦ
اﻟﻘﺎﺋﻤﺔ
...
File
• ﻗﻤﻨﺎ ﺑﻜﺘﺎﺑﺔ أول ﺑﺮﻧﺎﻣﺞ ﻓﻲ اﻟﺴﻲ++ وﺗﻨﻔﻴﺬﻩ
...
ﻣﻦ أﺟﻞ ﺗﻨﺰﻳﻞ ﻣﻠﻔﺎت ﻣﺸﺮوع هﺬا اﻟﺪرس اﻧﻘﺮ هﻨﺎ
...
arabteam2000
...
ﻣـﻦ اﻷﻣـﻮر
اﻟﻤﻬﻤﺔ ﺟﺪا آﻤﺎ هﻮ اﻟﺤﺎل ﻓﻲ ﺑﺎﻗﻲ اﻟﻠﻐﺎت هﻮ ﻋﻤﻠﻴﺔ ﺗﺤﺪﻳﺪ ﻣﺎ هﻮ ﻧﻮع هﺬﻩ اﻟﻌﻨﺎﺻﺮ أو ﺑﻜﻠﻤـﺔ أﺧـﺮى أﻧـﻮاع اﻟﻤﻌﻄﻴـﺎت
...
ﻋﻠـﻰ ﺳـﺒﻴﻞ اﻟﻤﺜـﺎل اﻷﻧـﻮاع اﻟﻤﺸـﺘﻘﺔ هـﻲ
ﺗﻠﻚ اﻷﻧﻮاع اﻟﺘﻲ ﺗﻌﺘﻤﺪ ﻋﻠﻰ اﻷﻧﻮاع اﻷﺳﺎﺳﻴﺔ ﻣﺜﻞ اﻟﻤﺼﻔﻮﻓﺎت
...
اﻷوﻟﻰ هﻲ اﻟﺘـﻲ ﺗﺒﻘـﻰ ﺛﺎﺑﺘـﺔ ﻃـﻮل
ﻓﺘﺮة ﺗﻨﻔﻴﺬ اﻟﺒﺮﻧﺎﻣﺞ ، أﻣﺎ اﻟﺜﺎﻧﻴﺔ هﻲ اﻟﺘﻲ ﺗﺘﻐﻴﺮ ﻗﻴﻤﺘﻬﺎ
...
Variablesﻃﺒﻌﺎ آﻼ اﻟﺼﻨﻔﻴﻦ اﻟﺴﺎﺑﻘﻴﻦ ﻳﺠﺐ أن ﺗﻨﻄﺒﻖ ﻋﻠﻴـﻪ ﻣﺎذآﺮﻧـﺎﻩ
ﺑﺎﻟﻨﺴﺒﺔ إﻟﻰ اﻷﻧﻮاع ؛ ﻋﻠﻰ ﺳﺒﻴﻞ اﻟﻤﺜﺎل اﻟﻤﺘﺤﻮﻻت ﻳﺠﺐ ﺗﺤﺪﻳﺪ ﻧﻮﻋﻬﺎ ﺣﺘﻰ ﻧﺴﺘﻄﻴﻊ اﻟﺘﻌﺎﻣﻞ ﻣﻌﻬﺎ
...
اﻟﺘﻌﺒﻴـﺮ
ﻳﺘﻜﻮن ﻣﻦ ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﺤـﺪود operandsأو اﻟﻘـﻴﻢ و اﻟﻌﻮاﻣـﻞ
...
اﻟﻌﻮاﻣﻞ ﻳﻤﻜﻦ ﺗﺼﻨﻴﻔﻬﺎ إﻟـﻰ ﻋـﺪة أﺻـﻨﺎف
أﻳﻀﺎ ﻓﻤﻨﻬﺎ ﻋﻮاﻣﻞ ﻣﻦ أﺟﻞ اﻟﻌﻤﻠﻴﺎت اﻟﺤﺴﺎﺑﻴﺔ آﺎﻟﺠﻤﻊ واﻟﻀﺮب وﻣﻨﻬـﺎ ﻋﻮاﻣـﻞ اﻟﻤﻘﺎرﻧـﺔ آﺎﻷﺻـﻐﺮ واﻷآﺒـﺮ
...
هﺬا اﻟﺪرس ﻳﻮﺟﺪ ﻓﻴﻪ ﻋﺪد هﺎﺋﻞ ﻣﻦ اﻟﻤﻌﻠﻮﻣﺎت ﻣـﻊ ﻗﻠﻴـﻞ ﻣـﻦ اﻟﺘﻄﺒﻴـﻖ ، ﻟـﺬا ﻟـﻴﺲ ﻣـﻦ اﻟﻀـﺮوري ﻓﻬﻤـﻪ
ﺑﺸﻜﻞ آﺎﻣﻞ وﻟﻜﻦ ﻳﺠﺐ ﻗﺮاﺋﺘﻪ ﺑﺸﻜﻞ آﺎﻣﻞ واﻟﺮﺟﻮع إﻟﻴﻪ إذا دﻋﺖ اﻟﺤﺎﺟﺔ ﻓﻲ اﻟﺪروس اﻟﻼﺣﻘﺔ
...
2 اﻟﺜﻮاﺑﺖ اﻟﺼﺤﻴﺤﺔ – Integer Constants
هﺬﻩ اﻟﺜﻮاﺑﺖ هﻲ ﻋﺒﺎرة ﻋﻦ أﻋﺪاد ﻗﺪ ﺗﻜﻮن ﻣﻮﺟﺒﺔ أو ﺳـﺎﻟﺒﺔ
...
اﻷﻋﺪاد ﺑﺎﻟﻨﻈﺎم اﻟﻌﺸﺮي ﺗﺘﻜﻮن ﻣـﻦ اﻷرﻗـﺎم ﻣـﻦ 0 إﻟـﻰ 9 واﻟـﺮﻗﻢ اﻷول ﻳﺠـﺐ أن ﻳﻜـﻮن ﻏﻴـﺮ اﻟـﺮﻗﻢ 0
...
دﻗﺔ هـﺬﻩ اﻷﻋـﺪاد ﺗﻌﺘﻤـﺪ ﻋﻠـﻰ اﻟﻤﺴـﺎﺣﺔ
اﻟﺘﻲ ﻳﺤﺠﺰهﺎ اﻟﻤﺘﺮﺟﻢ ﻟﻠﻌﺪد ، وهﺬا ﻳﺨﺘﻠﻒ ﻣﻦ ﺣﺎﺳﺐ إﻟﻰ ﺁﺧـﺮ ﻓﻔـﻲ اﻷﺟﻬـﺰة اﻟﺘـﻲ ﺗﺤﺘـﻮي ﻋﻠـﻰ ﻣﺴـﺠﻼت ﺑﺤﺠـﻢ
61ﺑﺖ ﻓﺈن ال integerﺳﻮف ﻳﺤﺠﺰ ﻟﻪ 61ﺑﺖ وﺑﺎﻟﺘﺎﻟﻲ ﻓﺈن ﻣﺠﺎﻟﻪ ﻳﺘﺮاوح ﺑﻴﻦ 86723- إﻟﻰ 76723
...
ﺑﺎﻟﻨﺴﺒﺔ إﻟﻰ اﻷﻋﺪاد ﻓﻲ اﻟﻨﻈﺎم اﻟﺜﻤﺎﻧﻲ ﻓﺈﻧﻬﺎ ﻳﺠﺐ أن ﺗﺒﺪأ ﺑﺎﻟﺮﻗﻢ 0 وهﺬﻩ أﻣﺜﻠﺔ ﻋﻠﻴﻬﺎ :
5320
3210
7770
020
أﻣﺎ اﻷﻋﺪاد ﺑﺎﻟﻨﻈﺎم اﻟﺴﺖ ﻋﺸﺮي ﻓﻬﻲ ﺗﺒﺪأ ﺑﺎﻟﺮﻣﺰ 0xأو 0Xوهﺬا أﻣﺜﻠﺔ ﻋﻠﻰ هﺬا :
0x0A2F
20XECA
43210x
0xFFFF
ﻓﻲ ﺣﺎل ﺗﺨﻄﻰ اﻟﺜﺎﺑﺖ اﻟﻤﺠﺎل اﻟﻤﺴﻤﻮح ﻓﻴﻪ ﻓﺈن ﻣﻌﻈﻢ اﻟﻤﺘﺮﺟﻤﺎت ﺗﻘﻮم ﺑﺎﻟﺘﺤﺬﻳﺮ ﻋﻦ ذﻟﻚ
...
982L
2
...
اﻟﺼـﻴﻐﺔ اﻟﻤﺒﺎﺷـﺮة واﻟﺒﺴـﻴﻄﺔ
أﻣﺜﻠﺔ ﻋﻠﻰ هﺬا :
6295141
...
21
1
...
0
اﻟﻨﻘﻄﺔ اﻟﺘﻲ ﺗﻔﺼـﻞ اﻟﻘﺴـﻢ اﻟﺤﻘﻴﻘـﻲ واﻟﻜﺴـﺮي ﻻ ﺗﺸـﺘﺮط أن ﺗﺤﻄـﺎط ﺑـﺮﻗﻤﻴﻦ ﺣﻴـﺚ ﻳﻤﻜـﻦ آﺘﺎﺑـﺔ اﻟـﺮﻗﻢ اﻟﺜﺎﻧﻴـﺔ
واﻟﺜﺎﻟﺚ ﻓﻲ اﻟﻤﺜﺎل اﻟﺴﺎﺑﻖ آﺎﻟﺘﺎﻟﻲ :
...
ﺣﻘﻮق اﻟﻨﺸﺮ ﻣﺤﻔﻮﻇﺔ ﻟﻠﻔﺮﻳﻖ اﻟﻌﺮﺑﻲ ﻟﻠﺒﺮﻣﺠﺔ 1002 )(http://www
...
com
11
اﻟﺪرس اﻟﺜﺎﻧﻲ – اﻷﻧﻮاع و اﻟﻌﻮاﻣﻞ و اﻟﺘﻌﺎﺑﻴﺮ
ﻃﺮﻳﻖ اﻟﺒﺮﻣﺠﺔ ﻓﻲ ﺳﻲ++
وﻟﻜﻦ ﻳﻔﻀﻞ ، ﻋﻠﻰ آﻞ اﻷﺣﻮل ، اﺳﺘﺨﺪام اﻟﺼﻴﻐﺔ اﻟﺘﻲ ﺗﺠﻌﻞ اﻟﺒﺮﻧﺎﻣﺞ ﻗﺎﺑﻞ ﻟﻠﻘﺮاﺋﺔ ﺑﺸﻜﻞ واﺿﺢ
...
0e
)43210
...
34e
3
...
‘Xإن ﻗﻴﻤﺔ اﻟﺜﺎﺑﺖ
اﻟﻤﺤﺮﻓﻲ هﻲ ﻋﺒﺎرة ﻋﻦ ﻗﻴﻤﺔ هـﺬا اﻟﺤـﺮف ﻓـﻲ ﺟـﺪول اﻟﻤﺤـﺎرف ﻓـﻲ اﻟﻨﻈـﺎم أو اﻟﺠﻬـﺎز
...
ASCII (American Standard Code for Information Interchangeﻓﻔـﻲ ﺟـﺪول ASCIIﺗﺒﻠـﻎ ﻗﻴﻤـﺔ
اﻟﻤﺤﺮف ’ ‘Xاﻟﻘﻴﻤﺔ 88
...
escape characterوهـﻲ
ﺗﺴﺘﺨﺪم ﻟﻠﺘﻌﺎﻣﻞ ﻣﻊ اﻟﻤﺤﺎرف اﻟﺘﻲ ﻣﻦ اﻟﺼﻌﺐ اﻟﺘﻌﺎﻣﻞ ﻣﻌﻬﺎ أو ﻣﻦ اﻟﺼﻌﺐ ادﺧﺎﻟﻬﺎ ﻣﻦ ﻟﻮﺣﺔ اﻟﻤﻔﺎﺗﻴﺢ ﻣﺒﺎﺷﺮة
...
اﻟﻤﺤﺮﻓﻴﻦ اﻟﺴﺎﺑﻘﻴﻦ ﻳﻌﺘﺒﺮو آﻤﺤﺮف واﺣﺪ ﻣﻦ وﺟﻬﺔ ﻧﻈﺮ اﻟﻤﺘﺮﺟﻢ ، ﺳﻮف أﺳﺮد هﺬﻩ
اﻟﻤﺤﺎرف هﻨﺎ :
Alarm bell
New line
Horizontal tab
Vertical tab
backspace
Carriage return
Formfeed
Single quote
Double quote
backslash
Question mark
NULL character
\a
\n
\t
\v
\b
\r
\f
’\
”\
\\
?\
0\
اﻵن ﻋﻠﻰ ﺳﺒﻴﻞ اﻟﻤﺜﺎل إذا أردت اﻟﺘﻌﺎﻣﻞ ﻣﻊ اﻟﻤﺤـﺮف \ ﻓﻴﺠـﺐ أن ﺗﻜﺘـﺐ ’\\‘ ﻋﻮﺿـﺎ ﻋـﻦ ’\‘
...
اﻟﻨﺎﺗﺞ هﻮ ﻋﺒﺎرة ﻋﻦ رﻗﻢ ﺳﺖ ﻋﺸﺮي ﻳﻤﺜﻞ دﻟﻴﻞ ﻓﻲ ﺟﺪول اﻟﻤﺤﺎرف ﻓﻲ اﻟﺠﻬﺎز ﻋﻠﻰ ﺳﺒﻴﻞ اﻟﻤﺜـﺎل
ﻓﺈن اﻟﻤﺤﺮف ’ ‘Xﻗﻴﻤﺘﻪ 85 0xﻓﻲ ﺟﺪول ASCIIوﺑﺎﻟﺘﺎﻟﻲ ﻳﻤﻜﻦ ﺗﻤﺜﻴﻠﻪ أﻳﻀـﺎ ﺑﺎﻟﺼـﻴﻐﺔ ’85
...
اﻟﻤﺤﺮف اﻷﺧﻴﺮ اﻟﻤﻮﺟﻮدة ﻓﻲ اﻟﻘﺎﺋﻤﺔ اﻟﺴﺎﺑﻘﺔ ﻳﻌﺘﺒﺮ اﻟﻤﺤﺮف اﻷول ﻓﻲ ﺟﺪول ASCIIوﻳﺴﻤﻰ ﺑﻤﺤﺮف اﻟﺼـﻔﺮ أو ال
...
4
...
وﻳﻤﻜﻦ أﻳﻀـﺎ اﺳـﺘﺨﺪام ﻧﻔـﺲ
ﻣﺤﺎرف اﻟﻬﺮوب اﻟﺴﺎﺑﻘﺔ ﺑﺪاﺧﻞ اﻟﺴﻠﺴﻠﺔ اﻟﻨﺼﻴﺔ
...
arabteam2000
...
over two lines
اﻟﻤﺘﺮﺟﻢ ﻳﻌﺘﺒﺮ اﻟﺴﻠﺴﻠﺔ اﻟﺴﺎﺑﻘﺔ آﺴﻠﺴﻠﺔ واﺣﺪة أي ﻳﻘﻮم ﺑﺘﺠﺎهﻞ اﻟﻤﺤﺮف \ ﺑﺎﻻﺿﺎﻓﺔ إﻟـﻰ رﻣـﺰ اﻟﺴـﻄﺮ اﻟﺠﺪﻳـﺪ
اﻟﺬي ﺑﻌﺪﻩ
...
“This string extends over two lines
وأﻳﻀﺎ اﻟﺴﻠﺴﻠﺘﻴﻦ اﻟﻤﻨﻔﺼﻠﺘﻴﻦ اﻟﺘﻲ ﺗﻠﻲ أﺣﺪهﻤﺎ اﻷﺧﺮى ﻳﻘﻮم اﻟﻤﺘﺮﺟﻢ ﺑﺎﺿﺎﻓﺘﻬﻤﺎ إﻟﻰ ﺑﻌﻀـﻬﻤﺎ ﻟﺘﻜـﻮﻳﻦ ﺳﻠﺴـﻠﺔ
واﺣﺪة
...
أﻳﻀﺎ اﻷﻣﺮ اﻟﻬﺎم ﺟﺪا ﺑﺎﻟﻨﺴﺒﺔ إﻟﻰ ﻣﻮﺿـﻮع اﻟﺴﻼﺳـﻞ ﻓـﻲ اﻟﺴـﻲ++ ﻓـﺈن أي ﺳﻠﺴـﻠﺔ ﺳـﻮف ﺗﻨﺘﻬـﻲ ب NULL
Characterأو ’0\‘
...
ﻟـﺬﻟﻚ ﺗﺴـﻤﻰ اﻟﺴﻼﺳـﻞ
اﻟﻨﺼﻴﺔ ﻓﻲ ﻟﻐﺔ اﻟﺴﻲ ب Null terminated stringأو اﻟﺴﻠﺴﻠﺔ اﻟﻤﻨﺘﻬﻴﺔ ﺑﻤﺤﺮف اﻟﺼﻔﺮ
...
وﺑﺎﻟﺘﺎﻟﻲ ﻳﺠﺐ
اﻻﻧﺘﺒﺎﻩ ﻓﻲ ﺣﺎﻟﺔ اﺳﺘﺨﺪام اﻟﻤﺤﺎرق واﻟﺴﻼﺳﻞ واﻟﺘﻔﺮﻳﻖ ﻓﻴﻤﺎ ﺑﻴﻨﻬﻤﺎ
...
2 اﻟﻤﻌﺮﻓﺎت – Identifiers
ﻟﻐﺔ اﻟﺴﻲ++ ﻣﺜﻞ ﺑﺎﻗﻲ اﻟﻠﻐﺎت ﺗﺘﻄﻠﺐ ﻣﻨﻚ اﻋﻄﺎء أﺳﻤﺎء ﻣﻌﻴﻨﺔ ﻟﻠﻤﻌﻄﻴﺎت اﻟﺘﻲ ﺗﺴﺘﺨﺪﻣﻬﺎ ﻓﻲ ﺑﺮﻧﺎﻣﺠـﻚ
...
وﻳﺠـﺐ أن ﻳﺼـﻨﻊ اﻟﻤﻌـﺮف ﺑﺎﻻﻋﺘﻤـﺎد
ﻋﻠﻰ اﻟﻘﺎﻋﺪة اﻟﺘﺎﻟﻴﺔ :
اﻟﻤﻌﺮف هﻮ ﻋﺒﺎرة ﻋﻦ ﺧﻠﻴﻂ ﻣـﻦ اﻟﻤﺤـﺎرف واﻷرﻗـﺎم واﻟﺘـﻲ ﻳﺠـﺐ أن ﺗﺒـﺪأ ﺑﻤﺤـﺮف
...
ﻣﻦ اﻟﻘﺎﻋﺪة اﻟﺴﺎﺑﻘﺔ ﻳﻤﻜﻦ أن ﻧﻀﻊ ﺑﻌﺾ اﻷﻣﺜﻠﺔ ﻟﻤﻌﺮﻓﺎت ﺗﻌﺘﺒﺮ ﺻﺤﻴﺤﺔ ﻟﻤﺘﺮﺟﻢ اﻟﺴﻲ++ :
counter
BUFFER
unit_cost
h2o
programName AVeryLongIdentifier
time
x
_MAX
ﻳﻌﺘﺒﺮ أي ﻣﻌﺮﻓﻴﻦ هﻤﺎ واﺣﺪ ﻓﻲ ﺣﺎﻟﺔ آﺎن ﻟﻬﻤﺎ ﻧﻔﺲ اﻻﻣﻼء وﻧﻔﺲ ﺣﺎﻟﺔ اﻷﺣـﺮف )اﻟﺼـﻐﻴﺮة أم اﻟﻜﺒﻴـﺮة(
...
ﻳﻔﻀﻞ أن ﻳﻌﻄﻲ اﻟﻤﺒﺮﻣﺞ اﺳﻤﺎء ﻟﻠﻤﻌﺮﻓﺎت ﺗﺪل ﻋﻠﻰ اﺳﺘﺨﺪاﻣﻬﺎ
...
s
ﺑﻌﺾ اﻟﻤﻌﺮﻓﺎت ﺗﻜﻮن ﻣﺤﺠﻮزة ﻻﺳﺘﺨﺪام ﻟﻐﺔ اﻟﺴﻲ++ وهﻲ ﻣﺎﺗﺴﻤﻰ ب
...
ﺣﻘﻮق اﻟﻨﺸﺮ ﻣﺤﻔﻮﻇﺔ ﻟﻠﻔﺮﻳﻖ اﻟﻌﺮﺑﻲ ﻟﻠﺒﺮﻣﺠﺔ 1002 )(http://www
...
com
31
اﻟﺪرس اﻟﺜﺎﻧﻲ – اﻷﻧﻮاع و اﻟﻌﻮاﻣﻞ و اﻟﺘﻌﺎﺑﻴﺮ
ﻃﺮﻳﻖ اﻟﺒﺮﻣﺠﺔ ﻓﻲ ﺳﻲ++
bad_typeid
catch
const_cast
do
enum
false
friend
int
new
public
short
static_cast
this
type_info
union
void
bad_cast
case
const
delete
else
extern
for
inline
namespace
protected
return
static
template
try
typename
virtual
auto
break
class
default
dynamic_cast
explicit
float
if
mutable
private
reinterpret_cast
sizeof
switch
true
typeid
using
while
asm
bool
char
continue
double
except
finally
goto
long
operator
register
signed
struct
throw
typedef
unsigned
volatile
ﺑﻘﻲ أﻣﺮ هﺎم ﻳﺠﺐ اﻟﺘﻨﻮﻳﻪ ﻟﻪ وذﻟﻚ أﻧﻪ ﻻ ﻳﻨﺼﺢ ﺑﺎﺳﺘﺨﺪام رﻣـﺰزﻳﻦ )_( ﻓـﻲ ﺑﺪاﻳـﺔ اﻟﻤﻌـﺮف ، ﻣﺜـﻞ ، __MAXوذﻟـﻚ
ﺑﺴﺒﺐ أن اﻟﻤﻌﺮﻓﺎت ﺑﻬﺬا اﻟﺸﻜﻞ ﻣﺤﺠﻮزة ﻻﺳﺘﺨﺪام اﻟﻤﻜﺘﺒﺎت اﻟﻘﻴﺎﺳﻴﺔ ﻟﻠﺴﻲ++
...
2 ﺗﻌﺮﻳﻒ اﻟﻤﺘﺤﻮﻻت – Variable definition
ﻣﻦ اﺳﻤﻬﺎ ﻓﺈن اﻟﻤﺘﺤﻮﻻت هﻲ ﻋﺒﺎرة ﻋﻦ ﻋﻨﺎﺻﺮ ﻣﻌﻄﻴﺎت ﺗﺘﻐﻴﺮ ﻗﻴﻤﻬﺎ أﺛﺘﺎء وﻗـﺖ ﺗﻨﻔﻴـﺬ اﻟﺒﺮﻧـﺎﻣﺞ
...
ﻃﺒﻌـﺎ إن ﻋﻤﻠﻴـﺔ ﺗﺤﺪﻳـﺪ
ﻧﻮع اﻟﻤﺘﺤﻮل ﺗﻌﺮف ﺑﺘﻌﺮﻳﻒ اﻟﻤﺘﺤﻮﻻت أو
...
type-specifierإن اﻷﻧـﻮاع اﻷﺳﺎﺳـﻴﺔ
ﻓﻲ اﻟﺴﻲ++ ﻳﻤﻜﻦ اﻋﺘﺒﺎرهﺎ :
)(integer
)(character
)(single precision floating point
)(double precision floating point
int
char
float
double
وآﻤﺜﺎل ﻋﻠﻰ ﺗﻌﺮﻳﻒ اﻟﻤﺘﺤﻮﻻت :
;hours, minutes, seconds
int
هﻨﺎ اﻟﻤﺘﺤﻮﻻت hoursو minutesو secondsآﻠﻬـﺎ ﻋﺒـﺎرة ﻋـﻦ ﻣﺘﺤـﻮﻻت ﻷﻋـﺪاد ﺻـﺤﻴﺤﺔ integerوﺑﺎﻟﺘـﺎﻟﻲ ﻳﻤﻜـﻦ
ﺗﺨﺰﻳﻦ أي ﻋﺪد integerﺿﻤﻨﻬﺎ واﺳﺘﺨﺪام هﺬا اﻟﻌﺪد ﻻﺣﻘﺎ ﻓﻲ ﺑﺮﻧﺎﻣﺠﻚ
...
وهﺬا ﻣﺜﺎل ﻋﻠﻰ ذﻟﻚ :
;day, month, year
;centigrade, fahrenheit
;initial
;epsilon
int
float
char
double
وﻋﻨﺪ اﻟﺘﻌﺮﻳﻒ ﻳﻔﻀﻞ ﺗﻌﺮﻳﻒ اﻟﻤﺘﺤﻮﻻت ذات اﻟﻌﻼﻗﺔ ﻓﻴﻤﺎ ﺑﻴﻨﻬﺎ ﻓﻲ ﻣﺠﻤﻮﻋﺔ واﻟﺒﺎﻗﻲ ﻓﻲ ﻣﺠﻤﻮﻋﺔ أﺧﺮى آﺎﻟﺘﺎﻟﻲ :
;counter, value
;day, month, year
int
int
وأﻳﻀﺎ ﻳﻤﻜﻦ آﺘﺎﺑﺔ اﻟﺘﻌﺮﻳﻒ ﻋﻠﻰ ﻋﺪة أﺳﻄﺮ آﺎﻟﻤﺜﺎل اﻟﺘﺎﻟﻲ :
ﺣﻘﻮق اﻟﻨﺸﺮ ﻣﺤﻔﻮﻇﺔ ﻟﻠﻔﺮﻳﻖ اﻟﻌﺮﺑﻲ ﻟﻠﺒﺮﻣﺠﺔ 1002 )(http://www
...
com
41
اﻟﺪرس اﻟﺜﺎﻧﻲ – اﻷﻧﻮاع و اﻟﻌﻮاﻣﻞ و اﻟﺘﻌﺎﺑﻴﺮ
ﻃﺮﻳﻖ اﻟﺒﺮﻣﺠﺔ ﻓﻲ ﺳﻲ++
,day, month, year
;hours, minutes, seconds
int
أﻳﻀﺎ ﻳﻤﻜﻦ اﻋﻄﺎء ﻗﻴﻢ ﻣﻌﻴﻨﺔ ﻟﻠﻤﺘﺤﻮﻻت أﺛﻨﺎء ﺗﻌﺮﻳﻔﻬﺎ وهﺬا ﻳﺘﻢ ﻋﻦ ﻃﺮﻳﻖ اﺳﺘﺨﺪام رﻣﺰ اﻻﻟﺤﺎق )=( آﺎﻟﺘﺎﻟﻲ :
;0 = sum
;41
...
أﻣﺎ اﻟﻤﺘﺤﻮﻻت اﻟﺘﻲ ﻳـﺘﻢ ﺗﻌﺮﻳﻔﻬـﺎ ﻣـﻦ
ﻏﻴﺮ اﻋﻄﺎﺋﻬﺎ ﻗﻴﻤﺔ ﻣﻌﻴﻨﺔ ﻓﻘﻴﻤﺘﻬﺎ ﻏﻴﺮ ﻣﻌﺮوﻓﺔ وﻻ ﻳﻨﺼﺢ ﺑﺎﺳﺘﺨﺪاﻣﻬﺎ ﺣﺘﻰ ﻳﺘﻢ اﻋﻄﺎﺋﻬﺎ ﻗﻴﻤﺔ ﻣﻌﻴﻨﺔ ﻓﻲ اﻟﺒﺮﻧﺎﻣﺞ
...
ﻳﻜﻔـﻲ اﻵن أن ﺗﻌـﺮف أن آـﻞ ﻣﺘﺤـﻮل ﻟـﻪ اﻟﺨـﻮاص
اﻟﺘﺎﻟﻴﺔ :
•
إﻧﻬﺎ ﻣﻦ ﻧﻮع ﻣﺎ
...
آﻞ ﻣﺘﺤﻮل ﻳﺠﺐ أن ﻳﻜﻮن ﻣﺘﻮاﺟﺪ ﻓﻲ اﻟﺬاآﺮة ﻓﻲ ﻋﻨﻮان ﻣﻌﻴﻦ
...
ﻋﻠﻰ ﺳﺒﻴﻞ اﻟﻤﺜﺎل اﻋﺘﺒﺮ اﻟﺘﻌﺮﻳﻒ اﻟﺘﺎﻟﻲ :
;52 = x
int
ﻋﻠﻰ ﻣﺴﺘﻮى ﻓﻬﻤﻨﺎ ﻓﺈﻧﻪ ﻳﻤﻜﻦ اﻟﻘﻮل أن ﺗﻢ ﺣﺠﺰ ﻣﺴـﺎﺣﺔ ﻓـﻲ اﻟـﺬاآﺮة ﻣـﻦ أﺟـﻞ اﺳـﺘﻴﻌﺎب أرﻗـﺎم integerوهـﺬﻩ
اﻟﻤﺴﺎﺣﺔ ﻳﺘﻢ اﻟﺘﻌﺎﻣﻞ ﻣﻌﻬﺎ ﻋﻦ ﻃﺮﻳﻖ اﻟﻤﻌﺮف
...
اﻧﻈﺮ اﻟﺸﻜﻞ 2-2
...
arabteam2000
...
2 اﻟﻮاﺻﻔﺎت – Qualifiers
اﻟﻮاﺻﻔﺎت ﻓﻲ ﻟﻐﺔ اﻟﺴﻲ++ اﻟﺘﻲ ﺳﻮف ﻧﺸﺮﺣﻬﺎ ﻓﻲ هﺬﻩ اﻟﻔﻘﺮة هﻲ :
•
•
•
longو
...
unsigned
...
إن اﺳـﺘﺨﺪام longﻳﻌﻄـﻲ
اﻟﻤﺘﺤﻮل أآﺒﺮ ﻣﺠﺎل ﻣﻤﻜﻦ ﻟﻸﻋﺪاد اﻟﺘﻲ ﻳﻤﻜﻦ اﺳﺘﺨﺪاﻣﻬﺎ
...
أﻣـﺎ ﺣﺎﻟﻴـﺎ ﺗﺤـﺖ اﻟﻮﻧـﺪوز
وﺑﺎﺳﺘﺨﺪام اﻷﺟﻬﺰة اﻟﺤﺪﻳﺜﺔ ﻓﺈن ال intوال longآﻼهﻤﺎ ﺗﺄﺧﺬ ﻣﺴـﺎﺣﺔ ﻣﻘـﺪارهﺎ 23ﺑـﺖ
...
longوﻟﻜـﻦ ﻣـﻦ أﺟـﻞ اﻟﺘﻮاﻓﻘﻴـﺔ ﺑ ـﻴﻦ اﻟﻤﺘﺮﺟﻤـﺎت اﻟﻤﺨﺘﻠﻔ ـﺔ ﻳﺠـﺐ أن ﺗﻌﻠ ـﻢ أن intﺗﺘﻌﻠـﻖ ﺑﺎﻟﺤﺎﺳـﺐ
ـ
ـ
ـ
ـ
ـ
ـ
ـ ـ
ـ
ـ
ـ
ـ
اﻟﻤﺴﺘﺨﺪم واﻟﻤﺘﺮﺟﻢ اﻟﻤﺴﺘﺨﺪم أﻣﺎ longﻓﻬﻲ دوﻣﺎ ﺗﺤﺠﺰ أآﺒﺮ ﻣﺴﺎﺣﺔ ﻣﻤﻜﻨﺔ ﻣﻦ أﺟﻞ اﻟﺘﻌﺎﻣﻞ ﻣﻊ اﻷﻋﺪاد وﻗـﺪ ﺗﻜـﻮن
46ﺑﺖ ﻓﻲ ﻋﻠﻰ ﻣﻌﺎﻟﺠﺎت 46ﺑﺖ اﻟﺠﺪﻳﺪة
...
intﻓﻴﺪل ﻋﻠﻰ أن اﻟﻤﺘﺤﻮل ﺳـﻮف ﻳﺴـﺘﺨﺪم ﻣـﻦ أﺟـﻞ ﻣﺠـﺎل ﺻـﻐﻴﺮ ﻟﻸﻋـﺪاد
...
وﻣﺜﺎل ﻋﻠﻰ ﺗﻌﺮﻳﻒ اﻟﻤﺘﺤﻮﻻ ﺑﺎﺳﺘﺨﺪام اﻟﻮاﺻﻒ : short
;day_of_week
short int
ﻓﻲ اﻟﻤﺜﺎﻟﻴﻦ اﻟﺴﺎﺑﻘﻴﻦ ﻳﻤﻜﻦ ﺗﺠﺎهﻞ اﻟﻨﻮع ، intأي ﻳﻤﻜﻦ اﻟﺘﻌﺮﻳﻒ آﺎﻟﺘﺎﻟﻲ :
;memory_address
;day_of_week
long
short
أﻳﻀﺎ اﺳﺘﺨﺪام longﻗﺒﻞ doubleﻳﻌﻄﻲ اﻟﻤﺘﺤﻮل ﻣﺠﺎل أآﺒﺮ ﻣﻦ اﻟﻤﺠﺎل اﻟﻤﺴﺘﺨﺪم ﻓﻲ
...
أﻣﺎ ﻓﻲ ﺣﺎﻟﺔ أردﻧﺎ
أن ﻳﻜﻮن ﻣﺠﺎل اﻷﻋﺪاد اﻟﻤﺴﺘﺨﺪﻣﺔ هﻲ ﻓﻘﻂ ﻣﻮﺟﺒﺔ ﻓﻴﺠﺐ أن ﻧﺴـﺒﻖ intأو charﺑﺎﻟﻮاﺻـﻒ
...
charوآﻤﺜﺎل ﻋﻠﻰ اﺳﺘﺨﺪام هﺬا اﻟﻮاﺻﻒ :
;natural
;record_number
;i_am_byte
unsigned int
unsigned
unsigned char
إن اﺳﺘﺨﺪام intﻓﻲ اﻟﻤﺜﺎل اﻟﺴﺎﺑﻖ آﺎن اﺧﺘﻴـﺎري وﻳﻤﻜـﻦ ﺗﺠﺎهﻠﻬـﺎ
...
أﺧﻴﺮا ، إن اﻟﻮاﺻﻒ constﻳﻤﻜﻦ اﺳﺘﺨﺪاﻣﻪ ﻣﻊ ﺗﻌﺮﻳﻒ أي ﻣﺘﺤﻮل وذﻟﻚ ﻟﺘﺤﺪﻳﺪ أن ﻗﻴﻤﺔ هﺬا اﻟﻤﺘﺤﻮل ﻟﻦ ﺗﺘﻐﻴـﺮ أﺑـﺪا
أﺛﻨﺎء ﺗﻨﻔﻴﺬ اﻟﺒﺮﻧﺎﻣﺞ
...
اﻟﻤﺘـﺮﺟﻢ ﻓـﻲ هـﺬﻩ اﻟﺤﺎﻟـﺔ ﻳﺴـﺘﻄﻴﻊ أن ﻳﻀـﻊ هـﺬا
اﻟﻤﺘﺤﻮل ﻓﻲ ذاآﺮة ﻗﺎﺑﻠﺔ ﻟﻠﻘﺮاﺋﺔ ﻓﻘﻂ أو ﻳﻘﻮم ﺑﺎﻟﺘﻌﺪﻳﻞ ﻋﻠﻰ اﻟﺒﺮﻧﺎﻣﺞ ﺑﺎﻟﺸـﻜﻞ اﻟـﺬي ﻳﺮﻳـﺪ )
...
3 = pi
;01 = student_number
const double
const int
ﻣﻦ ﻏﻴﺮ أي ﻋﻤﻠﻴﺔ ﺗﻬﻴﺌﺔ ﻓﺈن هﺬا ﻳﻌﺘﺒﺮ ﺧﻄﺄ أن ﺗﻜﺘﺐ :
;pi
const double
هﻨﺎ ﻟﻢ ﻧﻌﻄﻲ اﻟﻤﺘﺤﻮل piأي ﻗﻴﻤﺔ وﺑﻤﺎ أﻧﻪ ﻻ ﻳﻤﻜﻦ اﻋﻄﺎء piأي ﻗﻴﻤﺔ أﺛﻨﺎء ﺗﻨﻔﻴﺬ اﻟﺒﺮﻧﺎﻣﺞ ﻓﺈن piﺗﺒﻘﻰ ذات ﻗﻴﻤـﺔ
ﻏﻴﺮ ﻣﻌﺮﻓﺔ وﺑﺎﻟﺘﺎﻟﻲ ﻓﺈن ﻣﺜﻞ هﺬا اﻟﻨﻮع ﻣﻦ اﻟﺘﻌﺮﻳﻔﺎت ﻳﻌﻄﻴﻨﺎ ﺧﻄﺄ أﺛﻨﺎء اﻟﺘﺮﺟﻤﺔ
...
arabteam2000
...
( MSDN
Range of Values
System dependent
System dependent
721 –128 to
767,23 –32,768 to
746,384,741,2 –2,147,483,648 to
–9,223,372,036,854,775,808 to
708,577,458,630,273,322,9
721 –128 to
552 0 to
767,23 –32,768 to
535,56 0 to
746,384,741,2 –2,147,483,648 to
592,769,492,4 0 to
)3
...
7E +/- 308 (15 digits
)1
...
وﻻﺣﻆ ﻓﻲ اﻟﺠﺪول اﻟﺴﺎﺑﻖ ﻓﺈن اﻷﻧﻮاع اﻟﻤﺴـﺒﻮﻗﺔ ب ﻋﻼﻣﺘـﻴﻦ )_( هـﻲ اﺿـﺎﻓﺔ ﻣـﻦ
اﻟﻔﻴﺠﻮال ﺳﻲ++ أي أن اﺳﺘﺨﺪاﻣﻬﺎ ﻳﻌﻨﻲ أن ﺑﺮﻧﺎﻣﺠﻚ ﺳﻮف ﻳﺘﺮﺟﻢ ﻓﻘﻂ ﻓﻲ ﺑﻴﺌﺔ اﻟﻔﻴﺠـﻮال ﺳـﻲ++
...
اﻟﺸـﺊ
اﻟﻮﺣﻴﺪ اﻟﺬي ﻗﺪ ﻳﻔﻴﺪك هﻮ 46 __intاﻟﺘﻲ ﺗﻌﻄﻴﻚ ﻣﺠﺎل ﺿﺨﻢ ﺟﺪا ﻟﻼﻋـﺪاد وﻟﻜـﻦ ﻳﺠـﺐ أن ﺗﻨﺘﺒـﻪ ﻋﻠـﻰ أن
اﺳﺘﺨﺪام 46 __intهﻮ أﺑﻄﺄ ﻣﻦ اﺳﺘﺨﺪام longأو intوﺧﺎﺻﺔ ﻓﻲ ﺣﺴﺎب اﻟﺘﻌﺎﺑﻴﺮ اﻟﺮﻳﺎﺿﻴﺔ
...
arabteam2000
...
2 اﻟﺘﻌﺎﺑﻴﺮ اﻟﺤﺴﺎﺑﻴﺔ – Arithmetic expressions
إن ﻟﻐﺔ اﻟﺴﻲ++ ﺗﺪﻋﻢ اﻟﻌﻤﻠﻴﺎت اﻟﺤﺴﺎﺑﻴﺔ اﻟﻌﺎدﻳﺔ ﻣﺜﻞ اﻟﺠﻤﻊ )+( و اﻟﻄﺮح )-( و اﻟﻀـﺮب )*( واﻟﻘﺴـﻤﺔ )/( وأﻳﻀـﺎ
ﺗﺪﻋﻢ ﻋﻤﻠﻴﺔ ﺑﺎﻗﻲ اﻟﻘﺴﻤﺔ ﻟﻸﻋﺪاد اﻟﺼﺤﻴﺤﺔ وهﻲ )%(
...
ﻳﻮﺟﺪ ﻣﻌﺎﻣﻼت أﺧﺮى ﺗﻄﺒﻖ ﻋﻠﻰ ﺣﺪ واﺣﺪ وهـﻲ
ﻓﻲ هﺬﻩ اﻟﺤﺎﻟﺔ ﻣﻌﺎﻣﻞ اﻻﺷﺎرة اﻟﺴـﺎﻟﺒﺔ )-( وﻣﻌﺎﻣـﻞ اﻻﺷـﺎرة اﻟﻤﻮﺟﺒـﺔ )+( ، اﻷﺧﻴﺮﺗـﺎن ﺗﺴـﻤﻰ ﻣﻌـﺎﻣﻼت أﺣﺎدﻳـﺔ أو
unaryوذﻟﻚ ﺑﺴﺒﺐ أﻧﻬﺎ ﺗﻄﺒﻖ ﻋﻠﻰ ﺣﺪ واﺣﺪ
...
14 * radius * radius
distance / time
001 % money
آﻤﺎ ﺗﻼﺣﻆ ﻓﻲ اﻟﻤﺜﺎل اﻷول ﻓﺈن اﻟﻘﻴﻤﺔ 21 ﺿﺮﺑﺖ ﻣﻊ ﻣﺎ ﻳﺤﺘﻮي ﻋﻠﻴﻪ اﻟﻤﺘﺤﻮل
...
إن اﻟﺘﻌﺒﻴﺮ اﻟﺤﺴﺎﺑﻲ ﻓﻲ ﻟﻐﺔ ﺳﻲ++ ﻳﺘﻢ ﺣﺴﺎﺑﻪ ﻋﻠﻰ ﺣﺴﺐ أوﻟﻮﻳﺔ اﻟﻌﻮاﻣﻞ اﻟﻤﺴﺘﺨﺪﻣﺔ ﻓﻲ اﻟﺘﻌﺒﻴﺮ
...
اﻟﺠـﺪول 2-2 ﻳﻮﺿـﺢ اﻟﻤﻌـﺎﻣﻼ اﻟﺤﺴـﺎﺑﻴﺔ ﺣﺴـﺐ
أوﻟﻮﻳﺘﻬﺎ
...
واﻟﻀﺮب واﻟﻘﺴﻤﺔ وﺑﺎﻗﻲ اﻟﻘﺴـﻤﺔ هـﻲ ﻓـﻲ اﻟﻤﻨﺘﺼـﻒ
...
وآﻤﺜﺎل ﻋﻠﻰ هﺬا إﻟﻴﻚ ﺑﺎﻟﺘﻌﺒﻴﺮ اﻟﺘﺎﻟﻲ :
4*3+2
اﻟﺘﻌﺒﻴﺮ اﻟﺴﺎﺑﻖ ﻗﻴﻤﺘﻪ ﺗﺴﺎوي 41 ﻷﻧﻪ أوﻻ ﻳﺘﻢ ﺗﻨﻔﻴﺬ ﻣﻌﺎﻣﻞ اﻟﻀﺮب ﻋﻠﻰ 3 و 4 اﻟﺬي ﻧﺘﻴﺠﺘﻪ 21 وﻣﻨﻪ اﻟﺠﻤﻊ ﻋﻠـﻰ
2 و 21 اﻟﺬي ﻳﻨﺘﺞ 41
...
ﻓـﻲ اﻟﻤﺠﻤﻮﻋـﺔ
اﻷوﻟﻰ ﺑﺘﻢ اﻟﺘﻨﻔﻴﺬ ﻣﻦ اﻟﻴﻤﻴﻦ إﻟﻰ اﻟﻴﺴﺎر ، أﻣﺎ اﻟﺜﺎﻧﻴﺔ واﻟﺜﺎﻟﺜﺔ ﻓﻴﺘﻢ ﺗﻨﻔﻴـﺬهﺎ ﻣـﻦ اﻟﻴﺴـﺎر إﻟـﻰ اﻟﻴﻤـﻴﻦ
...
)))01-(+(-(
)4 * )5 / )2 * 01(((
)5 + )3 – 2((
)(right to left
)(left to right
)(left to right
01-+-
4 * 5 / 2 * 01
5+3–2
اﻟﻤﺜﺎل اﻷول ﻻﺣﻆ أن اﻟﺘﻨﻔﻴﺬ ﻳﺘﻢ ﻣﻦ اﻟﻴﻤﻴﻦ إﻟﻰ اﻟﻴﺴﺎر وﺑﺎﻟﺘﺎﻟﻲ ﻳﺘﻢ ﺗﻨﻔﻴﺬ اﺷـﺎرة اﻟﻨـﺎﻗﺺ اﻷﻗـﺮب إﻟـﻰ اﻟﻌـﺪد أوﻻ
ﻟﺘﺮﺟﻊ اﻟﻘﻴﻤﺔ 01- وﻣﻨﻪ اﺷﺎرة اﻟﻤﻮﺟﺐ ﻟﺘﺮﺟﻊ 01- وأﺧﻴﺎر اﻟﺴﺎﻟﺐ ﻟﺘﺮﺟﻊ 01
...
اﻟﻤﺜﺎل اﻷﺧﻴـﺮ ﻳـﺘﻢ
ﺗﻨﻔﻴﺬ أول ﻋﻤﻠﻴﺔ ﻃﺮح ﻟﺘﺮﺟﻊ 1- وﺑﻌﺪهﺎ اﻟﺠﻤﻊ ﻋﻠﻰ 1- و 5 ﻟﺘﻜﻮن اﻟﻨﺘﻴﺠﺔ 4
...
وﺑﺎﻟﺘـﺎﻟﻲ اﻟﺘﻌﺒﻴـﺮ ﻳﺼـﺒﺢ 5 + 21 + 2 اﻵن ﻳـﺘﻢ
ﺣﺴﺎب اﻟﺠﻤﻊ ﻣﻦ اﻟﻴﺴﺎر إﻟﻰ اﻟﻴﻤﻴﻦ ﺑﺪأ ﻣﻦ 2 و 21 ﻟﻴﺼﺒﺢ اﻟﺘﻌﺒﻴﺮ 5 + 41 وأﺧﻴﺮا ﺗﻜﻮن ﻧﺘﻴﺠﺔ اﻟﺘﻌﺒﻴﺮ 91
...
arabteam2000
...
أﻣﺎ ﻓﻲ ﺣﺎﻟﺔ آـﺎن أﺣـﺪ اﻟﺤـﺪﻳﻦ ﻋﻠـﻰ اﻷﻗـﻞ ﻋـﺪد ﺣﻘﻴﻘـﻲ floatﻓـﺈن
اﻟﺠﻮاب ﻳﻜﻮن ﻋﺪد ﺣﻘﻴﻘﻲ
...
31
0
...
2
6
...
وآﻤﺜـﺎل
ﻋﻠﻰ ﺑﺎﻗﻲ اﻟﻘﺴﻤﺔ ﻟﺪﻳﻨﺎ :
5 % 31
5 % 51
5 % 31-
5- % 31
ﺗﺴﺎوي
ﺗﺴﺎوي
ﺗﺴﺎوي
ﺗﺴﻮاي
3
0
3-
3
ﻓﻲ ﺣﺎﻟﺔ أﺣﺪ اﻟﺤﺪﻳﻦ آﺎن ﺳﺎﻟﺒﺎ ﻓﺈن اﺷﺎرة ﺑﺎﻗﻲ اﻟﻘﺴﻤﺔ ﺗﻜﻮن ﻣﺸﺎﺑﻬﺔ ﻷﺷﺎرة اﻟﻤﻘﺴﻮم ﻋﻠﻴﻪ آﻤـﺎ ﻓـﻲ اﻟﻤﺜـﺎل
اﻟﺴﺎﺑﻖ
...
ﻗﻤﺖ ﺑﺎﻻﺳﺘﻔﺎﺿﺔ ﻓﻲ اﻟﺸﺮح ﻋﻠﻰ هﺬﻩ اﻟﻤﻌﺎﻣﻼت اﻟﺴﻬﻠﺔ ﻷﻧﻪ ﻓﻲ اﻟﺴﻲ++ وآﻤـﺎ ﺳـﻮف ﻧـﺮى ﻻﺣﻘـﺎ
ﻓﻲ ﻗﺴﻢ اﻟﺒﺮﻣﺠﺔ ﻏﺮﺿﻴﺔ اﻟﺘﻮﺟﻪ Object Oriented Programmingأﻧﻪ ﻳﻤﻜﻦ اﻋﺎدة ﺑﺮﻣﺠـﺔ اﻟﻌﻮاﻣـﻞ ﻣـﻦ
أﺟﻞ اﻋﻄﺎﺋﻬﺎ ﺧﻮاص ﺟﺪﻳﺪة
...
2 اﻟﺘﺤﻮﻳﻞ ﺑﻴﻦ اﻷﻧﻮاع – Type conversions
ﻓﻲ هﺬا اﻟﻘﺴﻢ ﺳﻮف ﻧﺤﺎول اﻻﺟﺎﺑﺔ ﻋﻠﻰ اﻟﺴﺆال اﻟﺘﺎﻟﻲ : ﻣﺎذا ﻳﺤﺪث إذا أردﻧﺎ ﺗﻨﻔﻴـﺬ ﺗﻌﺒﻴـﺮ ﺣﺴـﺎﺑﻲ ﻳﺘﺮآـﺐ ﻣـﻦ
ﺣﺪود ذات أﻧﻮاع ﻣﺨﺘﻠﻔﺔ ؟
ﻓﻲ اﻟﺒﺪﻳﺔ ﻳﺤﺐ أن أﻧﻮﻩ ﻋﻠﻰ أن ﻣﻌﻈﻢ اﻟﻌﻤﻠﻴﺎت اﻟﺤﺴﺎﺑﻴﺔ ﺗﺘﻢ ﻋﻠﻰ ﻧﻮع intوذﻟﻚ ﺑﺴﺐ أن intداﺋﻤﺎ ﺗﻜﻮن ﺑﺤﺠـﻢ
ﻣﺴﺠﻞ اﻟﻤﻌﺎﻟﺞ اﻟﺪاﺧﻠﻲ وﺑﺎﻟﺘﺎﻟﻲ ﺗﻜﻮن اﻟﻌﻤﻠﻴﺎت اﻟﺤﺴﺎﺑﻴﺔ ﻋﻠﻴﻬﺎ أﺳﺮع ﻣﺎﻳﻤﻜﻦ
...
unsigned intﻃﺒﻌﺎ هﺬا ﻓﻲ ﺣﺎﻟﺔ ﻟﻢ ﻧﻘـﻢ ﺑﺎﺟﺒـﺎر اﻟﺜﺎﺑـﺖ أو اﻟـﺮﻗﻢ ﻋﻠـﻰ أن ﻳﻜـﻮن longوذﻟـﻚ ﺑـﺬآﺮ
اﻟﻼﺣﻘﺔ Lﺑﻌﺪ اﻟﺮﻗﻢ وﻋﻨﺪهﺎ ﻳﺠﺐ أن ﻧﻘﻮم ﺑﺘﺤﻮﻳﻼت أﺧﺮى ﻋﻠﻰ اﻷرﻗﺎم أو اﻟﻤﺘﺤﻮﻻت ﻓﻲ اﻟﺘﻌﺒﻴﺮ
...
وﻳـﺘﻢ هـﺬا ﻋﻠـﻰ ﺣﺴـﺐ
اﻟﺘﺮﺗﻴﺐ اﻟﺘﺎﻟﻲ :
•
•
•
•
•
•
•
إذا آﺎن أﺣﺪ اﻟﺤﺪﻳﻦ ، long doubleﻳﺘﻢ ﺗﺤﻮﻳﻞ اﻵﺧﺮ إﻟﻰ
...
double
إذا آﺎن أﺣﺪ اﻟﺤﺪﻳﻦ ، floatﻳﺘﻢ ﺗﺤﻮﻳﻞ اﻵﺧﺮ إﻟﻰ
...
إذا آﺎن أﺣﺪ اﻟﺤـﺪﻳﻦ ، unsigned long intﻳـﺘﻢ ﺗﺤﻮﻳـﻞ اﻵﺧـﺮ إﻟـﻰ
...
unsigned long int
إذا آﺎن أﺣﺪ اﻟﺤﺪﻳﻦ ، long intﻳﺘﻢ ﺗﺤﻮﻳﻞ اﻵﺧﺮ إﻟﻰ
...
unsigned int
اﻟﻌﻤﻠﻴﺔ ﺗﺒﺪو ﻣﻌﻘﺪة ﻋﻨﺪ اﻟﺘﻌﺎﻣﻞ ﻣﻊ اﻷﻋﺪاد اﻟﻐﻴﺮ ﻣﺆﺷﺮة أو
...
ui + siﺑﺎﻻﻋﺘﻤﺎد ﻋﻠﻰ اﻟﻘﻮاﻋﺪ اﻟﺴﺎﺑﻘﺔ ﻓﺈن اﻟﺤﺪ اﻟﺜﺎﻧﻲ ﺳﻮف ﻳﺤـﻮل إﻟـﻰ unsigned
...
ﻓـﺈن ﻣﺠـﺎل اﻟﻘـﻴﻢ اﻟﻤﻤﻜـﻦ ﺗﻤﺜﻴﻠﻬـﺎ ﺑﺎﺳـﺘﺨﺪام unsigned intهـﻮ ﻣـﻦ 0 إﻟـﻰ
53556
...
arabteam2000
...
وإذا ﺟﻤﻌﻨﺎه ـﺎ ﻣ ـﻊ اﻟﻘﻴﻤ ـﺔ 01 ﻧﺤﺼ ـﻞ ﻋﻠ ـﻰ 93556 أو 300010x
ـ
ـ
ـ
ـ ـ
ـ
ـ
ـ
ـ
ﺑﺎﻟﻨﻈﺎم اﻟﺴﺖ ﻋﺸﺮي وﺑﺎﻟﺘﺎﻟﻲ ﻳﻜﻮن اﻟﺠﻮاب 3 ﻷﻧﻨﺎ ﻧﺘﻌﺎﻣﻞ ﻣﻊ أﻋﺪاد 61ﺑﺖ
...
وأﻳﻀـﺎ ﺗﺠﻨـﺐ
اﺳﺘﺨﺪام اﻷﻋﺪاد اﻟﻐﻴﺮ ﻣﺆﺷﺮة ﻗﺪر اﻟﻤﺴﺘﻄﺎع وآﻦ ﺣﺬرا ﻓﻲ ﺣﺎﻟﺔ ﺗﻢ اﺳﺘﺨﺪاﻣﻬﺎ
...
2 ﻣﻌﺎﻣﻞ اﻻﻟﺤﺎق – The assignment operator
ﻣﻌﺎﻣﻞ اﻻﻟﺤﺎق ﻳﺴﻤﺢ ﺑﺎﻟﺤﺎق ﻗﻴﻤﺔ ﺗﻌﺒﻴﺮ ﻣﺎ إﻟﻰ ﻣﺘﺤﻮل ﻓﻲ اﻟﺒﺮﻧﺎﻣﺞ
...
أﻳﻀﺎ ﻳﺘﻢ ﺗﺤﻮﻳﻞ ﻧﻮع اﻟﻘﻴﻤﺔ ﺣﺘﻰ ﺗﻮاﻓﻖ ﻧﻮع اﻟﻤﺘﺤﻮل
...
وآﻤﺎ أن اﻟﺘﻌﺒﻴﺮ a + bﻳﺮﺟﻊ ﻗﻴﻤﺔ ﺟﺪﻳﺪة ﻓﺄﻳﻀﺎ اﻟﺘﻌﺒﻴﺮ a = bﻳﺮﺟﻊ ﻗﻴﻤﺔ ﺟﺪﻳـﺪة وذﻟـﻚ ﺑﻌـﺪ ﺣﺴـﺎب ﻗﻴﻤـﺔ اﻟﺘﻌﺒﻴـﺮ
واﺳﻨﺎدهﺎ إﻟﻰ اﻟﻤﺘﺤﻮل ، هﺬﻩ اﻟﻘﻴﻤﺔ اﻟﺘﻲ ﻳﺮﺟﻌﻬﺎ ﺗﻌﺒﻴﺮ اﻻﻟﺤﺎق ﺗﺴﺎوي ﻗﻴﻤﺔ اﻟﻤﺘﺤﻮل ﺑﻌﺪ اﻻﺳـﻨﺎد
...
variableوﻣﻨﻪ ﻓﺈن اﻟﺘﻌﺒﻴﺮ اﻟﺘﺎﻟﻲ :
;X = y = z = p + q
ﻳﺘﻢ ﺗﻔﺴﻴﺮﻩ ﻋﻠﻰ اﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ :
;))x = (y = (z = p + q
آﻤﺎ ذآﺮﻧﺎ ﻓﺈن ﻋﻤﻠﻴﺔ اﻟﺘﺤﻮﻳﻞ ﺗﺘﻢ ﻋﺒﺮ ﻣﻌﺎﻣﻞ اﻻﻟﺤﺎق ﻓﻤﺜﻼ إذا أردﻧﺎ اﻟﺤﺎق ﻣﺎهﻮ ﻣﻦ ﻧﻮع intإﻟـﻰ doubleﻓﺴـﻮف
ﻳﺘﻢ ﺗﺤﻮﻳﻞ ال intإﻟﻰ ال doubleأﻣﺎ اﻟﻌﻜﺲ أي ﻣﻦ doubleإﻟﻰ intﻓﻄﺒﻌﺎ هـﺬﻩ اﻟﻌﻤﻠﻴـﺔ ﻧﺴـﻤﻴﻬﺎ ﻋﻤﻠﻴـﺔ ﻣـﺪﻣﺮة ﻷن
اﻟﺮﻗﻢ ﺳﻮف ﻳﻘﺮب إﻟﻰ أﻗﺮب ﻋﺪد ﺻﺤﻴﺢ وﻗﺪ ﻳﻔﻘﺪ ﻣﻦ ﻗﻴﻤﺘﻪ
...
أﻳﻀﺎ ﻳﺠﺐ اﻟﺤﺮص ﻋﻨﺪﻣﺎ ﻳﺘﻢ اﺳﺘﺨﺪام ﺳﻠﺴﻠﺔ اﻻﻟﺤﺎﻗﺎت ﻣﻊ أﻧﻮاع ﻣﺨﺘﻠﻔﺔ ﻣﻦ اﻟﻤﺘﺤﻮﻻت
...
21 = iii
ﻳﻀﻊ وﻳﺮﺟﻊ اﻟﻘﻴﻤﺔ 21 وﺑﺎﻟﺘﺎﻟﻲ ﻓﻔﻲ اﻟﺘﻌﺒﻴﺮ اﻟﺘﺎﻟﻲ ﺣﻴﺚ fffهﻲ ﻣﻦ ﻧﻮع
...
21 = fff = iii
ﻓﺈن اﻟﻘﻴﻤﺔ 21 ﻣﻦ ﻧﻮع intﺳﻮف ﺗﺤﻮل إﻟﻰ floatأي اﻟﻘﻴﻤﺔ 0
...
fff
ﺣﻘﻮق اﻟﻨﺸﺮ ﻣﺤﻔﻮﻇﺔ ﻟﻠﻔﺮﻳﻖ اﻟﻌﺮﺑﻲ ﻟﻠﺒﺮﻣﺠﺔ 1002 )(http://www
...
com
02
ﻃﺮﻳﻖ اﻟﺒﺮﻣﺠﺔ ﻓﻲ ﺳﻲ++
اﻟﺪرس اﻟﺜﺎﻧﻲ – اﻷﻧﻮاع و اﻟﻌﻮاﻣﻞ و اﻟﺘﻌﺎﺑﻴﺮ
11
...
countأي ﺑﻜﻠﻤﺔ أﺧﺮى ﻳـﺘﻢ اﺿـﺎﻓﺔ اﺛﻨـﺎن إﻟـﻰ اﻟﻤﺘﺤـﻮل
...
2 =* power
0
...
أﻳﻀﺎ ﻓﺈن اﻷوﻟﻴﺔ وﻃﺮﻳﻘﺔ اﻟﺘﻨﻔﻴﺬ هﻲ ﺗﻤﺎﻣﺎ ﻣﺜﺎ
ﻣﻌﺎﻣﻞ اﻻﻟﺤﺎق اﻟﺬي ﺷﺮﺣﻨﺎﻩ ﻓﻲ اﻟﻔﻘﺮة اﻟﺴﺎﺑﻘﺔ
...
sum = sum
أﻳﻀﺎ ﻳﻤﻜﻦ اﺳﺘﺨﺪام ﺳﻠﺴﻠﺔ اﻻﻟﺤﺎﻗﺎت هﻨﺎ أﻳﻀﺎ وﻟﻜﻦ ﻣﺮة أﺧﺮى ﻣﻊ اﻟﺤﺬر ﻓﻲ ﺑﻌﺾ اﻟﺤﺎﻻت ﻻﺣﻆ اﻟﻤﺜﺎل اﻟﺘﺎﻟﻲ:
fff = iii *= fff
إذا آﺎﻧﺖ fffﻣﻦ ﻧﻮع floatوﺗﺤﺘﻮي ﻋﻠـﻰ اﻟﻘﻴﻤـﺔ 432
...
41 = 432
...
وﺑﻌﺪهﺎ ﻳﺘﻢ اﺳﻨﺎد
اﻟﻘﻴﻤﺔ 0
...
fff
21
...
وﻳﻤﻜـﻦ أن ﻧﺴـﺘﺨﺪم ﻣﻌﺎﻣـﻞ اﻻﺳـﻨﺎد اﻟﻤﺮآـﺐ آﺎﻟﺘـﺎﻟﻲ ﻣـﻦ
أﺟﻞ اﺿﺎﻓﺔ اﻟﻘﻴﻤﺔ 1 إﻟﻰ اﻟﻤﺘﺤﻮل :
1 =+ x
ﻓﻲ اﻟﺤﻘﻴﻘﺔ ﻓﺈن اﻟﺰﻳﺎدة ﺑﻤﻘﺪار واﺣﺪ هﻲ ﻣﻦ اﻟﻌﻤﻠﻴﺎت اﻟﺘﻲ ﺗﻤﺮ ﻋﻠﻴﻨﺎ آﺜﺮة ﻓﻲ ﺑﺮاﻣﺠﻨـﺎ ﻓـﻼ ﻳﺨﻠـﻮ ﺑﺮﻧـﺎﻣﺞ ﻣﻨﻬـﺎ
...
هﺬﻩ اﻟﻌﻤﻠﻴـﺔ
ﺗﺴﻤﻰ ﺑﻤﻌﺎﻣﻞ اﻻﺿـﺎﻓﺔ اﻟﺒﻌﺪﻳـﺔ أو postincrement operatorو ﻣﻌﺎﻣـﻞ اﻻﺿـﺎﻓﺔ اﻟﻘﺒﻠﻴـﺔ أو
...
arabteam2000
...
variableوأﻳﻀـﺎ آـﻼ اﻟﺤـﺎﻟﺘﻴﻦ اﻟﺴـﺎﺑﻘﺘﻴﻦ
ﻓﺈﻧﻬــﺎ ﻳﺮﺟﻌــﺎ ﻗﻴﻤــﺔ
...
أﻣــﺎ اﻟﺜﺎﻧﻴــﺔ
) (postincrementﻓﺈﻧﻪ ﻳﺘﻢ ارﺟﺎع ﻗﻴﻤﺔ اﻟﻤﺘﺤﻮل ﻗﺒﻞ اﻟﺰﻳﺎدة
...
sumوﻟﻮ اﻋﺘﺒﺮﻧﺎ اﻟﻤﺜﺎل اﻟﺘﺎﻟﻲ :
++sum += count
ﻳﺘﻢ اﺿﺎﻓﺔ ﻗﻴﻤﺔ اﻟﻤﺘﺤﻮل countأﻳﻀﺎ ﺑﻤﻘﺪار 1 وﻟﻜﻦ ﻳﺘﻢ اﺳـﺘﺨﺪام اﻟﻘﻴﻤـﺔ اﻟﺴـﺎﺑﻘﺔ ل countﻓـﻲ اﻟﺘﻌﺒﻴـﺮ
...
sum
ﻓﻲ ﺣﺎﻟﺔ اﺳﺘﺨﺪام ﻣﻌﺎﻣﻞ اﻻﻧﻘﺎص ﻓﺎﺳﺘﺨﺪاﻣﻪ ﺗﻤﺎﻣﺎ ﻣﺜﻞ ﻣﻌﺎﻣﻞ اﻟﺰﻳﺎدة وﻟﻜﻦ ﻳﺘﻢ هﻨـﺎ اﺳـﺘﺨﺪام )--( ﻋﻮﺿـﺎ ﻋـﻦ
)++( وﻳﺘﻢ اﻻﻧﻘﺎص ﺑﻤﻘﺪار 1
...
31
...
أﻣـﺎ ﻋﻤﻠﻴـﺔ
اﻟﺘﺤﻮﻳﻞ اﻟﺘﻲ ﻧﻘﻮم ﺑﻬﺎ ﻧﺤﻦ ﻓﺘﺴـﻤﻰ
...
doubleإن ﻣﻌﺎﻣﻞ اﻟﺘﺤﻮﻳـﻞ ﺗﻤﺎﻣـﺎ ﻣﺜـﻞ ﺑـﺎﻗﻲ اﻟﻤﻌـﺎﻣﻼت
أي ﻟﻪ أوﻟﻮﻳﺔ وآﻴﻔﻴﺔ ﻓﻲ اﻟﺘﻨﻔﻴﺬ وهﺬا ﻣﺎﺳﻮف ﺗﺮاﻩ ﻓﻲ ﺁﺧﺮ اﻟﺪرس
...
أﻣﺎ
اﻟﻄﺮﻳﻘﺔ اﻷﺧﺮى ﻓﻲ آﺘﺎﺑﺔ اﻟﺘﺤﻮﻳﻞ هﻲ اﻟﺘﺎﻟﻴﺔ :
(type-specifier) expression
أي ﻳﺘﻢ آﺘﺎﺑﺔ اﻟﻨﻮع داﺧﻞ أﻗﻮاس ﺛﻢ ﻳﻠﻴﻬﺎ اﻟﺘﻌﺒﻴﺮ اﻟﻤﺮاد ﺗﺤﻮﻳﻠﻪ
...
وآﺄﻣﺜﻠﺔ ﻋﻠﻰ هﺬﻩ ﻟﺪﻳﻨﺎ :
(double) date
(char) x
2(int) d1 + d
)2(int) (d1 + d
ﻓﻲ اﻟﻤﺜﺎل ﻗﺒﻞ اﻷﺧﻴﺮ ﺳﻮف ﻳﺘﻢ ﺗﺤﻮﻳﻞ 1 dوﺟﻤﻊ اﻟﻘﻴﻤﺔ اﻟﺠﺪﻳﺪة ﻣﻊ 2
...
هﺬا ﺑﺴﺒﺐ أن ﻣﻌﺎﻣﻼت اﻟﺘﺤﻮﻳﻞ ﻟﻬﺎ أوﻟﻮﻳﺔ أﻋﻠﻰ ﻣـﻦ اﻟﺠﻤـﻊ وهـﺬا ﻣـﺎ ﺳـﻮف
ﺗﺮاﻩ ﻓﻲ ﺟﺪول اﻷوﻟﻮﻳﺎت ﻓﻲ ﺁﺧﺮ اﻟﺪرس
...
arabteam2000
...
2 ﻣﻌﺎﻣﻞ اﻟﻔﺎﺻﻠﺔ – The comma operator
ﺁﺧﺮ اﻟﻤﻌﺎﻣﻼت اﻟﺘﻲ ﺳﻮف ﻧﺸﺮﺣﻬﺎ ﻓﻲ هﺬا اﻟﺪرس هﻮ ﻣﻌﺎﻣـﻞ اﻟﻔﺎﺻـﻠﺔ اﻟﺘـﻲ ﺗﺠـﺪ ﻟﻬـﺎ اﺳـﺘﺨﺪاﻣﺎت ﻓـﻲ ﺷـﺘﻰ
اﻟﺘﻄﺒﻴﻘﺎت
...
وﺑﺎﻟﺘﺎﻟﻲ ﻓﻲ اﻟﻤﺜﺎل اﻟﺴﺎﺑﻖ ﻓﺈن 1 expressionﻳﺘﻢ ﺣﺴﺎﺑﻬﺎ ﺑﺸﻜﻞ آﺎﻣﻞ وﻣـﻦ ﺛـﻢ 2
...
expressionﻣﺜﺎل ﻋﻠﻰ هﺬا :
) 3 + s = ( t = 2, t
أوﻻ ﻳﺘﻢ ﺗﻨﻔﻴﺬ اﻟﺘﻌﺒﻴـﺮ 2 = tوﺑﻌـﺪهﺎ اﻟﺘﻌﺒﻴـﺮ 3 + tاﻟـﺬي ﺗﻜـﻮن ﻧﺘﻴﺠﺘـﻪ 5 وﻧﺘﻴﺠـﺔ ﺗﻌﺒﻴـﺮ اﻟﻔﺎﺻـﻠﺔ اﻟﺴـﺎﺑﻖ ﻳﻜـﻮن 5
وﺑﺎﻟﺘﺎﻟﻲ ﻳﺘﻢ اﺳﻨﺎد 5 إﻟﻰ اﻟﻤﺘﺤﻮل
...
أوﻟﻮﻳﺎت اﻟﻤﻌﺎﻣﻼت اﻟﻤﺬآﻮرة ﻓﻲ هﺬا اﻟﺪرس :
)اﻟﺠﺪول اﻟﺘﺎﻟﻲ ﻣﺄﺧﻮذ ﻣﻦ (MSDN
Associativity
Name or Meaning
Symbol
Left to right
Post-increment
Post-decrement
Pre-increment
Pre-decrement
Unary minus
Unary plus
]Type cast [for example, (float) i
Multiply
Divide
Remainder
Add
Subtract
Assignment
Compound assignment
Comma
++
-++
-+
)(type
*
/
%
+
=
=- ,=+ ,=% ,=/ ,=*
,
Right to left
Right to left
Right to left
Left to right
Left to right
Right to left
Right to left
Left to right
Highest Precedence
Lowest Precedence
ﺣﻘﻮق اﻟﻨﺸﺮ ﻣﺤﻔﻮﻇﺔ ﻟﻠﻔﺮﻳﻖ اﻟﻌﺮﺑﻲ ﻟﻠﺒﺮﻣﺠﺔ 1002 )(http://www
...
com
32