Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- #include <string>
- #include <iomanip>
- #include <cmath>
- #include <cstdlib>
- #include <stdio.h>
- #include <conio.h>
- #include <algorithm>
- #include <sstream>
- using namespace std;
- // LICZBA POMIARÓW: 1095; PIERWSZA LICZBA: GODZINY; DRUGA LICZBA: TEMPERATURA.
- void zadanie_2_compare(string stacja_1, string stacja_2, string stacja_3)
- {
- int liczba_nieprawidlowych_wskazan_we_wszystkich_3_stacjach = 0;
- ofstream plik_out;
- plik_out.open("wyniki_systemy.txt", ios::app);
- for (int i=0; i<1095; i++)
- {
- if ((stacja_1[i] == '0')&&(stacja_2[i] == '0')&&(stacja_3[i] == '0')) liczba_nieprawidlowych_wskazan_we_wszystkich_3_stacjach++;
- }
- plik_out << endl << endl << "Zadanie 58.2:" << endl << "Ilosc blednych wskazan we wszystkich trzech stacjach naraz: " << liczba_nieprawidlowych_wskazan_we_wszystkich_3_stacjach;
- plik_out.close();
- }
- string to_base(int base, int decimal)
- {
- char digits[] = "0123456789abcdefghijklmnopqrstuvwxyz";
- string result = "";
- while (decimal != 0)
- {
- result += digits[decimal % base];
- decimal /= base;
- }
- reverse(result.begin(), result.end());
- return result;
- }
- string zadanie_2(int nr_stacji)
- {
- ifstream plik_in;
- string zegar, godz, wzorowe_wskazanie_zegara_string;
- int wzorowe_wskazanie_zegara = 12, podst, temp;
- switch (nr_stacji)
- {
- case 1:
- plik_in.open("dane_systemy1.txt");
- podst = 2;
- break;
- case 2:
- plik_in.open("dane_systemy2.txt");
- podst = 4;
- break;
- case 3:
- plik_in.open("dane_systemy3.txt");
- podst = 8;
- break;
- default:
- cout << "ERROR";
- exit(0);
- }
- while (!plik_in.eof())
- {
- godz = "";
- plik_in >> godz >> temp;
- wzorowe_wskazanie_zegara_string = to_base(podst, wzorowe_wskazanie_zegara);
- if (wzorowe_wskazanie_zegara_string == godz) zegar += "1";
- else zegar += "0";
- wzorowe_wskazanie_zegara += 24;
- }
- plik_in.close();
- return zegar;
- }
- void clear()
- {
- ofstream plik_out;
- plik_out.open("wyniki_systemy.txt");
- plik_out.clear();
- plik_out.close();
- }
- void zadanie_1(int nr_stacji)
- {
- int licznik = 1, podst;
- long double godz_int, temp_int, temp_int_min;
- ifstream plik_in;
- ofstream plik_out;
- switch (nr_stacji)
- {
- case 1:
- plik_in.open("dane_systemy1.txt");
- podst = 2;
- break;
- case 2:
- plik_in.open("dane_systemy2.txt");
- podst = 4;
- break;
- case 3:
- plik_in.open("dane_systemy3.txt");
- podst = 8;
- break;
- default:
- cout << "ERROR";
- exit(0);
- }
- plik_out.open("wyniki_systemy.txt", ios::app);
- while (!plik_in.eof())
- {
- plik_in >> godz_int >> temp_int;
- if (licznik == 1) temp_int_min = temp_int;
- else
- {
- if (temp_int < temp_int_min) temp_int_min = temp_int;
- }
- licznik++;
- }
- if (podst == 2)
- {
- plik_out << "Zadanie 58.1:" << endl << "Stacja nr 1: " << temp_int_min;
- }
- if (podst == 4)
- {
- int dlugosc;
- string temp_string_min, temp_min_bin;
- ostringstream ss;
- ss << temp_int_min;
- temp_string_min = ss.str();
- dlugosc = temp_string_min.length();
- for (int i=0; i<dlugosc; i++)
- {
- switch (temp_string_min[i])
- {
- case '-':
- temp_min_bin += "-";
- break;
- case '0':
- temp_min_bin += "00";
- break;
- case '1':
- temp_min_bin += "01";
- break;
- case '2':
- temp_min_bin += "10";
- break;
- case '3':
- temp_min_bin += "11";
- break;
- }
- }
- while (temp_min_bin[1] == '0')
- {
- temp_min_bin.erase(1, 1);
- }
- plik_out << endl << "Stacja nr 2: " << temp_min_bin;
- }
- if (podst == 8)
- {
- int dlugosc;
- string temp_string_min, temp_min_bin;
- ostringstream ss;
- ss << temp_int_min;
- temp_string_min = ss.str();
- dlugosc = temp_string_min.length();
- for (int i=0; i<dlugosc; i++)
- {
- switch (temp_string_min[i])
- {
- case '-':
- temp_min_bin += "-";
- break;
- case '0':
- temp_min_bin += "000";
- break;
- case '1':
- temp_min_bin += "001";
- break;
- case '2':
- temp_min_bin += "010";
- break;
- case '3':
- temp_min_bin += "011";
- break;
- case '4':
- temp_min_bin += "100";
- break;
- case '5':
- temp_min_bin += "101";
- break;
- case '6':
- temp_min_bin += "110";
- break;
- case '7':
- temp_min_bin += "111";
- break;
- }
- }
- while (temp_min_bin[1] == '0')
- {
- temp_min_bin.erase(1, 1);
- }
- plik_out << endl << "Stacja nr 3: " << temp_min_bin;
- }
- plik_in.close();
- plik_out.close();
- }
- int main()
- {
- clear();
- zadanie_1(1);
- zadanie_1(2);
- zadanie_1(3);
- string stacja_1, stacja_2, stacja_3;
- stacja_1 = zadanie_2(1);
- stacja_2 = zadanie_2(2);
- stacja_3 = zadanie_2(3);
- zadanie_2_compare(stacja_1, stacja_2, stacja_3);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement