Ana içeriğe atla

struct C++ Tipi Konu Anlatımı Fonksiyonlar ve Parametre ile Kullanımı

 

#include <iostream>

#include <string> //getline için kullanılmalı

using namespace std;

// struct C++ Tipi Konu Anlatımı

/*

struct Ogrenci // struct tanımlama üye değişkenleri

{

int ogrenciNo;

string isim;

double notOrtalama;

};


int main() 

Ogrenci ogrenci1;

// Birinci Yöntem

ogrenci1.ogrenciNo = 100;

ogrenci1.isim = "Ahmet Yilmaz";

ogrenci1.notOrtalama = 85.5;


// İkinci Yöntem

Ogrenci ogrenci2 = { 103,"Ali Kaya",90.2 }; //struct içindeki elemanların sırası ile yazılmalı


cout <<"Ogrenci No : "<< ogrenci1.ogrenciNo << " " << ogrenci1.isim << " " << ogrenci1.notOrtalama << endl;

cout << "Ogrenci No : " << ogrenci2.ogrenciNo << " " << ogrenci2.isim << " " << ogrenci2.notOrtalama << endl;


return 0;

}

*/

/*

struct Ogrenci // struct tanımlama üye değişkenleri

{

int ogrenciNo;

string isim;

double notOrtalama;

};


//Struct Arrays [Diziler]

//Birden fazla öğrenci tanımlama

int main()

{

Ogrenci ogrenciler[3];

for(int i=0;i<3;i++)

{

cout << i + 1 << ". ogrencinin No : ";

cin >> ogrenciler[i].ogrenciNo;

cin.ignore();// Yeni satır karakterini temizlemek için kullanıldı

//ignore() gereksiz karakterleri temizlemek için kullanılan bir iostream fonksiyonudur.

//getline() ile metin alınacağı zaman enter tuşunun arabellekte bırakıp bir sonraki girdiyi atlamasını önlemek için kullanılır.


cout << i + 1 << ". ogrencinin isim : ";

getline(cin, ogrenciler[i].isim);// getline kullanıcıdan gelen boşluklar dahil tüm karakterleri okumak için kullanılır


cout << i + 1 << ". ogrencinin Not Ortalamasi : ";

cin >> ogrenciler[i].notOrtalama;


}


cout << "\n* * Ogrenci Listesi * *\n";


for (int i = 0; i < 3; i++)

{

cout << ogrenciler[i].ogrenciNo << " " << ogrenciler[i].isim << " " << ogrenciler[i].notOrtalama << endl;

}

// Kodumuzun Çıktısı :

// 1. ogrencinin No : 199

// 1. ogrencinin isim : Ahmet Tek

// 1. ogrencinin Not Ortalamasi : 90.8

// 2. ogrencinin No : 333

// 2. ogrencinin isim : Fatma Yek

// 2. ogrencinin Not Ortalamasi : 68.9

// 3. ogrencinin No : 555

// 3. ogrencinin isim : Hasan Tuzlu

// 3. ogrencinin Not Ortalamasi : 67.7

//

// * *Ogrenci Listesi * *

// 199 Ahmet Tek 90.8

// 333 Fatma Yek 68.9

// 555 Hasan Tuzlu 67.7


return 0;

}

*/

/*

struct Ogrenci

{

int ogrenciNo;

string isim;

double notOrtalama;

};

void ogrenciDurumYazdir(Ogrenci ogr)

{

// Parametre Koyamalama yöntemidir. Gelen verileri fonksiyona kopyalar

// Parametrelerin içinde tanımlanmış olan değerlerde değişiklik yapılamıyor sadece lokal olarak değiştirilebilir

// Referans " & " verilmediğinden parametre olarak kullanmış olduk ( kopyalanmış oldu )

// Bu yöntemde sürekli kopyalama olacağından büyük verilerde RAM yavaşlamaya başlayacaktır.

// Referansların önemini burada görmüş olduk

if (ogr.notOrtalama < 50)

{

cout << ogr.isim << " Sinifda Kaldi" << endl;

}

else

{

cout << ogr.isim << " Sinifi gecti" << endl;

}

}

int main() 

{

Ogrenci ogrenci1 = {101, "Ali Kaya",48.5};//Ogrenci fonksiyonunun sırasıyla yazılmalı

ogrenciDurumYazdir(ogrenci1);


return 0; 

}

*/


