255

Toplamda 40 adet C# örnek soru ve çözümü soruların C# ile dizi, döngü, karar yapıları ,string metotlar ve metot kullanımı konularını kapsıyor.

Sorular ile alakalı anlaşılmayan veya çözümünde sıkıntı olan varsa yorum bölümünden sorabilirsiniz…

1 ) Aynı firmada çalışan (Ahmet ve Hasan) iki işçiden birincisinin (Ahmet’in) aylık ücreti bir ay %50 artmakta, sonraki ay %25 azalmaktadır. Diğerinin (Hasan’ın) ise ücreti her ay %25 artmaktadır. Her ikisinin de yılbaşındaki başlangıç ücretleri ve hesaplanacak ay bilgisi klavyeden girildikten sonra ay ay ücretlerinin ne olacağını ve en sonunda hangi işçinin daha fazla (veya eşit) ücret alacağını hesaplayan programı yazınız.

double ahmetMaas = 0, hasanMaas = 0, ekUcret = 0;
int kacAy = 0;
Console.Write(Ahmet'in Başlangıç Maaşı : );
ahmetMaas = Convert.ToDouble(Console.ReadLine());
Console.Write(Hasan'ın Başlangıç Maaşı : );
hasanMaas = Convert.ToDouble(Console.ReadLine());
Console.Write(Kaç Ay Sürecek : );
kacAy = Convert.ToInt32(Console.ReadLine());
for (int i = 0; i <= kacAy; i++)
{

if (i % 2 == 0)
{
//ahmetin para artacak
ekUcret = ahmetMaas * 0.5 ;
ahmetMaas += ekUcret;

}
else {
//ahmetin para azalacak
ekUcret = ahmetMaas * 0.25;
ahmetMaas -= ekUcret;

}

//hasanınki her türlü artacak

ekUcret = hasanMaas * 0.25;
hasanMaas += ekUcret;

Console.WriteLine({0}. Ayın Sonunda Ahmetin Maaşı : {1}, Hasanın Maaşı {2},i+1,ahmetMaas,hasanMaas);
}
if(ahmetMaas&gt;hasanMaas) Console.WriteLine(Sonuç Olarak {0} Ay Sonunda Ahmet, Hasandan Daha Fazla Maaş Almaktadır.,kacAy);
else if (ahmetMaas == hasanMaas) Console.WriteLine(Sonuç Olarak {0} Ay Sonunda Ahmet ve Hasandan Eşit Fazla Maaş Almaktadır., kacAy);
else Console.WriteLine(Sonuç Olarak {0} Ay Sonunda Hasan, Ahmetten Daha Fazla Maaş Almaktadır., kacAy);

2) Toplama işlemini öğretmeye çalışan bir oyun programı yazılacaktır. Oyun başladığı zaman rastgele 2 tane 1-100 arasında sayı tutulacak, tutulan sayılar ekrana gösterilecek ve kullanıcıya bu sayıların toplamı nedir diye sorulacaktır. Eğer kullanıcı doğru cevap verirse “Tebrikler Bildiniz” değil ise “Üzgünüm Bilemediniz” diye mesaj verecektir. Her cevaptan sonra “Tekrar Oynamak istiyormusunuz(e/E)?” şeklinde bir soru sorulacak ve eğer kullanıcı “e” veya “E” ile karşılık verirse oyun tekrar başlayacaktır. Kullanıcının puanı her doğru cevap için 5 puan artacak, her yanlış cevap için ise 2 puan azalacaktır. Oyun sonlandığında kullanıcının verdiği doğru cevap sayısı, yanlış cevap sayısı ve puanı ekranda listelenmelidir. Bu işlemleri yapan programın kodlarını yazınız.

Random rnd = new Random();
int ilkSayi = 0, ikinciSayi = 0, toplamPuan = 0, sayilarinToplami = 0, girilenCevap = 0, dogruCevapSayisi = 0, yanlisCevapSayisi=0;
char devam;
do
{

ilkSayi = rnd.Next(1, 100);
ikinciSayi = rnd.Next(1, 100);
sayilarinToplami = ilkSayi + ikinciSayi;
Console.WriteLine("{0} + {1} = ?",ilkSayi,ikinciSayi);
Console.Write("Cevabınız : ");
girilenCevap = Convert.ToInt32(Console.ReadLine());
if (girilenCevap == sayilarinToplami)
{
Console.WriteLine("Tebrikler Bildiniz");
toplamPuan += 5;
dogruCevapSayisi += 1;
}
else {
Console.WriteLine("Üzgünüm Bilemediniz");
toplamPuan -= 2;
yanlisCevapSayisi += 1;
}
Console.Write("Tekrar Oynamak istiyormusunuz(e/E)?");
devam = Convert.ToChar(Console.ReadLine());

} while (devam=='E' || devam=='e');

Console.WriteLine("Toplam Doğru Cevap Sayınız {0}, Yanlış Cevap Sayınız {1}, Toplamda Almış Olduğunuz Puan {2}",dogruCevapSayisi,yanlisCevapSayisi,toplamPuan);

3 ) Bir otoparka park eden taksinin 1 saati 5TL, minibüsün 1 saati 6TL, ticari aracın 1 saati 6.5TL dir. Taksi 1 saatten sonraki her saat başı için %20 daha fazla, minibüs 1 saatten sonraki her saat başı için toplamda %21.5 ve ticari araç 1 saatten sonraki her saat başı için toplamda %25 daha fazla ödeme yapmaktadır. Buna göre klavyeden girilen araba tipi ve kalınan saat bilgisi girildikten sonra ekrana ödenecek otopark ücretini hesaplayan programın kodlarını yazınız.

