soyluhack
Would you like to react to this message? Create an account in a few clicks or log in to continue.

Programlama bilgi

Aşağa gitmek

Programlama bilgi Empty Programlama bilgi

Mesaj tarafından ufukkucukcavus Perş. Mayıs 01, 2008 11:22 am

İÇERİK:


Program nedir? Programlama dili nedir?
Programlama süreci ve akış şeması sembolleri
Programlama dillerinin düzeyleri (Dil kuşakları)
Belli başlı yüksek seviyeli programlama dilleri
Algoritma geliştirme
Değişken kavramı
Atama işlemleri
Aritmetik operatörler, öncelikleri; örnekler
Algoritma yazma – örnek problemler





PROGRAM NEDİR? PROGRAMLAMA DİLİ NEDİR?



Program, yapılmasını istediğiniz işlemleri bilgisayara bildirdiğiniz adım adım komutlar kümesidir. Bilgisayara istediğiniz işlemleri bildirme yolunu sağlayan kurallar kümesi bir programlama dilini oluşturur. Pek çok programlama dili vardır.


EBT-II dersinde belirli bir programlama dilini değil; programlama sürecini ve istediğiniz işlemleri bilgisayara yaptırmak için nasıl mantık geliştireceğini öğreneceksiniz. Bir işin nasıl yapılacağını düşünmek, tasarlamak algoritma geliştirmektir. Değişik kişiler aynı iş için değişik algoritmalar geliştirebilirler. Algoritma geliştirip bunu bir akış şeması ve/veya günlük Türkçe ile ifade ettikten sonra belirli bir programlama diliyle kodlamak gerekir. Şimdi öncelikle programlama sürecine bakacağız.



PROGRAMLAMA SÜRECİ


Bir program geliştirmenin ilk adımları herhangi bir problem çözme işinin adımlarına benzer. Öncelikle problem tanımlanmalı ve sonra çözüm planlanmalıdır. Daha sonra programın işe uygun bir dille kodlanması, sınanması ve belgelenmesi gerekir.


Problemin tanımlanması: Programı talep eden / kullanacak olan kişilerle görüşerek, NE istediklerinin, giriş ve çıkış aygıtlarının, istedikleri rapor formatlarının belirlenmesi ve bunlar üzerinde yazılı anlaşmaya varılması aşamasıdır. Basit bir aşama değildir.


Çözümün planlanması: Çözümün planlanmasında akış şeması (“flowchart”) çizilebilir, veya günlük dille adımlar yazılabilir (“pseudocode”) veya her ikisi birden yapılabilir.
Akış şeması, düşünülen çözümün adım adım ve görsel ifadesidir. En basit şekliyle dikdörtgen kutulardan ve oklardan oluşur. Akış şeması sembolleri ANSI (American National Standards Institute) standardı olarak belirlenmiş ve tüm dünyada kullanılmaktadır.





3) Programın kodlanması: Çözümün bir programlama diliyle ifade edilmesi akış şeması ve/veya pseudocode ile ifade ettiğiniz mantığın (algoritmanın) programlama diline tercüme edilme işidir. Kullanacağınız dilin tüm kurallarını doğru olarak takip etmeniz gerekir. Hiçbir yazım hatası yapmadan programınızı kodlamanız programın hatasız yani istediğiniz sonucu verecek biçimde çalışmasını gerektirmez. Çünkü dili doğru kullanmanıza rağmen mantık hataları (“logic errors”) yapmış olabilirsiniz. Ancak, dilin kurallarının doğru kullanımı, kodlamada gerekli ilk adımdır.


4) Programın sınanması (“testing the program”) – Genellikle, program ne kadar dikkatli kodlanırsa kodlansın, ilk çalıştırmada bir takım derleme hataları (“compilation errors”) alınması kaçınılmaz olabilir. Derleme aşaması hatasız geçilmeden çalıştırma (“run”) aşamasına geçilemez. Alınması olası hataları mümkün olduğunca azaltmak ya da yok etmek için programımızı kodladıktan sonra kontrol etmeliyiz (masa başı kontrol).