//Referans " & " ile Kullanımı


struct Ogrenci

{

int ogrenciNo;

string isim;

double notOrtalama;

};

void ogrenciDurumYazdir(Ogrenci &ogr)

{

ogr.ogrenciNo = 190; // Referans sayesinde öğrenci numarasını 190 olarak değiştirdik.

if (ogr.notOrtalama < 50)

{

cout << ogr.isim << " Sinifda Kaldi" << endl;

}

else

{

cout << ogr.isim << " Sinifi gecti" << endl;

}

}

int main()

{

Ogrenci ogrenci1 = { 101, "Ali Kaya",48.5 };//Ogrenci fonksiyonunun sırasıyla yazılmalı

ogrenciDurumYazdir(ogrenci1);

cout << "ogrenci isim : " << ogrenci1.isim << " ogrenci no : " << ogrenci1.ogrenciNo << endl;


// Çıktısı 

// Ali Kaya Sinifda Kaldi

// ogrenci isim : Ali Kaya ogrenci no : 190



return 0;

}

Bu blogdaki popüler yayınlar

C++ float double string Aritmatik işlemler

  #include <iostream> using namespace std; //void fonk()  //{ // cout << "Merhaba\n"; //} // //int main()  //{ // cout << "Merhaba C++\n"; // // fonk(); // return 0; //} /* int main()  { //Değişkenler rakam ile başlayamaz //Değişken isimlerinde türkçe karakter olmaz //değişken isimleride boşluk olmaz //Değişken isimlerinde nokta vb karakter olmaz //******************************************** //int ram'da 4 byte yer kaplıyor -2147483648 to 2147483647 //char 1 byte  (ASCII tablosu) //bool 1 byte //float 4 byte //double 8 byte //CPU ramdan byte byte okur //Void herhangi bir return etmiyecekse kendi aldığı değerleri kullanır.Bir değer döndürmez. string isim; isim = "Kaan"; int yas; yas = 22; cout << "Bir zamanlar " << isim << " isminde bir genc varmis." << endl << isim << " " << yas << " yasindaymis." ...

C++ try catch, Call by Value, Call by Referans Kullanımı

  #include <iostream> using namespace std; //int main()  //{ // int bolunen, bolen; // cout << "Lutfen bolunen sayiyi giriniz : "; // cin >> bolunen; // cout << "Lutfen bolen sayiyi giriniz : "; // cin >> bolen; // // int sonuc; // // try{ // if (bolen == 0) // throw 99;//Burada throw için herhangi bir tam sayı girilir.örn: negatif sayılar gibi durumlar için çoğaltılabilir // sonuc = bolunen / bolen; // // cout << "Sonuc : " << sonuc; // } // catch(int hataKodu){ // cout << "Bolen sayi sifir olmamali !!" << endl; // } // // cout << endl; // return 0; //} /* try catch Kullanımı :  * try catch kullanıcının beklenmedik bir girdi vermesi sonucu  * programın çökmesini engllemek amacı ile kullanılır * Ayrıca veri tabanı bağlantılarında bağlantının olmaması ve  * işlem sonrasında veri tabanı bağlantısını kapatma veya programın başlangıcında bağlantıyı a...

Pointer ve & (ampersant) Konusunu Kavrayalım

  #include <iostream> #include <string> using namespace std; /* int main()  {  int x = 7; cout << "x 'in degeri : " << x << endl; cout << "x 'in RAM deki adresi : " << &x << endl;  // & ile ramdeki ilk adres değeri  000000D3ED4FFCF4 ni bulduk  // int 4 byte oldugundan bu adresde dahil 4 byte 'lik yerin tamamını hesaplar // ama bize  4 byte lik adresin ilk değerini verir. return 0;  } */ /* int main() { // Pointer  ve & (ampersant) Konusunu Kavrayalım int x = 7; int *p = &x; // pointer ile x 'in adres değerini bulma cout << "x 'in degeri : " << x << endl; cout << "x 'in & ile RAM deki adresi : " << &x << endl; //pointer ile gösterimi cout <<"pointer p ile adres degeri : "<< p << endl; cout << "*p ile ( *p = &x) x in pointer degeri : " <...