Merhaba arkadaşlar bugün sizlere karmaşık sayılarda(komplex sayılarda) bölme işlemi yapan C programını anlatacağım.Ben kodları struct yapısında yazdım.Başka türlü yapılmaz mı? Tabii ki yapılır ama struct yapısıyla daha kolay ve hızlı bir şekilde programı yapabiliriz.Anlatımı aşağıda kodların yanındaki renkli yazılarda yaptım.Anlamadığınız bir yer olursa mesaj bırakmanız yeterli.Herkese kolay gelsin.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 |
#include<stdio.h> #include<conio.h> typedef struct complex//Struct yapısında x ve y sayılarını tanımlıyoruz.Bunları float şeklinde tanımladık.Çünkü bölme işlemi yapacağız virgüllü ifade çıkabilir. { float x; float y; } complex; complex carp(complex a,complex b)//Bu bölüm komplex sayılarda çarpma işleminin yapıldığı yer. { complex c; c.x=(a.x*b.x) - (a.y*b.y ); c.y=(a.x*b.y) + (b.x*a.y); return c; } complex top(complex a,complex b)//Burası ise toplama işlemini yapıyor. { complex k; k.x = a.x + b.x; k.y = a.y + b.y; return k; } complex eslenik(complex a) //Burada ise eşlenik işlemi yapılacaktır.Çünkü karmaşık sayılarda bölme işlemi yapmak için paydanın eşleniğiyle pay ve paydayı çarpmamız gerekiyor.Bu sayede bölme işleminin sonucuna gideceğiz. { a.y=(-1)*a.y; return a; } complex bolme(complex a,complex b)//İşte en son noktaya geldik.Burada da bölme işlemi yapılacaktır.Bu bölümde hem eşlenikten hem çarpmadan hem de toplama yani kısacası bütün struct tanımlarından faydalandık.Şimdi hepsi birleşip sonucu da d olarak verecektir. { complex d,p; p=eslenik(b); a=carp(a,p) ; b=carp(b,p); d.x = a.x/(b.x); d.y = a.y/(b.x); return d; } int main() { complex a,b,c; printf("n a nin x i : "); scanf("%f",&a.x); printf("n a nin y si : "); scanf("%f",&a.y); printf("n b nin x i : "); scanf("%f",&b.x); printf("n b nin y si : "); scanf("%f",&b.y); c = bolme(a,b); printf("n bolum : %f %fi ",c.x,c.y);//Ekrana çıktıyı veriyor. getch(); return 0; } |
Aşağıdaki resimde de bir örnek verdim.
Girdiğimiz sayılar;
a’nın x’i(reel kısım)=5
a’nın y’si(sanal kısım)=2
b’nin x’i(reel kısım)=4
b’nin y’si(sanal kısım)=3
yani;
a=5+2i
b=4+3i
şeklinde sayıları girdik ve ekran çıktısı şu şekilde olacaktır;
bolum=1.04-0.28i şeklinde bir cevap karşımıza çıkacaktır.Resim hali ise aşağıdadır.
Bu Yazıya Tepkin Ne Oldu ?