poor!a 15130 مالک اشتراک گذاری ارسال شده در 3 آذر، ۱۳۹۰ تمرین یه مثال ساده از آرایه یک بعدی: 32- برنامه ای بنویسید که با استفاده از آرایه های یک بعدی، 10 عدد از ورودی خوانده و با فرمت مناسب در خروجی چاپ کند. #include void main() { int x[10]; cout for(register i=0;i cin>>x; cout for(i=0;i cout } //end 2 لینک به دیدگاه
poor!a 15130 مالک اشتراک گذاری ارسال شده در 3 آذر، ۱۳۹۰ تمرین اینم یک مثال از آرایه دو بعدی: 33- برنامه ای بنویسید که با استفاده از یک آرایه با 3 سطر و 2 ستون، 12 عدد از ورودی گرفته و آنها را با فرمت مناسبی نمایش دهد. #include void main() { int x[3][4]; cout for(register i=0;i for(register c=0; c cin>>x[c]; cout for(i=0;i for(int c=0;c cout } //end 2 لینک به دیدگاه
poor!a 15130 مالک اشتراک گذاری ارسال شده در 3 آذر، ۱۳۹۰ تمرین برای اینکه با آرایه های دارای بیش از دو بعد هم آشنا بشید، یه مثال از آرایه های سه بعدی میزنم: 34- برنامه ای بنویسید که با استفاده از یک آرایه 3*2*2، 12 عدد از ورودی گرفته و آنها را با فرمت مناسبی چاپ کند. #include void main() { int x[3][2][2]; cout for(int i=0;i for(int j=0;j for(int k=0;k cin>>x[j][k]; cout for(i=0;i for(int j=0;j for(int k=0;k cout } //end 2 لینک به دیدگاه
poor!a 15130 مالک اشتراک گذاری ارسال شده در 3 آذر، ۱۳۹۰ دوستانی که با کامپایلر Dev C++ کار کرده اند، حتما میدانند که این کامپایلر دو تابع مهم gotoxy و clrscr رو در خودش به صورت تعریف شده نداره. ولی میشه این دو رو تعریف کرد و حتی بعد از تعریف با فرمت .h ذخیره و به عنوان هدر فایل استفاده کرد. روش تعریف این دو در Dev C++ به شکل زیر است: #include #include using namespace std; void gotoxy(int x, int y) { HANDLE hConsoleOutput; COORD dwCursorPosition; cout.flush(); dwCursorPosition.X=x; dwCursorPosition.Y=y; hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleCursorPosition(hConsoleOutput, dwCursorPosition); } void clrscr() { system("cls"); } //end 2 لینک به دیدگاه
poor!a 15130 مالک اشتراک گذاری ارسال شده در 3 آذر، ۱۳۹۰ مقدار دهی اوّلیه به آرایه ی دو بعدی: آرایه ی دو بعدی را میتوان هنگام تعریف، مقداردهی اولیه نمود. در این حالت می توانیم برای هر سطر از {} استفاده کنیم که در صورت عدم استفاده، کامپایلر اقدام به چیدمان سطری عناصر آرایه می کند. مثال: int x[2][3] = {{1,2,3,}, {4,5,6}}; int x[2][3] = {{1,2}, {3}}; int x[2][3] = {1,2,3}; int x[2][3] = {{1,2,3,}, 7}; //end نکته: در صورتی که تعداد {} های استفاده شده داخل {} اصلی بیشتر از تعداد سطر ها باشد یا تعداد داده های داخل هر سطر ({}) بیشتر از تعداد ستون های آرایه و یا هنگام مقداردهی در حالتی که برای سطر ها {} قرار ندهیم، تعداد عناصر بیشتر از تعداد عناصر آرایه باشد، خطا داریم. خالی گذاشتن بعد ها در تعریف آرایه دو بعدی: فقط و فقط در آرایه ی دو بعدی زمانی که مقداردهی اولیه انجام میشود، میتوانیم بعد اول را خالی بگذاریم. اما در هر شرایطی باید بعد دوم مقداردهی شود. که در این صورت باید حتما عناصر آرایه مقداردهی اولیه شوند. مثال: int x[][3] = {1,2,3}; int x[][3] = {1,2,3,4}; //end 2 لینک به دیدگاه
poor!a 15130 مالک اشتراک گذاری ارسال شده در 3 آذر، ۱۳۹۰ تمرین از این به بعد به درخواست بعضی از دوستان، برخی تمارین کتاب آقای جعفرنژاد قمی را حل میکنیم: 35- برنامه ای بنویسید که با استفاده از حلقه های تو در تو، خروجی زیر را تولید کند: $$$$$$ $$$$$$ $$$$$$ $$$$$$ #include int main() { for(int i=0;i { for(int j=0;j cout cout } return 0; } //end 2 لینک به دیدگاه
poor!a 15130 مالک اشتراک گذاری ارسال شده در 3 آذر، ۱۳۹۰ تمرین یه تمرین با switch 36- برنامه ای بنویسید که یک عدد بین 1 تا 7 از ورودی گرفته و روز هفته مربوط به آن را در خروجی چاپ کند. #include int main() { int x; cout cin>>x; switch(x) { case 1: cout case 2: cout case 3: cout case 4: cout case 5: cout case 6: cout case 7: cout default: cout } return 0; } //end 2 لینک به دیدگاه
poor!a 15130 مالک اشتراک گذاری ارسال شده در 3 آذر، ۱۳۹۰ تمرین یه تمرین جالب با استفاده از for: 36- برنامه ای بنویسید که با استفاده از حلقه ها، خروجی زیر را چاپ کند: * ** *** **** ***** ****** #include int main() { for(int c=1;c { for(int i=1;i cout cout } return 0; } //end 2 لینک به دیدگاه
poor!a 15130 مالک اشتراک گذاری ارسال شده در 3 آذر، ۱۳۹۰ تمرین یه تمرین با حلقه ها و شرط ها: 37- برنامه ای بنویسید که عددی از ورودی گرفته و کامل بودن یا نبودن آن را چاپ کند. (عددی کامل است که مجموع مقسوم علیه های غیر از خودش برابر خود عدد باشند. مانند 6) #include int main() { int n, s=1; cout cin>>n; for(int i=2;i if((n%i)==0) s+=i; if(s==n) cout else cout return 0; } //end 2 لینک به دیدگاه
poor!a 15130 مالک اشتراک گذاری ارسال شده در 3 آذر، ۱۳۹۰ تمرین یه تمرین جالب با حلقه های تو در تو و شرط ها: 38- برنامه بنویسید که اعداد کامل کوچکتر از 10000 را چاپ کند. (عددی کامل است که مجموع مقسوم علیه های غیر از خودش برابر خود عدد باشند. مانند 6) #include int main() { int s; for(register long n=2;n { s=1; for(register i=2;i if((n%i)==0) { s+=i; if(s==n) cout } } return 0; } //end 2 لینک به دیدگاه
poor!a 15130 مالک اشتراک گذاری ارسال شده در 3 آذر، ۱۳۹۰ تمرین یه برنامه برای آسنایی با کاراکتر ها: 39- برنامه ای بنویسید که یک کاراکتر از ورودی گرفته و کد اسکی آن را چاپ نماید. #include int main() { char a; short int b; cout cin>>a; b=a; cout return 0; } //end 3 لینک به دیدگاه
poor!a 15130 مالک اشتراک گذاری ارسال شده در 3 آذر، ۱۳۹۰ تمرین 40- یکی از دودستان یه برنامه خواسته بودن که ماشین حساب کامل مهندسی باشه و علاوه بر داشتن فاکتوریل، جذر، توان، نسبت های مثلثاتی و ... بتونه این عملیت رو با چند عدد انجام بده. مثلا جمع سه عدد خب مطمئنا این برنامه ی ساده ای نمیتونه باشه و هنوز بعضی قسمت هاش رو درس ندادم. با این وجود کد برنامه رو براتون میزارم، داخل خود کد توضیحات رو نوشتم ولی بازم اگه سوالی بود در خدمتم. فقط بگم که این برنامه برای Dev c++ نوشته شده و در کامپایلر های قدیمی turbo و borland باید کمی تغییرش بدین! # include # include using namespace std; void help(); //in tabe be onvane help baraye amalgar ha mibashad barname ast; int fact (float a); //in tabe factoryel ra hesab mikonad void error(); //in tabe peyghame khata ra chap mikonad int main(){ float result,zakhire ,a[50]; char b; int flag=0,resultint, aint; for (int i=1; i if (i==1) { help(); cout cin>>result; i+=1;} do{ do{ system("cls"); help(); cout cout cin>>b; }while (b!='f' && b!='l'&& b!='z'&& b!='b'&& b!='c'&& b!='+'&& b!='m'&& b!='n'&& b!='-'&& b!='*'&& b!='/'&& b!='o'&& b!='s'&& b!='r'&&b!='q'&& b!='p'&& b!='\\'); flag=3; if (b=='\\'){ if (result!=floor(result)){ error(); flag=2; }//end if }//end if }while(flag==2); //*/ switch (b){ case 'r': i=0; system("cls"); continue; case 'f': result= fact(result); continue; case 's': result=sin(3.1416/(180/result)); resultint=result*100; result=resultint*1./100; continue; case 'o': result=cos(3.1416/(180/result)); resultint=result*100; result=resultint*1./100; continue; case 'm': resultint=result; if(resultint%180!=90){ result=3.1416/(180/result); result=tan(result); resultint=result*100; result=resultint*1./100;}//end if else error(); continue; case 'n': resultint=result; if(resultint%180!=0){ result=3.1416/(180/result); result=1/(tan(result)); resultint=result*100; result=resultint*1./100;}//end if else error(); continue; case 'z': zakhire=result; continue; case 'b': result=zakhire; continue; case 'l': if(result>0) result=log10(result); else error(); continue; }//end switch if (b=='c') break; //end for*/ system("cls"); help(); cout cout cin>>a; switch(b){ case '+': result+=a ;break; case '-': result -= a; break; case '*': result *= a; break; case '/': if (a==0){ error(); break; } else{ result/=a; break;} case 'p': result= pow(result,a); break; case 'q': result=pow(result, 1/a); break; case '\\': resultint=result; aint=a; if (a==floor(a)){ result = resultint%aint; break; }//end if else{ error(); break; }//end else }//end switch }//end for return 0; }//end main void help(){ cout cout couthttp://Http://cplusprogram.tk \\\\" cout cout cout cout cout cout cout cout cout [*] ;example(2*3=6)" cout cout cout cout cout cout cout cout cout cout cout }//end help int fact (float a){ int b=a, result=1; for (int i=2; i result*=i; }//end for return result; }//end fact void error(){ system("cls"); cerr system("pause"); }//end error //end 2 لینک به دیدگاه
poor!a 15130 مالک اشتراک گذاری ارسال شده در 3 آذر، ۱۳۹۰ آرایه های دو بعدی به عنوان آرگومان تابع: برای ارسال آرایه های دو بعدی به عنوان آرگومان یک تابع باید نام تابع به عنوان آرگومان ذکر شود و برای تعریف پارامتر معادل آن باید مانند آرایه یک بعدی عمل کرد. در حالتی که در آرایه یک بعدی پارامتر به صورت آرایه بدون طول ذکر می شد، در آرایه دو بعدی طول سطر ذکر نمی شود ولی طول ستون حتما باید ذکر شود و در این حالت طول سطر به عنوان آرگومان دیگری به تابع ارسال میشود. شکل کلی ارسال آرایه دو بعدی به یک تابع: void f1(int a[5][10]); void f2(int a[][10], int); int main() { int a[5][10]; ... f1(a); f2(a,5); ... return 0; } void f1(int a[5][10]) { ... } void f2(int x[][10], int row) { ... } //end 2 لینک به دیدگاه
poor!a 15130 مالک اشتراک گذاری ارسال شده در 3 آذر، ۱۳۹۰ این برنامه ابتدا مقادیر دو آرایه ی یک بعدی با 3 عنصر را از ورودی گرفته و حاصل جمع عناصر آرایه را با استفاده از تابعی در یک آرایه ی دیگر ریخته و در خروجی نمایش میدهد. #include void sum(int x[], int y[], int len, int out[]) { for(int i=0;i out=x+y; } void main() { int x[3], y[3], z[3]; cout for(int i=0;i cin>>x; for(i=0;i cin>>y; sum(x,y,3,z); cout for(i=0;i cout } //end 2 لینک به دیدگاه
poor!a 15130 مالک اشتراک گذاری ارسال شده در 3 آذر، ۱۳۹۰ تابع جمع عناصر دو آرایه یک بعدی که از نظر تعداد عناصر با هم برابرند. در این تابع len طول آرایه ها و out آرایه ای است که جمع آرایه ها در آن ریخته میشود. void arraysum(int x[], int y[], int len, int out[]) { for(int i=0;i out=x+y; } //end 1 لینک به دیدگاه
poor!a 15130 مالک اشتراک گذاری ارسال شده در 3 آذر، ۱۳۹۰ این برنامه ابتدا مقادیر دو آرایه ی یک بعدی با 3 عنصر را از ورودی گرفته و حاصل ضرب عناصر آرایه را با استفاده از تابعی در یک آرایه ی دیگر ریخته و در خروجی نمایش میدهد. #include void arraymultiply(int x[], int y[], int len, int out[]) { for(int i=0;i out=(x*y); } void main() { int x[3], y[3], z[3]; for(int i=0;i cin>>x; for(i=0;i cin>>y; arraymultiply(x,y,3,z); for(i=0;i cout } //end 2 لینک به دیدگاه
poor!a 15130 مالک اشتراک گذاری ارسال شده در 3 آذر، ۱۳۹۰ تابع ضرب عناصر دو آرایه یک بعدی که از نظر تعداد عناصر با هم برابرند. در این تابع len طول آرایه ها و out آرایه ای است که ضرب آرایه ها در آن ریخته میشود: void arraymultiply(int x[], int y[], int len, int out[]) { for(int i=0;i out=(x*y); } //end 2 لینک به دیدگاه
poor!a 15130 مالک اشتراک گذاری ارسال شده در 3 آذر، ۱۳۹۰ این برنامه از کد اسکی 0 شروع کرده و کاراکتر مربوطه را تایپ میکند و تا 127 ادامه دارد: #include void main() { char a; cout for(int b=0;b { a=b; cout } } //end 2 لینک به دیدگاه
poor!a 15130 مالک اشتراک گذاری ارسال شده در 3 آذر، ۱۳۹۰ برنامه ای که عددی از ورودی گرفته و یک لوزی با طول ضلع عدد ورودی با استفاده از * چاپ نماید. #include void main() { int x,y,c=1; cout cin>>x; y=x; while(x>0) { for(int s=0;s cout for(s=c;s>0;s--) cout c+=2; x--; cout } c-=4; x=(y-1); while(x>0) { for(int s=y;s>=x;s--) cout for(s=c;s>0;s--) cout c-=2; x--; cout } } //end 2 لینک به دیدگاه
poor!a 15130 مالک اشتراک گذاری ارسال شده در 3 آذر، ۱۳۹۰ [h=2]سورس برنامه ی هشت وزیر برای Turbo C++[/h] این برنامه که برای کامپایل کردن در Turbo C++ نوشته شده، طول اضلاع صفحه شطرنج و تعداد وزیر ها رو گرفته و سپس به کمک توابع بازگشتی، تمامی حالات قرار گرفتن اونها رو طوری که یکدیگر رو تهدید نکنند، با زدن یک کلید نمایش میده. #include #include #include #include #include using namespace std; const int m=20; int k[m][m]; int Count=0; int v=0 , n=0 , i=0 , j=0 , state=0; void remove(int i,int j) { int p,q; k[j]=0; Count--; for(p=0;p if(p!=i) k[p][j]--; for(p=0;p if(p!=j) k[p]--; p=i+1; q=j+1; while(p { k[p++][q++]--; } p=i-1; q=j-1; while(p>=0 && q>=0) { k[p--][q--]--; } p=i+1; q=j-1; while(p=0) { k[p++][q--]--; } p=i-1; q=j+1; while(p>=0 && q { k[p--][q++]--; } } int apply(int i,int j) { int p,q; k[j]=1; Count++; for(p=0;p if(p!=i) k[p][j]++; for(p=0;p if(p!=j) k[p]++; p=i+1; q=j+1; while(p { k[p++][q++]++; } p=i-1; q=j-1; while(p>=0 && q>=0) { k[p--][q--]++; } p=i+1; q=j-1; while(p=0) { k[p++][q--]++; } p=i-1; q=j+1; while(p>=0 && q { k[p--][q++]++; } } void draw() { system("cls"); for(int p=0;p { for(int q=0;q { if(k[p][q]!=1) cout else cout } cout } cout } void check() { if(Count==v) { state++; draw(); cout int c=getch(); if(c=='q')exit(0); } } void move(int p,int q) { apply(p,q); check(); for(int i=p;i { for(int j=0;j if(k[j]==0) move(i,j); } remove(p,q); } int main() { cout cout cin>>n; cout cin>>v; system("cls"); draw(); for(i=0;i for(j=0;j move(i,j); system("cls"); cout getch(); return 0; } //end 2 لینک به دیدگاه
ارسال های توصیه شده