Özet: Basit Izgara Egzersizi
Coddy'nin PHP Journey'sinin Mantık ve Akış bölümünün bir parçası — ders 32 / 68.
Görev
KolayBir girdi alacaksınız: JSON formatında basit bir oyun ızgarasını temsil eden 2 boyutlu bir dizi. Izgara, farklı karo değerlerini temsil eden sayılar içerir. Girdiyi okuyun, JSON dizesini 2 boyutlu bir diziye dönüştürün ve aşağıdaki işlemleri gerçekleştirin:
- Izgaradaki tüm değerlerin toplamını hesaplayın ve yazdırın
- Izgaradaki maksimum değeri bulun ve yazdırın
- Değeri 5'ten büyük olan kaç karo olduğunu sayın ve yazdırın
- Satır 1, sütun 2'de bulunan değeri yazdırın (0 tabanlı indeksleme kullanarak)
Her bir sonucu, yukarıda belirtilen sırayla ayrı bir satıra yazdırın.
Girdi formatı: Oyun ızgarasını temsil eden bir JSON dizisi içeren tek bir satır (örnek: [[3,7,2],[5,9,1],[8,4,6]])
Beklenen çıktı:
- Satır 1: Tüm değerlerin toplamı
- Satır 2: Maksimum değer
- Satır 3: Değeri 5'ten büyük olan karoların sayısı
- Satır 4: Satır 1, sütun 2'deki değer
Kendin dene
<?php
// JSON girişini oku
$input = trim(fgets(STDIN));
// JSON dizesini 2D diziye dönüştür
// Önemli: Uygun dizi dönüşümünü sağlamak için (array) kullanın
$grid = json_decode($input, true);
// YAPILACAK: Kodunuzu aşağıya yazın
// 1. Izgaradaki tüm değerlerin toplamını hesaplayın
// 2. Izgaradaki maksimum değeri bulun
// 3. Değeri 5'ten büyük olan kaç kutucuk olduğunu sayın
// 4. Satır 1, sütun 2'deki değeri alın
// Sonuçları yazdırın (her satıra bir tane)
// echo $sum . "\n";
// echo $max . "\n";
// echo $count . "\n";
// echo $value . "\n";
?>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ı3Dizileri 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