Pereiti prie turinio

zonkaLT

Nariai
  • Pranešimai

    3
  • Užsiregistravo

  • Lankėsi

  • Atsiliepimai

    0%

zonkaLT Pranešimai

  1. // #6 Kas yra vadas?
    #include <fstream>

    using namespace std;

    //--- Globalieji dyziai ---
    const char CDfv[] = "Duomenys.txt";
    const char CRfv[] = "Rezultatas.txt";
    const int CMax = 50;
    //---Funkciju prototipai---
    void Skaityti(const char CDfv[], int &a, int &b);
    void Spausdinti(const char CRfv[], int a);
    int Numeris(int a, int b);
    //--- Programos veiksmai ---
    int main (){
        int n, k, nr;
        Skaityti(CDfv, n, k);
        ofstream fr;
        fr.open(CRfv);
        fr.close();
        nr = Numeris(n, k);
        Spausdinti(CRfv, nr);
        return 0;
    }
    //--- Funkcijos ---
    void Skaityti(const char CDfv[], int &a, int &b){
        ifstream fd(CDfv);
        fd >> a >> b;
        fd.close();
    }
    void Spausdinti(const char CRfv[], int a){
        ofstream fr(CRfv);
        fr << a;
        fr.close();
    }
    int Numeris(int a, int b){
        int A[a], x;
        for(int i = 0; i < a; ++i){
            A[i] = i + 1;
        }
        for(int i = 0; a != 1; ++i){
            for(int x = 1; x < b; ++x){
                if(i == a) i = 0;
                ++i;
            }
            if(i == a) i = 0;
            for(int j = i; j < a; ++j) A[j] = A[j + 1];
            --a;
            --i;
        }
        return A[0];
    }

  2. #include <fstream>

    using namespace std;

    //--- Globalieji parametrai ---
    const char CDfd[] = "Duomenys.txt";
    const char CDfr[] = "Rezultatas.txt";
    const int CMax = 104;
    //--- Funkciju parametrai ---
    void Skaityti(char A[], int B[], int &n);
    void Spausdinti(int R[], int r, int G[], int g, int M[], int m, int J[], int j);
    void MSdydis(char A[], int B[], int n, int &r, int &g, int &m, int &j); // Masyvo spalvu dydis
    int Perrasymas(char A[], int B[], int n, int R[], int G[], int M[], int J[]); // Masyvo spalvu perrasymas
    int Rikiavimas(int R[], int r, int G[], int g, int M[], int m, int J[], int j); // Masyvu rikiavimas didjancia tvarka
    //--- Pagrindine Funkcija ---
    int main (){
        char A[CMax];
        int B[CMax], n;
        Skaityti(A, B, n);
        int r = 0, g = 0, j = 0, m = 0;
        MSdydis(A, B, n, r, g, m, j); // Masyvo spalvu dydis
        int R[r], G[g], M[m], J[j];
        Perrasymas(A, B, n, R, G, M, J); // Masyvo spalvu perrasymas
        Rikiavimas(R, r, G, g, M, m, J, j); // Masyvu rikiavimas didjancia tvarka
        Spausdinti(R, r, G, g, M, m, J, j);
        return 0;
    }
    //--- Funkcijos ---
    void Skaityti(char A[], int B[], int &n){
        ifstream fd(CDfd);
        fd >> n;
        for(int i = 0; i < n; ++i){
            fd >> A[i] >> B[i];
        }
        fd.close();
    }
    void Spausdinti(int R[], int r, int G[], int g, int M[], int m, int J[], int j){
        ofstream fr(CDfr);
        int r1 = 0, g1 = 0, m1 = 0, j1 = 0;
        if(r > 2){
            for(int i = 0; i < r; ++i){
                int x = i, kiek = 1;
                while(R[x] + 1 == R[x + 1]){
                    ++kiek;
                    ++x;
                }
                if(kiek > 2){
                    for(int j = i; j < i + kiek; ++j){
                        fr << "R " << R[j] << " ";
                    }
                    fr << endl;
                    i += kiek - 1;
                    ++r1;
                }
            }
        }
        if(g > 2){
            for(int i = 0; i < g; ++i){
                int x = i, kiek = 1;
                while(G[x] + 1 == G[x + 1]){
                    ++kiek;
                    ++x;
                }
                if(kiek > 2){
                    for(int j = i; j < i + kiek; ++j){
                        fr << "G " << G[j] << " ";
                    }
                    fr << endl;
                    i += kiek - 1;
                    ++g1;
                }
            }
        }
        if(m > 2){
            for(int i = 0; i < m; ++i){
                int x = i, kiek = 1;
                while(M[x] + 1 == M[x + 1]){
                    ++kiek;
                    ++x;
                }
                if(kiek > 2){
                    for(int j = i; j < i + kiek; ++j){
                        fr << "M " << M[j] << " ";
                    }
                    fr << endl;
                    i += kiek - 1;
                    ++m1;
                }
            }
        }
        if(j > 2){
            for(int i = 0; i < j; ++i){
                int x = i, kiek = 1;
                while(J[x] + 1 == J[x + 1]){
                    ++kiek;
                    ++x;
                }
                if(kiek > 2){
                    for(int k = i; k < i + kiek; ++k){
                        fr << "J " << J[k] << " ";
                    }
                    fr << endl;
                    i += kiek - 1;
                    ++j1;
                }
            }
        }
        if(r1 < 1 && g1 < 1 && m1 < 1 && j1 < 1) fr << "Nera";
        fr.close();
    }
    void MSdydis(char A[], int B[], int n, int &r, int &g, int &m, int &j){ // Masyvo spalvu dydis
        for(int i = 0; i < n; ++i){
            if(A[i] == 'R') ++r;
            if(A[i] == 'G') ++g;
            if(A[i] == 'M') ++m;
            if(A[i] == 'J') ++j;
        }
    }
    int Perrasymas(char A[], int B[], int n, int R[], int G[], int M[], int J[]){ // Masyvo spalvu perrasymas
        int rr = 0, gg = 0, mm = 0, jj = 0;
        for(int i = 0; i < n; ++i){ 
            if(A[i] == 'R'){
                R[rr] = B[i];
                ++rr;
            }
            if(A[i] == 'G'){
                G[gg] = B[i];
                ++gg;
            }
            if(A[i] == 'M'){
                M[mm] = B[i];
                ++mm;
            }
            if(A[i] == 'J'){
                J[jj] = B[i];
                ++jj;
            }
        }
    }
    int Rikiavimas(int R[], int r, int G[], int g, int M[], int m, int J[], int j){ // Masyvu rikiavimas didjancia tvarka
        for(int i = 0; i < r - 1; ++i){ // Raudona
            for(int j = i + 1; j < r; ++j){
                if(R[i] > R[j]){
                    int temp = R[i];
                    R[i] = R[j];
                    R[j] = temp;
                }
                if(R[i] == R[j]){
                    int temp = R[j];
                    R[j] = R[r - 1];
                    R[r - 1] = temp;
                }
            }
        }
        for(int i = 0; i < r; ++i){ // Raudona, jeigu kartojasi
            if(R[i] == R[i + 1]){
                int x = i + 1;
                while(x < r - 1){
                    int temp = R[x];
                    R[x] = R[x + 1];
                    R[x + 1] = temp;
                    ++x;
                }
            }
        }
        for(int i = 0; i < g; ++i){ // Geltona
            for(int j = i + 1; j < g; ++j){
                if(G[i] > G[j]){
                    int temp = G[i];
                    G[i] = G[j];
                    G[j] = temp;
                }
            }
        }
        for(int i = 0; i < g; ++i){ // Geltona, jeigu kartojasi
            if(G[i] == G[i + 1]){
                int x = i + 1;
                while(x < g - 1){
                    int temp = G[x];
                    G[x] = G[x + 1];
                    G[x + 1] = temp;
                    ++x;
                }
            }
        }
        for(int i = 0; i < m; ++i){ // Melyna
            for(int j = i + 1; j < m; ++j){
                if(M[i] > M[j]){
                    int temp = M[i];
                    M[i] = M[j];
                    M[j] = temp;
                }
                
            }
            
        }
        for(int i = 0; i < m; ++i){ // Melyna, jeigu kartojasi
            if(M[i] == M[i + 1]){
                int x = i + 1;
                while(x < m - 1){
                    int temp = M[x];
                    M[x] = M[x + 1];
                    M[x + 1] = temp;
                    ++x;
                }
            }
        }
        for(int i = 0; i < j; ++i){ // Juoda
            for(int k = i + 1; k < j; ++k){
                if(J[i] > J[k]){
                    int temp = J[i];
                    J[i] = J[k];
                    J[k] = temp;
                }
            }
        }
        for(int i = 0; i < j; ++i){ // Juoda, jeigu kartojasi
            if(J[i] == J[i + 1]){
                int x = i + 1;
                while(x < j - 1){
                    int temp = J[x];
                    J[x] = J[x + 1];
                    J[x + 1] = temp;
                    ++x;
                }
            }
        }
    }

  3. #include <fstream>

    using namespace std;

    //--- Globalieji parametrai ---
    const char CDfd[] = "Duomenys.txt";
    const char CDfr[] = "Rezultatas.txt";
    const int CMaxN = 100;
    const int CMaxM = 100;
    //--- Funkciju parametrai ---
    void Skaityti(int A[], int B[], int &n, int &m);
    void Spausdinti(int A[], int B[], int &n, int &m);
    int Tikrinimas(int A[], int B[], int &n, int &m);
    int Rikiavimas(int A[], int B[], int n, int m);
    //--- Pagrindine Funkcija ---
    int main (){
        int A[CMaxN], B[CMaxM], n, m;
        Skaityti(A, B, n, m);
        Tikrinimas(A, B, n, m);
        Rikiavimas(A, B, n, m);
        Spausdinti(A, B, n, m);
        return 0;
    }
    //--- Funkcijos ---
    void Skaityti(int A[], int B[], int &n, int &m){
        ifstream fd(CDfd);
        fd >> n;
        if(n > 100 || n < 1){
            n = -1;
        }
        for(int i = 0; i < n; ++i){
            fd >> A[i];
        }
        fd >> m;
        if(m > 100 || m < 1){
            m = -1;
        }
        for(int i = 0; i < m; ++i){
            fd >> B[i];
        }
        fd.close();
    }
    void Spausdinti(int A[], int B[], int &n, int &m){
        ofstream fr(CDfr);
        if(n > 100 || m > 100 || n < 0 || m < 0){
            fr << "Patikrinkite ivestus duomenis." << endl;
            fr << "n [1 - 100], m [1 - 100]";
            fr.close();
        }
        if(m > 0){
            fr << "Reikalingi varztai:" << endl;
            while(m > 0){
                int kiek = 0, x = 0;
                for(int i = 0; i < m; ++i){
                    if(B[i] == B[x]) ++kiek;
                }
                fr << kiek << " " << B[0] << endl;
                while(kiek > 0){
                    for(int i = 0; i < m; ++i) B[i] = B[i + 1];
                    --m;
                    --kiek;
                }
            }
        }
        else fr << "Varztu nereikia." << endl;
        if(n > 0){
            fr << "Reikalingos verzles:" << endl;
            while(n > 0){
                int kiek = 0, x = 0;
                for(int i = 0; i < n; ++i){
                    if(A[i] == A[x]) ++kiek;
                }
                fr << kiek << " " << A[0] << endl;
                while(kiek > 0){
                    for(int i = 0; i < n; ++i) A[i] = A[i + 1];
                    --n;
                    --kiek;
                }
            }
        }
        else fr << "Verzliu nereikia.";
        fr.close();
    }
    int Tikrinimas(int A[], int B[], int &n, int &m){
        for(int i = 0; i < n; ++i){
            int x = 0;
            while(x < m){
                if(A[i] == B[x]){
                    for(int j = i; j < n; ++j) A[j] = A[j + 1];
                    --n;
                    for(int j = x; j < m; ++j) B[j] = B[j + 1];
                    --m;
                    x = 0;
                }
                else ++x;
            }
        }
    }
    int Rikiavimas(int A[], int B[], int n, int m){
        for(int i = 0; i < n - 1; ++i){
            for(int j = i + 1; j < n; ++j){
                if(A[i] > A[j]){
                    int temp = A[j];
                    A[j] = A[i];
                    A[i] = temp;
                }
            }
        }
        for(int i = 0; i < m - 1; ++i){
            for(int j = i + 1; j < m; ++j){
                if(B[i] > B[j]){
                    int temp = B[i];
                    B[i] = B[j];
                    B[j] = temp;
                }
            }
        }
    }

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