27 Eylül 2013 Cuma

StringSearch

Bir string içindeki bir kelimenin kaç kere bulunduğunu döndürür.
static void Main(string[] args)
        {
            string aranacak = "Buralar Eskiden Hep Otlakmis";
            string aranan = "Ot";
            int sayi = StringSearch(aranacak, aranan);
            Console.WriteLine(sayi.ToString());
            Console.ReadKey();
        }
        static int StringSearch(string aranacak, string aranan)
        {
            int toplam = 0;
            int a = 0;
            aranan = aranan.ToLower();
            aranacak = aranacak.ToLower();
            for (int i = 0; i < aranacak.Length; i++)
            {
                if (aranacak[i] == aranan[a])
                {
                    if (a == aranan.Length - 1)
                    {
                        a = 0;
                        toplam += 1;
                    }
                    else
                        a++;
                }
                else
                    a = 0;
            }
            return toplam;
        }

Stringdeki katsayıları ayırıp çarpmak

bir stringdeki bütün sayıları birbiriyle çarpan basit bir algoritma :) Aldığım sonuçlar :
1) 87e5x34t = 87 * 5 * 34 =14790
2) 74582ex0e5 = 74582*0*5 = 0
3)74582ex05e5 = 1864550 (05 in yazımı hatalı)
4)12ex420k5i7 = 72*420*5*7 = 176400
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace paralel1
{
    class Program
    {
        static void Main(string[] args)
        {
            string asd = "87e5x34t";
            List list = new List();
            Console.WriteLine("Sonuc : {0}", StringKatsayi(asd,list));
            for (int i = 0; i < list.Count; i++)
            {
                Console.WriteLine(String.Format("{0} .ci deger : {1}", i + 1, list[i]));
            }
            Console.ReadKey();
        }
      static  int StringKatsayi(string yazi,List liste)
        {
            int anatoplam = 1;
            int toplam = 0;
            int katsayi = 1;
            int tmp = 1;
            char cr;
            bool gordumu = false;
            for (int i = yazi.Length - 1; i >= 0; i--)
            {
                cr = yazi[i];
                if (cr > 47 && cr < 58)
                {
                    tmp = cr - 48;
                    toplam += katsayi * tmp;
                    katsayi *= 10;
                    gordumu = true;
                }
                else
                {
                    if (gordumu == true)
                    {
                        liste.Add(toplam);
                        katsayi = 1;
                        toplam = 0;
                        gordumu = false;
                    }
                }
            }
            if (gordumu == true)
                liste.Add(toplam);
            for (int i = 0; i < liste.Count; i++)
            {
                anatoplam *= liste[i];
            }
            return anatoplam;
        }
    }
}



18 Eylül 2013 Çarşamba

c#ta infix notasyonu prefixe çevirmek

Prefix ve postfix hesap makinalarında,derleyicilerde kullanılan 4 işlem tekniklerinden birisidir .Bizim bildiğimiz matematiksel denklemleri, fonksiyonları parantez kullanmadan yazmamızı sağlayan bir tekniktir. Polish notation olarak da geçer .Alttaki linkler genel fikri verecektir http://itviewson.files.wordpress.com/2012/06/infixprefixpostfix.pdf
http://www.cs.man.ac.uk/~pjj/cs2121/fix.html
    class Notations
    {
        string fnk;
        char[] oparray = { '+', '-', '/', '*', '^' };
        public Notations(string infix)
        {
            this.fnk = infix;
        }
        bool operandmi(char cr)
        {
            int i = 0;
            while (i<5)
            {
                if (cr == oparray[i])
                    return true;
            }
            return false;
        }
        public string prefix()
        {
            string asd = fnk;
           
            Stack OpStack = new Stack();
            Stack PrefixStack = new Stack();
            int i = asd.Length-1;
            while (i>=0)
            {
                char cr = asd[i];
                if (cr > 47 && cr < 58)
                {
                    PrefixStack.Push(cr);
                    PrefixStack.Push(',');
                    i--;
                }
                else
                {
                    int j = 0;
                    while ( j<5 && cr!=oparray[j] )
                    {
                        j++;
                    }
                    if (j != 5)
                    {
                        OpStack.Push(cr);
                        i--;
                    }
                    else
                    {
                        if (cr == ')')
                        {
                            OpStack.Push(')');
                            i--;
                        }
                        else
                        {
                            if (cr == '(')
                            {
                                char cr2;
                                do
                                {
                                   cr2=OpStack.Pop();
                                   if (cr2 != ')')
                                       PrefixStack.Push(cr2);
                                } while (cr2==')');
                                OpStack.Pop();
                                i--;
                            }
                        }
                    }
                }
            }
            while (OpStack.Count!=0)
            {
                PrefixStack.Push(OpStack.Pop());   
            }
            StringBuilder bl = new StringBuilder();
            while (PrefixStack.Count!=0)
            {
                bl.Append(PrefixStack.Pop());
            }

            return bl.ToString();
        }
    }


