Zachodniopomorski uniwersytet technologiczny instytut technologii mechanicznej



Pobieranie 366.54 Kb.
Strona2/9
Data28.04.2016
Rozmiar366.54 Kb.
1   2   3   4   5   6   7   8   9

3.Instrukcja warunkowa If …Then…Else…i procedura wewnętrzna MsgBox

Dzielenie dwóch liczb często wymaga sprawdzenia czy dzielnik jest różny od 0. Takiego sprawdzenia można dokonać za pomocą instrukcji warunkowej.


Zadanie 5

Napisz makro:


Sub Sprawdź()

If [B3] <> 0 Then [C3] = [A3]/[B3] Else [C3]= "Błąd"

End Sub
Wstawiaj do komórek A3 i B3 różne wartości w tym również 0 i uruchamiaj makro.

Następnie przepisz makro w alternatywnej postaci i sprawdź jego działanie:


Sub Sprawdź()

If [B3] <> 0 Then

[C3] = [A3]/[B3]



Else

[C3]= "Błąd dzielenia przez zero"



End If

End Sub
Następnie zamiast instrukcji [C3]= "Błąd dzielenia przez zero" wpisz:
[C3]= ""

MsgBox "Błąd dzielenia przez zero"


Sprawdź działanie makra.
Zadanie 6

Napisz makro, które rozwiązuje równanie kwadratowe w liczbach rzeczywistych. Współczynniki a,b,c wpisz do komórek A1,B1,C1. Pierwiastki, jeśli są, wpisz w komórkach D1 i E1. Zapisz schemat blokowy algorytmu za pomocą instrukcji Visual Basic.


Sub równanie_kwadratowe()

Dim a As Single, b As Single, c As Single, d As Single

a = [A1]


b
= [B1]

c = [C1]


[D1]= ……………

[E1]= ……………

………………

End Sub

Przetestuj działanie makra na przykładowych danych:




a

b

c

wynik

1

1

-2

x1 = 1 lub x2 = -2

0

1

1

To nie jest równanie kwadratowe

1

0

1

Nie ma rozwiązań rzeczywistych



4.Obiekt ActiveCell

W nowym arkuszu Excela uruchom edytor VBA i wstaw nowy moduł:



Insert → Module
Zadanie 5
Wpisz w edytorze VBA makro:
Sub Dodaj_1()

ActiveCell = ActiveCell + 1



End Sub
Każde uruchomienie makra zwiększy wartość wybranej komórki o 1 .
Zadanie 6

Należy wyznaczyć kolejne sumy częściowe szeregu geometrycznego . Szereg ten jest zbieżny gdy |q| < 1. Każda suma częściowa jest postaci . Sumy te spełniają związek rekurencyjny , który wykorzystamy w tym ćwiczeniu.

W edytorze VBA wpisz makro:
Sub szereg()

Dim S As Double, q As Double

q = 0.5


S = ActiveCell

ActiveCell.OffSet(1, 0).Select

ActiveCell = q * S + 1

End Sub
Każde uruchomienie makra oblicza kolejną sumę szeregu geometrycznego. Instrukcja

ActiveCell.Offset(1, 0).Select przesuwa wybranie komórki w dół.


Zadania domowe

  1. Zaprojektuj makro, które rozwiązuje układ dwóch równań liniowych z dwoma niewiadomymi:



Współczynniki można wpisać do zakresu A1:C2. Makro powinno zbadać kiedy mamy do czynienia z układem:


- oznaczonym i wtedy makro powinno wypisać rozwiązania,
- nieoznaczonym,
- sprzecznym.
Poza tym makro powinno zbadać pewne „złośliwe” przypadki, gdy współczynniki nie wyznaczają układu równań z dwoma niewiadomymi. Makro można przetestować na następujących danych:


1

1

2

układ oznaczony

1

-1

0

x = 1 oraz y = 1













1

1

1

układ nieoznaczony

1

1

1
















1

1

1

układ sprzeczny

1

1

-1
















0

1

1

to nie jest układ równań

0

1

-1

z dwoma niewiadomymi



Wskazówki:

Jeśli lub/i to nie mamy dwóch niewiadomych.

Przyjmijmy , , . Z algebry wiadomo, że mogą zachodzić trzy podstawowe przypadki:


  1. jeśli to mamy jedno rozwiązanie i .

  2. Jeśli to mamy nieskończenie wiele rozwiązań: dla dowolnego x, spełnia układ równań (zakładamy że przynajmniej jedno )

  3. Jeśli to układ nie ma rozwiązań.




  1. Stosując metodę zaproponowaną w zadaniu 6 oblicz przybliżoną wartość liczby wykorzystując szereg:



1   2   3   4   5   6   7   8   9


©absta.pl 2016
wyślij wiadomość

    Strona główna