Algoritma etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
Algoritma etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

21 Kasım 2019 Perşembe

Algoritma Analizi Nedir ve Nerelerde Kullanılır?

30 Mart 2019 Cumartesi

Algoritma Örnekleri ve Sorular - 4


16. Soru
Klavyeden girilen bir n değerini ikilik sayı sistemine çevirip ekrana yazacak algoritmayı geliştiriniz.
Çözüm: Bu algoritma bir takım özel değişkenler ve yöntemler kullanmadan tam olarak doğru bir şekilde istenilen görevi yerine getiremeyecektir. Bu amaçla biz dizi değişkenleri kullanabileceğimizi düşünerek bu algoritmayı oluşturmaya çalışacağız.

29 Mart 2019 Cuma

Algoritma Örnekleri ve Sorular - 3


9. Soru
Bir n değeri için f(x)=x2 şeklindeki fonksiyonun değerini hesaplayıp
ekrana yazan algoritmayı geliştiriniz.
Çözüm: Bu algoritma oldukça basit bir şekle sahip olup benzer şekildeki tüm fonksiyonları küçük değişikliklerle rahatça hesaplayabilecek bir algoritmadır. Sadece 4. adımı değiştirerek oldukça fazla sayıda algoritma veya sorun türetilebilir.

28 Mart 2019 Perşembe

Algoritma Örnekleri ve Sorular - 2


5. Soru
Klavyeden girilen A ve B gibi iki sayının bölme işlemi kullanmadan sadece toplama ve çıkarma kullanarak kalanlı bölme yapan algoritmayı yazınız.
Çözüm: Bu örnek çok eski işlemcilerde çarpma işleminin tanımlı olmadığı durumlar için çarpma ya da bölme yapmak amacıyla kullanılan algoritma olarak karşımıza çıkmıştır. İlk okulda da fasulye hesabına dayanarak çarpmayı öğrendiğimiz yılları hatırlamamızı sağlayabilir.

27 Mart 2019 Çarşamba

Algoritma Örnekleri ve Açıklamaları - 1


1. Soru
Klavyeden girilecek X değerinden N değerine kadar tüm doğal sayıları listeleyen algoritmayı geliştiriniz.
Çözüm: X değişkeni ve N değişkeni klavyeden girilecek olup X’den N’e kadar elde edilecek her bir değer ekrana yazılacaktır.

26 Mart 2019 Salı

Veri İşleme Nedir ? Kullanım alanları nelerdir ?


Bilgisayarımızda anlatmak, görmek, duymak istediğimiz her bilgi veya medya bilgisayar ortamında sayısal olarak saklanır. Bunların üzerinde yapacağınız işlemlerin çoğu da aslında matematiksel veya mantıksal işlemlerdir. Örneğin bir çizim bilgisayarda nokta nokta saklanır. İki boyutlu bir düzlem üzerinde (0,0) koordinatındaki noktanın rengi sayısal olarak verilir. Örneğin bu değer 0 ise renk siyah 65555 ise renk beyazdır. Bu sayısal değeri değiştirerek (0,0) koordinatındaki noktanın rengini değiştirmiş olursunuz.

Algoritma Çalıştırma işlemi


Bazen Bir takım algoritmaların ne işe yaradığını anlamak veya algoritmanın doğru çalışıp çalışmadığını test etmek için algoritmayı çalıştırmak gereklidir. Algoritmayı çalıştırmak demek algoritmanın adımlarını sıra ile uygulamak, oluşan değişken değerlerini bir tablo üzerinde göstermek demektir.

25 Mart 2019 Pazartesi

Algoritma Değişken ve Dizi Tanımlama


Bilgisayarda yapılacak hesaplar sonucu elde edilecek değerleri ve dışarıdan bilgisayara girilecek değerler değişkenlerde tutulur. Değişkenler içlerinde tuttukları değerlerin türlerine göre sınıflandırılır. Bu değişkenler bazen basit şekilde olmaz kayıt yapısında ya da dizi yapısında olabilirler.
Sabit Nedir?
Programın her yerinde aynı değeri ifade eden değerlerdir. Değişkenlerde olduğu gibi sabitler de tür kavramına sahiptir. Yazılış tarzına bakarak sabitin türünü anlamak mümkündür.
Tam Sayı Sabitleri
Sadece rakamlardan oluşan ifadelerdir. Bu tip sayıların içerisinde sadece rakam ve gerekiyorsa işaret sembolü olabilir. Aritmetik işlemlere girebilirler. (12, 1233, -3422 gibi)

21 Mart 2019 Perşembe

Aritmatik ve Mantıksal İfadeler


Bir takım işlemlerin yapılabilmesi için aritmetik işlemlerin nasıl tanımlandığını bilmeniz gerekecek. Program akışının doğru bir şekilde sağlanabilmesi için bazı yerlerde karar verilmesi gereklidir. Bu kararların verilmesini sağlayacak Mantıksal ifadeler bilgisayarlar tarafından yapılabilmelidir.
Aritmetik İfadeler
Bir programın istenilen işleri yerine getirebilmesi için hesap yapabilmesi ve bu hesaplar sonucunda elde edilen değerleri saklayabilmesi gerekmektedir. Genel olarak tüm programlama dillerinde aritmetik işlemler şu şekilde tanımlanmıştır:

20 Mart 2019 Çarşamba

Algoritma Akış Şemaları


Bir algoritmanın şekillerle görsel gösterimidir. Dikkat edildiyse algoritma doğal dille yazıldığı için herkes tarafından anlaşılamayabilir ya da istenmese de başka anlamlar çıkarılabilir. Ancak akış çizgelerinde her bir şekil standart bir anlam taşıdığı için farklı yorumlanıp anlaşılamaması mümkün değildir. Bir algoritmanın ifade edilebilmesi için kullanılan şekiller ve anlamları şunlardır:

19 Mart 2019 Salı

Programlamaya Giriş ve Algoritmalar Ders Notları - 3


Bir bilgisayar programı aslında sıra düzensel olarak tanımlanmış bir dizi komuttan başka bir şey değildir. Bu açıdan bizim yazmaya çalışacağımız programda bir dizi komut yani eylem topluluğudur. Her programda bu eylemler yazıldıkları sırada gerçekleştirilir veya çalıştırılırlar. Aslında bizim günlük hayattaki yaşantı tarzımız dahi düzenli olarak bir takım işlemlerin sıra ile yapılması şeklindedir. Yani bir iş yapabilmek için bir takım alt iş veya olayları peş peşe gerçekleştiririz.
Algoritmanın tanımını daha önce vermiştik burada bu tanımı tekrar etmek faydalı olacaktır. Bir sorunu çözebilmek için gerekli olan sıralı mantıksal adımların tümüne algoritma denir. Bir algoritmadan beklenen bir takım özellikler olduğunu da yine daha önceki tanımlar bölümünde bahsetmiştik. Biz şimdi mümkün olduğu kadar bu tanım ve özelliklerden yola çıkarak örneklerle bir kaç algoritma vermeye çalışacağız.
Öncelikle bir ev hanımının pasta yapmak istediğini varsayalım. Bu pastanın yapılabilmesi için gerekli bir takım işlemler ve alt adımlar bellidir. bir ev hanımı da sıra ile bu adımları uygulayarak bu pastayı yapar. Şöyle ki:

18 Mart 2019 Pazartesi

Programlamaya Giriş ve Algoritmalar Ders Notları - 2


Yazılım Geliştirme
Yazılım Geliştirilirken Bir Programcı ve Yazılım Gurubunun takip edeceği adımlar şu şekildedir.


Bu çizgeden anlaşılacağı gibi adımlardan birinde bir sorunla karşılaşılırsa bu sorunu çözebilmek için bir önceki adıma geri dönmek gerekecektir. Bu geri dönüş bazen bir kaç adım olabilir.


Sistem Analizi : Sorunun çözülebilmesi için tamamen anlaşılmasını sağlayan çalışmalardır.
Tasarım : İsteklerle ilgili olarak belirlenen bir takım çözümlerin tanımlanmasıdır.
Programlama Stili : Her yiğidin yoğurt yiyişi farklıdır. Aynı şekilde her programcı programındaki mantığı farklı kurar bu her programcının kendine özgün bir stili var anlamına gelir. Ancak bunun yanında Her programcının programın sağlığı bakımından dikkat etmesi gereken şeyler vardır. Örneğin kodlar açık olmalıdır. Kullanılan değişkenler kullanıldıkları amacı anlatır tarzda isimlendirilmelidir. Program içi dokümantasyona mutlaka önem verilmelidir.
Algoritma : Çözümün adımlarla ifade edilmesidir. 
Akış Çizgesi : Algoritmanın şekillerle ifade edilmesidir.
Programlama Dili Seçimi : Çözümün netleşmesinden sonra yapılacak işlemleri kolay bir şekilde bilgisayar ortamına aktaracak dilin seçilmesidir. Önemli olan bu dilin özelliklerinin programcı tarafından iyi bilinmesidir.
Programın Yazılması : Seçilen Programlama dilinin kuralları kullanılarak program yazılmaya başlanır. bu amaçla çoğunlukla sade bir metin editörü kullanılır. Bazı durumlarda Syntax highlighting denilen bir özelliğe sahip olan daha akıllı editörler de kullanılabilir. Bazen de editör ile Programlama dilinin derleyicisinin, bağlayıcısının hatta hata ayıklayıcısının iç içe bulunduğu IDE (Integrated Development Environment) denilen türde derleyiciler kullanılır.
Derleme : Programlama Dili ile yazılmış programın yazım hatalarının olup olmadığının kontrol edilmesini ve ara kod olarak Obje kodun üretilmesini sağlama adımıdır.
Bağlama : Derlenmiş ara kod diğer kütüphane ve parça programlarla birleştirilerek Makine dilinde programın oluşturulması adımıdır. Ancak bazı IDE ortamlarda ve derleyicilerde Derleme ve Bağlama bir bütündür ve beraberce halledilirler. Programcının ayrıca bir bağlama işlemi yapması gerekmez işlemi yapması gerekmez.
Çalıştırma : Oluşturulan Makine dili Programının çalıştırılması adımıdır. Yukarıdaki adımların hepsi yolunda gittiyse program sorunsuz olarak çalışabilmelidir.
Test : Programın Mantıksal olarak test edilmesini sağlar ve içerik olarak her ihtimal için doğru sonuçlar üretip üretmediğini kontrol etmenizi sağlar. 

Yaşam Döngüsünün Sağlanması : Yukarıdaki Akış Çizgesi dikkat edilirse aslında bir döngüdür. Hatta test aşamasında sorun çıkmazsa bile Sorunun tanımında yani ihtiyaçlarda bazı değişiklikler olursa adımlar baştan aşağı tekrar incelenmek zorunda kalınır. Bu çizgeye bir Yazılımımın Yaşam Döngüsü de denilebilir. Bu çizimde Yazılımın Bakım süreci göz önüne alınmamıştır. 


Hata Yakalama ve Ayıklama 

Bir Programın bilgisayar başında geçen geliştirme süreci yukarıdaki gibidir. Bu çizimde kırmızı-turuncu renkle gösterilen kısımlar hata durumlarını göstermektedir.

