C# İle biLGİsayar programlama temelleri (C# Programlama Kitabı) Svetlin Nakov & Co


Çokboyutlu Dizi Bildirimi ve Bellek Tahsisi



Yüklə 3,36 Mb.
səhifə14/31
tarix03.11.2017
ölçüsü3,36 Mb.
#28822
1   ...   10   11   12   13   14   15   16   17   ...   31

7.8.2 Çokboyutlu Dizi Bildirimi ve Bellek Tahsisi
Çokboyutlu dizileri tek-boyutlu dizilere benzer şekilde bildiririz. İlk boyut dışında her boyut virgül ile işaretlenmiştir:


int[,] intMatrix;

float[,] floatMatrix;

string[,,] strCube;



Yukarıdaki örnekte, iki-boyutlu ve üç-boyutlu diziler oluşturuyoruz. Her boyut köşeli parantez [] içinde bir virgül tarafından temsil edilmektedir.
new anahtar sözcüğünü kullanarak çokboyutlu diziler için bellek tahsis edilir ve gösterildiği gibi her boyut için parantez içinde bir uzunluk belirlenir:

int[,] intMatrix = new int[3, 4];

float[,] floatMatrix = new float[8, 2];

string[,,] stringCube = new string[5, 5, 5];



Bu örnekte intMatrix, int[] türünde 3 elemandan oluşan iki-boyutlu bir dizidir ve bu 3 elemanın her biri 4 uzunluğundadır. İki-boyutlu dizileri bu şekilde açıklamanın anlaşılması zordur. Bu nedenle onları boyut olarak satır ve sütunları olan iki-boyutlu matrisler olarak düşünebiliriz:

Kare matrisin satır ve sütunları 0'dan başlayarak n – 1’e kadar olan endeksler ile numaralandırılır. m x n boyutlarına sahip iki-boyutlu bir dizi, tam olarak m*n elemanı barındırır.

7.8.3 İki-Boyutlu Dizinin Başlatılması
İki-boyutlu dizileri tek-boyutlu dizileri başlattığımız gibi aynı şekilde başlatırız. Bildirimden hemen sonra eleman değerlerini sıralayabiliriz:



int[,] matrix =

{

{1, 2, 3, 4}, // row 0 values



{5, 6, 7, 8}, // row 1 values

};

// The matrix size is 2 x 4 (2 rows, 4 cols)




Yukarıdaki örnekte, 2 satır ve 4 sütun boyutunda tamsayı türündeki iki-boyutlu bir diziyi başlatıyoruz. Dış parantez içine, birinci boyutun elemanlarını yerleştiriyoruz, yani dizinin satırlarını. Her satır tek-boyutlu bir diziyi içerir ve bunların değerlerini başlatmayı biliyoruz.
7.8.4 Çokboyutlu Dizi Elemanlarına Erişim
Matrisler iki boyutludur ve sırasıyla iki endeks kullanarak her bir elemanına erişiriz: birincisi satır için ve ikincisi sütun için. Çok-boyutlu dizilerde her boyut için farklı bir endeks vardır.



Çok-boyutlu bir dizinin her boyutu 0 endeksi ile başlar.


Sonraki örneği inceleyelim:

int[,] matrix =

{

{1, 2, 3, 4},



{5, 6, 7, 8},

};



matrix dizisinin 2 satır ve 4 sütunda saklanan 8 elemanı vardır. Her elemana şu şekilde erişilebilir:


matrix[0, 0] matrix[0, 1] matrix[0, 2] matrix[0, 3]

matrix[1, 0] matrix[1, 1] matrix[1, 2] matrix[1, 3]




Bu örnekte endeksleri kullanılarak her bir elemana erişebilirsiniz. Satır endeksini row değişkenine ve sütun endeksini col değişkenine atarsak, o zaman herhangi bir elemana aşağıda gösterildiği gibi erişebilirsiniz:


matrix[row, col]


Çokboyutlu dizileri kullandığınızda her eleman benzersizdir ve dizinin endeksleri ile tanımlanabilir:


nDimensionalArray[index1, …, indexN]



7.8.5 Çokboyutlu Dizinin Uzunluğu
Çokboyutlu bir dizinin her boyutu, programın yürütülmesi sırasında ulaşılabilir olan kendi uzunluğuna sahiptir. İki-boyutlu bir dizi için verilen bir örneğe bakalım:


int[,] matrix =

{

{1, 2, 3, 4},



{5, 6, 7, 8},

};



Bu iki boyutlu dizinin satır sayısını matrix.GetLength(0) kullanarak ve satır başına toplam sütun sayısını matrix.GetLength(1) kullanarak alabilirsiniz. Yani, bu durumda, matrix.GetLength(0) fonksiyonu 2 döndürür ve matrix.GetLength(1) fonksiyonu 4 döndürür.

7.8.6 Matrisin Yazdırılması – Örnek
Bir sonraki örnekte iki boyutlu dizilerin konsolda nasıl yazdırabileceğini göstereceğiz:

// Declare and initialize a matrix of size 2 x 4

int[,] matrix =

{

{1, 2, 3, 4}, // row 0 values



{5, 6, 7, 8}, // row 1 value

};
// Print the matrix on the console

for (int row = 0; row < matrix.GetLength(0); row++)

{

for (int col = 0; col < matrix.GetLength(1); col++)



{

Console.Write(matrix[row, col]);

}

Console.WriteLine();



}



Öncelikle yineleme yapacağımız ve konsolda yazdırmak istediğimiz diziyi bildiriyoruz ve başlatıyoruz. Dizi iki-boyutludur, bu nedenle satırlar üzerinden yineleme yapan bir for-döngüsü ve her satır için sütunlar arasında yineleme yapacak içiçe bir for-döngüsü kullanıyoruz. Her yinelemede mevcut elemanı bu elemana erişmek için uygun olan satır ve sütun endekslerini kullanarak yazdıracağız. Bu kod parçası çalıştırıldığında, çıktı olarak sonucu aşağıdaki gibidir:

1 2 3 4

5 6 7 8




7.8.7 Konsoldan Matrisi Okutma – Örnek
Bu örnekte konsoldan iki-boyutlu bir dizinin nasıl okutulacağını öğreneceksiniz. Öncelikle, iki-boyutun uzunluk değerlerini okutmalıyız ve daha sonra iki içiçe döngü yardımıyla her elemanın değerini belirlemeliyiz (ve sonunda dizi değerlerini yazdırmalıyız):



Console.Write("Enter the number of the rows: ");

int rows = int.Parse(Console.ReadLine());


Console.Write("Enter the number of the columns: ");

int cols = int.Parse(Console.ReadLine());


int[,] matrix = new int[rows, cols];
Console.WriteLine("Enter the cells of the matrix:");
for (int row = 0; row < rows; row++)

{

for (int col = 0; col < cols; col++)



{

Console.Write("matrix[{0},{1}] = ",row, col);

matrix[row, col] = int.Parse(Console.ReadLine());

}

}


for (int row = 0; row < matrix.GetLength(0); row++)

{

for (int col = 0; col < matrix.GetLength(1); col++)



{

Console.Write(" " + matrix[row, col]);

}

Console.WriteLine();



}


Program çalıştırıldığında, sonuç olarak çıktısı (bu durumda, üç satır ve iki sütundan oluşan bir dizi için) aşağıdaki gibidir:

Enter the number of the rows: 3

Enter the number of the columns: 2

Enter the cells of the matrix:

matrix[0,0] = 2

matrix[0,1] = 3

matrix[1,0] = 5

matrix[1,1] = 10

matrix[2,0] = 8

matrix[2,1] = 9

2 3


5 10

8 9




7.8.8 Bir Matrisin Maksimal Platformu – Örnek
Bir sonraki örnekte bir başka ilginç problemi çözeceğiz: Tamsayılardan oluşan, iki boyutlu dikdörtgensel bir dizi (matris) veriliyor ve bizden istenen elemanlarının toplamı maksimum olan 2 x 2 boyutlu alt-matrisini bulmak ve bunu konsolda yazdırmaktır.
Probleme şöyle bir çözüm bulunabilir:

MaxPlatform2x2.cs

class MaxPlatform2x2

{

static void Main()



{

// Declare and initialize the matrix

int[,] matrix = {

{ 0, 2, 4, 0, 9, 5 },

{ 7, 1, 3, 3, 2, 1 },

{ 1, 3, 9, 8, 5, 6 },

{ 4, 6, 7, 9, 1, 0 }

};
// Find the maximal sum platform of size 2 x 2

long bestSum = long.MinValue;

int bestRow = 0;

int bestCol = 0;
for (int row = 0; row < matrix.GetLength(0) - 1; row++)

{

for (int col = 0; col < matrix.GetLength(1) - 1; col++)



{

long sum = matrix[row, col] + matrix[row, col + 1] +

matrix[row + 1, col] + matrix[row + 1, col + 1];

if (sum > bestSum)

{

bestSum = sum;



bestRow = row;

bestCol = col;

}

}

}


// Print the result

Console.WriteLine("The best platform is:");

Console.WriteLine(" {0} {1}", matrix[bestRow, bestCol],

matrix[bestRow, bestCol + 1]);

Console.WriteLine(" {0} {1}", matrix[bestRow + 1, bestCol],

matrix[bestRow + 1, bestCol + 1]);

Console.WriteLine("The maximal sum is: {0}", bestSum);

}

}




Program çalıştırıldığında, düzgün sonuç verdiğini göreceksiniz:

The best platform is:

9 8


7 9

The maximal sum is: 33




Algoritmayı şöyle açıklayabiliriz: İlk olarak tamsayıları içeren iki-boyutlu bir dizi oluşturmalıyız. bestSum, bestRow, bestCol adındaki yardımcı değişkenleri bildiriyoruz ve bestSum değişkenini minimum long türü değeri ile başlatıyoruz (yani, herhangi bir başka değer bundan daha büyük olacaktır). Unutmayınız ki, 4 tamsayının toplamı int türüne sığmayabilir, bu nedenle long kullanmalıyız.
bestSum değişkeninde, mevcut maksimal toplamı ve bestRow ve bestCol değişkenlerinde, mevcut en iyi alt-matrisin endeksini tutuyoruz. Mevcut satır ve mevcut sütun 2 x 2 büyüklüğündeki alt matrisin başlangıç ​​elemanını gösterir. Bu matris şu ana kadar bulunan ve elemanları toplamı maksimum olan matristir.
2 x 2 boyutlu bir alt-dizinin bütün elemanlarına erişmek için birinci elemanın endeksini bilmemiz gerekir. Bunu bildikten sonra, kolayca geri kalan 3 elemana aşağıdaki şekilde erişebiliriz:

matrix[row, col]

matrix[row, col + 1]

matrix[row + 1, col]

matrix[row + 1, col + 1]




Bu örnekte, row ve col 2 x 2 boyutundaki alt-matrisin ilk elemanının endeksini belirtiyor. Bu alt-matris matrix dizisinin bir parçasıdır.
Belirli bir satır ve sütundan başlayan 2 x 2 boyutundaki matrisin dört elemanına nasıl erişeceğimizi bildikten sonra, maksimal alt-matrisi bulmak için kullanacağımız algoritmaya bakabiliriz.
En iyi toplama sahip olan platforma ulaşana kadar, matrisin her 2 x 2 platformu üzerinden yineleme yapmamız gerekiyor. İçiçe iki for-döngüsü ve row ve col adında iki değişken kullanarak bunu gerçekleştireceğiz. Unutmayın ki, tüm matris üzerinden yineleme yapmıyoruz, çünkü row + 1 veya col + 1 dizin endeksine erişmeye çalışırsanız, son satır veya son sütundaki gibi, matris aralığının dışına çıkılacaktır ve sırasıyla System.IndexOutOfRangeException istisnası atılır.
Alt-matrisin mevcut her elemanının komşu elemanlarına erişiyoruz ve onları topluyoruz. Mevcut toplamın şu an için mevcut en yüksek toplamdan daha büyük olup olmadığını kontrol ediyoruz. Eğer öyleyse, mevcut toplamımız en iyi toplam olur ve bestRow ve bestCol güncellemesi mevcut endeksler için yapılır. Yani, ana matris boyunca yapılan yinelemelerinin tümü bittiğinde, maksimal toplam ve 2 x 2 boyutundaki alt-matrisin ilk elemanı ve endeksleri bulunur.
Aynı maksimal toplama sahip birden fazla alt-matris olması durumunda, ilk görüneni bulacağız.
Örneğin sonunda 2 x 2 büyüklüğünde istenilen alt-matrisi ve elemanlarının toplamını konsolda uygun formatta yazdırıyoruz.

7.9 Çentikli Dizi
C# dilinde dizi içinde dizi tanımlayabiliriz, bunlara çentikli (jagged) dizi diyoruz.
Çentikli dizilerde dizi içinde dizi görülür, yani her satırı kendine özgü bir dizi içerir, ve o dizi diğer satırlardaki dizilerden daha farklı bir uzunluğa sahip olabilir.

7.9.1 Çentikli Dizi Bildirimi
Çokboyutlu dizilerle karşılaştırdığımızda, çentikli dizilerin bildiriminde göze çarpan tek fark, sadece bir adet çift parantezin kullanılmamasıdır. Çentikli dizilerde her boyut, boyut başına birer çift parantez ile bildirilir. Aşağıda gösterildiği şekilde tahsis edilir:

int[][] jaggedArray;

jaggedArray = new int[2][];

jaggedArray[0] = new int[5];

jaggedArray[1] = new int[3];




Bir çentikli dizinin nasıl bildirileceği, nasıl bellek tahsis edileceği ve başlatılacağı aşağıda gösterilmiştir (elemanları tamsayılardan oluşan birer dizi olan çentikli dizi):


int[][] myJaggedArray = {

new int[] {5, 7, 2},

new int[] {10, 20, 40},

new int[] {3, 25}

};



7.9.2 Bellek Tahsisi
Aşağıdaki şekil şimdi bildirilen myJaggedArray adındaki çentikli dizinin bellekte nasıl tahsis edildiğini gösteriyor. Gördüğümüz gibi çentikli dizi bir referanslar topluluğudur. Çentikli dizi herhangi bir diziyi doğrudan içermemektedir, onlara işaret eden elemanları içerir. Boyutu önceden bilinmez, ve bu nedenle CLR sadece içerideki dizilere olan referansları tutar. Çentikli dizi bir dizi-elemanı için bellek ayırdıktan sonra, bir sonraki referansın başlangıcı, dinamik bellekte yeni oluşturulan bloğa işaret eder. Örneğin myJaggedArray değişkeni programın yürütme yığıtında saklanır ve dinamik bellekte bir bloğa işaret eder. Dinamik belleğin bu noktasında diğer üç blok için ayrılan belleğin üç referansı seri olarak birbiri ardı sıra saklanır. Bunların her biri çentikli dizinin elemanlarını tanımlayacak şekilde tamsayılardan oluşan birer diziyi içermektedir.

7.9.3 Elemanları Başlatma ve Erişim
Çentikli diziyi oluşturan dizilerin elemanlarına onların endekslerini kullanarak erişebiliriz. Bir sonraki örnekte yukarıda bildirilen myJaggedArray içindeki 0 endeksinde saklanan dizinin endeksi 3 olan elemanına erişeceğiz:

myJaggedArray[0][2] = 45;



Çentikli dizinin elemanları tek-boyutlu veya çok-boyutlu diziler olabilir. İki-boyutlu dizilerden oluşan çentikli diziye bir örnek aşağıda verilmiştir:

int[][,] jaggedOfMulti = new int[2][,];

jaggedOfMulti[0] = new int[,] { { 5, 15 }, { 125, 206 } };

jaggedOfMulti[1] = new int[,] { { 3, 4, 5 }, { 7, 8, 9 } };


7.9.4 Pascal Üçgeni – Örnek
Bir sonraki örnekte Pascal üçgenini oluşturmak ve görselleştirmek için bir çentikli dizi kullanılmıştır. Matematikten bildiğimiz gibi, üçgenin ilk satırı 1 sayısını içerir ve her bir sonraki sayı yukarıdaki satırda bulunan iki sayının toplamı tarafından oluşturulur. Buna göre Pascal üçgeninin ilk 5 satırı aşağıdaki gibi görünmelidir:

1

1 1


1 2 1

1 3 3 1


1 4 6 4 1

. . .



Belirli bir yüksekliğe sahip, örneğin 12, bir Pascal üçgenini oluşturmak için triangle[][] adında çentikli dizi tahsis ediyoruz. Bu dizi sıfırıncı satırda 1 eleman, birinci satırda 2 eleman, ikinci satırda 3 eleman, vb. içerir. İlk önce triangle[0][0]=1 olarak diziyi başlatıyoruz ve hücrelerin geri kalanı 0 varsayılan değeri ile tahsis edilmiştir. Sonra satırlar üzerinden döngü aracılığıyla yineleme yapıyoruz ve row satırını kullanarak row + 1 satırının değerlerini elde ediyoruz. Mevcut satırın sütunları, içiçe bir for döngüsü üzerinden çalışır. Üçgenin değerlerini belirten Pascal tanımları aşağıdaki gibidir: mevcut satırdaki mevcut hücrenin değeri (triangle[row][col]) aşağıdaki hücreye (triangle[row+1][col]) ve sağ taraftaki ve aşağıdaki hücreye (triangle[row+1] [col+1]) eklenir. Sonucun hizalanması gerektiği için uygun boşluklarla (String sınıfının PadLeft() metotunu kullanarak) yazdırıyoruz.


