IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası
  sohbet

 Kayıt ol  Topluluk
Yeni Konu aç Cevapla
 
LinkBack Seçenekler Stil
Alt 22 Şubat 2012, 15:04   #1
Çevrimdışı
aSi
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
İki matris ile işlem yapmak(Operator Overloading ile)





Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.

İki matris ile C++’da işlemler yapacağız. Fakat bu sefer alışılmışın dışında operetörler kullanacağız.

Bu kodu daha rahat kavramamız için Operator Overloading ‘i anlatmak istiyorum. Peki nedir bu Operator Overloading?
Normalde bir işlev üstlenen operatörlerin anlamlarına başka anlamları eklemektir. Mesela “+” işlemi normalde iki sayıyı toplamaya yararken biz iki stringi birleştirmeyi + işlemi ile yapabiliriz.
Operator Overloading kendi yazdığımız class’a göre operatörü yeniden yazmamızı ve bu operatörlerle özel işlemler yapmamızı sağlar. Ancak tüm operatörler overload edilememektedir. Şimdi operatörleri sınıflandıralım ve hangilerinin overload edilebildiğini inceleyelim.

Sınıflandırma Overload Edilebilirlik
+, -, *, /, %, &, |, <<, >> Binary Operatörler Tümü overload edilebilir
+, -, !, ~, ++, –, true, false Unary Operatörler Tümü overload edilebilir
==, !=, <, >, <= , >= Relational (İlişkisel) Operatörler Çiftler halinde overload edilebilir.
&&, || Logical Operatörler Overload Edilemez.
() Conversation Operatörler Overload Edilemez.
+=, -=, *=, /=, %= Bileşik Atama Operatörleri Overload Edilebilir. Binary operatörlerdeki değişiklikler bu operatörlere yansır.
=, . , ?:, ->, new, is, as, sizeof Overload Edilemez.


Kod:   Kodu kopyalamak için üzerine çift tıklayın!
/* Coding! */ #include<iostream> #include <iomanip> using namespace std;//std uzayini kullanmak class matris{ public: int m[3][3]; matris()//Bu tür fonsiyonlara kurucu fonksiyon denir. //Program çalıştığı anda matrisin elemanlarına rastgele değer atar. { for(int a=0;a<3;a++) for(int b=0;b<3;b++) { m[a][b]=rand()%10; } } void yazdir()//Yazdirma fonksiyonu { for(int a=0;a<3;a++) { for(int b=0;b<3;b++) { cout<<setw(4)<< m[a][b]; } cout<<endl; } } matris operator+(matris gelen)//+ operatörüne Operator Overloading yapma { matris sonuc; for(int a=0;a<3;a++) { for(int b=0;b<3;b++) { sonuc.m[a][b]=m[a][b]+gelen.m[a][b]; } } return sonuc; } matris operator-(matris gelen)//- operatörüne Operator Overloading yapma { matris sonuc; for(int a=0;a<3;a++) { for(int b=0;b<3;b++) { sonuc.m[a][b]=m[a][b]-gelen.m[a][b]; } } return sonuc; } matris operator*(matris gelen)// * operatörüne Operator Overloading yapma { matris sonuc; int toplam; for(int a=0;a<3;a++) { for(int x=0;x<3;x++) { toplam=0; for(int b=0;b<3;b++) { toplam+=m[a][b]*gelen.m[b][x]; } sonuc.m[a][x]=toplam; } } return sonuc; } }; int menu(){ int secenek; cout<<endl<<setw(10)<<"MENU"<<endl; cout<<"1-Toplama Islemi"<<endl; cout<<"2-Cikarma Islemi"<<endl; cout<<"3-Carpma Islemi"<<endl; cout<<"4-Cikis"<<endl; cout<<"Lutfen yapmak istediginiz secenegi giriniz.."<<endl; cin>>secenek; return secenek; } int main() { matris m1,m2,sonuc; cout<<"Rasgele degerler atanmis 1. matris:"<<endl; m1.yazdir(); cout<<endl; cout<<"Rasgele degerler atanmis 2. matris:"<<endl; m2.yazdir(); while(1) { switch(menu()) { case 1:sonuc=m1+m2;cout<<"Toplama islemi yapilmistir."<<endl;sonuc.yazdir();break; case 2:sonuc=m1-m2;cout<<"Cikarma islemi yapilmistir."<<endl;sonuc.yazdir();break; case 3:sonuc=m1*m2;cout<<"Carpma islemi yapilmistir."<<endl;sonuc.yazdir();break; case 4:exit(1); } } return 0; }


__________________
Doğruları biliyorsan, yalanları dinlemek eğlencelidir.
 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları reklam ver Benimmekan Mobil Sohbet
Cevapla

Etiketler
iki, ile, işlem, matris, overloading, yapmakoperator, İki


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Kapalı
Pingbacks are Açık
Refbacks are Açık


Benzer Konular
Konu Konuyu Başlatan Forum Cevaplar Son Mesaj
Spama düşen kelimeler için işlem yapmak eLsukr mIRC Scripting Sorunları 5 11 Şubat 2011 10:13
WHO sonrası çıkan host bilgisine işlem yapmak MT EkoL mIRC Scripting Sorunları 13 07 Nisan 2009 14:54
Users ile işlem yapmak Set mIRC Scripting Sorunları 1 04 Nisan 2009 14:23
Özelime remote off yazıldığında işlem yapmak iLgim mIRC Scripting Sorunları 1 22 Eylül 2006 21:52