[ marescallo @ 03.07.2006. 21:12 ] @
Treba da se kreirate rodoslov u OO, tj. popis svih predaka. Trebalo bi da predvidite jednu klasu koja bi sadržavala sve podatke o jednom vašem pretku: na taj način, svaki predak bi bio predstavljen kao jedan objekat iz te klase. Interfejs klase trebalo bi da sadrzi: ime, prezime, bračni status, datum rođenja, datum smrti, deca, ... Takođe, predvidite i funkciju za prikaz, koja ima za argument ime, a prikazuje sve pretke tog imena. Zadatak glasi ovako a posto sam ja teski pocetnik molim za malu pomoc.
[ DjoleReject @ 04.07.2006. 01:14 ] @
Najpre napravi klasu koja opisuje jednog coveka sa svojim karakteristikama (godina rodjenja, smrti, bracni status...). Prilikom pravljenja, onemoguci kopiranje coveka u nekog drugog (stavi konstruktor kopije i operator= u private, sa praznim telom). Kad to sredis napravi klasu koja kao argument ima listu takvih ljudi. U listi napravi da element bude objekat klase covek i dva pointera na element. Jedan pointer ce pokazivati na majku, a drugi na oca. Mislim da je lista neophodna jer se ne zna koliko ces ici u rikverc sa trazenjem predaka. Kad napravis listu, omoguci da pored licnih podataka (kao sto je ime coveka, uz njega mogu da se dobiju podaci koje racunas pomocu same liste (imena roditelja i slicno...). Na kraju obezbedi da se jednoj osobi moze pristupati na nacin koji ti je najlogicniji (operator [] ne zvuci bas logicno u ovom slucaju, ali mozda preko imena ili nesto sl. Kad sve odradis, samo krenes da unosis ljude, pocevsi od sebe, pa unazad (naravno, omogucis dodavanje preko clana koji je vec u listi, tako da je jasno da ti je on otac/majka). Pored ovog nacina upada u listu, neophodna ti je i mogucnost unosa ljudi koji nisu imali decu (dedin brat koji se nije zenio), sto mozes obezbediti posebnim operatorom, koji bi uzimao u obzir bracu/sestre.


Nadam se da nisam nesto propustio i da sam iole jasan sa ovom idejom. Pozdrav i vici ako trebaju pojasnjenja.
[ marescallo @ 04.07.2006. 14:29 ] @
Sta je potrebno uraditi na ovome da bi odgovaralo resenju zadatka. Hvala

Code:

#include <stdio.h>
#include <ctype.h>
#include <stdlib.h>
#include <string.h>

char myfile[] = "C:\\myfile.bin"; 
FILE *pfile = NULL;             

struct Date                   
{
   int day;
   int month;
   int year;
};

typedef struct family      
{
   struct Date dob;
   char name[20];
   char pa_name[20];
   char ma_name[20];
}Family;


int get_person(Family *pfamily);      
void show_person_data(void);        
void get_parent_dob(Family *pfamily); 

void main()
{
   Family member;                     
   Family *pmember = &member;     

   if((pfile = fopen(myfile, "wb")) == NULL)
   {
     printf("\nUnable to open %s for writing.\n", myfile);
     abort();
   }

   while(get_person(pmember))           
     fwrite(pmember, sizeof member, 1, pfile); 
   fclose(pfile);               

   show_person_data();          

   if(remove(myfile))
     printf("\nUnable to delete %s.\n", myfile);
   else
     printf("\nDeleted %s OK.\n", myfile);
}


int get_person( Family *temp)
{
   static char more = '\0';  

   printf("\nDo you want to enter details of a%s person (Y or N)? ",
                                       more != '\0'?"nother " : "" );
   scanf(" %c", &more);

   if(tolower(more) == 'n') 
          return 0;

   printf("\nEnter the name of the person: ");
   scanf("%s", temp->name);    

   printf("\nEnter %s's date of birth (day month year); ", temp->name);
   scanf("%d %d %d", &temp->dob.day, &temp->dob.month, &temp->dob.year);

   printf("\nWho is %s's father? ", temp->name);
   scanf("%s", temp->pa_name);    

   printf("\nWho is %s's mother? ", temp->name);
   scanf("%s", temp->ma_name);    

   return 1;
}

void show_person_data(void)
{
   Family member;        
   Family *pmember = &member; 
   fpos_t current = 0;       

   pfile = fopen(myfile, "rb"); 

   while(fread(pmember, sizeof member, 1, pfile))   
   {
     fgetpos(pfile, &current); 
     printf("\n\n%s's father is %s, and mother is %s.",
              pmember->name, pmember->pa_name, pmember->ma_name);
     get_parent_dob(pmember); 
     fsetpos(pfile, &current); 
   }
    fclose(pfile);          
}


void get_parent_dob(Family *pmember)
{
   Family testmem;           
   Family *ptestmem = &testmem; 
   int num_found = 0;       

   rewind(pfile);         


   while(fread(ptestmem, sizeof(Family), 1, pfile))
   {
     if(strcmp(pmember->pa_name, ptestmem->name) == 0)  

       printf("\n Pa was born on %d/%d/%d.",
             ptestmem->dob.day, ptestmem->dob.month, ptestmem->dob.year);  
       if(++num_found == 2)   
         return;           
     }
     else
       if(strcmp(pmember->ma_name, ptestmem->name) == 0) 
       { 
         printf("\n Ma was born on %d/%d/%d.",
                ptestmem->dob.day, ptestmem->dob.month, ptestmem->dob.year);

         if(++num_found == 2)  
             return;       
       }
   }
}



[Ovu poruku je menjao X Files dana 16.07.2006. u 20:29 GMT+1]
[ DjoleReject @ 06.07.2006. 16:12 ] @
Potrebno ga je obrisati, pa sve napisati ispocetka.
[ android~paranoid @ 16.07.2006. 18:30 ] @
Zainteresovan sam da probam da uradim ovo, ovako kako ste opisali.

Zanima me kako ce se kreirati taj objekat, pretpostavljam u main f-ji, a onda kako ce se obaviti unos, verovatno rekurzivno(bar sam tako vidjao da se unosi u stukturi stablo), pa ako mozete da pojasnite malo oko tog unosa.
[ DjoleReject @ 17.07.2006. 17:32 ] @
Izvini, jel to pitas mene ili Marescallo-a?
[ android~paranoid @ 17.07.2006. 21:53 ] @
Tebe :) .
[ DjoleReject @ 18.07.2006. 03:09 ] @
Pa pazi, nisam bas preduboko ulazio u problem, ali jedno od resenja je sledece.
U main-u mozes unositi ljude, ali ti je najzgodnije da sama lista vec ima funkciju za unos. Kako ces izvesti samu funkciju ostaje na tebi da odlucis, ali meni na prvi pogled pada na pamet da bi bilo zgodno da npr. uneses od argumenata jedan int koji govori koliko je "duboko" predak u hijerarhiji (1 za oca i majku, 2 za dede i babe...), dalje od argumenata posaljes jedan char koji govori sta je doticni prethodniku u hijerarhiji ('o' za oca, 'm' za majku, 's' za strica...), i onda ti se otvara meni u kome unosis sve licne podatke vezane samo za tu osobu (ime, prezime...). Meni sa licnim podacima neka bude posebna funkcija koja se poziva iz funkcije koju si pozivao na pocetku (one koja osobu smesta na mesto u listi). I to ti je to...
Ove moje predloge shvati prilicno opusteno, jer programiranje jos uvek ima i tragove umetnosti u sebi, tj. dopusta da tvoja logika prevagne u odlucivanju za ovu ili onu opciju. Obicno imas izbor izmedju vise medjusobno pozivajucih funkcija ili nekoliko velikih. Meni se vise svidja da se to rasclani na sitnije delove, kako zbog preglednosti, tako i zbog lakseg nalazenja gresaka. I jedan vazan savet je da sve funkcije koje se obracaju sistemu (gde god imas cin, cout i sl.) smestis na jednu gomilu, ma gde ona bila (a bolje je sto dalje od same klase). Ovo je iz razloga sto ces mozda u nekom trenutku zeleti da promenis sistem ili svoj kod ubacis u neku graficku sredinu, a onda ces sav kod koji mora da se menja imati na gomili, a samim tim i manje posla.
[ reject @ 18.07.2006. 10:20 ] @
Citat:
DjoleReject:(1 za oca i majku, 2 za dede i babe...)

Jos lepse enum {otac,deda,... ...,navrded,kurajber,askurdjel};
:)

Inace, videti http://cslibrary.stanford.edu/110/BinaryTrees.html i http://en.wikipedia.org/wiki/Binary_search_tree
[ android~paranoid @ 19.07.2006. 09:36 ] @
Nesto sam i poceo:
Code:

hpp

#ifndef PREDAK_HPP
   #define PREDAK_HPP

class Covek {
   private:
      char ime[21];
      char prezime[26];
      int godrodjenje;
      int godsmrti;
      Covek *levi, *desni;
      Covek (char ime[21],char prezime[26], int godrodjenje,int godsmrti);
      Covek(const &Covek) {};
//      operator= (){};
   public:
       Covek(){};
       StaviIme(char ime[21]);
       StaviPrezime(char prezime[26]);
       StaviGodRodj(int godrodjenje);
       StaviGodSmrti(int godsmrti);
};

class Lista {
   private:
     Covek DinObjekat;
   public:
         Lista *glava, *Current;
//       ~Lista () {delete [] Lista;};
       Lista (const &Lista) {};
};
 

#endif
  

cpp1

#include <iostream>
#include <string.h>
#include "predak.hpp"

using namespace std;

Covek::Covek(char ime[21],char prezime[26], int godrodjenje,int godsmrti) {
    strcpy(ime,ime);
    strcpy(prezime,prezime);
    godrodjenje=godrodjenje;
    godsmrti=godsmrti;
    levi=NULL;
    desni=NULL;
}

cpp2

#include <iostream>
#include "predak.hpp"
#include <stdio.h>

using namespace std;

main () {
    char c;
    char ime[21];
    char prezime[26];
    int godrodjenje;
    int godsmrti; 
    Covek *pok;

    while (1)
    {
       cout << "\n\n*******MENI********\n\n\n";
       cout << "\n1. Unos\n";
       cout << "\n2. Izlaz\n\n";
       cout << "\nIzaberi: ";
       if ((c=getchar())=='2')
           break;
       else
       {
           cout << "Unesi ime: " ;
           cin >> ime;
           cout << "Unesi prezime: " ;
           cin >> prezime;
           cout << "Unesi godinu rodjenja: " ;
           cin >> godrodjenje;
           cout << "Unesi godinu smrti: " ;
           cin >> godsmrti;
           pok=new Covek(ime,prezime,godrodjenje,godsmrti);
           
       }

    }
       
}



Problem je u tome kako ja da stavljam objekte u listu i da u isto vreme obezbedim
interfejs korisniku sta gde da unese. Logicno bi bilo da ga pitam posle unosa jednog
clana za roditelje tog sto je upravo uneo, a kako se kretati kroz takvu stablo, kako se vratiti.

ps. pogresio sam u konsturktoru Covek, trebao sam sa metodama da postavljam vrednosti, ali to sad nije bitno.


[Ovu poruku je menjao android~paranoid dana 19.07.2006. u 11:28 GMT+1]
[ DjoleReject @ 19.07.2006. 14:38 ] @
Pa ne moras se vracati po stablu. I zgodnije ti je da u listi imas private element koji pokazuje na roditelje, nego ovako, ali nema veze. A sto se tice vracanja polisti, sta ce ti? uvek mozes krenuti od pocetnog clana kad znas na kom mestu ti je trazeni. Interfejs za korisnika bi bio zgodan da imas ime coveka, pa strelice ka sledecima (odglumis grafiku u command promptu). I onda pitas "na koje mesto zelite da unesete coveka") i taj broj ti je argument za redni broj clana u listi. Nije lose ni ubaciti da se stvari resavaju jednostavnim operatorima, npr. ++ za sledeceg u hijerarhiji, cout da ti ispise podatke za odtredjenog clana (ovo sredis friendom u klasi covek) i slicno...
[ android~paranoid @ 22.07.2006. 22:18 ] @
u glavnom ovo uradim:

Code:

       //unos svih podataka(ime, prezime...)
        Covek a(ime,prezime,godrodjenje,godsmrti);
           List.Add(a,broj);


u klasi
Code:
       void List.Add(Covek,int);


Kako u realizaciji metode List.Add gde prosledjujem Coveka,
da ga dodelim mojem privatnom podatku clanu (Covek DinObjekat) u listi (klasa Lista)?
[ reject @ 23.07.2006. 10:12 ] @
Citat:
DjoleReject: Pa ne moras se vracati po stablu. I zgodnije ti je da u listi imas private element koji pokazuje na roditelje, nego ovako, ali nema veze. A sto se tice vracanja polisti, sta ce ti? uvek mozes krenuti od pocetnog clana kad znas na kom mestu ti je trazeni.

Pa ako element pokazuje na parenta, onda uvek moze da se vraca po listi, zar ne? Samo skakuce po parentima. :)

