C Sharp Ders 3

For Döngüsü C# Console
  
For Döngüsü: Belirli aralıklarda(sayıda) kodlar icra edilecekse for döngüsü kullanılır.
Kullanımı: 
For (i=başlangıç değeri ;  i< bitiş değeri; Artış miktarı)
{
Kodlar;
}
Örnek:  1′den 100′e kadar olan sayıların toplamını bulup sonucu ekranda gösteren programın kodlarını yazalım.
static void Main(string[] args)
{
int toplam=0;
for (int i = 0; i <= 100; i++)
{
toplam += i;
}
Console.WriteLine("Toplam = {0}", toplam);
Console.ReadKey();
}

Örnek:  45 ile 125 arasındaki çift sayıların toplamını bulup sonucu ekranda gösteren programın kodlarını yazalım
static void Main(string[] args)
{
int toplam=0;
for (int i = 46; i <= 125; i+=2)
{
toplam += i;
}
Console.WriteLine("Toplam = {0}", toplam);
Console.ReadKey();
}

Not : For döngüsünde aynı anda iki değişken tanımlanıp artırılabilir.Bir örnek verelim.
Örnek:  1 ile 100 arasındaki tek ve çift sayıların toplamını bulup sonucu ekranda gösteren programın kodlarını yazalım.
static void Main(string[] args)
{
int tektoplam=0, cifttoplam=0;
for (int i = 1, j = 2; i <= 100 && j <= 100; i += 2, j += 2)
{
tektoplam += i;//tektoplam değişkenine i değerini ekle
cifttoplam += j;
}
Console.WriteLine("Tek Sayıların Toplamı = {0} ",tektoplam);
Console.WriteLine("Çift Sayıların Toplamı = {0}",cifttoplam);
Console.ReadKey();
}

Örnek: Aynı sorunun cevabını mod (%) komutunu kullanarakta yapabiliriz.
static void Main(string[] args)
{
int tektoplam=0,cifttoplam=0;
for (int i = 0; i <= 100; i++)
{
if (i % 2 == 1) tektoplam += i;
else cifttoplam += i;
}
Console.WriteLine("Tek Sayıların Toplamı = {0}", tektoplam);
Console.WriteLine("Çift Sayıların Toplamı = {0}", cifttoplam);
Console.ReadKey();
}

Örnek: Klavyeden Girilen Notların Ortalamasını Alan Programın (For Döngüsü) C# Console
string ad;
 double vizeNotu, finalNotu, ogrenci, ort, Sort = 0;
 Console.Write("Sınıf Mevcudunu Giriniz : ");
 ogrenci = Convert.ToDouble(Console.ReadLine());
 for (int i = 1; i <= ogrenci; i++)
 {
 Console.Write("Vize Notunu Giriniz = ");
 vizeNotu = Convert.ToDouble(Console.ReadLine());
 Console.Write("Final Notunu Giriniz = ");
 finalNotu = Convert.ToDouble(Console.ReadLine());
 ort = vizeNotu * 0.4 + finalNotu * 0.6;
 Console.WriteLine("Ortalama = " + ort);
 if (ort < 50)
 {
 Console.WriteLine("Öğrenci Kaldı ");
 }
 else
 Console.WriteLine("Öğrenci Geçti ");
 Sort = Sort + ort;
 }
 Console.Write("Sınıf Ortalaması = " + (Sort / ogrenci));
 Console.ReadKey();
 }

Örnek: Klavyeden Girilen Sayılar İçinde En Büyüğü Bulan Programın Akış Diyagramı
{
 Console.Write("Lütfen Kaç Sayı Girmek İstediğinizi Giriniz = ");
 int adet = Convert.ToInt16(Console.ReadLine());
 int sayac = 0;
 int enbuyuk = 0;
 int sayi;
 do
 {
 Console.Write(sayac + 1 + ". Sayı = ");
 sayi = Convert.ToInt16(Console.ReadLine());
 if (sayi > enbuyuk)
 enbuyuk = sayi;
 sayac++;
 }
 while (sayac < adet);
 Console.WriteLine("Girdiğiniz Sayılar İçinde En Büyüğü = " + enbuyuk);
 Console.ReadKey();
 }

