Ç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