kestutis

2 lygis | 5 pamokėlė | 2. Komanda

Mar 17th, 2014
250
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.48 KB | None | 0 0
  1. #include <fstream>
  2. #include <iomanip>
  3.  
  4.  
  5. using namespace std;
  6.  
  7. //konstantos
  8. const char Dfv1[] = "Duomenys1.txt";
  9. const char Dfv2[] = "Duomenys2.txt";
  10. const char Rfv[] = "Rezultatai.txt";
  11. const int Ck = 10;
  12. const int Cm = 20;
  13.  
  14. //funkcijos
  15. void SkaitoS (ifstream & fv, int & kiek, double M[]);
  16. void Skaito (int & n, double S1[], int & m, double S2[]);
  17. void Iterpti (double s, int ii, int & kiek, double M[]);
  18. void Skaiciavimai (int & n, double S1[], int m, double S2[]);
  19. void Salinti (int & kiek, double M[]);
  20. void RasoS (int kiek, double M[]);
  21.  
  22. int main()
  23. {
  24.     int n;           //pradinio saraso kiekis
  25.     double S1[Cm];          //rezultatu masyvas
  26.     int m;              //papildomo saraso kiekis
  27.     double S2[Cm];          //papildomo saraso rezultatai
  28.  
  29.     Skaito (n, S1, m, S2);
  30.     Skaiciavimai (n, S1, m, S2);
  31.     if (n > Ck) Salinti (n, S1);
  32.     RasoS (n, S1);
  33.     return 0;
  34. }
  35. //skaito viena sarasa
  36. void SkaitoS (ifstream & fv, int & kiek, double M[])
  37. {
  38.     fv >> kiek;
  39.     for (int i = 0; i < kiek; i++)
  40.           fv >> M[i];
  41. }
  42. //duomenu skaitymas
  43. void Skaito (int & n, double S1[], int & m, double S2[])
  44. {
  45.     ifstream fd(Dfv1);
  46.     SkaitoS(fd, n, S1);
  47.     fd.close();
  48.     ifstream fdd(Dfv2);
  49.     SkaitoS(fdd, m, S2);
  50.     fdd.close();
  51. }
  52. //iterpia elementa
  53. void Iterpti (double s, int ii, int & kiek, double M[])
  54. {
  55.     for (int i = kiek; i > ii; i--)
  56.              M[i] = M[i - 1];
  57.     kiek++;
  58.     M[ii] = s;
  59. }
  60. //-----------------
  61. void Skaiciavimai (int & n, double S1[], int m, double S2[])
  62. {
  63.     for (int i = 0; i < m; i++)
  64.     {
  65.         if (S2[i] <= S1[0])
  66.         {
  67.             Iterpti (S2[i], 0, n, S1);
  68.         }
  69.         else if (S2[i] > S1[n - 1])
  70.         {
  71.             S1[n] = S2[i];
  72.             n++;
  73.         }
  74.         else
  75.         {
  76.             int j = 1;
  77.             while (j < n)
  78.             {
  79.                               if ( S2[i] > S1[j - 1] && S2[i] <= S1[j] )
  80.                               {
  81.                                     Iterpti (S2[i], j, n, S1);
  82.                                     j = n;
  83.                               }
  84.                              else j++;
  85.             }
  86.         }
  87.     }
  88. }
  89. //salina elementa
  90. void Salinti (int & kiek, double M[])
  91. {
  92.     for (int i = 0; i < Ck; i++)
  93.           M[i] = M[i + kiek - Ck];
  94.     kiek = Ck;
  95. }
  96. //raso vien sarasa
  97. void RasoS (int kiek, double M[])
  98. {
  99.     ofstream  fr(Rfv);
  100.     if (kiek < Ck) fr << "Komandai dar truksta " << Ck - kiek << " sportininkiu" << endl;
  101.     fr << "Atrinktu sportininkiu geriausiu rezultatu sarasas:" << endl;
  102.     for (int i = 0; i < kiek; i++)
  103.                fr << setw(5) << fixed << setprecision(2) << M[i];
  104.     fr << endl;
  105.  
  106.     fr.close();
  107. }
Advertisement
Add Comment
Please, Sign In to add comment