BM-103 Programlamaya Giriş Güz 2016 (9. Sunu)

Slides:



Advertisements
Benzer bir sunumlar
Nesneye Yönelik Programlama
Advertisements

Bilgisayar Bilimlerine Giriş-2
STRİNG FONKSİYONLARI.
Değişken , Veri Türleri ve Operatörler
Programlama-II (Java ile Bilgisayar Programlama)
C PROGRAMLAMA DİLİNE GİRİŞ
Bölüm 2 C Dilinin Temelleri
Nesneye Yönelik Programlama
C Programlama Diline Giriş
C PROGRAMLAMA DİLİNE GİRİŞ
Atama ve Girdi/Çıktı Komutları
BPR151 ALGORİTMA VE PROGRAMLAMA - I
OOP4 LAB.
Nesneye Yönelik Programlama
Bölüm 2 C Dilinin Temelleri Genel Kavramlar
Nesneye Dayalı Programlama
Bilgisayar Programlama (Yrd. Doç. Dr. İbrahim ASRİ)
Bilgisayar Programlama Güz 2011
C Programlama Dili ve Gömülü Sistemler için MikroC
Bilgisayar Programlama
C++ Yapısı Giriş-Çıkış Komutları Döngü Komutları
Nesneye Yönelik Programlama
Nesneye Yönelik Programlama
Bilgisayar Programlama
C++ Temelleri C++ genel amaçlı, nesne tabanlı, yüksek seviye programlama dilidir.
C ile Programlamaya Giriş
DEĞİŞKENLER, VERİ TÜRLERİ VE OPERATÖRLER
Paralel Programlamaya Giriş
Temel Veri Türleri ve Operatörler
FONKSİYONLAR.
Diziler Adres Kavramı Nesnelerin Adresleri sizeof Operatörü
Bilgisayar Programlama
Temel Giriş/Çıkış Fonksiyonları
C Programlama Diline Giriş
C++ Ders Notları 3.Ders (String İşlemleri)
İNTERNET PROGRAMCILIĞI I BTP 207 Ders 8.  Tamsayı Değerler (Integer) Tamsayılar, 10 tabanlı (decimal), 8 tabanlı (octal) veya 16 tabanlı (hexadecimal)
STRING‘LER Karakter Kütüphanesi Fonksiyonları
 2006 Pearson Education, Inc. All rights reserved. Görsel C# ile Windows Programlama Güz 2009 (2. Hafta)
Görsel C# ile Windows Programlama
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
Bugünkü konular Programlama dilleri ve Syntax Generic C Program yapısı
SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz
2. HAFTA 2. Hafta.
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
Bölüm 3 Atama ve Girdi/Çıktı Komutları Bölüm 3 Atama ve Girdi/Çıktı Komutları Atama Komutu Operatörler İsim Sabitleri Veri Tipi Dönüşümü Çıktı Fonksiyonu.
BMS-301 Kabuk Programlama Güz 2015 (5. Sunu) (Yrd. Doç. Dr. Deniz Dal)
BM-103 Programlamaya Giriş Güz 2012 (3. Sunu)
Adım Adım Algoritma.
SAYISAL ANALİZ Doç.Dr. Cüneyt BAYILMIŞ.
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
Genel Kavramlar Bölüm - 1. YAZILIM Bilgisayara işlemler yaptırabilmek ve karar verdirtebilmek için yazılan kalıplara denir. Yazılım, genel olarak donanım.
BİLGİSAYAR PROGRAMLAMA Ders 6: Diziler Yrd. Doç. Dr. Altan MESUT Trakya Üniversitesi Bilgisayar Mühendisliği.
VERİ ve BELLEK & DEĞİŞKENLERİN SAKLANMASI Asst.Prof.Dr.Misket YEKTAY Gizem AYIK.
Bölüm 2 C Dilinin Temelleri Genel Kavramlar Yazım ve Noktalama Kuralları C Kütüphaneleri C Dilindeki Sözcükler Değer Sabitleri Veri Tipleri Değişkenler.
Programlamaya Giriş-I Bölüm-1. Algoritma Algoritma günlük yaşamımızda yaptığımız işler sırasında sıklıkla kullandığımız bir yöntemdir. Algoritma, bir.
PROGRAMLAMAYA GİRİŞ.
BİLGİSAYAR PROGRAMLAMA Ders 6: Diziler
C Programlama Dili Bilgisayar Mühendisliği.
C’de Fonsiyonlar Aslı Ergün.
BİLGİSAYAR PROGRAMLAMA Ders 6: Diziler
C Programlama Diline Giriş
Bölüm 2 C Dilinin Temelleri
YAPISAL PROGRAMLAMA Hafta-6
ARDUİNO Arduino Eğitimleri Bölüm 3 Programlama Dili Temelleri
Bilgisayar Programlama
BLM-111 PROGRAMLAMA DİLLERİ I Ders-2 Değişken Kavramı ve Temel Operatörler Yrd. Doç. Dr. Ümit ATİLA
Bilgisayar Mühendisliğine Giriş
ALGORİTMALAR VE PROGRAMLAMAYA GİRİŞ
Bölüm 2 C Dilinin Temelleri
C ile Programlamaya Giriş
Sunum transkripti:

BM-103 Programlamaya Giriş Güz 2016 (9. Sunu) (Yrd. Doç. Dr. Deniz Dal)

C’nin ve C++`ın Tarihçesi C++ dili C dilinden o da BCPL ve B dilleri üzerinden gelişti. BCPL 1967 yılında Martin Richards tarafından işletim sistemi ve derleyici yazmak amacıyla geliştirildi. Ken Thompson Bell Laboratuvarlarında BCPL’den faydalanarak B dilini geliştirdi ve bu dili UNIX işletim sisteminin ilk versiyonlarını yazmak için kullandı. C dili B dili üzerinden gelişti ve Bell Laboratuvarlarında Dennis Ritchie tarafından 1972 yılında yazıldı. C dili ilk başlarda UNIX işletim sisteminin yazılım dili olarak geniş kabul gördü. C++ ise Bjarne Stroustrup tarafından, 1980`li yılların başında, Bell Laboratuvarlarında, C dilinin bir uzantısı olarak birçok ek özelliği bünyesinde barındıran bir programlama dili olarak geliştirildi. Bu özelliklerin en önemlisi ise bu dilin bir “object-oriented programming” yani “nesne tabanlı programlama” dili olmasından kaynaklanır.

C++ Standart Kütüphanesi (Standard Library) Her bir C++ programı “sınıflar” (classes) ve “fonksiyonlar” (functions) denen kısımlardan oluşur. İhtiyacımız olan her programı sıfırdan kendimiz yazabileceğimiz gibi “C++ Standart Kütüphanesi” denen ve bünyesinde çok zengin bir sınıf ve fonksiyon kümesi barındıran kütüphaneyi de kullanabiliriz. (!Avoid reinventing the wheel. Reuse reuse reuse.!)

Bir C++ Programı Yazım Aşamaları Tipik bir C++ programı bilgisayar tarafından çalıştırılabilmeden önce 6 aşamadan geçer: Yazma ve Düzeltme (Editing) Önişleme (Preprocessing) Derleme (Compiling) Birleştirme (Linking) Yükleme (Loading) Çalıştırma (Executing) Test Etme (Testing) Hata Ayıklama (Debugging) Microsoft Visual Studio 2015 programı bu 8 aşamanın tamamında bize yardımcı olacak araçlara sahiptir. (IDE: Integrated Development Environment) (Tümleşik/Bütünleşik/Entegre Geliştirme Ortamı) İki Açık Kaynak IDE: Eclipse ve Netbeans

Bir C++ Programı Yazım Aşamaları (devam) Yazma ve Düzeltme (Editing): Programcı bir editör yardımı ile C++ programını yazar ve gerekli düzenlemeleri yapar. Bir C++ programı “.cpp” uzantılıdır. Önişleme ve Derleme (Preprocessing and Compilation): Compiler ya da derleyici bir C++ programını makine dilini çevirir. (machine language code - object code) Preprocessor (önişlemci) derleyiciden önce çağrılır ve bazı manipulasyonlar gercekleştirir. (Açıklayıcı bilgileri (comments) programdan çıkarır, bazı dosyaları mevcut programa iliştirir.) Birleştirme (Linking): Bir C++ programı tipik olarak başka yerlerde tanımlı fonksiyonlara referanslar içerir. (Mesela standart kütüphanedeki fonksiyonlar) Derleyicinin oluşturduğu “makine kodu” bu olmayan fonksiyonların yerini sonradan tamamlanmak üzere boş bırakır. “Linker” dediğimiz birleştirici ana makine kodu ile fonksiyonlara ait makine kodlarını birleştirir ve bilgisayar tarafından çalıştırılabilecek “executable image” denen programı oluşturur. Yükleme (Loading): !!!BİR BİLGİSAYAR PROGRAMI ÇALIŞTIRILMADAN ÖNCE, MUHAKKAK BELLEĞE YERLEŞTİRİLMELİDİR.!!! İşletim sisteminin “Loader” (yükleyici) adlı bileşeni “executable image” halindeki programı sabit diskten alarak belleğe transfer eder ve programın başlangıç adresini CPU’ya bildirir. Çalıştırma (Executing): Son olarak, bilgisayar CPU`nun kontrolu altında bellekteki programı birerli komutlar halinde peşpeşe çalıştırır.

Bir C++ Programı Yazım Aşamaları (devam) Genellikle programlar ilk deneme esnasında çalışmazlar. Az önce açıklanan 6 aşamanın herhangi birinden kaynaklanan bir sorun buna sebep olmuş olabilir. Sebep araştırılır, belki yeniden başa dönülür ve her işlem yeniden tekrarlanır. Programlar genellikle kullanıcıdan giriş isterler ve çalıştırma sona erdiğinde bir çıkış verirler. C++ programlama dilinde girişler genellikle “cin - see in - siin” (standard input stream) sayesinde klavyeden alınırlar. Bilgi ise genellikle “cout - see out – siaut” (standard output stream) sayesinde bilgisayar ekranına yönlendirilir.

C++ ile Programlamaya Giriş (Basit Bir Program – Ekrana Tek Satır Yazı Yazdırma) Herhangi bir bilgisayar programlama dilini öğrenmeye genel olarak ekrana “Hello World” (Merhaba Dünya) yazdırılarak başlanır. //IlkOrnek.cpp //C++ ile Yazdığımız İlk Program #include <iostream>//cout Kullanımı İçin Gerekli using namespace std;//Standart Kütüphane int main() { cout<<"Hello World\n"; return 0;//Programı Sonlandır }

Örnek Programa Ait Açıklamalar 1 ve 2 nolu satırda yazdıklarımızın programın işleyişine hiçbir katkısı yoktur. Bunlar “comment” adını verdiğimiz ve programın anlaşılmasına yardımcı olabileceğini düşündüğümüz açıklamalardır. “//” karakteri “bir satırlık açıklama” olarak adlandırılır, çünkü açıklama o satır sona erdiğinde biter. Eğer birden fazla satıra comment yazmak istersek, yazacaklarımızı “/*” ve “*/” karakterleri arasına koyarız.

Örnek Programa Ait Açıklamalar (Devam) 3 nolu satır “preprocessor directive” yani “önişleme talimatı” dır. “#” karakteri ile başlayan her satır program derlenmeye başlanmadan önce “C++ önişleyicisi” tarafından işlenir. Bizim örneğimizde bu satır önişlemciye standart kütüphaneden “iostream” adlı başlık (header) dosyasını eklemesini söyler. Bu dosya “C++ Standart Kütüphanesinden” bizim için giriş/çıkış işlemlerini kolaylaştıracak fonksiyonları içerir. (cout ve cin kullanılabilir artık) 4 nolu satır muhakkak eklenmelidir ve amacı detaylı olarak daha sonraki derslerde işlenecektir.

Örnek Programa Ait Açıklamalar (Devam) 6 nolu satır her C++ programında olması MUHAKKAK bir satırdır. “main” kelimesinden sonraki parantezler bu bloğun bir fonksiyon olduğunu söyler bize. Bir C++ programı bir ya da daha fazla fonksiyondan oluşur ama MUHAKKAK bir “main” fonksiyonu olmalıdır. Program çalışmaya “main” fonksiyonundaki ilk satırı işleterek başlar. “main” kelimesinin solundaki “int” bize bu fonksiyonun bir integer rakam geri döndürdüğünü söyler. “{“ sol köşeli parantezi ve ona karşı gelen “}” sağ köşeli parantezi bir fonksiyonun gövdesini tanımlar. (7 ve 10 nolu satırlar) 8 nolu satır ekrana, “string” adını verdiğimiz tırnak işaretleri içindeki karakter dizisini yazdırır. Bu satırın tamamı (en sondaki noktalı virgül “;” işareti de dahil) deyim (statement) olarak adlandırılır. “<<“ karakteri “araya akış sokma operatörü” olarak tanımlanır. Bu operatörün sağındaki bilgi solundaki “cout” a (ki genelde ekranı temsil eder) atanır. Tırnak işaretleri içinde kullanılan “\” (backslash) karakteri “kaçış karakteri” olarak adlandırılır ve bu özel bir karakterin ekrana yazdırılmak üzere olduğuna işaret eder. Bir karakter dizisi içinde “\” a rastlanıldığında, bir sonraki karakter backslash ile birleştirilir ve bu “kaçış sırası” olur. Bizim örneğimizde “\n” yeni bir satıra git anlamı taşır. 9 nolu satır her “main” fonksiyonunun sonuna MUHAKKAK eklenmelidir ve herşey yolunda gitti ise programın sona ermesine sebep olur.

Yaygın “Kaçış Sıraları” \n : Newline (İmleci yeni bir satırın en başına götürür.) \t : Yatay tab (İmleci bir sonraki tab durağına götürür.) \r : Carriage return (İmleci mevcut satırın başına götürür.) \\ : Backslash (Ters Bölü) karakterini ekrana yazar. \" : Çift tırnak işaretini ekrana yazar.

Ekrana Birden Fazla Satır Yazı Yazdırma (“Kaçış Sırası” Kullanarak) //IkinciOrnek.cpp //Tek Bir Deyimle Ekrana Birkaç Satır Yazı Yazdırma #include <iostream>//cout Kullanımı İçin Gerekli using namespace std;//Standart Kütüphane int main() { cout<<"Welcome\nto\n\nC++\n"; return 0;//Programı Sonlandır }

Klavyeden Girilen İki Sayıyı Toplayan Program //UcuncuOrnek.cpp //Kullanıcıdan Aldığı 2 Tamsayıyı Toplayan Program #include <iostream>//cout ve cin Kullanımları İçin Gerekli using namespace std;//Standart Kütüphane int main() { //Değişken Deklarasyonu int sayi1,//Birinci Sayı sayi2,//İkinci Sayı toplam;//Girilen 2 Sayının Toplamını Saklayan Değişken cout<<"Birinci Sayiyi Giriniz:";//Ekrana Mesaj Yaz cin>>sayi1;//Girilen Sayıyı sayi1 e Ata cout<<"Ikinci Sayiyi Giriniz:";//Ekrana Mesaj Yaz cin>>sayi2;//Girilen Sayıyı sayi2 ye Ata toplam=sayi1+sayi2;//Girilen 2 Sayıyı Topla cout<<"Girilen 2 Sayinin Toplami:"<<toplam<<endl;//Ekrana Toplamı Yazdır return 0;//Programı Sonlandır }

Örnek Kodun Açıklaması 8 nolu satır ile integer veri tipinde 3 adet değişken (sayi1, sayi2, toplam) tanımlanır. (Değişken deklarasyonu) Bir değişken bilgisayarın belleğinde bulunur ve program tarafından depolama amaçlı kullanılır. Deklarasyonun başındaki “int” anahtar kelimesi tanımlanan değişkenin tipinin integer olduğunu gösterir. 12 ve 14 nolu satırlardaki “cin” operatörü klavyeden bilgi girişi için kullanılır. cin operatörü klavyeden whitespace, newline (ENTER) ya da tab karakterini görünce okumayı sonlandırır. 16 nolu satırdaki “endl” manipülatör olarak adlandırılır ve yeni bir satırın başına gitmek için kullanılır.

Değişkenler (Variables) Her bir C++ değişkeni içerisinde saklayacağı bilginin tipini belirleyen bir VERİ TİPİNE ve bir İSME sahiptir. Değişkenlere MUHAKKAK kullanım maksatlarına uygun bir isim verilmelidir. Bütün değişken isimleri bir harfle başlar ve devamında başka harfler, rakamlar ve alt çizgiler içerebilir. Değişkenler adlandırılırken noktalama işaretleri ve boşluk kullanılmaz. Değişkenler isimlendirilirken en fazla kullanılan notasyonlardan birisi deve notasyonudur (camel notation). Bu notasyon, değişken ismi birden fazla kelime içeriyorsa ilk kelime hariç sonraki kelimelerin ilk karakterlerinin büyük harfle yazıldığı bir notasyondur. enKucukSayi, bankaHesapNo gibi. C++’da değişkenler kullanılmadan önce muhakkak tanımlanmalıdırlar yani deklare edilmelidirler. Değişkenlere değer atanması deklarasyon anında da yapılabilir daha sonra da.

C++’ ta Tanımlı Temel Veri Tipleri (SAKLAMA KAPLARINI DÜŞÜNÜN) Veri Tipi Açıklama Boyut Aralık bool true ya da false bilgisi saklamak için 1 byte true veya false char Yalnız bir karakter saklamak için karakter short int Kısa tamsayı saklamak için 2 byte signed: -32768 to 32767 unsigned: 0 to 65535 int Tamsayı saklamak için 4 byte signed: -2147483648 to 2147483647 unsigned: 0 to 4294967295 float Ondalıklı sayı saklamak için ~7 digits double Çift hassasiyetli ondalıklı sayı saklamak için 8 byte ~15 digits

Değişken Deklarasyonu ve Değer Atama Örnekleri bool buyukMu; //Deklarasyon bool test=false; //Deklarasyon ve İlk Değer Atama char kullaniciGirisi='y'; unsigned short int kardesSayisi; signed int sicaklik; int sicaklik; float ortalama=2.345; double piSayisi=3.1418; double hesapBakiyesi=1100.57;

Aritmetik Operatörler Toplama Operatörü; + ; örneğin a+3 Çıkarma Operatörü; - ; örneğin a-3 Çarpma Operatörü; * ; örneğin a*3 Bölme Operatörü; / ; örneğin a/3 Mod Alma Operatörü; % ; örneğin a%3 Tamsayı Bölme: 7/4=1 17/5=3 Modülüs: 7%4=3 17%5=2

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