Przeglądaj wersję html pliku:

wiczenie 19


cwicz_19

H M P R O G R A M O W A N I E

str. 49
W D E L P H I

ĆWICZENIE 19 – Zastosowanie instrukcji iteracyjnej repeat ... until
Potrafisz: ♦ stosować w programie własne funkcje matematyczne, ♦ stosować w programie własne procedury. Bardzo często zdarza się, że pewien ciąg działań wykonany musi być wielokrotnie raz za razem. Jeśli nie wiadomo ile razy ciąg tych działań trzeba powtórzyć, a znana jest okoliczność decydująca o zakończeniu cyklu powtórzeń, to stosuje się instrukcję repeat ... until (powtarzaj). Schemat działania tej instrukcji oraz sposób jej zapisu pokazany jest niżej. początek instrukcji

blok instrukcji

czy wyrażenie jest prawdziwe ? tak wyjście z instrukcji

nie

repeat instrukcja1; instrukcja2; ... ... ... ... ... until wyraż_logiczne

Słowa kluczowe repeat until ujmują między siebie ciąg powtarzanych instrukcji i w związku z tym nie trzeba stosować słów begin end grupujących instrukcje elementarne w blok. Przemyśl poniższy przykład. Program oblicza sumę kolejnych liczb parzystych poczynając od zera, aż do liczby podanej przez użytkownika. Podana jest treść procedury uruchamianej poprzez kliknięcie na klawisz [Sumuj].

procedure TForm1.Kl_sumujClick (Sender:TObject); var k, k_max, suma: integer; begin k_max:=StrToInt(Granica.Text); k:=0; //-- wart poczatkowe suma:=0; repeat //-- pocz petli iterac k:=k+1; if (k mod 2)=0 then suma:=suma+k; until k>=k_max; Panel_sumy.Caption:=IntToStr(suma)
49

cwicz_19

H M P R O G R A M O W A N I E

str. 50
W D E L P H I

end;
Ponieważ sprawdzane wyrażenie (decydujące o zakończeniu iteracji) znajduje się na końcu, blok instrukcji wewnątrz pętli iteracyjnej zostaje wykonany co najmniej jeden raz. Z A D A N I E . Rozwiąż w przybliżony sposób (tj. z dokładnością do 1) następujące zadanie. Dla jakiej wartości xo pole pod krzywą wyrażoną wzorem 2

y = 0.234 x + 3

ma wartość S określoną przez użytkownika programu. Zadanie rozwiązujmy dla pierwszej ćwiartki kartezjańskiego układu współrzędnych. Wyjaśnienie treści zadania ułatwia rysunek.

y

S 1 2 3 4 ... xo x

Zalecenia. ♦ Pole pod krzywą traktuj jako sumę pól kolejnych prostokątów. ♦ Zastosuj umiejętnie instrukcję iteracyjną repeat until. ♦ Sumowanie pól w tej instrukcji musi się zakończyć, gdy suma przekroczy wartość S. Zastanów się, od czego zależy dokładność rozwiązania zadania. Zmodyfikuj treść programu tak, aby: ♦ dokładność obliczeń wartości pola poprawić ok. dziesięciokrotnie, ♦ program komunikował użytkownikowi, w której pętli iteracyjnej zakończył zadanie.

50

cwicz_19

H M P R O G R A M O W A N I E

str. 51
W D E L P H I

Zadania do samodzielnego wykonania
Stosowanie instrukcji iteracyjnej repeat ... until Zadanie 1.
Opracuj program, który liczy łączną sumę wszystkich liczb podzielnych przez 3 i podzielnych przez 7 w zakresie podanym przez użytkownika wykorzystując instrukcję pętl. Opracuj program, który metodą omówioną na poprzedniej stronie, oblicza wartość całki funkcji 2 2

Zadanie 2.

y = sin x + x

w przedziale określonym przez użytkownika. Użytkownik powinien mieć wpływ także na dokładność wyniku.

Zadanie 3.

Opracuj program, który odpowie na pytanie: do jakiej całkowitej potęgi trzeba podnieść pierwszą daną liczbę rzeczywistą, aby wartość tej potęgi przekroczyła drugą daną liczbę rzeczywistą. Obie liczby wprowadzać powinien użytkownik programu. Opracuj program, który wyznaczy pierwiastek równania wyrażonego wzorem 2

Zadanie 4.

4 x + 3 + (sin x) = 0

Uwagi. Właściwie, wyznaczyć musisz metodą iteracyjną miejsce przecięcia wykresu funkcji z osią x układu współrzędnych. Zastosuj własną funkcję, która liczy wartość funkcji dla dowolnego x. Zastanów się, jakie z tym prostym zadaniem programistycznym wiążą się problemy natury matematycznej ?

51

 
statystyka