Slicna fora moze se koristi kod skeletalne animacije, kad imas lanac kosaka, pa ih dovedes u trazeni polozaj tako
sto rotiras childa, pa njegovog parenta i tako...
[ android~paranoid @ 23.07.2006. 13:09 ] @
Imate neku realizaciju neceg slicnog pa da proucim.
[ DjoleReject @ 25.07.2006. 10:00 ] @
Pa nemam nigde bas stekovan zadatak koji ti treba, ali to bi izgledalo otprilike ovako:

Imas klasu Covek, koja je manje-vise kao sto si je i zamislio...
E sad, radis sledece:
Code:

class ListaPredaka{
    struct Element{
        Covek covek;
        Element* keva;
        Element* cale;
        Element* bratIliSestra;
    };
    Element* prvi;
    int brojGeneracijaURikverc;
public:
/*
ovde ti idu sve metode za kojima ces imati potrebe:
Svi konstruktori, destruktor (destruktor za listu je specifican i radi tako sto najpre 
neki element upises u bafer, pa skocis na sledeci, pa ga tek onda brises - u tvom
slucaju moras ih imati cak i vise od jednog), sve operatore koji mogu biti potrebni, a
 najpre operator kojim ces dolaziti do clana liste (u ovom slucaju to ne moze operatorom [], 
jer ti treba jos jedan argument, koji on ne dozvoljava, ali mozes da nepravis i neku elegantnu metodu...)
Imas u nekim zbirkama gotove zadatke sa listama i uglavnom je skoro sve sablonski, 
ako nisi nikad radio nesto slicno, odradi par standardnih, pa ti ni ovo nece doci tesko...   */
};

I ako zapnes - ne ustrucavaj se da pitas...
[ DjoleReject @ 25.07.2006. 10:03 ] @
I da ne zaboravim, bitno je da kontas da si prvi clan liste ti, a da se kreces ka sve starijima (do askurdjela, posto mislim da nemamo rec za starijeg pretka:) Ovo je bitno, jer ne znas dokle ce te to odvesti u rikverc, ali ako naidjes medju precima Isusa ili nekog slicnog, molim te u ime celog covecanstva da ne napises jos jednu glupu knjigu o tome:))))
[ android~paranoid @ 29.07.2006. 21:58 ] @
Idemo korak po korak.

OK, recimo da u glavnom programu (main) ja zahtevam unos gde se nalazi u stablu taj sto ga treba uneti, i onda u zavisnosti od broja ja dolazim do te pozicije i umecem. Metod ce biti List.Add(broj), sad me zanima realizacija tog metoda, uzmimo da je nevazan taj pronalazak clana, samo znaci da kreiram dinamicki objekat.

Code:
Covek *pok=new Covek;


I sad ja imam pokazivac na Coveka, a kakve to ima veze sa onim clanom (Covek covek) u mojoj klasi ListaPredaka?
Da li je to to? Meni nije jasno posto ne koristimo taj naziv covek, da je to normalan clan (a ne dinamicki) onda bi znao da ga napunim (covek.ime,covek.prezime...)?
[ DjoleReject @ 30.07.2006. 00:13 ] @
Ne, ne, nisi skontao... Nije bitno da li imas *Covek ili Covek. Radi se da je to deo strukture u kojoj je jedan clan Covek ili pointer na njega (svejedno), a drugi clanovi su pointeri na istu takvu strukturu. Znaci u klasi Lista, jedan clan je objekat tipa Element (sto je inace struktura, ciji je samo jedan clan Covek), taj element ima pointer na sledeci element i tako dalje...

Ovo je malo komplikovano objasniti ovako, pa bih ti preporucio da uzmes neku zbirku sa resenim zadacima gde se pominju liste (za pocetak jednoulancane liste ciji je svaki element int), pa da to kombinujes sa nekom teorijom (ako ti nije problem engleski, nacices gomilu toga na netu). Nemoj pogresno da me shvatis, nije mi tesko da ti pomognem, samo ne znam kako to da objasnim bez gomile primera, jer je koncept listi dosta komplikovan dok ga ne shvatis (posle ti bude smesno, ali uvek je tako...)
[ android~paranoid @ 30.07.2006. 09:17 ] @
Uf, uopste nisam video da si stavio to u strukturu.
Radio sam sa listama, ono osnovno, dodavanje clana, brisanje, sortiranje...
ali ne u klasama, nego u obicnom C-u, tako da se sad malo gubim.