double odenecekTutar = 0;
int kalinanSure = 0, aracTipi = 0;
Console.WriteLine("Araç Tipleri Taksi : 1, Minübüs : 2, Ticari : 3");
Console.Write("Lütfen Araç Tipini Giriniz : ");
aracTipi = Convert.ToInt32(Console.ReadLine());
Console.Write("Kalınan Süreyi Giriniz : ");
kalinanSure = Convert.ToInt32(Console.ReadLine());
if (kalinanSure > 1)
{
for (int i = 1; i <= kalinanSure; i++)
{
if (i == 1) {
if (aracTipi == 1) { odenecekTutar = i * 5; }
else if (aracTipi == 2) { odenecekTutar = i * 6; }
else if (aracTipi == 3) { odenecekTutar = i * 6.5; }
}
else {

kalinanSure -= 1;
if (aracTipi == 1) { odenecekTutar+= kalinanSure * 5 * 1.20; }
else if (aracTipi == 2) { odenecekTutar+= kalinanSure * 6 * 1.215; }
else if (aracTipi == 3) { odenecekTutar+= kalinanSure * 6.5 * 1.25; }
}
}

}

else {

if (aracTipi == 1) { odenecekTutar = kalinanSure * 5; }
else if (aracTipi == 2) { odenecekTutar = kalinanSure * 6; }
else if (aracTipi == 3) { odenecekTutar = kalinanSure * 6.5; }

}
Console.WriteLine("Ödenecek Tutar : {0} TL",odenecekTutar);

4 ) Meteoroloji merkezi için bir program tasarlanılması istenilmiştir. Programın çalışma şekli ise şöyle olmalıdır:
a. İlk önce hangi ay için sıcaklık bilgisi girileceği kullanıcıya sorulacaktır.
b. Girilen ay bilgisine uygun olarak o ayda kaç tane gün var ise kullanıcıdan gün sayısı kadar sıcaklık bilgisi girilmesi istenilecektir(ġubat ayı için gün sayısını 28 alınız).
c. Sıcaklık veri girişi bittikten sonra o ayın sıcaklık ortalaması ve en düşük sıcaklık bilgisi ekrana yazdırılacaktır. Bu işlemden sonra program sonlanacaktır.
Örnek Çıktı: Şubat Ayına ait Ortalama Sıcaklık=15,6 derecedir ve En düşük sıcaklık 6.Gün=10,1 derecedir.

string hangiAy;
int gunSayisi = 30, enDusukGun = 0;
double gunlukSicaklik = 0, ayToplami = 0, ayOrtalamasi = 0, enDusuk = 999999;
Console.Write("Hangi Ay Bilgisi Girilecek : ");
hangiAy = Console.ReadLine();
if (hangiAy == "şubat" || hangiAy == "Şubat") {gunSayisi = 28;}

for (int i = 0; i < gunSayisi; i++)
{
Console.Write("{0}. Güne Ait Sıcaklık Değeri : ",i+1);
gunlukSicaklik = Convert.ToDouble(Console.ReadLine());
if (gunlukSicaklik < enDusuk) { enDusuk = gunlukSicaklik; enDusukGun = i + 1; }
ayToplami += gunlukSicaklik;

}
ayOrtalamasi = ayToplami / gunSayisi;
Console.WriteLine("{0} Ayına Ait Sıcaklık Ortalaması {1} Derecedir. En Düşük Sıcaklık {2}. Gün = {3} Derecedir.",hangiAy,ayOrtalamasi,enDusukGun,enDusuk);

5) Klavyeden girilen bir cümleyi şifreleyen program yazılacaktır. Kullanıcı bir cümle girdikten sonra enter tuşuna bastıktan sonra ilk önce girilen cümle tekrar ekrana yazdırılacak sonra ise cümle tersten şifreli olarak ekrana yazdırılacaktır. Tersten ekrana yazdırılır iken a yerine ?, e yerine *, i veya ı yerine =, ö veya o yerine & ve ü veya u yerine + karakterleri kullanılacaktır. Cümlede kaç tane karakter şifrelendi, kaç tanesi şifrelenmedi bilgisi de ekrana yazdırılacaktır.

string cumle; char harf;
Console.Write("Cümleyi Giriniz : ");
cumle = Console.ReadLine();
Console.WriteLine("Girilen Cümele : {0}", cumle);
Console.Write("Şifreli Hali : ");
int sifreli=0;
for (int i = cumle.Length - 1; i >= 0; i--)
{
harf = cumle[i];
if (harf == 'a') { harf = '?'; sifreli++; }
if (harf == 'e') {harf = '*';sifreli++; }
if (harf == 'ı' || harf == 'i') {harf = '=';sifreli++; }
if (harf == 'ö' || harf == 'o') {harf = '&';sifreli++; }
if (harf == 'u' || harf == 'ü') {harf = '+';sifreli++; }
if (i == 0) Console.WriteLine("{0}", harf);
else Console.Write("{0}", harf);
}
Console.WriteLine("Toplam {0} tane harf şifrelendi {1} tanesi şifrelenmedi", sifreli, cumle.Length - sifreli);
Console.ReadKey();

6 ) Klavyeden girilen bir cümledeki kelime sayısını bulunuz.


string cumle;
Console.Write("Cumleyi Girin : ");
cumle = Console.ReadLine();
string[] kelimeler = cumle.Split(' ');
Console.WriteLine(kelimeler.Length);

7 ) Klavyeden girilen cümleyi tersten ekrana yazdırınız.


string cumle;
Console.Write("Cumleyi Girin : ");
cumle = Console.ReadLine();
for (int i = cumle.Length-1; i >= 0; i--)
{
Console.Write(cumle[i]);
}

8 ) Üç katlı bir bina her katında iki daire var klavyeden her dairede bulunan kişi sayısını girdikten sonra binada kaç kişi olduğunu hesaplayan programın kodlarını yazın.

