کد های ++c
نوشته شده توسط مهدی امینی
برنامه روش حل دستگاه معادلات خطی به روش تکراری ژاکوبی وگاوس:(درخواستی ع .علیخوانی)
-
#include <iostream.h>
-
#include <conio.h>
-
#include <math.h>
-
void main(){
-
int i,j;
-
const int n=3;
-
float Khata,e,temp2,temp1[n],temp=0,a[n][n],x[n],kh[n];
-
long double b[n];
-
clrscr();
-
cout << "Lotfan Dar Hengame Vared Kardane Dadeha Ghotrie Ghaleb Boudane Matris ra Dar Nazar Begirid.\n";
-
cout << "Maghadire Pishfarze X Ra Benevisid. x[0],x[1],...\n";
-
for ( i=0 ; i<n ; i++ ){
-
cout << "X[" << i+1 << "] = ";
-
cin >> x[i];
-
}
-
cout <<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n";
-
cout <<"Maghadire Matrise Pasokh ra Benevisid. B[0],B[1],...\n";
-
for (i=0 ; i<n ; i++){
-
cout << "B[" << i+1 << "] = ";
-
cin >> b[i];
-
}
-
cout <<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n";
-
cout << "Maghdire Matrise Zarayeb Ra Benevisid.a[1][1],a[1][2],...\n";
-
for (i=0 ; i<n ;i++)
-
for(j=0 ; j<n ; j++){
-
cout << "a[" << i+1 << "][" <<j+1 <<"] = ";
-
cin >> a[i][j];
-
}
-
cout <<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n";
-
cout << "Meghdare Khata ra vared Konid : ";
-
cin >> Khata;
-
cout <<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n";
-
do{
-
for (i=0 ;i<n ; i++){
-
temp2 =b[i];
-
for (j=0 ; j<n ; j++)
-
if (i != j )
-
temp2 -= a[i][j]*x[j];
-
temp1[i] = temp2 / a[i][i];
-
}
-
for ( i=0 ;i<n ; i++)
-
kh[i] = temp1[i] - x[i];
-
for(i=0 ; i<n; i++)
-
temp += pow(kh[i],2);
-
e = sqrt(temp);
-
for(i=0 ; i<n ; i++)
-
x[i] = temp1[i];
-
temp = 0;
-
}while( e > Khata );
-
cout << "Javabe Dastgah Barabar Ast ba : \n";
-
for(i=0 ; i<n ; i++)
-
cout << "X[" << i+1 << "] = " << x[i] << endl;
-
getch();
-
}
-
در خواست دوست عزیزم سعید مسئله شطرنج با الگوریتم ژنتیک سی پلاس پلاس
#include<stdio.h>
#include<iostream.h>
#include<stdlib.h>
#include<time.h>
const int chessboardsize=8; //size of chessboard
enum{empty,queen,used}; //status
struct move //movement direction
{
int x;
int y;
};
struct chessboard //chessboard type
{
int size;
int square[chessboardsize][chessboardsize];
int usedsquares;
int noqueens;
};
void setqueenmovdi(move*whatmove,chessboard*board,move*curcoor);
void main(void)
{
move curcoor; // define digonal movements
move NE;
NE.x=1;
NE.y=1;
move NW;
NW.x=-1;
NW.y=1;
move SE;
SE.x=1;
SE.y=-1;
move SW;
SW.x=-1;
SW.y=-1;
chessboard board;
board.size=chessboardsize;
srand(time(0));
while(board.noqueens!=board.size)
{
board.usedsquares=0;
board.noqueens=0;
for(int i=0;i<board.size;i++)
for(int j=0;j<board.size;j++)
board.square[i][j]=0;
while(board.usedsquares<board.size*board.size)
{
curcoor.x=rand()%board.size;
curcoor.y=rand()%board.size;
if(board.square[curcoor.x][curcoor.y]==empty)
{
board.square[curcoor.x][curcoor.y]=queen;
++board.usedsquares;
++board.noqueens;
}
else
continue;
for(int horiz=0;horiz<board.size;horiz++)
if(board.square[horiz][curcoor.y]==empty)
{
board.square[horiz][curcoor.y]=used;
++board.usedsquares;
}
for(int verti=0;verti<board.size;verti++)
if(board.square[curcoor.x][verti]==empty)
{
board.square[curcoor.x][verti]=used;
++board.usedsquares;
}
board.square[curcoor.x][curcoor.y]=queen;
setqueenmovdi(&NE,&board,&curcoor);
setqueenmovdi(&NW,&board,&curcoor);
setqueenmovdi(&SE,&board,&curcoor);
setqueenmovdi(&SW,&board,&curcoor);
}
}
cout<<endl;
for(int i2=0;i2<board.size;i2++)
{
for(int j2=0;j2<board.size;j2++)
{
cout<<board.square[i2][j2];
printf(" ");
}
cout<<endl;
}
}
void setqueenmovdi(move*whatmove,chessboard*board,move*curcoor)
{
move next;
next.x=curcoor->x+whatmove->x;
next.y=curcoor->y+whatmove->y;
if(next.x<0||next.x>board->size-1||next.y<0||next.y>board->size-1)
return;
if(board->square[next.x][next.y]==empty)
{
board->square[next.x][next.y]=used;
++board->usedsquares;
}
setqueenmovdi(whatmove,board,&next);
return;
}
کد مرتب سازی سریع quicksort
void quickSort(int x[], int left, int right)
{
int i = left, j = right;
int tmp;
int pivot = x[(left + right) / 2];
while (i <= j)
{
while (x[i] < pivot)
i++;
while (x[j] > pivot)
j--;
if (i <= j)
{
tmp = x[i];
x[i] = x[j];
x[j] = tmp;
i++;
j--;
}
}
if (left < j)
quickSort(x, left, j);
if (i < right)
quickSort(x, i, right);
}
لطفا هر کد دیگری را که می خواهید در قسمت نظرات برای ما نوشته تا حداکثر بعد از 24 ساعت کد را در این قسمت درج کنیم
بقیه در ادامه مطالب