25 Ekim 2011 Salı

c# ta girilen 2 sayıdan büyük olanını metot yöntemi ile bulma

using System;
class Enbuyuksayi
{
static int Enbuyuk2(int a , int b)
{
if(a>b)
return a ;
return b;
}
static void Main()
{
int sayi1,sayi2;
Console.WriteLine("Sayıları girin");
sayi1=Convert.ToInt32(Console.ReadLine());
sayi2=Convert.ToInt32(Console.ReadLine());
int maks= Enbuyuk2(sayi1,sayi2);
Console.WriteLine("En büyük sayı {0}",max);
}
}

24 Ekim 2011 Pazartesi

Girilen bir sayının belirtilen üssünü alan ve ekrana yazan c# programı

Buda algoritma ödevlerinden biriydi bununda programını upload ettim linkten bulabilirsiniz.
using System;
class Soru2_4
{
    static void Main()
    {
        int taban, us;
        int sonuc;
        int sayac;
       
        Console.Write("Taban sayısını giriniz:");
        taban = Convert.ToInt32(Console.ReadLine());
     
        Console.Write("Üs sayısını giriniz : ");
        us = Convert.ToInt32(Console.ReadLine());
        sonuc = 1;
        for (sayac = 1; sayac <= us; sayac++)
            sonuc *= taban;
        Console.WriteLine("Sonuc " + sonuc);

    }
}
http://www.upload.gen.tr/d.php/www/hca9oiz6/Algoritma.exe.html

Bir gemi 10 dakika boyunca düzgün hızlanarak hızını 0 mil/saat’ ten 40 mil/saat’ e çıkarıyor. Daha sonra ulaştığı bu hızda 2 saat boyunca sabit hızla gidiyor. Ardından 20 dakika boyunca düzgün yavaşlayarak duruyor. Herhangi bir t (dakika) anında geminin hızını veren C# programı

Bunun programını c# ta yaptım . Kodlarını ve programını yazıyorum .

using System;
class LengthDemo
{
    static void Main()
    {
        int b= 1;
       int  ivme = 4 ;
       Console.WriteLine("Hangi dakikadaki hızını arıyorsunuz : ?");
        int a = Convert.ToInt32(Console.ReadLine());
     
        if(a<10 && a>0)
        {
            Console.WriteLine("{0} . dakikadaki hızı budur",a);
            ivme *= a;
            Console.WriteLine(ivme);
        }
        if(a>10 && a<=130)
        {
            Console.WriteLine("{0}.dakikadaki hızı budur : ",a);
            int c = 40;
            Console.WriteLine(c);
        }
        if (a > 130 && a <= 150)
        {
            Console.WriteLine("{0}.dakikadaki hızı budur : ", a);
            int e = 150 - a;
            int d = e * 2;
            int f = 40 - d;
            Console.WriteLine(f);
        }
        if (a < 0 || a > 150)
           { Console.WriteLine("{0}.Dakikada Hareket Bulunmamaktadır", a);}


  Console.WriteLine("Çıkmak için entera basın");
        string m = Console.ReadLine();

    }
 
}

Programıda burada ;
http://www.upload.gen.tr/d.php/www/njfrdbal/Gemi.exe.html

Dizileri Sıralama c#

Dizilerde sıralama işlemini temel olarak yapacağız . Sort() metodu ile ;
Array.Sort(Array);
Bu metot parametre olarak verilen diziyi sıralamaya yarar.
Sıralamalar yapılırken arayüz(interface ) dediğimiz kavramlardan faydalanılır.

Şimdi farklı türlerdeki dizilerin Sort() Metodu ile nasıl sıralandığını görmek için bir örnek yapalım:
using System;
class SortArray
{
static void Main()
{
Array dizi= Array.CreateInstance(typeof(int),6);
dizi.SetValue("Sefer",0);
dizi SetValue("Mehmet",1);
dizi.SetValue("Tahir",2);
dizi.SetValue("Yusuf",3);
dizi.SetValue("Yunus",4);
dizi.SetValue("Gökçen",5);
Console.WriteLİne("Sırasız dizi: \n");
foreach(string isim in dizi)
Console.Write(isim + " -");
Console.WrietLine("\n Sıralı dizi : \n");
Array.Sort(dizi);
foreach(string isim in dizi)
Console.Write(isim + " -");
}
}
Bu programda string türünden diziler sıralandı ( bu sıralama alfabetik sıralamadır.)Sıralama işlemini sayı türleri içinde yapabilirdi . Bu defa sıralama işlemi küçükten büyüğe doğru olurdu

