cssaddons.com
jQuery kütüphanesinin sınırlarının zorlandığı bir site. Üstüne üstlük yapımcıları da Türk. Ahmet Küçükoğlu tarafından kuurlan cssaddons.com 2009 yılının Aralık ayından beri yayın hayıtını sürdürüyor. Site içerisinde paylaşılan hemen hemen bütün uygulamalarda Web 2.0 teknolojisini görebilirsiniz.
PHP’de eregi Kullanımı
Tanım : Değişken içerisinde verilen ifadeyi arar.
Oldukça kullanışlı ve basit bir fonksiyon daha. Sadece yapmanız gereken değişkeni ve aramak istediğiniz ifadeyi girmek. Gerisi Kendiliğinden geliyor zaten.
Örnek kullanım,
<?php
$degisken = 'Bu bir deneme yazısıdır';
if (eregi('deneme', $degisken)) {
echo 'Değişkenimiz de deneme kelimesi geçmektedir';
}
else {
echo 'Değişkenimiz deneme kelimesini içermemektedir.';
}
?>
Cronjob Kullanımı ve Zaman Ayarlaması
Cronjob, anlam olarak zamanlanmış dosyaların sunucu tarafından arka planda çalıştırılmasıdır.
Çoğu panelde bu işlem için ayrılmış özel kısımlar vardır. Bu alanlara gerekli bilgileri girdikten sonra sistem onu siz aksini belirtinceye kadar zamanı geldikçe çalıştırır.
En yaygın olarak otomatik bot diye tabir ettiğimiz, sitelerimize içerik eklemede kullanılır.
Bir kaç resimli örnek ile konuyu pekiştirelim.

bu cpanel için klasik bir cronjob ekleme alanıdır.
minute, hour, day, month, weekday, command gibi doldurulması zorunlu olan 6 kısımdan oluşur. Command alanı hariç diğer kısımlara az çok ne girilmesi gerekiği az çok bellidir gibidir.
Alttaki resimde görünen cronjob bize şunu anlatıyor, “verdiğim dosyayı haftanın her günü, her ay, her gün, saat 2 ve 22 de, 10. dakikada çalıştır”

Büyümesi için üzerine tıklayın
Resim de görüldüğü üzere bazı alanlarda * simgesini kullandık. * simgesi cronjob da her demektir diyebiliriz. Mesela bir ayın her gününde botu çalıştırmak istiyorsak, tek tek günleri girmek yerine o alana sadece * yazmamız yeterlidir.
Birde */2 gibi bir kullanım vardır. Bunun manası da her 2 de bir çalıştır. Mesela bir botumuz var ve bunu her 20 dakikada bir çalıştırmak istiyorsak, dakika kısmına */20 yazmamız yeterli olacaktır.
command satırı için kullanılan kod “php /dosyaygidentamyol/dosya.php” bunun yanısıra php yerine wget ve lynx gibi komutlarda kullanılabilir fakat, gördüğüm kadarıyla en stabil çalışanı php.
Eğer dizininize giden tam yolu bilmiyorsanız en kolay yolu sitenize bir php dosyası göndermektir. php dosyasının içerisine,
<?php phpinfo(); ?>
yazıp adres satırından çalıştırırsanız, gelen sayfa içerisinde DOCUMENT_ROOT satırının karşısında tam yol adresinizi görebilirsiniz.
Gene Bir c# Vizesiyle Karşı Karşıyayız :)
Çok uzun zaman olmuştu bloga yazı eklemeyeli, oldukça yoğun dönemlerden sonra sonunda okula geldim bir de baktım ne göreyim vizeler gelmiş :) İlk vize geçen yıl vizesinden 5 aldığım programlama I vizesi. Geçen yıl ile bu yıl arasında oldukça fark olduğunu vizeye çalışırken gördüm.
şimdi bu yazının devamına Turgay hocanın biz çözelim diye paylaştığı soruları ve c# çözümlerini ekleyeceğim. Bütün örnekler denenmiş olup %100 çalışmaktadır.
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>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 : ");
for (int i = cumle.Length-1; i >= 0; i--)
{
harf = cumle[i];
if (harf == 'a') harf = '?';
if (harf == 'e') harf = '*';
if (harf == 'ı' || harf == 'i') harf = '=';
if (harf == 'ö' || harf == 'o') harf = '&';
if (harf == 'u' || harf == 'ü') harf = '+';
if (i == 0) Console.WriteLine("{0}", harf);
else Console.Write("{0}",harf);
}
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);
}
25 ) Faktoriyel hesabı yapan recursive fonksiyon yazınız
Önce recursive nedir öğrenmem lazım
26 ) Bir Sayının kuvvetini alan recursive fonksiyon yazınız
Önce recursive nedir öğrenmem lazım
27 ) 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.
[/c]
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);
}





