İki Boyutlu Diziler

İki Boyutlu Diziler

  • Her elemanı bir dizi olan dizilere ise çok-boyutlu dizi adı verilir. Bu bölümde 2- boyutlu dizi olarak adlandırdığımız matris konusu göreceğiz.
  • Matrsiler satır ve sütunlardan oluşan tablolardır.

Kullanımı:

veriTipi matrisİsmi [satırSayısı][sütunSayısı];
 
int matris[4][3];  

Tek boyutlu dizilerdeki gibi matrisler de tanım sırasında ilk değer ataması yapabilirizİki Boyutlu Diziler Satır ve Sutunlar

int matris[4][3];  
 
/*Tek boyutlu dizilerdeki gibi matrisler de tanım sırasında ilk değer ataması yapabiliriz.*/
int matris[4][3]={{25,33,12},{87,66,63},{45,90,34},{22,46,14}};

İki boyutlu dizilerde satır indeksi 0’dan satır sayısı-1’e kadar ve sütun indeksi de 0’dan sütun sayısı -1’e kadar değer alabilir.

int mat[3][5];

İki Boyutlu Dizler Eleman Gösterimi

for ( int i=0; i<5; i++)
        mat[0][i]=(1,2,3,4); // bu elemanlar arasında değer alır
////////// Satır  Yönünde Erişim//////////
int yeniMat[3][4];
 
for (int satir=0; satir<3; satir++)
    for (int sutun=0;sutun<4;sutun++)
            cin>>yeniMat[satir][sutun];
 
/* Girdi: 1 2 3 4 5 6 7 8 9 10 11 12*/

İki Boyutlu Diziler yeniMat Dizisi

//////// Sutun Yönünde Erişim//////////////
int yeniMat[3][4];
 
for ( int sutun=0;sutun<4;sutun++)                                                
      for ( int satir=0; satir<3;satir++)                        
              cin>>yeniMat[satir][sutun];

Aşağıda bir örnekle incelenmiştir programı çalıştırıp sonucu inceleyiniz.

  1. #include <iostream>
  2. using namespace std;
  3.  
  4. void fark (int [],int);
  5.  
  6. int main ()
  7. {
  8. const int soruSayi=10;
  9. const int ogrSayi=3;
  10. char anahtar[soruSayi];
  11. int dogru,yanlis,skor;
  12. char ogrCevap[ogrSayi][soruSayi];
  13.  
  14. cout<<“Cevap anahtarini giriniz:;
  15. for(int i=0;i<soruSayi;i++) // 10 doğru cevap girirlir
  16. cin>>anahtar[i];
  17. for(int ogr=0;ogr<ogrSayi;ogr++) // öğrenci sayısı kadar döner
  18. {
  19. dogru=yanlis=0;
  20. cout<<ogr+1<<“. ogrencinin cevaplarini giriniz:;
  21. for(int i=0;i<soruSayi;i++) // öğrenci cevapları girilir
  22. {
  23. cin>>ogrCevap[ogr][i];
  24. if(anahtar[i]==ogrCevap[ogr][i]) // cevaplar kontrol edilir
  25. dogru++;
  26. else
  27. yanlis++;
  28. }
  29. skor=dogru-(yanlis/2); // Öğrencinin notu hesaplarnır
  30. cout<<ogr+1<<“. ogrencinin notu:<<skor<<endl;
  31. }
  32. return 0;
  33. }

İki Boyutlu Diziler ve Fonksiyonlar

İki boyutlu bir diziyi bir fonksiyona parametre olarak yolladığımızda satır bilgisini yollamamıza gerek yoktur,ancak mutlaka sütun bilgisini vermemiz gerekir.

  1. #include <iostream>
  2. using namespace std;
  3.  
  4. void yaz( int [][4] );
  5.  
  6. int main()
  7.  
  8. {
  9. int diz[3][4]={{1,1,2,2},{5,6,5,6},{4,8,9,3}};
  10. yaz(diz);
  11. return 0;
  12.  
  13. }
  14. void yaz ( int d[][4]) // matris elemanlarını ekrana yazdıran fonkisyon
  15. {
  16. for (int i=0;i<3;i++)
  17. {
  18. for (int j=0;j<4;j++)
  19. cout<<d[i][j];
  20. cout<<endl;
  21. }
  22. }
  23. return 0;
  24. }

Klavyeden Girilen Büyük Harfleri Küçüğe Küçük Harfleri Büyüğe Çeviren Program

  1. #include<iostream>
  2. using namespace std;
  3.  
  4. char degis(char[]);
  5.  
  6. int main()
  7. {
  8. char harf1=’z’;
  9. char harf3=’A’;
  10. char dizi[10]={};
  11. int i;
  12. while( i<10)
  13. {
  14. cout<<i+1<<“. elaman:;
  15. cin>>dizi[i];
  16. if(harf1<dizi[i]||harf3>dizi[i])
  17. cout<<!!!! Lutfen Turkce Karaketer Giriniz !!!!!<<endl;
  18. else
  19. i+=1;
  20. }
  21. for(int i=0;i<10;i++)
  22. cout<<dizi[i]<<“\t”;
  23.  
  24. cout<<“Yeni harf:<<degis(dizi)<<endl;
  25. return 0;
  26. system(“pause”);
  27. }
  28. char degis(char diz[])
  29. {
  30. char harf=’z’;
  31. char harf2=’Z’;
  32. for(int i=0;i<=9;i++)
  33. {
  34. if(diz[i]<=harf)
  35. harf=diz[i];
  36. }
  37. if(harf2>=harf)// Bu if kismi dizide buyuk harf olma olasiligindan yapilmistir
  38. { // Eger dizide buyuk harf yoksa bu if kismina gerek yoktur
  39. // Bu kisimda ayrica buyuk harf kucuge cevirilmistir
  40. cout<<endl<<“Eski harf:<<harf<<endl;
  41. // Buyuk harf cevrilmek istenmeseydi harf2=harf yazilip ekrana buyuk harfbastirilacakti
  42. harf+=32; // Harf eger buyuk ise kucuge cevirir
  43. // Eger harfin degismemesi istenseydi harf2=harf yapilirdi
  44.  
  45. return harf; // Ana programa gonderir
  46. }
  47. else
  48. {
  49. cout<<endl<<“Eski harf:<<harf<<endl;
  50. harf-=32; // Harf eger kucuk ise buyuge cevirir
  51. return harf; // Ana programa gonderir
  52. }
  53. }

Kimler Neler Demiş?

  Abone ol  
Bildir