Scanned by CamScanner
ﺑﺴﻤﻪ ﺗﻌﺎﻟﻲ
ﻣﺒﺎﻧﻲ ﺑﺮﻧﺎﻣﻪﺳﺎزي )40153 (C
)Fundamental of Programming (C داﻧﺸﮕﺎه ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ
داﻧﺸﻜﺪه ﻣﻬﻨﺪﺳﻲ ﻛﺎﻣﭙﻴﻮﺗﺮ
: :
.
.3 31 4 '! ( ) *+ ,-. /0 '! ( ) 1 2 ! "#$ %& :
=>? "#$ 9 1 @ A .3#+ 6 ! '! +78 2 9 ! :; <$$ ! "#$ %& ( ) :
! ( ) *+ ,-. /0 2 " C +78 *+ A D : EFG 2 )2 1 +78 B ! '! ( ) *+
!' .3 31 4 7
B+ 9 B+ !6 2 L 2 $M: 3 N +OG PQF (4 J+G$ 9 ) H 9 :
. ( %&' '>+! >S C9 B+ 6 %!? ! R+ 1"! +OG .3 "#$ +OG
).3T ! -8' : 2 " 4 2 7$ ! 4 13: :
ﺳﻮاﻻت ﺗﺴﺘﻲ ) 50ﻧﻤﺮه(
.1اﮔﺮ ﻣﻘﺪار اوﻟﻴﻪ xﺑﺮاﺑﺮ 3ﺑﺎﺷﺪ ،ﻛﺪاﻣﻴﻚ از ﮔﺰﻳﻨﻪﻫﺎي زﻳﺮ ﺧﺮوﺟﻲ 7را ﺗﻮﻟﻴﺪ ﺧﻮاﻫﺪ ﻛﺮد؟
اﻟﻒx ++ 4 .
بx += 4 .
جx =+ 4 .
دx + 4 = x .
.2ﺧﺮوﺟﻲ ﻛﺪ ﻣﻘﺎﺑﻞ ﻛﺪام ﮔﺰﻳﻨﻪ ﺧﻮاﻫﺪ ﺑﻮد؟
;int a, b
; a = 1 & 126 ? 1 : 2 اﻟﻒ11 .
; b = 1 && 126 ? 1 : 2 12 ب.
;)printf ("%d", a
22 ج.
;)printf ("%d", b
21 د.
1
.3اﮔﺮ ﻫﻤﻪي ﻣﺘﻐﻴﺮﻫﺎي ﻣﻮﺟﻮد در ﻛﺪ زﻳﺮ ﻗﺒﻞ از اﺟﺮاي ﻛﺪ ﺑﺮاﺑﺮ 5ﺑﺎﺷﻨﺪ ،ﺧﺮوﺟﻲ ﭘﺲ از اﺟﺮاي ﻫﺮ ﻛﺪام از دﺳﺘﻮرات aو b
;a) p *= x++ )ﺑﻪ ﺻﻮرت ﺟﺪاﮔﺎﻧﻪ( ﭼﻪ ﺧﻮاﻫﺪ ﺑﻮد؟
;b) q /= ++x
p = 25, x = 6 p = 25, x = 6 p = 25, x = 5 p = 25, x = 5
د. ج. ب. اﻟﻒ.
q = 0, x = 6 q = 1, x = 6 q = 1, x = 6 q = 0, x = 6
.4ﺧﺮوﺟﻲ ﺑﺮﻧﺎﻣﻪ زﻳﺮ ﻛﺪام ﮔﺰﻳﻨﻪ اﺳﺖ؟
;int g=0,f=0
;)void f1(void g = 6
;)void f2(void اﻟﻒ.
{)(int main f = 12
;)(f2
;)printf("g = %d \n f = %d", g, f
;return 0 g = 6
ب.
} f = 6
{)void f1(void
;int g = 1
;g++;f++ g = 12
ج.
;)(f2 f = 12
}
{)void f2(void
) if ( g > 5 g = 12
د.
;return f = 6
;g++
;f++
;)(f1
}
.5ﺧﺮوﺟﻲ ﺑﺮﻧﺎﻣﻪ ﻣﻘﺎﺑﻞ ﻛﺪام ﮔﺰﻳﻨﻪ اﺳﺖ؟
)(int main
{ اﻟﻒ5 .
;int i, j 01234 ب.
;i = 5
)for (j = i == 5 ; j <= 5 ; j++ 012345 ج.
;)printf("%d", j
12345 د.
}
2
ﭼﻨﺪﺑﺎر در ﺧﺮوﺟﻲ ﭼﺎپ ﺧﻮاﻫﺪ ﺷﺪ؟x ﭘﻴﻐﺎم.6
int main()
{ 10 .اﻟﻒ
int x;
for(x = -1; x <= 10; x++) 11 .ب
{ ﺻﻔﺮ.ج
if(x < 5)
continue; 5 .د
else
break;
printf("x");
}
return 0;
}
ﺑﺎ اﺟﺮاي ﻗﻄﻌﻪ ﺑﺮﻧﺎﻣﻪ زﻳﺮ ﻛﺪام ﮔﺰﻳﻨﻪ در ﺧﺮوﺟﻲ ﻧﻤﺎﻳﺶ داده ﻣﻲﺷﻮد؟.7
int main()
{ 1 2 3 4 End .اﻟﻒ
int i;
i=1; 1234 .ب
while (i <= 10)
{ 1 2 3 4 6 7 8 9 10 End .ج
if (i == 5)
continue; 1 2 3 4 6 7 8 9 10 .د
printf("%d ", i);
i++;
}
printf("End");
return 0;
}
ﺧﺮوﺟﻲ ﺑﺮﻧﺎﻣﻪ ﻣﻘﺎﺑﻞ ﻛﺪام ﮔﺰﻳﻨﻪ اﺳﺖ؟.8
int main()
{ 21 31 41 51 60 .اﻟﻒ
int i = 1, j = 1; 21 31 41 50 .ب
for(; j; printf("%d%d\t", i, j))
11 21 31 41 51 60 .ج
j = i++ <= 4;
11 21 31 41 50 .د
return 0;
}
3
ﺧﺮوﺟﻲ ﺑﺮﻧﺎﻣﻪ ﻣﻘﺎﺑﻞ ﻛﺪام ﮔﺰﻳﻨﻪ ﺧﻮاﻫﺪ ﺑﻮد؟.9
void f1(int c)
{ 20 20 20 .اﻟﻒ
c = c * 2;
} 10 40 40 .ب
int main() 10 20 20 .ج
{
int a = 10; 10 10 10 .د
f1(a);
printf ("%d ", a);
if ( (a = 20) || (a == 30) || (a = 40))
printf ("%d ", a);
printf ("%d ", a);
return 0;
}
ﺧﺮوﺟﻲ ﻛﺪام ﮔﺰﻳﻨﻪ ﺧﻮاﻫﺪ ﺑﻮد؟، ﺑﻪ ﺑﺮﻧﺎﻣﻪ داده ﺷﻮد2 اﮔﺮ ورودي.10
int main()
{ 2 .اﻟﻒ
int i;
scanf ("%d", &i); 22 .ب
switch(i) 222 .ج
{
case 1: printf("%d ", i); 2222 .د
case 2: printf("%d ", i);
case 3: printf("%d ", i); break;
default: printf("%d ", i); break;
}
return 0;
}
4
ﺳﻮاﻻت ﺗﺸﺮﻳﺤﻲ ) 50ﻧﻤﺮه(
ﺳﻮال 20) .1ﻧﻤﺮه(
ﺑﺮاي ﻣﺤﺎﺳﺒﻪ ﻋﺪد πﻣﻲﺗﻮان از راﺑﻄﻪ زﻳﺮ اﺳﺘﻔﺎده ﻛﺮد.
π 2 2 4 4 6 6
… = + + + + +
2 1 3 3 5 5 7
ﺗﺎﺑﻌﻲ ﺑﻨﻮﻳﺴﻴﺪ ﻛﻪ ﺗﻌﺪاد ﺟﻤﻼت ﺳﺮي ﻓﻮق را ﺑﻪ ﻋﻨﻮان ﻳﻚ ﻋﺪد ﺻﺤﻴﺢ از ورودي درﻳﺎﻓﺖ ﻛﺮده و ﻣﻘﺪار πرا ﺑﺎ اﺳﺘﻔﺎده از راﺑﻄﻪ
ﻓﻮق ﺣﺴﺎب ﻛﺮده و ﺑﻪ ﺗﺎﺑﻊ ﻓﺮاﺧﻮاﻧﻨﺪه ﺑﺮﮔﺮداﻧﺪ .ﭘﺎراﻣﺘﺮ ورودي )ﺗﻌﺪاد ﺟﻤﻼت ﺳﺮي( ﻳﻚ ﻋﺪد ﺻﺤﻴﺢ ﺑﻴﻦ 5ﺗﺎ 50ﻣﻲﺑﺎﺷﺪ و اﮔﺮ
اﻳﻦ ﭘﺎراﻣﺘﺮ در ﻣﺤﺪوده ﺧﻮاﺳﺘﻪ ﺷﺪه ﻧﺒﻮد ،ﻣﻘﺪار -1را ﺑﻪ ﻋﻨﻮان ﺧﺮوﺟﻲ ﺗﺎﺑﻊ در ﻧﻈﺮ ﺑﮕﻴﺮد.
ﺟﻮاب.
0ﻣﺮﺣﻠﻪ 1 2 3 4 5 6 7 ….
2ﺻﻮرت ﻛﺴﺮ = a 2 4 4 6 6 8 8 …
1ﻣﺨﺮج ﻛﺴﺮ = b 3 3 5 5 7 7 9 …
ﻫﻤﺎﻧﻄﻮر ﻛﻪ در ﺷﻜﻞ ﺑﺎﻻ ﻣﺸﺨﺺ ﺷﺪه اﺳﺖ ﺻﻮرت در ﻣﺮاﺣﻞ زوج ﺑﺎ ﻋﺪد 2ﺟﻤﻊ ﺷﺪه اﺳﺖ و ﻣﺨﺮج در ﻣﺮاﺣﻞ ﻓﺮد ﺑﺎ ﻋﺪد 2ﺟﻤﻊ ﺷﺪه اﺳﺖ.
ﻟﺬا ﺧﻮاﻫﻴﻢ داﺷﺖ.
)(double f ﻧﻌﺮﻳﻒ درﺳﺖ ﺗﺎﺑﻊ 1ﻧﻤﺮه ﻣﺜﻼ ﺧﺮوﺟﻲ را ﺻﺤﻴﺢ ﻧﮕﻴﺮد //
{
;int n
;)scanf("%d", &n 1ﻧﻤﺮه ﺑﺮاي درﻳﺎﻓﺖ درﺳﺖ ﻋﺪد ﺻﺤﻴﺢ از ورودي //
;if (n < 5 || n > 50) return -1 2ﻧﻤﺮه //
;float a = 0, b= 1
;double sum = 0 ﺑﺎﻳﺪ اﻋﺸﺎري ﺑﺎﺷﺪ 1ﻧﻤﺮه //
;int c
)for (c = 0; c < n; c++ ﻧﻮﺷﺘﻦ ﻳﻚ ﺣﻠﻘﻪ ﺗﻜﺮار ﻣﻨﺎﺳﺐ و درﺳﺖ ﺑﺮاي ﻣﺤﺎﺳﺒﻪ 5ﻧﻤﺮه //
{
;if (c%2) a += 2 3ﻧﻤﺮه ﺑﺮاي ﺗﻮﻟﻴﺪ ﺻﻮرت ﻛﺴﺮ //
;else b+= 2 3ﻧﻤﺮه ﺑﺮاي ﺗﻮﻟﻴﺪ ﻣﺨﺮج ﻛﺴﺮ //
ﺗﻘﺴﻴﻢ ﺑﺎﻳﺪ ﺑﻪ ﺻﻮرت اﻋﺸﺎري ﺑﺎﺷﺪ ﻳﻌﻨﻲ اﮔﺮ ﺻﻮرت و ﻣﺨﺮج ﺻﺤﻴﺢ آﻧﮕﺎه ﺑﻨﻮﻳﺴﻴﻢ*/
;)sum += (1.0 * a / b
رﻋﺎﻳﺖ اﻳﻦ ﻧﻜﺘﻪ 2ﻧﻤﺮه ﺧﻮاﻫﺪ داﺷﺖ
*/
;)sum += (a/b
}
;sum *= 2 2ﻧﻤﺮه ﺑﺮاي دﻗﺖ داﻧﺸﺠﻮ ﺑﻪ ﺳﻮال و ﺿﺮب در ﻋﺪد //
;return sum
}
5
ﺳﻮال 15) .2ﻧﻤﺮه(
ﺗﺎﺑﻌﻲ ﺑﺎزﮔﺸﺘﻲ ﺑﻪ ﻧﺎم rec_powﺑﻨﻮﻳﺴﻴﺪ ﻛﻪ ﻳﻚ ﻋﺪد ﺻﺤﻴﺢ ﻣﺜﺒﺖ ﺑﻪ ﻧﺎم yو ﻳﻚ ﻋﺪد doubleﺑﻪ ﻧﺎم xرا ﮔﺮﻓﺘﻪ و ﻣﻘﺪار xﺑﻪ
ﺗﻮان yرا ﺣﺴﺎب ﻛﻨﺪ.
ﺑﻪ ﻋﻨﻮان ﻣﺜﺎل headerﺗﺎﺑﻊ ﺑﻪ ﺻﻮرت ) double rec_pow (double x, int yﺑﻮده و ﺑﻪ ازاء وروديﻫﺎي x=2.5و y=3
ﻣﻘﺪار 15.625ﺑﺮﮔﺸﺖ داده ﻣﻲﺷﻮد.
ﺟﻮاب.
)double rec_pow(double x, int y
{
ﻗﺴﻤﺖ ﭘﺎﻳﻪ اﻟﮕﻮرﻳﺘﻢ ﻛﻪ ﺑﻪ ﻳﻜﻲ از دو ﺻﻮرت زﻳﺮ ﻣﻲ ﺷﻮد ) 3ﻧﻤﺮه( //
)if (y == 0
;return 1
ﻳﺎ //
)if (y == 1
;return x
ﻗﺴﻤﺘﻲ ﻛﻪ داده ﻫﺎي ﻧﺎﻣﺮﺑﻮط را ورودي ﻣﻨﺎﺳﺐ ﺑﺮﮔﺮداﻧﺪ ) 1ﻧﻤﺮه( )ﻣﻤﻜﻦ اﺳﺖ ﺗﺎﺑﻊ ﺑﻪ ﮔﻮﻧﻪ اي ﻃﺮاﺣﻲ ﺷﺪه ﺑﺎﺷﺪ ﻛﻪ ﺑﺮاي ﺗﻮان ﻫﺎي ﻣﻨﻔﻲ ﺟﻮاب درﺳﺖ //
ﺑﺮﮔﺮداﻧﺪ وﻟﻲ ﺟﺰو ﻟﺰوﻣﺎت ﻣﺴﺌﻠﻪ ﻧﻴﺴﺖ(
)if (y < 0
;return -1
ﻗﺴﻤﺘﻲ ﻛﻪ ﻓﺮاﺧﻮاﻧﻲ ﺑﺎزﮔﺸﺘﻲ اﻧﺠﺎم داده ﻣﻲ ﺷﻮد و داده ﻣﻨﺎﺳﺐ ﺑﺎزﮔﺸﺖ داده ﻣﻲ ﺷﻮد ) 9ﻧﻤﺮه( //
;)return x* rec_pow(x,y-1
}
ﺑﺮاي اﻳﻨﻜﻪ ﻛﺎﻣﻼً ﺗﺎﺑﻊ و ﻧﺤﻮ دﺳﺘﻮرات درﺳﺖ ﺑﺎﺷﻨﺪ 2) .ﻧﻤﺮه( //
6
ﺳﻮال 15) .3ﻧﻤﺮه(
ﺑﺮﻧﺎﻣﻪاي ﺑﻨﻮﻳﺴﻴﺪ ﻛﻪ ﻣﺨﺘﺼﺎت ﺳﻪ ﻧﻘﻄﻪ را از ورودي ﺑﮕﻴﺮد و ﺑﮕﻮﻳﺪ ﻛﻪ آن ﺳﻪ ﻧﻘﻄﻪ ﻫﻢﺧﻂ ﻫﺴﺘﻨﺪ ﻳﺎ ﻧﻪ .اﮔﺮ ﻫﻢ ﺧﻂ ﺑﻮدﻧﺪ،
ﺧﺮوﺟﻲ ﺑﺮﻧﺎﻣﻪ ،ﻳﻚ ﻣﻌﺎدﻟﻪ ﺧﻂ ﺑﻪ ﺻﻮرت ax + by + c = 0ﺧﻮاﻫﺪ ﺑﻮد و اﮔﺮ ﻫﻢﺧﻂ ﻧﺒﻮدﻧﺪ ،ﺧﺮوﺟﻲ NOﺧﻮاﻫﺪ ﺑﻮد .ورودي ﺑﻪ
ﺻﻮرت ﺷﺶ ﻋﺪد اﻋﺸﺎري ﺧﻮاﻫﺪ ﺑﻮد ﻛﻪ ﻣﺨﺘﺼﺎت ﺳﻪ ﻧﻘﻄﻪ B ،Aو Cرا ﺑﻴﺎن ﻣﻲﻛﻨﺪ.
راﻫﻨﻤﺎﻳﻲ :ﺳﻪ ﻧﻘﻄﻪ ) B(x2, y2) ،A(x1, y1و ) C(x3, y3را ﻫﻢﺧﻂ ﮔﻮﻳﻨﺪ ﻫﺮﮔﺎه ﺷﻴﺐ دو ﺧﻂ ABو BCﺑﺎ ﻫﻢ ﺑﺮاﺑﺮ ﺑﺎﺷﻨﺪ .ﺷﻴﺐ ﺧﻂ
௬ ି௬
ABاز ﻓﺮﻣﻮل ݉ = ௫మ ି௫భﻗﺎﺑﻞ ﻣﺤﺎﺳﺒﻪ اﺳﺖ .ﻫﻤﭽﻨﻴﻦ ،ﻣﻌﺎدﻟﻪ ﺧﻂ ABﺑﻪ ﺻﻮرت ଵ ሻݔ −ݔଵ = ݉ሺݕ −ݕ ﻧﻮﺷﺘﻪ ﻣﻲﺷﻮد.
మ భ
ﺟﻮاب.
)(int main
{
;float x1,x2,x3,y1,y2,y3 ﺗﻌﺮﻳﻒ 6ﻣﺘﻐﻴﺮ اﻋﺸﺎري )ﻧﺒﺎﻳﺪ از آراﻳﻪﻫﺎ اﺳﺘﻔﺎده ﺷﻮد( ) 2ﻧﻤﺮه( //
;float m1,m2
ﺧﻮاﻧﺪن اﻋﺪاد از ورودي ) 3ﻧﻤﺮه( //
;)"printf("Specify point A by entering its coordinates (x and y):\n
;)scanf("%f %f", &x1, &y1
;)"printf("Specify point B by entering its coordinates (x and y):\n
;)scanf("%f %f", &x2, &y2
;)"printf("Specify point C by entering its coordinates (x and y):\n
;)scanf("%f %f", &x3, &y3
ﻣﺤﺎﺳﺒﻪ ﺷﻴﺐ ﺧﻂﻫﺎ ) 3ﻧﻤﺮه( //
;)m1 = (y2-y1)/(x2-x1
;)m2 = (y3-y2)/(x3-x2
)if (m1 != m2 ﻣﻘﺎﻳﺴﻪ ﺷﻴﺐ ﺧﻂﻫﺎ ) 2ﻧﻤﺮه( //
;)"printf("NO
else
;)printf("y-%f=%f(x-%f)", y1, m1, x1 ﺧﺮوﺟﻲ ﺑﺎ ﻓﺮﻣﺖ درﺳﺖ ﻣﻌﺎدﻟﻪ ﺧﻂ ) 5ﻧﻤﺮه( //
;return 0
}
7
ﺳﻮال - 4ﻣﺨﺼﻮص داﻧﺸﺠﻮﻳﺎن ﻣﻬﻨﺪﺳﻲ ﻛﺎﻣﭙﻴﻮﺗﺮ و ﺑﺮق 20) .ﻧﻤﺮه(
ﺑﺮﻧﺎﻣﻪاي ﺑﻨﻮﻳﺴﻴﺪ ﻛﻪ ﻣﺨﺘﺼﺎت دو ﻣﺴﺘﻄﻴﻞ را از ورودي ﮔﺮﻓﺘﻪ و ﻣﺴﺎﺣﺖ ﻧﺎﺣﻴﻪي ﻣﺸﺘﺮك ﺑﻴﻦ دو ﻣﺴﺘﻄﻴﻞ را ﺣﺴﺎب ﻛﻨﺪ .ﺑﻪ ازاء
ﻫﺮ ﻣﺴﺘﻄﻴﻞ دو ﻧﻘﻄﻪ )ﺟﻤﻌﺎً ﭼﻬﺎر ﻋﺪد اﻋﺸﺎري( ﺑﺎﻳﺪ ﮔﺮﻓﺘﻪ ﺷﻮد .ﺗﻮﺟﻪ ﻛﻨﻴﺪ ﻛﻪ ﻫﺮ ﻣﺴﺘﻄﻴﻞ ﺑﺎ اﺳﺘﻔﺎده از دو ﻧﻘﻄﻪ ،ﻣﻲﺗﻮاﻧﺪ ﺑﻪ
ﻳﻜﻲ از ﭼﻬﺎر ﻓﺮم زﻳﺮ ﻧﻤﺎﻳﺶ داده ﺷﻮد.
ﺑﻪ ﻋﻨﻮان ﻧﻤﻮﻧﻪ ،ﻫﺪف از اﻳﻦ ﺳﻮال ﭘﻴﺪا ﻛﺮدن ﻧﺎﺣﻴﻪ ﭘﺮرﻧﮓ ﺑﻴﻦ دو ﻣﺴﺘﻄﻴﻞ زﻳﺮ ﻣﻲﺑﺎﺷﺪ .اﻟﺒﺘﻪ اﻳﻦ اﺣﺘﻤﺎل ﻫﻢ وﺟﻮد دارد ﻛﻪ
ﻧﺎﺣﻴﻪ ﻣﺸﺘﺮك وﺟﻮد ﻧﺪاﺷﺘﻪ ﺑﺎﺷﺪ ﻛﻪ در اﻳﻦ ﺻﻮرت ﻣﺴﺎﺣﺖ ﻧﺎﺣﻴﻪ ﻣﺸﺘﺮك ﺑﺮاﺑﺮ ﺻﻔﺮ ﺧﻮاﻫﺪ ﺑﻮد.
ﺟﻮاب.
)(int main
{
ﺗﻌﺮﻳﻒ ﻣﺘﻐﻴﺮﻫﺎ ) 2ﻧﻤﺮه( //
;float x1, y1, x2, y2, x3, y3, x4, y4
;float temp
;float x_length=0, y_length=0
ﺧﻮاﻧﺪن ﻣﺨﺘﺼﺎت ﻧﻘﺎط از ورودي ) 1ﻧﻤﺮه( //
;)scanf("%f %f %f %f",&x1,&y1,&x2,&y2
;)scanf("%f %f %f %f",&x3,&y3,&x4,&y4
8
// rectangle1 change to first position
// ( ﻧﻤﺮه5) ﺗﺒﺪﻳﻞ ﻣﺨﺘﺼﺎت ﻧﻘﺎط ﺧﻮاﻧﺪه ﺷﺪه ﺑﺮاي ﻣﺴﺘﻄﻴﻞ اول ﺑﻪ ﻳﻜﻲ از ﭼﻬﺎر ﺣﺎﻟﺖ ﻓﻮق
if(x1>x2) {
temp=x1;
x1=x2;
x2=temp;
temp=y1;
y1=y2;
y2=temp;
}
if(y1>y2) {
temp=y1;
y1=y2;
y2=temp;
}
// rectangle2 change to first position
// ( ﻧﻤﺮه5) ﺗﺒﺪﻳﻞ ﻣﺨﺘﺼﺎت ﻧﻘﺎط ﺧﻮاﻧﺪه ﺷﺪه ﺑﺮاي ﻣﺴﺘﻄﻴﻞ دوم ﺑﻪ ﺣﺎﻟﺖ ﻣﻔﺮوض ﺑﺮاي ﻣﺴﺘﻄﻴﻞ اول
if(x3>x4) {
temp=x3;
x3=x4;
x4=temp;
temp=y3;
y3=y4;
y4=temp;
}
if(y3>y4) {
temp=y3;
y3=y4;
y4=temp;
}
// calculate x common space
// ( ﻧﻤﺮه2) ﭘﻴﺪا ﻛﺮدن ﻃﻮل ﻧﺎﺣﻴﻪ ﻣﺸﺘﺮك
if(x1<x4 && x4<x2)
if(x1<x3 && x3<x2)
x_length=x4-x3;
else
x_length=x4-x1;
else
if(x1<x3 && x3<x2)
x_length=x2-x3;
else
x_length=0;
9
//calculate y common space
// ( ﻧﻤﺮه2) ﭘﻴﺪا ﻛﺮدن ﻋﺮض ﻧﺎﺣﻴﻪ ﻣﺸﺘﺮك
if(y1<y4 && y4<y2)
if(y1<y3 && y3<y2)
y_length=y4-y3;
else
y_length=y4-y1;
else
if(y1<y3 && y3<y2)
y_length=y2-y3;
else
y_length=0;
// ( ﻧﻤﺮه3) ﮔﺰارش ﺧﺮوﺟﻲ ﺑﺎ در ﻧﻈﺮ ﮔﺮﻓﺘﻦ اﺣﺘﻤﺎل ﺻﻔﺮ ﺑﻮدن ﻣﺴﺎﺣﺖ
printf("%f",x_length*y_length);
return 0;
}
10