BİLGİSAYAR NEDİRbrahms.emu.edu.tr/babagil/bilg213-2010-2011 ders notlari.pdfBİLGİSAYAR NEDİR...

Preview:

Citation preview

BİLGİSAYAR NEDİRBilgisayar elektronik-digital bir alet olup, kendisine verilen ham bilgileri işlemcisi ve bellek yardımı ile işleyip (temelde 4 işlem yaptığını söyleyebiliriz), sonucunda kullanıcıya anlaşılır bilgi üreten bir makinedir.Bilgisayar, kullanıcıdan aldığı verilerle mantıksal ve aritmetiksel işlemleri yapan, yaptıgı işlemlerin sonucunu saklayabilen, sakladığı bilgilere istenildiğinde ulaşılabilen elektronik bir makinedir.Bilgisayarlar temel yapı itibariyle donanım ve yazılım olmak üzere iki kısımdan oluşmaktadır.Bilgisayar sistemi, fiziksel tüm parçalar (iç/dışdonanım) ve programları ile uyumlu çalışabilen ve işlem yapabilen birimin tümüne bilgisayar sistemi

20.10.2009 Dr. Mustafa T. Babagil 1

Bilgisayarlar temel olarak 2 kısımdan oluşmaktadır.

DONANIMBilgisayarların elle tutulur gözle görülür fiziksel olan kısımına donanım denilmektedir. Ör. Ekran, klavye, Sabit disk (harddisk), fare, yazıcı, bellek, mikroislemci, tarayıcı, ...

Bir bilgisayarın donanımı genel olarak dört ana bölümde incelenebilir. Bunlar, veri giriş birimleri, sonuç çıkış birimleri, hafızalar (bellekler) ve merkezi işlem birimi(CPU) olarak sayılabilir

20.10.2009 Dr. Mustafa T. Babagil 2

Bilgisayarlar 2 kısımdan oluşmaktadır.

• YAZILIMBir problemin bilgisayar yardımıyla

çözümünüsağlayan, çizim yapan, yazı yazan,

Internet’tegezinme işlemini gerçekleştiren her türlüprograma, bu programları hazırlayanprogramlara ve bunların ürettikleri veri veyabelgelere, hepsine birden yazılım denir.20.10.2009 Dr. Mustafa T. Babagil 3

DONANIM

1-)Veri giriş birimleriBelli kurallara göre düzenlenmiş verilerin ve komutların merkezi işlem birimine aktarılmasını sağlayan donanımlardır. En çok kullanılan giriş birimleri olarak klavye (key board), fare (mouse, optik okuyucu (optical reader), tarayıcı (scanner), kamera, barkod okuyucu, ses kayıt cihazı, ağa bağlı diğer bilgisayarlar ve yardımcı bellekler (sabit disk, disket ve kompakt disk) sayılabilir.

20.10.2009 Dr. Mustafa T. Babagil 4

DONANIM2-)Sonuç çıkış birimleriBilgisayar ortamında mevcut olan bilgileri belirtilen dış ortama aktarılması için kullanılan cihazlardır. Bu birimlerden bazıları aynızamanda giriş birimi olarak da görev yaparlar. Çıkış birimlerinden en çok kullanılanları ekran, yazıcı ve çizici olarak sayılabilir. Sabit disk, disket, kompakt disk, hoparlör, bilgisayar ağına bağlı diğer bilgisayarlar, faks-modem gibi cihazlar girişbirimi olduğu kadar aynı zamanda birer çıkışbirimi olarak da görev yaparlar.20.10.2009 Dr. Mustafa T. Babagil 5

DONANIM3-)Bellek (hafıza / memory), Bilgisayarlarda bulunan bütün verilerin, bilgilerin ve programların geçici ya da uzun vadeli olarak saklandığıbirimlere denir. Bilgisayar bellekleri dış bellek (yardımcı bellek) ve içbellek (ana bellek) olmak üzere ikiye ayrılabilir.

Dış bellekler, bilgisayarda bulunan bütün programların ve bilgilerin uzun süreli olarak depolandığı birimdir. İşletim sistemi programları ve uygulama programları bu birime kayıt edilerek kalıcı hale getirilir. Hart disk (sabit disk), disket (floppy disk), CD-ROM (compact disc –read only memory) ve USB (flash bellek) en yaygın kullanılan dışbelleklerdir.

İç bellekler, komutların, verilerin ve sonuçların bilgisayarın içinde aktif olarak bulunduğu yerlerdir. Herhangi bir veri ve o veriyi işleyecek olan program mutlaka belleğe yerleştirilmiş olması gerekir. Bilgisayarın çalışması sırasında programlar kullanılan ve üretilen bilgiler bu bellekte yer alır. Fakat bu bellekte bulunma işlemi geçicidir. Bilgisayarın kapatılması veya enerjinin kesilmesi durumunda bellekte kayıtlı olan bilgiler silinir. Ana bellekler yapılarına göre RAM (Random Access Memory) ve ROM (Read Only Memory) olmak üzere ikiye ayrılabilir

20.10.2009 Dr. Mustafa T. Babagil 6

DONANIM

– RAM, geçici bellek, ana bellek, direkt erişimli bellek olarak da anılır. Programların çalışmasını sağlar ve direkt olarak Merkezi İşlem Birimi ile bilgi alışverişi yapar. Sadece RAM’de bulunan program çalışıp işlem yapar, sadece RAM’de bulunan veri işlenir. Programı yüklemek, dosya açmak, aslında onu RAM’e yüklemek demektir.

CD sürücü Kasa DisketSürücü

Monitör Tarayıcı Hoparlör KlavyeKumanda Fare20.10.2009 Dr. Mustafa T. Babagil 7

DONANIM

ROM ise üzerine kayıtlı bilgilerin bir daha değişmesine izin verilmeyen bellektir. Bilgisayar imalatçıları tarafından içlerine bilgiyazılan bu bellek bilgisayar her açıldığında çalışma esaslarının yer aldığı komutların

devreyegirmesini ve işletim sisteminin de temel

programparçalarının RAM belleğe aktarılmasını

sağlar.20.10.2009 Dr. Mustafa T. Babagil 8

DONANIM4-)Merkezi İşlemci Birimi (CPU), bilgisayarın en önemli yapısını oluşturur. Verilerin işlendiği, önceliklerin belirlendiği, bütün birimlere görevlerinin hatırlatıldığı bölümdür. Mikroişlemci veya microprocessor olarak da adlandırılır. MİB’nin yaptığı görevler şu şekilde sıralanabilir: Önceden verilen komutları veriliş sırasına göre yapılan işlemleri denetler.Aritmetik ve mantıksal işlemleri gerçekleştirir.Giriş biriminden gelen komutların ve verilerin alınarak bellek bölümüne aktarılmasını sağlar.Sonuçların bellek ortamına veya istenen dışortama aktarılır.

20.10.2009 Dr. Mustafa T. Babagil 9

YAZILIM

Yazılım temel olarak iki ana başlık altında incelenebilir.1-Sistem yazılımları (İşletim Sistemi)İşletim Sistemleri (Operating System - OS), bilgisayar donanımının kullanımına ve düzenlenmesine imkân sağlayan, bilgisayar işlevlerini görecek şekilde kullanmaya hazır hale getiren, açık durduğu sürece kullanıcı ile bilgisayarın arasındaki iletişimi sağlayan programlar topluluğudur. Kişisel ve orta boy bilgisayarlarda kullanılan pek çok işletim sistemi vardır. OS-2, DOS, MOS (Machintosh Operating System), UNIX, XENIX, Windows 9X, Windows 2000, NT Wi d XP ö k l k l bili

20.10.2009 Dr. Mustafa T. Babagil 10

YAZILIM

