Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Wsk_funkcji.cpp : Ten plik zawiera funkcję „main”. W nim rozpoczyna się i kończy wykonywanie programu.
- //
- #include "pch.h"
- #include <stdio.h>
- #include <math.h>
- double maximum(double T[], int wielkosc)
- {
- printf("maximum: ");
- double l_maximum = 0;
- for (int i = 0; i < wielkosc; i++)
- {
- if (l_maximum < T[i])
- {
- l_maximum = T[i];
- }
- }
- return l_maximum;
- }
- double minimum(double T[], int wielkosc)
- {
- printf("manimum: ");
- double l_minimum = T[0];
- for (int i = 0; i < wielkosc; i++)
- {
- if (l_minimum > T[i])
- {
- l_minimum = T[i];
- }
- }
- return l_minimum;
- }
- double srednia(double T[], int wielkosc)
- {
- printf("srednia: ");
- double l_srednia = 0;
- for (int i = 0; i < wielkosc; i++)
- {
- l_srednia += T[i];
- }
- return l_srednia / wielkosc;
- }
- void z6_5()
- {
- double *T;
- int n;
- int akcja = 0;
- bool wyjscie = false;
- double(*TF[])(double *, int) = { maximum, minimum, srednia };
- printf("Podaj wielkosc tablicy:\n");
- scanf_s("%d", &n);
- T = new double[n];
- for (int i = 0; i < n; i++)
- {
- printf("Podaj element %d tablicy: ", i);
- scanf_s("%lf", &T[i]);
- }
- while (!wyjscie)
- {
- printf("Wybierz funkcje[ 0-max, 1-min, 2-srednia]:");
- scanf_s("%d", &akcja);
- if (akcja > 2 || akcja < 0)
- {
- wyjscie = true;
- }
- else
- {
- printf("%lf\n", TF[akcja](T, n));
- }
- }
- }
- struct seria
- {
- int numer_serii;
- double pomiar[4];
- int kod_przetwarzania;
- };
- double maks_pomiar(double p[])
- {
- double m = 0;
- for (int i = 0; i < 4; i++)
- {
- if (m < p[i])
- {
- m = p[i];
- }
- }
- return m;
- }
- double min_pomiar(double p[])
- {
- double m = p[0];
- for (int i = 0; i < 4; i++)
- {
- if (m > p[i])
- {
- m = p[i];
- }
- }
- return m;
- }
- double sr_pomiar(double p[])
- {
- double sr = 0;
- for (int i = 0; i < 4; i++)
- {
- sr += p[i];
- }
- return sr / 4;
- }
- void z7_8()
- {
- FILE* plik_odczyt;
- FILE* plik_zapis;
- seria *tablica;
- double(*TF[])(double *) = { sr_pomiar, min_pomiar, maks_pomiar };
- int ilosc;
- int licznik = 0;
- fopen_s(&plik_odczyt, "Pomiary.txt", "r");
- fopen_s(&plik_zapis, "Wyniki.txt", "a");
- fscanf_s(plik_odczyt, "%d", &ilosc);
- tablica = new seria[ilosc];
- while (licznik < ilosc)
- {
- printf("wczytuje\n");
- fscanf_s(plik_odczyt, "%d %lf %lf %lf %lf %d", &tablica[licznik].numer_serii, &tablica[licznik].pomiar[0], &tablica[licznik].pomiar[1], &tablica[licznik].pomiar[2], &tablica[licznik].pomiar[3], &tablica[licznik].kod_przetwarzania);
- licznik++;
- }
- for (int i = 0; i < ilosc; i++)
- {
- double wynik = TF[tablica[i].kod_przetwarzania](tablica[i].pomiar);
- fprintf(plik_zapis, "%d %lf %d\n", tablica[i].numer_serii, wynik, tablica[i].kod_przetwarzania);
- }
- fclose(plik_odczyt);
- fclose(plik_zapis);
- }
- char vchar()
- {
- char cc;
- while ((cc = getchar()) <= ' ');
- return cc;
- }
- double sinus(double x, bool &ok)
- {
- if (x > 1 || x < -1)
- {
- ok = false;
- }
- else
- {
- return ma
- }
- }
- void z3_2()
- {
- char akcja;
- char dzialanie;
- double x;
- double wynik;
- double(*TF[])(double, bool) = { sinus, tangens, pierwiastek, logarytm };
- bool wyjscie = false;
- bool czy_dobra_wartosc = true;
- printf("Wybierz akcje [n]-nowa liczba, [f]-funkcja, [q]-wyjscie:");
- akcja = vchar();
- akcja &= 0x5F;
- while (!wyjscie)
- {
- switch (akcja)
- {
- case 'N':
- printf("Podaj liczbe:");
- scanf_s("%lf", &x);
- break;
- case 'F':
- printf("Wybierz dzialanie (0-sinus, 1-tangens, 2-pierwiatek, 3-logarytm):");
- scanf_s("%d". &dzialanie)
- double wynik = TF[dzialanie](x, czy_dobra_wartosc);
- if (czy_dobra_wartosc == true)
- {
- printf("Wynik: %d\n", wynik);
- }
- else
- {
- printf("Blad! Podano liczbe, ktora nie jest w dziedzinie funkcji!\n");
- }
- break;
- case 'Q':
- wyjscie = true;
- break;
- }
- }
- }
- int main()
- {
- // z6_5();
- //z7_8();
- z3_2();
- return 0;
- }
- // Uruchomienie programu: Ctrl + F5 lub menu Debugowanie > Uruchom bez debugowania
- // Debugowanie programu: F5 lub menu Debugowanie > Rozpocznij debugowanie
- // Porady dotyczące rozpoczynania pracy:
- // 1. Użyj okna Eksploratora rozwiązań, aby dodać pliki i zarządzać nimi
- // 2. Użyj okna programu Team Explorer, aby nawiązać połączenie z kontrolą źródła
- // 3. Użyj okna Dane wyjściowe, aby sprawdzić dane wyjściowe kompilacji i inne komunikaty
- // 4. Użyj okna Lista błędów, aby zobaczyć błędy
- // 5. Wybierz pozycję Projekt > Dodaj nowy element, aby utworzyć nowe pliki kodu, lub wybierz pozycję Projekt > Dodaj istniejący element, aby dodać istniejące pliku kodu do projektu
- // 6. Aby w przyszłości ponownie otworzyć ten projekt, przejdź do pozycji Plik > Otwórz > Projekt i wybierz plik sln
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement