Hep Birlikte C++ Öğrenelim // C++ Öğreniyoruz.

C++ dili hakkında bilgiler, kaynaklar, dokümanlar ve örneklerin bulunduğu bölümümüz.
Kullanıcı avatarı
admin
Sistem Geliştiricisi
Sistem Geliştiricisi
Mesajlar: 831
Kayıt: 28 Ağu 2022 04:38
Konum: Database
Meslek: Teknisyen
Teşekkür etti: 454 kez
Teşekkür edildi: 308 kez
İletişim:

Hep Birlikte C++ Öğrenelim // C++ Öğreniyoruz.

Mesaj gönderen admin »

Merhaba arkadaşlar ;
Resim
C++ nedir ?
C++, 1979 yılında Bell Laboratuvarlarında başlayarak Bjarne Stroustrup tarafından geliştirilen orta seviye bir programlama dilidir. C++, Windows, Mac OS ve UNIX'in çeşitli sürümleri gibi çeşitli platformlarda çalışır. Bu C++ öğreticisi, yeni başlayanlardan ileri düzey yazılım mühendislerine kadar C++ kavramlarını açıklamak için basit ve pratik bir yaklaşım benimser.

Neden C++ Öğrenmelisiniz?

C++, öğrencilerin ve çalışan profesyonellerin harika bir Yazılım Mühendisi olabilmeleri için bir ZORUNLUDUR. C++ öğrenmenin bazı önemli avantajlarını listeleyeceğim:

C++ donanıma çok yakındır, bu nedenle bellek yönetimi, daha iyi performans ve nihayet sağlam bir yazılım geliştirme açısından size çok fazla kontrol sağlayan düşük bir seviyede çalışma şansınız olur.

C++ programlama, Nesne Yönelimli Programlama hakkında net bir anlayış sağlar. Sanal tabloları ve sanal tablo işaretçilerini veya dinamik tip tanımlamasını uygulayacağınız zaman, polimorfizmin düşük seviyeli uygulamasını anlayacaksınız.

C++, her yeşil programlama dilinden biridir ve milyonlarca yazılım geliştiricisi tarafından sevilir. Harika bir C++ programcısıysanız, o zaman asla işsiz kalmazsınız ve daha da önemlisi, işiniz için yüksek ücret alırsınız.

C++, uygulama ve sistem programlamada en yaygın kullanılan programlama dilleridir. Böylece yazılım geliştirme ilgi alanınızı seçebilirsiniz.

C++ size derleyici, bağlayıcı ve yükleyici, farklı veri türleri, depolama sınıfları, değişken türleri, kapsamları vb. arasındaki farkı gerçekten öğretir.
Ders 1 : C++ Temelleri

Bu konu elbette herkes için hazırlanmamıştır. En azından vakit kaybını önlemek amacıyla derleyicileri ve basit işleri biliyorsanız. C++ da beraber ilerleyebiliriz.

DERS 1.1 :

C++ derleyicilerini hazırlayalım

Windows için en ideal C/C++ derleyicisi bana göre DevC++ dır. Codeblocks'u da kullanıyorum gayet güzel.
Linux da GCC mevcut ve diğer derleyiciler kurulabilir. Konuların ve işlemlerin herkes açısından anlanması ve kolay olması nedeniyle Windows üzerinde yapacağım.

Önce derleyicileri indirelim.

DEV C++ :

Resmi sitesi : https://www.bloodshed.net/
Son versiyon direkt linki : https://sourceforge.net/projects/orwelldevcpp/

CodeBlocks :

Resmi sitesi :https://www.codeblocks.org/
Direkt indirme linki :https://sourceforge.net/projects/codeblocks/

Basit olarak Dev C++ kullanımı :

Kurulunu türkçe yaparsanız programın ne kadar kolay olduğunu anlarsınız. Nette kullanımı ile ilgili içerik mevcuttur .Biraz araştırın. Zamanla konuları videolar yardımıyla anlatacak seviyeye gelirim. Şuan biraz yazarak ,resimlerle gidelim.
Daha zeki olmanın tek yolu, daha zeki bir rakiple oynamaktır.

Etiketler:
Kullanıcı avatarı
admin
Sistem Geliştiricisi
Sistem Geliştiricisi
Mesajlar: 831
Kayıt: 28 Ağu 2022 04:38
Konum: Database
Meslek: Teknisyen
Teşekkür etti: 454 kez
Teşekkür edildi: 308 kez
İletişim:

DERS 1.2 :

Mesaj gönderen admin »

C++ 'a giriş

C++ (Türkçe okunuşu: ce artı artı, İngilizce okunuşu: si plas plas), Bell Labotaruvarlarından Bjarne Stroustrup tarafından 1979 yılından itibaren geliştirilmeye başlanmış, C'yi kapsayan ve çok para digmalı, yaygın olarak kullanılan, genel amaçlı bir programlama dilidir. İlk olarak C With Classes (Sınıflarla C) olarak adlandırılmış, 1983 yılında ismi C++ olarak değiştirilmiştir.

Genel olarak her C programı aynı zamanda bir C++ programıdır, ancak her C++ programı bir C programı değildir. Bu durumun bazı istisnaları mevcuttur. C++'ı C'den ayıran özellikler C++'ın nesne paradigması kullanılarak programlamaya olanak tanıyan özelliklerdir. Sınıflar sayesinde yeni veri türleri yaratılabilir veya var olan türlerden yenileri türetilebilir. Ayrıca çok biçimlilik sayesinde bir sınıf tanımıyla yazılmış kod, o sınıf türünden türetilmiş yeni sınıflarla da çalışabilir.

İlk Programımıza başlıyalım. Kodlarımızın neler olduğunu ,ne yaptığını öğrenelim.
Kodların devamında kullanılan "//" derleyici tarafından görülmez.Tamamen bilgilendirme amaçlıdır.Programlarınızda kullananmanız yararınıza olacaktır. Uzun bildirimlerde Cümle başına /* ve sonuna */ getirilip araya bildirim eklenir.örnek= /* deneme */

Kod: Tümünü seç

#include <iostream>  /* include=kelime anlamı olarak dahil etmek-içine almaktır. 
iostream i kütüphanemizden çağırıp programımıza dahil ediyoruz."iostream"=Giriş-Çıkış akımı,dalgası 
Programda yapacağımız giriş çıkış işlemleri için gerekli dosyalar diyelim. Ayrıca ön işlemci emiri diye de anlatılır.*/
 
using namespace std; /* C deki global isim alani kirliliginden kurtulmak icin C++ ta namespace kavrami ortaya cikmistir.
 C++ in tum standart kutuphane bilesenleri std isim uzayinda tanimlanmistir .
 Çok kapsamlı programlar yaparsak kendi isim uzayımızı tanımlatabiliriz.*/
 
