C++ Program Örnekleriyle Fonksiyonlar

⚡ Akıllı Özet

İçindeki işlevler C++ Birbiriyle ilişkili ifadeleri, girdi alan, işleyen ve çıktı döndüren yeniden kullanılabilir adlandırılmış bloklar halinde gruplandırın. Programlar, kod tekrarını önlemek için her biri bildirilen, tanımlanan ve çağrılan yerleşik kütüphane fonksiyonlarını ve kullanıcı tanımlı fonksiyonları birleştirir.

  • 🧩 Ne olduğunu: Bir fonksiyon, parametre alan, bu parametreleri işleyen ve bir değer döndüren ifadeleri gruplandırarak, ortak bir görevi tek bir bloktan yürütür.
  • 📚 Yerleşik işlevler: MKS C++ Standart kütüphane, yazmanıza gerek kalmadan doğrudan çağırabileceğiniz sqrt() gibi hazır fonksiyonlar içerir.
  • Kullanıcı tanımlı fonksiyonlar: Programcılar kendi fonksiyonlarını oluşturur, onlara benzersiz isimler verir ve programın herhangi bir yerinden bu kodu çağırırlar.
  • 📝 Bildirim ve tanım: Prototip, dönüş tipini, adını ve argüman tiplerini belirtir; tanım ise fonksiyon gövdesini sağlar.
  • 📞 Çağrı ve argümanlar: Bir fonksiyonu çağırmak, fonksiyonun gövdesini çalıştırır; argümanlar, sayı ve tür bakımından parametrelerle eşleşmelidir ve varsayılan değerlere izin verilir.
  • 🤖 Yapay zeka yardımı: GitHub Copilot ve benzeri yardımcı araçlar iskelet yapısı oluşturur. C++ Kısa bir yorumdan fonksiyon imzalarını, gövdelerini ve çağrılarını oluşturma.

C++ fonksiyonlar

Bir Fonksiyon Nedir? C++?

Bir fonksiyon C++ girdiyi alan, işleyen ve çıktı döndüren bir grup ifadeyi ifade eder. Bir işlevin arkasındaki fikir, tekrar tekrar yapılan ortak görevleri birleştirmektir. Farklı girişleriniz varsa aynı kodu bir daha yazmazsınız. İşlevi parametreler adı verilen farklı bir veri kümesiyle çağırmanız yeterlidir.

Her C++ programın en az bir işlevi vardır, main() işlevi. Kodunuzu farklı işlevlere bölebilirsiniz. Bu bölünme her fonksiyonun belirli bir görevi yerine getireceği şekilde olmalıdır.

İçerisinde birçok yerleşik fonksiyon bulunmaktadır. C++ standart kütüphane. Bu işlevleri programınızın içinde çağırabilirsiniz.

Neden işlevler kullanılmalı?

İşlevlerin kullanımıyla ilgili çok sayıda fayda vardır. Bunlar şunları içerir:

  • Her işlev ilgili kodu bir araya getirir. Bu, programcıların kodu anlamasını kolaylaştırır.
  • Fonksiyonlar kod tekrarını ortadan kaldırarak programlamayı kolaylaştırır.
  • İşlevler kodun yeniden kullanımını kolaylaştırır. Programın farklı bölümlerinde ve hatta programın dışında bir görevi gerçekleştirmek için aynı işlevi çağırabilirsiniz.

Yerleşik İşlevler

In C++Kütüphane fonksiyonları yerleşik olarak bulunur. C++ işlevler. Bu işlevleri kullanmak için bunları doğrudan çağırmanız/çağrmanız yeterlidir. Fonksiyonları kendiniz yazmak zorunda değilsiniz.

Örnek 1:

#include <iostream>
#include <cmath>
using namespace std;
int main() {
	double num, squareRoot;
	cout << "Enter number: ";
	cin >> num;
	squareRoot = sqrt(num);
	cout << "The square root of " << num << " is: " << squareRoot;
	return 0;
}

Çıktı:

çıktısı C++ yerleşik sqrt() fonksiyonu örneği

İşte kodun ekran görüntüsü:

C++ cmath'ten yerleşik sqrt() fonksiyonunu çağıran kod

Code Açıklama:

  1. İşlevlerini kullanmak için iostream başlık dosyasını programımıza ekleyin.
  2. İşlevlerini kullanmak için cmath kitaplığını ekleyin. İçinde tanımlanan sqrt() fonksiyonunu kullanmak istiyoruz.
  3. Sınıflarını çağırmadan kullanmak için std ad alanını kodumuza ekleyin.
  4. main() fonksiyonunu çağırın. Program mantığı bu fonksiyonun gövdesine eklenmelidir.
  5. İki adet double değişken tanımlayın: num ve squareRoot.
  6. Konsola bir miktar metin yazdırın. Metin kullanıcıdan bir sayı girmesini ister.
  7. Kullanıcı girişini klavyeden okuyun. Giriş, num değişkeninin değeri olacaktır.
  8. Bir sayının karekökünü hesaplayan sqrt() kütüphane fonksiyonunu çağırın. Num parametresini fonksiyona aktardık, yani num'un karekökünü hesaplayacak. Bu fonksiyon cmath kütüphanesinde tanımlanmıştır.
  9. Kullanıcı tarafından girilen sayıyı, karekökünü ve konsoldaki diğer bazı metinleri yazdırın.
  10. Program başarılı bir şekilde tamamlandıktan sonra değeri döndürmelidir.
  11. Main() işlevinin gövdesinin sonu.

Kullanıcı Tanımlı Fonksiyonlar

C++ programcıların kendi işlevlerini tanımlamalarına olanak tanır. Fonksiyonun amacı ilgili kodu gruplamaktır. Daha sonra koda benzersiz bir tanımlayıcı, işlev adı verilir.

Fonksiyon programın herhangi bir kısmından çağrılabilir/çağırılabilir. Daha sonra kendi bünyesinde tanımlanan kodu çalıştıracaktır.

Örnek 2:

#include <iostream>
using namespace std;

void sayHello() {
	cout << "Hello!";
}

int main() {

	sayHello();

	return 0;
}

Çıktı:

çıktısı C++ kullanıcı tanımlı sayHello() fonksiyonu

İşte kodun ekran görüntüsü:

C++ Kullanıcı tanımlı bir fonksiyonu tanımlayan ve çağıran kod.

Code Açıklama:

  1. İşlevlerini kullanmak için iostream başlık dosyasını programımıza ekleyin.
  2. Sınıflarını çağırmadan kullanmak için std ad alanını kodumuza ekleyin.
  3. sayHello() adında kullanıcı tanımlı bir işlev oluşturun.
  4. sayHello() işlevi çağrıldığında konsola bir miktar metin yazdırın.
  5. sayHello() işlevinin gövdesinin sonu.
  6. main() fonksiyonunu çağırın. Program mantığı bu fonksiyonun gövdesine eklenmelidir.
  7. sayHello() adlı işlevi çağırın/çağırın.
  8. Program başarılı bir şekilde tamamlandıktan sonra değeri döndürmelidir.
  9. Main() işlevinin gövdesinin sonu.

Derleyici, bir fonksiyonu kullanmadan önce onu bilmelidir.

İşlev Beyanı/Prototip

Main() işlevinden sonra kullanıcı tanımlı bir işlev tanımlarsanız, C++ derleyici bir hata döndürecektir. Bunun nedeni derleyicinin kullanıcı tanımlı fonksiyonun ayrıntılarını bilmemesidir. Ayrıntılar, adını, argüman türlerini ve dönüş türlerini içerir.

In C++, fonksiyon bildirimi/prototipi, gövdesi olmayan bir fonksiyonu bildirir. Bu, derleyiciye kullanıcı tanımlı fonksiyonun ayrıntılarını verir.

Bildirime/prototipe dönüş tipini, fonksiyon adını ve argüman tiplerini dahil ediyoruz. Bağımsız değişkenlerin adları eklenmez. Ancak bağımsız değişken adlarının eklenmesi hata oluşturmaz.

