Advertisement
VladimirKostovsky

Лаба №1.4(б). Мертвый сезон.

Mar 10th, 2022
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.28 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <string>
  4. using namespace std;
  5. float number;
  6. int step;
  7. float number2;
  8. int step2;
  9. float number3;
  10. int step3;
  11.  
  12. struct polinomP { float data; float power; polinomP* next; } *S;
  13. void Read_polinomP(polinomP* S) // функция формирования списка
  14. {
  15.     polinomP* t;
  16.     t = S;
  17.  
  18.     ifstream F;
  19.     F.open("file1.txt");
  20.  
  21.     if (!F.is_open())
  22.     {
  23.         cout << "Ошибка откытия файла" << endl;
  24.     }
  25.     else {
  26.         cout << "Файл открыт" << endl;
  27.  
  28.         while (!F.eof())
  29.         {
  30.             F >> number; // заглавное звено
  31.             t->next = new polinomP;
  32.             t = t->next;
  33.  
  34.             t->data = number;
  35.             t->power = step++;
  36.         }
  37.  
  38.         t->next = new polinomP;
  39.         t = t->next;
  40.  
  41.         t->data = number;
  42.         t->power = step++;
  43.         t->next = NULL;
  44.     }
  45.     F.close();
  46. }
  47.  
  48. struct polinomQ { float data2; float power2; polinomQ* next; } *S2;
  49. void Read_polinomQ(polinomQ* S2) { // функция формирования списка
  50.     polinomQ* t2;
  51.     t2 = S2;
  52.     ifstream F2;
  53.     F2.open("file2.txt");
  54.  
  55.     if (!F2.is_open())
  56.     {
  57.         cout << "Ошибка откытия файла" << endl;
  58.     }
  59.     else {
  60.         cout << "Файл открыт" << endl;
  61.  
  62.         while (!F2.eof())
  63.         {
  64.             F2 >> number2; // заглавное звено
  65.             t2->next = new polinomQ;
  66.             t2 = t2->next;
  67.             t2->data2 = number2;
  68.             t2->power2 = step2++;
  69.         }
  70.  
  71.         t2->next = new polinomQ;
  72.         t2 = t2->next;
  73.         t2->data2 = number2;
  74.         t2->power2 = step2++;
  75.         t2->next = NULL;
  76.     }
  77.     F2.close();
  78. }
  79. struct polinomR { float data; float number3; int power;  polinomR* next; } *S3;
  80. void Sum(polinomR* S3) {
  81.     polinomP* t;
  82.     polinomQ* t2;
  83.     polinomR* t3;
  84.     ofstream fout("sum.txt", ios_base::app);
  85.     for (t = S, t2 = S2, t3 = S3; t->next != NULL && t2->next != NULL; t = t->next, t2 = t2->next) {
  86.  
  87.         if ((t->data + t2->data2) != 0)
  88.         {
  89.             t3->next = new polinomR;
  90.             t3 = t3->next;
  91.             t3-> data = (t->data + t2->data2);
  92.             t->power;
  93.             fout << t->power << "| " << t3->data << endl;
  94.  
  95.         }
  96.         else
  97.         {
  98.             fout << endl;
  99.         }
  100.     }
  101. }
  102.  
  103. void Print(polinomP* S, polinomQ* S2)
  104. {
  105.     ofstream fout("file3.txt", ios_base::app);
  106.     polinomP* t;
  107.     fout << "polynom P" << endl;
  108.     for (t = S->next; t->next != NULL; t = t->next)
  109.     {
  110.         fout << t->power << "| " << t->data << endl;
  111.  
  112.     }
  113.     fout << endl;
  114.     polinomQ* t2;
  115.     fout << "polynom Q" << endl;
  116.     for (t2 = S2->next; t2->next != NULL; t2 = t2->next)
  117.     {
  118.         fout << t2->power2 << "| " << t2->data2 << endl;
  119.     }
  120.     fout << endl;
  121. }
  122. int main()
  123. {
  124.     setlocale(LC_ALL, "RUS");
  125.     S = new polinomP;
  126.     S2 = new polinomQ;
  127.     S3 = new polinomR;  
  128.     Read_polinomP(S);
  129.     Read_polinomQ(S2);
  130.     Sum(S3);
  131.     Print(S, S2);
  132. }
  133.  
  134. /*
  135. * file1.txt
  136. * 2 3 4 5
  137. *
  138. * file2.txt
  139. * 5 6 7 8
  140. *
  141. * file3.txt
  142. * polynom P
  143. * 0| 2
  144. * 1| 3
  145. * 2| 4
  146. * 3| 5
  147. *
  148. * polynom Q
  149. * 0| 5
  150. * 1| 6
  151. * 2| 7
  152. * 3| 8
  153. *
  154. * sum.txt
  155. * 0| 7
  156. * 1| 9
  157. * 2| 11
  158. * 3| 13
  159. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement