Pereiti prie turinio

deividas707

Nariai
  • Pranešimai

    96
  • Užsiregistravo

  • Lankėsi

  • Atsiliepimai

    0%

Reputacijos išklotinė

  1. Patinka
    deividas707 sureagavo į wi_lius Dinamine atmintis grafineje sasajoje C++   
    Kai išsiskiri atmintį statiškai, nereikia rūpintis jos atlaisvinimu, nes tuo pasirūpina kompiliatorius.
     
    Statiškai:

    void foo(string *s) { ... } string a("kažkoks tekstas"); foo(&a);
     
    Dinamiškai:

    void foo(string *s) { ... } string *a = new string("kažkoks tekstas"); foo(a); delete a;
     
    Abejais atvejais veikimas toks pats — funkcija foo gauna kaip parametrą nuorodą į string'ą – tačiau pirmu atveju vietą objektui išrenka kompiliatorius, o antru — tu pats.
  2. Patinka
    deividas707 sureagavo į kashiukas Dinamine atmintis grafineje sasajoje C++   
    Nesu kodinęs vindovsui su cpp, todėl ką šiame kontekste tiksliai daro – nežinau.
    Šiaip šitas reikalas skaitomas taip: jei components != 0 (nelygu NULL), tada vykdomas kodas. components gali būti NULL tuo atveju, jeigu alokacija, dėl kažkokios priežasties, nepavyko.
  3. Patinka
    deividas707 sureagavo į kashiukas Dinamine atmintis grafineje sasajoje C++   
    ~MyForm() (destuktorius) būtų puiki vieta tą padaryti, nebent kažkoks komponentas tampa „nebereikalingas“ anksčiau, tokiu atveju, trink tada, kada objekto nebereikia.
  4. Patinka
    deividas707 sureagavo į babunas Problemėlė C++   
    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 ^_^
  5. Patinka
    deividas707 sureagavo į hafnis1324 Problemėlė C++   
    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[ZmoniuMasyvas.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.
  6. Patinka
    deividas707 sureagavo į hafnis1324 Problemėlė C++   
    O dar klase "Matrica" pashare'ink, nes dabar bijau suklysti, nes manau, kad joje tu ten laikai vardu/numeri/banku masyvus?
     
    EDIT: nvm.
    Tokie pastebejimai. Pirma, funkcijos ArYra (ta, kur as parasiau) prototipa pasirasyk. Antra, funkcijoj AtrenkamSkirtingus n = 0; turetu but, o ne n = 6. Tas n rodo, kiek yra skirtingu banku, o pradzioje ju yra 0, tiesa? O siaip tai turetu veikt kaip ir viskas, tik spausdinima dar pasirasyt. Nezinau koki ten errora apie undifined kintamaji gauni, galetum visa nukopijuot gal?
  7. Patinka
    deividas707 sureagavo į hafnis1324 Problemėlė C++   
    Tokie pastebejimai. Pirma, funkcijos ArYra (ta, kur as parasiau) prototipa pasirasyk. Antra, funkcijoj AtrenkamSkirtingus n = 0; turetu but, o ne n = 6. Taip pat ArYra funkcijoj ciklas turi eiti iki n. Tas n rodo, kiek yra skirtingu banku, o pradzioje ju yra 0, tiesa? O siaip tai turetu veikt kaip ir viskas, tik spausdinima dar pasirasyt. Nezinau koki ten errora apie undifined kintamaji gauni, galetum visa nukopijuot gal?
  8. Patinka
    deividas707 sureagavo į hafnis1324 Problemėlė C++   
    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.
  9. Patinka
    deividas707 sureagavo į Mm8 Realis Problemėlė C++   
    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, gali juos susirast. Rasti kiek skirtingų ir kokie tie bankai yra. Skirtingus bankus susirašyt į papildomą masyvą ir tada tikrinti.
     
    int b - kiek yra bankų;
    string bankai[10] - bankų rūšys.

    int j=0; for (int i=0; i<b; i++) { cout<<bankai[i]<<": "; while (M.ImtiBankas[j]==bankai[i]) cout<<informacija apie žmogų[j]<<" "; j++; cout<<endl; }
  10. Patinka
    deividas707 sureagavo į Taurius Matematika   
    Teisingai, dabar tereik suprastinti viršutinį Δx su apatiniu, įsistatyti 0 ir gaunasi tavo išvestinė
  11. Patinka
    deividas707 sureagavo į hafnis1324 C++   
    fd >> ws; pries cikla imesk. Atrodo, kad tas getline'as pirmas paiima naujos eilutes simboli \n, kuris likes po tu skaiciu nuskaitymo.
  12. Patinka
    deividas707 sureagavo į TheLightning C++   
    Man atrodo, kad tu nuskaitai 3 reikšmes, neperšoki į kitą eilutę ir pasiimi į masyvą tarpą arba nk nepasiimi.
    Peršok į kitą eilutę prieš leidžiant ciklą.
  13. Patinka
    deividas707 sureagavo į TheLightning C++   
    Gali naudoti klases arba struktūras.
     
    pvz.:

    struct MyPair { char letter; int number; }; MyPair pairAr[2]; MyPair myPair; myPair.letter = 'a'; myPair.number = 1; pairAr[0] = myPair;
  14. Patinka
    deividas707 sureagavo į Sharpaz C++   
    O neturėtų būti taip?
     
    Pirmą dieną Vardenis Pavardenis pagamino 1 detalę, antrą dieną pagamino 2, trečią - 3 ir t.t.
  15. Patinka
    deividas707 sureagavo į philips112 C++   
    3 5 2.50
    Pavardenis Vardenis Snoras LT123
    Pavardenis Vardenis DNB LT456
    Pavardenis Vardenis Sekundės bankas LT789
    1 Pavardenis Vardenis 3
    2 Pavardenis Vardenis 4
    3 Pavardenis Vardenis 7
     
     
    VA taip.
  16. Patinka
    deividas707 sureagavo į shiltnamis C++ uzduotis   
    sveikas, pabandžiau pirmu bandymu padaryti abu punktus. Turbūt labai primityvu viskas, bet vis tiek gal rasi kokią idėją, kurią sau pritaikysi. Su tais dviem tavo failais berods veikia, netikrinau atidžiai :)
     

    #include <iostream> #include <fstream> #include <vector> #include <cctype> #include <cstring> #include <algorithm> using namespace std; struct PalygintiStr { bool operator()(const string& s1, const string& s2) { return s1.size() > s2.size(); } }; void atrinktiZodzius(string s, vector<string>& v) { char tmp[1000]; strcpy(tmp, s.c_str()); char *p; p = strtok(tmp," ,.-\t\n"); while (p != NULL) { string konv(p); for (int i = 0; i < konv.size(); i++) { konv[i] = tolower(konv[i]); } v.push_back(konv); p = strtok (NULL, " ,.-"); } } void zodisPasikartoja(string z, int& p, int& a, const vector<string>& v1, const vector<string>& v2) { for (int i = 0; i < v1.size(); i++) { if (z == v1[i]) { p++; } } for (int i = 0; i < v2.size(); i++) { if (z == v2[i]) { a++; } } } bool yraZodis(string zodis, const vector<string>& z) { vector<string>::const_iterator it = find(z.begin(), z.end(), zodis); if (it != z.end()) return true; return false; } void ilgiausiZodziai(const vector<string>& v1, const vector<string>& v2) { int max = 0; vector<string> abu; // sujungsiu abu vektorius i viena, kad patogiau butu atrinkti abu.reserve(v1.size() + v2.size()); abu.insert(abu.end(), v1.begin(), v1.end()); abu.insert(abu.end(), v2.begin(), v2.end()); PalygintiStr pal; sort(abu.begin(), abu.end(), pal); vector<string> ilgiausi; // atrinktieji 10 zodziu for (int i = 0; i < abu.size(); i++) { if (ilgiausi.size() == 10) { break; } if (!yraZodis(abu[i], ilgiausi)) { ilgiausi.push_back(abu[i]); } } for (int i = 0; i < ilgiausi.size(); i++) { int p = 0; int a = 0; zodisPasikartoja(ilgiausi[i], p, a, v1, v2); cout << "Zodis: " << ilgiausi[i] << " pirmam: " << p << " antram " << a << endl; } } void ilgiausiPirmam(const vector<string>& v1, const vector<string>& v2) { vector<string> ilgiausi; for (int i = 0; i < v1.size(); i++) { if (ilgiausi.size() == 10) { break; } if (!yraZodis(v1[i], v2) && !yraZodis(v1[i], ilgiausi)) { ilgiausi.push_back(v1[i]); } } for (int i = 0; i < ilgiausi.size(); i++) { int kiek = 0; for (int j = 0; j < v1.size(); j++) { if (ilgiausi[i] == v1[j]) { kiek++; } } cout << "Zodis: " << ilgiausi[i] << " kartojasi: " << kiek << endl; kiek = 0; } } int main() { ifstream fin1("Knyga1.txt"); ifstream fin2("Knyga2.txt"); string k1, k2; while (!fin1.eof()) { k1.push_back(fin1.get()); } while (!fin2.eof()) { k2.push_back(fin2.get()); } vector<string> kn1; vector<string> kn2; atrinktiZodzius(k1, kn1); atrinktiZodzius(k2, kn2); PalygintiStr pal; sort(kn1.begin(), kn1.end(), pal); sort(kn2.begin(), kn2.end(), pal); cout << "1) uzd.\n\n"; ilgiausiZodziai(kn1, kn2); cout << "\n2) uzd.\n\n"; ilgiausiPirmam(kn1, kn2); }
  17. Patinka
    deividas707 sureagavo į hafnis1324 C++ uzduotis   
    Atsiprasau labai, bet pats busiu pervertines tolower ir toupper galimybes, sitos funkcijos dirba tik su char'ais, stringu "nevalgo". Sioks toks pasiulymas butu pasirasyt tokia f-ja:

    void mazinti (string & eilute) { for (int i = 0; i < eilute.length(); i++) eilute[i] = tolower(eilute[i]); }
    Ir kiekviena kart nuskaicius eilute nusiusti ja i sita f-ja (t.y. po getline(fd, eil) parasyti tokia eilute: mazinti(eil); ), taip ji taps su visom mazosiomis raidemis.
  18. Patinka
    deividas707 sureagavo į audrius^ Du vektoriu uzdaviniai. Pasimeciau   
    m = {x, y, z}, kadangi vektorius m statmenas Oz ašiai, tai z=0, tada m = {x, y, 0}
    |m| = 51 -> x2 + y2 = 512
    kadangi vektorius m statmenas vektoriui a = {8, -15, 3}, tai vektorių skaliarinė sandauga yra 0, iš čia
    8x - 15y = 0
    Toliau išspręskime lygčių sistemėlę:
    x2 + y2 = 512
    8x - 15y = 0
  19. Patinka
    deividas707 sureagavo į audrius^ Du vektoriu uzdaviniai. Pasimeciau   
    1. Vektorius žymėsiu paryškintai:
    a={1, -2, 3}
    b={1, 0, -1}
    Manau pradžiai spręsdamas gali pasirašinėti kaip atrodo vektoriai: 2a+j, 3b-i ir b-a-k
    pvz: 2a+j = 2*{1, -2, 3} + {0, 1, 0} = {2, -4, 6} + {0, 1, 0} = {2, -3, 6} ir taip susirandęs vektorių koordinates juos sudaugini mišriąja sandauga... Po to ieškodamas projekcijos naudojiesi šia formule: http://upload.wikimedia.org/math/e/e/2/ee2ee3db6d2d8c1f63b99f13c019f1dd.png
  20. Patinka
    deividas707 gavo reakciją nuo Eimantass Du vektoriu uzdaviniai. Pasimeciau   
    Nezinau kaip daryti siuos uzdavinius yra minicu ir ar mano skaiciavimai teisingi?
    Del pirmo paprasciausiasi susidauginu ir gaunu (2+j; -4+j; 6+j)x(3-i; -i; 3-i)*(-k; -2-k; 2-k)
    Ir tada viska i matrica susistatau ir suprantu kad gaunu nesamones....
     
    Antrame pasirasau, kad m(x; y; 0) tada m_z = |m|*cos90 = 0... toliau nezinau nei ka daryti...


  21. Patinka
    deividas707 sureagavo į hafnis1324 C++ antras maziausias masyvo narys   
    #include <limits.h> int A[5] = {10, 2, 10, 4, 5}; int min = numeric_limits<int>::max(); int min2 = numeric_limits<int>::max(); for (int i = 0; i < 5; i++) if (min > A[i]) { min = A[i]; } for (int i = 0; i < 5; i++) if (A[i] > min && A[i] < min2) min2 = A[i];
     
    Atrodo toks kodas veikia. Tik prie viso sito reiketu sugalvot kazka dar, jeigu visi skaiciai masyve vienodi :)
  22. Patinka
    deividas707 sureagavo į hafnis1324 C++ koordinaciu skaiciavimas   
    Zodziu, parsisiunciau tavo koda, kur vakar ten buvai idejes, jame nieko per daug keist nereikejo, kad viskas veiktu.
    Figuru klases metode Perimetras pakoregavau kelias eilutes:

    trper = trper + krastines[i]; pakeiciau i: trper = trper + Krastines(i); kvper = kvper + krastines[i]; pakeiciau i: kvper = kvper + Krastines(i);
     
    Tada pagrindineje programoje pasirasiau isvedima:

    for (int i = 0; i < fgk.Imti(); i++) cout << fgk.Imti(i).Perimetras() << endl;
     
    Rezultatus gaunu 17.5634, 62.8319, 23.6. Nezinau ar jie teisingi, bet skaiciai atrodo normalus.
  23. Patinka
    deividas707 sureagavo į hafnis1324 C++ koordinaciu skaiciavimas   
    Pasidarai metoda, kuris is figuros klases grazintu n (koordinaciu skaiciu). Tada ciklai atrodytu taip:

    for (int i=0; i < fgk.Imti(); i++){ for(int j = 0; j < fgk.Imti(i).ImtiN(); j++) // ta ImtiN() metoda pasidaryk Figuru klasej.
  24. Patinka
    deividas707 sureagavo į hafnis1324 C++ irasymas i faila   
    Ta veita turejau omeni, o problema labai paprasta, return srautas.str() isimk is to ciklo, nes jis grazina po pirmo irasymo i sstream'a, o ne surasius viska, ka reik ;)
  25. Patinka
    deividas707 sureagavo į hafnis1324 C++ irasymas i faila   
    Aha supratau jau ta paskui parases, ir dar kol rasei savo posta sita as savaji paeditinau :D zodziu, prasilenkem. Kaip ir sakiau tokiu atveju tau i figuros n reik ideti irgi padalinta is dvieju, nes tavo masyvai yra dvigubai mazesni nei idetas n, o tu suki cikla juos isspausdint vistiek iki n.
×
×
  • Pasirinkite naujai kuriamo turinio tipą...