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

lista cykliczna przechowująca wielomiany

Object Storage Arubacloud
+1 głos
177 wizyt
pytanie zadane 10 stycznia 2021 w C i C++ przez dark41 Użytkownik (760 p.)

mam do wykonania zadanie:

Zaprojektować, zaimplementować  i przetestować typ danych reprezentujący wielomiany.

Wielomian ma być w nim pamiętany w postaci listy cyklicznej, w której każdy element przechowuje współczynnik oraz wykładnik. Pierwszy element tej listy ma mieć ustawione wartości 0 oraz -1:

Należy zapewnić obsługę operacji wejścia/wyjścia, operatory +,- .

 jak rozumiem w zadaniu mam napisać listę cykliczną przechowująca wielomiany ale nie wiem jak zrobić aby współczynnik i wykładnik był przechowywany w 1 elemencie czy jest to w ogóle możliwe czy poprostu czegoś nie rozumie w tym zadaniu

poniżej kod tworzący listę cykliczną 

#include <iostream>
using namespace std;
struct Node {
   int data;
   struct Node *next;
};
struct Node* head = NULL;
void insert(int newdata) {
   struct Node *newnode = (struct Node *)malloc(sizeof(struct Node));
   struct Node *ptr = head;
   newnode->data = newdata;
   newnode->next = head;
   if (head!= NULL) {
      while (ptr->next != head)
      ptr = ptr->next;
      ptr->next = newnode;
   } else
   newnode->next = newnode;
   head = newnode;
}
void display() {
   struct Node* ptr;
   ptr = head;
   do {
      cout<<ptr->data <<" ";
      ptr = ptr->next;
   } while(ptr != head);
}

przykładowy wielomian

P(x)= 20x^4 + 6x^7 - 5x   

powinien być przechowywany tak:                                               

1 el (20 i 4 ) 2 el (6 i 7) 3 el (5 i 1)

ale mogę tylko dodawać pojedyncze wartości do elementów listy

np:

int main() {
   insert(20);
   insert(4);
   insert(6);
   insert(7);
   insert(5);
   insert(1);
   display();
   return 0;
}

 

2 odpowiedzi

+2 głosów
odpowiedź 10 stycznia 2021 przez obl Maniak (51,280 p.)
wybrane 10 stycznia 2021 przez dark41
 
Najlepsza
struct Node {
   int a; // współczynnik przy x-sie
   int p; // potęga x-sa
   struct Node *next;
};

i

void insert(int a, int p) {
   struct Node *newnode = (struct Node *)malloc(sizeof(struct Node));
   struct Node *ptr = head;
   newnode->a= a;
   newnode->p = p
   newnode->next = head;

 

0 głosów
odpowiedź 13 stycznia 2021 przez dark41 Użytkownik (760 p.)

jak umożliwić tworzenie obiektów wielomian z danymi(wykładniki, potęgi) wczytanymi z funkcji wczytaj() i przekazywanie tego obiektu do funkcji display() i wyświetlanie złożonego wielomianu

chodzi mi o coś takiego

     Wielomian w = wczytaj();

     display(w);

#include <iostream>

using namespace std;
struct Wielomian {
   int data1;   // współczynnik przy x-sie
   int data2;    // potęga x-sa
   struct Wielomian *next;
};
struct Wielomian* head = NULL;

void insert(int newdata, int newdata2) {              //lista przechowujaca dane
	

        
   struct Wielomian *newnode = (struct Wielomian *)malloc(sizeof(struct Wielomian));
   struct Wielomian *ptr = head;
   newnode->data1 = newdata;
   newnode->data2 = newdata2;
   newnode->next = head;
   if (head!= NULL) {
      while (ptr->next != head)
      ptr = ptr->next;
      ptr->next = newnode;
      
   } else
   newnode->next = newnode;
   head = newnode;
   
   
}
   
 void wczytaj(){                                     //funkcja wczytujaca dane
 
 
 int ile;
 int a;
 int b;
 cout<<"ile wspolczynnikow"<<endl;
 cin>>ile;
 while(ile>0){
 	cout<<"podaj wspolczynnik"<<endl;
 	cin>>a;
 	cout<<"podaj potege"<<endl;
 	cin>>b;
 	insert(a,b);
 	ile--;
 }
}
void display() {                                     //funkcja wyswietlajaca wielomian
   struct Wielomian* ptr;
   ptr = head;
   cout<<"P(x) = ";
   do {
   	
   	if(ptr->data1>0)
	   {
   	
      cout<<ptr->data1<< "x^" <<ptr->data2<<" + ";
      ptr = ptr->next;
      
	  }
	  if(ptr->data1<0)
	  {
	  cout<<ptr->data1<< "x^" <<ptr->data2;
      ptr = ptr->next;
	  }
   } while(ptr != head);
}
int main() {
    
   wczytaj();
   display();
   return 0;
}

 

Podobne pytania

0 głosów
2 odpowiedzi 181 wizyt
pytanie zadane 13 sierpnia 2023 w C i C++ przez Janchess Początkujący (480 p.)
0 głosów
1 odpowiedź 336 wizyt
0 głosów
1 odpowiedź 811 wizyt

92,568 zapytań

141,424 odpowiedzi

319,630 komentarzy

61,956 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

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy 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!

...