Matematik İşlemi

steve78

Doçent
Arkadaşlar merhaba,

x=1 ve y=1 olsun. x+=y+=x+=y buradaki kodun işleyişi nasıl oluyor açıklayabilir misiniz? Cevaplar x=4, y=3
 
x+=y işleminden sonra x=7 ve y=3 olur. (Başlangıç x=4, y=3)
y+=x işleminden sonra x=4 ve y=7 olur. (Başlangıç x=4, y=3)
x-=y işleminden sonra x=1 ve y=3 olur. (Başlangıç x=4, y=3)
y-=x işleminden sonra x=4 ve y=-1 olur. (Başlangıç x=4, y=3)

sadece soldaki değerlere atama yapılır, sağdaki değerler değişmez.(++ işlemi vs yoksa)
 

steve78

Doçent
x+=y işleminden sonra x=7 ve y=3 olur. (Başlangıç x=4, y=3)
y+=x işleminden sonra x=4 ve y=7 olur. (Başlangıç x=4, y=3)
x-=y işleminden sonra x=1 ve y=3 olur. (Başlangıç x=4, y=3)
y-=x işleminden sonra x=4 ve y=-1 olur. (Başlangıç x=4, y=3)

sadece soldaki değerlere atama yapılır, sağdaki değerler değişmez.(++ işlemi vs yoksa)
Biliyorum bu kuralı. Ancak bu şekilde x+=y+=x+=y verildiğinde karıştırdım, uygulayamadım. Editörde (başlangıçta x=1 ve y=1) yazdığımda programdan x=4 ve y=3 çıktısını alıyorum ama tam oalarak anlayamadım mantığını.
 
Bu kodu nereden aldıysan oradan uzaklaş.
Bu şekilde program yazılmaz.
Artistlik olsun diye yazılmış.
Programlarda okunabilirlik çok önemlidir.
Örneğin Microsoft'un C# kütüphanelerine baktığında rahatlıkla okuyabilirsin.(Algoritmayı anlamasan da işlemleri anlarsın en azından)
Ancak gösteriş yapmak isteyen işsizler böyle program yazar.
Her satırda ++ -- işlemleri ya da pointer işlemleri yoksa tek değişken ataması yapılır.
 

sdmh

Profesör
Buradaki kod kendine çok güvenen, operatörlerin efendisiyim diyen birisinin marifeti. Kod bu şekilde yazılmaz. İlla aynı satırda olması gerekiyorsa önceliğe göre parantez içine alınır. Bir derleyicide sonuç yukarıdaki gibi çıkar başkasında başka değerler çıkar başkasında ise hata verebilir. Birden fazla satır kullanmak acemilik değildir
 

steve78

Doçent
Bu kodu nereden aldıysan oradan uzaklaş.
Bu şekilde program yazılmaz.
Artistlik olsun diye yazılmış.
Programlarda okunabilirlik çok önemlidir.
Örneğin Microsoft'un C# kütüphanelerine baktığında rahatlıkla okuyabilirsin.(Algoritmayı anlamasan da işlemleri anlarsın en azından)
Ancak gösteriş yapmak isteyen işsizler böyle program yazar.
Her satırda ++ -- işlemleri ya da pointer işlemleri yoksa tek değişken ataması yapılır.

Buradaki kod kendine çok güvenen, operatörlerin efendisiyim diyen birisinin marifeti. Kod bu şekilde yazılmaz. İlla aynı satırda olması gerekiyorsa önceliğe göre parantez içine alınır. Bir derleyicide sonuç yukarıdaki gibi çıkar başkasında başka değerler çıkar başkasında ise hata verebilir. Birden fazla satır kullanmak acemilik değildir

Geçen senelerden çıkmış bir final sorusu bu. Anlıyorum ama yapabileceğim bir şey yok.
 
Kusura bakmayın ama bizim hocaların davarlığı.
Amaç bilgi ölçmek değil dingillik yapmak.
Eğitim sisteminden önce öğretmenleri düzeltmemiz lazım.

