Şimdi Ara

C/C++/C# Sorularınız Buraya. . .(GÜNCEL) (135. sayfa)

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
4.172
Cevap
118
Favori
170.054
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
3 oy
Öne Çıkar
Sayfa: önceki 133134135136137
Sayfaya Git
Git
sonraki
Giriş
Mesaj
  • quote:

    Orijinalden alıntı: LittleBigGame

    hocam galiba 1byte in 8 bit e esit olmasindan dolayi benimde aklima cok takiliyor bu goruyorum ornek uygulamalarda genellik le 8.

    http://answers.yahoo.com/question/index?qid=1006050807364

    Yok hocam onunla bir alakası olduğunu sanmıyorum. Character vector içinde tutuyorum ben binary kodu. 1 char = 1 byte , 8 tane o "/00" karakteri olduğundan 8 byte ekstra geliyor.
  • #include<stdio.h>
    int main( void )
    {
    int i = 0;
    for( i; i < 12; i++ ) {
    if( ( i++ + 1 ) == 5 )
    printf( "%d\n",i );
    else
    if( i % 2 == 0 ) break;
    else if( i % 3 == 0)
    continue;
    else
    printf("%d\n", i );
    }
    return 0;
    }


    Burada döngü neden ekrana 1-5-7-11 basıyor anlayamadım,izah edebilir misiniz?
  • C++ için en azından


    int* ptr;
    int * ptr;
    int *ptr;

    bunlardan hangisi doğrudur? yani hiç biri derleme de hata vermiyor fakat yazım kuralları ve okunabilirlik açısından hangisi daha çok kullanılır?
  • quote:

    Orijinalden alıntı: GhilleintheMist

    C++ için en azından


    int* ptr;
    int * ptr;
    int *ptr;

    bunlardan hangisi doğrudur? yani hiç biri derleme de hata vermiyor fakat yazım kuralları ve okunabilirlik açısından hangisi daha çok kullanılır?

    Üçüde doğru. Ben int *ptr; olanı kullanıyorum.
  • quote:

    Orijinalden alıntı: GhilleintheMist

    C++ için en azından


    int* ptr;
    int * ptr;
    int *ptr;

    bunlardan hangisi doğrudur? yani hiç biri derleme de hata vermiyor fakat yazım kuralları ve okunabilirlik açısından hangisi daha çok kullanılır?

    Üçü de doğru.

    int* p1,p2; -> ikisi de pointer
    int *p1,p2; -> sadece p1 pointer
  • quote:

    Orijinalden alıntı: Thør
    int* p1,p2; -> ikisi de pointer

    İkisi de pointer değildir. tür bilgisi int dir, *p1 deklaratördür. * tür bilgisine dahil olmadığı için p2 int türdendir. p1 in türü int *'dır.
  • quote:

    Orijinalden alıntı: 4kalan

    quote:

    Orijinalden alıntı: Thør
    int* p1,p2; -> ikisi de pointer

    İkisi de pointer değildir. tür bilgisi int dir, *p1 deklaratördür. * tür bilgisine dahil olmadığı için p2 int türdendir. p1 in türü int *'dır.

    Yanlış hatırlamışım, iyi ki düzeltmişsin.
  • peki bir sorum daha var, her array bi pointer. yani
    array[2] yerine *array+2 diyebiliriz. peki iki boyutlu yada diğer çok boyutlu diziler de nasıl oluyor onu anlamadım?
  • quote:

    Orijinalden alıntı: GhilleintheMist

    peki bir sorum daha var, her array bi pointer. yani
    array[2] yerine *array+2 diyebiliriz. peki iki boyutlu yada diğer çok boyutlu diziler de nasıl oluyor onu anlamadım?

    *array + 2 dersen yanlış olur. Bu ilk elemana 2 ekler. Eğer ikinci indise ulaşmak istiyorsan parantez kullanmalısın. *(array + 2) bu şekilde olmalı.
    2 Boyutlu diziler içinde aşağıdaki örnek işine yarar.
     
    // Burada dizimiz şu şekilde:
    // 10 12
    // 14 16
    // Yani 2x2 matris şeklinde

    int arr[2][2] = {{10, 12}, {14, 16}};
    int satir = 0, sutun = 1;
    cout << *(*(arr + satir) + sutun) << endl;
    cout << arr[satir][sutun] << endl;
  • Aşağıdaki değişken tanımlardan hangisi C dilinde hata verir ?
    a)char w_w;
    b)float a1b2c3;
    c)int print;
    d)int switch;
    e)char x12345;
  • c++
    quote:

    #include <iostream>
    #include <conio.h>
    using namespace std;

    main(){


    int i,j;
    char a[][80]={"Pazar","Pazartesi","Sali"};

    for(i=0;i<=a[ i ][ 0 ];i++){
    cout << "\n";
    for(j=0;j<=a[j];j++)
    cout << a[j] << "\n";
    }

    getch();
    return 0;

    }



    for(i=0;i<=a[ i ][ 0 ];i++){
    cout << "\n";
    for(j=0;j<=a[j];j++)

    şu kısmı tam anlayamadım. i bir sayı, dizinin içindeki de harf. nasıl küçük eşit sağlayabiliyoruz? i<=a[0] hangi durumda sağlanıyor, a[0]ın tam sayı değeri mi var?

    bir de j<=a[j] diyor. 2 boyutlu bir dizi değil mi, neden tek bölüm var? a[1] deseydi neyi belirtmiş olurdu




  • Aşağıdaki C programının çıktısı ne olur?
    main()
    {
    int dizi[15]={3, 2, 8, -4, 6};
    int i, s=0;
    for(i=1;i<15;i++) {
    if (dizi >= 0)
    s ++;
    }
    printf("%d",s);
    getche();
    }
  • quote:

    Orijinalden alıntı: Burak Khrmn

    Aşağıdaki C programının çıktısı ne olur?
    main()
    {
    int dizi[15]={3, 2, 8, -4, 6};
    int i, s=0;
    for(i=1;i<15;i++) {
    if (dizi >= 0)
    s ++;
    }
    printf("%d",s);
    getche();
    }

    Arrayın tanımlamadığın değerleri 0 oluyordu galiba ona göre bakarsak s=13 oluyor

    dizi[1] den başladığından ilk elemanı almıyoruz, toplamda sadece -4 artırmıyor.
  • quote:

    Orijinalden alıntı: Thør

    quote:

    Orijinalden alıntı: Burak Khrmn

    Aşağıdaki C programının çıktısı ne olur?
    main()
    {
    int dizi[15]={3, 2, 8, -4, 6};
    int i, s=0;
    for(i=1;i<15;i++) {
    if (dizi >= 0)
    s ++;
    }
    printf("%d",s);
    getche();
    }

    Arrayın tanımlamadığın değerleri 0 oluyordu galiba ona göre bakarsak s=13 oluyor

    dizi[1] den başladığından ilk elemanı almıyoruz, toplamda sadece -4 artırmıyor.

    aynen hocam cevap 13 ama biraz daha açıklayacı yazar mısnız ilk defa görüyorum da bu dersi pek anlayamadım o yüzden
  • quote:

    Orijinalden alıntı: Burak Khrmn

    quote:

    Orijinalden alıntı: Thør

    quote:

    Orijinalden alıntı: Burak Khrmn

    Aşağıdaki C programının çıktısı ne olur?
    main()
    {
    int dizi[15]={3, 2, 8, -4, 6};
    int i, s=0;
    for(i=1;i<15;i++) {
    if (dizi >= 0)
    s ++;
    }
    printf("%d",s);
    getche();
    }

    Arrayın tanımlamadığın değerleri 0 oluyordu galiba ona göre bakarsak s=13 oluyor

    dizi[1] den başladığından ilk elemanı almıyoruz, toplamda sadece -4 artırmıyor.

    aynen hocam cevap 13 ama biraz daha açıklayacı yazar mısnız ilk defa görüyorum da bu dersi pek anlayamadım o yüzden

    dizi yaratmışsın ama sadece ilk beş elemanına değer vermişsin. Değer vermediğin elemanların değeri otomatik olarak 0 atanır.
    dizi[0]=3
    dizi[1]=2
    dizi[2]=8
    dizi[3]=-4
    dizi[4]=6

    dizi 0. indexten başlar.

    for döngüsü de 1 ile 14 arasındaki sayılar arasında. Bu yüzden senin döngünün içinde 0. indexi görmüyorsun.
    0 dan büyük veya eşit olan her değer için s yi 1 artırmakta.

    getche diye bir şey var mı bilmiyorum da DevC++'da ekran çıktısını görmek için getch->get character kullanırdık.




  • quote:

    Orijinalden alıntı: Thør

    quote:

    Orijinalden alıntı: Burak Khrmn

    quote:

    Orijinalden alıntı: Thør

    quote:

    Orijinalden alıntı: Burak Khrmn

    Aşağıdaki C programının çıktısı ne olur?
    main()
    {
    int dizi[15]={3, 2, 8, -4, 6};
    int i, s=0;
    for(i=1;i<15;i++) {
    if (dizi >= 0)
    s ++;
    }
    printf("%d",s);
    getche();
    }

    Arrayın tanımlamadığın değerleri 0 oluyordu galiba ona göre bakarsak s=13 oluyor

    dizi[1] den başladığından ilk elemanı almıyoruz, toplamda sadece -4 artırmıyor.

    aynen hocam cevap 13 ama biraz daha açıklayacı yazar mısnız ilk defa görüyorum da bu dersi pek anlayamadım o yüzden

    dizi yaratmışsın ama sadece ilk beş elemanına değer vermişsin. Değer vermediğin elemanların değeri otomatik olarak 0 atanır.
    dizi[0]=3
    dizi[1]=2
    dizi[2]=8
    dizi[3]=-4
    dizi[4]=6

    dizi 0. indexten başlar.

    for döngüsü de 1 ile 14 arasındaki sayılar arasında. Bu yüzden senin döngünün içinde 0. indexi görmüyorsun.
    0 dan büyük veya eşit olan her değer için s yi 1 artırmakta.

    getche diye bir şey var mı bilmiyorum da DevC++'da ekran çıktısını görmek için getch->get character kullanırdık.

    eyvallah hocam




  • quote:

    Orijinalden alıntı: elektro_gadget
    C' de stringler read-only değildir. "DonanimHaber" gibi bir stringin değiştirilemez olmasının sebebi derleyicinin bellekten kazanmak için stringi program koduna gömmesi. Bu stringi değiştirmeye çalışmak program kodunu değiştirmeye çalışmak anlamına gelir ve seg-fault yersiniz.

    (Yıllar sonra gelen edit)
    Hocam demin birşey okuyordum da, tartıştığımız konu aklıma geldi, yazmak istedim. Seg-fault korumalı modun bir mekanizması, C ile bir alakası yok. Benim açıklamaya çalıştığım dilin kurallarıydı ki, DOS korumalı mod u kullanmadığı için DOS da stringi değiştirmeye çalışmak undefined behaviour olur ve seg-fault yemezsiniz. Haksız mıyım?
  • Bu std::swap fonksiyonu nasil calisiyor? Yani ben swap fonksiyonu yazsam parametre olarak 2 pointer alip degerleri takas ederdim. Boylece degiskenler direk degisirdi. Ama bunda parametreler integer ama yine de degiskenler direk degisiyor. Nasil olutor bu?

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • quote:

    Orijinalden alıntı: 4kalan

    (Yıllar sonra gelen edit)
    Hocam demin birşey okuyordum da, tartıştığımız konu aklıma geldi, yazmak istedim. Seg-fault korumalı modun bir mekanizması, C ile bir alakası yok. Benim açıklamaya çalıştığım dilin kurallarıydı ki, DOS korumalı mod u kullanmadığı için DOS da stringi değiştirmeye çalışmak undefined behaviour olur ve seg-fault yemezsiniz. Haksız mıyım?

    Doğrudur teknik olarak bir engel yok. Fakat korumalı mod olmasa bile sistem uygulamayı kendisinden koruyacaktır. Öyle olmasa hatalı bir adresi gösteren bir işaretçi rahatlıkla programı bozar. İşletim sisteminin olmadığı 8 bitlik gömülü işlemcilerde bile programı koruyan mekanizmalar var. Tabi yine de emin değilim. Dos konusunda ahkam kesecek kadar dinozor değilim çok şükür.




  • quote:

    Orijinalden alıntı: GhilleintheMist

    Bu std::swap fonksiyonu nasil calisiyor? Yani ben swap fonksiyonu yazsam parametre olarak 2 pointer alip degerleri takas ederdim. Boylece degiskenler direk degisirdi. Ama bunda parametreler integer ama yine de degiskenler direk degisiyor. Nasil olutor bu?

    C++ ta bir nesneye referans vermenin 2 yolu var. Birincisi senin dediğin C usülü işaretçi-adres olayı. İkincisi çoğu dilde olmayan direkt referans olayı. Bu yöntemde & operatörü ile bir referans tanımlanır ve ona atanan nesne gibi davranır. Yani aynı nesnenin 2. ismi olur.

    int a = 0;
    int &b = a;
    b = 1;

    a 1 oldu.

    Link vereyim.http://www.learncpp.com/cpp-tutorial/611-references/



    < Bu mesaj bu kişi tarafından değiştirildi Guest-BF8E9B238 -- 31 Ocak 2014; 8:39:39 >




  • 
Sayfa: önceki 133134135136137
Sayfaya Git
Git
sonraki
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.