Örneğimiz bir yatay kaydırma çubuğunu sürekli olarak ileri geri hareket ettirmektedir. Başla butonuna basınca buton üzerindeki yazı bitir olmakta ve kaydırma çubuğu hareket etmekte, tersi durumda ise buton üzerindeki yazı başla olmakta ve kaydırma çubuğu durmaktadır. Bunun için form üzerine aşağıdaki resimde görüldüğü gibi kontrolleri yerleştirelim.

Eklediğimiz kontrollerle ilgili properties penceresinde bir kaç ayar yapmamız gerekiyor. HScrollBar1 nesnesinin value değerini 1 yapmalıyız. Bu ilk başlangıç değeri olacaktır. Timer1'in interval değerini 500, enabled özelliğini ise True yapacağız.

Daha sonra aşağıdaki kodları formumuza yazalım.

Public Class Form1

Dim son As Boolean

Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

Timer1.Interval = HScrollBar1.Value

End Sub

Private Sub HScrollBar1_Scroll(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ScrollEventArgs) Handles HScrollBar1.Scroll

Timer1.Interval = HScrollBar1.Value

If HScrollBar1.Value = HScrollBar1.Maximum Then son = True

End Sub

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

If son = False Then

TextBox1.Text = HScrollBar1.Value

If HScrollBar1.Value = 100 Then

son = True

Exit Sub

End If

HScrollBar1.Value = HScrollBar1.Value + 1

Else

TextBox1.Text = HScrollBar1.Value

If HScrollBar1.Value = 1 Then

son = False

Exit Sub

End If

HScrollBar1.Value = HScrollBar1.Value - 1

End If

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

If Button1.Text = "Başla" Then

Button1.Text = "Bitir"

Timer1.Enabled = False

Else

Button1.Text = "Başla"

Timer1.Enabled = True

End If

End Sub

End Class

Formumuz yüklendiğinde Timer1.Interval = HScrollBar1.Value komutsatırı ile timer1'in zaman aralığı ile scrollbar'ın o anki değeri birbirine eşitlenmektedir. 

Formumuzun genel tanımlama bölümünde son adlı bir değişkeni boolean olarak tanımladık. Bu değişkeni kaydırma çubuğunda hareket esnasında sona gelinip gelinmediğini anlamak için kullanacağız.

Kaydırma çubuğunun hareketi esnasında sona gelinip gelinmediğini kontrol etmek için

If HScrollBar1.Value = HScrollBar1.Maximum Then son = True komut satırını kullanıyoruz.

Timer1'in içerisindeki kodları inceleyelim:

If son = False Then eğer son değişkeni false ise kaydırma çubuğunda sona gelinmemiştir. O halde işlem yapacağız.

If HScrollBar1.Value = 100 Then Burada bir kontrol daha yapacağız. Eğer kaydırma çubuğunun değeri 100 ise kaydırma çubuğunda sona gelinilmiştir.

son = True

Exit Sub    Bu durumda son değişkenini true yap ve alt programdan çık.

Kaydırma çubuğunun değeri 100 değilse

HScrollBar1.Value = HScrollBar1.Value + 1   kaydırma çubuğunun değerini 1 arttır.

Eğer son değişkeninin değeri true ise sona gelinmiştir bu defa geriye doğru hareket edilecek.

If HScrollBar1.Value = 1 Then  Burada bir kontrol daha yapıyoruz. Eğer başa gelindi ise

son = False

Exit Sub  son değişkenini false yap ve alt programdan çık.

Eğer kaydırma çubuğunun değeri 1 değilse başa gelinmemiştir. Bu durumda

HScrollBar1.Value = HScrollBar1.Value - 1 komut satırı ilse kaydırma çubuğunun değerini azaltmaya devam ederiz.

 

Butonun tıklama olayında ise şu mantığı kullanıyoruz. Eğer Button1'in başlığı başla ise bitir yap ve timer'ı duraklat, değilse başlığını başla yap ve timer'ı başlat.

Son olarak örneğimizin proje dosyasını verelim:

http://www.volkanaktas.com/PrgDosya/kayanscrollbar.rar

Etiketler : Etiket Yok
Kategoriler : VB.Net
Yorumlar : 0 Yorum Yorum Yaz

Programcılıkta sabahlamanın verdiği huzur ve tatmin çok meşhur. Programcılar sabaha kadar çalışma konusunda herkesi şaşırtan derecede istekli ve beceriklidir. Bu gece çalışması boyunca beyin bir “akış” yakalayarak saatlerin su gibi geçtiği bir çalışma ortamı oluşur. Bu çalışma sırasında beyin en derin konsantrasyon düzeylerine erişir ve genellikle zor programlar bu kesintisiz, onlarca saat süren çalışmalarda ortaya çıkar.

Beyin bu stilde çalışırken kişilerin mutlu oldukları, mutluluk düzeylerinin arttığı bilimsel çalışmalarla gözlemlenmiştir. Bu çalışmalar eski Chicago Üniversitesi Psikoloji Bölüm Başkanı Mihaly Csikszentmihalyi tarafından yapılmıştır. Çalışmalarda çeşitli disiplinlerden yüzlerce kişinin günlük uğraşları incelenmiş ve bu sırada “mutluluk” düzeyleri gözlemlenmiştir. Bu çalışmaların programcılar tarafındaki bulguları ise ilginçtir. Her ne kadar programcılık bir bilim dalı (Computer Science), bir mühendislik (Software Engineering) olarak düşünülse de programcıların beyninin sanatçıların çalışma stiline sahip olduğu ortaya çıkmıştır. Programcılık sırasında beyin bir “akış” moduna geçmekte, etraftan ilişkisini kesmekte ve bir probleme günlerce konstantre olabilmektedir.

Başarılı programcıların çoğu konsantrasyon yetenekleri ile çevrelerini şaşırtır. Saatlerce sıkılmadan bir ekran başında vakit harcayabilirler. Bu saatler bir çok kez günlere kadar uzayabilir. Yaşamsal faaliyetler dışında hemen hemen her şeyden izolasyon gereklidir. Microsoft’ta Office yazılım geliştirme ekibinden bir programcının kendini odasına kilitleyip “bitmeden çıkmayacağım” demesi, Bill Gates’e bile kapıyı açmaması meşhurdur. Bu olay daha sonra Douglas Coupland’ın Microserfs (1996) kitabına konu olmuştur. Bu sırada kendini odaya kilitleyen programcının arkadaşlarının süper marketten gidip yassı yiyecekler alması ve kapının altından odaya atmaları, programcılar arasındaki dayanışmanın güzel ve sevimli bir örneği.

Programcının kritik kodları yazmak için ihtiyaç duyduğu “akış” modunu koruyabilmesi için izolasyona ihtiyacı bulunur. Bu izolasyon arttıkça çalışma derinleşir, ilk önce beyinde yazılmak istenen programın çatısı oluşur, problem önce beyinde çözülür, daha sonra beyinde çözülen bu problem koda çevrilir. Programcının beyni pencereden dışarıyı seyrederken ya da gözler sabit bir yere bakıp dalıp gittiği zaman bu problem çözülmeye çalışılır. Hatta programcının beyni bu problemi uyurken, araba sürerken ve diğer başka monoton işleri yaparken ele almaya devam eder. Bu durumda sıfırdan ve baştan yazılan bir programa bakıldığında kodlama toplam sürenin oldukça az bir bölümünü almaktadır.

Bu çalışma sırasında beyin son derece karmaşık bir aktivite içerisine girmiştir. Var olmayan bir çözümü oluşturmak için “kreatif” süreç başlamıştır. Bu süreç duyu organlarını izole etmiş ve yaratıcılığa yoğunlaşmıştır. Bu süreç sırasında programcı onlarca konuda karar vermektedir. Değişken isimlerinden, akış yöntemlerine, parametrelerin cinsinden, kullanıcı ara birimine kadar bir programcı sürekli bir “karar alma” uğraşısı içerisindedir. Programcılar bu nedenle bir günde yüzlerce kararın altına imza atma becerisine sahip iyi birer karar vericidirler.


Tam bu yoğun programlama sırada birisinin programcının omzuna dokunduğu zaman bir “ara verme” operasyonu başlar. Bu ara verme operasyonu tam gaz giden bir arabada aniden frene basma gibidir. Derinleşen “kreatif” süreç derinliğini yitirir ve duyu organları “açılarak” omuza dokunan kişi ile iletişime geçilir. Bu geçiş çoğu zaman o kadar kolay olmamakta ve programcılar bu nedenle zor iletişim kurulan kişiler olarak görülmektedir. Bir soru sorulmaktadır. Eğer bu soru şu an üzerinde çalışılan konuyla ilgili ise mevcut kreatif süreç bu soruyu cevaplamakta kullanılır. Sorunun “bağlam” ile ilgili olması, sürecin durdurulmasını gerektirmez. Örneğin bir veri tabanı tasarımında yandaki programcı bir tablodaki alanın ne işe yaradığını sorduğunda süreç durdurulmadan cevap verilebilir. Cevabın verilmesi için gerekli bütün malzeme, zaten o sırada beynin çalışma bölgesine getirilmiş hazır halde bulunmaktadır.

Ama eğer bu soru bambaşka konularla ilgiliyse: “Bu iş ne zaman bitecek”ten tutun da , “dün maçı seyrettin mi?” ye kadar değişik açılardan gelen bir soru olabilir. Bu durumda ancak bu kreatif süreç durdurularak bu soruya cevap verilebilmektedir. Ya da çoğu programcı bu soruyu “duyacak” ama “algılamayacaktır”. O an durumu kurtaracak bir cevap vereceklerdir: “yarına biter” vs gibi. Yapılan basittir: kreatif süreç bölünmeden çalışmaya devam etmek istenmektedir. Bu sırada soruyu soran kişi doğal olarak programcıların zor iletişim kurulan kişiler olduğunu düşünecektir. Oysa programcının beyni hız kesmemeye çalışmaktan başka bir şey yapmamaktadır.

Programcılar çoğu zaman konuşmayı pek sevmeyen ve zor iletişim kuran kişiler olarak bilinmektedir. Bu yanlış inancın temelinde, programcıların konsantre olma yetenekleri ve bölünmelere karşı geliştirdikleri iletişim “önlemleri” yatmaktadır. Oysa yazılım geliştirme ekipleri oldukça konuşkan olabilirler. Fark konuşulan konularda yatmaktadır… “Windows mu iyidir, Linux mu?” tartışmalarını dinleseniz programcıların az iletişim kurdukları konusundaki fikirleriniz tam tersi yönde değişecektir.