int[,] dizi = new int[3, 2];
int toplamKisi = 0, evdekiKisi = 0;
for (int i = 0; i < dizi.GetLength(0); i++)
{
for (int y = 0; y < dizi.GetLength(1); y++)
{

Console.Write("{0}. Kat {1}. Dairedeki Kişi sayısını Giriniz : ",i+1,y+1);
evdekiKisi = Convert.ToInt32(Console.ReadLine());
toplamKisi += evdekiKisi;
}
}
Console.WriteLine("Toplam Kişi Sayısı : {0}",toplamKisi);

9) Bir komisyoncu sattığı mallardan fiyatı 50 TL kadar olanlardan %3, daha fazla olanlardan ise %2 komisyon almaktadır. Klavyeden girilen teker teker girilen 5 malın komisyonlarını bulup ekrana yazdıran ve en sonunda da toplam komisyonu ekrana yazdıran programın kodlarını yazınız.

double malFiyati = 0, komisyonMiktari = 0,toplamKomisyon=0;
for (int i = 0; i < 5; i++)
{
Console.Write("{0}. Malın Fiyatını Giriniz : ",i+1);
malFiyati = Convert.ToDouble(Console.ReadLine());
if (malFiyati > 50) komisyonMiktari = malFiyati * 0.02;
else komisyonMiktari = malFiyati * 0.03;
Console.WriteLine("{0}. Mal İçin Komisyon Miktarı : {1}",i+1,komisyonMiktari);
toplamKomisyon += komisyonMiktari;
}
Console.WriteLine("Toplam Komisyon Miktarı : {0}",toplamKomisyon);

10 ) Klavyeden girilen sayıları okuyan ve sayıların toplamı 21′den büyük veya eşit olduğu zaman duran programın kodlarını yazınız.

double sayilar = 0, sayiToplami=0;
do
{
Console.Write("Sayıyı Giriniz : ");
sayilar = Convert.ToDouble(Console.ReadLine());
sayiToplami += sayilar;

} while (sayiToplami<21);
Console.WriteLine("Toplamda Sayılar {0} Rakamına Ulaştı. Yeter Bu Kadar.",sayiToplami);

11 ) Elemanları tam sayı olan bir A dizisinin(20 elemanlı) rastgele sayılar atayan, sonra dizi elemanlarının aritmetik ortalamasını hesaplayan ve elemanlardan kaç tanesinin bu ortalamadan büyük ve küçük olduğunu sayan programın c# kodlarını yazınız.

int[] dizi = new int[20];
Random rnd = new Random();
int diziToplami = 0,ortalamadanBuyuk=0,ortalamadanKucuk=0;
double diziOrtalamasi = 0;
for (int i = 0; i < dizi.Length; i++)
{
dizi[i] = rnd.Next(1, 1000);
diziToplami += dizi[i];
}
diziOrtalamasi = diziToplami / 20;
foreach (int dizim in dizi)
{
if (dizim > diziOrtalamasi) ortalamadanBuyuk += 1;
else ortalamadanKucuk += 1;

}
Console.WriteLine("Ortalama : {0}. Ortalamadan Büyük Eleman Sayısı : {1}, Ortalamadan Küçük Eleman Sayısı : {2}",diziOrtalamasi,ortalamadanBuyuk,ortalamadanKucuk);

12 ) Sadece 1(bir) e ve kendisine bölünebilen sayılara asal sayı denir. 1 den klavyeden girilecek sayıya kadar asal sayıları bulan programın kodlarını yazınız.

int girilenSayi = 0;
Console.Write("1 den Hangi Sayıya Kadar Kontrol Edilecek : ");
girilenSayi = Convert.ToInt32(Console.ReadLine());
for (int i = 1; i <= girilenSayi; i++)
{
int sayac = 0;
for (int y = 1; y <= girilenSayi; y++)
{
if (i % y == 0) sayac += 1;

}
if (sayac == 2) Console.WriteLine("{0} Asal Sayıdır.", i);

}

13 ) Parametre olarak yollanan bir sayının asal sayı olup olmadığını geriye döndüren bir metot yazınız. Eğer sayı asal ise geriye “true” değil ise “false” değeri döndürülecektir.

static bool AsalSayimi(int sayi) {
bool sonuc;
int sayac = 0;
for (int i = 1; i <= sayi; i++)
{
if (sayi%i==0)
{
sayac += 1;
}

}
if (sayac == 2) sonuc = true;
else sonuc = false;
return sonuc;
}

static void Main(string[] args)
{
bool sonuc = AsalSayimi(10);
if (sonuc) Console.WriteLine("Asal Sayı");
else Console.WriteLine("asal sayı değil");
}

14 ) Kendisine parametre olarak gelen cümle içinde yine kendisine parametre olarak gelen kelimeyi arayıp ve eğer kelime var ise geriye true, yok ise false değeri döndüren KelimeVarmi adında metodu yazınız

static bool KelimeVarmi(string cumle,string kelime)
{
bool sonuc;
sonuc = false;
string[] kelimeler = kelime.Split(' ');
foreach (string kelimem in kelimeler)
{
if (kelimem == kelime) sonuc = true;
break;
}
return sonuc;
}

static void Main(string[] args)
{
bool sonuc = KelimeVarmi("osman bizi ışınla","bizi");
if (sonuc) Console.WriteLine("Var");
else Console.WriteLine("YOK");
}

15 ) Kendisi hariç bütün pozitif çarpanları (tam bölenleri) toplamı, yine kendisine eşit olan sayılara “mükemmel sayı” denir. Örneğin 6=1+2+3 ve 28=1+2+4+7+14 gibi. Buna göre klavyeden girilen bir tamsayının “mükemmel sayı” olup olmadığını kontrol eden MukemmelSayi adında bir metot tanımlayınız. Metot eğer sayı mükemmel sayı ise ekrana “Mükemmel Sayıdır” değilse “Mükemmel Sayı DEĞĠLDĠR” yazan programın kodlarını yazınız. ( static void MukemmelSayi(int sayi) )

