Add to Technorati Favorites

28 Temmuz 2008 Pazartesi

Aritmetik İşlemler, Operatörler ve Bazı Önemli Durumlar

Bu yazımda basit manada aritmetik işlemler ve önceliklerinden, atama ve karşılaştırma operatörlerinden ve de pascalda program kodlamakla alakalı bir iki husustan bahsedeceğim.

Aritmetik İşlemler ve Öncelik Sıralaması

+, -, *, /, mod birkaç tane işlem operatörümüzdür.Bunlar kendi aralarında bir öncelik dizimindedirler. Öncelikleri sıralarsak;

( ) >> En yüksek
* / mod >> Parantezden sonra
+ - >> En düşük

Aynı öncelikli işlem operatörlerinde işlemler soldan başlanarak yapılır.Örneğin;
b*b-4*a*c >> 1.işlem b ile b'nin çarpılması
-------------- 2.işlem 4*a=4a
-------------- 3.işlem 4a*c=4ac
-------------- 4.işlem b²-4ac
-
Karşılaştırma ve Atama Operatörleri
-
>, <, >=, <=, = » malum durumlar; büyük mü, küçük mü, büyük eşit mi, küçük eşit mi, eşit mi?
<> » farklı mı?
and, or » ve , veya
:= » Atama operatörü; x:=a*b dediğimizde çarpımı x'e atar. Sadece = eşit mi kontrolü yaparken bu işaret atamayı yapar.
xor » durumlardan yalnızca biri doğruyken yani diğeri yanlışken geçerli olan bir koşul
ayrıca lojikte de bir kapı olarak;
-
a b çıkış
1 1 0
1 0 1 Farklı durumlarda 1 çıkışını verir.Şimdilik bilgi olsun sadece.
0 1 1
0 0 0
-
Birkaç Husus
-
*Değerleri tuttuğumuz değişken isimleri rakamla başlayamaz.
*Pascal'ın sabit kalıpları, döngüleri dışındaki satırlar birkaç istisna dışında ; ile bitirilmelidir.Kalıp, döngü ile kastetmek istediğimşeyi yazayım; değişkenleri tanımlayacağım var'dan sonra, if, for, begin, while, repeat'ten sonra ; konulmaz.Şimdilik biraz karışık gibi gözükebilir program yazdıkça çok basit şeyler olarak gözükecek ama basit gözüktükleri için ; koymayı unuttuğunuz zamanlar olacak mutlaka.
*End'den önceki satıra ; koymak şart değildir, eski derleyicilerde koymamak da şart olabiliyor, koymamak en iyisi bence,
*Else'den önceki satıra ; koymamalısınız.
*Program begin ile başlar End. ile biter.
*For döngüsünün içinde, if'in ayrı ayrı then ve else kolunun içinde birden fazla işlem varsa bu kalıplar begin ile açılıp end ile kapatılır ana program gibi.Bunu daha sonra göreceğiz.
*Her begin bir end ile sonlanmalıdır.Bazı durumlarda end sayısıyla begin sayısı uyuşsa bile bazı yerlere begin end koymadınız diye hata vermez ve bu yerler muhtemelen begin end isteyen yerlerdir.Program güzelce derlenir ama baktığınızda programın mantık hataları olduğunu görürsünüz.
--
Örneğin begin end koymadığınız bir for döngüsünün birkaç işlemi döngü dışında algılanır ve de bu yüzden işlemleriniz yanlış sonuç verir ama program derlenir ve çalışır siz de derlenmiş bir programın hatasını aramakla uğraşırsınız.
--
Şimdilik bu kadar dostlar bir dahaki yazıdan itibaren sanırım program örnekleri yazmaya başlayacağım.Pascal basit bir dil gibi gözükse de günümüz Türkiyesi'nde for döngüsünü bile bilmeye gerek olmadan besin döngüsünü bilerek bilgisayar mühendisliği kazanıldığı için(yanlış anlaşılmasın ben de öyle kazandım) pascal gibi insan diline çok yakın high level lang. dediğimiz bir dilin geçiş aşamasında öğretilmesi ve daha çok programlama zekasının açığa çıkarılmaya çalışılması bence önemlidir.Tabi bunun 1 sene öğretilmesi ne derece doğrudur tartışılır.Bu kelamın konusu YTÜ'dür..:)..Daha fazla uzatmayalım, görüşmek üzere ;)

27 Temmuz 2008 Pazar

koşul içeren diyagram

Bu yazımda neyi anlatacağıma pek karar verememiştim.Bir önceki akış diyagramında koşul için kullanılan kutucuğa yer vermemiştik.Bir tane de onla ilgili bir akış verip gelecek yazıda, bir önceki yazımda belirttiğim pascal programlama diline giriş bilgilerine, operatörlere değineceğim.

Bu akış diyagramı için de bir iki kelam edersek; en başta kullanıcıdan 3 değer alıyor görüldüğü gibi ve de bu üç değer arasında kıyaslama yaparak üçgenin tipini belirliyoruz. Kontrol kutucuğumuzu görüyoruz.A=B mi demişiz en başta eşitse A veya B farketmez eşit mi C'ye eşitse eşitkenar üçgen diye ekrana yazdırmışız değilse de diğer ikisi eşit olduğu için ikizkenar demişiz.

A=B değilse ne olacak A=C mi eğer böyleyse üçgen yine ikizkenar diye ekrana yazdırmışız.Şimdi çok basit bir örneği bile ele alıyor olsak bunun da az görülen bir noktası olabilir ki var o da A'nın C'ye de eşit olmadığı durum o zaman üçgenimiz çeşitkenar diyip ekrana yazdırmışız.Çok basit bir örneğimiz de olsa burada çeşitkenar durumunu unutmamak ileride bir dosya komutunda dosyayı 2 kişiden başka kimsenin açmaması istendiğinde, bu duruma kolayca çözüm üretebilmek için gerekli bir adımdır bence.

Görüntüde yazılar seçilemiyor olabilir, elimdeki kağıtları kullanmak istedim lakin çözünürlüğünü koruyarak oynayamadım üzerinde umarım yararlı olur..Bir dahaki yazımda dediğim gibi dil olarak birkaç hususa değinerek programların kodlanmasına geçeceğim..



26 Temmuz 2008 Cumartesi

INETA SUMMER HIT


Arkadaşlar merhaba,

Bu sıcak yaz günlerinde tatile gidemeyen yazılımcılara bir hafta sonu dopingi hazırladık; INETA Summer Hit 2008!

2-3 Ağustos tarihlerinde Yıldız Üniversitesi Beşiktaş Kampüsünde, Oditoryum’da gerçekleştirilecek bu etkinliğe katılanları ise farklı hediyeler bekliyor olacak.

Silverlight 2.0, Team Foundation Server, IE 8.0 Yenilikleri, Web Client Software Factory, LINQ ve Web 3.0 gibi konuların yer alacağı etkinliğin konuşmacıları ise; MVP’ler ve MSP’ler olacak.

Katılımın ücretsiz olduğu etkinliğin, detay programına ve kayıt sayfasına http://tinyurl.com/inetasummerhit adresi üzerinden erişebilirsiniz.

Bilgilerinize sunarız.
Sevgiler,
Ali R. Babaoğlan
-
-
2-3 Ağustosta yukarıdaki metinde de anlatıldığı gibi, biz YTÜ Bilişim Kulübünün ev sahipliğinde, güzel bir haftasonu etkinliğimiz var.Gelmek isteyenler link üzerinden kaydolmayı unutmasınlar..

örnek bir akış



Basit manada bir akış örneği şekilde gözüküyor.Kısaca özetlemek gerekirse start'la programın başladığını göstermiş, dışarıdan a,b değişkenlerini okumuş.Yani kullanıcı a,b değişkenlerinin değerini girmiş.Buradan sonra c değişkenine bu a ile b'nin toplamını atamış.Daha sonra c'yi ekrana yazdırmış ve programı stop'la bitirmiş.
-
Bu programı pascal dilinde kodlarsak;
-
Program toplam (input,output); {input,output artık gerekli olan bir terim değil ama yazalım.Burada programın ismini koyduk}
uses crt; {crt kütüphanesini çağırdık aşağıda kullandığımız clrscr komutu için gerekli bu kütüphane.}
var {variable yani değişkenlerin tanımlandığı bölüm}
a,b,c:integer; {a,b,c tamsayı ise yani 1,2,3 gibi değerlerse integer olarak tanımlanır, integer zaten türkçe manasıyla tamsayı demektir.}
Begin {programımız ana metninin başladığı yerdir}
Clrscr; {ekranı temizlemek için kullandık.program çalışmadan önce ms-dos ekranında yukarılarda birşeyler yazıyorsa temiz bir sayfa açmış olduk:) }
Writeln('iki sayi giriniz'); {Bu komutla ekrana iki tırnak arasındaki metni yazarız ve de bir sonraki satıra geçeriz.Eğer write ile yazsaydık alt satıra geçmezdi.}
Readln(a,b); {dışarıdan iki sayı okuyacağız.Readln yazdığımız için 1.sayı ardından enter, 2.sayı ardından enter şeklinde girilir.Ama read yazsaydık 1.sayı boşluk 2. sayı enter diyerek girebilecektik. }
c:=a+b; {dışarıdan okuduğumuz a,b değişkenlerini toplayıp c'ye atıyoruz.Atama soldaki değişkene yapılır.}
writeln(c); {c değişkenini ekrana yazdırıyoruz ve alt satıra geçiyoruz}
readln; {programı exe dosyasından açtığımız durumlarda işlemlerden sonra hemen kapanmasın biz bir tuşa basana kadar beklesin diye bu komutu koyuyoruz.Program bittikten sonra ekranı kapatmak için bizi bekliyor :) }
End. {programımızı sonlandırıyoruz ve noktamızı koyuyoruz.}
Program kodunu akışla beraber vermek istedim ama burada noktalı virgülleri itinayla koymak gerektiğine, :='de iki noktayı yanlışlıkla koymadığıma = işlemi operatörünün böyle olduğuna v.s.'ye değinmedim ama onları ve diğerlerini de daha sonra belirteceğim..{belirttin zaten demeyelim var biraz daha :)) }

