Mesajlarını aradığınız kullanıcı: li-han (8)

konu: Haftanın Sorusu 2  ; forum:: D Programlama Dili
li-han #1
Üye Ağu 2009 tarihinden beri · 8 mesaj · Konum: Denizli
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
float[][3] dizi = new float[][3]; bunu bilmiyordum öğrendiğim iyi oldu.

şu şekilde kullanımda bi hata yok sanırım. yada doğru bi kullanımmı?
    float[][3] dizi = new float[][3];
    
    for (int i = 0; i < 3; ++i)
    {
        dizi[i].length = 3;
    }
    
    for (int i = 0; i < 3; ++i)
    {
        delete dizi[i];
    }
konu: Haftanın Sorusu 2  ; forum:: D Programlama Dili
li-han #2
Üye Ağu 2009 tarihinden beri · 8 mesaj · Konum: Denizli
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Yanıtlanan mesaj ID 238
güzel soru olmuş. gelen cevaplardan çok şey öğreneceğim kesin. ben ilk iki soruyu çözmeye çalıştım. onlarıda tam çözemedim. örneğin float tipini 2 duyarlıklı gösteremedim. ayrıca (┐=191,└=192,│=179,┘=217,┌=218) karakterlerini ekrana basamadım.
şöylede bi kod yazdım beginner modda  :-)
import std.stdio;
import std.c.stdlib;
 
void main()
{
    Matris matrisim = new Matris(3,3);
    matrisim.MatrisiGöster();
    delete matrisim;
}
 
class Matris
{
    ubyte satır;
    ubyte sütun;
    
    float*[] matris;
    
    this(ubyte _satır, ubyte _sütun)
    {
        satır = _satır;
        sütun = _sütun;
        
        MatrisiOluştur();
        MatrisiDoldur();
    }
    
    void MatrisiOluştur()
    {
        matris = new float*[satır];
        
        for (int i = 0; i < sütun; ++i)
        {
            matris[i] = cast(float*)malloc(sütun);
        }
    }
    
    void MatrisiDoldur()
    {
        float değer = 1.0;
        for (int i = 0; i < satır; ++i)
        {
            for (int j = 0; j < sütun; ++j)
            {
                matris[i][j] = değer;
                değer++;
            }   
        } 
    }
    
    void MatrisiGöster()
    {
        for (int i = 0; i < satır; ++i)
        {
            for (int j = 0; j < sütun; ++j)
            {        
                write(matris[i][j], " ");
            }
            writeln();
        }
    }
    
    ~this()
    {
        delete matris;
    }
}

çıkıtı:
1 2 3
4 5 6
7 8 9
konu: win32 api çağırımı  ; forum:: D Programlama Dili
li-han #3
Üye Ağu 2009 tarihinden beri · 8 mesaj · Konum: Denizli
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Yanıtlanan mesaj ID 230
 :-)  çözdüm. GetComputerName yerine GetComputerNameA kullanınca çalıştı.

import std.c.windows.windows;
import std.stdio;
import std.c.stdlib;
import std.c.string; 
 
extern(Windows): bool GetComputerNameA(LPTSTR lpBuffer, LPDWORD lpnSize);
    
void main()
{
    uint Genişlik = 255;
    
    char* BilgisayarAdı = cast(char*)malloc(Genişlik);
    
    
    if (GetComputerNameA(BilgisayarAdı, &Genişlik))
    {
        writeln(BilgisayarAdı[0 .. strlen(BilgisayarAdı)]);
    }
    
    free(BilgisayarAdı);
}
konu: win32 api çağırımı  ; forum:: D Programlama Dili
li-han #4
Üye Ağu 2009 tarihinden beri · 8 mesaj · Konum: Denizli
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Konu adı: win32 api çağırımı
win32 api lerini kullanmaya çalışıyorum şu kodu yazdım:

import std.c.windows.windows;
import std.stdio;
import std.c.stdlib; 
 
extern(Windows): bool GetComputerName(LPTSTR lpBuffer, LPDWORD lpnSize);
    
void main()
{
    uint Genişlik = 255;
    
    char* BilgisayarAdı = cast(char*)malloc(Genişlik);
        
    if (GetComputerName(BilgisayarAdı, &Genişlik))
    {
        writeln(BilgisayarAdı);
    }
    
    free(BilgisayarAdı);
}

aldığım hata:

OPTLINK (R) for Win32  Release 8.00.1
Copyright (C) Digital Mars 1989-2004  All rights reserved.
deneme.obj(deneme) 
 Error 42: Symbol Undefined _GetComputerName@8
--- errorlevel 1