static void MukemmelSayi(int sayi)
{
int bolenToplami = 0;
for (int i = 1; i < sayi; i++)
{
if (sayi%i==0)
{
bolenToplami += i;
}
}
if (sayi == bolenToplami) Console.WriteLine("mükemmel sayı");
else Console.WriteLine("mükemmel say değil");
}

static void Main(string[] args)
{
MukemmelSayi(6);
}

16 ) Kendisine parametre olarak yollanan dizide kaç tane tek sayı var ise onun âdetini döndüren metodu yazınız.

static void KacTaneTek(int sayi)
{
int tekSayisi = 0;
for (int i = 1; i <= sayi; i+=2)
{
tekSayisi += 1;
}
Console.WriteLine(tekSayisi);

}

static void Main(string[] args)
{
KacTaneTek(12);
}

17 ) Bir boyutlu dizideki en küçük elemanı ve en büyük elemanı bulan programı yazınız

int[] dizi = new int[10];
Random rnd = new Random();
int enKucukEleman = 9999, enBuyukEleman = 1;
for (int i = 0; i < dizi.Length; i++)
{
dizi[i] = rnd.Next(1, 1000);

}

foreach (int eleman in dizi)
{
if (eleman > enBuyukEleman) enBuyukEleman = eleman;
if (eleman < enKucukEleman) enKucukEleman = eleman;
}
Console.WriteLine("En Büyük Eleman : {0}",enBuyukEleman);
Console.WriteLine("En Küçük Eleman : {0}",enKucukEleman);

18 ) Eleman sayısı klavyeden girilerek bir sayısal dizi oluşturulacaktır. Diziye 0-1000 arasında rastgele tek ve 5(beş) in katlarında değer atanacaktır. Diziye değer atandıktan sonra dizi elemanları ekrana yazdırılacaktır. Bu işlemin kodları yazınız.

int elemanSayisi = 0, sonuc = 0, rastgeleSayi = 0;
Console.Write("Dizinin Eleman Sayısını Girin : ");
elemanSayisi = Convert.ToInt32(Console.ReadLine());
int[] dizi = new int[elemanSayisi];
Random rnd = new Random();
for (int i = 0; i < dizi.Length; i++)
{
sonuc = 0;
do
{
rastgeleSayi = rnd.Next(0, 1000);
if (rastgeleSayi % 2 != 0 && rastgeleSayi % 5 == 0)
{
dizi[i] = rastgeleSayi;
sonuc = 1;
}

} while (sonuc!=1);

Console.WriteLine(dizi[i]);
}

19 ) carpimTablosu(int carpan, int adim) => carpim(5,6);
1×5=5 2×5=10 3×5=15 4×5=20 5×5=25 6×5=30


static void CarpimTablosu(int carpan,int adim) {

int sonuc = 0;
for (int i = 1; i <= adim; i++)
{

sonuc = i * carpan;
Console.WriteLine("{0}x{1}={2}",i,carpan,sonuc);
}

}

static void Main(string[] args)
{

CarpimTablosu(5,6);

}

20 ) 20 satır 100 sütundan oluşan iki boyutlu sayısal diziye 0-100 arasında rastgele sayılardan değer atanacaktır. Değer atandıktan sonra her bir satırdaki elemanların toplamını bulup ekrana yazdıran programı yazınız.


int[,] dizi = new int[20, 100];
Random rnd = new Random();
for (int i = 0; i < 20; i++)
{
int satirToplami = 0;
for (int j = 0; j < 100; j++)
{
dizi[i, j] = rnd.Next(0, 100);
satirToplami += dizi[i, j];
}
Console.WriteLine(satirToplami);
}

21 ) 20 öğrenciye ait Vize ve Final bilgileri rastgele atandıktan sonra, her bir öğrencinin ortalamasını hesaplanacak ve ekrana eğer öğrenci 70 ve üzeri ise “Geçti”, değilse “Kaldı” yazacak programı çok boyutlu dizi kullanarak yazınız.

int satirSayisi = 0, sutunSayisi = 0, sutunToplami, enKucukSutunToplami = 999999, enKucukSutun = 0;
Console.Write("Satir sayisini Giriniz : ");
satirSayisi = Convert.ToInt32(Console.ReadLine());
Console.Write("sütün sayısını giriniz : ");
sutunSayisi = Convert.ToInt32(Console.ReadLine());
int[,] dizi = new int[satirSayisi, sutunSayisi];
Random rnd = new Random();

for (int i = 0; i < sutunSayisi; i++)
{
sutunToplami = 0;
for (int j = 0; j < satirSayisi; j++)
{

dizi[j, i] = rnd.Next(0, 100);
sutunToplami += dizi[j,i];
}
if (sutunToplami < enKucukSutunToplami) { enKucukSutunToplami = sutunToplami; enKucukSutun = i + 1; }

}
Console.WriteLine("En Küçük Sütün : {0} | Toplamı ise {1}",enKucukSutun,enKucukSutunToplami);

22 ) Değişken sayıda parametre yollanabilen EnUzunCumle adındaki metot, kendisine yollanan cümlelerden en fazla kelimesi olan cümleyi ekrana yazıp geriye cümlenin kelime sayısını döndürecektir. Bu işlemi yapan metodu tanımlayıp kodlarını yazınız.
Örnek: EnUzunCumle(“merhaba arkadaşlar”,”bugün hava çok güzel”); > geriye 4 döndürecek EnUzunCumle(“yarın hava çok sıcak olacak”,”ali eve gel”,”şampiyon beşiktaş”); > geriye 5 döndürecek