25 Temmuz 2008 Cuma

Akış diyagramı, flow chart

Evet arkadaşlar uzun bir aradan sonra tekrar pascal dilini anlatabilecek vakit bulabildim.Eğer bir terslik olmazsa pascal diliyle beraber bilgisayarda karşılaşabileceğiniz sorunların çözümlerine de bu alanda yer vereceğim.


Pascal dilinden genel manada bahsetmiştim önceki 2 yazımda. Burada ise akış diyagaramının öğelerini görüyoruz.Akış diyagramı daha çok başlangıç aşamasında kullanılan bir uygulamadır. Programın tasarımı olarak nitelendirebiliriz. Kafanız sıkıştığı zaman akış diyagramında neyin nereye gittiğini görerek sıkıntıdan kurtulabilirsiniz. Ama 1000 satır kodla yazılacak bir programın akışını çizmek kolay olmayacağı için orta seviyeden sonra kullanmak istemez çoğu kimse.Ama genel bir diyagram bile olsa diyagram çizmek bence önemlidir. Çünkü programda sıkıştığınız zaman bu yol gösterici çok işinize yarayacaktır.


Şimdi akışta şekillerin ne anlam ifade ettiğini anlatayım.


Bu biraz kare gibi olmuş olsa da aslen kenarları biraz daha yuvarlak çizilebilir.:)..Ama çok da mühim değil.Programın başlangıcını ve bitimini gösterir..(start-stop).


Her türlü hesaplama atama işlemi bu kutunun içerisinde gösterilir.Örneğin alan diye bir değişkenimizi alan=piXr² işlemiyle burada değiştiririz.


Bu işaretimiz ise dışarıdan bilgi okuduğumuzu gösterir.Bunun içinde "a"
isimli değişken varsa dışardan a'nın karşılığını, değerini burada okuyoruz demektir.


Bilgi çıkışı bu işaretle gösterilir yani bir önceki işaretin tam tersi.İçinde "a" isimli bir değişken varsa diyelim ki değer 25 olsun; burada 25 ekrana yazdırılır.


Kodumuzda geçecek olan karşılaştırmaları bu kutuyla gösteriyoruz bunun içinde a=b yazıyorsa karşılaştırdığımız durum a b'ye eşit mi durumudur, program; eşitlikte T(true), farklı değer durumunda F(false) kolunu izleyecektir.

Bu bilgileri bir sonraki yazıda program akışında anlatacağım.Orada daha güzel gözükeceğini umuyorum.

Akış diyagramının parçalarını Byte Online yazarı olan Mustafa Menteşoğlu'ndan aldım alıntıdır diyelim.Ama metin el emeği göz nurudur :))..

22 Mayıs 2008 Perşembe

cika off pascal on

Canim asagidaki cikayi yayindan kaldirmak istedi niyeyse:-)..Fazla edebiyat yapmisim:-)..saygilar..

6 Mart 2008 Perşembe

Pascal Dilinin Yapısı

Pascal programlama dili high level bir dildir.Peki high level-yüksek seviye dil ne demektir?Programlamaya yeni başlamış birisinin anlayacağı manada kaliteli dil demek değildir bu.Diller insana ve makineye yani bilgisayara yakınlıklarına göre adlandırılırlar.Pascal programlama dilinde programlar metin yazar gibi yazıldığı için (oku komutu için read ve readln yazmak gibi) insana daha yakındır ve de bundan dolayı high level diye adlandırılır.Cobol ve Fortran da ek bilgi olarak buna örnek gösterilebilir.High Level dillerin derlenmesi (compile edilmesi) örneğin assembly diline göre daha yavaştır.Sebebi makine diline uzak olması ve de önce assembly diline dönüştürülüp sonra makine diline dönüştürülmesidir.Pascal dilindeki genel bilgilere biraz daha giriş yaptığım bu yazıdan sonra algoritmayı ve algoritmada giriş, çıkış, işlemler v.s.nin hangi şekillerle ifade edildiğini göstermeye çalışacağım.