Nesneye Yönelik Programlama

Slides:



Advertisements
Benzer bir sunumlar
Nesneye Yönelik Programlama
Advertisements

OPERATÖRLER.
MATLAB Bilgisayar Programlama Yrd.Doç. Dr. Aslıhan KURNUÇ
Bilgisayar Programlama Güz 2011
Değişkenler ve bellek Değişkenler
JavaScript Birinci Hafta.
OPERATÖRLER Programlama dillerinde tanımlanmış sabit ve değişkenler üzerinde işlemler yapmayı sağlayan karakter ya da karakter topluluklarına operatör.
YRD.DOÇ.DR.MEHMET TEKTAŞ
MIT504 İnternet ve Web Programlama: Javascript programlama devam Yrd. Doç. Dr. Yuriy Mishchenko.
Nesneye Yönelik Programlama
Makine Müh. & Jeoloji Müh.
Nesneye Yönelik Programlama
Nesneye Dayalı Programlama
Nesneye Yönelik Programlama
TEMEL C PROGRAMLAMA DERSİ 2
Microsoft Excel.
Bölüm 2: Program Denetimi
VERİ TİPLERİ VE DEĞİŞKENLER
 Print() :  Print() : Ekrana bir değişkenin değerini veya bir metni yazdırmayı sağlar. print (“PHP Programlama”);// ekrana “PHP Programlama” yazdırır.
Bilgisayar Programlama
PROGRAMLAMA DİLLERİNE GİRİŞ Ders 3: Döngüler
MIT505 İnternet ve Web Programlama: Dinamik web sayfaları, javascript
BPR152 ALGORİTMA VE PROGRAMLAMA - II
Operatörler.
Nesneye Yönelik Programlama
Yapısal Program Geliştirme – if, if-else
OPERATÖRLER.
 2006 Pearson Education, Inc. All rights reserved. Görsel C# ile Windows Programlama Güz 2009 (5. Hafta)
PROGRAMLAMA DİLLERİNE GİRİŞ Ders 5: Fonksiyonlar
BPR152 ALGORİTMA VE PROGRAMLAMA - II
Nesneye Yönelik Programlama (2. Sunu). Konsol Üzerinde Türkçe Karakterler Görebilmek İçin…
PROGRAMLAMA DİLLERİNE GİRİŞ Ders 8: Windows Formları
ALGORİTMALAR VE PROGRAMLAMAYA GİRİŞ
Kontrol Yapıları ve Döngüler
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
DEĞİŞKENLER VE VERİ TİPLERİ
Temel Kavramlar, İşlemler, Operatörler
BM-103 Programlamaya Giriş Güz 2014 (7. Sunu)
Mantıksal Operatörler ve Denetim Yapıları
BM-103 Programlamaya Giriş Güz 2014 (4. Sunu)
C# Veri Tipleri ve Değişkenler
Veri Tabanı Yönetim Sistemleri 2 Ders 2 Oracle 11g Kurulumu
VERİ TİPLERİ VE DEĞİŞKENLER
BM-103 Programlamaya Giriş Güz 2014 (9. Sunu)
İNTERNET PROGRAMCILIĞI I BTP 207 Ders 8.  Tamsayı Değerler (Integer) Tamsayılar, 10 tabanlı (decimal), 8 tabanlı (octal) veya 16 tabanlı (hexadecimal)
Sakarya Üniversitesi Eğitim Bilgi Sistemi Toplantısı, 29 Nisan 2011, SAU Kültür ve Kongre Merkezi Öğretim ve Ölçme Değerlendirme Yöntemi Neden Belirlenmeli.
Nesne Tabanlı Programlama 2
İşlem Yönetimi (Kilitlenme)
Çıkarma İşleminin Sağlaması
Bu Günkü Konular If yapısı ve karşılaştırma operatörleri
Bilişim Teknolojileri için İşletme İstatistiği
Değişkenler Programda Değişken Tanımlama. Değişken nedir? (Variables) Program içinde kullanılan veri(data)nin tutulduğu alanın adıdır. Her veri bir tür.
BM-103 Programlamaya Giriş Güz 2012 (3. Sunu)
Bilişim Teknolojileri için İşletme İstatistiği Yrd. Doç. Dr. Halil İbrahim CEBECİ B.
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
BİLGİSAYAR PROGRAMLAMA DERSİ 4. DERS NOTU Konu: M-dosya yapısı ve Kontrol Yapıları 1.
BM-103 Programlamaya Giriş Güz 2016 (10. Sunu)
BM-103 Programlamaya Giriş Güz 2016 (5. Sunu)
MADDE VE YAPISI SORU BANKASI
VERİ TÜRLERİ.
OPERATÖRLER + / = <= MOD = = > < > AND
FONKSİYONLAR.
YAPISAL PROGRAMLAMA Hafta-6
ARDUİNO Arduino Eğitimleri Bölüm 3 Programlama Dili Temelleri
BLM-111 PROGRAMLAMA DİLLERİ I Ders-2 Değişken Kavramı ve Temel Operatörler Yrd. Doç. Dr. Ümit ATİLA
4- OPERATÖR – koşul - döngü Nesne Yönelimli Programlama - i
Veri Tabanı Yönetim Sistemleri I
sayısı 2 sayısından 2 fazladır..
MADDE VE YAPISI TEST.
TEST.
Sunum transkripti:

Nesneye Yönelik Programlama BM-104 Nesneye Yönelik Programlama Bahar 2013 (2. Sunu) (Yrd. Doç. Dr. Deniz Dal)

Konsol Üzerinde Türkçe Karakterler Görebilmek İçin… #include <iostream>//cout #include <clocale> //setlocale using namespace std; int main() { setlocale(LC_ALL,"Turkish");//Türkçe Karakter Çıktısı İçin cout<<"Merhaba Dünya.ğüşçö\n"; return 0; }

İlişkisel Operatörler İşlev Operatör Örnek Anlam Eşit Mi? == 3==5 3 eşittir 5 mi? Eşit Değil Mi? != 3!=5 3 eşit değildir 5 mi? Büyük Mü? > 3>5 3 5 den büyük mü? Küçük Mü? < 3<5 3 5 den küçük mü? Büyüktür Eşittir Mi? >= 3>=5 3 5 den büyük veya 5 e eşit mi? Küçüktür Eşittir Mi? <= 3<=5 3 5 den küçük veya 5 e eşit mi? İlişkisel operatörler test ettikleri durumun sonucuna göre 1 (true) veya 0 (false) değerini üretirler.

Karar Verme (Basit “if” Yapısı) if yapısı kullanılarak (bir koşul test edilerek - condition) bir program karar verebilir ve farklı işlemler yapabilir. Bu “koşullar” bir sonraki slide ta görülebileceği gibi ilişkisel operatörler kullanılarak oluşturulur. if(koşul) { } Eger “koşul” “true” ise parantez içindeki (gövdedeki) deyimler işletilir. “false” ise eğer gövdedeki deyimler işletilmez ve programın akışı kapanan parantezden sonraki satıra atlar. Gövde tek bir deyimden oluşuyorsa parantezlerin kullanımı zorunlu değildir.

“if” Şartlı Deyimi (Karar Yapısı) if(not>=60) cout<<"gecti"; not >= 60 true “gecti” yazdir false “if” Karar Yapısı Akış Diyagramı (flowchart)

Dikkat!!!!! int a=3; if(a=6) cout<<"Bora"<<endl; Yukarıdaki kod parçasında if deyiminin koşulu olarak a==6 ilişkisel testi yerine sehven yapılan bir hata neticesinde a=6 atama deyimi kullanılmıştır. Atama deyimleri her zaman true olarak değerlendirilen bir işlem gerçekleştirirler. Dolayısıyla bu örnek için, yaptığımız hata yüzünden, if bloğunun içerisine girmiş oluruz. (Aynı zamanda da a değişkeninin değerini 6 olarak güncellemiş oluruz.)

if Şartlı Deyimi ve İlişkisel Operatörler //DorduncuOrnek.cpp #include <iostream>//cout ve cin Kullanımları İçin Gerekli using namespace std; int main() { //Değişken Deklarasyonu int sayi1, sayi2; cout<<"Lutfen 2 Sayi Giriniz\n" <<"Ve Ben Size Iliskilerini Soyleyeyim: "; cin>>sayi1>>sayi2;//Kullanicidan 2 Sayi Al if(sayi1==sayi2) cout<<sayi1<<" Esittir "<<sayi2<<endl; if(sayi1!=sayi2) cout<<sayi1<<" Esit Degildir "<<sayi2<<endl; if(sayi1<sayi2) cout<<sayi1<<" Kucuktur "<<sayi2<<endl; if(sayi1>sayi2) cout<<sayi1<<" Buyuktur "<<sayi2<<endl; return 0;//Programi Sonlandir }

UYGULAMA Kullanıcıdan klavye yoluyla alacağı 3 tam sayının en büyüğünü bularak ekrana yansıtacak bir C++ konsol uygulaması yazınız.

“if-else” Karar Yapısı if(not>=60) cout<<"gecti"; else cout<<"kaldi"; not >= 60 false true “kaldi” yazdır “gecti” yazdır “if/else” Karar Yapısı Akış Diyagramı (flowchart)

“if-else” Deyimi Yerine Soru İşareti ( “if-else” Deyimi Yerine Soru İşareti (?) ve İki Nokta Üst Üste (:) Operatörlerinin Birlikte Kullanımı if(sayi1<sayi2) enKucuk=sayi1; else enKucuk=sayi2; enKucuk=sayi1<sayi2?sayi1:sayi2;

“if-else if-else” Örnekleri if(not >= 90) cout<<"A"; else if(not >= 80) cout<<"B"; else if(not >= 70) cout<<"C"; else if(not >= 60) cout<<"D"; else cout<<"F"; if(not >= 60) cout<<"Dersi Gectiniz.\n"; //tek deyim { cout<<"Kaldiniz.\n"; //çoğul cout<<"Bu dersi tekrar almalisiniz.\n"; //deyim }

Sayaç Kontrollü (counter-controlled) Döngü Esasları Böyle bir döngü için gerekli olanlar: Kontrol değişkeni (sayaç veya loop counter) Kontrol değişkeninin ilk ve son değerleri Döngünün sona erişini test edecek durum (condition) Döngü değişkeninin her seferinde artırılması ya da azaltılması

while Döngüsü ile Sayaç Kontrollü Tekrar #include <iostream> using namespace std; int main() { int sayac=1; //Deklarasyon ve İlk Değer Atama while(sayac<=10) //Tekrarlama Şartı cout<<sayac<<endl; sayac=sayac+1; //Artım Miktarı } return 0;

“while” Döngüsü Akış Diyagramı (Flowchart) sayac=1 Kontrol değişkenine ilk değerini ata sayac<=10 true cout<<sayac <<endl; sayac=sayac+1; Döngünün gövdesi Kontrol değişkenini 1 artır false

“while” Örneği /*BesinciOrnek.cpp Sınıf Ortalamasını Sayaç Kontrollü (counter-controlled) while Döngüsü İle Hesaplayan Program*/ #include <iostream>//cout ve cin Kullanabilmek İçin using namespace std; int main() { //Değişken Deklarasyonu int toplam, //Girilen Notların Toplamı notSayaci,//Girilen Notların Sayısı not, //Girilen Tek Bir Notun Değeri ortalama; //Girilen Notların Ortalaması //İlk Değer Atama (initialization) toplam=0; //toplam değişkenini sıfırla notSayaci=0; //Sayacı Döngü İçin Hazırla //Notları Kullanıcıdan Al ve İşle while(notSayaci<10)//Döngüyü 10 Kere Çalıştır cout<<"Notu Girin: "; //Uyarıyı Ekrana Yazdır cin>>not; //Notu Klavyeden Oku toplam=toplam+not; //Girilen Notu toplam a Ekle notSayaci=notSayaci+1;//Sayacı 1 Artır } ortalama=toplam/notSayaci;//Tamsayı Bölme cout<<"Sinif Ortalamasi: "<<ortalama<<endl; return 0;

Örneğe Devam Bir önceki örneğimizde not sayacı olarak 10 değerini kullandık ve kullanıcıyı 10 adet not girmeye zorladık. Kullanıcının istediği kadar not girmesini ve bunların ortalamasını bulan bir program yazmak isteseydik eğer, bir “bitiş değeri” (sentinel value) kullanarak kullanıcının sisteme artık daha fazla veri girişi yapmak istemediğini belirtmesine izin vermemiz gerekirdi. cout<<"Notu Gir ya da -1 Yazarak Cik: "; cin>>not; while(not != -1)//Bitiş Değeri=-1 { toplam=toplam+not; notSayaci=notSayaci+1; }

Düzenlenmiş “while” Örneği /*AltinciOrnek.cpp Sınıf Ortalamasını Bitiş Değer Kontrollü while Döngüsü İle Hesaplayan Program*/ #include <iostream>//cout ve cin Kullanabilmek İçin using namespace std; int main() { //Değişken Deklarasyonu int toplam, //Girilen Notların Toplamı notSayaci,//Girilen Notların Sayısı not, //Girilen Tek Bir Notun Değeri ortalama; //Girilen Notların Ortalaması //İlk Değer Atama (initialization) toplam=0; //toplam değişkenini sıfırla notSayaci=0; //Sayacı Döngü İçin Hazırla cout<<"Notu Gir ya da -1 Yazarak Cik: "; cin>>not; while(not!=-1) toplam=toplam+not; //Girilen Notu toplam a Ekle notSayaci=notSayaci+1;//Sayacı 1 Artır } ortalama=toplam/notSayaci;//Tamsayı Bölme cout<<"Sinif Ortalamasi: "<<ortalama<<endl; return 0;

“static_cast<>” Operatörü Ortalamalar çoğu kez integer değere sahip olmazlar. 7.21 ya da 8.397 gibi ondalık kısma da sahip olabilirler. Bizim bir önceki örneğimizde ortalama değerini depolayan değişken bir integer olduğu için ondalık kısımlar (var olsa bile) değerlendirmeye alınmadılar. Bu yüzden buna izin veren double değişkeni kullanmalıyız ortalama için. #include <iostream> //cout ve cin Kullanımı İçin #include <iomanip> //setprecision Kullanımı İçin using namespace std; int toplam; int notSayaci; double ortalama; ortalama=static_cast<double>(toplam)/notSayaci; //ortalama=(double)toplam/notSayaci; cout<<"Sinif Ortalamasi"<<setprecision(3)<<ortalama;

Daha da Düzenlenmiş “while” Örneği /*YedinciOrnek.cpp Sınıf Ortalamasını Bitiş Değer Kontrollü while Döngüsü İle Hesaplayan Program*/ #include <iostream>//cout ve cin Kullanabilmek İçin #include <iomanip>//setprecision Kullanımı İçin using namespace std; int main() { //Değişken Deklarasyonu int toplam, //Girilen Notların Toplamı notSayaci, //Girilen Notların Sayısı not; //Girilen Tek Bir Notun Değeri double ortalama; //Girilen Notların Ortalaması //İlk Değer Atama (initialization) toplam=0; //toplam değişkenini sıfırla notSayaci=0; //Sayacı Döngü İçin Hazırla cout<<"Notu Gir ya da -1 Yazarak Cik: "; cin>>not; while(not!=-1)//Bitiş Değeri -1 toplam=toplam+not; //Girilen Notu toplam a Ekle notSayaci=notSayaci+1;//Sayacı 1 Artır } ortalama=static_cast<double>(toplam)/notSayaci;//Ondalıklı Bölme //ortalama=(double)toplam/notSayaci;//Ondalıklı Bölme cout<<"Sinif Ortalamasi: "<<setprecision(3)<<ortalama<<endl; return 0;

Bileşik Atama Deyimleri toplam=toplam+sayac; ya da toplam+=sayac; “+=“ operatörü sağındaki değişkeni solundaki değişkenin değeri ile toplar ve sonucu yine solundaki değişkene atar. c+=7; d-=4; e*=5; f/=3; g%=9;

1 Artırma ve 1 Azaltma Operatörleri ANLAMI AÇIKLAMA ++ 1 Artırma Operatörü (increment) -- 1 Azaltma Operatörü (decrement) ++a Önce 1 Artır (pre-increment) Operatörü (a değişkeninin değerini 1 artır ve sonra a değişkeninin yeni değerini kullan.) y=++x; ise x=x+1; ve sonra y=x; a++ Sonra 1 Artır (post-increment) Operatörü (a değişkeninin mevcut değerini kullan ve sonra değerini 1 artır.) y=x++; ise y=x; ve sonra x=x+1; --b Önce 1 Azalt (Pre-decrement) Operatörü b-- Sonra 1 Azalt (Post-decrement) Operatörü

Örnek //Önce 1 Artır ve Sonra 1 Artır Operatörleri #include <iostream> using namespace std; int main() { int c; c=5; cout<<c<<endl; //Ekrana 5 Yazdır cout<<c++<<endl; //Ekrana 5 Yazdır ve Sonra c yi 1 Artır cout<<c<<endl<<endl; //Ekrana 6 Yazdır cout<<++c<<endl; //c yi 1 Artır ve Ekrana 6 Yazdır cout<<c<<endl; //Ekrana 6 Yazdır return 0; }

4 Farklı 1 Artırma Deyimi a=a+1; ya da a+=1; a++; ++a;

“for” Döngüsü //for Döngüsü ile Sayaç Kontrollü Tekrar //İlk Değer Atama, Tekrarlama Şartı ve Artım Miktarı for //Yapısının İçinde #include <iostream> using namespace std; int main() { for(int sayac=1;sayac<=10;sayac++) cout<<sayac<<endl; return 0; }

“for” Döngüsü “while” Döngüsüne Dönüştürülebilir (Ya da Tam Tersi) for(int sayac=1;sayac<=10;sayac++) { cout<<sayac<<endl; } int sayac=1; while(sayac<=10) { cout<<sayac<<endl; sayac++; }

“for” Döngüsü Örnekleri Kontrol değişkenini 1’den 100’e kadar tek tek artıran “for” döngüsü for(int i=1;i<=100;i++) Kontrol değişkenini 100’den 1’e kadar tek tek azaltan “for” döngüsü for(int i=100;i>=1;i--) Kontrol değişkenini 7’den 77’ye kadar 7’şer artıran “for” döngüsü for(int i=7;i<=77;i+=7)

“break” ve”continue” Deyimleri Döngü içlerinde programın akış kontrolünü değiştirmek için bu deyimleri kullanırız. “break” deyimi while, for veya switch yapılarının içinde kullanıldığında bu yapılar ani bir şekilde sonlandırılır. “continue” deyimi for döngüsü içerisinde kullanıldığında bu deyimden sonra gelen komutlar atlanır ve döngü bir sonraki iterasyona başlar.

Soru: Aşağıdaki program ekrana ne yazdırır? for(int i=1;i<=10;i++) { if(i==5) break; cout<<i<<" "; } continue;

Sonsuz Döngü (1. Versiyon) #include <iostream> using namespace std; int main() { while(true)//Sonsuz Döngü ………. if(…….)//Kullanıcı Doğru Tahminde Bulunduysa break; } return 0;

Sonsuz Döngü (2. Versiyon) #include <iostream> using namespace std; int main() { bool devamEt=true; while(devamEt)//Sonsuz Döngü ………. if(…….)//Kullanıcı Doğru Tahminde Bulunduysa devamEt=false; } return 0;

Sonsuz Döngü (3. Versiyon) #include <iostream> using namespace std; int main() { for(;;)//Sonsuz Döngü ………. if(…….)//Kullanıcı Doğru Tahminde Bulunduysa break; } return 0;

“switch-case” ile Çoklu Seçim cin>>secenek; secenek= toupper(secenek); switch(secenek) { case 'A': FunctionA(); break; case 'B': FunctionB(); case 'C': break; //Hiçbir Şey Yapma default: //Beklenen Bir Karakter Girilmediyse cout << "Uzgunum, " <<secenek<< " hicbir fonksiyona uymuyor. Lutfen tekrar dene.\n\n"; } if(secenek=='A') FunctionA(); else if(secenek=='B') FunctionB(); else if(secenek=='C') ; else cout<< "Uzgunum";

Mantıksal Operatörler Bazı karar verme durumlarında ilişkisel testlerin gerçekleştirebildiklerinden daha kompleks testlere ihtiyaç duyabiliriz ve bu basit testleri mantıksal operatörler yardımıyla birleştirerek amacımıza ulaşırız. Bu mantıksal operatörler: Mantıksal VE (AND) (&&) Mantıksal VEYA (OR) (||) Mantıksal DEĞİL (NOT) (!) Mantıksal operatörler test ettikleri durumun sonucuna göre 1 (true) veya 0 (false) değerini üretirler.

MANTIKSAL VE (&&) Doğruluk Tablosu İFADE 1 İFADE2 İFADE1&&İFADE2 false false false false true false true false false true true true

MANTIKSAL VEYA (||) Doğruluk Tablosu İFADE 1 İFADE2 İFADE1||İFADE2 false false false false true true true false true true true true

MANTIKSAL DEĞİL (!) Doğruluk Tablosu İFADE ! İFADE false true true false

Örnekler if((isim=="Deniz") && (yas>=30)) if((donemOrtalamasi>=90)||(finalSinavi>=90)) if((secenek=='A')||(secenek=='a')) Matematiksel olarak 3<x<7 C++ dilinde (3<x && x<7) if(!(rakam==bitisDegeri)) ya da if(rakam!=bitisDegeri)

Scope (Sıkop) (Faaliyet/Kapsam/Geçerlilik Alanı-Ömür) #include <iostream>//cout Kullanabilmek İçin using namespace std; int main() { int a=3;//main Fonksiyonunun Faaliyet Alanında Bir Değişken if(a==5) int b;//Sadece if Bloğunun Faaliyet Alanında Geçerli Bir Değişken (Lokal) b=a*3;//Hala main İçerisindeyiz. a Değişkeni Burada da Anlamlı } cout<<b<<endl; return 0;

Scope (Sıkop) (Faaliyet/Kapsam/Geçerlilik Alanı-Ömür) #include <iostream>//cout Kullanabilmek İçin using namespace std; int main() { for(int i=1;i<=5;i++) cout<<"Bora"<<endl; cout<<i<<endl; return 0; }

Scope (Sıkop) (Faaliyet/Kapsam/Geçerlilik Alanı-Ömür) #include <iostream>//cout Kullanabilmek İçin using namespace std; int main() { int i; for(i=1;i<=5;i++) cout<<"Bora"<<endl; cout<<i<<endl;//Sorun Yok. Çünkü?? return 0; }

Scope (Sıkop) (Faaliyet/Kapsam/Geçerlilik Alanı-Ömür) #include <iostream>//cout Kullanabilmek İçin using namespace std; int main() { int i=1; for(;i<=5;i++) cout<<"Bora"<<endl; cout<<i<<endl;//Sorun Yok. Çünkü?? return 0; }

SORULAR Kullanıcıdan klavye yoluyla aldığı bir sayının bölenlerini veya çarpanlarını bularak ekrana basan bir C++ programı yazınız. Kullanıcıdan klavye yoluyla aldığı bir sayının ASAL sayı olup olmadığını belirleyen ve eğer ASAL sayı ise ASAL çarpanlarını ekrana basan bir C++ programı yazınız. Kullanıcıdan klavye yoluyla aldığı belirli bir aralık içerisindeki bütün ASAL sayıları ve bu ASAL sayıların sayısını ekrana basan bir C++ programı yazınız. Kullanıcıdan klavye yoluyla aldığı iki sayının aralarında ASAL olup olmadığını bulan bir C++ programı yazınız. (4 ve 15 aralarında asaldır örneğin.) Kullanıcıdan klavye yoluyla aldığı 3 sayının En Büyük Ortak Bölenini (EBOB) bulacak bir C++ programı yazınız. Kullanıcıdan klavye yoluyla aldığı 3 sayının En Küçük Ortak Katını (EKOK) bulacak bir C++ programı yazınız. (15 sayısının katları: 15 30 45 60 75 ve 20 sayısının katları: 20 40 60 tır. Dolayısıyla EKOK(15,20)=60 tır.) Kullanıcıdan klavye yoluyla aldığı 2 rasyonel sayıyı toplayıp en sade haliyle ekrana basacak bir C++ programı yazınız.