Presentation is loading. Please wait.

Presentation is loading. Please wait.

دانشگاه علم و صنعت ایران – دانشکده مهندسی کامپیوتر

Similar presentations


Presentation on theme: "دانشگاه علم و صنعت ایران – دانشکده مهندسی کامپیوتر"— Presentation transcript:

1 دانشگاه علم و صنعت ایران – دانشکده مهندسی کامپیوتر
آموزش برنامه نویسی C++ : Examples C++ Programming Tutorial گردآورنده : عباس عزیز جلالی C++ Tutorial

2 دانشگاه علم و صنعت ایران – دانشکده مهندسی کامپیوتر
مثال ها C++ Tutorial

3 دانشگاه علم و صنعت ایران – دانشکده مهندسی کامپیوتر
این برنامه حروف بزرگ را به کوچک تبدیل می کند. /* Conversion of Capital Letter to Lower Case */ #include<stdio.h> #include<conio.h> int main(void) { int i; char ch; printf("Input Character : "); ch = getche(); i = ch; if (ch >= 'A' && ch <= 'Z') i = ch + 'a' - 'A'; printf("\nOutput Character : %c", i); } C++ Tutorial

4 دانشگاه علم و صنعت ایران – دانشکده مهندسی کامپیوتر
برنامه استفاده از آرایه #include<stdio.h> int fun1(int x, int y); main() { int i , ar[6] = {8,90,34,-75,55,2,}; /*for (i=0; i<=6 ; ++i) printf("\n%dth No : ",i); scanf("%d",&ar[i]); }*/ for (i=0; i<=5 ; ++i) printf("\nAr[%d] = %d",i,ar[i]); /*printf("\n2 Vahed addition is = %d", fun1(ar[i],2));*/ } int fun1(int x, int y) printf("Input No = %d %d",x , y); return x + y; C++ Tutorial

5 دانشگاه علم و صنعت ایران – دانشکده مهندسی کامپیوتر
آرایه دو بعدی #include<stdio.h> void main() { int ar[5][6]= {{0,1,2,3,4,5}, {1,2,3,4,5,6}, {2,3,4,5,6,7}, {3,4,5,6,7,8}, {4,5,6,7,8,9}, }; int i , j; for (i=0; i<=4 ; i++) for (j=0; j<=5; j++) ar[i][j] = i + j * 4; printf("ar[%2d ,%2d] = %d ",i,j,ar[i][j]); printf("\n"); } C++ Tutorial

6 دانشگاه علم و صنعت ایران – دانشکده مهندسی کامپیوتر
استفاده از توابع فایل ctype #include<stdio.h> #include<ctype.h> #include<conio.h> void main() { char c, y[]="Yes", n[]="No"; do { printf("\n Press a key <Esc ---> Quit "); c = getche(); if (c==27) break; puts("\n "); printf("isalnum('%c') = %s\n" , c, isalnum(c) ? y : n); printf("isalpha('%c') = %s\n" , c, isalpha(c) ? y : n); printf("iscntrl('%c') = %s\n" , c, iscntrl(c) ? y : n); printf("isdigit('%c') = %s\n" , c, isdigit(c) ? y : n); printf("islower('%c') = %s\n" , c, islower(c) ? y : n); printf("isupper('%c') = %s\n" , c, isupper(c) ? y : n); printf("tolower('%c') = %c\n" , c, tolower(c) ); printf("toupper('%c') = %c\n" , c, toupper(c) ); } while (1); } C++ Tutorial

7 دانشگاه علم و صنعت ایران – دانشکده مهندسی کامپیوتر
برنامه استفاده از فایل #include<stdio.h>; void main() { FILE *out; out = fopen("danesh","w"); fprintf(out,"In the name of ALLAH"); fclose(out); } C++ Tutorial

8 دانشگاه علم و صنعت ایران – دانشکده مهندسی کامپیوتر
برنامه خواندن و نوشتن در فایل #include<stdio.h> #include<conio.h> int main() { char filename[32]; char c; FILE *infile ; printf("file name ? "); scanf("%s",filename); printf("\n%s enter file name ",filename); /*gets(filename); puts(filename);*/ infile = fopen(filename,"r"); if (infile == NULL) { printf("\n file does not exist"); fprintf(infile,"\nFile does not exist!\n"); return 0; } else printf("File exists"); fclose(infile); /*c = 'b'; infile = fopen("input1","w"); while (1) { printf("\nEnter a character : "); scanf("%c",c); fprintf(infile,"\nCharacter is %c",c); if (c='1') return 0;*/ } C++ Tutorial

9 دانشگاه علم و صنعت ایران – دانشکده مهندسی کامپیوتر
ارسال آرایه به تابع #include <stdio.h> int g; fun (int q[]); main() { int p[1]={100}; printf("p1 = %d\n",p[0]); g = 2; printf ("G = %d\n",g); fun(p); printf("p4 = %d\n",p[0]); } fun (int q[]) printf("p2 = %d\n",q[0]); q[0] = 333; printf("p3 = %d\n",q[0]); g = 400; C++ Tutorial

10 دانشگاه علم و صنعت ایران – دانشکده مهندسی کامپیوتر
برنامه استفاده از تابع در تشخیص ارقام #include<stdio.h> #include<conio.h> int isletter(char c); void main() { char ch; printf("Enter a character : "); ch = getche(); if (isletter(ch) == 1) printf("\nThis is a capital letter"); else printf("\nThis is not"); } int isletter(char c) if (c>='0') if (c<='9') return 1; else return 0; C++ Tutorial

11 دانشگاه علم و صنعت ایران – دانشکده مهندسی کامپیوتر
لسیت های پیوندی #include<stdio.h> #include<stdlib.h> #include<conio.h> void main() { /*typedef struct rec node;*/ struct rec { int data; struct rec *next; } *head , *p; head = p = (struct rec *)malloc(sizeof(struct rec)); p->data = 123; p->next = (struct rec *)malloc(sizeof(struct rec)); p = p->next; p->data = 198; p->data = 42; p->data = 361; p->next = NULL; p = head; while (p) { printf("%d\n" , p->data); p = p->next; } } C++ Tutorial

12 دانشگاه علم و صنعت ایران – دانشکده مهندسی کامپیوتر
لیست های پیوندی شماره 2 #include<stdio.h> #include<stdlib.h> #include<conio.h> void main() { struct rec { int data; struct rec *next; } *head , *p , *q; head = p = (struct rec *) malloc(sizeof(struct rec)); puts("\n Enter 0 to exit" "\n "); do { printf("Number : "); scanf("%d", &p->data); q = p; p->next = (struct rec *) malloc(sizeof(struct rec)); p = p->next; } while(q->data); q->next = NULL; puts("\n"); p = head; while(p->next) { printf("%6d\n",p->data); p = p->next; } } C++ Tutorial

13 دانشگاه علم و صنعت ایران – دانشکده مهندسی کامپیوتر
مثالی از Loop #include<stdio.h>; #include<conio.h>; main() { int a=1; while (a<100) if (a % 20 == 0) { printf("\nPress any key to continue..."); getch();} printf("\nNext No = %d",a); ++a; } do { ++a; } while (a<=200); for (a=1;a<=300;a++) { printf("\nNext No ======== %d",a); } } C++ Tutorial

14 دانشگاه علم و صنعت ایران – دانشکده مهندسی کامپیوتر
استفاده از Pointer #include<stdio.h> main() { int a , *p; a = 100; p = &a; printf("\nvalue of a = %d",a); printf("\nvalue of &a = %5d",&a); printf("\nvalue of *p = %5d",*p); printf("\nvalue of p = %5d",p); ++*p; } C++ Tutorial

15 دانشگاه علم و صنعت ایران – دانشکده مهندسی کامپیوتر
مثالی از ساختار (Structure) #include<stdio.h> void main() { struct { int stno; char name[15]; float avg[3]; } stud [5]; int i=0; int j=0; do { printf("Student No :"); scanf("%d" , &stud[i].stno); printf(" "); printf("Student Name : "); scanf("%s",stud[i].name); for (j=0;j<=2;j++) { printf("Grade[%d] : ",j); scanf("%f",&stud[i].avg[j]); } /*printf("Hi Mr/Mrs %s , your average is %.2f", stud.name,stud.average);*/ ++i; } while (i<=3); for (i=0;i<=3;i++) printf(out,"\nHi Mr/Mrs %s , your average is %.2f", stud[i].name,stud[i].avg[1]); } C++ Tutorial

