C++ Dilinde Çok Biçimlilik (Polymorhism)

Ebat: px
Şu sayfadan göstermeyi başlat:

Download "C++ Dilinde Çok Biçimlilik (Polymorhism)"

Transkript

1 C++ Dilinde Çok Biçimlilik (Polymorhism) C++ Dilinde Çok Biçimlilik (Polymorhism) Polymorhism nedir? Polymorphism in türkçesi çok biçimliliktir. Çok biçimlilik sözcüğünü duyduğumuzda aklımıza tek bir şeyin farklı kullanımlara farklı yanıtlar vermesi gelebilir.bunu sınıf kullanımına indirgediğimizde ise birbiriyle kalıtımla ilişkisi olan farklı sınıfların nesnelerinin aynı üye fonksiyon çağrısına farklı yanıt vermesi şeklinde açıklayabiliriz. Polymorphism nasıl kullanılır? Bunun için bir base classımız olmalı (temel sınıf) ve ondan kalıtımla oluşan derived classlar(türetilmiş sınıflar). Base class da oluşturulan bir fonksiyon diğer sınıflarından hepsinde de kullanılacak ama bu fonksiyonların her birinin içeriği farklı olacak. Base class da tanımladığımız ve bütün classlar için ortak kullanmak istediğimiz fonksiyonu base class da tanımlarken bunu virtual olarak tanımlayıp,kullanmalıyız.diğer classlara tanımlama yaparken ise normal tanımlama yapılmalıdır. Base classdaki tanımlama: public virtual string speak() const Kalıtılmış sınıftaki tanımlama: public string speak() const main de bunu kullanacakken de alt sınıflardan nesne oluşturup bunu base class ın pointer ına ya da adresine eklemek gerekir. dog kucik //dog derived class,pet base class pet *p1=&kucik ya da pet &p2=kucik şeklinde kullanılır.

2 Polymorphismin ne fayda sağlar? Aynı fonksiyonu kullanacak yeni bir alt class eklendiğinde de fonksiyonun içeriğini tekrardan yazmak zorunda kalmacağız. Bu söylediğimiz durum tabiki büyük projelerde avantaj sağlayacaktır. Temel bir içeriğe sahip fonksiyon var ve buna her bir oluşturulan class da yeni özellikler ekleniyor. KAYNAKÇA vram.html HAZIRLAYAN Rabia UĞURLU C++ Dilinde Değişken Kavramı C++ Dilinde Değişken Kavramı Değişkenler, dışarıdan alınan veya program içinde üretilen değerleri geçici olarak saklamaya yarayan belleklerdir. Okunan Değer Değişken Veri Tipi 0:255 arası küçük tamsayı (usingned char) 0:65535 arası tamsayı (usingned short) -2 milyar: +2 milyar arası (int) 3,14 Ondalıklı sayı (float)

3 a Karakter (char) Merhaba Metin (string) Dikkat etmeniz gereken en önemli konu dışarıdan alınan değer ile atanacak değişkenin uyumlu olmasıdır. Eğer verileri uygun tipteki değişkenlere atamazsanız derleme sonucunda hata alırsınız. Değişkenlerin Fiziksel Yapısı Değişkenler RAM bellekteki raf benzeri alanlarda saklanır. 8 tane 0 veya 1 bilgisini saklayan hafıza bir araya gelir ve 1 byte lık hafızayı oluşturur. RAM bellekte 1 byte lık hafızalar alt alta raf gibi dizilmişlerdir BIT BIT BIT BIT BIT BIT 1 byte taki tüm değerler 0 ( ) olursa onluk değeri 0, 1 byte taki tüm değerler 1 ( ) olursa onluk değeri 255 olur. 1 Word teki tüm değerler 0 ( ) olursa onluk değeri 0, 1Word teki tüm değerler 1 ( ) olursa onluk değeri olur. Eğer ten (16 bit) daha büyük değerlerle çalışılacaksa bu değerler için RAM bellekte 4 byte (32 bit) yer ayırmak gerekir. Bu da arasındaki değerleri kapsar.

4 RAM bellek yapısı özellikle değşkenler ve veri tipleri için çok önemlidir. Belleğe kayıt edilen farklı türdeki veriler farklı miktarda alan kaplar. Aşağıda değişik örnekler bulabilirsiniz: Kadın/Erkek bilgisi 0/1 olarak kaydedilecekse her kayıt RAM bellekte 1 bit yer kaplar. Evli/Bekar bilgisi 0/1 olarak kaydedilecekse her kayıt RAM bellekte 1 bit yer kaplar arasındaki değerler RAM bellekte 1 byte yani 8 bit yer kaplar; Örneğin öğrencilerin arasında notu girilecekse her not RAM bellekte 1 byte yer kaplar arası değerler RAM bellekte 2 byte yani 16 bit yer kaplar; Örneğin kg arasında değişen yük konteynır ağırlığını kayıt etmek için RAM bellekte 2 byte yer ayırmak gerekir. 0-4 milyar arası değerler RAM bellekte 4 byte yani 32 bit yer kaplar; Örneğin cirosu 1 ile 4 milyar arasında değişen bir şirketin bilgisini kayıt etmek için RAM bellekte 4 byte (32 bit) yer ayırmak gerekir. KAYNAKÇA Abaküs yayınları C++/C/ Fahrettin ERDİNÇ HAZIRLAYAN Berat DAĞTEKİN

5 C++ Exception Handling(Hata Yakalama) Hata yakalama (Exception Handling) başlıbaşına büyük bir konu olmasına rağmen Hata Yakalama ile ilgili temel bilgileri basit örneklerlerle anlatmaya çalışacağım. C dili bize çok az hata yakalama mekanizması sunar. Aşağıdaki kodu inceleyerek hata oluşma durumlarından neyi kastettiğimizi anlayabilirsiniz. int BirseylerYap() { int *a, c; FILE *dosya; a = malloc(sizeof(int) * 10); if (a == NULL) return 1; dosya = fopen("cpp.txt", "rb"); if (dosya == NULL) { free(a); return 2; fread(a, sizeof(long), 10, b); if (a[0]!= 0x10) { free(a); fclose(dosya); return 3; fclose(b); c = a[1]; free(a); return c;

6 Bu fonksyionla yapmak istediğimiz, birtakım geri dönüş değerlerine göre hatanın ne olduğunu anlamaktır. Eğer geri dönüş değeri 1 ise alan tahsisatı yapılamadığını, 2 ise cpp.txt dosyasının açılamadığını anlıyoruz. Aslında burada hata ayıklaması gibi özel bir kavram yoktur.kendimiz if-else bloklarıyla hatayı bulmaya çalışıyoruz. Ama c++ ın bunların ötesinde yapabildiği şeyler vardır. C++ dili hata yakalama için özel anahtar sözcükler içerir. Şimdi sırayla bu anahtar sözcükleri anlayabilmek için basit bir c++ programı yazalım. Hata denetlemesi yapabileceğimiz programımız şöyle olsun. Kullanıcıdan iki değer alacağız.ve ilk alınan değeri ikinci alınan değere böleceğiz. Eğer biraz matematik bilgisine sahipsek kullanıcı ikinci değer olarak sıfır girdiğinde hata olacaktır. Çünkü bir sayının sıfıra bölünmesi matematiksel olarak sonsuzu ifade eder.bilgisayar programcılığında ise sonsuz diye bir şey yoktur, herşey sonludur.(siz sonsuz döngüler yaptığımıza bakmayın) Şimdi C++ da exception handling nasıl yapılır ona bakalım. C++ da hata yakalama mekanizması try,catch ve throw anahtar sözcükleriyle yapılır. try ve catch birer komut bloklarıdır. Hatanın ayıklanmasını istediğimiz bölgeyi try blokları içine almamız gerekir. Hata yakalandığında işletilecek kodlar ise catch blokları içinde olmalıdır. Peki try bloku ile catch bloku arasındaki iletişim nasıl sağlanacak, bunun cevabı ise throw anahtar sözcüğüdür. Hatanın oluşmasına sebeb olacak

7 ifadeden sonra catch bloğuna hatanın türü ile ilgili bilgi göndeririz. Aşağıdaki programda throw ile atılan bir int bilgidir. catch bloğu ise bu bilgiyi alarak bir hata mesajı verir. Unutmayın throw ile atılan mesajdan sonra programımızı eğer exit() gibi bir fonksiyonla bitirmezsek catch bloğundan sonra programın akışı devam edecektir. Bu yüzden eğer programımızla ilgili hayati bir hata yakalarsak catch bloğu içinde exit() ile programı tamamen sonlandırmamız gerekir. int main(void){ float a,b,c; try{ cin >> b >> c ; if (c==0) throw 1 a=b/c; catch(int i) { cout << i<< " Hata oluştu" return 0; Gördüğünüz gibi yukarıdaki programda eğer kullanıcı ikinci değer olarak sıfır girerse programımız catch bloğuna gelir ve ekrana 1 Hata oluştu mesajı yazılır. Elbette exception handling mekanizması bu kadar basit işler için değildir. Asıl amacımız sınıflar ile ilişki kurarak hata ayıklamak.hatta throw ile kullanmak için her sınıf için ayrı birer hata sınıfları bile oluşturabiliriz. Hata diye bir sınıfımızın olduğunu düşünelim. Şu ifade son derece legal bir durumdur. throw(hata err);. Hatta, Hata sınıfına ait bir varsayılan kurucu(constructor) işlevinin de olduğunu düşünürseniz şöyle bir kod da

8 yazabiliriz. throw Hata();. Catch bloğuna gönderdiğimiz Hata adlı sınıf nesnesini Catch bloğunda ise şöyle yakalarız. catch(hata err); Şimdi bu söylediklerimizi bir örnekle gösterelim. Örneğimizde MetreSantim diye bir sınıfımız olacak. Amacımız bir uzunluk ölçüsünü iki değer olarak tutmak(metre ve santim). Sınıfımızın iki tane m(metre) ve cm(santim) olacak şekilde iki tane üye değişkeni olacak. Sınıfımızın biri kurucu olmak üzere put ve show gibi 3 tane de üye işlevi olacaktır. Amacımız put() ya da kurucu işlevi ile oluşturulacak nesnelerin santimetre değerini 100 den küçük olacak şekilde tutmak.(not: 4 metre 150 santim yerine 5 metre 50 santim demek daha mantıklı bence:)) Tabi bunu yaparken yukarıdaki örnekten daha gelişmiş bir hata ayıklama mekanizması kullanacağız. Bir Hata sınıfımız olacak ve bu hata sınıfı ile cm olarak girilen değeri ve bu değerin hangi fonksiyon tarafından gönderildiğini saklayacağız. Hata sınıfının MetreSantim sınıfına özgü olduğunu vurgulamak için ise iç içe(nested) sınıf tanımlaması yapacağız. Yani Hata sınıfının bildirimini MetreSantim sınıfının içinde yapacağız. Hata sınıfı, hatanın(throw işleminin) hangi fonksiyondan geldiğini tutacak char türden bir dizi ve hataya sebep olan değeri tutan int türden elemanlardan oluşacaktır. Aşağıdaki kodları inceleyerek hata mekanizmasının nasıl çalıştığını çok iyi anlayabilirsiniz. Satır aralarındaki yorumları iyice anlamaya çalışın. #include #include #include //Yukarıda belirttiğimiz gibi MetreSantim sınıfının bildirimi class MetreSantim{ int m; int cm; public: MetreSantim(int m1, int cm1); void Put(int m1,int cm1);

9 void Show(); class Hata{ public: int deger; char str[200]; Hata(int hatadegeri,char *fonk){ deger=hatadegeri; strcpy(str,fonk); ; ; /*Sınıf bildirimi Sonu. Hata sınıfına ait kurucu fonksiyonu Hata nın geldiği fonksiyonun ismini ve hataya sebep olan değeri işler.*/ MetreSantim::MetreSantim(int m1,int cm1){ if ( cm1 > 99 ) throw(hata(cm1, Kurucu İşlev )); m=m1; cm=cm1; /*MetreSantim kurucu işlevi içinde throw işlemi ile bir Hata nesnesi oluşturup Catch bloğuna gönderiyoruz.hata sınıfının kurucu işlevinin parametrik yapısına dikkat edniz.*/ void MetreSantim::Put(int m1,int cm1) { if ( cm1 > 99 ) throw(hata(cm1, Put Fonksiyonu )); m=m1; cm=cm1; /*MetreSantim sınıfına ait Put() fonksiyonu da yakalamak istediğimiz hataya neden olabildiği için santimetre olarak 100 den büyük değer girildiğinde throw ile catch bloğuna bir hata nesnesi fırlatıyoruz.tabi hata nesnesine uygun bilgileri yerleştiriyoruz.*/ void MetreSantim::Show()

10 { cout << ( << m <<, << cm << ) << endl; /*Show() fonksiyonun ne yaptığını anlatmama gerek yok sanırım.tabi ekranda hiçbir zaman (5,150) şeklinde bir yazı göremeyiz.bizim de istediğimiz buydu zaten değilmi?*/ void main(void) { try { MetreSantim x(5,10); x.show(); x.put(10,150); catch(metresantim::hata err) { cout << Santimetre olarak << err.deger << değerini giremessiniz ->> << err.str << endl; /*Main de try bloku içine hata oluşabilecek kodları yazıyoruz.x.put(10,150); dediğimizde Put() işlevi içinden catch blokuna throw ile gelineceği için ekrana Santimetre olarak 150 değerini giremezsiniz->>put Fonksiyonu yazısı çıkacaktır. Eğer MetreSantim x(5,10); yerine MetreSantim x(5,150); yazsaydık bu sefer ekrana Santimetre olarak 150 değerini giremezsiniz->>kurucu İşlev yazısı çıkacaktı*/ kaynak: yazar:ersin elbir

11 Tarak Sıralama Algoritması(Comb Sort) Comb Sort yani Tarak Sıralaması adından da anlaşılacağı gibi karşılaştırmalı bir sıralama algoritmasıdır. Aslına bakarsak kabarcık sıralaması ile hızlı sıralama karışımı diyebiliriz.nisan 1991 de Stephen Lacey ve Richard Box tarafından duyurulmuştur. Tarak sıralaması tıpkı kendisi gibi karşılaştırmalı bir sıralama algoritması olan Kabarcık sıralamasından daha iyidir. Kabarcık sıralamasında sayılar bir yanındaki sayı ile karşılaştırılır ve ona göre yer değişimi yapılır.karşılaştırma mesafesi 1 dir. Tarak sıralaması da aynı bu mantıkla çalışır ama yer değişimi yanındaki sayılar ile değilde daha uzaktaki sayılar ile yapılır.bu uzaklık büyük bir sayı ile başlar ve her seferinde shrink factor dediğimiz çoğunlukla daha kolay olsun diye 1.3 e yuvarlanır- sayısı oranınca ta ki algoritma basitçe kabarcık sıralamadaki uzaklığa yani 1 olana kadar küçültülür. Tarak sıralamasının bu şekilde olmasının ana fikri ise listenin sonundaki küçük değerli öğeleri önce bularak listeden çıkarıp daha hızlı çalışmaktır. Kabarcık sıralamanın en büyük sorunu listenin sonunda olan küçük sayıları bulması için çok zaman harcamasıdır. Tarak sıralaması ile daha hızlı sonuç elde edilir. Aşağıdaki gibi bir dizimiz olduğunu varsayalım ve küçükten büyüğe doğru sıralamaya çalışalım. İşte başlıyoruz

12 İlk önce dizinin boyutunun shrink factor dediğimiz sayısına bölünmesi gerekir biz yuvarlayıp 1.3 sayısına böleceğiz. Bölümün tam kısmını alırız. 5/1,3 = 3,8. Tam kısmı 3. İlk elemanı seçeriz ve 3 fazlası olan eleman ile karşılaştırırız. Sonra ikinci elemanı seçeriz ve +3 fazlası olan eleman ile karşılaştırırız. Ardından üçüncü elemanı seçeriz. +3 fazlası dizinin uzunluğunu aştığı için işlem yapılamaz. Boşluk sayısını tekrar 1,3 e böler ve tam kısmını alırız. 3 / 1,3 = 2,3 Tam kısmı 2 olarak alırız. Birinci elemanı seçer ve +2 fazlası olan elemanla

13 karşılaştırırız. İkinci elemanı seçeriz ve +2 fazlası olan elemanla karşılaştırırız. Sonra diğer elemanları seçer +2 fazlası olan elemanlar ile dizinin sonuna kadar karşılaştırırız. Dizinin sonuna geldiğimizde tekrar boşluk sayısını 1,3 e böleriz.. 2 / 1,3 = 1,5 tam kısmı alırız. 1. elemanı seçer ve 1 fazlası olan yani bir sonraki elemanla karşılaştırırız.sonra ikinci elemanı sonraki elemanla. Diğer elemanları da bir sonraki elemanlarla karşılaştırırız.

14 Ve nihayetinde dizimiz sıralanmış olur. [crayon-5cab325d719bb /] Hazırlayan: Ömer Koyuncu Kaynakça: 1.

15 STRİNG FONKSİYONLARI Metin düzenlenmesi amacıyla standart C++ kütüphanesinde hazır bazı fonksiyonlar gelmektedir.bu fonksiyonlar metin uzunluğu bulunması,metinlerin kopyalanması,metnin sonuna eklemeler yapılması gibi işlemleri kolay ve hızlı bir şekilde yapmamızı sağlar. Örneğin çok kullanılan fonksiyonları biri olan strlen() fonksiyonu metindeki karakter sayısını bulunur;ilk karakter itibaren saymaya başlar ve metin sonuna belirten \0 karakter kadar gider.dolayısıyla bize bir char dizisindeki eleman sayısını verir. Metin fonksiyonlarının kullanılabilen için programa <string.h> kütüphanesinin dahil edilmesi gerekir.aşağıdaki kodları incelersiniz strlen() fonksiyonun kullanımını ve dizi uzunluğu nasıl bulunduğu görebilirsiniz. [crayon-5cab325d727bc /]

16 Fonksiyon Strlen(string) strcpy(string1, string2) srncpy(string1, string2,n) Strcat(string1, string2) Strncat(string1, string2,n) strcmp(string1, string2) Açıklama \0 karakteri hariç dizideki eleman sayısını döndürür. string2 yi string1 e kopyalar ve string sonuna \0 karakteri koyar. string2 nin ilk n karakterini string1 e kopyalar ve string sonuna \0 karakteri koyar. String1 in sonuna string2 yi ekler. String1 in sonuna string2 nin ilk n karakterini ekler. İki metni karşılaştırır. Aynı ise 0 döner. Farklı ise ve string1 in değeri daha büyükse pozitif değer, string1 in değeri daha küçükse negatif değer döner. Büyüklük değerleri ASCII değerlerine göre hesaplanır. string1 içinde string2 arar. Bulamazsa null(\0) değerini, strstr(string1, string2) bulursa string2 nin ilk karakterinin göstericisini döndürür. Yukarıdan sıkça kullanılan string fonksiyonları listelenmiştir. Strlen Örneği [crayon-5cab325d727c /]

17 Strcpy Örneği [crayon-5cab325d727cb /] Strcat Örneği [crayon-5cab325d727d /] Strcmp Örneği [crayon-5cab325d727d /] Strstr Örneği [crayon-5cab325d727da /] KAYNAK C/C++ FAHRETTİN ERDİNÇ (ABAKÜS KİTAP) SEMA SERDAROĞLU C++ ile Rekürsif(Özyineleme) Fonksiyonlar Rekürsif(Özyineleme) fonksiyon, doğrudan ya da dolaylı yoldan kendini çağıran fonksiyonlara rekürsif(özyineleme) fonksiyonlar denir. Rekürsif fonksiyonlar tasarımı kolaylaştırır ama her çağrıldığında fonksiyon yineleyeceği için bellek alanı artar. Çünkü, her fonksiyon çağrılmasında yığın olarak adlandırılan bellek alanı kullanılır. Rekürsif fonksiyonlar, permütasyon, Fibonacci sayıların bulunması gibi algoritmaların geliştirilmesi için uygundur ve hızlıdır. Rekürsif fonksiyonlar içiçe çağırmalar yapılırken bir dönüş

18 değeri olur; bu değer en derin gidicek rekürsif çağırmayı belirler. Örneğin 5 in faktöriyelin hesabını yapan yapan fonksiyonun şeması Faktöriyel hesabı yapan örnek kod: [crayon-5cab325d72e /] Fibonacci serisiyle ilgili örnek kod: [crayon-5cab325d72e /] C++ Dilinde Dallanma Komutu Kodların takibini ve okunmasını zorlaştığı ve yapısal programlamaya aykırı olduğu için goto komutu pek tavsiye edilen bir komut değildir. Her ne olursa olsun C++ dilinde

19 goto komutu vardır ve bilinmesinde fayda vardır. Goto komuu veya goto komutuna benzeyen dallanma komutları özellikle assembly de çok kullanılır ; gerek 8086 işlemci ile çalışan veya gereksiz PIC mikrokontrolör ile kod yazanlar bu ve buna benzer komutlar kullanmak zorunda kalırlar. Goto komutunun çalışabilmesi için öncelikle bir etiket oluşturulmalıdır. Etiket belli bir satıra verilen isimdir. Etiket oluşturulduktan sonra belli bir şart sağlandığında program etiketin olduğu satıra gönderilir. Goto komutu ve etiket aşağıdaki gibi kullanılır. komut 1; komut 2; etiket: komut 3; komut 4; goto etiket; //Etiketin olduğu satıra git Örnek Kod [crayon-5cab325d7326f /] YAZAR:Atıf RÜZGAR Kaynak Mühendislik Öğrencileri İçin Temel Kılavuz C++/C

20 C++ Dilinde Sabitler Program içinde değeri hiç değişmeyen değişkenlere sabit denir. C++ dilinde sabit tanımlamak için const veya #define komutu kullanılır. #define komutu C dilinden kalma bir komuttur ve fazla tavsiye edilmez. Bu nedenle aksi durum gerekmedikçe const komutu kullanılır. Bu komutun kalıbı aşağıdaki gibidir: const veri-tipi değişken=değer; Sabit olarak tanımlanan değişkenler genelde rahat okunabilsin diye main() fonksiyonunun yani ana programın üst kısmına tanımlanır. Örnek Kod [crayon-5cab325d7368c /] Sabitler tanımlandıktan sonra program içinde değerleri atama ile değiştirilemez. Örneğin aşağıdaki kod hata verir. const int oran=20; oran=30; //hata Eğer sabitin değerini değiştirecekseniz const komutunu değiştirmelisiniz. Eğer #define komutunu kullanarak sabit tanımlayacaksanız main() fonksiyonunun üstündeki bölüme aşağıdaki kalıbı yazabilirsiniz. #define sabit_adı değeri;

21 Örneğin pi sabitini #define komutu ile tanımlamak isterseniz aşağıdaki kodu kullanabilirsiniz: #define pi 3.14; Örnek Kod [crayon-5cab325d /] YAZAR:Atıf RÜZGAR Kaynak Mühendislik Öğrencileri İçin Temel Kılavuz C++/C C++ Nedir? ve C++ ın Tarihçesi C++ yazılım dili C nin evrim geçirmiş bir versiyonu olmakla beraber, ikisinin de ataları BCPL ve B dir. BCPL 1967 yılında Martin Richards tarafından operating sistemleri ve derleyicileri üretmek için yazıldı. Ken Thompson B yi kullanarak Unix sistemlerinin 1970 yılında ilk versiyonunu Bell Labaratuarlarında yazdı. Bu yazılım için ise Digital Equipment Corparation PDP-7 bilgisayarlarını kullanmıştı. Hem BCPL hemde B türsüz birer yazılım diliydiler- yani her veri türü bellekte bir kelimeden oluşuyordu. Dolayısıyla, bir veri türünün tam sayı yada doğal sayı, yani günümüzde int yada double olduğunu belirlemek programcıya kalmıştı.

22 C yazılım dilini Bell Labaratuarlarında geliştiren Denis Ritchie, fikirlerinin büyük bir kısmı nı B yazılım dilinden edinerek bu evrimin gerçekleşmesinde büyük rol oynamıştır. Bu tasarım için ise 1972 yılında DEC PDP-11 tipi bilgisayar kullanılmıştı. C ilk olarak UNIX operating sistemini yazarken kullanılan dil olarak meşhur olmuş ve günümüzde ise halen hemen hemen tüm operating sistemleri C veya C++ ile yazılmaktadır. Son 20 yılda, C yazılım dili birçok bilgisayar platformu için edinilebilir bir duruma erişmiştir. C nin en büyük özelliklerinden biri donanıma bağımsız olmasıdır, yani dikkatli bir tasarım ile herhangi bir donanımda C uygulamasi yaratmak mümkündür li yılların sonlarına doğru C gelişimini tamamlamış ve şu anda geleneksel C olarak bilinen halini almıştır. C++ ise C yazılım dilinin devamıdır li yılların başında yine Bell Laboratuvarlarında Bjarne Stroustup tarafından geliştirilmiştir. ANSI ve ISO standartlarına uygun olan bu yazılım dilinin en büyük avantajı nesne yönelimli bir yazılım dili olmasıdır. Yazılım dünyasında bir devrim oldu. Hızlı ama hem ekonomik hemde doğru olarak yazılım gerçekleştirmek hala bir hedef olsada, C++ hala bügün çok kullanılan bir dil olması ne kadar

23 iyi bir temelin üzerine inşa edilmiş olmasının bir kanıtıdır. Nesneler temel olarak bir yazılımcının birçok kez kullanabileceği program parçacıkları olması yazılımcılar tarafından keşfedilince, bunun önceki yazılım modellerinden daha hızlı ve daha sağlam yazılımlar için kullanılabileceği dikkate alınmaya başlandı. Nesne yönelimli yazılımlar genelde daha kolay anlaşılabilen, daha doğru ve modifiye edilmesi daha kolaydır. C++ yazılım dilinin en büyük özelliklerinden bir diğeri ise hem C türü eski tarz yazılımlara hemde nesne yönelimli yeni yazılım modeline yer vermesidir. 2. Dereceden Denklemin Köklerini Bulan Program [crayon-5cab325d73ba /]

24 C++ 2.dereceden denklemin köklerini bulan program [crayon-5cab325d73bb /] ÇIKTI; C++ 2. dereceden denklemin köklerini bulan program [crayon-5cab325d73bb /]

25 YAZAR:Fatma AKTAŞ

Operatörlerin Aşırı Yüklenmesi

Operatörlerin Aşırı Yüklenmesi Operatörlerin Aşırı Yüklenmesi Operatörlerin Aşırı Yüklenmesi Tıpkı fonksiyonlara yaptığımız gibi öperatörlere de aşırı yükleme yapabiliriz.yani, operatörlere normal görevlerinin yanında farklı görevler

Detaylı

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I ALGORİTMA VE PROGRAMLAMA I Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.edu.tr YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Diziler Dizi Nedir? Dizilerin Bildirimi

Detaylı

Temel Bilgisayar Programlama Final Sınavı Çalışma Notları

Temel Bilgisayar Programlama Final Sınavı Çalışma Notları Diziler Temel Bilgisayar Programlama Final Sınavı Çalışma Notları (Dr. Övünç ÖZTÜRK, Dr. Tahir Emre KALAYCI) (İnşaat Mühendisliği ve Gıda Mühendisliği Grupları İçin) Diziler aynı türden bilgileri saklamak

Detaylı

C++ Dilinde Bazı Temel Algoritmalar

C++ Dilinde Bazı Temel Algoritmalar C++ Dilinde Bazı Temel Algoritmalar Bazı eşyalar için her eve lazım derler. Az sonra bahsedeceğimiz algoritmalar da her kodcuya lazım cinsten. Sayının tek mi çift mi olduğuna karar veren programdan, çarpım

Detaylı

Sunum İçeriği. Programlamaya Giriş 22.03.2011

Sunum İçeriği. Programlamaya Giriş 22.03.2011 Programlamaya Giriş Nesne Tabanlı Programlamaya Giriş ve FONKSİYONLAR Sunum İçeriği Nesne Tabanlı Programlama Kavramı Fonksiyon tanımlama ve kullanma Formal Parametre nedir? Gerçel Parametre nedir? Fonksiyon

Detaylı

String ve Karakter Dizileri. Yrd. Doç. Dr. Fehim KÖYLÜ Erciyes Üniversitesi Bilgisayar Mühendisliği Bölümü

String ve Karakter Dizileri. Yrd. Doç. Dr. Fehim KÖYLÜ Erciyes Üniversitesi Bilgisayar Mühendisliği Bölümü String ve Karakter Dizileri #include Temel giriş çıkış akımları nesnelerinin tanımlandığı kütüphanedir. cin,cout,cerr,clog, wcin,wcout,wcerr,wclog nesneleri içerir. using namespace std; //std

Detaylı

Fonksiyonlar (Altprogram)

Fonksiyonlar (Altprogram) Fonksiyonlar (Altprogram) C Programlama Dili fonksiyon olarak adlandırılan alt programların birleştirilmesi kavramına dayanır. Bir C programı bir ya da daha çok fonksiyonun bir araya gelmesi ile oluşur.

Detaylı

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say İÇİNDEKİLER 1. Bilgisayarın Yapısı Ve Programlama Dilleri Giriş 1 Bilgisayar ve Programlamanın Kısa Bir Tarihçesi 2 Donanım ve Yazılım Kavramları 3 Bilgisayarın Donanımsal yapısı 4 Giriş Birimi (Input

Detaylı

DİZİLER-KATARLAR ALGORİTMA VE PROGRAMLAMA II

DİZİLER-KATARLAR ALGORİTMA VE PROGRAMLAMA II DİZİLER-KATARLAR ALGORİTMA VE PROGRAMLAMA II DİZİLER Dizi, aynı tipteki verilere tek bir isimle erişmek için kullanılan bir kümedir. Bir dizi bildirildikten sonra, dizinin bütün elemanları bellekte peşpeşe

Detaylı

C++ Göstericiler (Pointer)

C++ Göstericiler (Pointer) C++ Göstericiler (Pointer) C++ Dilinde Gösterici(Poniter) İşlemleri Gösterici nedir? Bir değişkenin bellek adresini tutan değişkene gösterici denir. Yani, gösterici bir tür değişkendir ve başka bir değişkenin

Detaylı

PROGRAMLAMAYA GİRİŞ FONKSİYONLAR

PROGRAMLAMAYA GİRİŞ FONKSİYONLAR PROGRAMLAMAYA GİRİŞ FONKSİYONLAR Fonksiyonlar C programlama dili fonksiyon olarak adlandırılan alt programların birleştirilmesi kavramına dayanır. Bir C programı bir ya da daha çok fonksiyonun bir araya

Detaylı

BİLG Dr. Mustafa T. Babagil 1

BİLG Dr. Mustafa T. Babagil 1 BİLG214 20.10.2009 Dr. Mustafa T. Babagil 1 Yapısal bilgi türlerinin tanımlanması. (C++ daki struct yapısı. ) Daha önce öğrenmiş olduğumuz bilgi tipleri char, int ve float v.b. değişkenler ile dizi (array)

Detaylı

2. Dereceden Denklemin Köklerini Bulan Program

2. Dereceden Denklemin Köklerini Bulan Program 2. Dereceden Denklemin Köklerini Bulan Program [crayon-5bb74e5b18b15225541464/] C++ 2.dereceden denklemin köklerini bulan program [crayon-5bb74e5b18b25989362529/] ÇIKTI; C++ 2. dereceden denklemin köklerini

Detaylı

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI İÇİNDEKİLER IX İÇİNDEKİLER 1 GİRİŞ 1 Kitabın Amacı 1 Algoritmanın Önemi 2 Bilgisayarın Doğuşu ve Kullanım Amaçları 3 Programlama Dili Nedir? 3 Entegre Geliştirme Ortamı (IDE) Nedir? 4 2 ALGORİTMA VE AKIŞ

Detaylı

Fonksiyonlar. C++ ve NESNEYE DAYALI PROGRAMLAMA 51. /* Fonksiyon: kup Bir tamsayının küpünü hesaplar */ long int kup(int x) {

Fonksiyonlar. C++ ve NESNEYE DAYALI PROGRAMLAMA 51. /* Fonksiyon: kup Bir tamsayının küpünü hesaplar */ long int kup(int x) { Fonksiyonlar Kendi içinde bağımsız olarak çalışabilen ve belli bir işlevi yerine getiren program modülleridir. C programları bu modüllerden (fonksiyonlar) oluşurlar. Fonksiyonların yazılmasındaki temel

Detaylı

/ C Bilgisayar Programlama Final Sınavı Test Soruları. Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : , 60 dak.

/ C Bilgisayar Programlama Final Sınavı Test Soruları. Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : , 60 dak. Selçuk Üniversitesi Mühendislik Fakültesi Harita Mühendisliği Bölümü Final Sınavı Test Soruları dı soyadı :... Öğrenci no :... İmza :... Tarih, Süre :09.01.2013, 60 dak. Dikkat!!! Soru kitapçığında ve

Detaylı

Pointer Kavramı. Veri Yapıları

Pointer Kavramı. Veri Yapıları Pointer Kavramı Veri Yapıları Pointer Kavramı- Pointer Nedir? Göstericiler, işaretçiler ya da pointer adı da verilmektedir. Gösterici (pointer); içerisinde bellek adresi tutan değişkenlerdir. Şu ana kadar

Detaylı

Bilgisayar Programlama. 1.Hafta

Bilgisayar Programlama. 1.Hafta Bilgisayar Programlama 1.Hafta Ders Planı 1. Bilgisayar Programlamaya Giriş 2. C Derleyicileri 3. GCC Kullanımı 4. Veri Tipleri ve Operatörler 5. Kontrol Yapıları 6. Döngüler 7. Döngüler 2. Hafta 8. Fonksiyonlar

Detaylı

Sınav tarihi : Süre : 60 dak. a) strstr b) strchr c) strcat d) strcpy e) strlen. a) b) d) e) 0

Sınav tarihi : Süre : 60 dak. a) strstr b) strchr c) strcat d) strcpy e) strlen. a) b) d) e) 0 Selçuk Üniversitesi, Mühendislik Fakültesi, Harita Mühendisliği Bölümü Bitirme Sınavı Test Soruları Adı soyadı : Öğrenci no : Sınav tarihi : 01.06.2017 Süre : 60 dak. 1. t değişkeni hakkında aşağıdakilerden

Detaylı

Görsel Programlama 1

Görsel Programlama 1 Görsel Programlama 1 1. Ekrana Hello world! yazan c# console application kodları: Console.Write("Hello world!"); 2. Ekranda ilk satıra Hello, ikinci satıra world! yazan kod: Console.WriteLine("Hello");

Detaylı

Yrd. Doç. Dr. Caner ÖZCAN

Yrd. Doç. Dr. Caner ÖZCAN Yrd. Doç. Dr. Caner ÖZCAN Derse Giriş Ders Web Sitesi: www.canerozcan.net Ofis Saatleri: Salı 11:00-13:00 Perşembe 15:30-17:30 ya da email ile randevu alınız: canerozcan@karabuk.edu.tr Kaynak Kitaplar:

Detaylı

Diziler. Yrd.Doç.Dr.Bülent ÇOBANOĞLU

Diziler. Yrd.Doç.Dr.Bülent ÇOBANOĞLU Diziler Yrd.Doç.Dr.Bülent ÇOBANOĞLU Dizi (Array) Nedir? Bellekte sürekli yer kaplayan artarda sıralanmış aynı türden verilerin oluşturduğu kümeye dizi (array) denir. Dizi, çok fazla miktardaki tek tip

Detaylı

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#8

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#8 ALGORİTMA VE PROGRAMLAMA I DERS NOTU#8 YZM 1105 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi 6. BÖLÜM 2 Çok Boyutlu Diziler Çok Boyutlu Dizi 3 Bir dizi aşağıdaki gibi bildirildiğinde

