رفتن به مطلب

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


poor!a

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

[h=2]سورس برنامه ی هشت وزیر برای Dev C++[/h]

 

این برنامه که برای کامپایل در Dev C++ نوشته شده، طول اضلاع صفحه شطرنج و تعداد وزیر ها رو گرفته و سپس به کمک توابع بازگشتی، تمامی حالات قرار گرفتن اونها رو طوری که یکدیگر رو تهدید نکنند، با زدن یک کلید نمایش میده.

#include

#include

#include

#include

 

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++]++;

}

return 0;

}

 

void draw()

{

clrscr();

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;

clrscr;

draw();

for(i=0;i

for(j=0;j

move(i,j);

 

clrscr;

cout

getch();

return 0;

}

 

 

//end

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

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

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

تمرین

 

برنامه ای ساده با حلقه و شرط

 

41- برنامه ای بنویسید که یک عدد از ورودی گرفته و تمام مقسوم علیه های آن را با فرمت مناسبی در خروجی نمایش دهد.

#include

#include

 

int main()

{

int a, b=1, c;

cout

cin>>a;

cout

while(b

{

c=a%b;

if(c==0)

cout

b++;

}

cout

getch();

return b;

}

 

 

//end

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

برنامه ی بدست آوردن تمام زیر مجموعه های n عضوی یک مجموعه با استفاده از توابع

#include

#include

#include

 

using namespace std;

 

int **m;

long q=0;

long num=0;

long number=0;

 

long fact( long n )

{

return ( n > 0 ? n*fact(n-1) : 1 );

}

 

long C( long n , long r )

{

return ( fact(n)/(fact®*fact(n-r)) );

}

 

bool isPrinted(int *a, long n)

{

bool is=true;

for(long i=0;i

{

is=true;

for(long j=0;j

{

if(a[j]!=m[j])

{

is=false;

}

}

if(is)return true;

}

return false;

}

 

void print(int *a,long n)

{

int swap=0;

for(long i=0;i

{

for(long j=i;j

{

if(a[j]

{

swap=a;

a=a[j];

a[j]=swap;

}

}

}

if(!isPrinted(a,n))

{

number++;

cout

for(long i=0;i

{

cout

m[q]=a;

if(i!=n-1)

{

cout

}

}

q++;

cout

}

}

 

void printAll(int *a,int *b,long n,long k)

{

if(q

{

if(k==1)

{

print(a,n);

}

if(k==0)

{

print(a,n);

}

else if(k>0)

{

int *c, *d;

long p=0;

for(long j=0;j

{

p=0;

c=new int[k-1];

for(long t=0;t

{

if(t!=j)

{

c[p]=b[t];

p++;

}

}

d=new int[n];

for(long i=-1;i

{

for(long t=0;t

{

d[t]=a[t];

}

if(i!=-1)

{

d=b[j];

}

printAll(d,c,n,k-1);

}

}

delete c , d;

}

}

}

 

int main()

{

time_t start , end;

long n = 0 , k = 0;

cout

cin>>n;

cout

cin>>k;

cout

int *a=new int[n];

for(long i=0;i

{

cin>>a;

}

int *b=new int[k];

int *c=new int[n-k];

for(long i=0;i

{

if(i

{

b=a;

}

else

{

c[n-i-1]=a;

}

}

system("cls");

cout

for( long i = 0 ; i

{

cout

if( i != n-1 )

cout

}

cout

num=C(n,k);

m=new int*[C(n,k)];

for(long i=0;i

{

m=new int[k];

}

printAll(b,c,k,n-k);

delete a , b , c;

getch();

return 0;

}

 

 

//end

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

[h=2]الگوریتم و سورس برج هانوی در c++ (سی پلاس پلاس)[/h]

 

Tower_of_Hanoi_4.gif

 

سورس برنامه ی معروف برج هانوی البته بصورت تکستی و غیر ویژوال که طرز کار آن از شکل بالا پیداست.

 

 

/*

Sepehr Mohammad

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

Algorithmic solution is as follows

 

1) if TopN==1, move the single disc from A to C and stop.

2) Move the top n-1 discs from A to B, using C as Inter.

3) Move the remaining disc from A to C.

4) Move the n-1 discs from B to C, using A as destination(dest).

*/

 

#include

#include

#include

 

void tower(int,char,char,char); /*prototype*/

int main()

{

int ndisk;

clrscr();

cout

cin>>ndisk;

tower(ndisk,'A','B','C'); /*Calling Function*/

getch();

return 0;

 

} /* End of program */

 

/********************************************/

 

// src = Source | aux = Auxiliry | dest = Destination

void tower(int topN, char src,char aux,char dest)

{

if(topN == 1)

{

cout

}

else

{

tower(topN-1,src,dest,aux); //src to aux

cout

tower(topN-1,aux,src,dest); //aux to dest

}

}

 

 

//end

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

برنامه بدست آوردن تمام زیر مجموعه های یک مجموعه (هر تعداد عضو) با استفاده از توابع

#include

#include

#include

 

int power(int a,int b)

{

int k=1;

for(int i=0;i

k=a*k;

return k;

}

void print(char aray[][10],int s1,int ar[],int s2)

{

int h=1;

for(int i=0;i

{

cout

for(int j=0;j

{

if(aray[j]=='1')

{

cout

}

}

cout

h++;

}

}

int main()

{

int size;

cout

cin>>size;

int ar[10];

cout

for(int i=0;i

cin>>ar;

cout

for(i=1;i

cout

cout

int s1;

s1=power(2,size);

char aray[50][10];

strcpy(aray[0],"0");

strcpy(aray[1],"1");

cout

int b=0;

int j=0;

while(power(2,j+1)

{

b=0;

j++;

for(int i=0;i

{

for(int l=0;l

{

if(l==0)

{

strcpy(aray[b+power(2,j)],aray);

strcat(aray[b+power(2,j)],"0");

}

else

strcat(aray,"1");

}

b++;

}

}

print(aray,s1,ar,size);

return 0;

}

 

 

//end

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

تعریف رشته ها:

 

رشته ها در زبان c++ به سه شکل زیر تعریف و معرفی میشوند:

1.آرایه کاراکتری(رشته محدود)

2.اشاره گر کاراکتری (رشته ی نا محدود)(در جلسات آینده با فراگیری اشاره گر ها کاملا با این موضوع آشنا خواهید شد)

3.کلاس استاندارد string (در جلسه آینده)

 

مثال:

char s[10];

char s[5][10];

 

//end

 

نکته: در زبان C++، انتها ی رشته عدد 0 یا کاراکتر '\0' یا 'x0' قرار دارد و علامت پایان رشته جزو طول رشته خواهد بود ولی قابل استفاده نیست. یعنی هنگامی که داشته باشیم:

 

char ch[10];

 

//end

فقط می توانیم از 9 کاراکتر در رشته ی فوق استفاده کنیم زیرا کاراکتر آخر مربوط به علامت انتهای رشته به نام تهی(NULL) است.

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

PascalTriangleAnimated2.gif

 

سورس برنامه ی مثلث خیام یا مثلث پاسکال که در آن هر خانه حاصل جمع دو خانه ی بالایش است.

#include

#include

 

int *charger(int *x , int *y)

{

for(int i=1;i

{

y=x[i-1]+x;

}

return y;

}

 

int main()

{

cout

int rows=0;

int *a=new int[100];

int *b=new int[100];

for(int i=0;i

{

a=0;

b=0;

}

char answer='u';

error:

cout

cin>>rows;

if(rows>34)

{

cout

cout

cout

cout

cin>>answer;

if(answer=='y')

{

goto error;

}

 

}

a[1]=1;

cout

while(rows>0)

{

for(int i=1;i

{

if(a!=0)

cout

else

break;

}

b=charger(a,b);

cout

rows--;

if(rows>0)

{

for(int i=1;i

{

if(b!=0)

cout

else

break;

}

cout

rows--;

a=charger(b,a);

}

}

 

 

getch();

return 0;

}

 

 

//end

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

تمرین

 

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

 

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

#include

 

void main()

{

int c=0,x;

register j;

cout

cin>>x;

cout

for(register int i=3;i

{

for(j=2;j

if((i%j)==0)

{

c=1;

break;

}

if(c==0)

cout

c=0;

}

}

 

 

//end

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

سورس بازی "سنگ کاغذ قیچی" به زبان c++ و غیر ویژوال

#include

#include

#include

 

#define WINSCORE 3

 

// Function PickRandomOption

// * Returns a random character between 's', 'x', and 'p'

char PickRandomOption (void)

{

char option;

srand ( time (NULL) ); // (re)initialize random number generator

int value = rand()%3; // Generate random number between 0 and 2

 

switch (value) {

case 0: option='s'; break;

case 1: option='x'; break;

case 2: option='p'; break;

}

return option;

}

 

// Function WhoWins

// * check which of the characters passed wins.

// return values:

// 0= tie, 1=the first, 2=the second, -1=error

int WhoWins (char a, char b)

{

switch (a)

{

case 's':

if (b=='x') return 1;

else if (b=='p') return 2;

else return 0;

case 'x':

if (b=='p') return 1;

else if (b=='s') return 2;

else return 0;

case 'p':

if (b=='s') return 1;

else if (b=='x') return 2;

else return 0;

default:

return -1;

}

// NOTE: no break instructions were included in this switch statement

// because a break instruction at the end of a case would never

// been executed because there would always be a return statement

// executed before.

// For the same reason this peculiar function has no explicit ending

// return statement.

}

 

main ()

{

char you, me;

int mypoints=0;

int yourpoints=0;

int winner;

 

do {

//prompt user.

cout

cout

cin >> you;

 

//decide computer's option and say it

me = PickRandomOption();

cout

 

// check who is the winner

winner = WhoWins (you,me);

 

// show appropiate message:

if (winner==0) cout

else if (winner==1) { cout

else if (winner==2) { cout

else cout

 

// show current scoreboard.

cout

cout

 

} while (yourpoints

 

if (yourpoints>mypoints) cout

else cout

return 0;

}

 

 

//end

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

مقدار دهی اولیه به آرایه های کاراکتری:

 

برای مقدار دهی اولیه به آرایه های کاراکتری دو روش وجود دارد:

1.

 

char ch[4] = "ali";

 

char ch[] = "computer";

 

//end

 

2.

char ch[8] = {'p','r','o','g','r','a','m','\0'};

 

char ch[] = {'a','l','i','\0'};

 

//end

ورودی - خروجی رشته ها:

قبلا دستورات cin و cout را برای ورودی و خروجی داده ها بررسی کرده ایم. از همین دستورات می توان برای ورودی - خروجی رشته ها استفاده کرد. در دستورات زیر cin رشته ی ch را می خواند و cout آن را در صفحه نمایش میدهد:

 

char ch[31];

cin>>ch;

cout

 

//end

 

خواندن رشته ها با تابع get():

get یک تابع عضو(Member Function) شی(Object) ورودی cin است و کاربرد های مختلفی دارد:

1. کاربرد cin.get() برای خواندن یک کاراکتر:

char ch;

ch=cin.get();

 

//end

 

2. کاربرد cin.get() برای خواندن رشته ها:

1)cin.get(نام رشته, طول رشته);

2)cin.get(نام رشته, طول رشته, 'جدا کننده');

//end

مثال:

 

char x[20];

cin.get(8,15);

cin.get(5,15,'.');

 

//end

 

تقاوت cin و cin.get() در خواندن رشته ها:

در دستور cin.get فقط کلید Enter، انتهای رشته را مشخص میکند، مگر اینکه برنامه نویس کاراکتر دیگری را برای این منظور مشخص کند. در این دستور رشته میتواند حاوی فاصله(Space) و یا Tab باشد. در حالی که در دستور cin، فاصله(Space) و Tab نیز به عنوان جدا کننده تلقّی شده، انتهای رشته را مشخص می کنند.

 

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

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

 

چون رشته ها در زبان C++ همان آرایه های یک بعدی است که از نوع کاراکتری است. شیوه ی ارسال رشته ها به توابع همانند آرایه است، یعنی در آرگومان تابع نام رشته ذکر میشود و پارامتر معادل آن میتواند آرایه ای از کاراکتر ها با طول معیّن باشد.

 

شکل کلی:

void f1(char []);

int main()

{

char s[21];

...

f1(s);

return 0;

}

 

void f1(char s[])

{

...

}

 

//end

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

تمرین

 

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

 

43- برنامه ای بنویسید که با استفاده از حلقه ها، یک جدول ضرب 10*10 نمایش دهد.

#include

int main()

{

for(int i=1; i

{

for (int j=1; j

cout

cout

}

return 0;

}

 

 

//end

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

تمرین

 

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

 

44- برنامه ای بنویسید که یک متن از ورودی گرفته(انتهای متن Enter باشد) و تعداد کاراکتر های استفاده شده در آن را نمایش دهد.(با حداکثر 2 متغیر)

#include

#include

 

void main()

{

int c=-1;

char ch;

cout

do

{

ch=getche();

c++;

}while(ch!=13);

cout

}

 

 

//end

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

اینم سورس برنامه ی معروف کوله پشتی به زبان C++

 

#include

#include

#include

void sortbypw(int p[],int w[],int n)

{

int i,t,j;

for (i=0;i

for (j=i+1;j

if(((float)p/w)

{

t=p;

p=p[j];

p[j]=t;

t=w;

w=w[j];

w[j]=t;

}

}

 

float knapsack(int p[],int w[],int n,int m)

{

sortbypw(p,w,n);

int w1=m;

int i=0;

float pp=0;

while (i0)

{

if (w

{

cout

w1-=w;

pp+=p;

i++;

}

else

{

cout

pp+=w1*((float)p/w);

w1=0;

}

}

return pp;

}

 

void main()

{

int p[100]={6,12,7,18,9,30};

int w[100]={1,5,3,9,5,20};

clrscr();

cout

char ch=getche();

if (ch=='n')

cout

else

{

int n,m;

cout

cin>>m;

cout

cin>>n;

for (int i=0;i

{

cout

cin>>p;

cout

cin>>w;

gotoxy(20,wherey()-2);

cout

gotoxy(1,wherey()+2);

cout

}

cout

}

getch();

}

 

//end

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

به در خواست یکی از دوستان الگوریتم پیچیده و کارآمد کد گذاری هافمن رو میزارم.

 

 

#include

#include

#include

#include

#include

 

struct treenode{

int data;

int num;

treenode *next;

treenode *right;

treenode *left;

}*start=NULL,*end=NULL,*p;

 

struct code{

char bcode[12];

int ch;

}coding[256];

 

struct tree{

int data;

int num;

}atree[512];

 

int o=0;

 

int search(int i);

void insert(int i);

void insertm(struct treenode *l);

void sort();

void create();

void binary(struct treenode *n,char byte[],int i);

int searchc(int i);

void write();

void read();

void tree(struct treenode *n,int i);

int numnode=0;

int numchar=0;

char filename[25];

 

void main()

{

clrscr();

FILE *fp1,*fp2;

 

cout

cin>>filename;

fp1=fopen(filename,"r+b");

if (fp1==NULL)

{

cout

getch();

exit(1);

}

int i=getc(fp1);

while (i!=-1)

{

numchar++;

if (search(i)==-1)

insert(i);

i=getc(fp1);

}

fclose(fp1);

sort();

create();

char byte[20]={0};

binary(start,byte,0);

tree(start,1);

write();

cout

read();

cout

getch();

}

//*************************search******************************

int search(int i)

{

struct treenode *h;

h=start;

while(h)

{

if (h->data==i)

{

h->num=h->num+1;

return 0;

}

h=h->next;

}

return -1;

}

//**************************insert******************************

void insert(int i)

{

p=new treenode;

p->data=i;

p->num=1;

p->right=p->left=p->next=NULL;

if (start==NULL)

{

start=p;

end=p;

}

else

{

end->next=p;

end=p;

} }

//******************************Sort*******************

void sort()

{

struct treenode *h1,*h2,*n2,*right,*left;

int d,n;

n2=start;

while(n2)

{ h1=start;

h2=start->next;

while(h2)

{

if (h1->num > h2->num)

{

d=h1->data;

n=h1->num;

right=h1->right;

left=h1->left;

h1->data=h2->data;

h1->num=h2->num;

h1->right=h2->right;

h1->left=h2->left;

h2->data=d;

h2->num=n;

h2->right=right;

h2->left=left;

}

h1=h2;

h2=h2->next;

}

n2=n2->next;

} }

//****************Create*******************************

void create()

{

struct treenode *h;

while (start->next)

{

int i1,i2;

p=new treenode;

p->left=start;

p->right=start->next;

p->num=start->num+start->next->num;

p->data=-1;

p->next=NULL;

h=start;

start=start->next->next;

h->next->next=NULL;

h->next=NULL;

insertm(p);

sort();

}}

//********************Insertm****************************

void insertm(struct treenode *l)

{

if (start==NULL)

{

start=l;

end=l;

}

else

{

end->next=l;

end=l;

} }

//********************Binary****************************

void binary(struct treenode *n,char byte[],int i)

{

if (n->data==-1)

{

char b1[20]={0},b2[20]={0};

strcpy(b1,byte);

strcpy(b2,byte);

b1='1';

binary(n->right,b1,i+1);

b2='0';

binary(n->left,b2,i+1);

}

else

{

coutdata

strcpy(coding[o].bcode,byte);

coding[o++].ch=n->data;

}

}

//*********************Coding*******************************

void write()

{

FILE *fp1,*fp2;

fp1=fopen(filename,"r+b");

fp2=fopen("Code.txt","w+b");

//**************************************************************

int i=1;

while (i

{

fprintf(fp2,"%d",atree.data);

i++;

}

//*****************************************************************

i=getc(fp1);

int j=0,place=1;

unsigned char bytebuf=0;

while (i!=-1)

{

j=searchc(i);

int y=0;

while (coding[j].bcode[y]) {

if (coding[j].bcode[y]=='1')

bytebuf |= place;

 

if (place==128)

{

putc(bytebuf,fp2);

place=1;

bytebuf=0;

}

else

place

y++;

}

i=getc(fp1);

}

if (place

fclose(fp1);

fclose(fp2);

}

//********************searchcode***************************

int searchc(int i)

{

int j=0;

while (j

if (coding[j].ch==i)

return j;

else

j++;

}

//**********************Encode*****************************

void read()

{

FILE *fp1,*fp2;

fp1=fopen("Decode.txt","w+b");

fp2=fopen("Code.txt","r+b");

//************************************************

int i=1,a;

while (i

{

fscanf(fp2,"%d",&a);

i++;

}

//************************************************

i=getc(fp2);

int j=0,place=1;

struct treenode *n;

unsigned char bytebuf=0;

while (i!=-1)

{

n=start;

while (n->data==-1)

{

int x=(place & i)?1:0;

if (x==1)

n=n->right;

else

n=n->left;

if (place==128)

{i=getc(fp2);

place=1; }

else

place

}

if (j++

putc(n->data,fp1);

}

fclose(fp1);

fclose(fp2);

}

//*********************************************************

void tree(struct treenode *n,int i)

{

atree.data=n->data;

atree.num=n->num;

numnode=i;

if (n->left!=NULL)

tree(n->left,2*i);

if (n->right!=NULL)

tree(n->right,2*i+1);

}

 

 

//end

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

رشته هایی که تا اینجا بر روی آنها بحث کردیم، به رشته های زبان C معروف هستند، چرا که از زبان C به C++ انتقال یافته اند. هم چنین هیچ یک از عملگر های C++ بر روی رشته های C عمل نمی کنند. اما در C++ استاندارد کلاسی با نام string در سرفایل string.h یا cstring.h فراهم شده تا بسیاری از عملیات روی رشته هایی که بصورت آرایه ای از کاراکتر ها هستند را تسهیل کند.

 

تعریف رشته ای از نوع string:

تعریف رشته از نوع string بسیار آسان و به صورت کلی زیر است:

 

;نام رشته string

چنانکه در دستور فوق مشاهده میکنید، در هنگام تعریف اینگونه رشته ها طول رشته به هیچ عنوان ذکر نمیشود و مدیریت حافظه از نظر میزان فضای لازم برای یک رشته به عهده ی خود کامپایلر میباشد.

 

مقدار دهی به رشته های string:

1.می توان رشته را بهصورت مستقیم مقدار دهی اولیه کرد:

 

string str="Hello";

//end

2.می توان رشته را به واسطه ی رشته ی دیگری مقدار دهی کرد:

char s[]="Hello";

string str=s;

 

string s1="Hello";

string s2=s1;

 

//end

 

هم چنین می توان رشته ای از نوع string را در هر کجای برنامه به رشته ی دیگری با طول متفاوت مقدار دهی کرد و چنانچه پیشتر گفته شد، مدیریت حافظه از نظر طول رشته بر عهده ی برنامه نویس نیست.

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

این برنامه با استفاده از ساختار ها ابتدا یک عدد به عنوان عدد اتمی گرفته و اتم مربوط به آن عدد اتمی را نمایش میدهد.

//build a struct for elements

#include

#include

 

 

struct Element

{

int atomicNumber;

char* name;

}; // end struct Element

 

void setData(int a , Element &e)

{

e.atomicNumber=a;

switch(a)

{

case 1 : e.name="Hydrogen";break;

case 2 : e.name="Helium";break;

case 3 : e.name="Lithium";break;

case 4 : e.name="Beryllium";break;

case 5 : e.name="Boron";break;

case 6 : e.name="Carbon";break;

case 7 : e.name="Nitrogen";break;

case 8 : e.name="Oxygen";break;

case 9 : e.name="Flourine";break;

case 10 : e.name="Neon";break;

case 11 : e.name="Sodium";break;

case 12 : e.name="Magnesium";break;

case 13 : e.name="Aluminium";break;

case 14 : e.name="Silicon";break;

case 15 : e.name="Phosphorus";break;

case 16 : e.name="Sulfur";break;

case 17 : e.name="Chlorine";break;

case 18 : e.name="Argon";break;

case 19 : e.name="Potassium";break;

case 20 : e.name="Calcium";break;

case 21 : e.name="Scandium";break;

case 22 : e.name="Titanium";break;

case 23 : e.name="Vanadium";break;

case 24 : e.name="Chromium";break;

case 25 : e.name="Manganese";break;

case 26 : e.name="Iron";break;

case 27 : e.name="Cobalt";break;

case 28 : e.name="Nickel";break;

case 29 : e.name="Copper";break;

case 30 : e.name="Zinc";break;

case 31 : e.name="Gallium";break;

case 32 : e.name="Germanium";break;

case 33 : e.name="Arsenic";break;

case 34 : e.name="Selenium";break;

case 35 : e.name="Bromine";break;

case 36 : e.name="Krypton";break;

case 37 : e.name="Rubidium";break;

case 38 : e.name="Strontium";break;

case 39 : e.name="Yttrium";break;

case 40 : e.name="Zirconium";break;

case 41 : e.name="Niobium";break;

case 42 : e.name="Molybdenum";break;

case 43 : e.name="Technetium";break;

case 44 : e.name="Ruthenium";break;

case 45 : e.name="Rhodium";break;

case 46 : e.name="Palladium";break;

case 47 : e.name="Silver";break;

case 48 : e.name="Cadmium";break;

case 49 : e.name="Indium";break;

case 50 : e.name="Tin";break;

case 51 : e.name="Antimony";break;

case 52 : e.name="Tellurium";break;

case 53 : e.name="Iodine";break;

case 54 : e.name="Xenon";break;

case 55 : e.name="Cesium";break;

case 56 : e.name="Barium";break;

case 57 : e.name="Lanthanum";break;

case 58 : e.name="Cerium";break;

case 59 : e.name="Praseodymium";break;

case 60 : e.name="Neodymium";break;

case 61 : e.name="Promethium";break;

case 62 : e.name="Samarium";break;

case 63 : e.name="Europium";break;

case 64 : e.name="Gadolinium";break;

case 65 : e.name="Terbium";break;

case 66 : e.name="Dysprosium";break;

case 67 : e.name="Holmium";break;

case 68 : e.name="Thulium";break;

case 69 : e.name="Ytterbium";break;

case 70 : e.name="Lutetium";break;

case 71 : e.name="Hafnium";break;

case 72 : e.name="Tantalum";break;

case 73 : e.name="Tungsten";break;

case 74 : e.name="Rhenium";break;

case 75 : e.name="Osmium";break;

case 76 : e.name="Iridium";break;

case 78 : e.name="Platinum";break;

case 79 : e.name="Gold";break;

case 80 : e.name="Mercury";break;

case 81 : e.name="Thalium";break;

case 82 : e.name="Lead";break;

case 83 : e.name="Bismuth";break;

case 84 : e.name="Polonium";break;

case 85 : e.name="Astatine";break;

case 86 : e.name="Radon";break;

case 87 : e.name="Francium";break;

case 88 : e.name="Radium";break;

case 89 : e.name="Actinium";break;

case 90 : e.name="Thorium";break;

case 91 : e.name="Protactinium";break;

case 92 : e.name="Uranium";break;

case 93 : e.name="Neptunium";break;

case 94 : e.name="Plutinium";break;

case 95 : e.name="Americium";break;

case 96 : e.name="Curium";break;

case 97 : e.name="Berkelium";break;

case 98 : e.name="Californium";break;

case 99 : e.name="Einsteinium";break;

case 100 : e.name="Fermium";break;

case 101 : e.name="Mendelevium";break;

case 102 : e.name="Nobelium";break;

case 103 : e.name="Lawrencium";break;

case 104 : e.name="Rutherfordium";break;

case 105 : e.name="Dubnium";break;

case 106 : e.name="Seaborgium";break;

case 107 : e.name="Bohrium";break;

case 108 : e.name="Hassium";break;

case 109 : e.name="Meitnerium";break;

case 110 : e.name="Darmstadtium(Ununnilium)";break;

case 111 : e.name="Roentgenium(Unununium)";break;

case 112 : e.name="Ununbium";break;

}

}

 

void viewData(Element e)

{

cout

}

 

void mainMenu()

{

cout

cout

cout

cout

cout

cout

cout

}

 

int main()

{

int anumber;

getData:

clrscr();

mainMenu();

cout

Element element;

cin>>anumber;

if(anumber0)

{

setData(anumber,element);

clrscr();

viewData(element);

getch();

goto getData;

}

else if(anumber==113)

{

clrscr();

cout

getch();

return 0;

}

else

{

cout

getch();

goto getData;

}

}

 

//end

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

تمرین

 

یکی از دوستان یه برنامه خواسته بودن که چون دیدم تمرین خیلی خوبیه، اینجا میزارمش:

 

45- برنامه ای بنویسید که عددی از ورودی گرفته و بر اساس آن جدولی به شکل زیر نشان دهد.

مثال برای ورودی 3:

 

mdvur6b5x_Capture.JPG

#include

 

void main()

{

int n1,n2,tab,temp=1;

cout

cin>>n1;

n2=n1;

tab=n1-1;

for(;n2>0;n2--)

{

for(int tab2=tab;tab2>0;tab2--)

cout

tab--;

for(int i=temp;i>0;i--)

cout

temp++;

cout

}

}

 

 

//end

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

این برنامه ی جالب دو عدد صحیح مثبت از کاربر میگیره و جمعشون رو بصورت یک عدد صحیح چاپ میکنه و تا 99 رقم کاربرد داره!

#include

#include

 

void main()

{

int x1[99]={0}, x2[99]={0}, out[99]={0},i=-1,i2=-1,count;

char temp[99];

cout

do //get it using getche()

{

i++;

temp=getche();

}while(temp!=13);

i--;

int ii=i;

for(int c=0;c

{

x1[c]=temp[ii]-48;

ii--;

}

 

ii=i;

cout

for(;ii>=0;ii--)

cout

cout

 

cout

do //get it using getche()

{

i2++;

temp[i2]=getche();

}while(temp[i2]!=13);

i2--;

ii=i2;

for(c=0;c

{

x2[c]=temp[ii]-48;

ii--;

}

 

 

cout

ii=i2;

for(;ii>=0;ii--)

cout

 

count=(i>i2)?i:i2; //recognize biggest array

int ex=0, temp2, temp3; //define some vars for temporary number and the extra

for(ii=0;ii

{

temp2=(x1[ii]+x2[ii]);

temp2+=ex;

if(temp2

out[ii]=temp2;

else

{

temp3=(temp2/10);

ex=temp3;

temp3*=10;

out[ii]=(temp2-temp3);

}

 

}

 

cout

 

for(;count>=0;count--)

cout

 

 

}

 

 

//end

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

strcpy تابع انتساب رشته های کاراکتری، موجود در cstring.h

 

شکل کلی تابع:

;(رشته مبدا ،رشته مقصد)strcpy

 

مثال:

strcpy(str1, str2);

 

strcpy(str, "Computer");

 

//end

 

تذکر:

1. کپی کردن هر گونه رشته در رشته ای از نوع string به واسطه ی دستور انتساب(=) صورت میگیرد. بنابراین هیچ یک از پارامتر ها strcpy نمی تواند از نوع string باشد.

2. مراقب باشید که رشته ی مقصد طول کوچکتری نسبت به رشته ی مبدا نداشته باشد.

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

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