int main() // Ana program fonksiyonumuz.
{
  cout<<"Merhaba Dunya, yazilimadasi.com 2022! C++ Ogreniyoruz !\n";  // Ekrana yazdırma komutu. Çıkış komutudur.
  cin.get(); // Klavyeden giriş yapmamızı bekler.Herhangi bir tuşa basımda programı kapar.
}  // Fonksiyonumuzun arasındaki kodlar "{" ile başlar "}" ile biter.
Daha zeki olmanın tek yolu, daha zeki bir rakiple oynamaktır.
Kullanıcı avatarı
admin
Sistem Geliştiricisi
Sistem Geliştiricisi
Mesajlar: 831
Kayıt: 28 Ağu 2022 04:38
Konum: Database
Meslek: Teknisyen
Teşekkür etti: 454 kez
Teşekkür edildi: 308 kez
İletişim:

DERS 1.3 :

Mesaj gönderen admin »

Bu Programımızda bir öncekinden farklı olarak return komutunu gördük. Return kelime anlamı olarak geri dönmektir. Return aynı zamanda kodu kontrol eder. C++ da Program yürütme sırasında herhangi bir hata olmadan beklendiği gibi çalışırsa ,ana fonksiyonu için 0 bir dönüş kodu olarak yorumlar.

Kod: Tümünü seç

#include <iostream> /* include=kelime anlamı olarak dahil etmek-içine almaktır. 
iostream i kütüphanemizden çağırıp programımıza dahil ediyoruz."iostream"=Giriş-Çıkış akımı,dalgası 
Programda yapacağımız giriş çıkış işlemleri için gerekli dosyalar diyelim. Ayrıca ön işlemci emiri diye de anlatılır.*/
 
using namespace std; /* C deki global isim alani kirliliginden kurtulmak icin C++ ta namespace kavrami ortaya cikmistir.
 C++ in tum standart kutuphane bilesenleri std isim uzayinda tanimlanmistir .
 Çok kapsamlı programlar yaparsak kendi isim uzayımızı tanımlatabiliriz.*/
 
int main() // Ana program fonksiyonumuz.
{
  cout<<"Merhaba Dunya, yazilimadasi.com 2022 ! C++ Ogreniyoruz !\n";  // Ekrana yazdırma komutu.Çıkış komutudur.
  cin.get(); //Klavyeden giriş yapmamızı bekler.Herhangi bir tuşa basımda programı kapar.
 
  return 1; // Geri Dönme komutudur. Bazen elle fonksiyona geri dönmek gerekir . Bunu bu kodla yapabiliriz. 
Daha zeki olmanın tek yolu, daha zeki bir rakiple oynamaktır.
Kullanıcı avatarı
admin
Sistem Geliştiricisi
Sistem Geliştiricisi
Mesajlar: 831
Kayıt: 28 Ağu 2022 04:38
Konum: Database
Meslek: Teknisyen
Teşekkür etti: 454 kez
Teşekkür edildi: 308 kez
İletişim:

DERS 1.4 :

Mesaj gönderen admin »

C++ da Değişkenler ve Kullanımı , Tüm Değişken Türleri ve Özellikleri :

Değişken, program içinde kullanılan değerlere bellek üzerinde açılan alanlardır. Bu alanlar bir değişken ismi ile anılır. C++'de tüm değişkenler kullanılmadan önce programa bildirilmelidir. Bu bildirim esnasında, değişkenin veri türü belirlenir.

C++'de birçok veri türü bulunmaktadır. Bunlardan en belli başlı olanı char'dır. Sözü edilen veri türü, karakter içeren değerlerin ifade edilmesinde kullanılır. Aşağıdaki tablo üzerinde C++ temel veri türleri yer almaktadır.

Resim
Mantıksal | bool

Karakter | char

Tamsayı | int

Kayan Noktalı | float

Büyük (Çift)Kayan Noktalı | double

Değersiz (Boş-NULL) | void

Geniş Karakter | wchar_t
Resim

Yukarıdaki tablo en temel C++ veri türlerini içermektedir. Bunların dışında başka veri türleri de bulunmaktadır. Tabloda int ile tanımlanan tamsayı değişkenler tüm ondalıklı olmayan tüm işaretli sayıları kapsamaktadır. Bu tür bir değişken, genellikle -32768 ile 32767 arasındaki tamsayıları içerebilir. Tabloda belirtilenler dışında başka tamsayı veri türleri de tanımlanabilmektedir. Ayrıca işaretli tamsayılar için signed, işaretsizler için unsigned tanımları kullanılabilir.

Float, double ve long double gibi tek ve çift duyarlıklı sayısal değerler ise kesirli sayılardır. Çift duyarlıklı sayılar, adından da anlaşılabileceği gibi, tek duyarlıklı sayılara oranla iki kat daha hassas bir değerlerdir. Bu iki veri türü büyük sayısal değerlerin ifade edilmesinde kullanılır.

Değişken kullanarak hazırladığımız ilk program.

Kod: Tümünü seç

#include <iostream>
 
using namespace std;
 
int main()
{
  int sayi; /* sayi adında değişkenimizi atadık.Türkçe karakter kullanmamaya özen gösterin. */ 
 
  cout<<"Bir sayi giriniz : "; // Ekrana bir sayı giriniz yazdırır. 
  cin>> sayi;             // Bizden klavyeden değişkene değer atamamız beklenir.
  cin.ignore();           /* Boş geçersek ignore eder.Yani aldırmaz ,göz ardı eder bir alt satıra iner */
  cout<<"Girdiginiz sayi : "<< sayi <<"\n"; /* Ekrana değişkene atadığımız değeri yazdırır. değişkeni ""<< sayi <<" ile çağırır. \n ise imleci bir alt saıra geçirir.*/
  cin.get(); // klavyeden birşey girmemizi bekler ve girilince programı kapatır.
}
Bundan sonra bildiğimiz kodların açıklamasını bildirime eklemeyeceğim.
Değişken Veri Türünün Bildirimi :

Kod: Tümünü seç

veri_türü değişken_adı;
Örneğin, C++ programı içinde sayma işlemlerini yerine getirmek için sayac isimli bir değişkenin kullanılması gerektiğini varsayalım. Bu değişken Şekil1'deki gibi bildirilir. Yapılan bu bildirime göre, sayac isimli değişken program içinde tamsayı değerler içerecektir. Bildirim satırları da aynen diğer C++ deyimleri gibi ( işareti ile son bulmalıdır.


*Sayac isimli, int türünden bir değişkenin bildirimi.

Değişken Türleri;

C++ programları içinde farklı amaçlara yönelik değişken tanımları yapılabilir. Değişken türlerini şu şekilde sıralayabiliriz:
-Yerel değişkenler
-Küresel değişkenler
-extern değişkenler
-static değişkenler
-auto değişkenler
-register değişkenler
Fazla ayrıntıya girmeden anlatmaya çalışalım.

1-) Yerel Değişkenler:

Değişkenler için veri türü bildirimleri fonksiyonların neresinde yapılacaktır? Bu sorunun yanıtını şöyle verebiliriz:
Değişken veri türü bildirimleri bir fonksiyonun içinde ya da dışında yapılabilir. Bu iki farklı tanım farklı sonuçlara neden olacaktır.

Program içinde birden fazla fonksiyon varsa, sadece tanımlandığı fonksiyonda geçerli olabilecek değişkenlere yerel değişken (local variable) adı verilir.

2-) Küresel Değişkenler:

Eğer bir değişkenin program içindeki tüm fonksiyonlar için geçerli olması söz konusu ise, bu kez fonksiyonların dışında bir yerde bildirimi yapılır. Şekil2'de gösterildiği biçimde durum değişkeni tanımlanacak olursa, bu tanım sadece main() fonksiyonunda değil, program içindeki tüm fonksiyonlar için geçerli olacaktır. Bu tür değişkenlere küresel değişken (global variable) adı verilir.

3-) extern Değişkenler:


Küresel değişkenlerin içerdiği değerlerin, programın sonuna kadar tüm fonksiyonları kapsayacak biçimde geçerli olduğunu biliyoruz. Bazı durumlarda bir program dosyası içinde tanımlanan küresel değişkenlerin, bir başka programda da geçerli olması istenilebilir. Böyle durumlarda extern değişkenler kullanılır.

4-)static Değişkenler:


Bir değişken, yerel değişken olarak tanımlanmış ise, bu değişkenin yer aldığı fonksiyonun yürütülmesi sona erdiğinde değeri yok oluyordu. Bu durumu önleyerek, değişken değerinin sadece ilgili fonksiyon içinde değil, tüm program boyunca geçerli olması sağlanabilir. Böyle bir amaca ulaşmak için static değişkenler tanımlanır.

Örneğin, derece isimli değişken değerinin, fonksiyonun çalışması ardından yok olmasını istemediğimizi varsayalım

5-) register Değişkenler:


Yukarıda incelediğimiz değişkenlerin tümü bellek üzerindeki alanları kullanır. Bazı uygulamalarda, değişkenlere çok daha hızlı biçimde erişmek söz konusu olabilir. Böyle durumlarda, register değişkenleri tanımlanarak bellek alanları yerine, makinenin hızlı bellek yazmaçları kullanılabilir. Ancak bu alanların miktarı sınırlı olduğundan, fazla sayıda register değişken tanımlanırsa amacına ulaşmaz. Derleyici fazla bulduklarını normal bellek alanlarına yerleştirir.
Daha zeki olmanın tek yolu, daha zeki bir rakiple oynamaktır.
Kullanıcı avatarı
admin
Sistem Geliştiricisi
Sistem Geliştiricisi
Mesajlar: 831
Kayıt: 28 Ağu 2022 04:38
Konum: Database
Meslek: Teknisyen
Teşekkür etti: 454 kez
Teşekkür edildi: 308 kez
İletişim:

DERS 2: Değişmezler,Basit Veri Giriş Çıkışları,İşleçler

Mesaj gönderen admin »

Ders 2.1 : Değişmezler-Sabitler

-Değişmez ya da bir başka deyişle sabit, değeri değişmeyen program bileşenleridir. C++ programlarında aşağıda belirtilen veri türlerine sahip değişmezler yer alabilir:
-Tamsayı değişmezler
-Kayan noktalı değişmezler
-Karakter değişmezler
-Karakter dizisi değişmezler
Bir değişmez C++ programı içinde const sözcüğü ile tanımlanır. Bu sözcük şu şekilde kullanılmaktadır:

Kod: Tümünü seç

const sabit_adı = değeri;
Program içinde tamsayıları belirtmek için int, karakterler için char ve kayan noktalı değerler içeren değişmezleri tanımlamak için float sözcüğü kullanılır. Bir değişmez tanımlandıktan sonra, programın herhangi bir yerinde değerini değiştirmek olanaksızdır.
Ders 2.2 :Basit Veri Giriş Çıkışları :

Bir C++ programı içinde değişkenlere değerler atayarak, bu değerler üzerinde çeşitli işlemler yapılabilir. Ancak bu tür veriler, program hazırlanırken program içine gömülen değerlerdir.

Programın yürütülmesi, yani çalıştırılması esnasında da programa veri aktarmak gerekebilir.C++ 'da standart giriş-çıkış nesnesine yönlendirme yapmak için "<<" işleci kullanılır. Yönlendirme esnasında, bir satır yazdırıldıktan sonra bir sonraki satırın başına atlamak için "\n" tanımı kullanılır. Ekran nesnesine karşılık gelmek üzere cout sözcüğü kullanılır.

Eğer bir klavyeden veri girişi söz konusu ise, bu kez ">>" işleci kullanılır. Klavye nesnesi için cin sözcüğü kullanılır.

Bu giriş çıkış işlemleri için ; ilgili kitaplıkları #include <iostream>
using namespace std; bu komutlarla programımıza dahil etmemiz gerekmektedir.

Örnek:

Kod: Tümünü seç

cout << "Merhaba Turkiye";  
cin >> sayi;
Cout << komutunun ekran çıktısı = Merhaba Turkiye
Cin >> komutunda ise klavyeden girilen bir sayısal değeri C++ programına aktarmak için, yukarıdaki gibi bir tanım yapılır. ( İlk programlarımızda bu komutları kullanmıştık.)

Ders 2.3 : İşleçler/Operatörler

Tüm programlama dillerinde, aritmetik işlemler başta olmak üzere, büyüklüklerin karşılaştırılması ve mantıksal karşılaştırmaların yapılmasını sağlamak için işleç (operatör) adı verilen simgelere başvurulur. C++ programlarında en çok aşağıda belirtilen işleçler kullanılmaktadır:

-Aritmetik İşleçler
-Karşılaştırma İşleçleri
-Mantıksal İşleçler

2.3-1 Aritmetik İşleçler

Toplama, çıkarma, çarpma ve bölme işlemlerini yapmaya yönelik işleçler aritmetik işleçler olarak bilinir. Bu işleçler belirli bir sıraya göre işlem görürler.

Resim

Artırma ve azaltma işleçleri:

C++'da (++) artırma ve (--) azaltma işleçlerinin özel bir önemi vardır. (++) işleci yanındaki değişkenin otomatik olarak bir artmasını sağlar. (--) ise bu işlemin tersini gerçekleştirerek, yanındaki değişkenin değerini bir azaltır. Bu işleçler değişkenin önünde yada arkasında yer alabilir. Bu durumda anlamı değişir ancak her iki durumda da aynı değer elde edilir.

Aritmetik işleçlerin atama işleciyle birlikte kullanımı:

Artırma ve azaltma işleçleri tek başlarına kullanıldığında, ilgili değişkenin değeri bir artıyor veya azalıyordu. Bu işleçler atama deyimi ile birlikte kullanıldığında, değişkenin önünde ya da arkasında olması durumuna göre farklı sonuçlara neden olmaktadır.

Kod: Tümünü seç

a=sayac++
deyimi şöyle çalışacaktır: Önce sayac isimli değişkenin değeri a değişkeni içine atanacak, ardından sayac'ın değeri 1 artacaktır. Örneğin sayac değişkeninin değeri 5 ise, bu işlem sonucunda a 'nın değeri de 5 olacaktır. Ancak sayac değişkeninin değeri 6 olacaktır. Buna karşılık,

Kod: Tümünü seç

a=++sayac
biçimindeki bir tanım farklı bir sonuç yaratacaktır. Bu durumda sayac değişkeninin değeri 1 artırılır ve bulunan değer a değişkenine aktarılır. Söz konusu sayac değişkeninin değeri 5 ise, bu atama sonucunda a 'nın değeri 6 olacaktır.
Örnek aritmetik işlemleri :

Kod: Tümünü seç

#include <iostream>
using namespace std;

// Bu program iki sayısal değeri
// toplayarak sonucu görüntüler..

int main()
{
   int sayi1=120; // ilk değişken ve değeri atanır.
   int sayi2=300; // ikinci değişken ve değeri atanır.
   int toplam;      // Sonuç için toplam değişkeni atanır.
   toplam = sayi1 + sayi2; /* iki değişken toplatılır .Toplam değişkeninin değeri olarak tutulur. */
   cout << "Sonuc:" <<toplam<<"\n"; / Ekrana toplam değişkeni olarak yazdırılır.
   return 0; 
}

Kod: Tümünü seç

#include <iostream>
using namespace std;

// Artırma işleçlerinin kullanılması..
int main()
{
   int a=50;  // a değişkeni ve değeri tanımlanır.
   int b=30;  // b değişkeni ve değeri tanımlanır.
   cout <<a++<<"\n"; /*eğer aynı komuttan bir tane daha eklersek A değeri bir artar.Bu şekilde aynı kalır */
   cout <<++b<<"\n"; //B değeri bir artar.
   return 0; 
}
Ders 2.3-2 -Karşılaştırma İşleçleri

Bu işleçler iki sayısal değeri yada iki karakteri karşılaştırmak amacıyla kullanılır. Söz konusu bu işleçler çoğunlukla program içindeki karşılaştırma deyimleri ile birlikte kullanılır.
Resim

Karşılaştırma işleçlerini şunlardır :
İki değerin karşılaştırılması amacıyla if deyimi kullanılır.

Örnek :

Kod: Tümünü seç

#include <iostream>
using namespace std;
// Karşılaştırma işleçlerinin
// kullanılması..
int main()
{
 int sayi;
 cout << "Bir sayi giriniz:"; // Ekrana bir sayı giriniz yazdırır.
 cin >> sayi;    // sayi değeri girmemizi bekler
 if (sayi < 0)     // eğer sayı 0 dan küçükse,
   cout << "Negatif sayi girdiniz :"  // negatif sayı girdiniz yazdırır.
        << sayi << "\n";  //sayiyi ekrana verir.
 else //yada 0 dan küçük değilse 
   cout << "Pozitif sayi girdiniz :" // ekrana pozitif sayı girdiniz yazdırır.
        << sayi << "\n";
 return 0; // İşlem tamamlanır.kontrolü sağlar.
}
2.3-3 Mantıksal İşleçler :

Mantıksal işleçler, iki veya daha fazla sayıdaki koşulun birlikte sınanması amacıyla kullanılırlar.

Kod: Tümünü seç

#include <iostream>
using namespace std;

// Mantıksal işleçlerin kullanılması..
int main()
{
  int sayi1,sayi2;
  cout << "Birinci sayiyi giriniz:";
  cin >> sayi1;
  cout << "İkinci sayiyi giriniz:";
  cin >> sayi2;

  if (sayi1 > 0 && sayi2>0)
    cout << "Her iki sayi pozitif..";
  else 
    cout << "Sayilardan en az biri negatif..";
  return 0; 
}
Bu örnekte : klavye yardımıyla -2 ve 5 sayısal değerlerini girecek olursak "Sayilardan en az biri negatif.." mesajı görüntülenir.
Daha zeki olmanın tek yolu, daha zeki bir rakiple oynamaktır.
Kullanıcı avatarı
admin
Sistem Geliştiricisi
Sistem Geliştiricisi
Mesajlar: 831
Kayıt: 28 Ağu 2022 04:38
Konum: Database
Meslek: Teknisyen
Teşekkür etti: 454 kez
Teşekkür edildi: 308 kez
İletişim:

DERS 3: C++ da if deyimi ve karşılaştırma işlemleri.

Mesaj gönderen admin »

Bir C++ programında karşılaştırma işlemi sonucunda bir eylemin yapılması söz konusu ise, yani belirli deyimlerin çalıştırılması gerekiyorsa if deyimine başvurulur.

İfade içinde belirtilen koşulun "doğru" olması halinde, if içinde belirtilen deyim çalışır. Eğer koşulun doğruluk değeri "yanlış" ise if içinde tanımlanan deyim işlem görmez.

Karşılaştırma işlemi sonucunda sadece bir deyim işlem görmeyebilir. Bazı uygulamalarda birden fazla deyimin çalışması söz konusu olabilir. Bu durumlarda söz konusu deyimleri gruplamak gerekir. Gruplama işlemlerinde { } simgeleri kullanılır

Örnek programlar :
Program içinde yer alan bir değişkenin değerini görüntülemek için aşağıdaki C++ programını hazırlıyoruz.

Kod: Tümünü seç

#include <iostream>
using namespace std;

// Karşılaştırma işlemi..
int sayi=5;

int main()
{
   if (sayi<10)
       cout << "Kosul dogru"<< "\n";
   return 0; 
}
Bu program sınucunda ; Kosul dogru

Bu program içinde yer alan,
if (sayi<10)
cout << "Kosul dogru";
deyimleri şu şekilde yorumlanır: Eğer sayi değişkeninin değeri 10 'dan küçük ise ekrana "Koşul doğru" ifadesini yaz. Programın başında sayi=5 tanımı yapıldığı için, if deyimi içindeki sayi<10 ifadesi "doğru" değerini üretir. O halde if deyimi içinde yer cout deyimi işlem görecektir.

İkinci örnek:

Kod: Tümünü seç

#include <iostream>
using namespace std;

int sayi=5;
int main()
{
  if (sayi<10)
  {
   cout << "Kosul dogru ";
   cout << "Tebrikler."<< "\n";
  }
  return 0; 
}
Bu kez iki ayrı mesajı ekranda görüntülemek söz konusudur. Her bir değeri yazdırmak için cout deyimi iki kez kullanılıyor.

Bu C++ programı çalıştırıldığında ekranda aşağıdaki sonuç elde edilir:

Kosul dogru Tebrikler.
Bu işlemlerin yanında eğer in devamında eğer e bağlı bir koşul daha mesela aksi taktirde şöyle olur demek için ;

Kod: Tümünü seç

#include <iostream>
using namespace std;

// Karşılaştırma işlemi..
int main()