16 دانشگاه علم و صنعت ایران – دانشکده مهندسی کامپیوتر
-برنامه ای بنویسید که کار تابع puts را انجام دهد. #include <stdio.h> void my_puts(char *p) { printf(“%s\n”, p); } int main() puts(“This line is printed by ‘puts’ function,”); my_puts(“\nand, this line by ‘my_puts’ function. “); C++ Tutorial

17 دانشگاه علم و صنعت ایران – دانشکده مهندسی کامپیوتر
-برنامه زیر کار برنامه strcpy را با استفاده از pointer انجام می دهد. #include <stdio.h> void my_strcpy( char *to, char *from) { while ((*to = *from) != ‘\0’ ) { *to++; *from++; } int main() char str[30]; my_strcpy(str, “Copied by ‘my_strcpy’ function “); printf(“%s\n” , str); return 0; C++ Tutorial

18 دانشگاه علم و صنعت ایران – دانشکده مهندسی کامپیوتر
تابع قبل را به صورت فشرده تر نیز می توان نوشت: void my_strcpy( char *to, char *from) { while ((*to++ = *from++) != ‘\0’ ) { } int main() char str[30]; my_strcpy(str, “Copied by ‘my_strcpy’ function “); printf(“%s\n” , str); return 0; C++ Tutorial

19 دانشگاه علم و صنعت ایران – دانشکده مهندسی کامپیوتر
مثال از توابع بازگشتی - فیبوناچی : 2, 5, 11, 23, … جمله پنجم دنباله اعداد فوق چه عددی می باشد؟ حدس شما چيست؟ اگر کمی دقت کنيد متوجه خواهيد شد که هر جمله از دنباله فوق برابر است با دو برابر جمله قبلی بعلاوه يک. پس جمله پنجم برابر است با 2*23+1=47 دنباله فوق را توسط فرمول زير نيز می توان مشخص کرد : d(1) = 2 d(n) = 2*d(n-1)+1 همانطور که متوجه شده ايد در اين دنباله هر جمله به جملات قبلی خود وابسته است و برای بدست آوردن آن نياز به بازگشت روی جملات قبلی داريم تا اينکه سرانجام به جمله اول که عدد 2 می باشد برسيم. فرمول فوق را به صورت تابعی زير بازنويسی می کنيم : C++ Tutorial

20 دانشگاه علم و صنعت ایران – دانشکده مهندسی کامپیوتر
مثال از توابع بازگشتی (ادامه)-فیبوناچی: همانطور  که  در  تابع فوق  می  بينيد يک  حالت پايه  وجود دارد که  همان d(1)=2 می باشد و يک حالت بازگشتی که تابع با يک واحد کمتر دوباره فراخوانی می شود d(n) = 2*d(n-1)+1 . توابع بازگشتی به طور کلی دارای يک يا چند حالت پايه و يک بخش بازگشتی می باشند. که معمولاً در بخش بازگشتی تابع با مقداری کمتر مجدداً فراخوانی می شود. تابع بازگشتی فوق به زبان ++C به صورت زير می باشد : long int d(long int n) { if (n == 1) return 2; else return 2*d(n-1)+1; } C++ Tutorial

21 دانشگاه علم و صنعت ایران – دانشکده مهندسی کامپیوتر
برنامه فیبوناچی : در زير برنامه ای می نويسيم تا با استفاده از تابع فوق 20 جمله اول دنباله مذکور را نمايش دهد. #include <iostream.h> long int d(long int); int main( ) { for (int i=1 ; i<=20 ; i++) { cout<<d(i)<<"\t"; if (i%5==0) cout<<endl; } return 0; } long int d(long int n) if (n == 1) return 2; else return 2*d(n-1)+1; C++ Tutorial

22 دانشگاه علم و صنعت ایران – دانشکده مهندسی کامپیوتر
مثال از تابع بازگشتی : برنامه برج هانوی #include <iostream.h> int hanoi(int, char, char, char); int main( ) { int disks; cout<<"Moving disks form tower A to C."<<endl; cout<<"How many disks do you want to move?"; cin>>disks; cout<<hanoi(disks,'A','B','C')<<endl; return 0; } int hanoi(int n, char first, char help, char second) if (n == 1) { cout <<"Disk "<<n << " from tower " << first << " to tower " << second << endl;} else { hanoi(n-1, first, second, help); cout << "Disk "<<n<<" from tower "<<first<<" to tower "<< second << endl; hanoi(n-1, help, first, second); } C++ Tutorial

23 دانشگاه علم و صنعت ایران – دانشکده مهندسی کامپیوتر
مثال : برنامه ای بنويسيد که توسط آرايه ، نمودار ميله ای افقی برای اعداد {1 و17 و5 و13 و9 و11 و7 و15 و3 و19 } رسم کند . #include <iostream.h> int main() { const int arraySize = 10; int n[arraySize]= { 19, 3, 15, 7, 11, 9, 13, 5, 17, 1 }; cout << "Element" << " Value" << endl; for ( int i = 0; i < arraySize; i++ ) cout << i << "\t " << n[ i ] << "\t"; for ( int j = 0; j < n[ i ]; j++ ) cout << '*'; cout << endl; } return 0; C++ Tutorial

24 دانشگاه علم و صنعت ایران – دانشکده مهندسی کامپیوتر
مثال : برنامه ای بنويسيد که يک تاس را 6000 بار پرتاب کرده و توسط آرايه ای تعداد دفعات آمدن هر وجه را حساب کند .( تعداد دفعات آمدن هر وجه را يک عنصر آرايه ای در نظر بگيريد ) #include <iostream.h> #include <stdlib.h> #include <time.h> void main() { const int arraySize = 7; int frequency[ arraySize ] = { 0 }; srand( time( 0 ) ); for ( int roll = 1; roll <= 6000; roll++ ) ++frequency[ 1 + rand() % 6 ]; cout << "Face Frequency" << endl; for ( int face = 1; face < arraySize; face++ ) cout << face << "\t" << frequency[face] << endl; } C++ Tutorial

25 دانشگاه علم و صنعت ایران – دانشکده مهندسی کامپیوتر
مثال جستجو در آرایه : برنامه ای بنویسید که یک آرایه با هفت عنصر و مقادیر دلخواه را با عدد ورودی داده شده جستجو کرده و در صورت پیدا شدن مقدار مورد نظر، اندیس آرایه را نمایش دهد. #include <iostream.h> int linearSearch(const int array[], int, int ); void main() { const int arraySize = 7; int a[ arraySize ]={2,6,4,3,12,10,5}; int searchKey; cout << "Enter integer search key: "; cin >> searchKey; int element=linearSearch(a, searchKey, arraySize); if ( element != -1 ) cout << "Found value in element " << element << endl; else cout << "Value not found" << endl; } int linearSearch( const int array[], int key, int sizeOfArray ) for ( int j = 0; j < sizeOfArray; j++ ) if ( array[ j ] == key ) return j; return -1; C++ Tutorial

26 دانشگاه علم و صنعت ایران – دانشکده مهندسی کامپیوتر
خروجی مثال قبل (توابع strcmp و strncmp) s1 = Happy New Year s2 = Happy New Year s3 = Happy Holidays strcmp(s1, s2) = 0 strcmp(s1, s3) = 6 /* Subtract of ASCII ‘N’ From ‘H’ */ strcmp(s3, s1) = -6 strncmp(s1, s3, 6) = 0 strncmp(s1, s3, 7) = 6 strncmp(s3, s1, 7) = -6 C++ Tutorial

27 دانشگاه علم و صنعت ایران – دانشکده مهندسی کامپیوتر
استفاده از تابع strtok برای جدا کردن رشته ها #include <iostream.h> #include <string.h> void main() { char sentence[ ] ="This is a sentence with 7 tokens"; char *tokenPtr; cout << "The string to be tokenized is:\n"<<sentence << "\n\nThe tokens are:\n\n"; tokenPtr = strtok( sentence, " " ); while ( tokenPtr != NULL ) { cout << tokenPtr << '\n'; tokenPtr = strtok( NULL, " " ); // get next token } cout <<"\nAfter strtok, sentence ="<<sentence<<endl; C++ Tutorial

28 دانشگاه علم و صنعت ایران – دانشکده مهندسی کامپیوتر
اجرای برنامه قبل (استفاده از strtok) The string to be tokenized is: This is a sentence with 7 tokens The tokens are: This is a sentence with 7 Tokens After strtok, sentence = This C++ Tutorial


Download ppt "دانشگاه علم و صنعت ایران – دانشکده مهندسی کامپیوتر"

Similar presentations


Ads by Google