1-)Void fonksiyonu ile int fonksiyonu arasında gerçek dünyaya döndürür/döndürmez olayı tam olarak nedir? 2-)Bir fonksiyonun içine hangi durumlarda parametre atılmalı?Parametre atılan fonksiyon main içine nasıl çağırılır? 3-)int fonksiyonun içinde sonucu yazdıran return ile printf aynı işi mi görür? 4-)Bazı örneklerde gördüğüm kadarıyla int main() yerine main(void) yazılıyor.Bunun anlamı nedir?
1- void tipe sahip fonksiyonlar fonksiyon içinde yapılan işlemlerden sonra fonksiyonun çağırdığı noktaya değer döndürmez (return satırları yoktur). int tipli bir fonksiyon ise fonksiyon içerisinde yapılan işlemden sonra çağrıldığı yere bir integer değer döndürür.
Örnek :
int dikdortgenAlanHesapla(int x, int y){ int sonuc = x * y; return sonuc; }
2- fonksiyonun yaptığı işlemlerde içine parametle girilmesi gerekiyorsa parametre yollarsın.
Örnek : parametresiz basit bir fonksiyon. yaptığı işlemde parametre kullanacak bir yeri yok gerek yok. Parametreli örnek ise yukarıdaki olabilir. main içerisinde de dikdortgenAlanHesapla(5,10); diye çağırırsın.
void selamla(){ cout << "selam"; }
3- printf ekrana yazdırır return geri döndürür. çağırdığın yerde fonksiyonu bir degiskene atamış olabilirsin. bulduğun veriyi daha sonra kullanacak olabilirsin. printf yaparsan sonucu ekrana yazar fonksiyon bitip geri döndüğünde hesaplanan/bulunan veri hafızadan silinmiş olur.
4- bilgisayar ortamında main fonksiyonunun içine yazdığın return 0 sisteme işlem sorunsuz tamamlandı mesajı göndermek için kullanılıyor. bu değeri döndürebilmek için int main yazılıyor. ama gömülü sistemlerde dönecek bir sistem olmadığı için bunu void olarak belirtiyorlar.
Öncelikle teşekkür ederim açıklayıcı olmuş ama bit de şunu eklemek istiyorum.
2.soruda alan hesaplayan fonksiyona biz değilse kullanıcı bir değer girse yine aynı şekilde parametre kullanacak mıyız?Ve main fonksiyonunda scanf li alan fonksiyonu nasıl çağıracağız ?
Örneklerde gördüğüm kadarıyla main içinde scanf yapılıyor ama ben kendi yazdığım fonksiyonun içinde scanf koyuyorum ve main'de sadece fonksiyon çağırıyorum daha sade be hoş duruyor.Bu uygun kullanım mıdır ve sorumu bu şekilde düşünüp cevaplar mısınız?
quote:
Orijinalden alıntı: arkasokaklar12634
Öncelikle teşekkür ederim açıklayıcı olmuş ama bit de şunu eklemek istiyorum.
2.soruda alan hesaplayan fonksiyona biz değilse kullanıcı bir değer girse yine aynı şekilde parametre kullanacak mıyız?Ve main fonksiyonunda scanf li alan fonksiyonu nasıl çağıracağız ?
Örneklerde gördüğüm kadarıyla main içinde scanf yapılıyor ama ben kendi yazdığım fonksiyonun içinde scanf koyuyorum ve main'de sadece fonksiyon çağırıyorum daha sade be hoş duruyor.Bu uygun kullanım mıdır ve sorumu bu şekilde düşünüp cevaplar mısınız?
2.soru için konuşuyorum. tabiki kullanıcıdan aldığın verileride bir değişkende tutup parametre olarak o değişkenleri fonksiyona yollayabilirsin. scanf printf bunlar birer fonksiyon bunlara bağlı kalmak yada kullanmak zorunda değilsin. bu arada ben c++ kullanıyorum ama mantık aynı. zaten çok benzerler yazdığım kodda c++ kodu.
#include <iostream>
using namespace std; int dikdortgenAlanHesapla(int x, int y) { int alan; alan = x * y; return alan; } int main() { int kısaKenar; int uzunKenar; int sonuc; cout << "Dikdortgenin kisa kenarinin uzunlugunu girin :"; cin >> kısaKenar; cout << "Dikdortgenin uzun kenarinin uzunlugunu girin : "; cin >> uzunKenar;
son soru için evet öyle programa bir düzen geliyor daha sonra sen baktığında yada başkası baktığında kodu rahat okuyabiliyor. kodun rahat okunabilmesi önemli. ufak programlarda bu çok önemli olmasa da büyük yazılımlarda düzen çok önemli. yoksa ne hata bulabilirsin ne geliştirebilirsin. projeyi senden sonra devralacak insanda baştan yazmak zorunda kalır.
4. Parantez için void yazısı C dili için önemli. Fonksiyon parametre alamaz demek. Şu örnekte anlatayım:
void foo(void) { // bla bla }
void bar() { // bla bla }
foo(); // Çalışır foo(1); // Çalışmaz bar(); // Çalışır bar(1); // Bu da çalışır
C++ dilinde 'void function(void)' ile 'void function()' ile aynı şey. Dediğim gibi C için geçerli.
yeni mesaja git
Yeni mesajları sizin için sürekli kontrol ediyoruz, bir mesaj yazılırsa otomatik yükleyeceğiz.Bir Daha Gösterme