Syntax Error : Yazılan programda programlama dili kurallarına aykırı bir takım ifadelerden dolayı karşılaşılabilecek hatalardır. Düzeltilmesi son derece basit hatalardır. Hatanın bulunduğu satır derleyici tarafından rapor edilir. Hatta bazı derleyiciler hatanın ne olduğunu ve nasıl düzeltilmesi gerektiğini dahi bildirebilirler. Bazen Syntax Error tipi hataları Bağlama zamanında da ortaya çıkabilir.
Eğer bir derlemede Syntax Error alındı ise obje kod üretilememiştir demektir.
Soru: Bir Derleyici hatanın nasıl düzeltileceğini bildirebildiğine göre kendisi niçin düzeltmemektedir?
Run-time Error : Programın çalıştırılması sırasında karşılaşılan hatalardır. Programcının ele almadığı bir takım aykırı durumlar ortaya çıktığında programın işletim sistemi tarafından kesilmesi ile ortaya çıkar. Bu tip hatalarda hata mesajı çoğunlukla çalışan işletim sisteminin dili ile verilir. Eğer bu tip hataları kullanıcı ele almışsa, program programcının vereceği mesajlarla ve uygun şekilde sonlandırılabilir.
Bu tip hataların nerelerde ve hangi şartlarda ortaya çıkabileceğini bazen kestirmek zor olabilir. Çoğunlukla işletim sistemi ve donanım kaynakları ile ilgili sorunlarda bu tip hatalar ortaya çıkar demiştik. Örneğin olamayan bir dosya açmaya çalışmak, var olan bir dosyanın üzerine yazmaya çalışmak, olmayan bir bellek kaynağından bellek ayırtmaya çalışmak, olmayan bir donanıma ulaşmaya çalışmak vs. vs. vs.
Logical Error : Karşılaşabileceğiniz en tehlikeli hatadır. Programlama mantığında bir takım şeylerin yanlış düşünülmesinden kaynaklanır. Hata test aşamasında ortaya çıkar. Hesaplanması gereken veya bulunması gereken değerlerin eksik veya yanlış hesaplanması ile tespit edilir. Bu sorunun giderilebilmesi için Tasarım hatta çözümleme aşamasına geri dönülmesi gerekebilir. Bazen bu hatanın nereden kaynaklandığını bulabilmek çok zor olmaktadır.

Bug : Logical Error diyebileceğimiz Mantıksal hatalara verilen adlar bug yani böcek diye de tanımlanmış olabilir. Bu tip hatalar eğer çok net değil ve zamanla ortaya çıkabiliyor ise veya nedeni çok net olarak anlaşılamamışsa bug diye adlandırılır. Gerek serbest yazılım gerek ticari yazılımların tümünde bug dediğimiz mantıksal hatalar bulunur. Çünkü hatasız program yazabilmek çok zordur. İlk seferde yazılan bir programın tamamen hatasız olmasını beklemek son derece hatalıdır. Günümüzde en meşhur yazılım firmaları bile yazılımlarında bug olduğunu kabul eder ve zaman zaman bu bugları giderebilmek için ya yazılımlarına yama yazılımı üretirler yada o yazılımın yeni bir versiyonunu piyasaya sürerler.
Debug : Mantıksal hataları giderebilmek ve yazılımdaki bug'ları bulabilmek için yapılan işlemin adıdır. Genellikle yazılan programın adım adım ve denetim altında çalıştırılmasıdır. Programın her adımında ilgili değişkenlerin hangi değere sahip olduğunu görmeyi sağlar. ve anormal bir durumu daha kolay izleyip bulmanızı sağlar. Bu işlemi gerçekleştirebilmek için bazı IDE ortamlarında debugger dediğimiz yardımcı komut veya yaz 

13 Mart 2019 Çarşamba

Programlamaya Giriş ve Algoritmalar Ders Notları - 1


Genel Programlama Bilgisi
Bir Programcının Program yazabilmesi için yapması gereken çalışmalar ve bilmesi gereken ön bilgilere ihtiyacı vardır. Çünkü bir problemin bilgisayar ortamında çözülmesi maalesef hazırlıksız olarak ve hızlı bir şekilde gerçekleşemez. Her şeyden önce programlama bir süreçtir ve programın yazılıp bitmesi ile bitmez çoğunlukla programın yaşadığı süre içerisinde değişik şekillerde devam eder.
Bu nedenle Program yazılmadan veya problem çözülmeye başlamadan önce bazı adımları sağlam atmak gerekir. Bir çok zaman bu adımlar raporlarla belgelendirilir. Çünkü yazılımın yaşam döngüsü boyunca bu raporlara veya başlangıç adımlarına ihtiyaç duyulabilir.

9 Mart 2019 Cumartesi

Görüntü İşlemi Nedir? Filtreleme Yöntemleri ve Görüntü İşlemenin Tarihçesi

Görüntü İşleme, görüntüyü dijital form haline getirmek ve bazı işlemleri gerçekleştirmek için geliştirilmiş, spesifik görüntü elde etmek veya ondan bazı yararlı bilgiler çıkarmak için kullanılan bir yöntemdir. Bu yöntemin girdisi video kesiti ve ya fotoğraf gibi bir görüntüdür. Çıktısı ise görüntünün istenilen ya da dikkat edilmesi gereken bölümüne karşılık gelir.  Genellikle Görüntü İşleme sistemi, önceden belirlenmiş sinyal işleme( Signal Processing ) yöntemlerini uygularken görüntüleri iki boyutlu sinyaller olarak ele alır.

8 Mart 2019 Cuma

C# NEDİR VE NASIL PROGRAMLAMA YAPILIR ?

C#, yazılım sektörü içerisinde en sık kullanılan iki yazılım dili olan C ve C++ etkileşimi ile türetilmiştir. Ayrıca C#, ortak platformlarda taşınabilir bir (portable language) programlama dili olan Java ile pek çok açıdan benzerlik taşımaktadır . En büyük özelliği ise .Net Framework platformu için hazırlanmış tamamen nesne yönelimli bir yazılım dilidir. Yani nesneler önceden sınıflar halinde yazılıdır. Programcıya sadece o nesneyi sürüklemek ve sonrasında nesneyi amaca uygun çalıştıracak kod satırlarını yazmak kalır.

7 Mart 2019 Perşembe

Web Programlama Nedir ? Web Programlama Hakkındaki Bütün Bilgiler

Web programlama, bir meslek bölümü ya da bir tanımdan ibaret değildir. Her tanımlama bir sınırlamadır sözünden yola çıkarsak web progamlamayı sınırlamak pek mümkün değildir diyebiliriz. Öyledir ki bir web programcı birçok konuda bilgi ve deneyim sahibi olmalı ve bu bilgileri etkileşimli ve harmanlayarak kullanabilmeli ve kendini sürekli olarak güncellemelidir.Teoride bir web sayfanın tasarım, kodlama ve seo geliştirmesinin yapılması farklı kişiler üzerinde olması gerekse de çoğunlukla bir kod geliştiricinin az da olsa.Html, Html Dom, Css ve tasarım bilgisi olması beklenir.

5 Mart 2019 Salı

Algoritma Nedir ? Algoritma Çeşitleri Nelerdir ?

Bir sorunu çözmek veya belirlenmiş bir amaca ulaşmak için tasarlanan yola, takip edilen işlem basamaklarına algoritma denir. Algoritmalar açıkça belirtilmiş bir başlangıcı ve  sonu olan işlemler kümesidir. Amaca ulaşmak için işlenecek çözüm yolları ve sıralamaları belirlenir ve algoritma bu sırayı takip ederek en mantıklı çözüme ulaşır. İlk algoritma, El-Harezmi’nin ‘Hisab-el Cebir ve El Mukabala’ kitabında sunulmuştur ve algoritma kelimesi de El-Harezmi’nin isminden gelmiştir. Algoritma terimi genellikle matematikte ve bilgisayar bilimlerinde karşımıza çıkmaktadır.

9 Şubat 2019 Cumartesi

Arduino Programlama ile Hesap Makinesi Yapımı

Roma’da, Yunan’da, Mısır ve Çin’de değişik şekillerde ve değişik boyutlarda matematiksel hesaplamaları kolaylaştırıcı hesap makineleri bulunarak insanlığın hizmetine sunulmuştur. Milattan önce 560 yılında, Pythagoras çarpım tablosunu bularak insanların çok daha kısa sürede çarpma işlemini yapabilmelerini sağlamıştır. O tarihten buyana insanların zihninde özel bir yere sahip olan çarpım tablosu, çok kısa sürede zihinden çarpma işlemini yapamaya olanak tanımıştır. Çarpım tablosu günümüzde halen önemini koruyan ve kullanılan bir tablodur. Orta çağda değişik hesap tabloları kullanılmış ancak hiçbirisi istenilen amaca ulaşmayı sağlayamamıştır.

16 Aralık 2018 Pazar

MVC nedir ? Test İşleminde yararlı mıdır ?

MVC, uygulama geliştirmede (özellikle web uygulaması  ve  mobil uygulama  geliştirmede(Swift)) önemli yere sahip mimari desenlerden biridir. Günümüzde MVC denince akla Microsoft’un geliştirdiği ASP.NET MVC Framework gelmektedir, oysa 1979 yılından beri (Microsoft 1975 yılında kurulmuştur) yazılım dünyasında yer almaktadır.
MVC, Model , View , Controller kelimelerinin baş harflerinden oluşur ve her kelime MVC’nin farklı bir katmanını ifade eder. Bu katmanlar arasındaki bağlantılar test sürecini iş süreçlerini birbirinden ayırmaktadır.

14 Aralık 2018 Cuma

Encryption nedir ? Hackerların tercih yöntemleri nelerdir?

Sertifika süreçlerinde çok fazla karşımıza çıkan public-private key ve developer sertifika işlemine ön hazırlık olması açısından bu yazımda Encryption’ı basit olarak anlatmayı tercih ettim.
Kriptografide Encryption(şifreleme), bilginin veya bir mesajın sadece yetkili tarafından erişilebileceği şekilde kodlandığı bir güvenlik yöntemidir. Encryption, önemli verilerin hackerlar tarafından çalınmadığından ya da değiştirilmediğinden emin olmak için kullanılır. İki tip encryption vardır. Bunlar Symmetric (Simetrik) ve Asymmetric(Asimetrik) encryption’dır. İlk olarak symmetric encryption’a bakalım.Hassas bir veriyi symmetric encription yöntemi ile güvenli bir hale getirdiniz ve alıcaya bu veriyi iletiriz. Alıcıya bu veri şifreli bir şekilde iletilir. Ancak veriye ulaşabilmesi için şifrelediğiniz anahtarı bilmesi gerekir. Bu anahtarı alıcıya ilettiğinizde bu veriye erişebilir fakat bu anahtarı iletirken güvenlik açığı vardır. Araya giren bir hacker’da bu anahtarı alıp bu veriye erişebilir. Veriyi güvenli bir şekilde karşı tarafa iletmemiş oluruz. Burada ki problemi Asymetric Encrytion ile çözüyor.

Asymmetric Encryption gerçek dünyada bir posta kutusuna benzetilebilir. Posta kutunuz adresinizi bilen herkese açıktır ve size birşeyler gönderebilirler. Bu posta kutusuna gelenlere sadece siz ulaşabilirsiniz. Peki arka tarafta bunu nasıl şifreleyerek güvenli hata getirilebilir ve asymmetric encryption nasıl çalışır bakalım. Asymmetric encryption RSA algoritmasını ile üretilen public-private key çiftini kullanır. Kullanıcılar şifresini çözmek için private key’i kendileri için saklamalı, ancak public key’i ise kendilerine gelen datayı şifrelemeleri için diğer kullanıcılarla paylaşmalıdır. Yani posta kutusu örneği ile bu durumu tekrar açıklamaya çalışırsak posta kutusuna gönderilecek mektupu adresin sahibinin public key ile şifreleyip göndeririz. Posta kutusundaki mektubu alan kişi kendi private key’i ile bu mektubun içeriğine ulaşabilir. Basitçe bu şekilde açıklayabiliriz. Burada dikkat edilmesi gereken Private Key’i güvenli bir yerde saklamalıyız. Böylelikle araya giren bir hacker bu datayı ele geçirse bile sizin private key’inze sahip olmadığı için erişemez.Asymmetric Encryption güvenliği önemli olan iOS uygulamanızın imzalanması, HTTPS Web Site(SSL), PGP Protocol, SSH gibi bir çok yerde kullanılır.