• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Czy ktoś pomoże w usunięciu błędów?

VPS Starter Arubacloud
0 głosów
453 wizyt
pytanie zadane 4 maja 2015 w C i C++ przez Baloro Nowicjusz (120 p.)
edycja 4 maja 2015 przez Baloro

Mam do zrobienia obiektowo program, który ma zazadanie dodać wielomian do bazy, dodać/pomnożyć 2 wielomiany, przypisać jeden do drugiego. Mam jednak problen podczas dodawania występuje błąd. Czy ktoś mógłby zobaczyć na kod (który jest trochę chaotycznie napisany) i pomóc w usunięciu błędów?

​
#include <iostream>
#define ILOSC 10
using namespace std;


class Wielomian
{
private:
   int stopien;
		double *wspolczynnik;  
       
public:
		void Dodaj();
		double get_wspolczynnik();
		int get_stopien();
		void DodajDane(int, Wielomian*);
		void set_stopien(int);
		void set_wspolczynnik(double, int);
		void set_wspolczynnik(int, double, Wielomian&);
    	friend ostream& operator<<(ostream& screen, Wielomian wielomian);
    	friend Wielomian operator+(const Wielomian& w1,const Wielomian& w2);
    	friend Wielomian operator*(const Wielomian& w1,const Wielomian& w2);
    	Wielomian& operator=(const Wielomian& w);
	};

// operator przypisania=============================================
Wielomian& Wielomian::operator=(const Wielomian& w) 
{

    stopien = w.stopien;

    for(int i=0; i<=stopien; i++)
    {
        wspolczynnik[i]=w.wspolczynnik[i];
    }

    return *this;
}

// ========================operator wyjscia
ostream& operator<<(ostream& screen, Wielomian wielomian)
{
    for (int i=wielomian.get_stopien(); i>=0; i--)
    {
        screen << wielomian.wspolczynnik[i] ;
		if (i==1) cout << "x";
		else if(i==0) cout << "";
		else cout << "x^" << i;
		
		if(i!=0 && (wielomian.wspolczynnik[i-1]<0)) cout <<"";
		else cout << "+";
    }
    return screen << "\b ";
}

void Wielomian::set_stopien(int val)
{
	stopien = val;
}

void Wielomian::set_wspolczynnik(double val2, int stopien)
{
	wspolczynnik = new double[stopien+1];
	for(int i=stopien;i>=0;i--)
	{
		if (i>0) cout << "wprowadz wspolczynnik przy x^" << i << endl;
		else cout << "wprowadz wyraz wolny "<< endl;
		cin >> val2;
		wspolczynnik[i] = val2;
 	}
}


int Wielomian::get_stopien()
{
	return stopien;
}

double Wielomian::get_wspolczynnik()
{
	return *wspolczynnik;
}	

// ==========================================suma 2 wielomianow
Wielomian operator+(Wielomian& w1, Wielomian& w2)
{
    int stopien,b;
	Wielomian suma;
    if (w1.get_stopien()>=w2.get_stopien())
    {
        stopien=w1.get_stopien();
    }
    else
    {
        stopien=w2.get_stopien();
    }
	
    suma.set_stopien(stopien);
	int i=suma.get_stopien();
  for (i; i>=0; i--)
    {
        b=w2.get_wspolczynnik()+w1.get_wspolczynnik();
        suma.set_wspolczynnik(b, i);
    }
	cout << w1 << endl << w2 << endl << suma << endl;
    return suma;
}



int main()
{
    Wielomian* wielomian = new Wielomian[ILOSC];
	int b, DODANE=0;
	int val;
	double val2=0;
	int pierwszy,drugi;
	char TaklubNie;
	
//==========================tworzenie=======
for(int i = 0; i < ILOSC; i++)
{
    cout << "Jakiego stopnia wielomian chcesz wprowadzic?" << endl;
    cin >> val;
    wielomian[i].set_stopien(val);
    b=wielomian[i].get_stopien();
    wielomian[i].set_wspolczynnik(val2,b);
   
    cout<<"Czy chcesz wprowadzic kolejny wielomian? "<<"T/N: " << endl;   
            cin >> TaklubNie;
            cout<<endl;
         	DODANE++;
			if((TaklubNie=='N')||(TaklubNie=='n')) break;
}

//====================wyswietlanie==========
for(int i=0;i<DODANE;i++)
{	
	cout<< endl << "wielomian" << i+1 << endl;
	cout << wielomian[i] << endl;
}

wielomian[1]+wielomian[0];
cout << wielomian[0] << endl << wielomian[1] << endl;


for(int i=0;i<DODANE;i++)
{	
	cout<< endl << "wielomian" << i+1 << endl;
	cout << wielomian[i] << endl;
}

    system("PAUSE");
    return 0;
}
komentarz 28 października 2017 przez 123skiper Bywalec (2,170 p.)
Najstarsze nie odpowiedziane pytanie :)
komentarz 4 listopada 2017 przez niezalogowany
Też dlatego tu weszłem]
komentarz 6 czerwca 2018 przez coloraps Bywalec (2,220 p.)

@Baloro,

Zadam pytanie:
W którym wierszu i jak dokładnie błąd ?

1
komentarz 6 czerwca 2018 przez lateM Pasjonat (17,660 p.)

coloraps, myślę że Baloro już nie odda tego projektu na czas sad

 

1
komentarz 6 czerwca 2018 przez coloraps Bywalec (2,220 p.)
;) wiec przydało by się zamykać takie wątki
komentarz 28 czerwca 2019 przez OdsetekGlupoty Pasjonat (15,360 p.)
Legendy głoszą, że Baloro dalej sprawdza czy otrzymał odpowiedź...
komentarz 15 kwietnia 2020 przez Marchiew Dyskutant (7,690 p.)
Jakoś smutno mi się zrobiło widząc najstarszy wątek bez odpowiedzi, a i tak się uśmiałem :D

1 odpowiedź

0 głosów
odpowiedź 20 kwietnia 2020 przez Aqua Obywatel (1,950 p.)
aha

Podobne pytania

0 głosów
5 odpowiedzi 176 wizyt
pytanie zadane 11 kwietnia 2016 w C i C++ przez Izabela Niksa Użytkownik (510 p.)
0 głosów
1 odpowiedź 616 wizyt
–1 głos
2 odpowiedzi 1,116 wizyt

92,453 zapytań

141,262 odpowiedzi

319,088 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...