Temp Variable Kullanmadan Swap!

MetaLMAD

New member
Katılım
30 Ara 2005
Mesajlar
120
Reaction score
0
Puanları
0
Yaş
39
Konum
Tr/ist
Swap 2 variable ın degerlerinin degismesidir.Bunu uygulamak normalde bir Temp acıp (Backup) variable lardan birinin degerini Temp in icine atarız.

int Temp,x,y;
x=5; y=7;
Temp = x; x = y; y = Temp; // boylece x degerini kaybetmemiş oluruz.

y 5 oldu , x 7.

Kadir Has da Final sorusu olarak cıkmış, Temp-Variable kullanmadan (sadece Long/Double/integerlar icin) Swap kodu we cogu kişi cakılmış :) Bilgisi birikimi iyi olan arkadaşlarıma abilerime de sordum onlar da bi dona kaldı. Enteresan ; sizinde ilginizi cekebilecegini düşündüm arkadaşlar. Buyrun:

Kod:
int x,y;
x = 5;
y = 7;

x = y - x;
y = y - x;
x = y + x;

Matematiksel olarak düşünecek olursak:

x = y - x // x i aşagıda yerine yazalım

y = y - x = y - (y - x) = y - y + x = x // y = x oldu , x we y yi yerine yazalım

x = y + x = x + (y - x) = x + y - x = y

sonuc: x = y , y = x. ;)

Boylece kodher koşulda işlevli olacaktır.
(aynı kod çarpma we bolme ile de yazılabilirdi fakat o durumda 0 a bolme durumu olabilecegi icin (payda sıfır,hata werecektir) if structure ile koşul eklememiz gerekirdi..)

Kesinlike kullanışlı degil :) fakat farklı bir yaklaşım. begeneceginizi umuyorum ;)
 
bunun için ikisi arasındaki büyüklüğe de bakmak gerekmez mi?
if(x>y)
.
.
.
else
.
.
.

gibi

bu soruyu değerleri verip mi sormuşlar yoksa mantıksal mı?
 
paranoiac' Alıntı:
bunun için ikisi arasındaki büyüklüğe de bakmak gerekmez mi?
if(x>y)
.
.
.
else
.
.
.

gibi

bu soruyu değerleri verip mi sormuşlar yoksa mantıksal mı?

Herhangi bir deger werilmemiş arkadaşım.x we y nin integer olarak tanıtılıp degerlerinin kullanıcı tarafından girilmesi istenmiş. olimpiyat sorusu gibi birşey olmuş bu kodlama bilgisi yetmiyor..
[kodu uzatmamak icin x=5 y=7 werdim kafamdan ;) ]

Bu durum icin herhangi bir koşul eklemek gerekmiyor, sanırım sen negative sayıları fln goz onune alarak boyle düşündün, Ama gerek yok , her koşuldu dogru oluyor. Denemeni tavsiye derim enteresan gercekten.
 
evet güzelmiş... gerçekten de sadece programlama bilgisi yetmior :cool:
uf benim de final war bakalım bana ne sorucaklar :(
 
Umarım boyle olimpiyat ayagı bir$ey sorulmaz size de , Hayırlısı bakalım ;) Ba$arıLar.
 
evet güzel ama sağlam değil yine de değişik, matematiğe dayanıyor tşk
 
Begendigine sevindim arkadaşım , rica ederim , sende saoLasın.

Saglam degil derken sanırım kullanışlı degil demek istedin. katılıyorum , kesinlikle prof. yazılımlarda kullanalacak saglam bir kod degil :D fakat enteresan , bilmekte zarar yok ;)
 
değişik kombinasyonlarla güzel formüller bulunabilir aslında swap için matematikte çareler tükenmez :) güzel paylaşım tşkler
 
eMeĞin iÇiN SaĞo£ Karde$h.
 
Sorting Kodlarında kullanabiliriz. bubble sort icin yazmışdıydım ama ugraşamicam heel hic uyumadım :D bikac saatten yatıp p.tesi okula direk insallah :D

tekrar iyi seneler
 
function

Kod:
void swap(int &x,int &y)
{
  x = y - x;
  y = y - x;
  x = y + x;
}

swap(a,b) diye fonksion u cagırırız. sonra a yı b yi printleriz.

Koydum ar$iv e buLunduruyorum fonksyon olarak , neme Lazım :D
 
Abicim buradaki herkes programcıyım diye geçiniyooo bidefa o şekilde hata oluşuyor. örnek değişkenler integer ise iki sayı toplamı yada farkı +-32767 'nin üzerinde ise hata oluşuyorrr. Ben size en doğrusunu veriyim. Belki programcıyım diye geçinenlerde utanır !....

Kod:
int a,b;
a=50; b=100;

a = a Xor b;
b = a Xor b;
a = a Xor b;

Belki teşekkür edende çıkar!....

Bişey diyecek olan olursa mailin : [email protected]
 
Geri
Üst