Detaylı

GENEL GĐRĐŞ-ÇIKIŞ FONKSĐYONLARI. ENF102 Jeoloji 1. #include <stdio.h> printf Fonksiyonu ÖRNEK. printf

GENEL GĐRĐŞ-ÇIKIŞ FONKSĐYONLARI. ENF102 Jeoloji 1. #include <stdio.h> printf Fonksiyonu ÖRNEK. printf Giriş GENEL GĐRĐŞ-ÇIKIŞ FONKSĐYONLARI printf Fonksiyonu scanf Fonksiyonu Verilerin kaybolmaması için hafızada değişkenler içine yerleştirilmeleri gerekir. Bu veriler iki şekilde yerleştirilebilir. Değişkene

Detaylı

BİL-142 Bilgisayar Programlama II

BİL-142 Bilgisayar Programlama II BİL-142 Bilgisayar Programlama II (C/C++) Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Konular Giriş Sınıflar, Nesneler, Fonksiyon ve Veri Üyeleri Sınıf ve Fonksiyon Üyeleri

Detaylı

Programlama Dillerinde Kullanılan Veri Tipleri

Programlama Dillerinde Kullanılan Veri Tipleri Programlama Dillerinde Kullanılan Veri Tipleri Taban/Biçim Basic Paskal C/C++/C#/Java 10 (Decimal ) - - - 16 (Hexadecimal) &hsayı veya &Hsayı $sayı 0xsayı veya 0Xsayı Üstel eüs veya Eüs eüs veya Eüs eüs