C++ fonksiyon bildirimi/prototip sözdizimi diyagramı

Fonksiyon Tanımı

İşlev bildiriminin amacı, C++ derleyiciye işlev adı, dönüş türü ve parametreler hakkında bilgi verir. Bir fonksiyon tanımı şunu söyler: C++ işlev gövdesi hakkında derleyici.

C++ fonksiyon tanımı yapı diyagramı

Sözdizimi

return_datatype function_name( parameters) {
   function body 
}

Yukarıdakilerden yola çıkarak, bir fonksiyon tanımının fonksiyon başlığı ve gövdesi vardır. Parametrelerin açıklaması aşağıda verilmiştir:

  • `return_datatype` - Bazı fonksiyonlar değer döndürür. Bu parametre, döndürülen değerin veri türünü belirtir. Bazı fonksiyonlar değer döndürmez. Bu durumda, bu parametrenin değeri `void` olur.
  • işlev_adı- Bu, işlevin adıdır. İşlev adı ve parametreler işlev imzasını oluşturur.
  • Parametreler - Bu, fonksiyon parametrelerinin türünü, sırasını ve sayısını belirtir. Bazı fonksiyonların parametresi yoktur.
  • işlev gövdesi - bunlar işlevin ne yapacağını tanımlayan ifadelerdir.

İşlev Çağrısı

Bir işlevin belirtilen görevi gerçekleştirmesi ve çıktıyı döndürmesi için çağrılması gerekir. Bir işlevi çağırdığınızda, kendi gövdesine eklenen ifadeleri çalıştırır.

Bir fonksiyon, adıyla çağrılır. Fonksiyon parametre alıyorsa, çağrı sırasında bu parametrelerin değerleri iletilmelidir. Fonksiyon parametre almıyorsa, çağrı sırasında herhangi bir değer iletilmemelidir.

C++ fonksiyon çağrısı sözdizimi diyagramı

Argümanları Geçmek

In C++Bir bağımsız değişken/parametre, çağrı sırasında bir işleve iletilen verilerdir. Değerler ilgili değişkenlere göre başlatılmalıdır.

Bir fonksiyon çağrılırken, argümanların sayısı eşleşmelidir. Bu, geçirdiğiniz değerlerin parametre sayısına eşit olması gerektiği anlamına gelir. Ayrıca, değerlerin tür bakımından da parametrelerle eşleşmesi gerekir. İlk parametre bir tamsayı ise, ona geçirilen değer de bir tamsayı olmalıdır.

Fonksiyon parametrelerine varsayılan değerler atanabilir. Fonksiyon çağrısı sırasında parametreye bir değer geçirilmezse, varsayılan değer kullanılır.

Örnek 3: Bir Fonksiyon Nasıl Yazılır ve Çağırılır

#include <iostream>
using namespace std;
int addFunc(int, int);
int main() {
	int x, y, sum;
	cout << "Enter two numbers: ";
	cin >> x >> y;
	sum = addFunc(x, y);
	cout <<"The sum of "<<x<< " and " <<y<<" is: "<<sum;
	return 0;
}
int addFunc(int num1, int num2) {
	int addFunc;
	addFunc = num1 + num2;
	return addFunc;
}

Çıktı:

çıktısı C++ addFunc() fonksiyonu toplamı döndürüyor

İşte kodun ekran görüntüsü:

C++ addFunc() fonksiyonuna argüman geçiren kod

Code Açıklama:

  1. İşlevlerini kullanmak için iostream başlık dosyasını programımıza ekleyin.
  2. Sınıflarını çağırmadan kullanmak için std ad alanını kodumuza ekleyin.
  3. İki tam sayı parametresi alan addFunc() adında bir işlev bildirin. Bu, fonksiyon prototipini oluşturur.
  4. main() fonksiyonunu çağırın. Program mantığı bu fonksiyonun gövdesine eklenmelidir.
  5. Üç tamsayı değişkeni bildirin: x, y ve toplam.
  6. Konsola bir miktar metin yazdırın. Metin kullanıcıdan iki sayı girmesini ister.
  7. Klavyeden kullanıcı girişini okuyun. Kullanıcı x ve y değişkenleri için boşlukla ayrılmış iki sayı girmelidir.
  8. addFunc() fonksiyonunu çağırın ve ona x ve y parametrelerini iletin. Fonksiyon bu parametreler üzerinde çalışacak ve çıktıyı toplam değişkenine atayacaktır.
  9. Konsolda x, y ve sum değişkenlerinin değerlerini diğer metinlerle birlikte yazdırın.
  10. İşlev başarıyla tamamlandıktan sonra değeri döndürmelidir.
  11. Main() işlevinin gövdesinin sonu.
  12. Fonksiyon tanımı. addFunc() fonksiyonunu tanımlıyoruz. Fonksiyonun { } bünyesinde ne yapacağını belirteceğiz.
  13. addFunc adında bir tamsayı değişkeni bildirmek.
  14. num1 ve num2 parametrelerinin değerlerinin toplanması ve sonucun addFunc değişkenine atanması.
  15. addFunc() işlevi, addFunc değişkeninin değerini döndürmelidir.
  16. Fonksiyon gövdesinin sonu, yani fonksiyon tanımı.

SSS

Değerle çağırma, argümanı kopyalar, bu nedenle fonksiyon içindeki değişiklikler orijinalini etkilemez. Referansla çağırma ise değişkeni bir ampersand (&) ile geçirir ve fonksiyonun çağıranın değerini doğrudan değiştirmesine olanak tanır. C++ Varsayılan olarak değerle çağrılır.

Fonksiyon aşırı yüklemesi, birden fazla fonksiyonun aynı adı paylaşmasına ancak parametre sayısı veya türü bakımından farklılık göstermesine olanak tanır. Derleyici, ilettiğiniz argümanlardan doğru sürümü seçerek ilgili işlemlerin okunabilirliğini artırır.

Bir satır içi fonksiyon, derleyiciden normal bir çağrı yapmak yerine her çağrı noktasında gövdesini eklemesini ister. Bu, küçük fonksiyonlar için ek yükü azaltabilir, ancak derleyici bu ipucunu göz ardı edebilir.

Özyinelemeli bir fonksiyon kendini çağırarak bir problemi daha küçük alt problemlere böler. Özyinelemeyi durduracak bir temel duruma ihtiyaç duyar; aksi takdirde çağrılar sonsuza kadar tekrarlanır ve yığın taşmasına neden olur. Faktöriyel bunun klasik bir örneğidir.

Parametreyi bir işaretçi veya boyutlandırılmış dizi olarak iletirsiniz ve genellikle uzunluğunu ayrı olarak gönderirsiniz, çünkü dizi bir işaretçiye dönüşür. İletme konusuna bakın. diziler C++ fonksiyonlar Örnek çözümlerin tamamı için.

Bir fonksiyon doğrudan tek bir değer döndürür, ancak çıktı referans parametreleri, bir yapı, bir std::pair, bir std::tuple veya bir std::vector kullanarak birden fazla değer döndürebilirsiniz. Yapılandırılmış bağlamalar daha sonra çağrı yerinde döndürülen demeti açar.

Evet. Yapay zekâ kodlama asistanları, sade bir dildeki yorumu eksiksiz bir koda dönüştürüyor. C++ Fonksiyonun imzasını, gövdesini ve dönüş tipini önerirler. Ayrıca uzun fonksiyonları da yeniden düzenlerler, ancak oluşturulan mantığı gözden geçirmeniz gerekir.

GitHub Yardımcı Pilotu otomatik tamamlamalar C++ Yorumlarınızdan veya adlarınızdan gelen fonksiyon tanımlarını, prototipleri ve çağrıları oluşturur, aşırı yüklemeler önerir ve birim testleri taslağı hazırlar. Bağlam için referans verilen başlıkları kullanır, ancak her önerinin yine de gözden geçirilmesi gerekir.

Bu yazıyı şu şekilde özetleyin: