Değişken sayıda parametreli bir fonksiyon nasıl yazılır?
Bazı fonksiyon parametrelerinin başlangıç değerini ayarlayabilirsiniz (bu parametreler sonuncusu olmalıdır). Fonksiyon çağrılırken , ihtiyaca göre bu parametreleri ayarlayıp ayarlayamamak mümkün olacaktır. Parametreler açıkça ayarlanmazsa, başlangıç değerlerini alırlar.
İkinci seçenek aşırı yüktür. Sadece aynı ada sahip, sadece farklı tipte/parametre sayısında bir fonksiyon yazın.
İşleve birkaç parametre iletmem gerekiyor, ancak farklı durumlarda önceden bilinen farklı bir sayı iletmem gerekiyor ve sonra bu parametreleri fonksiyonda işleyin
İşleve birkaç parametre iletmem gerekiyor, ancak farklı durumlarda önceden bilinen farklı bir sayı iletmem gerekiyor ve bu parametreleri fonksiyonda daha fazla işleyin
si'de, örneğin, bu şekilde uygulanır
int işlev(int a, int b, ...)
Bir diziyi ve diziden alınacak parametre sayısını iletin
peki, şöyle: Duruma bağlı olarak (eğer DEĞİL, ancak aslında bu sayıları kendim yazıyorum)
a = işlev(rakam, 10, 18, 42); veya a = işlev(rakam, 11, 18, 42, 15, 13); veya a = işlev(rakam, 5);
çift işlev(int num, ????) {
return("bu parametrelerin toplamı"/sayı);
}
Peki, o zaman, ilk akla gelen ve yukarıda önerildiği gibi - fonksiyona bir çift dizi iletin ve fonksiyonda, geçen dizinin değerlerinden gerekli değerleri hesaplayın - ayrıca öğrenebilirsiniz. sayıların sayısı ( dizi boyutu ) ve buna göre oranlarını hesaplayın. Herhangi bir dizi boyutu için yalnızca hesaplama formülü aynı kalacaktır. Formülü değiştirecekseniz, sadece dizi bu tür ihtiyaçlar için çalışmayacaktır, bir parametre daha yapmanız gerekecektir - bu, istenen hesaplama formülünü gösterecektir. Örneğin, formülün türünü (ENUM_TYPE_CALCULATED) belirten bir numaralandırma iletebilir ve bu numaralandırmanın geçirilen değerine göre, örneğin CALCULATE_SUMM, (bu örnekte) basitçe iletilen dizinin tüm değerlerinin toplamını hesaplayabilirsiniz. .
RomanRott : Yani orada aktarmam gereken sayılar düzensizdir, yani evrensel oluşturulamaz.
Bu tam teşekküllü bir cevap, ancak buna tepki yok ...
çağrılırken , ihtiyaca göre bu parametreleri ayarlayıp ayarlayamamak mümkün olacaktır. Parametreler açıkça ayarlanmazsa, başlangıç değerlerini alırlar.
İkinci seçenek aşırı yüktür. Sadece aynı ada sahip, sadece farklı tipte/parametre sayısında bir fonksiyon yazın.
Değişken sayıda parametreli bir fonksiyon nasıl yazılır?
Bazı fonksiyon parametrelerinin başlangıç değerini ayarlayabilirsiniz (bu parametreler sonuncusu olmalıdır). Fonksiyon çağrılırken , ihtiyaca göre bu parametreleri ayarlayıp ayarlayamamak mümkün olacaktır. Parametreler açıkça ayarlanmazsa, başlangıç değerlerini alırlar.
İkinci seçenek aşırı yüktür. Sadece aynı ada sahip, sadece farklı tipte/parametre sayısında bir fonksiyon yazın.
Örneğin?
İşleve birkaç parametre iletmem gerekiyor, ancak farklı durumlarda önceden bilinen farklı bir sayı iletmem gerekiyor
si'de, örneğin, bu şekilde uygulanırve sonra bu parametreleri fonksiyonda işleyin
int işlev(int a, int b, ...)
Meta düzenleyicideki araç çubuğuna "İptal" düğmesi koymanın bir yolu var mı?
(Ctrl+Z uygulayan)
İşleve birkaç parametre iletmem gerekiyor, ancak farklı durumlarda önceden bilinen farklı bir sayı iletmem gerekiyor
si'de, örneğin, bu şekilde uygulanırve bu parametreleri fonksiyonda daha fazla işleyin
int işlev(int a, int b, ...)
Bir diziyi ve diziden alınacak parametre sayısını iletin
Bir diziyi ve diziden alınacak parametre sayısını iletin
Yani orada aktarmam gereken sayılar düzensizdir, yani evrensel oluşturulamaz.
En azından soyut olmayan bir örnek verin.
peki, şöyle:
Duruma bağlı olarak (eğer DEĞİL, ancak aslında bu sayıları kendim yazıyorum)
a = işlev(rakam, 10, 18, 42); veya a = işlev(rakam, 11, 18, 42, 15, 13); veya a = işlev(rakam, 5);
çift işlev(int num, ????)
{
return("bu parametrelerin toplamı"/sayı);
}
peki, şöyle:
Duruma bağlı olarak (eğer DEĞİL, ancak aslında bu sayıları kendim yazıyorum)
a = işlev(rakam, 10, 18, 42); veya a = işlev(rakam, 11, 18, 42, 15, 13); veya a = işlev(rakam, 5);
çift işlev(int num, ????)
{
return("bu parametrelerin toplamı"/sayı);
}
Peki, o zaman, ilk akla gelen ve yukarıda önerildiği gibi - fonksiyona bir çift dizi iletin ve fonksiyonda, geçen dizinin değerlerinden gerekli değerleri hesaplayın - ayrıca öğrenebilirsiniz. sayıların sayısı ( dizi boyutu ) ve buna göre oranlarını hesaplayın. Herhangi bir dizi boyutu için yalnızca hesaplama formülü aynı kalacaktır. Formülü değiştirecekseniz, sadece dizi bu tür ihtiyaçlar için çalışmayacaktır, bir parametre daha yapmanız gerekecektir - bu, istenen hesaplama formülünü gösterecektir. Örneğin, formülün türünü (ENUM_TYPE_CALCULATED) belirten bir numaralandırma iletebilir ve bu numaralandırmanın geçirilen değerine göre, örneğin CALCULATE_SUMM, (bu örnekte) basitçe iletilen dizinin tüm değerlerinin toplamını hesaplayabilirsiniz. .
Yani orada aktarmam gereken sayılar düzensizdir, yani evrensel oluşturulamaz.
Bu tam teşekküllü bir cevap, ancak buna tepki yok ...
çağrılırken , ihtiyaca göre bu parametreleri ayarlayıp ayarlayamamak mümkün olacaktır. Parametreler açıkça ayarlanmazsa, başlangıç değerlerini alırlar.
İkinci seçenek aşırı yüktür. Sadece aynı ada sahip, sadece farklı tipte/parametre sayısında bir fonksiyon yazın.
Bu tam teşekküllü bir cevap, ancak buna tepki yok ...
Küme ve sayı sayısı önceden bilinmiyorsa, her yeni küme için işlevleri stoklayamazsınız.