En Başarılı Öğrenciyi Bulma
Coddy'nin PHP Journey'sinin Mantık ve Akış bölümünün bir parçası — ders 37 / 68.
Görev
KolayBir girdi alacaksınız: öğrenci not defterini temsil eden bir JSON nesnesi. Not defteri, anahtar olarak öğrenci adlarını kullanır ve her öğrencinin test puanlarını içeren bir "id" ve "grades" dizisi vardır.
Girdiyi okuyun, JSON dizesini bir not defteri dizisine dönüştürün, en yüksek ortalama nota sahip öğrenciyi bulun ve o en başarılı öğrencinin adını yazdırın.
En başarılı öğrenciyi bulmak için: her öğrencinin notlarını toplayıp not sayısına bölerek ortalama notunu hesaplayın, ardından hangi öğrencinin en yüksek ortalamaya sahip olduğunu belirleyin.
Giriş formatı: Not defterini temsil eden bir JSON nesnesi içeren tek bir satır (örnek: {"Alice":{"id":101,"grades":[85,92,78]},"Bob":{"id":102,"grades":[90,88,95]},"Charlie":{"id":103,"grades":[76,84,89]}})
Beklenen çıktı: En yüksek ortalama nota sahip öğrencinin adı (örnek: Bob)
Kendin dene
<?php
// JSON girişini oku
$input = fgets(STDIN);
// JSON'u diziye dönüştür
$gradebook = (array)json_decode($input, true);
// YAPILACAK: Kodunuzu aşağıya yazın
// Her öğrenci için ortalama notu hesapla
// En yüksek ortalamaya sahip öğrenciyi bul
// En başarılı öğrencinin adını yazdır
echo $topStudent;
?>Mantık ve Akış bölümündeki tüm dersler
1İleri Seviye Fonksiyonlar
Anonim FonksiyonlarClosure'lar ve 'use'Ok Fonksiyonları (Arrow Functions)Geri Çağırma (Callback) Fonksiyonları'call_user_func' KullanımıDeğişken FonksiyonlarReferans ile Değer AktarımıÖz Yinelemeli (Recursive) FonksiyonlarÖzet: Fonksiyon Karması4Çok Boyutlu Diziler
2 Boyutlu Dizi Oluşturma2 Boyutlu Dizi Elemanlarına Erişme2 Boyutlu Dizi Elemanlarını Değiştirmeİç İçe Döngülerle Yineleme2 Boyutlu İlişkisel DizilerÖzet: Basit Izgara Egzersizi2İleri Düzey Dizi İşlemleri
'array_push' ile Ekleme'array_pop' ile Silme'array_unshift' ile Ekleme'array_shift' ile Silmeİndisli Dizileri Birleştirmeİlişkisel Dizileri Birleştirme'array_slice' ile Kesit Alma'in_array' ile Değer Kontrolü'array_search' ile Anahtar AramaÖzet: Çalma Listesi Alıştırması5Öğrenci Not Defteri
Proje Kurulumu: Veri YapısıYeni Öğrenci EklemeÖğrenciye Not EklemeÖğrenci Ortalamasını HesaplamaEn Başarılı Öğrenciyi BulmaKarne Oluşturma3Dizileri Sıralama
İndisli Dizileri Artan Sırada Sıralamaİndisli Dizileri Azalan Sırada Sıralamaİlişkisel Dizileri Değere Göre Sıralamaİlişkisel Dizileri Anahtara Göre SıralamaDoğal Sıralama (Natural Order)'usort' ile Özel SıralamaÖzet: Liderlik Tablosu Sıralama