1 Algorytmy. Algorytmy i VBA. 1. Zapoznaj się z symboliką schematów blokowych.



Podobne dokumenty
Aplikacje w środowisku VBA. Visual Basic for Aplications

Podstawy programowania w języku Visual Basic dla Aplikacji (VBA)

Plik->Opcje->Zakladka Główne->Dostosuj Wstążkę Zaznaczamy kwadracik Developer na liscie po prawej stronie. Klikamy OK.

Visual Basic for Application (VBA)

Algorytmika i Programowanie VBA 1 - podstawy

Program szkolenia PODSTAWY VBA (VISUAL BASIC FOR APPLICATIONS) I FORMULARZE.

Visual Basic for Applications. Wstęp

Visual Basic for Application (VBA)

Zajęcia: VBA TEMAT: VBA PROCEDURY NUMERYCZNE Metoda bisekcji i metoda trapezów

Program szkolenia VBA (VISUAL BASIC FOR APPLICATIONS) W EXCELU PODSTAWOWY.

LibreOffice Calc VBA

Visual Basic for Application (VBA)

Makropolecenia w Excelu

Zastanawiałeś się może, dlaczego Twój współpracownik,

Wprowadzenie do programowania w VBA

Program szkolenia VBA (VISUAL BASIC FOR APPLICATIONS) W EXCELU PRZEKROJOWY.

2. Kliknij Insert->Userform. Jeżeli Toolbox nie pojawi się automatycznie, kliknij View -> Toolbox. Otrzymany widok powinien być jak poniżej.

PROGRAMOWANIE MAKR W PROGRAMIE EXCEL W JĘZYKU VISUAL BASIC

Przedmiot: Informatyka w inżynierii produkcji Forma: Laboratorium Temat: Zadanie 4. Instrukcja warunkowa.

PROGRAMOWANIE MAKR W PROGRAMIE EXCEL W JĘZYKU VISUAL BASIC

Utworzenie interfejsu graficznego za pomocą formularza użytkownika w VBA

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

Przygotowanie własnej procedury... 3 Instrukcja msgbox wyświetlanie informacji w oknie... 6 Sposoby uruchamiania makra... 8

Technologia informacyjna programowanie Janusz Uriasz

Maxima i Visual Basic w Excelu

Zakres tematyczny dotyczący podstaw programowania Microsoft Office Excel za pomocą VBA

AUTOMATYZACJA PRACY Z UŻYCIEM MAKR. Tom XII NPV WSP.KORELACJI ROZKŁ.EXP JEŻELI COS KOMÓRKA VBA DNI.ROBOCZE ILOCZYN LOG SUMA CZY.

Pracownia Informatyczna Instytut Technologii Mechanicznej Wydział Inżynierii Mechanicznej i Mechatroniki. Podstawy Informatyki i algorytmizacji

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Podstawy VBA cz. 1. Programowanie komputerowe

Kiedy i czy konieczne?

Visual Basic dla AutoCAD

PRACA Z FORMULARZAMI UserForm

Laboratorium Wstawianie skryptu na stroną: 2. Komentarze: 3. Deklaracja zmiennych

Przedmiot: Informatyka w inżynierii produkcji Forma: Laboratorium Temat: Zadanie 5. MessageBox, InputBox, instrukcja Select Case i instrukcje pętli.

Program szkoleniowy. 24 h dydaktycznych (18 h zegarowych) NAZWA SZCZEGÓŁY CZAS

Działki Przygotowanie organizacyjne

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Podstawy VBA cz. 2. Programowanie komputerowe

wstawianie przycisków umożliwiających wybieranie wartości poprzez klikanie strzałek

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Instrukcje sterujące. Programowanie komputerowe

Podstawy Programowania Podstawowa składnia języka C++

Podstawy informatyki

Podstawy programowania. 1. Operacje arytmetyczne Operacja arytmetyczna jest opisywana za pomocą znaku operacji i jednego lub dwóch wyrażeń.

1 Podstawy c++ w pigułce.

Wprowadzenie (17) Część I. Makra w Excelu - podstawy (23)

Technologie informacyjne

