C++ Bc. 16 cpp: Porovnání verzí
Bez shrnutí editace |
mBez shrnutí editace |
||
(Není zobrazeno 5 mezilehlých verzí od 2 dalších uživatelů.) | |||
Řádek 1: | Řádek 1: | ||
[ [[C | #include <iostream> | ||
#include <iomanip> | |||
#include <vector> | |||
typedef std::vector<double> 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 funkce 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 daneho 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++ Bc. 16 | Zpět]] ] | |||
[[Kategorie:Programování]] | |||
[[Kategorie:C++]] |
Aktuální verze z 1. 2. 2007, 12:55
#include <iostream> #include <iomanip> #include <vector> typedef std::vector<double> 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 funkce 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 daneho 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 ]