Öğrenci Ortalamasını Hesaplama
Coddy'nin PHP Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 36 / 68.
Görev
Kolayİki girdi alacaksınız: mevcut öğrenci not defterini temsil eden bir JSON nesnesi ve bir öğrencinin adı. Not defterinde anahtar olarak öğrenci adları kullanılır; her öğrencinin test puanlarını içeren bir "id" alanı ve "grades" dizisi vardır.
Her iki girdiyi de okuyun, JSON dizgesini bir not defteri dizisine dönüştürün, belirtilen öğrenciyi bulun, not ortalamasını hesaplayın ve sonucu 2 ondalık basamağa yuvarlayarak yazdırın.
Ortalama hesaplamak için: öğrencinin grades dizisindeki tüm notları toplayın ve toplamı not sayısına bölün.
Girdi biçimi:
- İlk satır: Mevcut not defterini temsil eden bir JSON nesnesi (örnek:
{"Alice":{"id":101,"grades":[85,92,78]},"Bob":{"id":102,"grades":[90,88,95]},"Charlie":{"id":103,"grades":[76,84,89]}}) - İkinci satır: Öğrencinin adı (örnek:
Alice)
Beklenen çıktı: Öğrencinin round($average, 2) ile yuvarlanmış not ortalaması olduğu gibi yazdırılır; sondaki sıfırlar atılır (örnekler: 85, 88.4, 76.25)
Kendin dene
<?php
// Not defterinin JSON dizgesini oku
$gradebookJson = fgets(STDIN);
// Öğrencinin adını oku
$studentName = trim(fgets(STDIN));
// JSON'u diziye dönüştür
$gradebook = (array)json_decode($gradebookJson, true);
// TODO: Kodunu aşağıya yaz
// Öğrenciyi bul, not ortalamasını hesapla ve 2 ondalık basamağa yuvarla
// Sonucu yazdır
echo $average;
?>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ıralamaKendi başına pratik yap: Online PHP derleyicisi