folder Tahribat.com Forumları
linefolder C - C++
linefolder Matriste Çarpma İşlemi(C)



Matriste Çarpma İşlemi(C)

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    wasd
    wasd's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    #include<stdio.h>
    #include<locale>
    int main()
    {
    	setlocale(LC_ALL,"TURKISH");
    	int eb,ek,i,j,m,n,a[1000][1000],b[1000][1000],c[1000][1000],btop[1000];
    	printf("Satır: ");
    	scanf("%d",&m);
    	printf("Sütun: ");
    	scanf("%d",&n);
    	for(i=1;i<=m;i++)
    		for(j=1;j<=n;j++)
    		{
    			printf("A[%d][%d]: ",i,j);
    			scanf("%d",&a[i][j]);
    		}
    	for(i=1;i<=m;i++)
    		for(j=1;j<=n;j++)
    		{
    			printf("B[%d][%d]: ",i,j);
    			scanf("%d",&b[i][j]);
    		}
    	for(i=1;i<=m;i++)
    		for(j=1;j<=n;j++)
    		{
    			btop[i]+=b[j][i];
    		}
    	for(i=1;i<=m;i++)
    		for(j=1;j<=n;j++)
    		{
    			c[i][j]=a[i][j]*btop[j];
    		}
    	for(i=1;i<=m;i++)
    		for(j=1;j<=n;j++)
    		{
    			eb=c[1][1];
    			if(c[i][j]>=eb)
    				eb=c[i][j];
    		}
    	for(i=1;i<=m;i++)
    		for(j=1;j<=n;j++)
    		{
    			ek=c[1][1];
    			if(c[i][j]<=ek)
    				ek=c[i][j];
    		}
    	for(i=1;i<=m;i++)
    		for(j=1;j<=n;j++)
    			printf("C[%d][%d]: %d",i,j,c[i][j]);
    	printf("E.K.: %d",ek);
    	printf("E.B.: %d",eb);
    	return 0;
    }

     

    Matriste çarpma yaptırıp,elde ettiğim matrisin de en büyük ve küçük elemanlarını buldurup ekrana yazdırmak için bu kodu yazdım ama geçenlerde açtığım konudaki aynı sorun oldu Stack overflow. Nerde hata yapıyorum,nasıl düzeltebilirim?


    :)
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    wasd
    wasd's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    up up up


    :)
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ltcelik
    ltcelik's avatar
    Kayıt Tarihi: 11/Mayıs/2007
    Erkek
    c den pek anlamam fakat deklerasyonda elemanları int olarak tanımlamış, sonra ondalıklı olarak okutmuşsun klavyeden sanırım...

    Din Kitaplarını Okuyup Anlayana Ateist, Okuyup Anlamayanlara "dindar" denir... Nikola TESLA.. ben mi? Ne okurum ne anlarım... Kendi kendime de uyuz oluyorum ama olamıyorum.. "Ama efsaneyi çıkarıp atarsan ve yaptıkları eylemlere bakarsan... ..Jedi'ların mirası başarısızlıktır. İkiyüzlülüktür, kibirdir."
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ltcelik
    ltcelik's avatar
    Kayıt Tarihi: 11/Mayıs/2007
    Erkek
    Bir de 1000x1000 matris açmışsın biraz kalın gelmez mi sence de.. 30x30 mtriste bir sorun çıkmadı da...

    Din Kitaplarını Okuyup Anlayana Ateist, Okuyup Anlamayanlara "dindar" denir... Nikola TESLA.. ben mi? Ne okurum ne anlarım... Kendi kendime de uyuz oluyorum ama olamıyorum.. "Ama efsaneyi çıkarıp atarsan ve yaptıkları eylemlere bakarsan... ..Jedi'ların mirası başarısızlıktır. İkiyüzlülüktür, kibirdir."
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ltcelik
    ltcelik's avatar
    Kayıt Tarihi: 11/Mayıs/2007
    Erkek

    Ayrıca çarpma kodunuz da yanlış sanırım... birinci matrisin (sizde A ) satırı ve ikinci matrisin sütunu (B) deki elemanların (sigma a(ij)xb(ji) ) çarpımlarının toplamı olmalıdır.. yani satırdaki herbir elemanı ilgili sütundaki elemanlarla çarpıp toplamak gerekli

    http://tr.wikipedia.org/wiki/Matris_(matematik)

    http://turgay-ozgur.com/matrislerde-carpma.html


    Din Kitaplarını Okuyup Anlayana Ateist, Okuyup Anlamayanlara "dindar" denir... Nikola TESLA.. ben mi? Ne okurum ne anlarım... Kendi kendime de uyuz oluyorum ama olamıyorum.. "Ama efsaneyi çıkarıp atarsan ve yaptıkları eylemlere bakarsan... ..Jedi'ların mirası başarısızlıktır. İkiyüzlülüktür, kibirdir."
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Ephesus
    Ephesus's avatar
    Kayıt Tarihi: 14/Şubat/2009
    Erkek

    Sen düz matrisi yaz biz çözebilirsek çözelim hacı. Üniversiteye hazırlanıyoruz :D


    Avukat/Hukukçu
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ltcelik
    ltcelik's avatar
    Kayıt Tarihi: 11/Mayıs/2007
    Erkek
    SAtck OF da sonuçta bir bellek taşması olayı..tahsis edilenden daha fazla kullanmaya çalışıyorsun.. çalışma ortamında hataya sebep oluyor.. obezite problemi ya da kan şekerinin düşmesi gibi..

    Din Kitaplarını Okuyup Anlayana Ateist, Okuyup Anlamayanlara "dindar" denir... Nikola TESLA.. ben mi? Ne okurum ne anlarım... Kendi kendime de uyuz oluyorum ama olamıyorum.. "Ama efsaneyi çıkarıp atarsan ve yaptıkları eylemlere bakarsan... ..Jedi'ların mirası başarısızlıktır. İkiyüzlülüktür, kibirdir."
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    wasd
    wasd's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    mantıkta sorun yok,matriste çarpma işlemini biliyorum nasıl olacağını.yaptığım işlemi açıklayayım;

    önce matrisin kaça kaçlık olacağını alıyorum

    sonra çarpılacak matrislerin elemanlarını okutuyorum

    o çarpıp toplama işlemini baside indirgedim  a*b1+a*b2+a*b3 yerine a*(b1+b2+b3) şekline soktum formülü bu değerleri tutmak içinde btop dizisini oluşturdum.

    c[i][j]=a[i][j]*btop[j] satırında her dizi elemanını 2. matrisin sütun elemanlarıyla çarpmış oldum.

    hem elde edilecek matrisi hemde bu matrisin en büyük ve en küçük elemanlarını buldurup sonuçları ekrana yazdırdım.

    Yani mantıkta sorun yok ama taşma var işte :/

     

    turgay özgürün yaptığı yollada yapılabilir,onuda düşündüm ama bu yolla yapmayı seçtim.

    @ephesus: lanet olsun üniversiteye :D


    :)
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ltcelik
    ltcelik's avatar
    Kayıt Tarihi: 11/Mayıs/2007
    Erkek
    Öyle birşey yok ki... Her bir a farklıdır dolayısı ile a parantezine alıp b sütunun toplamaıyla çarpamazsın...

    Satırdaki x numaralı elemanla sütundaki x numaralı elemanı çarpacak ve bu çarpımları toplayacaksın... A(1,1)xB(1,1)+A(1,2)xB(2,1)+A(1,3)xB(3,1)+..


    Din Kitaplarını Okuyup Anlayana Ateist, Okuyup Anlamayanlara "dindar" denir... Nikola TESLA.. ben mi? Ne okurum ne anlarım... Kendi kendime de uyuz oluyorum ama olamıyorum.. "Ama efsaneyi çıkarıp atarsan ve yaptıkları eylemlere bakarsan... ..Jedi'ların mirası başarısızlıktır. İkiyüzlülüktür, kibirdir."
  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    SARI
    SARI's avatar
    Banlanmış Üye
    Kayıt Tarihi: 29/Eylül/2009
    Erkek

    ben sana demedim mi bu çalışmayacak diye gelmiş bana artistlik yapıyordun ne oldu la bebe...


    Ban Sebebi : Molrada Haarket Eiğtti için Bdnlaanı... Türkçe öğretmenliği okuyan arkadaşım sana ders verebilir admin arkadaş :)
  11. KısayolKısayol reportŞikayet pmÖzel Mesaj
    wasd
    wasd's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    ltcelik bunu yazdı:
    -----------------------------
    Öyle birşey yok ki... Her bir a farklıdır dolayısı ile a parantezine alıp b sütunun toplamaıyla çarpamazsın...

    Satırdaki x numaralı elemanla sütundaki x numaralı elemanı çarpacak ve bu çarpımları toplayacaksın... A(1,1)xB(1,1)+A(1,2)xB(2,1)+A(1,3)xB(3,1)+..


    -----------------------------

    edit: matris çarpımı yanlış biliyomuşum.


    :)
Toplam Hit: 3722 Toplam Mesaj: 15