{
   int sayi;         //Sayi değişkeni tanımlanır.
   cout<<"Bir sayi giriniz :"; // Ekrana bir sayı giriniz yazdırılır.
   cin>>sayi;            //sayi değişkenine değer girmemiz beklenir
   if (sayi<10)  //eğer sayı 10 dan küçük ise
   cout << "Kosul dogru"<< "\n";  //ekrana kosul dogru yazdırılır
   else    // YADA koşulumuz dogru değil ise
   cout << "Kosul dogru degil"<< "\n"; // ekrana kosul dogru değil yazdırılır
   system("PAUSE");  // VE enter a basmamızı beklenip,program(sistem) durdurulur.
}
Eğer koşul dogru ise program farklı , Koşul doğru değil ise program farklı şekilde cevap verir.
Daha zeki olmanın tek yolu, daha zeki bir rakiple oynamaktır.
Kullanıcı avatarı
admin
Sistem Geliştiricisi
Sistem Geliştiricisi
Mesajlar: 831
Kayıt: 28 Ağu 2022 04:38
Konum: Database
Meslek: Teknisyen
Teşekkür etti: 454 kez
Teşekkür edildi: 308 kez
İletişim:

DERS 4: C++ da Döngüler(for,while,do while ve switch Deyimi)

Mesaj gönderen admin »

C++ da Döngüler

Programın belirli bölümlerinin defalarca işlenmesi söz konusu olabilir. Bu gibi durumlarda döngülerden yararlanırız. C++ programlarında döngü işlemleri farklı biçimlerde gerçekleşebilir.
-for döngüsü
-while döngüleri
-do while döngüleri

Kod: Tümünü seç

{
deyim1
deyim2
deyim3
deyim4
}
Yukarıdaki döngü bloğu içindeki deyimler defalarca işlenebilir.
1-Belirli Sayıda Tekrarlar: for Döngüsü:

C++ programı içinde bir ya da daha fazla sayıda deyimin belirli bir koşulun gerçekleşmesine dek tekrarlanması söz konusu ise for deyimi kullanılır. Bu deyim şu şekilde tanımlanmaktadır:

Kod: Tümünü seç

for(sayaç ; koşul ; artma)
   deyimler;
Bu deyimden şu anlaşılmaktadır: Döngü bir sayaca göre yapılacaktır. Yani her bir döngü işlemi sayılacaktır. Döngü işlemi koşul gerçekleşinceye dek devam edecektir. Koşul gerçekleştiğinde, yani doğruluk değeri "yanlış" olduğunda döngü terkedilerek bir sonraki deyim işlem görmeye başlar. for içinde sayacın nasıl artacağı da ayrıca tanımlanır.

Örnekler :
Örnek1 :

Mesela ekranda 1 ile 10 arasında kalan tüm tamsayıları görüntülemek isteyelim ve bunu aşağıdaki şekilde yapalım.

Kod: Tümünü seç

#include <iostream>
using namespace std;

// for döngüsü için örnek..
int i;

int main()
{
  for (i=1;i<=10;i++)
    cout << i << "\n";
  return 0; /* Genelde bazen derlediğimiz programa bu geri dönüş kodunu eklersek programı açmıyabiliyor ben uygulamada eklemedim ve program sonuna durdurması için pause kodunu ekledim -64bit windows kullanıyorum buda bir neden olabilir. */
 system("PAUSE");
}
Örnek2 :

Klavyeden girilen iki tamsayı arasında kalan tüm tüm sayıların toplamını bulmak istiyoruz. Başlangıç sayısı ve son sayı bu toplama dahil edilmeyecektir. Bunu c++ programımıza bu şekilde dökeriz ;

Kod: Tümünü seç

#include <iostream>
using namespace std;

// Bu program girilen iki tamsayi 
// arasinda kalan tüm tamsayilarin 
// toplamlarini hesaplar..

int main()  // Ana fonksiyonumuzun baslangıcı
{
  int i,baslangic,son; //Degiskenlerimizi tanımladık.
  int toplam=0;    //Toplam degerimizi 0 a düzenledik.

  cout << "Baslangic deger:";
  cin >>  baslangic;
  cout << "Son deger:";
  cin >> son;

// İki değer arasındaki toplam hesaplanıyor..
  for (i=baslangic+1;i<son;i++)
      toplam+=i;

  cout << "Sonuc:" << toplam << "\n";

  return 0;
}
Program çalıştırıldığında alınan sonuç ; 5 ile 10 arasındaki tam sayılar " 6,7,8,9 " toplanmış ve sonuç olarak(30) ekrana yazılmıştır.
2-Koşullu Döngüler

Belirli bir koşulun gerçekleşmesi durumunda bazı deyimlerin çalıştırılması söz konusu ise koşullu döngü deyimlerinden yararlanılır. Bu döngüler iki türlüdür. Birincisi, koşulun döngü başlangıcında tanımlandığı durumdur. Bu şekildeki döngüler while döngüleri olarak bilinirler. Eğer koşul döngünün sonunda test ediliyorsa, bu kez do..while döngüleri kullanılır.

Döngü başında denetim: while döngüleri:

Bir koşulun gerçekleşmesi durumunda belirli işlemlerin tekrarlanması söz konusu ise while döngülerinden yararlanılır. Koşul sağlanmadığı sürece döngü içindeki hiçbir deyim çalışmayacaktır. Bu denetim döngü bloğunun başında yapılır.


Döngü sonunda denetim-do..while döngüleri:

Yukarıda açıklanan while döngülerinde koşul, bu deyimin tanımlandığı noktadan itibaren test edilmektedir. Yani daha başlangıçta bu koşul geçerli değil ise hiç bir deyim işlem görmemektedir. Buna karşılık, koşulun döngü bloğunun son satırında yapılması söz konusu olabilir. Böyle durumlarda do while deyimleri kullanılır.

Örnekler:
Örnek1:


Mesela 5 sayısal değerinden daha küçük olan tüm tamsayıları listelemek istiyoruz. Bu amaçla aşağıdaki gibi , while deyimini kullanarak bir program hazırlayabilirz.

Kod: Tümünü seç

#include <iostream>
using namespace std;

/* Bir sayısal değerden 
daha küçük olanları listeler */

int i;
int n=5;

int main()
{
  while(i<n) 
    cout << i++ << "\n";
  return 0;
}
Örnek 2:

Kod: Tümünü seç

#include <iostream>
using namespace std;

int i;
int n=0;

int main()
{
  do 
  {
    cout << i++ << "\n";
  }while(n!=i); 
  return 0;
}
Bu program çalıştığında, ekranda 1 den başlamak üzere artan sonrada sonsuz sayıda tamsayı görüntülenir. Bu sonsuz döngüye girilmesinin nedenini şöyle açıklayabiliriz. do döngüsü içinde yer alan deyimlerin işlenmesi için bir koşul yoktur. Koşul, bu deyimler bir kez çalıştıktan sonra geçerli olacaktır. Ancak i tamsayısı bir arttığı için, yani i=1 olduğu için while içindeki koşul hiçbir zaman geçerli olmaz ve sonsuz döngüye girilir.
3-Döngülerden Çıkış ve Devam:

