D.ershane Çözümleri Ddili.org

Parametre Serbestliği Çözümleri


Bütün program:

import std.stdio;

enum İşlem { Toplama, Çıkarma, Çarpma, Bölme }

struct Hesap
{
    İşlem işlem;
    double birinci;
    double ikinci;
}

double[] hesapla(Hesap[] hesaplar ...)
{
    double[] sonuçlar;

    foreach (hesap; hesaplar) {
        final switch (hesap.işlem) {
        case İşlem.Toplama:
            sonuçlar ~= hesap.birinci + hesap.ikinci;
            break;

        case İşlem.Çıkarma:
            sonuçlar ~= hesap.birinci - hesap.ikinci;
            break;

        case İşlem.Çarpma:
            sonuçlar ~= hesap.birinci * hesap.ikinci;
            break;

        case İşlem.Bölme:
            sonuçlar ~= hesap.birinci / hesap.ikinci;
            break;
        }
    }

    return sonuçlar;
}

void main()
{
    writeln(hesapla(Hesap(İşlem.Toplama, 1.1, 2.2),
                    Hesap(İşlem.Çıkarma, 3.3, 4.4),
                    Hesap(İşlem.Çarpma, 5.5, 6.6),
                    Hesap(İşlem.Bölme, 7.7, 8.8)));
}

Çıktısı:

[3.3, -1.1, 36.3, 0.875]