Forum: Duyurular RSS
Yeni ders
Sayfa:  1  2  3  4  sonraki 
acehreli (Moderatör) #1
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ı
Konu adı: Yeni ders
Mantıksal İfadeler:

  http://ddili.org/ders/d/mantiksal_ifadeler.html

Ama hâlâ duyurmuyorum. Bundan sonra if deyimini anlatacağım; belki ondan sonra duyururum. Çünkü öyle deyimleri öğretmeden pek bir şey yapılamıyor. O yüzden mantıksal ifadeleri de ekrana "true" veya "false" yazdırarak hallettim. :D

Sanki o yüzden zor anlaşılacak gibi geliyor. Bakalım...

Ali
Bu mesaj acehreli tarafından değiştirildi; zaman: 2009-08-05, 10:41.
acehreli (Moderatör) #2
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ı
Tamsayılar ve Aritmetik İşlemler:

    http://ddili.org/ders/d/aritmetik_islemler.html

İşte o beni gerçekten korkuttu. :) Hem çok teknik, hem de içinde yanlış bilgi bile olabilir. ;)

Bu arada, yeni dersleri burada duyurmamdan rahatsız oluyor musunuz? Yoksa Ders RSS yetiyor mu? Herkes RSS kullanıyor mu? Kendim RSS'i ilk defa bu sitede kullandım! :D

Ali
Avatar
esatarslan52 (Moderatör) #3
Üye Haz 2009 tarihinden beri · 142 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
"Bit Adedi    | Saklanabilecek Değer Miktarı |    D Türleri" tablosunda örneğin 8 bit için 256 byte,ubyte kısmı bana hem byte'ın hemde ubyte'ın saklayabileceği veri miktarının 256 olduğu anlamını verdi (Taki ++ operatöründeki örneği görene kadar)

"Eğer iki ifadenin değeri o türde saklanabilecek en yüksek değerden fazlaysa, yine taşma oluşur ve değerlerin ikisinden de daha küçük bir sonuç elde edilir" Bu çok önemli bir nokta, mesela;
import std.stdio;
 
int main()
{
    uint s1= 3000000000;
    uint s2= 3000000000;
    ulong toplam;
    
    //Çıkacak sonucu ulong tipindeki değişkende saklamak istiyorum 
    //çünkü sonucu rahatlıkla taşıyabilecek bir tip.
    toplam = s1 +s2;
 
    writeln(toplam);
 
    return 0;
}
Yukarıdaki açıklamayı bilmeseydim bu programın neden yanlış sonuç verdiğini bulmam çok uzun sürerdi (belkide hiç bulamazdım  <_< ). Daha önce hiç bu kadar büyük sayılarla işlem yaptırmamıştım acaba C++ içinde aynı durum geçerli mi?

Ver bir tavsiye;
Bu tip önemli noktaları,hataya düşebileceğimiz kısımları örneğin Uyarı!!!, Dikkat!! gibi ifadeler kullanarak öğrencilerin dikkatini çekmek çok faydalı olurdu. Eminim ileriki derslerde tuzağa düşeceğimiz bir çok yer olacaktır. Bu sayede sizin tecrübelerinizden de faydalanmış oluruz.

Ben RSS kullanmıyorum. Daha öncede hiç kullanmadım. Derslerin burada duyurulması bence iyi oluyo.
Bu mesaj esatarslan52 tarafından değiştirildi; zaman: 2009-08-05, 16:17.
Mengu (Moderatör) #4
Kullanıcı başlığı: NONSERVIAM
Üye Tem 2009 tarihinden beri · 347 mesaj · Konum: Dersaadet
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Yanıtlanan mesaj #2
ustad dersleri cok iyi anlatiyorsunuz, ellerinize ve yureginize saglik.

okudugum kadariyla korkmanizi gerektirecek herhangi bir durum yok sonuc itibariyle jeolojik hesaplamalar yapmiyorsunuz. her programcinin mutlaka bilmesi gereken seylerden bahsediyorsunuz. nitekim mesela su basit python programi su sekilde olmasaydi, daha baska yollarla daha uzun bir hale gelirdi. fakat mod ile, ++ ile gayet rahat bir bicimde hallettik. d'yi ogrendikten sonra bunun bir de d versiyonunu yazmak lazim. :)
http://www.mengu.net - some kind of monster
acehreli (Moderatör) #5
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ı
Yanıtlanan mesaj #3
Çok teşekkürler! Tam böyle eleştirilere ihtiyacım var. :)

