Çözüldü Aritmetik operatörler

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

herchell

Hectopat
Katılım
12 Ekim 2019
Mesajlar
182
Çözümler
1
Daha fazla  
Cinsiyet
Kadın
İnt a=2222 b=1111 olsun,
B=-a++ ne anlama geliyor?
Normal operatörleri yapıyorum ++b veya a-- gibi fakat - a++ ne anlama geliyor?
 
Son düzenleyen: Moderatör:
Çözüm
Hocam bakın İnt a=2222 b=1111 olsun,
B=-a++ sonucuna 0001 yazmış
Sonucu yanlis yazmis hoca efendi.
B nin degeriyse kastedilen eger.


Daha once de dedigim gibi, x=-y++ gibi bir kodu gercek hayatta goremezsin, bunun PR i gecmez hicbir ciddi projede.

Bunun yerine daha okunabilir ve bug'a yol acmayacak su alternatife yonlendirilirsin:
Kod:
y = -x;
x++; // ya da x += 1 vs

Increment ve decrement operatorleri ustteki arkadasin zirvaladigi gibi tum genel gecer programlama dilinde kabul gormus ya da gerekliligi tartisilamayacak seyler degil. Immutable integer tanimlayan dillerde ( python ) kullanamaz ya da ambiguity|bug avoid etmek icin kimi dillerde tercih edilmez ( bkz: Rust )
A++ veya a-- 1 azalt ya da 1 arttır demek yani diğer yazılışı şu B = a + 1 gibi sadece 1 azaltıp arttırabilirsin.

Bir kere bunlari gundelik hayatta uygulama gelistirirken kullanmazsin, yani "-x++" tarzi hareketlere gerek yok, okunabilirligi dusuren yanlis kullanimlar. Cunku bekleyecegin gibi once negatifini alip sonra increment etmeyecek, zira "++" operatoru arttirilmis degeri return etmez .
Yani:
Java:
        int x = 3;
        int y = x++;
        System.out.println(x);  // 4
        System.out.println(y);  // 3

Bu tarz nuanslar yeni baslayanlara ogrenmesi keyifli gibi gelse de milyonluk projelerde sacma sapan bug'lara yol acabileceginden gereksiz bir ogrenme materyali bana gore.

Sadece x = x + 1 yazmak yerine x++; yazabilecegin bilgisini bilmen kafi ki bana gore x++ da gereksiz bir kullanim sekli.
 
Bir kere bunlari gundelik hayatta uygulama gelistirirken kullanmazsin, yani "-x++" tarzi hareketlere gerek yok, okunabilirligi dusuren yanlis kullanimlar. Cunku bekleyecegin gibi once negatifini alip sonra increment etmeyecek, zira "++" operatoru arttirilmis degeri return etmez .
Yani:
Java:
        int x = 3;
        int y = x++;
        System.out.println(x);  // 4
        System.out.println(y);  // 3

Bu tarz nuanslar yeni baslayanlara ogrenmesi keyifli gibi gelse de milyonluk projelerde sacma sapan bug'lara yol acabileceginden gereksiz bir ogrenme materyali bana gore.

Sadece x = x + 1 yazmak yerine x++; yazabilecegin bilgisini bilmen kafi ki bana gore x++ da gereksiz bir kullanim sekli.
Örnek sınav sorusunda hoca bunu yazmış cevap olarak 0001 yazıyor dikkatimi çekti
 
Bu operatörlere programlama dillerinde increment ve decrement operatörleri denir. Türkçeye ön ek ++ ve son ek ++ operandları olarak çevrilirler. Operandın önünde veya sonrasında olmasına göre isimleri ve anlamları değişir.

++x : pre increment operator
x++: post increment operator
--x: pre decrement operator
x--: post decrement operator

Burada bilmen gereken kavrami operatörlerin ürettiği değer(evaluating value) ve yan etki(side effect) kavramı. Pre veya post incerement operatöründe operatörün değeri mevcut değerinin bir fazlası olur. Pre veya post decrement operatöründe ise operatörün değeri mevcut değerinin bir eksiği olur. Ancak pre ve post olarak kullanıldıklarında ifadenin ürettiği değer farklı olur. Örnekle açıklamak daha kolay, herhangi bir programlama dilinden bağımsız yazıyorum zaten her programlama dilinde aynı şekilde kullanılırlar;

x = 10;
y = ++x; // x'in değeri 11, y'nin de değeri 11

x = 10;
y = x++; //x'in değeri 11, y'nin değeri ise 10

Gündelik hayatında kullanır mısın bilmem ama milyonluk projelerde çok sık kullanılır. Açık kaynak kodlu büyük projelerin kaynak kodlarını incelemeni tavsiye ederim. Bunlar tüm programlama dillerinde olan genel geçer, kabul görmüş ve çok çok temel konvensiyonlar. Gerekliliği, gereksizliği tartışılacak konular değil. Tabi ki senin seçimine kalmış, programlamada bir şeyi yapmanan onlarca yolu var. Ama kuralları detaylı bilmende fayda var.
 
Ya sınav sorusunu ya da cevabı yanlış görmüşsünüz. O işlemin cevabının 0001 çıkması mümkün değil. Sizin işleminiz sonucu B'nin değeri -2222. Zaten herhangi bir ide'de, derleyicide deneseniz cevabın 0001 olmadığı görülür.
 
Hocam bakın İnt a=2222 b=1111 olsun,
B=-a++ sonucuna 0001 yazmış
Sonucu yanlis yazmis hoca efendi.
B nin degeriyse kastedilen eger.


Daha once de dedigim gibi, x=-y++ gibi bir kodu gercek hayatta goremezsin, bunun PR i gecmez hicbir ciddi projede.

Bunun yerine daha okunabilir ve bug'a yol acmayacak su alternatife yonlendirilirsin:
Kod:
y = -x;
x++; // ya da x += 1 vs

Increment ve decrement operatorleri ustteki arkadasin zirvaladigi gibi tum genel gecer programlama dilinde kabul gormus ya da gerekliligi tartisilamayacak seyler degil. Immutable integer tanimlayan dillerde ( python ) kullanamaz ya da ambiguity|bug avoid etmek icin kimi dillerde tercih edilmez ( bkz: Rust )
 
Son düzenleme:
Çözüm

Yeni konular

Geri
Yukarı