• Nie Znaleziono Wyników

Do While

N/A
N/A
Protected

Academic year: 2021

Share "Do While"

Copied!
4
0
0

Pełen tekst

(1)

Instrukcja cyklu Do While

Copyright © 2017, Janusz Bonarowski 1

Do While

Zadanie – kartka

Ile razy należy złożyć kartkę papieru (o grubości 0,1 mm) aby jej grubość była co najmniej taka jak wysokość Pałacu Kultury (231 m)?

Private Sub ButtonOblicz_Click(sender As Object, e As EventArgs) _ Handles ButtonOblicz.Click Dim Grubosc As Single

Dim Wysokosc As Single Dim N As Integer = 0

Grubosc = CSng(TextBoxGruboscKartki.Text)

Wysokosc = CSng(TextBoxWysokoscDoOsiagniecia.Text) ' Wejdź do pętli jeśli warunek jest prawdziwy Do While Grubosc < Wysokosc

Grubosc = Grubosc * 2 N = N + 1

Loop

TextBoxIlerazy.Text = N & "; " & Grubosc End Sub

Zadanie – sinus

Obliczyć, instrukcją cyklu, dla jakiej wartości kąta α funkcja sin(α) osiąga maksimum (i ile ono wynosi).

Private Sub ButtonOblicz_Click(sender As Object, e As EventArgs) _ Handles ButtonOblicz.Click

Dim x1, x2, dx As Double x1 = CDbl(TextBoxXpocz.Text) dx = CDbl(TextBoxDx.Text) x2 = x1 + dx

Do While Math.Sin(x1) < Math.Sin(x2) x1 = x2

x2 = x1 + dx Loop

TextBoxWynik1.Text = Format((x1 * 180 / Math.PI), "00.0000") TextBoxWynik2.Text = Math.Sin(x1).ToString

End Sub

Private Sub TextBoxDx_TextChanged(sender As Object, e As EventArgs) _ Handles TextBoxDx.TextChanged TextBoxWynik1.Text = ""

TextBoxWynik2.Text = ""

End Sub

Private Sub TextBoxXpocz_TextChanged(sender As Object, e As EventArgs) _ Handles TextBoxXpocz.TextChanged TextBoxWynik1.Text = ""

TextBoxWynik2.Text = ""

End Sub

(2)

Instrukcja cyklu Do While

Copyright © 2017, Janusz Bonarowski 2

Zadanie – parabola

Obliczyć, instrukcją cyklu, dla jakiej wartości zmiennej niezależnej x funkcja

( )

x A x B x C

y = ⋅ 2 + ⋅ + osiąga maksimum i ile ono wynosi.

Private Sub ButtonOblicz_Click(sender As Object, e As EventArgs) _

Handles ButtonOblicz.Click Dim x1, x2, dx As Single

x1 = CSng(TextBoxXpocz.Text) dx = CSng(TextBoxDx.Text) x2 = x1 + dx

Do While Parabola(x1) < Parabola(x2) x1 = x2

x2 = x1 + dx Loop

TextBoxXmax.Text = Format(x1, "0.000000") TextBoxY.Text = Parabola(x1).ToString End Sub

Public Function Parabola(ByVal x As Single) As Single Dim A As Single = -5

Dim B As Single = 0 Dim C As Single = 5

Return A * x ^ 2 + B * x + C End Function

Zadanie – oszczędzanie

Obliczyć, instrukcją cyklu, ile lat należy oczekiwać, aby kapitał początkowy umieszczony na stały procent w banku osiągnął (lub przekroczył) określoną wartość końcową.

Private Sub ButtonOblicz_Click(sender As Object, e As EventArgs) _

Handles ButtonOblicz.Click Dim Kapitalpocz, KapitalKon, Oprocentowanie As Single

Dim LiczbaLat As Integer = 0

Kapitalpocz = CSng(TextBoxKapitalPocz.Text)

Oprocentowanie = CSng(TextBoxOprocentowanie.Text) KapitalKon = CSng(TextBoxKapitalKoncowy.Text) Do While KapitalKon >= Kapitalpocz

Kapitalpocz = Kapitalpocz + Kapitalpocz * Oprocentowanie LiczbaLat = LiczbaLat + 1

Loop

