Pereiti prie turinio

saltis77

Nariai
  • Pranešimai

    115
  • Užsiregistravo

  • Lankėsi

  • Atsiliepimai

    0%

saltis77 Pranešimai

  1. Dekui :) yra dar pora uzdaviniu, del kuriu atsakymu neesu tvirtas. Kaip del sito? Kondensatoriaus talpa apskaiciuoju pagal formule C = q/u = 1/90, toliau pagal kondensatriaus talpos formule C = (e * e0 * S)/d issireiskiu d = (e * e0 * S)*90, bet kam lygu e ir e0 tada? Ir ar i ta puse mastau?

    post-90967-0-16859600-1400514469_thumb.jpg

  2. Duota tokia svyravimo lygtis ir reikia rasti jos greiti kai svytuokle bus raudonoje pozicijoje. Ar as gerai mastau?

    Kai bus raudonoj pozicijoj jos greitis bus didziausias, todel

    v = -12sin(30t+beta)

    kaip ir sakiau greitis bus didziausias, todel -12sin(30t + beta) imame didziasusia reiksme t.y 1

    tada iseina kad greitis butu v = |-12| = 12.

    post-90967-0-13879700-1400511449_thumb.png

  3. na mano nuomone taip, kada uzsiprenumeruoja tai tas ir menesis. Siaip destytojo klaust turi pasakys konkreciai kaip yra, nes cia visaip galima interpretuot.

    Dekui, tai menesiai kaip ir aiskus jau, o dabar del kruvio tai jei tas agentas (arba jo kodas) turi daugiau prenumeratoriu tamenesi tai paprasciausiai pliusinti kieki taip? Nes ir cia neaisku man ko is manes konkreciai nori. O beda ta, kad destytojas taip ir nepasake konkreciai ko reikalaujama, o uzduotis taip lengvai interpretuojama kad neaisku kur ka daryti. O gal yra daugiau nuomoniu?

  4. Sveiki, manau kad siame forume tikrai nera daug dirbusiu su sarasu rinkiniu, todel greitu metu ir nesitikiu gauti pagalbos, bet gal uzmatys sia tema kuris jau zino kazka minimalaus apie si rinkini. Jo ideja tokia Yra tarsi kamienas(SarH). Kamienas turi savo pavadinima mano atveju data. Taip pat yra is Sakos(SarV) (jos prijungiamos prie kamieno).

    Problema tokia. As noriu rasyti kazkokia funkcija uz KLASES ribu!. Vadinasi norint pamatyti visus sio ssaraso duomenis man reikes kazkokiu metodu void Pradzia(); bool Yra() ir void Kitas(). Butent del so ir yra daugiausiai problemu. Kaip man ji redaguoti, nes dabar kai bandau funkcijoje cikla ir einu per siuos saraso elementus gaunu tik paskutini viena saraso elementa. Tiesiog garantuoju kad klaida yra butent tame metode, as tik nezinau kaip ji pakeisti kad su sarasu butu viskas ok.

     

    Duomenu failas

     

    2014-04-24;

    Laurynas Sodų g., 8 3 5 45895

    Mindaugas Stadiono g., 7 9 9 46589

    Romas Gėlių g., 9 7 4 46841

    Karolis Rūdupio g., 12 4 3 56879

    Paulius Rutkiškių g., 4 8 9 65489

     

    Mano gautas rezultatas (konsoleje!!!! rezultatu faile viskas ok!!!)

    Laurynas Sodų g., 8 3 5 45895

     

     
    struct Leidiniai{
    string pavarde;
    string adresas;
    int pradzia;
    int ilgis;
    int kiekis;
    string kodas;
    };
    
    struct SarV{
    Leidiniai duom;
    SarV *sekV;
    };
    
    struct SarH{
    string data;
    SarH *sekH;
    SarV *prV;
    };
    
    class Sakotas{
    private:
    SarH *pr, *d;
    void NaikintiSakosSarasa(SarV *&pr);
    void SkaitytiDokumenta(wstring fv, string &pv, SarV *&prV);
    void SpausdintiSakosSarasa(ofstream &rf, SarV *prV);
    
    Sakotas(const Sakotas &kitas);
    Sakotas & operator = (const Sakotas &kitas);
    public:
    Sakotas():pr(NULL), d(NULL){}
    ~Sakotas();
    
    void NaikintiSarasa();
    void SpausdintiSarasa(string failas, string data);
    void IterptiSaka(wstring failas);
    
    void Pradzia(){d = pr;}
    bool Yra(){return d != NULL;}
    void Kitas(){d = d->sekH;} // sitas turi buti koreguojamas, bet kaip!!!!!!!!??????
    
    Leidiniai Imti(){return d->prV->duom;}
    };
    
    Sakotas::~Sakotas(){
    NaikintiSarasa();
    }
    
    void Sakotas::NaikintiSarasa(){
    SarH *d = pr;
    while(pr != NULL){
    	d = pr;
    	pr = pr->sekH;
    	NaikintiSakosSarasa(d->prV);
    	delete d;
    }
    }
    
    void Sakotas::NaikintiSakosSarasa(SarV *&pr){
    SarV *d;
    while(pr != NULL){
    	d = pr;
    	pr = pr->sekV;
    	delete d;
    }
    }
    
    void Sakotas::SkaitytiDokumenta(wstring fv, string &pv, SarV *&prV){
    ifstream fd(fv.c_str());
    getline(fd, pv, ';');
    prV = NULL;
    while(!fd.eof()){
    	Leidiniai leid;
    	fd >> leid.pavarde;
    	getline(fd, leid.adresas, ',');
    	fd >> leid.pradzia;
    	fd >> leid.ilgis;
    	fd >> leid.kiekis;
    	fd >> leid.kodas;
    	fd.ignore();
    
    	SarV *s = new SarV;
    	s->duom = leid;
    	s->sekV = prV;
    	prV = s;
    }
    fd.close();
    }
    
    void Sakotas::SpausdintiSakosSarasa(ofstream &rf, SarV *prV){
    SarV *p = prV;
    while(p != NULL){
    	Leidiniai leid = p->duom;
    	rf << leid.adresas << " " << leid.pavarde << " " << leid.pradzia << " " << leid.ilgis << " " << leid.kiekis << " " << leid.kodas << endl;
    	p = p->sekV;
    }
    rf << endl;
    }
    
    void Sakotas::SpausdintiSarasa(string failas, string data){
    ofstream rf(failas.c_str(), ios::app);
    rf.setf(ios::left);
    rf << data << endl;
    SarH *d = pr;
    while(d != NULL){
    	rf << d->data << endl;
    	SarV *v = d->prV;
    	SpausdintiSakosSarasa(rf, v);
    	d = d->sekH;
    }
    rf.close();
    }
    
    void Sakotas::IterptiSaka(wstring failas){
    SarV *prV = NULL;
    string fk;
    SkaitytiDokumenta(failas, fk, prV);
    
    SarH *d = new SarH;
    d->data = fk;
    d->prV = prV;
    d->sekH = pr;
    pr = d;
    }

     

    void Kruvis(Sakotas & sakotas);
    
    int main(){
    
    Sakotas sakotas;
    
    Ktuvis(sakotas);
    
    return 0;
    }
    
    void Kruvis(Sakotas & sakotas){
    for(sakotas.Pradzia(); sakotas.Yra(); sakotas.Kitas()){
    	Leidiniai leid = sakotas.Imti();
    	cout << leid.vardas << " " << leid.gatve << endl;
    
    }

  5. Sveiki, iskilo klausimas del kopijos konstruktorius. Dragas sako, kad reikia naudoti jo varianta nes jis yra tinkamas darytas pagal pavyzdzius ir taip toliau. Klausimas Arjo kopijos konstruktorius tikrai tinkamesnis nei mano???

    Mano variantas:

    Car::Car(const Car & second){
       Auto *dn;
       pr = gl = NULL; // pr - begin, gl - end
       for(Auto *e = second.pr; e != NULL; e = e->Next()){
           dn = new Auto(e->GetData());
           if(!pr){
               pr = gl = dn;
           }else{
               gl->SetR(dn);
           }
           gl = dn;
       }
    }

     

    Jo variantas

     

    Car::Car(const Car *& second){
       pr = NULL;
       for (Auto * d = second->p; d != NULL; d = d->Next())
           Create(second->getData());
    }
    
    void Car::Create(const AutoData & duom){
       if (pr == NULL)
           pr = gl = new Auto(duom);
       else {
           Auto * it = new Auto(duom);
           gl->Set(it);
           gl = it;
       }
    
    }

     

    Apskritai as net nemanau kad antras draugo variantas yra kopijos konstruktorius net...

  6. Dekui, turiu dar viena klausima. Ar kai klasese kazkoki Imti metoda turiu ar butinai reikia pabrezti kad jis yra const? pvz

    class AutoElementas{
    private:
    AutoDuomenys duom;
    AutoElementas *kitas;
    public:
    AutoElementas *ImtiRysi(){return kitas;}
           cont AutoElementas *imtiRysi() const {return kitas;}
    };

    Ar uztenka tik vieno ImtiRysi metodo?

  7. Trupuciuka pertvarkes koda panaudojau operatoriaus uzklojima. Butu idomu paziureti tavo atveji, kaip jis veiktu, nes yra gerai zinoti daugiau nei viena sprendimo buda :)

    string SurastiMaziausia(Automobiliai *A1){
    AutoDuomenys min;
    min.DetiCo2(numeric_limits<int>::max());
    string model;
    for(A1->Pradzia(); A1->Yra(); A1->Kitas()){
    	AutoDuomenys au = A1->Imti();
    	if(au < min && au.ImtiKategorija() == 5){
    		min.DetiCo2(au.ImtiCo2());
    		model = au.ImtiModeli();
    	}
    }
    return model;
    }

  8. Kodėl negali?

    class A
    {
    private:
           int m_someint;
    public:
           A(int i) : m_someint(i) { } 
           bool operator<(int other_int)
           {   
                   return m_someint < other_int;
           }   
    };
    
    int main(void)
    {
           A a = A(3);
           if(a < 4) cout << "3 < 4\n"; // <- true
           return 0;
    }
    

     

    Šitas, kaip ir, veikia?

    Bet kai as parasau

    if(au < min && au.ImtiKategorija() == 5){
      ...
    }

    gaunu toki errora

    IntelliSense: no operator "<" matches these operands

    operand types are: AutoDuomenys < int

    vadinasi negalima lyginti int su klases kintamuoju.
     bool AutoDuomenys::operator < (const AutoDuomenys &kitas){
           return anything < kitas.anything;
    }

    si koda as koreguoti negaliu(cia pavyzdine uzduotis ir duota toks palyginimo operatorius salygoje, tik jis nebuvo realizuotas).

  9. Sveiki, uzduotyje reikia realizuoti(ir greciausiai panaudoti) bool operatoriu <. Kur galima ji panaudoti jei as apsiejau ir be jo?

    bool AutoDuomenys::operator < (const AutoDuomenys &kitas){
    return co2 < kitas.co2;
    }
    
    string SurastiMaziausia(Automobiliai *A1){
    int min = numeric_limits<int>::max(); // didziausia reiksme
    string model;
    for(A1->Pradzia(); A1->Yra(); A1->Kitas()){
    	AutoDuomenys au = A1->Imti();
    	if(au.ImtiCo2() < min && au.ImtiKategorija() == 5){
    		min = au.ImtiCo2();
    		model = au.ImtiModeli();
    	}
    }
    return model;
    }

    taip pat jei apsirasau objektus dinamiskai ar leidzia "programavimo kultura" juos istrinti main'e?

    	Automobiliai *A1 = new Automobiliai();
    Automobiliai *B1 = new Automobiliai();
    
    delete A1;
    delete B1;

    P.S sios uzduoties fragmente reiktu panaudoti bool operatoriu.

    post-90967-0-19379900-1398699432_thumb.jpg

  10. Sveiki, noriu pasitikslinti ar viska gerai supratau sioje uzduotyje. Objektu saraso konteineris tai yra tai kas as cia darau taip? Nes labai neaisku ar cia neturima omenyje STL.

    class AutoDuomenys {
      string gamintojas, modelis;
       int kategorija, co2;
    public:
       AutoDuomenys ();
       AutoDuomenys (string g, string m, int k, int c);
         ~AutoDuomenys ();
    string ImtiGamintoja(){return gamintojas;}
    void DetiGamintoja(string s){gamintojas = s;}
    string ImtiModeli(){return modelis;}
    void DetiModeli(string s){modelis = s;}
    int ImtiKategorija(){return kategorija;}
    void DetiKategorija(int k){kategorija = k;}
    int ImtiCo2(){return co2;}
    void DetiCo2(int k){co2 = k;}
       bool operator < (const AutoDuomenys &kitas);
    };
    
    bool AutoDuomenys::operator < (const AutoDuomenys &kitas){
    return 0; // ateityje koreguosiu
    }
    
    class AutoElementas{
    private:
    AutoDuomenys duom;
    AutoElementas *kitas;
    public:
    AutoElementas(AutoDuomenys a = AutoDuomenys(), AutoElementas *e = NULL):
    	duom(a), kitas(e){}
    ~AutoElementas(){}
    
    void DetiDuomenis(const AutoDuomenys &a){duom = a;}
    AutoDuomenys ImtiDuom() const {return duom;}
    
    void DetiRysi(AutoElementas *naujas){kitas = naujas;}
    const AutoElementas *ImtiRysi() const {return kitas;}
    AutoElementas *ImtiRysi(){return kitas;}
    };
    
    class Automobiliai{
    private:
    AutoElementas *pr, *pb, *s;
    public:
    Automobiliai():pr(NULL), pb(NULL), s(NULL){}
    ~Automobiliai(){Naiktinti();}
    void Naiktinti();
    
    void Pradzia(){s = pr;}
    bool Yra(){return s != NULL;}
    void Kitas(){s = s->ImtiRysi();}
    AutoDuomenys Imti(){return s->ImtiDuom();}
    void Deti(const AutoDuomenys &duom);
    };
    
    void Automobiliai::Naiktinti(){
    while(pr){
    	s = pr;
    	pr = pr->ImtiRysi();
    	delete s;
    }
    pb = NULL;
    }
    
    void Automobiliai::Deti(const AutoDuomenys & duom){
    if(pr == NULL){
    	pb = pr = new AutoElementas(duom, pr);
    }else{
    	AutoElementas *iterpt = new AutoElementas(duom);
    	pb->DetiRysi(iterpt);
    	pb = iterpt;
    }
    }
    
    //void Skaityti(Automobiliai *A1);
    
    int main(){
    
    Automobiliai *A1;
    
    //Skaityti(A1);
    
    system("pause");
    return 0;
    };

    post-90967-0-23160800-1398587899_thumb.jpg

  11. Ar yra minciu? Kaip as suprantu tai

    for(Mazgas *sna = pr->kitas; sna->kitas != NULL; sna = sna->kitas){
       int du =  sna->Imti();
       Mazgas *eiti = sna->kitas;
       if (du > psl){
          *sna = *eiti; // cia perstumia viena reiksme i prieki, nes *sna = pr->kitas, o *eiti = sna->kitas
       }
    }

    Tai jei salyga tenkinama kai if(du > psl) du = 78, o psl = 70 turetu ta 78 "pasalinti is saraso".

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