C de Karmaşık Sayılarda Aritmetik İşlemler

yorumsuz
298 kez okundu

Merhaba arkadaşlar,

Bu yazımızda karmaşık sayılarda aritmetik işlemler yapan bir program yazacağız. Bilindiği üzere karmaşık sayının gerçel ve sanal kısımları bulunmaktadır. Biz bu kısımları temsil etmek için gerçel ve sanal diye iki ayrı değişken tanımlamak yerine struct yapısını kullanacağız. Struct yapısı tutmak istediğimiz bir değişkene ait birden fazla özellik bulunuyorsa, bu özellikler için tek tek değişken tanımlamaktansa bir tek değişkenle işi kolaylıkla halletmemizi sağlar. Örneğin öğrenciye ait bilgileri tutmamız gereken bir kod yazdığımızda öğrenicinin adı, soyadı, öğrenci numarası gibi özellikleri için ayrı ayrı değişken tanımlamaktansa tek bir struct yapısı tanımlayıp bunun içinde değişkenleri tanımladığımız zaman struct adında tanımlanan her değişkenin bu özelliklere ait değişkenleri olacaktır. Bu kodda karmaşık sayının gerçel ve sanal değişkenleri için “typedef struct karmasik” yapısı içinde bu iki değişken tanımlanmıştır. Burada yabancı olan “typedef” komutudur.Görülüdüğü üzere kodda typedef struct karmasik{…} sonunda “Karmasik; yazısı bulunmaktadır. Bu komut programda uzun uzun “struct karmasik” yazmak yerine sadece “Karmasik” yazarak işi kolaylaştırmamızı sağlar. Yani aynı işi gören farklı isimde değişken tanımlamamızı sağlar. Program aşağıdaki gibidir.

#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
// Struct Tanimlama..
typedef struct karmasik {
int gercel;
int sanal;
}Karmasik;
// end Struct Tanimlama..

// Fonksiyon Tanimlama..
void oku (Karmasik *); // oku Fonksiyonu Klavyeden Veri Girisi Icindir..
void yaz (Karmasik); // yaz Fonksiyonu Ekrana Yazdirmak Icin Yazilmistir.
Karmasik topla (Karmasik, Karmasik); // topla Fonksiyonu Iki Karmasik Sayiyi Toplar..
Karmasik carp (Karmasik, Karmasik); // carp Fonksiyonu Iki Karmasik Sayiyi Carpar..
Karmasik cikar(Karmasik,Karmasik); // cikar Fonksiyonu Iki Karmasik Sayiyi Cikarir..
// end Fonksiyon Tanimlama..

// Main..
int main()
{
Karmasik birinci_sayi,ikinci_sayi,toplam,carpim,fark;

printf(“\n 1.Karmasik Sayi Icin:\n”);
oku(&birinci_sayi);
printf(“\n 2.Karmasik Sayi Icin:\n”);
oku(&ikinci_sayi);

system(“CLS”);

printf(“\n 1. Karmasik Sayi : “);
yaz(birinci_sayi);
printf(“\n 2. Karmasik Sayi : “);
yaz(ikinci_sayi);

toplam=topla(birinci_sayi,ikinci_sayi);
printf(“\n Karmasik sayilarin toplami : “);
yaz(toplam);

carpim=carp(birinci_sayi,ikinci_sayi);
printf(“\n Karmasik sayilarin carpimi : “);
yaz(carpim);

fark=cikar(birinci_sayi,ikinci_sayi);
printf(“\n Karmasik sayilarin farki : “);
yaz(fark);
return 0;
}
// end Main

// oku Fonksiyonu..
void oku(Karmasik *girilen_sayi)
{
printf(“\n gercel kismi giriniz:\n >> “);
scanf(“%d”,&girilen_sayi->gercel);
printf(” sanal kismi giriniz:\n >> “);
scanf(“%d”,&girilen_sayi->sanal);
}
// end oku Fonksiyonu..

// yaz Fonksiyonu..
void yaz(Karmasik okunan_sayi)
{
printf(“%d+%di\n”,okunan_sayi.gercel,okunan_sayi.sanal);
}
// end yaz Fonksiyonu..

// topla Fonksiyonu..
Karmasik topla(Karmasik birinci_sayi,Karmasik ikinci_sayi)
{
Karmasik toplam;

toplam.gercel=(birinci_sayi.gercel+ikinci_sayi.gercel);
toplam.sanal = (birinci_sayi.sanal+ikinci_sayi.sanal);

return toplam;
}
// end topla Fonksiyonu..

// carp Fonksiyonu..
Karmasik carp(Karmasik birinci_sayi,Karmasik ikinci_sayi)
{
Karmasik carpim;

carpim.gercel = (birinci_sayi.gercel*ikinci_sayi.gercel)-(birinci_sayi.sanal*ikinci_sayi.sanal);
carpim.sanal = (birinci_sayi.gercel*ikinci_sayi.sanal)+(birinci_sayi.sanal*ikinci_sayi.gercel);

return carpim;
}
// end carp Fonksiyonu..

// cikar Fonksiyonu..
Karmasik cikar(Karmasik birinci_sayi,Karmasik ikinci_sayi)
{
Karmasik fark;

fark.gercel=(birinci_sayi.gercel-ikinci_sayi.gercel);
fark.sanal = (birinci_sayi.sanal-ikinci_sayi.sanal);

return fark;
}
// end cikar Fonksiyonu..

 

Bu kod çalıştırıldığında,

İlk

 

ekran çıktısı yukarıdaki gibi olur. 2. sayı için sanal kısım da girlip “enter” a basıldığında ekran görüntüsü,

2.

 

yukarıdaki gibi olacaktır. Burada dikkat edilirse ilk ekran görüntüsündeki yazılar ikinci ekran görüntüsünde yoktur. Bunun nedeni programda bulunan system(“CLS”); komutudur. Bu komut kendinden önce yazılmış tüm yazıları siler. Bu kodun çalışması için windows.h kütüphanesi programımıza eklenmelidir.(#include <windows.h>)Bu kodmut ekran görüntüsünün karışık görünmesi engeller.

 


Sosyal Medyada Paylaş Facebook Twitter Google+
Etiketler: , , , , ,
Eklenme Tarihi: 10 Eylül 2015

Facebook Yorumları

Konu hakkında yorumunuzu yazın


Time limit is exhausted. Please reload the CAPTCHA.