Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.

Benzer bir sunumlar


... konulu sunumlar: "Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz."— Sunum transkripti:

1 Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz

2 Örnek Girilen bir yılın verilen bir gününün hangi ayda olduğunu hesaplayan bir C/C++ programı yazalım ve akış diyagramını çizelim. Örneğin: 2004 yılın 42. günü şubat ayındadır. Bu problemi çözerken yılın aylarını ifade eden 12 elemana sahip bir “söz dizisi/string” dizisi ve ayrıca ayların gün sayılarını da sırası ile tutan 12 elemana sahip bir tamsayı dizisi kullanacağız

3 Bir “söz dizisi/string” dizisi, ya elamanları karakter işaretçi olacak biçimde yada boyutu bir artırılarak bildirilir; char *aylar[] = {"OCAK", "SUBAT", "MART", "NISAN", "MAYIS", "HAZIRAN", "TEMMUZ", "AGUSTOS", "EYLUL", "EKIM", "KASIM", "ARALIK"}; char aylar[][7] = {"OCAK", "SUBAT", "MART", "NISAN", "MAYIS", "HAZIRAN", "TEMMUZ", "AGUSTOS", "EYLUL", "EKIM", "KASIM", "ARALIK"}; Programı oluştururken dikkat etmemiz gereken bir husus da 4’ e tam bölünen yılarda şubat ayının 29 gün olmasıdır.

4

5 #include char *aylar[] = {"OCAK", "SUBAT", "MART", "NISAN", "MAYIS", "HAZIRAN", "TEMMUZ", "AGUSTOS", "EYLUL", "EKIM", "KASIM", "ARALIK"}; int ngun[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; void main(void) { int yil, t, gun, i; clrscr(); printf("YIL girin: "); scanf("%d",&yil); printf("kacinci gun: "); scanf("%d",&gun); t=0; if(yil%4==0) ngun[1]=29; for(i=0;i<12;i++) {t=t+ngun[i]; if(t>=gun) break; } printf("%d. gun %s ayindadir", gun, aylar[i]); getch(); }

6 Örnek : Bir fonksiyonun belirli bir aralıkta hesabı analitik yollar ile zor olabilir veya mümkün olmayabilir. Bu gibi durumlarda sayısal integrasyon yöntemlerine başvurulur. Simpson Kuralı bu yöntemlerden biridir. Simpson Kuralı aşağıdaki şekilde ifade edilebilir;

7 y=f(x) şeklinde bir fonksiyonun x=a ile x=b arasında integralinin hesabı, (a,b) aralığında fonksiyon eğrisi ile x ekseni arasında kalan alana eşittir. Simpson Kuralına göre (a,b) aralığını yukarıdaki şekilde olduğu gibi n parçaya bölerek aşağıdaki integral hesabını yazabiliriz;

8

9 #include double integral (float, float, int); double fonk(float); int n; void main(void) { float bas,son; int bs; double sonuc; clrscr(); printf("integral aralik baslangici: "); scanf("%f",&bas); printf("integral aralik sonu: "); scanf("%f",&son); printf("aralik bolum sayisi (cift): "); scanf("%d",&bs); sonuc=integral(bas,son,bs); printf("integral degeri : %f ", sonuc); getch(); } double integral(float a, float b, int n) {double F[100], toplam, integ; float h,x; int i; h=(b-a)/n; x=a; for(i=0;i<=n;i++) {F[i]=fonk(x); x=x+h;} toplam=0; for(i=1;i<n;i+=2) toplam=toplam+4*F[i]+2*F[i+1]; integ=(h/3)*(toplam+F[0]-F[n]); return integ; } double fonk(float z) {float f; f=exp(-4* z)*pow((0.5+z),5); /*hazir C matematik fonksiyonlari */ return f; }

10 Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz


"Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz." indir ppt

Benzer bir sunumlar


Google Reklamları