Bazı uygulamalarda, döngü işlemi tamamlanmadan döngünün sona bulması istenebilir. Bu durumda break deyimi kullanılır.

Bu deyim ,
break;
biçiminde tanımlanır. Döngü içinde bu deyime sıra geldiğinde, break ardından döngü sonuna kadar olan tüm deyimler atlanır ve döngüye bir sonraki adımdan itibaren devam edilir.

Bir döngüyü terk etmeden bir adımının atlanması söz konusu ise,
continue;
deyimi kullanılır.

Bu deyim döngünün işlemesini sona erdirmez, sadece bir sonraki döngü adımına geçilmesini sağlar. Eğer for döngüsü kullanılıyorsa, işlem sırası bu deyime geldiğinde, bu deyimden döngü sonuna kadar olan deyimler çalışmaz, döngü bir artırılarak sonraki döngüye geçilir. Eğer while döngüsü kullanılıyorsa, continue deyimine sıra geldiğinde, döngü içinde bu deyimden sonraki tüm deyimler atlanır ve koşul sağlandığı sürece döngüye devam edilir.

4-) Switch Deyimi

Bir değişkenin aldığı değerlere bağlı olarak, belirli işlemlerin yaptırılması söz konusu olabilir. Aslında bu tür işlemleri if deyimi yardımıyla yerine getirebiliriz. Ancak bazı uygulamalarda if deyiminin kullanılması programın karmaşıklığını artırabilir. Eğer bir değişkenin değeri belirli sabitlerle karşılaştırılacak ve bunun sonucunda farklı işlemler yapılacak ise if deyimi yerine switch deyimi kullanılabilir.

Deyim bu şekilde yorumlanır ;

Bir değişkenin değeri sabit1' e eşit ise sadece ilgili case bloğundaki deyimler çalışır. Benzer biçimde değişkenin değeri sabit2' ye eşit ise bunu izleyen deyimler işlem görecektir. Eğer değişkenin değeri herhangi bir case içinde tanımlı bir sabite eşit değil ise default başlıklı blok içinde yer alan deyimler çalışır.

Örnek :

Klavye yardımıyla il kodlarından birinin girilmesi beklenmektedir. Bir trafik kodu girildiğinde, o koda karşılık gelen il adı görüntülenecektir. Amacımıza uygun C++ programı şu şekilde olacaktır:

Kod: Tümünü seç

// switch deyimi için örnek..
#include <iostream>
using namespace std;

int main()
{
  int kod;
  cout << "Il trafik kodu :";
  cin >> kod;

  cout << "Il adi:";
  switch(kod)
  {
    case 6:
      cout << "Ankara";
      break;
    case 34:
      cout << "Istanbul";
      break;
    case 35:
      cout << "Izmir";
      break;
    default:
      cout <<"Diger";
  }
  cout << "\n";
  
  system("PAUSE");
}
Daha zeki olmanın tek yolu, daha zeki bir rakiple oynamaktır.
Kullanıcı avatarı
admin
Sistem Geliştiricisi
Sistem Geliştiricisi
Mesajlar: 831
Kayıt: 28 Ağu 2022 04:38
Konum: Database
Meslek: Teknisyen
Teşekkür etti: 454 kez
Teşekkür edildi: 308 kez
İletişim:

DERS 5: C++ da Diziler,Göstergeler,Fonksiyonlar,Yapılar

Mesaj gönderen admin »

Diziler

C++ 'da aynı türden bilgilerin saklandığı ve dizi adı verilen veri yapıları kullanılır.
Dizi, belirli sayıda verinin bellekte saklandığı değişken listesidir.

Bu liste tek bir isimle program içinde kullanılır. Örneğin, a[1], a[2], a[3], a[4] ve a[5] ifadelerinin her biri bir değişkeni göstermektedir. Bu değişkenler listesini

Kod: Tümünü seç

a[i] 
ismiyle program içinde ortak biçimde kullanabiliriz. Söz konusu listeyi dizi olarak tanımlıyoruz.

Bir Boyutlu Diziler

Bir grup sayısal değer yada karakter veriyi içeren diziler bir boyutlu diziler olarak tanımlanır.
Örnek olarak, program içinde 15 adet tamsayıdan oluşan bir dizi için şu şekilde bir yer ayrılabilir:

Kod: Tümünü seç

int a[15];
Diziler indeksleri yardımıyla kullanılır. İndeks, bir dizinin her bir elemanına sırayla verilen bir numaradır. İndeksler, sıfırdan başlayarak oluşturulur. Buna göre dizinin birinci elemanının indeksi 0'dır. İkinci elemanının indeksi ise 1'dir.

Dizilere Başlangıç Değeri Atama

Bir dizi, doğal olarak bazı veriler içerecektir. Bu değerler çoğunlukla program içinde belirli hesaplamalar sonucunda elde edilir. Ancak bazı durumlarda, atama yoluyla dizinin içi doldurulur.

Bir diziye başlangıç değerleri vermek için, ilgili değişkene o değer doğrudan atanır.
Örnek:

Kod: Tümünü seç

a[0]=1;
biçiminde bir tanım yapılırsa, dizinin ilk elemanı olarak 2 değerinin belirlendiği anlaşılır. Diziye aynı anda birden fazla değer atanabilir. Bunun için söz konusu değerler { } işaretleri arasında yazılır.
Örnek:

Kod: Tümünü seç

a[5]={1,9,8,3,2}
biçiminde yazılarak diziye başlangıç değerleri verilebilir.
Örnek olarak ;
1,9,8,3,2 değerlerini bir dizi içine yerleştirdikten sonra, tek tek ekranda görüntülemek istiyoruz. Kullanacağımız dizinin adı a[] biçiminde olsun. Bu diziye, bellekte 10 elemanlık bir yer ayırıyoruz. Daha sonra dizinin beş elemanına ayrı ayrı 5 adet sayı yerleştiriyoruz.

Kod: Tümünü seç

// Dizilerin kullanımı..
// yazilimadasi.com

#include <iostream>
using namespace std;
// Dizi tanımlanıyor..
int a[10];
int main()
{ 
  a[0]=1;
  a[1]=9;
  a[2]=8;
  a[3]=3;
  a[4]=2;
  cout << a[0] << "\n";
  cout << a[1] << "\n";
  cout << a[2] << "\n";
  cout << a[3] << "\n";
  cout << a[4] << "\n";
  system("PAUSE");
}
Örnek 2:
Bu C++ programında dizinin her bir elemanına ayrı ayrı değerler atanmıştır. Bunun yerine, aşağıda görüldüğü biçimde atama yapılarak işlem kısaltılabilir:

Kod: Tümünü seç

#include <iostream>
using namespace std;

// Dizi değerleri tanımlanıyor..
int a[5]={1,2,3,4,5};

int main()
{ 
   cout << a[0] << "\n";
   cout << a[1] << "\n";
   cout << a[2] << "\n";
   cout << a[3] << "\n";
   cout << a[4] << "\n";
   
   system("PAUSE");
}
Daha zeki olmanın tek yolu, daha zeki bir rakiple oynamaktır.
Kullanıcı avatarı
admin
Sistem Geliştiricisi
Sistem Geliştiricisi
Mesajlar: 831
Kayıt: 28 Ağu 2022 04:38
Konum: Database
Meslek: Teknisyen
Teşekkür etti: 454 kez
Teşekkür edildi: 308 kez
İletişim:

İndekslerin Kullanımı

Mesaj gönderen admin »

Bu bir üst mesajdaki programda, dizi elemanlarının her birine nasıl başlangıç değerler verilebildiğini gördük. İndeksler göz önüne alınarak, diziye değerler yerleştirilmesi ya da yazdırılması işlemleri tanımlanabilir. Örneğin, beş adet dizi elemanının ekran üzerinde yazdırılması işleminde indeksleri for deyimiyle birlikte kullanabiliriz.

Örnek:
Bir önceki örnekteki programı, indeksler için bir "i" değişkenini kullanarak daha kolay ve etkin biçimde oluşturabiliriz. Bu programda, dizi elemanlarının herbirinin tek tek kullanılması yerine, indeksleri göz önüne alınarak for döngüsü içinde yazdırılması sağlanmıştır.

Kod: Tümünü seç

#include <iostream>
using namespace std;
// yazilimadasi.com 2022
// Dizi değerleri tanımlanıyor..
int a[5]={1,2,3,4,5};
int i;

int main()
{ 
  for (i=0;i<=4;i++)
     cout << a[i] << "\n";
     
     system("PAUSE");
} 
Bu program çalıştırıldığında, bir önceki örnekteki sonuç alınır.
Çok Boyutlu Diziler

Tek boyutlu dizileri bir vektör olarak düşünebiliriz. C++ da tek boyutlu diziler dışında çok boyutlu dizileri tanımlayarak kullanmamız mümkündür. İki boyutlu bir dizi bir tablo olarak değerlendirilebilir. Bu durumda iki farklı indeksin kullanılması söz konusu olacaktır. Birinci indeks iki boyutlu tablonun satır elemanlarını, ikinci indeks ise sütun elemanlarını gösterecektir.

Örnek:
İki boyutlu bir diziyi tanımladıktan sonra için bazı verilerle doldurduktan sonra görüntülemek istiyoruz. Bu amaçla aşağıdaki programı tasarlayabiliriz.

Kod: Tümünü seç

#include <iostream>
using namespace std;
//yazilimadasi.com 2022
// Dizi değerleri tanımlanıyor..
int dizi[5][2] = {{1,2}, {3,4}, {5,6}, {7,8}, {9,10}};
int main()
{
   cout << "Dizi elemanlari:" << "\n";
   for (int i = 0; i<5; i++)
      for (int j=0; j<2; j++) {
         cout << "[" << i << "][" << j << "]: ";
         cout << dizi[i][j]<< "\n";
      }
   system("PAUSE");
} 
Katar dizileri : (Strings)

Bazı programlama dillerinde katarlar (strings), ayrı bir veri türü olarak tanımlanabilmektedir. C'de ise bu mümkün değildir. Onun yerine, katarlar, karakterlerden oluşan normal bir boyutlu dizi olarak değerlendirilir. Bir katar, boşluk (NULL) ile veya bir başka deyişle '\0' karakteri ile son bulan bir karakter dizisi olarak kabul edilir. C++ de NULL değer olarak sıfır kabul edilebilir.

Katar boyutları tanımlanırken dikkatli olmak gerekir. Çünkü katarın en son karakteri NULL olacaktır. O halde, n boyutlu katarlara n+1 boyutluk yer ayırmakta yarar vardır.

C++'da katarların bildirimi ve kullanımı diğer dillerden farklıdır. Katarlarla ilgili bazı işlemler işleçler yerine özel fonksiyonlarla yerine getirilir.

Klavyeden Katar Okumak


Bir katarı klavyeden okumak için C++'ın gets() fonksiyonu kullanılır. Bu fonksiyon herhangi bir indeks tanımlamadan karakter katarlarının okunmasını sağlar. Söz konusu fonksiyon, klavye üzerindeki return tuşuna basılıncaya dek girilen tüm karakterleri okur. Okuduğu katarın sonuna satır sonu işaretini değil, NULL değerini yerleştirir.

gets() fonksiyonu, klavyeden girilen katarları, herhangi bir ek tanımlamaya gerek duymadan bir dizi içine yerleştirir. Dizinin herbir karakteri dizinin farklı bir hücresi içine yerleşir.

Örnek:
Aşağıdaki program klavyeden girilen katara ait tüm karakterleri tek tek görüntüler ;

Kod: Tümünü seç

#include <iostream>
using namespace std;

char katar[50];
int i;

int main()
{ 
   gets(katar);
   for (i=0;katar[i];i++)
      cout<< katar[i] << "\n";
system("PAUSE");
} 
Program çalıştığında şöyle bir sonuç alınır ;

Ekran üzerinde klavyeden bir değer girilmesi beklenir. Klavyeden herhangi bir cümle yazdığımızda yine klavyenin return tuşuna basıyoruz. Sonuç olarak, yazılan katar bir dizi içine yerleştirilir ve dizinin her bir elemanı tek tek yazdırılır.
Katar Kopyalama
C++ programı içinde, Bir dizgi içine belirli bir katar yerleştirilmesi işlemini geleneksel yollarla yapamayız.

Örneğin, şu şekilde bir tanım yapıldığını varsayalım:

Kod: Tümünü seç

char katar[50];
katar="abcde";
Bu şekilde bir tanım hatalıdır. Çünkü bu atama göstergeye yapılan atamadır. Göstergelerin ne olduğunu bir sonraki bölümde ayrıntılı olarak ele alarak inceleyeceğiz. Atamanın bir katara yapılabilmesi için, C++'ın strcpy() fonksiyonu kullanılır. Bu fonksiyon şu şekilde tanımlanır:

Kod: Tümünü seç

#include <iostream>
using namespace std;

char katar[50];
int i;

intmain()
{ 
   strcpy(katar,"www.yazilimadasi.com");
   for(i=0;katar[i];i++)
      cout<< katar[i] << "\n";
system("PAUSE");
} 
Katarların Birleştirilmesi
İki katarın birleştirilerek tek bir katar haline dönüştürülmesi söz konusu ise C'nin strcat() fonksiyonu kullanılır.

Bu fonksiyon, var olan bir katarın sonuna bir başka katarı ekleyecektir. Tanıma göre, katar1 bir başka katar2 'nin sonuna eklenecektir. Örneğin "abc" katarının sonuna "def" katarı strcat() fonksiyonu kullanılarak eklenebilir.
Örnek:
İki katarı birleştirerek bir katar elde etmek istiyoruz. Katarlardan birincisi "Kazakistan" diğeri ise " ve Turkiye" biçiminde olsun. Bu iki katarı birleştirmek için aşağıda görüldüğü biçimde bir C++ programı düzenlenebilir:

Kod: Tümünü seç

#include <iostream>
using namespace std;
char katar[50];
int i;
int main()
{
   strcpy(katar, "Avrupa");
   strcat(katar, " ve Asya");
   for (i=0;katar[i];i++)
      cout << katar[i];
      cout << "\n";
system("PAUSE");
} 
Katarların Karşılaştırılması

İki katarın birbirleriyle karşılaştırılarak, içerdiği karakterlerin aynı olup olmadıkları test edilebilir. Bu amaçla strcmp() fonksiyonu kullanılır.
Bu karşılaştırma sonucunda, her iki katar birbirinin aynı ise "0"; birbirinden farklı ise "1" değeri üretilir. Elde edilen bu değer kullanılarak programın akışı yönlendirilebilir

Örnek :
İki katarı karşılaştıralım eğer iki katar birbirine eşit ise "Katarlar birbirinin aynı", farklı ise "Katarlar birbirinden farklı" mesajını göreceğiz ;

Kod: Tümünü seç

int main()
{ 
   strcpy(katar1, "Turkiye");
   strcpy(katar2, "Almanya");

   if (strcmp(katar1,katar2)) 
      cout << "Katarlar birbirinden farkli";
   else
      cout << "Katarlar birbirinin ayni";
   cout << "\n";
   system("PAUSE");
} 
Katarların Uzunluğunu Bulmak

Bazı uygulamalarda bir katarın uzunluğunu bulmak söz konusu olabilir. Bir katarın uzunluğunu, yani kaç karakter içerdiğini elde etmek için C'nin standart strlen() fonksiyonu kullanılır. Bu fonksiyonu aşağıdaki örnekteki gibi tanımlarız ;
Aşağıdaki C++ programı bir katarın uzunluğunu bulmak amacıyla düzenlenmiştir:

Kod: Tümünü seç

#include <iostream>
using namespace std;

char katar[50];
int main()
{ 
   strcpy(katar,"yazilimadasi.com");
   cout << "Kelime:" << katar << "\n"; 
   cout << "Karakter sayisi:" << strlen(katar);
   cout << "\n";
   system("PAUSE");
} 
Program çalıştırıldığında katar'daki kelimenin(cümlenin) karakter sayısını bize verir.

Katar Dizilerine Başlangıç Değeri Atamak


Bir katar dizisine programın başında bir başlangıç değeri atanarak bu değerler kullanılabilir. Örneğin, a[] isimli bir katara "Fatih" dizgisini atamak için şöyle bir tanım yapılabilir:

Kod: Tümünü seç

char a[]={'F','a','t','i','h'} ;
Bunun yerine,

Kod: Tümünü seç

char a[]="Fatih";
biçiminde bir tanım da yapılabilir.

Örnek: Bir dizi içine haftanın gün isimlerini yerleştirelim ve ekran üzerinde görüntüleyelim.

Kod: Tümünü seç

#include <iostream>
using namespace std;

int i,j;
char a[][80]={"Pazartesi","Sali","Carsamba",
"Persembe", "Cuma", "Cumartesi", "Pazar"};

int main()
{ 
   for (i=0;a[i][0];i++)
   {
      for (j=0;a[i][j];j++)
         cout << a[i][j];
      cout << "\n";
   }
   system("PAUSE");
} 
Daha zeki olmanın tek yolu, daha zeki bir rakiple oynamaktır.
Kullanıcı avatarı
admin
Sistem Geliştiricisi
Sistem Geliştiricisi
Mesajlar: 831
Kayıt: 28 Ağu 2022 04:38
Konum: Database
Meslek: Teknisyen
Teşekkür etti: 454 kez
Teşekkür edildi: 308 kez
İletişim:

DERS 6: C++ da Gösterge Kavramı ve Kullanımı

Mesaj gönderen admin »

Gösterge (pointer) C++ programlarında önemli yere sahip bir kavramdır. Gösterge, bir değişkenin bellekteki adresini tutan bir değişken olarak düşünülür. Örneğin, b değişkenin bellekteki konumunu, yani adresini gözönüne alalım. Bu adresi bir başka a değişkeni içine yerleştirelim. Bu durumda "a, b'nin göstergesidir" ya da "a, b'ye işaret etmektedir" denir.
O halde gösterge, bir değişkenin değerini değil söz konusu değişkenin bellek üzerindeki adresini içermektedir.

Göstergelerin Bildirimi
Göstergelerin C++ programlarında kullanılabilmesi için, her şeyden önce bildiriminin yapılması gerekmektedir.

Tür, göstergenin tipini belirler. Örneğin tamsayı bir gösterge değişken için int bildirimi yapılır. Değişken isimlerinin başında "*" işlecine yer verilir. Bu işleç, gösterge değişkenlerinin tanımlanmasında kullanılır.

Şu şekilde bir gösterge tanımı yapılabilir:

Kod: Tümünü seç

int *a;
Bu ifade, tamsayı türündeki bir a göstergesini tanımlamaktadır.

Değişkenlerin Adresi

Bildirimi yapılmış bir gösterge değişken herhangi bir şey ifade etmez. Bu göstergenin kullanılabilmesi için, söz konusu gösterge değişkene bir başka değişkenin adresini yerleştirmek gerekmektedir.

Öncelikle bir değişkenin adresinin nasıl elde edilebileceğini bilmek söz konusudur. Bir değişkenin bellek üzerindeki adresini öğrenmek için "&" işlecinden yararlanılır. Örneğin, a değişkenininin bellek üzerindeki adresini, biçiminde gösterebiliriz.
Bir a değişkenin içeriğini ve bellek adresini öğrenmek istiyoruz. Bu amacımıza ulaşmak için şöyle bir yol izlenebilir:

Kod: Tümünü seç

#include <iostream>
using namespace std;

int main ()
{
   int a=500;
   cout << "Degiskenin degeri:" << a << "\n";
   cout << "Degiskenin bellek adresi:" << &a << "\n";
system("PAUSE");
} 

Göstergeye Adres Atama

Göstergelerin kullanılabilmesi için önce şu işlemler yapılır:

Gösterge değişkenin bildirimi yapılır. Bunun için "*" işlecinden yararlanılır.
Gösterge değişkene bir değişken adresi atanır. Değişkenin adresini bulmak için "&" işleci kullanılır.

*, gösterge türünden değişken tanımlar.
&, değişkenin adresini belirler.

Örnek:
Bir a değişkeninin 100 değerini içerdiğini varsayalım. Bu değişkenin bellek üzerindeki adresini bir gösterge içine yerleştirmek ve ardından bu gösterge değerini kullanarak a değişkeninin değerini görüntülemek istiyoruz. Aşağıdaki programı hazırlayalım ;

Kod: Tümünü seç

#include <iostream>
using namespace std;

int main ()
{
   int a=100;
   int *b;

   b=&a;
   cout << "Degiskenin bellek adresi:" << &b << "\n";
system("PAUSE");
} 
Daha zeki olmanın tek yolu, daha zeki bir rakiple oynamaktır.
Cevapla

“C++ Programlama” sayfasına dön