- Tabloya en küçük ve en büyük değerleri de koydum

- toplam = s1 +s2; ifadesinin uint türünde olduğunu da söylemem gerekirdi ama bu konuyu gizliyorum şimdilik. :/ Tür dönüşümlerini anlatırken, sonra...

- Evet: taşma ve kırpılma bütün "two's complement" sayı sistemlerinde vardır. En azından C'de ve C++'ta da...

- Yanlış kodların özellikle belirtilmesini burada bir arkadaşım da önerdi. Çünkü sayfaya sonradan bakan birisi yanlış kodu örnek olarak alıp kullanmamalı. Bir şey düşüneceğim...

Ali
acehreli (Moderatör) #6
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ı
Kesirli Sayılar:

  http://ddili.org/ders/d/kesirli_sayilar.html

Eleştiriler lütfen! :)

Ali
Avatar
esatarslan52 (Moderatör) #7
Üye Haz 2009 tarihinden beri · 142 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Bu ders gerçekten baya bir ayrıntılı olmuş :) .

En son tablodaki "!=" ifadesi için "Sırasızlık" kısmı "true" denmiş yani en az birisi "NAN". Ozaman "4,32!=5,65" ifadesinde neden "NAN" durumu olsun ki. Aslında sorulması gereken soru hangi durumlarda değişken "NAN" değerini alır? Bunlardan ilki, değişken tanımlanıp programın her hangi bir yerinde değer atamasının yapılmadığı durumlar. Başka var mı?

Action Scripte int tipindeki değişkene string tipinde değer atamaya çalıştığında "NAN" uyarısını veriyodu. D'de bunu denediğimde direk olarak tip uyuşmazlığı hatası verdi. Benim aklıma başka gelmiyo.

.sizeof'un açıklamasındaki "bayttaki bit sayısı olan 8" yerine "bir bayttaki bit sayısı olan 8" demek daha anlaşılır gibi.
erdem (Moderatör) #8
Üye Tem 2009 tarihinden beri · 981 mesaj · Konum: Eskişehir
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Ek olarak, 1.23e+4 gibi bir yazımdaki e+, "çarpı 10 üzeri" anlamına gelir.

Harika! Ben bunu 3-4 senede ancak öğrenebilmiştim. :-p
acehreli (Moderatör) #9
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ı
Teşekkür Sayfası:

   http://ddili.org/ders/d/tesekkur.html

Gerçekten çok teşekkürler! ;)

Ali
acehreli (Moderatör) #10
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ı
Kesirli Sayılar sayfası ile ilgili olarak:

Sondaki Tablo: O sondaki tablo çok karışık. Ben daha anlaşılır yapmaya çalıştım ama henüz becerememişim. :) "!=" için "Sırasızlık"ın altında "true" yazmasının anlamı, "eğer birisi nan ise != işleci true sonucunu verir" demek. Yani nan değerler != ile karşılaştırılabiliyorlar. Sütunun ismini "En Az Birisi nan ise" diye değiştirdim.

Invalid Exception sütununu da "nan ile Anlamlı" diye değiştirdim ve evet'leri hayır, hayır'ları da evet yaptım. Çünkü işin garibi, Invalid Exception anladığımız anlamda "throw ile atılan hata" bile değil... :)

Tablonun üstüne ve altına birer paragraf ekledim.

nan: Tutarlı olmak için bütün nan'ları başında noktayla .nan diye yazdım. .nan başlığı ekledim ve onu oluşturan örnekler verdim.

8 bit: Hem bu sayfada hem de Temel Türler sayfasında düzelttim...

    http://ddili.org/ders/d/kesirli_sayilar.html

Ali
acehreli (Moderatör) #11
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ı
Diziler:

    http://ddili.org/ders/d/diziler.html

Dilimler [slice] gibi ileri düzey işlemleri sonraya bıraktım, çünkü zaten o olanakların nasıl olacakları daha belli değil! :D

Ali
Avatar
esatarslan52 (Moderatör) #12
Üye Haz 2009 tarihinden beri · 142 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Tekrardan elinize sağlık :)

Bence ileri düzey işlemlerin daha sonraki derslere bırakılması daha iyi olmuş. Yoksa fazla karışık gelebilirdi yeni öğrenen birisine.

Tavisyeler
Tanımlama başlığı altında diziler için genel manada nasıl tanımlanacağı belirtilebilir.
Sözdizimi (Bu ifade bana hep saçma gelmiştir ama daha iyisi aklıma gelmiyo  <_< )
tip[diziUzunluğu] değişkenAdı

Konu anlatımındaki örnekler int tipi üzerine yoğunlaşmış. Aynı şekilde problemler kısmındaki sorularda sadece int ile yapılacak işlemler. Programlamaya yeni başlayan biri dizilerin sadece int-real sayı tipleri veya sadece sayısal veri tipleri ile kullanıldığı gibi yanlış bir anlam çıkartabilir. Bu yüzden problemler kısmındaki soruların bir tanesi string veya char tipi ile ilgili bir soruya dönüştürülmesi daha iyi olabilir.

Yine sorulardan bir tanesi, konuyu anlatırken belirttiğiniz gibi dizi uzunluğunda yapılan hatalarla ilgili olabilir. Mesela yanlış dizi uzunluğundan hata veren bir program verilip koddaki hatanın bulunup çalışır hale getirilmesi istenebilir.
acehreli (Moderatör) #13
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ı
Teşekkürler...

1) Problem çözümlerinden birisinde yaptığım bir hatayı düzelttim:

 // ÇOK AYIP HATA: ;)
if ((sayı % 2) == 1) {
    // tek
} else {
    // çift
}

2) Tanımlanma başlığının sonuna biraz daha açıklama koydum ve örnekler verdim.

3) string konusuna bu dersten sonra girmek üzereyim; onun için örneklerde daha kullanmadım. Bu kadar uzun süre bahsetmeden gelebildiğime şaşırıyorum doğrusu. :) Umarım çok sıkıcı olmamıştır.

4) Dizi dışına erişme problemine yer açmak için şimdiki problemlerin ikisini birleştirdim. Aklıma indeks hatasıyla ilgili küçük bir program gelmiyor... :( Fikir?

Ali
Mengu (Moderatör) #14
Kullanıcı başlığı: NONSERVIAM
Üye Tem 2009 tarihinden beri · 347 mesaj · Konum: Dersaadet
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
acehreli:
4) Dizi dışına erişme problemine yer açmak için şimdiki problemlerin ikisini birleştirdim. Aklıma indeks hatasıyla ilgili küçük bir program gelmiyor... :( Fikir?

Ali

ustad soyle basit bir sey olabilir:

import std.stdio;
 
void main()
{
    static string[] en_guzel_sehirler = ["istanbul", "kuala lumpur", "semerkand", 5:"johor"];
    // yukaridaki diziyi baz aldiginizda,    
    // bir sonraki satirin ciktisi ne olacaktir? 
    writeln(en_guzel_sehirler[6]);
}
http://www.mengu.net - some kind of monster
acehreli (Moderatör) #15
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ı
Soru güzel ama bir kaç nedenden ötürü onu bu aşamada kullanamayız:

- string'leri hemen bu dersten sonra anlatacağım, (string'ler char dizileri oldukları için önce dizileri anlatmak gerektiğini düşündüm)

Ama önemli değil; string yerine başka bir tür kullanabiliriz tabii...

- Daha önemlisi, string[] dizi = ... diye yazınca dizi bir slice oluyor. Bu konu çok karışık olduğu için ve zaten D'ciler tam da şu sıralarda bunları değiştirdikleri için yalnızca statik ve dinamik diziler kullandım.

(Not: Statik kelimesini bu kullanımda static anlamında değil, uzunluğu sabit anlamında kullanılıyorum; çünkü belgelerinde onlar da static kelimesini iki değişik anlamda kullanıyorlar!  :#: )

Ben dinamik dizileri anlatırken çok dikkatli olarak sağ taraflarına bir şey koymadım:

  int[10] statik_dizi_ilk_değersiz;
  int[10] statik_dizi_ilk_değerli = ...;
  int[]   dinamik_dizi;
  int[]   slice = ...;

İşte o sonuncusunda bence büyük yanlışlık yapmışlar! Nasıl olur da birisi dinamik dizi olur, öteki slice olur! Neyse ki, bunlar değişiyor...

Neyse... Bu yüzden o örneği bu aşamada kullanamam. :) Problemin şu kadar basit olmasını da istemiyorum:

   double[5] sayılar;
   write(sayılar[5]);

Çok kolay herhalde. Gerçekten karşılaşılabilecek bir hata bulabilsek... :)

Ali
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:
Sayfa:  1  2  3  4  sonraki 
Forum: Duyurular 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-21, 15:22:23 (UTC -08:00)