Download presentation
Presentation is loading. Please wait.
Published byClarissa Benson Modified over 9 years ago
1
آرايه Array آرايه مجموعه اى از متغيرهاى از يك نوع است كه با يك نام مشترك تحت استفاده قرار مى گيرند. يك عنصر بخصوص در يك آرايه با يك index (انديس ) مورد دستيابى قرار مى گيرد. در Cتمام عناصر آرايه از مكانهاى مجاور ( بهم چسبيده ) حافظه تشكيل مى گردند. كوچكترين آدرس ، آدرس عنصر اول است. بزرگترين آدرس متناظر آخرين عنصر است. آرايه ها مى توانند يك بعدى يا چند بعدى باشند. آرايه هاى يک بعدى فرم كلى آرايه يک بعدى به اين صورت است : type array-name[ size ] ; همان نوع پايه است كه نوع هر عنصر آرايه است. type اندازه ( size )مى گويد آرايه چند عنصر درون خود خواهد داشت. انديس اولين عنصر هر آرايه ، صفر مى باشد.
2
مثال : اگر بگوييدint x[10] ; x به عنوان يك آرايه با 10 عنصر معرفى شده لذا عناصرش x[0], x[1], x[2], …, x[9] مى باشد. عنصر آدرس 0123456701234567 1000 1002 1004 1006 1008 1010 1012 1014 عنصر آدرس 8989 1016 1018 اگر x در حافظه از آدرس 1000 شروع شده باشد آنگاه :
3
مثال : #include main( ) { int x[10] ; int t ; for ( t = 0 ; t < 10 ; ++t ) x[ t ] = t ; for ( t = 0 ; t < 10 ; ++t ) printf(“x[%d]= %d\n”,t, x[t]); }
4
sizeof(type) * length of array total bytes = char interest[10] ; كل اندازه آرايه از فرمول زير بدست مى آيد : مثال : int id[4] ; 1 x 10 = 10 مثال : 2 x 4 = 8
5
Sizeof1.C برنامه مثال : #include main() { int x[10], num ; clrscr(); printf("size of int is %d \n", sizeof(int)); printf("size of float is %d \n", sizeof(float)); printf("size of double is %d \n", sizeof(double)); printf("size of long double is %d \n", sizeof(long double)); printf("size of long int is %d \n", sizeof(long int)); printf("size of num is %d \n\n", sizeof(num)); printf("size of x is %d \n\n", sizeof(x) ); } size of int is 2 size of float is 4 size of double is 8 size of long double is 10 size of long int is 4 size of num is 2 size of x is 20 size of int is 2 نتيجه اجرا
6
x X[0] X[1] X[8] y y[0] y[1] y[8] x + y X[0] + y[0] X[1] + y[1] X[8] + y[8]
7
#define MAX 100 #include main() { /* sum of two vectors */ int i, n; double x[MAX], y[MAX] ; printf(“ n ? \n”); scanf(“%d”, &n) ; printf(“please enter the values of the first vector:\n”) ; for (i = 0 ; i < n ; i++ ) { printf(“x[%d] ? \t “, i ) ; scanf(“%lf”, &x[i]) ; } printf(“please enter the values of the second vector:\n”) ; for (i = 0 ; i < n ; i++ ) { printf(“y[%d] ? \t “, i ) ; scanf(“%lf”, &y[i]) ; } برنامه جمع دو بردار
8
for (i = 0 ; i < n ; i++ ) printf(“sum[%d] = %.0f \n”, i, x[i] + y[i] ) ; }
9
toupper(ch) = اگر ch يك حرف كوچك باشدمعادل بزرگ ch در غير اينصورت ch #include
10
tolower(ch) = اگر ch يك حرف بزرگ باشدمعادل كوچكch در غير اينصورت ch #include
11
#define MAX 100 #include main() { /* sum of two vectors */ int i, n, cyesno ; double x[MAX], y[MAX] ;
12
for(cyesno = 'Y' ; cyesno == 'Y' ; ) { clrscr(); printf(" n ? \n"); scanf("%d", &n) ; printf("please enter the values of the first vector:\n") ; for (i = 0 ; i < n ; i++ ) { printf("x[%d] ? \t ", i ) ; scanf("%lf", &x[i]) ; } printf("please enter the values of the second vector:\n") ; for (i = 0 ; i < n ; i++ ) { printf("y[%d] ? \t ", i ) ; scanf("%lf", &y[i]) ; } for (i = 0 ; i < n ; i++ ) printf("sum[%d] = %.0f \n", i, x[i] + y[i] ) ; printf("do you want to sum other vectors ? Y/N\t"); cyesno = toupper(getche()); } }
13
آرايه هاى داراى ابعاد بالاتر : type array-name [ size1 ] [ size2 ] …. [size n ] ; مثال : int a[2][3] ; a 00 a 01 a 02 a 10 a 11 a 12 مثال : int b[2][2] ; b 00 b 01 b 10 b 11
14
در زبان C ماتريس دو بعدى در حافظه بصورت سطرى نگهدارى مى شود :نكته : a 00 a01a01 a02a02 a10a10 a 11 a 12 مثال :برنامه محاسبه جمع دو ماتريس : #include #define MAX 100 main ( ) { int m, n, i, j ; double a[MAX][MAX], b[MAX][MAX] ;
15
1- شروع 2- m را از ورودي دريافت كن 3- n را از ورودي دريافت كن 4- مقادير ماتريس اول ( A ) را از ورودي دريافت كن 5- مقادير ماتريس دوم ( B ) را از ورودي دريافت كن 6- مقادير ماتريسهاي A و B را با هم جمع و چاپ كن 7- پايان
16
printf ( “ number of rows of matrices : m ?\t “ ) ; scanf(“%d”, &m ) ; printf ( “ number of columns of matrices : n ?\t “ ) ; scanf(“%d”, &n ) ; printf(“ Enter aij \‘s members of the first matrix :A \n”) ; for ( i = 0 ; i < m ; i++ ) for ( j = 0 ; j < n ; j++ ) { printf( “ a[%d][%d] ? \t”, i, j ) ; scanf( “%lf”, &a[i][j] ) ; } printf(“ Enter bij \‘s members of the second matrix :B \n”) ; for ( i = 0 ; i < m ; i++ ) for ( j = 0 ; j < n ; j++ ) { printf( “ b[%d][%d] ? \t”, i, j ) ; scanf( “%lf”, &b[i][j] ) ; }
17
for ( i = 0 ; i < m ; i++ ) for ( j = 0 ; j < n ; j++ ) printf( “ sum[%d][%d] = %lf\n”, i, j, a[i][j] + b[i][j] ) ; }
18
انواع خطاها Kinds of Errors 1- Syntax error خطاى نحوى 2- linker error خطاى اتصال دهنده 3- Run-time error خطاى زمان اجرا 4- Logical error خطاى منطقى Debugرفع اشكال Bug اشكال Moduleبسته ، تكه Maintance Support
19
تابع function آرايه Array خيلي خيلي خيلي مهم خيلي خيلي مهم
20
sin п0 return ضابطه Function عملكرد f(x) = sin(x) f xx2x2 f(x) = x2x2 f(t) = t2t2 به x يا t پارامتر ظاهري تابع مي گويندFormal parameter به п پارامتر واقعي تابع مي گويندActual parameter تابع Function
21
sin sqrt(4) √4 cos square root log10(100) 2 tan return value مقدار بازگشتي asin acos atan atan2(y,x) cast
22
2 5 2 * 2 * 2 * 2 * 2 5 base n base * base * base … * base n
23
#include main() { int n; do { scanf(“%d”, &n); if( n < 0 ) printf(“Enter a positive integer number: ”); } while( n < 0 ) printf(“%lf”, sqrt( (double) n); }
24
#include int power( int, int); /* test power function */ main( ) { int i ; for ( i = 0 ; i < 10 ; i++ ) printf(“%d %d %d\n”, i, power(2, i), power(-3, i) ); return 0 ; } Function Call فراخوانى تابع insert mode مثال :تابع توان تابع Function
25
/* power : raise base to n-th power ; n >= 0 */ int power (int base, int n ) { int i, p; for ( p = 1, i = 1 ; i <= n ; ++i ) p = p * base ; n = 20; return p; } double sqrt(double x)
26
return-type function-name(parameter declaration,if any) { declarations statements } تعريف تابع :
27
Actual parameters َ پارامترهاى واقعى arguments آرگومان Formal parameters پارامترهاى رسمى parameter Call by value فراخوانى توسط مقدار
28
pow(x, y) function prototype نمونه اوليه 2 ** 3 2 ^ 3 math.h Mathematics #include
29
Character Ascii Code 0 48 ‘0’ 1 49 ‘1’ 2 50 9 57 ‘9’
30
#include /* count digits, White space, others */ main( ) { int c, i, nwhite, nother ; int ndigit[10] ; nwhite = nother = 0 ; for ( i= 0; i < 10 ; ++i ) ndigit[ i ] = 0 ;
31
while ( ( c = getchar() ) != EOF ) if ( c >= ‘0’ && c <= ‘9’ ) ++ndigit[ c – ‘0’ ] ; else if ( c == ‘ ‘ || c== ‘\n’ || c== ‘\t’ ) ++nwhite ; else ++nother ; printf(”digits = “ ) ; for ( i = 0 ; i < 10 ; ++i ) printf(“ %d”, ndigit[ i ] ); printf( “, white space = %d, other = %d\n”, nwhite, nother ) ; }
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.