Dizileri Kopyalamak c#

Dizilerin CopyTo metodu ile bir dizinin tamamı , başka bir dizinin istenilen yerine kopyalanabilir, örneğin aşağıdaki dizinin tüm elemanları dizi2'ye 3.indekten itibaren kopyalanıyor.
int[]dizi1={1,2,3,4};
int[] dizi2=new int[10];
dizi1.CopyTo(dizi2,3);
Dizilerle ilgili diğer kopyalama işlemleri ise Array sınıfının Copy metodu ile yapılabilir.Copy metodunu aşağıdaki şekillerde kullanabiliriz:
1-Copy(Array dizi1,Array dizi2,int uzunluk);
Bu metot "Uzunluk" kadar elemanı dizi1 ' den dizi2 ' ye kopyalar.Kopyalama işlemi 0.indeksten başlar.
2-Copy(Array dizi1,int x , Array dizi2,int y,int uzunluk);
dizi1 ' in x.indeksinden sonraki uzunluk kadar elemanı dizi2'nin y. indeksinden sonrasına kopyalar.
Copy metodunun ikinci kullanımına bir örnek verelim
using System;
class ArrayCopy
{
static void Main()
{
int[]dizi1= {1,2,3,4,5,6,7};
int[]dizi2=new int[10];
Array.Copy(dizi1,2,dizi2,5,4);
foreach(int i in dizi2)
Console.Write(i);
}
}
Yukarıdaki program çalıştırıldığında dizi2 nin elemanları ekrana yazılacaktır. Programı çalıştırıdığınızda ekrana
0 0 0 0 0 3 4 5 6 0
yazar.

CreateInstance Metodu ile Dizi Tanımlama

CreateInstance metodu ile aşağıdaki şekilde bir dizi nesnesi oluşturulabilir.
Array dizi = Array.CreateInstance(typeof(int),5);
foreach(int i in dizi)
Console.WriteLİne(i);
Yukarıdaki deyimlerle int türünden 5 elemanlı bir dizi oluşturuluyor.Bu dizinin elemanlarını foreach döngüsü ile yazdırdığımızda dizinin bütün elemanlarının 0 a atandığını görürürz.CreateInstance metodunu farklı şekillerde çağırabiliriz .İlk parametre her zaman Type Türünde olmalıdır.Yukarıdaki kullanımda typeof operatörü ile int türünü type sınıfı karşılığı elde ediliyor.
Aşağıda CreateInstance metodunun bazı değişik kullanımları ve kısa açıklamaları yer almaktadır
1-CreateInstance(Type,int,int,int);
Bu metot ile parametre ile verilen eleman sayılarda type türünden 3 boyutlu diziler oluşturulur.
2-CreateInstance(Type,int);
Type türünden int ile verilen sayı kadar elemanı olan bir dizi nesnesi oluşturulur.
3-CreateInstance(Type,int[]);
Çok boyutlu diziler oluşturmak için kullanılır.Çok boyutlu dizilerin her birinin kaç elemanlı olduğunu belirlemek için int türden bir dizi metoda parametre olarak gönderilir.
4-CreateInstance(Type,int,int);
Parametre olarak verilen boyutlarda iki boyutlu dizi nesnesi oluşturur.
Şimdi CreateInstance metodu ile 3 boyutlu bir dizinin oluşturulmasına örnek verelim:

using System;
class Array
{
static void Main()
{
Array dizi = Array.CreateInstance(typeof(int),5,4,3);
for(int i = 0;i<=dizi.GetUpperBound(0);i++)
for(int j =0;j<=dizi.GetUpperBound(1);j++)
for(int k =0; k<=dizi.GetUpperBound(2);k++)
dizi.SetValue(i+j+k,i,j,k);
for(int i = 0; i<=dizi.GetUpperBound(0);i++)
for(int j =0; j<=dizi.GetUpperBound(1);j++)
for(int k =0;k<=dizi.GetUpperBound(2);k++)
Console.WriteLine(dizi.GetValue(i,j,k));
}
}
Yukarıdaki programda tanımlanan 3 boyutlu dizideki her boyutun eleman sayısı Array sınıfının GetUpperBound Metodu ile alınmaktadır.Bu Metot parametre olarak sıfırdan başlayan boyut numarası alır.
Array sınıfının SetValue metodu ilgili dizinin belirtilen indekslerindeki elemanlarını değerini değiştirmek için kullanılır.GetValue metodu ise belirtilen indekslerdeki elemanın değerini verir.

