Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- #include <math.h>
- #include <string>
- using namespace std;
- double sredniaA(double tab[], int n) {
- double srednia = 0;
- for (int i = 0; i < n; i++) {
- srednia += tab[i];
- }
- double wynik = srednia / n;
- return wynik;
- }
- double sredniaG(double tab[], int n) {
- double sredniag = 1;
- for (int i = 0; i < n; i++) {
- sredniag *= tab[i];
- }
- if ((sredniag < 0) && (n % 2 == 0)) {
- return INFINITY;
- }
- else {
- double wynik = pow(sredniag, 1.0 / n);
- return wynik;
- }
- }
- double Max(double tab[], int n) {
- double max = tab[0];
- for (int i = 1; i < n; i++) {
- if (max < tab[i]) {
- max = tab[i];
- }
- }
- return max;
- }
- double Min(double tab[], int n) {
- double min = tab[0];
- for (int i = 1; i < n; i++) {
- if (min > tab[i]) {
- min = tab[i];
- }
- }
- return min;
- }
- int liczbaZer(double tab[], int n) {
- int licznik = 0;
- for (int i = 0; i < n; i++) {
- if (tab[i] == 0) {
- licznik++;
- }
- }
- return licznik;
- }
- void sortRos(double tab[], int n) {
- double temp;
- int j;
- for (int i = 1; i < n; i++)
- {
- temp = tab[i];
- j = i - 1;
- while (j >= 0 && tab[j] > temp)
- {
- tab[j + 1] = tab[j];
- j--;
- }
- tab[j + 1] = temp;
- }
- }
- void sortMal(double tab[], int n) {
- double temp;
- int j;
- for (int i = 1; i < n; i++)
- {
- temp = tab[i];
- j = i - 1;
- while (j >= 0 && tab[j] < temp)
- {
- tab[j + 1] = tab[j];
- j = j - 1;
- }
- tab[j + 1] = temp;
- }
- }
- void wyswietl(double tab[], int n) {
- for (int i = 0; i < n; i++) {
- cout << tab[i] << " ";
- }
- cout << endl;
- }
- bool zapytajOZapis() {
- cout << "Zapisac do pliku? T/N";
- char wybor;
- cin >> wybor;
- if (wybor == 't' || wybor == 'T') {
- return true;
- }
- else if (wybor == 'n' || wybor == 'N') {
- return false;
- }
- else if (wybor != 'n' || wybor != 'N') {
- return INFINITY;
- }
- }
- int main() {
- int wybor;
- int n;
- ofstream plik("wyniki.txt");
- cout << "Podaj ilosc liczb: ";
- cin >> n;
- if (n == 0) {
- cout << "nie wprowadziles zadnej liczby";
- return 1;
- }
- double* tablica = new double[n];
- for (int i = 0; i < n; i++) {
- cout << i + 1 << ".Liczba: ";
- cin >> tablica[i];
- }
- cout << endl;
- cout << "MENU GLOWNE" << endl << endl;
- cout << "1. Srednia arytmetyczna" << endl;
- cout << "2. Srednia geometryczna" << endl;
- cout << "3. Wartosc max" << endl;
- cout << "4. Wartosc min" << endl;
- cout << "5. Sortowanie rosnaco" << endl;
- cout << "6. Sortowanie malejaco" << endl;
- cout << "7. Znajdz liczby mniejsze od zera" << endl;
- cout << "8. Znajdz liczby rowne 0" << endl;
- cout << "9. Wyjdz z programu" << endl;
- while (0 < 10) {
- cout << "Wybierz dzialanie wciskajac odpowiednia liczbe 1 - 9: ";
- cin >> wybor;
- cout << endl;
- switch (wybor) {
- case 1:
- cout << "Srednia arytmetyczna wynosi: " << sredniaA(tablica, n) << endl;
- if (zapytajOZapis())
- plik << "Srednia arytmetyczna wynosi: " << sredniaA(tablica, n) << endl;
- break;
- case 2:
- if (sredniaG(tablica, n) == INFINITY)
- cout << "Nie mozna policzyc sredniej geometrycznej" << endl;
- else
- cout << "Srednia geometryczna wynosi: " << sredniaG(tablica, n) << endl;
- if (zapytajOZapis()) {
- if (sredniaG(tablica, n) == INFINITY)
- plik << "Nie mozna policzyc sredniej geometrycznej" << endl;
- else
- plik << "Srednia geometryczna wynosi: " << sredniaG(tablica, n) << endl;
- }
- break;
- case 3:
- cout << "Wartosc maksymalna wynosi: " << Max(tablica, n) << endl;
- if (zapytajOZapis())
- plik << "Wartosc maksymalna wynosi: " << Max(tablica, n) << endl;
- break;
- case 4:
- cout << "Wartosc minimalna wynosi: " << Min(tablica, n) << endl;
- if (zapytajOZapis())
- plik << "Wartosc minimalna wynosi: " << Min(tablica, n) << endl;
- break;
- case 5:
- cout << "Liczby posortowane rosnaco: ";
- sortRos(tablica, n);
- wyswietl(tablica, n);
- if (zapytajOZapis()) {
- for (int i = 0; i < n; i++) {
- plik << tablica[i] << " ";
- }
- }
- break;
- case 6:
- cout << "Liczby posortowane malejaco: ";
- sortMal(tablica, n);
- wyswietl(tablica, n);
- if (zapytajOZapis()) {
- for (int i = 0; i < n; i++) {
- plik << tablica[i] << " ";
- }
- }
- break;
- case 7:
- for (int i = 0; i < n; i++) {
- if (tablica[i] <= 0) {
- cout << tablica[i] << " ";
- }
- }
- if (zapytajOZapis()) {
- for (int i = 0; i < n; i++) {
- if (tablica[i] < 0) {
- plik << tablica[i] << " ";
- }
- }
- }
- break;
- case 8:
- cout << "Ilosc liczb rownych zero: " << liczbaZer(tablica, n);
- if (zapytajOZapis())
- plik << "Ilosc liczb rownych zero: " << liczbaZer(tablica, n);
- break;
- case 9:
- exit(0);
- break;
- default:
- cout << "nie wybrano odpowiedniej opcji";
- break;
- }
- }
- plik.close();
- delete[] tablica;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement