YAPISAL PROGRAMLAMA Hafta-7

Slides:



Advertisements
Benzer bir sunumlar
Dizi Kullanan Örnekler
Advertisements

STRİNG FONKSİYONLARI.
Diziler.
Bölüm 8 Diziler Dizi Tanımı Dizi Elemanlarına Değer Atama
Göstericiler (Pointers)
SINIFLAR Yılmaz Kılıçaslan.
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
switch - case Yapısı Döngü Yapıları
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.
Değişken Bildirimleri
Elektrik-Elektronik Mühendisliği Bölümü DİZİLER C Programlama Dili Yaz Stajı Cengiz TEPE SAMSUN 2007.
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ı
PROGRAMLAMA DİLLERİNE GİRİŞ Ders 4: Diziler
Bölüm 10 Yapılar ve Birleşimler
KOPYA YAPICI FONKSİYON, STATİK ELEMANLAR, ARKADAŞ SINIF VE FONKSİYONLAR, NESNE DİZİLERİ Yılmaz Kılıçaslan.
Bölüm 2 C Dilinin Temelleri Genel Kavramlar
SINIFLAR GİRİŞ Yılmaz Kılıçaslan.
Nesneye Dayalı Programlama
DİZİLER.
Erişim Denetimi, Fonksiyon
Fonksiyonlar.
FONKSİYONLAR.
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
Diziler Adres Kavramı Nesnelerin Adresleri sizeof Operatörü
DÖNGÜLER.
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
Diziler (Arrays).
Diziler. Dizi Tanımı Dizi Elemanlarına Değer Atama Diziler ve Göstergeler 2-Boyutlu Diziler.
C++ Ders Notları 2.Ders (Dilin Yapısı)
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.
C++ Ders Notları 3.Ders (String İşlemleri)
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.
2. HAFTA 2. Hafta.
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
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.
4. Hafta1 4. HAFTA. 4. Hafta2 Fonksiyonlar  Büyük problemler, küçük parçalara bölünerek kolay çözülür  Yazılımlar benzer modüller içerirler  Hata ayıklama.
Veri yapıları Hafta3 Dizi Yapıları.
BİLGİSAYAR programlama II
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
Hafta2 Rekürsif Algoritmalar
BİLGİSAYAR PROGRAMLAMA Ders 6: Diziler Yrd. Doç. Dr. Altan MESUT Trakya Üniversitesi Bilgisayar Mühendisliği.
Bölüm 2 C Dilinin Temelleri Genel Kavramlar Yazım ve Noktalama Kuralları C Kütüphaneleri C Dilindeki Sözcükler Değer Sabitleri Veri Tipleri Değişkenler.
Örnek Sorular Bilgisayar Programlama BIL 107. Soru 1: Ekran çıktısında 66 yazması için boşlukları doldurunuz ______ i = 'A'; printf(____, i__); CEVAP:
Bölüm 8 Diziler Dizi Tanımı Dizi Elemanlarına Değer Atama Diziler ve Göstergeler 2-Boyutlu Diziler.
Bilgisayar Programlama BIL 107
Fonksiyonlar ve Diziler
YAPISAL PROGRAMLAMA Hafta-5
BİLGİSAYAR PROGRAMLAMA Ders 6: Diziler
BİLGİSAYAR PROGRAMLAMA Ders 6: Diziler
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 8 Diziler Dizi Tanımı Dizi Elemanlarına Değer Atama
Bölüm 9 Dizgiler Dizgi Tanımı Dizgi Girdi İşlemleri
Bölüm 2 C Dilinin Temelleri
Bölüm 8 Diziler Dizi Tanımı Dizi Elemanlarına Değer Atama
YAPISAL PROGRAMLAMA Hafta-6
YAPISAL PROGRAMLAMA Hafta-4
YAPISAL PROGRAMLAMA Hafta-8
Bölüm 2 C Dilinin Temelleri
C ile Programlamaya Giriş
Diziler(Arrays).
Sunum transkripti:

YAPISAL PROGRAMLAMA Hafta-7 AR. GÖR. ESRA SÖĞÜT

İçindekiler Recursive fonksiyonlar Enum Diziler Dizi Elemanlarına İlk Atama Dizi ve Fonksiyon Kullanımı İki Boyutlu Diziler İki Boyutlu Dizi ve Fonksiyonlar Örnekler Kaynaklar

Kendi Kendini Çağıran Fonksiyonlar (Recursive) Tekrarlama fonksiyonları Kendi kendini çağıran fonksiyonlardır Yalnızca temel problemi çözebilirler Problemi böl Yapamadığı kısım için fonksiyon kendi yeni kopyasını çağırır (tekrarlama basamağı) Sonunda temel problem çözülmüş olur

Kendi Kendini Çağıran Fonksiyonlar Örnek olarak faktöryel: 5!=5*4*3*2*1 Faktöriyel tekrarlama ile çözülebilir Temel kısmı çöz(1! = 0! = 1) sonra 2! = 2 * 1! = 2 * 1 = 2; 3! = 3 * 2! = 3 * 2 = 6;

Örnek: Bir tamsayının faktörünün hesaplanması #include<stdio.h> long faktor (int); İnt main() { İnt sayi; Long sonuc; Printf ( “bir tam sayi giriniz: " ); Scanf ( "%d", &sayi); result = faktor ( sayi); printf( “%d faktoriyeli = %ld\n", sayi, sonuc); Return 0; } /* tekrarlama faktor fonksiyonu tanimi*/ Long faktor ( int n ) { İf ( n <=1 ) return1; Else return ( n * faktor( n -1 ); }

Enum = Enumeration (Numaralandırmalar) Bu kavramın türkçeleştirilmesi anlam karışıklığına yol açtığı için genellikle "enum sabiti" şekilde kullanılmaktadır. Bu tip, değişkenin alabileceği değerlerin belli (sabit) olduğu durumlarda programı daha okunabilir hale getirmek için kullanılır. Bu tipte, değerleri çeşitli sembollerle belirtebiliriz: Örneğin haftanın günlerini sembolize etmek için aşağıdaki gibi bir yapı kullanılabilir. Enum gunler {pzt, sl, crs, prs, cm, cts, pzr} hafta; Enum gunler hafta1, haft2; Başka bir örnek: Enum ornek { bir = ’a’, iki= ’b’, uc = ’t’, dort = ’n’ };

Enum-Örnek #include<stdio.h> using namespace std; //isim uzayı tanımladık. Her satırın başına(string olanların) başına std //koymamak için bu kısa tanımlamayı kullandık  int main() {    enum Dizi { seyfettin, kahveci, bau}; //dizi adında enum tanımlamasını yaptık . //DİKKAT Enum tanımlaması yaparken string ifadeler "tırnak" içinde yazılmaz. Dizi d; //enumun adı olan dizinin artık yeni adı d d=bau; //dnin bau olan degerinin indezks numarası cout<<d; //dnin değerini ekrana yazalım //enumlar da 0 dan başlar, o sebeple ekrana 2 yazar. return 0; //programı bitirelim. }

Diziler (Arrays) Belirli bir boyutta tanımlanmış, içinde aynı tipte veriler barındıran, ardı ardına sıralı bellek hücrelerinden oluşan bir veri yapısıdır. veriTipi diziİsmi[elemanSayisi]; Bir dizi, aynı isme ve aynı tipe sahip olmaları sebebiyle birbirleriyle ilişkili olan hafıza konumlarının bir grubudur. Bir dizinin içindeki bir elemanı ya da konumu belirtmek için o dizinin adını ve elemanın dizi içindeki pozisyonunu belirtmeliyiz.

Diziler int c[12]; int c[4]=1543; X=5; C[x+3]=-3; c[2]=c[2]+5; veya Sonuçta: c[2]=5 oldu.

Diziler-Soru

Diziler-Cevap

Dizi Elemanlarına İlk Atama

Dizi ve Fonksiyon Kullanımı-Örnek

Dizi ve Fonksiyon Kullanımı-Örnek Dizi elemanlarını yazan program:

Soru

Cevap

İki Boyutlu Diziler

İki Boyutlu Dizi Tanımı

İki Boyutlu Dizi

İki Boyutlu Dizi Elemanlarına Erişim

İki Boyutlu Dizi Elemanlarına Erişim

İki Boyutlu Dizi-Soru

İki Boyutlu Dizi-Cevap

İki Boyutlu Dizi ve Fonksiyonlar

Diziler-Örnek /*Diziye bildirim sırasına ilk değerler verme*/ #include <stdio.h> int main( ) { int n[10]={32, 27, 64, 18, 95, 14, 90, 70, 60, 37}; int i; printf (“%s %13s\n”,”Eleman”,”Değer”); for (i = 0; i <= 9 ;i++1) printf (“%6d%14d\n”,i,n[i]); return 0; }

Diziler-Örnek /*Dizi elemanlarının toplamlarını hesaplamak*/ #include <stdio.h> #define BOYUT 12 int main( ) { int a[ BOYUT ]={1, 3, 5, 4, 7, 2, 99, 16, 45, 67, 89, 45}; int i, toplam=0; for (i = 0;i <= BOYUT - 1; i++) toplam += a[i]; printf (“Dizideki elemanların toplamı %d dir.\n”,toplam); return 0; }

Diziler-Örnek /*Karakter dizilerini string gibi ele almak */ #include <stdio.h> int main( ) { char string1[ 20 ], string2[] = "string literal"; int i; printf("Bir string girin: "); scanf( "%s", string1 ); printf( "string1: %s\nstring2: %s\n" "karakterler arasında boşlukla string1:\n", string1, string2 ); for ( i = 0; string1[ i ] != '\0'; i++ ) printf( "%c ", string1[ i ] ); printf( "\n" ); return 0; }

Diziler-Örnek /*Dizide lineer arama yapmak */ #include <stdio.h> #define BOYUT 100 int lineerArama( const int [], int, int ); int main( ) { int a[ BOYUT ], x, aramaDegeri, eleman; for ( x = 0; x <= BOYUT - 1; x++ ) /* veri oluştur */ a[ x ] = 2 * x; printf( "Arama değeri tamsayısını gir:\n" ); scanf( "%d", & aramaDegeri); eleman = lineerArama( a, aramaDegeri, BOYUT); if ( eleman != -1 ) printf( "Bu değer, eleman %d de bulundu\n", eleman ); else printf( "Bu değer bulunamadı\n" ); return 0; } int lineerArama( const int dizi[], int anahtar, int boyut ) { int n; for ( n = 0; n <= boyut - 1; ++n ) if ( dizi[ n ] == anahtar ) return n; return -1; }

Diziler-Örnek /*Çok boyutlu dizilere ilk değer atanması */ #include <stdio.h> void diziyiYazdir( const int [ ][ 3 ] ); int main( ) { int dizi1[ 2 ][ 3 ] = { { 1, 2, 3 }, { 4, 5, 6 } }, dizi2[ 2 ][ 3 ] = { 1, 2, 3, 4, 5 }, dizi3[ 2 ][ 3 ] = { { 1, 2 }, { 4 } }; printf( "Satır satır dizi1’in elemanları:\n" ); diziyiYazdir ( dizi1 ); printf( " Satır satır dizi2’in elemanları:\n" ); 234 diziyiYazdir ( dizi2 ); 18 printf( " Satır satır dizi3’in elemanları:\n" ); diziyiYazdir ( dizi3 ); return 0; } void diziyiYazdir ( const int a[ ][ 3 ] ) { int i, j; for ( i = 0; i <= 1; i++ ) { for ( j = 0; j <= 2; j++ ) printf( "%d ", a[ i ][ j ] ); printf( "\n" ); } }

Soru

Cevap

Soru

Cevap

Kaynaklar Atılım Üniversitesi-Yrd. Doç. Dr. Çiğdem Turhan - Yrd. Doç. Dr. Fatma Cemile Serçe-C++ Dersi Sunumları Anadolu Üniversitesi- Öğr. Gör. Levent Terlemez-Bilgisayar Programlama Ders Notları C ve C++ Deitel&Deitel Programlama Kitabı İTÜ-Dr. Feza Buzluca-Nesneye Dayalı Programlama Dersi Notları Gazi Üniversitesi-Doç. Dr. Ercan Nurcan YILMAZ C++ Dersi Sunumları İnönü Üniversitesi-Doç. Dr. Müslüm Arkan C Programlama Ders Notları