Örnek:  For döngüsünden herhangi bir anda çıkış için break komutunu kullanabiliriz. Mesela yukarıdaki örnek için sayı 10 olduğunda döngüden çıksın.
static void Main(string[] args)
{
int tektoplam=0,cifttoplam=0;
for (int i = 0; i <= 100; i++)
{

if (i % 2 == 1) tektoplam += i;
else cifttoplam += i;
if (i==10) break;
}
Console.WriteLine("Tek Sayıların Toplamı = {0}", tektoplam);
Console.WriteLine("Çift Sayıların Toplamı = {0}", cifttoplam);
Console.ReadKey();
}

Örnek:  Klavyeden girilen bir metnin tekrar klavyeden girilen bir sayı kadar tekrar etmesi
class Program
static void Main(string[] args)
string mesaj;
int sayi;
Console.Write(" Yazdırılacak Mesaj = ");
mesaj = Console.ReadLine();
Console.Write("Kaç Kere Yazdırılsın = ");
sayi = Convert.ToInt32(Console.ReadLine());
for (int i = 0; i < sayi; i++)
Console.WriteLine(mesaj);
Console.ReadLine();
  
Dizi oluşturma-Diziye değer girme-Diziyi yazdırma C# Console

Dizi Tanımlama İşlemi: Saklanacak veriler çok fazla ise dizi kullanılır. Mesela 30 kişilik bir sınıfı isimlerini, notlarını almak istiyoruz. Bunun için değişken kullanmak istersek 30 isimler ,30′da notlar için 60 tane değişken kullanmamız gerekecek. Bunu bir okul için yaptığımızı düşünün. İçinden çıkılmaz bir hal alır. İşte bu gibi durumlar için dizi kullanıyoruz. 
Kullanım 1 : 
değişken tipi [] değişken adı=new değişken tipi[eleman sayısı]; 
Örnek : int[] yazili=new int[10];     string[] ad=new string[20]; 
Kullanım 2 : Önce diziyi tanımlayıp daha sonra eleman sayısını belirtebiliriz. 
değişken tipi [] değişken adı; 
değişken adı=new değişken tipi[eleman sayısı] 
Örnek:
string [] Gunler = new string[7];
Gunler[0] = “Pazartesi”;
Gunler[1] = “Salı”;
Gunler[3] = “Çarşamba”
-  -  -
Gunler[6] = “Cumartesi”
veya
string[] Gunler = {“Pazartesi”, “Salı”, “Çarşamba”, 

“Perşembe”, “Cuma”, “Cumartesi”};

Örnek : 
 int[] yazili; 
yazili=new int[10]; 
string[] ad; 
ad=new string[20]; 
 Örnek:  Klavyeden girilen  5 şehri  önce diziye kaydedelim,Daha sonra dizi elemanlarını ekrana yazdıralım. 
class Program 
static void Main(string[] args) 
{ 
string[] sehir = new string[5]; 
for (int i = 0; i < 5; i++) 
Console.Write("Şehir giriniz = "); 
sehir[i] = Console.ReadLine(); 
}
for (int i = 0; i <5; i++) 
Console.WriteLine("{0}", sehir[i]); 
Console.ReadKey(); 

