22 Mayıs 2010 Cumartesi

Paython Fonksiyon

Sözlükler konusundan sonra karşılaştığım fonksiyonlar, zevkle öğrendiğim konular arasında.
Bir şablonlama gibi çalışıyor. Aynı kalıpları tekrar tekrar işlemekten kurtarmaya yarıyor. Yazar konuyu güzel açıklamış. istihza 'ya teşekkürler.
Bu örneğimde, bir dilekçeyi ele aldım. isim, tarih ve yazanın ismini ayrıca girdikten sonra şablon tamamlanmış oluyor.

17 Nisan 2010 Cumartesi

python Liste alıştırması 2


Şu ana kadar birçok bu konuda alıştırmalar yaptım durdum. Bu konuya bağlı olarak birden fazla komut var. En azından bu alıştırmalarımda bu konuları daha iyi kavrayabildiğimi söyleyebilirim.
append, insert, remove ve pop komutlarıyla çokça alıştırmalarım oldu. Bunun için www.istihza.com sitesindeki yazara minnet borçluyum. Çok sade ve mükemmel bir üslubu var.
Konuları çok rahat bir şekilde kavrayabiliyorum. Bu gün ise yaptığım bir örneklemede yine sorunlarla karşılaşmıştım. Sağolsunlar pardus forum sorunumu halletti. Örnek ekteki resimde mevcut. Problem ise, liste unsurunun range() unsununun içinde bulunuyor olması ve en sonda listede eleman göstergesi için ayarladığım nesne tanımlamasında kullandığım, "raw_input()" fonksiyonu sadece "input()" olmalıymış. Amaç ise her döngü sırasında listeye eleman eklemekti. Geçen konumda da bahsettiğim bir sorun vardı ... iç içe girmiş yordamlardan bir anda nasıl kurtulmalıydım. Bunun için ise, sayfa başına import sys yazıp çıkmak istediğimiz break yerine ise exit sys (0) yazmamız yeterli oluyormuş. Bunun içinde pardus forum a minnet borçluyum. ...

30 Mart 2010 Salı

Python Liste alıştırması


Alışrımalara ve ilerlemeye devam ediyorum çok şükür. Problemler olmuyor değil.
Python da listeleme konularına çalıştım. Örneklemelerimde gayet iyi oluyordu ... fakat, while döngü amcam benim başımı ağrıtana kadar. Bu problemi pardus forumlarına aktardım. Umarım sorunun nedenini ve çözümünü anlayabilirim. Yaptığım bu alıştırma basit.
Sadece liste elemanı ekleyip çıkarabiliyorum.


Ayrıca geçen konuda kafama takılan sorunu da Pardus forum sayesinde halledebildim çok şükür. Onlara çok minnet borçluyum. "len()" komutunun daha düzgün çalışabilmesi için utf-8 karakteri tanımlayabilmesi gerekiyormuş. Bunun için girdi bölümünü şu şekilde düzeltmem yeterli oluyormuş. " a = unicode(raw_input("Bir isim giriniz : "))"
giriş işlemlerinde "unicode()" deyimini kullandığım zaman bir sorunum kalmadı.
Bir sonraki yazımda umarım diğer problemimde hallolmuş olur.

18 Mart 2010 Perşembe

Python 'a giriş.

Evvel zaman içinde bir yöneticisi varmış, hiç girip bakmazmış ve aylar geçmiş birden çıkagelmiş, O da ne ... python 'a dolanmış amcam. :)

