Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

YAPISAL PROGRAMLAMA Hafta-7

Benzer bir sunumlar


... konulu sunumlar: "YAPISAL PROGRAMLAMA Hafta-7"— Sunum transkripti:

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

2 İç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

3 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

4 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;

5 Ö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 ); }

6 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’ };

7 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. }

8 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.

9 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.

10 Diziler-Soru

11 Diziler-Cevap

12 Dizi Elemanlarına İlk Atama

13 Dizi ve Fonksiyon Kullanımı-Örnek

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

15 Soru

16 Cevap

17 İki Boyutlu Diziler

18 İki Boyutlu Dizi Tanımı

19 İki Boyutlu Dizi

20 İki Boyutlu Dizi Elemanlarına Erişim

21 İki Boyutlu Dizi Elemanlarına Erişim

22 İki Boyutlu Dizi-Soru

23 İki Boyutlu Dizi-Cevap

24 İki Boyutlu Dizi ve Fonksiyonlar

25 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; }

26 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; }

27 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; }

28 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; }

29 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" ); } }

30 Soru

31 Cevap

32 Soru

33 Cevap

34 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ı


"YAPISAL PROGRAMLAMA Hafta-7" indir ppt

Benzer bir sunumlar


Google Reklamları