0% found this document useful (0 votes)
16 views37 pages

C - Chapter 1

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
16 views37 pages

C - Chapter 1

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 37

‫‪ 

‬‬
‫ﻣﻘﺎرﻧﺔ ﺑﻴﻦ اﻟﻠﻐﺔ اﻟﻌﺎدﻳﺔ وﻟﻐﺔ اﻟﺒﺮﻣﺠﺔ‪ ‬‬
‫‪ ‬‬

‫‪ ‬‬
‫‪ ‬ﺗﻌﺮﻳﻒ اﻟﻠﻐﺔ ﺑﺸﻜﻞ ﻋﺎم ‪ :‬ﻫﻲ أداة ﻟﻮﺻﻒ وﺗﺪوﻳﻦ أﻓﻜﺎر اﻟﺒﺸﺮ‬
‫‪ ‬ﺑﻴﻨﻤﺎ ﻟﻐﺔ اﻟﺒﺮﻣﺠﺔ ﺗﻌﺮف ﺑﺄﻧﻬﺎ ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﻘﻮاﻋﺪ ‪ ,,‬ﻫﺎي اﻟﻘﻮاﻋﺪ ﺑﺘﺤﺪد اﻟﺮﻣﻮز )اﻷﺣﺮف ‪ ,‬اﻷرﻗﺎم ‪ ,‬ﻋﻼﻣﺎت‬
‫‪. ‬اﻟﺘﺮﻗﻴﻢ ( ﻳﻠﻲ ﻣﻤﻜﻦ ﻧﺴﺘﺨﺪﻣﻬﺎ ﻓﻲ ﻫﺎي اﻟﻠﻐﺔ‬
‫‪ ‬‬
‫‪  ‬‬

‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬أي ﻟﻐﺔ ﺑﺮﻣﺠﺔ ﺑﺘﺘﻜﻮن ﻣﻦ ‪-:‬‬
‫‪ ‬‬
‫‪ ​- 1‬اﻟﻘﻮاﻋﺪ )‪ ​: (syntax‬وﻫﻲ ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﻘﻮاﻋﺪ ﻳﻠﻲ ﺑﺘﺤﺪد اﻟﻄﺮﻳﻘﺔ ﻳﻠﻲ ﻣﻦ ﺧﻼﻟﻬﺎ ﺑﺘﺼﻴﻎ رﻣﻮز ﻫﺎﻟﻠﻐﺔ‪ .‬‬
‫ﻣﺜﻞ ﻗﻮاﻋﺪ اﻟﻠﻐﺔ اﻟﻌﺮﺑﻴﺔ ﻣﺎ ﺗﺒﻘﺪر ﺗﻨﺼﺐ اﻟﻔﺎﻋﻞ ﻣﺜﻼ‪  ‬‬
‫‪ ‬‬
‫‪  ‬‬
‫‪ - 2‬دﻻﻻت اﻷﻟﻔﺎظ ‪ ​ :‬ﻫﻲ اﻟﻘﺪرة اﻧﻚ ﺗﺪرك ﻣﻌﻨﻰ ﻛﻞ ﺟﻤﻠﺔ ﻣﻮﺻﻮﻓﺔ ﺑﻠﻐﺔ ﻣﻌﻴﻨﺔ‪ .‬‬
‫‪  ‬ﻳﻌﻨﻲ ﻳﻜﻮن اﻟﺠﻤﻠﺔ اﻟﻬﺎ ﻣﻌﻨﻰ ‪ ,‬ﻳﻌﻨﻲ ﺑﺎﻟﻌﺮﺑﻲ م ﺑﻘﺪر اﺣﻜﻲ ﺷﺮﺑﺖ اﻟﺴﻔﻴﻨﺔ اﻟﺘﻔﺎﺣﺔ!‬
‫‪ ‬‬
‫‪ ‬أي ﺑﺮﻧﺎﻣﺞ ﺑﻨﻜﺘﺒﻪ ﻻزم ﻳﻜﻮن ﺧﺎﻟﻲ ﻣﻦ اﻻﺧﻄﺎء ‪ :‬ك ﻣﻔﺮدات و ك ﻗﻮاﻋﺪ و ك دﻻﻻت ﻟﻔﻈﻴﺔ ‪ ,‬ﻏﻴﺮ ﻫﻴﻚ اﻟﺒﺮﻧﺎﻣﺞ‬
‫‪ ‬م رح ﻳﺸﺘﻐﻞ ‪ ,‬او اذا اﺷﺘﻐﻞ رح ﻳﻌﻄﻲ ﻧﺘﺎﺋﺞ ﻏﻴﺮ ﻣﻘﺒﻮﻟﺔ‬

‫‪(2) ‬‬ ‫‪ ‬‬ ‫‪ ‬‬


‫‪  ‬‬

‫ﻟﻴﺶ ﺑﻨﺤﺘﺎج ﻟﻐﺔ اﻟﺒﺮﻣﺠﺔ؟!‪ ‬‬

‫ﻟﻐﺔ اﻵﻟﺔ ﻫﻲ اﻻﺑﺴﻂ )ﺗﺴﺘﺨﺪم ‪ 01‬ﻓﻘﻂ( وﻫﻲ اﻛﺜﺮ ﻟﻐﺔ ﺑﺪاﺋﻴﺔ‪ ,‬وﻫﻲ ﺑﻨﻘﺪر ﻣﻦ ﺧﻼﻟﻬﺎ ﻧﻌﻄﻲ اواﻣﺮ‪ ‬‬
‫ﻟﻠﻜﻤﺒﻴﻮﺗﺮ ‪ ,‬ﻃﺒﻌﺎ ﺻﻌﺒﺔ ﺟﺪا ﺟﺪا اﻧﻪ اﻟﺒﺸﺮ ﻳﻔﻬﻤﻮﻫﺎ ‪ ,‬ﻳﻌﻨﻲ ﻟﻮ ﺣﻜﻴﺘﻠﻚ ‪ 010010‬ﻛﻴﻒ ﺑﺪك ﺗﺴﺘﻮﻋﺐ ﻋﻠﻲ !!‪ ‬‬

‫ﻟﻐﺎت اﻟﺒﺮﻣﺠﺔ اﻟﻤﺘﻘﺪﻣﺔ )ﻳﻠﻲ ﺑﻘﺪروا ﻳﻔﻬﻤﻮﻫﺎ اﻟﺒﺸﺮ( ‪ :‬ﻫﻲ ﺟﺴﺮ ﺑﻴﻦ ﻟﻐﺔ اﻟﻨﺎس وﻟﻐﺔ اﻟﻜﻤﺒﻴﻮﺗﺮ وﻫﻲ‪ ‬‬
‫ﺷﺒﻴﻬﺔ ﺟﺪا ﻟﻠﻐﺔ اﻟﻄﺒﻴﻌﻴﺔ ‪ ,‬ﻓﻬﻲ ﺑﺘﺴﺘﺨﺪم رﻣﻮز وﻛﻠﻤﺎت ﻗﺎﺑﻠﺔ ﻟﻠﻘﺮاءة ﻋﻨﺪ اﻟﺒﺸﺮ‪ ‬‬

‫‪  ‬أﻣﺜﻠﺔ ﻋﻠﻰ ﻟﻐﺎت ﺑﺮﻣﺠﺔ ﻣﺘﻘﺪﻣﺔ ‪:‬‬


‫‪Basic, FORTRAN, COBOL, Pascal, ​C​, C++, ​C#​, and ​Java ‬‬
‫‪  ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬

‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬اﻟﻜﻮﻣﺒﺎﻳﻠﺮ ‪ :‬ﻫﻮ ﺑﺮﻧﺎﻣﺞ ﺣﺎﺳﻮﺑﻲ ﺑﺤﻮل اﻟﺒﺮﻧﺎﻣﺞ ﻣﻦ اﻟﻠﻐﺔ اﻟﻤﺘﻘﺪﻣﺔ ﻟﻠﻐﺔ اﻻﻟﺔ‬
‫ﻳﻌﻨﻲ ﻟﻤﺎ ﺗﻜﺘﺐ ﺑﺮﻧﺎﻣﺞ ﻣﺜﻼ ﺑﻠﻐﺔ ال‪ , c++‬اﻟﻜﻮﻣﺒﺎﻳﻠﺮ رح ﻳﺤﻮل اﻟﻜﻮد ﺗﺎﻋﻚ ﻣﻦ ﻟﻐﺔ ال ‪ ++c‬ﻟﻠﻐﺔ اﻵﻟﺔ ‪ ,‬ﻣﺸﺎن‪ ‬‬
‫ﻳﻘﺪر ﻳﻔﻬﻤﻬﺎ اﻟﻜﻤﺒﻴﻮﺗﺮ ‪ .‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬

‫‪(3) ‬‬ ‫‪ ‬‬ ‫‪ ‬‬


‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪  ‬ﻫﺎذ ﺑﺮﻧﺎﻣﺞ ﺑﺴﻴﻂ ﺑﺨﻠﻲ اﻟﺤﺎﺳﻮب ﻳﻄﺒﻊ ع‬
‫‪ ‬اﻟﺸﺎﺷﺔ‬
‫‪(My first C++ program.) ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪………………………………………………………………………. ‬‬
‫‪ ‬‬

‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫ﻣﺮاﺣﻞ ﻋﻤﻞ ﺑﺮﻧﺎﻣﺞ ‪ ++C‬ﺑﺘﺤﺘﺎج إﻟﻰ ‪ :‬‬
‫‪ ‬‬
‫‪​ ​: editor -1‬وﻫﻮ اﻟﺒﺮﻣﺠﻴﺔ ﻳﻠﻲ ﺑﺘﺴﻤﺤﻠﻚ ﺗﻜﺘﺐ ﻛﻮد ‪ C++‬ﻣﺜﻞ ‪ visual studio‬او ﻣﻮاﻗﻊ اﻻوﻧﻼﻳﻦ ﻣﺜﻞ ‪  repl.it‬‬
‫‪ ‬‬
‫‪ Preprocessor -2 ‬ﺗﻮﺟﻴﻬﺎت اﻟﻤﻌﺎﻟﺞ‬
‫ﻫﺎي اﻟﺘﻮﺟﻴﻬﺎت ﺑﺘﺒﺪأ ﺑﺮﻣﺰ ) ‪ (​ #‬ﺑﻌﺎﻟﺠﻬﺎ اﻟﻤﻌﺎﻟﺞ وﻣﻨﻬﺎ ‪) header files‬ﻣﻠﻔﺎت ﺑﺤﺘﺎﺟﻬﺎ اﻟﻤﻌﺎﻟﺞ( ﻣﺜﻞ ‪ iostram‬وﻫﻲ اﺧﺘﺼﺎر‪ ‬‬
‫ﻟـ ‪ , Input/Output Stream‬وﻫﻲ اﻟﻤﻜﺘﺒﺔ اﻟﺨﺎﺻﺔ ﻻدﺧﺎل اﻟﻤﻌﻠﻮﻣﺎت ﻣﻦ اﻟﻤﺴﺘﺨﺪم واﺧﺮاج اﻟﻄﺒﺎﻋﺔ )ﻻزم ﺗﻜﻮن ﻣﻮﺟﻮدة إذا‪ ‬‬
‫ﺑﺪك ﺗﺪﺧﻞ ﺑﻴﺎﻧﺎت ﻣﻦ اﻟﻤﺴﺘﺨﺪم وإذا ﺑﺪك ﺗﻄﺒﻊ ع اﻟﺸﺎﺷﺔ(‪ ‬‬
‫‪ ‬‬
‫‪​ c​ ompiler​ -​ 3   ‬‬
‫ﺑﻨﺴﺘﺨﺪﻣﻪ ﻟﺸﻐﻠﺘﻴﻦ ‪ :‬اﻻوﻟﻰ إﻧﻨﺎ ﻧﺘﺎﻛﺪ اﻧﻪ اﻟﻜﻮد ﺑﺨﻀﻊ ﻟﻘﻮاﻋﺪ اﻟﻠﻐﺔ ‪ ,‬واﻟﺜﺎﻧﻴﺔ ﻣﺜﻞ م ﺣﻜﻴﻨﺎ ﻳﺤﻮل اﻟﻜﻮد ﻟﻠﻐﺔ اﻵﻟﺔ ‪ .‬‬
‫‪ ‬‬
‫‪  :​    Linker  -4‬ﻫﻮ‪  ‬ﺑﺮﺑﻂ‪  ‬اﻟﺒﺮﻧﺎﻣﺞ‪  ‬ﻳﻠﻲ‪  ‬ﺣﻮﻟﻪ‪  ‬اﻟﻜﻮﻣﺒﺎﻳﻠﺮ‪  ‬ﻟﻠﻐﺔ‪  ‬اﻻﻟﺔ‪  ‬ﺑﺒﺮاﻣﺞ‪  ‬اﺧﺮى‪  ‬ﻣﻮﺟﻮدة‪  ‬ﺑﺎﺷﻲ‪  ‬اﺳﻤﻪ‪  SDK  ‬وﻫﻲ‪  ‬ﻣﺠﻤﻮﻋﺔ‪ ‬‬
‫ﻣﻜﺘﺒﺎت ﺑﺘﺴﺎﻋﺪ ﺑﺘﻨﻔﻴﺬ اﻟﻜﻮد ) ﻣﺶ ﻣﻬﻢ ﺗﻌﺮﻓﻬﺎ (‪ ‬‬
‫‪ ‬‬
‫‪​ ​:​ LOADER -5‬وﻫﻮ ﻳﻠﻲ ﺑﺮﻓﻊ اﻟﺒﺮﻧﺎﻣﺞ اﻟﺠﺎﻫﺰ ﻟﻠﺘﻨﻔﻴﺬ ﻟﻠﺮام‪  ‬‬
‫و اﺧﺮ ﺧﻄﻮة ﻫﻲ ﺗﻨﻔﻴﺬ اﻟﺒﺮﻧﺎﻣﺞ‪ ..‬‬
‫‪ ‬‬
‫‪ ‬‬

‫‪(4) ‬‬ ‫‪ ‬‬ ‫‪ ‬‬


‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬

‫‪ ‬‬
‫‪ ‬‬
‫ﻫﺎذ اﻟﺸﻜﻞ ﺑﻮﺿﺤﻠﻨﺎ ﺧﻄﻮات ﺗﻨﻔﻴﺬ اﻟﺒﺮﻧﺎﻣﺞ ‪ ,‬ﻟﻜﻦ ﻓﻲ ﺷﻜﻞ أﺷﻤﻞ ﻣﻨﻪ رح ﻧﺸﻮﻓﻪ ﻛﻤﺎن ﺷﻮي‪  ‬‬
‫‪ ‬‬
‫) ﻣﻼﺣﻈﺔ ‪ :‬اﻟﺤﻜﻲ اﻟﻲ ﻣﻠﻮن ﺑﺎﻻﺻﻔﺮ ﻳﻌﻨﻲ ﻣﺶ ﻣﻬﻢ ﻛﺜﻴﺮ (‪  ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪“Programming is a process of problem solving ‬‬
‫‪One problem-solving technique: ‬‬
‫‪Analyze the problem  ‬‬
‫‪Outline the problem requirements ‬‬
‫‪Design steps (algorithm) to solve the problem ‬‬
‫‪Algorithm​:  ‬‬
‫‪Step-by-step problem-solving process ‬‬
‫‪Solution achieved in finite amount of time” ‬‬
‫‪ ‬‬
‫اﻟﺒﺮﻣﺠﺔ ﻫﻲ ﻋﺒﺎرة ﻋﻦ ﻋﻤﻠﻴﺔ ﻟﺤﻞ اﻟﻤﺸﺎﻛﻞ‪ ‬‬
‫) ﻣﺶ ﻣﺜﻞ ﻣﺎ ﺑﻈﻦ اﻷﻏﻠﺐ ‪ ,‬إﻧﻬﺎ ﻋﻤﻠﻴﺔ ﻛﺘﺎﺑﺔ ﻛﻮد ‪ ,‬ﻛﺘﺎﺑﺔ اﻟﻜﻮد ﺧﻄﻮة ﻓﻘﻂ ﻣﻦ اﻟﺒﺮﻣﺠﺔ(‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫……………………………………………………………‪ .‬‬
‫ﺧﻄﻮات ﺣﻞ اﻟﻤﺸﻜﻠﺔ ‪ :‬‬
‫‪ ‬‬
‫‪ – 3‬ﺑﺘﻀﻊ ﺧﻮارزﻣﻴﺔ ﻟﻠﺤﻞ‪ ‬‬ ‫‪ -2‬ﺑﺘﺴﺘﺨﺮج اﻟﻤﻄﻠﻮب ﻣﻨﻬﺎ‬ ‫‪ - 1‬ﺗﺤﻠﻴﻞ اﻟﻤﺸﻜﻠﺔ‪ ‬‬
‫واﻟﺨﻮازﻣﻴﺔ ‪ :‬ﻫﻲ ﺧﻄﻮات ﻟﺤﻞ اﻟﻤﺸﻜﻠﺔ واﻟﻮﺻﻮل ﻟﻠﺤﻞ ﺑﻮﻗﺖ ﻣﺤﺪد‪ .‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪(5) ‬‬ ‫‪ ‬‬ ‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪• Run code through compiler  ‬‬
‫‪• If compiler generates errors  ‬‬
‫‪• Look at code and remove errors ‬‬
‫‪• Run code again through compiler  ‬‬
‫‪• If there are no syntax errors ‬‬
‫‪• Compiler generates equivalent ‬‬
‫‪machine code ‬‬
‫‪• Linker links machine code with system ‬‬
‫‪resources ‬‬
‫‪• Once compiled and linked, loader can ‬‬
‫‪place program into main memory for ‬‬
‫‪execution ‬‬
‫‪• The final step is to execute the program ‬‬
‫‪• Compiler guarantees that the program ‬‬
‫‪follows the rules of the language ‬‬
‫‪• Does not guarantee that the ‬‬
‫‪program will run correctly  ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪    The‬‬ ‫اﻟﺸﻜﻞ اﻟﺴﺎﺑﻖ اﺳﻤﻪ ‪Problem Analysis–Coding–Execution Cycle‬‬
‫​وﻫﻮ ﻣﻬﻢ ﺟﺪا وﺑﻮﺿﺤﻠﻚ ﺧﻄﻮات ﺣﻞ اﻟﻤﺸﻜﻠﺔ ‪ ,‬ﻳﻠﻲ ﻫﻲ اﻟﺘﺤﻠﻴﻞ ﻟﻠﻤﺸﻜﻠﺔ ‪ ,‬وﻣﻦ ﺛﻢ وﺿﻊ ﺧﻮارزﻣﻴﺔ ﻟﻠﺤﻞ وﻣﻦ ﺛﻢ ﻛﺘﺎﺑﺔ‪ ‬‬
‫ﻫﺎي اﻟﺨﻮازﻣﻴﺔ ﺑﻠﻐﺔ اﻟـ ‪ C++‬‬
‫‪ ‬‬
‫‪ ,‬وﺑﺮﺿﻮ ﺑﻮﺿﺢ ﺧﻄﻮات ﺗﻨﻔﻴﺬ اﻟﺒﺮﻧﺎﻣﺞ ﻳﻠﻲ ذﻛﺮﻧﺎﻫﻢ ﻗﺒﻞ ‪ ,‬ﻟﻜﻦ ﻓﻲ اﺷﻲ ﺟﺪﻳﺮ ﺑﺎﻟﺬﻛﺮ ‪ ,‬اﻧﻪ ﻟﻮ ﻛﺎن ﻋﻨﺪي ﺧﻄﺄ ﺑﺎﻟﻘﻮاﻋﺪ‪ ‬‬
‫‪ Syntax​ ​Error‬رح ﻳﻜﻮن اﻟﺨﻄﺄ اﻛﻴﺪ ﺑﻜﺘﺎﺑﺔ اﻟﻜﻮد ﻳﻌﻨﻲ ﺑﻤﺮﺣﻠﺔ ال ‪​ coding‬واﻟﺒﺮﻧﺎﻣﺞ ﻣﺎ ﺑﺸﺘﻐﻞ ﺑﺎﻟﻤﺮة ‪ .‬‬
‫‪ ‬‬
‫ﺑﻴﻨﻤﺎ ﻟﻮ ﺣﺼﻠﺖ ﻋﻠﻰ ﻧﺘﺎﺋﺞ ﺧﻄﺄ ﺑﻌﺪ ﺗﻨﻔﻴﺬ اﻟﺒﺮﻧﺎﻣﺞ ‪ Logical Error‬رح ﻳﻜﻮن ﺳﺒﺐ اﻟﺨﻄﺄ اﻟﻪ ‪ 3‬اﺣﺘﻤﺎﻻت‪ :‬‬
‫إﻣﺎ ﻓﻬﻢ ﺧﺎﻃﺊ ﻟﻠﻤﺸﻜﻠﺔ أو ﺑﻌﻤﻠﻴﺔ ﺗﺤﻠﻴﻠﻲ ﻟﻠﻤﺸﻜﻠﺔ أو ﺑﻌﻤﻠﻴﺔ ﻛﺘﺎﺑﺔ اﻟﻜﻮد‪ ‬‬
‫‪ ‬‬
‫ﻳﻌﻨﻲ ﻛﻤﺜﺎل ﻟﻮ ﻛﺎن ﻣﻄﻠﻮب ﻣﻨﻲ ﺑﺮﻧﺎﻣﺞ ﻳﺤﺴﺐ ﻣﺴﺎﺣﺔ داﺋﺮة ‪ ,‬وﻛﺘﺒﺖ اﻟﺴﻨﺘﺎﻛﺲ ﺑﻄﺮﻳﻘﺔ ﺻﺤﻴﺤﺔ ودﺧﻠﺖ اﻟﻤﺪﺧﻼت إﻧﻪ‪ ‬‬
‫ﻧﺼﻒ اﻟﻘﻄﺮ = ‪ , 2‬ف ﻻزم اﻟﺠﻮاب ﻳﻜﻮن ‪ , 3.14*2‬ف ﻣﺜﻼ ﻟﻮ ﻃﻠﻊ اﻟﺠﻮاب ‪ , 15‬اﻛﻴﺪ رح ﻳﻜﻮن ﻓﻲ ﻏﻠﻂ إﻣﺎ ﺑﻘﺮاءﺗﻲ ﻟﻠﺴﺆال‪ ‬‬
‫) ﺗﺤﻠﻴﻞ اﻟﻤﺸﻜﻠﺔ ( او ﺑﻜﻮن ﻣﻮ ﺣﺎﻓﻆ اﻟﻘﺎﻧﻮن ﻟﻤﺎ اﺟﻴﺖ اﻛﺘﺐ اﻟﻜﻮد )ﺧﻮارزﻣﻴﺔ اﻟﺤﻞ وال‪ (coding‬‬
‫‪ ‬‬
‫‪----------------------------------------------------------------------------------------------------------------------‬‬
‫‪ ----------------------------------------------------------------------------------------------------------------------‬‬
‫‪ ‬‬
‫‪ ‬‬
‫ﻫﺎذ ﻋﺒﺎرة ﻋﻦ ﺑﺮﻧﺎﻣﺞ ﺑﺴﻴﻂ ‪ ,‬رح ﻧﺸﺮح ﻣﻦ ﺧﻼﻟﻪ ﺑﻌﺾ اﻻﻣﻮر ‪ :‬‬
‫‪ ‬‬
‫اﻟﺠﻤﻠﺔ ﻳﻠﻲ ﻣﺄﺷﺮ ﻋﻠﻴﻬﺎ اﻟﺴﻬﻢ ﻫﻲ ﻣﺜﺎل ﻋﻠﻰ‪ ‬‬
‫ال ‪ preprocessor directives‬ﻳﻠﻲ وﺿﺤﻨﺎﻫﺎ ﺑﺎﻟﺼﻔﺤﺎت ﻗﺒﻞ ‪ ..‬‬
‫‪ ‬‬
‫ﺑﺎﻟﻨﺴﺒﺔ ﻟﻠﻌﺒﺎرة ﻳﻠﻲ ﺑﺎﻟﻤﺴﺘﻄﻴﻞ ‪ ,,‬ال ‪ namespace‬ﻫﻲ ﻋﺒﺎرة ﻋﻦ‪ ‬‬
‫‪ ) container‬ﺣﺎوﻳﺔ ( ﺑﺘﺤﺘﻮي ﻋﻠﻰ أﺷﻴﺎء اﻧﺎ ﻣﻌﺮﻓﻬﺎ ﻟﻠﺒﺮﻧﺎﻣﺞ ﻳﻠﻲ‪ ‬‬
‫ﺑﻜﺘﺐ ﻓﻴﻪ‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬ ‫‪ ‬‬
‫‪ ,‬ﻣﺜﻼ ﻋﻨﺪي ﻋﻨﺪي ﺟﺎﻣﻌﺔ اﺳﻤﻬﺎ ‪ JUST‬وﻫﺎﻟﺠﺎﻣﻌﺔ ﺑﺘﺤﺘﻮي ﻋﺪة ﻛﻠﻴﺎت )‪ IT‬اﻟﻌﺰ واﻟﻌﻠﻮم اﻟﺦ‪ .. (..‬ف أﻧﺎ ﻫﺬول ﺑﺤﻄﻬﻢ ب‪ ‬‬
‫‪) namespace‬ﻣﺶ ﻣﻬﻢ ﻛﻴﻒ ﺑﺲ اﻟﻤﻬﻢ ﺗﻮﺻﻠﻚ اﻟﻔﻜﺮة( وﺑﺲ آﺟﻲ اﺳﺘﺨﺪﻣﻬﻢ ﺑﺒﺮﻧﺎﻣﺠﻲ إذا ﺣﻜﻴﺖ ‪ IT‬رح ﻳﻌﺮف‪ ‬‬
‫اﻟﻜﻮﻣﺒﺎﻳﻠﺮ إﻧﻪ ﻗﺼﺪي ﻋﻦ ال ‪ IT‬ﻳﻠﻲ ب ‪ , just‬ﻹﻧﻲ ﻋﻤﻠﺖ ‪ namespace‬اﺳﻤﻪ ‪ just‬وﻋﺮﻓﺖ ﺟﻮاه ﻫﺎي اﻟﻤﻌﻠﻮﻣﺎت وﺑﺒﺪاﻳﺔ‪ ‬‬
‫اﻟﺒﺮﻧﺎﻣﺞ ﻛﺘﺒﺖ ;‪​ using namespae just‬ف اﻟﻜﻮﻣﺒﺎﻳﻠﺮ ﺻﺎر ﻣﺘﻌﺮف ﻋﻠﻰ أي اﺷﻲ ﺟﻮا ﻫﺎل‪ .namespace‬‬
‫‪ ‬‬
‫وﻟﻐﺔ ال ‪ ‘ ++c‬ﻓﻲ اﻟﻬﺎ أدوات ﺧﺎﺻﺔ ﻓﻴﻬﺎ ‪ ,‬ﻣﺜﻞ اﻟﺠﺎﻣﻌﺔ ﺑﺎﻟﻤﺜﺎل اﻟﺴﺎﺑﻖ ﻣﺎ ﻋﻨﺪﻫﺎ ﻛﻠﻴﺎت ﺧﺎﺻﺔ ﻓﻴﻬﺎ ف ﻫﻲ ﺣﻄﺖ ﻛﻞ‪ ‬‬
‫ﻫﺎﻻدوات ب ‪ namespace‬اﺳﻤﻪ ‪ . std‬‬
‫ف أﻧﺎ ﻟﻤﺎ أﻛﺘﺐ ‪ using namespace std‬اﻟﻜﻮﻣﺒﺎﻳﻠﺮ دﻏﺮي رح ﻳﺘﻌﺮف ع ﻛﻞ ال‪ tools‬اﻟﺨﺎﺻﺔ ﺑﻠﻐﺔ ال‪ , ++c‬ﻣﺜﻞ أداة ال‪ cout​ ,,‬‬
‫‪ cin‬ﻳﻠﻲ رح ﻧﺸﻮﻓﻬﻢ ﻟﻘﺪام ‪ ..‬‬
‫‪ ‬‬
‫‪(6) ‬‬ ‫‪ ‬‬ ‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪  ‬ﺑﺎﻟﻨﺴﺒﺔ ﻟــ ​)​‪int​ main (​void‬‬
‫ال ‪ main‬ﻫﻮ ﻋﺒﺎرة ﻋﻦ ‪ُ , function‬ﻳﻔﺘﺮض إﻧﻪ اي ﺑﺮﻧﺎﻣﺞ‪ c ++‬ﻳﺤﺘﻮي ﻋﻠﻴﻪ ‪ ,‬وﻻزم ﻳﺒﺪأ ﺑﺮﻣﺰ { ​ وﻳﻨﺘﻬﻲ ﺑﺮﻣﺰ }‪   ‬‬
‫*ﻳﻮﺟﺪ ﺗﺸﺎﺑﺘﺮ ﻛﺎﻣﻞ ﺧﺎص ﺑﺎل ‪ *functions‬‬
‫‪ ‬‬
‫ﻧﻨﺰل ﻟﻠﺴﻄﺮ ﻳﻠﻲ ﺑﻌﺪه ‪ ..‬ال ‪ cout‬ﻫﻮ ﻋﺒﺎرة ﻋﻦ أداة ﻣﻌﺮﻓﻬﺎ ﺑﺎل ‪​ , namespace std‬ﺑﺘﻄﺒﻊ أي اﺷﻲ ﺑﻌﺪﻫﺎ ﻋﻠﻰ اﻟﺸﺎﺷﺔ ‪ ,,‬‬
‫وﻫﻮن اﻻﺷﻲ ﻛﺎن ﻧﺺ )‪ (string‬وال‪ string‬ﻻزم ﻳﺒﺪأ وﻳﻨﺘﻬﻲ ﺑﻠﻐﺔ‪ c ++‬ﺑﻬﺎذ اﻟﺮﻣﺰ ) ​" (​ ‪ ,‬وﺑﺮﺿﻮ ﻻزم أي ﺟﻤﻠﺔ ﻓﻲ ﻟﻐﺔ ال‪ c++‬‬
‫ﺗﻨﺘﻬﻲ ب اﻟﻔﺎﺻﻠﺔ اﻟﻤﻨﻘﻮﻃﺔ ) ​;​ (‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫ﻧﻨﺰل ﻟﻞ ‪ , return​ ​0‬ﻛﻠﻤﺔ ‪ return‬ﺑﺘﺤﻜﻲ ﻟﻞ‪ compiler‬إﻧﻪ ﻫﻮن ﺧﻠﺺ ﺗﻨﻔﻴﺬ ال‪ , main function‬وأي أﻣﺮ ﺟﻮا ال ‪ main‬ﻣﻜﺘﻮب‪ ‬‬
‫ﺑﻌﺪ ال ‪ return‬رح ﻳﺘﺠﺎﻫﻠﻪ ال‪ compiler‬وم ﺑﻨﻔﺬه ‪ ,,‬ﺑﺎﻟﻨﺴﺒﺔ ﻟﻞ ‪ , 0‬ف ﻫﻲ اﺷﻲ ﺑﺘﻌﻠﻖ ﺑﺎل ‪ int‬ﻳﻠﻲ ﻣﻜﺘﻮﺑﺔ ﻗﺒﻞ ﻛﻠﻤﺔ ‪ main‬‬
‫‪ ,‬ورح ﻧﺸﺮﺣﻬﻢ ﺑﺎﻟﺘﻔﺼﻴﻞ ﻓﻲ ﺗﺸﺎﺑﺘﺮ ال‪ . functions‬‬
‫‪ ‬‬
‫‪ ‬‬
‫اﻟﻤﺨﺮﺟﺎت رح ﺗﻜﻮن ﻋﻠﻰ اﻟﺸﺎﺷﺔ ‪ it’s me, your first program‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ --------------------------------------------------------------------------------------------------------------‬‬
‫‪ ‬‬

‫‪Data Types, variables and Operators ‬‬


‫‪Comments ‬‬
‫‪Comments are for the reader, not the compiler ‬‬
‫‪• To explain to other readers of the code how the tricks used in the code work  ‬‬
‫‪• To explain the means of variables and functions  ‬‬
‫‪• To document who the author is and when the program was written ‬‬
‫‪• Whenever the compiler encounters a comment in your program, the compiler will skip it to the  end of the ‬‬
‫‪comment. ‬‬
‫‪Two types: ‬‬
‫‪Single line ‬‬
‫‪// This is a C++ program. It prints the sentence: ‬‬
‫‪// Welcome to C++ Programming. ‬‬
‫‪Multiple line ‬‬
‫‪/* ‬‬
‫‪You can include comments that can ‬‬
‫‪occupy several lines. ‬‬
‫‪*/ ‬‬
‫‪ ‬‬
‫‪ ‬اﻟﻜﻮﻣﻨﺘﺎت ﻫﻲ ﻟﻠﻘﺎرئ وﻣﺶ ﻟﻠﻜﻮﻣﺒﺎﻳﻠﺮ ) ﻣﺶ ﻟﻠﺘﻨﻔﻴﺬ ( ‪ ,,‬وﻣﻤﻜﻦ ﻧﺴﺘﺨﺪﻣﻬﺎ ﻟﻌﺪة أﺷﻴﺎء‬
‫● ﻧﺸﺮح ﻟﻠﻲ رح ﻳﻘﺮأ اﻟﻜﻮد ﻣﻦ ﺑﻌﺪﻧﺎ ﻛﻴﻒ ﺻﻤﻤﻨﺎ ﻫﺎﻟﻜﻮد‪  ‬‬
‫‪ ‬‬ ‫● ﻧﺒﻴﻦ ﺳﺒﺐ اﺳﺘﺨﺪام ﻛﻞ ﻓﺎرﻳﺒﻞ وﻛﻞ ﻓﻨﻜﺸﻦ )رح ﻧﺸﺮﺣﻬﻢ اﻻﺛﻨﻴﻦ(‪ ‬‬
‫● ﻧﻮﺛﻖ ﻣﻴﻦ ﻛﺘﺐ ﻫﺎﻟﻜﻮد وﺗﺎرﻳﺦ ﻛﺘﺎﺑﺔ اﻟﻜﻮد‪ ‬‬
‫‪ ‬‬
‫وأول ﻣﺎ ﻳﻼﻗﻲ اﻟﻜﻮﻣﺒﺎﻳﻠﺮ اﺷﺎرة إﻧﻪ ﻫﻮن ﻓﻲ ﻛﻮﻣﻨﺖ ‪ ,‬ﺑﻴﻌﻤﻞ ‪ skip‬ﻋﻦ ﻛﻞ اﻟﻜﻮﻣﻨﺖ وﺑﻜﻤﻞ ﻗﺮاءة اﻻﺳﻄﺮ‪ ‬‬
‫ﻳﻠﻲ ﺑﻌﺪه‪ .‬‬
‫ﻓﻲ ﻧﻮﻋﻴﻦ ﻟﻠﻜﻮﻣﻨﺘﺎت ‪ ,‬اول اﺷﻲ ﻳﻠﻲ ﺑﺒﺪأو ب ‪ ​//‬وﻫﺎذ اﻟﻜﻮﻣﻨﺖ ﺑﻨﺘﻬﻲ ﺑﻨﻬﺎﻳﺔ اﻟﺴﻄﺮ ‪ ,‬واﻟﺜﺎﻧﻲ ﻳﻠﻲ ﺑﺒﺪأ ب‪ ‬‬
‫*‪ ​/‬وﺑﻨﺘﻬﻲ ﺑﺲ ﻳﻨﻜﺘﺐ ﻫﺎﻟﺮﻣﺰ ‪ */‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪(7) ‬‬ ‫‪ ‬‬ ‫‪ ‬‬
• Reserved Words (Keywords) 
• Reserved words, keywords, or word symbols 
• Include:  
• int 
• float 
• double 
• char 
• const 
• void 

👆 * ‫ﺑﺎﺳﻤﻬﺎ‬
• return 
 ‫ﺑﻌﺾ اﻻﻣﺜﻠﺔ *ﻣﺤﺠﻮزه‬ ‫ وﻫﺎي‬c++ ‫ ) اﻟﻜﻠﻤﺎت اﻟﻤﺤﺠﻮزة( ﻫﻲ ﻛﻠﻤﺎت ﺧﺎﺻﺔ ﺑﻠﻐﺔ‬resrved words
​ ‫ال‬
‫ﻳﻌﻨﻲ ﻣﺎﺑﺼﻴﺮ ﺗﻌﺮف ﻣﺘﻐﻴﺮ أو اﻗﺘﺮان‬
 
 
 
 

• Whitespaces 
• Every C++ program contains whitespaces 
• Include blanks, tabs, and newline characters  
• Used to separate special symbols, reserved words, and 
identifiers 
• Proper utilization of whitespaces is important  
• Can be used to make the program readable 
 
 
 ‫ ﺑﻨﺴﺘﺨﺪﻣﻬﺎ ﻣﺸﺎن ﻧﻔﺼﻞ اﻟﺮﻣﻮز واﻟﻜﻠﻤﺎت اﻟﻤﺤﺠﻮزة ﻋﻦ ﺑﻌﻀﻬﺎ‬, ‫ ​ ﻫﻲ اﻟﻔﺮاﻏﺎت ﺑﺎﻟﻜﻮد‬whitspaces ‫ال‬
 .‫ وﺑﻨﻌﻤﻞ اﻟﻜﻮد ﻗﺎﺑﻞ ﻟﻠﻘﺮاءة ﺑﺸﻜﻞ أﻛﺒﺮ‬, ‫اﻟﺒﻌﺾ‬
 
 
 
 : ‫ﻣﺜﺎل‬
 
 

 
 
 " "‫ ﺑﻴﻨﻤﺎ اﻟﻤﺮة اﻟﺜﺎﻧﻴﺔ اﻟﻔﺮاغ ﻛﺎن ﺟﻮا ال‬, ‫ ﻷﻧﻪ م ﺑﺸﻮف اﻟﻔﺮاﻏﺎت اﺻﻼ‬, ‫ ﺟﻨﺐ ﺑﻌﺾ‬23 ‫ﺷﻮف اﻟﻤﺮة اﻻوﻟﻰ ﻃﺒﻊ‬
 . ‫ف اﻋﺘﺒﺮه ﺟﺰء ﻣﻦ اﻟﻨﺺ ﻳﻠﻲ رح ﻳﻄﺒﻌﻪ‬
 
 
 
 
 
 
 
 
 
 
 
 
 

(8)     
‫‪ ‬‬
‫‪ ‬‬
‫اﻟﻤﺘﻐﻴﺮات‪​ ​:‬ﻫﻲ )ﺣﺎوﻳﺎت ﺻﻐﻴﺮة( وﻇﻴﻔﺘﻬﺎ ﺗﺨﺰن ﻗﻴﻢ ﻧﺎﺗﺠﺔ ﻣﻦ ﻋﻤﻠﻴﺎت ﻓﻲ ﻟﻐﺔ ال‪ c++‬ﻣﺸﺎن ﺗﺴﺘﺨﺪﻣﻬﺎ‪ ‬‬
‫ﺑﻌﻤﻠﻴﺎت أﺧﺮى ‪ ,‬وﻛﻮﻧﻪ اﺳﻤﻬﺎ ﻣﺘﻐﻴﺮات ف ﻫﺎﻻﺷﻲ ﺑﻌﻨﻲ اﻧﻪ اﻟﻘﻴﻤﺔ داﺧﻞ ﻫﺎﻟﻤﺘﻐﻴﺮ ﻗﺎﺑﻠﺔ ﻟﻠﺘﻐﻴﻴﺮ ‪ .‬‬
‫‪ ‬‬

‫‪ ‬‬
‫ﺷﺮوط ﺗﺴﻤﻴﺔ اﻟﻤﺘﻐﻴﺮات ‪ -:‬‬
‫‪ ‬‬
‫★ اﻷﺷﻴﺎء ﻳﻠﻲ ﻣﺴﻤﻮح ﺗﻜﻮن ﻣﻮﺟﻮدة ﺑﺎﺳﻢ اﻟﻤﺘﻐﻴﺮ‪ ‬‬
‫○ اﻟﺤﺮوف )اﻧﺠﻠﻴﺰﻳﺔ ﻃﺒﻌﺎ(‪ ‬‬
‫○ اﻷرﻗﺎم‪ ‬‬
‫○ اﻟﺮﻣﺰ ) _​ ​( ​‪ -Underscore-‬‬
‫‪ ‬‬
‫​)ﻣﻤﻨﻮع رﻗﻢ(‪  ‬‬ ‫★ ﻻزم ﺗﺒﺪأ ﺑﺤﺮف او _​‬
‫‪ ‬‬
‫★ ﻣﻤﻨﻮع ﻳﻜﻮن ﻣﺘﻐﻴﺮﻳﻦ ﺑﻨﻔﺲ اﻻﺳﻢ ‪ .‬‬
‫○ ﻟﻐﺔ ال ‪ ++c‬ﻓﻴﻬﺎ ﺻﻔﺔ اﻧﻬﺎ ‪ Case sensitivity‬ﻳﻌﻨﻲ ﻓﻲ ﻓﺮق ﺑﻴﻦ اﻷﺣﺮف اﻟﻜﺒﻴﺮة واﻷﺣﺮف اﻟﺼﻐﻴﺮة ‪ ,‬‬
‫ف ﻣﺴﻤﻮﺣﻠﻲ اﺳﻤﻲ ﻣﺘﻐﻴﺮ ‪ LINUX‬واﺳﻤﻲ ﻣﺘﻐﻴﺮ ﺛﺎﻧﻲ ‪ linux‬‬
‫‪ ‬‬
‫★ ﻣﻤﻨﻮع ﻳﻜﻮن ﻛﻠﻤﺔ ﻣﺤﺠﻮزة ﺑﺎﻟﻠﻐﺔ‪ ‬‬
‫○ ﺑﻴﻨﻤﺎ ﻣﻤﻜﻦ ﻳﻜﻮن ﻛﻠﻤﺔ ﻣﻌﺮﻓﺔ ﻣﺴﺒﻘﺎَ ﻣﺜﻞ ‪ , cin / cout‬ﺑﺲ ﻣﺶ اﺷﻲ ﻛﻮﻳﺲ ﻷﻧﻪ ﻟﻮ ﻋﻤﻠﺖ ﺑﺮﻧﺎﻣﺞ ﻓﻴﻪ‪ ‬‬
‫ﻣﺘﻐﻴﺮ اﺳﻤﻪ ‪ , cout‬رح ﺗﺨﺮﺑﻂ اﻧﺖ ﻧﻔﺴﻚ ﻟﻤﺎ ﺗﻜﺘﺐ ‪ , cout‬ﻫﻞ ﻗﺼﺪك ﻋﻦ أداة اﻟﻄﺒﺎﻋﺔ وﻻ ﻋﻦ اﻟﻤﺘﻐﻴﺮ ! ‪ ,‬‬
‫واﻟﻜﻮﻣﺒﺎﻳﻠﺮ رح ﻳﺤﻜﻲ اﻧﻪ ﻓﻲ ‪ error‬ﻟﻤﺎ ﺗﺴﺘﺨﺪم اﻟﻤﺘﻐﻴﺮ ﺑﺠﻤﻠﺔ ال‪ , cout‬ﻻﻧﻪ ﻫﻮ ﺑﻄﻞ ﻋﺎرف اﻳﺎه اﻟﻤﺘﻐﻴﺮ‪ ‬‬
‫وأﻳﺎﻫﺎ اﻷداة‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪(9) ‬‬ ‫‪ ‬‬ ‫‪ ‬‬
‫‪  ‬‬
‫ﻫﻮن ﻋﺮﻓﺖ ﻣﺘﻐﻴﺮ ﻣﻦ ﻧﻮع ‪) integer‬ﻋﺪد ﺻﺤﻴﺢ( اﺳﻤﻪ ‪ cout‬وﺧﺰﻧﺖ ﻓﻴﻪ ﻗﻴﻤﺔ ‪ 7‬وﻣﺎ اﻋﺘﺮض اﻟﻜﻮﻣﺒﺎﻳﻠﺮ ‪ ,‬‬
‫‪ ‬‬ ‫ﺑﻴﻨﻤﺎ اﻋﺘﺮض ﻟﻤﺎ اﺳﺘﺨﺪﻣﺘﻪ ﻣﻊ أداة ال‪ cout‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫ﻫﺎذ اﻟﺴﻼﻳﺪ ﻓﻲ أﻣﺜﻠﺔ ﻋﻠﻰ‪ ‬‬
‫أﺳﻤﺎء ﻣﺴﻤﻮﺣﺔ )‪ (legal‬وأﺳﻤﺎء‪ ‬‬
‫ﻣﻤﻨﻮﻋﺔ ﻣﻊ اﻟﺘﻌﻠﻴﻞ‪ :‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ------------------------------------------------------------------------------------------------‬‬

‫‪ ‬‬
‫اﻟﻤﺘﻐﻴﺮ ﻓﻲ ﻟﻐﺔ ال ‪ ++c‬إﻟﻪ ‪ 3‬ﺻﻔﺎت ‪ ,‬اﻻﺳﻢ وﺣﻜﻴﻨﺎ ﻋﻨﻪ واﻟﻨﻮع واﻟﻘﻴﻤﺔ ) ﺑﺤﺪدﻫﺎ اﻟﻨﻮع(‪ ‬‬
‫‪ ‬‬
‫ﻨﻮ ِﺟﺪ ﻧﺘﻴﺠﺔ ﻟﻌﻤﻠﻴﺔ اﺳﻤﻬﺎ )‪:declaration‬إﻋﻼن( ‪ ,‬وﻫﺎي اﻟﻌﻤﻠﻴﺔ ﻫﻲ ﻋﺒﺎرة ﻋﻦ ﺗﺮﻛﻴﺐ ﺑﺮﺑﻂ اﻻﺳﻢ‪ ‬‬ ‫واﻟﻤﺘﻐﻴﺮ ِﺑ َ‬
‫اﻟﻲ ﺑﺨﺘﺎره اﻟﻤﺒﺮﻣﺞ ﺑﻨﻮع ﻣﻌﻴﻦ ‪ ,‬‬
‫ﺑﺪاﻳﺔ ﺑﻨﻜﺘﺐ اﻟﻨﻮع وﺑﻌﺪﻳﻦ ﺑﻨﻜﺘﺐ اﻻﺳﻢ وﺑﻌﺪﻫﺎ اﻟﻔﺎﺻﻠﺔ اﻟﻤﻨﻘﻮﻃﺔ ‪ ,‬واذا ﻛﻨﺖ ﺑﺪي اﻋﻤﻞ اﻛﺜﺮ ﻣﻦ ﻣﻨﺘﻐﻴﺮ‪ ‬‬
‫ﻣﻦ ﻧﻔﺲ اﻟﻨﻮع ﺑﻘﺪر اﺧﺘﺼﺮ ع ﺣﺎﻟﻲ واﻛﺘﺐ اﺳﻢ اﻟﻨﻮع ﻣﺮة وﺣﺪة ‪ ,‬وﻓﺎﺻﻠﺔ ﺑﻴﻦ ﻛﻞ اﺳﻢ )ﻣﺜﻞ اﻟﻤﺜﺎل ﻳﻠﻲ‪ ‬‬
‫ﺑﺎﻟﺴﻼﻳﺪ(‪ ‬‬
‫‪-‬ﻣﻼﺣﻈﺔ ‪ :‬ﻟﻮ ﻋﺮﻓﺖ ﻣﺘﻐﻴﺮ و م اﻋﻄﻴﺘﻪ ﻗﻴﻤﺔ رح ﺗﺘﺨﺰن ﻓﻴﻪ ﻗﻴﻤﺔ ﻋﺸﻮاﺋﻴﺔ ﺗﻠﻘﺎﺋﻴﺎ‪ .‬‬

‫‪(10) ‬‬ ‫‪ ‬‬ ‫‪ ‬‬


‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫اﻟﻨﻮع ﻫﻮ اﻟﺼﻔﺔ ﻳﻠﻲ ﺑﺘﺤﺪد اﻟﻘﻴﻤﯩﺔ ﻳﻠﻲ ﻣﻤﻜﻦ ﺗﺨﺰﻧﻬﺎ ﺟﻮا اﻟﻤﺘﻐﻴﺮ ‪ ,‬وﻋﺸﺎن ﻧﻌﻄﻲ ﻗﻴﻤﺔ ﻟﻠﻤﺘﻐﻴﺮ‪ ‬‬
‫ﺑﻨﺴﺘﺨﺪم إﺷﺎرة اﻟﻤﺴﺎواة = ‪ ,‬واﻟﺘﻨﻔﻴﺬ ﺑﻜﻮن ﻣﻦ اﻟﻴﻤﻴﻦ ﻟﻠﻴﺴﺎر )ﻳﺘﻢ اﺳﻨﺎد ﻗﻴﻤﺔ اﻟﻄﺮف اﻻﻳﻤﻦ ﻟﻠﻄﺮف‪ ‬‬
‫اﻷﻳﺴﺮ( وأي ‪ operator‬اﺧﺮى ﺑﻠﻐﺔ اﻟـ‪ ++c‬ﺑﻜﻮن اﻟﺘﻨﻔﻴﺬ ﻣﻦ اﻟﻴﺴﺎر ﻟﻠﻴﻤﻴﻦ‪ ‬‬
‫‪ ‬‬

‫‪ ‬‬
‫‪. ‬‬
‫‪ ‬‬

‫‪ ‬‬
‫‪ ‬أﻧﻮاع اﻟﺒﻴﺎﻧﺎت‪-:‬‬
‫اﻟﺘﻌﺮﻳﻒ ﻳﻠﻲ ﺑﺎﻟﺴﻼﻳﺪ م اﻟﻪ ﻋﻼﻗﺔ ﺑﺎﻟﺤﻴﺎة ) أو أﻧﺎ ﻣﺶ ﻓﺎﻫﻤﻪ (☹‪ ,‬ﺗﻌﺮﻳﻔﻬﺎ اﻟﺼﺤﻴﺢ أﻧﻪ ﻫﻲ ﺻﻔﺔ ﻟﻠﻤﺘﻐﻴﺮ او‪ ‬‬
‫ﻟﻠﺒﻴﺎﻧﺎت ﺑﺘﺤﺪد ﻟﻠﻜﻮﻣﺒﺎﻳﻠﺮ ﻛﻴﻒ رح ﺗﺴﺘﺨﺪم ﻫﺎﻟﻤﺘﻐﻴﺮ) ﺷﻮ رح ﺗﺨﺰن ﻓﻴﻪ (‪ ‬‬
‫وﺑﺘﻨﻘﺴﻢ ﻟﺜﻼث أﻗﺴﺎم زي ﻣﻬﻮ ﻣﻮﺿﺢ ﺑﺎﻟﺼﻮرة‪ .‬‬
‫‪ ‬‬
‫‪ ‬‬

‫‪(11) ‬‬ ‫‪ ‬‬ ‫‪ ‬‬


‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫ﻟﻮ أﺧﺬﻧﺎ أول ﻧﻮع ﻳﻠﻲ ﻫﻮ ال‪   simple‬‬
‫رح ﺑﺮﺿﻮ ﻳﻨﻘﺴﻢ ل‪ 3‬أﻗﺴﺎم ﻳﻠﻲ ﻫﻤﻪ‪ ‬‬
‫اﻻﻋﺪاد اﻟﺼﺤﻴﺤﺔ ‪ , integrals‬‬
‫واﻻﻋﺪاد اﻟﻌﺸﺮﻳﺔ ‪  , floating​ point‬‬
‫وآﺧﺮ واﺣﺪ ﻧﻮع اﻧﺖ ﺑﺘﻨﻴﻪ وﺑﺘﺤﺪد ﺻﻔﺎﺗﻪ اﺳﻤﻪ‪ ‬‬
‫‪ . Enumeration​ type‬‬
‫‪ ------------------------------------------------------------------------------------------------‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫اﻟـ ‪ integrals‬ﺑﻨﻘﺴﻢ ل ‪ 9‬‬
‫​ ‪ <--‬‬ ‫​‬ ‫ﻫﻴﻬﻢ‬ ‫اﻧﻮاع‬
‫‪ ‬‬
‫‪ ‬‬

‫*********************************************************************‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ : Integer‬‬
‫ﻧﻮع ال ‪ integer‬واﺧﺘﺼﺎره ‪ :​ int‬ﻫﻮ ﻋﺒﺎرة ﻋﻦ أي ﻋﺪد‪ ‬‬
‫ﺻﺤﻴﺢ ﻣﻮﺟﺐ أو ﺳﺎﻟﺐ ‪ ,‬اﻟﺴﺎﻟﺐ ﻻزم ﻧﺤﻂ ﻗﺒﻠﻪ اﻻﺷﺎرة‪ ‬‬
‫اﻟﺴﺎﻟﺒﺔ ‪ ,‬ﺑﻴﻨﻤﺎ اﻟﻤﻮﺟﺐ ﻣﺶ ﺿﺮوري ‪ ,‬و م ﺑﺼﻴﺮ ﻳﺤﺘﻮي‪ ‬‬
‫اﻟﺮﻗﻢ ﻓﻮاﺻﻞ ‪ ,‬ﺣﻜﻴﻨﺎ اﻧﻪ اﻟﻔﺎﺻﻠﺔ ﻋﺸﺎن ﺗﻔﺼﻞ اﻟﻌﻨﺎﺻﺮ‪ ‬‬
‫ﺑﻘﺎﺋﻤﺔ ﻣﻌﻴﻨﺔ ‪ ,‬ﻣﺜﻞ ‪ , int num,numb,number‬ف ﻫﻴﻚ‪ ‬‬
‫اﺳﺘﺨﺪﻣﺖ اﻟﻔﺎﺻﻠﺔ ﻋﺸﺎن اﻓﺼﻞ ﺑﻴﻦ اﻟﻤﺘﻐﻴﺮات ﻓﻲ ﺟﻤﻠﺔ ال‪ . declaration‬‬
‫*********************************************************************‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬ ‫‪ : Boolean‬‬
‫‪ ‬‬
‫ﻧﻮع ‪) Boolean‬ﻣﻨﻄﻘﻲ( واﺧﺘﺼﺎره ‪​ bool‬ﺑﺨﺰن ﻗﻴﻤﺘﻴﻦ‪ ‬‬
‫ﻓﻘﻂ ‪ true‬ورﻣﺰﻫﺎ )‪ false , (1‬ورﻣﺰﻫﺎ )‪ , (0‬وﻫﺎذ اﻟﻨﻮع‪ ‬‬
‫ﺑﺘﺤﻜﻢ ﺑﺎﻟﺘﻌﺎﺑﻴﺮ اﻟﻤﻨﻄﻘﻴﺔ )رح ﻧﺘﻌﺮف ﻋﻠﻴﻬﺎ ﺑﺪرس ال‪ ‬‬
‫‪ (if clause‬‬
‫اﻟﻜﻠﻤﺎت ‪ , bool,true and false‬ﻫﻲ ﻛﻠﻤﺎت ﻣﺤﺠﻮزة‪ ‬‬
‫ﻓﻲ ﻟﻐﺔ ال ‪ . ++c‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫*********************************************************************‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬

‫‪(12) ‬‬ ‫‪ ‬‬ ‫‪ ‬‬


‫‪ ‬‬
‫‪ ‬‬
‫‪ : Charchter‬‬
‫ﻧﻮع ‪ ) character‬رﻣﺰ ( واﺧﺘﺼﺎره ‪ ,​ char‬ﻣﻤﻜﻦ ﻳﺨﺰن ﺧﺎﻧﺔ وﺣﺪة ﻓﻘﻂ ‪ ,‬ﺷﻮ ﻣﺎ ﻛﺎﻧﺖ ‪ ,‬ﺣﺮف أو رﻗﻢ أو رﻣﺰ‪ ‬‬
‫)اي زر ﺑﺎﻟـ‪ ,(keybord‬وﻛﻞ ‪ char‬ﻻزم ﻳﻜﻮن ﻣﺤﺎط ﺑﺎل ‪  (​ ' '​ ) single coutes‬ﻣﺜﻼ ​'‪ char​ x =​ 'A‬‬
‫‪ ‬‬
‫وﺑﺮﺿﻮ ال ‪ space‬ﻳﻠﻲ ﺑﺎﻟﻜﻴﺒﻮرد ﺑﻨﻘﺪر ﻧﺤﻜﻲ اﻧﻬﺎ ‪ char‬اذا ﺣﻄﻴﻨﺎﻫﺎ ﺟﻮا ال ‪ , single coutes‬ﻳﻌﻨﻲ ﺑﺘﻌﺎﻣﻞ‪ ‬‬
‫ﻣﻌﻬﺎ ﻣﺜﻞ أي رﻣﺰ ﻣﻮﺟﻮد ‪ .‬‬
‫‪ ‬‬
‫‪ -‬ﻳﺠﺪر ﺑﺎﻟﺬﻛﺮ إﻧﻪ ال‪ charachter‬ﻫﻮ أﺻﻐﺮ ﻧﻮع ﻣﻦ ﺣﻴﺚ اﻟﺤﺠﻢ ) رح ﻧﻮﺿﺢ اﻻﺣﺠﺎم ﺑﺎﻟﺴﻼﻳﺪ اﻟﻘﺎدم (‪  ‬‬
‫‪ -‬وﻣﻦ اﻟﻤﻬﻢ ﺗﻌﺮف إﻧﻪ اﻟﻜﻤﺒﻴﻮﺗﺮ ﺑﺨﺰن أي اﺷﻲ ع ﺷﻜﻞ أرﻗﺎم ‪ ,‬ف ﻛﻞ ‪ char‬ﻓﻲ رﻗﻢ ﻣﻘﺎﺑﻞ إﻟﻪ ﻣﺴﺎوي‪ ‬‬
‫إﻟﻪ ‪ ,‬ﻣﺜﻼ ﻟﻮ ﺑﺪي أﺧﺰن ‘‪ ’A‬ف ﻫﺎذ اﻟﺤﺮف ﻓﻲ رﻗﻢ ﻣﻘﺎﺑﻞ إﻟﻪ وﻫﻮ ‪ , 65‬ﺑﺎﻟﺘﺎﻟﻲ رح ﺗﺘﺨﺰن ﻓﻲ اﻟﻤﻴﻤﻮري‪ ‬‬
‫ﻋﻠﻰ ﺷﻜﻞ ‪ .65‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪. ‬‬ ‫‪  ‬ف ﺑﻨﺴﺘﻨﺞ إﻧﻪ ‪char ‘A’ = int 65‬‬
‫‪ ‬‬
‫ﻃﺒﻌﺎ ﻟﻮ ﻛﻨﺖ ﻣﻌﺮف اﻟﻤﺘﻐﻴﺮ ك ‪ int‬رح ﻳﻄﺒﻊ ‪ 65‬ﻣﺶ ‪ . A‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬

‫‪ ‬‬
‫‪ ‬‬
‫ﻫﺎذ اﻟﺠﺪول ﺑﺒﻴﻨﻠﻚ ﻛﻞ ﻗﻴﻤﺔ ﺑﻘﺪر ﻛﻞ ﻧﻮع ﻳﺨﺰﻧﻬﺎ ‪ ,‬وﺣﺠﻤﻬﺎ ﺑﺎﻟﺬاﻛﺮة ‪ .‬ﺷﻮ ﻳﻌﻨﻲ ﺣﺠﻤﻬﺎ؟؟ ‪ ,‬ﻳﻌﻨﻲ أﻧﺎ ﻟﻤﺎ‪ ‬‬
‫اﻋﻄﻲ ﺟﻤﻠﺔ ‪ declaration‬ﻣﺜﻼ‪ ‬‬
‫‪int n =8 ; ‬‬
‫اﻟﻜﻮﻣﺒﺎﻳﻠﺮ رح ﻳﺤﺠﺰ ﻣﻜﺎن ﺑﺎﻟﺮام ﺣﺠﻤﻪ ‪ , Byte-4‬وﻳﺨﺰن ﻓﻴﻬﺎ ﻗﻴﻤﺔ ال‪ 8‬ﻟﻜﻦ ﺑﺎﻟﻨﻈﺎم اﻟﺜﻨﺎﺋﻲ )ﺑﺘﺘﻌﻠﻢ ﻛﻴﻒ‪ ‬‬
‫ﻳﻌﻨﻲ ﺑﺎﻟﻨﻈﺎم اﻟﺜﻨﺎﺋﻲ ﺑﻤﺎدة اﻟﺪﻳﺠﺘﺎل( ‪ ,‬ﻓﻌﻠﻴﺎ ال‪ 8‬م ﺑﺘﺤﺘﺎج ‪ , 4byte‬ﺑﺲ رح ﺗﺤﺠﺰﻫﻢ ﻛﻠﻬﻢ ﻻﻧﻪ ﻧﻮﻋﻬﺎ‪ ‬‬
‫‪ .integer‬‬
‫‪ ‬‬
‫ﺑﺎﻟﻨﺴﺒﺔ ﻟﻸﻗﺴﺎم اﻟﺜﺎﻧﻴﺔ ﻟﻞ‪ simple‬م اﻧﺬﻛﺮت ﺑﺎﻟﺴﻼﻳﺪات ك ﺷﺮح ﻟﻜﻦ ﻟﻠﻲ ﺣﺎب ﻳﺴﺘﺰﻳﺪ ﻫﺎذ راﺑﻂ ﻣﻤﺘﺎز‪ ‬‬
‫ﺑﺸﺮﺣﻬﻢ ﻛﻠﻬﻢ اﻟﺮاﺑﻂ ‪ .‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬

‫‪(13) ‬‬ ‫‪ ‬‬ ‫‪ ‬‬


‫‪ ‬‬
‫‪ ‬‬
‫م ﻓﻲ اﺷﻲ ﻫﺎذ اﻟﺴﻼﻳﺪ ﺑﺲ ﺣﻜﻲ ‪ ..‬ﻓﻘﻂ ﻣﻬﻢ ﺗﻌﺮف إﻧﻪ ال ‪​ ASCII‬ﻫﻮ إﺷﻲ ﺗﻢ اﻻﺗﻔﺎق ﻋﻠﻴﻪ ﺑﻤﺜﻞ اﻻرﻗﺎم‪ ‬‬
‫ﻳﻠﻲ رح ﺗﻤﺜﻞ اﻟﺮﻣﻮز ‪  .‬‬
‫أﻣﺜﻠﺔ ‪  :‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫إﻟﻲ ﺑﻬﻤﻨﺎ ﺑﺲ ال ‪  dec‬‬
‫) اﻟﻌﺸﺮي( ‪ ,,‬ﻃﺒﻌﺎ ﻫﺎذ ﻣﺶ‪ ‬‬
‫ﺣﻔﻆ ‪ ,‬ﺑﺲ ﻣﻌﻠﻮﻣﺎت إﻧﻪ ﻛﻞ‪ ‬‬
‫ﺣﺮف ﺷﻮ اﻟﺘﺮﻣﻴﺰ ﺗﺎﻋﻪ ﺑﺎﻟﻨﻈﺎم‪ ‬‬
‫اﻟﻌﺸﺮي‪ .‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫ﺣﻜﻴﻨﺎ إﻧﻪ اﻟﺮﻣﺰ ﻣﺴﺎوي ﻟﻠﺮﻗﻢ اﻟﻤﻘﺎﺑﻞ إﻟﻪ ﺑﺎل ‪ ASCII‬ﺑﺎﻟﺘﺎﻟﻲ ﻟﻤﺎ اﺣﻜﻲ ‪ , char​ x=’​A​’+32‬ف ﻫﻮ رح ﻳﺤﻂ‪ ‬‬
‫ﻳﻘﻴﻤﺔ ﻫﺎﻟﻤﺘﻐﻴﺮ ‪ 97=32+65‬وﻛﻮﻧﻪ ﻧﻮﻋﻪ ‪ char‬رح ﻳﺨﺰن اﻟﺮﻣﺰ اﻟﺨﺎص ﺑﺎل ‪ 97‬ﻳﻠﻲ ﺑﻤﺜﻞ ﻣﻦ اﻟﺠﺪول’ ‪ . ’a‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬

‫‪(14) ‬‬ ‫‪ ‬‬ ‫‪ ‬‬


‫‪ ‬‬
‫‪ ‬اﻷرﻗﺎم وﻛﻴﻒ اﻟﻜﻤﺒﻴﻮﺗﺮ ﺑﺘﻌﺎﻣﻞ ﻣﻌﻬﺎ!‬
‫‪ ‬‬
‫‪  ‬اﻻرﻗﺎم ﺑﺎﻟﻜﻤﺒﻴﻮﺗﺮ ﺑﺘﻘﺴﻢ ﻟﻨﻮﻋﻴﻦ‪-:‬‬
‫‪ (​integers​) ‬اﻻرﻗﺎم اﻟﺼﺤﻴﺤﺔ وﻫﻲ ﻳﻠﻲ م ﻓﻴﻬﺎ ﻣﻜﺎن ﻟﻠﻜﺴﻮر اﻟﻌﺸﺮﻳﺔ‪.‬‬
‫اﻟﻨﻮع اﻟﺜﺎﻧﻲ إﻟﻲ ﺑﻘﺒﻞ اﻟﻔﺎﺻﻠﺔ اﻟﻌﺸﺮﻳﺔ وإﺳﻤﻪ ‪​ floating point‬وﻫﺎذ اﻟﻨﻮع ﺑﻘﺒﻞ ﻛﺴﻮر ﻋﺸﺮﻳﺔ ‪  .‬‬
‫‪ ‬‬
‫وﻫﺎﻟﻨﻮﻋﻴﻦ ﺑﺨﺘﻠﻔﻮا ﺑﻜﻴﻔﻴﺔ ﺗﺨﺰﻳﻨﻬﻢ وﺑﺎﻟﺤﺪ اﻟﻤﺴﻤﻮح ﻟﻠﻘﻴﻢ ﻳﻠﻲ ﻣﻤﻜﻦ ﺗﺘﺨﺰن ﻓﻴﻬﻢ ‪ .‬‬
‫وﻃﺒﻌﺎ ﻟﻐﺔ ال ‪ ++c‬ﺑﺘﺴﻤﺢ ﺑﺒﻌﺾ اﻟﻌﻤﻠﻴﺎت اﻟﺮﻳﺎﺿﻴﺔ ع ﻫﺎﻟﻨﻮﻋﻴﻦ ﻣﺜﻞ اﻟﺠﻤﻊ واﻟﻄﺮح واﻟﻀﺮب واﻟﻘﺴﻤﺔ‪ .‬‬
‫‪ ‬‬

‫‪ ‬‬
‫ﻟﻐﺔ ال ‪ ++c‬ﺑﺘﺴﺘﺨﺪم ﻃﺮﻳﻘﺔ ﻟﺘﻤﺜﻴﻞ اﻻرﻗﺎم اﻟﻌﺸﺮﻳﺔ )ﺟﻮا ال‪ , (RAM‬واﻟﺘﻤﺜﻴﻞ ﺑﻜﻮن ﻛﺎﻟﺘﺎﻟﻲ‪ ‬‬
‫‪ ‬‬
‫ﺧﺎﻧﺔ وﺣﺪة ﻗﺒﻞ اﻟﻔﺎﺻﻠﺔ اﻟﻌﺸﺮﻳﺔ ‪ ,‬و ‪ 6‬ﺧﺎﻧﺎت ﺑﻌﺪ اﻟﻔﺎﺻﻠﺔ اﻟﻌﺸﺮﻳﺔ ‪ ,‬وﺑﻌﺪ اﻟﺨﺎﻧﺔ اﻟﻌﺸﺮﻳﺔ ﻓﻲ اﻟﺤﺮف ‪ E‬وﺑﻌﺪ‪ ‬‬
‫اﻟﺤﺮف ﻓﻲ اﻟﺮﻗﻢ ﻳﻠﻲ اﻧﺖ ﺣﺮﻛﺖ اﻟﻔﺎﺻﻠﺔ اﻟﻌﺸﺮﻳﺔ ﺑﻤﻘﺪاره ‪ ,‬ﻟﻮ ﺣﺮﻛﺖ ﻟﻠﻴﻤﻴﻦ ﺑﻨﻘﺺ اﻟﺮﻗﻢ واﺣﺪ وﻟﻮ ﺣﺮﻛﺖ‪ ‬‬
‫ﻟﻠﺸﻤﺎل ﺑﺰﻳﺪ اﻟﺮﻗﻢ واﺣﺪ‪ .‬‬
‫وﻳﺠﺪر ﺑﺎﻟﺬﻛﺮ اﻧﻪ ﻻزم ﻳﻜﻮن ﺑﺎﻟﺮﻗﻢ ﻓﺎﺻﻠﺔ ﻋﺸﺮﻳﺔ ﺣﺘﻰ اﻋﺘﺒﺮه ‪ . floating point number‬‬
‫‪ ‬‬
‫‪  ‬‬
‫‪ ‬‬

‫‪(15) ‬‬ ‫‪ ‬‬ ‫‪ ‬‬


‫‪ ‬‬
‫‪ ‬‬
‫ﻫﺎذ اﻟﻨﻮع ﺑﺮﺿﻮ ﻳﻘﺴﻢ ﻟﻌﺪة أﻗﺴﺎم‪ ‬‬
‫) ‪ ( float ​ , ​double ​, ​long double‬‬
‫وﺑﺎﻟﺴﻼﻳﺪ ﻣﻮﺿﺢ اﻟﻘﻴﻢ ﻳﻠﻲ ﻣﺴﻤﻮح‪ ‬‬
‫ﺗﺘﺨﺰن ﺑﻜﻞ ﻗﺴﻢ‪ .‬‬
‫‪ ‬‬
‫‪ -‬وﺑﺎﻏﻠﺐ اﻟﻜﻮﻣﺒﺎﻳﻠﺮات ال‪   double‬‬
‫وال ‪ long double‬ﻳﻌﺘﺒﺮوا ﻧﻮع واﺣﺪ‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ------------------------------------------------------------------------------------------------‬‬
‫ﻓﻬﻤﻨﺎ اﻧﻪ اﻻرﻗﺎم اﻟﻬﺎ اﻧﻮاع )‪ (...,int,float‬وﻟﻤﺎ اﻋﻤﻞ ﻣﺘﻐﻴﺮ اﻧﺎ ﺑﺤﺪد ﻧﻮﻋﻪ ‪ ,‬ﻃﻴﺐ اذا دﺧﻠﺖ رﻗﻢ ‪-‬ﻣﺶ ﻣﺘﻐﻴﺮ‪ -‬‬
‫اﻳﺶ ﺑﻜﻮن ﻧﻮﻋﻪ ؟‪  ‬‬
‫‪ ‬‬
‫● اذا ﻛﺎن اﻟﺮﻗﻢ ﻣﻦ ﻏﻴﺮ ﻓﺎﺻﻠﺔ ﻓﺒﻜﻮن ﻧﻮﻋﻪ ‪  int‬‬
‫● اذا ﻛﺎن ﻣﻊ ﻓﺎﺻﻠﻪ ﻓﺒﻜﻮن ﻧﻮﻋﻪ ‪- ​ double‬اﺣﺪ اﻧﻮاع ‪ -floating‬‬
‫‪ ‬‬
‫اوﻟﻮﻳﺔ ال ‪ floating‬اﻋﻠﻰ ﻣﻦ ال ‪ integral‬ﻓﻠﻤﺎ اﺟﻤﻊ أو اﺿﺮب ‪...‬اﻟﺦ ﺑﻴﻦ ‪ integral‬ﻣﻊ ‪ floating‬ﻓﺒﻜﻮن اﻟﻨﺎﺗﺞ‪ ‬‬
‫‪ floating‬‬
‫‪ ‬‬
‫واذا ‪ integral‬ﻣﻊ ‪ integral‬ﻓﺎﻟﻨﺎﺗﺞ داﺋﻤﺎ ‪  integral‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫ﺑﺎﻟﻤﺜﺎل ﻳﻠﻲ ﺑﺎﻟﺴﻼﻳﺪ ﻓﻲ ارﺑﻊ ﻣﺘﻐﻴﺮات‪  ,‬‬
‫اﺛﻨﻴﻦ ‪) int‬م ﻓﻴﻬﻢ ﻣﻜﺎن ﻟﺘﺨﺰﻳﻦ أرﻗﺎم‪ ‬‬
‫ﻋﺸﺮﻳﺔ( واﺛﻨﻴﻦ ‪ float‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪  ‬اﻟﻤﺘﻐﻴﺮ و ) اﻻرﻗﺎم ‪ 10‬و‪ int (4‬ﻓﺘﺘﺨﺰن ﻗﻴﻤﺔ اﻟﻤﺘﻐﻴﺮ ﻣﻦ ﻏﻴﺮ ﻓﺎﺻﻠﺔ ) ‪i‬‬
‫​اﻟﻘﻴﻤﺔ ﻳﻠﻲ رح ﺗﺘﺨﺰن ﻓﻴﻪ ‪ 2.5‬ﻹﻧﻪ ‪ int‬ﻣﻊ ‪ float‬اﻟﻨﺎﺗﺞ رح ﻳﻜﻮن ‪ float‬ﺑﺲ ﻛﻮﻧﻪ اﻟﻤﺘﻐﻴﺮ ‪ int‬رح ﻳﺼﻴﺮ ‪ z) ​lose‬‬
‫‪ data‬وﻧﺨﺴﺮ ﻳﻠﻲ ﺑﻌﺪ اﻟﻔﺎﺻﻠﺔ ف ﺑﻴﺘﺨﺰن ‪ 2‬ﻓﻘﻂ‪  ‬‬
‫‪  ‬اﻟﻤﺘﻐﻴﺮ ﺑﻔﺎﺻﻠﻪ واﻻرﻗﺎم ﺑﻔﺎﺻﻠﻪ ﻓﺒﺘﺨﺰن ﺑﻔﺎﺻﻠﺔ ﻋﺎدي ​ ​) ‪x‬‬
‫‪ ‬اﻟﻤﺘﻐﻴﺮ ﺑﻘﺒﻞ ﻓﺎﺻﻠﺔ واﻻرﻗﺎم ‪ - double‬ﻻﻧﻬﺎ اوﻟﻰ ﻣﻦ ‪ ​ ​ -int‬ﻓﺒﺨﺰﻧﻬﻢ ﺑﻔﺎﺻﻠﻪ ​) ‪w‬‬
‫‪------------------------------------------------------------------------------------------------ ‬‬
‫ﻣﺜﺎل ﻟﻤﺎ ﻳﻜﻮن اﻟﻤﺘﻐﻴﺮ ﻣﻦ ﻧﻮع ﺑﻘﺒﻞ اﻟﻔﺎﺻﻠﺔ وﺧﺰﻧﺖ ﻓﻴﻪ اﻧﺘﺠﺮ ‪ .‬‬
‫‪ double c = 1; cout <<c‬‬
‫رح ﻳﻄﺒﻊ ‪ 1‬ﻣﻦ ﻏﻴﺮ ﺻﻔﺮ ﻻﻧﻪ )ﺑﺎﻟﺬاﻛﺮه ﺑﺘﺘﺨﺰن ﺑﻔﺎﺻﻠﻪ ﺑﺲ اﺛﻨﺎء اﻟﻄﺒﺎﻋﻪ ﻣﺎ ﺑﻄﺒﻊ ‪ 1.0‬اﻻ اذا ﻋﻤﻠﺖ‪ ‬‬
‫‪ setprecision‬اﻟﻲ رح ﺗﺎﺧﺬوﻫﺎ ﺑﺎﻟﻼب ﺑﻌﺪﻳﻦ (‪  ‬‬
‫************************************************‪ ‬‬
‫ﻣﺜﺎل ﻗﻮي ‪ :3‬‬
‫‪int i = ( 10/4 )/2.5 ;  ‬‬
‫ﻫﻮن ) ‪​ int ( 10/4‬ﻣﻊ ‪​ int‬ﻓﺠﻮاﺑﻬﻢ ‪​ int‬ﻳﻌﻨﻲ ‪   2‬‬
‫ﺑﻌﺪﻳﻦ ‪ int 2/2.5‬ﻣﻊ ‪ double‬ﻓﺠﻮاﺑﻬﻢ ‪- 0.8‬ﻻﻧﻪ ال‪ double‬اوﻟﻮﻳﺘﻬﺎ أﻋﻠﻰ ‪ -‬‬
‫اﺧﺮ اﺷﻲ اﻟﻤﺘﻐﻴﺮ ﻣﻦ ﻧﻮع ‪ int‬ﻓﻤﺎ ﺑﺎﺧﺬ اﻟﻔﺎﺻﻠﻪ ﻓﺎﻟﺠﻮاب ‪   i= 0‬‬

‫‪(16) ‬‬ ‫‪ ‬‬ ‫‪ ‬‬


‫‪ ‬‬

‫ال ‪ float‬ﺑﻘﺪر ﻳﺨﺰن ‪ 6‬او ‪ 7‬ارﻗﺎم ﺑﻌﺪ‪ ‬‬


‫اﻟﻔﺎﺻﻠﺔ ‪ ,‬ﺑﻴﻨﻤﺎ ال‪ double‬ﺑﻘﺪرﻳﺨﺰن ‪ . 15‬‬

‫ﻓﻲ ﻋﻨﺪﻧﺎ ﻣﻔﻬﻮم ﺟﺪﻳﺪ اﺳﻤﻪ ‪  precison‬‬


‫ﻫﻮ ﻋﺒﺎرة ﻋﻦ أﻛﺒﺮ ﻋﺪد ﻣﻦ اﻻرﻗﺎم ﻳﻠﻲ‪ ‬‬
‫ﺑﻌﺪ اﻟﻔﺎﺻﻠﺔ اﻟﻌﺸﺮﻳﺔ‪ ‬‬

‫ﻣﻤﻜﻦ ﺣﺪ ﻳﺴﺄل ‪ ,‬ﻃﻴﺐ ﻟﻴﺶ اﻟﻜﻤﺒﻴﻮﺗﺮ‪ ‬‬


‫ﺑﺤﻮل اﻻوﻗﺎم ﻟﻬﺎي اﻟﺼﻴﻐﺔ )ﻳﻠﻲ ﺑﺘﺨﺰن‪ ‬‬
‫ﻓﻴﻬﺎ ال‪ floating‬ﺑﺎل ‪ (RAM‬؟ ‪ ,‬ﻻﻧﻬﺎ‪ ‬‬
‫ﺑﺒﺴﺎﻃﺔ ﺑﺘﺤﻮل اﻟﺮﻗﻢ ﻳﻠﻲ ﺑﺪه ﻣﻜﺎن ﻛﺒﻴﺮ‪ ‬‬
‫ﻟﺘﻤﺜﻴﻠﻪ ‪ ,‬ﻟﺮﻗﻢ ﺑﺤﺎﺟﺔ ﻟﻤﻜﺎن اﻗﻞ ‪) .‬ﺑﺪل‪ ‬‬
‫‪ 30000‬ﺑﺘﺘﺨﺰن ‪ (3E4‬‬

‫ﻃﺒﻌﺎ ال ‪ exponent‬ﻻزم ﻳﻜﻮن ‪ ) int‬ﻻﻧﻪ ﺑﻤﺜﻞ ﻋﺪد ﺧﺎﻧﺎت( ﺑﻴﻨﻤﺎ اﻟﺮﻗﻢ ﻳﻠﻲ ﻗﺒﻠﻪ ﻣﺶ ﺿﺮوري ﻳﻜﻮن ‪ int‬‬
‫‪ --------------------------------------------------------------------------------------------------------------‬‬

‫‪ ‬‬

‫ﺷﻮ ﻣﻤﻜﻦ ﻳﺼﻴﺮ ﻟﻮ ﺣﻮﻟﺖ رﻗﻢ ﻣﻦ ‪ int‬ل ‪ float‬؟‪  ‬‬

‫وﻻ اﺷﻲ ☺ ﺑﺲ ﺑﺘﻨﻀﺎف اﻟﻔﺎﺻﻠﺔ اﻟﻌﺸﺮﻳﺔ‪ ‬‬


‫ﻟﻘﻴﻤﺔ اﻟﺮﻗﻢ ﺑﺎﻟﺬاﻛﺮة ‪ .‬‬
‫‪ ‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪ --------------------------------------------------------------------------------------------------------------‬‬

‫‪ ‬‬

‫ﺑﻴﻨﻤﺎ ﻟﻮ ﺣﻮﻟﺖ ﻣﻦ ‪ float‬ل ‪ int‬رح أﺧﺴﺮ اﻟﻘﻴﻤﺔ ﻳﻠﻲ ﺑﻌﺪ اﻟﻔﺎﺻﻠﺔ اﻟﻌﺸﺮﻳﺔ )‪ .(lose data‬‬
‫‪ ‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪(17) ‬‬ ‫‪ ‬‬ ‫‪ ‬‬


‫‪ ‬‬

‫‪ ‬‬

‫‪ ‬‬

‫اﻟﻌﻤﻠﻴﺔ )‪​ ​(operator‬ﻫﻲ رﻣﺰ ﻓﻲ‪ ‬‬


‫ﻟﻐﺔ اﻟﺒﺮﻣﺠﺔ ﺑﻘﺪر ﻣﻦ ﺧﻼﻟﻪ اﺗﺤﻜﻢ‪ ‬‬
‫ﺑﺎﻟﻘﻴﻢ ‪ ,‬ﻋﻠﻰ ﺳﺒﻴﻞ اﻟﻤﺜﺎل اﺷﺎرة‪ ‬‬
‫اﻟﻤﺴﺎواة = ﺑﺘﻤﻜﻨﻨﻲ ﻣﻦ إﻧﻲ اﺳﻨﺪ‪ ‬‬
‫ﻗﻴﻢ ﻟﻠﻤﺘﻐﻴﺮات ‪ ,‬وﺑﺮﺿﻮ ﻓﻲ ﺑﻠﻐﺔ‪ ‬‬

‫ال‪ ++c‬اﻟﻌﻤﻠﻴﺎت اﻟﺤﺴﺎﺑﻴﺔ ‪ :‬ﺟﻤﻊ‪ ‬‬


‫وﺿﺮب وﻗﺴﻤﺔ وﻃﺮح‪ ‬‬

‫إﺷﺎرة اﻟﺠﻤﻊ ‪ , +‬إﺷﺎرة اﻟﻄﺮح ‪ , -‬إﺷﺎرة‪ ‬‬


‫اﻟﻀﺮب * ‪ ,‬اﺷﺎرة اﻟﻘﺴﻤﺔ ‪ .. /‬‬
‫‪ ‬‬

‫‪ ‬‬

‫ﻣﺜﺎل ‪ :‬‬

‫‪ ‬‬
‫‪ ‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪ --------------------------------------------------------------------------------------------------------------‬‬

‫‪ ‬‬

‫اﻟﻘﺴﻤﺔ ﻋﻠﻰ ﺻﻔﺮ‪  ‬‬


‫إﺣﻨﺎ ﺗﻌﻠﻤﻨﺎ ﻧﻮع ﻣﻦ اﻻﺧﻄﺎء ﻳﻠﻲ‪ ‬‬
‫ﺑﻜﺘﺸﻔﻬﺎ اﻟﻜﻮﻣﺒﺎﻳﻠﺮ ﻟﻤﺎ ﻳﻜﻮن ﻋﻨﺪي‪ ‬‬
‫ﺳﻨﺘﺎﻛﺲ ﻏﻠﻂ ‪ ,‬واﺳﻤﻪ ‪ syntax error‬‬
‫وﻫﺎﻟﻨﻮع اﻟﻜﻮﻣﺒﺎﻳﻠﺮ ﺑﻜﺘﺸﻔﺔ واﻧﺖ‪ ‬‬
‫ﺗﻜﺘﺐ ﺑﺎﻟﻜﻮد ‪ ,‬ﻗﺒﻞ ﻋﻤﻠﻴﺔ اﻟﺘﻨﻔﻴﺬ ‪ ,‬‬
‫اﻵن رح ﻧﺸﻮف ﻧﻮع ﺛﺎﻧﻲ اﺳﻤﻪ ‪ run‬‬
‫‪ , time error‬وﻫﺎﻟﻨﻮع ﺑﻜﺘﺸﻔﻪ‪ ‬‬
‫اﻟﻜﻮﻣﺒﺎﻳﻠﺮ أﺛﻨﺎء ﺗﻨﻔﻴﺬ اﻟﺒﺮﻧﺎﻣﺞ ‪ ,‬وﻣﻦ اﻻﻣﺜﻠﺔ ﻋﻠﻴﻪ اﻟﻘﺴﻤﺔ ﻋﻠﻰ ﺻﻔﺮ ‪  .‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪(18) ‬‬ ‫‪ ‬‬ ‫‪ ‬‬


‫‪ ‬‬

‫‪ ‬‬

‫‪  ‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪ ‬‬

‫ﻋﻤﻠﻴﺔ اﻟﻄﺮح ﻫﻲ ﻋﻤﻠﻴﺔ ﺛﻨﺎﺋﻴﺔ )‪) ​(binary‬ﺑﺘﻮﺧﺬ ﻃﺮﻓﻴﻦ اﻟﻤﻄﺮوح واﻟﻤﻄﺮوح ﻣﻨﻪ ( ﻓﻲ ﻋﻨﺪﻧﺎ اﺷﺎرة اﻟﺴﺎﻟﺐ‪ ‬‬
‫أﺣﺎدﻳﺔ )‪​ (Unary‬وﻫﻲ ﻳﻠﻲ ﺑﺘﻮﺧﺬ ﻃﺮف واﺣﺪ ع ﻳﻤﻴﻨﻬﺎ ﻣﺜﻞ اﻟﻤﺜﺎل ﻳﻠﻲ ﺑﺎﻟﺴﻼﻳﺪ ‪ ,‬وﻧﻔﺲ اﻻﺷﻲ اﻟﺠﻤﻊ‪ ‬‬
‫ﻋﻤﻠﻴﺔ ﺛﻨﺎﺋﻴﺔ ‪ ,‬ﺑﻴﻨﻤﺎ اﺷﺎرة اﻟﻤﻮﺟﺐ ​أﺣﺎدﻳﺔ )‪) ​(Unary‬ﺑﺘﻌﻄﻲ اﺷﺎرة ﻟﻠﻲ ﺑﻌﺪﻫﺎ( ﻟﻜﻦ م ﻓﻲ داﻋﻲ اﻛﺘﺒﻬﺎ‪ ‬‬
‫ﻟﻠﺮﻗﻢ ﻛﻮﻧﻪ ﻋﺪم وﺟﻮدﻫﺎ ووﺟﻮدﻫﺎ ﺑﺮﺿﻮ ﺑﺸﻴﺮ ﻟﻨﻔﺲ اﻻﺷﻲ ) إﻧﻪ اﻟﺮﻗﻢ ﻣﻮﺟﺐ (‪ ‬‬

‫‪ --------------------------------------------------------------------------------------------------------------‬‬

‫‪ ‬‬

‫) ‪ :modulo‬ﺑﺎﻗﻲ اﻟﻘﺴﻤﺔ( ​واﺷﺎراﺗﻬﺎ‪ ‬‬


‫ﺑﻠﻐﺔ ال‪ ++c‬ﻫﻲ ﻫﺎذ اﻟﺮﻣﺰ ‪ , ​%‬وﻫﻲ‪ ‬‬
‫ﻋﻤﻠﺔ ﺛﺘﺎﺋﻴﺔ ) اﻟﻬﺎ ﻃﺮﻓﻴﻦ( وﻻزم اﻟﻄﺮﻓﻴﻦ‪ ‬‬
‫م ﻳﻜﻮﻧﻮ ﻣﻦ ال‪ . floating point numbers‬‬
‫‪-‬ﻳﻌﻨﻲ ﻻزم ﻣﻦ ﻏﻴﺮ ﻓﺎﺻﻠﻪ ‪ -‬‬

‫وﺑﺎﻟﻄﺒﻊ م ﺑﺼﻴﺮ اﻋﻤﻞ ﺑﺎﻗﻲ ﻗﺴﻤﺔ ﻟﻌﺪد‪ ‬‬


‫ع ﺻﻔﺮ ‪ ,‬ﻻﻧﻪ ﻻزم اﻋﺮف ﻧﺎﺗﺞ اﻟﻘﺴﻤﺔ‪ ‬‬
‫ﻟﺤﺘﻰ اﻋﺮف اﻟﺒﺎﻗﻲ ‪ ,‬ﻳﻌﻨﻲ ‪ 2 = 13/5‬‬
‫واﻟﺒﺎﻗﻲ ‪ , 3‬ف اﻧﺎ اﺣﺘﺠﺖ اﻋﺮف اﻟﻨﺎﺗﺞ‪ ‬‬
‫ﻟﺤﺘﻰ اﺟﻴﺐ اﻟﺒﺎﻗﻲ ‪ ,‬ف ﻣﺜﻼ ‪ , 15%0‬م‪ ‬‬
‫ﺑﻘﺪر اﻋﺮف اﺻﻼ ‪ , 15 /0‬ف رح ﻳﻌﻄﻴﻨﻲ‪ ‬‬
‫‪runtime error‬‬
‫‪ ‬‬

‫وﺑﺮﺿﻮ ﻟﻮ ﻋﻤﻠﺖ ﻣﺘﻐﻴﺮ ﻣﻦ ﻧﻮع ‪ float , double‬رح ﻳﻌﻄﻴﻨﻲ اﻳﺮور اذا اﺳﺘﻌﻤﻠﺖ ﻣﻌﻪ ‪ %‬ﺣﺘﻰ ﻟﻮ ﻣﺨﺰن ﻓﻴﻪ ﻋﺪد‪ ‬‬
‫‪ ‬‬ ‫ﺻﺤﻴﺢ‪ ‬‬

‫ﻏﻠﻂ ‪ float x=1 ; cout <<x%2 ; ​<--‬‬

‫‪ ------------------------------------------------------------------------------------------------‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪(19) ‬‬ ‫‪ ‬‬ ‫‪ ‬‬


‫‪ ‬‬

‫اﻷوﻟﻮﻳﺎت ‪​ :‬ﻛﺘﻌﺮﻳﻒ ﻫﻲ اﻟﺨﺎﺻﻴﺔ‪ ‬‬


‫ﻳﻠﻲ ﺑﺘﺴﺒﺐ ﺗﻨﻔﻴﺬ ﻋﻤﻠﻴﺔ ﻗﺒﻞ ﻋﻤﻠﻴﺔ‪ ‬‬
‫أﺧﺮى )ﻣﺎ ﻋﻠﻴﻨﺎ(‪ ‬‬

‫وأﻟﻮﻳﺎت ﻟﻐﺔ ال‪ ++c‬ﻧﻔﺴﻬﺎ أوﻟﻮﻳﺎت‪ ‬‬


‫اﻟﺮﻳﺎﺿﻴﺎت اﻟﻤﻌﺮوﻓﺔ ‪ ..‬ف ﻣﻦ اﻟﻮاﺿﺢ‪ ‬‬
‫اﻧﻪ ﺟﻮاب اﻟﻤﺜﺎل رح ﻳﻜﻮن ‪ 17‬‬

‫وﻓﻲ ﺣﺎل ﻛﺎﻧﺖ ﻋﻨﺪي اﻻوﻟﻮﻳﺎت‪ ‬‬


‫ﻣﺘﺴﺎوﻳﺔ ‪ ,‬ﺑﺘﺘﻨﻔﺬ اﻟﻌﻤﻠﻴﺎت ﻣﻦ اﻟﻴﺴﺎر‪ ‬‬
‫ﻟﻠﻴﻤﻴﻦ‪ ‬‬

‫‪ ‬‬

‫********************************************************‪ ‬‬

‫ﻣﺜﺎل ‪ 2-5+4*7/6‬اﻟﺠﻮاب رح ﻳﻜﻮن ‪ ) 7‬م ﺗﻨﺴﻰ ‪ 7/6‬ﺟﻮاﺑﻬﺎ ‪ 1‬ﻹﻧﻬﻢ ‪ ( int‬‬

‫‪ ‬‬

‫**************************************************************‪ ‬‬

‫وﻫﺎذ اﻟﺸﻜﻞ ﻓﻴﻪ اﻷوﻟﻮﻳﺎت ﻟﻠﻌﻤﻠﻴﺎت ‪ ..‬‬

‫‪ ‬‬

‫************************************************************‪ ‬‬

‫ﺑﻴﻨﻤﺎ ﻟﻮ دﺧﻠﺖ ﻋﻨﺪي اﻻﻗﻮاس ‪ ,‬رح ﺗﻜﻮن اﻟﻌﻤﻠﻴﺔ ﻳﻠﻲ ﺟﻮا اﻟﻘﻮس ﻫﻲ ﺻﺎﺣﺒﺔ اﻻوﻟﻮﻳﺔ ﺑﻐﺾ اﻟﻨﻈﺮ ﻋﻨﻬﺎ‪ ..‬‬

‫‪ ‬‬ ‫ﻣﺜﺎل ﺟﻤﻴﻞ ﻟﻠﺘﺪرب ‪ :‬‬

‫‪ ‬‬
‫‪ ‬‬

‫‪ ‬‬

‫اﻟﺠﻮاب رح ﻳﻜﻮن ‪ 10‬‬

‫‪(20) ‬‬ ‫‪ ‬‬ ‫‪ ‬‬


‫‪ ‬‬

‫اﻟﺘﻌﺎﺑﻴﺮ ‪   Expressions :‬‬


‫)ﻋﻤﻠﻴﺔ أو أﻛﺜﺮ ﻋﻠﻰ اﻻرﻗﺎم(‪ ‬‬
‫اذا ﻛﺎﻧﻮ ﺟﻤﻴﻊ اﻻﻃﺮاف ﺗﺎﻋﺎت‪ ‬‬
‫اﻟﻌﻤﻠﻴﺎت ‪ integers‬ف ﺑﻨﺴﻤﻴﻪ‪ ‬‬
‫‪ integral expression‬وأﻛﻴﺪ‪ ‬‬
‫اﻟﺠﻮاب ‪ int‬وإذا ﻛﺎﻧﻮا ﻛﻠﻬﻢ‪ ‬‬
‫‪ floationg point‬ف ﺑﻨﺴﻤﻴﻪ‪ ‬‬
‫‪ floating point numbers‬‬
‫واﻟﺠﻮاب رح ﻳﻜﻮن ‪ floating point‬‬

‫وإذا ﻛﺎﻧﻮا ﺧﻠﻴﻂ ﺑﻴﻦ ‪ int‬و‪ ‬‬


‫‪ floating point‬ﺑﻨﺴﻤﻴﻪ ‪ mixed‬‬
‫‪ expression‬واﻟﺠﻮاب ﺑﻜﻮن‪ ‬‬
‫‪) floating point‬ذﻛﺮﻧﺎﻫﺎ ﺳﺎﺑﻘﺎ(‪ ‬‬

‫‪ --------------------------------------------------------------------------------------------------------------‬‬

‫‪ ‬‬

‫‪ ‬‬

‫ﻓﻲ ‪ operator‬ﺑﺘﺴﻤﺤﻠﻚ‪ ‬‬
‫ﺗﺤﻮل اﻟﺪاﺗﺎ ﻣﻦ ﻧﻮع ﻟﻨﻮع‪ ‬‬
‫ﺛﺎﻧﻲ ‪ ..‬‬

‫وﻫﻴﻚ اﻟﺴﻨﺘﺎﻛﺲ ﺗﺎﻋﻬﺎ‪ ‬‬


‫)‪ static_cast<type>(value‬‬
‫وﻣﻤﻜﻦ ﺗﻜﻮن ال‪ value‬‬
‫ﻣﺘﻐﻴﺮ او ﻗﻴﻤﺔ ﺛﺎﺑﺘﺔ ‪ ..‬‬

‫اﻻﻣﺜﻠﺔ ﻳﻠﻲ ﺑﺎﻟﺴﻼﻳﺪ ﻛﺎﻓﻴﺔ‪ ‬‬


‫ﺷﺎﻓﻴﺔ ﺷﺎﻣﻠﺔ ﻛﺎﻣﻠﺔ ‪ D:‬‬

‫‪ ‬‬
‫‪ ‬‬

‫‪ ‬‬

‫‪ -----------------------------------------------------------------------------------------------------------‬‬
‫َ‬
‫‪..‬‬
‫ُ‬ ‫ُ‬
‫‪...‬‬ ‫‪...‬‬
‫ٔ‬
‫‪...‬‬ ‫‪...‬‬
‫ُ‬ ‫ُ ْٔ‬
‫!‬ ‫‪..‬‬
‫‪ ‬‬

‫‪(21) ‬‬ ‫‪ ‬‬ ‫‪ ‬‬


‫‪ ‬‬ ‫‪ ‬‬
‫‪ ‬‬

‫ﻓﻲ ﻧﻮع ‪ Data‬ﺛﺎﻧﻲ واﺳﻤﻪ ‪ string‬‬


‫​)ﺷﻔﻨﺎه ﻗﺒﻞ ﻫﻴﻚ( وﻫﻮ ﻋﺒﺎرة ﻋﻦ ) ﺻﻔﺮ ﻛﺮاﻛﺘﺮ أو أﻛﺜﺮ ( وﻻزم ﻳﺒﺪأ وﻳﻨﺘﻬﻲ ﺑﺎل ‪ . " " double quotation‬‬

‫‪ ‬‬

‫ﻓﻲ ﻋﻨﺪﻧﺎ إﺷﻲ اﺳﻤﻪ ‪) NULL‬ﻛﻠﻪ ﻛﺎﺑﺘﻞ( وﻫﻮ ‪ string‬ﻳﻠﻲ ﻓﻴﻪ )‪ (zero char‬ﻳﻌﻨﻲ وﻻ اﺷﻲ ‪ .‬‬

‫‪ ‬‬

‫وﻛﻞ ﻛﺮاﻛﺘﺮ داﺧﻞ ال‪ string‬إﻟﻪ ﻣﻜﺎن ﺧﺎص ﻓﻴﻪ ‪ ,‬وﺗﺮﻗﻴﻢ ﻫﺎﻻﻣﺎﻛﻦ ﺑﺒﻠﺶ ﻣﻦ ﻋﻨﺪ اﻟﺼﻔﺮ ‪ ,‬ﻳﻌﻨﻲ أول‪ ‬‬
‫‪ char‬داﺧﻞ ال‪ string‬ﺑﻜﻮن اﻟﻤﻮﻗﻊ ﺗﺎﻋﻪ ‪ .0‬‬

‫وﻃﻮل اﻟﺴﺘﺮﻳﻨﻎ ﺑﻜﻮن ﻋﺪد ال‪ char‬ﻳﻠﻲ ﻓﻴﻪ ) ﺑﺘﺒﻠﺶ ﺗﻌﺪ ﻣﻦ واﺣﺪ ﻣﺶ ﻣﻦ ﺻﻔﺮ( ‪ .‬‬

‫ﻣﺜﻼ ﻋﻨﺪي " ‪ , string s="JUST32‬إذا ﻃﻠﺐ ﻣﻦ ال‪ position‬ﻟﻠﺤﺮف ‪ T‬ﺑﻜﻮن اﻟﺠﻮاب ‪ , 3‬وﻃﻮل ال‪ string‬‬
‫ﻛﺎﻣﻞ ‪ . 6‬‬

‫‪ ------------------------------------------------------------------------------------------------‬‬
‫‪  ‬‬

‫)‪ ​ (Increment Operator‬وﻫﻲ ﺑﺈﺧﺘﺼﺎر‪ ‬‬


‫ﺑﺘﻌﻤﻞ زﻳﺎدة ﻋﻠﻰ اﻟﻤﺘﻐﻴﺮ ﺑﻤﻘﺪار ‪ . 1‬‬

‫ﻣﺜﻼ أﻧﺎ ﺑﻌﺪ ﺑﺄﺷﻴﺎء ‪ ,‬ﺑﺪل ﻛﻞ م ﺑﺪي ازﻳﺪ أﻛﺘﺐ‪ ‬‬


‫‪ counter=counter+1‬ﺑﻜﺘﺐ ‪ counter ++‬‬
‫َ‬
‫ﺗﻤﺎﻣﺎ‪ .‬‬ ‫واﻟﺠﻤﻠﺘﻴﻦ ﻫﺬول ﻣﺘﻜﺎﻓﺂت‬

‫ﻃﺒﻌﺎ م ﺑﺼﻴﺮ اﺳﺘﺨﺪﻣﻬﺎ ﻣﻊ ﺛﻮاﺑﺖ ﻣﺶ‪ ‬‬


‫ﻣﺘﻐﻴﺮات ‪ ,‬ﻻﻧﻪ ﻟﻮ ﺑﺪي اﺣﻜﻲ ‪ 7++‬ﻛﺈﻧﻲ‪ ‬‬
‫ﺣﻜﻴﺖ ‪ 7=7+1‬وﻃﺒﻌﺎ ﻗﻴﻤﺔ ال‪ 7‬ﻻﺗﺴﺎوي ‪ 8‬‬
‫ﻟﺬﻟﻚ ﻫﺎي اﻟﻌﻤﻠﻴﺔ ﻣﺶ ﻣﺴﻤﻮﺣﺔ ﻏﻴﺮ‪ ‬‬
‫ﻟﻠﻤﺘﻐﻴﺮات )ﻫﻲ وأي ﻋﻤﻠﻴﺔ ﺑﺘﻌﻤﻞ ﻋﻠﻰ‪ ‬‬
‫ﺗﻐﻴﻴﺮ اﻟﻘﻴﻢ(‪ ‬‬

‫‪(22) ‬‬ ‫‪ ‬‬ ‫‪ ‬‬


‫‪ ‬‬
‫‪ ‬‬

‫‪ ‬‬
‫‪ ‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪ ‬‬

‫ﻫﺎي ال‪ operator‬ﻧﻔﺲ ال‪ increment‬ﺑﺲ اﻧﻬﺎ ﺑﺘﻨﻘﺺ ‪ .☺ 1‬‬

‫‪ --------------------------------------------------------------------------------------------------------------‬‬

‫وﻻزم‪  ‬ﻧﻌﺮف‪  ‬إﻧﻪ‪  ‬ﻫﺎي‪  ‬ال‪  increment  ‬أو‪  ‬ال‪  decrement‬ﻣﻤﻜﻦ‪  ‬ﻳﻜﻮﻧﻮا‪  ‬ﺑﺸﻜﻠﻴﻦ‪  ,  ‬اﻷول‪  ‬اﺳﻤﻪ‪)  prefix  ‬ﺳﺎﺑﻘﺔ(‪ ‬‬
‫ورح ﻧﻮﺿﺢ اﻻﺧﺘﻼف ﺑﻴﻨﻬﻢ ﻣﻦ ﺧﻼل ﻣﺜﺎل ﺣﺎرق ﺧﺎرق ﻣﺘﻔﺠﺮ‪ :‬‬ ‫واﻟﺜﺎﻧﻲ اﺳﻤﻪ ‪) postfix‬ﻻﺣﻘﺔ(‬

‫‪ ‬‬

‫ﻋﻨﺪﻧﺎ ﻣﺘﻐﻴﺮات ‪ m​,​o​,​h‬وﻗﻴﻤﺔ ‪ , m​=5‬ﺣﻜﻴﻨﺎ اﻧﻪ ال‪ o​=​m ++‬ف اﻟﻤﻔﺮوض اﻧﻪ ‪ , o​=6‬ﻟﻜﻦ ‪ o‬ﺿﻠﺖ ‪ 5‬ﻟﻴﺶ !!‪ ‬‬

‫ﻟﻺﻧﻪ‪  ‬أوﻟﻮﻳﺔ‪ ‬ال‪​ post‬ﺿﻌﻴﻔﺔ‪ ‬ﺟﺪا‪ , ‬أﻗﻞ‪ ‬ﻣﻦ‪ ‬أوﻟﻮﻳﺔ‪ ‬اﻟﻤﺴﺎواة‪ ‬وﻣﻦ‪ ‬أي‪ ‬أوﻟﻮﻳﺔ‪ ‬أﺧﺮى‪ , ‬ف‪ ‬ﺗﻢ‪ ‬اﺳﻨﺎد‪ ‬ﻗﻴﻤﺔ‪ ‬ال‪ 5‬ﻟﻞ‪ o‬‬
‫ﺑﺎﻻول وﺑﻌﺪﻫﺎ ال ‪ m‬إﻧﺰادت واﺣﺪ ‪ ,‬ﻓﺼﺎرت ﻋﻨﺪي ال‪ o​=5‬و ال ‪ m​=6‬وﻋﻨﺪ اﻟﻄﺒﺎﻋﺔ ﻃﺒﻊ ‪ .o​=5‬‬

‫وﺣﻜﻴﻨﺎ ال‪ ​ h​=++​m‬و ‪​ m‬أﺻﻼ ‪ 6‬ف ﻫﻞ رح ﻳﻌﻤﻞ إﺳﻨﺎد ﻗﺒﻞ م ﻳﺰﻳﺪ ال‪ 1‬وﻻ ﺑﻌﺪ ؟‪ ‬‬

‫اﻻوﻟﻮﻳﻪ‪  ‬ﻓﻲ‪  ‬ال‪    pre  ‬ﻋﺎﻟﻴﺔ‪  ‬ﺟﺪا‪  ,​  ‬ف‪  ‬ﺑﻨﻔﺬﻫﺎ‪  ‬ﻗﺒﻞ‪  ‬ﻣﺎ‪  ‬ﻳﻨﻔﺬ‪  ‬أي‪  ‬ﻋﻤﻠﻴﺔ‪  ,  ‬ف‪  ‬زاد‪  ‬ﻋﻠﻰ‪  ‬ﻗﻴﻤﺔ‪  m  ‬وﺻﺎرت‪  7  ‬وﺑﻌﺪﻳﻦ‪ ‬‬
‫أﻋﻄﺎﻫﺎ ل‪ .h‬‬

‫*****************************************************‪ ‬‬

‫وﻫﺎي ﺗﺮﺗﻴﺐ اﻻوﻟﻮﻳﺎت ﺑﻌﺪ م دﺧﻠﻨﺎ ﻋﻠﻴﻬﻢ ال ‪ pre​:inc/dec‬‬

‫‪ ‬‬

‫‪(23) ‬‬ ‫‪ ‬‬ ‫‪ ‬‬


‫‪ ‬‬

‫‪ ‬‬

‫اﻟﻌﻤﻠﻴﺎت اﻟﻤﺨﺘﺼﺮة )‪ ​: (shortcut operators‬ﻫﻲ ﻋﺒﺎرة ﻋﻦ ﻃﺮﻳﻘﺔ ﻟﻜﺘﺎﺑﺔ اﻟﻌﻤﻠﻴﺎت ﺑﺸﻜﻞ ﻣﺨﺘﺼﺮ‪ .‬‬

‫ﻟﻜﻦ ﻻزم اﻟﻌﻤﻠﻴﺔ ﻳﺘﻄﺒﻖ ﻋﻠﻴﻬﺎ ﺷﺮﻃﻴﻦ ‪ :‬اﻻول اﻧﻬﺎ ﺗﻜﻮن ‪) binary‬اﻟﻬﺎ ﻃﺮﻓﻴﻦ ﻣﺜﻞ اﻟﺠﻤﻊ او اﻟﻄﺮح(‪ ‬‬

‫اﻟﺜﺎﻧﻲ إﻧﻬﺎ ﺗﻜﻮن ع ﻫﺎي اﻟﺼﻴﻐﺔ ‪ variable = variable ​operator​ expression :‬‬

‫وﺑﻜﻮن ﺗﺤﻮﻳﻠﻬﺎ ﺑﻬﺎي اﻟﺼﻴﻐﺔ ‪ variable ​operator​ = expression‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪(24) ‬‬ ‫‪ ‬‬ ‫‪ ‬‬


‫‪ ‬‬

‫رح ﻧﻌﺮف ﺑﻬﺎذ اﻟﺴﻼﻳﺪ ﻣﺼﻄﻠﺢ ﺟﺪﻳﺪ اﺳﻤﻪ ‪ ) ​ literal‬اﻟﻘﻴﻤﺔ اﻟﺜﺎﺑﺘﺔ ( ‪ :‬وﻫﻮ ﻋﺒﺎرة ﻋﻦ اﻟﺮﻣﺰ ﻳﻠﻲ ﺑﺤﺪد‪ ‬‬
‫اﻟﻘﻴﻤﺔ ‪ .‬‬

‫ﻳﻌﻨﻲ ﻣﺜﻼ ﺑﺪي أﻋﺒﺮ ﻋﻦ ﻗﻴﻤﺔ ﻣﻘﺪارﻫﺎ ﺳﺒﻌﺔ ف اﻟﺮﻣﺰ ﻳﻠﻲ ﺑﻤﻜﻨﻨﻲ ﻣﻦ اﻟﺘﻌﺒﻴﺮ ﻋﻦ ﻫﺎي اﻟﻘﻴﻤﺔ ﻫﻮ اﻟﺮﻣﺰ‪ ‬‬
‫‪ 7‬ف ال‪ 7‬ﺑﺘﻜﻮن ‪ . literal‬‬

‫‪ ‬‬

‫أﻣﺜﻠﺔ ‪ :‬‬

‫‪int num=7 ;  ‬‬

‫‪char sym= ‘h’ ;  ‬‬

‫‪string team =”Jsne” ‬‬

‫‪string another_team =”softwarian” ‬‬

‫‪char m =’a’+i; ‬‬

‫ﺑﻬﺎي اﻷﻣﺜﻠﺔ ﻋﻨﺪي ‪ , data type‬وﻋﻨﺪي ‪ name of variable‬وﻋﻨﺪي ال ) ‪  letiral (7,h,jsne,softwarian‬‬

‫ﺑﻴﻨﻤﺎ ﺑﺂﺧﺮ ﻣﺜﺎل ﻛﺎﻧﺖ اﻟﻘﻴﻤﺔ ‪ expression‬ﻣﺶ ‪) literal‬ﻻزم ﺗﻜﻮن ﻛﻠﻬﺎ ﺛﻮاﺑﺖ ﻟﺤﺘﻰ اﻋﺘﺒﺮﻫﺎ ‪ (literal‬‬
‫‪ --------------------------------------------------------------------------------------------------------------‬‬

‫‪ ‬‬

‫ﻟﻐﺔ ال ‪ c++‬ﺑﺘﺴﺘﺨﺪم رﻣﺰ‪ ‬‬


‫ﺧﺎص ال ‪​ ​\​ backslash‬وﻳﺴﻤﻰ‪ ‬‬
‫‪) escape character‬رﻣﺰ‪ ‬‬
‫اﻟﻬﺮب ‪ :‬ﻻﻧﻪ ﺑﻐﻴﺮ )ﺑﻬﺮب ﻣﻦ(‪ ‬‬
‫اﻟﺪﻻﻟﺔ اﻟﻄﺒﻴﻌﻴﺔ ﻟﻠﻲ رح‪ ‬‬
‫ﻳﻨﻜﺘﺐ ﺑﻌﺪه(‪ ‬‬

‫واﺣﻨﺎ ﺑﺮﺿﻮ ﺑﻨﻘﺪر ﻧﺮﺟﻌﻪ ك‪ ‬‬


‫رﻣﺰ ﻋﺎدي ﺑﺲ ﻧﻜﺘﺒﻪ ﻣﺮﺗﺒﻴﻦ‪ ‬‬
‫ورا ﺑﻌﺾ ‪ .‬‬

‫‪(25) ‬‬ ‫‪ ‬‬ ‫‪ ‬‬


‫‪ ‬‬

‫ﻫﺎذ اﻟﺴﻼﻳﺪ ﻓﻴﻪ ﺑﻌﺾ اﻟﺮﻣﻮز ودﻻﻟﺘﻬﻦ‪,  ‬‬


‫​اﻷول ﺑﻌﻤﻞ ﺳﻄﺮ ﺟﺪﻳﺪ ‪  ,‬اﻟﺜﺎﻧﻲ ﺑﻴﻤﺸﻲ ﻣﻘﺪار ﻣﻌﻴﻦ ﻣﻦ اﻟﻔﺮاﻏﺎت ‪​ ,‬اﻟﺜﺎﻟﺚ ﺑﻤﺴﺢ اﻟﺤﺮف اﻟﻲ ﻗﺒﻠﻪ ‪ ,‬‬
‫اﻟﺮاﺑﻊ ﺑﻴﺮﺟﻊ اﻟﻤﺆﺷﺮ ﻷول اﻟﺴﻄﺮ ‪​ ,‬اﻟﺨﺎﻣﺲ ﺣﻜﻴﻨﺎ ﻋﻨﻪ ‪​ ,‬اﻟﺴﺎدس ﺑﺘﻘﺪر ﺗﻄﺒﻊ ﻣﻦ ﺧﻼﻟﻪ ال ) ' (‬
‫واﻟﺴﺎﺑﻊ ﺑﺘﻘﺪر ﺗﻄﺒﻊ ﻣﻦ ﺧﻼﻟﻪ ال ) " ( ‪ .double quotation‬‬
‫****************************************************‪ ‬‬