Bir aydan biraz fazla oldu sanırım. Paython 'a merak sarmam. İlk başlangıç aşamalarımda çok hevesli bir çocuk gibi oldum. Çocuk gibi de severdim, ton tonum paytonum diye ... :) Şimdilerde ise bu rehavet üzerimde yok çok şükür, işi ciddiye almak gerek. Çünkü detaylar çok fazla ve çok alıştırma istiyor. Şimdi göreceğiniz bu çalışmamda benim ürünüm olsa bile aslında alıştırmadan öteye gitmiş değil şimdilir. Amaç, " len(), while, break ve continue " deyimlerine ısınmak. Tabi uzman oldamığım için karşılaşmadığım problemlerde yok değil. Örnekte ki eki linux konsolundan çağırdığınız zaman sizden iki adet isim girmenizi ister, eğer " i " harfini büyük yazarsanız problem yaşarsınız. Bunu hala araştırıyorum. Umarım bir sonraki yazımda böyle bir problemi tebessümle anarım ... :) Ama yinede yaptığım çalışma bana göre ilerleme hususunda güzellikler vaad ediyor. İsterseniz bunu linux üzerinden deneyebilirsiniz. Bilenler sanırım buna zahmet bile etmeyeceklerdir. :) Sağlıcakla kalın.

#!/usr/bin/env python
# -*- coding: utf-8 -*-
from __future__ import division

while True:
a = raw_input("Bir isim girin : ")
b = raw_input("Bir isim daha girin : ")

s = input("Girdiğiniz iki ismin karakter sayılarının çarpımı kaçtır? : ")
if s == len(a) * len(b):
print "Doğru bildiniz. Tebrikler."
else:
print "Vermiş olduğunuz bilgilere göre, ", a, "ve", b, "'nin, Karakter sayılarının çarpımı ; ", len(a), "×", len(b), "= ", len(a) * len(b)
print "Yazmış olduğunuz", s, "yanlış bir sonuçtur."

print "(1) Tekrar dene"
print "(2) Kapat"
t = raw_input("Tekrar denemek ister misiniz? : ")
if t == "1":
continue
elif t == "2":
print "Programdan çıkarıldınız."
break


Karşılaştığım sorunun ekran görüntüsünü merak edenler için ;

19 Mayıs 2009 Salı

Pardus 2 0 0 8

Milli işletim sistemimiz Linux Pardus

Pardus... Özgürlük İçin...

12 Mayıs 2009 Salı


Corel, Solidworks, Max9. Amaç Vray materyal render denemesi.

21 Şubat 2009 Cumartesi

Sıkıştırma Parçası



Heidelberg makina parçası. Model Solid Works - Görselleştirme Max 9 Standart Render.

11 Ekim 2008 Cumartesi

Yüzük

Yapımında SolidWorks ve Max Kullandım.

23 Temmuz 2008 Çarşamba

Kalem traş

Yapımında Corel ve Solidworks'u kullandım. Render Max Mental Ray.

22 Temmuz 2008 Salı

Yengeç

Yapmış olduğum bu çalışmamda Corel, Solidworks ve Max kullandım.

1 Nisan 2008 Salı

Max Çalışmalarım

Zaman içinde yapmış olduğum birikimlerim.

23 Mart 2008 Pazar

Milli İşletim Sistemimiz PARDUS

Fırsat buldukça kullandığım Milli İşletim Sistemimiz.

Pardus... Özgürlük İçin...

COREL DRAW

Mesleki gereği kullandığım bu program hakkında yenilikleri ve detaylı bilgiye buradan
ulaşabilirsiniz. Diğer kullandığım programlar (photoshop, Freehand) hakkındaki bilgilere buradan
ulaşabilirsiniz.

18 Mart 2008 Salı

Solid Works Eğitim Aşamalarım (ikinci hatfa)

Bu haftaki öğrenimimde, yapmış olduğum katı nesneleri parçalara ayırmayı öğrendim.
1) Spilt Komutu; Bu komutla, bir plane seçimiyle katı nesneyi iki katıya bölebiliriz. Split komutunu seçtikten sonra, bize kesim için bir plane ister ve ardından kesilecek gövdeleri alt listede belirtmemizi bekler ... bu işlemlerden sonra gövde kesilmiş olur.










Bu işlem, en çok tasarım esnasında işimize yarayacağını söylüyor kitap. Bir bütün olarak tasarladığımız nesneleri daha sonra bu şekilde parçalayarak ayrıntılarına girebilir ve üretim aşamasına hazırlayabiliriz.