Eğer bölündüğü sırada programcı soruyu tam olarak algılayıp doğru bir cevap vermeye çalışırsa, soru “bağlam” dışı ise kreatif sürecin durması gerekmektedir. Duran bu akışın yeniden eski kaldığı noktaya geri dönebilmesi, kişiye çok bağlı olmakla beraber, on beş dakikaya kadar çıkabilmektedir. Konsantre olma yeteneği yüksek olan programcılar bölünen bu süreci daha hızlı bir sürede eski noktaya getirebilmektedir.

Programcılık sırasında beynin bu çalışma stilinin anlaşılması programlama ortamlarının ne kadar özenle seçilmesi gerektiği konusunda önemli ipuçları sağlamaktadır. Programcıların bu bölünmelerden korunması gereklidir. Daha da önemlisi programcıların kendilerini bu bölünmelerden korumaları gerekmektedir. Csikszentmihalyi ve ekibin yaptığı çalışmalar bu derin çalışma sürecinin ne kadar kırılgan olduğunu ve izolasyona ihtiyaç duyduğunu açığa çıkarmaktadır.

Kanımca bir çok yazılım hatası (bug) bu bölünmeler sırasında ortaya çıkmaktadır. Televizyonda bir motor yağı reklamını izlediğimi hatırlıyorum. Reklamda “motor ısınıncaya kadar olan sürede aşınır yıpranır oysa bu motor yağı mıknatıs özelliklerine sahiptir ve motor çeperine yapışık kalarak ısınma sırasında bile motorun yıpranmasını önler” diyordu. Bu reklamda anlatılan olayı programcılıkta çok gördüğümüzü düşünüyorum. Yeteri kadar ısınmadan, soğuk bir “beyinle” yapılmaya başlanılan programcılık sonucunda oldukça “hatalı (bogus)” kodlar üretildiğini düşünüyorum.

Meslek hayatımda karşılaştığım binlerce yazılım hatasını masaya yatırdığımda bu tür hatalarla karşılaştığımı görüyorum. Hataların bu kreatif sürecin hangi aşamasında yazılmış olabileceğini tahmin etmeye çalışıyorum. Bir programcı bölünme ile karşılaştığı zaman -üstelik bu bölünme bir SMS mesajı yazmak gibi zor ve zahmetli olup, beyni oldukça uğraştıran cinsten ise- programlama sürecinin beyinde eski aktivite düzeyine yükselmesi çoğu zaman yaklaşık 15 dakika sürecektir. Bu süreç sırasında hatasız bir kod üretimi için programcının kritik bir kod yazmaması gereklidir. Konsantrasyonun tam sağlanamayacağı bu ısınma dönemi, unutulan kontroller, atlanan olasılıklar ve hiç kodlanmayan program akış dallarına neden olacaktır.

Çağımızda bu bölünmelerin başlıca sebepleri cep telefonları, gelen SMS mesajları ve Instant Messaging programlarıdır. Bölünmemek için iletişimsizliğe ihtiyacımız varken çağımız bir iletişim çağı olmuştur. Watts Humprey, Software Engineering Institute tabanlı Personal Software Process’in (Kişisel Yazılım Süreci - PSP) geliştiricilerinden birisidir. Kendisi uzun yıllar IBM’de çalışmış, OS390 projesinde yer almış ve yazılım geliştirmenin önemli duayenlerinden birisi olmuştur. PSP bir programcının iyi program yazması konusunda kendini nasıl geliştireceğinin ana hatlarını çizer. Humprey’in PSP’yi anlattığı “Introduction to PSP” kitabını aldığımda şaşırdığım bir konu olmuştu. Kitabın ilk bölümlerinin zaman yönetimi ve bu bölünmelere karşı mücadele olduğunu görüp şaşırmıştım. Humprey, programcıları bu bölünmelerle mücadele konusunda bilinçlendirmeye çalışıyordu. Yazılım geliştirme sürecinin tam verimiyle çalışması için bu sürecin korunmaya ihtiyacı olduğu çok açık.

Bir programcının etrafında oturanlar, yöneticileri, ona SMS gönderenler bu sürecin geç cevap alacaklarının farkında olmalıdır. Böyle bir zihinsel durumdaki yazılım geliştirmeciyle olan iletişim senkron (eş zamanlı) değil asenkron (farklı zamanlarda) olmalıdır. Şu sıralar programcılıkta popüler olan yeni bir akım var. Entegre edilen sistemlerin birbirleriyle senkron bağlantılar yerine “loosely coupled” (gevşek eşleştirme) dediğimiz asenkron yöntemlerle bağlanması. Sanırım “akış” anını yakalamış bir programcı ile iletişimin de en sağlıklısı “loosely coupled” türden olacaktır.

(TeknoMercek - Özkan Erener)

Etiketler : Etiket Yok
Kategoriler : Diğer Konular
Yorumlar : 0 Yorum Yorum Yaz

Python programında değişken isimlerini tanımlarken dikkat edilmesi gereken başlıca hususlar şunlardır;

Python programında değişkenlerin türlerinin belirtilmesi zorunlu değildir.  Ancak değişkenler kullanıldıkları anda python programı tarafından türü belirlenir. Örneğin

Aynı anda birden fazla değişkeni de tanımlamanız mümkündür.

A=B=C=10 örneğinde olduğu gibi.

Ad=’Talha’ şeklinde kullanıldığı anda python tarafından Ad değişkeni string olarak kabul edilecektir.

# işareti ile başlayan satırlar açıklama satırlarıdır. Derleyici tarafından dikkate alınmazlar.

Rakam ile başlamazlar. Harf ya da rakam dışında karakterler değişken ismi olarak kullanılamaz.  

 

Sayısal Değişkenler

Python’da 4 çeşit sayısal değişken bulunur. Bunlar Integer (Tam sayı), Long (Uzun Tamsayı), Float (Ondalıklı sayı) ve Complex (Karmaşık sayı) değişkenlerdir.  Bu değişken tiplerinin hepsi işaretli sayılardır. Atanan değer hangi tip değişkenin sınırlarına giriyorsa python tarafından o değişken tipi olarak belirlenir.  Pythonda değişkenlerin tipi otomatik olarak belirlendiğinden dolayı sizin değişkene atadığınız değer eğer integer'ın kapsama alanında ise tip otomatik olarak integer olarak tanımlanacaktır. Eğer Integer'ın boyutlarını aşarsa bu sefer Long olacaktır. Eğer yapılan bir işlem sonucunda ondalıklı bir değer çıkarsa veya işleme giren değerlerden (değişken değeri ve sabit değer) biri ondalıklı ise sonucu atadığınız değişkenin veri tipi Float olarak belirlenecektir.

Örneğin :

a = 123456789

b = 123456789123456789

c = 123.45

Burada a Integer, b Long, c Float olarak belirlenir.

Sayısal değişkenler üzerinde işlem yaparken “ karakterini kullanmadan değişkenlere atama yapmalıyız. Aksi takdirde atanan değer string olarak kabul edilecektir.

Örneğin:

a=”5”

b=”6”

 

 

print a+b şeklindeki bir işlem bize 56 sonucunu verecektir. Çünkü değişkenlere atanan değerler “” karakterleri arasında yazıldığı için string değişken olarak kabul edilecektir. Buna göre atanan değerleri şu şekilde düzenlememiz lazım;

a=5

b=6

print a+b şeklindeki işlem bize 11 sonucunu verir. Ancak int fonksiyonunu kullanarak string değişkenleri integer değişkenlere dönüştürebiliriz.

a=”5”

b=”6”

print int(a)+int(b) şeklindeki bir kodda bize 11 sonucunu verecektir.

Aynı işlemin tersini yapacak olursak. Yani;

a=5

b=6

print str(a)+str(b) şeklindeki kodumuz bize 56 sonucunu verecektir. Str fonksiyonu integer değişkenlerin string değişkenlere dönüştürülmesi için kullanılır.

 

String Değişkenler

Python'da unicode desteği sonradan eklendiğinden string ve unicode verileri ayrı veri tipleri olarak tanımlanmıştır. Unicode nesneleri temelde string tipleri ile aynı özellikleri paylaşır ancak unicode kullanımına özgü bazı ek fonksiyonlara sahiptir. Unicode nesnelerini kullanırken unutulmaması gereken bir detay eğer nesne ASCII karakterlerinin dışında veri içerecekse unicode nesnesinin encode() fonksiyonunu kullanarak uygun karakter setine dönüştürülmesini sağlamaktır. Örneğin python programlarınızda Türkçe karakter görüntülenmesinde karşılaşacağınız hataları gidermek için bu özellikten faydalanabilirsiniz. Örneğin : root.title(u’ Örnek Pencere Başlığı’).

String değişkenler “ ya da ‘ karakterleri ile atanırlar. İstenilen herhangi birisi kullanılabilir. Ancak eğer atanan string içerisinde ‘ kullanılacaksa atama “ ile, atanan string içerisinde “ kullanılacaksa atama ‘ karakteri ile yapılır.

Örneğin;

a=”Ahmed’den geldim”

b=’Ona “Python” kitabı almasını söyledim’

 

Özel karakterleri kullanmak için kaçış karakterlerini de kullanabilirsiniz.

a=”Ahmed\’den geldim”

b=’Ona \“Python\” kitabı almasını söyledim’

Yeri gelmişken diğer kaçış karakterlerinden de bahsedelim.

print "Python \n Programlama"    komut satırı

Python

Programlama şeklinde sonuç verecektir. Görüldüğü gibi \n kaçış karakteri bir alt satıra geçişi sağlar.

print "Python \n\t Programlama" komut satırı ise

Python

         Programlama şeklinde sonuç verecektir. \t kaçış karakteri ise yazıyı içeriden başlatmayı sağlar.

 

Boolean Değişkenler

1, True veya 0,False değerlerini alabilen mantıksal değişken tipidir. Bu değerler boş bir string, bir şartın gerçekleşmemesi, 0 rakamı yanlış olarak kabul edilirken dolu bir string, bir şartın gerçekleşmesi, 0 dan büyük bir rakam doğru olarak kabul edilebilir.

Boolean değişkenlerle ilgili biraz örnek yapalım:

a=5

b=10

print 1,a==5

print 2,a==10

print 3,a==5 and b==10