http://www.digitalmars.com/d/archives/digitalmars/D/15080.… bu başlıkta benim aldığım hatayı alan arkadaşa
"dmd sysmets1.d gdi32.lib" şeklinde derlemesi tavsiye edilmiş. ben derlemeye Kernel32.lib dahil ettim ancak gene aynı hatayı aldım. nerde hata yapıyorum acaba?
konu: isaretciler uzerine..  ; forum:: D Programlama Dili
li-han #5
Üye Ağu 2009 tarihinden beri · 8 mesaj · Konum: Denizli
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Yanıtlanan mesaj ID 210
basit bi konuyu fazlaca uzatma niyetinde değilim ama senin mesajını tekrar okuyunca benim ilk mesajımı yanlış algıladığın kanısına vardım. ayrıca kavram kargaşasına mahal vermemek ve olayın net bi şekilde anlaşılabilmesini sağlamak amacıyla bu mesajı da yazayım dedim.

ilk mesajımda out parametrelerin değeri fonksiyon içinde kullanılamıyor. yazdım. evet taşıdığı değer fonksiyon içinde kullanılamıyor. çünkü sıfırlanıyor yani ilklendirme olayı.  outDeğer bir parametre değişkenidir ve pekçok programlama dilinde parametre değişkenleri, üyesi oldukları fonksiyon içinde yeni değer alabilir. senin verdiğin
void SonuçYaz(out int outDeğer, ref int refDeğer)
{
    outDeğer = 6;
    writefln("2. durum = outdeğer: %d, refdeğer:  %d", outDeğer, refDeğer);
    refDeğer = 10;
}
örneğinde olduğu gibi. benim mesajımdan bu değişkenin (outDeğer) kendisini kullanamayacağımız anlaşılmsın. dışardan getirdiği değeri kullanamayız diyorum.
çok mu uzattım bilmiyorum  :-D hatam varsa lütfen düzeltin.
konu: isaretciler uzerine..  ; forum:: D Programlama Dili
li-han #6
Üye Ağu 2009 tarihinden beri · 8 mesaj · Konum: Denizli
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Yanıtlanan mesaj ID 209
hım sanırım yanlış anlaşıldım kullanılamıyor derken. hiç bir şekilde kullanılamadığını kastetmemiştim. out parametre fonksiyon dışında aldığı değeri fonksiyon içinde kaybediyor desem daha doğru olurdu sanırım. dıştan içe bir değer aktarma özelliği yok adı üstünde out, içerden dışarı değer gönderebiliyor.
konu: isaretciler uzerine..  ; forum:: D Programlama Dili
li-han #7
Üye Ağu 2009 tarihinden beri · 8 mesaj · Konum: Denizli
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Yanıtlanan mesaj ID 207
out, ref konusunda şöyle bi test yaptım:

import std.stdio;
 
void main()
{
    int outDeğer=2;
    int refDeğer=7;
    
    writefln("1. durum = outdeğer: %d, refdeğer:  %d", outDeğer, refDeğer);
    
    SonuçYaz(outDeğer, refDeğer);
    
    writefln("3. durum = outdeğer: %d, refdeğer:  %d", outDeğer, refDeğer);
}
 
void SonuçYaz(out int outDeğer, ref int refDeğer)
{
    writefln("2. durum = outdeğer: %d, refdeğer:  %d", outDeğer, refDeğer);
    outDeğer = 6;
    refDeğer = 10;
}
çıktı:

1. durum = outdeğer: 2, refdeğer:  7
2. durum = outdeğer: 0, refdeğer:  7
3. durum = outdeğer: 6, refdeğer:  10

Ali hocamın açıkladığı gibi ref parametrelerin değeri fonksiyon içinde kullanılabiliyorken out parametrelerin değeri fonksiyon içinde kullanılamıyor. out parametreler örnekte görüldüğü gibi 0 değeri veriyo. ama fonksiyon içinde verilen değer fonsiyon dışında kullanılabiliyor.
konu: Programcılık bir zanaattır  ; forum:: Diğer Konular
li-han #8
Üye Ağu 2009 tarihinden beri · 8 mesaj · Konum: Denizli
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
herkese selamlar. D dili ile ilgili Türkçe bir site görünce şaşırdım. diğer
sitelerden tandığım üstadları da burada görmek sevindirici. güzel bi ortam olmuş.
programcılıkta 5. yılını doldurmuş biri olarak sanat-zanaat konusunda bir iki şey
yazayım dedim. ben programlamanın bir sanat olduğunu düşünüyorum.
programcının yeteneği, programlama dilinin yeteneği ve programı satın alacak müşterinin
istekleri arasında denge kurma sanatı. bu denge iyi kurulurda ortaya çıkan ürün başarılıysa
herkes mutludur. programcı mutlu, programlama dili mutlu, müşteri mutlu.
yani sanat = mutluluk.
Özel Karakterler:
Özel sorgulamalar

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-18, 22:24:07 (UTC -08:00)