folder Tahribat.com Forumları
linefolder C - C++
linefolder C++ İle Değişik Bir Matris (Soru)



C++ İle Değişik Bir Matris (Soru)

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    overbite
    overbite's avatar
    Kayıt Tarihi: 13/Ağustos/2011
    Erkek

    arkadaşlar kendime göre bir şey oluşturmaya çalışıyorum, bunun için diziler işimi görmüyor. mesela küçük küplerden oluşmuş büyük bir küp gibi düşünün. küçük küplerin koordinatlarını girince içerisindeki verilere erişip değiştirebilmeliyim. örneğin 2,3,1 konumunda bulunan küpün içinde ad,soyad,telefon isimli üç adet değişken olacak. ben üç boyutlu dizi kullanınca haliyle olmuyor.

    bunun için bir sınıf tanımlayap her küçük küpü bir nesne yapayım dedim fakat her nesneye referans nasıl vereceğim bilemedim.

    şöyle ki en başta büyük küpün boyutlarını kullanıcı girecek, mesela 5,5,5 girdi. böyle olunca 5*5*5=125 tane küçük küp olacak. iç içe for döngüleriyle oluştuğum sınıfın türünde nesneler oluşturabiliyorum fakat sonra bunlara nasıl ulaşacağım.

    bunu da şöyle düşündüm, dedim ki benim büyük küpün boyutlarında işaretçi dizisi yapayım. yani *isaretci[5][5][5] diye, bu küçük küpler for döngüsünün içinde oluşturulurken aynı koordinatlardaki işaretçilere de bu küçük küplerin adresleri verilsin. sonra işaretçilerle bu küçük küplere ulaşırım.

    küp küp dedim olay karıştı sanırım iyice, c++ bilgim de o kadar iyi değil. ben aşağıdaki programı yazabildim fakat yazdığımla kaldım derleyemiyorum, bilgim de çok olmadığı için verdiği hataları anlayamadım. bi yardım edebilirseniz sevinirim. kolay gelsin.

    [code]

    #include <cstdlib>
    #include <iostream>

    using namespace std;
    class kup
    {
          public:
                 int x,y,z;
                 string ad,soyad,sehir;
                 kup(int a, int b, int c) {
                      x=a;
                      y=b;
                      z=c;};
                 void bilgiler(string ad1, string soyad1, string sehir1){
                      ad=ad1;
                      soyad=soyad1;
                      sehir=sehir1;};
    };

    int main(int argc, char *argv[])
    {
        int a,b,c,k,l,m;
        string ad2,soyad2,sehir2;
        cin >> k,l,m;
        kup *isaret[k][l][m] = new kup[k][l][m];
        for (a=0; a<k; a++) {
            for (b=0; b<l; b++) {
                for (c=0; c<m; c++) {
                    new kup(a,b,c);
                    isaret[a][b][c]=&kup[a][b][c];
                    }
                }
            }
       
        cout << "koordinatlari girin" << endl;
        cin >> a,b,c;
        cout << endl << "ad soyad sehir girin" << endl;
        cin >> ad2,soyad2,sehir2;
       
        *isaret[a][b][c].ad=deneme;
       
        system("PAUSE");
        return EXIT_SUCCESS;
    }

    [/code]


    ulan bir susar mısın?
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    overbite
    overbite's avatar
    Kayıt Tarihi: 13/Ağustos/2011
    Erkek

    kodu biraz değiştirdim bu sefer çalıştı, işaretçilerin gösterdiği adresleri ekrana yazdırabiliyorum fakat hala oluşturulan nesnelere ulaşıp içlerine veri yazamıyorum ?

     

     

    #include 
    #include 
    
    using namespace std;
    class kup
    {
          public:
                 int x,y,z;
                 string ad,soyad,sehir;
                 void koordinat(int a, int b, int c) {
                      x=a;
                      y=b;
                      z=c;};
                 void bilgiler(string ad1, string soyad1, string sehir1){
                      ad=ad1;
                      soyad=soyad1;
                      sehir=sehir1;};
    };
    
    int main(int argc, char *argv[])
    {
        int a,b,c;
        int k,l,m;
        string ad2,soyad2,sehir2;
        cin >> k;
        cin >> l;
        cin >> m;
        
        kup *isaret[k*l*m];
        for (a=0; a> a,b,c;
        cout << endl << "ad soyad sehir girin" << endl;
        cin >> ad2,soyad2,sehir2;
        
        //*isaret[c-1)*(a*b)+(b-1)*a+a].ad="deneme";
        
        system("PAUSE");
        return EXIT_SUCCESS;
    }

     


    ulan bir susar mısın?
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ltcelik
    ltcelik's avatar
    Kayıt Tarihi: 11/Mayıs/2007
    Erkek

    Bu kodu yazmaktaki amacını tam olarak anlamadım fakat,ad, soyad, telefon isimli üç adet üç boyutlu matris de oluşturabilirsin... Böylellikle istediğin konumdan her i,j,k dan veri okuaybilirsin..


    Din Kitaplarını Okuyup Anlayana Ateist, Okuyup Anlamayanlara "dindar" denir... Nikola TESLA.. ben mi? Ne okurum ne anlarım... Kendi kendime de uyuz oluyorum ama olamıyorum.. "Ama efsaneyi çıkarıp atarsan ve yaptıkları eylemlere bakarsan... ..Jedi'ların mirası başarısızlıktır. İkiyüzlülüktür, kibirdir."
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    SinusX
    SinusX's avatar
    Kayıt Tarihi: 14/Aralık/2010
    Erkek

    Nesneyi çağırmazsan bi işe yaramaz o nesne

    #include <cstdlib>
    #include <iostream>

    using namespace std;
    class kup
    {
          public:
                 int x,y,z;
                 string ad,soyad,sehir;
                 kup(int a, int b, int c) {
                      x=a;
                      y=b;
                      z=c;};
                 void bilgiler(string ad1, string soyad1, string sehir1){
                      ad=ad1;
                      soyad=soyad1;
                      sehir=sehir1;};
    }kupnesne;

     

    int main(int argc, char *argv[])
    {
        kupnesne.bilgiler(ad123,soyad123,sehir123);

        
       
    system("PAUSE");
        return EXIT_SUCCESS;
    }

     

    Bi Böyle dene bakalım


    Si vis pacem para bellum.
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    overbite
    overbite's avatar
    Kayıt Tarihi: 13/Ağustos/2011
    Erkek

    önerileriniz için teşkkür ederim

    @ltcelik, 3 adet 3 boyutlu matris de işe yarar fakat çok karmaşa oluyor

    @SinusX, yazdığınız kodda bir adet nesne oluşturulup (kupnesne) o çağrılıyor, benim sonurum o nesneden kaç tane üretileceğini kullanıcının girmesiydi. yani ben tanımlamayacağım kullanıcı 5 girerse 5 tane nesne kup nesnesinden oluşacaktı ve ben bunları nasıl çağıracağımı bilememiştim referanslarını kendim belirlemediğim için.

    sorunum çözüldü kodun son hali aşağıdaki gibidir. özel mesajla yardım eden hocama da tekrar teşekkür ederim

     

    #include <cstdlib>
    #include <iostream>
    
    using namespace std;
    
    class konum {
          public:
                 int x,y,z;
                 void gir(int a, int b, int c) {
                      x=a; y=b; z=c;
                      }
    };
    
    class bilgi {
          public:
                 string ad,soyad,sehir;
                 void gir (string a, string b, string c) {
                      ad=a; soyad=b; sehir=c;
                      }
    };
    
    class kup {
          public:
                 konum koordinat;
                 bilgi bilgiler;
    };
    
    
    int main(int argc, char *argv[]) {
        
        int x,y,z;
        string ad,soyad,sehir;
        
        cout << "Sistemin boyutlarını girin";
        cout << endl << "x: ";
        cin >> x;
        cout << endl << "y: ";
        cin >> y;
        cout << endl << "z: ";
        cin >> z;
        
        kup kupdizi[x][y][z];
        
        cout << "icerigini degistirmek istediginiz kupun koordinatlarini girin" << endl;
        cin >> x >> y >> z;
        cout << "ad soyad sehir girin" << endl;
        cin >> ad >> soyad >> sehir;
        
        kupdizi[x][y][z].koordinat.gir(x,y,z);
        kupdizi[x][y][z].bilgiler.gir(ad,soyad,sehir);
        
        cout << "kup " << x << "," << y << "," << z << endl;
        cout << kupdizi[x][y][z].bilgiler.ad << endl;
        cout << kupdizi[x][y][z].bilgiler.soyad << endl;
        cout << kupdizi[x][y][z].bilgiler.sehir << endl;
        
        system("PAUSE");
        return EXIT_SUCCESS;
    } 


    ulan bir susar mısın?
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ltcelik
    ltcelik's avatar
    Kayıt Tarihi: 11/Mayıs/2007
    Erkek
    Sınır koordinatlarda hatra veriyor örneğin 2,2,2 boyutlu matriste 2,2,2 yi editlediğimizde hata veriyor

    Din Kitaplarını Okuyup Anlayana Ateist, Okuyup Anlamayanlara "dindar" denir... Nikola TESLA.. ben mi? Ne okurum ne anlarım... Kendi kendime de uyuz oluyorum ama olamıyorum.. "Ama efsaneyi çıkarıp atarsan ve yaptıkları eylemlere bakarsan... ..Jedi'ların mirası başarısızlıktır. İkiyüzlülüktür, kibirdir."
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    overbite
    overbite's avatar
    Kayıt Tarihi: 13/Ağustos/2011
    Erkek

    evet o kontrolleri yapmadım henüz. boyutları 2,2,2 verince örneğin listenin x değeri 0 ve 1 oluyor, yani sınırı 1 eksiği


    ulan bir susar mısın?
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    DrKill
    DrKill's avatar
    Kayıt Tarihi: 10/Mart/2004
    Erkek
    #include "stdafx.h"
    #include <conio.h>
    #include <string>
    #include <iostream>
    
    using namespace std;
    
    class kup
    {
          public:
                 int x,y,z;
                 string ad, soyad, sehir;
    			 kup():x(0),y(0),z(0),ad("sifir"),soyad("sifir"),sehir("sifir")
    			 {}
                 kup(int a, int b, int c):ad("sifir"),soyad("sifir"),sehir("sifir")
    			 {
                      x=a;
                      y=b;
                      z=c;
    			 }
                 void bilgiler(string ad1, string soyad1, string sehir1)
    			 {
                      ad=ad1;
                      soyad=soyad1;
                      sehir=sehir1;
    			 }
    			 void yazdir(void)
    			 {
    				 cout << "Merhaba su an kusuyorum..." << endl;
    				 cout << "X:" << x << endl <<
    					  "Y:" << y << endl <<
    					  "Z:" << z << endl <<
    					"Ad: Soyad: Sehir:" << endl
    					<<ad << endl <<soyad << endl << sehir << endl;
    			 }
    };
    
    typedef kup KUP;
    
    int main(int argc, char *argv[])
    {
        int a,b,c,k,l,m;
        string ad2,soyad2,sehir2;
    	cin >> k >> l >> m;
    	KUP*** Xkor;// KUP sınıfı göstericisinin göstericisi (gösterenin göstericisi)
    	KUP** Ykor;//KUP sınıfı göstericisinin göstericisi (gösterenin göstericisi)
    	KUP* Zkor;//KUP sınıfı göstericisi
    	Xkor = new KUP**[k];
    	for(a=0; a<k; a++)
    	{
    		Ykor = new KUP*[l];
    		Xkor[a] = &Ykor[0];
    		for(b=0; b<l; b++)
    		{
    			Zkor = new KUP[m];
    			Ykor[b] = &Zkor[0];
    		}
    	}
    
    	/*int* gosterci = new int[30];
    	gosterci[0] = 2;
    	cout << gosterci[0];
    	int** gosterci2 = new int*[2];
    	gosterci2[0] = &gosterci[0];
    	gosterci2[0][0] = 3;
    	cout << gosterci[0];*/
    	    
    	cout << "koordinatlari girin" << endl;
        cin >> a >> b >> c;
        cout << endl << "ad soyad sehir girin" << endl;
        cin >> ad2 >>soyad2 >>sehir2;
    	Xkor[a][b][c].bilgiler(ad2,soyad2,sehir2);
    	Xkor[a][b][c].yazdir();
    
    	getch();
        return 0;
    }

    /* Hadi ben sorunluyum aksam aksam bunu çözmek için uğraştım siz niye kasıyonuz yaaaaa. Ben kafayı yedim bari siz kurtulun defolun sokaklara gezin eğlenin...

    Hayrını gör

    Ayrıca bu konuda biraz sıkıntılıdır. C++ da çok boyutlu dizileri pointerlarda göstermen için illaki dönkü kullanman lazım. Pointerların pointerlarını iyi kavraman lazım. Kolay gelsin.*/


    Bu imzayı her gördüğünüzde 4gb kotanızın 0,00000358559191226959228515625 azalmaktadır. Bilerek ve istenerek bu imza yapılmıştır. Amaç kotanızı sömürmektir
Toplam Hit: 1851 Toplam Mesaj: 8