c++ ödev yardımı

Başlatan berdan1269, 21 Mayıs 2020 - 16:11:10

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

berdan1269

Kullanıcının değerleri girdiği a (3x3) ve b (3x3) olmak üzere iki matrisin çarpımını bularak  elde edilecek c matrisinin determinantını bulup ekrana yazdıran  c kodunu yazınız .
a) c = a * b
b) Sonuç = det (c),
Arkadaşlar yapamadım da yardım edebilecek var mı

haiko

#1
Böyle bir şey mi lazım?

#include<stdio.h>
#include<conio.h>
int x[2][2], y[2][2], z[2][2];
int i, j,k;
void main()
{
clrscr();
printf("1. matrisin elemanlarını giriniz\n");
for(i=0;i<2;i++)
for(j=0;j<2;j++)
{
printf("x[%d][%d]=",i,j);
scanf("%d",&x[i][j]);
}

printf("2. matrisin elemanlarını giriniz\n");
for(i=0;i<2;i++)
for(j=0;j<2;j++)
{
printf("y[%d][%d]=",i,j);
scanf("%d",&y[i][j]);
}
printf("\n");

for(i=0;i<2;i++)
for(j=0;j<2;j++)
for(k=0;k<2;k++)
z[i][j]= z[i][j]+x[i][k]*y[k][i] ;
for(i=0;i<2;i++)
{
for(j=0;j<2;j++)
printf("z[%d][%d]=%d",i, j, z[i][j]);
printf("\n");
}
getch();
}


Bu program 3x3 boyutunda a ve b matrislerini dışarıdan okutarak c=a*b matrisini
hesaplatıp yazdırıyor; buna göre bir şeyler karalayabilirsin sanırım. Kütüphanene #include<conio.h> eklemeyi unutma bu arada.
Koşuyorum dikenlerin üstünde...

berdan1269

#2
[mention=653125]@haiko[/mention] Dostum yanıtın için minnettarım çok teşekkür ederim zamanını ayırıp yardım ettiğin için ufak bi sorum *olacak detarminant işlemini nasıl yapıcaz bu kod sanırım sadece çarpımını buluyor.

haiko

#3
Klavyeden girilen NxN tipindeki A matrisinin determinantını hesaplayan C++ programı
/*
  determinant.cxx
*/
#include <iostream>
#include <windows.h>
#include <cmath>
using namespace std;
float D=1;
int i,j,k,N;
int main()
{ system("cls");cout<<"Kare matrisin satir sayisi: ";cin>>N;
  cout<<"\ ------------\n";
  float A[N][N],B[N][N];
  for(i=0;i<N;i++)
   {  for(j=0;j<N;j++)
   {  COORD xy = {5*j+5,4+i};
  SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),xy);
  cin>>A[i][j]; }}
  for(k=0;k<N-2;k++)  {D=D/(pow(A[0][0],N-k-2));
for(j=0;j<N-k-1;j++)
B[i][j]=A[0][0]*A[i+1][j+1]-A[0][j+1]*A[i+1][0];}
  for(i=0;i<N-k-1;i++)
    { for(j=0;j<N-k-1;j++) A[i][j]=B[i][j];}}
  D=D*(A[0][0]*A[1][1]-A[0][1]*A[1][0]);
  cout<<"\nMatrisin determinanti= "D<<endl;
  system("pause");return 0;           
}



Mesaj tekrarı yüzünden mesajınız birleştirildi. Bu mesajın gönderim tarihi : 23 Mayıs 2020 - 00:56:32

Bu da sakin kafa ile kodlanmış; klavyeden girilen NxN tipindeki A ve B matrislerinin çarpımını (C = A.B) hesaplayan C++ program.
/*
  carpim.cxx
*/

#include <iostream>
#include <windows.h>
#include <cmath>
using namespace std;
int i,j,k,N;
int main()
{ system("cls");cout << "Matrislerin tipini giriniz: ";cin >> N;
cout << "\n   A matrisi\n";cout << "  ---------- \n";
int A[N] [N],B[N],C[N] [N];
for(i=0;i<N;i++)
{ for(j=0;j<N;j++)
{ COORD xy = {5*j+5,4+i};
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),xy);
cin >> A[i] [j]; }}
cout << "\n    B matrisi\n";cout << "  ----------\n";
for(i=0;i<N;i++)
  { for(j=0;j<N;j++)
  { COORD xy = {5*j+5,7+i+N};
  SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),xy);
cin >> B[i] [j]; }}
cout << "\n    C matrisi\n";cout << "  ----------\n";
for(i=0;i<N;i++)
   { for(j=0;j<N;j++)
   { C[i] [j]=0;for(k=0;k<N;k++) C[i] [j]+=A[i][k]*B[k][j];
COORD xy = {5*j+5,10+i+2*N};
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),xy);
cout << C[i] [j]; }}
}
     System("pause");return 0; }



Mesaj tekrarı yüzünden mesajınız birleştirildi. Bu mesajın gönderim tarihi : 23 Mayıs 2020 - 01:21:36

[mention=653141]@berdan1269[/mention] Farklı tipteki matrislerin çarpılabilmesi için birinci matrisin sütun sayısı ile ikinci matrisin satır sayısı birbirine eşit olmalıdır. Aksi halde bu matrisler çarpılamaz; program determinant aşamasına bile varmadan hata ile sonuçlanır; sonuç olarak başarısız bir program ile karşı karşıya kalınır. Bu yüzden programı iki kısımdan ('Matris Çarpım' ve 'Determinant') ikiye ayrılmış vaziyette sunmakta fayda gördüm. Buradan faydalanan sayısız (uyarıyı dikkate alan/almayan) insanlar mevzu bahis konudan istifade edeceklerdir.
   Dikkatinize istinaden; (Bkz...)elin adamı nasıl bir çalışma yapmış. Uygulaması da bihayli; interaktif şekilde; deli gibi çalışıyor :)
Alttaki yeni entrylerinize istinaden: Bana ancak buradan ulaşabilirsiniz. :))
Koşuyorum dikenlerin üstünde...

berdan1269

Dostum çok teşekkürler tekrardan zaman ayırdığın için sanırım bu bilgiler işime yeterince yarıyacak

berdan1269

[mention=653153]@haiko[/mention] Dostum sana nasıl ulaşabilirim ?

berdan1269

[mention=653153]@haiko[/mention] Dostum bana ulaşabilme şansın var mı ?