Böyle saçma bir kodun derlenmesine izin verecek esneklik ya C++ da ya da Python'da olur.
Bunun dışındaki dillerin derleyicilerinde syntax hatası verir.
Hatta bu dillerde de derleneceğinden şüpheliyim.
Senin hocada leş gibi g*t varmış, g*tünden sallamanın en güzel örneği çünkü.
Ama şimdi sırf bunun için Visual Studio yükleyip uğraşamam.

Cevap da zaten yanlış.
x 5 olmalı y de 3 olmalı.
x+=y+=x+=y
İşlemler sağdan başlar.
x+=y+=(x+=y)
x+=y+=2 // x'e 2 atandı
x+=3 // y'ye 3 atandı
Son durumda x 5 y 3

Gecenin 1'inde tepem atıyor.
Böyle hocaların vizyonuna sokayım.
 

steve78

Doçent
Kusura bakmayın ama bizim hocaların davarlığı.
Amaç bilgi ölçmek değil dingillik yapmak.
Eğitim sisteminden önce öğretmenleri düzeltmemiz lazım.

Böyle saçma bir kodun derlenmesine izin verecek esneklik ya C++ da ya da Python'da olur.
Bunun dışındaki dillerin derleyicilerinde syntax hatası verir.
Hatta bu dillerde de derleneceğinden şüpheliyim.
Senin hocada leş gibi g*t varmış, g*tünden sallamanın en güzel örneği çünkü.
Ama şimdi sırf bunun için Visual Studio yükleyip uğraşamam.

Cevap da zaten yanlış.
x 5 olmalı y de 3 olmalı.
x+=y+=x+=y
İşlemler sağdan başlar.
x+=y+=(x+=y)
x+=y+=2 // x'e 2 atandı
x+=3 // y'ye 3 atandı
Son durumda x 5 y 3

Gecenin 1'inde tepem atıyor.
Böyle hocaların vizyonuna sokayım.
Aynen matıken x'i bende 5 buluyorum ancak NetBeans'de çıktısını aldığımda x'i 4 veriyor.
 

steve78

Doçent
Kusura bakmayın ama bizim hocaların davarlığı.
Amaç bilgi ölçmek değil dingillik yapmak.
Eğitim sisteminden önce öğretmenleri düzeltmemiz lazım.

Böyle saçma bir kodun derlenmesine izin verecek esneklik ya C++ da ya da Python'da olur.
Bunun dışındaki dillerin derleyicilerinde syntax hatası verir.
Hatta bu dillerde de derleneceğinden şüpheliyim.
Senin hocada leş gibi g*t varmış, g*tünden sallamanın en güzel örneği çünkü.
Ama şimdi sırf bunun için Visual Studio yükleyip uğraşamam.

Cevap da zaten yanlış.
x 5 olmalı y de 3 olmalı.
x+=y+=x+=y
İşlemler sağdan başlar.
x+=y+=(x+=y)
x+=y+=2 // x'e 2 atandı
x+=3 // y'ye 3 atandı
Son durumda x 5 y 3

Gecenin 1'inde tepem atıyor.
Böyle hocaların vizyonuna sokayım.
Pekii x = 2**3; bu durumda x kaç olur? IDE hata veriyor ama buda geçen senelerden çıkmış bir soru. Çift yıldızın ne analama geldiğini bilmiyorum. Sorunun orjinalide bu x = 19 % 4 + 15 / 2 * 3**2;
 

steve78

Doçent

steve78

Doçent
Javanın yapımcısı Oracle kendi sitesinde bütün operatörleri listelemiş.
Böyle bir operatör yok.
Diyorum ya senin hoca sallıyor işkembeden.
Operators (The Java™ Tutorials > Learning the Java Language > Language Basics)

Stringlerde böyle bir işlem var. Klasörün içindeki tüm dosyaları eşleştirmek için. Senin işlemle alakası yok.
When to use ** (double star) in glob syntax within JAVA

Bir şey daha sormak istiyorum. iki koşul sağlaması gerektiğinde yada iki koşuldan herhangi biri sağlaması gerektiğinde bunu Java da nasıl yapabilirim?

Örn:

int a=2 b=3;

if( a=2 && b=3) yada if (a=2 || b=5)

{ yapılacaklar}

Önceki programlamalarda bu yukarıdaki gibi yapılıyordu. Java da IDE hata veriyor. Bu durumu Java da nasıl gösteriyoruz?
 
Üst