3 Temmuz 2013 Çarşamba

Windows store appslarda Kontrol Bulma

Windows store appslarda Kontrol Bulma
 private DependencyObject FindChildControl(DependencyObject control, string ctrlName)
        {
            int childNumber = VisualTreeHelper.GetChildrenCount(control);
            for (int i = 0; i < childNumber; i++)
            {
                DependencyObject child = VisualTreeHelper.GetChild(control, i);
                FrameworkElement fe = child as FrameworkElement;
                if (fe == null) return null;

                if (child is T && fe.Name == ctrlName)
                {
                    return child;
                }
                else
                {
                    DependencyObject nextLevel = FindChildControl(child, ctrlName);
                    if (nextLevel != null)
                        return nextLevel;
                }
            }
            return null;
        }


13 Kasım 2012 Salı

Asal mi degil mi

Girilen bir sayinin asal olup olmadığını kontrol eder
program asalmi(input,output);
Label here;
var
a,i : integer;

begin
writeln('Sayiyi Giriniz');
readln(a);
if a>2 then
    begin
          for i:=2 to A-1 do
          begin
             if A mod i=0 then
             begin
             writeln('Sayi Asal Degildir.',i,' sayisina tam bolunur');
             Goto here;
             Break;
             end
          end;
          writeln('Sayi Asaldir');
          goto here
    end
    else
     if A=2 then
     writeln('sayi asaldir')
     else
     writeln('1 den buyuk bir sayi giriniz');
    here:readln()
end.

10 sayidan en büyüğü

Klavyeden girilen 10 sayidan hangisinin en büyük sayi olduğunu ve hangi sirada girildiğini ekrana yazdıran program
program enbuyuks(input,output);
var
   i,sayi,enbuyuk,sira : integer;
begin
writeln('Sayiyi Giriniz');
readln(sayi);
enbuyuk:=sayi;
sira:=1;
for i:=2 to 9 do
 begin
 writeln('Sayiyi Girin');
 readln(sayi);
 if sayi>enbuyuk then
   begin
    sira:=i+1;
    enbuyuk:=sayi
   end
end;
writeln('en buyuk sayi : ',enbuyuk);
writeln('Girildigi Sira : ',sira);
readln()
end.

10 Kasım 2012 Cumartesi

Saat hesaplama

başlangıç saati ve tahmini varış süresi verilen yolun varışını hesaplama
program saatbul(input,output);
var
gun,saat1,saat2,dakika1,dakika2,ssaat,sdakika:integer;
begin
writeln('yola cikilacak saati yazin');
readln(saat1);
writeln('yola cikilacak dakikayi yazin');
readln(dakika1);
writeln('yolda gececek saati yazin');
readln(saat2);
writeln('yolda gececek dakikayi yazin');
readln(dakika2);
sdakika:=dakika1+dakika2;
ssaat:=saat1+saat2;
if sdakika>=60
then
    begin
       ssaat:=ssaat+sdakika div 60;
       sdakika := sdakika mod 60;
    end;
if ssaat >=24
then
    begin
       gun :=ssaat div 24;
       ssaat := ssaat mod 24;
       writeln(gun,' gun ',ssaat,' saat ',sdakika,' dakika')
    end
else
  writeln(ssaat,' saat ',sdakika,'dakika');
  readln()
end.