2) Alıştırmalar, Eski Verilerle Split Part Kullanımı : Burada Programa ithal ettiğimiz, bütün katı bir parçayı kesme işlemi kullanarak üzerinde değişiklik yaratacağız. İlk olarak parçanın ilk görünümü ve son görünümlerine yer verdim. Buradan Parçanın bir ucunun kesilerek Move / Copy aracıyla dönderilmiş ve hizalanmış ve parçalı gövdeleri daha sonra Combine aracıyla birleştirilmiş son haline yer verdim. Plane kesim için herzaman doğru hizada olmayabilir, Seçtiğimiz planeye yeni bir plane ekliyoruz ve istenilerhizaya getirip Onaylıyoruz. Artık Listemize Plane1 Adıyla eklenmiş olur. Bunu kullanarak split aracıyla gövdeyi ayırabiliriz. İşlem Bittikten sonra planenin gizlenmesini istiyorsak listedeki planeyi sağ tıklayarak gözlük iconunu tıklamamız yeterli olur. Sahnede görünmeyecektir. Aynı işlemi yaparsak görünür hale gelir. Ayrılmış olan iki katı gövdenin birine uygulayacağımız değişiklik için Move / Copy aracını açıyoruz. Burada gövde listesinde değişiklik yapılması gereken gövdeyi seçiyoruz. Daha sonra
Gövdeyi döndermek için, Translate / Rotate butonunu tıklayıp gövdeyi istenilen açıda dönderiyoruz ve onayı veriyoruz. Parça dönmüştür fakat ana parçanın alt yüzeyine tam hizalı değildir. Bunun için tekrar Move / Copy yaparak Yüzeyleri belirterek hizalıyoruz. Artık gövtedeki değişiklikler tamam Solid bodies klasöründeki gövdeleri seçip, sağ tıklayarak Add olarak combine yapabiliriz.
3) Alıştırmalar, Bir anahtar modellemesi, burada da exture cut kullanılarak bir anahtar modelledim.
Corel Tasarım aşaması.
Solid Bitmiş Hali.
3dS Max Vray Render



4) Alıştırma : Buradada, Move / Copy, Extrude, Extrude Cut ve Split komutlarını kullandım.
Corel Tasarım Aşaması
Solid Bitmiş Hali
3DS Max9 Vray Render

3 Mart 2008 Pazartesi

Visual Basic 6 Ders Notlarım.

Arkadaşlar merhaba, yaklaşık üç senedir üzerinde çalıştığım bir program olan Visual Basic 6 en basit yazılım dili. Bu zamana kadar ufak tefek bir elin parmağını geçmeyecek programlar yaptım.
Firmamıza yapmış olduğum basit bir programı da sizlerle paylaşmak istedim. Ayrıca ilerleyen zamanlarda da kitaplardan öğrenmiş olduğum bilgileri de burada paylaşacağım.
Ön izleme

Buradan da Programı indirebilirsiniz :
http://rapidshare.com/files/96699985/F__305_rat.zip.html
1) CurrentX, CurrentY (İşlediğim bu konuların anlatımlarını İhsan Karagülle ve Zeydin Pala'nın hazırlamış olduğu, Visual Basic 6.0 Pro - Türkmen Kitabevi. (bilgi www.turkmenkitabevi.com)Kitabından alıntılar kullanarak hazırladım.)
(Sf.: 130) ... "Form üzerinde yapılan başlangıç noktası olmayan çizim ve yazımlar aktif pixelin bulunduğu bölgeden başlar. Bu aktif pixelin x ve y koordinatlarını CurrentX ve CurrentY özellikleriyle belirlenir. Özellikle form üzerine Print metodu ile Yazacağınız yazılarda bu özellikler yazının koordinatlarını belirler. Örnek ; CurrentX"

Yapmış olduğum uygulamanın resimleri ektedir. Burada öğrenmiş olduğum, nesneyi belli koordinatlarda yönlendirebiliyor olmamız.
2) Unload (Cancel As Integer) Olayı :
Program sonlandırma aşamasına geldiği zaman, siz bu olaya bir kod yazdıysanız onu işleyecek ve sonuca ulaştıracaktır. Mesela, kapatmadan önce verilerinizin kaydedilip kaydelimeyeceğini soran bir uyarı penceresini bu olayda ayarlayabilirsiniz.
Elimde bulunan kitap olayı şöyle açıklamaktadır : " Form herhangi bir şekilde kapatılırken bu olay meydana gelir. Bu olaya yazacağınız kodla program kapatılmadan önce yapılması gereken işleri yapabilirsiniz. Ayrıca Cancel = True yazarak ta formun kapatılmasını önleyebilirsiniz. Formun Unload olayı şu hallerde meydana gelir.