Detaylı

Göstericiler (Pointers)

Göstericiler (Pointers) C PROGRAMLAMA Göstericiler (Pointers) C programlama dilinin en güçlü özelliklerinden biridir. Göstericiler, işaretçiler yada pointer adı da verilmektedir. Gösterici (pointer); içerisinde bellek adresi

Detaylı

HSancak Nesne Tabanlı Programlama I Ders Notları

HSancak Nesne Tabanlı Programlama I Ders Notları SABİTLER VE DEĞİŞKENLER Değişken, verilerin bellekte geçici olarak kaydedilmesini ve gerektiğinde kullanılmasını sağlayan değerdir. Nesne tabanlı programlama dilinde değişken kullanımı diğer programlama

Detaylı

1 PROGRAMLAMAYA GİRİŞ

1 PROGRAMLAMAYA GİRİŞ İÇİNDEKİLER IX İÇİNDEKİLER 1 PROGRAMLAMAYA GİRİŞ 1 Problem Çözme 1 Algoritma 1 Algoritmada Olması Gereken Özellikler 2 Programlama Dilleri 6 Programlama Dillerinin Tarihçesi 6 Fortran (Formula Translator)

Detaylı

Sınav tarihi : Süre : 60 dak. a) ABCDE b) BCDE c) ABCD d) kod hatalı e) BCD

Sınav tarihi : Süre : 60 dak. a) ABCDE b) BCDE c) ABCD d) kod hatalı e) BCD Selçuk Üniversitesi, Mühendislik Fakültesi, Harita Mühendisliği Bölümü Yıliçi Sınavı Test Soruları Adı soyadı : Öğrenci no : Sınav tarihi : 13.04.2015 Süre : 60 dak. 1. Hangisi gerçek sayı değişmezi değildir?

Detaylı

C#(Sharp) Programlama Dili

C#(Sharp) Programlama Dili Değişkenler C#(Sharp) Programlama Dili Program yazarken her zaman sabit verilerle çalışmayız, çoğu zaman programımızda bir verinin kullanıcının davranışına göre değişmesi gerekir. Kullanıcıdan bir metin

Detaylı

ALGORİTMA VE PROGRAMLAMA II

ALGORİTMA VE PROGRAMLAMA II ALGORİTMA VE PROGRAMLAMA II Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.edu.tr YZM 1102 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Bellek ve Adresleme Dinamik Bellek

Detaylı

Örnek 4: Örnek Özyinelemeli fonksiyon örneği Bölüm 9. C++ programlama dilinde Nesne ve sınıf

Örnek 4: Örnek Özyinelemeli fonksiyon örneği Bölüm 9. C++ programlama dilinde Nesne ve sınıf İçindekiler 1. Giriş... 1 1.2. c++ Programı Yapısı... 2 1.3.Using Direktifi... 5 Bölüm 2. Veri türleri, değişken kavramı, sabit ve değişken bildirimleri ve c++ da kullanımı 7 2.1. Temel veri türleri...

Detaylı

Dizi nin Önemi. Telefon rehberindeki numaralar, haftanın günleri gibi v.b.

Dizi nin Önemi. Telefon rehberindeki numaralar, haftanın günleri gibi v.b. Diziler Dizi Nedir Ortak özelliğe sahip birden fazla bilginin oluşturduğu bütün bilgi kümelerine veya hafızada art arda sıralanmış aynı türden verilerin oluşturduğu yapıya dizi denir. Kısaca; Bellekte

Detaylı

Genel Programlama I

Genel Programlama I Genel Programlama I 30.09.2010 1 Genel Programlama I Ders İçeriği Programlamaya giriş ve algoritma kavramları Basit ve karmaşık veri tipleri Program kontrol komutları (Döngü ve şart yapıları) Diziler ve

Detaylı

Özyineleme (Recursion)

Özyineleme (Recursion) C PROGRAMLAMA Özyineleme (Recursion) Bir fonksiyonun kendisini çağırarak çözüme gitmesine özyineleme (recursion), böyle çalışan fonksiyonlara da özyinelemeli (recursive) fonksiyonlar denilir. Özyineleme,

Detaylı

BMT 101 Algoritma ve Programlama I 11. Hafta. Yük. Müh. Köksal Gündoğdu 1

BMT 101 Algoritma ve Programlama I 11. Hafta. Yük. Müh. Köksal Gündoğdu 1 BMT 101 Algoritma ve Programlama I 11. Hafta Yük. Müh. Köksal Gündoğdu 1 C++ Fonksiyonlar Yük. Müh. Köksal Gündoğdu 2 C++ Hazır Fonksiyonlar Yük. Müh. Köksal Gündoğdu 3 C++ Hazır Fonksiyonlar 1. Matematiksel

Detaylı

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I ALGORİTMA VE PROGRAMLAMA I YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Karakter Dizileri Karakter Dizilerini Okumak ve Yazmak Karakter Dizilerinin Uzunluğunu

Detaylı

Değişkenler. Geçerli değişken isimleri : baslamazamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while

Değişkenler. Geçerli değişken isimleri : baslamazamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while Değişkenler Değişkenler bir bilginin bellekteki konumunu temsil eden sembolik isimlerdir. Bilgisayarda hemen hemen tüm işlemler bellekte yapılır. Program çalıştırıldığında değişken ve bu değişkenin türüne

Detaylı

while(), do-while(), for() M.İLKUÇAR 2010 MAKU-MYO

while(), do-while(), for() M.İLKUÇAR 2010 MAKU-MYO while(), do-while(), for() Döngü (loop) : Bir koşul sağlandığı (true olduğu) sürece bir veya birden çok komutun tekrarlanması işlemidir. Java Döngüler (loops) While() do-while() for ( ) while ( koşul )

Detaylı

NESNEYE YÖNELİK PROGRAMLAMA

NESNEYE YÖNELİK PROGRAMLAMA NESNEYE YÖNELİK PROGRAMLAMA Metotlar Şu ana kadar yaptığımız örneklerde hep önceden hazırlanmış ReadLine(), WriteLine() vb. gibi metotları kullandık. Artık kendi metotlarımızı yapmanın zamanı geldi. Bilmem

Detaylı

BİLGİSAYAR BİLİMİ DERSİ (KUR 1) PYTHON PROGRAMLAMA DİLİ ÇALIŞMA KÂĞIDI - 1

BİLGİSAYAR BİLİMİ DERSİ (KUR 1) PYTHON PROGRAMLAMA DİLİ ÇALIŞMA KÂĞIDI - 1 BİLGİSAYAR BİLİMİ DERSİ (KUR 1) PYTHON PROGRAMLAMA DİLİ ÇALIŞMA KÂĞIDI - 1 Ekrana Metin Yazdırmak Ekranda metin yazdırmak istendiğinde print komutu kullanılır. Kullanımı aşağıda verilmiştir. Parantez içinde

Detaylı

C++ Dilinde Bazı Temel Algoritmalar

C++ Dilinde Bazı Temel Algoritmalar C++ Dilinde Bazı Temel Algoritmalar Bazı eşyalar için her eve lazım derler. Az sonra bahsedeceğimiz algoritmalar da her kodcuya lazım cinsten. Sayının tek mi çift mi olduğuna karar veren programdan, çarpım

Detaylı

BMT 101 Algoritma ve Programlama I 6. Hafta. Yük. Müh. Köksal Gündoğdu 1

BMT 101 Algoritma ve Programlama I 6. Hafta. Yük. Müh. Köksal Gündoğdu 1 BMT 101 Algoritma ve Programlama I 6. Hafta Yük. Müh. Köksal Gündoğdu 1 C++ Veri Tipleri Yük. Müh. Köksal Gündoğdu 2 Veri Tipleri Tam sayı ve Ondalık sayı veri tipleri Veri Tipi Alt Sınıf Üst Sınıf Duyarlı

Detaylı

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ 2017-2018 BaharYarıyılı Balıkesir Üniversitesi Endüstri Mühendisliği Bölümü 7 BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ (Java Programlama Dili ve Algoritmadan Kodlamaya Geçiş) Yrd. Doç. Dr. İbrahim Küçükkoç

Detaylı

Telefon Rehberi Uygulaması

Telefon Rehberi Uygulaması Sayfa1 Telefon Rehberi Uygulaması Uygulama, temel düzeyde, telefon rehberi üzerinedir. Kullanıcı, telefon rehberine eklediği her bir kayıt içi ad, soyad, ev telefonu ve üç adet cep telefonu bilgisi girebilmektedir.

Detaylı

Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net

Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net Bilgisayar Programlama Ders 6 Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net Fonksiyon Prototipleri Fonksiyon Prototipleri Derleyici, fonksiyonların ilk hallerini (prototiplerini)

Detaylı

BMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler

BMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler BMÜ-111 Algoritma ve Programlama Bölüm 5 Tek Boyutlu Diziler Yrd. Doç. Dr. İlhan AYDIN 1 Problem 100 adet sayı okumak istediğimizi düşünelim. Bu sayıların ortalaması hesaplanacak ve sayıların kaç tanesinin

Detaylı

FONKSİYONLAR. Gerçek hayattaki problemlerin çözümü için geliştirilen programlar çok büyük boyutlardadır.

FONKSİYONLAR. Gerçek hayattaki problemlerin çözümü için geliştirilen programlar çok büyük boyutlardadır. C PROGRAMLAMA FONKSİYONLAR Gerçek hayattaki problemlerin çözümü için geliştirilen programlar çok büyük boyutlardadır. Daha büyük programlar yazmanın en kolay yolu onları küçük parçalar halinde yazıp sonra

Detaylı

Sınav tarihi : Süre : 60 dak.

Sınav tarihi : Süre : 60 dak. Selçuk Üniversitesi, Mühendislik Fakültesi, Harita Mühendisliği Bölümü Final Sınavı Test Soruları Adı soyadı : Öğrenci no : Sınav tarihi : 31.05.2016 Süre : 60 dak. 1. Ekranda ne görüntülenir? int i =

Detaylı

Karakter katarları ile ilgili fonksiyonlar içerir Yerel kayan noktalı sayılar tanımlanır

Karakter katarları ile ilgili fonksiyonlar içerir Yerel kayan noktalı sayılar tanımlanır stringh floath Karakter katarları ile ilgili fonksiyonlar içerir Yerel kayan noktalı sayılar tanımlanır 32 Sorgulama İfadesi - if Deyimi (5 Hafta) Bu deyim sorgulamanın tek basamakta yapılacağı yerlerde

Detaylı

Temel Bilgisayar Bilimleri Ders Notu #4-2. kısım

Temel Bilgisayar Bilimleri Ders Notu #4-2. kısım Nisan 2009 9031150 - Temel Bilgisayar Bilimleri Ders Notu #4-2. kısım Referans: Bugün: 1. Ders Notları. Ders #4.1 Tekrar Dowhile ve for döngüleri Diziler Göstergeler 1. Tekrar for döngüleri Genel yazılımı

Detaylı

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I ALGORİTMA VE PROGRAMLAMA I Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.edu.tr YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Giriş Fonksiyonlara Genel Bakış C

Detaylı

Yrd. Doç. Dr. Caner ÖZCAN

Yrd. Doç. Dr. Caner ÖZCAN Yrd. Doç. Dr. Caner ÖZCAN Derse Giriş Ders Web Sitesi: www.canerozcan.net Ofis Saatleri: Salı 11:00-13:00 Perşembe 15:30-17:30 ya da email ile randevu alınız: canerozcan@karabuk.edu.tr Kaynak Kitaplar:

Detaylı

BĠLGĠSAYAR PROGRAMLAMA II C++ Programlamaya GiriĢ http://www.cplusplus.com/doc/tutorial/ Published by Juan Soulié

BĠLGĠSAYAR PROGRAMLAMA II C++ Programlamaya GiriĢ http://www.cplusplus.com/doc/tutorial/ Published by Juan Soulié BĠLGĠSAYAR PROGRAMLAMA II C++ Programlamaya GiriĢ http://www.cplusplus.com/doc/tutorial/ Published by Juan Soulié DERSİN WEB SİTESİ: http://nucleus.istanbul.edu.tr/~bilprog2/ DeğiĢkenler ve Data Türleri

Detaylı

Diziler. Dizi Tanımı Dizi Elemanlarına Değer Atama Diziler ve Göstergeler 2-Boyutlu Diziler

Diziler. Dizi Tanımı Dizi Elemanlarına Değer Atama Diziler ve Göstergeler 2-Boyutlu Diziler Diziler Dizi Tanımı Dizi Elemanlarına Değer Atama Diziler ve Göstergeler 2-Boyutlu Diziler Dizi Tanımı Değişkenler aynı anda tek bir değer tutabilen temel değişkenler ve birden fazla değer saklayabilen

Detaylı

// hataları işaret eden referans

// hataları işaret eden referans System sınıfı java.lang.object java.lang.system public final class System extends Object System sınıfı, java.lang paketi içindedir. Platformdan bağımsız olarak sistem düzeyindeki eylemleri belirleyen dingin

Detaylı

ELN1001 BİLGİSAYAR PROGRAMLAMA I

ELN1001 BİLGİSAYAR PROGRAMLAMA I ELN1001 BİLGİSAYAR PROGRAMLAMA I DEPOLAMA SINIFLARI DEĞİŞKEN MENZİLLERİ YİNELEMELİ FONKSİYONLAR Depolama Sınıfları Tanıtıcılar için şu ana kadar görülmüş olan özellikler: Ad Tip Boyut Değer Bunlara ilave

Detaylı

BLM 111 ALGORİTMA VE PROGRAMLAMA I

BLM 111 ALGORİTMA VE PROGRAMLAMA I 1 BLM 111 ALGORİTMA VE PROGRAMLAMA I DİZİLER (ARRAYS) Kullanıcıdan N tane tamsayı, xi, alalım ve 1. Bu sayıların ortalamasını hesaplamak isteyelim ort = 0; for (i=0; i

Detaylı

HSancak Nesne Tabanlı Programlama I Ders Notları

HSancak Nesne Tabanlı Programlama I Ders Notları DİZİLER Bellekte ard arda yer alan aynı türden nesneler kümesine dizi (array) denilir. Bir dizi içerisindeki bütün elemanlara aynı isimle ulaşılır. Yani dizideki bütün elemanların isimleri ortaktır. Elemanlar

Detaylı

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Uzaktan Eğitim Uygulama ve Araştırma Merkezi JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java da Fonksiyon Tanımlamak Java da Döngüler Java da Şart İfadeleri Uygulamalar Java da Fonksiyon Tanımlamak JAVA DA FONKSİYON TANIMLAMAK 4 Fonksiyonlar;

Detaylı

Hafta 12 Karakter Tutan Diziler

Hafta 12 Karakter Tutan Diziler BLM111 Programlama Dilleri I Hafta 12 Karakter Tutan Diziler Yrd. Doç. Dr. Caner ÖZCAN Katar (String) Tanımlama Dizileri ve çok boyutlu dizileri gördük. Katar dediğimiz şey de aslında bir dizidir. Değişken

Detaylı

STRİNG DİZİLER(KATARLAR)

STRİNG DİZİLER(KATARLAR) STRİNG DİZİLER(KATARLAR) Giriş Katar bir char tipinde bildirilen karakter dizisidir. Katarlar (strings), içeriği harfler, rakamlar, veya bazı semboller olan text bilgilerini tutmak(saklamak) için kullanılır.

Detaylı

Pointers (İşaretçiler)

Pointers (İşaretçiler) Pointers (İşaretçiler) Pointers (İşaretçiler) Verilerin bilgisayar hafızasında tutulduğu fiziki alan adres olarak tanımlanabilir. Adres, hem donanımla hem de yazılımla ile ilişkilidir. Donanımsal açıdan

Detaylı

Ders 4: Diziler (Arrays( Arrays) barisgokce.com

Ders 4: Diziler (Arrays( Arrays) barisgokce.com Ders 4: Diziler (Arrays( Arrays) Hazırlayan : Öğr. Grv.. Barış GÖKÇE Đletişim im : www.barisgokce barisgokce.com Diziler Aynı tipteki bir veri gurubunun bir değişken içinde saklanmasıdır. Veriler Hafızada

Detaylı

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I ALGORİTMA VE PROGRAMLAMA I Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.edu.tr YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Karakter Dizileri Karakter Dizilerini

Detaylı

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I ALGORİTMA VE PROGRAMLAMA I YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Giriş Fonksiyonlara Genel Bakış C ve Fonksiyonlar Fonksiyon Tanımı 8. BÖLÜM 3 Fonksiyonlar

Detaylı

EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA

EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA 6. HAFTA EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA Öğr. Gör. S. M. Fatih APAYDIN apaydin@beun.edu.tr EMYO Bülent Ecevit Üniversitesi Kdz. Ereğli Meslek Yüksekokulu ALGORİTMA ÖRNEK1: İki sayının toplamı

Detaylı

DÖNGÜLER (LOOPS) while(), do-while(), for(), foreach()

DÖNGÜLER (LOOPS) while(), do-while(), for(), foreach() (LOOPS) while(), do-while(), for(), foreach() Döngüler (loops) while do-while for foreach while ( koşul ) işlemler; do işlemler; while (koşul ); for (başlangıç ; koşul ; arttırma) işlemler; foreach ( tip

Detaylı

/ C Bilgisayar Programlama Yıliçi Sınavı Test Soruları. Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : , 60 dak.

/ C Bilgisayar Programlama Yıliçi Sınavı Test Soruları. Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : , 60 dak. Selçuk Üniversitesi Mühendislik-Mimarlık Fakültesi Harita Mühendisliği Bölümü Yıliçi Sınavı Test Soruları dı soyadı :... Öğrenci no :... İmza :... Tarih, Süre :26.11.2012, 60 dak. Dikkat!!! Soru kitapçığında

Detaylı

BMÜ-111 ALGORİTMA VE PROGRAMLAMA AKIŞ KONTROLÜ YRD. DOÇ. DR. İLHAN AYDIN

BMÜ-111 ALGORİTMA VE PROGRAMLAMA AKIŞ KONTROLÜ YRD. DOÇ. DR. İLHAN AYDIN BMÜ-111 ALGORİTMA VE PROGRAMLAMA AKIŞ KONTROLÜ YRD. DOÇ. DR. İLHAN AYDIN TEMEL AMAÇLAR Bir dairenin yarıçapını kullanıcıdan alarak dairenin alanını hesaplamak istediğimizi düşünelim. Eğer girilen değer

Detaylı

BLM 112- Programlama Dilleri II. Hafta 4 İşaretçiler (Pointers)

BLM 112- Programlama Dilleri II. Hafta 4 İşaretçiler (Pointers) 1 BLM 112- Programlama Dilleri II Hafta 4 İşaretçiler (Pointers) Dr. Öğr. Üyesi Caner Özcan İyilik insanları birbirine bağlayan altın zincirdir. ~Goethe Hafıza Yapısı 2 Bir değişken tanımlandığında arka

Detaylı

BİLGİSAYAR MÜHENDİSLİĞİ ALGORİTMA VE PROGRAMLAMA II 2.HAFTA SWİTCH (CASE), SAYAÇLAR, DÖNGÜLER,

BİLGİSAYAR MÜHENDİSLİĞİ ALGORİTMA VE PROGRAMLAMA II 2.HAFTA SWİTCH (CASE), SAYAÇLAR, DÖNGÜLER, BİLGİSAYAR MÜHENDİSLİĞİ ALGORİTMA VE PROGRAMLAMA II 2.HAFTA SWİTCH (CASE), SAYAÇLAR, DÖNGÜLER, C++ İÇİN UFAK HATIRLATMALAR Değişken adları bir harf ile başlamalıdır. (a-z, A-Z). Değişken adı numara içerebilir.

Detaylı

Nesne Yönelimli Programlama

Nesne Yönelimli Programlama 1 Nesne Yönelimli Programlama Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Genel Bilgiler Ders konuları 1. Programlamaya Giriş 2. Program Denetimi ve Operatörler 3. Nesnelerin

Detaylı

Genel Programlama II

Genel Programlama II Genel Programlama II 22.03.2011 1 Yapılar ( Structures ) Yapılar ( structures ); tam sayı, karakter vb. veri tiplerini gruplayıp, tek bir çatı altında toplar. Bu gruplandırma içinde aynı ya da farklı veri

Detaylı

PROGRAMLAMAYA GİRİŞ DERS 2

PROGRAMLAMAYA GİRİŞ DERS 2 PROGRAMLAMAYA GİRİŞ DERS 2 Program editörde oluşturulur ve diske kaydedilir Tipik Bir C Programı Geliştirme Ortamının Temelleri 1. Edit 2. Preprocess 3. Compile 4. Link 5. Load 6. Execute Önişlemci programı

Detaylı

Hafta 13 Fonksiyonlar

Hafta 13 Fonksiyonlar BLM111 Programlama Dilleri I Hafta 13 Fonksiyonlar Yrd. Doç. Dr. Caner ÖZCAN Fonksiyonlar Fonksiyonlar C de modüller Programlar kullanıcı tanımlı fonksiyonları ve kütüphane fonksiyonlarını birlikte kullanırlar.

Detaylı

işlemler bittikten sonra dosyaların kapatılması uygun olacaktır. Bunun için, fclose(fin);

işlemler bittikten sonra dosyaların kapatılması uygun olacaktır. Bunun için, fclose(fin); case 2 : C = 0.5088-0.0011*(B-135); break; case 3 : C = 0.4978-0.0010*(B-145); break; case 4 : C = 0.4878-0.0009*(B-155); break; default : printf("yanlış seçenek\n");} cout

Detaylı

8. İŞARETCİLER (POINTERS)

8. İŞARETCİLER (POINTERS) 8. İŞARETCİLER (POINTERS) Verilerin bilgisayar hafızasında tutulduğu fiziki alan adres olarak tanımlanabilir. Adres, hem donanımla hem de yazılımla ilişkilidir. Donanımsal açıdan adres bellekte yer gösteren

Detaylı

Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması. Mustafa Kemal Üniversitesi

Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması. Mustafa Kemal Üniversitesi Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması Ağaç, verilerin birbirine sanki bir ağaç yapısı oluşturuyormuş gibi sanal olarak bağlanmasıyla elde edilen hiyararşik yapıya sahip

Detaylı

C# Yazım Kuralları ERCİYES. Ü. BİLGİSAYAR M. COMPUTER PROGRAMMING II 1 FEHİM KÖYLÜ

C# Yazım Kuralları ERCİYES. Ü. BİLGİSAYAR M. COMPUTER PROGRAMMING II 1 FEHİM KÖYLÜ C# Yazım Kuralları 1 İçindekiler C# Yazım Kuralları Veritipleri Değişkenler Operatörler Sınıflar Nesneler, Özellik, Metot ve Olay Bileşenler 2 C# yazım kuralları Deyimlerde büyük küçük harf yazıma uyulmalı

Detaylı

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I ALGORİTMA VE PROGRAMLAMA I YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Diziler Dizi Nedir? Dizilerin Bildirimi Dizilere Başlangıç Değeri Verme Dizilerde Arama

Detaylı

BİL-142 Bilgisayar Programlama II

BİL-142 Bilgisayar Programlama II BİL-142 Bilgisayar Programlama II (C/C++) Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Konular Giriş math Kütüphane Fonksiyonları Çok Parametreyle Fonksiyon Tanımı Fonksiyon

Detaylı

MAK 1005 Bilgisayar Programlamaya Giriş. Fonksiyonlar. Prof. Dr. Necmettin Kaya

MAK 1005 Bilgisayar Programlamaya Giriş. Fonksiyonlar. Prof. Dr. Necmettin Kaya MAK 1005 Bilgisayar Programlamaya Giriş Fonksiyonlar Prof. Dr. Necmettin Kaya Gerçek hayattaki problemlerin çözümü için geliştirilen programlar çok büyük boyutlardadır. Daha büyük programlar yazmanın en

Detaylı

BİLGİSAYAR TEMELLERİ VE PROGRAMLAMAYA GİRİŞ

BİLGİSAYAR TEMELLERİ VE PROGRAMLAMAYA GİRİŞ BİLGİSAYAR TEMELLERİ VE PROGRAMLAMAYA GİRİŞ Yrd.Doç.Dr. Emel ARSLAN earslan@istanbul.edu.tr C DİLİNDE FONKSİYONLAR C DİLİNDE FONKSİYONLAR C programlama dili fonksiyon olarak adlandırılan alt programların

Detaylı

C++ Giriş Ders 1 MSGSU Fizik Bölümü Ferhat ÖZOK Kullanılacak kaynak: Published by Juan Soulié

C++ Giriş Ders 1 MSGSU Fizik Bölümü Ferhat ÖZOK Kullanılacak kaynak:  Published by Juan Soulié Kullanılacak kaynak: http://www.cplusplus.com/doc/tutorial/ Published by Juan Soulié C++ Nedir? Arttırılmış C demektir ve C dilinin geliştirilmiş halini yansıtır. C++ öğrenmeden önce herhangi bir programlama

Detaylı

Fall Object-Oriented Programming Laboratory 02 - Structures

Fall Object-Oriented Programming Laboratory 02 - Structures 2017-2018 Fall Object-Oriented Programming Laboratory 02 - Structures 10.10.2017 1. Diziler. Bir tamsayi dizisinin elemanlarını ekrana yazdırmak için void printarr(int arr[], int elem_count) prototipli

Detaylı

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi Bil101 Bilgisayar Yazılımı I Bilgisayar Yüksek Mühendisi Editör Disk 1)Kaynak kodlar editör aracılığı ile oluşturulur. (.c) Kaynak dosya Önişleyici Disk 2)Önişleyici kodlar içerisindeki ilk işleme işini

Detaylı

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Uzaktan Eğitim Uygulama ve Araştırma Merkezi JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java Veri Tipleri ve Özelilkleri Değişken Tanımlama Kuralları Değişken Veri Tipi Değiştirme (Type Casting) Örnek Kodlar Java Veri Tipleri ve Özelilkleri

Detaylı

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Uzaktan Eğitim Uygulama ve Araştırma Merkezi JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java da Kapsülleme (Erişim Denetleyiciler) Java da Sınıf Oluşturmak Java da Nesne Oluşturmak Java da Constructor Kavramı Java da This Kavramı Java da Constructor

Detaylı

Yrd. Doç. Dr. Caner ÖZCAN

Yrd. Doç. Dr. Caner ÖZCAN Yrd. Doç. Dr. Caner ÖZCAN malloc Malloc fonksiyonu bir değişken için hafızadan bir blok yer ayrılması için kullanılır. Eğer hafızada yeterli alan yoksa fonksiyon NULL döndürür. int *ptr; ptr = (int *)

Detaylı

HSancak Nesne Tabanlı Programlama I Ders Notları

HSancak Nesne Tabanlı Programlama I Ders Notları ComboBox Bir Windows açılan kutu sunu temsil eder. ComboBox kontrolü, kullanıcıların bazı değerleri açılan bir listeden seçmesini sağlar. Listeye tasarım anında veya çalışma anında öğe eklenebilir. Listeye

Detaylı

C PROGRAMLAMA DİLİ. Hedefler

C PROGRAMLAMA DİLİ. Hedefler C PROGRAMLAMA DİLİ Hedefler Bu üniteyi çalıştıktan sonra; C programlama dili genel özelliklerini ve yapısını bilir, Kütüphane fonksiyonlarının çağrılmasını gerçekleştirebilir, Değişken, sabit tanımlamaları

Detaylı

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-12 Fonksiyonlar. Yrd. Doç. Dr. Ümit ATİLA

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-12 Fonksiyonlar. Yrd. Doç. Dr. Ümit ATİLA BLM-111 PROGRAMLAMA DİLLERİ I Ders-12 Fonksiyonlar Yrd. Doç. Dr. Ümit ATİLA umitatila@karabuk.edu.tr http://web.karabuk.edu.tr/umitatilla/ Fonksiyonlar Fonksiyonlar C de modüller Programlar kullanıcı tanımlı

Detaylı

BM102 BİLGİSAYAR PROGRAMLAMA II LABORATUVAR UYGULAMALARI. 3Hafta

BM102 BİLGİSAYAR PROGRAMLAMA II LABORATUVAR UYGULAMALARI. 3Hafta Ön bilgi: Özyineli fonksiyon tanımlanabilmeli. Dizilerin fonksiyon parametresi veya geri dönüş değeri olarak kullanımı bilinmeli. 1. Klavyeden girilen sayı n olmak üzere [1..n] aralığındaki sayıların toplamı

Detaylı

Yrd. Doç. Dr. Caner ÖZCAN

Yrd. Doç. Dr. Caner ÖZCAN Yrd. Doç. Dr. Caner ÖZCAN Hafıza Yapısı Bir değişken tanımlandığında arka planda bilgisayarın hafızasında bir konuma yerleştirilir. Hafıza küçük hücrelerden oluşmuş bir blok olarak düşünülebilir. Bir değişken

Detaylı

C Programlama Dilininin Basit Yapıları

C Programlama Dilininin Basit Yapıları Bölüm 2 C Programlama Dilininin Basit Yapıları İçindekiler 2.1 Sabitler ve Değişkenler......................... 13 2.2 Açıklamalar (Expresions)........................ 14 2.3 İfadeler (Statements) ve İfade

Detaylı

YAPILAR BİRLİKLER SAYMA SABİTLERİ/KÜMELERİ. 3. Hafta

YAPILAR BİRLİKLER SAYMA SABİTLERİ/KÜMELERİ. 3. Hafta YAPILAR BİRLİKLER SAYMA SABİTLERİ/KÜMELERİ 3. Hafta YAPILAR Farklı veri tipindeki bilgilerin bir araya gelerek oluşturdukları topluluklara yapı (structure) denir. Yani yapılar, birbiriyle ilişkili değişkenlerin

Detaylı

ANA SINIF TÜRETİLEN BİRİNCİ SINIF TÜRETİLEN İKİNCİ SINIF

ANA SINIF TÜRETİLEN BİRİNCİ SINIF TÜRETİLEN İKİNCİ SINIF JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java da Kalıtım Kavramı Java da Çok Biçimlilik Kavramı Fonksiyonların Çok Biçimliliği Yapıcı Fonksiyonun Çok Biçimliliği Java da Kalıtım Kavramı 4 Kalıtım;

Detaylı