C++ İşlevine Dizi Geçirmek

Passing An Array Function C



Bir dizi, aynı veri türündeki bir grup öğedir. Diziler üzerinde gerek ana programda gerekse onun dışında, fonksiyonlarda birçok fonksiyon gerçekleştirilir. C++'da fonksiyonlar söz konusu olduğunda onları geçmemiz gerekir. Bu, argümanlar olarak parametreler aracılığıyla yapılır. Bu argümanlar, büyük diziler veya işaretçi dizisi aracılığıyla farklı şekillerde olabilir. Bu eğitimde, fonksiyonların farklı parametrelerini kullanarak dizi transferinin bazı önemli yönlerini ele alacağız.

Sözdizimi

[Dönüştip] [adınaişlev] (veritipdizi adı[diziboy])

{

işlevvücut

}

örnek 1

C++ programındaki öğrencilerin notlarını yazdırmamız gereken bir örnek düşünün. Bu baskı, ana programdan ziyade ayrı bir fonksiyonda alınacaktır. Buna karşılık ana programda girdiler alacağız ve bu değerleri parametre olarak fonksiyona aktaracağız. Fonksiyonu düşünün. Parametresinde, bir dizinin değerlerini kabul edecek bir dizi veri türü değişkeni vardır. Tam dizi burada bildirilir. İşaretler for döngüsü yardımıyla görüntülenecektir. Dizilerde olduğu gibi, onlardan çıktı almak için döngülere ihtiyacımız var.









Ana fonksiyona doğru ilerleyerek, içinde boyutu ve değerleri olan bir dizi tanımlıyoruz. Fonksiyonu çağırmamız gerektiği gibi. Bu nedenle yöntem, parametredeki dizinin adıyla birlikte işlev adını argüman olarak yazmamızdır. Dizinin boyutunu tanımlamadık.



Görüntülemek(işaretler);

Parametredeki argüman, dizinin bellek adresini belirtir. Fonksiyonun başlığının parametresinde int m[7], int *m'ye dönüştürülür. Bu, orijinal diziyle aynı adresi içerir. Fonksiyonun gövdesinde m[5] kullandığımızda, orijinal diziyi değiştireceğiz.





Boş ekran(int m[7] )

Linux işletim sisteminde bir terminal üzerinden çıktı almak için bazı ön koşulların kurulması gerekmektedir. Komut istemi terminalinde kodu derlemek ve yürütmek için bir derleyiciye ihtiyaç duyar. Derleme için C++'da G++ kullanılır.



$g++ -veyakod3 kod3.c

$./kod3

Kaynak dosyadan çıktı dosyasına çıktıyı depolamak için –o kullanılır.

Çıktıdan, ana fonksiyonda dizide başlatılan tüm sayıların ekran fonksiyonu üzerinden geçirildiğini ve görüntülendiğini gözlemleyebilirsiniz.

Örnek 2

Dizinin parametreden geçmesine ilişkin bir başka örnek de fonksiyona çok boyutlu bir dizi geçirmektir. Burada iki boyutlu bir dizi (2d) kullanılır. Ana fonksiyonda bir dizi başlatmamız gerekiyor.

Int dizisi[sıra][kolon]

2d dizi başlatma, satır ve sütunu içerir. Ve onların sırası program boyunca korunmalıdır. 2d dizisi, parantez içinde iki sayı ile başlatılır. Başlatmada 2 sütunu tanımladığımız gibi.

Görüntülemek(birde);

Parametrede yalnızca dizi adını argüman olarak kullanacağız.

Şimdi ekran fonksiyonunun işleyişini göreceğiz. İşlev başlatıldığında, işlev çağrısı tarafından ana program aracılığıyla geçirilen bir diziyi kabul etmek için bir dizi değişkeni alır.

Boş ekran(int n[][2] )

Sütun sayısının belirtilmesi zorunludur. Karşılaştırıldığında, satırlar için gerekli değildir. Bu yüzden sonuçları görüntülemek için for döngüsünü kullandığımız için satır parantezlerini burada boş bıraktık. Ancak 2 boyutlu bir dizi durumunda, iç içe bir for döngüsü kullanırız. İçinde 2 değişken bulunan iki for deyimi içerir.