* Formun sol üst köşesindeki kontrol kutusunda "kapat" seçildiğinde,

* Programda Unload komutu kullanıldığında,

* Windows Görev Yöneticisinden (Task Manager) "Göreve Son Ver" düğmesinin seçilmesiyle,

* Windows'tan çıkılmaya çalışıldığında,

* Form bir MDIChild ile MDI formun kapatılmasıyla.

Bu olaylar herhangi birinin yapılmasıyla Windows formun Unload olayını çağırır. Bu olay içerisinde Cancel = True yapmazsanız formunuz kapanır.

Programın herhangi bir yerinden End komutu ile sonlandırılması durumunda Unload olayı gerçekleşmez. Bu yüzden UnLoad olayına kod yazdığınız programlarda End kodu ile programı sona erdirmemelisiniz. Bunun yerine Unload Me komutunu kullanabilirsiniz.

ÖRNEK: Çıkarken kaydedeyim mi diye sormasını istiyorsak bu kod için en uygun yer Unload olayıdır.

2) QueryUnload(Cancel As Integer, UnloadMode As Integer
Unload
olayıyla aynı işi yapar ancak formun kimin tarafından kapatılmaya çalışıldığını öğrenebilirsiniz. Ayrıca bu olay Unload olayından önce meydana gelir ve burada Cancel = True ile kapatma olayı iptal edilirse UnLoad olayı meydana gelmez. UnLoad olayında bir formun 5 değişik şekilde kapanacağını belirmiştik. QueryUnload olayındaki UnloadMode parametresiyle formun hangi şekilde kapatılmaya çalışıldığını öğrenebilirsiniz. Bu parametrenin alacağı değerler şöyledir.

0 = vbFormControlMenu = Kontrol kutusunda "kapat" seçildi.

1 = vbFormCode = Programda Unload komutu kullanıldı.

2 = vbAppWindows = Windows'tan çıkılmaya çalışıldı

3 = vbAppTaskManager = Task Managerden "Göreve Son Ver" seçildi.

4 = vbFormMDIForm = Form bir MDIChild ise MDI form kapatıldı.
ÖRNEK: Örnek olarak doğru şifre girilmediği sürece Windows'tan çıkışı önleyecek bir program yapalım.

Windows'u kapatmak istediğinizde, Windows açık olan bütün uygulamalara kendini kapatmalarını bildirir. Yani programların QueryUnload ve UnLoad olayları aktif hale gelir. O halde biz Windows'tan çıkılacağını anlayabilmek için yazacağımız programın QueryUnload olayına gerekli kodu yazmamız gerekir. Windows kapatılmak istendiğinde programımız o anda bellekte ise QueryUnload olayı aktif hale gelecek ve doğru şifre girilmezse Windows kapatılmayacaktır. Programı sürekli bellekte tutmak içinde "Başlangıçta" grubuna koymamız gerekir. Ayrıca programın ekranda görülmemesi içinde formu gizlemeliyiz."


Max kullanıcıları bilir. Evde laptop da çalışırken, yanlışlıkla kapat butonuna bastığım zaman max sistemin kapanmasına izin vermiyor. Bu olayı öğrendikten sonra sebebini şimdi daha iyi anlıyorum.