) Restrained Words (Main - ) - (-: 7-Up Salim! (!) No#) # (A9 A-A - A A
) Restrained Words (Main - ) - (-: 7-Up Salim! (!) No#) # (A9 A-A - A A
-٤إن ھﺬه اﻟﻠﻐﺔ ﺣﺴﺎﺳﺔ ﻟﺤﺎﻟﺔ اﻟﺤﺮف أي اﻟﺤﺮف اﻟﺼﻐﯿﺮ ﻟﯿﺲ ھﻮ اﻟﺤﺮف اﻟﻜﺒﯿﺮ
ﻓﺈن اﻟﻤﺘﺤﻮل aﻓﮭﻮ ﻏﯿﺮ اﻟﻤﺘﺤﻮل A
٢
اﻹﻋﻼم ﻋﻦ اﻟﻤﺘﻐﯿﺮات
ﻟﯿﺘﻤﻜﻦ اﻟﻤﺴﺘﺨﺪم ﻣﻦ اﺳﺘﺨﺪام اﻟﻤﺘﻐﯿﺮات اﻟﺘﻲ ﯾﺮﯾﺪھﺎ ﯾﺘﻄﻠﺐ اﻟﺒﺮﻧﺎﻣﺞ اﻹﻋﻼم اﻟﻤﺴﺒﻖ ﻋﻦ أﺳﻤﺎء
ھﺬه اﻟﻤﺘﻐﯿﺮات ﻓﻤﺜﻼً ﻟﻠﺘﻌﺎﻣﻞ ﻣﻊ ﻣﺘﻐﯿﺮﯾﻦ ﻣﻦ ﻧﻮع ) ﻋﺪد ﺻﺤﯿﺢ ( ﻧﻜﺘﺐ ﻣﺎ ﯾﻠﻲ:
;int a
;int b
وﯾﻤﻜﻦ أن ﺗﻜﺘﺐ ﺑﺎﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ ; int a,b
٣
٤
ﻣﻼﺣﻈﺎت ھﺎﻣﺔ
ﻗﺴــــﻤﺔ ﻋﺪد ﺻﺤﯿﺢ ﻋﻠﻰ ﻋﺪد ﺻﺤﯿﺢ ﯾﻜﻮن اﻟـﻨــﺎﺗﺞ ﺻﺤﯿﺢ أﯾﻀﺎً
ﻗﺴــــﻤﺔ ﻋـﺪد ﺣﻘﯿﻘﻲ ﻋﻠﻰ ﻋﺪد ﺻﺤﯿﺢ ﯾﻜﻮن اﻟـــﻨــﺎﺗﺞ ﺣﻘﯿﻘﻲ أﯾﻀﺎً
أﻣﺎ ﻗﺴﻤﺔ ﻋﺪد ﺣﻘﯿﻘﻲ ﻋﻠﻰ ﻋﺪد ﺻﺤﯿﺢ ﯾﻜﻮن اﻟــﻨﺎﺗــﺞ ﺣﻘﯿﻘﻲ
ﻣﺜﺎل :
أوﺟﺪ ﻧﺘﯿﺠﺔ اﻟﺘﻤﺮﯾﻦ اﻟﺘﺎﻟﻲ
>#include <iostream.h
) ( void main
{
; int i , j
٥
اﻟﺠﻮاب
I=2 x= 2.000 y= 2.000 j=2.5
٦
< اﻷﻛﺒﺮ
> اﻷﺻﻐﺮ
=< أﻛﺒﺮ أو ﯾﺴﺎوي
أﺻﻐﺮ أو
=> ﯾﺴﺎوي
== إن ﻛﺎن ﯾﺴﺎوي
إن ﻛﺎن ﻻ
=! ﯾﺴﺎوي
ﻣﺜﺎل:
أﻛﺘﺐ ﺑﺮﻧﺎﻣﺞ ﻹدﺧﺎل ﻋﺪد ﻣﺎ وﻣﻦ ﺛﻢ ﻃﺒﺎﻋﺔ ﺟﺪول ﺿﺮب ﻟﮫ
اﻟﺤﻞ:
>#include < iostream.h
) ( void main
}
;int x
;cin>> x
;cout<< x <<endl
;cout<< x *2<<endl
;cout<< x *3<<endl
;cout<< x *4<<endl
;cout<< x *5<<endl
;cout<< x *6<<endl
;cout<< x *7<<endl
;cout<< x *8<<endl
;cout<< x *9<<endl
{
ﻣﺜﺎل آﺧﺮ:
اﻛﺘﺐ ﺑﺮﻧﺎﻣﺞ ﻹدﺧﺎل ﺛﻼﺛﺔ ﻋﻼﻣﺎت ﻟﻄﺎﻟﺐ وﻣﻦ ﺛﻢ ﻃﺒﺎﻋﺔ ﻣﻌﺪل ھﺬه اﻟﻌﻼﻣﺎت
٧
اﻷدوات اﻟﻤﻨﻄﻘﯿﺔ
&& and
|| or
! not
:ﻣﺜﺎل
Int a=b=3;
A<3 false
A < = 3 true
A>b false
A != b false
A = =b true
: اﻷدوات اﻟﺪﻗﯿﻘﺔ
وﺗﺴﺘﻌﻤﻞ ھﺬه اﻷدوات ﻣﻊ اﻟﻤﻌﻄﯿﺎتbit أﻧﮭﺎ ﺗﺴﺘﺨﺪم أدوات دﻗﯿﻘﺔ ﺗﺘﻌﺎﻣﻞ ﻣﻊC++ ﺗﺘﻤﯿﺰ ﻟﻐﻮ
. وﻻ ﺗﺴﺘﺨﺪم ﻣﻊ ﻏﯿﺮھﺎInt , char
:وھﺬه اﻷدوات ھﻲ
اﻟﺘﻌﻠﯿﻤﺔ اﻟﺸﺮح
~ Not
>> إزاﺣﺔ اﻟﻰ اﻟﯿﺴﺎر
<< إزاﺣﺔ اﻟﻰ اﻟﯿﻤﯿﻦ
^ Xor
& And
| Or
ﻣﺜﺎل:
إذا ﻛﺎن ﻟﺪﯾﻨﺎ xﻣﻤﺜﻞ ﺑﺎﻟﻨﻈﺎم اﻟﺜﻨﺎﺋﻲ
اﻟﺠﻮاب:
1 1 1 0 0 1 0 1
اﻷدوات اﻟﺸﺮﻃﯿﺔ:
وھﻲ ﻋﺒﺎرة ﻋﻦ ﺣﻠﻘﺎت ﺗﺘﻢ ﺿﻤﻦ ﺷﺮوط ﯾﺤﺪدھﺎ ﻛﺎﺗﺐ اﻟﺒﺮﻧﺎﻣﺞ
ﻣﺜﺎل :
اﻛﺘﺐ ﺑﺮﻧﺎﻣﺞ ﻟﺤﺴﺎب اﻟﻘﯿﻤﺔ اﻟﻤﻄﻠﻘﺔ ﻟﻠﻤﺘﺤﻮل yﺑﺎﺳﺘﺨﺪام اﻟﻤﻌﺎﻣﻞ اﻟﺸﺮﻃﻲ ) اﻷداة اﻟﺸﺮﻃﯿﺔ (
و اﻟﻤﻌﺮﻓﺔ ﺑﺎﻟﻌﻼﻗﺔ اﻟﺘﺎﻟﯿﺔ
yﺗﺴﺎوي xﺑﺎﻟﻘﯿﻤﺔ اﻟﻤﻄﻠﻘﺔ
أي أن y = xﻋﻨﺪﻣﺎ x>0
x>0 y= -xﻋﻨﺪﻣﺎ و
اﻟﺤﻞ:
>#include < iostream.h
) ( void main
}
٩
ﻣﺜﺎل ﺗﻮﺿﯿﺤﻲ
if(b < c)
a = b;
else
a = c;
ﻣﺜﺎل آﺧﺮ
اﻛﺘﺐ ﺑﺮﻧﺎﻣﺞ ﻹدﺧﺎل ﻃﻮﻟﻚ و ﻃﻮل زﻣﯿﻠﻚ ﺑﺸﺮط
إن ﻛﺎن ﻃﻮﻟﻚ أﻛﺒﺮ ﻣﻦ ﻃﻮل زﻣﯿﻠﻚ ﻋﻨﺪﺋﺬ ﻗﻢ ﺑﻄﺒﺎﻋﺔ ﻃﻮﻟﻚ وﻣﻦ ﺛﻢ ﻗﻢ ﺑﺤﺴﺎب ﻣﻌﺪل اﻷﻃﻮال
ﺛﻢ أﻃﺒﻌﮫ وإﻻ ﻓﺄﻃﺒﻊ ﻃﻮل زﻣﯿﻠﻚ وأﻃﺒﻊ ﺿﻌﻒ ﻃﻮﻟﮫ وأﻃﺒﻊ ﻧﺼﻒ ﻃﻮﻟﮫ
:اﻟﺤﻞ
#include <iostream.h>
void main()
{
int z,y;
cout<< "Inter your long"<<endl;
cin>> z ;
cout<< "Inter friend's long"<<endl;
cin>> y;
cout<< "--------------------"<<endl;
if(z>y)
{
cout<< "You longer"<<endl;
cout<< "Your long is "<<z<<endl;
cout<<endl;
cout<< " The average longs are ";
١٠
:ﻣﺜﺎل آﺧﺮ
ﻧﺎﻗﺶ ﺣﺎﻟﺔ إدﺧﺎل ﻋﺪدﯾﻦ ﺑﻤﺨﺘﻠﻒ اﻟﺤﺎﻻت
#include <iostream.h>
void main()
{
int z,y;
cout<< "enter first number"<<endl;
cin>> z;
cout<<"enter scanned number"<<endl;
cin>>y;
if(z>y)
cout<<"the large number is first"<<z<<endl;
else
if(z==y)
cout<<"z=y";
else
cout<<"the large number is scaned";
}
١١
: ﻣﻼﺣﻈﺔ
ﻗﯿﻤﺔ ﺻﺤﯿﺤﺔswitch اﻟﻤﻌﺮف ﻓﻲExpression ﯾﺠﺐ أن ﯾﻜﻮن
:ﻣﺜﺎل
#include <iostream.h>
void main()
{
int x;
cin>> x;
switch (x)
{
case 1:
cout<<" welcome"<<endl;
break;
case 2:
cout<<" hello student"<<endl;
break;
case 3:
cout<<" introdaction to c++"<<endl;
break;
default:
cout<< "bye bye";
}
}
:ﻣﺜﺎل آﺧﺮ
١٢
اﻟﺤﻞ
#include <iostream.h>
void main()
{
int x;
cout<< " inter number a planet "<< endl;
cin>> x;
switch (x)
{
case 1:
cout<<" its a Mercury"<<endl;
break;
case 2:
cout<<" its a Venus"<<endl;
break;
case 3:
cout<<" its a earth"<<endl;
break;
case 4:
cout<<" its a Mars"<<endl;
break;
case 5:
cout<<" its a Jupiter"<<endl;
break;
case 6:
cout<<" its a Saturn"<<endl;
break;
case 7:
cout<<" its a URANUS"<<endl;
break;
case 8:
cout<<" its a NEPTUNE"<<endl;
break;
case 9:
cout<<" its a PLUTO"<<endl;
break;
case 10:
cout<<" its a senda "<<endl;
break;
١٣
:ﻣﺜﺎل آﺧﺮ
اﻛﺘﺐ ﺑﺮﻧﺎﻣﺞ ﯾﺤﻮل ﻣﻦ اﻷرﻗﺎم اﻟﻌﺮﺑﯿﺔ اﻷﺻﻞ إﻟﻰ اﻷرﻗﺎم اﻟﻤﻮاﻓﻘﺔ ﻟﮭﺎ ﺑﺎﻟﺮوﻣﺎﻧﯿﺔ
:اﻟﺤﻞ
#include<iostream.h>
main()
{
int x;
cout<<"enter the decimal number:";
cin>> x;
while(x<=12)
{switch(x)
{
case 1:
{cout<<"I"<<endl;
cout<<"enter the decimal number:";}
break;
case 2:
{cout<<"II"<<endl;
cout<<"enter the decimal number:";}
break;
case 3:
{cout<<"III"<<endl;
cout<<"enter the decimal number:";}
break;
case 4:
{cout<<"IV"<<endl;
cout <<"enter the decimal number:";}
break;
case 5:
{cout<<"V"<<endl;
cout<<"enter the decimal number:";}
break;
case 6:
{cout<<"VI"<<endl;
cout<<"enter the decimal number:";}
١٤
١٥
ﻣﺜﺎل:
اﻛﺘﺐ ﺑﺮﻧﺎﻣﺞ ﯾﻄﺒﻊ ھﺬه اﻹﺷﺎرة * ﻋﺸﺮ ﻣﺮات ﻣﺘﺘﺎﻟﯿﺔ
>#include<iostream.h
)(main
{
;int i
) for ( i = 1 ; i < = 10 ; i + +
;"*" <<cout
}
ﻣﺜﺎل آﺧﺮ:
اﻛﺘﺐ ﺑﺮﻧﺎﻣﺞ ﯾﻘﻮم ﺑﻄﺒﺎﻋﺔ اﻷﻋﺪاد اﻟﻔﺮدﯾﺔ ﻣﻦ اﻟﺮﻗﻢ ) (١إﻟﻰ اﻟﺮﻗﻢ ). (١٥
اﻟﺤﻞ:
١٦
ﻣﺜﺎل آﺧﺮ:
اﻛﺘﺐ ﺑﺮﻧﺎﻣﺞ ﯾﻄﺒﻊ اﻻرﻗﺎم 2.3…….10ﺑﺸﻜﻞ ﻋﺎﻣﻮدي
اﻟﺤﻞ :
>#include <iostream.h
)(void main
{
ﻣﺜﺎل :
اﻛﺘﺐ ﻧﺘﯿﺠﺔ اﻟﺒﺮﻧﺎﻣﺞ اﻟﺘﺎﻟﻲ
>#include <iostream.h
)(void main
{
;int j ,i
)for(i=1; i<=3 ; i++
)for(j=1; j<=4 ; j++
١٧
ﺣﻠﻘﺔ while
ﺷﻜﻠﮭﺎ اﻟﻌﺎم
)while(condition
; Statement
ﻣﻼﺣﻈﺔ :
ﯾﺠﺐ إﺿﺎﻓﺔ ﺗﻌﻠﯿﻤﺔ ﻓﻲ ﻧﮭﺎﯾﺔ ھﺬه اﻟﺤﻠﻘﺔ ﻟﺘﺴﻤﺢ اﻟﻌﻮدة إﻟﻰ ﺑﺪاﯾﺔ اﻟﺒﺮﻧﺎﻣﺞ ﺣﺘﻰ ﯾﺘﻢ ﻓﺤﺺ اﻟﺸﺮط
ﻣﺮة أﺧﺮى
ﻣﺜﺎل:
اﻛﺘﺐ ﺑﺮﻧﺎﻣﺞ ﯾﻘﻮم اﻟﻤﺴﺘﺨﺪم ﺑﺈدﺧﺎل ﻋﺪد ﻣﺎ وﻣﻦ ﺛﻢ ﯾﻔﺤﺺ اﻟﺒﺮﻧﺎﻣﺞ ھﺬا اﻟﻌﺪد ﻟﻤﻌﺮﻓﺔ ﻓﯿﻤﺎ إذا
ﻛﺎن ھﺬا اﻟﻌﺪد أوﻟﻲ أم ﻻ
اﻟﺤﻞ:
>#include <iostream.h
)(void main
{
;int x,i
;cin>> x
;i=2
)while (x>i
{
)if (x%i==0
{
cout<<"the number in not prime";// make i right any thing
١٨
ﻣﺜﺎل آﺧﺮ:
اﻛﺘﺐ ﺑﺮﻧﺎﻣﺞ ﯾﻄﻠﺐ ﻣﻦ اﻟﻤﺴﺘﺨﺪم إدﺧﺎل ﻗﯿﻤﺔ ﻋﺪدﯾﺔ ﻣﺎ
وﻃﺎﻟﻤﺎ ﻛﺎﻧﺖ ھﺬه اﻟﻘﯿﻤﺔ ﻣﻮﺟﺒﺔ ﻓﯿﻄﺒﻊ اﻟﺒﺮﻧﺎﻣﺞ ھﺬه اﻹﺷﺎرة * ﻋﻠﻰ ﺳﻄﺮ ﺟﺪﯾﺪ .
اﻟﺤﻞ
>#include <iostream.h
)(void main
{
;int x,i
;cin>> x
)while (x>0
{
;cout<<"*"<<endl
;cin>>x
}
}
١٩
اﻟﺸﻜﻞ اﻟﻌﺎم
Do
{
Statement
;)}while (condition
اﻟﺸﺮح:
اﺑﻖ ﺿﻤﻦ اﻟﺤﻠﻘﺔ doﺣﺘﻰ ﯾﺘﻢ ﺗﻨﻔﯿﺬ اﻟﺸﺮط )while (condition
ﻣﺜﺎل
اﻛﺘﺐ ﺑﺮﻧﺎﻣﺞ ﯾﻘﻮم ﺑﺠﻤﻊ اﻷﻋﺪاد اﻟﻤﺪﺧﻠﺔ وﻣﻦ ﺛﻢ ﯾﺘﻮﻗﻒ ﻋﻦ اﻟﻌﻤﻞ وﯾﻘﻮم ﺑﻄﺒﺎﻋﺘﮭﺎ ﺑﻤﺠﺮد إدﺧﺎل
اﻟﺮﻗﻢ ﺻﻔﺮ.
>#include <iostream.h
)(void main
{
;int x, sum
;sum = 0
do
{
;cin>>x
;sum+=x
;)}while (x!=0
;cout<<"sum of number is ="<<sum
}
ﻣﻼﺣﻈﺔ :
إن اﻟﻌﺒﺎرة sum+=xﺗﻜﺎﻓﺊ و ﺗﺴﺎوي اﻟﻌﺒﺎرة sum = sum + x
ﻣﻼﺣﻈﺔ أﺧﺮى
ﯾﻤﻜﻦ ﻛﺘﺎﺑﺔ ھﺬا اﻟﺒﺮﻧﺎﻣﺞ ﺑﺎﻟﺤﻠﻘﺔ whileﻓﻘﻂ ﻋﻠﻰ اﻟﻨﺤﻮ اﻟﺘﺎﻟﻲ
٢٠
٢١
٢٢
>#include <iostream.h
)(void main
{
;int x
;cin>>x
)if(x<10
;goto one
;else goto two
;"one: cout<<"the number is less ten
};"two: cout<<"the number is equal or beggar ten
وﻟﻜﻦ ﻧﺠﺪ أن اﻟﺒﺮﻧﺎﻣﺞ ﯾﻌﻄﻲ اﻟﻌﺒﺎرﺗﯿﻦ ﻣﻌﺎً إن ﻛﺎن اﻟﺮﻗﻢ اﻟﻤﺪﺧﻞ أﺻﻐﺮ ﻣﻦ ﻋﺸﺮة
وھﺬا اﻟﺨﻄﺄ ﺳﺒﺒﮫ:
اﻟﺒﺮﻧﺎﻣﺞ ﯾﻘﻮم ﺑﺘﻨﻔﯿﺬ اﻟﺘﻌﻠﯿﻤﺎت ﺳﻄﺮ ﺳﻄﺮ وﺑﻤﺎ أن اﻟﻌﺒﺎرة اﻟﺜﺎﻧﯿﺔ ﺟﺎءت ﺗﻤﺎﻣﺎً ﺑﻌﺪ اﻟﻌﺒﺎرة اﻷوﻟﻰ
) ﻓﻲ اﻟﺴﻄﺮ اﻟﺘﺎﻟﻲ ﻟﮭﺎ ( ﻓﻨﻔﺬت ﺑﻄﺒﯿﻌﺔ اﻟﺤﺎل.
ﺗﺪرﯾﺒﺎت:
اﻛﺘﺐ ﺑﺮﻧﺎﻣﺞ ﯾﻘﻮم اﻟﻤﺴﺘﺨﺪم ﺑﮫ ﺑﺈدﺧﺎل ﻋﺪة أﻋﺪاد / n /وﯾﻘﻮم ﺑﺠﻤﻌﮭﺎ ﺑﺤﯿﺚ ﯾﺤﺪد اﻟﻤﺴﺘﺨﺪم
ﻋﺪد اﻷﻋﺪاد /n/ﻗﺒﻞ إدﺧﺎﻟﮭﺎ ؟
اﺧﺘﺮ اﻟﻄﺮﯾﻘﺔ اﻟﻤﻨﺎﺳﺒﺔ ﻟﺤﻞ ھﺬا اﻟﻤﺜﺎل؟
>#include <iostream.h
)(void main
{
;int n,x,sum
;sum=0
;cin>>n
do
{
;cin>>x
;sum+=x
;n--
}
;)while(n!=0
;cout<<"the sum of number is "<<sum
٢٣
٢٤
while(n!=0)
{
n--;
switch(r)
{
case '+':
٢٥
٢٦
{
;x=x*10+i
;cout<<x<<endl
}
}
أﻣﺎ ﻛﺘﺎﺑﺔ اﻟﺒﺮﻧﺎﻣﺞ ﺑﻄﺮﯾﻘﺔ ﯾﻌﻄﯿﻨﺎ اﻟﺨﺮج ﺷﻜﻼً وﻟﯿﺲ رﻗﻢ ﻓﮭﻮ:
>#include<iostream.h
)(void main
{
;' ' =char c
)for(int i=1;i<=5;i++
{
)for(int j=1;j<=i;j++
;cout<<j<<c
;cout<<endl
}
}
ﻣﻼﺣﻈﺔ :ﯾﻤﻜﻦ أن ﻧﻜﺘﺐ ﻓﻲ اﻟﺴﻄﺮ اﻟﻮاﺣﺪ أﻛﺜﺮ ﻣﻦ أﻣﺮ ﺑﺮﻣﺠﻲ وﻟﻜﻨﺎ ﻓﻀﻠﻨﺎ أن ﻻ ﻧﻔﻌﻞ ذﻟﻚ ﻣﻦ أﺟﻞ
اﻟﺘﺮﺗﯿﺐ و ﻓﮭﻢ اﻟﺒﺮﻧﺎﻣﺞ ﻣﻊ أﻧﻨﺎ ﻗﻤﻨﺎ ﺑﺬﻟﻚ ﻓﻲ ﺑﻌﺾ اﻷﻣﺜﻠﺔ
ﻣﺜﺎل:
اﻛﺘﺐ ﺑﺮﻧﺎﻣﺞ ﯾﻘﻮم ﺑﺤﺴﺎب ! nاﻟﻌﺎﻣﻠﻲ ﻷي رﻗﻢ
اﻟﺤﻞ :
٢٧
cout<<"\n ------------------------------------------";
cout<<"\n enter x"<<endl ;
cin>>x;
y=1;
cout<<x<<"! = ";
while(y<=x)
{
fact=fact*y;
y++;
}
cout<<fact;
}
ﻋﻠﻰ اﻟﺸﻜﻞ اﻟﺘﺎﻟﻲfor وﯾﻤﻜﻦ ﻛﺘﺎﺑﺔ اﻟﺒﺮﻧﺎﻣﺞ ﺑﺎﺳﺘﺨﺪام اﻟﺤﻠﻘﺔ
#include<iostream.h>
void main()
{
int i,n,fact=1;
cout<<" this program is for factorial calculation";
cout<<"\n copy right 2006";
cout<<"\n designed by hindawi";
cout<<"\n ------------------------------------------";
cout<<"\n enter x"<<endl ;
cin>>n;
cout<<n<<"! = ";
for(i=1;i<=n;i++)
{
fact=fact*i;
}
cout<<fact;
}
٢٨
٢٩
:ﻣﺜﺎل آﺧﺮ
n أوﺟﺪ ﺣﺪود ﻓﯿﺒﻮﻧﺎﺷﻲ ﻣﻦ أﺟﻞ
:اﻟﺤﻞ
#include<iostream.h>
void main()
{
int a,b,c,i,n;
char s=' ';
a=b=1;
cin>>n;
cout<<a<<s<<b<<s;
for(i=3;i<=n;i++)
{
c=a+b;
cout<<c<<s;
a=b;
b=c;
}}
ﺗﺪرﯾﺒﺎت
اﻛﺘﺐ ﺑﺮﻧﺎﻣﺞ ﯾﻘﻮم ﺑﻄﺒﺎﻋﺔ اﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ
12345
23451
34512
45123
51234
:اﻟﺤﻞ
#include<iostream.h>
void main()
{
int a,b,c,d,e;
char s= ' ';
a=1;
b=2;
c=3;
d=4;
e=5;
for(int i=1;i<=5;i++)
{
cout<<a<<s<<b<<s<<c<<s<<d<<s<<e<<endl;
٣٠
:ﻣﺜﺎل
اﻛﺘﺐ ﺑﺮﻧﺎﻣﺞ ﯾﻘﻮم ﺑﻄﺒﺎﻋﺔ اﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ ﻋﻠﻰ اﻟﺸﺎﺷﺔ
A.1 A.2 A.3 A.4 A.5
B.1 B.2 B.3 B.4 B.5
C.1 C.2 C.3 C.4 C.5
D.1 D.2 D.3 D.4 D.5
E.1 E.2 E.3 E.4 E.5
اﻟﺤﻞ
#include<iostream.h>
void main()
{
char A,B,C,D,E,y,s,n;
s='.';
n=' ';
for(y='A';y<='E';y++)
{
cout<<endl;
for(int i=1;i<=5;i++)
cout<<y<<s<<i<<n;
}}
:ﻣﺜﺎل
ﻟﮭﺬه اﻟﻤﺘﻮاﻟﯿﺔN اﻛﺘﺐ ﺑﺮﻧﺎﻣﺞ ﯾﻘﻮم ﺑﺤﺴﺎب
1 >2>4>8>16>32> >>>>>>>>>>
اﻟﺤﻞ
#include<iostream.h>
void main()
{
float a,b,n;
char s=' ';
a=b=1;
cin>>n;
٣١
Arrays اﻟﻤﺼﻔﻮﻓﺎت
اﻟﻤﺼﻔﻮﻓﺔ ھﻲ ﻋﺒﺎرة ﻋﻦ ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﺒﯿﺎﻧﺎت اﻟﺘﻲ ﺗﺘﺸﺎﺑﮫ ﻓﻲ اﻟﻨﻮع double , int , char , float
وﻟﮭﺎ اﺳﻢ ﻣﺸﺘﺮك .
ﺗﺘﺸﺎﺑﮫ ﻓﻲ اﻟﻨﻮع :ﯾﻌﻨﻲ أن ﺗﻜﻮن اﻟﺒﯿﺎﻧﺎت اﻟﺘﻲ ﺗﺨﺰﻧﮭﺎ اﻟﻤﺼﻔﻮﻓﺔ ﻣﺜﻼً ﻛﻠﮭﺎ أﻋﺪاد ﺻﺤﯿﺤﺔ.
ﻟﮭﺎ اﺳﻢ ﻣﺸﺘﺮك :ﯾﻌﺒﺮ ﻋﻦ ھﺬه اﻟﺒﯿﺎﻧﺎت ﺑﺎﺳﻢ اﻟﻤﺼﻔﻮﻓﺔ
اﻟﺘﺼﺮﯾﺢ ﻋﻦ اﻟﻤﺼﻔﻮﻓﺔ:
ھﻨﺎك ﺛﻼﺛﺔ أﺷﯿﺎء ﯾﺠﺐ أن ﺗﺄﺧﺬ ﺑﻌﯿﻦ اﻻﻋﺘﺒﺎر ﻋﻨﺪ اﻟﺘﺼﺮﯾﺢ ﻋﻦ اﻟﻤﺼﻔﻮﻓﺔ
اﺳﻢ اﻟﻤﺼﻔﻮﻓﺔ :وھﻮ اﺳﻢ ﻧﺨﺘﺎره ﻣﺜﻠﻤﺎ ﻧﺨﺘﺎر اﺳﻢ أي ﻣﺘﻐﯿﺮ.
ﻋﺪد اﻟﻌﻨﺎﺻﺮ اﻟﺘﻲ ﺑﺪاﺧﻠﮭﺎ.
ﻧﻮع اﻟﺒﯿﺎﻧﺎت اﻟﻤﺴﺘﺨﺪﻣﺔ ﻓﯿﮭﺎ.
٣٢
ﺣﯿﺚ:
ﻧﻮع اﻟﺒﯿﺎﻧﺎت اﻟﺘﻲ ﺑﺪاﺧﻞ اﻟﻤﺼﻔﻮﻓﺔ int
اﺳﻢ اﻟﻤﺼﻔﻮﻓﺔ mark
ﻋﺪد اﻟﻌﻨﺎﺻﺮ داﺧﻞ اﻟﻤﺼﻔﻮﻓﺔ ][5
ﻋﻠﻤﺎً أﻧﮫ ﻓﻲ اﻟﻤﺼﻔﻮﻓﺎت ﯾﺒﺪأ ﺗﺮﻗﯿﻢ اﻟﻌﻨﺎﺻﺮ ) ﺧﺎﻧﺎت اﻟﻤﺼﻔﻮﻓﺔ ( وﻟﯿﺲ ﻗﯿﻤﺘﮭﺎ ﺑﺎﻟﺮﻗﻢ ﺻﻔﺮ
أي وﺑﺸﻜﻞ أوﺿﺢ:
ﻣﺼﻔﻮﻓﺔ ﺗﺘﺄﻟﻒ ﻣﻦ ﺳﺘﺔ ﻋﻨﺎﺻﺮ ﻓﺈﻧﮭﺎ ﺗﺘﻤﺜﻞ ﺑﺎﻟﺸﻜﻞ
اﻟﻌﻨﺼﺮ ٠ اﻟﻌﻨﺼﺮ ١ اﻟﻌﻨﺼﺮ ٢ اﻟﻌﻨﺼﺮ ٣ اﻟﻌﻨﺼﺮ ٤ اﻟﻌﻨﺼﺮ ٥
ﻗﯿﻤﺔ ﻗﯿﻤﺔ ﻗﯿﻤﺔ ﻗﯿﻤﺔ ﻗﯿﻤﺔ ﻗﯿﻤﺔ
٣٣
ﻹدﺧﺎل ﻋﻨﺎﺻﺮ ﻣﺼﻔﻮﻓﺔ اﺳﻤﮭﺎ markﺗﺘﺄﻟﻒ ﻣﻦ ﺧﻤﺲ ﻋﻨﺎﺻﺮ ﻧﺘﺒﻊ ﺣﻠﻘﺔ forﻛﻤﺎ ﯾﻠﻲ:
* ﻋﻠﻤﺎً أن رﻗﻢ اﻟﻌﻨﺼﺮ) وﻟﯿﺲ ﻗﯿﻤﺘﮫ( ﯾﺒﺪأ ﻣﻦ اﻟﺮﻗﻢ ﺻﻔـﺮ وﻟﮭﺬا ﻛﺘﺒﻨﺎ i<5
ﻓﺎﻟﻤﺼﻔﻮﻓﺔ اﻟﺘﻲ ﺗﺘﺄﻟﻒ ﻣﻦ ﺧﻤﺴﺔ ﻋﻨﺎﺻﺮ ﯾﻜﻮن رﻗﻢ اﻟﻌﻨﺼﺮ اﻷﺧﯿﺮ – وﻟﯿﺲ ﻗﯿﻤﺘﮫ – ﺗﻜﻮن أرﺑﻌﺔ
وﺗﺴﻤﻰ اﻟﻤﺼﻔﻮﻓﺔ } A{ 2,5,4,6ﻣﺼﻔﻮﻓﺔ ذات اﻟﺒﻌﺪ اﻟﻮاﺣﺪ ﻷﻧﮭﺎ ﺗﺘﻜﻮن ﻣﻦ ﺻﻒ واﺣﺪ و إن ﻛﺎﻧﺖ
ﺗﺘﻜﻮن ﻣﻦ ﻋﺎﻣﻮد واﺣﺪ ﻓﺘﺴﻤﻰ ﻧﻔﺲ اﻻﺳﻢ .
أﻣﺎ اﻟﻤﺼﻔﻮﻓﺔ ذات اﻟﺒﻌﺪﯾﻦ ﻓﮭﻲ اﻟﺘﻲ ﺗﺘﺄﻟﻒ ﻣﻦ أﻛﺜﺮ ﻣﻦ ﺻﻒ أو أﻛﺜﺮ ﻣﻦ ﻋﺎﻣﻮد.
ﻣﻼﺣﻈﺔ :
ﻗﺪ ﻧﺤﺘﺎج ﻓﻲ اﻟﻤﺼﻔﻮﻓﺎت أو ﻏﯿﺮھﺎ ﻟﻠﺘﻌﺎﻣﻞ ﻣﻊ ﻗﯿﻤﺔ ﺛﺎﺑﺘﺔ ) ﻣﺜﻼً ( ١٠ﻟﻤﺘﺤﻮل ﻣﺎ) ( maxﻻ ﺗﺘﻐﯿﺮ أﺑﺪا
أي ﻣﺘﺤﻮل ﺛﺎﺑﺖ اﻟﻘﯿﻤﺔً ﻓﺈﻧﻨﺎ ﻧﻌﺮف ھﺬا اﻟﻤﺘﺤﻮل ﻋﻠﻰ اﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ
#define max 10
ﻓﻔﻲ ھﺬه اﻟﺘﻌﻠﯿﻤﺔ ﻓﺈن اﻟﻤﺘﺤﻮل maxأﺧﺬ اﻟﻘﯿﻤﺔ ) (١٠ﻃﻮال ﻓﺘﺮة ﺗﻨﻔﯿﺬ اﻟﺒﺮﻧﺎﻣﺞ
وﻻ ﯾﻤﻜﻦ أن ﯾﺪﺧﻞ maxﻓﻲ أي ﻣﻦ اﻟﻌﻤﻠﯿﺎت اﻟﺤﺴﺎﺑﯿﺔ أو اﻹﺳﻨﺎد.
ﻣﺜﺎل :اﻛﺘﺐ ﺑﺮﻧﺎﻣﺞ ﯾﻘﻮم ﺑﺈدﺧﺎل ﻣﺮﺗﺒﺎت ﻋﺸﺮة ﻣﻮﻇﻔﯿﻦ ﺛﻢ ﯾﻘﻮم ﺑﺤﺴﺎب وﻃﺒﺎﻋﺔ ﻣﺘﻮﺳﻂ ھﺬه اﻟﺮواﺗﺐ
>#include<iostream.h
#define max 10 ﺗﻌﺮﯾﻒ اﻟﻤﺘﺤﻮل اﻟﺜﺎﺑﺖ
)(void main
٣٤
ﻣﻼﺣﻈﺔ
* ﺗﻌﺮﻓﻨﺎ ﺳﺎﺑﻘﺎ ﻋﻠﻰ ﻧﻮع اﻟﺒﯿﺎﻧﺎت charﺣﯿﺚ ﯾﻤﻜﻦ أن ﯾﻀﻢ ﺣﺮف واﺣﺪ ﻓﻘﻂ ﻟﻜﻦ ﻓﻲ ﺣﺎل أردﻧﺎ إدﺧﺎل
ﺳﻠﺴﻠﺔ ﻣﻦ اﻷﺣﺮف ﻋﻠﻰ ﺳﺒﯿﻞ اﻟﻤﺜﺎل :
ﻧﺮﯾﺪ إدﺧﺎل اﺳﻢ ﻣﻮﻇﻒ أو ﻋﻨﻮان ﻋﻨﺪھﺎ ﺳﻨﻘﻮم ﺑﺎﻟﺘﻌﺎﻣﻞ ﻣﻊ ﺳﻠﺴﻠﺔ ﻣﻦ اﻷﺣﺮف أي :ﺳﯿﺘﻢ إدﺧﺎل ﻣﺠﻤﻮﻋﺔ
ﻣﻦ اﻷﺣﺮف.
وھﺬا ﻣﺎ ﯾﺸﺒﮫ ﻣﺼﻔﻮﻓﺔ ﻣﻦ اﻷﺣﺮف و ﯾﺴﻤﻰ ھﺬا اﻟﻨﻮع ﻣﻦ أﺳﻠﻮب اﻟﺘﻌﺎﻣﻞ ﻣﻊ اﻟﺒﯿﺎﻧﺎت ﺑـ string
ﺑﯿﻨﻤﺎ ﻟﯿﺲ ﺑﺎﻹﻣﻜﺎن ﻓﻌﻞ ذﻟﻚ ﻣﻊ اﻟﻤﺼﻔﻮﻓﺔ اﻟﺮﻗﻤﯿﺔ int floatإﻻ رﻗﻢ رﻗﻢ .
ﻣﺜﺎل
اﻛﺘﺐ ﺑﺮﻧﺎﻣﺞ ﯾﻘﻮم ﺑﺈدﺧﺎل أﺳﻤﺎء اﻟﻤﻮﻇﻔﯿﻦ و ﻋﻨﺎوﯾﻨﮭﻢ
>#include <iostream.h
)(void main
{
;]char name[20
;]char address[20
)for(int i=0;i<13;i++
{
;cin>>name
;cin>>address
;cout<<name
;cout<<address
}
}
٣٥
اﻛﺘﺐ ﺑﺮﻧﺎﻣﺞ ﻣﻦ أﺟﻞ إﯾﺠﺎد ﻣﺠﻤﻮع ﻋﻨﺎﺻﺮ ﻣﺼﻔﻮﻓﺔ أﺣﺎدﯾﺔ اﻟﺒﻌﺪ ﻋﺪد ﻋﻨﺎﺻﺮھﺎ ﺧﻤﺴﺔ ﻋﻨﺎﺻﺮ
>#include<iostream.h
)(void main
{
;]float mark[5
;int sum=0
)for(int i=0;i<5;i++
{
;]cin>>mark[i
;]sum=sum+mark[i
}
;cout<<"sum = "<<sum
}
ﺷﺮح اﻟﺒﺮﻧﺎﻣﺞ
ﻟﻘﺪ أدﺧﻠﻨﺎ ھﻨﺎ اﻟﻌﻨﺎﺻﺮ رﻗﻢ رﻗﻢ و اﻟﺬي ﻗﺎم ﺑﺬﻟﻚ ﺣﻠﻘﺔ FOR
وﻣﻦ ﺛﻢ ﻗﻤﻨﺎ ﺑﺠﻤﻊ ﻗﯿﻢ ﻋﻨﺎﺻﺮ ھﺬه اﻟﻤﺼﻔﻮﻓﺔ
ﻣﻼﺣﻈﺔ
ﻟﯿﺲ ﺑﺎﻹﻣﻜﺎن ﺗﺤﺪﯾﺪ ﻋﺪد ﻋﻨﺎﺻﺮ اﻟﻤﺼﻔﻮﻓﺔ ﺑﻤﺘﺤﻮل
ﻓﺈﻧﮫ ﻣﻦ اﻟﻮاﺟﺐ ﺗﺤﺪﯾﺪ ﻋﺪد ﻋﻨﺎﺻﺮھﺎ وﻟﺬﻟﻚ ﻓﺈﻧﮫ ﻣﻦ اﻟﺨﻄﺄ ﻛﺘﺎﺑﺔ
]float mark[x
cin>>x
ﻷﻧﮫ ﻻ ﯾﺠﻮز ﺗﺤﺪﯾﺪ ﻋﺪد ﻋﻨﺎﺻﺮ اﻟﻤﺼﻔﻮﻓﺔ ﺑﻤﺘﺤﻮل
ﻣﻼﺣﻈﺔ
اﻟﻌﺒﺎرة i<5وﻟﻢ ﻧﻜﺘﺐ i<=5ﻷن ﻋﻨﺎﺻﺮ ﻟﻘﺪ ﻛﺘﺒﻨﺎ ﻓﻲ اﻟﻤﺜﺎل اﻟﺴﺎﺑﻖ )for(int i=0;i<5;i++
اﻟﻤﺼﻔﻮﻓﺔ ﺗﺒﺪأ ﻣﻦ اﻟﺼﻔﺮ
ﻣﺜﺎل آﺧﺮ
اﻛﺘﺐ ﺑﺮﻧﺎﻣﺞ ﯾﻘﻮم ﺑﺈدﺧﺎل ﺳﻠﺴﻠﺔ ﻣﺆﻟﻔﺔ ﻣﻦ ﻋﺸﺮة رﻣﻮز ﺛﻢ ﯾﻘﻮم ﺑﻄﺒﺎﻋﺘﮭﺎ وﻓﻖ ﺗﺮﺗﯿﺐ اﻹدﺧﺎل ﺛﻢ ﺑﻌﻜﺴﮫ
>#include<iostream.h
)(void main
{
;]char s[10 ﺣﺪدﻧﺎ ﻋﻨﺎﺻﺮ اﻟﻤﺼﻔﻮﻓﺔ ﺑﺄﻧﮭﺎ ﻋﺸﺮة ﻋﻨﺎﺻﺮ
)for (int i=0;i<10;i++ ﺣﻠﻘﺔ ﻹدﺧﺎل اﻟﻌﻨﺎﺻﺮ
;]cin>>s[i
٣٦
>#include<iostream.h
#define n 10
)(void main
{
;int count=0
;]char s[n
)for(int i=0;i<n;i++
{
;]cin>> s[i
)'if(s[i]=='A'||s[i]=='a
;count ++
}
;cout<<count
}
ﺷﺮح اﻟﺒﺮﻧﺎﻣﺞ
ﻛﻤﺎ ﺗﻼﺣﻆ
ﺑﻌﺪ أﻣﺮ اﻻدﺧﺎل ﻛﺘﺒﻨﺎ اﻟﻜﻮد اﻟﺘﺎﻟﻲ
)'if(s[i]=='A'||s[i]=='a
٣٧
اﻟﺤﻞ:
>#include<iostream.h
#define n 10
)(void main
{
;]int i,s[n
)for(i=0;i<n;i++
{
;]cin>>s[i
)if(s[i]>5
{
;cout<<"this number is begger of 5"<<endl
"<<cout<<i ;"<<s[i]<<endl
}
}}
ﺷﺮح اﻟﺒﺮﻧﺎﻣﺞ
إن اﻟﻘﯿﻤﺔ Iﺗﻤﺜﻞ ﻣﻜﺎن ﺗﻮاﺟﺪ اﻟﻌﻨﺼﺮ داﺧﻞ اﻟﻤﺼﻔﻮﻓﺔ
أﻣﺎ اﻟﻘﯿﻤﺔ ] S[Iﻓﺈﻧﮭﺎ ﺗﺸﻜﻞ ﻗﯿﻤﺔ ھﺬا اﻟﻌﻨﺼﺮ
٣٨
a[1][0]=1أن اﻟﻘﯿﻤﺔ ) ( ١ﻣﻮﺟﻮدة ﻓﻲ اﻟﺴﻄﺮ 1و اﻟﻌﺎﻣﻮد 0ﻛﻤﺎ ﻓﻲ اﻟﺸﻜﻞ ﺣﯿﺚ ﯾﻌﺒﺮ اﻟﻜﻮد
اﻟﺴﺎﺑﻖ
وﻛﻤﺎ أﻧﻨﺎ ﻗﺪ اﺳﺘﺨﺪﻣﻨﺎ ﺣﻠﻘﺔ forﻓﻲ اﻟﻤﺼﻔﻮﻓﺔ أﺣﺎدﯾﺔ اﻟﺒﻌﺪ ﻓﺈﻧﻨﺎ ﺳﻨﺴﺘﺨﺪم ھﻨﺎ ﺣﻠﻘﺘﻲ forﻹدﺧﺎل اﻟﻤﺼﻔﻮﻓﺔ
ﺛﻨﺎﺋﯿﺔ اﻟﺒﻌﺪ ﻛﺎﻟﺘﺎﻟﻲ:
ﻣﻼﺣﻈﺔ:
ﻧﺴﻤﻲ اﻟﻤﺼﻔﻮﻓﺔ ﺛﻨﺎﺋﯿﺔ اﻟﺒﻌﺪ ﺑﺎﻟﻤﺼﻔﻮﻓﺔ اﻟﻤﺮﺑﻌﺔ إذا ﺗﺴﺎوى ﻋﺪد اﻷﺳﻄﺮ ﻣﻊ ﻋﺪد اﻷﻋﻤﺪة
ﻣﺜﺎل :
اﻛﺘﺐ ﺑﺮﻧﺎﻣﺞ ﯾﻘﻮم ﺑﺈدﺧﺎل ﻋﻨﺎﺻﺮ ﻣﺼﻔﻮﻓﺔ ﺛﻨﺎﺋﯿﺔ اﻟﺒﻌﺪ
ﺗﺘﺄﻟﻒ ﻣﻦ ﺳﻄﺮﯾﻦ وﺛﻼﺛﺔ أﻋﻤﺪة
ﺑﺤﯿﺚ ﯾﻘﻮم اﻟﺒﺮﻧﺎﻣﺞ ﺑﺎﺳﺘﺒﺪال ﻋﻨﺎﺻﺮ اﻟﻤﺼﻔﻮﻓﺔ ذات اﻟﻘﯿﻤﺔ اﻟﻔﺮدﯾﺔ ﺑﺎﻟﻘﯿﻤﺔ )( ١٠
ﺛﻢ ﯾﻘﻮم اﻟﺒﺮﻧﺎﻣﺞ ﺑﻄﺒﺎﻋﺔ ﺷﻜﻞ اﻟﻤﺼﻔﻮﻓﺔ اﻟﺠﺪﯾﺪ.
اﻟﺤﻞ:
>#include <iostream.h
)(void main
{
٣٩
}}
ﻓﻤﺜﻼً :
ﻟﻜﺘﺎﺑﺔ ﺑﺮﻧﺎﻣﺞ ﻟﺘﺴﺠﯿﻞ ﺑﯿﺎﻧﺎت ﻣﻮﻇﻔﯿﻦ ﻓﻲ اﻟﺸﺮﻛﺔ ﻧﺤﺘﺎج إﻟﻰ ﺗﺨﺰﯾﻦ :
وﻛﻤﺎ ﻧﻼﺣﻆ ﻓﺈن ﺟﻤﯿﻊ ھﺬه اﻟﺒﯿﺎﻧﺎت ﯾﺠﺐ اﻟﺘﻌﺎﻣﻞ ﻣﻌﮭﺎ ﻛﻮﺣﺪة واﺣﺪة ﻷﻧﮭﺎ ﻟﻤﻮﻇﻒ واﺣﺪ
وﻟﺬﻟﻚ ﻓﺈﻧﻨﺎ ﺑﺤﺎﺟﺔ إﻟﻰ ﺳﺠﻞ ﺧﺎص ﻟﮭﺬا اﻟﻤﻮﻇﻒ
٤٠