Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Sumowanie ciągów

Ostatnio zmodyfikowano 2021-01-28 22:29
Autor Wiadomość
Shana_a
Temat założony przez niniejszego użytkownika
» 2021-01-28 20:45:50
Właśnie chodzi mi o to, aby było tak jak napisałeś czyli Q[ 0 ] = h[ 0 ] * hd[ 1 ]. Nie rozumiem dlaczego powinny być spójne. Co do wartości, to faktycznie ta pierwsza się różni i niestety to błąd, powinno być 0.576.
P-178053
nanoant20
» 2021-01-28 20:57:42
//edit naniosłem poprawkę (rozszerzyłem warunek), teraz już jest wszystko o.k.

C/C++
#include <iostream>
#include <iomanip>
#include <vector>

using namespace std;

int main()
{
   
vector < double > h { 0.570, 1.371, 1.772, 1.911, 1.887 };
   
vector < double > hd { 0, 1.4, 1.6, 2.1 };
   
cout << "ilosc elementow h:= " << h.size() << " ilosc elementow hd:= " << hd.size() << endl;
   
   
vector < double > Q;
   
   
double wynik = 0.0;
   
   
cout << "\n\tshow me step by step" << endl;
   
for( unsigned int i = 0; i <= hd.size(); ++i )
   
{
       
for( unsigned int j = 1; j <= h.size(); ++j )
       
{
           
int m = j - 1;
           
int n = i - j + 1;
           
if( n <= 0 || n == hd.size() ) n = 0;
           
           
cout << "\nh[" << m << "] " << h[ m ] << "\t*\thd[" << n << "] " << hd[ n ];
           
if( m < h.size() - 1 ) cout << " + " << endl;
           
           
wynik += h[ m ] * hd[ n ];
           
if( m == h.size() - 1 ) {
               
Q.push_back( wynik );
               
cout << "\t= " << wynik << endl;
               
cout << "__________________________________________" << endl;
           
}
           
m = 0;
       
}
       
wynik = 0;
   
}
   
cout << "\nShow me Q" << endl;
   
size_t lp = 1;
   
for( auto const & el: Q ) {
       
cout << "q" << lp << " = " << fixed << setprecision( 2 ) << el << endl;
       
++lp;
   
}
   
cout << endl;
   
getchar();
   
return 0;
}
P-178054
pekfos
» 2021-01-28 22:29:52
Właśnie chodzi mi o to, aby było tak jak napisałeś czyli Q[ 0 ] = h[ 0 ] * hd[ 1 ]. Nie rozumiem dlaczego powinny być spójne.
Zgodnie ze wzorem Q1 = h1 * delta H1, gdzie zakładając że element 1 ma indeks 0, wychodzi h[0] * hd[0], co daje poprawny wynik. Tak jak piszesz że chcesz żeby było (czyli jak masz obecnie) daje błędny wynik.
P-178055
1 « 2 »
Poprzednia strona Strona 2 z 2