c# Desktop
Beğen (0)

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; }
        }
 

 

Okunma Sayısı: 1

Yorumlar

Yorum Ekle
Kötü İyi
İlgili Makaleler
Veri Girişi Maskeleme (MaskedTextBox)
Basit Veri Bağlama (Simple Data Binding)
C# Uygulamalarında Dictionary Dizi Oluşturma
Verilen Yarıçap Değerine Göre Kürenin Hacmini ve Yüzey Alanını Bulan c# Console Uygulaması
Menüler
Veri Girişi Doğrulama (Input Validation)
Rastgele Seçilen Bir Sayıyı Basamaklarına Ayıran, Basamak Değerini ve Sayı Değerini Bulan c# Console Uygulaması
Form Sayfalarında Ayrıntılı ListBox Kullanımı
TrendYol 2025 - 2026 Süper Lig Fikstür Kura Çekimini Yapan c# Console Uygulaması-1
Nesne Tabanlı Programlama Dersi İkinci Dönem İkinci Yazılı Çalışma Soruları
TabControl Panelini Kullanarak Lokantalar İçin Müşteri Siparişi Alan c# Form Uygulaması
Kaçan Buton Oyununu Yapan c# Uygulaması
Kompleks Veri Bağlama (Complex Data Binding)
MenuStrip Nesnesiyle Form Sayfasına Menü Ekleyen c# Form Uygulaması
C# Programlama Dilinde Veri Tipleri
c# Console Uygulamalarında ReadKey Metoduyla Klavye Tuşlarını Kontrol Etme
Verilen İki Terimli Bir Denklemin Binom Açılımıyla Çözümünü Bulan c# Console Uygulaması
c# Form Uygulamalarında SqLite Kullanımı
Nesne Tabanlı Programlamada Sınıflardaki Metotlara Parametreler Eklemek ve Bu Parametrelere Değerler Vererek Metotları Çağırmak
c# Windows Form MessageBox Kullanımı