• API
• FAQ
• Tools
• Archive
daily pastebin goal
66%
SHARE
TWEET

# ZAJEBISTOSC

rooq37 Jan 17th, 2018 59 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
1.
2. // ConsoleApplication4.cpp : Defines the entry point for the console application.
3. //
4. //#include "stdafx.h"
5. #include <iostream>
6. #include <stdio.h>
7. #include <string>
8. #include <math.h>
9. #include <fstream>
10. using namespace std;
11.
13. void save(int numberOfPoints, double ** table);
14. void insertsort(double **table, int numberOfPoints);
15. void bubblesort(int numberOfPoints, double **table);
16. void compute(int numberOfPoints, double **table);
17. void print(int precision, int numberOfPoints, double **table);
19. void initialize(double & variabilityOfX, int & numberOfPoints, int & precision);
20. int instruction();
21.
22.
23. void initialize(double & variabilityOfX, int & numberOfPoints, int & precision) {
24.     std::cout << "Podaj liczbe punktow: " << std::endl;
25.     std::cin >> numberOfPoints;
26.     std::cout << "Podaj zmiennosc x: " << std::endl;
27.     std::cin >> variabilityOfX;
28.     std::cout << "Podaj dokladnosc: " << std::endl;
29.     std::cin >> precision;
30. }
31.
32.
34.     int prec = 7;
35.     if (precision > prec) {
36.         prec = precision;
37.     }
38.     printf("|%-3s", "i");
39.     printf("|%*s", (-1)*(precision + 2), "x");
40.     printf("|%*s", (-1)*(precision + 2), "sin");
41.     printf("|%*s", (-1)*(precision + 2), "cos");
42.     printf("|%*s", (-1)*(precision + 2), "tg");
43.     printf("|%*s", (-1)*(precision + 2), "ctg");
44.     printf("|%*s", (-1)*(precision + 2), "asin");
45.     printf("|%*s", (-1)*(precision + 2), "acos");
46.     printf("|%*s", (-1)*(precision + 2), "atg");
47.     printf("|%*s|", (-1)*(precision + 2), "actg");
48.     printf("%\n");
49. }
50.
51. void print(int precision, int numberOfPoints, double **table) {
52.     for (int i = 0; i < numberOfPoints; i++) {
53.         printf("|%*d", -3, (int)table[i][0]);
54.         for (int j = 1; j < 10; j++) {
55.             int num = (int)(table[i][j]);
56.             int c = 0;
57.             while ((num /= 10) != 0)
58.                 c++;
59.             if (std::isnan(table[i][j])) {
60.                 printf("|%*s", precision + 2, "-");
61.             }
62.             else if (std::isinf(table[i][j])) {
63.                 printf("|%*s", precision + 2, "inf");
64.             }
65.             else if (table[i][j] < 0) {
66.                 printf("|%.*f", precision - 1 - c, table[i][j]);
67.             }
68.             else
69.                 printf("|%.*f", precision - c, table[i][j]);
70.         }
71.         printf("|%\n");
72.     }
73. }
74.
75. void compute(int numberOfPoints, double **table) {
76.
77.     for (int i = 0; i < numberOfPoints; i++) {
78.         table[i][2] = sin(table[i][1]);
79.         table[i][3] = cos(table[i][1]);
80.         table[i][4] = tan(table[i][1]);
81.         table[i][5] = 1.0 / (tan(table[i][1]));
82.         table[i][6] = asin(table[i][1]);
83.         table[i][7] = acos(table[i][1]);
84.         table[i][8] = atan(table[i][1]);
85.         table[i][9] = 1.0 / (atan(table[i][1]));
86.     }
87. }
88.
89. void bubblesort(int numberOfPoints, double **table) {
90.     cout << "Wybierz kryterium sortowania" << endl;
91.     cout << "1 - sin" << endl;
92.     cout << "2 - cos" << endl;
93.     cout << "3 - tan" << endl;
94.     cout << "4 - ctg" << endl;
95.     cout << "5 - arcsin" << endl;
96.     cout << "6 - arccos" << endl;
97.     cout << "7 - arctan" << endl;
98.     cout << "8 - arctg" << endl;
99.
102.     int i, j;
103.     int index = ask1 + 1;
104.     double *temp;
105.     double temp1, temp2;
106.     for (i = (numberOfPoints - 2); i >= 0 ; i--)
107.     {
108.         for (j = 0; j <= i; j++) {
109.             temp1 = table[j][index], temp2 = table[j + 1][index];
110.             if (temp1 > temp2) {
111.                 double *temp = table[j];
112.                 table[j] = table[j+1];
113.                 table[j + 1] = temp;
114.             }
115.         }
116.     }
117.     for (int i = 0; i < numberOfPoints; i++) table[i][0] = i;
118. }
119.
120.
121. void insertsort(double **table, int numberOfPoints) {
122.         cout << "Wybierz kryterium sortowania" << endl;
123.         cout << "1 - sin" << endl;
124.         cout << "2 - cos" << endl;
125.         cout << "3 - tan" << endl;
126.         cout << "4 - ctg" << endl;
127.         cout << "5 - arcsin" << endl;
128.         cout << "6 - arccos" << endl;
129.         cout << "7 - arctan" << endl;
130.         cout << "8 - arctg" << endl;
131.
134.
135.         int j;
136.         int index = ask1 + 1;
137.         double *currentLine;
138.         for (int i = 1; i < numberOfPoints; i++) {
139.             currentLine = table[i];
140.             for (j = i - 1; j >= 0 && table[j][index] > currentLine[index]; j--) {
141.                 table[j + 1] = table[j];
142.             }
143.             table[j + 1] = currentLine;
144.         }
145.         for (int i = 0; i < numberOfPoints; i++) table[i][0] = i;
146. }
147.
148. void save(int numberOfPoints, double ** table) {
149.
150.     fstream file;
151.     file.open("wynik.txt", ios::out);
152.     if (file.good() == true)
153.     {
154.         file << numberOfPoints << endl;
155.         for (int i = 0; i < numberOfPoints; i++) {
156.             for (int j = 1; j < 10; j++) {
157.                 file << table[i][j]<<endl;
158.             }
159.         }
160.         file.close();
161.     }
162. }
163.
165. {
166.     fstream file;
167.     string temp;
168.     double ** table = NULL;
169.     file.open("wynik.txt", ios::in | ios::out);
170.     if (file.good() == true)
171.     {
172.         file >> numberOfPoints;
173.         table = new double*[numberOfPoints];
174.
175.         for (int i = 0; i < numberOfPoints; i++) {
176.             table[i] = new double[10];
177.             table[i][0] = i;
178.         }
179.
180.         for (int i = 0; i < numberOfPoints && !file.eof(); i++) {
181.             for (int j = 1; j < 10 && !file.eof(); j++) {
182.                 file >> temp;
183.                 if (temp != "inf") table[i][j] = stod(temp.c_str());
184.                 else table[i][j] = INFINITY;
185.             }
186.         }
187.         file.close();
188.     }
189.     return table;
190. }
191.
192. int instruction() {
195.         cout << "***MENU***" << endl;
196.         cout << "[1] Utworz nowa tablice" << endl;
197.         cout << "[2] Wczytaj tablice z pliku" << endl;
198.         cout << "[3] Wyswietl tablice" << endl;
199.         cout << "[4] Sortuj (bubble sort)" << endl;
200.         cout << "[5] Sorutuj (insert sort)" << endl;
201.         cout << "[6] Zapisz do pliku" << endl;
202.         cout << "[7] Wyjdz" << endl;
204.     }
206. }
207.
208. int main() {
209.     double variabilityOfX;
210.     int numberOfPoints;
211.     int precision = 3;
212.     double **table = NULL;
214.
215.     while (answer != 7) {
216.         system("cls");
218.         if (answer == 1) {
219.             if (table != NULL) {
220.                 for (int i = 0; i < numberOfPoints; i++) {
221.                     delete table[i];
222.                 }
223.                 delete table;
224.             }
225.             initialize(variabilityOfX, numberOfPoints, precision);
226.             table = new double*[numberOfPoints];
227.             for (int i = 0; i < numberOfPoints; i++) {
228.                 table[i] = new double[10];
229.                 table[i][0] = i;
230.                 table[i][1] = i*variabilityOfX;
231.             }
232.             compute(numberOfPoints, table);
233.         }
234.         else if (answer == 2) {
235.             if (table != NULL) {
236.                 for (int i = 0; i < numberOfPoints; i++) {
237.                     delete table[i];
238.                 }
239.                 delete table;
240.             }
242.         }
243.         else if (answer == 3) {
244.             if (table != NULL) {
246.                 print(precision, numberOfPoints, table);
247.             }
248.             else cout << "Brak tablicy!" << endl;
249.         }
250.         else if (answer == 4) {
251.             if(table != NULL) bubblesort(numberOfPoints, table);
252.             else cout << "Brak tablicy!" << endl;
253.         }
254.         else if (answer == 5) {
255.             if(table != NULL) insertsort(table, numberOfPoints);
256.             else cout << "Brak tablicy!" << endl;
257.         }
258.         else if (answer == 6) {
259.             if(table != NULL) save(numberOfPoints, table);
260.             else cout << "Brak tablicy!" << endl;
261.         }
262.         getchar();
263.         getchar();
264.     }
265. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy.

Top