23 Ekim 2011 Pazar

c# ta dizileri birbirine atama ..

Aşağıdaki program dizilerdeki length özelliğini kullanarak bir dizinin elemanlarını arkadan öne doğru bir başka diziye kopyalayıp dizinin içeriğini ters çevirmektedir.
using System;
class TersCevirme
{
static void Main()
{
int i ,j;
int[] nums1 = new int[10];
int[] nums2 = new int[10];
for(i=0; i<nums1.Length; i++)
nums1[i]=i;
Console.Write("Orjinali : ");
for(i = 0 ; i<nums2.Length: i++)
Console.Write(nums1[i]+ " ");
Console.WriteLine();
// nums1 den nums2 ye tersten kopyalama başlıyor
if(nums2.Length>=nums1.Length) // nums2 nin yeterli uzunlukta olup olmadığını test et
for(i=0, j=nums1.Length-1; i<nums1.Length; i++,j--)
nums2[j]=nums1[i];
Console.Write("Çevirilmiş hali : ");
for(i=0;i<nums2.Length;i++)
Console.Write(nums2[i]+ " ");
Console.WriteLine();
}
}

19 Ekim 2011 Çarşamba

Girilen n tamsayıdan negatif ve pozitif olanların sayısını bulan c# programı

2.Örneği c# ta yazdım ve bunu paylaşmak istedim . Neden c++ yada c değil cevap basit . BİLMİYORUM :D


Girilen n tamsayıdan negatif ve pozitif olanların sayısını bulan ve ekrana yazan bir C/C++
programı yazınız ve bu programın akış diyagramını çiziniz.


using System;
class soru_2_2
{
    static void Main()
    {
        int negatif = 0;
        int pozitif = 0;


        Console.WriteLine("Girilecek sayı miktarı :");
        int n = Convert.ToInt32(Console.ReadLine());
        for (int i = 1; i <= n; )
        {
            Console.WriteLine("{0}.sayıyı giriniz ", i);
            int a = Convert.ToInt32(Console.ReadLine());
            if (a < 0) negatif++;
            else pozitif++;
            i++;
         
        }
        Console.WriteLine("Pozitif sayı miktarı {0}", pozitif);
        Console.WriteLine("Negatif sayı miktarı {0}", negatif);

        Console.WriteLine();
        Console.WriteLine("Çıkmak için entera basınız ");
        string z = Console.ReadLine();

    }
}
Programın uygulamasıda burada

http://www.upload.gen.tr/d.php/www/a2mpicth/Odev2.2.exe.html


18 Ekim 2011 Salı

Kolay bir if yapısı (c#)

Burada nota göre harf ataması yapan . ve değerleri 100 den büyük 0 dan küçük olmayacak şekilde çalıştıran bir programın kodlarını yazacağım ;

using System;
class KolayIf
{
static void Main()
{
int not;
Console.Write("Notunuzu giriniz : ( 0 - 100) ");
not = Convert.ToInt32(Console.ReadLine());

if(not <0 || not >100)
Console.WriteLine("Yanlış not girdiniz ");
else if (not > 90)
Console.WriteLine("Notunuz : A");
else if (not > 80)
Console.WriteLine("Notunuz : B");
else if(not>70)
Console.WriteLine("Notunuz : C");
else if(not > 50)
Console.WriteLine("Notunuz : D");
else
Console.WriteLine("Dersi geçemediniz .");
}
}

c# ta küçük bir şifreleme metodu

c# ta mantıksal operatörler içinde (^) işaretiyle gösterilen XOR  yapısı adı altına geçen programın alt seviye bir şifreleme metodunu göstereceğim ;
Bu işin mantığı şudur herhangi bir x değerine bir başka y değeri ile xor işlemi uygulandığında ve sonra sonucu tekrar y ile xor a sokunca x elde edilir .. Yani ;
R1 = X ^ Y ; R2 = R1^Y r2 ile x aynı değere sahiptir . Yani , aynı değerleri kullanan peş peşe iki xor ifadesinin sonucu orjinal değeri üretir. Bu prensibi basit bir şifreleme programı geliştirmek için kullanabiliriz. Bu durumda bir tamsayı mesajdaki karakterlere xor uygulayak hem mesajı şifrelemek hemde mesajın şifresini çözmek için kullanılan bir anahtardır . Şifrelemek için XOR işlemi ilk kez uygulanır  ve şifrelenmiş metin elde edilir . Şifreyi çözmek için XOR işlemi ikinci kez uygulanır ve orjinal metin elde edilir . İşte kısa bir mesaj şifreleme örneği;


using System;
class OmerSifre
{
public static void Main()
{
char ch1 = 'O';
char ch2 = 'M';
char ch3 = 'E';
char ch4 = 'R';
int key = 88;
Console.WriteLine("Mesajın orjinali " +ch1+ch2+ch3+ch4);
// mesajın şifrelenme bölümü  başlıyor
ch1=(char)(ch1^key);
ch2=(char)(ch2^key);
ch3=(char)(ch3^key);
ch4=(char)(ch4^key);
Console.WriteLine("Şifreli mesaj : " +ch1+ch2+ch3+ch4);
//Mesaj şifresinin tekrar çözülmesi
ch1=(char)(ch1^key);
ch2=(char)(ch2^key);
ch3=(char)(ch3^key);
ch4=(char)(ch4^key);
Console.WriteLine("Mesajın çözülmüş hali : "  +ch1+ch2+ch3+ch4 );
}
}

17 Ekim 2011 Pazartesi

Tic-Tac-Toe (Bizdeki adıyla x-o-x oyunu)



Güzel bir uygulama olmuş bence. Stratejileri yetersiz ama başlangıç seviyesindeki bizler için kodlarını incelemek güzel olur diye düşündüm. :) Oynanışı basit, klavyeden sadece 1 ile 9 arası sayılar giriyoruz...

Kodlar: http://tinypaste.com/5fbfb3

15 Ekim 2011 Cumartesi

Fizik lab. Tahta Resmi 2

tahtada yazılanları geçirmeyen arkadaşlarımız için telafi şansı :)


C# için internetten bulabileceğiniz pdf

c# isteği üzerine benimde önceden ulaşmış olduğum ve memnun olduğum pdf i koyuyorum
link den indirebilirsiniz
http://www.yazilimindir.com/index.php?scm=2&git=4323

ben upload etmedim eğer uploadda bi sorun varsa bende başka bi yere upload edebilirim .

14 Ekim 2011 Cuma

C++ Üzerine Kitap Tavsiyesi

İnternette baya bir araştırdım, C++ üzerine en çok bu iki tap tavsiye edilmiş:

Robert Lafore - Nesne Yönelimli C++ Programlama Kılavuzu
Herbert Schildt - C++ Temel Öğrenim Kılavuzu

Birkaç haftaya bu iki kitabı almayı düşünüyorum, sizin de haberiniz olsun dedim. :)

1 den n e kadar olan sayıların toplamı yazan program

Arkadaşlar c# ta klavyeden girilen n (pozitif) sayısına kadar olan sayıların toplamını yazan program ;


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

namespace ConsoleApplication3
{
    class Program
    {
        static void Main(string[] args)
        {
             int t = 0;
            Console.WriteLine("N değerini gir");
            int n = Convert.ToInt32(Console.ReadLine());
            for (int i = 0; i <= n; i++)
                t += i;
            Console.WriteLine("1 den N e kadar olan sayıların toplamı = ");
            Console.WriteLine(t);
               Console.WriteLine();
            Console.WriteLine("Programdan çıkmak için Entera basın : ");
            string k = Console.ReadLine();



        }
    }
}

Programıda bu siteye upload ettim ..

http://www.upload.gen.tr/d.php/www/2awudrp0/Say__lar__nToplam__.exe.html

13 Ekim 2011 Perşembe

c# ta sınıf ekleme / düzenleme