print 4,a==5 and b==5

print 5,a==1 and b==1

print 6,a==5 and not b==5

print 7,a==5 or b==5

print 8,not (a==1 and b==1)

print 9,not(a==5 or b==10)

 

bu kodları yazdığımızda şu şekilde çıktı verdiğini görürüz:

1 True

2 False

3 True

4 False

5 False

6 True

7 True

8 True

9 False

 

Sıra ile açıklamaya çalışalım:

a ve b değişkenlerine sıra ile 5 ve 10 değerlerini atadığımız için print 1,a==5 komutu true değerini alacaktır. Çünkü a’nın değeri 5 dir ve sonuç true’dur.

print 2,a==10 komutu ise false sonucunu verecektir. Çünkü a’nın değeri 5 dir ve sonuç false’dur.

print 3,a==5 and b==10 komutu true sonucunu verecektir. Çünkü a’nın değeri 5, b’nin değeri ise 10’dur. İkisi de true olduğu için mantıksal operatör olan and operatörünün kullanılması neticesinde 1 and 1 işleminin sonucu da 1 olmasından dolayı true değeri dönecektir.

print 4,a==5 and b==5 komutu false sonucunu verecektir. Çünkü a’nın değeri 5, b’nin değeri ise 10’dur. a true b ise false sonucunu döndürür. Birisi true diğeri false olduğu için mantıksal operatör olan and operatörünün kullanılması neticesinde 1 and 0 işleminin sonucu da 0 olmasından dolayı false değeri dönecektir.

print 5,a==1 and b==1 komutu false sonucunu verecektir. Çünkü a’nın değeri 5, b’nin değeri ise 10’dur. a ve b false sonucunu döndürür. İkisi de false olduğu için mantıksal operatör olan and operatörünün kullanılması neticesinde 0 and 0 işleminin sonucu da 0 olmasından dolayı false değeri dönecektir.

print 6,a==5 and not b==5 komutu true sonucunu verecektir. Çünkü a’nın değeri 5, b’nin değeri ise 10’dur. a’nın değerinin 5 olduğu doğrudur ve true sonucunu döndürür. not b==5 ifadesi ise b 5’e eşit değilse demektir (ki b 10 değerini içerdiğinden 5’e eşit değildir) ve b true sonucunu döndürür. İkisi de true olduğu için mantıksal operatör olan and operatörünün kullanılması neticesinde 1 and 1 işleminin sonucu da 1 olmasından dolayı true değeri dönecektir.

AND mantıksal operatörünün doğruluk tablosu aşağıdaki gibidir:

1        AND    1        =1

1        AND    0        =1

0        AND    1        =1

0        AND    0        =0

 

print 7,a==5 or b==5 komutu true sonucunu verecektir. Çünkü a’nın değeri 5, b’nin değeri ise 10’dur. a true b ise false sonucunu döndürür. Birisi true diğeri false olduğu için mantıksal operatör olan or operatörünün kullanılması neticesinde 1 or 0 işleminin sonucu da 1 olmasından dolayı true değeri dönecektir.

print 8,not (a==1 and b==1) komutu true sonucunu verecektir. Çünkü a’nın değeri 5, b’nin değeri ise 10’dur. a ve b false sonucunu döndürür. İkisi de false olduğu için mantıksal operatör olan and operatörünün kullanılması neticesinde 0 and 0 işleminin sonucu da 0 olmasından dolayı false değeri dönecektir. Bu sonucun not mantıksal operatörü ile değili alınarak O’ın değili yani tersi 1 olmasından sonuç 1 yani true olacaktır.

print 9,not(a==5 or b==10) komutu false sonucunu verecektir. Çünkü a’nın değeri 5, b’nin değeri ise 10’dur. a ve b true sonucunu döndürür. İkisi de true olduğu için mantıksal operatör olan or operatörünün kullanılması neticesinde 1 or 1 işleminin sonucu da 1 olmasından dolayı true değeri dönecektir. Bu sonucun not mantıksal operatörü ile değili alınarak 1’ın değili yani tersi 0 olmasından sonuç 0 yani false olacaktır.

Şimdi birkaç ilginç mantıksal ifade daha görelim:

print '1' == ('1' or '2')

Bu işlem bize true sonucunu döndürecektir. Çünkü python ilk değeri kontrol ederek karşılaştırır. 1 eşittir 1’mi karşılaştırmasının sonucunda da  true değeri dönecektir.

print '2' == ('1' or '2')

Bu işlem bize false sonucunu döndürecektir. Çünkü python ilk değeri kontrol ederek karşılaştırır. 2 eşittir 1’mi karşılaştırmasının sonucunda da  false değeri dönecektir.

print '1' == ('1' and '2')

Bu işlem bize false sonucunu döndürecektir. Çünkü python ilk değeri kontrol ederek karşılaştırır. 1 eşittir 1’mi karşılaştırmasını yapar. Sonucu true’dur. İkinci parametreyi karşılaştırmaya geçer. 1 eşittir 2 mi karşılaştırmasını yapar sonucu false’dur. Geriye false değerini döndürür.

print '2' == ('1' and '2')

Bu işlem bize true sonucunu döndürecektir. Çünkü python ilk değeri kontrol ederek karşılaştırır. 2 eşittir 1’mi karşılaştırmasını yapar. Sonucu false’dur. İkinci parametreyi karşılaştırmaya geçer. 2 eşittir 2 mi karşılaştırmasını yapar sonucu true’dur. Geriye true değerini döndürür.

Etiketler : Etiket Yok
Kategoriler : Python
Yorumlar : 0 Yorum Yorum Yaz

Örneğimiz bir text kutusuna girilen cümlenin tersinin düzüne eşit olup olmadığını bulmaktadır. Örneğimiz için form üzerine bir adet label bir adet de text box ekliyoruz.

Kodumuz şu şekilde olacak:

Public Class Form1

Dim ln As Integer, yarisi As Integer, sayac As Integer

Dim yari As Single

Dim uz1 As String, uz2 As String

Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

sayac = 0

End Sub

Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress

If e.KeyChar = Chr(13) Then

ln = 0

sayac = 0

yari = 0

yarisi = 0

uz1 = ""

uz2 = ""

ln = Len(TextBox1.Text)

yari = ln / 2

yarisi = CInt(yari)

For i = 0 To yarisi - 1

uz1 = Mid$(TextBox1.Text, i + 1, 1)

uz2 = Mid$(TextBox1.Text, ln - i, 1)

If uz1 = uz2 Then

sayac = sayac + 1

End If

Next i

If sayac = yarisi Then

lblmesaj.Text = "tersi duzune esit "

Else

lblmesaj.Text = "tersi duzune esit degil"

End If

End If

End Sub

End Class

Kodları kısaca açıklayalım:

 If e.KeyChar = Chr(13) Then cümlesi ile eğer basılan tuşun kodu 13 ise (enter tuşu) işlemimizin başlamasını sağlıyoruz.

Cümlemizin uzunluğunu 

ln = Len(TextBox1.Text)

komutları ile buluyoruz.

Cümlemizi tam ortasından ikiye bölmek için

yari = ln / 2

komutunu kullanıyoruz. Ondalıklı bir değer çıkabilir diye

yarisi = CInt(yari) komutu ile sayının tam kısmını buluyoruz.

For i = 0 To yarisi - 1 komutu ile cümlemizin başından yarısına kadar bir döngü kuruyoruz.

uz1 = Mid$(TextBox1.Text, i + 1, 1)

uz2 = Mid$(TextBox1.Text, ln - i, 1)

komut satırları ile cümlenin başından ve sonundan birer karakter alarak karşılaştırıyoruz.

If uz1 = uz2 Then

sayac = sayac + 1

End If

komut satırları ile karşılaştırılan karakterler birbirine eşitse sayacımızı bir arttırıyoruz.

If sayac = yarisi Then

lblmesaj.Text = "tersi duzune esit "

Else

lblmesaj.Text = "tersi duzune esit degil"

End If

komut satırları ile de cümlenin başından ve sonundan karşılaştırma yaparak yarısına kadar gelmişsek işlemimiz bitmiştir. Bu durumda cümlenin tersi düzüne eşittir.

Son olarak proje dosyamızın kod linkini vereyim:

http://www.volkanaktas.com/prgdosya/tersduz.rar

Etiketler : Etiket Yok
Kategoriler : VB.Net
Yorumlar : 0 Yorum Yorum Yaz

Python programını indirdiğinizde eğer başka bir editör yüklememiş iseniz idle editörü varsayılan python editörünüz olacaktır. Bu editörü açmak için Windows sistemlerde başlat menüsünden python program grubunu açarak oradan Idle (Python GUI) programını açıyoruz. Python’da yazdığımız programların sonuçlarını görüntülemek için bu editörü kullanacağız. İsterseniz şimdi ilk programımızı yazalım ve çalıştıralım.

Kodumuzu çalıştırmak için kodumuzu çalıştırmak için enter’a basmamız yeterlidir. Yazdığımız satır anında yorumlanarak sonucu bir alt satırda görüntülenecektir.

 

Bir başka örneğimizi ise rakamlar üzerinde aritmetiksel işlemler yaprak verelim:

Bir başka örneğimiz de şu şekilde olsun:

Bu şekilde programımızı File menüsünden Save seçeneğini kullanıp uzantısını py olarak şekilde kaydettiğimizde, kaydedilen programı daha sonra çalıştırmaya kalktığımızda hata verecektir. Çünkü bu bölüm hem kodlarımızı hem de kodlarımızın çalışmasıyla gerçekleşen sonuçları içerir.

Yapmamız gereken python idle editörünü açtıktan sonra File menüsünden New Window seçeneğini kullanmak ve yeni bir kod penceresi açmak.  Şimdi yukarıda yazdığımız aynı kodu bu yöntemle yeniden yazalım:

Dikkat ederseniz bu pencereye Run seçeneği de eklendi. İşte bizim programlarımızı yazacağımız asıl idle penceresi bu. Burada kodumuzu yazarken dikkat etti iseniz daha önce olduğu gibi kodu yazıp enter ile alt satıra bastığınızda o satır yorumlanmıyor. Kodumuz biz ne zaman Run menüsünden Run Module (F5) seçeneğini çalıştırırsak o zaman çalışıyor.

Kod yazdığımız idle penceresi

Sonuçların görüntülendiği shell penceresi

