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

Etiketlenen Kullanıcılar

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ı eglen sohbet reklamver
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
Değişken atarken matematiksel işlem yapmak. Mylife mIRC Scripting Dersleri 0 23 Temmuz 2019 21:27
!del komutu ile birden fazla işlem yapmak illusi0n mIRC Scripting Sorunları 5 05 Eylül 2012 10:42
Matris içinde matris bulma aSi C ve C++ 0 17 Mart 2012 00:09
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