1 Nisan 2013 Pazartesi

77 - Diziler... 3 Dersin Notları... Array.Sort



Aşağıdaki örnekte çok boyutlu diziler kullanılsaydı işlemimiz daha kolay olurdu... Ama amaç algoritma yapısı ve mantık geliştirmek olunca böyle bir yöntemle de çok boyutlu diziler kullanılmadan işlemler yapılabilir... 

Bu arada Array.Sort kullanımına da örnek verdik... Bu komut verilen diziyi sıraya diziyor... Yani bundan önceki yaptığımız örneklerdeki sıralama işlemlerinde bunu kullansaydık tek satır komut ile sıraya dizmiş olurduk... C# bize hazır olarak bunu sağlıyor... Ama ilk öğrenim aşamasında hazırdan kaçınmanızı tavsiye ederim... Dediğimiz gibi amaç mantık geliştirmek... Yoksa 3 dersin notunu hesaplatsak ne olur, hesaplatmasak ne olur... 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication3
{
    class Program
    {
        static void Main(string[] args)
        {// Diziler...: Bir aralıkta aynı olan değerleri tutmak için kullanılır... 
         // 1 öğrencinin 3 dersten aldığı 2 yazılı ve 1 sözlü notu ile ilgili bilgiler...
         // 0-2 arası ingilizce dersi, 3-5 arası türkçe dersi, 6-8 arası notlar almanca dersi
            int [] sinavlar = new int[9];
            string[] ders=new string []{"ingilizce","türkçe","almanca"};
            string dersadi = "ingilizce";

            int[] ort = new int[3];
            int sira=1;

            for (int k = 0; k <= 8; k++)
            {
                if (k == 0)             // bu derslerin isimlerini alacak olan kısım
                    dersadi = "ingilizce";
                else if (k == 3)
                    dersadi = "türkçe";
                else if (k == 6)
                    dersadi = "almanca";

                // sınav notlarının girildiği alan
                Console.Write(dersadi + " dersinin " + sira + ". sınav notunu giriniz");
                sinavlar[k] = int.Parse(Console.ReadLine()); 
                if (sira == 3) // ders ismini burada değiştiriyoruz...
                    sira = 0;
                sira++;
            }

            // ortalamaları hesaplıyoruz...
            int i = 0;
            for (int k = 0; k <= 8;k=k+3)
            {
                ort[i] = (sinavlar[k] + sinavlar[k + 1] + sinavlar[k + 2])/3;
                i++;
            }

            // ortalama sonuçlarını ekranda gösteriyoruz...
            int j=0;
            foreach (int oku in ort)
            {
                Console.WriteLine(ders[j]+ " dersinin ortalaması = " + oku);
                j++;
            }

            // En yüksek ve en düşük not
            int enyuk = sinavlar[0];
            int endus=sinavlar[0];
            foreach (int oku in sinavlar)
            {
                if (oku > enyuk)
                    enyuk = oku;

                if (oku < endus)
                    endus = oku;
            }
            Console.WriteLine("En yüksek notlar: " + enyuk);
            Console.WriteLine("En yüksek notlar: " + endus);

            // Sıraya dizme komutu... Sort...
            Array.Sort(sinavlar);
            foreach (int oku in sinavlar)
                Console.Write("Notlar: " + oku + " ");

            Console.ReadKey();
        }
    }
}