Aynı derleyiciyi kullanarak çıktıyı görebiliriz. Her değerin ayrı ayrı görüntülendiği sonuçları satır ve sütun numarası ile görebilirsiniz.

Örnek 3

Bu örnek öncekilerden biraz farklı. Bu örnekte, fonksiyon çağrısının parametresinde dizi boyutundan bahsediyoruz. Ve işlev bildiriminde, bir dizinin boyutunu kabul etmek için bir değişken de tanıtılır.

Ana programdan başlayarak, değerlerle bir dizi başlatılır.

Ort = getAverage(denge,5);

Sonuç, avg değişkeninde saklanacaktır. Yalnızca dizi adını iletmek yerine, dizi boyutu da parametreye eklenir.

Parametre ayrıca dizi tipi değişkenini ve dizi boyutunu almak için bir tamsayı veri tipini içerir. Ana programın türü int çünkü fonksiyondan bir tamsayı değeri alacak. Aksi takdirde, diğer durumlarda geçersizdir.

Şimdi çıktıyı göreceğiz. Bu değer, fonksiyondan elde edilen görüntü aracılığıyla görülebilir.

Örnek 4

Bu örnek, aslında iki diziden dizideki maksimum sayının belirlenmesiyle ilgilidir. Burada ana programda iki diziyi başlatıyoruz. Her iki dizi de ayrı işlev çağrılarında işleve ayrı ayrı iletilir

baskıMax(dizi1);

baskıMax(dizi2);

Burada printMax işlevin adıdır ve arr dizidir. Sonuç, fonksiyondan geri dönmez ve orada görüntülenir. For döngüsü, her iki dizideki maksimum sayıyı hesaplayacaktır. For döngüsü içinde if ifadesi kullanılır. Fonksiyonun başlığı şudur:

geçersiz baskıMax(int dizi[5])

Her iki dizi de farklı değerler içerdiğinden, her iki sonuç da farklı olacaktır.

Örnek 5

Bu örnek, parametrelerden geçen tüm dizi türlerinin özetidir. Bunlar boyutlandırılmış, boyutlandırılmamış veya işaretçi dizileri olabilir. Bunları tek tek değerlendireceğiz.

Ana programda, her fonksiyon önce bildirilir. Bildirilerindeki farkı belirtebilirsiniz.

Int toplamı1(int tmp[5]);

Int toplam2(int tmp[]);

Int toplamı3(int*tmp);

Bu üç dizi, fonksiyonda bu parametrelere sahip dizilerin geçirilebileceğini gösterir.

Fonksiyonun başlatılmasından sonra, dizinin bildirildiği ana programa sahibiz. Önceki örnekten farklı olarak, iki yerine bir dizi başlatılır, ancak üç farklı yolla iletilir. Şimdi burada yapılan fonksiyon çağrılarını göreceğiz.

Toplam = toplam1(satış);

Toplam =toplam2(satış);

Toplam = toplam3(satış);

Çıktı ana işlevde görüntülenir, bu nedenle işlev tarafından döndürülen değeri kabul etmek için bir değişken bildirilir. Her üç işlev çağrısından da burada parametrelerin aynı olduğunu görebilirsiniz. Her dizi yalnızca bir dizinin adını içerir. Ancak diziyi kabul eden fonksiyonun parametreleri farklıdır.

Tüm sayıların toplamı For döngüsünün kullanımından hesaplandığından, üç işlevin de iç gövdesi aynıdır. Metodoloji ve dizinin değerleri aynıdır; sadece fonksiyonların parametreleri arasında ayrım vardır. Bu nedenle, bir diziyi kabul etmek için farklı yöntemler kullanabileceğimiz veya aynı işlevi gerçekleştirebileceğimiz kanıtlanmıştır ve cevap aynıdır. Çıktıyı kontrol ederek onaylayabiliriz. Aynı derleme prosedürünü kullanarak, aşağıdaki ekteki resimde gösterilen çıktıyı alacağız.

Kullanılan üç fonksiyon için de cevabın aynı olduğunu görebilirsiniz.

Çözüm

Bu makalede, kullanıcı bir dizinin parametrelerde geçiş yöntemini öğrenecektir. Değer döndürme veya argümanlarda iletme söz konusu olduğunda, diziler birçok durumda işlenebilir.