masa başı kontrol: yazdığımız kodun masa başında izlenmesi, kontrolu. Diğer bir deyişle, programdaki her cümlede değişkenlere örnek değerler verilerek koşul cümlelerinin, döngülerin vb. sınanması)


programın derlenmesi (“compilation”) – programcı ne kadar deneyimli olursa olsun bu adımda genellikle hatalar alınır / alınabilir. Bunları anlayıp düzeltmek gereklidir.


programın çalıştırılması (“run” aşaması): derleme hatalarından arınmış programı çalıştırıp istediğimiz/beklediğimiz sonuçları alıp almadığımızın kontrolu. Yani ‘programın mantığı doğru mu?’. Giriş değeri olarak bir takım örnek değerler verip programı çalıştırdıktan sonra değişik giriş değerleri vererek olabildiğince her koşulda programın çalışıp çalışmadığının kontrol edilmesi önemlidir.


5) Programın belgelenmesi (“documentation”): Genellikle ihmal edilen ancak ÇOK önemli bir aşamadır. Programınızın doğru olarak çalıştığından emin olduktan sonra


programın amacını,
nasıl çalıştığını / mantığını, akış şemasını,
kullanıcı tarafından nasıl kullanılacağını,
giriş bilgilerini (nasıl nereden verilecek, vb.),
çıkış bilgilerini, raporlama formatlarını,


ifade eden, ayrıca program listesini ve örnek çıktıları içeren bir doküman hazırlanmalıdır.
Bu doküman, programı talep etmiş kullanıcı grubuna verileceği gibi, ilerde değişiklik yapılacağı zaman ( sizin tarafınızdan veya başka bir programcı tarafından) çok yardımcı olacaktır. Programcıların en çok, hiçbir dokümantasyonu olmayan mevcut bir programı değiştirmeleri istendiğinde çok zorlanırlar.


PROGRAMLAMA DİLLERİNİN DÜZEYLERİ



Bildiğiniz gibi günümüzde pek çok programlama dili vardır. Bir dil, bilgisayarın kullandığı dile ( 0 ve 1’ler) ne kadar yakınsa o kadar alçak seviyeli, ne kadar uzaksa (yani konuştuğumuz dile yakınsa) o kadar yüksek seviyeli olarak adlandırılır. Buna göre, dil seviyelerine (veya programlama dili kuşakları ) bakacak olursak:


KUŞAK DİLLER: MAKİNE DİLLERİ: veri ve program komutları, bilgisayarın elektriksel devrelerinin açık veya kapalı durumuna karşılık gelen 1 ve 0’larla ifade edilir. Her bilgisayar türünün kendi makine dili vardır. Kodlamanın zor olduğu, hata yapmaya çok açık dillerdir. Bu durum daha kolay yazılabilir ve anlaşılabilir olan “assembly” dilinin geliştirilmesini sağlamıştır.


KUŞAK DİLLER: ALÇAK SEVİYELİ DİLLER - ASSEMBLY DİLİ: Günümüzde “assembly” dili çok alçak seviyeli olarak tabir edilir. Assembly dili ile yazılmış bir program, bir çevirici (translator veya assembler) ile makine diline çevrilerek çalıştırılır. Oldukça anlaşılabilir gözükmesine karşın çok basit bir iş için bile çok sayıda komut yazmak gerekmektedir. Kullanımı çok daha kolay olan dillerin ortaya çıkmış olması nedeniyle, neredeyse hiç kimse artık assembly ile program kodlamamaktadır. Ancak unutulmamalıdır ki bu dil ortaya çıktığında ileriye atılmış çok büyük bir adımdı.


KUŞAK DİLLER: YÜKSEK SEVİYELİ DİLLER: 1960’larda yaygınlaşmıştır. İngilizceye benzer ifadelerin kullanıldığı, aritmetik işlemlerde kullandığımız işaretlerin kullanıldığı, daha hızlı ve kolay program yazmayı sağlayan, programcının daha az çaba sarfettiği dillerdir Çok sayıda dil geliştirilmiştir: Pascal, Fortan, Cobol, Algol, PLI, C, C++, vb. Bu dillerin ifadeleri derleyici tarafından makine diline çevrilirler. Bu kuşak dillere “procedural” diller denmektedir. Bunun nedeni bu dillerle çözümün “nasıl” yapılacağını ayrıntılı olarak bildirmemizdir.


