KONU : C Konsol Uygulamalar - 2 matriksin kolon ve satırlarını konsol ekranında girerek bir dizide bu değerleri saklama. Saklanan değerleri kullanarak iki matriksi toplama ve çıkarma işlemlerini yapma. Pointer ve Fonksiyon kullanarak işlemleri gerçekleştirme. Referans tip kullanarak değişkenin değişen değerlerini kullanma.
ETİKETLER: konsol - matriks - pointer - array - dizi - char
#include < stdio.h >
#include < stdlib.h >
#define SIZE 2
int i,j;
int m,n;
char x;
void getMatrixSize(int *matrix,int *matrix2, int &row, int &column);
void showMatrix(int *matrix1,int row,int column);
void sum(int *matrix,int *matrix2,int*sum,int row,int column);
void subtract(int *matrix1,int *matrix2,int *result,int row, int column);
int main(void) {
int chose;
int Arr[10][10];
int Arr2[10][10];
int result[10][10];
while(x!='e')
{
printf("\n\t 1 - Toplama\n");
printf("\t 2 - Cikarma\n");
printf("\t 3 - Carpma\n");
printf("\t 4 - Determinant\n");
printf("\t 5 - Transpoze\n");
printf("\t 6 - Cikis\n");
printf("\n Isteginiz: ");
scanf("%d",&chose);
int row = 0;
int column = 0;
switch(chose)
{
case 1:
{
getMatrixSize((int *)Arr,(int *)Arr2,row,column);
sum((int *)Arr,(int *)Arr2, (int * )result,row,column);
printf("\n\n\n******************\n Sonuc: \n\n");
showMatrix((int * )result,row,column);
break;
}
case 2:
getMatrixSize((int *)Arr,(int *)Arr2,row,column);
subtract((int *)Arr,(int *)Arr2, (int * )result,row,column);
printf("\n\n\n******************\n Sonuc: \n\n");
showMatrix((int * )result,row,column);
break;
case 3:
// daha sonra yapılacak
break;
case 4:
// daha sonra yapılacak
break;
case 5:
// daha sonra yapılacak
break;
case 6:
x ='e';
break;
}
}
return 0;
}
void getMatrixSize(int *matrix,int *matrix2, int &row, int &column)
{
int k=0;
while(k!=2)
{
printf("\n %d. Matris:\n ",k+1);
printf("Satir sayisi: ");
scanf("%d",&row);
printf("Sutun sayisi: ");
scanf("%d",&column);
for(i=0;i < row;++i)
{
for(j=0;j < column;++j)
{
printf("%d.satir %d. sutun: ",i+1,j+1);
if(k==0)
scanf("%d",matrix++);
else if(k==1)
scanf("%d",matrix2++);
}
}
printf("\n");
if(k==0)
{
matrix=matrix-(row*column);
//showMatrix(matrix,row,column);
}
else if(k==1)
{
matrix2=matrix2-(row*column);
// showMatrix(matrix2,row,column);
}
k++;
}
}
void showMatrix(int *matrix1,int row,int column)
{
for(i=0;i < row;++i)
{
for(j=0;j < column;++j)
{
printf("%5d",*(matrix1));
matrix1++;
}
printf("\n");
}
}
void sum(int *matrix1,int *matrix2,int *result,int row, int column)
{
showMatrix(matrix1,row,column);
showMatrix(matrix2,row,column);
for(i=0;i < row;i++)
{
for(j=0;j < column;j++)
{
*result = *matrix1 + *matrix2;
printf("%5d",*result);
matrix1++;
matrix2++;
result++;
}
printf("\n");
}
matrix1 = matrix1 - (row*column);
matrix2 = matrix2 - (row*column);
result = result - (row*column);
}
void subtract(int *matrix1,int *matrix2,int *result,int row, int column)
{
showMatrix(matrix1,row,column);
showMatrix(matrix2,row,column);
for(i=0;i < row;i++)
{
for(j=0;j < column;j++)
{
*result = *matrix1 - *matrix2;
printf("%5d",*result);
matrix1++;
matrix2++;
result++;
}
printf("\n");
}
matrix1 = matrix1 - (row*column);
matrix2 = matrix2 - (row*column);
result = result - (row*column);
}
Hiç yorum yok:
Yorum Gönder
Hatalı linkleri yorum yazarak bildirin