[C++] Pętla for wzorst znacznika
Ostatnio zmodyfikowano 2015-03-26 18:54
blazej6 Temat założony przez niniejszego użytkownika |
[C++] Pętla for wzorst znacznika » 2015-03-26 14:16:14 Witajcie mam mega problem z pętlą for( F = 1; F <= 20; F++ ) { for( I = 1; I <= 8; I++ ) { T[ 0 ][ F ] = 37.5; T[ I ][ F ] =( T[ I - 1 ][ F - 1 ] + T[ I + 1 ][ F - 1 ] ) / 2; T[ 8 ][ F ] = 32; } }
I - liczba tych kropek, F=delta T na rysunku i potrzebuje żeby działało na takiej zasadzie jak na rysunku http://postimg.org/image/4fkgr1kun/ http://postimg.org/image/4fkgr1kun/ Głównie chodzi o to zeby brał o te dwa punkty zawsze mniej i pobierał sobie ich temperature z obliczeń poprzednich tutaj cały prog: #include <iostream> #include <fstream> #include <cmath> using namespace std;
int main() { double lambda = 0.75; double c = 3000000; double cb = 3996200; double Gb = 0.00125; double Tb = 37; double k = 4995.25; double Qmet = 245; double L = 0.035; double delT = 5; int n = 10; double Q; double WS; double a, h; Q = k * Tb + Qmet; a = lambda / c; h = L / n; WS = 1 -(( 2 * a * delT ) /( h * h ) ) -(( k * delT ) / c ); if( WS >= 0 ) cout << "Warunek stabilnosci zostal spelniony" << endl; else cout << "Nie spelniono warunku" << endl; long double const1 = 1 -(( 2 * a * delT ) /( h * h ) ) -(( k * delT ) / c ); long double const2 =( a * delT ) /( h * h ); long double const3 =( Q * delT ) / c; long double T[ 9 ][ 21 ]; int I, F; for( I = 1; I <= 7; I++ ) { T[ 0 ][ 0 ] = 37.5; T[ 8 ][ 0 ] = 32; T[ I ][ 0 ] = 36.6; } for( F = 1; F <= 20; F++ ) { for( I = 1; I <= 8; I++ ) { T[ 0 ][ F ] = 37.5; T[ I ][ F ] =( T[ I - 1 ][ F - 1 ] + T[ I + 1 ][ F - 1 ] ) / 2; T[ 8 ][ F ] = 32; } } for( F = 0; F <= 5; F++ ) { cout << "Rozklad temperatur F[" << F << "] " << endl; for( I = 0; I <= 8; I++ ) { cout << T[ I ][ F ] << endl; } } system( "pause" ); return 0; }
|
|
Wronski |
» 2015-03-26 14:36:21 kod wrzuc w [.cpp][./cpp] bez kropek oczywiscie, tak az oczy bola |
|
blazej6 Temat założony przez niniejszego użytkownika |
» 2015-03-26 14:43:37 http://www.speedyshare.com/fTF4N/PP1.cpp |
|
Wronski |
» 2015-03-26 15:00:46 Wydaje mi sie ze dobrze by to dzialalo, o ile dobrze rozumiem rysunek :P gdybys zmienil po prostu to : for( I = 1; I <= 7; I++ )
{ T[ 0 ][ 0 ] = 37; T[ 8 ][ 0 ] = 32.5; T[ I ][ 0 ] = 36.6; }
for( F = 1; F <= 20; F++ ) { for( I = 1; I <= 8; I++ ) { T[ 0 ][ F ] = 37; T[ I ][ F ] =( T[ I - 1 ][ F - 1 ] + T[ I + 1 ][ F - 1 ] ) / 2; T[ 8 ][ F ] = 32.5; } }
w taki sposob |
|
blazej6 Temat założony przez niniejszego użytkownika |
» 2015-03-26 15:10:27 nie nie, chodzi o to żeby wyniki prezntowały sie w następujacy sposób Temperatura wg prawa Fouriera w danym wezle i danej chwili czasu w [C]:
1.37.5000 2.36.6000 3.36.6000 4.36.6000 5.36.6000 6.36.6000 7.36.6000 8.36.6000 9.32.0000
1.37.5000 2.37.0500 3.36.6000 4.36.6000 5.36.6000 6.36.6000 7.36.6000 8.34.6000 9.32.0000
1.37.5000 2.37.0500 3.36.8300 4.36.6000 5.36.6000 6.36.6000 7.35.4500 8.34.6000 9.32.0000
...
itd |
|
Wronski |
» 2015-03-26 15:32:22 for( F = 0; F <= 5; F++ ) { cout << "Rozklad temperatur F[" << F << "] " << endl; for( I = 0; I <= 8; I++ ) { cout << setprecision( 4 ) << setiosflags( ios::fixed ) << T[ I ][ F ] << endl; } }
o to chodzi ? |
|
blazej6 Temat założony przez niniejszego użytkownika |
» 2015-03-26 15:41:09 Nie nie.
1.37.5000 2.36.6000 3.36.6000 4.36.6000 5.36.6000 6.36.6000 7.36.6000 8.36.6000 9.32.0000
1.37.5000 2.37.0500 3.36.6000 4.36.6000 5.36.6000 6.36.6000 7.36.6000 8.34.6000 9.32.0000
chodzi aby w tej 3 pętli brał wartość 1 i 2 oraz 8 i 9 z pętli 2, w 4 pętli wartość 1, 2, 3 i 7, 8, 9 z petli 3
1.37.5000 2.37.0500 3.36.8300 4.36.6000 5.36.6000 6.36.6000 7.35.4500 8.34.6000 9.32.0000
...
|
|
Brunon3 |
» 2015-03-26 15:43:47 Daj kod w pierwszym poście w znaczniki [cpp] kod [/cpp].
//EDYTOWANE
-BD. |
|
« 1 » 2 |