KUŞAK DİLLER: ÇOK YÜKSEK SEVİYELİ DİLLER: 3. kuşak bir diller onlarca yüzlerce satır halinde kodlanan bir pogram, 4.kuşak dillerle birkaç satırda ifade edilir. Çünkü bu dillerle sadece “NE” istediğimizi bildiririz, 3. kuşak dillerde olduğu gibi “NASIL” yapılacağını söylemeyiz. Örnek olarak LISP, SNOBOL, FORTH, SQL verilebilir. Bilindiği gibi SQL ilişkisel (“relational”) veri tabanı sistemlerinde yaygın olarak kullanılan sorgulama dilidir (“query language”).




BELLİ BAŞLI YÜKSEK SEVİYELİ PROGRAMLAMA DİLLERİ



Fortran - 1954’te IBM tarafından geliştirilmiştir. Daha sonra Fortran II, Fortran IV, Fortran 77, Fortran 90 sürümleri hazırlanmıştır. Mühendislik ve bilimsel uygulamalar için tasarlanmıştır. Matematiksel formüllerin ifade edilmesi son derece kolaydır. Mühendislik uygulamalarında hala yaygın olarak kullanılır.


COBOL – 1954 – Komutları İngilizceye yakın. Ticari uygulamalar için uygundur.Günümüz ticari uygulamalarının yarısı Cobol ile yazılmıştır.


PL/I – Hem bilimsel hem de ticari uygulamalara uygun. COBOL ve Fortran’ın bir çok özelliğini taşır.


Basic – 1965’te akademik ortam için, Dartmouth kolejinden Kemeny ve Kurtz tarafından geliştirilmiştir. İlk yıllarda derleyicisi bedava olduğundan çok yaygın olarak kullanılmıştır; ticari alanda, bilimsel alanda ve oyun yazımında.


Pascal – 1968 – İsviçreli Wirth geliştirmiştir. En çok kullanılan sürümü Borland firmasının Turbo Pascal'’dır. İş ve bilim hayatında kullanılmıştır.


C - 1970 - Bell Laboratuvarlarında geliştirilmiştir. Makine diline çevrilmesi kolay ve sistem yazılımları yazmaya çok uygun bir dildir. UNIX işletim sistemi C diliyle yazılmıştır.


C++ 1980’de AT&T firmasından Bjarne Stroustrup tarafından geliştirilmiştir.


1983 – 1989 ANSI, C’nin standart tanımını yaptı, 1990’da yayımlandı: ANSI/ISO 9899:1990


C++, C’ye birtakım ek özellikler ile nesne-yönelimli programlama (“object-oriented programming”) yetenekleri getirmiştir. Nesneler tekrar tekrar kullanılabilir yazılım bileşenleridir; yazılım geliştirmede büyük kolaylık (verimlilik) sağlarlar.

ufukkucukcavus
Admin

Mesaj Sayısı : 780
Kayıt tarihi : 30/04/08
Yaş : 32
Nerden : Regedit

https://soyluhack.yetkin-forum.com

Sayfa başına dön Aşağa gitmek

Programlama bilgi Empty Geri: Programlama bilgi

Mesaj tarafından ufukkucukcavus Perş. Mayıs 01, 2008 11:22 am

Diğer nesne-yönelimli diller:


Smalltalk - Nesne-yönemli (“object-oriented”) ilk programlama dili - Xerox’s Palo Alto Araştırma Merkezi


Java 1993’de WWW’nin yaygınlaşması ve popülerliği nedeniyle, Sun Microsystems’den James Goslin tarafından 1995 senesinde Web sayfası oluşturmak için geliştirilmiştir. İşletim sisteminden bağımsızdır.


Ayrıca Visual Basic, Delphi (Object Pascal), Power Builder, vb. de nesne-yönemlimli dillerdendir.





ALGORİTMA GELİŞTİRME
(akış şeması ve pseudocode ile).


Algoritma Nedir?



Algoritma: Bir problemin nasıl çözüleceğini söyleyen komutlar. Reçete. Problemi çözme planı.


Değişken kavramı:


Bir problemin çözümünde kullanılacak bir veri alanı farklı adımlarda farklı değerler içerekse bu alana değişken denir. Bir değişken, bellekte bir yer ifade eder. Hatırlayacağınız gibi bellekte her yerin bir adresi vardır ve ulaşmak için (okumak, değerini değiştirmek, vb) adresini kullanmamız gerekir. Ancak, bu yerin adresini bilemeyeceğimiz için, adres yerine sembolik bir isim veririz. A, B, X, TOPLAM, SAYI gibi. Değişkenlere verilebilecek sembolik isimlerin kuralları derleyiciden derleyiciye değişir ancak yine de genel olarak kabul etmemiz gereken kurallar şunlardır:


değişken ismi alfabetik bir karakterle başlar ( A – Z )
değişken ismi nümerik bir karakterle ( 0 – 9 ) veya özel bir karakterle ( !, /, ?, *, vb ) başlamamalıdır.
Değişken adı, programın kodlanacağı dile ait özel komutlarla aynı olmamalıdır (READ, END, IF gibi)
Türkçe karakter kullanılmamalıdır.


Atama işlemleri



Oku A ne anlama gelir?


Toplam = A + 5 ne anlama gelir?


Toplam = Toplam + 1 ne anlama gelir?




Aritmetik Operatörler (İşleçler)



Hemen tüm yüksek seviyeli dillerde aşağıdaki aritmetik operatörler geçerlidir.


+ toplama < küçüktür
Çıkarma <= küçük veya eşittir
/ bölme > büyüktür
* çarpma >= büyük veya eşittir
= eşitlik veya atama (C++’da eşitlik = = , atama = ile gösterilir)


Aşağıdaki operatörler dilden dile değişiklik göstermektedir:




^ veya ** üs alma
<> eşit değil ( C++’da != )
% modulus


Operatörlerin öncelikleri



Aritmetik işlemlerde operatörlerin önceliklerini bilmek ve doğru kullanmak doğru sonuç almak için önemlidir. Operatörlerin öncelik sırası aşağıdaki gibidir:


Parantez içleri en önce hesaplanır.
Daha sonra, çarpma, bölme, modulus işlemleri yapılır. Bir aritmetik ifadede birden fazla çarpma, bölme, modulus işlemi varsa, bu işlemlerdeki operatörler SOLDAN SAĞA doğru uygulanır. Çarpma, bölme, mod operatörlerinin önceliği aynıdır.
En son toplam ve çıkarma işlemleri yapılır. Bir ifade, birden fazla toplama ve çıkarma işlemi içeriyorsa, bunlara ait operatörler SOLDAN SAĞA uygulanır.





Aritmetik ifade Program yazarken




Algoritma Geliştirme Örnekleri

Aşağıdaki problemler için akış şeması ve günlük dil kullanarak algoritma geliştiriniz.



Bir sayı oku ve yazdır.


İki sayı oku, toplamını bul, yazdır.


Birden ona kadar sayıların toplamını bulacak bir algoritma geliştiriniz


Bir sayı okuyunuz; 50’den büyük veya eşit ise bu durumu uygun bir açıklamayla yazdırınız; 50’den küçük ise hiçbir şey yazdırmayınız.


İki sayı okuyunuz. İkisini karşılaştırarak hangisinin büyük, hangisinin küçük olduğunu veya eşit olup olmadıklarını bulup uygun açıklamalarla yazdırınız.


Birden ona kadar sayıların toplamını bulup yazdırınız.


Klavyeden girişi yapılacak pozitif sayıları okuyup bunların aritmetik ortalamasını bulup ekrana yazdıracak bir algoritma geliştiriniz. Kaç sayı okuyacağımızı bilmiyoruz. Sayıların bittiğini en sonda girilen –1 sayısı belirtecektir.

ufukkucukcavus
Admin

Mesaj Sayısı : 780
Kayıt tarihi : 30/04/08
Yaş : 32
Nerden : Regedit

https://soyluhack.yetkin-forum.com

Sayfa başına dön Aşağa gitmek

Sayfa başına dön

- Similar topics

 
Bu forumun müsaadesi var:
Bu forumdaki mesajlara cevap veremezsiniz