Algorytmy i VBA
gdy wartość pobierana z komórki C1 byłaby zerem, zamiast wyniku powinien wyświetlić się komunikat: "Nie dziel cholero przez zero”.
4. Napisz makro wyznaczające pole prostokąta. Przy wprowadzeniu i wyprowadzeniu danych użyj funkcji lnputBox i MsgBox. Pamiętaj, że pole nie może być wartością ujemną.
5. Napisz makro wyznaczające pierwiastki równania kwadratowego. Przy wprowadzaniu i wyprowadzaniu danych użyj funkcji lnputBox i MsgBox. Pamiętaj, że gdy współczynnik przy niewiadomej w najwyższej potędze jest zerem, to równanie nie jest równaniem kwadratowym.
6. Napisz makro wyznaczające silnię z liczby naturalnej. Przy wprowadzeniu i wyprowadzeniu danych użyj funkcji lnputBox i MsgBox. Omiń warunek sprawdzania czy wprowadzona liczba jest naturalna.
7. Napisz makro wyznaczające sumę elementów leżących na przekątnej macierzy kwadratowej o wymiarach 4X4, gdzie dane są pobierane z komórek: A1, A2, A3, A4, B1, B2, B3, B4, C1, C2, C3, C4, D1, D2, D3, D4, zaś wynik drukowany jest przy użyciu funkcji MsgBox.
8. Napisz makro wyznaczające sumę elementów leżących na przekątnej macierzy kwadratowej o wymiarach nxn (n jest wprowadzane przy użyciu funkcji lnputBox), gdzie dane są pobierane z komórek arkusza, zaś wynik drukowany jest przy użyciu funkcji MsgBox.
9. Napisz makro drukujące w komórce D1 pole trójkąta o współrzędnych wierzchołków pobieranych z komórek: A1, B1, A2, B2, A3, B3. Wykorzystaj do tego wzór Herona.
10. Napisz makro drukujące w arkuszu tabliczkę mnożenia poczynając od komórki B2.
11. Napisz makro wyznaczające sumę dwóch macierzy o wymiarach nxm (n i m są wprowadzane przy użyciu funkcji lnputBox), gdzie dane są pobierane z komórek Arkuszal i Arkusza2, zaś wynik drukowany w Arkuszu3.
12. Napisz makro wyznaczające iloczyn dwóch macierzy o wymiarach nlxm1, n2xm2 (n1, n2, m1, m2 są wprowadzane przy użyciu funkcji lnputBox), gdzie dane są pobierane z komórek Arkuszal i Arkusza2, zaś wynik drukowany w Arkuszu3. Pamiętaj, że nie zawsze dwie macierze można przez siebie pomnożyć.
13. Napisz makro drukujące w arkuszu wartości funkcji: sinus, cosinus, tangens, cotangens dla argumentów od 0 do 90 stopni.
14. Napisz makro wyznaczające pole wspólnej części dwóch prostokątów, których po dwa boki są równoległe do osi OX i dokładnie jeden wierzchołek jednego z prostokątów, znajduje się we wnętrzu drugiego prostokąta. Współrzędne wierzchołków pierwszego prostokąta są pobierane z komórek: A1, B1, A2, B2, A3, B3, A4, B4 w taki sposób, że kolejne komórki zawierają współrzędne wierzchołków, rozpoczynając od lewego górnego, a kończąc na prawym górnym. Podobnie pobieraną mają być współrzędne wierzchołków drugiego prostokąta z komórek: A5, B5, A6, B6, A7, B7, A8, B8. Wynik ma być wydrukowany w komórce D1.
15. Napisz makro zmieniające liczby na tekst według poniższego wzoru:
Liczba |
0 |
l |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
Odpowiadający znak |
Znak spacji |
b |
I |
0 |
j |
c |
e |
r |
z |
g |
a |
d |
s |
n |
u |
y |
tak aby użytkownik najpierw podawał długość kodu liczbowego (za pomocą funkcji lnputBox), a następnie poszczególne jego składowe. Wynik ma być wyprowadzony za pomocą funkcji MsgBox. W następnej kolejności odszyfruj kryptogram:
1 2
04562760849 10
16. Napisz makro na wzór stworzonego w poprzednim punkcie, które szyfruje tekst według klucza przez siebie wymyślonego. Następnie zaszyfruj dowolny tekst.
17. Napisz makro, za pomocą którego można odszyfrować kryptogram stworzony w poprzednim punkcie.
18. Napisz makro sprawdzające czy dana liczba jest naturalna. Przy wprowadzaniu i wyprowadzaniu danych użyj funkcji lnputBox i MsgBox.
19. W oparciu o stworzone w poprzednim punkcie makro, napisz funkcję zwracającą daną typu Boolean, która sprawdza czy jej argument jest liczbą naturalną, a następnie uzupełnij o tą funkcję, makro wyznaczające silnię z liczby naturalnej.
20. Przerób formularz przeliczający walutę euro na złotówki, tak, aby wykonywał operację odwrotną.
21. Zaprojektuj prosty kalkulator z funkcjami przedstawionymi na rysunku.
dr Piotr Borkowski 9/10