c# Desktop

2020 TYT Matematik Para Makinesiyle İlgili Sorunun Çözümünü c# Diliyle Kodlama

Yeni bir matematik sorusunun çözümüyle karşınızdayız. Bu sorumuz 2020 TYT sorusu. Sorumuz aşağıda yer almaktadır. Amacımız programlama tekniğini kullanarak sorunun çözümünü yapmak. Hem matematik hem de programlama alanında kendimizi geliştirmek istiyoruz. Sorumuzu ve çözümünü inceleyelim.

Bir para çekme makinesi, istenilen miktardaki parayı 5 TL, 10 TL, 20 TL, 50 TL ve 100 TL değerindeki kâğıt paralardan en az sayıda kullanarak vermektedir. Her kâğıt paradan yeterli sayıda bulunan bu para çekme makinesinden; Ahmet 495 TL, Buse 265 TL ve Cansu 550 TL para çekiyor.

Para çekme makinesinin Ahmet, Buse ve Cansu’ya verdiği kâğıt para sayıları sırasıyla olduğuna göre, aşağıdaki sıralamalardan hangisi doğrudur?

A) PA < PB < PC                    B) PA < PC < PB                    C) PB < PA < PC                   

D) PB < PC < PA                    E) PC < PB < PA                   

PA = 4.100 + 1.50 + 2.20 + 1.5 = 8

PB = 2.100 + 1.50 + 1.10 + 1.5 = 5

PC = 5.100 + 1.50 = 6

Buna göre doğru cevap D şıkkıdır.

Şimdi kodlarımızı düzenleyelim.

        static void Main(string[] args)
        {
            int[] banknot = { 100, 50, 20, 10, 5 };
 
            Person[] para = {
        new Person(){ Adet=0, Para=495, Eleman="Pa"},
        new Person(){ Adet=0, Para=265, Eleman="Pb"},
        new Person(){ Adet=0, Para=495, Eleman="Pc"}
    };
            int kp = 0; // Kalan para
            int par = 0;
 
            for (int p = 0; p < para.GetLength(0); p++)
            {
                par = para[p].Para;
                for (int b = 0; b < banknot.Length; b++)
                {
                    para[p].Adet += par / banknot[b];
                    kp = par % banknot[b];
 
                    if (kp == 0)
                    {
                        break;
                    }
                    else
                    {
                        par = kp;
                    }
                }
            }
 
            Array.Sort(para, (x, y) => {
                int ret = String.Compare(x.Adet.ToString(), y.Adet.ToString());
                return ret != 0 ? ret : x.Eleman.CompareTo(y.Eleman);
            });
 
            //var qry = from p in para
            //          orderby p.Adet
            //          select p;
            //Array.ForEach<Person>(qry.ToArray<Person>(), p => Console.WriteLine(p.Adet + " " + p.Eleman));
 
            for (int p = 0;  p < para.GetLength(0);  p++)
            {
                if (p>0)
                {
                    if (para[p].Adet == para[p-1].Adet)
                    {
                        Console.Write(" = ");
                    }
                    else
                    {
                        Console.Write(" < ");
                    }
                }
                Console.Write(para[p].Eleman);
            }            
            Console.ReadKey();
        }
        class Person
        {
            public int Adet { get; set; }
            public int Para { get; set; }
            public string Eleman { get; set; }
        }
 

 


İlgili Makaleler
Nesne Tabanlı Programlama Çalışma Soruları
Kompleks Veri Bağlama (Complex Data Binding)
Basit Veri Bağlama (Simple Data Binding)
Veri Girişi Doğrulama (Input Validation)
Konsol Ekranında Kod Yazma ve Çalıştırma
Veri Girişi Maskeleme (MaskedTextBox)
Konteyner Kontrolleri
GroupBox Paneliyle Gruplandırılan Bilgisayar Parçalarının Satışını Yapan c# Form Uygulaması
Form Sınıfı
Form Sayfalarında Ayrıntılı ListBox Kullanımı
c# Console Uygulamalarında ReadKey Metoduyla Klavye Tuşlarını Kontrol Etme
TabControl Panelini Kullanarak Lokantalar İçin Müşteri Siparişi Alan c# Form Uygulaması
Değişken Tanımlama Kuralları
Sayısal Loto Çekilişini Yapan c# Uygulaması
Yazdırma İletişim Kutusu (PrintDialog)
WebBrowser ve Panel Kontrollerini Kullanarak Web Tarayıcı Oluşturan c# Form Uygulaması
Yıkıcı Metotlar (Destructors)
Panel Üzerinde Serbest Çizim Yapan c# Form Uygulaması
Pisagor Bağıntısı İşlemlerini Gerçekleştiren c# Uygulaması
c# Console Uygulamalarında Ping Nasıl Kullanılır, Ping Atma

Yorum Ekle
   
Kötü İyi