Instrukcje warunkowe i skoku. Spotkanie 2. Wyrażenia i operatory logiczne. Instrukcje warunkowe: if else, switch.

Arkusze kalkulacyjne i VBA

Makropolecenia w PowerPoint Spis treści

Operacje wykonywane są na operandach (argumentach operatorów). Przy operacji dodawania: argumentami operatora dodawania + są dwa operandy 2 i 5.

Visual Basic for Applications Wprowadzenie, makra

Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania

Schematy blokowe I. 1. Dostępne bloki: 2. Prosty program drukujący tekst.

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

Arkusze kalkulacyjne i VBA

Programowanie. Projektowanie funkcje programu tworzenie algorytmu i struktur danych. Programowanie implementacja algorytmu kompilacja programu

Informatyka w Zarządzaniu

Programowanie w języku Python. Grażyna Koba

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

Właściwości i metody obiektu Comment Właściwości

Część I: Przypisanie makr do obiektu (przycisku).

Informatyka II. Laboratorium Aplikacja okienkowa

Cw.12 JAVAScript w dokumentach HTML

Odczyt danych z klawiatury Operatory w Javie

VBA-podstawy cz. 1. Począwszy od wersji Office 2010 skoroszyty Excel wsparte makrami VB mają rozszerzenie.xlsm

1 Powtórzenie wiadomości

VISUAL BASIC W EXCELU

VBA praca z makrami w Excelu: piszemy kod! Ulepszamy program! 0. Parę uwag o samym edytorze

Rozwiązywanie równań nieliniowych

Makra VBA w Excelu dla początkujących

COMARCH IT AKADEMIA. Programista VBA w Microsoft Excel (microbootcamp)

LABORATORIUM 6: ARKUSZ MS EXCEL JAKO BAZA DANYCH

BAZY DANYCH Panel sterujący

TABLICA (ang. array) pojedyncza zmienna z wieloma komórkami, w których można zapamiętać wiele wartości tego samego typu danych.

Komentarze w PHP (niewykonywane fragmenty tekstowe, będące informacją dla programisty)

Programowanie - instrukcje sterujące

Wstęp do Programowania Lista 1

Excel z elementami VBA w firmie.

Podstawy Programowania C++

Wiadomości wstępne Środowisko programistyczne Najważniejsze różnice C/C++ vs Java

FORMULARZE I FORMANTY MS EXCEL 1. TEORIA

Materiały do laboratorium MS ACCESS BASIC

Informatyka Arkusz kalkulacyjny Excel 2010 dla WINDOWS cz.3

Celem tego projektu jest stworzenie

Przewodnik dla każdego po: Dla każdego coś miłego Microsoft Excel 2010

Utworzenie funkcji użytkownika w Visual Basic

Excel. Tworzenie zaawansowanych aplikacji.

INFORMATYKA OPROGRAMOWANIE KOMPUTEROWE.

SKRYPTY. Zadanie: Wyznaczyć wartość wyrażenia arytmetycznego

Instrukcje sterujące

VBA praca z makrami w Excelu

BAZY DANYCH MAKRA I PRZYCISKI. Microsoft Access. Adrian Horzyk. Akademia Górniczo-Hutnicza

Nagrywanie Makr. Na karcie Dostosowywanie Wstążki zaznaczamy kartę Deweloper.

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++

Mathcad c.d. - Macierze, wykresy 3D, rozwiązywanie równań, pochodne i całki, animacje

Autor: dr inż. Katarzyna Rudnik

Instrukcje pętli przykłady. Odgadywanie hasła. 1) Program pyta o hasło i podaje adres, gdy hasło poprawne lub komunikat o błędnym haśle.

Transkrypt:

1 Algorytmy 1. Zapoznaj się z symboliką schematów blokowych. 2. Przeanalizuj podany algorytm wyznaczający minimalną liczbę spośród danych: a, b, c. dr Piotr Borkowski 1/10

3. Przeanalizuj podany algorytm wyznaczający minimalną liczbę spośród danych: a,, a 1 200. 4. Wykonaj algorytm wyznaczający: liczbę przeciwną do a iloczyn dwóch danych liczb: a, b iloraz dwóch danych liczb: a, b pole prostokąta o bokach: a, b rozwiązania równania kwadratowego o zadanych współczynnikach: a, b, c silnię z danej liczby naturalnej n sumę elementów leżących na przekątnej macierzy kwadratowej o wymiarach 4 4 sumę elementów leżących na przekątnej macierzy kwadratowej o wymiarach n n dr Piotr Borkowski 2/10

2 Visual Basic for Applications 2.1 Wprowadzenie 1. Zapoznaj się z podstawowymi informacjami na temat pisania programów w VBA. Informacje ogólne Visual Basic for Applications (VBA) to oparty na Visual Basicu (VB) język programowania zaimplementowany w aplikacjach pakietu Microsoft Office (MS Word, MS Excel, MS PowerPoint). Ta uproszczona wersja Visual Basica służy przede wszystkim do automatyzacji pracy z dokumentami pakietu Microsoft Office. Podstawową różnicą między VBA a VB jest to, że VBA nie pozwala na tworzenie samodzielnie wykonujących się aplikacji typu *.exe. Kod programu (makra) napisanego w VBA zawsze zawarty jest w dokumencie utworzonym przy pomocy programu obsługującego VBA, na przykład w pliku *.xls arkusza kalkulacyjnego MS Excel. Program taki wymaga zatem środowiska uruchomieniowego, którym jest zainstalowana na komputerze aplikacja obsługująca dany dokument. Na zajęciach wykorzystywać będziemy do tego celu MS Excel. Edytor VBA uruchamiamy na przykład poprzez wciśnięcie ALT+F11 (oczywiście w aktywnym oknie MS Excel). Pisanie makra rozpoczynamy wybierając z menu Insert, a następnie Module. Po wstawieniu nowego modułu, po prawej stronie pojawia się puste pole edycji, w którym możemy zacząć pisać swój program. Makro uruchamia się poprzez kliknięcie na znak Run (lub klawisz F5). Struktura programu Program w VBA składa się z jednej lub wielu procedur napisanych w jednym module. Może zawierać również zdefiniowane funkcje (jest to procedura, która zwraca wartość). Procedury jak i funkcje mogą korzystać z argumentów, czyli zmiennych które są przekazywane do procedury (funkcji) w momencie jej wywołania (jeśli procedura wywołana zmienia wartość argumentu, czyli zmienną przekazaną to zmiana ta pozostanie kiedy sterowanie powróci do procedury wywołującej). Składnie procedury i funkcji mają postać: Sub nazwa_procedury(argument1, argument2,...) deklaracja zmiennych... kod procedury... End Sub Function nazwa_funkcji(argument1, argument2,...) As zwracany_typ_danych deklaracja zmiennych... kod funkcji... nazwa_funkcji = wartość_zwrócona_przez_funkcję End Function W kodzie procedury (funkcji) można umieścić instrukcję Exit Sub ( Exit Function ), jeśli chcemy zaprzestać w danym miejscu wykonywania tej procedury (funkcji). Deklaracja zmiennych Programy manipulują danymi, które są przechowywane w zmiennych. Zmienne mogą przechowywać różne typy danych (liczby, tekst, data i tak dalej). Stąd termin typ danych. dr Piotr Borkowski 3/10

funkcje wejścia/wyjścia funkcje tekstowe funkcje matematyczne operatory logiczne operatory porównania operatory arytmetryczne Algorytmy i VBA Zmienne można deklarować zarówno na poziomie modułu (wówczas mają zasięg na cały moduł) jak i na poziomie procedury, czy też funkcji (wówczas mają zasięg wewnątrz procedury, czy też odpowiednio wewnątrz funkcji). Deklaracja zmiennej odbywa się za pomocą następującej składni: Dim nazwa_zmiennej As typ_danych - standardowa deklaracja zmiennej Public nazwa_zmiennej As typ_danych - gdy zmienna ma mieć zasięg we wszystkich modułach W kodzie procedury (funkcji) następuje nadanie wartości zmiennym za pomocą operatora równości. Kod procedury (funkcji) Kod procedury (funkcji) jest pisany z wykorzystaniem operatorów, funkcji wbudowanych oraz instrukcji. OPERATORY Operator Opis + operator dodawania - operator odejmowania * operator mnożenia / operator dzielenia ^ operator potęgowania Mod operator modulo & operator łączenia łańcuchów < operator mniejszości <= operator mniejszości lub równości > operator większości >= operator większości lub równości = operator równości Not operator negacji And operator koniunkcji Or operator alternatywy Eqv operator równoważności Imp operator implikacji FUNKCJE WBUDOWANE Funkcja Opis Abs(argument) wartość bezwzględna Sgn(argument) znak argumentu Int(argument) zwraca największą liczbę całkowitą z argumentu Log(argument) logarytm naturalny Exp(argument) funkcja wykładnicza o podstawie e Sqr(argument) pierwiastek kwadratowy Sin(argument) funkcja sinus Cos(argument) funkcja cosinus Tan(argument) funkcja tangens Val( tekst ) zmienia tekst na liczbę Str(liczba) zmienia liczbę na tekst Len( tekst ) zwraca długość tekstu Left( tekst,n) zwraca n pierwszych znaków tekstu Right( tekst,n) zwraca n ostatnich znaków tekstu Mid( tekst n,m) zwraca m znaków od n-tego InputBox( komunikat ) wyświetla okno wprowadzania danych MsgBox(dane) wyświetla okno wyjścia danych Cells(n,m) odwołanie się do komórki Excela WorkSheets( arkusz ).Cells(n,m) odwołanie się do komórki w określonym arkuszu Shell( ścieżka ) uruchamia zewnętrzny program LoadPicture( ścieżka ) ładuje obraz do obiektu dr Piotr Borkowski 4/10

INSTRUKCJE Instrukcja Call nazwa_procedury(argument1, argument2,...) If warunek1 Then kod wykonywany gdy warunek1 jest prawdziwy ElseIf warunek2 Then kod wykonywany gdy warunek2 jest prawdziwy, a warunek1 nieprawdziwy Else kod wykonywany gdy wszystkie warunki są nieprawdziwe End If Select Case nazwa_zmiennej Case war_1 kod wykonywany gdy zmienna przyjmie wartość war_1... Case war_n kod wykonywany gdy zmienna przyjmie wartość war_n Case Else kod wykonywany gdy zmienna nie przyjmie wartości: war_1,..., war_n End Select For licznik = początek_licznika TO koniec_licznika kod Next licznik Opis wywołanie procedury instrukcja warunkowa instrukcja wyboru instrukcja powtarzania kodu Programowanie obiektowe VBA umożliwia programowanie obiektowe, czyli kod wielu formantów (obiektów graficznych tworzących program) jest tworzony automatycznie. W tym celu z menu Insert edytora VBA należy wybrać polecenie UserForm. Jeśli nie pokazało się okno z właściwościami powstałego formularza (w którym możemy np. zmienić nazwę itp.) to w menu View wybieramy polecenie Properties. Teraz możemy zabrać się do narysowania potrzebnych nam formantów (CommandButton przycisk, ComboBox - pole kombi, ListBox - pole listy, SpinButton - przycisk pokrętła, TextBox - pole tekstowe, Label - etykieta). Chcąc napisać procedury, które mają towarzyszyć określonemu zdarzeniu (np. kliknięciu w przycisk), najeżdżamy na narysowany formant, a następnie klikamy w niego prawym przyciskiem myszy i wybieramy View Code. Rejestrowanie makra VBA umożliwia również automatyczne tworzenie kodu poprzez rejestrowanie operacji wykonanych w aplikacji. W tym celu z menu Narzędzia (MS Excel) należy wybrać polecenie Makro, a następnie Zarejestruj nowe makro. Zakończenie rejestrowania makra odbywa się poprzez kliknięcie na przycisk Zatrzymaj rejestrowanie. 2. Wpisz do edytora VBA oraz przeanalizuj podany kod makra wyznaczającego minimalną liczbę spośród danych: a, b, c, wykorzystującego funkcję InputBox oraz funkcję MsgBox. Sub Min_z_trzech() Dim a, b, c, x As Double a = InputBox("Podaj a:") b = InputBox("Podaj b:") c = InputBox("Podaj c:") x = a If x > b Then x = b End If If x > c Then x = c End If MsgBox ("Najmniejsza z trzech podanych liczb to: " & x) End Sub 3. Wpisz do edytora VBA oraz przeanalizuj podany kod makra wyznaczającego minimalną liczbę spośród danych: a,, a 1 200 pobieranych z pierwszej kolumny aktywnego arkusza. dr Piotr Borkowski 5/10

Sub Min_z_dwustu() Dim x As Double x = Cells(1, 1) For i = 2 To 200 If x > Cells(i, 1) Then x = Cells(i, 1) End If Next i MsgBox ("Najmniejsza z dwustu podanych liczb to: " & x) End Sub 4. Wpisz do edytora VBA oraz przeanalizuj podany kod makra wyznaczającego z daty, dzień tygodnia. Makro wykorzystuje algorytm Zellera (nie uwzględnia źle wpisanej daty). Sub Dzień_tygodnia() Dim d, m, r As Integer d = InputBox("Podaj dzień:") m = InputBox("Podaj miesiąc:") r = InputBox("Podaj rok:") ' Algorytm Zellera wyznaczający numer dnia tygodnia If m < 3 Then r = r - 1 m = m + 12 End If d = r + Int(r / 4) - Int(r / 100) + Int(r / 400) + _ 3 * m - Int((2 * m + 1) / 5) + d + 1 d = d - Int(d / 7) * 7 Select Case d Case 0 MsgBox ("Podany dzień to niedziela") Case 1 MsgBox ("Podany dzień to poniedziałek") Case 2 MsgBox ("Podany dzień to wtorek") Case 3 MsgBox ("Podany dzień to środa") Case 4 MsgBox ("Podany dzień to czwartek") Case 5 MsgBox ("Podany dzień to piątek") Case 6 MsgBox ("Podany dzień to sobota") End Select End Sub 5. Utwórz formularz, za pomocą którego można będzie przeliczyć walutę euro na złotówki. Powinien on zawierać trzy pola tekstowe, trzy etykiety oraz przycisk, tak jak to zostało pokazane na rysunku. Na rysunkach przedstawiono również kod procedury jaka jest wykonywana po kliknięciu na przycisk oraz właściwości formularza i formantów na nim umieszczonych. dr Piotr Borkowski 6/10

dr Piotr Borkowski 7/10

6. Zarejestruj makro, które rysuje linię, a następnie zmienia jej grubość na 6 pkt. Przeanalizuj kod powstałego makra. 2.2 Programowanie w VBA 1. Napisz makro wyznaczające liczbę przeciwną do liczba a, wykorzystujące funkcję InputBox oraz funkcję MsgBox. 2. Napisz makro drukujące w komórce E1 iloczyn dwóch liczb pobieranych z komórek A1 i C1. W komórkach B1 i D1 powinny być drukowane odpowiednio znaki mnożenia i równości. 3. Napisz makro drukujące w komórce E1 iloraz dwóch liczb pobieranych z komórek A1 i C1. W komórkach B1 i D1 powinny być drukowane odpowiednio znaki dzielenia i równości. W przypadku, dr Piotr Borkowski 8/10

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 InputBox 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 InputBox 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 InputBox 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 4 4, 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 n n (n jest wprowadzane przy użyciu funkcji InputBox), 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 n m (n i m są wprowadzane przy użyciu funkcji InputBox), gdzie dane są pobierane z komórek Arkusza1 i Arkusza2, zaś wynik drukowany w Arkuszu3. 12. Napisz makro wyznaczające iloczyn dwóch macierzy o wymiarach n1 m1, n2 m2 (n1, n2, m1, m2 są wprowadzane przy użyciu funkcji InputBox), gdzie dane są pobierane z komórek Arkusza1 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: tak aby użytkownik najpierw podawał długość kodu liczbowego (za pomocą funkcji InputBox), a następnie poszczególne jego składowe. Wynik ma być wyprowadzony za pomocą funkcji MsgBox. W następnej kolejności odszyfruj kryptogram: 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 InputBox 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

dr Piotr Borkowski 10/10