15 Nisan 2019 Pazartesi
4 Nisan 2014 Cuma
Kutuplaşmalar ve çıkar kavgaları.
Başlık pek uymayabilir yazacağıma. Bunun için şimdiden kusura bakmayın.
Bir ankara işi...
Bir insan çalışır çabalar ve birşey bekler karşılığında. Bu onu memnun edecek birşey olmalı ki yaptığı işi helal etsin ya da iyi ki yaptım desin. Tamam aldığı şeyden memnun olur yani ve işlevlerini devam ettirir. Ama o sırada biri veya birileri gelir. Onun gibi değildir. Çalışmak denen şey onlara göre değildir. Tamam der çekilirsin kenara belki ama karşılığını alma sırası gelince senden önce davranır Sen kadar veya senden fazla alınca bi düşünürsün. NE OLUYOR !? Tepki vermek en doğal hakkın olmasına rağmen buna kalkıştığın an karşında başkasını bulur 'bu budur' der ve muhabbeti bitirir. Diyebileceğin şey boğazına tıkılmıştır. Gece düşünürsün diyeceklerini belki de. Ertesi gün gider söylersin ancak yine lafın bitmeden tıkanır, 'biz senden öncede burdaydık' ... hak yeniyor bi şekilde burda. Bu sefer diyorsun Öyle yapıyorsa o Bazı şeylerden faydalanamayacak. Vayy anasını Öyle nasıl dersin sen ! Kime sordun da böyle bişey yaparsın ? Ve tabi suçlu olursun. Savunulan kişi sadece o dur Çünkü çıkarları var birbirinden. Başkasına bakılmaz. Ve dünya dönmeye devam eder. Masumca...
Saygılar..
Bir ankara işi...
Bir insan çalışır çabalar ve birşey bekler karşılığında. Bu onu memnun edecek birşey olmalı ki yaptığı işi helal etsin ya da iyi ki yaptım desin. Tamam aldığı şeyden memnun olur yani ve işlevlerini devam ettirir. Ama o sırada biri veya birileri gelir. Onun gibi değildir. Çalışmak denen şey onlara göre değildir. Tamam der çekilirsin kenara belki ama karşılığını alma sırası gelince senden önce davranır Sen kadar veya senden fazla alınca bi düşünürsün. NE OLUYOR !? Tepki vermek en doğal hakkın olmasına rağmen buna kalkıştığın an karşında başkasını bulur 'bu budur' der ve muhabbeti bitirir. Diyebileceğin şey boğazına tıkılmıştır. Gece düşünürsün diyeceklerini belki de. Ertesi gün gider söylersin ancak yine lafın bitmeden tıkanır, 'biz senden öncede burdaydık' ... hak yeniyor bi şekilde burda. Bu sefer diyorsun Öyle yapıyorsa o Bazı şeylerden faydalanamayacak. Vayy anasını Öyle nasıl dersin sen ! Kime sordun da böyle bişey yaparsın ? Ve tabi suçlu olursun. Savunulan kişi sadece o dur Çünkü çıkarları var birbirinden. Başkasına bakılmaz. Ve dünya dönmeye devam eder. Masumca...
Saygılar..
12 Mart 2014 Çarşamba
Yazılarıma başlangıç...
Ülkenin bu kadar sorunlu olduğunu bilmek beni üzüyor. Neler neler oluyormuş Neler neler yapılıyormuş. Ama hep -mış -muş ... Abim toplumu önemseme ama lafını da yabana atma demişti bana. Toplumu önemsememek demokrasiye aykırıdır Ancak demokraside de bir çoğunluk varsa görüş bildirmiş O çoğunluğa uymak gerekir. O zaman Diğer toplum düşüncesi yabana mı atılmalı Yada onların isteği mi olmalı? Şu kanıya vardım ki Herkesi memnun edemezsin.
Anlamadığım şey Bu demokrasi kişiden kişiye göre değişiyor mu ? Daha düne kadar demokrasi diye boğaz yırtanlar Neden çoğunluğun seçtiği kişiye saygı göstermez de Küfür Hakaret içeren kelimeler sarfeder ? Onların aklı kesmiyor mu oy atarken ? En akıllı siz misiniz ? Demek geliyor içimden.
Demek ki toplum denildiğinde görüş ayrılıkları olacak ama hangi görüş çoksa ona saygı duyulacak.. olması gerekende bu...
Anlamadığım şey Bu demokrasi kişiden kişiye göre değişiyor mu ? Daha düne kadar demokrasi diye boğaz yırtanlar Neden çoğunluğun seçtiği kişiye saygı göstermez de Küfür Hakaret içeren kelimeler sarfeder ? Onların aklı kesmiyor mu oy atarken ? En akıllı siz misiniz ? Demek geliyor içimden.
Demek ki toplum denildiğinde görüş ayrılıkları olacak ama hangi görüş çoksa ona saygı duyulacak.. olması gerekende bu...
25 Kasım 2013 Pazartesi
C#’da if, else, else if Komutları
1) if(eğer) komutu bir şart sunar ve şartın doğru olması sonucu içindeki işlemleri yapar.
Burada ortalamayı istediğiniz gibi aldırabilirsiniz(Ör. ortalama=not1*0.4+not2*0,6;)
if koşulumuzu türkçe’ye çevirirsek, ‘hesaplanan ‘ortalama’ 50′den büyük veya eşitse’ denmektedir. Diğer if koşulumuzda ise ’50′den küçük ise’ koşulu vardır. Başka bir olasılık olmadığı için bir if komutuna daha gerek yoktur.
Bu komut satırında iki ‘if’ komutunuda bilgisayar ayrı ayrı gözden geçirir.
2)Şimdi ‘else’ komutuna gelelim.
else’nin kelime anlamı ‘değilse’ olarak tanımlanabilir. Değilse ama ne değilse. İşte buradanda anlaşılacağı gibi else’nin önünde bir komut olması gerekir ve bu komutta ‘if’ komutudur. if’te bir şart sunulur, bu şartın doğru ve yanlış olma olasılığı vardır. Doğru olduğunda kendi içindeki komutları gerçekleştirir ama şart doğru değilse ne olacak, veee else :), else’miz devreye girecek.
Yukarıdaki Kodu ‘else’ komutuyla yapalım.
Değişen sadece if(ortalama<50) oldu ancak yine aynı işlemi yaptı. Fark ne diyorsanız, Bilgisayar eğer ayrı ayrı if'ler olsaydı hepsini tek tek gözden geçirmek zorundadır ve bu bilgisayarın işlemcisini yorması demektir, ancak else(değilse) olduğu zaman bilgisayar ilk önce if komutuna bakar Eğer doğruysa işlemini yapar ve else komutuna atlamaz. Bunun esas görüldüğü komut 'else if' komutudur. 3)'else if' (değilse eğer) komutu öncesinde ki if komutu doğru olmadığı zaman yeni bir şart sunmak için kullanılır. Yukardaki sistemi biraz değiştirip 5 üzerinden değerlendirelim.
'else if' komutlarını sadece 'if' te yapabilirdik ancak bunun gibi yüzlerce if olduğunu düşünürsek bilgisayar hepsini tek tek işleyeceği için yorulacak ve kasılacaktır (sizde kalaylayacaksınız tabi :)) ancak else if komutu hepsinin işlenmesini engeller. Mesela ilk 'if' komutuna bakar doğru ise işlemini yapar ve diğer 'else if' ve 'else' komutlarına bakmadan en son 'Console.WriteLine("komut satırı bitti");' koduna geçer, diyelim ilk 'if' şartı doğru değil, o zaman hemen sonraki 'else if' şartına bakar, doğru ise işlemi yapar ve 'Console.WriteLine("komut satırı bitti");' ve sonrasındaki komutlara bakar varsa devam eder yoksa programı bitirir. Eğer yine doğru değilse diğer 'else if' şartlarına bakar. Bu böyle 'else' komutuna kadar gidebilir.
if(şart)
{
işlemler(komutlar)
}
Burada şart doğru olmadığı sürece ‘işlemler(komutlar)’ satırına asla geçmez. Şimdi buna ilişkin bir not hesaplama ve şart sunarak ekrana geçti/kaldı yazdıralım.
//notlar için değişkenler
double not1 = 0, not2 = 0;
double ortalama = 0;
//'not1' verisi kullanıcıdan alınıyor
Console.Write("İLk notunuzu giriniz=");
not1 = Convert.ToDouble(Console.ReadLine());
//'not2' verisi kullanıcıdan alınıyor
Console.WriteLine("İkinci notu giriniz=");
not2 = Convert.ToDouble(Console.ReadLine());
//işlem yaptırılıyor
ortalama = not1 / 2 + not2 / 2;
//ortalama verisi ekrana yazdırılıyor
Console.WriteLine("Ortalamanız={0}", ortalama);
//koşullar oluşturuluyor
if (ortalama >= 50)
{
Console.WriteLine("Geçtiniz");
}
if (ortalama < 50)
{
Console.WriteLine("Kaldınız");
}
Burada ortalamayı istediğiniz gibi aldırabilirsiniz(Ör. ortalama=not1*0.4+not2*0,6;)
if koşulumuzu türkçe’ye çevirirsek, ‘hesaplanan ‘ortalama’ 50′den büyük veya eşitse’ denmektedir. Diğer if koşulumuzda ise ’50′den küçük ise’ koşulu vardır. Başka bir olasılık olmadığı için bir if komutuna daha gerek yoktur.
Bu komut satırında iki ‘if’ komutunuda bilgisayar ayrı ayrı gözden geçirir.
2)Şimdi ‘else’ komutuna gelelim.
else’nin kelime anlamı ‘değilse’ olarak tanımlanabilir. Değilse ama ne değilse. İşte buradanda anlaşılacağı gibi else’nin önünde bir komut olması gerekir ve bu komutta ‘if’ komutudur. if’te bir şart sunulur, bu şartın doğru ve yanlış olma olasılığı vardır. Doğru olduğunda kendi içindeki komutları gerçekleştirir ama şart doğru değilse ne olacak, veee else :), else’miz devreye girecek.
Yukarıdaki Kodu ‘else’ komutuyla yapalım.
double not1 = 0, not2 = 0;
double ortalama = 0;
Console.Write("İLk notunuzu giriniz=");
not1 = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("İkinci notu giriniz=");
not2 = Convert.ToDouble(Console.ReadLine());
ortalama = not1 * 0.4 + not2 * 0.6;
Console.WriteLine("Ortalamanız={0}", ortalama);
if (ortalama >= 50)
{
Console.WriteLine("Geçtiniz");
}
else
{
Console.WriteLine("Kaldınız");
}
Değişen sadece if(ortalama<50) oldu ancak yine aynı işlemi yaptı. Fark ne diyorsanız, Bilgisayar eğer ayrı ayrı if'ler olsaydı hepsini tek tek gözden geçirmek zorundadır ve bu bilgisayarın işlemcisini yorması demektir, ancak else(değilse) olduğu zaman bilgisayar ilk önce if komutuna bakar Eğer doğruysa işlemini yapar ve else komutuna atlamaz. Bunun esas görüldüğü komut 'else if' komutudur. 3)'else if' (değilse eğer) komutu öncesinde ki if komutu doğru olmadığı zaman yeni bir şart sunmak için kullanılır. Yukardaki sistemi biraz değiştirip 5 üzerinden değerlendirelim.
double not1 = 0, not2 = 0;
double ortalama = 0;
Console.Write("İLk notunuzu giriniz=");
not1 = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("İkinci notu giriniz=");
not2 = Convert.ToDouble(Console.ReadLine());
ortalama = not1 * 0.4 + not2 * 0.6;
Console.WriteLine("Ortalamanız={0}", ortalama);
//koşullar oluşturuluyor
if (ortalama >= 85)
{
Console.WriteLine("Geçme notunuz=5");
}
else if(85 > ortalama >= 70)
{
Console.WriteLine("Geçme notunuz=4");
}
else if (70 > ortalama >= 55)
{
Console.WriteLine("Geçme notunuz=3");
}
else if (55 > ortalama >= 40)
{
Console.WriteLine("Geçme notunuz=2");
}
else if (40 > ortalama >= 25)
{
Console.WriteLine("Geçme notunuz=1");
}
else
{
Console.WriteLine("Geçme notunuz=0");
}
Console.WriteLine("komut satırı bitti");
'else if' komutlarını sadece 'if' te yapabilirdik ancak bunun gibi yüzlerce if olduğunu düşünürsek bilgisayar hepsini tek tek işleyeceği için yorulacak ve kasılacaktır (sizde kalaylayacaksınız tabi :)) ancak else if komutu hepsinin işlenmesini engeller. Mesela ilk 'if' komutuna bakar doğru ise işlemini yapar ve diğer 'else if' ve 'else' komutlarına bakmadan en son 'Console.WriteLine("komut satırı bitti");' koduna geçer, diyelim ilk 'if' şartı doğru değil, o zaman hemen sonraki 'else if' şartına bakar, doğru ise işlemi yapar ve 'Console.WriteLine("komut satırı bitti");' ve sonrasındaki komutlara bakar varsa devam eder yoksa programı bitirir. Eğer yine doğru değilse diğer 'else if' şartlarına bakar. Bu böyle 'else' komutuna kadar gidebilir.
Tek Boyutlu Diziyle Sayısal Loto Programı
Sayısal loto, 6 tane farklı sayı demektir. C# ta bunu yapmak zor olmasa gerek diye düşünebilirsiniz ve ilk yazacağınız program şu olabilir.
Evet sayısal lotoyu yaptınız. Ama mantık hatasıyla yaptınız.
Buradaki kodlarda program aynı sayıyı 6 kere seçebilir. Nasıl yani. Şöyle ki for içine girelim çalıştıralım. loto[0]=rnd.Next(1,50); Lotonun 0. elemanına 1 ile 49 arasında rastgele bir sayı at. Bu mesela 20 olsun. for içinde bir daha döndü ve loto[1] e rastgele bi değer daha atayacak, bu değer yine 20 olabilir. Çünkü bunun için bir şart sunmadık. Böylelikle bütün dizi 20 sayısını alabilir.
Peki nasıl olacak. Önceden tutulan değerleri kontrol ettirerek mümkün ya da tüm sayıları bir diziye alıp oradan seçtikten sonra kaldırabiliriz ya da başka alternatifleri düşünülebilir.
İlk dediğime göre yapacak olursak:
İlk kodlamamıza eklediğimiz sadece for ve if komutu ekledik.
for komutunu eklememizin sebebi o ana kadar atanmış sayıları kontrol etmek içindir. Yani atanan sayıyı önceki sayılarla karşılaştırma yapmak için kullandık. if komutunda şart sunduk “loto[i] == loto[j]” Bu şartta “eğer o an seçilen sayı loto[j] değerindeki sayıya eşitse” denmektedir. Eğer eşitse bu döngüyü tekrarlat (i–; break;) dedik.
Kodlamanın doğru çalıştığını görmek istiyorsanız “loto[i] = rnd.Next(1, 50);” kodundaki ’50′ değeri yerine 7 yazabilirsiniz. Bu durumda “1,2,3,4,5,6″ sayılarını seçtiğini göreceksiniz.
int[] loto = new int[6];
Random rnd = new Random();
for (int i = 0; i < 6; i++)
{
loto[i] = rnd.Next(1, 50);
}
for (int i = 0; i < 6; i++)
{
Console.WriteLine(loto[i]);
}
Evet sayısal lotoyu yaptınız. Ama mantık hatasıyla yaptınız.
Buradaki kodlarda program aynı sayıyı 6 kere seçebilir. Nasıl yani. Şöyle ki for içine girelim çalıştıralım. loto[0]=rnd.Next(1,50); Lotonun 0. elemanına 1 ile 49 arasında rastgele bir sayı at. Bu mesela 20 olsun. for içinde bir daha döndü ve loto[1] e rastgele bi değer daha atayacak, bu değer yine 20 olabilir. Çünkü bunun için bir şart sunmadık. Böylelikle bütün dizi 20 sayısını alabilir.
Peki nasıl olacak. Önceden tutulan değerleri kontrol ettirerek mümkün ya da tüm sayıları bir diziye alıp oradan seçtikten sonra kaldırabiliriz ya da başka alternatifleri düşünülebilir.
İlk dediğime göre yapacak olursak:
//dizi oluşturuluyor.
int[] loto = new int[6];
//random metodu oluşturuluyor.
Random rnd = new Random();
//rastgele sayıların aktarılması için for döngüsü kullanılıyor.
for (int i = 0; i < 6; i++)
{
//Rastgele sayı aktarılıyor.
loto[i] = rnd.Next(1, 50);
//bütün sayıları karşılaştırmak için for açılıyor.
for (int j = 0; j < i; j++)
{
//koşulla sayının eşit olup olmadığı denetleniyor.
if (loto[i] == loto[j])
{
i--;
break;
}
}
}
//ekrana yazdırılıyor.
for (int i = 0; i < 6; i++)
{
Console.WriteLine(loto[i]);
}
İlk kodlamamıza eklediğimiz sadece for ve if komutu ekledik.
for komutunu eklememizin sebebi o ana kadar atanmış sayıları kontrol etmek içindir. Yani atanan sayıyı önceki sayılarla karşılaştırma yapmak için kullandık. if komutunda şart sunduk “loto[i] == loto[j]” Bu şartta “eğer o an seçilen sayı loto[j] değerindeki sayıya eşitse” denmektedir. Eğer eşitse bu döngüyü tekrarlat (i–; break;) dedik.
Kodlamanın doğru çalıştığını görmek istiyorsanız “loto[i] = rnd.Next(1, 50);” kodundaki ’50′ değeri yerine 7 yazabilirsiniz. Bu durumda “1,2,3,4,5,6″ sayılarını seçtiğini göreceksiniz.
Etiketler:
c sharp,
c#,
csharp,
sayisal loto programi,
tek boyutlu dizi
C#’ta Sinema Programı
//iki boyutlu dizimizi oluşturuyoruz
int[,] sinema = new int[10, 10];
//dizimizini bütün değişkenlerine 0 (boş) değeri atıyoruz
for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 10; j++)
{
sinema[i, j] = 0;
}
}
//değişkenleri tanımlıyoruz
int secenek = 0, sira=0, koltuk=0;
string cikis = "abc";
//programımızı for içinde gerçekleştirmemiz gerekiyor.
for (; cikis!="cik" ;)
{
//ekranı temizliyoruz
Console.Clear();
//anamenüyü ekrana yazdırıyoruz
Console.WriteLine("*****cCc AnaMenü CcC*****");
Console.WriteLine("1.Bilet Al");
Console.WriteLine("2.Bilet Sil");
Console.WriteLine("3.Sinema Doluluğunu Göster");
Console.WriteLine("4.Çıkış");
Console.Write("Seçiniz=");
//kullanıcıdan seçeneği alıyoruz
secenek = Convert.ToInt32(Console.ReadLine());
//seçeneği alıp işlem yaptırıyoruz
if (secenek == 1) //seçenek 1 ise
{
Console.Clear();
Console.WriteLine("****Bilet AL****");
//kişiden sıra (satır) ve Koltuk (sütun) numarasını alıyoruz
Console.Write("Kaçıncı Sıra=");
sira = Convert.ToInt32(Console.ReadLine());
Console.Write("Kaçıncı Koltuk=");
koltuk = Convert.ToInt32(Console.ReadLine());
//dizimizin o değerine 1 (dolu) atıyoruz.
sinema[sira - 1, koltuk - 1] = 1;
}
else if (secenek == 2) //seçenek 2 ise
{
Console.Clear();
//iki ye ayırıyoruz ve menü yapıyoruz.
Console.WriteLine("1.Hepsini Sil");
Console.WriteLine("2.Tek Sil");
secenek = Convert.ToInt32(Console.ReadLine()); //seçeneği okutuyoruz
if (secenek == 1) //seçenek 1 ise hepsine 0 (boş) ata
{
for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 10; j++)
{
sinema[i, j] = 0;
}
}
}
else //seçenek 2 ise (if teki şart doğru değilse)
{
Console.Clear();
Console.WriteLine("***Bilet Sil***");
//kişiden sıra (satır) ve Koltuk (sütun) numarasını alıyoruz
Console.Write("Kaçıncı Sıra=");
sira = Convert.ToInt32(Console.ReadLine());
Console.Write("Kaçıncı Koltuk");
koltuk = Convert.ToInt32(Console.ReadLine());
//o değerlere 0 (boş) atıyoruz.
sinema[sira - 1, koltuk - 1] = 0;
}
}
else if (secenek == 3) //seçenek 3 ise
{
Console.Clear();
for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 10; j++)
{
//sütünları ekrana yazdırıyoruz
Console.Write(sinema[i, j] + " ");
}
//Düzgün (sinemadaki gibi) görünmesi için satır atlatıyoruz
Console.WriteLine("");
}
//görsellik içindir bi anlamı yoktur.
Console.WriteLine("___________________");
Console.WriteLine("| | | | | | | | | |");
//ekran hemen geçmesin diye boş bi readLine oluşturuyoruz.
Console.ReadLine();
}
//seçeneklerin hiç biri değilse 'cikis' değişkenine "cik" atıyoruz for da şart sağlanmadığı için programı bitiriyor.
else
cikis = "cik";
}
Programımızı iki boyutlu diziyle oluşturduk 10 satır ve 10 sütun olarak. İlk olarak bütün diziye 0 [boş] değerini atadık.
Değişkenlerimizi oluşturduk, buradaki ‘cikis’ değişkenine “abc” dedim ancak herhangi bişey olabilir yanlızca “cik” değeri olamaz. Çünkü programa girebilmesi için for daki şartımızın sağlanması gerekir.
Bütün kodları for içinde yapmamızın nedeni Kişi Çıkış işlemini yapmadığı sürece programda kalması için. for olmasaydı işlemi 1 kez yapıp programdan çıkacaktır.
Console.Clear(); yapmamızın nedeni yazıların birbirine karışmaması ve görselliğin bozulmaması içindir.
Menümüzü oluşturduktan sonra kullanıcının seçeneklerini değerlendirip if içinde işlemlerimizi yaptırıyoruz.
‘sinema[sira - 1, koltuk - 1] = 1;’ kodunda -1 dememizin nedeni kullanıcı ve bilgisayar arasındaki başlangıç değerinin farkıdır. Yani kullanıcı saymaya 1 den başlar ancak bilgisayarın ilk değeri herzaman için 0 dır.
Diğer gerekli açıklamalar kodların üstündedir.
Etiketler:
c sharp,
c#,
csharp,
koltuk,
rezervasyon,
sinema,
sinema rezervasyon programı
C#’ta Diziler Arası Kriterli Aktarım
Burada yapacağımız işlem, 50 değişkenli bir dizinin içine rastgele sayılar aktarıp Bu sayıların 4 katının 5 ekisiğini bulup Bunların 3 e tam bölünüp bölünmediğine bakmak ve eğer bölünüyorsa bunları ayrı bir diziye aktarmak olacaktır.
İlk önce dizimizi esas 50′lik dizimizi oluşturuyoruz ve buna rastgele sayılar aktarıyoruz.
Bu sayıları aktarırken if içinde ‘((dizi[i]*4)-5)%3==0′ yazmamızın sebebi Yeni oluşturacağımız dizinin boyutunu bilmememizdir. Burada işlemimiz doğru olduğu sürece ‘deger’ artacaktır ve gerekli boyut bulunacaktır. İsterseniz yeni dizimizi önceki dizi boyutunda yapabilirsiniz Tercih sizin.
İkinci for döngümüzde ise bu sayıları yeni dizimize aktarma ve ekrana yazdırma işlemi yapıyoruz, tabi bu da sizin tercihinize kalmıştır. İkinci for döngüsünde sadece yeni diziye aktarabilir daha sonra yeni bir for döngüsüyle yeni dizimizi ekrana yazdırabilirsiniz.
Diğer gerekli açıklamalar kodların üstündedir.
//esas dizimizi oluşturuyoruz.
int[] dizi = new int[50];
//dizimize random sayılar atmak için random metodunu oluşturuyoruz.
Random rnd = new Random();
//değişkenleri oluşturuyoruz
int sayac = 0, deger=0;
//diziye rastgele değerler atıyoruz.
//bu değerlerin 4 katının 5 eksiği 3'e tam bölünüyosa 'deger' değişkenini arttırıyoruz.
for (int i = 0; i < dizi.Length; i++)
{
dizi[i] = rnd.Next(100);
Console.Write(dizi[i] + " ");
if (((dizi[i]*4)-5)%3==0)
{
deger++;
}
}
//3 e tam bölünenlerin sayısı kadar yeni bir dizi oluşturuyoruz
int[] yenidizi = new int[deger];
//esas (ilk) dizideki sayıların 4 katının 5 eksiği 3'e tam bölünüyosa yeni (ikinci) dizimize aktarıyoruz
for (int i = 0; i < dizi.Length; i++)
{
if (((dizi[i] * 4) - 5) % 3 == 0)
{
yenidizi[sayac] = dizi[i];
//ekrana yazdırıyoruz
Console.WriteLine(yenidizi[sayac]);
sayac++;
}
}
İlk önce dizimizi esas 50′lik dizimizi oluşturuyoruz ve buna rastgele sayılar aktarıyoruz.
Bu sayıları aktarırken if içinde ‘((dizi[i]*4)-5)%3==0′ yazmamızın sebebi Yeni oluşturacağımız dizinin boyutunu bilmememizdir. Burada işlemimiz doğru olduğu sürece ‘deger’ artacaktır ve gerekli boyut bulunacaktır. İsterseniz yeni dizimizi önceki dizi boyutunda yapabilirsiniz Tercih sizin.
İkinci for döngümüzde ise bu sayıları yeni dizimize aktarma ve ekrana yazdırma işlemi yapıyoruz, tabi bu da sizin tercihinize kalmıştır. İkinci for döngüsünde sadece yeni diziye aktarabilir daha sonra yeni bir for döngüsüyle yeni dizimizi ekrana yazdırabilirsiniz.
Diğer gerekli açıklamalar kodların üstündedir.
Etiketler:
c sharp,
c#,
csharp,
dizi arası aktarma,
diziler,
diziler arasında aktarma işlemi
C#’ta Tahmin Programı
Bu programda biLgisayar bir sayı tutacak bunu kullanıcı tahmin etmeye çalışacak. Program basit ancak bazı özellikler ekleyip zenginleştirmeye çalışacağız.
0 ile (0 dahil) 100 arası (100 dahil değil) rastgele bir sayıyı tutturuyoruz. Bu sayıyı bilemediğinde ekrana “Yanlış tahmin” yazıyor ve tekrar tahmin etmesini istiyor. Bildiğinde ekrana “doğru tahmin” yazıyor ve programdan çıkıyor. Doğru tahmin yapana kadar programda kalacaktır. Bi yönlendirme olmadığı için Bu durumda kullanıcı bütün sayıları ekrana yazdırabilir. Bu durumu kurtarmak için kullanıcıya girdiği sayıya göre “aşağı” ya da “yukarı” tahmin yürütmesini söylememiz lazım.
Yeni kodlarımız sayesinde kullanıcıya ipucu veriliyor. Bu da tahmini biraz daha kolaylaştırıyor.
Tahmin olayını kolaylaştırdık Biraz da zorlaştıralım. Mesela kullanıcının 10 kere tahmin etme hakkı olsun ve tahmin ettiği zaman kaçıncı tahmininde tahmin ettiğini ekrana yazdıralım.
‘for ‘ döngüsünü değiştirerek programımızı oluşturuyoruz. for döngüsünü değiştirmemizin sebebi sayaç olayını gerçekleştirmek. Kullanıcı her defasında giriş yaptığında (tahmin yanlışsa) for dönecektir ve sayaç (‘i’) artacaktır. Burada sadece kaçıncı tahmin olduğunu ve 10 defadan fazla giriş yapmaması için for döngüsü kullanılmıştır. Doğru tahmin edildiği zaman döngünün bitmesi için ‘i’ değişkenine 10 ve 10′dan büyük değer atadık.
Programda tahmin aralığını istediğiniz gibi ayarlayabilirsiniz, ‘rnd.Next(x)’ x yazan yere istediğiniz değeri girebilirsiniz aynı zamanda en fazla kaç kere tahmin ettikten sonra programdan çıkış yapılabileceğini de ayarlayabilirsiniz (ör. ‘for (int i = 0; i < x; i++)' x yerine herhangi bir değer yazabilirsiniz.)
//değişkenleri oluşturuyoruz
int tahmin, rastgele;
//random metodunu çağırıyoruz
Random rnd = new Random();
//random (rastgele) değer atıyoruz
rastgele = rnd.Next(100);
//döngü içine alıyoruz
for (int i = 0; i == 0; )
{
Console.Write("Tamininizi giriniz=");
//kullanıcıdan tahminini alıyoruz
tahmin = Convert.ToInt32(Console.ReadLine());
//şartımızı oluşturuyoruz
if (tahmin == rastgele) //eğer tahmin rastgele tutulan sayıya eşitse
{
Console.WriteLine("doğru tahmin");
i++;
}
else //değilse
{
Console.WriteLine("Yanlış tahmin");
}
}
0 ile (0 dahil) 100 arası (100 dahil değil) rastgele bir sayıyı tutturuyoruz. Bu sayıyı bilemediğinde ekrana “Yanlış tahmin” yazıyor ve tekrar tahmin etmesini istiyor. Bildiğinde ekrana “doğru tahmin” yazıyor ve programdan çıkıyor. Doğru tahmin yapana kadar programda kalacaktır. Bi yönlendirme olmadığı için Bu durumda kullanıcı bütün sayıları ekrana yazdırabilir. Bu durumu kurtarmak için kullanıcıya girdiği sayıya göre “aşağı” ya da “yukarı” tahmin yürütmesini söylememiz lazım.
int tahmin, rastgele;
Random rnd = new Random();
rastgele = rnd.Next(100);
for (int i = 0; i == 0; )
{
Console.Write("Tamininizi giriniz=");
tahmin = Convert.ToInt32(Console.ReadLine());
if (tahmin == rastgele)
{
Console.WriteLine("doğru tahmin");
i++;
}
else
{
Console.WriteLine("Yanlış tahmin");
//Yeni kodlarımızı giriyoruz
if (tahmin>rastgele) //eğer tahmin rastgele seçilen sayıdan büyükse
{
Console.WriteLine("Aşağı");
}
else //değilse (tahmin rastgele seçilen sayıdan küçükse)
{
Console.WriteLine("Yukarı");
}
}
}
Yeni kodlarımız sayesinde kullanıcıya ipucu veriliyor. Bu da tahmini biraz daha kolaylaştırıyor.
Tahmin olayını kolaylaştırdık Biraz da zorlaştıralım. Mesela kullanıcının 10 kere tahmin etme hakkı olsun ve tahmin ettiği zaman kaçıncı tahmininde tahmin ettiğini ekrana yazdıralım.
int tahmin, rastgele;
Random rnd = new Random();
rastgele = rnd.Next(100);
//sadece döngümüzde değişiklik yapıyoruz.
for (int i = 0; i < 10; i++)
{
Console.Write("Tamininizi giriniz=");
tahmin = Convert.ToInt32(Console.ReadLine());
if (tahmin == rastgele)
{
//doğru durumunu ekrana yazdırıyoruz
Console.WriteLine("{0}.tamininizde doğru bildiniz",i+1);
//doğru olduğunda döngüyü bitirmemiz gerektiği için 'i' değerine 10 veya üstü bir sayı atıyoruz
//veya break; komutu kullanılabilir.
i = 10;
}
else
{
//yanlış durumunu ekrana yazdırıyoruz
Console.WriteLine("{0}. kez yanlış tahmin ettiniz",i+1);
if (tahmin>rastgele)
{
Console.WriteLine("Aşağı");
}
else
{
Console.WriteLine("Yukarı");
}
}
}
‘for ‘ döngüsünü değiştirerek programımızı oluşturuyoruz. for döngüsünü değiştirmemizin sebebi sayaç olayını gerçekleştirmek. Kullanıcı her defasında giriş yaptığında (tahmin yanlışsa) for dönecektir ve sayaç (‘i’) artacaktır. Burada sadece kaçıncı tahmin olduğunu ve 10 defadan fazla giriş yapmaması için for döngüsü kullanılmıştır. Doğru tahmin edildiği zaman döngünün bitmesi için ‘i’ değişkenine 10 ve 10′dan büyük değer atadık.
Programda tahmin aralığını istediğiniz gibi ayarlayabilirsiniz, ‘rnd.Next(x)’ x yazan yere istediğiniz değeri girebilirsiniz aynı zamanda en fazla kaç kere tahmin ettikten sonra programdan çıkış yapılabileceğini de ayarlayabilirsiniz (ör. ‘for (int i = 0; i < x; i++)' x yerine herhangi bir değer yazabilirsiniz.)
Etiketler:
c sharp,
c#,
csharp,
sayı bulmaca oyunu,
sayı tahmini,
tahmin programı
19 Mart 2012 Pazartesi
Flash CS5 AS3 ile Banner Yapımı
Bugün flash cs5 ile banner yapacağız.
Tabi Burada Action Script 3 (AS3) kullanarak işlemlerimizi biraz daha kolaylaştıracağız.
flash cs5 as3.0 ı açalım ve başlayalım.
Öncelikle sahne ayarlarını 300 e 300 yapalım. Bu benim yaptığım siz de çalışmalarınıza göre ayarlayabilirsiniz.
Şimdi ilk önce movieclip nesnelerimizi oluşturalım. İsimlerini ben "1,2,3,4,5" şeklinde verdim ve içlerine farklı renkte kareler çizdim Siz isterseniz resim veya herhangi bir şekil, yazı yapabilirsiniz. Bunları 300 e 300 yaparsanız uyumlu olur.
Bunları yaptıktan sonra bunları 1 movieclipte toplamayı düşünüyorum Siz isterseniz sahnede de yapabilirsiniz.
Şuanlık Kütüphane Görüntümüz:
Şimdi "anim" movieclip'in içine girip işlemlerimizi yapalım.
3 katman ekliyoruz.Bu katmanlara çift tıklayarak En üsttekine "action", Ortadakine "arkaplan", alttakine ise "nesneler" isimlerini verelim. Bunların normalde flash'ın çalışmasında hiç bir etkisi yoktur Sadece kullanıcının neyin nerde olduğunu bildirir ve yanlış değişikliklerden korur.
Katmanların her birine 10 tane Anahtar Kare (key frame) ekleyelim.
Zaman Çizelgemizde (timeLine) son görüntü:
Şimdi nesnelerimizi Kütüphaneden yerleştirelim.
"action" ve "arkaplan" katmanlarını kilitleyelim.
İlk frame'e(kareye) (Birinci (1.) Kare):
"nesneler" katmanının ilk frame'ine "5" isimli nesnemizi koyalım ve bunun x ve y koordinat değerlerine 0 yazalım Nesnemizin "instance name"ine ("örnek adı"na) "besinci" yazalım . Bu işlemi "Align" panelinden de yapabilirsiniz. Bu ilk frameye "1" isimli nesnemizi de koyup x değerine 0 y değerine -300 yazalım (x=0,y=-300) Nesnemizin "instance name"ine ("örnek adı"na) "birinci" yazalım.
İkinci (2.) frame(kare)'e geçelim.
İkinci kareye sadece "1" isimli nesnemizi koyalım ve x'e 0 y'ye 0 (x=0,y=0) değerlerini verelim.
Üçüncü (3.) Kare (frame):
"1" isimli nesnemizi yine x=0, y=0 olacak şekilde koyuyoruz Nesnemizin "instance name"ine ("örnek adı"na) "besinci" yazalım. Bunun yanında "2" nolu nesnemizi koyuyoruz ve x=-300 y=0 konumlandırmasını yapıyoruz Nesnemizin "instance name"ine ("örnek adı"na) "ikinci" yazalım.
Dördüncü (4.) Kare:
Bu karede sadece "2" nolu nesnemiz olacaktır x=0 y=0 değerlerini verelim Nesnemizin "instance name"ine ("örnek adı"na) "besinci" yazalım.
Beşinci (5.) Kare:
"2" nolu nesnemiz yine x=0 y=0 konumunda olacaktır Nesnemizin "instance name"ine ("örnek adı"na) "ikinci" yazalım. "3" nolu nesnemizide ekleyip x=0, y=300 konumlandırmasını yapalım Nesnemizin "instance name"ine ("örnek adı"na) "ucuncu" yazalım .
Altıncı (6.) Kare:
Burada sadece "3" nolu nesne olacaktır ve x=0 y=0 konumunda olacaktır.
Yedinci (7.) Kare:
"3" numaralı karemiz yine ortada (x=0 y=0) olacaktır Nesnemizin "instance name"ine ("örnek adı"na) "ucuncu" yazalım. "4" nolu nesnemizi de ekleyip x=300 y=0 konumlandırmasını yapıyoruz Nesnemizin "instance name"ine ("örnek adı"na) "dorduncu" yazalım.
Sekizinci (8.) Kare:
"4" isimli nesnemizin x=0 y=0 olarak yerleştiriyoruz.
Dokuzuncu (9.) Kare:
"4" isimli nesnemiz yine ortada x=0, y=0 ve Nesnemizin "instance name"ine ("örnek adı"na) "dorduncu" yazalım. Bunun yanına "5" isimli nesnemizi ekliyoruz x=-300 y=0 olarak konumlandırıyoruz Nesnemizin "instance name"ine ("örnek adı"na) "besinci" yazalım.
Onuncu (10.) Kare:
Burada sadece "5" nolu nesnemiz olacaktır ve x=0 y=0 olarak konumlandırıyoruz.
Bu Katmandaki işlemlerimiz bitmiştir.
Bu katmanı kilitleyelim ve gizliyoruz "arkaplan" katmanını açıyoruz ve orada ufak bir işlem yapıyoruz.
"arkaplan" katmanına 300'e 300 boyutunda bi kare çiziyoruz Rengini %10 saydam yapabilirsiniz. Konumlandırmasını x=0 y=0 şeklinde yapıyoruz. Burayı maske olarak kullanacağız. İsterseniz yapmayabilirsiniz.
Şimdi ActionScript kodlarını yazmaya sıra geldi.
Şuanlık görüntümüz:
Şimdi "action" katmanına geçelim.
Kodları Kare Kare yazacağım Kopyala yapıştır yapalım.
Birinci (1.) Kare:
İkinci (2.) Kare:
Üçüncü (3.) kare:
Dördüncü (4.) kare:
Beşinci (5.) kare:
Altıncı (6.) kare:
Yedinci (7.) kare:
Sekizinci (8.) kare:
Dokuzuncu (9.) kare:
Onuncu (10.) kare:
Kodlarımızı da tamamladık.
Son işLemimiz ise "arkaplan" katmanına sağ tıklayıp mask (maske) seçeneğine tıklıyoruz.
Şimdi "anim" movieclip'i sahneye x=0 y=0 konumuna yerLeştirelim.
Vee Bitti.
Çalıştırıp Deneyelim.
Sorularınızı yorum olarak yazabilirsiniz.
Dosya Link'i:
İndir
Saygılar...
Tabi Burada Action Script 3 (AS3) kullanarak işlemlerimizi biraz daha kolaylaştıracağız.
flash cs5 as3.0 ı açalım ve başlayalım.
Öncelikle sahne ayarlarını 300 e 300 yapalım. Bu benim yaptığım siz de çalışmalarınıza göre ayarlayabilirsiniz.
Şimdi ilk önce movieclip nesnelerimizi oluşturalım. İsimlerini ben "1,2,3,4,5" şeklinde verdim ve içlerine farklı renkte kareler çizdim Siz isterseniz resim veya herhangi bir şekil, yazı yapabilirsiniz. Bunları 300 e 300 yaparsanız uyumlu olur.
Bunları yaptıktan sonra bunları 1 movieclipte toplamayı düşünüyorum Siz isterseniz sahnede de yapabilirsiniz.
Şuanlık Kütüphane Görüntümüz:
Şimdi "anim" movieclip'in içine girip işlemlerimizi yapalım.
3 katman ekliyoruz.Bu katmanlara çift tıklayarak En üsttekine "action", Ortadakine "arkaplan", alttakine ise "nesneler" isimlerini verelim. Bunların normalde flash'ın çalışmasında hiç bir etkisi yoktur Sadece kullanıcının neyin nerde olduğunu bildirir ve yanlış değişikliklerden korur.
Katmanların her birine 10 tane Anahtar Kare (key frame) ekleyelim.
Zaman Çizelgemizde (timeLine) son görüntü:
Şimdi nesnelerimizi Kütüphaneden yerleştirelim.
"action" ve "arkaplan" katmanlarını kilitleyelim.
İlk frame'e(kareye) (Birinci (1.) Kare):
"nesneler" katmanının ilk frame'ine "5" isimli nesnemizi koyalım ve bunun x ve y koordinat değerlerine 0 yazalım Nesnemizin "instance name"ine ("örnek adı"na) "besinci" yazalım . Bu işlemi "Align" panelinden de yapabilirsiniz. Bu ilk frameye "1" isimli nesnemizi de koyup x değerine 0 y değerine -300 yazalım (x=0,y=-300) Nesnemizin "instance name"ine ("örnek adı"na) "birinci" yazalım.
İkinci (2.) frame(kare)'e geçelim.
İkinci kareye sadece "1" isimli nesnemizi koyalım ve x'e 0 y'ye 0 (x=0,y=0) değerlerini verelim.
Üçüncü (3.) Kare (frame):
"1" isimli nesnemizi yine x=0, y=0 olacak şekilde koyuyoruz Nesnemizin "instance name"ine ("örnek adı"na) "besinci" yazalım. Bunun yanında "2" nolu nesnemizi koyuyoruz ve x=-300 y=0 konumlandırmasını yapıyoruz Nesnemizin "instance name"ine ("örnek adı"na) "ikinci" yazalım.
Dördüncü (4.) Kare:
Bu karede sadece "2" nolu nesnemiz olacaktır x=0 y=0 değerlerini verelim Nesnemizin "instance name"ine ("örnek adı"na) "besinci" yazalım.
Beşinci (5.) Kare:
"2" nolu nesnemiz yine x=0 y=0 konumunda olacaktır Nesnemizin "instance name"ine ("örnek adı"na) "ikinci" yazalım. "3" nolu nesnemizide ekleyip x=0, y=300 konumlandırmasını yapalım Nesnemizin "instance name"ine ("örnek adı"na) "ucuncu" yazalım .
Altıncı (6.) Kare:
Burada sadece "3" nolu nesne olacaktır ve x=0 y=0 konumunda olacaktır.
Yedinci (7.) Kare:
"3" numaralı karemiz yine ortada (x=0 y=0) olacaktır Nesnemizin "instance name"ine ("örnek adı"na) "ucuncu" yazalım. "4" nolu nesnemizi de ekleyip x=300 y=0 konumlandırmasını yapıyoruz Nesnemizin "instance name"ine ("örnek adı"na) "dorduncu" yazalım.
Sekizinci (8.) Kare:
"4" isimli nesnemizin x=0 y=0 olarak yerleştiriyoruz.
Dokuzuncu (9.) Kare:
"4" isimli nesnemiz yine ortada x=0, y=0 ve Nesnemizin "instance name"ine ("örnek adı"na) "dorduncu" yazalım. Bunun yanına "5" isimli nesnemizi ekliyoruz x=-300 y=0 olarak konumlandırıyoruz Nesnemizin "instance name"ine ("örnek adı"na) "besinci" yazalım.
Onuncu (10.) Kare:
Burada sadece "5" nolu nesnemiz olacaktır ve x=0 y=0 olarak konumlandırıyoruz.
Bu Katmandaki işlemlerimiz bitmiştir.
Bu katmanı kilitleyelim ve gizliyoruz "arkaplan" katmanını açıyoruz ve orada ufak bir işlem yapıyoruz.
"arkaplan" katmanına 300'e 300 boyutunda bi kare çiziyoruz Rengini %10 saydam yapabilirsiniz. Konumlandırmasını x=0 y=0 şeklinde yapıyoruz. Burayı maske olarak kullanacağız. İsterseniz yapmayabilirsiniz.
Şimdi ActionScript kodlarını yazmaya sıra geldi.
Şuanlık görüntümüz:
Şimdi "action" katmanına geçelim.
Kodları Kare Kare yazacağım Kopyala yapıştır yapalım.
Birinci (1.) Kare:
//ilk anda hareket etmemesi için stop(); kullanıldı.
stop();
//sayac istenilen yere gelip gelmediğini kontrol ettirmek için veya
//nesneyi 10 kez hareket ettirdikten sonra diğer kareye atlamak için kullanıldı
var sayac:Number = 0;
//fonksiyon açıyoruz. Bunu döngü olarak ta düşünebilirsiniz.
//setInterval komutunu sağladığında bu fonksiyon çağrılacaktır.
function fonk1():void
{
//beşinci ("5") nesnemizin "y" değerine 30 ekliyoruz.
besinci.y += 30;
//birinci ("5") nesnemizin "y" değerine 30 ekliyoruz.
birinci.y += 30;
//Sayacı 1 arttırıyoruz. Bu döngünün veya nesnenin bir kereliğine hareket ettiğini gösteriyor.
sayac++;
//sayac ı kontrol ediyoruz. nesne 10 kere hareket etmişse 2. frame e geçiyoruz.
if (sayac == 10)
//koşul sağlanınca buraya girecektir. yani nesne 10 kez hareket ettikten sonra
{
//Intervalin başka işlem yapmaması ve/veya ram'de durmaması(yormaması) için siliyoruz. Bu işlem önemlidir.
clearInterval(interval1);
//2. kareye git ve dur.
gotoAndStop(2);
}
}
//interval tanımı.
//Burada "100" mili saniye cinsindendir. yani 1 saniye geciktirme yapmak istiyorsanız 1000 değerini yazmanız gerekiyor.
//100 mili saniye bekledikten sonra "fonk1" adındaki fonksiyona gider.
var interval1:uint = setInterval(fonk1,100);
İkinci (2.) Kare:
//Burada fonksiyon oluşturuluyor.
//Interval 3 saniye bekledikten sonra fonksiyonun içindeki işlemler yapılır.
function fonk2():void
{
//Interval kaldırılıyor.
//Bu işlem önemlidir.
clearInterval(interval2);
//3. kareye git ve dur.
gotoAndStop(3);
}
//İnterval tanımı yapılıyor.
var interval2:uint = setInterval(fonk2,3000);
Üçüncü (3.) kare:
var sayac2:Number = 0;
function fonk3():void
{
birinci.x += 30;
ikinci.x += 30;
sayac2++;
if (sayac2 == 10)
{
clearInterval(interval3);
gotoAndStop(4);
}
}
var interval3:uint = setInterval(fonk3,100);
Dördüncü (4.) kare:
function fonk4():void
{
clearInterval(interval4);
gotoAndStop(5);
}
var interval4:uint = setInterval(fonk4,3000);
Beşinci (5.) kare:
var sayac3:Number = 0;
function fonk5():void
{
ikinci.y -= 30;
ucuncu.y -= 30;
sayac3++;
if (sayac3 == 10)
{
clearInterval(interval5);
gotoAndStop(6);
}
}
var interval5:uint = setInterval(fonk5,100);
Altıncı (6.) kare:
function fonk6():void
{
clearInterval(interval6);
gotoAndStop(7);
}
var interval6:uint = setInterval(fonk6,3000);
Yedinci (7.) kare:
var sayac4:Number = 0;
function fonk7():void
{
ucuncu.x -= 30;
dorduncu.x -= 30;
sayac4++;
if (sayac4 == 10)
{
clearInterval(interval7);
gotoAndStop(8);
}
}
var interval7:uint = setInterval(fonk7,100);
Sekizinci (8.) kare:
function fonk8():void
{
clearInterval(interval8);
gotoAndStop(9);
}
var interval8:uint = setInterval(fonk8,3000);
Dokuzuncu (9.) kare:
var sayac5:Number = 0;
function fonk9():void
{
dorduncu.x += 30;
besinci.x += 30;
sayac5++;
if (sayac5 == 10)
{
clearInterval(interval9);
gotoAndStop(10);
}
}
var interval9:uint = setInterval(fonk9,100);
Onuncu (10.) kare:
function fonk10():void
{
clearInterval(interval10);
gotoAndStop(1);
}
var interval10:uint = setInterval(fonk10,3000);
Kodlarımızı da tamamladık.
Son işLemimiz ise "arkaplan" katmanına sağ tıklayıp mask (maske) seçeneğine tıklıyoruz.
Şimdi "anim" movieclip'i sahneye x=0 y=0 konumuna yerLeştirelim.
Vee Bitti.
Çalıştırıp Deneyelim.
Sorularınızı yorum olarak yazabilirsiniz.
Dosya Link'i:
İndir
Saygılar...
2 Mart 2012 Cuma
c sharp'ta kütüphane otomasyonu
Şuan BaşLangıç aşamasından başLayarak Yaptığım kadarıyLa buraya sunmaya çaLışacağım.
Bu otomasyonda 4 seçenek oLacaktır (Tabi siz arttırabiLirsiniz)
1. Kitap Kaydı Yap
2. Kitap Sil
3. Kitap Ara
4. Öğrenci İşLemLeri
Her bir seçenek için ayrı ayrı Form oLuşturarak yapmaya çaLışacağım.
Bunun için:
Resimdeki gibi Add yaparak Windows Form a tıklayınca önümüze bi pencere geLecektir.
Buradan Windows Form seçiLip Add yaparak yeni Form oLuşturuLacaktır.
Bizim programımızda 4 seçenek var ve bu 4 seçenek iLk başta geLen pencerede gösteriLecektir. Yani Her bir seçenek için ayrı birer form daha oLuşturmamız gerekiyor ve topLamda 5 tane Form oLması gerekiyor. Yukardaki işLemLeri tekrarLayarak bu FormLarı oLuşturaLım.
Resimdeki görüntüyü eLde edebiLdiyseniz Bu işLem tamamdır.
Şimdi Form1 de çaLışmamıza devam edeLim.
Sayfamıza resimdeki tooLbox penceresinden 4 tane buton çekip bırakaLım ve SeçenekLerimizi butona yazaLım. Bu işLemi de butona tıkLayarak sağdaki Properties aLtından Text yazısını değiştirerek yapaLım.
Bu işLemLeri yaptık ve iLk açıLan penceremizi oLuşturduk.
Şimdi diğer formLarı yapaLım. Diğer formLarı Resim oLarak veriyorum Siz Kendi isteğinize göre yapın.
////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////
TextBox'Ların etrafındaki kırmızı yazıLar TextBox isimLerini (name) Göstermektedir.
İsimLeri bunLara göre yaparsanız KodLarı verdiğimde sıkıntı yaşamazsınız.
Şimdi KodLamaLara geLeLeLim. iLk önce Ana penceremizi (Form1) açaLım ve pencerenin boş bir yerine çift tıkLayarak Form1 in Load (yükLenirken) ÇaLıştırıLacak iLk kodLarı yazaLım ama öncesinde Bu programda DosyaLama işLemi yapacağımız için c sharp'ın dosyaLama özeLLiğini aktifLeştirmemiz gerekiyor.
Bunun için:
Resimdeki Gibi Kod aLanının üst tarafındaki yere using System.IO; Yazıyoruz ve dosyaLama özeLLikLeri açılmış oLuyor.
Şimdi Form1_Load kısmına geLip iLk önce şu kodLarı yazıyoruz.
Kodumuzda bir .txt (not defteri) oLuşturuyoruz. Burda File.AppendText yerine File.CreateText te oLabiLirdi ancak CreateText Her seferinde yeni bir txt dosyası oLuşturur. Yani önceden varsada o dosya onu siLip (içinde biLgiLer varsa onLarıda siLer) yeni boş bir txt dosyası oLuşturur. Ancak AppendText O isimdeki dosya yoksa oLuşturur Varsa zati var deyip dosyanızın sadece adresini tanımLamış oLursunuz.
Form1_Load kısmındaki işLemimiz şimdiLik bu kadar. Tekrar Form1'in görseLine geçip 'Kitap Kaydı Yap' Butonuna çift tıkLayarak Bu butonun Click oLayLarını düzenLeyeLim.
Burada isteniLen şey Kitap Kayıt Sayfasına geçmektir. TıkLanınca Form2 açıLacak ancak diğer Form1 sayfasının görünmemesi Lazım. Bunun için internetten araştırdığım bir Kod var.
Bu kodLarı Kayit Yap Butonunun click özeLLiğine yapıştırın ve diğer butonLara da tek tek tıkLayıp SırasıyLa yapıştırın ve 'Form2 frm2 = new Form2();' deki 'Form2'Lerin yerine sırasıyLa formLarın isimLerini (Form3, Form4 gibi) yazınız.
Bu işLemLeri yaptıktan sonra çaLıştırıp deneyiniz. Eğer ButonLarın hepsine tek tek TıkLayınca Ana pencere kapanıp yeni pencere açıLıyor ve yeni pencereyi kapadığınızda ana pencere açıLıyorsa işLemimiz tamamdır. Şimdi Diğer Form'Lara geçebiLiriz.
Şimdi Kitap Kaydı işLemini yapacağımız Form'a.
Burada Form_Load kod böLümünde bir işLeme gerek yoktur. İşLemimizi sadece butona tıkLayınca yapacağımız için 'Kayıt Yap' butonundan bütün işLemLerimizi yapaLım. Kayıt Yap butonuna çift tıkLayıp Click özeLLiğine (event) geçeLim.
Burada kodLarımızı direk yapıştıraLım.
YapıLan iLk işLem 'yazma' oLayını ve kayıtçının adresini tanımLamak oLdu.
Daha sonrasında KutuLarın boş bırakıLıp bırakıLmadığını 'if' komutuyLa kontroL ettirdik.
Boş değiLse (if): YazıLan kitabı beLirLi parametreyLe (araLarına boşLuk oLmadan virgüL koyarak) not defterine yazdırdık. Bu parametre sizin isteğinize göre değiştirebiLirsiniz. Daha sonrasında da ekrana mesaj veriLdi.
Boş ise (else): Ekrana mesaj ver
Kaydın yapıLıp yapıLmadığını kontroL edebiLirsiniz. Programı kaydettiğiniz yerde /bin/debug/ kLasörü içinde kayitLar.txt dosyası oLuşturuLmuştur Bu dosyayı açarak girdiğiniz biLgiLerin orada oLduğunu göreceksiniz.
Şimdi Kitap SiL Form'una geLerek buradaki işLemLeri yapaLım.
Burada da sadece butona tıkLayınca işLem yapacağı için Butona çift tıkLayıp click özeLLiğine geçeLim ve kodLarımızı yazaLım.
Mantığımız siLinecek veriyi buLmak ve yeni bir dosya oLuşturup SiLinecek veri hariç Diğer veriLeri bu dosyaya kopyaLamak. Daha sonra önceki dosyayı siLip yeni dosyanın ismine önceki doyanın ismini vermek.
/////////
Son oLarak Kitap Ara Formumuzu açıyoruz ve buradada sadece cLick özeLLiği kuLLanıLacaktır.
Mantığımız Kitabın oLup oLmadığını kontroL ettirip Varsa 'VAR' Yoksa 'YOK' mesajını vermesini sağLamak.
Programımız ŞimdiLik bu kadardır.
Diğer 'Öğrenci İşLemLeri' Butonuna veya En son kaLan Form'a istediğiniz bir şey ekLeyebiLirsiniz(YetkiLi girişi, Bütün KitapLarı ListeLe vs.)
Bu konu hakkında şimdiLik bu kadar. EkLemeLer oLacaktır.
BaşarıLar...
Bu otomasyonda 4 seçenek oLacaktır (Tabi siz arttırabiLirsiniz)
1. Kitap Kaydı Yap
2. Kitap Sil
3. Kitap Ara
4. Öğrenci İşLemLeri
Her bir seçenek için ayrı ayrı Form oLuşturarak yapmaya çaLışacağım.
Bunun için:
Resimdeki gibi Add yaparak Windows Form a tıklayınca önümüze bi pencere geLecektir.
Buradan Windows Form seçiLip Add yaparak yeni Form oLuşturuLacaktır.
Bizim programımızda 4 seçenek var ve bu 4 seçenek iLk başta geLen pencerede gösteriLecektir. Yani Her bir seçenek için ayrı birer form daha oLuşturmamız gerekiyor ve topLamda 5 tane Form oLması gerekiyor. Yukardaki işLemLeri tekrarLayarak bu FormLarı oLuşturaLım.
Resimdeki görüntüyü eLde edebiLdiyseniz Bu işLem tamamdır.
Şimdi Form1 de çaLışmamıza devam edeLim.
Sayfamıza resimdeki tooLbox penceresinden 4 tane buton çekip bırakaLım ve SeçenekLerimizi butona yazaLım. Bu işLemi de butona tıkLayarak sağdaki Properties aLtından Text yazısını değiştirerek yapaLım.
Bu işLemLeri yaptık ve iLk açıLan penceremizi oLuşturduk.
Şimdi diğer formLarı yapaLım. Diğer formLarı Resim oLarak veriyorum Siz Kendi isteğinize göre yapın.
TextBox'Ların etrafındaki kırmızı yazıLar TextBox isimLerini (name) Göstermektedir.
İsimLeri bunLara göre yaparsanız KodLarı verdiğimde sıkıntı yaşamazsınız.
Şimdi KodLamaLara geLeLeLim. iLk önce Ana penceremizi (Form1) açaLım ve pencerenin boş bir yerine çift tıkLayarak Form1 in Load (yükLenirken) ÇaLıştırıLacak iLk kodLarı yazaLım ama öncesinde Bu programda DosyaLama işLemi yapacağımız için c sharp'ın dosyaLama özeLLiğini aktifLeştirmemiz gerekiyor.
Bunun için:
Resimdeki Gibi Kod aLanının üst tarafındaki yere using System.IO; Yazıyoruz ve dosyaLama özeLLikLeri açılmış oLuyor.
Şimdi Form1_Load kısmına geLip iLk önce şu kodLarı yazıyoruz.
StreamWriter sw;
sw = File.AppendText("kayitlar.txt");
sw.Close();
Kodumuzda bir .txt (not defteri) oLuşturuyoruz. Burda File.AppendText yerine File.CreateText te oLabiLirdi ancak CreateText Her seferinde yeni bir txt dosyası oLuşturur. Yani önceden varsada o dosya onu siLip (içinde biLgiLer varsa onLarıda siLer) yeni boş bir txt dosyası oLuşturur. Ancak AppendText O isimdeki dosya yoksa oLuşturur Varsa zati var deyip dosyanızın sadece adresini tanımLamış oLursunuz.
Form1_Load kısmındaki işLemimiz şimdiLik bu kadar. Tekrar Form1'in görseLine geçip 'Kitap Kaydı Yap' Butonuna çift tıkLayarak Bu butonun Click oLayLarını düzenLeyeLim.
Burada isteniLen şey Kitap Kayıt Sayfasına geçmektir. TıkLanınca Form2 açıLacak ancak diğer Form1 sayfasının görünmemesi Lazım. Bunun için internetten araştırdığım bir Kod var.
Form1.ActiveForm.Hide();
Form2 frm2 = new Form2();
frm2.ShowDialog();
Form1 frm1 = new Form1();
frm1.Visible = true;
Bu kodLarı Kayit Yap Butonunun click özeLLiğine yapıştırın ve diğer butonLara da tek tek tıkLayıp SırasıyLa yapıştırın ve 'Form2 frm2 = new Form2();' deki 'Form2'Lerin yerine sırasıyLa formLarın isimLerini (Form3, Form4 gibi) yazınız.
Bu işLemLeri yaptıktan sonra çaLıştırıp deneyiniz. Eğer ButonLarın hepsine tek tek TıkLayınca Ana pencere kapanıp yeni pencere açıLıyor ve yeni pencereyi kapadığınızda ana pencere açıLıyorsa işLemimiz tamamdır. Şimdi Diğer Form'Lara geçebiLiriz.
Şimdi Kitap Kaydı işLemini yapacağımız Form'a.
Burada Form_Load kod böLümünde bir işLeme gerek yoktur. İşLemimizi sadece butona tıkLayınca yapacağımız için 'Kayıt Yap' butonundan bütün işLemLerimizi yapaLım. Kayıt Yap butonuna çift tıkLayıp Click özeLLiğine (event) geçeLim.
Burada kodLarımızı direk yapıştıraLım.
StreamWriter sw;
sw = File.AppendText("kayitlar.txt");
if (KayitKitapAdiTextBox.Text != null && KayitYayinAdiTextBox.Text != null && KayitYazarAdiTextBox != null)
{
sw.WriteLine(KayitKitapAdiTextBox.Text + "," + KayitYazarAdiTextBox.Text + "," + KayitYayinAdiTextBox.Text);
MessageBox.Show("Kayıt BaşarıyLa YapıLdı");
}
else
{ MessageBox.Show("KutuLar boş bırakıLamaz"); }
sw.Close();
YapıLan iLk işLem 'yazma' oLayını ve kayıtçının adresini tanımLamak oLdu.
Daha sonrasında KutuLarın boş bırakıLıp bırakıLmadığını 'if' komutuyLa kontroL ettirdik.
Boş değiLse (if): YazıLan kitabı beLirLi parametreyLe (araLarına boşLuk oLmadan virgüL koyarak) not defterine yazdırdık. Bu parametre sizin isteğinize göre değiştirebiLirsiniz. Daha sonrasında da ekrana mesaj veriLdi.
Boş ise (else): Ekrana mesaj ver
Kaydın yapıLıp yapıLmadığını kontroL edebiLirsiniz. Programı kaydettiğiniz yerde /bin/debug/ kLasörü içinde kayitLar.txt dosyası oLuşturuLmuştur Bu dosyayı açarak girdiğiniz biLgiLerin orada oLduğunu göreceksiniz.
Şimdi Kitap SiL Form'una geLerek buradaki işLemLeri yapaLım.
Burada da sadece butona tıkLayınca işLem yapacağı için Butona çift tıkLayıp click özeLLiğine geçeLim ve kodLarımızı yazaLım.
StreamReader sr;
sr = File.OpenText("kayitlar.txt");
StreamWriter sw;
sw = File.AppendText("kayitlar2.txt");
string okundu;
okundu = sr.ReadLine();
string istenen = SilKitapAdiTextBox.Text + "," + SilYazarAdiTextBox.Text + "," + SilYayinAdiTextBox.Text;
if (SilKitapAdiTextBox.Text != null && SilYazarAdiTextBox.Text != null && SilYayinAdiTextBox.Text != null)
{
while(okundu!=null)
{
if (istenen!=okundu)
{
sw.WriteLine(okundu);
}
okundu = sr.ReadLine();
}
}
else
{
MessageBox.Show("KutuLar Boş BırakıLamaz");
}
sw.Close();
sr.Close();
File.Delete("kayitlar.txt");
File.Move("kayitlar2.txt","kayitlar.txt");
MessageBox.Show("BaşarıyLa SiLindi.");
Mantığımız siLinecek veriyi buLmak ve yeni bir dosya oLuşturup SiLinecek veri hariç Diğer veriLeri bu dosyaya kopyaLamak. Daha sonra önceki dosyayı siLip yeni dosyanın ismine önceki doyanın ismini vermek.
/////////
Son oLarak Kitap Ara Formumuzu açıyoruz ve buradada sadece cLick özeLLiği kuLLanıLacaktır.
Mantığımız Kitabın oLup oLmadığını kontroL ettirip Varsa 'VAR' Yoksa 'YOK' mesajını vermesini sağLamak.
char bayrak='0';
string istenen;
istenen = AraKitapAdiTextBox.Text + "," + AraYazarAdiTextBox.Text + "," + AraYayinAdiTextBox.Text;
string okundu="53";
while (okundu != null)
{
okundu = sr.ReadLine();
if (istenen == okundu)
{
bayrak = '1';
okundu = null;
}
}
if (bayrak == '1')
MessageBox.Show("Kütüphanemizde Bu Kitap Vardır. Okumanız Dileğiyle");
else
MessageBox.Show("Malesef Aradığınız Kitap BuLunmamaktadır.");
}
else
{
MessageBox.Show("Kutular Boş BırakıLamaz");
}
sr.Close();
Programımız ŞimdiLik bu kadardır.
Diğer 'Öğrenci İşLemLeri' Butonuna veya En son kaLan Form'a istediğiniz bir şey ekLeyebiLirsiniz(YetkiLi girişi, Bütün KitapLarı ListeLe vs.)
Bu konu hakkında şimdiLik bu kadar. EkLemeLer oLacaktır.
BaşarıLar...
Kaydol:
Kayıtlar (Atom)