Hvala ti puno!!!
[ reject @ 30.07.2006. 10:30 ] @
http://richardbowles.tripod.com/cpp/linklist/linklist.htm
http://www.fortunecity.com/skyscraper/false/780/linklist.html
Ovaj link sam stavio samo zbog nostalgicnog primera: :)
Citat:
Some common examples of a linked list:

* The AmigaDOS Viewport structure always points to the next viewport. You can have multiple viewports in the same list


Inace, to sto je lista member klase, to ne menja nista vezano za nju, tako da i
tvoj stari kod koji si onda radio mozes uz male promene da ponovo zloupotrebis.
[ DjoleReject @ 30.07.2006. 14:49 ] @
Citat:
android~paranoid: Uf, uopste nisam video da si stavio to u strukturu.
Radio sam sa listama, ono osnovno, dodavanje clana, brisanje, sortiranje...
ali ne u klasama, nego u obicnom C-u, tako da se sad malo gubim.

Hvala ti puno!!!


E, pa odlicno onda, ako si lepo skontao to u C-u, nema nikakvog razloga da ti stvara probleme ovde. Najteze si prosao, sad samo analogno sve primeni i nema frke za tebe.
Ja palim sad na nekih 10 dana, pa ti necu moci pomagati, ali valjda ce se naci neko ako zapnes... Pozdrav i javi kad nesto konkretno uradis!
[ android~paranoid @ 05.08.2006. 22:17 ] @
Code:
class Lista {
   public:
       struct Element {
             Covek covek;
             Element *levi, *desni;
       };
       Element *glava;
       Lista () {};
       Lista (const &Lista);
       void Add();
       friend Element* nadji(char ime[21],char prezime[26],int god, Element* pok);
};


...

struct Element {
          Covek covek;
          Element *levi, *desni;
};


int ind=0;

Element* nadji(char ime[21],char prezime[26],int god, Element* pokazivac)
{
    if ((stricmp(ime,pokazivac->covek.UzmiIme())==0) && (stricmp(prezime,pokazivac->covek.UzmiPrezime())==0)
      && (god==pokazivac->covek.UzmiGod()))
    {
      return(pokazivac);
    }
    nadji(ime,prezime,god,pokazivac->levi);
    nadji(ime,prezime,god,pokazivac->desni);
}

void Lista::Add()
{
      char ime[21],imeonog[21];
      char prezime[26],prezimeonog[26];
      int godrodjenje,godrodjenjaonog;
      int godsmrti;

   if (ind==0)
   {

    cout << "Unesi prvog clana porodicnog stabla: ";
    
    Element *pok = new Element;
    cout << "Unesi ime: ";
    cin >> ime;
    cout << "Unesi prezime: ";
    cin >> prezime;
    cout << "Unesi godinu rodjenja: ";
    cin >> godrodjenje;
    cout << "Unesi godinu smrti: ";
    cin >> godsmrti;
    
    pok->covek.StaviIme(ime);
    pok->covek.StaviPrezime(prezime);
    pok->covek.StaviGodRodj(godrodjenje);
    pok->covek.StaviGodSmrti(godsmrti);

    pok->levi=NULL;
    pok->desni=NULL;
    ind=1;
    glava=pok;
   }
   else if (ind==1)
   {
    
    cout << "Unesi ime onog cije roditelje unosite: ";
    cin >> imeonog;
    cout << "Unesi prezime onog cije roditelje unosite: ";
    cin >> prezimeonog;
    cout << "Unesi godinu rodjenja onog cije roditelje unosite: ";
    cin >> godrodjenjaonog;

    Element *pok=glava;

    pok = nadji(imeonog,prezimeonog,godrodjenjaonog,pok);
    
    cout << "Unesi njegovu majku: ";

    Element *pok1 = new Element;
    cout << "Unesi ime: ";
    cin >> ime;
    cout << "Unesi prezime: ";
    cin >> prezime;
    cout << "Unesi ime: ";
    cin >> godrodjenje;
    cout << "Unesi ime: ";
    cin >> godsmrti;

    pok1->covek.StaviIme(ime);
    pok1->covek.StaviPrezime(prezime);
    pok1->covek.StaviGodRodj(godrodjenje);
    pok1->covek.StaviGodSmrti(godsmrti);

    pok->levi=pok1;
    pok1->levi=NULL;
    pok1->desni=NULL;

    cout << "Unesi njegovog oca: ";

    Element *pok2 = new Element;
    cout << "Unesi ime: ";
    cin >> ime;
    cout << "Unesi prezime: ";
    cin >> prezime;
    cout << "Unesi ime: ";
    cin >> godrodjenje;
    cout << "Unesi ime: ";
    cin >> godsmrti;
    pok2->covek.StaviIme(ime);
    pok2->covek.StaviPrezime(prezime);
    pok2->covek.StaviGodRodj(godrodjenje);
    pok2->covek.StaviGodSmrti(godsmrti);

       pok->desni=pok2;
    pok2->levi=NULL;
    pok2->desni=NULL;

   }
}