TextBoxLiczbaLat.Text = LiczbaLat.ToString & "; " & Kapitalpocz.ToString End Sub

(3)

Instrukcja cyklu Do While

Copyright © 2017, Janusz Bonarowski 3

Zadanie – działka przy murze

Mając daną długość ogrodzenia L obliczyć, za pomocą instrukcji cyklu, długość odcinka h pozwalającą uzyskać największe pole powierzchni działki przy murze, składającej się z dwóch identycznych trójkątów.

2 2 2

2 a h

L = +

 

 , stąd 2

2

4 h a= L − ;

2 a2h

S

= , 2 4 2

2 L h

S = h⋅ − ⋅

Rozwiązanie w arkuszu Excela

Rysunek 1 Kod

Private Sub ButtonOblicz_Click(sender As Object, e As EventArgs) _

Handles ButtonOblicz.Click Dim L, h, dh, a, S, S1, S2 As Single

L = CSng(TextBoxL.Text) h = CSng(TextBoxH.Text) dh = CSng(TextBoxDH.Text)

a = (1 / 2) * Math.Sqrt(L ^ 2 - 4 * h ^ 2) S1 = a * h

h = h + dh

a = (1 / 2) * Math.Sqrt(L ^ 2 - 4 * h ^ 2) S2 = a * h

Do While S1 < S2 S1 = S2 h = h + dh

a = (1 / 2) * Math.Sqrt(L ^ 2 - 4 * h ^ 2) S2 = a * h

Loop

TextBoxWynik.Text = "h=" & (h - dh) & " S=" & S1 End Sub

(4)

Instrukcja cyklu Do While

Copyright © 2017, Janusz Bonarowski 4

Zadanie – działka przy murze 2

Mając daną długość ogrodzenia L obliczyć, za pomocą instrukcji cyklu, długość odcinków a i b pozwalających uzyskać

największe pole powierzchni działki przy murze, mającej kształt prostokąta.

b a

L=2⋅ + , b=L−2⋅a, S=ab=a

(

L−2⋅a

)

Rozwiązanie w arkuszu Excela

Kod

Private Sub ButtonOblicz_Click(sender As Object, e As EventArgs) _ Handles ButtonOblicz.Click Dim L, a, da, b, s1, s2 As Single

L = CSng(TextBoxL.Text) a = CSng(TextBoxA.Text) da = CSng(TextBoxB.Text) b = L - 2 * a

s1 = a * b a = a + da b = L - 2 * a s2 = a * b

Do While s1 < s2 s1 = s2 a = a + da b = L - 2 * a s2 = a * b Loop

TextBoxWynik.Text = "a=" & (a - da) & vbCrLf &

"b=" & (L - 2 * (a - da)) & vbCrLf &

"Smax=" & s1 End Sub

Cytaty

Powiązane dokumenty

11) Wazon ma kształt sześcianu, w którym wydrążony jest walec w taki sposób, że styczne górnej podstawy walca, równoległe do odpowiednich krawędzi górnej podstawy sześcianu,

Pytanie brzmi: czy w koło o średnicy 1,4m da się wpisać kwadrat o boku 1m? Największy kwadrat jaki da się wpisać w takie koło to kwadrat wpisany. Jeżeli oznaczymy bok

12. Gdy wykonasz zadanie, zatrzymaj aktywność przytrzymując &#34; &#34; kliknij na górze ekranu w zdjęcie i powinna pojawić się w jego miejsce trasa Twojej aktywności -

[r]

Pole całej sfery jest równe polu koła o promieniu równym średnicy sfery – na sferze rysujemy to tak: nóżka cyrkla w jednym biegunie, ołówek ślizga się po drugim

Znaleźć długość najkrótszego boku trójkąta o kątach , , wiedząc, że promień okręgu opisanego na tym trójkącie

zaznaczono punkt X w odległości 4cm od wierzchołka trójkąta, zaś na ramieniu |BC| punkt Y tak, że odcinek |XY| jest równoległy do podstawy |AB|.. Oblicz długość

Metalowy stożek, którego tworząca ma 12cm i jest nachylona do płaszczyzny podstawy pod kątem 30 0 , przetopiono na 48 jednakowych kulek. Oblicz objętość jednej kulki oraz jej