Gau

2
Gaussi_tabel Page 1 z x y x1 x2 -4 -5 -9 -11 0 0 1 1 1 1 1 0 3 5 10 15 1a

description

Gau

Transcript of Gau

Gaussi_programmzxyx1x2x3-4-5-9-11000111110153510151a109

&APage &P&APage &PSalvestame seisuTaastame algandmedAndmete lugemine leheltTaastame salvestatuGaussi teisendus

Attribute VB_Name = "Gaussi_programm"

Option ExplicitDim A(1 To 128, 1 To 128) As Double ' Maatriks, mida teisendatakseDim m, n, I, J As Integer ' M - ridade arv, N - veergude arv ' (I,J) - lemine vasak nurkDim B(1 To 128, 1 To 128) As DoubleDim C(1 To 128, 1 To 128) As Double

Sub Gauss(I, J) ' Teeb Gaussi meetodi teisenduseAttribute Gauss.VB_ProcData.VB_Invoke_Func = " \n14" Dim ii, jj As Integer ' juhtelemendiga (I,J) (see pole mitte Dim C As Double ' lemine vasak nurk, vaid siinkohal C = A(I, J) ' formaalsete parameetrite paar For jj = 1 To n If jj J Then A(I, jj) = A(I, jj) / C Else A(I, J) = 1 End If Next jj For ii = 1 To m If ii I Then C = A(ii, J) For jj = 1 To n If jj J Then A(ii, jj) = A(ii, jj) - C * A(I, jj) Else A(ii, J) = 0 End If Next jj End If Next iiEnd Sub

Sub Scan_data() ' Otsib tabeli algust kuni 19 pesa paremaleAttribute Scan_data.VB_ProcData.VB_Invoke_Func = " \n14" Dim s, v As Object ' ja kuni 19 pesa alla. Dim ii, jj As Integer ' Leiab ka tabeli lpu I = 0 J = 0 m = 0 n = 0 Range("C5").Activate Set s = ActiveCell For ii = 0 To 19 For jj = 0 To 19 Set v = s.Offset(ii, jj) If IsNumeric(v.Value) And v.Value "" Then I = ii + 1 J = jj + 1 ii = 20 jj = 20 End If Next jj Next ii ' siia veateade, kui tabeli algust ei leita Set s = v For jj = 0 To 127 Set v = s.Offset(0, jj) If Not IsNumeric(v.Value) Or v.Value = "" Then n = jj jj = 200 End If Next jj For ii = 0 To 127 Set v = s.Offset(ii, 0) If Not IsNumeric(v.Value) Or v.Value = "" Then m = ii ii = 200 End If Next ii For ii = 1 To m For jj = 1 To n Set v = s.Offset(ii - 1, jj - 1) A(ii, jj) = v.Value Next jj Next ii Call sailEnd Sub

Sub show() ' Nitab ekraanil maatriksitAttribute show.VB_ProcData.VB_Invoke_Func = " \n14" Dim C, d, e As Object Dim ii, jj As Integer Set d = ActiveCell Range("C5").Select Set C = ActiveCell For ii = 1 To m For jj = 1 To n Set e = C.Offset(I + ii - 2, J + jj - 2) e.Value = A(ii, jj) Next jj Next iiEnd Sub

Sub Step() ' Teeb Gaussi meetodi sammuAttribute Step.VB_ProcData.VB_Invoke_Func = " \n14" Dim z As Object Dim ii, jj As Integer Set z = ActiveCell ii = z.Row jj = z.Column If ii >= I + 4 And ii = J + 2 And jj