Algoritma etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
Algoritma etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

5 Mayıs 2008 Pazartesi

Sayı Bulmaca Konsol Uygulaması

///
/// Uygulama 1-100 arasında rastgele bir sayı tutar ve
/// kullanıcıdan bu sayıyı bilmesini ister. Kullanıcı büyük
/// bir tahminde bulunursa "in", küçük bir tahminde bulunursa
/// "çık" mesajlarıyla yönlendirilir. Kullanıcı sayıyı bildiğinde
/// uygulama ekrana deneme sayısını ve toplam süreyi yazar. (Süre
/// toplam saniye olarak yazılır.)
///

static void Main()
{
//Uygulama rastgele 1-100 arasında rastgele bir sayı tutar.
Random r = new Random();
int tutulan = r.Next(1, 100);
//
// Sayaçlar başlatılıyor
int tahminSayisi = 0;
DateTime baslangic = DateTime.Now;
DateTime bitis;
// Kullanıcıdan bir sayı girmesi isteniyor.
Console.WriteLine("1-100 arasında bir sayı tuttum.");
// tahmin döngüsü
int tahmin = 0;
while (true)
{
tahminSayisi++;
Console.Write("Tahmininiz: ");
tahmin = int.Parse(Console.ReadLine());
if (tahmin{
Console.WriteLine("Çık...");
}
else if (tahmin>tutulan)
{
Console.WriteLine("İn...");
}
else
{
break;
}
}
// Sonuç ekrana yazdırılıyor
bitis = DateTime.Now;
Console.WriteLine("Tebrikler! {0} saniye ve {1} denemede bildiniz.",
Math.Round(bitis.Subtract(baslangic).TotalSeconds),
tahminSayisi);
}

Örnek Uygulama: 3 ile bölünebilme

///
/// Uygulama kullanıcının girdiği sayının 3 ile tam bölünüp
/// bölünemeyeceğini bulur. (sayısal veritiplerinin tutamayacağı
/// büyüklükteki sayılar dahil)
///

static void Main()
{
int toplam = 0;
// Kullanıcıdan sayı alınıyor
Console.Write("Bir sayı girin: ");
string metin = Console.ReadLine();
//
// Kullanıcıdan alınan sayının her bir rakamı
// tam sayıya dönüştürülerek toplam değişkenine
// ekleniyor.
foreach (char rakam in metin)
{
int sayi = (int)rakam;
toplam += rakam;
}
// sayının rakamlarının toplamının 3 ile bölümünden
// kalan, sayının 3 ile bölümünden kalanına eşit
// olduğu kuralından yola çıkılarak % işaretiyle
// toplamın 3 ile bölümünden kalan bulunuyor
int sonuc = toplam % 3;
// sonuc değişkenindeki kalan'a göre ekrana bilgi
// yazdırılıyor.
if (sonuc==0)
{
Console.WriteLine("Sayi 3 ile tam olarak bölünür.");
}
else
{
Console.WriteLine("Sayının 3 ile bölümünden kalan={0} ",
sonuc);
}
}

Örnek Uygulama: Sesli/Sessiz Harfleri Sayma

///
/// Örnek uygulama kullanıcının gireceği bir metin içeresindeki
/// sesli ve sessiz harflerin sayılarını bularak ekrana yazdırır.
///

static void Main()
{
// sesli harfler koleksiyonu oluşturuluyor...
ArrayList sesliler = new ArrayList();
sesliler.Add("a");
sesliler.Add("e");
sesliler.Add("ı");
sesliler.Add("i");
sesliler.Add("o");
sesliler.Add("ö");
sesliler.Add("u");
sesliler.Add("ü");
// sessiz harfler koleksiyonu oluşturuluyor...
ArrayList sessizler = new ArrayList();
sessizler.AddRange(new string[]{"b","c","ç","d","f","g","ğ","h","j","k",
"l","m","n","p","r","s","ş","t","v","y","z"});
//
// sesli ve sessiz harflerin sayısını tutacak
// değişkenler tanımlanıyor
int sesli = 0;
int sessiz = 0;
//
// kullanıcıdan metin alınıyor
Console.WriteLine("Bir metin girin:");
string metin = Console.ReadLine();
//
foreach (char harf in metin)
{
// sesli harf
if (sesliler.Contains(harf.ToString().ToLower()))
{
sesli++;
}
// sessiz harf
if (sessizler.Contains(harf.ToString().ToLower()))
{
sessiz++;
}
}
// sonuç ekrana yazdırılıyor.
Console.WriteLine("{0} adet sesli ve {1} adet sessiz harf bulundu.",
sesli, sessiz);
}
}

Örnek Kod: Birden fazla vize ve final notu için dönem sonu notunu hesaplama

///
/// Uygulama adı, vize notları ve final notları verilen öğrencinin
/// ders geçme notunu hesaplayan fonksiyonu ve bu fonksiyonu örnek
/// değerlerle çalıştıran Main metodu.
///

static void Main()
{
int[] vizeler = new int[] { 50,60,70};
int[] finaller = new int[] {60,70,80,90 };
string sonuc = DonemSonuNotuHesapla("Dursun Durdu", vizeler, finaller);
Console.WriteLine(sonuc);
}
//
static string DonemSonuNotuHesapla(string ogrenci, int[] vizeNotlari, int[] finalNotlari)
{
// Yerel değişkenler tanımlanıyor
int gecmeNotu = 0;
int vizeNotlariToplami = 0;
int finalNotlariToplami = 0;
// Vize notları toplamı alınıyor.
foreach (int not in vizeNotlari)
{
vizeNotlariToplami += not;
}
// Final notları toplamı alınıyor
foreach (int not in finalNotlari)
{
finalNotlariToplami += not;
}
// Geçme notu hesaplanıyor vize %40 + final %60
gecmeNotu = vizeNotlariToplami / vizeNotlari.Length * 40 / 100 +
finalNotlariToplami / finalNotlari.Length * 60 / 100;
//
// Sonuç geri döndürüyor
return ogrenci + " (" + gecmeNotu + ")";
}

18 Nisan 2008 Cuma

Hisse Senedi Maliyet Hesaplama Konsol Uygulaması

Aşağıdaki kodu yeni bir Console uygulaması başlatarak Main metodu içine yapıştırın.
----------------------------------------------------------------

double toplamHisseAdedi= 0;
double toplamMaliyet = 0;
Console.WriteLine("Alım bilgisi: [Adet - Fiyat]");
while (true)
{
// girilen metin alınıyor
string girilen = Console.ReadLine();
if (girilen.Trim() == "")
{
break;
}
// girilen metin "-" virgül karakterinden bölüyor
// ilk öğe adet, ikinci öğe fiyat
string[] degerler = girilen.Split('-');
double adet = int.Parse(degerler[0]);
double fiyat = double.Parse(degerler[1]);
// hisse sayısı toplanıyor
toplamHisseAdedi += adet;
// toplam maliyet bulunuyor
toplamMaliyet += fiyat * adet;
}
// Sonuç yazılıyor
Console.WriteLine("Toplam hisse senedi adedi= {0}", toplamHisseAdedi);
Console.WriteLine("Ortalama hisse senedi maliyeti= {0}",toplamMaliyet/ toplamHisseAdedi);
Console.WriteLine("Toplam hisse senedi maliyeti= {0}", toplamMaliyet);
//
Console.WriteLine();
Console.WriteLine("Uygulamadan çıkmak için [Enter] tuşuna basın.");
Console.ReadLine();

Artı ya da Tire İşaretiyle Ayrılmış Birden Fazla Sayıyı Toplayan Konson Uygulaması

Aşağıdaki kodu yeni bir Console uygulaması başlatarak Main metodu içine yapıştırın.
----------------------------------------------------------------------