OK, krenuo sam onako kako si mi rekao pa sam se skontao kako bi mogao
da realizujem i onako kako sam pomislito, tj. da za svaki unos novog
clana pitam za onog clana za kog treba uneti roditelje (nisam uzeo u obzir
bracu i sestre). Znaci hteo bih da realizujem rekurzivnu f-ju sa kojom bi
nasao tog clana liste, i onda obavio unos njegove majke i oca.
Problem je kod te rekurzivne f-je sto treba da mi vrati pokazivac tipa Element,
a on je u klasi, pa sam ga ja ponovo napisao (probao sam i sa razresenjem Lista::
ali to ne reaguje). Da li je to ok, i mogu li to nekako drugacije odraditi?

Ovde:
Element *pok=glava;

...zelim da prenesem pokazivac po vrednosti, tj. da f-ji uvek prenesem
pokazivac na glavu te liste, pa da odatle krene pretragu.
Ne funcionise sa pokazivacem na pokazivac. Znaci ptanje je kako da pokazivac prenesem
f-ji po vrednosti?

Ovaj kod mi prodje kompajler ali mi linker ispise:

predak.obj : error LNK2001: unresolved external symbol "struct Lista::Element * __cdecl nadji(char * const,char * const,int,struct Lista::Element *)" (?nadji@@YAPAUElement@Lista@@QAD0HPAU12@@Z)
Debug/Pretci.exe : fatal error LNK1120: 1 unresolved externals



[Ovu poruku je menjao android~paranoid dana 06.08.2006. u 22:33 GMT+1]
[ NrmMyth @ 06.08.2006. 07:12 ] @
prebaci definicije u .cpp fajla ako su ti u .h.
[ android~paranoid @ 06.08.2006. 15:48 ] @
Sem te dve klase u .hpp nemam nista od definicija f-ja,
samo imam inline f-je, ove za postavljanje i uzimanje vrednosti u klasi Covek.
Npr:
Code:
void StaviIme(char ime1[21]) { strcpy(ime,ime1);};
[ NrmMyth @ 06.08.2006. 16:17 ] @
Tek sam sad bacio oko na kod i pogledaj ovo:

Tvoja definicija:
Code:
Element* nadji(char ime[21],char prezime[26],int god, Element* pokazivac);


Deklaracija prijatelja:
Code:
friend Element* nadji(char ime[21],char prezime[26],int god, Element* pok);


Linker error:
Code:
struct Lista::Element* nadji(char * const,char * const,int,struct Lista::Element*);

Usporedi ove tri stvari i pronasao si error.
[ android~paranoid @ 12.08.2006. 00:16 ] @
Hvala NrmMyth, nikad se ne bi setio da stavim struct, ovako je proradilo.
[ NrmMyth @ 12.08.2006. 06:30 ] @
Ne nije to bilo bitno!
C++ ne zahtijeva da se explicitno pise struct svaki put do tipa.

Ovdje se radilo o rijesavanju (dodjeljivanju) scopea - Lista:: .
[ DjoleReject @ 17.08.2006. 18:53 ] @
I....???? Radi li to?
[ android~paranoid @ 18.08.2006. 21:47 ] @
Radi ovo sto sam uradio, samo me mrzi do kraja da ga sredim,
imam dosta tih stabala uradjenih u Javi, a presao sam sintaksu
pa cu u njoj da malo vezbam, lakse je nekako u Javi.
Verovatno cu se vratiti da ga sredim jednog dana :)

Jel ti mislis da nesto ne valja?
[ DjoleReject @ 19.08.2006. 03:37 ] @
Kao sto me naucio najpametniji covek koga sam upoznao, savrseno je ono sto ne mora bolje! Znaci, ako ti radi posao - to je to. A sto se tice Jave, stoji da je malo lakse za ispisati, ali ima C++ neke svoje prednosti koje su nenadjebive. Ja bih ti savetovao da ne odustanes ni od jednog od tas dva jezika, jer nikad ne znas u kom smeru ces se kretati. Aj` uzdravlje...