2-Uygulama ProgramlarıBilgisayarı kullanarak günlük hayattaki bir işin görülmesini sağlayan her türülü yazılıma uygulama programı denir. Aslında sistem yazılımları, programlama dilleri ve belgelerin dışında kalan bütün yazılımlara uygulama programı denir. Bilgisayarda yazı yazmak (Word), resim yapmak (Paint), çizim yapmak (CorelDraw), internette dolaşmak (Explorer), oyun oynamak (Chess), müzik dinlemek (Media Player) gibi her işi yapan çok sayıda uygulama programı vardır. Aslında bilgisayarın maksadı da kullanıcılara uygulama programları vasıtasıyla yardımcıolmaktır

20.10.2009 Dr. Mustafa T. Babagil 11

PROGRAMLAMA DİLİBilgisayardaki her türlü yazılımın hazırlanmasını sağlayan programlara “programlama dili” denir. Kullanılan her türlüprogram mutlaka herhangi bir programlama dili ile hazırlanmıştır. Programlama dilleri kendilerine özgü kodlar kullanarak hazırlanan uygulama programlarının çalışmasını, dolayısıyla kullanıcının istediği amaçlar doğrultusunda program hazırlamasınısağlarlar. Basic, Cobol, Fortran, C++, Delpi programlama dillerine örnek verilebilir. Meselâ bir kullanıcı bilgisayarda bir mektup yazmak isterse önce bilgisayara bir yazı yazma programı yüklemelidir.20.10.2009 Dr. Mustafa T. Babagil 12

PROGRAMLAMA DİLİYazı yazma programı ise başkaları tarafından hazırlanmış bir yazılımdır. Fakat bunu yapmak için programlama dili kullanmışlardır. Tabi ki, programlama dillerini hazırlamak için de yine programlama dilleri gerekmiştir. Programlama dilleriyle yazılan programlar derlenerek .EXE dosyaları haline dönüştürülürler. Böylece bir programın dosya ismi yazılarak program çalıştırılabilir. Programlama dilleri ile yazılmış bu yazılımlara programın source (kaynak) kodu dosyası denir.20.10.2009 Dr. Mustafa T. Babagil 13

PROGRAMLAMA DİLİ

• Bir programlama dilinde aranan başlıca özellikler:

• (1) Kullanım kolaylığı, • (2) Tasarım kolaylığı, • (3) Farklı donanımlara uyum, • (4) Program hatalarını takip edebilirlik ve • (5) Belgeleme kolaylığı olarak sayılabilir

(Banger, 1995). 20.10.2009 Dr. Mustafa T. Babagil 14

PROGRAMLAMA DİLİ

• Programlama dilleri pek çok özelliğine göre sınıflandırılabilir. Günümüzde aslında dilleri birbirinden farklı kılan özellikler azalmakta, programlama dilleri gittikçe birdirine yaklaşmaktadır. Buna rağmen programlama dilleri kabaca dört grupta toplanabilir.

20.10.2009 Dr. Mustafa T. Babagil 15

PROGRAMLAMA DİLİMakine Dili : Her işlemi, ikili sayı sistemindeki kod numarası ile ifade ederek program yazılmasını sağlayan dildir. Dolayısıyla komutlar doğrudan bilgisayarın anlayacağı şekildedir. Ayrıca bir yorumlayıcı veya çeviriciye gerek yoktur. Aslında bilgisayarlar zaten makine kodlarına göre çalışmaktadır. Ancak makine dilinde programlamayı öğrenmek ve uygulamak çok zor ve zaman alıcıdır.

Alt Düzey Diller : Makine diline en yakın dillerdir. Sembolik kodlar ve isimler kullanılır. Kendilerine ait birleştirici ve derleyici programları yardımıyla hazırlanan uygulama programlarını makine diline çevirerek çalıştırırlar. Öğrenmesi ve uygulaması oldukça zor dillerdir. Assebler bu grubun en tipik örneğidir .20.10.2009 Dr. Mustafa T. Babagil 16

PROGRAMLAMA DİLİÜst Düzey Diller : Makine dili komutlarıyla şeklen hiçbir benzerliği bulunmayan, değim, komut ve ifadeler kullanarak işlem yapılmasını sağlayan dillerdir. Öğrenmesi ve uygulaması Alt Düzey dillerine göre daha kolaydır. Hazırlanan uygulama programlarıderleyici (compiler), yorumlayıcı (intepretater) veya çevirici (assebler) yardımıyla makine diline dönüştürülerek çalıştırılırlar. Fortran, Cobol, PL/1, RPG ve C bu gruba dahil edilebilir.

Etkileşimli Diller : Programcının bir bilgisayar ile karşılıklı etkileşim içinde program geliştirmesini sağlayan dillerdir. Programcı editör vasıtasıyla komutlar yazarak bilgisayara iletir. Bilgisayar komutu hemen işleme sokarak makine diline çevirerek (yorumlayarak) gereken işlemi yapar Basic ve APL bu

20.10.2009 Dr. Mustafa T. Babagil 17

PROGRAM-YAZILIM

• İnsanla bilgisayar arasındaki iletişim aracı• Programlama dili, programcı ile bilgisayar

arasındaki iletişimi sağlayan bir araç olup programların yazılımında kullanılan bir notasyondur.

20.10.2009 Dr. Mustafa T. Babagil 18

Bilgisayarda problem çözme aşamaları:

• Problemin tanımı• Çözüm yolunun tespiti• Algoritmanın hazırlanması• Akış diyagramının çizilmesi• Programın hazırlanması• Hazırlanan programın test edilmesi• Uygulama

20.10.2009 Dr. Mustafa T. Babagil 19

1. DESİN SONU

• HAFTAYA HAZIRLANMASI GEREKENLER.

GELECEK HAFTA İÇİN;• ALGORİTMA NEDİR?• AKIŞ DİAGRAMI NEDİR?• AKIŞ DİAGRAMINDA KULLANILAN

SEMBOLLER.20.10.2009 Dr. Mustafa T. Babagil 20

ALGORİTMA VE AKIŞDİAGRAMLARI

20.10.2009 Dr. Mustafa T. Babagil 21

ALGORİTMA NEDİR

• Algoritma,herhangi bir sorunun çözümüiçin izlenecek yol anlamına gelmektedir.

• Algoritma, verilerin bilgisayara hangi çevre biriminden girileceğinin,problemin nasıl çözüleceğinin,hangi basamaklardan geçirilerek sonuç alınacağının,sonucun nasıl ve nereye yazılacağının sözel olarak ifade edilmesi biçiminde tanımlanabilir.

20.10.2009 Dr. Mustafa T. Babagil 22

BASİT bir örnek: Verilen iki sayının toplamının bulunmasının

Algoritma

Adım 1-Başla

Adım 2-Birinci sayıyı oku

Adım 3-İkinci sayıyı oku

Adım 4-İki sayıyı topla

Adım 5-Dur 20.10.2009 Dr. Mustafa T. Babagil 23

DİKKAT!..

• Algoritma yazımı, sorunun çözümünün başladığınıgösteren "BAŞLA" ifadesi ile başlamakta ve işlemlerin bittiğini belirten "DUR" ifadesi ile sona ermektedir.

20.10.2009 Dr. Mustafa T. Babagil 24

Algoritmada kullanılan terimler

Tanımlayıcı (programdaki değişkenleri, sabitleri, kayıt alanlarını, özel bilgi tiplerinin adlandırılması veya belirlenmesi)Değişken (x, ad, tel_no, sayi1 vs. )Aktarma (değişken = ifade)Sayaç (sayac = sayac + 1, x = x+3, s=s-5)Döngüde◦ Döngü değişkeninin başlangıç ve bitiş değeri,◦ Artma ya da azalma miktarı belirlenir.Ardışık toplama ve çarpma◦ top_degis= top_degis+sayi◦ carp_degis= carp_degis*sayi

NOT: bu değişkenleri kullanmanız gerekli değildir. Bunlar, sizlere kolaylık olması için örneklendirme için verilmiştir.

20.10.2009 Dr. Mustafa T. Babagil 25

Örnek 1:• Bir öğrencinin numarası, adı ve soyadı,

vize notu ve final notu girilmektedir. Verilere göre vize notunun %30'ü ile final notunun %70'i alınarak ortalamasıhesaplanmak isteniyor. Algoritmayımaddeler halinde yazınız.

20.10.2009 Dr. Mustafa T. Babagil 26

Çözüm 1:

20.10.2009 Dr. Mustafa T. Babagil 27

Örnek 2:• Klavyeden girilen herhangi 5 sayının

ortalamasını bulan programın algoritmasınıve çalışmasını inceleyelim..

20.10.2009 Dr. Mustafa T. Babagil 28

Çözüm 2:

20.10.2009 Dr. Mustafa T. Babagil 29

AKIŞ ŞEMALARI

Yaygın olarak FLOWCHART olarak da türkçede isimlendirilmektedir.Herhangi bir sorunun çözümü için izlenmesi gerekli olan aritmetik ve mantıksal adımların söz veya yazı ile anlatıldığı algoritmanın, görsel olarak simge ya da sembollerle ifade edilmiş şekline denir.Algoritmadan farkı,adımların simgeler şeklinde kutular içine yazılmış olması ve adımlar arasındaki ilişkilerin ve yönünün oklar ile gösterilmesidir.20.10.2009 Dr. Mustafa T. Babagil 30

Algoritmanın başladığınıya da sona erdiğini

belirtmek için kullanılır.

Klavye aracılığı ile giriş ya da okuma

yapılacağını gösterir.

Yazıcı aracılığı ile çıkış yapılacağını gösterir.

Kart okuyucu aracılığıyla giriş yapılacağını gösterir.

Araç belirtemeden giriş ya da çıkış

yapılacağını gösterir.

Hesaplama ya da değerlerin değişkenlere aktarımını gösterir.

Aritmetik ve mantıksal ifadeler

için karar verme ya da karşılaştırma durumunu gösterir.

Diskten okuma veya diskete

yazmayıgösterir.

Dr. Mustafa T. Babagil 3120.10.2009

Disketten okuma veya diskete

yazmayıgösterir.

Teyp kütüğünügösterir.

Yapılacak işler birden fazla sayıda yinelecek İse, diğer bir deyişle

iş akışında çevrim (döngü) var ise bu sembol kullanılır.

Oklar işin akış yönünügösterir.

20.10.2009 Dr. Mustafa T. Babagil 32

Akış şemaları içerik ve biçimlerine göre genel olarak üçgrupta sınıflandırılabilirler.

> Doğrusal Akış Şemaları

> Mantıksal Akış Şemaları

> Döngüsel (iteratif, çevrimli, yineli) Akış Şemaları

20.10.2009 Dr. Mustafa T. Babagil 33

Doğrusal Akış Şemaları

20.10.2009 Dr. Mustafa T. Babagil 34

İş akışları giriş, hesaplama, çıkış biçiminde olan akış şemaları bu grup kapsamına girer.

Örnek 1: İki sayının çarpımının bulunmasıyla ilgili algoritma aşağıdaki gibidir.Değişkenler:A: Birinci sayıyıB: İkinci sayıyıC: İki sayının çarpımını (A*B) göstersin

Algoritma:Adım 1 – BaşlaAdım 2 – A’yı okuAdım 3 – B’yi okuAdım 4 – C=A*B’yi hesaplaAdım 5 – C’yi yazAdım 6 - Dur

Doğrusal Akış Şemaları

• Örnek 2: Klavyeden girilen İki sayının toplamınıhesaplayıp yazan algoritma ve akış şemasınıhazırlayınız.

(X: Birinci sayı, Y: İkinci sayı, Z: toplam)A1 : BaşlaA2 : Klavyeden oku XA3 : Klavyeden oku YA4 : Hesapla Z = X + YA5 : Yaz ZA6 : Dur

20.10.2009 Dr. Mustafa T. Babagil 35

Örnek 2 – Akış Şeması

20.10.2009 Dr. Mustafa T. Babagil 36

BAŞLA

DUR

OKU X

OKU Y

Z=X+Y

YAZ Z

ÖRNEK: KLAVYEDEN İKİ DEĞİŞKEN GİRİLİP BUNLARIN ÇARPIMININ BAŞKA BİR

DEĞİŞKENE ATANMASI VE SONUCUN EKRANA YAZDIRILMASI

20.10.2009 Dr. Mustafa T. Babagil 37

Mantıksal Akış Şemaları• Geniş ölçüde mantıksal kararları içeren akışşemalarıdır. Hesap düzenleri genellikle basittir.

Örnek 3: Klavyeden girilen bir sayının pozitif, negatif veya sıfıra eşit olma durumunu hesaplayıp yazdıran algoritma ve akış şemasınıhazırlayınız.

(S : Sayı)A1 : BaşlaA2 : Oku SA3 : Eğer S > 0 ise “Pozitif” yaz, A4 : Eğer S < 0 ise “Negatif” yaz,A5 : Eğer S = 0 ise “Sıfıra eşit” yaz,A6 : Dur

20.10.2009 Dr. Mustafa T. Babagil 38

Örnek 3 – Mantıksal Akış Şemaları(klavyeden girilen sayının 0 ile

kıyaslanması)

20.10.2009 Dr. Mustafa T. Babagil 39

BAŞLA

DUR

OKU S

S : 0

YAZ“Sıfıra eşit”

YAZ “Pozitif”

YAZ “Negatif”

S < 0S > 0

S = 0

Döngüsel Akış Şemaları

• Sorunun çözümü için, çözümde yer alan herhangi bir adım ya da aşamanın birden fazla kullanıldığı akış şemalarına denir. İşakışları genel olarak giriş ya da başlangıçdeğeri verme, hesaplama, kontrol biçiminde olmaktadır.

20.10.2009 Dr. Mustafa T. Babagil 40

Döngüsel Akış Şemaları• Örnek 4: Klavyeden girilen bir yazıyı 5 kez yazdıran

algoritma ve akış şemasını oluşturunuz.

( Y : Yazı, S : Sayaç )A1 : BaşlaA2 : Oku YA3 : Yaz YA4 : S = S + 1A5 : Eğer S < 5 ise A3 e gitA6 : Dur

20.10.2009 Dr. Mustafa T. Babagil 41

Örnek 4 – Döngüsel Akış Şemaları

20.10.2009 Dr. Mustafa T. Babagil 42

BAŞLA

DUR

OKU Y

YAZ Y

S = 0 , 5, 1

S

Sayısı bilinen döngülerde; başlangıçdeğeri, son değer, artışsayısı

Döngünün çalıştığıbölüm

ÇALIŞMA SORULARI -1: ALIŞTIRMALAR

• Girilen 2 sayının toplamını, çarpımını ve farkını hesaplayan bir algoritma ve akışdiagramı hazırlayınız.

• Girilen 2 sayınında 10’dan büyük olup olmadığını veya 10’a eşit olduğunu hesaplayan bir algoritma ve akış diagramıhazırlayınız.

• Girilen 2 sayının ikisinin de 10’dan büyük girilene kadar girişin devam edileceği bir algoritma ve akış diagramı hazırlayınız.20.10.2009 Dr. Mustafa T. Babagil 43

ÇALIŞMA1: Girilen 2 sayının toplamını, çarpımını ve farkını hesaplayan bir algoritma ve akış diagramı hazırlayınız.

• Başla• Sayı1 ve Sayı2 gir.• Toplam= Sayı1+Sayı2• Çarpım= Sayı1*Sayı2• Fark=Sayı1-Sayı2• Dur.

Dr. Mustafa T. Babagil 4420.10.2009

Dur

Başla

Oku Sayı1, Sayı2

Toplam= sayı1+sayı2Çarpım=sayı1*sayı2

Fark=sayı1-sayı2

Yaz Sayı1, Sayı2, Toplam, Çarpım, Fark İstenirse, Dur’dan önce

eklenebilir!..

Adım adım algoritmaların Çalışmasını inceleyelim. İleride aynı adım adım çalıştırma işini programlar ve program parçaları için de yapacağız.

Çalıştır Sayı 1 Sayı 2 Toplam Çarpım Fark1. Kez 2 5 7 10 -32. Kez 10 10 20 100 0

20.10.2009 Dr. Mustafa T. Babagil

Yukarıdaki Tablo, Çalışma 1’in 2 kere çalıştırılmış durumudur. Unutmayın Sayı1 ve Sayı 2 bizim tarafımızdan girilen sayılardır.

45

ÇALIŞMA 2: Girilen 2 sayınında 10’dan büyük olup olmadığını veya 10’a eşit olduğunu hesaplayan bir algoritma ve akış diagramı hazırlayınız.

• Adım 1: Başla• Adım 2: Sayı1 ve Sayı2 gir.• Adım 3: Eğer (Sayı1>10 ve

Sayı2>10) ise Adım 6’e git, Sayı1 ve Sayı2 10’a eşit ise Adım 5’e git

• Adım 4: Yaz, Sayı1 ve Sayı2 aynı anda 10’dan büyük değil. Git Adım 7.

• Adım 5: Yaz, “Sayı1 ve Sayı2 10’a eşit!” Git Adım 7.

• Adım 6: Yaz, “Sayı1 ve Sayı2 10’dan büyüktür”

• Adım 7: Dur.

20.10.2009 Dr. Mustafa T. Babagil 46

Dur

Başla

Oku Sayı1, Sayı2

Sayı1 >10Sayı2>10

Sayı1 ve sayı2

10’dan büyük

Sayı1 ve sayı2 10’dan büyük değil

Sayı1 ve sayı2 10’a

eşit.

İki sayı da 10’dan büyük

En az bir sayı10’dan küçük

İki sayı da 10’a eşit

Adım adım algoritmaların Çalışmasını inceleyelim. İleride aynı adım adım çalıştırma işini programlar ve program parçaları için de yapacağız.

Çalıştır Sayı 1 Sayı 2 İkisi de Büyük Biri 10’dan büyük Birbirlerine Eşit1. Kez 1 13 - Evet -2. Kez 14 10 - Evet -3. Kez 11 25 Evet - -4. Kez 10 10 - - Evet

20.10.2009 Dr. Mustafa T. Babagil 47

Yukarıdaki Tablo, Çalışma 2’in 4 kez çalıştırılmış durumudur. Unutmayın Sayı1 ve Sayı 2 bizim tarafımızdan girilen sayılardır.

Versiyon1-ÇALIŞMA 3: Girilen 2 sayının ikisinin de 10’dan büyük girilene kadar girişin devam edileceği bir algoritma ve akış diagramı hazırlayınız.

• Adım 1: Başla• Adım 2: S1 gir.• Adım 3: S1 < 10 Adım 2’ye

git.• Adım 4: S2 gir.• Adım 5: S2 < 10 Adım 4’e

git.• Adım 6: Dur.

Dr. Mustafa T. Babagil 4820.10.2009

Başla

İstenirse, Dur’dan önce eklenebilir!..

Oku S1

S1>10S1 10’dan küçük

Oku S2

S2>10S2 10’dan küçük

S1 10’dan büyük

S2 10’dan büyük

Dur

Yaz Sı1, Sı2

NOT: TABİİ Kİ FARKLI ALGORİTMALAR VE AKIŞ DİAGRAMLARI HAZIRLANABİLİR.

Adım adım algoritmaların Çalışmasını inceleyelim. İleride aynı adım adım çalıştırma işini programlar ve program parçaları için de yapacağız.

Çalıştır Sayı 1 Sayı 2 İkisi de Büyük Biri 10’dan büyük Birbirlerine Eşit1. Kez 1 - - -2. Kez 153. Kez4. Kez

20.10.2009 Dr. Mustafa T. Babagil 49

Versiyon 1: Yukarıdaki Tablo, Çalışma 3’ün ?? kere çalıştırılmış durumudur. Unutmayın Sayı1 ve Sayı 2 bizim tarafımızdan girilen sayılardır.

Versiyon2-ÇALIŞMA 3: Girilen 2 sayının ikisinin de 10’dan büyük girilene kadar girişin devam edileceği bir algoritma ve akış diagramı hazırlayınız.

• Adım 1: Başla• Adım 2: S1,S2 gir.• Adım 3: S1 < 10 ve S2 < 10

Adım 2’ye git.• Adım 4: Dur.

Dr. Mustafa T. Babagil 5020.10.2009

Başla

İstenirse, Dur’dan önce eklenebilir!..

Oku S1,S2

S1>10S2 > 10

S1, S2 10’dan büyük değil

S1 ve S2 10’dan büyük

Dur

Yaz Sı1, Sı2

Adım adım algoritmaların Çalışmasını inceleyelim. İleride aynı adım adım çalıştırma işini programlar ve program parçaları için de yapacağız.

Çalıştır Sayı 1 Sayı 2 İkisi de Büyük Biri 10’dan büyük Birbirlerine Eşit1. Kez2. Kez 3. Kez4. Kez

20.10.2009 Dr. Mustafa T. Babagil 51

Versiyon 2: Yukarıdaki Tablo, Çalışma 3’ün ?? kere çalıştırılmış durumudur. Unutmayın Sayı1 ve Sayı 2 bizim tarafımızdan girilen sayılardır.

Versiyon3-ÇALIŞMA 3: Girilen 2 sayının ikisinin de 10’dan büyük girilene kadar girişin devam edileceği bir algoritma ve akış diagramı hazırlayınız.

• Adım 1: Başla• Adım 2: S1,S2 gir.• Adım 3: S1 <10 ise Adım 4’e git,

S2 <10 ise Adım 5’e git değil ise Adım 6’ya git.

• Adım 4: S1 gir, Adım 3’e git.• Adım 5: S2 gir, Adım 3’e git.• Adım 6: Dur.

Dr. Mustafa T. Babagil 5220.10.2009

Başla

İstenirse, Dur’dan önce eklenebilir!..

Oku S1, S2

S1 10’dan büyük değil

Dur

Yaz Sı1, Sı2

S1 >10S2 > 10

Oku S1 S2 10’dan büyük değil

Oku S2

Evet

Adım adım algoritmaların Çalışmasını inceleyelim. İleride aynı adım adım çalıştırma işini programlar ve program parçaları için de yapacağız.

Çalıştır Sayı 1 Sayı 2 İkisi de Büyük Biri 10’dan büyük Birbirlerine Eşit1. Kez2. Kez 3. Kez4. Kez

20.10.2009 Dr. Mustafa T. Babagil 53

Versiyon 3: Yukarıdaki Tablo, Çalışma 3’ün ?? kere çalıştırılmış durumudur. Unutmayın Sayı1 ve Sayı 2 bizim tarafımızdan girilen sayılardır.

Çalışma Soruları 2: Algoritma, Akış Diagramıve test çalıştırmasını yapınız (en az 5 kez).

1. Gerekli ölçüleri girilen 100 dikdörtgenin alanını ve çevresini hesaplayınız. Ekrana, giriş yapılan boyutlar, hesaplanan alan ve çevreyi yazdırınız.

2. 22 öğrenci için, Bilg213 dersinden, 2 arasınav(%25), 1 lab notu (%20) ve 1 final(%30) sınav notunu klavyeden girerek, dersten geçilip geçilmediğini hesaplayınız ve ekrana notlar, ortalama ve başarılı olup olmadığınıyazdırınız. Geçme notu 40 olarak kabul edilsin.

