|
|
- - - - - - - - - - - - - - ผู้ให้การสนับสนุน- - - - - - - - - - - - - -
|
|
|
กระทู้ #770 [C] (จาก IP: 124.121.139.25)
มีใครเขียนโปรแกรมนี้ได้มั้งค่ะ พอดีไม่ถนัดเลยอาค่ะ รีบใช้อ่ะค่ะ
จงเขียน class definition ของ polynomial ที่มีสมการเป็น a0 + a¬1 x + a2 x¬2 + ? + anxn เมื่อ n เป็น degree ของ polynomial โดยสมมุติว่า degree สูงสุดของ polynomial คือ 4 (n = 0..4) Class definition ควรประกอบด้วย ? constructor function ? data number และ ? member function ซึ่งอย่างน้อยควรจะมีฟังก์ชันสำหรับ o set ค่าสัมประสิทธ์ของสมการ a0 , a¬1 , ?,an o คำนวณค่าผลลัพธ์ของ Polynomial o พิมพ์ค่าของ polynomial เมื่อกำหนดค่า x o พิมพ์ค่า polynomial ในรูปแบบ P(x) = a0 + a¬1 x + a2 x¬^2 + ? + anx^n จากนั้นให้เขียนโปรแกรมทดสอบ class polynomial โดยโปรแกรมรับค่า degree ค่าสัมประสิทธิ์ และ ค่า x ของ polynomial โดยค่าของ x ให้รับเข้ามาเป็นช่วง เช่น x = 1 ? 10 หมายความว่าให้คำนวณค่า polynomial เมื่อ x = 1, x = 2, x = 3,?,x = 10 ให้พิมพ์สมการ Polynomial พร้อมทั้งค่า ผลลัพธ์เมื่อกำหนดค่า x ตามช่วงที่รับเข้ามา
ตัวอย่าง Output P(x) = 5 + 2x + 1x¬^2 x=1 : P(1) = 8 x=2 : P(2) = 13 x=3 : P(3) = 20 x=4 : P(4) = 29 x=5 : P(5) = 40
|
จากคุณ
:
Sherry [2006-12-05 17:24:37]
|
|
ความคิดเห็น #25206 (จาก IP: 124.120.5.59)
ทำไมมันยากงี้อะ....แล้สวจะรู้มั๊ยเนี่ย
|
จากคุณ
:
ting / ting120@gmail.com [2006-12-08 11:36:48]
|
|
ความคิดเห็น #25216 (จาก IP: 58.9.38.38)
ออมันง่ายมากเลยมียากกว่านี้ไม อิอิ |
จากคุณ
:
#TET262 / chalongkmutt@hotmail.com [2006-12-10 18:04:20]
|
|
ความคิดเห็น #25217 (จาก IP: 203.155.94.129)
ไม่ยาก นา |
จากคุณ
:
sup98 [2006-12-10 18:08:02]
|
|
ความคิดเห็น #25362 (จาก IP: 202.44.8.100)
class Polynomial { public: Polynomial(); ~Polynomial(); int CoefVal[4]; int Degree; int SetDegree(int deg); int SetCeof(int *Val); void Calculate(double x);
}; Polynomial::Polynomial() { } Polynomial::~Polynomial() { } int Polynomial::SetDegree(int deg) { if(deg>4) return(-1); Degree = deg; }
int Polynomial::SetCeof(int *Val) { if(Degree>4) return(-1); for(int i=0; i<Degree; i++) { CoefVal[i] = *(Val+i); } }
void Polynomial::Calculate(double x) { double Result=0; for(int i=0; i<=Degree; i++) { Result+= CoefVal[i]*pow(x, (double)i); } printf("x=%.3f : P(%.3f) = %.3f",x,xResult); }
// พอเป็นแนวทางนะครับ ลองหาทางปรัลเปลี่ยนเองนะครับ |
จากคุณ
:
คนผ่านมา / santi_inc@hotmail.com [2007-01-31 19:04:47]
|
|
ความคิดเห็น #25703 (จาก IP: 61.7.143.54)
#include<stdio.h> #include<conio.h> #include<string.h> #include<stdlib.h> //-------------------------------------start void main (void) { //-----------------------------------------VAR char pol1[100],pol2[100], *num[20],numtmp[20],*coftmp[20], *powtmp[20],word[100],signtmp[20];
int x,y,ls,lenword,numcof[20],power[20];
clrscr(); //------------------------------------------ENTER_INPUT printf("WORK_2 TYPE_2\n"); printf("Enter polynomial 1 : "); gets(pol1); printf("Enter polynomial 2 : "); gets(pol2);
strcpy(word,pol1); strcat(word,"-"); strcat(word,pol2);
lenword=strlen(word); for(x=0;x<20;x++) { signtmp[x] = ' '; } signtmp[0]='+'; //--------------------------------sign ls=1; for(x=0;x<lenword;x++) { if(word[x]=='+') { signtmp[ls] = '+'; ls++; } else if(word[x]=='-') { signtmp[ls] = '-'; ls++; }
}
num[0] = strtok(word,"+-"); for(x=1;x<20;x++) { num[x] = strtok(NULL,"+-"); }
for(x=0;x<ls;x++) { if((strchr(num[x], 'X'))||(strchr(num[x],'x'))) { strcpy(numtmp,num[x]); coftmp[x] = strtok(num[x],"Xx^"); powtmp[x] = strtok(NULL,"Xx^"); if((powtmp[x]==NULL) && (coftmp[x]!=NULL)) { if((numtmp[0]== 'X')||(numtmp[0]=='x')) { powtmp[x] = coftmp[x]; coftmp[x] = "1"; } else { powtmp[x]= "1"; } } else if((powtmp[x]==NULL) && (coftmp[x]==NULL)) { coftmp[x] = "1"; powtmp[x] = "1"; } } else { coftmp[x]=num[x]; powtmp[x]="0"; } }
for(x=0;x<ls;x++) { if(signtmp[x]=='+') { numcof[x] = atoi(coftmp[x]); } else if(signtmp[x]=='-') { numcof[x] = (-1)*atoi(coftmp[x]); } power[x] = atoi(powtmp[x]); }
for(x=0;x<=ls-1;x++) { for(y=(x+1);y<=ls-1;y++) { if(power[x]<power[y]) { swap(&power[x],&power[y]) ; swap(&numcof[x],&numcof[y]); } else if(power[x]==power[y]) { numcof[x]=numcof[y]+numcof[x]; power[y]=numcof[y]=0; } } }
lenword=0; for(x=0;x<ls;x++) { if((power[x]==0)&&(numcof[x]==0)) { lenword++; } }
for(x=0;x<ls;x++) { if(numcof[x]>1) { signtmp[x]='+'; } else if(numcof[x]<(-1)) { signtmp[x]='-'; numcof[x]=(-1)*numcof[x]; } } printf("total is : "); for(x=0;x<ls-lenword;x++) { printf(" %dX^%d ",numcof[x],power[x]); } getch(); } //-----------------------------------end int swap(int *a,int *b) { int word; word = *a; *a = *b; *b = word; return 1; }
|
จากคุณ
:
big [2007-07-04 06:33:31]
|
|
|
- - - - - - - - - - - - - - ผู้ให้การสนับสนุน- - - - - - - - - - - - - -
|
|
|
|
|