static int EnUzunCumle(params string[] gelCumlem) {
int cumleSayisi = gelCumlem.Length, enCokKelimeSayisi = 0, enkIndex = 0, kelimeSayisi = 0;
for (int i = 0; i < cumleSayisi; i++)
{
string[] kelimeler = gelCumlem[i].Split(' ');
kelimeSayisi = kelimeler.Length;
if (kelimeSayisi > enCokKelimeSayisi) {
enCokKelimeSayisi = kelimeSayisi;
enkIndex = i;
}

}
Console.WriteLine("En Çok Kelime "{0}" Cümlesinde Yer Alıp Toplam Kelime Sayısı {1}.",gelCumlem[enkIndex],enCokKelimeSayisi);
return kelimeSayisi;
}
static void Main(string[] args)
{

EnUzunCumle("osman bizi ışınla","makina soğuk","peki zeki mürende bizi görecek mi");

}

23 ) Karistir adındaki metoda parametre olarak yollanan sayısal bir boyutlu dizinin elemanlarının hepsinin yerlerini rastgele değiştirip geri döndüren metodu yazınız

static int Karistir(params int[] dizimiz) {
int diziElemanSayisi = 0;
diziElemanSayisi = dizimiz.Length;
int[] yeniDizi = new int[diziElemanSayisi];
Random rnd = new Random();
for (int i = 0; i < diziElemanSayisi; i++)
{

if (i == 0) { yeniDizi[i] = dizimiz[rnd.Next(0, diziElemanSayisi)]; }
else {
int sonuc = 0;
do
{
int rastgeleGelen = 0, sayac = 0;
rastgeleGelen = dizimiz[rnd.Next(0, diziElemanSayisi)];

foreach (int diziEleman in yeniDizi)
{
if (diziEleman == rastgeleGelen)
{
sayac += 1;
break;
}

}
if (sayac == 0) {
yeniDizi[i] = rastgeleGelen;
sonuc = 1;

}

} while (sonuc!=1);

}
Console.WriteLine(yeniDizi[i]);
}
return diziElemanSayisi;

}
static void Main(string[] args)
{

Karistir(10,20,30,40,50,60,70);
}

24 ) KarelerinToplami(int sayi) adlı kendini çağıran bir metot yazınız. Metot kendisine parametre olarak yollanan sayıdan bire(1) kadar olan sayıların karelerinin toplamını bulup geri döndürecektir. Eğer parametre olarak yollanan sayı 0 veya negatif ise “Hesaplama Ġşlemi Yapılamaz.” ġeklinde bir mesajı ekrana yazdırıp geriye -1 döndürecektir.

static int KarelerinToplami(int sayi){
int toplam = 0;
if (sayi < 1) { Console.WriteLine("hesaplama işlemi yapılamaz"); toplam = -1; }
else {
for (int i = 1; i <= sayi; i++)
{
toplam += i * i;
}

}
Console.WriteLine(toplam);
return toplam;
}
static void Main(string[] args)
{

KarelerinToplami(5);
}

28 ) Klavyeden girilen 4 basamaklı bir sayıyı ekrana yazdıran SayiOku(int sayi) adında metot yazınız.
Örnek: SayiOku(9853); > dokuz bin sekiz yüz elli üç

static int SayiOku(int sayi)
{
int toplam = 0, binler = 0, yuzler = 0, onlar = 0, birler = 0, kalanSayi=0;
string binlerOkunusu="", yuzlerOkunusu="", onlarOkunusu="", birlerOkunusu="";
binler = sayi / 1000;
if (binler == 1) binlerOkunusu = "bir";
if (binler == 2) binlerOkunusu = "iki";
if (binler == 3) binlerOkunusu = "üç";
if (binler == 4) binlerOkunusu = "dört";
if (binler == 5) binlerOkunusu = "beş";
if (binler == 6) binlerOkunusu = "altı";
if (binler == 7) binlerOkunusu = "yedi";
if (binler == 8) binlerOkunusu = "sekiz";
if (binler == 9) binlerOkunusu = "dokuz";
kalanSayi = sayi - binler * 1000;
yuzler = kalanSayi / 100;
if (yuzler == 1) yuzlerOkunusu = "bir";
if (yuzler == 2) yuzlerOkunusu = "iki";
if (yuzler == 3) yuzlerOkunusu = "üç";
if (yuzler == 4) yuzlerOkunusu = "dört";
if (yuzler == 5) yuzlerOkunusu = "beş";
if (yuzler == 6) yuzlerOkunusu = "altı";
if (yuzler == 7) yuzlerOkunusu = "yedi";
if (yuzler == 8) yuzlerOkunusu = "sekiz";
if (yuzler == 9) yuzlerOkunusu = "dokuz";
kalanSayi = kalanSayi - yuzler * 100;
onlar = kalanSayi / 10;
if (onlar==1) onlarOkunusu="on";
if (onlar==2) onlarOkunusu="yirmi";
if (onlar==3) onlarOkunusu="otuz";
if (onlar==4) onlarOkunusu="kırk";
if (onlar==5) onlarOkunusu="elli";
if (onlar==6) onlarOkunusu="atmis";
if (onlar==7) onlarOkunusu="yetmiş";
if (onlar==8) onlarOkunusu="seksen";
if (onlar == 9) onlarOkunusu = "doksan";
kalanSayi = kalanSayi - onlar * 10;
birler = kalanSayi;
if (birler == 1) birlerOkunusu = "bir";
if (birler == 2) birlerOkunusu = "iki";
if (birler == 3) birlerOkunusu = "üç";
if (birler == 4) birlerOkunusu = "dört";
if (birler == 5) birlerOkunusu = "beş";
if (birler == 6) birlerOkunusu = "altı";
if (birler == 7) birlerOkunusu = "yedi";
if (birler == 8) birlerOkunusu = "sekiz";
if (birler == 9) birlerOkunusu = "dokuz";
Console.WriteLine("{0} bin {1} yüz {2} {3}",binlerOkunusu,yuzlerOkunusu,onlarOkunusu,binlerOkunusu);
return toplam;
}
static void Main(string[] args)
{

SayiOku(5689);
}

