Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include <cstdlib>
- #include <math.h>
- #include "polynomial.h"
- #include <cctype>
- #include <fstream>
- using namespace std;
- typedef enum { READ_ERROR, READ_INT, READ_STRING } readValue_t;
- readValue_t getIntOrString(string txt, unsigned int &n, string &s)
- {
- char decyzja;
- cout << txt;
- decyzja = cin.peek(); // zagladamy bez wyjmowania
- if(isdigit(decyzja))
- {
- cin >> n;
- return READ_INT;
- }
- else
- {
- getline(cin, s);
- return READ_STRING;
- }
- return READ_ERROR;
- }
- inline double readDoubleFromStream(istream &str)
- {
- double f;
- str >> f;
- return f;
- }
- int main()
- {
- fstream plik;
- unsigned int stopien;
- double x;
- readValue_t res;
- istream *read = NULL;
- //ifstream infs;
- string nazwaPliku,txt;
- cout<<"Podaj stopien wielomianu W(x), lub podaj nazwe pliku w ktorym zostala zapisana informacja o nim, plik ten musi znajdowacsie w katalogu z tym programem"<<endl;
- //cin>>txt;
- res = getIntOrString(txt, stopien, nazwaPliku);
- //cout<<"wartosc res "<<res<<endl;
- do
- {
- switch(res)
- {
- case READ_INT:
- {
- read=&cin;
- break;
- }
- break;
- case READ_STRING:
- cout << endl << "Ok, plik to " << nazwaPliku << endl;
- plik.open(nazwaPliku.c_str());
- if(plik.fail())
- {
- cout << "Nie moge otworzyc pliku: " << nazwaPliku << endl;
- break;
- };
- //default:
- //cout<<"wystapil blad"<<endl;
- //continue;
- }
- plik>>stopien;
- cout << "Stopien z pliku to: " << stopien << endl;
- read = &plik;
- break;
- }
- while(read==NULL);
- double val;
- Polynomial p1(stopien);
- for (int i=stopien; i>=0; i++)
- {
- if(res==READ_INT)
- {
- cout<<"Wprowadzaj wspolczynniki wielomianu W(x) od najwyzszej potegi"<<endl;
- for(int i=stopien; i>=0; i--)
- {
- cin >> val;
- p1.setCoefficient(i,val);
- }
- }
- x = readDoubleFromStream(*read);
- p1.setCoefficient(i, val);
- }
- cout<<"Postac wielomianu: "<<p1;
- //cout<<"Podaj wartosc x dla ktorej chcesz obliczyc wartosc wielomianu W(x)"<<endl;
- cin>>x;
- p1.value(x);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement