Forum: Ders Arası RSS
if ile ilgili anlamdığım birşey
hkntrt #1
Üye Nis 2012 tarihinden beri · 18 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Konu adı: if ile ilgili anlamdığım birşey
  Merhaba arkadaşlar iki gündür düzenli ve not alarak " D Dilini" çalışıyorum ve gerçekten de öğrenmek istiyorum ama yapamadığım birşy var elbette sizin için çok basit bir cevabı olacak :)
  Şimdi if ile birşey yazarken if sadece bool değeri true olduğunda istenilen işlemleri işletiyor ya mesela şöyle yazıyorum:

import std.stdio;
 
void main()
{
    write("Bir sayı girin.");
    int x;
    readf(" %s" , "&x");
    
 
    if (x <= 6)  {
        writeln("Girdiğiniz sayı 6'ya eşit veya daha küçük.");
    }
}

Şimdi burada kullanıcıdan bir sayı girmesini istiyorum x'in değeri bu sayı ile aynı olsun diyorum  ve if (x <= 6) ifadsinin değerinin true olup aşağısındaki çıktıyı ekrana basmasını istiyorum ama olmuyor şu hatayı alıyorum.

/usr/include/d/std/format.d(532): Error: using * on an array is deprecated; use *(_param_2).ptr instead
/usr/include/d/std/format.d(543): Error: using * on an array is deprecated; use *(_param_2).ptr instead
/usr/include/d/std/format.d(543): Error: *cast(immutable(char)*)_param_2 is not mutable
/usr/include/d/std/stdio.d(865): Error: template instance std.format.formattedRead!(LockingTextReader,char,string) error instantiating
/usr/include/d/std/stdio.d(1758):        instantiated from here: readf!(string)
elseif.d(7):        instantiated from here: readf!(string)
/usr/include/d/std/stdio.d(1758): Error: template instance std.stdio.File.readf!(string) error instantiating
elseif.d(7):        instantiated from here: readf!(string)
elseif.d(7): Error: template instance std.stdio.readf!(string) error instantiating

Tamam daha yeniyim ama bana göre herşeyi doğru yapmışım gibi geliyor ?
erdem (Moderatör) #2
Üye Tem 2009 tarihinden beri · 978 mesaj · Konum: Eskişehir
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
    readf(" %s" , &x);

Burada fazladan x'in etrafına " işareti koymuşsun. O tırnak işaretlerini kaldırınca çalışıyor.
hkntrt #3
Üye Nis 2012 tarihinden beri · 18 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Teşekkür ederim @erdem nasıl yapmışım onu hala çözemedim galiba hatanın farklı bir yerde olduğunu düşünerek sürekli farklı bir yer ile ilgilenmişim :/
acehreli (Moderatör) #4
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Hoşgeldin hkntrt! :)

Dert etme. Bunlar hep yaptığımız dikkatsizlikler.

Ali
hkntrt #5
Üye Nis 2012 tarihinden beri · 18 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Teşekkür ederim @acehreli :) Sonunda problemi tamamladım.

import std.stdio;
 
void main()
{
    write("Attığınız zarın  değerini giriniz:");
    int x;
    readf(" %s" , &x);
    
 
    if (x > 6)  {
        writeln("HATA ! Geçersiz değer : " , x);
    }
    
    if (x <= 3) {
        writeln("Sen kazandın!");
    } 
    
    if (4 >= x || x <= 6) {
        writeln("Ben kazandım!");
    }
}
Bu mesaj hkntrt tarafından değiştirildi; zaman: 2012-04-21, 09:25.
zafer #6
Üye Tem 2009 tarihinden beri · 700 mesaj · Konum: Ankara
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Öncelikle hoşgeldin hkntrt.

Belki else if olanağını kullanarak çözümü daha güzel bir hale getirebilirsin.
https://github.com/zafer06 - depo
hkntrt #7
Üye Nis 2012 tarihinden beri · 18 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
hoşbuldum @zafer , şimdilik kod çalışsın yeter mantığındayım ama biraz düzenledim sen öyle deyince :)

import std.stdio;
 
void main()
{
    write("Attığınız zarın  değerini giriniz:");
    int x;
    readf(" %s" , &x);
    
 
    if (x > 6)  {
        writeln("HATA ! Geçersiz değer : " , x);
    }
    
    else if (x <= 3) {
        writeln("Sen kazandın!");
    } else {
        writeln("ben kazandım");
    }
}
Avatar
Salih Dinçer #8
Üye Ock 2012 tarihinden beri · 1912 mesaj · Konum: İstanbul
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Leziz bir yemek tadında kodlar gelişiyor, ellerine sağlık...:)

Bir de buna şunun gibi rasgele bir z değişkeni eklersen, program her çalıştırıldığında belirsiz bir değere kurulacak. Böylece bu tahmin oyunu rasgelelik sınırları içinde defalarca çalıştırabiliriz.
import std.random;     // sınıfı da eklenmeli...
 
int z = uniform(1, 7); // zarı havaya at ve z'yi 1-6 arasında bir sayıya eşitle 
Başarılar...
Bilgi paylaştıkça bir bakmışız; kar topu olmuş ve çığ gibi üzerimize geliyor...:)
Bu mesaj Salih Dinçer tarafından değiştirildi; zaman: 2012-04-21, 10:42.
hkntrt #9
Üye Nis 2012 tarihinden beri · 18 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Hmm bunu merak etmiştim rastgele nasıl yapılabilir diye iyi oldu yazdığın , teşekkürler :)
Doğrulama Kodu: VeriCode Lütfen resimde gördüğünüz doğrulama kodunu girin:
İfadeler: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Özel Karakterler:
Forum: Ders Arası RSS
Bağlı değilsiniz. · Şifremi unuttum · ÜYELİK
This board is powered by the Unclassified NewsBoard software, 20100516-dev, © 2003-10 by Yves Goergen
Şu an: 2017-11-19, 04:27:25 (UTC -08:00)