• Nie Znaleziono Wyników

Ćwiczenie VB7.0_dwie_proste – instrukcja Do...Loop Zadanie Metod

N/A
N/A
Protected

Academic year: 2021

Share "Ćwiczenie VB7.0_dwie_proste – instrukcja Do...Loop Zadanie Metod"

Copied!
3
0
0

Pełen tekst

(1)

Copyright © 2009 Janusz Bonarowski 1

Ć wiczenie VB7.0_dwie_proste – instrukcja Do...Loop

Zadanie

Metodą iteracyjną znaleźć współrzędne punktu przecięcia dwu prostych.

Zadanie można zobrazować za pomocą arkusza kalkulacyjnego znajdującego się w katalogu zadania, a którego postać przedstawia rys. 1.

Rys. 1. Zadanie rozwiązane w arkuszu kalkulacyjnym

Bez stosowania metody iteracyjnej, wprost ze wzorów w ramce, przy równaniach prostych możemy uzyskać współrzędne punktu przecięcia x=3,5, y=5,5.

Zastosujmy jednak metodę iteracyjną w celu poznania sposobu wykorzystywania instrukcji cyklu Do...Loop. Instrukcja ta stosowana jest w sytuacjach, w których nie wiemy ile razy pętla ma być wykonana. W naszym przypadku, jeśli rozpoczniemy od punktu Xstart bardzo odległego od współrzędnej punktu przecięcia i gdy założymy przyrost dx bardzo mały – pętla będzie wykonywana wiele razy. Natomiast jeśli punkt startowy Xstart będzie bliski

szukanego x i dx stosunkowo duży – pętla wykona się może tylko kilkakrotnie.

(2)

Copyright © 2009 Janusz Bonarowski 2

Algorytm programu

Wczytanie:

a1, a2, b1, b2, Xstart, dx

Xbie = Xstart rozn = 100

czy rozn > 0

y1 = a1*Xbie + b1 y2 = a2*Xbie + b2

rozn = y2 – y1 Xbie=Xbie + dx

x = Xbie - dx y = a2*x + b2

Koniec TAK

NIE

(3)

Copyright © 2009 Janusz Bonarowski 3

Kod aplikacji

Private Sub btnOblicz_Click(ByVal sender As System.Object, _

ByVal e As System.EventArgs) Handles btnOblicz.Click

Dim a1, b1, y1, a2, b2, y2, Xstart, dx, Xbie As Double Dim rozn As Double = 100

a1 = CDbl(txta1.Text) b1 = CDbl(txtb1.Text) a2 = CDbl(txta2.Text) b2 = CDbl(txtb2.Text)

Xstart = CDbl(txtXstart.Text) dx = CDbl(txtdx.Text)

ListBox1.Items.Clear() ListBox2.Items.Clear()

Xbie = Xstart Do While rozn > 0

Call WartoscY(a1, b1, Xbie, y1) Call WartoscY(a2, b2, Xbie, y2) rozn = y2 - y1

Xbie = Xbie + dx

ListBox1.Items.Add(Xbie.ToString) ListBox2.Items.Add(rozn.ToString) Loop

lblWynik.Text = "X=" & (Xbie - dx).ToString & vbCrLf & _ "Y=" & (a2 * (Xbie - dx) + b2).ToString End Sub

Private Sub WartoscY(ByVal a As Double, ByVal b As Double, _ ByVal x As Double, ByRef y As Double) y = a * x + b

End Sub

Cytaty

Powiązane dokumenty

Czy istnieje taki ostrosłup czworokątny oraz taka płaszczyzna przecina- jąca wszystkie jego krawędzie boczne, że pole uzyskanego przekroju jest więk- sze od pola podstawy

Dobrze udokumentowana biografia ukaże zarówno trudności, z jakimi spotykał się w życiu publicznym, jak i ważne osiągnięcia.. Miał w tym wszystkim mocne oparcie w

Ostro- słup ten przecięto dwiema płaszczyznami równoległymi do postawy na trzy bryły o równych objętościach.. Oblicz odległość między

W umowach z NFZ nie ma przewidzianych środków na inwestycje czy nowe technologie – i to się nie zmieni także przy nowym sposobie finansowania ryczałtowego.. Sytuacja ta zmusza

To, co może dziwić, to popieranie przez dzisiejszy rząd rozwiązań, które zgłaszane dwa lata temu przez poprzed- nią ekipę, spotkały się z miażdżącą krytyką ówczesnej

T en prowokacyjny tytuł jest związany z II Kongresem Kardiologii po Dyplomie, który odbył się w kwietniu.. Sesja dotycząca elektrokardiografii poruszyła właśnie

Piąty zespół QRS w odprowadze- niach kończynowych i trzeci zespół QRS w odprowadze- niach przedsercowych to pobudzenia o innej morfologii, prawdopodobnie pobudzenia

W kolejnej ewolucji już po 850 ms następuje stymulacja przedsionka i komo- ry i ponownie własne pobudzenie przedsionkowe, sty- mulacja komory z zawęźleniem na ramieniu