31 ) int[,] DiziSutunSirala([,] dizi,int sutunIndex) metodu ile kendisine parametre olarak yollanan dizideki sütunu küçükten büyüğe sıralayan metodu yazınız.

static int DiziSutunSirala(int[,] dizi,int sutunIndex) {
int[] yeniDizi = new int[dizi.GetLength(1)];
int a = 0;
for (int i = 0; i < dizi.GetLength(1); i++)
{
yeniDizi[i] = dizi[sutunIndex, i];
Console.WriteLine(yeniDizi[i]);

}
Console.WriteLine("-------------------------");
Array.Sort(yeniDizi); // Küçükten Büyüğe Sıraladık
Array.Reverse(yeniDizi); // Ters Çevirdik
for (int i = 0; i < yeniDizi.Length; i++)
{
Console.WriteLine(yeniDizi[i]);
}

return a;

}

static void Main(string[] args)
{

int[,] dizi = new int[5, 5];
dizi[3, 0] = 5;
dizi[3, 1] = 15;
dizi[3, 2] = 65;
dizi[3, 3] = 35;
dizi[3, 4] = 45;
DiziSutunSirala(dizi, 3);
}

32 ) int[] IkiSayiArasindaRastgeleSayilariTut(int baslangicSayisi,int bitisSayisi,int adet) metodu ile kendisine parametre olarak yollanan başlangıç, bitiş aralığında rastgele adet kadar sayı tutup bunları bir dizide geriye döndüren metodu yazınız.

static int IkiSayiArasindaRastgeleSayilariTut(int baslangicSayisi, int bitisSayisi, int adet) {
int[] tutulalar = new int[adet];
Random rnd = new Random();
for (int i = 0; i < adet; i++)
{

if (i == 0) { tutulalar[i] = rnd.Next(baslangicSayisi, bitisSayisi); }
else {
int sonuc = 0, rastgelenSayi = 0; ;
do
{
int sayac = 0;
rastgelenSayi = rnd.Next(baslangicSayisi, bitisSayisi);
foreach (int eleman in tutulalar)
{
if (eleman == rastgelenSayi) { sayac++; break; }
}
if (sayac == 0) { tutulalar[i] = rastgelenSayi; sonuc = 1; }

} while (sonuc!=1);

}

Console.WriteLine(tutulalar[i]);
}

return tutulalar[0];
}
static void Main(string[] args)
{
IkiSayiArasindaRastgeleSayilariTut(10, 20, 6);

}

33 ) Kendisine değişken sayıda parametre olarak yollanan rakamlardan oluşabilecek en büyük ve en küçük sayıları oluşturup geriye döndüren int BuyukSayi(………) ve int KucukSayi(……) adındaki metotları yazınız.
Örnek: BuyukSayi(1,5,3,7,8,2,9) > 9875321 KucukSayi(1,5,3,7,8,2) > 123578

static int BuyukSayi(params int[] dizi)
{
int buyuksun = 0;
Array.Sort(dizi); Array.Reverse(dizi);
foreach (int eleman in dizi)
{

Console.Write(eleman);
}

return buyuksun;

}
static int KucukSayi(params int[] dizi)
{
int kucuksun = 0;
Array.Sort(dizi);
foreach (int eleman in dizi)
{

Console.Write(eleman);
}

return kucuksun;

}

static void Main(string[] args)
{
BuyukSayi(1,2,3,4,5,6);

KucukSayi(1, 2, 3, 4, 5, 6);

}

34 ) SutunDegistir([,] dizi,int birinciSutun,int ikinciSutun) metodu ile kendisine parametre olarak yollanan dizideki sütunlardaki elamanları yer değiştiren metodu yazınız.

static void SutunDegistir(int[,] dizi,int birinciSutun,int ikinciSutun)
{
birinciSutun -= 1;
ikinciSutun -= 1;

for (int i = 0; i < dizi.GetLength(0); i++)
{
for (int j = 0; j < dizi.GetLength(1); j++)
{
if (j == dizi.GetLength(1) - 1) { Console.WriteLine(dizi[i, j]); }
else { Console.Write("{0} ",dizi[i, j]); }
}
}

int[] bir = new int[dizi.GetLength(1)];
int[] iki = new int[dizi.GetLength(1)];
for (int i = 0; i < bir.Length; i++)
{
bir[i] = dizi[i, birinciSutun];
iki[i] = dizi[i, ikinciSutun];
dizi[i, ikinciSutun] = bir[i];
dizi[i, birinciSutun] = iki[i];
}
Console.WriteLine("--------------------------");
for (int i = 0; i < dizi.GetLength(0); i++)
{
for (int j = 0; j < dizi.GetLength(1); j++)
{
if (j == dizi.GetLength(1) - 1) { Console.WriteLine(dizi[i, j]); }
else { Console.Write("{0} ", dizi[i, j]); }
}
}

}
static void Main(string[] args)
{
int[,] dizi = new int[5,5];
Random rnd = new Random();
for (int i = 0; i < dizi.GetLength(0); i++)
{
for (int y = 0; y < dizi.GetLength(1); y++)
{
dizi[i, y] = rnd.Next(10, 100);
}
}
SutunDegistir(dizi, 3, 4);

}

