Aşağıda kullanıcıdan yıllık yağış miktarını (örneğin, yagis_yillik = [0.5 0.3 0.3 0.4 0.7 0.2 0.6 0.3 0.2 0.1 0.1 0.2]) ve mevsim adını (‘Yaz’, ‘Kış’, ‘Sonbahar’ ve ‘İlkbahar’ şeklinde) alan ve o mevsimdeki en fazla yağışın olduğu ayı kullanıcıya söyleyen bir fonksiyonun başlangıcı verilmiştir. Lütfen programı tamamlayınız. function yagis_maks(yagis_yillik,mevsim) aylar_yillik = ['Ocak' 'Şubat' 'Mart' 'Nisan' 'Mayıs' 'Haziran' … 'Temmuz' 'Ağustos' 'Eylül' 'Ekim' 'Kasım' 'Aralık']; beyler hatamı bulup düzeltebilirmisiniz ?
function maks_mevsimlik_yagis = yagis_maks(yagis_yillik, mevsim) if(length(yagis_yillik) ~= 12) error("Geçersiz yağış miktarı %d. 12 tane olmali", length(yagis_yillik)); end switch(mevsim) case "İlkbahar" mevsim_i = [3, 4, 5]; case "Yaz" mevsim_i = [6, 7, 8]; case "Sonbahar" mevsim_i = [9, 10, 11]; case "Kış" mevsim_i = [12, 1, 2]; otherwise error("Geçersiz Mevsim %s", mevsim); end maks_mevsimlik_yagis = max(yagis_yillik(mevsim_i)); fprintf(" %s mevsiminin en yüsek yağışı %.2f\n", mevsim, maks_mevsimlik_yagis); end
1 Cevap
Yazdığınız kodda hata yok gibi, en yüksek yağış değeri yerine hangi aya ait olduğunu çıkartmak istiyorsanız, max'ın ikici çıktısı indisi verir, yani sizin durumunuzda mevsimin içindeki ay numarasını:
[maks_mevsimlik_yagis, maks_ay] = max(yagis_yillik(mevsim_i)); fprintf(" %s mevsiminin en yüsek yağışı %.2f\n . Ay: %g", mevsim, maks_mevsimlik_yagis, mevsim_i(maks_ay));