Örnek:  Yukarıdaki örnekte diziyi ekrana yazdırırken for döngüsünde bitiş  değerini dizinin lenght özelliği ile belirleyelim.  
class Program 
static void Main(string[] args) 
string[] sehir = new string[5]; 
for (int i = 0; i < 5; i++) 
{
Console.Write("Şehir giriniz = "); 
sehir[i] = Console.ReadLine(); 
for (int i = 0; i <sehir.Length; i++) 
Console.WriteLine("{0}", sehir[i]); 
Console.ReadKey(); 


İç-İçe Döngüler C# Console
İç-İçe Döngüler : Birden fazla döngünün iç içe kullanılmasıdır. 
Örnek: Klavyeden girilen sayıya kadar olan sayıların faktöriyellerini hesaplayıp ekrana yazdıran programın kodlarını yazalım. 
class Program 
static void Main(string[] args) 
 
int sayi,fak=1; 
Console.Write("Sayı giriniz = ");  
sayi = int.Parse(Console.ReadLine());  
for (int i = 1; i <=sayi; i++)  
 
fak = 1;  
for (int j = 1; j <= i ; j++)  
 
fak *= j;  
 
Console.WriteLine("{0} sayısının faktöriyeli = {1}",i,fak);  
}
Console.ReadKey(); 
  
Örnek : Aşağıdaki çıktıyı elde eden kodları yazalım.Bunun için iç içe üç tane for döngüsü kullanmalıyız.  
class Program 
static void Main(string[] args) 
for (int i=1; i <3; i++)  
 
for (int j=1; j<4; j++)  
 
for (int k=1; k<4; k++) 
 
Console.WriteLine(i.ToString() + j.ToString() + k.ToString()); 
Console.ReadKey(); 

 Örnek:  Yukarıdaki örnekte diziyi ekrana yazarken foreach kullanalım.  
class Program 
static void Main(string[] args) 
 
string[] sehir = new string[5];  
for (int i = 0; i < 5; i++)  
 
Console.Write("Şehir giriniz = ");  
sehir[i] = Console.ReadLine();  
 
foreach (string i in sehir)  
 
Console.WriteLine("{0}",i); 
}  
Console.ReadKey(); 
}
Dizilerde arama C# Console
Dizilerde arama : Dizlerde arama işlemi için Array sınıfının IndexOf metodu kullanılır. 
Array. IndexOf: Belirtilen değerin dizi içinde olup olmadığını öğrenmek için kullanılır.Belirtilen değer var ise geriye sıra numarasını döndürür,yok ise  -1 değerini döndürür. 
Kullanım 1:  Array.IndexOf(dizi adı,değer) 
Örnek : Array.IndexOf(sayilar,3); //sayilar dizisi içinde 3 sayısı var ise sıra numarasını , yok ise    -1 değerini döndürür. 
Kullanım 2:  Array.IndexOf(dizi adı,değer,kaçıncı elemandan itibaren) 
Not: Dizinin ilk elemanın 0.eleman olduğunu untmayın. 
Örnek : Array.IndexOf(sayilar,2,3); 
Örnek : Klavyeden girilen ismin dizide olup olmadığını ekrana yazan programın kodlarını yazalım. 
class Program 
static void Main(string[] args) 
 
string[] isimler = {"ali","veli","selim","ayşe","cansu"}; 
 
string girilen; 
 
Console.Write("Aradığınız ismi giriniz = "); 
 
girilen = Console.ReadLine(); 
 
if (Array.IndexOf(isimler, girilen) == -1) Console.Write(" Aradığınız isim bulunamadı"); 
 
else Console.Write("Aradığınız isim bulundu"); 
 
Console.ReadKey();  

Dizilerde sıralama C# Console    
Dizilerde sıralama : İç içe for döngüsüyle dizilerdeki elemanları sıralayabiliriz.     
Örnek:   Klavyeden girilen 10 sayıyı küçükten büyüğe sıralayan programın kodlarını yazalım.       
class Program 
static void Main(string[] args) 
 
int[] sayilar = new int[10];  
int gecici;  
for (int i = 0; i < 10; i++)  
Console.Write("Sayı giriniz = ");  
sayilar[i] =int.Parse(Console.ReadLine());  
 
for (int i = 0; i < 10; i++)  
 
for (int j = i+1; j < 10; j++)  
 
if (sayilar[j]<sayilar[i])  
gecici = sayilar[i]; 
sayilar[i] = sayilar[j]; 
sayilar[j] = gecici; 
foreach (int i in sayilar) 
Console.WriteLine("{0}",i); 
}  
Console.ReadKey(); 
     
Not :  Eğer küçükten büyüğe değilde büyükten küçüğe sıralama işlemi yapmak istiyorsanız  if (sayilar[j]<sayilar[i]) kodu yerine  if (sayilar[j]>sayilar[i]) kodunu kullanmalısınız.     
   
***  Sıralama işlemini Array sınıfının short metodunu kullanarakta yapabilirsiniz.     
Array. Sort: Belirtilen dizinin küçükten büyüğe sıralanmasını sağlar. 
Kullanım 1:  Array.Sort(dizi adı) 
Örnek : Array.Sort(sayilar); 
Kullanım 2:  Array.Sort(dizi adı,Kaçıncı elemandan itibaren,kaç elaman) 
Not: Dizinin ilk elemanın 0.eleman olduğunu unutmayın. 
Örnek : Array.Sort(sayilar,2,3); // sayilar dizisini 2. elemandan itibaren 3 elamanını küçükten büyüğe sıralar. 
Array.Reverse : Belirtilen dizinin sıralama olarak ters çevrilmesini sağlar. 
Kullanım 1:  Array.Reverse(dizi adı) 
Örnek : Array.Reverse(sayilar); 
Kullanım 2:  Array.Reverse(dizi adı,Kaçıncı elemandan itibaren,kaç elaman) 
Not: Dizinin ilk elemanın 0.eleman olduğunu unutmayın. 
Örnek : Klavyeden girilen 10 sayıyı küçükten büyüğe sıralayan programın kodlarını yazalım.       
class Program 
static void Main(string[] args) 
{
int[] sayilar = new int[10];  
for (int i = 0; i < 10; i++) 
Console.Write("Sayı giriniz = ");  
sayilar[i] =int.Parse(Console.ReadLine()); 
Array.Sort(sayilar);  
foreach (int i in sayilar) 
Console.WriteLine("{0}",i); 
}
Console.ReadKey(); 
      
Not :  Eğer küçükten büyüğe değilde büyükten küçüğe sıralama işlemi yapmak istiyorsanız Array.Sort(sayilar); kodundan sonra  Array.Reverse(sayilar);  kodunuda eklemelisniz.  
Dinamik diziler C# Console
Dinamik diziler : Eleman sayısı kullanıcı tarafından belirlenen dizilerdir. 
Örnek : Klavyeden girilen dizi boyutu kadar sayı girişi sağlayan ve bu sayıları küçükten büyüğe sıralayıp ekrana yazdıran programın kodlarını yazalım.  
class Program 
static void Main(string[] args) 
int boyut; 
Console.Write("Dizi boyutunu giriniz = ");  
boyut = int.Parse(Console.ReadLine());  
int[] sayilar = new int[boyut];  
for (int i = 0; i < sayilar.Length; i++)  
Console.Write("Sayı giriniz = ");  
sayilar[i] =int.Parse(Console.ReadLine());  
Array.Sort(sayilar);  
foreach (int i in sayilar)  
Console.WriteLine("{0}",i);  
Console.ReadKey(); 
}

Örnek :  4*3 Matris ile 3*4 Matrisin Çarpımı C# Console 
class Program 
static void Main(string[] args) 
int[,] m1 = { { 1, 1, 5, 3 }, { 4, 1, 6, 7 }, { 2, 9, 10, 3 } };  
int[,] m2 = { { 2, 1, 2 }, { 3, 6, 2 }, { 6, 7, 8 }, { 9, 3, 7 } }; 
int[,] sonuc = new int[4, 4]; 
for (int k = 0; k < 4; k++) 
for (int i = 0; i < 4; i++) 
 
for (int j = 0; j < 3; j++)  
sonuc[k, i] += m2[k, j] * m1[j, i];  
 
for (int i = 0; i < 4; i++) 
Console.WriteLine();  
for (int j = 0; j < 4; j++)  
Console.Write("{0}\t", sonuc[i, j]); 
Console.ReadKey(); 

Hiç yorum yok:

Yorum Gönder