Thread overview
12 - Tamsayılar - Atamalı Aritmetik İşleçleri
Feb 17, 2022
Ali Çehreli
February 17, 2022
   Herkese tekrar iyi günler dilerim. Az evvel kitaptan sayfa: 36 'da (pdf ler hep kitabın 20 sayfa ilerisinde olduğu için tahminim pdf 'de sayfa:56 'dadır) aşağıdaki komutlarda da sanırım güncelleme gelmiş:

import std.stdio;
void main( ) {
	          int sayı = 10;
	
	          sayı % 7; writeln("sayı % 7;  ",sayı);
	          sayı ^^ 2; writeln("sayı ^^ 2;  ",sayı);
	
	          writeln(sayı);
	}

/* Çıktısı ->
dene.d(5): Error: sayı % 7 has no effect
dene.d(6): Warning: calling std.math.exponential.pow!(int, int).pow without side effects discards return value of type int; prepend a cast(void) if intentional
Derleme hatalı.*/

February 17, 2022

On Thursday, 17 February 2022 at 18:07:01 UTC, İsmail Emre ARIKAN wrote:

>
   Herkese tekrar iyi günler dilerim. Az evvel kitaptan sayfa: 36 'da (pdf ler hep kitabın 20 sayfa ilerisinde olduğu için tahminim pdf 'de sayfa:56 'dadır) aşağıdaki komutlarda da sanırım güncelleme gelmiş:

import std.stdio;
void main( ) {
	          int sayı = 10;
	
	          sayı % 7; writeln("sayı % 7;  ",sayı);
	          sayı ^^ 2; writeln("sayı ^^ 2;  ",sayı);
	
	          writeln(sayı);
	}
 Hatamı şimdi düzelttiğimi düşünüyorum ama yine aynı hatayı verdi. Galiba güncelleme gelmiş. :)

import std.stdio;
void main( ) {
	          int sayı = 10;
	
	          sayı % 7;
	          writeln("sayı % 7;  ",sayı % 7);
	
	          sayı ^^ 2;
	          writeln("sayı ^^ 2;  ",sayı ^^ 2);
	
	          writeln(sayı);
	}
February 17, 2022

Afedersiniz, hatamın farkına az evvel vardım. Bir sorun yok, gayet güzel çalışıyor. Son zamanlarda dile güncellemelerin gelmiş olması beni derleyiciye odaklandırdı; kendimi o kadar sorgulamadım :( . Bir dahakinde iyice inceleyip buraya öyle göndereceğim.

import std.stdio;
void main( ) {
int sayı = 10;

          writeln("sayı % 7;  ",sayı % 7);


          writeln("sayı ^^ 2;  ",sayı ^^ 2);

          writeln(sayı);
}

/* Çıktısı ->
sayı % 7; 3
sayı ^^ 2; 100
10
*/

February 17, 2022
On 2/17/22 10:07, İsmail Emre ARIKAN wrote:
> kitaptan sayfa: 36

Sayfa numarası bana pek bir şey ifade etmiyor. Gerektiğinde programı bile pdf'te arayıp bulabiliyorum. :)

>                    sayı % 7;

İşlemlerin değer ürettiklerini, yan etkileri olduğunu, veya bunların ikisini içerdiklerini konuşmuştuk. Derleyicinin verdiği "has no effect", "hiç etkisi yok" anlamına geliyor. Aslında bir değer üretiyorsun ama o değeri kimse kullanmıyor. Bu da büyük olasılıkla bir hata olduğuna göre derleyicinin uyanıklığına teşekkür ediyoruz. :)

> writeln("sayı % 7;  ",sayı);

Oradan anlaşıldığına göre sen sayı'nın değerinin değişeceğini beklemişsin. O, %= işlecidir:

  sayı %= 7;

İşte şimdi o işlemin bir yan etkisi var...

Sonradan gösterdiğin kodda ise şu var:

  writeln("sayı % 7;  ",sayı % 7);

O durumda sayı'da bir değişiklik olmuyor, *üretilen* değer writeln tarafından kullanılıyor. Derleyici mutlu çünkü değer kullanıldı.

Ali

February 18, 2022
On Thursday, 17 February 2022 at 23:17:14 UTC, Ali Çehreli wrote:
> On 2/17/22 10:07, İsmail Emre ARIKAN wrote:
> > kitaptan sayfa: 36
>
> Sayfa numarası bana pek bir şey ifade etmiyor. Gerektiğinde programı bile pdf'te arayıp bulabiliyorum. :)
>
> >                    sayı % 7;
>
> İşlemlerin değer ürettiklerini, yan etkileri olduğunu, veya bunların ikisini içerdiklerini konuşmuştuk. Derleyicinin verdiği "has no effect", "hiç etkisi yok" anlamına geliyor. Aslında bir değer üretiyorsun ama o değeri kimse kullanmıyor. Bu da büyük olasılıkla bir hata olduğuna göre derleyicinin uyanıklığına teşekkür ediyoruz. :)
>
> > writeln("sayı % 7;  ",sayı);
>
> Oradan anlaşıldığına göre sen sayı'nın değerinin değişeceğini beklemişsin. O, %= işlecidir:
>
>   sayı %= 7;
>
> İşte şimdi o işlemin bir yan etkisi var...
>
> Sonradan gösterdiğin kodda ise şu var:
>
>   writeln("sayı % 7;  ",sayı % 7);
>
> O durumda sayı'da bir değişiklik olmuyor, *üretilen* değer writeln tarafından kullanılıyor. Derleyici mutlu çünkü değer kullanıldı.
>
> Ali

 Ali hocam sağolun. Aslında son durumda dediğiniz gibi yapılan işlemleri değişkenlere atayıp, o değişkenleri de ekranda göstertmeye çalışmalıydım. Bazen aynı işi defalarca incelesem de sonrasında hatalarımı düzelttiğimi sanıp işimi tamamladığımı sanıyorum, ama aslında hatalarımın olduğu başka biri tarafından bana  söylenince "niye böyle (hata dikkatsizliğimden kaynaklanıyorsa) hatalar yapmaya devam etmişim? " Diyorum.
 Bugün hiç D- 'ye çalışmadım. O yüzden henüz aklıma takılan bir mesele olmadı. Ama dediğiniz gibi D- geliştirilen bir programlama dili ve kitabınızı bitirmem için okumam gereken daha çok sayfam var. Bu sebeple çıktım hatalı olursa önce araştırmayı eğer çözümünü anlayamadıysam buraya sormayı planlıyorum.