35 ) Kendisine parametre olarak yollanan string iki boyutlu dizinin yine kendisine parametre olarak yollanan iki sütunundaki elemanları bir boyutlu başka bir dizide birleştirerek geriye döndüren metodu yazınız. ( 25 puan )

( string[] SutunlariGeriDondur(string[,] dizi, int birinciSutun, int ikinciSutun) )

static string SutunlariGeriDondur(string[,] dizi,int birinci, int ikinci)
{
string don = "";
birinci -= 1;
ikinci -= 1;
string[] yeniDizi = new string[dizi.GetLength(0) * 2];
for (int i = 0; i < yeniDizi.Length; i++)
{
if (i < dizi.GetLength(0))
{
yeniDizi[i] = dizi[i, birinci];
}
else {

yeniDizi[i] = dizi[i - dizi.GetLength(0), ikinci];
}
Console.WriteLine(yeniDizi[i]);
}

return don;
}
static void Main(string[] args)
{
string[,] dizi = new string[4, 4];
dizi[0, 0] = "ali";
dizi[1, 0] = "ayşe";
dizi[2, 0] = "fatma";
dizi[3, 0] = "hayriye";
dizi[0, 3] = "osman";
dizi[1, 3] = "süleyman";
dizi[2, 3] = "murat";
dizi[3, 3] = "hüso";
SutunlariGeriDondur(dizi, 1, 4);

}

36 ) string KelimeBul(string cumle, int kelimeSirasi) adında bir metot tanımlanacaktır. Metot a parametre olarak bir cümle ve bir sayı yollanacaktır. Metot geriye cümlenin istenilen sıradaki kelimesini geri döndürecektir. Bu özelliklerde KelimeBul adında bir metot tanımlayınız

static string KelimeBul(string cumle,int kelimeSayisi)
{
string don = ""; kelimeSayisi -= 1;
string[] kelimeler = cumle.Split(' ');
Console.WriteLine(kelimeler[kelimeSayisi]);

return don;
}
static void Main(string[] args)
{

KelimeBul("osman bizi ışınla",1);

}

37 ) İki boyutlu 10×10 elamanlı bir dizi tanımlayınız ve diziye 0-255 arasında rastgele değer atandıktan sonra DiziyeEsikDegeriUygula(int[,] gelenDizi,int esikDegeri) metodu ile değer atanan dizi ve 0-255 arasında bir sayı parametre olarak yollanacaktır(esikDegeri). Dizinin her bir elemanı yollanan değer ile kıyaslanacaktır. Eğer dizinin eleman değeri yollanan değerden büyük veya eşit ise eleman değeri 255 yapılacak değil ise 0 yapılacaktır. Bu işlemleri yapan metotları yazınız.


static void DiziyeEsikDegeriUygula(int[,] gelenDizi,int esikDeger)
{

for (int i = 0; i < gelenDizi.GetLength(0); i++)
{
for (int j = 0; j < gelenDizi.GetLength(1); j++)
{
Console.Write("Eski Değeri {0} | ",gelenDizi[i,j]);

if (gelenDizi[i, j] >= esikDeger)
{
gelenDizi[i, j] = 255;
}
else
{
gelenDizi[i, j] = 0;
}

Console.WriteLine("Yeni Değeri : {0}",gelenDizi[i,j]);
Console.WriteLine("------------");
}

}

}
static void Main(string[] args)
{

int[,] dizi = new int[10, 10];
Random rnd = new Random();
for (int i = 0; i < dizi.GetLength(0); i++)
{
for (int j = 0; j < dizi.GetLength(1); j++)
{
dizi[i, j] = rnd.Next(0, 255);
}
}
DiziyeEsikDegeriUygula(dizi, 100);

}

38 ) Takimlar adlı dizi içerisinde 18 tane takım bulunmaktadır(Takım1, Takım2, vb.). Bu takımlar arasında yapılacak olan ilk maçlar için 18 tane takımı eşleştiren bir program yazınız.


static void FiksturYap(string[] dizi)
{
Random rnd = new Random();
string[] evSahibi = new string[dizi.Length / 2];
string[] deplasman = new string[dizi.Length / 2];
for (int i = 0; i < evSahibi.Length; i++)
{
if (i == 0) { evSahibi[i] = dizi[rnd.Next(0, dizi.Length)]; }
else {
int durum = 0;
do
{
int sayac = 0;
string rastgeleGelen = "";
rastgeleGelen = dizi[rnd.Next(0,dizi.Length)];
foreach (string takim in evSahibi)
{

if (takim == rastgeleGelen) { sayac++; break; }

}
if (sayac == 0) { evSahibi[i] = rastgeleGelen;durum = 1; }

} while (durum!=1);

}

}

for (int i = 0; i < deplasman.Length; i++)
{
int durum = 0;
do
{
int sayac = 0;
string rastgeleGelen = "";
rastgeleGelen = dizi[rnd.Next(0, dizi.Length)];

foreach (string takim in deplasman)
{

if (takim == rastgeleGelen) { sayac++; break; }

}
foreach (string takim in evSahibi)
{

if (takim == rastgeleGelen) { sayac++; break; }

}
if (sayac == 0) { deplasman[i] = rastgeleGelen; durum = 1; }

} while (durum != 1);

Console.WriteLine("ev Sahibi {0} | Deplasman {1}",evSahibi[i],deplasman[i]);
}

}
static void Main(string[] args)
{

string[] dizi = new string[18];
dizi[0] = "a";
dizi[1] = "b";
dizi[2] = "c";
dizi[3] = "d";
dizi[4] = "e";
dizi[5] = "f";
dizi[6] = "g";
dizi[7] = "h";
dizi[8] = "i";
dizi[9] = "j";
dizi[10] = "k";
dizi[11] = "l";
dizi[12] = "m";
dizi[13] = "n";
dizi[14] = "o";
dizi[15] = "p";
dizi[16] = "r";
dizi[17] = "s";
FiksturYap(dizi);

}

