Pereiti prie turinio

deividas707

Nariai
  • Pranešimai

    96
  • Užsiregistravo

  • Lankėsi

  • Atsiliepimai

    0%

deividas707 Pranešimai

  1. Sveiki, turiu tokia problema, kad koordinaciu asyje esanti pele ne visada joje graziai juda. Kito budo nezinau, bet as turiu to judancio juodo objekto koorinates(3, 10) ir turiu mouse korinates(11, 7). Paprasciausiai ciklu didinu arba mazinu juodo objekto koorinates(taip jis vaiksto iki mano norimos vietos). Kad ir siame paveiksliuke, jis turi nukeliauti 8 pikselius i desne ir 2 pikselius i virsu. Sukant cikla objektas juda netolygiai(t.y. 8 pikselius is desne ir TIK 2 i virsu!!!). Tada objektas juda oranzine linija. Ar kazkaip galima tai sutvarkyti? Gal yra kazkokiu biblioteku ar judejimo efektyviu algoritmu? Dekui

    post-52529-0-15831100-1410541376_thumb.jpg

  2. Dekui, dariau kiek kitaip, o Thread.sleep() zinojau, bet ji man netiko, bet kokiu atveju turiu kita klausima.

    	public class MouseListener implements MouseMotionListener{
    	public void mouseDragged(MouseEvent arg0) {
    
    	}
    	public void mouseMoved(MouseEvent e) {
    		currentX = e.getX();
    		currentY = e.getY();
    
    		if(onWall){
    			timer.schedule(new TimerTask(){
    				public void run() {
    					saveX = e.getX();
    					saveY = e.getY();
    					start(); // kvieciu metoda
    				}
    			}, 1000);
    			onWall = false;
    		} 
    	}
    }

    Taigi pajudinus pelyte as kvieciu start() metoda, beda ta, kad tarikm sitame metode

    public boolean test(int xC, int yC, int sizeX, int sizeY){
    	if(xC == sizeX || yC == sizeY){
    		onWall = true;
                           start(); // to padaryti negaliu
    		return false;
    	}else{
    		return true;
    	}
    }

    as turiu kviesti vel ta start() metoda, bet tiesiogiai to padaryti negaliu, nes man reikalingos kitos currentX, currentY ir t.t. reiksmes. Tad kaip man vel kviesti ta mouseMoved(MouseEvent e) metoda, jei argumento MouseEvent neturiu?

  3. Sveiki, niekaip nesigauna padaryti taip, kad pasirinkus korta butu nusiustas jortos indeksas masyve i ActionListener(ajeme as noriu tureti kortos indeksa). Ka darau ne taip?

    public void setFrame(){
    	JFrame frame2 = new JFrame("Select Cards");
    	frame2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    	Color color = new Color(0,100,0);
    	try{
    		JPanel panel2 = new JPanel();
    		ButtonCheckListener[] listeners = new ButtonCheckListener[52];
    		for(j=0; j<52; j++){
    			listeners[j] = new ButtonCheckListener();
    			BufferedImage buttonIcon = ImageIO.read(new File("Card_res" + j + ".png")); // kortos failas
    			button[j] = new JButton(new ImageIcon(buttonIcon));
    			button[j].setBorderPainted(false);
    			button[j].setFocusable(false);
    			button[j].addActionListener(listeners[j]); // kiekvienai kortai darau atskira ActionListener
    			button[j].setBackground(color);
    			panel2.add(button[j]);
    		}
    		panel2.setBackground(color);
    		frame2.getContentPane().add(panel2);
    
    	}catch(Exception ex){
    		ex.printStackTrace();
    	}
    	frame2.setSize(1830,610);
    	frame2.setVisible(true);
    }

    	class ButtonCheckListener implements ActionListener{
    	public void actionPerformed(ActionEvent a) {
    		// cia turetu buti kortos indeksas, bet sitoje vietoje neaisku ka daryti, (nera aisku KURIA       KORTA pasirenka ActionListener'iui)
    	}
    }

    post-52529-0-95258500-1407703129_thumb.jpg

  4. Čia tau pagal užduotį reikia dinamiškai susikurti objektus? Ar kažką darysi su jais tokio, ko statiškai sukurti objektai neleidžia? Nes daug geresnis variantas būtų susikurti statiškai ir vietoj rodyklės (pointer) perduoti objekto adresą (reference) su & priešakį.

    Man pagal uzduoti taip duota. Bet idomu kuo tai butu geriau?

  5. ~MyForm() (destuktorius) būtų puiki vieta tą padaryti, nebent kažkoks komponentas tampa „nebereikalingas“ anksčiau, tokiu atveju, trink tada, kada objekto nebereikia.

    Dekui, kaip ir viskas taip. Klausimas tik vienas ka daro tas if components? Nes jei tame if'e prasaus delete obj viskas veikia puikiai, bet jei parasau po ~MyForm() gaunu errora kodel?

                    ~MyForm()
                   {
                    // jei cia trinu atminti gaunu errora
                           if (components)
                           {
                            // cia viskas gerai
                                    delete components;
                           }
                   }

  6. Sveiki, turiu toki klausima, kaip suprantu kiekviena karta kai yra sukuriamas kazkoks new Class Obj reikia ji ir istrinti. Klausimas kurioje vietoje reiktu trinti ta objekta (tiksliau atminti) grafineje aplinkoje. Imesiu kodo fragmenta

    public:
    	MyForm(void)
    	{
    		InitializeComponent();
    		//
    		//TODO: Add the constructor code here
    		//
    		ab = new AboSarasas;
    		kai = new KainosMiest;
    		n = new AboSarasas;
    		sar = new AboSarasas;
    		pin = new AboSarasas;
    
    	}
    
    protected:
    	/// <summary>
    	/// Clean up any resources being used.
    	/// </summary>
    	~MyForm()
    	{
    		if (components)
    		{
    			delete components;
    		}
    	}
    
    private:
    	/// <summary>
    	/// Required designer variable.
    	/// </summary>
    
    	AboSarasas *ab;
    	KainosMiest *kai;
    	AboSarasas *n;
    	AboSarasas *sar;
    	AboSarasas *pin;
    	double vid;

  7. As galvoje turejau nenaudoti gatavu klasiu tokiu kaip map, list, vector, nes destytojas iskarto kabinsis,o savo kurtas tai zinoma, kad butina naudoti.

     

    Parasiau as tau algortima kuris isrenka unikalius irasus http://pastebin.com/zFA6xh26, na ir kai issirinksi kita jau baika, tada kaip sakiau begi per visas eilutes matricos kur sutinka pavadinimas spausdini ir viskas ^_^

    Dekui, siaip idomus pavadinimai tavo. Pasiziuresiu ir tavo varianta jis dar trumpesnis atrodo. Tik galia kad tokiu dalyku kaip compare nezinau :/

  8. n rodo masyvo bankai dydi, t.y. to masyvo, kuris laiko visus skirtingus bankus. Pradzioje jis turi buti lygus 0. O siaip del erroro, tai probably persoki kazkur tai rezius masyvo kazkokio. Susitvarkyk ka parasiau auksciau ir patestuok.

    hafni, ziauriai tau aciu radau klaida :)

    void TikSp(Matrica M, string bankai[], int n){
    for(int i=0; i<n; i++){
    	cout << bankai[i] << ": ";
    	for(int j=0; j<M.ImtiSK(); i++){ // is iprocio pliusinau i......
    		if(bankai[i] == M.ImtiBankas(j)){
    			cout << M.ImtiVardas(j) << " " << M.ImtiNr(j) << endl;
    		}
    	}
    }
    }

    Gal tu kartais is kauno? :D Jei taip tai susisiekiam pica pavaisinciau! :) Dekui dar karta ;)

  9. Nenaudok jokiu mapu ar listu, univere pirmuose kursuose ziuri i algoritimzavima, o ne puiku klasiu zinojima ir ju panaudojima.

    Algoritmas kuri siulau as:

    1. Iš matricos stulpelio kur yra banku pavadinimai, išrink unikalius pavadinimus ir sudėk į naują vienmatį masyvą.
    2. Tada suki ciklą cikle, pirmas ciklas tiek kiek vienmačiame masyve yra įrašų, o antras ciklas per visas matricos eilutes eina, jai sutinka banku pavadinimai - spausdini.

    Kadangi mums yra privaloma salyga klase as nieko negaliu padaryti. Pats ju tikrai nenaudociau jei nebutu privaloma. Siaip labai keista kad skaiciavimo algoritma kuris yra sudetingesnis nei si problema sutalpinau i 20 eil., o va sito cia ir nepadarau. hafnio variantas labai geras, tik kazkodel mano programa luzta... Jei butu imanoma naudociau savo sugalvota algoritma, bet musu destytojas labai ptksta kai atnesi baisini griozdiska algoritma :D hafnio variantas labai geras, nes jis nera ilgas, o va mano tai.... :D

  10. Su mapai's turetu buti kazkas panasaus:

    include <vector>;
    include <map>;
    
    map<string, vector<Duomenu_tipas_apie_zmogu> > mapas;
    
    for (int i = 0; i < Zmoniu_kiekis; i++)
        map[Duomenys.ImtiBanka(i)].push_back(ZmoniuMasyvas(i));
    
    map<string, vector<Duomenu_tipas_apie_zmogu> >:: iterator it;
    for (it = mapas.begin(); it != mapas.end(); it++)
        cout << it->first << ": "; // Atspausdina banko varda;
        (for int i = 0; i < it->second.size(); i++)
             cout << it->second[i] << endl; // Atspausdina duomenis apie zmogu, tikriausiai 
                                            // turetu buti kazkaip taip: 
                                            // it->second[i].ImtiVarda() << " " << 
                                            // it->second[i].ImtiDarKazka() ...
    

     

     

    Siaip butu geriau kad imestum i koki pastebin pilna koda, nes dabar nelabai aisku kaip tu ten saugai tuos duomenis apie zmones, ar turi kazkoki tai zmoniu masyva, ar konteineri klase ar dar ka.

    Zinoma, kad galiu :), nors cia Jums daug laiko tikriausiai uzims http://pastebin.com/9NpSufhx

  11. 
    void AtrenkamSkirtingus(Duomenu_tipas Duomenys, string bankai[], int n) {
        for (int i = 0; i < Duomenys.ImtiSK(); i++)
             if (ArYra(Duomenys.ImtiBanka(i), bankai, n) == false)
                bankai[n++] = Duomenys.ImtiBanka(i);
    } 
    
    bool ArYra(string Bankas, string bankai[], int n) {
        for (int i = 0; i < n; i++)
             if (bankai[i] == Bankas) return true;
        return false;
    }
    
    void Spausdinam(Duomenu_tipas Duomenys, string bankai[], int n) {
        for (int i = 0; i < n; i++)
             cout << bankas[i] << ": ";
             for (int j = 0; j < Duomenys.ImtiSK(); j++)
                  if (bankas[i] == Duomenys.ImtiBanka())
                      cout << "Cia atspausdini duomenis kazkokius apie ta zmogu";
    }
    
    maine tokie iskvietimai:
    AtrenkamSkirtingus(Duomenys, bankai, n);
    Spausdinam(Duomenys, bankai, n);
    

     

    Pasireguliuok pagal save, klaidas kokias zioplas pataisyk, bet is esmes viskas turi veikt.

    Dekui, nors sitas dalykas mane nebeveikia, bet aciu uz algoritma. Duoemnu_Tipas pas mane yra klase (Matrica M). Programa kompiliuoja, bet ji nuluzta ir raso, kad identifier "M" is undefinded. Gal bent isivaizduojat kas cia?

  12. Aišku sugebėsi, padėsim jei ką :)

    Dekui ;) matai yra labai negerai tas, kad as nesugalvoju algoritmo

    void Vienodi(Matrica M, Matrica N, string bankai[]){
    int k=0;
    map<string, int>ban;
    string elnr = M.ImtiBankas(0);
    for(int i=0; i<M.ImtiSK(); i++){
    	if(bankai[i] == elnr){
    		// ka cia daryti, kad butu pasalinti vienodi bankai
    	}
    }
    }

    Pasirasiau ta baisini tanka, kur viskas ganetinai suprantama (nu bent man) bet kai reikia mazos f-jos man nelabai iseina. Sako destytojas kad as per sudetingai mastau, bet kitaip as nieko nesugalvoju. Va ir dabar kaip reiktu salinti is bankai masyvo pasikartojancia reiksme?

  13. Aš tai patarčiau pasižiūrėt Mapus ir pasidaryt. Nėra sudėtingas dalykas vis tik. Be to vistiek už metų teks mokytis. Bus ir lengviau, ir jau dabar būsi praplatinęs savo programavimo žinias.

    Zinau. Beda ta kad ryt paskutinis atsiskaitymas. Nezinau ar sugebesiu padaryti. :D Nes as kaip ir pasidares, bet destyotjas patikrino ir sake kad sita vieta siulyciau koreguoti, nes salygoj vienas zodis skiriasi :D

  14. Va kiek prisidariau...

    string tikbankai[CMAX];
    int cI = 0;
    string bank = M.ImtiBankas(0);
    
    bool yra = false;
    while(!yra){
    	cout << bank << ": " << endl;
    	for(int i=0; i<M.ImtiSK(); i++){
    		if(M.ImtiBankas(i) == bank){
    			cout << M.ImtiVardas(i) << " " << M.ImtiNr(i) << endl;
    			bool radom = false;
    			for(int k=0; k<cI; ++k){
    				if(tikbankai[k] == bank){
    					radom = true;
    				}
    			}
    			if(radom == false){
    				tikbankai[cI++] = bank;
    			}
    		}
    	}
    	bool radom = false;
    	for(int i = 0; i < M.ImtiSK(); ++i){
    		for(int k = 0; k < cI; ++k){
    			if(tikbankai[k] == M.ImtiBankas(i)){
    				radom = true;
    			}
    		}
    		if(radom == false){
    			bank = M.ImtiBankas(i);
    			break;
    		}else{
    			if(i == M.ImtiSK() - 1){
    				yra = true;
    			}else{
    				radom = false;
    			}
    		}
    	}
    }

    Destytojui tikrai nepatiks, o trumpiau niekaip nesugalvoju, kaip padaryti. Ir lyg nesudetingo dalyko prasau :). At imanoma kazkaip be 80 eiluciu funkcijos tai padaryti?

  15. Kokie galimi bankų pavadinimai žinai?

    Tada galėtum:

     

    cout<<"DNB: "<<endl;
    for (int i=0; i<M.ImtiSK(); i++)
      if (M.ImtiBankas(i)=="DNB")
         cout<<visa informacija, išskyrus banko pavadinimas<<" ";

     

    Ir taip su kiekvienu banku.

    Jei nežinai, kokie bankų pavadinimai gali būti, tada kaip ir sakė: susirikiuoji žmones pagal bankus ir spausdini iš eilės prie vieno banko tol, kol tie bankai vienodi. Jei nebevienodi - spausdini prie kito.

     

     

    cout<<M.ImtiBankas(i)<<": ";
    while (M.ImtiBankas(i+1)==M.ImtiBankas(i))
      cout<<informacija apie žmogų<<" ";

    Dekui, banku pavadinimu nezinau. + Cia rikiavimas kazin ar tiks, nes as turesiu prie kiekvieno banko atspausdinti ir ta saksaitos numeri. (a ji atskirai nusiskaitau, nes destytojas taip liepe). Cia ir yra visos bedos kad dela apribojimu ir del mano ziniu trukumu nezinau nuo ko pradeti

  16. o tau butinai, kad tie patys banku pavadinimai pradzioj butu? jei ne tai tiesiog surikiuok pagal banku pavadinimus

    As taip noreciau kad butu pradzioj. Daug tvarkingiau programa atrodytu. Tik nezinau kaip tai padaryti. Yra vienas variantas Mapai. Su jais kolkas nesimokiau, bet manau kad patogu cia butu su jais. Kazkaip noretusi tradiciniais paprastais metodais padaryti, bet jau manau kad nelabai imanoma cia :D

  17. 2 ciklus daryk (ciklas cikle, eini per juos ir tikrini)

    Man butent sito ir reikia. Darau va ka

    string laik[CMAX];

    	for(int i=0; i<M.ImtiSK(); i++){
    	for(int j=i; j<M.ImtiSK(); j++){
    		if(M.ImtiBankas(i) == bankai[j]){
    			laik[i] = M.ImtiBankas(i);
    		}
    	}
    	cout << laik[i] << endl;
    }

    bet cia blogai. Nelabai suprantu kaip kitaip galima atlikti norimus veiksmus.

  18. Objectas: vardas, pavardė, bankas, sąskaita, kažkoks skaičius.

    Pasidarai elementarų nuskaitymą į tokius objektus. Tuomet susirandi skirtingus, ir kiekvienam išspausdini jo visą sarašą... Juk nesunku :)

    As jau viska esu nuskaites, problema ta kad nezinau kaip reiktu rasti vienodus ir kaip isspausdinti viska tavrkingai.

  19. Sveiki, turiu tokius duomenis

    Laurynas Laurynaitis, DNB, LT123456789, 15

    Mindaugas Mindaugaitis, Swedbank, LT987654321, 100

    Gintautas Gintautaitis, DNB, LT87543321156, 47

    Vidmantas Vidmantaitis, Sekundė, LT465484998, 55

    Vilma Vilmantaitė, DNB, LT4484465415, 45

     

    ir man reiktu, kad butu atrinkti tie patys banku pavadinimai ir butu isspausdinta

     

    DNB: Laurynas Laurynaitis LT123456789 15 LT, Gintautas Gintautaitis LT87543321156 47, Vilma Vilmantaitė LT4484465415 45

    Swedbank: Mindaugas Mindaugaitis LT987654321 100

    Sekundė: Vidmantas Vidmantaitis LT 465484998 55

     

    Ar yra ideju kaip tai butu imanoma padaryti?

×
×
  • Pasirinkite naujai kuriamo turinio tipą...