int toplam = 0;
//
Console.WriteLine("Toplanacak sayıları girin");
// girilen metin alınıyor
string girilen = Console.ReadLine();
// metnin içindeki boşluklar alınıyor
girilen = girilen.Replace(" ", "");
// metin içinden sayıları ayrıştırırak bir diziye alıyor
string[] mDegerler = girilen.Split(',','+');
// her bir sayi (henüz string veritipinde) teker teker
// tamsayıya dönüştürülerek toplama ekleniyor.
foreach (string mDeger in mDegerler)
{
// eğer mDeger içinde karakter yoksa, boş metinse bir sonraki
// değişkene geçilir.
if (string.IsNullOrEmpty(mDeger))
{
continue;
}
toplam += int.Parse(mDeger);
}
// Toplam ekrana yazdırılıyor...
Console.Write("Girilen {0} adet sayının toplamı= {1}",
mDegerler.Length,toplam);
//
Console.WriteLine();
Console.WriteLine("Uygulamadan çıkmak için [Enter] tuşuna basın.");
Console.ReadLine();

Girilen Bir Sayı İçindeki Rakamları Yazıyla Gösteren Konsol Uygulaması Kodu

Aşağıdaki kodu yeni bir Console projesi başlatarak Main metodu içine yazın.
--------------------------------------------------------------------------------