PascalTriangle.cs

class PascalTriangle

{

static void Main()



{

const int HEIGHT = 12;


// Allocate the array in a triangle form

long[][] triangle = new long[HEIGHT + 1][];


for (int row = 0; row < HEIGHT; row++)

{

triangle[row] = new long[row + 1];



}
// Calculate the Pascal's triangle

triangle[0][0] = 1;

for (int row = 0; row < HEIGHT - 1; row++)

{

for (int col = 0; col <= row; col++)



{

triangle[row + 1][col] += triangle[row][col];

triangle[row + 1][col + 1] += triangle[row][col];

}

}


// Print the Pascal's triangle

for (int row = 0; row < HEIGHT; row++)

{

Console.Write("".PadLeft((HEIGHT - row) * 2));



for (int col = 0; col <= row; col++)

{

Console.Write("{0,3} ", triangle[row][col]);



}

Console.WriteLine();

}

}

}




Programı çalıştırdığınızda, düzgün çalıştığını ve verilen bir satır sayısı için (aşağıdaki örnekte YÜKSEKLİK=12) Pascal üçgenini oluşturduğunu göreceksiniz.


1

1 1


1 2 1

1 3 3 1


1 4 6 4 1

1 5 10 10 5 1

1 6 15 20 15 6 1

1 7 21 35 35 21 7 1

1 8 28 56 70 56 28 8 1

1 9 36 84 126 126 84 36 9 1

1 10 45 120 210 252 210 120 45 10 1

1 11 55 165 330 462 462 330 165 55 11 1




