Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- #include <cstring>
- using namespace std;
- struct element
- {
- float liczba;
- element *wsk;
- };
- int mnozymy(int d){
- int a;
- for(int i=0;i<d;i++){
- if(i==0){
- a=1;
- }
- else{
- a=a*10;
- }
- }
- return a;
- }
- void na_stos(float d, element *&w)
- { element *temp;
- temp=w;
- w = new element;
- w->liczba = d;
- w->wsk = temp;
- }
- void ze_stosu(float &d, element *&w)
- { element *temp=w;
- d=w->liczba;
- w=w->wsk;
- delete temp;
- }
- int odczyt_ile(){
- int a=0;
- string raz;
- ifstream pierwszy("dane.txt");
- if (getline(pierwszy, raz)) {
- int x=raz.length();
- for(int i=0;i<raz.length();i++){
- a=a + ((int)raz[i] - 48) * mnozymy(x);
- x--;
- }
- }
- pierwszy.close();
- return a;
- }
- int odczyt(int d){
- ifstream pierwszy("dane.txt");
- for (int i=0;i<=d;i++){
- if(i==0){
- string dwa;
- getline(pierwszy,dwa);
- }
- else{
- string linia;
- getline(pierwszy,linia);
- char spacja=' ';
- element *q=NULL;
- float a;
- while(linia.length()!=0){
- string linia_n;
- long int pozycja=linia.find(spacja);
- linia_n=linia.substr(0,pozycja);
- if (linia.length()==1){
- linia_n=linia;
- linia="";
- }
- linia=linia.substr(pozycja+1,linia.length());
- int dzialanie=0;
- int x=linia_n.length();
- if(x>1){
- for(int j=0;j<linia_n.length();j++){
- dzialanie=dzialanie + ((int)linia_n[j]-48) * mnozymy(x);
- x--;
- }
- na_stos(dzialanie,q);
- }
- else{
- dzialanie=(int)linia_n[0];
- if(dzialanie>47){
- dzialanie=dzialanie - 48;
- na_stos(dzialanie,q);
- }
- else if(dzialanie==42){
- float b,c;
- ze_stosu(b,q);
- ze_stosu(c,q);
- b=b*c;
- na_stos(b,q);
- }
- else if(dzialanie==47){
- float b,c;
- ze_stosu(b,q);
- ze_stosu(c,q);
- b=c/b;
- na_stos(b,q);
- }
- else if(dzialanie==43){
- float b,c;
- ze_stosu(b,q);
- ze_stosu(c,q);
- b=b+c;
- na_stos(b,q);
- }
- else if(dzialanie==45){
- float b,c;
- ze_stosu(b,q);
- ze_stosu(c,q);
- b=c-b;
- na_stos(b,q);
- }
- }
- }
- ofstream zapis("wynik.txt",ios::app);
- ze_stosu(a,q);
- zapis<<a<<endl;
- zapis.close();
- }
- }
- pierwszy.close();
- }
- int main()
- {
- int a;
- a=odczyt_ile();
- odczyt(a);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement