Şimdi Ara

polinom bölmesi

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
2
Cevap
0
Favori
670
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • polinom bölmesi için elimde yabancı kaynaktan bir kod var ama nasıl çalıştığını anlamadım. bölen ve bölünen polinomların en büyük kuvvetlerini giriyorsunuz. ardından katsayılarını yazıyorsunuz. bölüm ve kalanın kuvvetlerini ve katsayılarını yazıyor. kodu düzeltmek yada yeni kod yazmak için yardımınızı bekliyorum.
    Elimdeki kod
    kaynakhttps://rosettacode.org/wiki/Polynomial_long_division

    #include <iostream>
    #include <math.h>

    using namespace std;

    // does: prints all members of vector
    // input: c - ASCII char with the name of the vector
    // d - degree of vector
    // A - pointer to vector
    void Print(char c, int d, double* A) {
    int i;

    for (i=0; i < d+1; i++)
    cout << c << "[" << i << "]= " << A << endl;
    cout << "Degree of " << c << ": " << d << endl << endl;
    }
    int main() {
    double *N,*D,*d,*q,*r; // vectors - N / D = q N % D = r
    int dN, dD, dd, dq, dr; // degrees of vectors
    int i; // iterators

    // setting the degrees of vectors
    cout << "Enter the degree of N:";
    cin >> dN;
    cout << "Enter the degree of D:";
    cin >> dD;
    dq = dN-dD;
    dr = dN-dD;


    // allocation and initialization of vectors
    N=new double [dN+1];
    cout << "Enter the coefficients of N:"<<endl;
    for ( i = 0; i < dN+1; i++ ) {
    cout << "N[" << i << "]= " << endl;
    cin >> N;
    }

    D=new double [dN+1];
    cout << "Enter the coefficients of D:"<<endl;
    for ( i = 0; i < dD+1; i++ ) {
    cout << "D[" << i << "]= " << endl;
    cin >> D;
    }

    d=new double [dN+1];
    for( i = dD+1 ; i < dN+1; i++ ) {
    D = 0;
    }

    q=new double [dq+1];
    for( i = 0 ; i < dq + 1 ; i++ ) {
    q = 0;
    }

    r=new double [dr+1];
    for( i = 0 ; i < dr + 1 ; i++ ) {
    r = 0;
    }

    if( dD < 0) {
    cout << "Degree of D is less than zero. Error!";
    }

    cout << "-- Procedure --" << endl << endl;
    if( dN >= dD ) {
    while(dN >= dD) {
    // d equals D shifted right
    for( i = 0 ; i < dN + 1 ; i++ ) {
    d = 0;
    }
    for( i = 0 ; i < dD + 1 ; i++ ) {
    d[i+dN-dD] = D;
    }
    dd = dN;

    Print( 'd', dd, d );

    // calculating one element of q
    q[dN-dD] = N[dN]/d[dd];

    Print( 'q', dq, q );

    // d equals d * q[dN-dD]
    for( i = 0 ; i < dq + 1 ; i++ ) {
    d = d * q[dN-dD];
    }

    Print( 'd', dd, d );

    // N equals N - d
    for( i = 0 ; i < dN + 1 ; i++ ) {
    N = N - d;
    }
    dN--;

    Print( 'N', dN, N );
    cout << "-----------------------" << endl << endl;

    }

    }

    // r equals N
    for( i = 0 ; i < dN + 1 ; i++ ) {
    r = N;
    }
    dr = dN;

    cout << "=========================" << endl << endl;
    cout << "-- Result --" << endl << endl;

    Print( 'q', dq, q );
    Print( 'r', dr, r );

    // dealocation
    delete [] N;
    delete [] D;
    delete [] d;
    delete [] q;
    delete [] r;
    return 0;
    }







  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.