using System;
class Bina
{
    public int katsayisi; // kat sayisi
    public int Alan; // toplam bina alani
    public int oturanSayisi;// oturanların sayısı
}
// bu sınıf bina tipinde iki nesne deklare eder
class BinaDemo
{
    public static void Main()
    {
        Bina ev= new Bina();
        Bina ofis = new Bina();
        int kba; // kisi başına düşen alan
        //ev içindeki alanlara değer ata
        ev.oturanSayisi = 4 ;
        ev.Alan=2500;
        ev.katsayisi=2;
        //ofis içindeki alanlara değer ata
        ofis.oturanSayisi=25;
        ofis.Alan=4200;
        ofis.katsayisi=3;
        //ev içindeki kişi başına düşen alanı hesapla
        kba=ev.Alan/ev.oturanSayisi;
        Console.WriteLine("ev sahiptir " + ev.katsayisi + " katsayisi\n " + ev.oturanSayisi + "oturan sayisi \n " + ev.Alan + "toplam alan \n" + kba + "kişi başına düşen alan \n");
        Console.WriteLine();
        // ofic içinde kişi başına düşen alanı hesapla
        kba = ofis.Alan/ofis.oturanSayisi;
        Console.WriteLine("ofis sahiptir " + ofis.katsayisi + " ofis katsayısı " + ofis.katsayisi + "ofis oturan sayısı " + ofis.oturanSayisi + "ofis alan" + ofis.Alan + "ofis kişi başına düşen alan" + ofis.Alan );
    }
}

Algoritma Ve Programlama Ödevlerinden

Örnek alg. 5: Bir öğrencinin dönem içerisindeki ve dönem sonundaki notlarını klavyeden okuyan, Yıliçi ve Başarı notunu bilinen katsayılara göre hesaplayan algoritmayı tasarlayın.

Öğrencilerin notlarını gösteren liste genelde şekil de verilen tablodakine benzerdir. Öğrencinin Vize, kısa sınav 1, kısa sınav 2 ve ödev notu belli oranlarda alınarak yıl içi başarı notu bulunur. Final notunun belirli bir yüzdesi ile yıl içi notunun %100’e tamamlanacak yüzdelik oranı ile başarı puanı bulunur. Örneğin
Yıl içine etki yüzdeleri
Vizenin %60 ‘ı,
Kısa sınav 1’ in %10,
Kısa sınav 2’ in %10,
Ödev notu’nun  %20,
Başarı Notu
Yıliçi Notunun %50,
Final Notunun %50
sinin Yıl sonuna etkisini gösteren programı göstereyim beyler 
Programın Download Linki ;


Visual Studio Ve c# ta derlenmiştir , Programın Kodları ;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication3
{
    class Program
    {
        static void Main(string[] args)
        {
         
            Console.WriteLine("Ödev değerini gir");
            int a = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine();
            double z = a * 0.2;
            Console.WriteLine("Kısa Sınav 1 i gir");
            int b = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine();
           double y = b * 0.1;
            Console.WriteLine("Kısa Sınav 2 yi gir");
            int c = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine();
            double w = c * 0.1;
            Console.WriteLine("Vizeyi gir");
            int d = Convert.ToInt32(Console.ReadLine());
            double v = d * 0.6;
            Console.WriteLine();
           double e = (z + y + w + v) / 2;

            Console.WriteLine("Final Sınavının Değerini Gir");
            int f = Convert.ToInt32(Console.ReadLine());
            
            double g = e + (f/2);
            Console.WriteLine();
            Console.WriteLine("Yıl Sonu Başarı Notun : " +g);
            Console.WriteLine();
            Console.WriteLine("İşleminiz bittiyse kapatmak için entera basın");
                String k = (Console.ReadLine());


        }
    }
}

8 Ekim 2011 Cumartesi

Fizik Lab. Tahta Resmi için :)


Algoritma ve Programlama Dersi Hakkında

Bu dönem tamamen kullanmaya başlayacağımız C dili için size derleyici önereceğim;
peki derleyici nedir ? Pek konuşulsada bunun hakkında fikri olmayanlar var , derleyici kodlarımızı bilgisayarın anlayacağı dile çevirip onu çalıştıran programdır.
Bu Siteden derleyiciyi bulabilirsiniz.
Peki C nedir ? Diyenler İçin ise