39 ) N elemanlı bir boyutlu dizinin elemanlarına 1-50 arasında rastgele değer aktarımı yapılacaktır. Değerler atandıktan sonra ;Her bir eleman değerinden dizi içinde kaçar tane olduğu ekrana yazdırılacaktır.3 ve 5 in katlarını 50 elemanlı başka bir diziye sırayla kopyalayan kodları yazınız.

int[] ucvebes = new int[50];
int eleman = 0, say = 0;
Random rnd = new Random();
Console.Write("Eleman Saysını Giriniz : ");
eleman = Convert.ToInt32(Console.ReadLine());
int[] dizi = new int[eleman];
for (int i = 0; i < eleman; i++)
{
dizi[i] = rnd.Next(1, 50);

}

foreach (int elm in dizi)
{
int sayac = 0;
foreach (int elma in dizi)
{
if (elm == elma) { sayac++; }
}
Console.WriteLine("{0} sayısında {1} tane", elm, sayac);
}

for (int i = 0; i < dizi.Length; i++)
{
if (dizi[i]%15==0)
{
ucvebes[say] = dizi[i];
say++;

}
}

40 ) static string[] TekleriGetir(int[] dizi) kendisine parametre olarak gelen diziden elemanları tek olanları geriye döndüren metodu yazınız.

static string TekleriGetir(int[] dizi) {
string sayac = "";
foreach (int sayi in dizi)
{
if (sayi % 2 != 0) { Console.WriteLine(sayi); }
}

return sayac;
}

static void Main(string[] args)
{
int[] dizi = new int[10];
for (int i = 0; i < dizi.Length; i++)
{
dizi[i] = i;
}
TekleriGetir(dizi);

}

41 ) Kendisine değişken sayıda parametre yollanan kelimelerden en uzun kelimeyi bulup geri döndüren “EnUzunKelime ” adındaki metodu yazınız.

static string EnUzunKelime(params string[] kelimeler)
{
string don = "";
int enUzunKelimeIndexi = 0, euks = 0;
string k = "";
for (int i = 0; i < kelimeler.Length; i++)
{
k = kelimeler[i];
if (k.Length > euks) {
euks = k.Length;
enUzunKelimeIndexi = i;
}
}
Console.WriteLine("En Uzun Kelime {0} Karakter ile {1} Oldu",euks,kelimeler[enUzunKelimeIndexi]);

return don;
}
static void Main(string[] args)
{
EnUzunKelime("osman", "le", "barcelonaaaa", "sişarp");

}

42 ) Kendisine değişken sayıda parametre yollanan dizideki her bir elemanı bir kelime olan dizinin en kısa kelimsini ekrana yazıp geriye döndüren “EnKisaKelime” adındaki metodu yazınız.

static string EnKisaKelime(params string[] kelimeler)
{
string don = "";
int enKisaKelimeIndexi = 0, ekks = 99999;
string k = "";
for (int i = 0; i < kelimeler.Length; i++)
{
k = kelimeler[i];
if (k.Length < ekks) {
ekks = k.Length;
enKisaKelimeIndexi = i;
}
}
Console.WriteLine("En Uzun Kelime {0} Karakter ile {1} Oldu",ekks,kelimeler[enKisaKelimeIndexi]);

return don;
}
static void Main(string[] args)
{
EnKisaKelime("osman", "lele", "barcelonaaaa", "sişarp");

}

43 ) string ParcaGetir(string kelime,int baslangic,int bitis)
ParcaGetir(“merhaba”,1,3) > mer ParcaGetir(“ali”,2,3) > li ParcaGetir(“ali”,1,5) > hiçbir değer geri döndürmeyecek

static void ParcaGetir(string kelime, int baslangic,int bitis) {

baslangic -= 1;
for (int i = baslangic; i < bitis; i++)
{
Console.Write(kelime[i]);
}

}

static void Main(string[] args)
{

ParcaGetir("osman", 1, 3);

}

Bu İçeriğe Tepkin Ne Oldu?
  • 17
    ba_ar_l_
    Başarılı
  • 5
    gayet_yi
    Gayet İyi
  • 8
    te_ekk_rler
    Teşekkürler
  • 5
    anlamad_m
    Anlamadım
  • 14
    yetersiz
    Yetersiz
İlginizi Çekebilir
Subscribe
Bildir
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

255 Yorum
Inline Feedbacks
View all comments
ezine

Kullanıcıya iki basamaklı ve bir basamaklı rastgele iki sayının toplamını soran ve verdiği cevabı kontrol eden programı yazınız.
Bunu nasıl yazabilirim yardımcı olursanız sevinirim.

Akif

Hocam sorularda &lt ve &amp gibi ifadeler var ama bende tanımsız olarak algılıyor. Belki sürüm düşüklüğündendir ama ben bunları kullanmak için onları ne (nasıl bir kod ile) ile düzeltebilirim?

Bilişim Öğretmeni

uyarı için teşekkürler editör kaynaklı bir sorundu, düzeltildi iyi çalışmalar

Öğrenci

Şöyle soruları zorlama yerine öğrencilere uygun anlatımlı olsa ?

Semih

Işınla Bizi Osman

Skull Bator

Hocam Benim Sorunum Veri Tabanına veri attıktan sonra form2 ekranı açılıyor ama form1 deki textboxlar siliniyor bunu nasıl engelleyebilirim

BilisimOgretmeni

kodları görmeden bir şey demem mümkün değil

Mehmet Konaç

nrsncomment image e

Hocam bunun nesne deki kodları nedir

1 8 9 10