Bölüm 10 Yapılar ve Birleşimler

Slides:



Advertisements
Benzer bir sunumlar
Bölüm 11 Metin Dosyaları Metin Dosyaları Dosya Açma ve Kapama
Advertisements

Bölüm 4 Seçme Komutları Koşul İfadesi if Komutu Bileşik Komut
Dizi Kullanan Örnekler
STRİNG FONKSİYONLARI.
Diziler.
Bölüm 8 Diziler Dizi Tanımı Dizi Elemanlarına Değer Atama
Bölüm 12 ÜST DÜZEY KONULAR Dinamik Bellek Ayırma Önişlemci
Nesnelerin Özellikleri. - Üye nesneler - friend belirtesi - Nesnelerin operatörlere yüklenmesi - this yerel (lokal) değişkeni - inline tanımlı üye fonksiyonlar.
Bölüm 4 Seçme Komutları Koşul İfadesi if Komutu Bileşik Komut
Nöbetçi Kontrollü Döngü
Göstericiler (Pointers)
NESNEYE YÖNELİK PROGRAMLAMA SINIFLAR
void medyan(int cevap[]) { int j; siralama(cevap);
Bölüm 7 Fonksiyonlar GÖSTERGELER Gösterge Tanımı
Bölüm 2 C Dilinin Temelleri
String Diziler(Katarlar)
Tanım Birbirleriyle ilişkili ve bitişik iki ya da daha fazla bellek hücresinden oluşan yapı Örnek dizi tanımı: int tamsayiDizi[10]; tamsayiDizi[0] /*ilk.
Diziler.
Atama ve Girdi/Çıktı Komutları
Soru1: kuvvet(taban,us) Şeklinde bir yinelenen fonksiyon yazın
BPR152 ALGORİTMA VE PROGRAMLAMA - II
Bölüm 9 Dizgiler Dizgi Tanımı Dizgi Girdi İşlemleri
Bölüm 9 Dizgiler Dizgi Tanımı Dizgi Girdi İşlemleri
String Kütüphanesindeki Arama Fonksiyonları
Diziler(Arrays).
Bölüm 5 Döngü Komutları while Komutu Diğer Operatörler Bileşik Komut
Bölüm 3: Göstergeler BTEP 102 – Veri Yapıları ve Programlama
Bölüm 2 C Dilinin Temelleri Genel Kavramlar
Soru1: Dışardan "%s" format belirteci kullanılarak girilecek 20 elemanlı bir dizinin elemanlarının kaç tanesinin rakam, kaç tanesinin harf ve kaç tanesinin.
Soru1: Bir tanesi tam sayı diğeri string olan iki elemanlı bir struct’ı bir başka struct’a direk kopyalama, memcpy kullanarak kopyalama ve tek tek elemanlarını.
DİZİLER.
Program Kontrol İfadeleri
Soru1: Kullanıcıdan iki tam sayı girmesini isteyen ve daha sonra büyük olan sayı ile beraber ‘en büyüktür’ ifadesi yazan, ancak sayılar birbirine eşitse.
C ile Programlamaya Giriş
FONKSİYONLAR.
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
Diziler Adres Kavramı Nesnelerin Adresleri sizeof Operatörü
Diziler Dizi Tanımı Dizi Elemanlarına Değer Atama Diziler ve Göstergeler 2-Boyutlu Diziler.
Fonksiyonlar Fonksiyon Tanımı Değer Döndürmeyen Fonksiyonlar
Fonksiyonlar Fonksiyon Tanımı
BPR152 ALGORİTMA VE PROGRAMLAMA - II Öğr. Gör. Bayram AKGÜL
Diziler (Arrays).
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
SINIFLAR VE DİNAMİK BELLEK YÖNETİMİ VE SINIFLARIN DİĞER ÖZELLİKLERİ Yılmaz Kılıçaslan.
Temel Giriş/Çıkış Fonksiyonları
Bölüm 3: Diziler BTEP 102 – Veri Yapıları ve Programlama
Diziler. Dizi Tanımı Dizi Elemanlarına Değer Atama Diziler ve Göstergeler 2-Boyutlu Diziler.
Bilgisayar Programlama. Tek bir değişken tanımlamak için aşağıdaki gibi bir yazım yeterlidir. int i; Hatırlanacağı gibi bu tarz bir tanımlamada.
Bölüm 6 Fonksiyonlar Fonksiyon Tanımı Değer Döndürmeyen Fonksiyonlar
Dizgiler Dizgi Tanımı Dizgi Girdi İşlemleri Dizgi Çıktı İşlemleri Dizgi Fonksiyonları Karakter Fonksiyonları Gösterge Dizgileri.
Bölüm 3 Atama ve Girdi/Çıktı Komutları Bölüm 3 Atama ve Girdi/Çıktı Komutları Atama Komutu Operatörler İsim Sabitleri Veri Tipi Dönüşümü Çıktı Fonksiyonu.
1 7. HAFTA. 2 Referanslar  Referanslar adres temsilcisidir  İşaretçilerin görevlerini kısmi olarak yapabilirler  Değişken değildirler.  Bellekte yer.
C Programlamada, benzer tipte tanımlaman değişkenleri kontrol etmede bize en çok yardım eden dostlarımız dizilerdir. Örneğin: 100 Öğrencinin bilgilerini.
BİLGİSAYAR programlama II
BİLGİSAYAR programlama II
Sıralama. Sıralama, bir dizideki sayısal elemanların küçükten büyüğe veya büyükten küçüğe, sayısal olmayan bir dizideki elemanların ise A’ dan Z’ ye.
Bölüm 8 Diziler Dizi Tanımı Dizi Elemanlarına Değer Atama Diziler ve Göstergeler 2-Boyutlu Diziler.
Bölüm 3 Atama ve Girdi/Çıktı Komutları
Fonksiyonlar ve Diziler
Bölüm 7 Fonksiyonlar GÖSTERGELER Gösterge Tanımı
DİZİLER Bellekte sıralı bir şekilde bulunan ve aynı türden bilgilerin saklandığı veri yapısına dizi (array) denir. Örneğin kullanıcıdan 7 kişinin not ortalamasını.
BÖLÜM 5 POINTER’LER (İŞARETÇİLER)
Bölüm 8 Diziler Dizi Tanımı Dizi Elemanlarına Değer Atama
C Programlama Yrd.Doç.Dr. Ziynet PAMUK BMM211-H11
Bölüm 9 Dizgiler Dizgi Tanımı Dizgi Girdi İşlemleri
Bölüm 8 Diziler Dizi Tanımı Dizi Elemanlarına Değer Atama
YAPISAL PROGRAMLAMA Hafta-7
Bölüm 3 Atama ve Girdi/Çıktı Komutları
Karakter dizi fonksiyonları
C ile Programlamaya Giriş
Sunum transkripti:

Bölüm 10 Yapılar ve Birleşimler Yapı Tanımı Yapılara İlk Değer Atama Yapı Elemanlarına Erişim İçiçe Yapılar Yapılar ve Fonksiyonlar Yapı Dizileri Veri Tipi İsmi Tanımlama Birleşimler

Yapı Tanımı Yapılar, birden fazla, aynı ya da farklı tipte eleman tutabilen bileşik veri tipleridir. struct yapı_tipi { veri_tipi yapı_elemanı1; veri_tipi yapı_elemanı2; . }; Örnek: struct ogrenci { char isim[15]; int yas; float ortalama; char cinsiyet; };

Yapı Tanımı Bir yapı değişkeni aşağıdaki şekilde tanımlanır. struct yapı_tipi yapı_değişkeni; Örnek: struct ogrenci { char isim[15]; int yas; float ortalama; char cinsiyet; }; Bellek Görüntüsü struct ogrenci kisi;

Yapı Tanımı struct yapı_tipi { veri_tipi yapı_elemanı1; . }yapı_değişkeni; Örnek: struct ogrenci{ char isim[15]; int yas; float ortalama; char cinsiyet; }kisi;

Yapı Tanımı struct { veri_tipi yapı_elemanı1; veri_tipi yapı_elemanı2; . }yapı_değişkeni; Örnek: struct{ char isim[15]; int yas; float ortalama; char cinsiyet; }kisi;

Yapı Tanımı struct { veri_tipi yapı_elemanı1; veri_tipi yapı_elemanı2; . }yapı_değişkeni; Örnek: struct ogrenci{ . }bir,iki,uc; Örnek: struct{ char isim[15]; int yas; float ortalama; char cinsiyet; }kisi;

Yapılara ilk Değer Atama Bellek Görüntüsü Örnek: struct ogrenci { char isim[15]; int yas; float ortalama; char cinsiyet; }; struct ogrenci kisi = {“Ali Yilmaz”,18,2.75,’E’};

Yapı Elemanlarına Erişim Yapı elemanlarına program içinde nokta ‘.’ operatörüyle erişmemiz gerekir. yapı_adı.eleman_adı Örnek: struct ogrenci { char isim[15]; int yas; float ortalama; char cinsiyet; }; struct ogrenci kisi = {“Can Aydin”,19,3.25,’E’};

Yapı Elemanlarına Erişim kisi.isim[0] = ‘T’; kisi.yas = 20; scanf (“%c”, &kisi.cinsiyet); printf(“%s\n”, kisi.isim); if (kisi.ortalama > 3.0) printf (“Burs kazandiniz.\n”); Çıktı: Tan Aydin Burs kazandiniz.

Yapı Elemanlarına Erişim Yapı elemanları, tamsayı, karakter gibi temel tiplerden olabildiği gibi dizi gibi bileşik değişkenlerden de oluşabilir. Örnek: struct ders { char ders_adi[10]; char ogretmen[20]; int saat; int notlar[30]; }; struct ders matematik; . for (i=0; i<30; i++) scanf(“%d”,&matematik.notlar[i]);

Yapı Elemanlarına Erişim Eğer yapımıza bir gösterge ile erişmek istersek ‘->’ dolaylı alan seçme operatörünü aşağıda gösterildiği gibi kullanmamız gerekir. yapı_göstergesi -> eleman_adı Örnek: struct ogrenci { char isim[15]; int yas; float ortalama; char cinsiyet; }; struct ogrenci kisi; struct ogrenci *ptr =&kisi; ... (*ptr).yas = 17; veya ptr->yas = 17;

İçiçe Yapılar Bir yapının başka bir yapı tipinde elemanı olabilir. Örnek: struct tarih { int gun; char ay[10]; int yil; }; Bellek Görüntüsü struct ogrenci { char isim[15]; int yas; float ortalama; char cinsiyet; struct tarih dogumtarihi; }kisi;

İçiçe Yapılar Yapı Elemanlarına Erişim: scanf(“%d”,&kisi.dogumtarihi.gun); gets(kisi.dogumtarihi.ay); kisi.dogumtarihi.yil = 1988; Bellek Görüntüsü

Yapılar ve Fonksiyonlar Yapı Değerinin Döndürülmesi struct ogrenci { char isim[15]; int yas; float ortalama; char cinsiyet; }; struct ogrenci fon(void); int main(void){ struct ogrenci kisi; kisi=fon(); . . . } struct ogrenci fon(void){ struct ogrenci a; return (a);

Yapılar ve Fonksiyonlar Yapı Elemanının Parametre Olarak Fonksiyona Geçirimi struct ogrenci { char isim[15]; int yas; float ortalama; char cinsiyet; }; void fon(int x) { . . . } int main(void){ struct ogrenci kisi; fon(kisi.yas);

Yapılar ve Fonksiyonlar Yapının Değer Parametresi Olarak Fonksiyona Geçirimi struct ogrenci { char isim[15]; int yas; float ortalama; char cinsiyet; }; void fon(struct ogrenci yapı_parametresi){ yapı_parametresi.yas=20; . . . } int main(void){ struct ogrenci kisi; fon(kisi);

Yapılar ve Fonksiyonlar Yapının Kaynak Parametresi Olarak Fonksiyona Geçirimi struct ogrenci { char isim[15]; int yas; float ortalama; char cinsiyet; }; void fon(struct ogrenci *yapi_gostergesi){ yapi_gostergesi->yas=20; . . . } int main(void){ struct ogrenci kisi; fon(&kisi);

Yapı Dizileri Aynı tipte birden fazla yapı değişkenine ihtiyacımız varsa bir yapı dizisi oluşturabiliriz. Örnek: struct ogrenci { char isim[15]; int yas; float ortalama; char cinsiyet; }; struct ogrenci sinif[30];

Yapı Dizileri Girdi: 18 Ali Can sinif[0].ortalama = 3.5; scanf(“%d”,&sinif[1].yas); gets(sinif[1].isim);

Yapı Dizileri Örnek: Bu programda 30 kişilik sınıf bilgilerini bir fonksiyon kullanarak okuyalım ve en yüksek ortalamalı öğrenciyi bulup ismini ve not ortalamasını yazdıralım. #include <stdio.h> #include <string.h> struct ogrenci { char isim[15]; int yas; float ortalama; }; void oku(struct ogrenci s[]); int main(void) struct ogrenci sinif[30]; float enbuyuk = 0.0; char birinci[15]; int i;

Yapı Dizileri /* sinif dizisini okuyalim */ oku(sinif); /* 30 ogrenciden en yüksek ortalamayi tutturan ogrencinin ortalamasini ve adini saklayalim */ for (i=0;i<30;i++) { if ((sinif[i].ortalama)>enbuyuk) { enbuyuk = sinif[i].ortalama; strcpy(birinci,sinif[i].isim); } printf("Sinif birincisi: %s",birinci); printf("Ortalama: %5.2f",enbuyuk); /* yapi dizisini okuyan fonksiyon */ void oku (struct ogrenci s[]) int i; { scanf("%s,",s[i].isim); scanf("%d %f",&s[i].yas,&s[i].ortalama);

Veri Tipi İsmi Tanımlama Tanımlanmış bir veri tipine yeni bir isim vermek amacıyla typedef bildirimi kullanılır. Örnek: typedef int Tam; Tam x; struct ogrenci { char isim[15]; int yas; float ortalama; char cinsiyet; }; typedef struct ogrenci Ogr; typedef struct { char isim[15]; int yas; float ortalama; char cinsiyet; }Ogr; veya Ogr kisi; Ogr sinif[30];

Birleşimler Birleşimler, yapılara benzer şekilde aynı veya farklı tipteki elemanlardan oluşur; ancak tüm elemanlar bellekte aynı yeri kullanırlar. Birleşim_adı.eleman_adı Birleşim_göstergesi->eleman_adı union numara { int a; double b; }; union numara x; union numara x = {5}; x.a = 8; x.b = 7.2;

Birleşimler Örnek: struct { char isim[30]; int no; char calisma_tipi[4]; union { double aylik; int saat; }bilgi; }calisanlar[100]; ... strcpy(calisanlar[0].calisma_tipi,”yari”); calisanlar[0].bilgi.saat = 10;