Standart C ile bir dizinin tüm elemanlarını toplamak
Soru: Bir diziyi paremetre olarak alıp, dizinin tüm elemanlarını toplayıp döndüren bir fonksiyon yazınız.
Bu fonksiyonu iki şekilde yazabiliriz, pointer aritmetiği kullanarak toplamı kolay bir şekilde bulabiliriz. Aşağıdaki kodlarda diziTopla isimli bir fonksiyon tanımlanmıştır. Bu fonksiyon double tipinde bir pointer'i ve int tpindeki n eleman sayısını parametre olarak almaktadır. Pointer aritmetiği kullanıldığında dizinin ilk elemanına 0'dan başlayarak aşağıdaki şekilde erişilecektir.
*(a+0)
*(a+1)
*(a+2)
....
*(a+n-1)
Yukarıdaki işlemde 0,1,2,...,n-1 şeklinde eklemeler gittiğinden bu işlemi bir döngü ile aşağıdaki şekilde sadece iki satır kod yazarak yapabiliriz.
for (int i=0;i<n;i++)
*(a+i)
Bu döngü dönerken toplamı bulmak için double tipinde bir toplam değişkeni oluşturup, her defasında toplam içinde değerleri biriktiriyoruz.
Aşağıdaki kullanımda diziTopla fonksiyonu çağrılırken dikkat ederseniz, parametrelerde dizinin sadece adını yazdık, köşeli parantez kullanmadık. Burada x dizisinin sadece ilk değerinin, yani sıfırıncı indisinin adresi gönderilmektedir.
Bu sayfada yer alan kodlar Jetbrains firmasının Clion IDE'si ile yazılmıştır, Eclipse veya Netbeans gibi IDE'ler kullanabilirsiniz. C++ derleyicisi olarak MinGW kullanılmaktadır. Başka C++ derleyicileri kullandığınızda bu kodlarda yer alan komutların bulunduğu kütüphaneler farklı olabilir. İlgili komutları kendi derleyicinizin dökümanlarına bakarak projenize dahil ettiğinizde çalışacaktır.
Mutlu kodlamalar,
Oğuzhan TAŞ
Ocak 2021
Bu fonksiyonu iki şekilde yazabiliriz, pointer aritmetiği kullanarak toplamı kolay bir şekilde bulabiliriz. Aşağıdaki kodlarda diziTopla isimli bir fonksiyon tanımlanmıştır. Bu fonksiyon double tipinde bir pointer'i ve int tpindeki n eleman sayısını parametre olarak almaktadır. Pointer aritmetiği kullanıldığında dizinin ilk elemanına 0'dan başlayarak aşağıdaki şekilde erişilecektir.
*(a+0)
*(a+1)
*(a+2)
....
*(a+n-1)
Yukarıdaki işlemde 0,1,2,...,n-1 şeklinde eklemeler gittiğinden bu işlemi bir döngü ile aşağıdaki şekilde sadece iki satır kod yazarak yapabiliriz.
for (int i=0;i<n;i++)
*(a+i)
Bu döngü dönerken toplamı bulmak için double tipinde bir toplam değişkeni oluşturup, her defasında toplam içinde değerleri biriktiriyoruz.
Aşağıdaki kullanımda diziTopla fonksiyonu çağrılırken dikkat ederseniz, parametrelerde dizinin sadece adını yazdık, köşeli parantez kullanmadık. Burada x dizisinin sadece ilk değerinin, yani sıfırıncı indisinin adresi gönderilmektedir.
Bu işlemin sonucunda toplam 25.5 şeklinde dönecektir.
#include <stdio.h>
double diziTopla(double *a, int n){
double toplam=0;
for(int i=0;i<n;i++)
toplam+=*(a+i);
return(toplam);
}
int main() {
double x[] ={1,2,3,4,5,10.5};
double sonuc=diziTopla(x,6);
printf("Sonuc: %lf",sonuc);
return 0;
}
Bu sayfada yer alan kodlar Jetbrains firmasının Clion IDE'si ile yazılmıştır, Eclipse veya Netbeans gibi IDE'ler kullanabilirsiniz. C++ derleyicisi olarak MinGW kullanılmaktadır. Başka C++ derleyicileri kullandığınızda bu kodlarda yer alan komutların bulunduğu kütüphaneler farklı olabilir. İlgili komutları kendi derleyicinizin dökümanlarına bakarak projenize dahil ettiğinizde çalışacaktır.
Mutlu kodlamalar,
Oğuzhan TAŞ
Ocak 2021
Dil Değiştir(Change Language)
Kategoriler
- Csharp(58)
- Csharp Formlar(23)
- Web Tasarım(9)
- CSS(27)
- JavaScript(37)
- PHP(50)
- Laravel(3)
- ASP.net(38)
- Excel(15)
- Güvenlik(4)
- E-Ticaret(3)
- Kariyer(5)
- SQL Server(29)
- MySQL(16)
- Linux(17)
- MacOSX(8)
- Ayarlar(12)
- Bilgisayar Ağları(3)
- Symfony(1)
- Teknoloji(7)
- VBS(1)
- Arduino(6)
- RaspberryPi(1)
- Algoritmalar(15)
- HTML(3)
- Python(2)
- Bash Script(7)
- C Programlama(10)
- Flutter - Dart(11)
- Bootstrap(1)
En çok Okunan 18 Makale
- :: Excelde EĞER Fonksiyonu Kullanımı...
- :: Csharp ile Access Veritabanı Bağlan...
- :: SQL nedir, Temel SQL Komutları nele...
- :: Hangi Linux Dağıtımı?
- :: OSX İşletim Sistemine PHP, MySQL, A...
- :: Excel Hesap tablosunda EĞERSAY Fonk...
- :: PHP dilini kullanarak MySQLi tekniğ...
- :: Excel Hesap tablosunda ÇOKETOPLA Fo...
- :: Excel Hesap tablosunda ETOPLA Fonks...
- :: Excel Hesap tablosunda ÇOKEĞERSAY F...
- :: Hangi Programlama Dilini Öğrenmeliy...
- :: Mac Bilgisayarınıza Windows 7 Yükle...
- :: PHP ile Basit Dosya Yükleme
- :: C# Programlama Dili ile İlgili Örne...
- :: Excel hücrelerinde yıldız koyarak b...
- :: PHP Dili kullanarak MySQLi Tekniği ...
- :: PhpMyAdmin Şifresi Nasıl Değiştiril...
- :: Hangisi acaba, PHP mi ASP.NET mi ?