‫رح ﻧﻮﺿﺢ ﺑﻤﺜﺎل ﺗﻔﺼﻴﻠﻲ‪ ‬‬

‫‪ ‬‬

‫ﺑﺎﻟﻨﺴﺒﺔ ﻟﻠﺴﻄﺮ اﻟﺘﺎﺳﻊ ‪ ,‬ﺑﺲ ﻛﺘﺒﺎ ‪ \b‬اﻟﻤﺆﺷﺮ رﺟﻊ ﺧﻄﻮة ﻟﻮرا وﻛﺘﺐ اﻟﺤﺮف ﻳﻠﻲ ﺑﻌﺪ ال‪) \b‬ﻛﺎن ﻓﺮاغ ﺑﺎﻟﻤﺜﺎل( ﻋﻠﻰ اﻟﻤﻜﺎن ﻳﻠﻲ‪ ‬‬
‫ﻣﻮﺟﻮد ﻋﻠﻴﻪ ﺣﺎﻟﻴﺎ )ﻛﺎن ﺣﺮف ‪ (a‬ﺑﺎﻟﻤﺜﺎل ‪ .‬‬

‫‪ ‬‬

‫‪ ‬‬

‫وﻫﺎي ﺷﺎﺷﺔ اﻻوﺗﺒﻮت‪ :‬‬

‫‪ ‬‬

‫‪ ‬‬

‫ﻣﺜﺎل ‪ -:‬‬

‫; ​"​‪cout << ​"​JavaScript​\r​C++‬‬ ‫>‪--‬‬ ‫‪output : ​C++​aScript‬‬

‫‪(26) ‬‬ ‫‪ ‬‬ ‫‪ ‬‬


‫ﻓﻲ ‪​ \a‬وﻫﻮ رﻣﺰ ﺑﺼﺪر ﺻﻮت‪ ‬‬
‫)ﺑﻴﺐ( ﻟﻤﺎ ﺗﻄﺒﻌﻪ ع اﻟﺸﺎﺷﺔ‪ ‬‬
‫وﺣﻜﻴﻨﺎ ﻋﻦ اﻟﻞ‪NULL‬وﻣﻄﻠﻮب‪ ‬‬
‫ﺗﻌﺮف إﻧﻪ ﻫﺎذ رﻣﺰه ‪ \0:‬‬

‫**************************‬

‫ﻣﺜﺎل ‪  -:‬‬

‫م رح ﻳﻄﺒﻊ أي اﺷﻲ ﻣﻜﺎن ال‪ n‬‬

‫وﻫﺎي اﻻوﺗﺒﻮت‪  ‬‬

‫‪----------------------------------------------------------------------‬‬

‫ﺑﻨﺎء ﻋﻠﻰ ﺷﺮط ﻣﻌﻴﻦ ‪ ..‬‬ ‫رح ﻧﻨﺘﻘﻞ ﻟﻤﻮﺿﻮع ﻣﻬﻢ َ‬


‫ﺟﺪا وﻫﻮ ﻛﻴﻒ ﺗﺘﺨﺬ ﻗﺮار ﻓﻲ ﻟﻐﺔ ال‪َ c++‬‬
‫‪ ‬‬

‫ﺑﺎﻟﺒﺪاﻳﺔ رح ﻧﺘﻌﻠﻢ ﻛﻴﻒ ﻧﺴﺄل‪ ‬‬


‫اﺳﺌﻠﺔ ﺑﻠﻐﺔ ال‪ : c++‬‬

‫رح ﻧﺴﺘﺨﺪم ﻣﺠﻤﻮﻋﺔ ﻣﻦ‪ ‬‬


‫اﻟﻌﻤﻠﻴﺎت واﺳﻤﻬﻢ‪ ‬‬
‫‪ relational operators‬‬
‫وﻧﺘﻴﺠﺔ ﻫﺬول اﻟﻌﻤﻠﻴﺎت رح‪ ‬‬
‫ﻳﻜﻮن ‪ true‬او ‪ false‬وﺑﺤﺘﺎﺟﻮ‪ ‬‬
‫ﻃﺮﻓﻴﻦ )‪ (binary operator‬و‪ ‬‬
‫ﺑﺘﺴﻤﺢ ﺑﺎﻟﻤﻘﺎرﻧﺔ ﺑﻴﻦ‪ ‬‬
‫أﻃﺮاﻓﻬﺎ‪ .‬‬

‫واﻟﺸﺮط ﻳﻠﻲ ﺑﺤﺪد اﻟﻨﺘﻴﺠﺔ‪ ‬‬


‫ﺑﻨﻌﺒﺮ ﻋﻨﻪ ب ﺗﻌﺒﻴﺮ ﻣﻨﻄﻘﻲ‪ ‬‬
‫‪ boolean expression‬‬
‫)ﺑﻨﻮﺿﺤﻪ ﺷﻮ ﻫﻮ ﺑﻤﺜﺎل(‪ ‬‬

‫‪ ‬‬

‫وﻫﻮن ﻛﻞ ﻋﻤﻠﻴﺔ واﻟﻮﺻﻒ ﺗﺎﻋﻬﺎ ‪ .‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪(27) ‬‬ ‫‪ ‬‬ ‫‪ ‬‬


‫ﺑﻌﺾ اﻻﻣﺜﻠﺔ ﻋﻠﻰ ارﻗﺎم ‪ -:‬‬

‫‪ ‬‬

‫‪ ‬‬
‫*****************************************‪ ‬‬

‫اﻻن رح ﻧﺸﻮف اﻣﺜﻠﺔ ﻋﻠﻰ اﻟﺮﻣﻮز‪  ‬‬

‫ﻋﻤﻠﻴﺔ اﻟﻤﻘﺎرﻧﺔ ﺑﺘﺘﻢ ﻋﻦ اﻧﻪ ﺑﺤﻮل ﻛﻞ رﻣﺰ‪ ‬‬


‫ﻟﻞ ‪ ascii‬ﺗﺎﻋﻪ وﺑﻘﺎرﻧﻬﻢ ك ارﻗﺎم ‪ .‬‬

‫ﻳﺠﺪر ﺑﺎﻟﺬﻛﺮ ﻋﻨﺪ اﺧﺮ ﻣﺜﺎل إﻧﻪ ‪ 6‬ك ‪ int‬ﺗﺨﺘﻠﻒ‪ ‬‬


‫اﺧﺘﻼف ﻛﺎﻣﻞ ﻋﻦ '‪ ​'6‬ﻻﻧﻪ اﻷﺧﻴﺮة ﻫﻲ رﻣﺰ‪ ‬‬
‫ﻟﻠﺮﻗﻢ ﻣﺶ اﻟﺮﻗﻢ ﻧﻔﺴﻪ وﻫﺎذ اﻟﺮﻣﺰ اﻟﻪ ‪ ascii‬‬
‫ﺧﺎص ﻓﻴﻪ وﻫﻮ ‪ . 54‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪ ‬‬

‫****************************************‪ ‬‬

‫اﻵن رح ﻧﺸﻮف ال ‪ relational operators‬‬


‫ﻋﻠﻰ ال ‪ string‬‬

‫ﻋﻤﻠﻴﺔ اﻟﻤﻘﺎرﻧﺔ ﺑﺘﺘﻢ ﻛﺎﻟﺘﺎﻟﻲ ‪ :‬ﺑﻘﺎرن ال‪ ‬‬


‫‪ characters‬ﻳﻠﻲ ﻣﻮﺟﻮدة ﺟﻮا ال ‪ strings‬‬
‫واﺣﺪ واﺣﺪ ‪ ,‬ﻋﻨﺪ اول اﺧﺘﻼف ﺑﻴﻦ ال‪ ‬‬
‫‪ characters‬ﺑﻴﺘﺨﺬ ﻗﺮاره )اﻛﺒﺮ او اﺻﻐﺮ ﺣﺴﺐ‪ ‬‬
‫اﻟﺤﺮف ( ‪ ,‬واذا م ﻟﻘﺎ أي اﺧﺘﻼف ﺑﻜﻮن ال‬
‫‪ string‬اﻻﻃﻮل ﻫﻮ اﻷﻛﺒﺮ ‪ ,‬واذا م ﻟﻘﺎ اي‪ ‬‬
‫اﺧﺘﻼف وﻛﺎﻧﻮ ﻧﻔﺲ اﻟﻄﻮل ف ﺑﻜﻮﻧﻮ‪ ‬‬
‫ﻣﺘﺴﺎوﻳﻴﻦ ‪ .‬‬

‫******************************************‪ ‬‬

‫ال‪​ boolalpha‬ﻟﺤﺘﻰ ﻳﻄﺒﻊ ‪ true‬او ‪) false‬ﺑﺪوﻧﻬﺎ رح ﻳﻄﺒﻊ ‪ 0‬أو ‪ , (1‬‬


‫ال ‪ boolean expression‬ﻫﺎذ ﻳﻠﻲ ﺑﻴﻦ ﻗﻮﺳﻴﻦ ‪ ,‬وﻻزم داﺋﻤﺎ ﻳﻜﻮن‪ ‬‬
‫ﺑﻴﻦ أﻗﻮاس‪  .‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪(28) ‬‬ ‫‪ ‬‬ ‫‪ ‬‬


‫‪ ‬‬

‫‪ ‬‬

‫‪ ‬‬
‫‪ ‬‬

‫‪ -----------------------------‬‬

‫ﻓﻲ اﺧﺘﻼف و ال ‪ i‬اﻛﺒﺮ ﻣﻦ ‪ e‬‬

‫*******************************‪ ‬‬

‫ﻓﻲ اﺧﺘﻼف و ال‪ n‬اﻛﺒﺮ ﻣﻦ ‪   l‬‬

‫****************************‪ ‬‬
‫ﻓﻲ اﺧﺘﻼف و ال‪ n‬أﻛﺒﺮ ﻣﻦ ‪ i‬‬

‫*******************************‪ ‬‬

‫ﻓﻲ اﺧﺘﻼف ﻷﻧﻪ ‪ h‬ﻻﺗﺴﺎوي ‪  H‬‬

‫‪ ------------------------------‬‬

‫‪ ------------------------------------------------------------------------------------------------‬‬

‫‪ ‬‬
‫اﻵن رح ﻧﺸﻮف ﻧﻮع ﺛﺎن ﻣﻦ ال‪ , operators‬وﻫﻮ ال ‪ boolean‬أو ال ‪) logical‬اﻟﻤﻨﻄﻘﻲ( وﻫﺎي اﻟﻌﻤﻠﻴﺎت‪ ‬‬
‫ﺑﺘﺨﻠﻴﻨﻲ اﻋﻤﻞ ﺗﺮﻛﻴﺐ ﺑﻴﻦ ال ‪) logical expression‬ﻳﻠﻲ ﺑﺤﺘﻮوا ‪ (relational operator‬‬

‫ﻓﻲ ‪ 3‬ﻋﻤﻠﻴﺎت وﻣﻮﺿﺤﻴﻦ ﺑﺎﻟﺼﻮرة ‪ ,‬ﻛﻞ ﻋﻤﻠﻴﺔ ﺷﻮ رﻣﺰﻫﺎ وﺷﻮ اﺳﻤﻬﺎ‪  ‬‬

‫ال ‪ not‬ﺑﺘﻌﻜﺲ ال ‪ true‬ل ‪) false‬واﻟﻌﻜﺲ( واﻟﻬﺎ ﻃﺮف واﺣﺪ )‪ (unary operator‬‬

‫ال ‪ and‬إﻟﻬﺎ ﻃﺮﻓﻴﻦ )‪ (binary operator‬واﻟﻨﺎﺗﺞ ﺑﻜﻮن ‪ true‬إذا ﻛﺎﻧﻮا اﻟﻄﺮﻓﻴﻦ ‪ , true‬ﻏﻴﺮ ﻫﻴﻚ ﺑﻜﻮن ‪ false‬‬

‫ال ‪ or‬إﻟﻬﺎ ﻃﺮﻓﻴﻦ )‪ (binary operator‬واﻟﻨﺎﺗﺞ ﺑﻜﻮن ‪ false‬إذا ﻛﺎﻧﻮا اﻟﻄﺮﻓﻴﻦ ‪ , false‬ﻏﻴﺮ ﻫﻴﻚ ﺑﻜﻮن ‪ true‬‬

‫‪ ‬‬

‫اﻓﺮاح آل‪-‬اﻟﻤﻨﻄﻖ ‪ xD‬‬

‫‪(29) ‬‬ ‫‪ ‬‬ ‫‪ ‬‬


‫وﻫﺎي أﻣﺜﻠﺔ ﻋﻠﻴﻬﻢ‪ ‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪ ‬‬
‫ﻓﻲ إﺷﻲ ﺑﺪﻧﺎ ﻧﻨﻮه ﻋﻠﻴﻪ ‪ :‬ال‪ and operator‬إذا ﻛﺎن واﺣﺪ ﻣﻦ اﻃﺮاﻓﻬﺎ ﻳﺴﺎوي ‪ , 0‬ف أﻛﻴﺪ اﻟﺠﻮاب ﺻﻔﺮ ‪ ,‬ف م‪ ‬‬
‫ﺑﺘﺸﻮف اﻟﻄﺮف اﻟﺜﺎﻧﻲ أﺑﺪا وﻻ ﺑﺘﻨﻔﺬه وﻫﺎي إﺳﻤﻬﺎ ‪Short-circuit evaluation‬‬
‫وال ‪ OR‬ﻧﻔﺲ اﻻﺷﻲ اذا ﻛﺎن واﺣﺪ ﻣﻨﻬﻢ ﻳﺴﺎوي ‪ 1‬ف أﻛﻴﺪ اﻟﺠﻮاب ‪ .1‬‬
‫ﻣﺜﺎل ‪ :‬‬

‫‪ ‬‬

‫‪​output​: ‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪ ‬‬

‫​ﻣﻼﺣﻈﺔ ‪ ​:‬اﻻﺻﻞ ﺑﺎل ‪ boolean operator‬اﺳﺘﻌﻤﻞ ﻣﻌﻬﻢ ﻣﺘﻐﻴﺮات ﻣﻦ ﻧﻮع ‪ bool‬ﺑﺲ ﺑﺼﻴﺮ اﺳﺘﻌﻤﻞ ﻣﻌﻬﻢ اي ﻧﻮع‪ ‬‬
‫وﺑﺘﻜﻮن ﻛﻞ اﻟﻘﻴﻢ ﺑﺘﻤﺜﻞ ‪ , true 1‬ﻣﺎ ﻋﺪا ال ‪ 0‬ﺑﺘﻤﺜﻞ ‪ , false‬ﻳﻌﻨﻲ‪  ‬‬

‫& '‪ (​ 'A‬اﻟﺦ‪ ..‬‬


‫)‪ (6​.​2 && -5‬ﻫﻲ ﻧﻔﺴﻬﺎ ) ‪ 1 =( 1&&1‬وﻧﻔﺴﻬﺎ )'‪​ & ​'B‬‬

‫‪(30) ‬‬ ‫‪ ‬‬ ‫‪ ‬‬


‫ﺻﺎر ﻓﻲ ﻋﻨﺪﻧﺎ ﻋﺪة أﻧﻮاع ﻣﻦ ال‪: operators‬‬

‫‪1-arithmetic‬‬ ‫‪2-relational‬‬ ‫‪3-boolean‬‬


‫ف ﻻزم ﻧﺸﻮف اﻻوﻟﯿﺔ ﺑﯿﻨﻬﻢ ﻛﻠﻬﻢ ‪ ,‬وﻫﻲ ﻋﻠﻰ اﻟﻨﺤﻮ اﻟﺘﺎﻟﻲ ‪:‬‬

‫‪ --------------------------------------------------------------------------------------------------------------‬‬

‫واﻵن رح ﻧﺘﻌﺮف ﻛﻴﻒ ﻧﺒﻨﻲ ﺷﺮط ﻓﻲ ﻟﻐﺔ ال‪ .c++‬‬

‫‪ ‬‬

‫‪ ‬‬

‫ﻓﻲ أرﺑﻊ ﻃﺮق إﺣﻨﺎ ﺑﻬﺎذ اﻟﺘﺸﺎﺑﺘﺮ رح ﻧﻮﺧﺬ‪ ‬‬


‫أول ﺛﻨﺘﻴﻦ‪ ‬‬

‫ﻧﺒﻠﺶ ﺑﺎل ‪  one way selection‬‬

‫ﺑﻜﻮن ﻋﻨﺪي ﺷﺮط ‪ ,‬إذا ﺗﺤﻘﻖ )ﻛﺎن ﻧﺎﺗﺞ‪ ‬‬


‫اﻟﺘﻌﺒﻴﺮ اﻟﻤﻨﻄﻘﻲ ‪ (true‬رح ﻳﻨﻔﺬ ﺟﻮاب‪ ‬‬
‫اﻟﺸﺮط )أي ﺟﻤﻠﺔ ﺑﺮﻣﺠﻴﺔ ﺑﺪي ﻳﺎﻫﺎ(‪ ‬‬

‫*************************************************************‪ ‬‬

‫ﻳﻌﻨﻲ ﻋﻨﺪي ﺷﺮط وﻋﻨﺪي أداة ﺷﺮط وﻋﻨﺪي ﺟﻮاب ﺷﺮط وﻫﺎذ‪ ‬‬
‫‪ ‬‬ ‫ﺗﻮﺿﻴﺢ‪ ‬‬

‫وﻫﺎي اﻻوﺗﺒﻮت )ﻻﻧﻪ اﻟﺸﺮط ﺗﺤﻘﻖ ﻧﻔﺬ‪ ‬‬


‫اﻟﺠﻤﻠﺔ اﻟﺒﺮﻣﺠﻴﺔ(‪ ‬‬

‫وإذا م ﺗﺤﻘﻖ م رح ﻳﻨﻔﺬﻫﺎ‪  .‬‬

‫***************************************************************‪ ‬‬

‫‪ ‬‬

‫ﻫﻮن ﻣﺎﻧﻔﺬ ﺟﻮاب اﻟﺸﺮط ﺑﺲ ﻧﻔﺬ‪  ‬‬

‫اﻟﻌﺒﺎره اﻟﻲ ﺗﺤﺖ ﻻﻧﻬﺎ ﻣﺎ‪ ‬‬

‫اﻟﻬﺎ دﺧﻞ ﺑﺎل ‪ If‬‬

‫‪(31) ‬‬ ‫‪ ‬‬ ‫‪ ‬‬


‫َ‬
‫وﻋﺎدة ﺑﺠﻴﺒﻮا ﻋﻠﻴﻪ اﺳﺌﻠﺔ ﻓﻲ اﻻﻣﺘﺤﺎﻧﺎت واﻟﻲ ﻫﻮ اذا ﺑﻌﺪ ﺟﻤﻠﺔ ال ‪ if‬ﻛﺘﺒﺖ ﻓﺎﺻﻠﺔ‪ ‬‬ ‫ﻓﻲ إﺷﻲ ﻻزم ﺗﻌﺮﻓﻪ‬
‫ﻣﻨﻘﻮﻃﺔ ‪ ,‬ف ﻫﺎي اﻟﻔﺎﺻﻠﺔ ﺑﺘﻨﻬﻲ ﻋﻤﻞ ال ‪ if‬ﻳﻌﻨﻲ زي ﻛﺈﻧﻚ ﺣﻜﻴﺖ اذا اﻟﺸﺮط ﺗﺤﻘﻖ م ﺑﺪي ﺗﻌﻤﻞ اﺷﻲ‪ ‬‬

‫ﻣﺜﺎل ‪ :‬‬

‫ﻫﻮن ‪ line 2‬رح ﻳﺘﻨﻔﺬ ﺑﻐﺾ اﻟﻨﻈﺮ‪ ‬‬


‫ﻋﻦ ﺟﻤﻠﺔ ال‪ , if‬ﻻﻧﻬﺎ اﻟﻔﺎﺻﻠﺔ‪ ‬‬
‫اﻟﻤﻨﻘﻮﻃﺔ وﻗﻔﺖ ﺷﻐﻞ ال‪ .if‬‬

‫وﻻزم ﻧﻨﻮه إﻧﻪ ﻻزم ﻳﻜﻮن ﻓﻲ‪ ‬‬


‫ﺟﻮاب ﻟﻠﺸﺮط ‪ ,‬ﻳﻌﻨﻲ ﻟﻮ ﺑﺪك اذا‪ ‬‬
‫ﺗﺤﻘﻖ اﻟﺸﺮط م ﺗﻌﻤﻞ اﺷﻲ ف‪ ‬‬
‫ﻻزم ﺗﺤﻂ ﻓﺎﺻﻠﺔ ﻣﻨﻘﻮﻃﺔ )ﻫﻲ‪ ‬‬
‫ﺑﺘﻜﻮن ﺟﻮاب اﻟﺸﺮط( و م ﺑﺼﻴﺮ‪ ‬‬
‫ﺗﺘﺮﻛﻪ ﻓﺎﺿﻲ‪ .‬‬

‫*********************************‪ ‬‬

‫وﻻزم ﻳﻜﻮن ﻓﻲ ﺷﺮط )م ﺑﺼﻴﺮ ﺗﺨﻠﻲ اﻻﻗﻮاس ﻓﺎﺿﻴﺔ(‪   .‬‬

‫ﻣﻤﻜﻦ ﺗﻜﺘﺐ ﺑﺎﻟﺸﺮط أي رﻗﻢ وﺑﻌﺘﺒﺮه ‪ true‬إذا ﻣﺎ ﻛﺎن ﺻﻔﺮ‪ .‬‬


‫‪ ‬‬

‫ﻣﺜﺎل ‪  :‬‬

‫‪ ‬‬

‫‪ ------------------------------------------------------------------------------------------------‬‬

‫‪ ‬‬
‫ﻻزم ﺗﻨﺘﺒﻪ وﺗﻔﺮق ﺑﻴﻦ ال== )ﻫﻞ ﻳﺴﺎوي( وال = ) اﻟﻤﺴﺎواة ( ف ﻟﻮ ﻛﺘﺒﺖ = ﺑﺪل == رح ﺗﻮﻗﻊ ب ‪ logical error‬‬

‫واﻟﻲ رح ﻳﺼﻴﺮ إﻧﻪ رح ﻳﺴﻨﺪ اﻟﻘﻴﻤﺔ ﻟﻠﻤﺘﻐﻴﺮ واﻟﺸﺮط رح ﻳﻜﻮن ‪ true‬‬


‫ﻣﺜﺎل ‪ :‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪(32) ‬‬ ‫‪ ‬‬ ‫‪ ‬‬


‫واﻵن رح ﻧﺸﻮف اﻟﻨﻮع اﻟﺜﺎﻧﻲ •‪ Compound (​Block​ of) Statements‬‬

‫إﺣﻨﺎ ﺗﻌﻠﻤﻨﺎ إﻧﻪ اذا ﺗﻨﻔﺬ ﺷﺮط أﻧﻔﺬ‪ ‬‬


‫ﺟﻤﻠﺔ ‪ ,‬ﻃﻴﺐ ﻟﻮ ﺑﺪي أﻧﻔﺬ أﻛﺜﺮ ﻣﻦ‪ ‬‬
‫ﺟﻤﻠﺔ إذا ﺗﺤﻘﻖ اﻟﺸﺮط ﺷﻮ أﻋﻤﻞ !‪ ‬‬

‫ﻳﻌﻨﻲ ﻣﺜﻼ إذا ﻛﺎن اﻟﺠﻮ ﺑﻜﺮة ﺟﻴﺪ رح‪ ‬‬


‫}اروح ﻟﻠﺴﻮق و اﻓﺘﺢ اﻟﺸﺒﺎﺑﻴﻚ {‪ ‬‬

‫ف أﻧﺎ رﺑﻄﺖ ﺟﻤﻠﺘﻴﻦ ﺑﺸﺮط واﺣﺪ ‪ ,‬ف‪ ‬‬


‫اﻟﺤﻞ ﺑﻜﻮن إﻧﻲ اﺣﻄﻬﻢ ﺑﺈﺷﻲ اﺳﻤﻪ‪ ‬‬
‫‪ block‬‬

‫وﺑﺒﺪأ ﺑﻬﺎذ اﻟﺮﻣﺰ } و ﺑﻨﺘﻬﻲ ﺑﻬﺎذ { و اﻟﻜﻮﻣﺒﺎﻳﻠﺮ ﺑﺘﻌﺎﻣﻞ ﻣﻊ اﻟﺒﻠﻮك ﻛﺄﻧﻪ ﺟﻤﻠﺔ وﺣﺪة ‪ .‬‬

‫‪ ‬‬

‫ﻣﺜﺎل ‪ :‬‬

‫ﻫﻮن ﻧﻔﺬ ﻛﻞ اﻟﻲ ﺟﻮا‪ ‬‬


‫اﻟﺒﻠﻮك ﻣﺮه وﺣﺪه ﻋﺎﻟﺘﺮﺗﻴﺐ‪ ‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪ ------------------------------------------------------------------------------------------------‬‬

‫ﺧﻠﻴﻨﺎ ﻧﺸﻮف ﺗﻄﺒﻴﻖ ﻋﻤﻠﻲ ﻋﻠﻰ ال ‪​ if statement‬ﺑﺪل اﻻﻣﺜﻠﺔ ﻳﻠﻲ ﻛﻠﻬﺎ اﺳﺎﻣﺔ وﻣﺤﻤﺪ وﺟﺴﻨﻲ ‪ :D‬‬
‫‪ ‬‬

‫ﻫﺎذ ﺑﺮﻧﺎﻣﺞ ﺑﺘﻌﻄﻴﻪ ﻋﻼﻣﺘﻚ وﺑﺤﻜﻴﻠﻚ اذا اﻟﻌﻼﻣﺔ ﺻﺢ أو ﻏﻠﻂ‪ ‬‬


‫وﺑﺤﻜﻴﻠﻚ ﻧﺎﺟﺢ وﻻ راﺳﺐ‪ .‬‬

‫ﺑﺎﻟﻨﺴﺒﺔ ﻟﻠﺠﻤﻠﺔ ﻳﻠﻲ ﺑﺴﻄﺮ ‪ , 6‬رح ﻧﺸﺮﺣﻬﺎ ﺑﺎﻟﺘﻔﺼﻴﻞ ﻛﻤﺎن ﺷﻮي‪ ‬‬


‫‪ ,‬ﺑﺲ ﺑﺪي ﺗﻔﻬﻢ ﻣﻨﻬﺎ إﻧﻬﺎ ﺑﺘﻄﻠﺐ ﻣﻦ اﻟﻤﺴﺘﺨﺪم ﻣﻌﻠﻮﻣﺎت ‪ ,‬ف‪ ‬‬
‫ﻣﺜﻼ ﻫﻮن ﻃﻠﺒﺖ ﻣﻨﻪ ﻗﻴﻤﺔ اﻟﻌﻼﻣﺔ‪ ‬‬

‫وﺑﺴﻄﺮ ‪ 9‬ﻣﻤﻜﻦ واﺣﺪ ﻳﺤﻜﻲ ﺧﻠﻲ اﻟﺸﺮط‪ ‬‬


‫)‪​ , if ​(​50​>= mark>=​100‬وﻫﺎذ ﻏﻠﻂ ﻛﺜﻴﺮ ﻧﺎس ﺑﺘﻮﻗﻊ ﻓﻴﻪ ‪ ,‬ﻻزم‪ ‬‬
‫ﺗﺘﺬﻛﺮ إﻧﻪ ﺟﻮاب ال‪ relational operator‬ﻫﻮ ﻋﺒﺎرة ﻋﻦ ‪ 1‬أو ‪ , 0‬ف‪ ‬‬
‫ﻣﺜﻼ ﻟﻮ ﻛﺎﻧﺖ اﻟﻌﻼﻣﺔ ‪ , 70‬رح ﻳﺸﻮف إذا ال‪ 50‬أﻛﺒﺮ ﻣﻦ أو ﻳﺴﺎوي‪ ‬‬
‫ال‪ 70‬واﻟﺠﻮاب ‪ false‬ف رح ﻳﻜﻮن ‪ ,0‬ﺑﻌﺪﻳﻦ رح ﻳﺸﻮف إذا ال‪ 0‬أﻛﺒﺮ‪ ‬‬
‫ﻣﻦ أو ﻳﺴﺎوي ال‪ 100‬ورح ﻳﻜﻮن اﻟﺠﻮاب ‪ false‬ف م رح ﻳﻄﺒﻊ ‪ pass‬‬
‫‪ ,‬ﻟﻬﻴﻚ إذا ﻛﺎن اﻟﺸﺮط ﻓﺘﺮة ﻻزم ﺗﻜﺘﺒﻪ ﺑﻬﺎﻟﺼﻴﻐﺔ و ﺑﺎﺳﺘﺨﺪام‪ ‬‬
‫‪ and‬ﻣﺶ ‪  or‬‬

‫وﺑﺎﻟﻨﺴﺒﺔ ﻟﺴﻄﺮ ‪ , 11‬أﻧﺎ ﻛﺘﺒﺖ ‪ and‬ﺑﻬﺎﻟﻄﺮﻳﻘﺔ ﻣﺸﺎن اﺣﻜﻴﻠﻚ إﻧﻪ ﻓﻲ ﺑﻌﺾ اﻟﻜﻮﻣﺒﺎﻳﻠﺮات )ﺧﺼﻮﺻﺎ اﻻوﻧﻼﻳﻦ(‪ ‬‬
‫ﺑﻘﺒﻠﻮ ﻫﺎﻟﻜﺘﺎﺑﺔ ‪ ,‬وﺑﻘﺒﻠﻮ ﺗﻜﺘﺐ ال ||​ ﻫﻴﻚ ‪ or‬وال ! ﻫﻴﻚ ‪ .not‬‬

‫‪ ‬‬
‫وﻫﺎذ راﺑﻂ اﻟﻜﻮد ‪.‬‬

‫‪(33) ‬‬ ‫‪ ‬‬ ‫‪ ‬‬


‫‪ ‬‬

‫‪ ‬‬

‫اﻵن رح ﻧﺸﻮف ﻣﻮﺿﻮع ﺟﺪﻳﺪ اﻟﻤﻔﺮوض اﻧﺸﺮح ﻗﺒﻞ )ﺑﺲ ﻫﻴﻚ ﺗﺮﺗﻴﺐ اﻟﺴﻼﻳﺪات(‪ ‬‬

‫‪ ‬‬

‫ﺑﻴﺤﻜﻴﻠﻚ اﻟﻤﻌﻠﻮﻣﺎت )‪ (DATA‬ﻟﻤﺎ ﺗﻨﺘﻘﻞ‪ ‬‬


‫ﻣﻦ اﻟﻤﺴﺘﺨﺪم ﻟﻠﺒﺮﻧﺎﻣﺞ ﺑﻨﺴﻤﻴﻬﺎ ﻣﺪﺧﻼت‪ ‬‬
‫)‪ (inputs‬وﺑﻨﺴﺘﺨﺪم أداة ال ‪ ​ cin‬وال‪ ‬‬
‫‪ operator‬ﺗﺎﻋﺘﻬﺎ >> ​)إﺳﻤﻬﺎ ‪ extraction‬‬
‫‪ : operator‬اداة اﻻدﺧﺎل *اﻟﺴﻼﻳﺪ ﻣﺨﺮﺑﻂ*(‪ ‬‬
‫ﻹﺗﻤﺎم ﻫﺎﻟﻌﻤﻠﻴﺔ‪ .‬‬

‫وال ‪ cin‬ﺑﺘﺤﻮل اﻟﺪاﺗﺎ ﻳﻠﻲ ﺑﺘﺪﺧﻠﻬﺎ اﻟﻰ ﻟﻐﺔ‪ ‬‬


‫اﻵﻟﺔ ‪ .‬‬

‫وال‪ Data‬ﻳﻠﻲ ﺑﺘﻨﺘﻘﻞ ﻣﻦ اﻟﺤﺎﺳﻮب‪ ‬‬


‫ﻟﻠﻤﺴﺘﺨﺪم ﺗﺴﻤﻰ ﻣﺨﺮﺟﺎت )‪ (output‬‬
‫وﺑﻨﺴﺘﺨﺪم أداة ال‪ cout‬وال ‪ operator‬‬
‫ﺗﺎﻋﺘﻬﺎ << ​)إﺳﻤﻬﺎ ‪ : insertion operator‬‬
‫اداة اﻹدراج( ﻹﺗﻤﺎم ﻫﺎﻟﻌﻤﻠﻴﺔ‪ .‬‬

‫*****************************************************‪ ‬‬

‫رح ﻧﺸﺮح ال‪ output‬‬

‫ﻣﺸﺎن ﺗﻄﺒﻊ أي ﻗﻴﻤﺔ ﻻزم‪ ‬‬


‫ﺗﺒﻌﺜﻬﺎ ﻟﻞ‪ cout‬ﻣﻦ ﺧﻼل ال‪ ‬‬
‫‪ , extarction operatpor‬وﻣﻤﻜﻦ‪ ‬‬
‫إﻧﻚ ﺗﺴﺘﺨﺪم أﻛﺜﺮ ﻣﻦ ‪ extraction‬‬
‫‪ operator‬ﻓﻲ ﻧﻔﺲ ﺟﻤﻠﺔ ال‪ ‬‬
‫‪ cout‬ﻛﻞ وﺣﺪة ﻣﻨﻬﻢ ﺑﺘﻄﺒﻊ ﻳﻠﻲ‪ ‬‬
‫ﺑﺘﺒﻌﺜﻪ ﺑﻌﺪﻫﺎ ‪ ,‬وﻣﻤﻜﻦ اﻷﺷﻴﺎء‪ ‬‬
‫ﻳﻠﻲ ﺑﺘﺒﻌﺜﻬﺎ ﻟﺠﻤﻠﺔ ال‪ cout‬‬
‫ﺗﻜﻮن ﻣﺨﺘﻠﻔﺔ ﻋﻦ ﺑﻌﺾ ‪,‬ﻳﻌﻨﻲ‪ ‬‬
‫ﻣﻤﻜﻦ ‪ var‬او ‪ , literal‬وال ‪ var‬‬
‫ﻣﻤﻜﻦ ﻳﻜﻮن أي ﻧﻮع‪ .‬‬

‫‪ ‬‬

‫******************************************************************‪ ‬‬ ‫ﻣﺜﺎل ‪:‬‬

‫‪ ‬‬

‫‪ ‬‬ ‫وﻫﺎي اﻻوﺗﺒﻮت‬


‫ﺑﺎﻟﻤﺜﺎل ﻫﺎذ ارﺳﻠﺖ ﻟﻠﻄﺒﺎﻋﺔ ‪ literal‬ﻣﻦ ﻧﻮع ‪ string‬وﺑﺮﺿﻮ ﻣﺘﻐﻴﺮ‪ ‬‬
‫‪ int‬و ‪ literal‬ﻣﻦ ﻧﻮع ‪ char‬وﻣﺘﻐﻴﺮ ‪ float‬ﻓﻲ ﻧﻔﺲ ﺟﻤﻠﺔ اﻟﻄﺒﺎﻋﺔ ‪ .‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪(34) ‬‬ ‫‪ ‬‬ ‫‪ ‬‬


‫‪ ‬‬

‫ﺑﻨﻘﺪر ﻧﺴﺘﺨﺪم ﺗﺤﻮﻳﻞ اﻟﻨﻮع‪ ‬‬


‫ﻟﻠﻤﺘﻐﻴﺮ ﻣﻊ ﺟﻤﻠﺔ ال‪ .cout‬‬

‫ﻓﻲ ﻃﺮﻳﻘﺘﻴﻦ ﻟﺘﺤﻮﻳﻞ اﻟﻤﺘﻐﻴﺮ‪ ‬‬


‫‪ ‬‬ ‫‪ ,‬اﻷوﻟﻰ اﺧﺬﻧﺎﻫﺎ‬
‫)‪ static_cast<type>(value‬‬
‫ورح ﻧﺸﻮف ﻃﺮﻳﻘﺔ اﺳﻬﻞ‪ ‬‬
‫واﺳﺮع‪ ‬‬

‫ورح ﻧﺸﻮف اﻟﺴﻨﺘﺎﻛﺲ اﻟﻬﺎ‪ ‬‬


‫ﺑﻤﺜﺎل‪  .‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪ ‬‬

‫ﻣﻤﻜﻦ ﺗﻜﻮن اﻟﻘﻴﻤﺔ ﻳﻠﻲ ﺑﺪك ﺗﺤﻮﻟﻬﺎ ‪ literal‬او ‪ . var‬‬

‫وﻫﻴﻚ ﺑﺘﻘﺪر ﺗﺸﻮف أي ‪ ascii‬ﻷي رﻣﺰ ﻣﻮﺟﻮد ﻋﻨﺪك ع اﻟﻜﻴﺒﻮرد‪ .‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪ ‬‬

‫ﻣﺸﺎن اﺧﻠﻲ اﻟﻤﺆﺷﺮ ﻳﻨﺰل ﺳﻄﺮ ﻋﻨﺪي ﻃﺮﻳﻘﺘﻴﻦ اﻷوﻟﻰ ﻳﻠﻲ ﺗﻌﻠﻤﻨﺎﻫﺎ ﻓﻲ ال ‪ escape charchters‬‬

‫واﻟﺜﺎﻧﻴﺔ ﺑﻨﺴﺘﺨﺪم ‪) manipulator‬ﻣﺘﺤﻜﻢ( اﺳﻤﻬﺎ ‪ .​ endl‬‬

‫‪ ‬‬ ‫ﻣﺜﺎل ‪:‬‬


‫رح ﺗﻄﺒﻊ ‪ :‬‬

‫‪ 1‬‬

‫‪ 2‬‬

‫‪ 3‬‬

‫‪ ------------------------------------------------------------------------------------------------‬‬

‫‪ ‬‬
‫َ‬ ‫ُ‬ ‫ّ ُ‬
‫ـ ‪..‬‬ ‫ِ‬ ‫ِ‬
‫ّ‬ ‫ْ َ‬ ‫ْ َ َ ُ‬ ‫َ َ‬ ‫َْ َ َ ُ‬
‫ٍ‬
‫ـ ِ ـ ‪..‬‬ ‫ِ‬ ‫‪..‬‬
‫َ ُ‬ ‫َ ُ‬ ‫ُ‬
‫ُ ً ً‬ ‫َ ُ ّ‬ ‫َ‬ ‫ٔ‬
‫ـ ‪..‬‬ ‫ِ‬ ‫‪..‬‬
‫ٓ‬ ‫َ‬ ‫َ ُ‬
‫ِ ـ‬ ‫ُ‬ ‫‪..‬‬

‫‪(35) ‬‬ ‫‪ ‬‬ ‫‪ ‬‬


‫‪ ‬‬

‫‪ ‬‬

‫رح ﻧﺸﺮح ال‪ input‬‬

‫ﺑﻨﺴﺘﺨﺪم ال ‪​ cin‬ﻟﻨﻮﺧﺬ‪ ‬‬
‫ﻣﻌﻠﻮﻣﺎت ﻣﻦ اﻟﻤﺴﺘﺨﺪم‪ ‬‬
‫وﻧﺨﺰﻧﻬﺎ ﻓﻲ ﻓﺎرﻳﺒﻞ ‪ ,‬‬
‫واﻟﻔﺮق ﺑﻴﻦ ال‪ cin‬وال‪ ‬‬
‫‪ : cout‬إﻧﻪ زي م ﺷﻔﻨﺎ ال‬
‫‪ cout‬ﻣﻤﻜﻦ ﺗﻮﺧﺬ ع‪ ‬‬
‫ﻃﺮﻓﻬﺎ ‪ var‬او ‪ literal‬او‪ ‬‬
‫‪, exp‬ﺑﻴﻨﻤﺎ ال‪ cin‬ﻣﻤﻨﻮع‪ ‬‬
‫ﺗﻮﺧﺬ ع ﻃﺮﻓﻬﺎ ﻏﻴﺮ ‪ .var‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪ ------------------------------------------------------------------------------------------------‬‬

‫‪ ‬‬

‫وﻫﺎي ﻣﺜﺎل ﻣﻦ اﻟﺴﻼﻳﺪات‪ ‬‬

‫ﺑﺘﻌﻄﻴﻪ‪  ‬‬

‫‪ ‬‬

‫ﺑﺘﻌﻄﻴﻪ ﻗﻴﻤﺔ وﺑﻴﻌﻄﻴﻚ اﻟﻤﺮﺑﻊ إﻟﻬﺎ)ﺗﺮﺑﻴﻊ(‪ ‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪ ------------------------------------------------------------------------------------------------‬‬

‫ﻓﻲ ﻓﻨﻜﺸﻦ ﺟﺎﻫﺰ ﺑﻠﻐﺔ ال‪) c++‬رح‪ ‬‬


‫ﻧﻌﺮف ﺷﻮ ﻳﻌﻨﻲ ﻓﻨﻜﺸﻦ ﺑﻌﺪﻳﻦ(‪ ‬‬
‫اﺳﻤﻪ ‪​ sqrtf‬ﺑﺘﻌﻄﻴﻪ ﻗﻴﻤﺔ ﻧﻮﻋﻬﺎ‪ ‬‬
‫‪) float‬ﺷﻮف اﻟﺴﻨﺘﺎﻛﺲ ﻳﻠﻲ‪ ‬‬
‫ﺑﺎﻟﺼﻮرة واﺣﻔﻈﻪ وﺑﻨﺸﺮﺣﻪ ﺑﺘﺸﺎﺑﺘﺮ‪ ‬‬
‫اﻟﻔﻨﻜﺸﻨﺰ( وﺑﻴﻌﻄﻴﻚ اﻟﺠﺬر‪ ‬‬
‫اﻟﺘﺮﺑﻴﻌﻲ اﻟﻬﺎ وﺑﻜﻮن اﻟﻨﺎﺗﺞ ﺑﺮﺿﻮ‪ ‬‬
‫‪ ) float‬اﺳﺘﺨﺪﻣﻨﺎ ﻓﻨﻜﺸﻦ ﻋﺸﺎن‪ ‬‬
‫ﻳﺤﺴﺒﻠﻨﺎ اﻟﺠﺬر ﻛﻮﻧﻪ م ﻓﻲ‪ ‬‬
‫‪ operator‬ﻟﻠﺠﺬر ﻓﻲ ال‪ ( C++‬‬

‫وﻟﺤﺘﻰ ﻳﻘﺪر اﻟﻜﻮﻣﺒﺎﻳﻠﺮ ﻳﺘﻌﺮف ع ﻫﺎذ اﻟﻔﻨﻜﺸﻦ ﻻزم ﺗﻜﻮن ﻛﺎﺗﺐ‪  ‬‬

‫>‪ #include <cmath‬‬

‫‪(36) ‬‬ ‫‪ ‬‬ ‫‪ ‬‬


‫ﻣﺜﺎل ﻟﺒﺮﻧﺎﻣﺞ ﺑﺘﺪﺧﻠﻠﻪ ﻗﻴﻤﺔ وﺑﻴﻌﻄﻴﻚ اﻟﺠﺬر اﻟﺘﺮﺑﻴﻌﻲ اﻟﻬﺎ‪ ‬‬

‫‪ ‬‬
‫ﻓﻲ ﻓﻜﺮة أﺧﻴﺮة ﺑﺎﻟﺘﺸﺎﺑﺘﺮ )ﻏﺎﻟﺒﺎ ﻣﺎ ﺑﺘﻜﻮن ﻣﻄﻠﻮﺑﺔ(‪ ‬‬

‫وﻫﻲ ﻃﺮﻳﻘﺔ ﻋﺮض اﻻرﻗﺎم ال‪ floating point‬ﻋﻠﻰ اﻟﺸﺎﺷﺔ‪ ‬‬

‫اﻻوﻟﻰ اﺳﻤﻬﺎ ‪ fixed‬وﺑﺘﻌﺮض اﻟﺮﻗﻢ ﺑﺎﻟﺼﻴﻐﺔ اﻟﻌﺎدﻳﺔ واﻧﺖ ﺑﺘﺤﺪد ﻛﻢ ﺧﺎﻧﺔ ﺑﺪك ﺑﻌﺪ اﻟﻔﺎﺻﻠﺔ ‪ ,‬وإذا م ﺣﺪدت‪ ‬‬
‫ﻏﺎﻟﺒﺎ ﺑﻌﺘﺒﺮﻫﻦ ‪ .6‬‬

‫واﻟﺜﺎﻧﻴﺔ اﺳﻤﻬﺎ ‪ scientific‬وﺑﺘﻌﺮﺿﻪ ﺑﺎﻟﺼﻴﻐﺔ اﻟﻌﻠﻤﻴﺔ وﺑﺮﺿﻮ ﺑﺘﻘﺪر ﺗﺤﺪد ﻛﻢ ﺧﺎﻧﺔ ﺑﺪك ﺑﻌﺪ اﻟﻔﺎﺻﻠﺔ واذا م‪ ‬‬
‫ﺣﺪدت ﺑﻌﺘﺒﺮﻫﻢ ‪ 6‬ﻏﺎﻟﺒﺎ ‪ .‬‬

‫ﻣﺜﺎل ﻧﺸﻮف ﻓﻴﻪ اﻟﺴﻨﺘﺎﻛﺲ ﻟﻜﻞ وﺣﺪة ‪ :‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪ ‬‬

‫‪(37) ‬‬ ‫‪ ‬‬ ‫‪ ‬‬

You might also like