C++ Bc. 16 cpp: Porovnání verzí
Bez shrnutí editace |
Bez shrnutí editace |
||
| Řádek 1: | Řádek 1: | ||
#include <iostream> | |||
#include <iomanip> | |||
#include <vector> | |||
typedef std::vector<int> Polynom; | |||
void soucin(Polynom& P, const Polynom& Q, const Polynom& R); | |||
int main() | |||
{ | |||
Polynom A, B, C; | |||
A.push_back( 3); // A[0] | |||
A.push_back( 0); // A[1] | |||
A.push_back(-1); // A[2] | |||
B.push_back(-3); // B[0] | |||
B.push_back( 2); // B[1] | |||
B.push_back( 4); // B[2] | |||
B.push_back(-2); // B[3] | |||
soucin(C, A, B); | |||
// deklarace pomocne fuknce pro tisk polynomu | |||
void tisk(std::ostream&, const char*, const Polynom&); | |||
tisk(std::cout, " A ", A); | |||
tisk(std::cout, " B ", B); | |||
tisk(std::cout, "A*B", C); | |||
} | |||
void soucin(Polynom& P, const Polynom& Q, const Polynom& R) | |||
{ | |||
// Zmenime pocet prvku vystupniho polynomy. Hodnoty jednotlich prvku | |||
// jsou pri teto operaci inicializovany na nulu (tj. na implicitni | |||
// hodnotu danexho typu). | |||
P.resize(Q.size()+R.size()-1); | |||
for (int i=0; i<Q.size(); i++) | |||
for (int j=0; j<R.size(); j++) | |||
{ | |||
P[i+j] += Q[i]*R[j]; | |||
} | |||
} | |||
void tisk(std::ostream& out, const char* t, const Polynom& p) | |||
{ | |||
out << t << " [ "; | |||
for (Polynom::const_reverse_iterator i=p.rbegin(), e=p.rend(); i!=e; ++i) | |||
{ | |||
out << std::setw(2) << *i << " "; | |||
} | |||
out << "]\n"; | |||
} | |||
A [ -1 0 3 ] | |||
B [ -2 4 2 -3 ] | |||
A*B [ 2 -4 -8 15 6 -9 ] | |||
[ [[C plus plus Bc. 16 | Zpět]] ] | [ [[C plus plus Bc. 16 | Zpět]] ] | ||
Verze z 12. 3. 2006, 13:03
#include <iostream>
#include <iomanip>
#include <vector>
typedef std::vector<int> Polynom;
void soucin(Polynom& P, const Polynom& Q, const Polynom& R);
int main()
{
Polynom A, B, C;
A.push_back( 3); // A[0]
A.push_back( 0); // A[1]
A.push_back(-1); // A[2]
B.push_back(-3); // B[0]
B.push_back( 2); // B[1]
B.push_back( 4); // B[2]
B.push_back(-2); // B[3]
soucin(C, A, B);
// deklarace pomocne fuknce pro tisk polynomu
void tisk(std::ostream&, const char*, const Polynom&);
tisk(std::cout, " A ", A);
tisk(std::cout, " B ", B);
tisk(std::cout, "A*B", C);
}
void soucin(Polynom& P, const Polynom& Q, const Polynom& R)
{
// Zmenime pocet prvku vystupniho polynomy. Hodnoty jednotlich prvku
// jsou pri teto operaci inicializovany na nulu (tj. na implicitni
// hodnotu danexho typu).
P.resize(Q.size()+R.size()-1);
for (int i=0; i<Q.size(); i++)
for (int j=0; j<R.size(); j++)
{
P[i+j] += Q[i]*R[j];
}
}
void tisk(std::ostream& out, const char* t, const Polynom& p)
{
out << t << " [ ";
for (Polynom::const_reverse_iterator i=p.rbegin(), e=p.rend(); i!=e; ++i)
{
out << std::setw(2) << *i << " ";
}
out << "]\n";
}
A [ -1 0 3 ] B [ -2 4 2 -3 ] A*B [ 2 -4 -8 15 6 -9 ]
[ Zpět ]