3. Klavyeden 0 sayısı girdi verilene kadar girilecek sayıların ortalamasını hesaplayınız ve ekrana girilen tüm sayıları, kaç tane sayı girildiğini ve ortalamayı yazdırınız.

20.10.2009 Dr. Mustafa T. Babagil 54

Çalışma Soruları 2: Algoritma, Akış Diagramıve test çalıştırmasını yapınız (en az 5 kez).

4. Klavyeden giriş yapılan sayıların toplamının ve ortalamasının hesaplanacağı bir algoritma ve akışdiagramı yazınız. Ancak toplamı ve ortalaması bulunacak sayılar sadece klavyeden girişi yapılan POZİTİF sayılarolacaktır.

20.10.2009 Dr. Mustafa T. Babagil 55

1- Gerekli ölçüleri girilen 100 dikdörtgenin alanını ve çevresini hesaplayınız. Ekrana boyutlar, alan ve çevreyi yazdırınız.

• A1: Başla• A2: sayaç=0• A3: boy, en gir• A4: sayac=sayaç+1• A5: Alan=boy*en,

çevre=2*boy+2*en• A6: yaz, boy, en, alan,

çevre• A7: Eger sayaç < 100 git

A3• A8: Dur

20.10.2009 Dr. Mustafa T. Babagil 56

Başla

Sayaç=0

Boy, en

Sayaç=sayaç+1

Alan=boy*enÇevre=2*en+2*boy

En, boy Alan, çevre

Sayaç<100evet

Dur

hayır

1- Gerekli ölçüleri girilen 100 dikdörtgenin alanını ve çevresini

hesaplayınız. Ekrana boyutlar, alan ve çevreyi yazdırınız.

Çalıştır en boy Sayaç Alan Çevre Ekran Çıktısı

İlk durum - - 0 - - -

1. Kez 2 3 1 6 10 3, 2, 6, 10

2. Kez 4 5 2 20 18 5, 4, 20, 18

3. Kez 10 10 3 100 40 10, 10, 100, 40

4. Kez 7 5 4 35 24 5, 7, 35, 24

5. Kez 6 3 5 18 18 3, 6, 18, 18

20.10.2009 Dr. Mustafa T. Babagil 57

2- 20 öğrenci için, Bilg213 dersinden, 2 arasınav(%30) ve 1 final(%40) sınav

notunu klavyeden girerek, dersten geçilip geçilmediğini hesaplayınız ve ekrana

notlar, ortalama ve başarılı olup olmadığınıyazdırınız.

A1: BaslaA2: sayaç=0A3: snv1, snv2, final girA4: sayaç=sayaç+1A5: ortalama= 0.3*snv1+0.3*snv2+0.4*finalA6: eger ortalama >= 50 git A7

degilse git A8.A7: yaz, “Gecti”A8: yaz “Kaldi”A9: snv1, snv2, final, ortalama A10:eger sayac < 20 git A3A11: Dur

20.10.2009 Dr. Mustafa T. Babagil 58

Başla

Sayaç=0

snv1, snv2, final

Ortalama=snv1*0.3+snv2*0.3+final*0.4

Ortalama >=50 Geçti

Kaldı

Hayır Evet

Sayac<20

Sayaç=sayaç+1

hayır DurEvet

Snv1, snv2, final, ortalama

2- 20 öğrenci için, Bilg213 dersinden, 2 arasınav(%30) ve 1 final(%40) sınav notunu klavyeden girerek,

dersten geçilip geçilmediğini hesaplayınız ve ekrana notlar, ortalama ve başarılı olup olmadığını yazdırınız.

Çalıştır snv1 snv2 final sayaç ortalama Geçti/Kaldı Ekran Çıktısı

İlk durum - - - 0 - - -

1. Kez 50 50 50 1 50 Geçti Geçti, 50,50,50,50

2. Kez 30 50 80 2 56 Geçti Geçti, 30, 50, 80, 56

3. Kez 50 90 90 3 78 Geçti Geçti, 50, 90, 90, 78

4. Kez 60 70 80 4 71 Geçti Geçti, 60,70, 80, 71

5. Kez 30 40 50 5 41 Kaldı Kaldı, 30, 40, 50, 41

20.10.2009 Dr. Mustafa T. Babagil 59

3- Klavyeden 0 sayısı girdi verilene kadar girilecek sayıların ortalamasını hesaplayınız ve ekrana girilen tüm sayıları, kaç tane sayı

girildiğini ve ortalamayı yazdırınız.• A1: Basla• A2: sayaç=0, toplam=0,

ortalama=0• A3: Sayi gir• A4: eğer sayi = 0 git A7• A5: sayaç=sayaç+1• A6: toplam=toplam+sayi, git A3• A7: ortalama=toplam/sayaç• A8: yaz sayaç, ortalama• A9: Dur

20.10.2009 Dr. Mustafa T. Babagil 60

Başla

sayaç=0Toplam=0 ortalama=0

sayı

Sayı =0

Sayaç=sayaç+1

Toplam=toplam+sayı

Ortalama=toplam/sayaç

Sayac, ortalama

Dur

evet

3- Klavyeden 0 sayısı girdi verilene kadar girilecek sayıların ortalamasını hesaplayınız ve ekrana girilen tüm sayıları, kaç tane sayı girildiğini ve ortalamayı

yazdırınız.

Çalıştır sayı sayaç toplam ortalama Ekran Çıktısıİlk Durum - 0 0 0 -

1. Kez 5 1 5 - -2. Kez 7 2 12 - -3. Kez 8 3 20 - -4. Kez 10 4 30 - -5. Kez 0 4 30 7.5 4, 7.5

20.10.2009 Dr. Mustafa T. Babagil 61

A1: Başla

A2: Toplam=0, Sayaç=0

A3: Gir Sayı

A4: Eğer Sayı > 0 ise Toplam=Toplam +Sayı, Sayaç=Sayaç+1

A5: Eğer Sayaç < 10 git A3

A6: Ortalama=Toplam/Sayaç

A7: Yaz Ortalama

A8: Dur

Soru 4: Algoritma. Akış Diagramını Siz yapınız.

Çalışma Soruları 3: Algoritma, Akış Diagramı ve test çalıştırmasını yapınız (1 ve 2’yi en az 5 kez,

3’ü ise XXX çıkana kadar çalıştırınız.).1- İkinci dereceden bir denklemin gerçel köklerinin olup olmadığını inceleyen ve

ekrana yazdıran bir algoritma hazırlayınız. Klavyeden girilecek olan katsayılar olmalı ve x2 nin katsayısı 0 girilene kadar program çalışmalı. En sonunda ekrana diğer çıktılara ek olarak bir de, kaçtane hesaplandığını yazdırınız.

2- 2’nin 20’nci kuvvetine kadar hesaplayan ve 2’nin 0’ıncı kuvvetinden başlayarak tüm bu kuvvetlerini yazdıran bir algoritma hazırlayınız.

3- Ekrana aşağıdaki çıktıları yazdırabilen bir algoritma hazırlayınız.1 2 3 X1 2 3X X1 2 3X XX1 2 3X XXX.........

20.10.2009 Dr. Mustafa T. Babagil 63

Yani, 3’e kadar say ve X yazdır, bir kere daha 3’e kadar say, XX yazdır, sonra yine 3’e kadar say XXX koydur. Bu işlemi 10 tane X koydurana kadar tekrarlayınız.

C++ PROGRAMLAMAYA GİRİŞ• C ve C++ büyük ve küçük harf duyarlılığına

sahiptir. Kullandığımız ifadeleri birbirindenfarklı ve aynı ifade olarak kullanıyorsakprogramımız hata verecektir. Buna bir örnek olarak

ProgramPROGRAMprogRAMProgRam

Kelimelerini verebiliriz. Hepside farklı kelimeler olarak kabul edilirler!...20.10.2009 Dr. Mustafa T. Babagil 65

C++ İle Programlamaya Giriş• C++ ‘ın Genel Formu

20.10.2009 Dr. Mustafa T. Babagil 66

İlk programımız!• // ilk1.cpp• // Ekrana "Bu benim ilk programım" yazdırıyoruz• #include <iostream.h>• int main()• { • cout << "Bu benim ilk programım";• return 0; • }

20.10.2009 Dr. Mustafa T. Babagil 67

Şimdi Yazdığımız programıinceleyelim:

• "//" işaretini açıklama satırlarında kullanıyoruz. C++ derleyicisi bu notasyonla başlayan satırıokumaz. Bununla birlikte daha uzuncümlelerimiz olursa bunları da " /* */ " notasyonunun içinde yazıcağız. Bu özellik de C den bize kalma. Demiştik zaten C `nin tümözelliklerini C++ içerir. Fakat biz genelde " // " yikullanacağız.

20.10.2009 Dr. Mustafa T. Babagil 68

#include <iostream.h> : Bu bizim C++ da bulunankütüphane dosyamızı çağırmaya yarıyor.

iostream.h kütüphanesindeki hazır olan " cout " fonksiyonunu çağırıyor. Yani buda bizim fazla kodyazmamıza engel oluyor. .h ile biten dosyalarkütüphane dosyalarıdır. Bunu şuna dabenzetebiliriz. Farz edelim ki elimizde bir aletçantası var içinden tornavidayı çağırdığımızda vidasıkacağızdır. Bu da ona benziyor. C++ da ki hazırkütüphanelerde bir çok hazır fonksiyonlar vardır. İlerde Bu hazır fonksiyonlar işimizi görmemeyebaşlayınca kendi kütüphanemizi yapmayabaşlayacağız. Tabi bu seviyeye geldiğimizde olayıhemen hemen kavramış olacağız

20.10.2009 Dr. Mustafa T. Babagil 69

• Daha sonraki satır her C++ programındamutlaka bulunması gereken bir satırdır. Her C++ programında main() fonksiyonu olmakzorundadır; bu fonksiyonumuzun önünde ise o fonksiyonun dönderdiği değişkenin veri tipi olmalıdır. Tabi ki C++ fonksiyonlar ve onlarındönderdikleri değerler konusunu da ilerideişleyeceğiz.

• Bir sonraki satırda ise; C++ fonksiyonlar ve kodblokları " { } " parantezleri arasındabulunmalıdır. main de bir fonksiyon ise onuniçindeki kodlar doğal olarak { } parantezleriarasındadır

20.10.2009 Dr. Mustafa T. Babagil 70

Program derlenip çalıştırıldığında ise ( Turbo C++ 3.1 kullanıyorsanız ctrl+f9 kısa yoluyla programıçalıştırabilirsiniz (Run) ) karşımıza "Bu benim ilk programım" yazısı çıkacaktır. İşte bu yazıyı ekrana veren komut da iostream.h kütüphanesindeki cout fonksiyonudur.Önemli bir nokta ise C++ dilinde her satır ifadenin sonuna " ; " koymak zorundayız. Bundan farklıolarak #include satırlarının ve bir kaç farklı satırın arkasına " ; " gelmez. Bunları ileride göreceğiz.Return 0 : programımızın (aynı zamanda main fonksiyonumuzun) çıkış noktasıdır. Eğer return ile0 değeri dönderirsek programımızın güvenleçıktığını işletim sistemine bildirmiş oluruz. Bu sayede güvenle programımızın çalıştığınıgöreceğiz.20.10.2009 Dr. Mustafa T. Babagil 71

Bazı gerekli notasyonlar

20.10.2009 Dr. Mustafa T. Babagil 72

Dizi: Adı:

\a Alarm

\b Bir karakter geri (Backspace)

\f Formu itekle

\n Yeni satır ( yukarda kullandığımız (newline) )

\r Return

\t Yatay boşluk

C++ Programlamanın temel parçaları

// örnek C++ programı#include <iostream>using isim std;int main() {

cout << “merhaba, nasılsın!";return 0;

}

20.10.2009 Dr. Mustafa T. Babagil 2-73

Yorum

Hazır kütüphane dosyası çağırımıKullanılacak isimler

Main ismindeki başlangıç fonksiyonu

Main bloğunun başlangıcı

output statement

Mesaj olarak Düz yazı.

0 tam sayısını işletim sistemine gönderme

Main bolğunun bitişi

ÖZEL KARAKTERLERCharacter Name Meaning// Çift slaş Yorum başlangıcı# Numaralandırma

işaretiKütüphane dosyasıbaşlangıcı, (çağırılması)

< > Açma/kapama sembolleri

#include daki dosya adlarının başına ve sonuna konur.

( ) Açma/kapama parantezleri

Fonksiyonlar isimlendirilirken kullanılır.

{ } Açma/kapama parantezleri

Birden çok, grup komutlarıyazılırken kullanılır.

“ “ Aç/kapat tırnak işaretleri

Düz yazı yazdırılacağında kullanılır.

20.10.2009 Dr. Mustafa T. Babagil 2-74

; Noktalı virgül Bir program komutunun sonunu bildirir.

cout Objesi

• Bilgisayar ekranına çıktıyı göndermeye yarar.

• cout’a bilgi gönderirken << işareti kullanılır.

cout << “Programlama çok zevkli!";

20.10.2009 Dr. Mustafa T. Babagil 2-75

• Aşağıdaki tek satırda gözüken bir çıktıoluşturacaktır.

cout << “Programlama çok”;cout << “zevkli!”;

ccoutout ObjesiObjesi

20.10.2009 Dr. Mustafa T. Babagil 2-76

endl uygulayıcısı

• endln, yeni bir satır oluşturmak, bu komutun kullanıldığı yerde yeni satıra geçmek için kullanılır. Aşağıdaki iki satır çıktı oluşturur.

cout << “Programlama çok” << endl;cout << “zevkli!”;

20.10.2009 Dr. Mustafa T. Babagil 2-77

endl uygulayıcısı

20.10.2009 Dr. Mustafa T. Babagil 2-78

Programlama çokgüzel!

cout << “Programlama çok” << endl;cout << “güzel!”;

#include direktifleri.

• Yazmakta olduğunuz programın içerisine bir başka dosyanın içeriğini dahil etmek amaçlıkullanımlar için emir komutudur.

• Bu bir C++ komutundan ziyade bir işlem öncesi emir aktarımı olarak kabul edilebilir.

• #include satırları derleyici tarafından dikkate alınmazlar.

• #include bir komut olmadığından dolayısonuna ; işareti konmamalıdır.

20.10.2009 Dr. Mustafa T. Babagil 79

Değişkenler (variables)

• Değişken (variable) hafızada yer tutabilecekbir isimlendirmedir.

• Tutacağı yada saklayacağı bilginin ismini ve türünü gösterir.

• Kullanılmadan önce tanımlanmalıdırlar.

int degisken2;

şeklinde, kullanılırlar.20.10.2009 Dr. Mustafa T. Babagil 80

// Bu programda variable uygulaması görülmektedir.#include <iostream>using namespace std;int main(){int sayi;

sayi=5;

// ekrana yazdırmak için

cout << “ sayimizin değeri “ << sayi << endl;

return(0);}

Programın çıktısı isesayimizin değeri 5 şeklindedir.20.10.2009 Dr. Mustafa T. Babagil 81

Tanımlayıcılar. (identifiers)• Bir tanımlayıcı, programın belli bir parçasını

tanımlayandır. Bunlar, bir fonksiyon, bir değişken ya da bir başka dosya adıolabilirler.

• Bir sonraki slayt da yalnızca C++’a ait, C++’a özel ayrıltılmış (reserved) kelimeler vardır. Bunlar tanımlayıcı olarak kullanılamazlar.

20.10.2009 Dr. Mustafa T. Babagil 82

C++C++’’ a a öözel, ayrzel, ayrııltltıılmlmışış kelimeler kelimeler aaşşaağığıdaki gibidirler.daki gibidirler.

20.10.2009 Dr. Mustafa T. Babagil 83

Değişken isimleri

• Değişkenlerin isimleri seçilirken neyi temsil ettiklerini anlatabilmeleri gerekliliği üstünde durmalıyız. Yani anlaşılabilir değişken isimleri seçilmelidir.

20.10.2009 Dr. Mustafa T. Babagil 84

Temel Değişken kuralları

Bir değişkenin:1. İlk karakteri alfabetik bir karakter olmalıdır.2. Eğer alfabetik bir karakterle başlamayacak

ise “_ “ alt çizgi ile başlamalıdır.3. İlk karakterden sonra alfabetik, sayısal

yada alt çizgi karakterleri kullanılabilir.4. Unutmayınız ki Büyük ve küçük harf

kullanımı farklılık göstermektedir. Yani, “Mustafa” ve “mustafa” C++ için farklı iki değişken olabilir.

20.10.2009 Dr. Mustafa T. Babagil 85

Geçerli ve geçerli olmayan değişkenlere örnek

20.10.2009 Dr. Mustafa T. Babagil 86

DEĞİŞKEN (IDENTIFIER)

GEÇERLİ? Geçerli değilse, nedeni!...

toplamsatis Evet

toplam_satis Evet

toplom.Satış hayır . İşareti ve türkçe kullanıldı

4tebirsatis hayır Sayı ile başlamamalı.

toplamsati$ hayır $ işareti içermemeli.

Toplam_satıs hayır Türkçe karakter kullanıldı.

Toplam-satış hayır Hem türkçe karakter hem de – işareti kullanıldı.

Tam sayı değişkeni (integer, int)

• integer değişkeni 5, 100, 3, 0, -34 gibi sayılarısaklamakta kullanılır.

20.10.2009 Dr. Mustafa T. Babagil 87

Tam sayı değişkeni yani integer değişken çeşitinin büyüklüğü ve hafızada tutabileceği sayı aralığı değerleri.

Büyüklüğü

AralığıBilgi çeşiti

Değişken tanımlamaları

Ayni cinsten olan değişkenler farklı satırlarda olabileceği gibi aynı satırlar içerisinde de tanımlanabilirler.

int genislik;int yukseklik;int alan;

Veya

int genislik, yukseklik, alan;20.10.2009 Dr. Mustafa T. Babagil 88

Char data çeşiti

• 1 byte yer tutar• Tek karakter temsil etmekte kullanılır.• Karakterin sayısal değeri bellekte tutulur.

CODE:char harf;harf = 'C';

BELLEK:harf

20.10.2009 Dr. Mustafa T. Babagil 89

67

Char data çeşiti

• Değişkene atamalar yapılırken yada ekrana yansıtma (çıktı) yapılırken tek tırnak işareti arasında kullanılır.

harf=‘W’;

‘A’

şeklinde.20.10.2009 Dr. Mustafa T. Babagil 90

Akışkan sayı (Floating point) data çeşiti

• Floating point sayıları aslında reel sayılar olarak adlandırılabilirler.

• Bu data tipleri şunlardırfloatdoublelong double3.48, -2.13 gibi sayıları bellekte tutmaya yararlar.float 4 byte bilgi tutar ve +/-3.4E-38 ve +/-3.4E+38 aralığındadır.double 8 byte’tır ve +/-1.7E-308 ile +/-1.7E+308 aralığındadır.long double 8 byte’tır ve +/-1.7E-308 ile +/-1.7E+308

aralığındadır.20.10.2009 Dr. Mustafa T. Babagil 91

Floating point programı// reel sayı uygulaması yapalım#include<iostream>using namespace std;

int main(){float katedilenyol;float zaman, hiz;

katedilenyol=308; //kilometrezaman=2.5; //saathiz=katedilenyol/zaman;cout<<katedilenyol<<“ km. mesafeyi “<<hiz<<“km.saatte bir hizla gittiniz.”<<endl;return(0);}

20.10.2009 Dr. Mustafa T. Babagil 92

Programın çıktısı şöyle olacaktır.

308 km. Mesafeyi 123.2km.saatte bir hizla gittiniz.

•• cincin objesi tanımlamış olduğunuz değişken için klavyeden bir değer atamak için kullanılır.

Kullanışı ise aşağıdaki gibidir.........

int yukseklik;cout << “yukseklik gir”;cin >> yukseklik;

20.10.2009 Dr. Mustafa T. Babagil

cincin ObjesiObjesi

2-93

•• cincin objesi ile birden çok değişken de girilebilir.

Kullanışı ise aşağıdaki gibidir.........int yukseklik, taban;cout << “yukseklik ve taban gir”;cin >> yukseklik >> taban;

...Unutulmamalıdır ki, ilk girilen değer birinci değişkene atanmaktadır.

20.10.2009 Dr. Mustafa T. Babagil 2-94

cincin ObjesiObjesi

•• cincin objesi ile bir karatter dizisi yani bir kelime girişi (klavyeden) aşağıdaki gibi yapılabilir.

Kullanışı........string isim[21]; cout << “adınızı giriniz”;cin >> isim;

...20.10.2009 Dr. Mustafa T. Babagil 2-95

cincin ile karakter dizisi okumak. ile karakter dizisi okumak. (yani bir kelime giri(yani bir kelime girişşi yapmak!..)i yapmak!..)

•string isim[21];

Bunun anlamı 22 karakterden oluşan bir diziyi isim değişkeni üzerine tanımlamaktır. 0, 1, 2, ... 21 ‘ inci karakterler olarak tutulmaktadır. Önemli bir başka nokta ise NULL karakterinin de 22 karakter olarak bu değişkene atanmasıdır. Yani 0 dan 21’e kadar 22 karakter var. Bunu iyice anlamamız gereklidir.

20.10.2009 Dr. Mustafa T. Babagil 2-96

cincin ile karakter dizisi okumak. ile karakter dizisi okumak. (yani bir kelime giri(yani bir kelime girişşi yapmak!..)i yapmak!..)

Matematiksel Tanımlar

• Birden fazla matematiksel operatör yardımı ile çok komplex formüller yazılabilir.

• Bir matematiksel tanım, birden fazla matematiksel operatör ile değişkenler kullanılarak, yada değkenler kullanılmadan da yazılabilir!..

• Çıktı ekrana gönderilirken de, cout, objesi güvenle kullanılabilir:

Alan = 2 * PI * yaricap;cout << “cevre = " << 2*(l+w);

gibi..20.10.2009 Dr. Mustafa T. Babagil 3-97

Matematiksel işlem sırası• Birden fazla operasyon içeren matematiksel

tanımlamalarda işlem sırası aşağıdaki gibidir.

• * , /, +, -

• Örnek: 2 + 2 * 2 – 2

ikinci

20.10.2009 Dr. Mustafa T. Babagil 3-98

ilk üçüncü

Operasyon sırası

20.10.2009 Dr. Mustafa T. Babagil 3-99

Bazı Tanımlamalarda İşlem sonuçları

Tanım Değer

Parantezler ile Gruplama

20.10.2009 Dr. Mustafa T. Babagil 3-100

Bazı Tanımlamalarda İşlem sonuçlarıTanım Değer

Değişken tiplerinde hiyararşi

En Yüksek değer:

En düşük:Saklayabilecekleri (tutabilecekleri) en büyük sayıya göre sıralanmışlardır.

20.10.2009 Dr. Mustafa T. Babagil 3-101

long doubledoublefloatunsigned longlongunsigned intint

İsimlendirilmiş Sabitler• İsimlendirilmiş sabitler (constant variable):

Değeri değiştirilemeyen değişken tanımlarıdırlar. Sabit olarak program başında tanımlanırlar.

• Sabit değişkenleri temsil etmekte kullanılırlar.const double VERGI_ORANI = 0.0675;const int IL_SAYISI = 50;

• Tercihen büyük harflerle tanımlanmalarıuygundur.

20.10.2009 Dr. Mustafa T. Babagil 3-102

Sabitler (Constants) ve Sıralıdeğişkenler (ARRAYS)

• Genel olarak bir isim sabiti kullanımıboyutu bildirilen bir array ile anlatılır.

const int boyut = 21;char isim[boyut];

Olarak tanımlanır. Bunun anlamı21 karakterlik bir ism girilebileceğidir.

20.10.2009 Dr. Mustafa T. Babagil 3-103

#define kullanımı

#define boyut 50–Tanımın sonunda ; olmadığına dikkat edin!..• Bellekte const gibi yer tutmaz. Bu bir

avantaj olarak sayılabilir.

20.10.2009 Dr. Mustafa T. Babagil 3-104

Bileşik Atamalar

• Aşağıdaki tanımı inceleyelim:

toplam = toplam + 1;

Toplam üzerine devamlı olarak 1 ekler.

20.10.2009 Dr. Mustafa T. Babagil 3-105

Benzer tanımlar

20.10.2009 Dr. Mustafa T. Babagil 3-106

X=6 olarak kabul edelim

Tanımx e 4 ekler

X’in tanımdan sonraki değeri

x den 3 çıkartır

X’i 10 ile çarpar

X’i, x’in 2 ye bölümüne eşitler

X’i x/4 sonundaki kalana eşitler

Ne yapar

• cmath kütük dosyasını ister.• double alır, ve double çıkartır.• Genelde kullanılan fonksiyonlar:

sin Sine cos Cosinetan Tangentsqrt Kare köklog Doğal (e) logabs Mutlak değer (bir int alır ve bir int çıkartır)

BazBazıı Matematiksel KMatematiksel Küüttüüphane phane FonksiyonlarFonksiyonlarıı

20.10.2009 Dr. Mustafa T. Babagil 3-107

Bazı Matematiksel Kütüphane Fonksiyonları

• Aşağıdakiler ise cstdlib kütüğünü isterler.• rand(): 0 ile enbüyük tutabileceği sayı

arasında rastgele bir sayı üretir (int). Her program çalıştığında ayni sırayla sayılar üretir.

• srand(x): Yukardaki sayı üreticiyi başlangıçdurumuna getirmeye yarar. unsigned int xkullanır. Amacı ise değişik sayılar üretilmesini sağlamaktır.

20.10.2009 Dr. Mustafa T. Babagil 3-108

20.10.2009 Dr. Mustafa T. Babagil 109

Karar MekanizmalarKarar Mekanizmalarıı

İlişki (Kıyaslama) Operatörleri

• Sayıların kıyaslanmasında kullanılır.• Operatörler:

> Büyüktür< Küçüktür>= Büyük veya eşit<= Küçük veya eşit== Eşittir!= Eşit değildir

20.10.2009 Dr. Mustafa T. Babagil 4-110

Bazı kıyaslamalar• Boolean tanımlamalar – doğru veya yanlış

• Örnek:12 > 5, doğru7 <= 5, yanlış

eğer x 10 ise, (if x = 10 then)x == 10, doğru, x != 8, doğru, vex == 8, yanlış

olarak değerlendirilir.

= ve == karıştırmamaya dikkat ediniz!..20.10.2009 Dr. Mustafa T. Babagil 4-111

if ...then... else...

Dr. Mustafa T. Babagil20.10.2009 4-112

Dışarısı soğuk mu?

Ceket giy

Eldiven tak

Bere tak

Doğru

Yanlış

if ...then... else...

• Genel Format:

if (kıyaslama)tanım;

Burada tanım, bir ekran çıktısıkomutu, bir matematiksel işlem, bir başka kıyaslama yada bir atama, v.s. olabilir.

20.10.2009 Dr. Mustafa T. Babagil 4-113

if ...then... else...

Dr. Mustafa T. Babagil20.10.2009 4-114

Ortalama 50’den büyük

mü?

Başarılı

Doğru

Yanlış

Başarısız

if kıyaslamasını geliştirebiliriz• Birden fazla komutu çalıştırmak için { }

kullanılmalıdır:if (ortalama > 90){

Harfnotu = 'A';cout << “İyi is cıkarttınız!\n";

}

• { } belli bir blok komutu işletmek, çalıştırmak için kullanılır.

• Çok önemli bir başka durum da, iç içe İf kıyaslarıkullanılabileceğidir.

20.10.2009 Dr. Mustafa T. Babagil 4-115

Mantık Operatörleri• Kıyaslamalardan oluşan kıyaslamalar

oluşturmada kullanılırlar• Operatör aslında açıklama anlamına

gelebilir:&& AND Eğer her iki kıyas da doğru olursa,

yeni kıyaslama da doğrudur.|| OR Eğer iki kıyastan biri doğru ise, yeni kıyas da

doğru olur.! NOT Bir tanımın değerini ters çevirir ve doğru tanım

yanlış olur, yanlış tanım da doğru olur.

20.10.2009 Dr. Mustafa T. Babagil 4-116

Mantık Operatörleri - örnekEğer tanım aşağıdaki gibi ise,int x = 12, y = 5, z = -4;

(x > y) && (y > z) doğru

(x > y) && (z > y) yanlış

(x <= z) || (y == z) yanlış

(x <= z) || (y != z) doğru

!(x >= z) yanlış

4-117

switch Komutu• Birçok alternatif içerisinden seçim yapmaya

yarar.• Bazı durumlarda if/else if kıyaslaması

yerine kullanılır.

20.10.2009 Dr. Mustafa T. Babagil 4-118

switch Kullanımıswitch (tanım) //integer çıkmalı

{ case durum1: tanım1;case durm2: tanım2;...case durumn: tanımn;kabul edilen: tanımn+1;

}

** break komutu ile switch tanımından çıkış yapılabilir.Harf notu çıkarmak için kullanılabilir!.. Menü hazırlamada kullanılabilir!..20.10.2009 Dr. Mustafa T. Babagil 4-119

Döngüler (Loops)while (kıyaslama) tanım;

tanım:komut, atama, v.s (bu tanım bir blok olarak da {} arasında yazılabileceği unutulmamalı).

int sayi;sayi=0;while (sayi <= 5){

cout << “selam\n";sayi++;

}

Çıktı 6 tane alt alta selam yazısı olacaktır!.. (sayaçuygulaması)Unutmayın başta kıyaslama yapılıp döngüye giriliyor.20.10.2009 Dr. Mustafa T. Babagil 120

do-while döngüsü• do-while: önce döngü gerçekleşir sonra kıyaslama

tanımlaması test edilir. (alttan test yöntemi) • Genel Format:

dotanım; // yada bir blok tanım{ }

while (kıyaslama);

• Unutmayın ki ; konulması illa ki şarttır!.

20.10.2009 Dr. Mustafa T. Babagil 5-121

for döngüsü (Loop)• Sayaç kontrolü bilinen döngüler için çok kullanışlıdır.

• Genel Yapısı:

for(başlangıç; test; değer değişimi)komut; // yada blok olarak komutlar{ }

• 3 üncü komut sonrası ; yok!.. Yada şöyle diyelim ) sonrası ; yok!...

20.10.2009 Dr. Mustafa T. Babagil 5-122

for döngüsü (Loop) - Örnekint sayac;

for (sayac = 1; sayac <= 5; sayac++)cout << “selam" << endl;

5 kere alt alta selam yazacaktır!... Veee,

int sayackuvvet=1;for (sayac=1; sayac <=10; sayac++)

kvvet=kuvvet*2;

Yukarıdaki ise 2’nin 10uncu kuvvetine kadar hesaplayacaktır.

İç içe for döngüleri ve iç içe while döngüleri kurulabileceğini de asla unutmayınız.

20.10.2009 Dr. Mustafa T. Babagil 5-123

Recommended