IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası
  sohbet

 Kayıt ol  Topluluk
1Beğeni(ler)
  • 1 Post By aSi

Yeni Konu aç Cevapla
 
LinkBack Seçenekler Stil
Alt 17 Mart 2012, 00:09   #1
Çevrimdışı
aSi
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Matris içinde matris bulma





Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.



Programlama dersinde hocamızın vermiş olduğu bir ödev. Biraz görsellik kattım işin içine (bu yüzden kodlar biraz karışık oldu). Program sizden en başta Büyük matris ve Küçük matris için satır sütun sayısı istiyor. Daha sonra büyük matrise rastgele(1-10 arası) sayılar atanıyor ve ekrana bastırılıyor. Sağ tarafta , girilen küçük matris boyutlarına göre , siyah bir kutu içinde pencere açılıyor ve buraya ” Aranacak Dizi Elemanları ” giriliyor… Sonuç olarak girilen desen büyük desen içinde bulunursa , bulunan deseni de kare içine alıp gösteriyor…
Not : Dizi elemanlarını girerken tek tek girip her girişte entera basabilirsiniz. Veya bir satırı aralarında boşluk bırakarak girip , satırın son elemanını girip entera basabilirsiniz…


Kod:   Kodu kopyalamak için üzerine çift tıklayın!
#include<stdio.h> #include<conio.h> #include<windows.h> #include<time.h> #include<stdlib.h> void git(int x,int y) // Git Fonksiyonu İmleci İstediğimiz Koordinatlara Götürmeye Yarar... { COORD koordinat; koordinat.X=x; koordinat.Y=y; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),koordinat); } main() { int a,b,i,j,sonuc=0,bx=0,by=0,kx=1,ky=0,k,l,uygunluk=0; int m1[30] [30]; int m2[15] [15]; system("color f0"); system("title Matris içinde Matris"); srand(time(NULL)); while(kx>bx || ky>by) { printf("Buyuk Dizi icin \nSatir = "); //Büyük Matrisin ve Küçük Matrisin Boyutlarını Alıyoruz... scanf("%d",&bx); printf("Sutun = "); scanf("%d",&by); printf("---------\nKucuk Dizi icin\nSatir = "); scanf("%d",&kx); printf("Sutun = "); scanf("%d",&ky); if(bx>25) bx=25; // Matrisin Boyutları Belli Bir Yerden Sonra Ekrana Sığmayacağından if(by>25) by=25; // Bazı kısıtlandırmalar getiriyoruz... if(kx>12) kx=12; if(ky>12) ky=12; if(bx<1) bx=1; if(by<1) by=1; if(kx<1) kx=1; if(ky<1) ky=1; if(kx>bx || ky>by) system("cls"); } system("cls"); for(a=0;a<=bx-1;a++) { for(b=0;b<=by-1;b++) //Büyük Diziye Rastgele Sayılar Atıyoruz... { m1[b] [a]=rand()%10; git(2*a+1,2*b+1); printf("%d",m1[b] [a]); } } git(53,1); printf("Aranacak Dizi"); for(i=1;i<=2*kx+3;i++) { for(j=1;j<=2*ky+3;j++) // Dizi Arama Bölümünün Çerçevesini Yazdırıyoruz... { if(i==1 || i==2*kx+3 || j==1 || j==2*ky+3) { git(50+i,2+j); putchar(219); } } } for(i=0;i<=kx-1;i++) { for(j=0;j<=ky-1;j++) // Aranacak Dizi Elemanlarını Giriyoruz... { git(50+2*j+3,2+2*i+3); [I] scanf("%d",&m2 [j]); } } for(a=0;a<=bx-1;a++) { for(b=0;b<=by-1;b++) { if(m1[b] [a]==m2[0] [0]) //İlk Eleman Yakalandığında Diğer Elemanlar Karşılaştırılıyor... { uygunluk=0; for(k=0;k<=kx-1;k++) { for(l=0;l<=ky-1;l++) { if(m1[b+k] [a+l]==m2[k] [l]) // Dizi Elemanlarını Karşılaştırıyoruz... uygunluk++; // Eğer Elemanlar Birbirini Tutuyorsa "uygunluk" değişkenini bir artırıyoruz. // Ve uygunluk Değeri "kx*ky" değerine ulaşıyorsa , İki Dizi Elemanları } // Birbirini Tutuyor demektir...Bu Durumda Bulunan Diziyi Kare içine Alıyoruz. } if(uygunluk==kx*ky) { sonuc=1; for(i=0;i<=2*kx;i++) { for(j=0;j<=2*ky;j++) { git(2*a+i,2*b+j); if(i==0 && j==0) putchar(218); else if(i==2*kx && j==0) putchar(191); else if(i==0 && j==2*ky) /* Çerçeve Kenarlıkları*/ putchar(192); else if(i==2*kx && j==2*ky) putchar(217); else if(i==0 || i==2*kx) putchar(179); else if(j==0 || j==2*ky) putchar(196); } } } } } } git(51,2*ky+8); if(sonuc==0) printf("ARANILAN DIZI BULUNAMADI..."); else printf("ARANILAN DIZI BULUNDU..."); getch(); }


__________________
Doğruları biliyorsan, yalanları dinlemek eğlencelidir.
 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları reklam ver Benimmekan Mobil Sohbet
Cevapla

Etiketler
bulma, icinde, matris


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Kapalı
Pingbacks are Açık
Refbacks are Açık


Benzer Konular
Konu Konuyu Başlatan Forum Cevaplar Son Mesaj
Matris Baklava aSi C ve C++ 0 24 Şubat 2012 22:16
İki matris ile işlem yapmak(Operator Overloading ile) aSi C ve C++ 0 22 Şubat 2012 15:04
Yön Bulma Lady Genel Paylaşım 0 02 Mayıs 2011 09:20