Soru
Bir laboratuvar dersini alan öğrencilere dönem içerisinde 4 adet quiz yapılmaktadır. Öğrencilerden, girdikleri her quizde gelişim göstererek ya önceki sınavlarındaki aynı notu ya da sınavdan daha yüksek notu alarak gelişim göstermesi beklenmektedir. 5 quiz sonrasında öğrencilerine Quiz 1, Quiz 2, Quiz 3, Quiz 4 notları Quiz Sonuçları (qs) adıyla sisteme girilmiştir.
Bu noktada programcıdan; öğrenci(ler)in quiz notlarının bir önceki sınavına eşit veya artan şekilde olduğunu bulması ve eğer gelişim gösteren öğrenciler varsa bu öğrenci(ler) için “Başarılı” yazması; ayrıca öğrenci(ler)in quiz notlarının bir önceki sınava göre azalma varsa bu öğrenci(ler) için “Başarısız” yazması istenmektedir.
Örnek
Girdi | Çıktı |
---|---|
qs: 1,2,3,5 | Sonuç: Başarılı |
qs: 1,3,3,4 | Sonuç: Başarılı |
qs: 3,4,5,1 | Sonuç: Başarılı |
Çözüm - C#
using System;
using System.Linq;
internal class Program
{
private static void Main(string[] args)
{
int[] quizSonuclari = {1, 3, 3, 4};
// Quiz sonuçları boyutunda bir dizi oluştur
int[] siraliSonuclar = new int[quizSonuclari.Length];
// Quiz sonuçları dizisini diğer diziye kopyala
Array.Copy(quizSonuclari, siraliSonuclar, 4);
// Sıralı sonuçlar dizisini küçükten büyüğe sırala
Array.Sort(siraliSonuclar);
// İki dizideki sonuçlar birbiriyle eşdeğer ise Başarılı, değilse Başarısız
if (siraliSonuclar.SequenceEqual(quizSonuclari))
Console.WriteLine("Başarılı");
else
Console.WriteLine("Başarısız");
Console.Read();
}
}
Çözüm - Java
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] quizSonuclari = {1, 4, 3, 4};
// Sıralı sonuçlar dizisi oluştur ve Quiz sonuçlarını kopyala
int[] siraliSonuclar = quizSonuclari.clone();
// Sıralı sonuçlar dizisini küçükten büyüğe sırala
Arrays.sort(siraliSonuclar);
// İki dizideki sonuçlar birbiriyle eşdeğer ise Başarılı, değilse Başarısız yaz
if (Arrays.equals(siraliSonuclar, quizSonuclari))
System.out.println("Başarılı");
else
System.out.println("Başarısız");
}
}