long sayi;
Console.Write("Bir tamsayı girin: ");
// Kullanıcıdan sayı alınıyor...
string girilen = Console.ReadLine();
// Sayı long'a çevirilebilirse, sayi değişkenine aktarılıyor.
// bu kontrolün amacı, kullanıcının girdisinin tamamının
// rakamlardan oluştuğunu kontrol etmek.
if (long.TryParse(girilen,out sayi))
{
// rakamlar teker teker kontrol edileceği için
// sayı yeniden metne dönüştürülüyor.
string sayiMetni = sayi.ToString();
foreach (char karakter in sayiMetni)
{
switch (karakter)
{
case '0':
Console.Write("Sıfır");
break;
case '1':
Console.Write("Bir");
break;
case '2':
Console.Write("İki");
break;
case '3':
Console.Write("Üç");
break;
case '4':
Console.Write("Dört");
break;
case '5':
Console.Write("Beş");
break;
case '6':
Console.Write("Altı");
break;
case '7':
Console.Write("Yedi");
break;
case '8':
Console.Write("Sekiz");
break;
case '9':
Console.Write("Dokuz");
break;
default:
break;
}
Console.Write(" ");
}

Console.WriteLine();
Console.WriteLine("Uygulamadan çıkmak için [Enter] tuşuna basın.");
Console.ReadLine();

8 Nisan 2008 Salı

Bir Metinde Kullanılan Harflerin İstatistiğini Çıkartma

Aşağıdaki örnek kodu çalıştırma için Visual Studio 2005 ile yeni bir "C# - Windows - Console" projesi başlatın ve aşagıdaki kodu Main bloğunun yerin yapıştırın.
----------------------------------------------
static void Main(string[] args)
{
Hashtable harfler = new Hashtable();
//
Console.WriteLine("Bir metin giriniz...");
string metin = Console.ReadLine();
//
// harfler çözümleniyor
foreach (char h in metin)
{
if (harfler.Contains(h))
{
int adet = (int)harfler[h];
adet++;
harfler[h] = adet;
}
else
{
harfler.Add(h, 1);
}
}
//
Console.WriteLine();
// harfler ve kullanım adetleri ekrana yazdırılıyor
foreach (char harf in harfler.Keys)
{
Console.WriteLine("Harf '{0}' - Adet:{1}",
harf, harfler[harf]);
}

Console.ReadLine();
}

5 Nisan 2008 Cumartesi

Konsolda Çalışan Hesap Makinesi

Aşağıdaki örnek kodu çalıştırma için Visual Studio 2005 ile yeni bir "C# - Windows - Console" projesi başlatın ve aşagıdaki kodu Main bloğunun yerin yapıştırın.
----------------------------------------------
static void Main(string[] args)
{
int sayi1, sayi2;
double sonuc;
Console.Write("Komut: ");
string girdi = Console.ReadLine();
// girilen metinden sayılar ayrıştırılıyor
char[] ayiraclar = new char[] {'+','-','*','/' };
string[] sayilar=girdi.Split(ayiraclar);
// sayılar string den int e dönüştürülüyor
sayi1=int.Parse(sayilar[0]);
sayi2 = int.Parse(sayilar[1]);
// komut metni içindeki işarete göre işlem yapılıyor
if (girdi.Contains("+"))
{
sonuc = sayi1 + sayi2;
}
else if (girdi.Contains("-"))
{
sonuc = sayi1 - sayi2;
}
else if (girdi.Contains("*"))
{
sonuc = sayi1 * sayi2;
}
else if (girdi.Contains("/"))
{
sonuc = (double)sayi1 / (double)sayi2;
}
else
{
Console.WriteLine("Hatalı komut!");
return;
}
Console.WriteLine("Sonuç: {0}",sonuc);
Console.WriteLine();
Console.WriteLine("Uygulamadan çıkmak için [Enter] tuşuna basın.");
Console.ReadLine();
}

Üniversite Öğrencileri İçin Dönem Sonu Başarı Notunu Hesaplama

Aşağıdaki örnek kodu çalıştırma için Visual Studio 2005 ile yeni bir "C# - Windows - Console" projesi başlatın ve aşagıdaki kodu Main bloğunun yerin yapıştırın.
----------------------------------------------
static void Main(string[] args)
{
int toplamBasariNotu = 0;
while (true)
{
Console.Write("Başarı notu: ");
// girilen metin alınıyor
string girilen = Console.ReadLine();
if (girilen.Trim()=="")
{
break;
}
// girilen metin "," virgül karakterinden bölüyor
// ilk öğe not, ikinci öğe ağırlık
string[] degerler = girilen.Split(',');
int basariNotu = int.Parse(degerler[0]);
double agirlik = double.Parse(degerler[1]);
// girilen notun başarıya katkası
int katki = (int)(basariNotu * agirlik/100);
// dönem sonu başarı notu
toplamBasariNotu += katki;
}
Console.Write("Dönem sonu başarı notunuz: ");
// başarı notu daha önce geliştirilen fonksiyon
// kullanılarak harfli sisteme dönüştürülüyor
Console.WriteLine(YuzludenHarfliyeDonustur(toplamBasariNotu));
Console.WriteLine();
Console.WriteLine("Uygulamadan çıkmak için [Enter] tuşuna basın.");
Console.ReadLine();
}

4 Nisan 2008 Cuma

Üniversite Öğrencileri İçin Yüzlü Sistemden Harfli Sisteme Not Dönüştürme

Aşağıdaki örnek kodu çalıştırma için Visual Studio 2005 ile yeni bir "C# - Windows - Console" projesi başlatın ve aşagıdaki kodu Main bloğunun yerin yapıştırın.
----------------------------------------------
class Program
{
static void Main(string[] args)
{
// 88 yerine kullanıcıdan alınan bir değer de çalıştırılabilir.
string harliNot = YuzludenHarfliyeDonustur(88);
Console.WriteLine(harliNot);
Console.WriteLine();
Console.WriteLine("Uygulamadan çıkmak için [Enter] tuşuna basın.");
Console.ReadLine();
}
///
/// Yüzlü başarı sistemindeki notun harfli başarı sistemi karşılığını getirir.
///

/// 100 lük sistemdeki başarı notu
/// Harfli sistem başarı notu (AA-F)
static string YuzludenHarfliyeDonustur(int basariNotu)
{
// Sıfırdan küçük girişler kontrol ediliyor.
if (basariNotu <> 100)
throw new Exception("100 ya da daha küçük bir değer girin.");
if (basariNotu >= 90 && basariNotu <= 100) { return "AA"; } if (basariNotu >= 85 && basariNotu <= 89) { return "BA"; } if (basariNotu >= 80 && basariNotu <= 84) { return "BB"; } if (basariNotu >= 75 && basariNotu <= 79) { return "CB"; } if (basariNotu >= 70 && basariNotu <= 74) { return "CC"; } if (basariNotu >= 60 && basariNotu <= 69) { return "DC"; } if (basariNotu >= 50 && basariNotu <= 59)
{
return "DD";
}
return "F";
}
}