Kodumuzu File menüsünden Save ya da Save As seçeneklerini kullanarak uzantısını py olarak vermek suretiyle kaydedebiliriz. Daha sonra açmak için ise File menüsünden open seçeneğini ya da proje dosyasına Windows ortamında sağ tıklayarak “Edit With Idle” seçeneğini kullanabiliriz.

Python editöründe kullanılan başlıca renk kodlamaları ise şu şekildedir. Bunu aşağıda verilen bir örnekle açıklayalım:

 

Etiketler : Etiket Yok
Kategoriler : Python
Yorumlar : 0 Yorum Yorum Yaz

Örneğimiz için form üzerine iki adet text kutusu ile bir adet buton ve de bir adet timer ekliyoruz.Timer'ın interval değerini yani zaman aralığını 500 olarak ayarlıyoruz. Bu 500 milisaniye yani yarım saniye demek. Kodumuz şu şekilde olacak:

Public Class Form1

Dim i As Byte

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Timer1.Enabled = True

i = Len(TextBox1.Text)

End Sub

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

If i > 0 Then

TextBox2.Text = TextBox2.Text + Mid(TextBox1.Text, i, 1)

i = i - 1

End If

End Sub

End Class

 

Şimdi kodumuzu açıklayalım:

Timer1.Enabled = True  Burada timer'ımızı aktif ediyoruz.

i = Len(TextBox1.Text) Burada len fonksiyonu ile textbox'a girilen yazının uzunluğunu i değişkenine aktarıyoruz.

If i > 0 Then Burada eğer textbox'ımızın içerisine yazı girilmişse kodumuzun çalışmasını sağlıyoruz.

TextBox2.Text = TextBox2.Text + Mid(TextBox1.Text, i, 1)  Textbox'ın içerisindeki yazıya Mid fonksiyonuyla ekleme yapıyoruz.

Mid fonksiyonunun kullanımı şu şekildedir:

Mid(Arama yapılacak metin,karakterin sırası,karakterin uzunluğu)

Burada i değişkeninde ilk aşamada cümlemizin uzunluğu olacağı için son karakterden itibaren yazılmaya başlanacaktır.

i = i - 1 Burada ise son karakterden başa doğru gitmemiz için i değişkenini her defasında bir azaltıyoruz.

Son olarak projemizin kodunu da upload edeyim.

http://www.volkanaktas.com/prgdosya/harfharfyaz.rar

 

Etiketler : Etiket Yok
Kategoriler : VB.Net
Yorumlar : 0 Yorum Yorum Yaz

Projelerde müşteriyle birebir karşı karşıya kalan kişilerin özellikle dikkatle okuması lazım bence. Kazanmanın ve başarmanın sırrı müşteriyle iyi iletişim kurmakta ve hizmete özen göstermekte.

Olayı yazıldığı gibi alıyorum aşağıya.

Kaynak: İbrahim Demir

"Son bir yıldır öğle yemeklerini dışarıda yemek durumunda kaldığımızdan işyerinden iki ağabeyimle vergi dairesi civarlarında yemeğimizi yiyor ve öğleden sonrası için de devlet hastanesinin köşesinden simit alıyoruz.
Yaklaşık on-on beş gündür tezgahın başka birisi tarafından işletildiğini fark etmiştim. Dün bu sefer simidi ben alacağım diyerek, tezgaha gittiğimde simitçi ortalıkta görünmüyordu. Ben de her tezgahın başında simitçi olmadığında, Türklerin yaptığı refleks ile tezgahın camını açacak ve parayı koyarak iki tane simit alacaktım. Öyle de yaptım tezgahın sürgülü camını açtım 1 YTL’ yi rafa koydum ve tam simitleri alacaktım ki, orada üstüne el yazısıyla bir şeyler yazılmış, müsvedde kağıtları gördüm.
Beni iyi tanıyanlar ne kadar meraklı olduğumu bilirler; “Yahu bu da nedir, ne yazmış bu adam acaba, bir bakayım,” dedim:
08:10 - 2
08:15 - 1
08:21 - 1
08:22 - 2


Anlayacağınız bu listede öğleye kadar hangi dakikada kaç simit satıldığı yazıyordu. Sonra bu listenin altına 13:55 - 2 yazıp, ne yazdığıma dikkat etsin diye 2′nin üstüne bir de yıldız koydum ve simitleri aldım.
Veritabanı tutmaya bayılırım. “Allahım adamdaki bilince bak, veritabanı tutuyor!” dedim. Ama emin değildim. Belki de belediye böyle bir şeyler istemiştir falan… dedim. Neyse uzatmayayım, bugün yine aynı simitçiye uğradım, bu sefer oradaydı.
Nasılsın, iyi misin, hoşbeşinden sonra “13:55 simitlerini toplama ekledin mi?” diye sorunca:
“Abi sen miydin o?” diye gülümsemeye başladı. “Neden böyle bir liste tutuyorsun?” diye sordum, “Belediye mi istiyor?” ” Yok abi, ben 15 gün önce aldım bu tezgahın işletmesini, henüz yabancısıyım müşterinin dedi. Bunları dakika dakika yazıyorum, hangi saatlerde müşteri yığılıyorsa, ona göre sıcak simit getireceğim, o gün sabahın simidi akşama kaldı, utandım müşteriden” deyince ellerine sarılıp öpmek geldi içimden…"

