![]() |
![]() |
![]() |
![]() |
![]() |
|
|
Informatyka w Elektroenergetyce - LaboratoriumMateriałyLiteratura:
Środowisko zintegrowane z kompilatorem:Funkcja do odwracania macierzyPoniższa funkcja (ściślej szablon funkcji) służy do odwracania macierzy kwadratowych. Można jej użyć do odwracania macierzy liczb rzeczywistych oraz liczb zespolonych. Tablica może być statyczna lub dynamiczna. Jako drugi argument funkcja powinna dostać wymiar tablicy. Uwaga: jeżeli przydzielono pamięć na tablicę o wymiarze np. 10x10, a wypełniono ją tablicą mniejszą, np. 5x5, to jako wymiar należy przesłać wartość 5. Odwrócona tablica będzie znajdować się w miejscu "starej" tablicy.template<class _E> void InvMtrx(_E Tab, int W /*Wymiar*/) { int i,j,k; double r=0.; for(i=0;i<W;i++) { Tab[i][i] = 1./Tab[i][i]; for(j=0;j<W;j++) if(j!=i) { Tab[j][i] = Tab[j][i] * Tab[i][i]; for (k=0;k<W;k++) if(k!=i) { Tab[j][k] -= Tab[j][i] * Tab[i][k]; if(j==(W-1)) Tab[i][k] = -( Tab[i][k] * Tab[i][i] ); } } } W--; for(j=0;j<W;j++) Tab[W][j] = -(Tab[W][j] * Tab[W][W]); }Przykład użycia na liczbach rzeczywistych double t[2][2]; //definicja tablicy t[0][0]=1.; //wypełnienie t[0][1]=2.; t[1][0]=-1.; t[1][1]=1.; InvMtrx(t,2); //odwróceniePrzykład użycia na liczbach zepsolonych // zakładam, że te trzy linijki // są już wpisane gdzie wyżej // #include <complex> // using namespace std; // typedef complex Problem z funkcją getline w MS Visual C++ 6.0Na wstępie: chodzi o funkcję globalną, a nie klasy istream.Funkcja getline w standardowej bibliotece C++ w Visualu 6.0 jest "robaczywa", co stwierdził nawet sam Microsoft: else if (_Tr::eq((_E)_C, _D)) {_Chg = true; // _I.rdbuf()->snextc(); //zakomentować _I.rdbuf()->sbumpc(); //dopisać break; }Problem ten nie dotyczy następnych wersji Visuala, w tym Visual C++ 2005 Express Edition oraz środowiska Dev-Cpp. |
![]() Napisz do mnie Nowości: - UWAGA!!!- Instalacje elektryczne- Operacja Sesja-Lato'06- Nowy semestr- Boże Narodzenie- 3..2..1..Start- Koniec kampani wrześniowej- Wakacje- Wielkanoc- Dżingel bels, dźingel bels- Początek semestru zimowegowięcej...gościem na mojej stronie |