search
Categories
Sponsors
VirtualMetric Hyper-V Monitoring, Hyper-V Reporting
Archive
Blogroll

Badges
MCSE
Community

Cozumpark Bilisim Portali
Posted in Windows 7, Windows Powershell | No Comment | 4,132 views | 22/05/2009 23:31

Eşanjör Projelendirme Programını başarılı bir şekilde Powershell’e çevirdim. Böylece Windows Vista ya da Windows 7 kullanan tüm bilgisayarlarda, herhangi bir ek yazılıma gerek kalmadan, herhangi bir lisans ücreti ödemeden, Eşanjör yazılımı çalıştırılabilecek. Matlab ile Powershell arasındaki tek fark ise 3 saniye oldu. Powershell matlab’e göre 3 saniye daha geç sonuç verdi. Fakat küçük işlemler için 3 saniye gibi süreler bir sorun teşkil etmeyecektir. Powershell’e çevirirken, bazı yerlerde zorlanabilirsiniz. Örneğin üsleri şu şekilde almanız gerekiyor.

1
$Nusd = 1.86*[System.Math]::Pow(($Resd*$Prsicak*$Dh/$L), 0.33)

Görebildiğiniz gibi Pow komutu ile işlemin 0.33 katını alabildim. Aslında biraz karışık gibi görünse de bir kaç kez yapmanız halinde alışıyorsunuz programlama mantığına. Kısacası Powershell dururken, Matlab’e dünya para vermenin hiç gereği yok. Matlab, bir matematik programı olarak mükemmel bir program. Fakat özel paket programların gerekmediği, çözümü için iterasyonun ve basit if/else döngülerinin yeterli olduğu matematiksel problem çözümleri için Matlab’e gerek duymadan Powershell’i kullanabilirsiniz.


Posted in Windows 7, Windows Powershell | No Comment | 3,807 views | 22/05/2009 20:51

Windows 7 ya da Windows Vista kullanıyorsunuz diyelim. İterasyon ile çözmeniz gereken bir problem var. Acaba Matlab kullanmak zorunda mısınız? Powershell varsa tabiki hayır! Windows 7 ile birlikte gömülü olarak gelen Powershell, Matlab gibi programlara olan ihtiyacınızı bir bakıma ortadan kaldırıyor. Bir bakıma diyorum çünkü benim yaptığım işlem sadece iterasyon gerektiren basit matematiksel problemler. Matlab’in kolaylığına ve mükemmelliğine Powershell ile asla erişemezsiniz fakat benim burada yaptığım, “Acaba yüksek matematik gerektirmeyen işlemler için Matlab gerekli mi?” sorusuna cevap aramak.

Matlab üzerinde Eşanjör Projelendirmesi yapmıştım. Şimdi bu projeyi, biraz zaman ayırarak, Powershell üzerinde yapmaya başladım. Peki Powershell neden tercih sebebim olsun ki? Nedeni aslında çok basit. Birincisi Powershell bedava! İkincisi yüklemesi çok kolay. Windows Update ile birlikte yükleyebildiğiniz bir yazılım. Üçüncüsü boyutu çok ufak. Matlab için DVD indirmeniz gerekirken, Powershell’i kurmak için 2 MB’lık bir msi paketi indirmeniz yeterli oluyor. Düşünün ki yazdığınız program, tüm Windows işletim sistemleri üzerinde ek bir programa gerek kalmadan çalışabilsin. Ne güzel değil mi? Böylece kimseye “Sende Matlab var mı?” gibi sorular sormanıza gerek kalmayacak. Belki tek soracağınız, “Windows kullanıyor musun?” olacaktır.

matlab-to-powershell

Windows 7 ile birlikte gelen Powershell Editörü ile Matlab komutlarını Powershell’e çeviyorum. Çevirme işlemi gayet kolay da. Aslında Matlab dili ile Powershell dili arasında pek de bir fark yok. Hatta Powershell bazı yönlerden daha kolay da diyebilirim. İterasyon işlemini, For/while döngülerini Powershell üzerinde rahatça yapabiliyorsunuz. Sadece kök alma işlemi için .NET component’e ihtiyacınız olacak. Fakat kök aldırma işlemini de Powershell üzerinde yapabilirsiniz aslında. Daha önce nasıl kök alınabileceğini anlatmıştım.

1
2
3
4
5
# Ortalama Sicakliklar
$Tmo = ([int]$Tog+[int]$Toc)/2
$Tms = ([int]$Tsg+[int]$Tsc)/2
# Logaritmik Ortalama Sicaklik Farki
$DeltaTm = (([int]$Tsg-[int]$Tog)-([int]$Tsc-[int]$Toc))/[System.Math]::Log(([int]$Tsg-[int]$Tog)/([int]$Tsc-[int]$Toc))

Gördüğünüz gibi Logaritma almak için Log yazacağıma [System.Math]::Log yazmak zorunda kaldım. Bu da çok zor bir iş değil. Sonuçta bedava bir yazılım üzerinde kodunuzu yazıyorsunuz ve tüm kullanıcılarda çalışacak bir program olacak bu. Powershell’de “get-help while -full” şeklinde yazarak, istediğiniz döngüler hakkında ayrıntılı bilgiye sahip olabilirsiniz. Kolay gelsin.