Etiketler : Etiket Yok
Kategoriler : Diğer Konular
Yorumlar : 0 Yorum Yorum Yaz

Değerli dostum Seyfullah Kılıç tarafından düzenlenmiş olan taşınabilir Visual Basic 6 programı. Boyutu sadece 4.6 mb'dır. Kurmaya gerek olmadan çalıştırılabilir.

link:

http://rapidshare.com/files/104538230/PortableVB6.rar.html

Etiketler : Etiket Yok
Kategoriler : Visual Basic
Yorumlar : 18 Yorum Yorum Yaz

Select Case yapısı verilen bir değişkenin aldığı değer ya da değer aralığına göre seçim yapmak için kullanılır. Kullanımı şu şekildedir:

Select Case değişken

   Case değer ya da değer aralığı

      komutlar

   Case değer ya da değer aralığı

      komutlar

    ................

   case else

      komutlar

End Select

 

Bunula ilgili olarak bir örnek yapalım. Örneğimiz klavyeden girilen notu puana çevirmektedir. Form üzerine bir adet buton eklememiz yeterli. Kodumuz şu şekilde olacak:

Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim notu As Byte

Try

notu = InputBox("Notu Girin", "Not GiriŸi")

Select Case notu

Case 0 To 24

MsgBox("Notunuz 0", MsgBoxStyle.OkOnly + MsgBoxStyle.Information)

Case 25 To 44

MsgBox("Notunuz 1", MsgBoxStyle.OkOnly + MsgBoxStyle.Information)

Case 45 To 54

MsgBox("Notunuz 2", MsgBoxStyle.OkOnly + MsgBoxStyle.Information)

Case 55 To 69

MsgBox("Notunuz 3", MsgBoxStyle.OkOnly + MsgBoxStyle.Information)

Case 70 To 84

MsgBox("Notunuz 4", MsgBoxStyle.OkOnly + MsgBoxStyle.Information)

Case 85 To 100

MsgBox("Notunuz 5", MsgBoxStyle.OkOnly + MsgBoxStyle.Information)

Case Else

MsgBox("Yanlış Not Girdiniz", MsgBoxStyle.OkOnly + MsgBoxStyle.Exclamation)

End Select

Catch

MsgBox("İzin Verilen Değerler Dışında Not Girdiniz", MsgBoxStyle.OkOnly + MsgBoxStyle.Exclamation)

End Try

End Sub

End Class

 

Try Catch yapısını daha önceki If yapısında verdiğimiz örnekte anlatmıştık. Son olarak proje dosyamızın linkini vereyim.

http://www.volkanaktas.com/prgdosya/case_not.rar

Etiketler : Etiket Yok
Kategoriler : VB.Net
Yorumlar : 0 Yorum Yorum Yaz

IF komutu verilen bir şartın gerçekleşmesi ya da gerçekleşmemesi durumunda belirtilen kodların çalıştırılmasını sağlar. Kullanımı şu şekildedir:

IF Şart Then

   komutlar

elseif

   komutlar

else

   komutlar

End If

Şartın sağlanması durumunda Then komutundan sonraki komutlar, sağlanmaması durumunda elseif ya da else komutundan sonraki komutlar çalıştırılır.

Bir örnek verelim. Örneğimiz klavyeden girilen notun puan karşılığını vermektedir. Form üzerine bir adet buton eklememiz yeterli.

Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim notu As Byte

Try

notu = InputBox("Notu Girin", "Not Girişi")

If notu < 25 Then

MsgBox("Notunuz 0", MsgBoxStyle.OkOnly + MsgBoxStyle.Information)

ElseIf notu < 45 Then

MsgBox("Notunuz 1", MsgBoxStyle.OkOnly + MsgBoxStyle.Information)

ElseIf notu < 55 Then

MsgBox("Notunuz 2", MsgBoxStyle.OkOnly + MsgBoxStyle.Information)

ElseIf notu < 70 Then

MsgBox("Notunuz 3", MsgBoxStyle.OkOnly + MsgBoxStyle.Information)

ElseIf notu < 85 Then

MsgBox("Notunuz 4", MsgBoxStyle.OkOnly + MsgBoxStyle.Information)

ElseIf notu <= 100 Then

MsgBox("Notunuz 5", MsgBoxStyle.OkOnly + MsgBoxStyle.Information)

Else

MsgBox("Yanlış Not Girdiniz", MsgBoxStyle.OkOnly + MsgBoxStyle.Exclamation)

End If

Catch

MsgBox("İzin Verilen Değerler Dışında Not Girdiniz", MsgBoxStyle.OkOnly + MsgBoxStyle.Exclamation)

End Try

End Sub

End Class

 

Örneğimizde Try Catch yapısı da dikkatinizi çekmiş olmalı. Try Catch bloğu hata kontrolü için kullanılmaktadır. Kullanımı şu şekildedir:

Try

    Çalıştırılacak program bloğu

Catch

   Hata durumunda çalışacak kod bloğu

End Try

 

Son olarak örneğimizin proje dosyasını da vereyim:

www.volkanaktas.com/prgdosya/ifnot.rar

Etiketler : Etiket Yok
Kategoriler : VB.Net
Yorumlar : 0 Yorum Yorum Yaz
Arama
  Ara
Takvim
<September 2010>
SMTWTFS
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789
Tag Bulutu