Programlama (Hatırlamalar) Yard.Doç.Dr. Cihad DEM İ RL İ Sunu İ çeri ğ i Kayna ğ ı: Vatansever, F. (2010). Algoritma Geliştirme ve Programlamaya Giriş, (7. Baskı), Seçkin Yayıncılık, Ankara
Program nedir? İ şlenecek de ğ erler ve kullanılacak çözüm yöntemleri; bilgisayara, insan tarafından program ile bildirilir. İ nsanla bilgisayar arasındaki iletişim aracıdır. 2
Program nedir? Program; giriş de ğ erlerini kullanarak istenilen çıkış de ğ erlerinin elde edilebilmesi için bilgisayara iletilen komutlar dizisidir. 3 Veri Bilgisayar Program İ nsan Sonuç
İ şlemler Programlar ile gerçekleştirilen işlemler üç gruba ayrılır: ◦ Matematiksel (aritmetik) işlemler ◦ Karşılaştırma (karar) işlemler ◦ Mantıksal (lojik) işlemler 4
Matematiksel İ şlemler İşlemMatematikBilgisayar Toplama a + b Çıkarma a - b Çarpma a. b a * b Bölme a ÷ b a / b Üs alma a b a ^ b 5
Matematiksel İ şlem Öncelik Sıraları İşlem öncelik sıraları SıraİşlemBilgisayar dili 1Parantezler((……)) 2Üs almaa^b 3Çarpma ve bölmea*b ve a/b 4Toplama ve çıkarmaa+b ve a-b 6
Karşılaştırma İ şlemleri Matematiksel işlemlerin yanı sıra karar modelleri de söz konusudur. Bu nedenle kararlara ilişkin bazı operatörler kullanılmaktadır. 7
Karşılaştırma İ şlemleri İşlem SembolüAnlamı =Eşittir <>Eşit değildir >Büyüktür <Küçüktür >= veya =>Büyük eşittir <= veya =<Küçük eşittir 8
Mantıksal İ şlemler Aritmetik ve karşılaştırma işlemlerinin sonuçlarını alabilen bilgisayar, temel mantık işlemlerini de yerine getirebilir. Bunlar; VE, VEYA, DE Ğİ L 9
Mantıksal İ şlemler Mantıksal İşlem KomutMatematiksel Sembol VEAND. VEYAOR+ DEĞİLNOT‘ 10
Program Yazma Adımları 1. İ ş/problem iyice irdelenir. 2. Programlamaya en uygun (en az komutla, en kısa sürede, en do ğ ru-hassas sonuç) çözüm yolu seçilir/belirlenir. 3. Programın algoritması hazırlanır veya akış diyagramı çizilir. 4. Algoritma veya akış diyagramı, programcının bildi ğ i veya tercih etti ğ i bir programlama diliyle kodlanarak program oluşturulur. 11
Algoritma ve Akış Diyagramı Algoritma, bilgisayardaki bir işlemin/işlemlerin gerçekleştirilmesinde izlenecek adımlar dizisine denir. Algoritmanın özel geometrik şekillerle çizilmiş hali de “akış diyagramı” olarak adlandırılır. 12
13 Algoritma (Ardışık Çarpma Örnek) Klavyeden girilen N sayısının faktöriyelini hesaplayan programın algoritmasını yazınız. 1. Başla 2. N sayısını gir 3. Faktoriyel=1 4. S=0 5. E ğ er S>N-1 ise git 9 6. S=S+1 7. Faktoriyel=Faktoriyel*S 8. Git 5 9. Yaz Fak 10. Dur
Akış Diyagramı Kullanılan Şekiller Başla / Dur Başla ve Dur işaretleri standarttır. İ şlemler bu iki şekil arasında açıklanır. BaşlaDur
Akış Diyagramı Kullanılan Şekiller Veri girişi Dışarıdan veri girişini temsil eder. Şeklin içine klavyeden girilecek de ğ erin aktarılaca ğ ı de ğ işken(ler)in ismi yazılır. Birden fazla de ğ işken ismi girilmesi istendi ğ inde de ğ işkenler virgül ile ayrıştırılır (örn. A,B,C) Veri
Akış Diyagramı Kullanılan Şekiller İ şlem Programın çalışması sırasında yapılacak işlemler yazılır. İ şlem cümleleri şekil içerisine aynen yazılır. Birden fazla işlem aralarına virgül konarak yazılabilir. İ şlem
Akış Diyagramı Kullanılan Şekiller Döngü Döngü de ğ işkeni= başlangıç de ğ eri, bitiş de ğ eri, adım i=1,N,1 İ şlem Belirli işlem bloklarının ardışık de ğ erlerle ve bazı koşullar sa ğ layıncaya kadar tekrarlanması için kullanılır.
Akış Diyagramı Kullanılan Şekiller Döngü (Artan) Başlangıç de ğ eri, bitiş de ğ erinden küçüktür ve adım de ğ eri (+) pozitiftir. I = 1,20,3
Akış Diyagramı Kullanılan Şekiller Döngü (Azalan) Başlangıç de ğ eri, bitiş de ğ erinden büyüktür ve adım de ğ eri (-) negatiftir. j = 30,4,-2
Akış Diyagramı Kullanılan Şekiller Döngü ( İ ç içe) i=1,N,1 İ şlem j=1,N,1 İ ç döngü Dış döngü
Akış Diyagramı Kullanılan Şekiller Karar (Karşılaştırma) arar verme (kontrol etme, karşılaştırma yapma) işlemlerini temsil eder. Koşul İ şlem 1 İ şlem 2 E H
Akış Diyagramı Kullanılan Şekiller Yazdır/Çıktı Ekrana veya yazıcıya bilgi/veri yazdırmak için kullanılır. Yazdır
Akış Diyagramı Kullanılan Şekiller Ba ğ lantı Farklı yerlere dallanan işlem akışlarını toplamak Akış diyagramı bir sayfaya sı ğ dırılamadı ğ ında di ğ er sayfadaki akış diyagramı ile ba ğ lantı kurmak Parça parça çizilen akış diyagramları arasında ba ğ lantı yapmak
Akış Diyagramı Kullanılan Şekiller İ şlem akış yönleri İ şlem akışının hangi yönde oldu ğ unu göstermek amacıyla kullanılırlar.
Akış Diyagramı Bir Örnek Başla T=0 I=1,2,1 T=5 J=1,3,1 T=T+I*J T Dur
26 Algoritma/Akış diyagramı Avantajları Program yazmayı kolaylaştırır. Hatalı kodlama oranını azaltır. Program yazımı için geçen süreyi kısaltır. İ şlem akışını bir şekilde gösterdi ğ inden program kontrolünü kolaylaştırır. Sonradan yapılacak düzenlemelerde kolaylıklar sa ğ lar.
Programlamada Veri Tipleri VER İ Sayısal Tamsayı Ondalıklı sayı Alfasayısal Karakter Karakter dizisi
Sayısal veriler Sayısal a ğ ırlı ğ ı (de ğ eri) olan verilerdir. 10 veya 16 tabanında ya da üstel biçimde aktarılabilir. Sayının hangi tabanda oldu ğ unu belirtmek için sayının önüne belirli simgeler/karakterler yazılır. TabanC++ 10 (decimal)- 16 (hexadecimal)0xsayı veya 0Xsayı Üsteleüs veya Eüs
Alfasayısal veriler Herhangi sayısal a ğ ırlı ğ ı (de ğ eri) olmayan verilerdir. Harfler, kelimeler, cümleler ve simgeler yer alır. Sayısal veri/bilgiAlfasayısal veri/bilgi 2010 İ stanbul -222C 1.78: 326“1978”
Sayısal veri tipleri Tamsayı veri tipleri Veri tipiEn küçükEn büyükKapladı ğ ı alan (byte) byte02551 sbyte short int long
Sayısal veri tipleri Ondalıklı sayı veri tipleri Veri tipiEn küçükEn büyük Kapladı ğ ı alan (byte) Duyarlılık (hane) float 3, , 77 double 1, , 15
Sayısal veri tipleri Tip sıfatları Veri tipiEn küçükEn büyükKapladı ğ ı alan (byte) Unsigned short Unsigned int Unsigned long Long double 1, , Tip sıfatıAnlamı Signed İ şaretli Unsigned İ şaretsiz ShortKısa LongUzun
Alfasayısal veri tipleri Alfasayısal veriler dizi şeklinde de kullanılabilirler Veri tipiTanımlama charchar de ğ işken [n] stringstring de ğ işken Veri tipiKapladı ğ ı alanKapasite/duyarlılık decimal8 byteFinansal bilgi (28 hane) bool1 bytetrue / false
Tip Dönüşümü Bilinçsiz tip dönüşümü Küçük büyük Büyük küçük İ ste ğ e ba ğ lı tip dönüşümü (dönüştürülecek_tip) de ğ işken_ya_da_sabit [ToString() metodu ve System.Convert sınıfı kullanımı]
Tip Dönüşümü TipDönüşebilece ğ i tipler sbyteshort, int, float, long, double, decimal byteshort, ushort, int, unit,long, ulong,float,double,decimal shortint,long,float,double,decimal ushortint,unit,long,ulong,float,double,decimal intlong,float,double,decimal unitlong,ulong,float,double,decimal long,ulongfloat,double,decimal charushort,int,unit,long,ulong,float,double,decimal floatdouble
Tip Dönüşümü TipDönüşemeyece ğ i tipler booldecimal, double herhangi bir tipchar floatherhangi bir tip (double hariç) decimalherhangi bir tip checked {} kontrol mekanizması unchecked {}
Operatörler (?) Önceden tanımlanmış matematiksel ya da mantıksal işlemleri yapmak için kullanılan özel karakterler toplulu ğ udur. Bir, iki ya da daha fazla karakterden oluşurlar. Operatörler operandlara ihtiyaç duyalar ◦ (Örn. ++ operatörü bir a operandına ihtiyaç duyar ++a gibi…)
Operatörlerin Sınıflandırılması (Yapılarına göre) Unary (tek operand) (),[],++(ön ekli),--(ön ekli),(son ekli)++,(son ekli)--,+,-,!, ,new,checked,unchecked,typeof,sizeof Binary (iki operand) *,/,%,+,-,, =,as,is, >,==,!=,&,^,&&,=,*=,/=,%=,+=,- =, >=,&=,^= Ternary (üç operand) ?:
Operatörlerin Sınıflandırılması ( İ şlevlerine göre) Aritmetik ◦ +,-,*,/,%,++,-- Karşılaştırma ◦, =,==,!=,as,is Mantıksal ◦ ||,&&,! Bitsel ◦ |,&, ,^, > Atama ve İ şlemli Atama ◦ =,*=,/=,%=,+=,-=, >=,&=,^= Özel Amaçlı ◦ ?:,(),[],+,-,&,*,., new,checked,unchecked,typeof,sizeof
devam edecek…