Pereiti prie turinio

Julinho

Nariai
  • Pranešimai

    60
  • Užsiregistravo

  • Lankėsi

  • Atsiliepimai

    0%

Julinho Pranešimai

  1. Tai čia sprendimas trivialus, yra n+k būtų padaryt praktiškai tą patį. Vienas iš kitokių kelių, vietoj bool'o galėjai panaudotos pirštinės numerius nuliais užpildyt ir jos nebeskaičiuotų. Tas bool'as šiuo atvėju kaip flagas nurodantis, praleist pirštinę jei su ja pora jau sudaryta.

    Ačiū, supratau dabar dėl ko reikėjo panaudot šitą bool :)

  2. Bandyk taip:

    Pridėk į struktūrą naują kintamąjį

    struct Pirstines {
     //failo skaitymui
     int Sk1; // Vieta pirmam skaičiui iš failo
     int Sk2; // antram skaičiui
     int Sk3; // trečiam skaičiui
     bool used;
    };

    Skaityme visur jį inicializuok

    for(int i = 0; i < n; i ++) {
     fd >> A[i].Sk1 >> A[i].Sk2 >> A[i].Sk3;
     A[i].used = false;
    }

    Ir tikrinant poras, jau panadotas išmesk

    if(A[i].Sk3 == A[j].Sk3 && A[i].Sk1 == m && A[j].Sk1 == m && A[i].Sk2 != A[j].Sk2 && (!A[i].used && !A[j].used)) {
     b++;
     A[i].used = true;
     A[j].used = true;
     break;
    }

    Dėkui labai, gal galėtum paaiškint kodėl tiap reikėjo rašyt? nes su tuo bool tipu labai retai kada susiduriu. :)

  3. Sveiki, taigi susidūriau su problema failo nusiskaitymą pasidariau gerai, viskas gerai, bet yra viena vietą kai skaičiuoju pirštinių poras man išmeta trys nors turėtu išmest 2.Ką darau Blogai? VIsas kodas ir duomenų failas:

     

    14
    4 1 25
    4 1 13
    4 2 15
    4 2 25
    3 2 42
    3 2 25
    4 1 25
    3 1 25
    4 1 25
    3 1 42
    3 1 25
    3 1 36
    4 1 24
    4 1 15
    

     

    const int Cmax = 100;
    const int Cpav = 20;
    
    struct Pirstines
    {
       //failo skaitymui
       int Sk1; // Vieta pirmam skaičiui iš failo
       int Sk2; // antram skaičiui
       int Sk3; // trečiam skaičiui
    };
    //funkcijos
    
    void Skaityti (Pirstines A[], int & n)
    {
       ifstream fd(Cdf);
       fd >> n;
       for(int i = 0; i < n; i ++)
       {
           fd >> A[i].Sk1 >> A[i].Sk2 >> A[i].Sk3;
       }
       fd.close();
    }
    
    void Spausdinti (Pirstines A[], int n)
    {
       ofstream fs(Cfd);
       for(int i = 0; i < n; i ++)
       {
           fs<<A[i].Sk1 << " "<< A[i].Sk2 << " "<< A[i].Sk3<<endl;
       }
       fs.close();
    }
    
    
    // kiek yra piršinių vyriškos ir moteriškos lyties.
    int KiekYraPirstiniu(Pirstines A[], int n, int m)
    {
       int c = 0;
       for(int i = 0; i < n; i++)
       {
           if(A[i].Sk1 == m)
           {
               c++;
           }
       }
       return c;
    }
    
    int PirstiniuPoros (Pirstines A[], int n,int m)
    {
       int b = 0;
           for(int i = 0; i < n; i ++)
           {
              for(int j = i + 1; j < n; j++)
              {
                   if(A[i].Sk3 == A[j].Sk3 && A[i].Sk1 == m && A[j].Sk1 == m && A[i].Sk2 != A[j].Sk2)
                   {
                      b++;
                   }
    
              }
           }
       return b;
    }
    int main()
    {
       int n; // pirsšiniu skaičius
       int v = 3; int m = 4; // indeksai vyru ir moteru
       int d = 2, k = 1;
       int mot, vyr; // išviso piršinių kiek yra viriškos lyties ir keik moteriškos.
       int motp,vyrp; // vyriškų porų ir moteriškų porų piršinių sk.
       Pirstines A[Cmax];
       Skaityti(A,n);
       mot  = KiekYraPirstiniu(A,n,m);
       vyr = KiekYraPirstiniu(A,n,v);
       vyrp = PirstiniuPoros(A,n,v,);
       Spausdinti(A,n);
       cout<<vyrp;
       return 0;
    }
    

  4. Žinok, pakeičiau Cpav į 15. vistiek nk, bet dabar man rodos supratau, kad Getlie(fd,A.vard) negaunu jokios info tusčias langas.

     

    REDAGUOTA:

    Radau, kalida buvo, nes duomenų faile tarpus dariau su tabu. :D

  5. Sveiki, taigi susidūriau su problema. ieškojau klaidos, bet rasti negalėjau. Yra toks reikalas, kad reikia rasti Vienodus vardus. Duomenų faile duota Pavardė/vardas :

    7
    Margis		Petras
    Batuotas	Algis
    Barsė		Rita
    Barsis		Rimas
    Liepa		Petras
    Liepa		Rima
    Liepa		Rita

    ir kai ieškau vienodu vardus man turi rezultate spausdint Vardas ir kiek kartų jis pasikartoja, tačiau gaunu šita:

    Margis		Petras  7

    Visas programos kodas:

    const char Cdf[] = "mokiniai.txt";
    const char Cfd[] = "rez.txt";
    const int Cmax = 300;
    const int Cpav = 20;
    struct Zmogus{
       string  pav,
               vard;
       int     kiek;
    };
    
    void Skaityti(Zmogus A[], int & n)
    {
       char eil[Cpav + 1];
       ifstream fd(Cdf);
       fd>>n;
       fd.ignore(80, '\n');
       for(int i = 0; i < n; i ++)
       {
           fd.get(eil,Cpav);
           A[i].pav = eil;
           getline(fd,A[i].vard);
           A[i].kiek = 1;
       }
       fd.close();
    }
    
    void Spausdinti ( Zmogus A[], int n, string pav)
    {
       ofstream fs(Cfd);
       fs<< pav <<endl;
       for(int i = 0; i < n ; i ++)
       {
           fs <<A[i].pav<<" "
              <<A[i].vard<<" "
              <<A[i].kiek<<endl;
       }
       fs.close();
    }
    
    int Yra(Zmogus A[], int n, string pav)
    {
       for(int i = 0; i < n; i++)
       {
           if(A[i].vard == pav)
           {
               return i;
           }
       }
       return -1;
    }
    
    void Atrinkti (Zmogus A[], int n, Zmogus B[], int & m)
    {
       m  = 0;
       for(int i = 0 ; i < n; i++)
       {
           int k = Yra(B,m,A[i].vard);
           if ( k >= 0)
           {
               B[k].kiek++;
           }
           else{
               B[m] = A[i];
               m++;
           }
       }
    }
    
    int main()
    {
       Zmogus A[Cmax], B[Cmax];
       int n,m;
    
       Skaityti(A,n);
       Atrinkti(A,n,B,m);
       Spausdinti(B,m,"Vardai:");
       return 0;
    }
    

     

    Ką ne taip darau?

  6. Sveiki, turiu uždavinį kad iš pateikto duomenų faile esančio sąrašo man reikia išrinkti miestus, kurie sudaryti iš 2 žodžių.

    duomenų failo pvz:

    5 // kiek miestų pav surašyta
    Druskininkai
    Naujoji Akmenė
    Trakai
    Zarasai
    Kazlų Rūda
    

    Tai rezultatų faile turėtų būt surašytą tik Kazlų ruda ir Naujoji akmenė.

    Gal kas žinot kaip man išrinkti tuos miestus? Mėginau daryt su if(Getline(fd,A) == ' ') ir tada spausdint, bet metė errorą.

    o dabar sėdėdamas išmąsčiau, kad galima suskaičiuot koks yra didžiausias miesto pavadinimas iš kiek simbolių susideda sukurt naują char tipo masyvą iš tiek kiek yra daugiausia raidžių ir tada kiekvieną eilutę priskirt masyvui ir tikrinti ar yra tarpo simbolis?

    gal kas galit padėt? ar yra kokia funkcija string, kad sužinot ar yra tarpo simbolis?

  7. šiaip netaip išmąsčiau kaip padaryt :) Kodas, gal kam prireiks :)

     

    int main()
    {
       int n;
       ifstream fd(Cdf);
       fd>>n; 
       int A[n];
       for(int i = 0; i < n; i++)
       {
           fd >> A[i]; 
       }
       for(int i = 0; i < n; i ++) 
       {
           if(A[i] % 2 !=0)
           {
               for(int j = i; j < n; j++)
               {
                   A[j] = A[j+1];
               }
               n--;
           }
       }
       for(int i = 0; i < n; i++)
       {
           cout<<A[i]<<" ";
       }
       fd.close();
       return 0;
    }
    

  8. SVeiki, taigi kaip šalinti iš masyvo vieną skaičių suprantu, bet kada yra jų tarkim 3 - 5 ir reikia naudoti kitą masyvą nelabai suprantu. Norėčiau, kad paaiškintumėt kaip šalint skaičius iš masyvo turint kitam masyve skaičių indeksus kuriuos reikia pašalinti iš masyvo A[];

    Užduotis: reikia iš masyvo A pašalinti nelyginius skaičius ir juos surikiuoti. surikiuoti moku, bet pašalinti iš masyvo niekaip.. bandžiau visaip. kodas ką mėginau paskutinį kartą daryt :

    int main()
    {
       int n;
       ifstream fd(Cdf);
       fd>>n;
       int c= 0;
       int A[n]; // priskiriu N reikšmę masyvui.
       int B[c]; // indeksam gauti.
       for(int i = 0; i < n; i++)
       {
           fd >> A[i]; // nusiskaitau iš failo duomenys.
           if(A[i] % 2 != 0)
           {
               c++; // B masyvo inddeksas
              B[c] = i; // priskiriu nelyginių sk indeksus masyvui B;
           }
       }
       for(int i = 0;  i < c; i++)
       {
           for(int j = B[0]; j<n-1; j++)
           {
               A[j] = A[j+1]; // keičiu vietomis riekšmes.
           }
           n--; // atimu ilgi.
       }
       for(int i = 0; i < n; i++)
       {
           cout<<A[i];
       }
       fd.close();
       return 0;
    }
    

  9. nu tai nusiskaitai iš failo duomenys , tada darai funkcija kuri skaičiuoja kiek prireiks konteinerių. kitą funkcija padarysi kiek bus pilnų konteinerių ten

    pvz if sum % 2 ==0 sk++ ir panašiai.

  10. Sveiki, Gal būt net ne taip darau, bet nelabai aiški man šita tema. turiu kiek suprantu surast indeksą. užduotis:

    http://www.part.lt/img/9ab312a7c22f3e8be7849e53c51288b214.png

     

     

    kodas kurį padariau spausdina 3 9 9 9 3 9 9 9 3 9 9 9.

    
    const int cmax = 20;
    int main()
    {
      int A[cmax] = {3,7,19};
      int B[cmax] = {4,9,21,14,133};
       int sk = 0;
       for(int i = 0; i < 3; i++)
       {
           for(int j = 0; j < 5; j++)
           {
               if(B[j] % A[i] == 0)
               {
                   sk = A[i+1];
                   A[i+1] = A[i];
                   A[i] = sk;
                   A[i] = B[j];
               }
            cout<<A[i]<<" ";
           }
    
       }
       return 0;
    }

  11. Sveiki, taigi susidūriau su problema. Turiu užduotį:

    http://www.part.lt/img/3383e3bd877d7d31ef0f71c47ceeb1c4640.png.

     

    Problema tokia, kad nelabai susigaudau, kaip ten su tais indeksais yra masyve ir kaip pridėt skaičių ar pradžioj ar pabaigoj. Jei kas galit paaiškinkit kaip ten su tais indeksų ieškojimais ir skaičiaus pridėjimais.

    Kodo mėginimas:

     

    #include <iostream>
    #include <stdlib.h>
    #include <fstream>
    #include <cmath>
    #include <iomanip>
    using namespace std;
    const char Cdf[] = "mokiniai.txt";
    const char Cfd[] = "rez.txt";
    const char cdfs[] = "ugiai.txt";
    const int Cmax = 100;
    
    void skaityti(int A[],int B[], int &n, int &m)
    {
       ifstream fd(Cdf);
       ifstream fd1(cdfs);
       fd>>n;
       for(int i = 0; i < n ; i++)
       {
           fd>>A[i];
       }
       fd1>>m;
       for(int i = 0; i < m; i++)
       {
           fd1>>B[i];
       }
    
       fd.close();
       fd1.close();
    }
    
    void Spausdinti(int A[],int B[], int n,int m)
    {
       ofstream fs(Cfd);
       fs<<"Sudetos monetos :"<<endl;
       for(int i = 0; i < n; i++)
       {
           fs<<A[i]<<" ";
       }
       fs<<endl;
       fs<<"NEsudetos monetos :"<<endl;
       for(int i = 0 ; i < m; i++)
       {
           fs<<B[i]<<" ";
       }
       fs<<endl;
       fs<<"------------------"<<endl;
       fs.close();
    }
    
    int Indeksas(int A[], int B[],int n, int m)
    {
       for(int i = 0; i < n+ m;i++)
       {
           if(A[i] == B[i])
           {
               return i;
           }
       }
       return -1;
    }
    
    int main()
    {
       int A[Cmax];
       int B[Cmax];
       int n,m;
       int ind;
       ofstream fs(Cfd, ios::app);
       skaityti(A,B,n,m);
       Spausdinti(A,B,n,m);
       ind = Indeksas(A,B,n,m);
    
       fs.close();
       return 0;
    }
    

  12. Sveiki, taigi turiu zebra internetą. Nuėjau į 192.168.1.254. ten viską surašiau nuėjau į internet connection ir mėginau pakeist passwordą, bet kai paspaudžių ok man rašo DRG A125G reikės tipo persikraut spaudžiu ok. ir tada dingo man WIFI, o ant pc rašo tipo: Šiame kompiuteryje įrašyti tinklo parametrai neatitinka tinklo reikalavimų.

    ir prie WIFI ID rodo raudoną X. Mėginau visaip, bet veikia tik kai būna be užrakto, gal kas žino kas gali būt ?

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