bİlgİsayar nedİrbrahms.emu.edu.tr/babagil/bilg213-2010-2011 ders notlari.pdfbİlgİsayar nedİr...
TRANSCRIPT
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