Pereiti prie turinio

Reserved

Nariai
  • Pranešimai

    15
  • Užsiregistravo

  • Lankėsi

  • Atsiliepimai

    0%

Reserved Pranešimai

  1. Jei dalinsi pradedant paskutiniu piratu ir baigiant pirmuoju, nereikės antro masyvo.

     

    int k[] = { 5, 4, 3, 2, 1 };
    const int n = 5;
    for (int i = n - 1; i >= 0; i--) {
    int d = min(n - i - 1, k[i]);
    for (int j = 1; j <= d; j++) {
    	k[i + j]++;
    }
    k[i] -= d;
    }

    Tai sakau, sprendimai gali visokie būt :)

  2. Hm. O kam tas rikiavimas? Laikiau aš šiemet šitą bandomą info ir netaip dariau :)

    Įmesiu kodą. Nežinau kaip veikia su kitokiais duomenim, bet kur tie ABCDE prie užduoties buvo, tai veikia ;)

    #include <iostream>
    #include <fstream>
    #include <iomanip>
    #include <string>
    #include <math.h>
    using namespace std;
    //------------------------------------
    const char CDfv [] = "Duomenys.txt";
    const char CRfv [] = "Rezultatai.txt";
    //------------------------------------
    void Nuskaitymas(int n,int Rado[], int Bend[]){
       ifstream fd(CDfv);
       for(int i = 0; i <n;i++){
           Rado[i]=0; Bend[i]=0;   //"Nunilina" abu masyvus
       }
       for(int j =0; j<5;j++)
           fd >> Rado[j];          //Rastus luitus sudeda į "Rado" masyvą
       fd.close();                 //Uždaro duomenų failą
    }
    void Veiksmas(int Bend[], int Rado[]){
       int p_nr;       //Pirato numeris
       for(int i=0; i <5;i++){
           p_nr = i+1;
           while(Rado[i] > 0 && p_nr <10){
               Bend[p_nr]++;
               Rado[i]--;
               p_nr++;
           }
           if(Rado[i]>0) Bend[i]=Rado[i];  //Po dalijimo jei lieka luitų, tai pasilieka sau
       }
    }
    void Isvedimas(int Bend[]){
       ofstream fr(CRfv);
       for(int i =0; i <10; i++)
           fr << Bend[i] << " ";
       fr.close();
    }
    //------------------------------------
    int main(){
       int n = 10;     //10 piratø dalijasi auksà
       int Rado[10];   //Penki piratai ir jø rastas aukso luitø kiekis
       int Bend[10];   //Kiek kiekvienas piratas turës aukso po visø dalybø
       Nuskaitymas(n,Rado,Bend);   //Nuskaito duomenis
       Veiksmas(Bend,Rado);        //Apskaičiuoja luitus
       Isvedimas(Bend);            //Išveda duomenis
       return 0;
    }
    

    Gavau 20 iš 20 taškų. Darau du masyvus, pirmas tai kiek piratų rado aukso, antras tai bendras, kiek kiekvienas piratas po dalybų turėjo. Turėtų veikt ir su kitais duomenim. Gal kažkas geresnį kodą sugalvojo :)

  3. http://1drv.ms/1VGTsl1

    #include <iostream>
    #include <fstream>
    #include <string>
    #include <vector>
    #include <algorithm>
    using namespace std;
    //-----------------------------
    const char CDfv[] = "Duomenys2.txt";
    const char CRfv[] = "Rezultatai1.txt";
    //-----------------------------
    void Nuskaitymas(int &n, string R[]);
    char Keisti(string s);
    void Isvedimas(string R[], int n);
    //-----------------------------
    int main() {
    int n;		//kiek masyve nariø
    string R[100];
    /*Kreipiniai į funckijas*/
    Nuskaitymas(n, R);      //Nuskaitymas: nuskaito šifrą ir sudeda į masyvą R
    int k=0;
    
    for(int i=0; i <n-1;i++){
        string t = R[i];
        R[i]=R[i+1];
        R[i+1]=t;
        i++;
    }
    //R[n]+= " "; R[n]=Keisti(R[n]);
    Isvedimas(R,n);         //Išvedimas: išveda atkoduotas raides
    return 0;
    }
    void Nuskaitymas(int &n, string R[]) {
    n = 0;
    ifstream fd(CDfv);
    while (!fd.eof()) {
    	getline(fd, R[n], ' '); //Nuskaito koduotą raidę iki tarpo
           n++;
    }
    fd.close();
    }
    char Keisti(string s) {
    char x;
    if (s == "*- ") x = 'A';
    else if (s == "*-*- ") x = 'Ą';
    else if (s == "-*** ") x = 'B';
    else if (s == "-*-* ") x = 'Č';
    else if (s == "---* ") x = 'Ė';
    else if (s == "-** ") x = 'D';
    else if (s == "* ") x = 'E';
    else if (s == "**-** ") x = 'Ę';
    else if (s == "**-* ") x = 'F';
    else if (s == "--* ") x = 'G';
    else if (s == "**** ") x = 'H';
    else if (s == "** ") x = 'I';
    else if (s == "-*-- ") x = 'Y';
    else if (s == "*--- ") x = 'J';
    else if (s == "-*- ") x = 'K';
    else if (s == "*-** ") x = 'L';
    else if (s == "-- ") x = 'M';
    else if (s == "-* ") x = 'N';
    else if (s == "--- ") x = 'O';
    else if (s == "*--* ") x = 'P';
    else if (s == "--*- ") x = 'Q';
    else if (s == "*-* ") x = 'R';
    else if (s == "*** ") x = 'S';
    else if (s == "---- ") x = 'Ð';
    else if (s == "- ") x = 'T';
    else if (s == "**- ") x = 'U';
    else if (s == "**-- ") x = 'Ū';
    else if (s == "**-- ") x = 'Ų';
    else if (s == "***- ") x = 'V';
    else if (s == "*-- ") x = 'W';
    else if (s == "-**- ") x = 'X';
    else if (s == "--** ") x = 'Z';
    else if (s == "--** ") x = 'Ž';
    else if (s == "----- ") x = '0';
    else if (s == "*---- ") x = '1';
    else if (s == "**--- ") x = '2';
    else if (s == "***-- ") x = '3';
    else if (s == "****- ") x = '4';
    else if (s == "***** ") x = '5';
    else if (s == "-**** ") x = '6';
    else if (s == "--*** ") x = '7';
    else if (s == "---** ") x = '8';
    else if (s == "----* ") x = '9';
    else if (s == "****** ") x = '.';
    else if (s == "*-*-* ") x = ',';
    else if (s == "**-** ") x = '?';
    else if (s == "--**-- ") x = '!';
    else if (s == "-****- ") x = '-';
    else if (s == "*-**-* ") x = '"';
    else if (s == "-*-*-* ") x = ';';
    else if (s == "---*** ") x = ';';
    else if (s == " ") x = ' ';
    return x;
    }
    void Isvedimas(string R[], int n){
       ofstream fr(CRfv);
       for(int i=0; i <n; i++)
           fr << R[i] << " ";
       fr.close();
    }
    
    

    Nesigauna apkeist narius, maždaug padariau, kad nuskaityt su getline iki tarpo, o vėliau darau +=" " kad pridėt tarpą, nes tarp simbolių tarpas yra. Tik va niekaip apkeitimas porinis tarpusavyje nesigauna. Gal kažką pasiūlysit? :) Po žodžio, t.y 4 simbolių dedu dar vieną tarpą, nes vienas nuo simbolio o kitas šiaip tarp žodžių.

  4. #include <fstream>
    #include <iostream>
    #include <fstream>
    #include <vector>
    using namespace std;
    //-----------------------------
    const char CDfv [] = "D.txt";
    const char CRfv [] = "Rez1.txt";
    //-----------------------------
    int main(){
       vector<char> A {'p','b','z','r','v','k'};
       cout << A[0];
    }
    

    Paklausiu čia, kas negerai vektoriuje parašyta, kad klaidą meta man? su masyvu taip nebūna, bet masyvas ne vektorius :)

  5. gali susikurt du kintamusiuos ir tada maždaug taip

    {
    for(int j =0;j<10;j++)
      A[j]=0;
    
    ifstream fd(bulves.txt);
    fd >> n
    int x,y;
    for(int i=0; i <n;i++){
       fd >> x >> y; A[x]+=y;
    }
    }
    

    maždaug vienas masyvas, jį nusinulini, o tada susikuri du kintamuosius, pirmas nuskaito dieną(masyvo numerį) ir tada į A[x] (masyvo vieta yra diena) o tada sudedi su y(bulvių maišų kiekis).

    Kaip dėl veikimo nežinau, pabandyk taip :)

  6. Sveiki, nesigauna uždavinys. Čia kiek kodo parašiau, gal kas pagalbėsit? :) Išveda 8 7 8 7 2 2 tokius skaičius, o ne kokie uždavinio atsakymo skiltyje nurodyti.

    #include <iostream>
    #include <fstream>
    using namespace std;
    /*--------------------------------------*/
    const char CDfv []="Duomenys.txt";
    const char CRfv [] ="Rezultatai.txt";
    const int m = 100;
    /*--------------------------------------*/
    void Nuskaitymas(const char fv[], int &n, int &d, int A[]);
    void Veiksmas(int &n, int d, int A[]);
    void Isvedimas(const char fv[], int A[], int n);
    void Salinimas(int A[], int &n, int ind);
    /*--------------------------------------*/
    int main() {
    int n, d, Bakt[m];
    
    Nuskaitymas(CDfv, n, d, Bakt);
    Veiksmas(n, d, Bakt); Isvedimas(CRfv, Bakt, n);
    return 0;
    }
    void Nuskaitymas(const char fv[], int &n, int &d, int A[]) {
    ifstream fd(fv);
    fd >> n >> d;
    for (int i = 0; i < n; i++) {
    	A[i] = 0;
    }
    for (int j = 0; j < n; j++)
    	fd >> A[j];
    
    fd.close();
    }
    void Veiksmas(int &n, int d, int A[]){
       int nr =0;
       while(n > nr){
          if(A[nr]>A[nr+1]&& A[nr]<7){
           A[nr]+=A[nr+1];
           Salinimas(A,n,A[nr+1]);
          }
          else if(A[nr] < A[nr+1] && A[nr+1] <7){
           A[nr]+=A[nr+1];
           Salinimas(A,n,A[nr+1]);
          }
          else
           nr++;
       }
    }
    void Salinimas(int A[], int &n, int ind) {
    for (int i = ind; i < n - 1; i++){
    	A[i] = A[i + 1];
    }
    n--;
    }
    void Isvedimas(const char fv[], int A[], int n) {
    ofstream fr(fv);
    for (int i = 0; i <= n; i++)
    	fr << A[i] << " ";
    
    fr.close();
    }
    

     

    https://www.ipix.lt/image/4lf7

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