[C] Dodawanie i mnożenie wielomianów

0

Czy może pisał ktoś kiedyś funckje realizujący te operacje? Chodzi mi o mnożenie i dodawanie wielomianów (nawet tylko stopnia równego jeden i a=1, czyli np. mnożenie: (x-1)(x-6)(x-3), dodawanie: (x-4)+(x-2) ). Proszę o pomoc, bo kompletnie nie wiem jak ten problem ugryść :|

0

Spoko. Dzieki!

0

hehe
a tak dokładnie to jak to ma działać?
dajesz na wejście parę wielomianów do np.przemnożenia, tak?
a program ma coś wyliczyć czy tylko coś takiego powiedzmy:
(x-2)*(x+3)=x^2+x-6
czy o coś innego chodziło?

0

Powiedzmy, że tak. I np. jak: (x-2)*(x+3)=x2+x-6, to żeby jakoś zwracać współczynniki przy x-ach do kolejnych potęg. W tym przykładzie powiedzmy a=1, b=1 (bo współczynnik przed x2 wynosi 1) , c= -6.

0

no ja bym dal tablice dwuwierszowa (typu string) w pierwszym wierszu zapisujesz roznanie przy czym kazda komorka = 1 element czyli znak/nawias/zmienna/liczba a w drugim wierszu (rownierz moga byc stringi cho bardziej by pasily int) wstawiasz flage oznaczajaca jakiego typu jest to warosc i tak np jesli bit 1 od lewej bedzie ustawiony tzn ze reszta oznacza potege (zmiennej) a jesli ma zero to oznacza ze jest to liczba/znak/nawias)

majac juz to mozesz robic reszte, moj pomysl jest taki:

  1. zamieniasz wyrazenia typu 2x na 2*x (ew zeby uniknac zapisu w dwoch wierszach mozna uzyc zeby zapisywac potegi np x2 oznacza x do kwadratu)
  2. analizujesz ciag i szukasz najglebszych nawiasow (Odwrocona Notacja Polska moze byc pomocna)
    a) jesli jest nawias idz do 3
    b) jesli nawiasu nie ma idz do 7
  3. sprawdzasz czy ow najglebszy nawias jest mnozony rpzez cos jesli nie (za wyjatkiem minusa gdzie zmieniasz znak zawartych w nawiasie skladnikow czyli tak jak bys mnozyl przez -1 np masz x -(x+1) to -( to tak jakbys napisal x + (-1)*(x+1)) opuszczasz nawias i idziesz dalej
  4. jesli trafi sie wyrazenie w nawiasach ktore jest mnozone to wykonujesz mnozenie kazdego elementu rpzez kazdy nastepnie jesli sa jakies wielomiany o takiej samej potedze to je sumujesz
  5. podmien pomnozone nawiasy na jeden nawias (mnoiz naraz tylko 2 pary nawiasow, a jesli byly jeszcze 3cie 4te itd nawiasy w serii np (1-x)(2+x)(3-x^2) to oblicz wpierw pierwsze dwa nawiasy i podmien je na wynik (nadal w naswiasach) jesli nie ma to i tak nadal zostaw w nawiasach (przypadek z "-(" z punktu 3)
  6. wroc do punktu 2
  7. wypisz wynik

wiem troche namacilem ale mniej wiecej tak to trzeba zrobic poczytaj sobie o odwrotnej notacji polskiej w twoim rpzypadku musisz po prostu recznie wykonywac mnozenia niewiadomych przez niewiadome czyli wszelkie nawiasy z niewiadomymi przez inne nawiasy

polecam rownierz nauczyc sie pisac algorytmy w formie graficznej bardzo pomaga zrozumiec jak ma byc napisany program (probowalem wlasnie tak napisac moj poradnik dla ciebie)

1 użytkowników online, w tym zalogowanych: 0, gości: 1