C Sharp Ders 4

Çok boyutlu diziler
Çok boyutlu diziler kısaca her bir elemanı bir dizi şeklinde olan dizilerdir, matris dizileri (düzenli diziler) ve düzensiz diziler olmak üzere ikiye ayrılır.
Matris diziler
Her bir dizi elemanının eşit sayıda dizi içerdiği dizilerdir.
İki boyutlu matris diziler
3X2 boyutunda iki boyutlu bir matris dizi aşağıdaki gibi tanımlanabilir:
int[,] dizi=new int[3,2];
veya
int[,] dizi={{1,2},{3,4},{5,6}};
İkinci dizinin elemanları indekslerine göre aşağıdaki gibidir.
dizi[0,0] → 1
dizi[0,1] → 2
dizi[1,0] → 3
dizi[1,1] → 4
dizi[2,0] → 5
dizi[2,1] → 6


Örnek 1: kullanıcı tarafından girilen 4x5 çift boyutlu bir dizideki elemanlarını ve bu girilen elemanlarının her değerini beşe çarparak ekrana yazan c# programı yazalım.

static void Main(string[] args)
        {
            double[,] dizim = new double[4, 3];
            for (int i = 0; i < 4; i ++ )
            {
                for (int j = 0; j < 3; j++)
                {
                    dizim[i, j] = Convert.ToDouble(Console.ReadLine());
                }
            }
            for (int i = 0; i < 4; i++)
            {
                for (int j = 0; j < 3; j++)
                {
                    Console.Write(dizim[i, j] + "\t");
                }
                Console.WriteLine();
            }
            for (int i = 0; i < 4; i++)
            {
                for (int j = 0; j < 3; j++)
                {
                    dizim[i, j] = dizim[i, j] *2;
                }
            }
            for (int i = 0; i < 4; i++)
            {
                for (int j = 0; j < 3; j++)
                {
                    Console.Write(dizim[i, j] + "\t");
                }
                Console.WriteLine();
            }
            Console.ReadKey();
        }

Alt Programlarda Void  C# Console
Alt Program-Prosedür-Void: Prosedürler kodları özel bir bloğa yazarak her defasında aynı kodları tekrar tekrar yazmamamızı sağlar.Fonksiyondan farkı değer döndürmez ,void ile başlar ve herhangi bir değişkene eşitlenmezler.Kısacası void metotlar geriye değer döndürmezler. 
class Program 
static void mesaj() 
Console.Write("  "); 
 
Console.ReadKey(); 
}
public static void Main(string[] args) 
{
mesaj(); 
 
Alt Programlarda Parametre Kullanımı C# Console
Parametre Kullanımı : Alt programlara parametre gönderimi yapabiliriz. 
Örnek: Klavyeden uzun ve kısa kenarı girilen bir dikdörtgenin alanı alt program yardımıyla hesaplayalım. 
class Program 
static void alanHesapla(int a,int b) 
int sonuc; 
 
sonuc = a * b; 
 
Console.Write("Karenin Alanı = {0}",sonuc); 
 
Console.ReadKey(); 
 
public static void Main(string[] args) 
 
int uzunKenar,kisaKenar; 
 
Console.Write("Uzun kenarı giriniz = "); 
uzunKenar =int.Parse(Console.ReadLine()); 
 
Console.Write("Kısa kenarı giriniz = "); 
 
kisaKenar =int.Parse(Console.ReadLine()); 
 
alanHesapla(uzunKenar, kisaKenar); 
 
Alt Programlarda Params İfadesi C# Console

Params İfadesi : Bir önceki derstte alt programlara parametre gönderildiğini görmüştük.Bazı durumlarda gönderilen parametre miktarı değişebilir.İşte bu durumlarda params ifadesini kullanıyoruz. 
Örnek: char dizisinde bulunan karakterlerden sadece a olanları saydıralım. 
class Program 
static void aSay( params char[] k) 
int sayac=0; 
 
foreach (char i in k) 
if (i==(char)97) 
sayac++; 
Console.Write("Toplam a sayısı = {0} ",sayac); 
Console.ReadKey(); 
 
public static void Main(string[] args) 
 
char[] c = { 'a', 'k', 'a', 't', 'a', 'z'}; 
aSay(c); 
  
Örnek :  Şimdide char dizisindeki  karakter sayısını artıralım. 
class Program 
static void aSay( params char[] k) 
int sayac=0; 
foreach (char i in k) 
if (i==(char)97) 
sayac++; 
Console.Write("Toplam a sayısı = {0} ",sayac); 
Console.ReadKey(); 
public static void Main(string[] args) 
char[] c = { 'a', 'k', 'a', 't', 'a', 'u','a', 'e', 'a', 's'}; 
aSay(c); 
Not : params ifadesi sayesinde gelen karakter sayısı ne olursa olsun prosedür sayma işlemini gerçekleştirir.
Fonksiyon Tanımlama – Fonksiyon  Kullanımı – Parametre Kullanımı C# Console
Fonksiyonlar:  Kodları özel bir bloğa yazarak her defasında aynı kodları tekrar tekrar yazmamamızı sağlar.Fonksiyon herhangi bir değişkene eşitlenir ve değer döndürür. Değer döndürme için return kullanıyoruz. Fonksiyonun veri türü ile değer döndürdüğü değişkenin veri türü aynı olmalıdır (double fak– double sonuc). Fonksiyonlarda parametre gönderimini aşağıdaki örnekte gözüktüğü gibi yaparız (int sayi).
Örnek:  (a!.b!)/(a-b)! işlemini hesaplayan programın kodlarını  fonksiyon kullanarak  yazalım. 
normal yazdığımızda kodları faktöriyel alma işlemi üç yerde olduğu için üç defa faktöriyel alma kodu yazmamız gerekir.Ama biz faktöriyel hesaplamayı fonksiyonda yapacağız.Ve her fakröriyel işleminde fonksiyonu çağıracağız.  
static double fak(int sayi)

class Program 
double c = 1; 
for (int i = 1; i <= sayi; i++) 
c *= i; 
return c; 
static void Main(string[] args) 
double sonuc; 
int a, b; 
Console.Write("a değerini giriniz = "); 
a = int.Parse(Console.ReadLine()); 
Console.Write("a değerini giriniz = "); 
b = int.Parse(Console.ReadLine()); 
sonuc = (fak(a) * fak(b)) / fak(a - b); 
Console.Write("Sonuç = {0}",sonuc); 
Console.ReadKey(); 


Rekürsif Fonksiyonlar C# Console
Rekürsif Fonksiyonlar :  Bir fonksiyon içersinden, bir diğerini çağırabiliriz. Rekürsif fonksiyonlar, fonksiyon içerisinden fonksiyon çağırmanın özel bir hâlidir. Rekürsif fonksiyon bir başka fonksiyon yerine kendisini çağırır ve şartlar uygun olduğu sürece bu tekrarlanır. Rekürsif, Recursive kelimesinden geliyor ve tekrarlamalı, yinelemeli anlamını taşıyor. Kelimenin anlamıyla, yaptığı iş örtüşmektedir.  
Örnek :  Klavyeden girilen sayıya kadar olan sayıların faktöriyellerini alıp ekrana yazan programın kodlarını rekürsif fonksiyonları kullanarak yazalım.  
class Program 
static double j = 1, sonuc = 1; 
static double fak(int a) 
 
if (j <= a) 
 
sonuc *=j; 
j++; 
 
Console.Write("{0} ", sonuc); 
fak(a); 
return sonuc; 
static void Main(string[] args) 
int b; 
Console.Write("Hangi sayıya kadar faktöriyel alınsın = "); 
b = int.Parse(Console.ReadLine()); 
fak(b); 
Console.ReadKey(); 
 
  
Örnek : Klavyeden girilen sayıya kadar olan sayıların 3. dereceden kuvvetlerini alıp ekrana yazan programın kodlarını rekürsif fonksiyonları kullanarak yazalım.   
class Program 
static double j = 0, sonuc = 0; 
static double fak(int a) 
if (j <= a) 
sonuc = Math.Pow(3, j); 
j++; 
Console.Write("{0} ", sonuc); 
fak(a); 
return sonuc; 
static void Main(string[] args) 
int b; 
Console.Write("Hangi sayıya kadar 3 sayısının üsleri alınsın = "); 
b = int.Parse(Console.ReadLine()); 
fak(b); 
Console.ReadKey(); 
  
String Fonksiyonlar – Compare – C# Console
Compare: İki string’in alfabetik olarak karşılaştırır.İki string birbirine eşitse geriye 0,birinci string alfabetik olarak ikinci string’ten önce geliyorsa geriye -1,birinci string alfabetik olarak ikinci string’ten sonra geliyorsa geriye +1 döndürür. 
Örnek :  Klavyeden girilen iki stringi Compare ile karşılaştırıp döndürdüğü değeri ekrana yazdıran programın kodlarını yazalım.
class Program 
{
static void Main(string[] args) 
Console.Write("1. stringi giriniz = "); 
str1 = Console.ReadLine(); 
Console.Write("2. stringi giriniz = "); 
str2 = Console.ReadLine(); 
Console.Write(string.Compare(str1,str2)); 
Console.ReadKey(); 
   
Örnek : Klavyeden girilen iki stringi karşılaştırıp gerekli mesajı ekrana yazdıran programın kodlarını yazalım.
class Program 
static void Main(string[] args) 
 
string str1, str2; 
 
Console.Write("1. stringi giriniz = "); 
 
str1 = Console.ReadLine(); 
 
Console.Write("2. stringi giriniz = "); 
 
str2 = Console.ReadLine(); 
 
if (string.Compare(str1, str2) == 0) Console.Write("Stringler aynı"); 
 
if (string.Compare(str1, str2) == -1) Console.Write("Alfabetik olarak 1. String 2. sitrinden önce geliyor. "); 
 
if (string.Compare(str1, str2) == 1) Console.Write("Alfabetik olarak 1. String 2. sitrinden sonra geliyor. "); 
 
Console.ReadKey(); 
 
 

Not : Yukarıdaki resimde gözüktüğü gibi 1. ve 2. string aynı olmasına rağmen büyük küçük harf ayrımı yapmadığı için farklı gibi gördü.Bunu engellemek için true parametresini eklemeliyiz.Aşağıdaki örnekte kullanımı inceleyebilirsiniz.
Örnek :  
class Program 
static void Main(string[] args) 
 
string str1, str2; 
 
Console.Write("1. stringi giriniz = "); 
 
str1 = Console.ReadLine(); 
 
Console.Write("2. stringi giriniz = "); 
 
str2 = Console.ReadLine(); 
 
if (string.Compare(str1, str2, true) == 0) Console.Write("Stringler aynı"); 
 
if (string.Compare(str1, str2, true) == -1) Console.Write("Alfabetik olarak 1. String 2. sitrinden önce geliyor. "); 
 
if (string.Compare(str1, str2, true) == 1) Console.Write("Alfabetik olarak 1. String 2. sitrinden sonra geliyor. "); 
Console.ReadKey(); 
Yukarıda gözüktüğü gibi iki string aynı olmak koşuluyla büyük veya küçük karakter farketmez ne girilse girilsin aynı diyecektir.

String Fonksiyonlar – Concat – C# Console
Concat : Değerleri birleştirmek için kullanılır.Params olduğundan dolayı sınırsız sayıda değişken birleştirilebilir. 
Kullanım Şekli : String.Concat(st1, st2, st3, stn) 
class Program 
static void Main(string[] args) 
string kelime1, kelime2,birlesim; 
 
Console.Write("1. kelimeyi giriniz : "); 
 
kelime1 = Console.ReadLine(); 
 
Console.Write("2. kelimeyi giriniz : "); 
 
kelime2= Console.ReadLine(); 
 
birlesim=string.Concat(kelime1, kelime2); 
 
Console.Write("{0}",birlesim); 
 
Console.ReadKey(); 

String Fonksiyonlar – ToUpper – ToLower – C# Console
ToUpper & ToLower :  ToUpper, değişkenin içindeki karakterleri büyük karaktere dönüştürür, ToLower ise küçük karaktere dönüştürür.
Kullanım Şekli : st1.ToUpper() 
 
 
class Program 
 
 
static void Main(string[] args) 
 
 
string kelime,buyukHarf; 
 
Console.Write("kelimeyi giriniz : "); 
 
kelime = Console.ReadLine(); 
 
buyukHarf = kelime.ToUpper(); 
 
Console.Write("{0}",buyukHarf); 
Console.ReadKey(); 


 
 
class Program 
 
 
static void Main(string[] args) 
 
string kelime,buyukHarf; 
 
Console.Write("kelimeyi giriniz : "); 
 
kelime = Console.ReadLine(); 
 
buyukHarf = kelime.ToLower(); 
 
Console.Write("{0}",buyukHarf); 
 
Console.ReadKey(); 
 
 




String Fonksiyonlar – Trim – TrimEnd – TrimStart- C# Console

Trim, TrimEnd, TrimStart : Parametre olarak verilen bir karakteri değişkenin başından ve sonundan kaldırır.Herhangi bir karakter belirtilmediği zaman boşlukları kaldırır.
Kullanım Şekli :
st1.Trim(“?”)
st1.TrimStart(“?”) Başından Kaldırır.
st1.TrimEnd(“?”) Sonundan Kaldırır.
Örnek: Girilen iki kelimeyi karşılaştıralım.
class Program 

static void Main(string[] args) 


string str1, str2; 

Console.Write("1. stringi giriniz = "); 

str1 = Console.ReadLine(); 

Console.Write("2. stringi giriniz = "); 

str2 = Console.ReadLine(); 

if (string.Compare(str1, str2) == 0) Console.Write("Stringler aynı"); 

else Console.Write("Stringler farklı"); 

Console.ReadKey(); 
Aşağıdaki örnekte ikinci kelimeden sonra bir kaç defa boşluk tuşuna bastım.Ve farklı dedi.Bunu engellemek için Trim özelliğini kullanabiliriz.

Örnek: Trim ekleyerek yapalım. 
class Program 
static void Main(string[] args) 


string str1, str2; 

Console.Write("1. stringi giriniz = "); 

str1 = Console.ReadLine(); 

Console.Write("2. stringi giriniz = "); 

str2 = Console.ReadLine(); 

if (string.Compare(str1.Trim(), str2.Trim()) == 0) Console.Write("Stringler aynı"); 

else Console.Write("Stringler farklı"); 
Console.ReadKey(); 
Aşağıda ikinci kelimeden sonra bir kaç defa boşluk tuşuna bastım.Trim ile bu boşluklar alındığı için kelimeler aynı dedi.

Matematiksel Fonksiyonlar – Round – Floor- Ceiling – C# Console
        
Round :Sayıyı en yakın tamsayıya çevirir.      
class Program 
static void Main(string[] args) 
 
double sayi,sonuc; 
 
Console.Write("Sayıyı giriniz = "); 
 
sayi=double.Parse(Console.ReadLine()); 
 
sonuc = Math.Round(sayi); 
 
Console.Write("Sonuç = {0}",sonuc); 
 
Console.ReadKey(); 
               
          
Floor : Sayıyı aşağı doğru yuvarlar.      
class Program 
static void Main(string[] args) 
 
double sayi,sonuc; 
 
Console.Write("Sayıyı giriniz = "); 
 
sayi=double.Parse(Console.ReadLine()); 
 
sonuc = Math.Floor(sayi); 
 
Console.Write("Sonuç = {0}",sonuc); 
Console.ReadKey(); 
                              
Ceiling : Sayıyı yukarıya doğru yuvarlar.       
class Program 
static void Main(string[] args) 
 
double sayi,sonuc; 
 
Console.Write("Sayıyı giriniz = "); 
 
sayi=double.Parse(Console.ReadLine()); 
 
sonuc = Math.Ceiling(sayi); 
 
Console.Write("Sonuç = {0}",sonuc); 
 
Console.ReadKey(); 

Matematiksel Fonksiyonlar – Max – Min – C# Console
Max : İki sayıdan büyük olanı bulur. 
class Program 
static void Main(string[] args) 
 
double sayi1,sayi2,sonuc; 
 
Console.Write("1. Sayıyı giriniz = "); 
 
sayi1=double.Parse(Console.ReadLine()); 
 
Console.Write("2. Sayıyı giriniz = "); 
 
sayi2 = double.Parse(Console.ReadLine()); 
 
sonuc = Math.Max(sayi1, sayi2); 
 
Console.Write("Sonuç = {0}",sonuc); 
Console.ReadKey(); 


Min : İki sayıdan küçük olanı bulur.
class Program 
{
static void Main(string[] args) 
 
double sayi1,sayi2,sonuc; 
 
Console.Write("1. Sayıyı giriniz = "); 
 
sayi1=double.Parse(Console.ReadLine()); 
 
Console.Write("2. Sayıyı giriniz = "); 
 
sayi2 = double.Parse(Console.ReadLine()); 
 
sonuc = Math.Min(sayi1, sayi2); 
 
Console.Write("Sonuç = {0}",sonuc); 
 
Console.ReadKey(); 

Matematiksel Fonksiyonlar – Sqrt – C# Console

Sqrt: Belirtilen sayının karekökünü alır.  
class Program 
static void Main(string[] args) 

double sayi; 

Console.Write("Sayı giriniz = "); 

sayi=double.Parse(Console.ReadLine()); 

Console.WriteLine("Sonuç= {0}",Math.Sqrt(sayi)); 
Console.ReadKey(); 

Matematiksel Fonksiyonlar – Abs- C# Console
Abs : Verilen bir sayının mutlak değerini döndürür. Dönen değer her durumda pozitif olacaktır.  
class Program 
static void Main(string[] args) 


double sayi; 

Console.Write("Sayı giriniz = "); 

sayi=double.Parse(Console.ReadLine()); 

Console.WriteLine("Sonuç= {0}",Math.Abs(sayi)); 
Console.ReadKey(); 

Matematiksel Fonksiyonlar – Pi – Sin – Cos – Tan C# Console

Pi : Pi sayısını verir(3.14159265358979323846)
Cos, Sin, Tan : Bu fonksiyonlar temel trigonometrik işlemleri gerçekleştirir. Cos fonksiyonu verilen derecenin kosinüsünü, Sin sayının sinüsünü ve Tan sayının tanjantını hesaplar. Parametre olarak verilen derece radyan (360 derece) değeri olarak kabul edilir. 
Kullanımı: 
Math.Cos(Math.PI * Girilen_Derece / 180);

Math.Sin(Math.PI * Girilen_Derece / 180);
Math.Tan(Math.PI * Girilen_Derece / 180);  

class Program 
static void Main(string[] args) 
double derece; 

Console.Write("Derece giriniz = "); 

derece=double.Parse(Console.ReadLine()); 

Console.WriteLine("Derecenin Sinüsü= {0}",Math.Sin((Math.PI*derece)/180)); 

Console.WriteLine("Derecenin Cosinüsü= {0}", Math.Cos((Math.PI * derece) / 180)); 

Console.WriteLine("Derecenin Tanjantı= {0}", Math.Tan((Math.PI * derece) / 180)); 
Console.ReadKey(); 

Matematiksel Fonksiyonlar – Log10 – Log – C# Console 
Log10(sayı) : Sayının 10 tabanlı logaritmasını hesaplar. 
Log(sayı) : e tabanındaki logaritmayı hesaplar.  
class Program 
static void Main(string[] args) 

double sayi; 

Console.Write("Sayı giriniz = "); 

sayi=double.Parse(Console.ReadLine()); 

Console.WriteLine("Sonuç= {0}",Math.Log10(sayi)); 

Console.ReadKey(); 

Hiç yorum yok:

Yorum Gönder