C Language Part 4
C Language Part 4
.
ﺠﺎﻤﻌﺔ
– ﻟﻴﺒﻴﺎ
اﺧﺘﺒﺎر اﻟﺒﯿﺎﻧﺎت اﻟﺒﺎب اﻟﺴﺎﺑﻊ
174
[email protected]
. ﺠ
1970 ﺴﻨﺔ
Golden Colorado School of Mines ﺠﺎﻤﻌﺔ
.
Case Western Reserve 1972
. Cleveland
Washington State University 1976
. Pullman
ﻓﻲ ﻤﺠﺎل
( ) ( )
.( )
د .ﻋﻤﺮ زرﺗﻲ أﺳﺎﺳﯿﺎت و ﺗﻄﺒﯿﻘﺎت ﻟﻐﺔ ﺳﻲ
175
( )
.
اﺧﺘﺒﺎر اﻟﺒﯿﺎﻧﺎت اﻟﺒﺎب اﻟﺴﺎﺑﻊ
176
7 اﻟﺒﺎب
اﻟﺴﺎﺑﻊ
اﺧﺘﺒـــﺎر اﻟﺒﯿﺎﻧﺎت
Data Verification
ﻣﻘﺪﻣﺔ 7.1
اﻟﻨﻮع char 7.2
ﻣﻌﺪﻻ ت اﻟﻨﻮع shortو long 7.3
اﻟﻨﻮع اﻟﻤﻀﺎﻋﻒ double 7.4
اﻟﺘﺤﻮﯾﻞ ﻣﻦ ﻧﻮع إﻟﻰ آﺧﺮ 7.5
اﺧﺘﺒﺎر اﻟﺒﯿﺎﻧﺎت 7.6
ﺗﻤﺎرﯾﻦ 7.7
ﻋﻤﺮ زرﺗﻲ.د أﺳﺎﺳﯿﺎت و ﺗﻄﺒﯿﻘﺎت ﻟﻐﺔ ﺳﻲ
177
7.1
: .
( signed int ) .1
.
( unsigned int ) .2
.
. long .3
. short .4
. char .5
. float ( ) .6
. double .7
characters
.( ) ASCII
string
.
اﺧﺘﺒﺎر اﻟﺒﯿﺎﻧﺎت اﻟﺒﺎب اﻟﺴﺎﺑﻊ
178
char 7.2
x
x
27 -1
. 127
:
. .1
. .2
. .3
ﻪ
.ﻓـﻲ 127 127
:
unsigned
ﻋﻤﺮ زرﺗﻲ.د أﺳﺎﺳﯿﺎت و ﺗﻄﺒﯿﻘﺎت ﻟﻐﺔ ﺳﻲ
179
( ) char .( )
: unsigned
unsigned char x ;
: x
28 -1 = 255
.( ) 8
) 8
. 7 (
x < = 127
main()
{
char x;
for(x=-127 ; x<127; x++)
printf(" %d ",x);
}
char ( 7.2.1 )
اﺧﺘﺒﺎر اﻟﺒﯿﺎﻧﺎت اﻟﺒﺎب اﻟﺴﺎﺑﻊ
180
. 1 126 -127
. char x
unsigned signed
. singned
ﻴ
x < 127
x < = 127
128 x
. 127 char
x = 128 ;
char x ّ
ﺒل error massage
x = -128 ;
1 ـﺔ
.
ﻋﻤﺮ زرﺗﻲ.د أﺳﺎﺳﯿﺎت و ﺗﻄﺒﯿﻘﺎت ﻟﻐﺔ ﺳﻲ
181
: ( 7.2.2 )
unsigned char x .1
. 255 ﻫﻲx for
" %d " " %c " .2
. char
main()
{
unsigned char x;
for(x=0;x<=255;x++)
printf(" %d ",x);
}
unsigned char ( 7.2.2 )
char x
x = 65 ;
اﺧﺘﺒﺎر اﻟﺒﯿﺎﻧﺎت اﻟﺒﺎب اﻟﺴﺎﺑﻊ
182
x = 'A' ;
: (7.2.3) ﻣﺜﺎل
. 10
main()
{ unsigned char k;
printf("\n ");
for(k=32; k < 255 ; k++)
{ if(k%10==0)
{ printf("\n\n");
getch();
}
printf("%3d %c ",k,k);
}
printf("%3d %c",255,255);
}
ﻰ ( 7.2.3 )
32 ـ ـ
.( ) for
long short 7.3
ﻋﻤﺮ زرﺗﻲ.د أﺳﺎﺳﯿﺎت و ﺗﻄﺒﯿﻘﺎت ﻟﻐﺔ ﺳﻲ
183
) 2 short
int ( ﺨﺎﻨﺔ ﺜﻨﺎﺌﻴﺔ16
215 - 1 = 32767
. - 32768
( )
. long ( 32 ) 4
231 - 1 = 2147483647
: ﻣﻼﺣﻈﺎت
ﻨlong int .1
. " %d " " % ld "
unsigned int .2
. " %u "
: ﻣﺜﺎل
. long
main()
{ unsigned int x;
long y;
اﺧﺘﺒﺎر اﻟﺒﯿﺎﻧﺎت اﻟﺒﺎب اﻟﺴﺎﺑﻊ
184
x=65000;
y=2134567890;
printf("\n %u ", x);
printf("\n %ld",y);
}
unsigned long ( 7.3.1 )
double 7.4
float
: ( 32) 4 ،
ﻏ .
.
float
. 8 double
ﻴﺼلdouble
1.7E+308
1.7 E - . 308
. 308
ﻋﻤﺮ زرﺗﻲ.د أﺳﺎﺳﯿﺎت و ﺗﻄﺒﯿﻘﺎت ﻟﻐﺔ ﺳﻲ
185
long double
10 ﻴﺴﻊ
.
: ﻣﻼﺣﻈﺎت
float double .1
.
double ـﺒﺎﻋﺔ ﻋـ ـ ﻋــ. 2
." % f "
long double .3
." % Lf "
ﻋ
1234567.890123 1234567.875000
.
float double
.float double
7.5
double y float x
y = x ;
،double float
( 4)
.( 8)
x = y ;
ﻋﻤﺮ زرﺗﻲ.د أﺳﺎﺳﯿﺎت و ﺗﻄﺒﯿﻘﺎت ﻟﻐﺔ ﺳﻲ
187
.ﺴﻌﺔ
. double ﺴx+y
: ﻤﺜل. y x ـ
6 / 5 = 1
5 6
:
6.0 / 5 = 1.2
ﻋﻠـﻰk int m k
: m
(float) k / (float) m
:
(float) k / m
اﺧﺘﺒﺎر اﻟﺒﯿﺎﻧﺎت اﻟﺒﺎب اﻟﺴﺎﺑﻊ
188
. float (float) k
: (7.5.1) ﻣﺜﺎل
main()
{
int k=6, m=5;
float x;
double y=1/3. ;
x=k/m;
printf("\n %f", x);
printf("\n %f",x+y);
printf("\n %f", (float)k/m);
}
(7.5.1)
1.000000
1.333333
1.200000
د .ﻋﻤﺮ زرﺗﻲ أﺳﺎﺳﯿﺎت و ﺗﻄﺒﯿﻘﺎت ﻟﻐﺔ ﺳﻲ
189
ﺨﺘﺒ 7.6
:
. .1
. .2
ﻣﺜﺎل
. 20 .1
. .2ﻻ
.
اﺧﺘﺒﺎر اﻟﺒﯿﺎﻧﺎت اﻟﺒﺎب اﻟﺴﺎﺑﻊ
190
#include <stdio.h>
#include <ctype.h>
#define N 20
main()
{
char name[N];
int i;
printf("\n Please enter your name-->");
for(i=0;i<=N-1 ;i++)
{
for(;;)
{ name[i]=getch();
if(name[i]==13)break;
if( isalpha(name[i]) || name[i]==' ' )
{
putchar(name[i]);
break;
}
else
printf("\a");
}
if ( name[i]==13) break;
}
name[i]='\0';
printf("\n The name entered is %s \n ", name);
getch();
}
(7.6.1)
اﺧﺘﺒﺎر اﻟﺒﯿﺎﻧﺎت اﻟﺒﺎب اﻟﺴﺎﺑﻊ
192
.1
.2
.
ﺘﻨﺒﻴﻪ ﻟ .4
. 6
getch( ) ;
. ﻫـ
7.7
.1
main( ) ;
{ char k ;
for (k = 1 ; k < 200 ,k++)
printf( " %d " , k ) ;
}
.2
a b c d .......... x y z
.
n! .4
n! = 1 2 3 ......... (n-1) n
n ، int
ﻤـﺎ ﻫـﻲ. long
n
.
.5
ﻴ .6
.
ﻋﻤﺮ زرﺗﻲ.د أﺳﺎﺳﯿﺎت و ﺗﻄﺒﯿﻘﺎت ﻟﻐﺔ ﺳﻲ
195
.7
int i
long int n
float x
double y
:
(a) i + n
(b) i / n
(c) x + n
(d) x* y
(e) n *y
(f) (float) y
(g) (double) y
(r) (float) i / n
: .8
( 5 ) (a)
/ / : (b)
31 1 :
12 1 :
9999 1 :
اﺧﺘﺒﺎر اﻟﺒﯿﺎﻧﺎت اﻟﺒﺎب اﻟﺴﺎﺑﻊ
196
: .9
.
. 10
. )(A ,B ,C ,... )(a ,b ,c ,...
islower :