C# Mükemmel Sayı Testi

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 tam sayının “mükemmel sayı” olup olmadığını kontrol eden C# programını kodlarını yazınız




C# Console Komisyon Hesaplama

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ı yazınız.




(C# Console, Diziler) Meteoroloji Sıcaklık Analizi

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.




C# Console Toplama İşlemi Oyunu

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ı 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 C# kodlarını yazınız.

Toplama oyunu
https://github.com/saitorhan/SizdenGelenler03
0 forks.
0 stars.
0 open issues.
Recent commits:




C# Sayıyı Basamaklarına Ayırma

Klavyeden girilen herhangi bir sayıyı basamaklarına ayırıp her bir basamak değerini ve sayının kaç basamaklı olduğunu ekrana yazan C# programını yazın? Not: Hazır string ya da char fonksiyonlar kullanmayın. Girilen sayının basamak sayısı belli değildir. Her hangi bir sayı girildiğinde program doğru bir şekilde çalışmalıdır. Örneğin 123 girilmişse programın ekran çıktısı: 1 tane 100’luk, 2 tane 10’luk, 3 tane 1’lik; sayı 3 hanelidir şeklinde olmalıdır.

Sayıyı basamaklarına ayırma
https://github.com/saitorhan/SizdenGelenler02
0 forks.
0 stars.
0 open issues.
Recent commits:




C# Rastgele Sayı Dizisi Oluşturup Ortalamaya En Yakın X Adet Sayıyı Ekrana Gösterme

Klavyeden girilen başlangıç ve bitiş değerleri arasında, klavyeden girilen sayı kadar rastgele tek sayı üretip bu sayılardan ortalamaya en yakın olan x adet sayıyı ekrana yazdıran C# programını yazınız?




PowerShell İle İşletim Sistemine Göre AD Bilgisayar Sayılarını Bulma

Merhaba arkadaşlar,

Sistem yöneticilerinin özellikle lisans denetimleri öncesinde ve anti virüs yazılımları gibi bütün makinelere kurulacak sistemler öncesi saha analizinde işletim sistemlerine göre bilgisayar sayıları ihtiyaç duydukları hayati bilgilerden biri olabiliyor. AD’ye ilişkin hemen hemen her soruya cevap veren PowerShell ile bunun cevabını vermek de son derece basittir. Aşağıdaki powershell scripti ile yukarıdaki ekran görüntüsünde göründüğü gibi bilgisayar sayıları kolaylıkla elde edilebilir.

# Import AD module
Import-Module ActiveDirectory


# Domain adını bulma
$DomainName = (Get-ADDomain).NetBIOSName 

# Kaç gün öncesine kadar oturum açmış makineleri sorgula
$days = 30
$lastLogonDate = (Get-Date).AddDays(-$days).ToFileTime()


# AD sorgulama
$Computers = @(Get-ADComputer -Properties Name,operatingSystem,lastLogontimeStamp -Filter {(OperatingSystem -like "*Windows*") -AND (lastLogontimeStamp -ge $lastLogonDate)})
foreach($Computer in $Computers)
{
    $Computer.OperatingSystem = $Computer.OperatingSystem -replace '®' -replace '™' -replace '专业版','Professional (Ch)' -replace 'Professionnel','Professional (Fr)'
}


$Computers | Group-Object operatingSystem | Select Count,Name | Sort Name | Out-GridView




Programlama Hassasiyet İpucu: Noktalı Sayı Kullanımı

Noktalı sayı kullanılırken özellikle eşitlik karşılaştırmalarında kurguladığımız senaryo gereği iki sayının birbirine eşit olma durumu için bir tolerans aralığı seçilmelidir. Aşağıda örnek bir senaryo üzerinde ne demek istediğimizi anlatmaya çalışalım.

Örneğin demir çelik endüstrisi için bir otomasyon geliştiriyorsunuz ve birim ağırlık olarak kg kullanıyorsunuz. Böyle bir senaryoda 5000 kg ve 5000,005 kg aslında birbirine eşit kabul edilebilir bir aralıktır. Ama programlamada 5000 kg içerisinde aradaki 5 gramlık farktan ötürü eşitlik şartı sağlanmamaktadır ve eşitlik durumunda çalışması gereken kodlar çalışmayacaktır. Bunun için direk if(sayi1 == sayi2) şeklinde bir karşılaştırma değil de aşağıdaki gibi bir tolerans payı ile karşılaştırma yapılmalıdır.

const double tolerans = 0.005;
double sayi1 = 5000;
double sayi2 = 5000.005;

if (Math.Abs(sayi2 - sayi2) <= tolerans)
{
    // eşitlik durumu için çalışacak kodlar
}

Kodumuzda if şartı içerisinde aradaki toleransı (+) ve (-) durumlarının ikisinde de sağlamak için aradaki farkın mutlak değerini alıp tolerans değerinden küçük veya eşit olup olmadığının sorguluyoruz.




Programlama Performans İpucu: Döngüler (while – for – foreaach)

Döngüler (while – for – foreaach) içerisinde atama yapılan değişkenlerin tanımlanması döngü içerisinde değil de döngü dışında tanımlanması yapılırsa performans elde edilir. Örneğin:

for(int i = 0; i < 10000; i++)
{ 
int b = i *2;
} 

Şeklinde b değişkeni tanımlandığında her döngüde b değişkeninin geçerlilik ömrü sona erdiğinden bellek üzerinden silinir ve b için bellek üzerinde yeni alan tahsisi yapılır, ancak bunun yerine geçerlilik ömrü bütün döngü için geçerli olacak şekilde tanımlanırsa bellek üzerinde alanın silinip yenisinin oluşturulması için gereken işlemlerden tasarruf sağlanır.

int b;
for(int i = 0; i < 10000; i++)
{ 
b = i *2;
} 




Programlama Performans İpucu: (&&) ve (||) Operatörleri Kullanılırken

  1. VE (&&) operatörünün doğru sonucu dönmesi için bütün şartlarının doğru olması gerekmektedir. Bu sebeple && operatörü kullanılırken karşılaşılan ilk yanlış şartta geriye kalan şartlar sorgulanmadan program sonraki satıra geçecektir. && operatörünün bu özelliğinden dolayı yanlış olma ihtimali yüksek olan şartlar başta yazılırsa performans artacaktır.
  2. VEYA (||) operatörünün doğru sonucu dönmesi için herhangi bir şartın doğru olması yetmektedir. Bu sebeple || operatörü kullanılırken karşılaşılan ilk doğru şartta geriye kalan şartlar sorgulanmadan program sonraki satıra geçecektir. || operatörünün bu özelliğinden dolayı doğru olma ihtimali yüksek olan şartlar başta yazılırsa performans artacaktır.