رفتن به مطلب

برنامه نویسی c++ - آموزش و سورس برنامه ی سی پلاس پلاس


poor!a

ارسال های توصیه شده

تمرین

 

یه مثال ساده از آرایه یک بعدی:

 

32- برنامه ای بنویسید که با استفاده از آرایه های یک بعدی، 10 عدد از ورودی خوانده و با فرمت مناسب در خروجی چاپ کند.

#include

 

void main()

{

int x[10];

cout

for(register i=0;i

cin>>x;

cout

for(i=0;i

cout

}

 

 

//end

  • Like 2
لینک به دیدگاه
  • پاسخ 172
  • ایجاد شد
  • آخرین پاسخ

بهترین ارسال کنندگان این موضوع

بهترین ارسال کنندگان این موضوع

تمرین

 

اینم یک مثال از آرایه دو بعدی:

 

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

  • Like 2
لینک به دیدگاه

تمرین

 

برای اینکه با آرایه های دارای بیش از دو بعد هم آشنا بشید، یه مثال از آرایه های سه بعدی میزنم:

 

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

  • Like 2
لینک به دیدگاه

دوستانی که با کامپایلر 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

  • Like 2
لینک به دیدگاه

مقدار دهی اوّلیه به آرایه ی دو بعدی:

 

آرایه ی دو بعدی را میتوان هنگام تعریف، مقداردهی اولیه نمود. در این حالت می توانیم برای هر سطر از {} استفاده کنیم که در صورت عدم استفاده، کامپایلر اقدام به چیدمان سطری عناصر آرایه می کند.

 

مثال:

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

  • Like 2
لینک به دیدگاه

تمرین

 

از این به بعد به درخواست بعضی از دوستان، برخی تمارین کتاب آقای جعفرنژاد قمی را حل میکنیم:

 

35- برنامه ای بنویسید که با استفاده از حلقه های تو در تو، خروجی زیر را تولید کند:

$$$$$$

$$$$$$

$$$$$$

$$$$$$

 

#include

 

int main()

{

for(int i=0;i

{

for(int j=0;j

cout

cout

}

return 0;

}

 

 

//end

  • Like 2
لینک به دیدگاه

تمرین

 

یه تمرین با 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

  • Like 2
لینک به دیدگاه

تمرین

یه تمرین جالب با استفاده از for:

 

36- برنامه ای بنویسید که با استفاده از حلقه ها، خروجی زیر را چاپ کند:

*

**

***

****

*****

******

#include

 

int main()

{

for(int c=1;c

{

for(int i=1;i

cout

cout

}

return 0;

}

 

 

//end

  • Like 2
لینک به دیدگاه

تمرین

 

یه تمرین با حلقه ها و شرط ها:

 

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

  • Like 2
لینک به دیدگاه

تمرین

یه تمرین جالب با حلقه های تو در تو و شرط ها:

 

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

  • Like 2
لینک به دیدگاه

تمرین

 

یه برنامه برای آسنایی با کاراکتر ها:

 

39- برنامه ای بنویسید که یک کاراکتر از ورودی گرفته و کد اسکی آن را چاپ نماید.

#include

 

int main()

{

char a;

short int b;

cout

cin>>a;

b=a;

cout

return 0;

}

 

 

//end

  • Like 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

  • Like 2
لینک به دیدگاه

آرایه های دو بعدی به عنوان آرگومان تابع:

 

برای ارسال آرایه های دو بعدی به عنوان آرگومان یک تابع باید نام تابع به عنوان آرگومان ذکر شود و برای تعریف پارامتر معادل آن باید مانند آرایه یک بعدی عمل کرد.

در حالتی که در آرایه یک بعدی پارامتر به صورت آرایه بدون طول ذکر می شد، در آرایه دو بعدی طول سطر ذکر نمی شود ولی طول ستون حتما باید ذکر شود و در این حالت طول سطر به عنوان آرگومان دیگری به تابع ارسال میشود.

 

شکل کلی ارسال آرایه دو بعدی به یک تابع:

 

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

  • Like 2
لینک به دیدگاه

این برنامه ابتدا مقادیر دو آرایه ی یک بعدی با 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

  • Like 2
لینک به دیدگاه

تابع جمع عناصر دو آرایه یک بعدی که از نظر تعداد عناصر با هم برابرند. در این تابع len طول آرایه ها و out آرایه ای است که جمع آرایه ها در آن ریخته میشود.

 

void arraysum(int x[], int y[], int len, int out[])

{

for(int i=0;i

out=x+y;

}

 

//end

  • Like 1
لینک به دیدگاه

این برنامه ابتدا مقادیر دو آرایه ی یک بعدی با 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

  • Like 2
لینک به دیدگاه

تابع ضرب عناصر دو آرایه یک بعدی که از نظر تعداد عناصر با هم برابرند. در این تابع len طول آرایه ها و out آرایه ای است که ضرب آرایه ها در آن ریخته میشود:

 

void arraymultiply(int x[], int y[], int len, int out[])

{

for(int i=0;i

out=(x*y);

}

 

//end

  • Like 2
لینک به دیدگاه

این برنامه از کد اسکی 0 شروع کرده و کاراکتر مربوطه را تایپ میکند و تا 127 ادامه دارد:

 

#include

 

void main()

{

char a;

cout

for(int b=0;b

{

a=b;

cout

}

}

 

//end

  • Like 2
لینک به دیدگاه

برنامه ای که عددی از ورودی گرفته و یک لوزی با طول ضلع عدد ورودی با استفاده از * چاپ نماید.

 

#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

  • Like 2
لینک به دیدگاه

[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

  • Like 2
لینک به دیدگاه

×
×
  • اضافه کردن...