lostyazilim
tr.link

Soru: Algortima Sorusu

4 Mesajlar 883 Okunma
lstbozum
tr.link

SonKararimPhp SonKararimPhp WM Aracı Kullanıcı
  • Üyelik 20.03.2017
  • Yaş/Cinsiyet 32 / E
  • Meslek Ögrencisi
  • Konum Afyon
  • Ad Soyad K** Y**
  • Mesajlar 68
  • Beğeniler 26 / 3
  • Ticaret 0, (%0)
Hani oluyor ya sınavlarda şunu kodu kullanmadan şu işlemi veren kodu yazınız diye...
Şimdi benim de aklıma buna benzer bir soru geldi.
Sizlere sormak istiyorum. Bakalım kaç farklı cevap ortaya çıkacak.



carp(3,5,7); //105

carp(2,4);//8

carp(3,5,9,6,3);//2430



Overloading kullanmadan yukardaki metodu nasıl yazarız.
 

 

wmaraci
reklam

emreyvz emreyvz .NET Core & Angular & PHP Kullanıcı
  • Üyelik 19.04.2016
  • Yaş/Cinsiyet 28 / E
  • Meslek Bilgisayar Mühendisi
  • Konum İstanbul Anadolu
  • Ad Soyad E** Y**
  • Mesajlar 691
  • Beğeniler 110 / 250
  • Ticaret 24, (%100)
Optional Parameters kullanılarak yazılabilir. Bu şekilde metot minimum 2 olmak üzere 3 , 4 veya 5 parametreli olarak kullanılabilir.


Örnek C# Metodu:


public int? carp(int sayi1,int sayi2, int? sayi3 =null,int? sayi4 = null,int? sayi5=null)
{
int? a = string.IsNullOrEmpty(Convert.ToString(sayi3)) ? 1 : sayi3;
int? b = string.IsNullOrEmpty(Convert.ToString(sayi4)) ? 1 : sayi4;
int? c = string.IsNullOrEmpty(Convert.ToString(sayi5)) ? 1 : sayi5;
int? sonuc = sayi1 * sayi2 * a * b *c;
return sonuc;
}
 

 

YORci YORci yorci.com Kullanıcı
  • Üyelik 06.02.2016
  • Yaş/Cinsiyet 29 / E
  • Meslek Arkaplan Yazılım
  • Konum Ankara
  • Ad Soyad I** Y**
  • Mesajlar 261
  • Beğeniler 88 / 127
  • Ticaret 21, (%100)
emreyvz sizin yaptığınız sabit fonksiyon olur, 6. sayı gönderilirse ne olacak? Peki sayısız gönderilmek istenirse?

eğer istenilen girdilerin hepsinin ardışık çarpımı isteniyorsa php dilinde aşağıdaki gibi yapılabilir.



function carp(){
return array_product(func_get_args());
}

echo carp(3,5,7); //105
echo "\n\r";

echo carp(2,4);//8
echo "\n\r";

echo carp(3,5,9,6,3);//2430




C# eşdeğeri;

public class Program
{
public static void Main()
{
Console.WriteLine(Carp(3,5,7)); //105
Console.WriteLine(Carp(2,4));//8
Console.WriteLine(Carp(3,5,9,6,3));//2430
}

public static int Carp(params int[] sayilar)
{
int toplam = 1;
foreach(int s in sayilar)
toplam *= s;
return toplam;
}

}
 

 

emrecanoztas emrecanoztas Ninja Yazılımcı Kullanıcı
  • Üyelik 24.11.2018
  • Yaş/Cinsiyet 35 / E
  • Meslek Freelance Full Stack Developer
  • Konum Ankara
  • Ad Soyad E** Ö**
  • Mesajlar 21
  • Beğeniler 1 / 10
  • Ticaret 0, (%0)
Burada dikkat edilmesi gereken bir diğer nokta da; sayı yerine string bir ifade gelirse ne olacağıdır?

Herneyse; PHP ile bir cevapta benden gelsin!..



function sumNumber(...$numbers)
{
$total = 0;
if (!empty($numbers)) {
foreach($numbers as $number) {
(is_numeric($number)) ? $total += $number : null;
}
return (
$total
);
} else {
return(0);
}
}

echo(sumNumber(1, 3, 5, 'Hello', 7, 'World', 06, 42, 639, 3.14));
 

 

http://emrecanoztas.com/
wmaraci
wmaraci
wmaraci
wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al