7.10 Alıştırmalar


  1. 20 adet tamsayıdan oluşan bir dizinin her elemanını kendi endeksinin 5 katı ile çarparak elemanları konsolda yazdıran bir program yazın.

  1. İki diziyi konsoldan okutan ve eşit olup olmadıklarını kontrol eden bir program yazın. (İki dizinin eşit olması için eşit uzunlukta olmaları ve aynı endeksteki tüm elemanlarının eşit olması gerekir.)

  2. char türünde iki diziyi alfabetik sıralamaya göre (karakter karakter) karşılaştıran ve hangisinin daha önce geldiğini yazdıran bir program yazın.

  3. Bir dizinin ardışık eşit elemanlarından oluşan en uzun serisini bulan ve yazdıran bir program yazın. Örneğin: {1, 1, 2, 3, 2, 2, 2, 1} à {2, 2, 2}.

  4. Bir dizinin ardışık artan sırada yerleştirilmiş elemanlarından oluşan en uzun serisini bulan ve yazdıran bir program yazın. Örneğin: {3, 2, 3, 4, 2, 2, 4} à {2, 3, 4}.

  5. arr[n] dizisinin artan sırada elemanlarından oluşan en uzun serisini bulan bir program yazın. Elemanların ardışık olarak yerleştirilmiş olması gerekli değildir. Örneğin: {9, 6, 2, 7, 4, 7, 6, 5, 8, 4} à {2, 4, 6, 8}.

  6. Konsoldan iki tamsayı, N, ve K (Ktoplamı en büyük olan K adet ardışık elemanını bulun.

  7. Bir dizinin sıralanması demek elemanlarının artan (yada azalan) sırada yeniden düzenlenmesi anlamına gelir. "Selection sort" algoritmasını kullanarak verilen bir diziyi sıralayan bir program yazın.

  8. Verilen bir dizinin toplamı en büyük olan ardışık sayılarından oluşan altdizisini bulan bir program yazın. E.g.: {2, 3, -6, -1, 2, -1, 6, 4, -8, 8}  11

  9. Verilen bir dizide en sık tekrarlanan elemanı bulan bir program yazın. Örneğin: {4, 1, 1, 4, 2, 3, 4, 4, 1, 2, 4, 9, 3} à 4 (5 kere).

  10. Bir dizide toplamı verilen bir S sayısı olan ardışık sayı dizisini bulan bir program yazın. Örneğin: {4, 3, 1, 4, 2, 5, 8}, S=11 à {4, 2, 5}.

  11. Kare matrisler oluşturan ve elemanlarını aşağıdaki şekilde gösterildiği gibi biçimlendirilmiş halde konsolda yazdıran bir program yazın. Matrislerin boyutu konsoldan okutulacaktır. 4 x 4 boyutunda matrisler için aşağıdaki örneklere bakınız ve benzer tarzda diğer boyutlar için de programlayınız:





  1. n x m boyutunda dikdörtgensel dizi oluşturan bir program yazın. Boyutları ve elemanları konsoldan okutulmalıdır. Oluşturulan dizi için (3, 3) boyutunda maksimal toplamı olan bir platform bulun.

  2. string türünde bir matrisin eşit elemanlarından oluşan en uzun serisini bulan bir program yazın. Bir matris için seri, aynı satır, sütun veya çapraz komşu elemanlardan oluşan bir küme olarak tanımlanıyor.



  1. Latin harflerinin tümünü içeren bir diziyi oluşturan bir program yazın. Kullanıcı konsoldan bir sözcük girişi yaptığında, program sözcüğü oluşturan harflerin endeksini konsolda yazdıracaktır.

  2. Tamsayılardan oluşan sıralı bir dizide verilen bir elemanı bulmak için “binary search” algoritmasını kullanan bir program yazın.

  3. Tamsayılardan oluşan bir diziyi “merge sort” algoritmasını kullanarak sıralayan bir program yazın.

  4. Tamsayılardan oluşan bir diziyi “quick sort” algoritmasını kullanarak sıralayan bir program yazın.

  5. [1 ... 10.000.000] aralığındaki tüm asal sayıları bulan bir program yazın.

  6. * N elemanlı verilen bir dizinin toplamı S olan bir alt kümesi olup olmadığını kontrol eden bir program yazın. N, S sayıları ve dizinin elemanları konsoldan okutulacaktır. Dizide aynı sayı birçok kez eleman olarak girilebilir. Örneğin: {2, 1, 2, 4, 3, 5, 2, 6}, S = 14  evet (1 + 2 + 5 + 6 = 14)

  7. Verilen N, K ve S sayıları için N adet sayı içinden toplamı S olan K adet elemanı bulan bir program yazın. S toplamı bulunamazsa program bunun mümkün olmadığını söylemelidir. Örneğin: {3, 1, 2, 4, 9, 6}, S = 14, K = 3  evet (1 + 2 + 4 = 14)

  8. Tamsayılardan oluşan bir diziyi konsoldan okutan ve elemanlarının olabildiğince az sayıda olanları çıkarıldığında, geriye kalan dizinin artan sırada sıralı olması koşulunu sağlayacak bir program yazın. Örneğin: {6, 1, 4, 3, 0, 3, 6, 4, 5}  {1, 3, 3, 4, 5}

  9. Konsoldan N ve K tamsayılarını okutan ve [1...N] sayı aralığındaki K elemanın tüm permütasyonlarını (eleman sırası önemli) yazdıran bir program yazın. Örneğin: N = 3, K = 2  {1, 1}, {1, 2}, {1, 3}, {2, 1}, {2, 2}, {2, 3}, {3, 1}, {3, 2}, {3, 3}.

  10. Konsoldan N ve K tamsayılarını okutan ve [1...N] sayı aralığındaki K elemanların tüm kombinasyonlarını (eleman sırası önemli değil) yazdıran bir program yazın. Örneğin: N = 5, K = 2  {1, 2}, {1, 3}, {1, 4}, {1, 5}, {2, 3}, {2, 4}, {2, 5}, {3, 4}, {3, 5}, {4, 5}.

  11. Verilen bir matriste aynı değerden oluşan en büyük alanın kaç adet eleman tarafından oluşturulduğunu bulan bir program yazın. Matris içinde alan, (satır ve sütun bakımından) komşu elemanlardan oluşan bir küme olarak tanımlanıyor. 3 değerine sahip 13 elemandan oluşan bir maksimum alan aşağıdaki örnekte gösterilmiştir:


Yüklə 3,36 Mb.

Dostları ilə paylaş:
1   ...   10   11   12   13   14   15   16   17   ...   31




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©muhaz.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin