C Programlama Yapılar (Structures)
C Programlama Yapılar (Structures)
Herkese selamlar bu makalemde C Programlama Dilinde önemli bir yeri olan Yapılar (Structures) hakkında bildiklerimi paylaşmak istiyorum.
Yapılar (structures) içinde aynı veya farklı veri tipinde birden fazla eleman saklayabildiğimiz bileşik veri tipidir. Programlarımızda değişkenleri kullandığımız için büyük önemleri vardır. Örneğin dizilerde hafızada bir takım yerler açılır, bu hafıza kısımlarını doldururken belirlemiş olduğunuz değişken tipinin dışına çıkamayız...işte yapılar saysesinde farklı veri tiplerinde birden fazla eleman saklayabiliriz.
struct insan{
string isim;
float boy;
int kilo;
}insan birey; //birey nesnesi
Eğer veri tipi tanımlamayıp sadece değişken tanımlamak istiyorsak bunu şu şekilde gerçekleştirebiliriz;
struct {
string isim;
float boy;
int kilo;
}birey;
Yapılara İlk Değer Atama : Tüm değişkenlere yapabildiğimiz gibi yapı değişkenlerine de tanımları sırasında ilk değer ataması yapabiliriz.
insan birey={"ibrahim bayraktar",1,74,100}; //birey yapı değişkeni
Yapı Elemanlarına Erişim: Yapıda yer alan elemanlara, nokta (.) operatöru? ile erişebiliriz.
yapıDegiskeni.elemanAdı
Örnek :
cout<<kitap1.isim;
kitap1.yayinyili+=5;
if(kitap1.baski>35)...
kitaplar kitap1,kitap2;
cin>>kitap1.isim>>kitap1.yayinyili>>kitap1.baski;
kitap2=kitap1;
Yapı Elemanlarına Erişim Örnek :
#include <stdio.h>
#include <conio.h>
#include <cstdlib>
#include <iostream>
using namespace std;
struct rasyonel_erisim //yapiyi tanımliyoruz.
{
int pay, payda;
};
int main(int argc, char *argv[])
{
rasyonel_erisim sayi1,sayi2,sonuc;
cout<<"1.Sayinin Pay ve Paydasini Giriniz:";
cin>>sayi1.pay>>sayi1.payda; //burada sayilar okunuyor
cout<<"2.Sayinin Pay ve Paydasini Giriniz:";
cin>>sayi2.pay>>sayi2.payda;
sonuc.pay=sayi1.pay * sayi2.pay;
sonuc.payda=sayi1.payda*sayi2.payda; //pay ve paydaları carpiyoruz
cout<< sayi1.pay<<"/"<<sayi1.payda<<" x ";
cout<< sayi2.pay<<"/"<<sayi2.payda<<" = ";
cout<<sonuc.pay<<"/"<<sonuc.payda<<endl; //sonucu yazdiriyoruz
getch();
}
İç İçe Structures: Bir yapının elemanı başka bir yapı olabilir. Bu durumdaki yapılara iç içe yapı (nested structures) adı verilir.
struct tarih {
string ay;
int yil,gun;
};
struct insan {
string isim;
float boy;
int kilo;
struct tarih dogumTarihi;
};
insan icice;
icice.dogumtarihi.gun=17;
İç İçe Structures Örnek :
#include <stdio.h>
#include <conio.h>
#include <cstdlib>
#include <iostream>
using namespace std;
struct personelBilgi {
char * isim;
char * soyisim;
char * Egitim;
};
struct personelKayit{
char * kayitYapanPersonel;
char * kayitTarihi;
struct personelBilgi personel;
};
int main(){
struct personelKayit pk001;
pk001.kayitYapanPersonel="Ibrahim BAYRAKTAR";
pk001.kayitTarihi="12.01.2015";
pk001.personel.isim="FISTIKCI";
pk001.personel.soyisim="SAHAP";
pk001.personel.Egitim="Lisans";
printf("Kayit Islemini Yapan Personel: %sn", pk001.kayitYapanPersonel);
printf("Kayit Tarihi: %sn", pk001.kayitTarihi);
printf("Personel Isim: %sn", pk001.personel.isim);
printf("Personel Soyisim: %sn", pk001.personel.soyisim);
printf("Personel Egitim Duzeyi: %sn", pk001.personel.Egitim);
getch();
}
Herkese selamlar bu makalemde C Programlama Dilinde önemli bir yeri olan Yapılar (Structures) hakkında bildiklerimi paylaşmak istiyorum.
Yapılar (structures) içinde aynı veya farklı veri tipinde birden fazla eleman saklayabildiğimiz bileşik veri tipidir. Programlarımızda değişkenleri kullandığımız için büyük önemleri vardır. Örneğin dizilerde hafızada bir takım yerler açılır, bu hafıza kısımlarını doldururken belirlemiş olduğunuz değişken tipinin dışına çıkamayız...işte yapılar saysesinde farklı veri tiplerinde birden fazla eleman saklayabiliriz.
struct insan{ string isim; float boy; int kilo; }insan birey; //birey nesnesi
Eğer veri tipi tanımlamayıp sadece değişken tanımlamak istiyorsak bunu şu şekilde gerçekleştirebiliriz;
struct { string isim; float boy; int kilo; }birey;
Yapılara İlk Değer Atama : Tüm değişkenlere yapabildiğimiz gibi yapı değişkenlerine de tanımları sırasında ilk değer ataması yapabiliriz.
insan birey={"ibrahim bayraktar",1,74,100}; //birey yapı değişkeni
Yapı Elemanlarına Erişim: Yapıda yer alan elemanlara, nokta (.) operatöru? ile erişebiliriz.
yapıDegiskeni.elemanAdı
Örnek :
cout<<kitap1.isim; kitap1.yayinyili+=5; if(kitap1.baski>35)... kitaplar kitap1,kitap2; cin>>kitap1.isim>>kitap1.yayinyili>>kitap1.baski; kitap2=kitap1;
Yapı Elemanlarına Erişim Örnek :
#include <stdio.h> #include <conio.h> #include <cstdlib> #include <iostream> using namespace std; struct rasyonel_erisim //yapiyi tanımliyoruz. { int pay, payda; }; int main(int argc, char *argv[]) { rasyonel_erisim sayi1,sayi2,sonuc; cout<<"1.Sayinin Pay ve Paydasini Giriniz:"; cin>>sayi1.pay>>sayi1.payda; //burada sayilar okunuyor cout<<"2.Sayinin Pay ve Paydasini Giriniz:"; cin>>sayi2.pay>>sayi2.payda; sonuc.pay=sayi1.pay * sayi2.pay; sonuc.payda=sayi1.payda*sayi2.payda; //pay ve paydaları carpiyoruz cout<< sayi1.pay<<"/"<<sayi1.payda<<" x "; cout<< sayi2.pay<<"/"<<sayi2.payda<<" = "; cout<<sonuc.pay<<"/"<<sonuc.payda<<endl; //sonucu yazdiriyoruz getch(); }
İç İçe Structures: Bir yapının elemanı başka bir yapı olabilir. Bu durumdaki yapılara iç içe yapı (nested structures) adı verilir.
struct tarih { string ay; int yil,gun; }; struct insan { string isim; float boy; int kilo; struct tarih dogumTarihi; }; insan icice; icice.dogumtarihi.gun=17;
İç İçe Structures Örnek :
#include <stdio.h> #include <conio.h> #include <cstdlib> #include <iostream> using namespace std; struct personelBilgi { char * isim; char * soyisim; char * Egitim; }; struct personelKayit{ char * kayitYapanPersonel; char * kayitTarihi; struct personelBilgi personel; }; int main(){ struct personelKayit pk001; pk001.kayitYapanPersonel="Ibrahim BAYRAKTAR"; pk001.kayitTarihi="12.01.2015"; pk001.personel.isim="FISTIKCI"; pk001.personel.soyisim="SAHAP"; pk001.personel.Egitim="Lisans"; printf("Kayit Islemini Yapan Personel: %sn", pk001.kayitYapanPersonel); printf("Kayit Tarihi: %sn", pk001.kayitTarihi); printf("Personel Isim: %sn", pk001.personel.isim); printf("Personel Soyisim: %sn", pk001.personel.soyisim); printf("Personel Egitim Duzeyi: %sn", pk001.personel.Egitim); getch(); }