Programowanie komputerowe

Wielkość: px
Rozpocząć pokaz od strony:

Download "Programowanie komputerowe"

Transkrypt

1 Programowanie komputerowe dr inż. Sławomir Koczubiej Politechnika Świętokrzyska Wydział Zarządzania i Modelowania Komputerowego Katedra Informatyki Stosowanej (14 kwietnia 2014) dr inż. Sławomir Koczubiej Programowanie komputerowe 1/298

2 Informacje ogólne 1 Informacje ogólne 2 Wprowadzenie do programowania 3 Paradygmat programowania 4 Algorytmy 5 Dlaczego Visual Basic (.NET/for Applications)? 6 Visual Basic for Applications 7 Platforma.NET 8 Visual Basic.NET dr inż. Sławomir Koczubiej Programowanie komputerowe 2/298

3 Informacje ogólne Kontakt Budynek C, pokój 3.26 Strona przedmiotu, materiały do pobrania Materiały do pobrania, aktualności, terminy zaliczeń sk dr inż. Sławomir Koczubiej Programowanie komputerowe 3/298

4 Informacje ogólne Organizacja wykładów Wykłady nie są obowiązkowe, ale czasem warto zajrzeć. Obecność na wykładach może być kontrolowana. Warunki zaliczenia wykładu Test zaliczeniowy po zakończeniu wykładów. dr inż. Sławomir Koczubiej Programowanie komputerowe 4/298

5 Informacje ogólne Organizacja laboratoriów Zajęcia laboratoryjne są obowiązkowe. Dopuszcza się jedną nieobecność. Większa liczba nieobecności powoduje zmniejszenie oceny do niedostatecznej włącznie (3 lub więcej nieobecności). W przypadku usprawiedliwionej nieobecności zajęcia można odrobić z inną grupą (jeśli istnieje taka możliwość). Warunki zaliczenia laboratoriów Wykonanie ćwiczeń i projektów. dr inż. Sławomir Koczubiej Programowanie komputerowe 5/298

6 Informacje ogólne Treść wykładów Wprowadzenie do programowania. Paradygmaty programowania. Definicja algorytmu, zapis algorytmów. Podstawy programowania w Visual Basic for Applications. Makropolecenia, środowisko pracy, operatory, obiekty, właściwości, metody. Typy danych, zmienne, stałe, instrukcja decyzyjna, pętle, tablice. Procedury, funkcje, wybrane procedury i funkcje wbudowane, obsługa błędów. Podstawy programowania w Visual Basic.NET. Środowisko pracy, struktura projektu, operatory, typy danych, zmienne, instrukcje sterujące. Formy, praca z plikami, podstawy programowana obiektowego. dr inż. Sławomir Koczubiej Programowanie komputerowe 6/298

7 Informacje ogólne Treść laboratoriów Wprowadzenie do Visual Basic.NET, środowisko pracy. Podstawy programowania, aplikacje konsolowe, instrukcje sterujące, zmienne. Funkcje i procedury, klasy i obiekty. Programy z graficznym interfejsem użytkownika. Obsługa plików. Wprowadzenie do Visual Basic for Applications. Środowisko pracy. Makropolecenia, rejestrowanie makropoleceń, uruchamianie i poprawianie makropoleceń. dr inż. Sławomir Koczubiej Programowanie komputerowe 7/298

8 Informacje ogólne Literatura Korol J. Visual Basic w Excelu Wydawnictwo MIKOM, Warszawa Kent J. Visual Basic.NET. Wydawnictwo Editin 2000, Kraków Matulewski J. Visual Basic.NET w praktyce. Wydawnictwo Helion, Gliwice Willis T., Newsome B. Visual Basic 2005 od podstaw. Wydawnictwo Helion, Gliwice dr inż. Sławomir Koczubiej Programowanie komputerowe 8/298

9 Wprowadzenie do programowania 1 Informacje ogólne 2 Wprowadzenie do programowania 3 Paradygmat programowania 4 Algorytmy 5 Dlaczego Visual Basic (.NET/for Applications)? 6 Visual Basic for Applications 7 Platforma.NET 8 Visual Basic.NET dr inż. Sławomir Koczubiej Programowanie komputerowe 9/298

10 Wprowadzenie do programowania Po co mi programowanie? Żeby zwiększyć efektywność i ułatwić pracę. Języki programowania lub makropolecenia udostępniają szereg narzędzi pozwalających na przyśpieszenie i zwiększenie efektywności pracy, zrobienie czegoś w łatwiejszy sposób, a nawet utworzenie kompletnie nowych narzędzi. Rozwój języków programowania znacznie obniżył próg umiejętności jakie należy posiadać, żeby zacząć naukę. Nie trzeba posiadać żadnych informacji na temat budowy komputera, nie trzeba mieć solidnych podstaw matematycznych (choć te są przydatne), nie trzeba mieć superkomputera ani kupować dodatkowego drogiego oprogramowania. dr inż. Sławomir Koczubiej Programowanie komputerowe 10/298

11 Wprowadzenie do programowania Program komputerowy (aplikacja) sekwencja symboli (zrozumiałych dla komputera rozkazów) przeznaczonych do przetworzenia zgodnie z pewnymi regułami, zwanymi językiem programowania. Program w postaci języka zrozumiałego dla człowieka nazywany jest kodem źródłowym, podczas gdy program wyrażony w postaci zrozumiałej dla maszyny (to jest za pomocą ciągu liczb, a bardziej precyzyjnie zer i jedynek) nazywany jest kodem maszynowym bądź postacią binarną (wykonywalną). Program jest zazwyczaj wykonywany przez komputer, bezpośrednio jeśli wyrażony jest w języku zrozumiałym dla danej maszyny lub pośrednio gdy jest interpretowany przez inny program (interpreter). Programy komputerowe można zaklasyfikować według ich zastosowań. Wyróżnia się zatem aplikacje użytkowe, systemy operacyjne, gry, kompilatory i inne. Programy wbudowane wewnątrz urządzeń określa się jako firmware. dr inż. Sławomir Koczubiej Programowanie komputerowe 11/298

12 Wprowadzenie do programowania W najprostszym modelu wykonanie programu (zapisanego w postaci zrozumiałej dla maszyny) polega na umieszczeniu go w pamięci operacyjnej komputera i wskazaniu procesorowi adresu pierwszej instrukcji. Po tych czynnościach procesor będzie wykonywał kolejne instrukcje programu, aż do jego zakończenia. Program komputerowy będący w trakcie wykonania nazywany jest procesem lub zadaniem. W ogólności program nie jest zapisany w postaci binarnej, ale w postaci kodu źródłowego czytelnego dla człowieka, i nie może być bezpośrednio wykonany przez procesor. dr inż. Sławomir Koczubiej Programowanie komputerowe 12/298

13 Wprowadzenie do programowania Tworzenie programu komputerowego można podzielić na dwa etapy: Etap 1 Po zrodzeniu się pomysłu powinien powstać algorytm. Algorytm wymusza stosowanie podziału programu na funkcje. zmienne, obiekty, na których program będzie operował, jak również wprowadzenie procedur, które opisują wykonywane operacje. Etap 2 Algorytm należy zapisać w języku programowania, stosując dostępne struktury danych i funkcje tworzenie kodu źródłowego. W trakcie tworzenia programu kod jest poddawany debugowaniu wyszukiwanie błędów. dr inż. Sławomir Koczubiej Programowanie komputerowe 13/298

14 Wprowadzenie do programowania Językiem programowania nazywamy zestaw zasad tekstowego lub graficznego opisu algorytmu za pomocą przyjętych elementów języka. Podobnie jak języki naturalne, język programowania składa się ze zbiorów reguł syntaktycznych oraz semantyki, które opisują, jak należy budować poprawne wyrażenia oraz jak komputer ma je rozumieć Język programowania pozwala na precyzyjny zapis algorytmów oraz innych zadań, jakie komputer ma wykonać. dr inż. Sławomir Koczubiej Programowanie komputerowe 14/298

15 Wprowadzenie do programowania Podział języków programowania: Kod maszynowy Kod maszynowy (język maszynowy) język programowania, w którym zapis programu wymaga instrukcji bezpośrednio jako liczb, które są rozkazami i danymi bezpośrednio pobieranymi przez procesor wykonujący ten program. Jest dopasowany do konkretnego typu procesora i przeznaczony do bezpośredniego wykonania przez procesor. Analiza kodu maszynowego jest praktycznie niemożliwa przez człowieka. Języki niskopoziomowe Przedstawiają one instrukcje udostępniane przez system komputerowy w postaci prostych oznaczeń (o ograniczonej liczbie, zakodowane w procesorze). Do języków niskopoziomowych należą Assemblery. dr inż. Sławomir Koczubiej Programowanie komputerowe 15/298

16 Wprowadzenie do programowania Języki wysokopoziomowe Składnia i słowa kluczowe mają maksymalnie ułatwić rozumienie kodu programu dla człowieka, tym samym zwiększając poziom abstrakcji i dystansując się od budowy sprzętu komputerowego. Kod napisany w języku wysokiego poziomu nie jest bezpośrednio zrozumiały dla komputera większość kodu stanowią tak naprawdę normalne słowa (najczęściej w języku angielskim). dr inż. Sławomir Koczubiej Programowanie komputerowe 16/298

17 Wprowadzenie do programowania Języki wysokopoziomowe dzielimy na dwie grupy: interpretowane, kompilowane. Języki interpretowane nie wymagają kompilacji tylko interpretera. Są przechowywane w postaci kodu źródłowego i dopiero podczas uruchomienia wczytywane, analizowane i wykonywane przez interpreter języka PHP, JavaScript, Python, PERL. Programy przeznaczone do interpretacji często nazywane są skryptami. Języki kompilowane wymagają procesu kompilacji kodu źródłowego do postaci kodu maszynowego (postaci binarnej). Robi to specjalny program zwany kompilatorem, dzięki czemu możliwe staje się jego późniejsze uruchomienie. Języki kompilowane: Pascal, C, C++, Fortran, Java. dr inż. Sławomir Koczubiej Programowanie komputerowe 17/298

18 Wprowadzenie do programowania Do utworzenia programu w danym języku niezbędne są edytor tekstu, debugger i kompilator. Programy te mogą tworzyć integralne środowisko pracy, udostępniające kombinacje tych funkcji mówimy wówczas o środowisku programistycznym. Aby przyśpieszyć tworzenie aplikacji, szczególnie z interfejsem graficznym, tworzy się narzędzia RAD (Rapid Application Development), które umożliwiają tworzenie programów z gotowych komponentów (w sensie elementów interfejsu i funkcji z implementacją typowych algorytmów) na przykład: Microsoft VisualStudio, Eclipse. dr inż. Sławomir Koczubiej Programowanie komputerowe 18/298

19 Paradygmat programowania 1 Informacje ogólne 2 Wprowadzenie do programowania 3 Paradygmat programowania 4 Algorytmy 5 Dlaczego Visual Basic (.NET/for Applications)? 6 Visual Basic for Applications 7 Platforma.NET 8 Visual Basic.NET dr inż. Sławomir Koczubiej Programowanie komputerowe 19/298

20 Paradygmat programowania Paradygmat programowania wzorzec programowania komputerów, który definiuje sposób patrzenia programisty na przepływ sterowania i wykonywanie programu komputerowego. Przykładowo, w programowaniu obiektowym jest on traktowany jako zbiór współpracujących ze sobą obiektów, podczas gdy w programowaniu funkcyjnym definiujemy, co trzeba wykonać, a nie w jaki sposób. Różne języki programowania mogą wspierać różne paradygmaty programowania. Przykładowo, Smalltalk i Java są ściśle zaprojektowane dla potrzeb programowania obiektowego, natomiast Haskell jest językiem funkcyjnym. Istnieją także języki wspierające kilka paradygmatów, np. Python. dr inż. Sławomir Koczubiej Programowanie komputerowe 20/298

21 Paradygmat programowania Wiele paradygmatów jest dobrze znanych z tego, jakie praktyki są w nich zakazane, a jakie dozwolone. Na przykład, ścisłe programowanie funkcyjne nie pozwala na tworzenie skutków ubocznych (dowolny efekt wyrażenia, lub wywołania funkcji, który wykracza poza zwrócenie wartości). W programowaniu strukturalnym nie korzysta się z instrukcji skoku. Zależności między paradygmatami programowania mogą przybierać skomplikowane formy, ponieważ jeden język może wspierać wiele różnych paradygmatów. Na przykład, C++ posiada elementy programowania proceduralnego, obiektowego oraz uogólnionego, co stanowi o nim, że jest hybrydowym językiem. To projektanci i programiści decydują, jak zbudować z nich w pełni działający program. dr inż. Sławomir Koczubiej Programowanie komputerowe 21/298

22 Paradygmat programowania Przykłady paradygmatów programowania: programowanie imperatywne, programowanie deklaratywne, programowanie proceduralne, programowanie strukturalne, programowanie funkcyjne, programowanie obiektowe, programowanie uogólnione, programowanie sterowane zdarzeniami, programowanie logiczne, programowanie aspektowe, programowanie agentowe, programowanie modularne. dr inż. Sławomir Koczubiej Programowanie komputerowe 22/298

23 Paradygmat programowania Programowanie imperatywne paradygmat programowania, który opisuje proces wykonywania jako sekwencję instrukcji zmieniających stan programu, podobnie jak tryb rozkazujący, wyraża żądania jakichś czynności do wykonania. Programy imperatywne składają się z ciągu komend do wykonania przez komputer. Rozszerzeniem (w sensie wbudowanych funkcji) i rodzajem (w sensie paradygmatu) programowania imperatywnego jest programowanie proceduralne. dr inż. Sławomir Koczubiej Programowanie komputerowe 23/298

24 Paradygmat programowania Programowanie deklaratywne rodzina paradygmatów programowania, które nie są z natury imperatywne. W przeciwieństwie do programów napisanych imperatywnie, programista opisuje warunki, jakie musi spełniać końcowe rozwiązanie (co chcemy osiągnąć), a nie szczegółową sekwencję kroków, które do niego prowadzą (jak to zrobić). Przykłady języków: XSLT, Prolog, HTML. dr inż. Sławomir Koczubiej Programowanie komputerowe 24/298

25 Paradygmat programowania Programowanie proceduralne to paradygmat programowania zalecający dzielenie kodu na procedury, czyli fragmenty wykonujące ściśle określone operacje. Procedury nie powinny korzystać ze zmiennych globalnych (w miarę możliwości), lecz pobierać i przekazywać wszystkie dane (czy też wskaźniki do nich) jako parametry wywołania. dr inż. Sławomir Koczubiej Programowanie komputerowe 25/298

26 Paradygmat programowania Programowanie strukturalne to paradygmat programowania zalecający hierarchiczne dzielenie kodu na bloki, z jednym punktem wejścia i jednym lub wieloma punktami wyjścia. Chodzi przede wszystkim o nieużywanie instrukcji skoku. Dobrymi strukturami są np. instrukcje: warunkowe, pętle, wyboru. Strukturalność zakłócają instrukcje typu: break, continue, switch, które jednak w niektórych przypadkach znacząco podnoszą czytelność kodu. Praktycznie w każdym języku można programować strukturalnie, jednakże w niektórych jest to styl naturalny (np. Pascal). dr inż. Sławomir Koczubiej Programowanie komputerowe 26/298

27 Paradygmat programowania Programowanie obiektowe (Object-Oriented Programming) paradygmat programowania, w którym programy definiuje się za pomocą obiektów elementów łączących stan (czyli dane, nazywane polami lub właściwościami) i zachowanie (czyli procedury, tu: metody). Obiektowy program komputerowy wyrażony jest jako zbiór takich obiektów, komunikujących się pomiędzy sobą w celu wykonywania zadań. Podejście to różni się od tradycyjnego programowania proceduralnego, gdzie dane i procedury nie są ze sobą bezpośrednio związane. Programowanie obiektowe ma ułatwić pisanie, konserwację i wielokrotne użycie programów lub ich fragmentów. Największym atutem programowania, projektowania oraz analizy obiektowej jest zgodność takiego podejścia z rzeczywistością mózg ludzki jest w naturalny sposób najlepiej przystosowany do takiego podejścia przy przetwarzaniu informacji. Przykłady języków: C++, JAVA. dr inż. Sławomir Koczubiej Programowanie komputerowe 27/298

28 Paradygmat programowania Programowanie sterowane zdarzeniami metodologia tworzenia programów komputerowych, która określa sposób ich pisania z punktu widzenia procesu przekazywania sterowania między poszczególnymi modułami tej samej aplikacji. Programowanie sterowane zdarzeniami jest mocno powiązane ze środowiskami wieloprocesowymi, z graficznymi środowiskami systemów operacyjnych oraz z programowaniem obiektowym. Paradygmat zakłada, że program jest cały czas bombardowany zdarzeniami, na które musi odpowiedzieć, i że przepływ sterowania w programie jest całkowicie niemożliwy do przewidzenia z góry. dr inż. Sławomir Koczubiej Programowanie komputerowe 28/298

29 Paradygmat programowania Programowanie zdarzeniowe jest dominującym typem programowania związanego z graficznym interfejsem użytkownika (Graphical User Interface) zdarzenia to naciśnięcia myszy, klawiszy, żądania odświeżenia przez system okienkowy, różne zdarzenia sieciowe i inne. W programowaniu zdarzeniowym ważne jest żeby nie obsługiwać zbyt długo danego zdarzenia, bo blokuje się w ten sposób obsługę innych. W przypadku serwerów obniżyło by to znacznie wydajność, w przypadku GUI program zbyt wolno odpowiadałby na akcje użytkownika. Można to osiągnąć za pomocą asynchronicznego I/O, wielowątkowości, rozbijania zdarzenia na podzdarzenia i wielu innych mechanizmów. dr inż. Sławomir Koczubiej Programowanie komputerowe 29/298

30 Paradygmat programowania Więcej o programowaniu orientowanym obiektowo Największym atutem programowania obiektowego jest zbliżenie programów komputerowych do naszego sposobu postrzegania rzeczywistości. Często nazywa się to zmniejszeniem luki reprezentacji. Wymyślając nowy lub analizując istniejący program obiektowy nasz mózg ma ułatwione zadanie. Dlatego ludzie są w stanie łatwiej zapanować nad kodem i tym samym tworzyć większe programy. Łatwiej jest również zrozumieć kod i pomysły innych programistów i tym samym współpracować w zespole oraz ponownie wykorzystywać istniejące rozwiązania. Co więcej tego samego, naturalnego dla ludzi sposobu myślenia i tych samych pojęć można użyć przy analizie problemu, który ma być rozwiązany i projektowaniu jego programowego rozwiązania. dr inż. Sławomir Koczubiej Programowanie komputerowe 30/298

31 Paradygmat programowania Zwierzę masa wiek patrz oddychaj Ryba płyń Ssak biegnij Ptak leć Pies rasa kolor szczekaj aportuj dr inż. Sławomir Koczubiej Programowanie komputerowe 31/298

32 Paradygmat programowania Arystoteles analizując rzeczywistość wprowadził pojęcia formy i materii. Formie w programowaniu obiektowym odpowiada klasa (class), materii jej egzemplarz (instance) wymiennie nazywany obiektem (object). Klasyfikacja, czyli łączenie występujących w rzeczywistości obiektów w grupy klasy, jest najbardziej naturalnym sposobem rozumienia rzeczywistości. dr inż. Sławomir Koczubiej Programowanie komputerowe 32/298

33 Paradygmat programowania Powszechnie uważa się, że najważniejszymi cechami programowania obiektowego są: Abstrakcja Każdy obiekt w systemie służy jako model abstrakcyjnego wykonawcy, którymoże wykonywać pracę, opisywać i zmieniać swój stan oraz komunikować się z innymi obiektami w systemie bez ujawniania, w jaki sposób zaimplementowano dane cechy. Procesy, funkcje lub metody mogą być również abstrahowane, a kiedy tak się dzieje, konieczne są rozmaite techniki rozszerzania abstrakcji. dr inż. Sławomir Koczubiej Programowanie komputerowe 33/298

34 Paradygmat programowania Klasa C Klasa D Klasa E Klasa A Klasa B pole 1 pole 1 metoda 4 pole 1 pole 1 metoda 2 metoda 2 metoda 1 metoda 2 metoda 1 metoda 1 metoda 1 metoda 1 metoda 1 pole 2 pole 2 pole 2 metoda 3 metoda 3 metoda 4 pole 1 pole 1 Obiekt 3 metoda 2 metoda 2 pole 1 Obiekt 4 metoda 1 metoda 1 metoda 2 pole 1 pole 2 pole 2 metoda 1 metoda 2 metoda 1 metoda 1 pole 2 metoda 1 metoda 3 pole 2 metoda 3 metoda 4 dr inż. Sławomir Koczubiej Programowanie komputerowe 34/298

35 Paradygmat programowania Enkapsulacja Czyli ukrywanie implementacji, hermetyzacja. Zapewnia, że obiekt nie może zmieniać stanu wewnętrznego innych obiektów w nieoczekiwany sposób. Tylko własne metody obiektu są uprawnione do zmiany jego stanu. Każdy typ obiektu prezentuje innym obiektom swój interfejs, który określa dopuszczalne metody współpracy. Pewne języki osłabiają to założenie, dopuszczając pewien poziom bezpośredniego (kontrolowanego) dostępu do wnętrza obiektu. Ograniczają w ten sposób poziom abstrakcji. dr inż. Sławomir Koczubiej Programowanie komputerowe 35/298

36 Paradygmat programowania Klasa C Klasa D Klasa E Klasa A Klasa B pole 1 pole 1 metoda 4 pole 1 pole 1 metoda 2 metoda 2 metoda 1 metoda 2 metoda 1 metoda 1 metoda 1 metoda 1 metoda 1 pole 2 pole 2 pole 2 metoda 3 metoda 3 metoda 4 pole 1 pole 1 Obiekt 3 metoda 2 metoda 2 pole 1 Obiekt 4 metoda 1 metoda 1 metoda 2 pole 1 pole 2 pole 2 metoda 1 metoda 2 metoda 1 metoda 1 pole 2 metoda 1 metoda 3 pole 2 metoda 3 metoda 4 dr inż. Sławomir Koczubiej Programowanie komputerowe 36/298

37 Paradygmat programowania Polimorfizm Referencje i kolekcje obiektów mogą dotyczyć obiektów różnego typu, a wywołanie metody dla referencji spowoduje zachowanie odpowiednie dla pełnego typu obiektu wywoływanego. Inaczej mówiąc, są to mechanizmy pozwalające na używanie wartości, zmiennych i procedur na kilka różnych sposobów (wyabstrahowanie wyrażeń od konkretnych typów). dr inż. Sławomir Koczubiej Programowanie komputerowe 37/298

38 Paradygmat programowania Klasa C Klasa D Klasa E Klasa A Klasa B pole 1 pole 1 metoda 4 pole 1 pole 1 metoda 2 metoda 2 metoda 1 metoda 2 metoda 1 metoda 1 metoda 1 metoda 1 metoda 1 pole 2 pole 2 pole 2 metoda 3 metoda 3 metoda 4 pole 1 pole 1 Obiekt 3 metoda 2 metoda 2 pole 1 Obiekt 4 metoda 1 metoda 1 metoda 2 pole 1 pole 2 pole 2 metoda 1 metoda 2 metoda 1 metoda 1 pole 2 metoda 1 metoda 3 pole 2 metoda 3 metoda 4 dr inż. Sławomir Koczubiej Programowanie komputerowe 38/298

39 Paradygmat programowania Dziedziczenie Porządkuje i wspomaga polimorfizm i enkapsulację dzięki umożliwieniu definiowania i tworzenia specjalizowanych obiektów na podstawie bardziej ogólnych. Dla obiektów specjalizowanych nie trzeba redefiniować całej funkcjonalności, lecz tylko tę, której nie ma obiekt ogólniejszy. W typowym przypadku powstają grupy obiektów zwane klasami, oraz grupy klas zwane drzewami. Odzwierciedlają one wspólne cechy obiektów. dr inż. Sławomir Koczubiej Programowanie komputerowe 39/298

40 Paradygmat programowania Klasa C Klasa D Klasa E Klasa A Klasa B pole 1 pole 1 metoda 4 pole 1 pole 1 metoda 2 metoda 2 metoda 1 metoda 2 metoda 1 metoda 1 metoda 1 metoda 1 metoda 1 pole 2 pole 2 pole 2 metoda 3 metoda 3 metoda 4 pole 1 pole 1 Obiekt 3 metoda 2 metoda 2 pole 1 Obiekt 4 metoda 1 metoda 1 metoda 2 pole 1 pole 2 pole 2 metoda 1 metoda 2 metoda 1 metoda 1 pole 2 metoda 1 metoda 3 pole 2 metoda 3 metoda 4 dr inż. Sławomir Koczubiej Programowanie komputerowe 40/298

41 Algorytmy 1 Informacje ogólne 2 Wprowadzenie do programowania 3 Paradygmat programowania 4 Algorytmy 5 Dlaczego Visual Basic (.NET/for Applications)? 6 Visual Basic for Applications 7 Platforma.NET 8 Visual Basic.NET dr inż. Sławomir Koczubiej Programowanie komputerowe 41/298

42 Algorytmy Program komputerowy działa według określonego algorytmu. Algorytm ciąg jasno zdefiniowanych czynności, koniecznych do wykonania pewnego rodzaju zadania. Zapis algorytmu działania w wybranym języku programowania nazywamy implementacją algorytmu. dr inż. Sławomir Koczubiej Programowanie komputerowe 42/298

43 Algorytmy Jako przykład stosowanego w życiu codziennym algorytmu podaje się często przepis kulinarny. Dla przykładu, aby ugotować bigos należy w określonej kolejności oraz odstępach czasowych (imperatyw czasowy) dodawać właściwe rodzaje kapusty, mięs i innych składników. Przykład ten ma wyłącznie charakter poglądowy, ponieważ język przepisów kulinarnych nie został jasno zdefiniowany. Algorytmy zwykle formułowane są w sposób ścisły w oparciu o język matematyki. dr inż. Sławomir Koczubiej Programowanie komputerowe 43/298

44 Algorytmy Algorytm prowadzi do rozwiązania zadania w skończonej liczbie kroków. Do danego celu prowadzi zwykle więcej niż jedna droga. Jak więc oceniać alternatywne sposoby rozwiązania problemu? Podstawowe parametry algorytmu to jego złożoność czasowa i złożoność pamięciowa. Oprócz tego przy algorytmach działających na liczbach trzeba pamiętać o stabilności numerycznej. dr inż. Sławomir Koczubiej Programowanie komputerowe 44/298

45 Algorytmy Złożoność czasowa mówi, ile kroków obliczeniowych i ile czasu wymaga zakończenie algorytmu dla danej porcji danych. Złożoność pamięciowa mówi, jaką maksymalnie część danych i wyników pośrednich trzeba w ramach danego algorytmu przechowywać w pamięci operacyjnej. Stabilność numeryczna określa wrażliwość wyniku końcowego na błędy zaokrągleń w trakcie obliczeń oraz na dokładność danych początkowych. dr inż. Sławomir Koczubiej Programowanie komputerowe 45/298

46 Algorytmy Sposoby zapisu algorytmów Algorytm znajdowania wartości y = max{x i },gdzie1 i n. 1 i 1, idź do 2, Język naturalny. Schemat blokowy. Język formalny. 2 y x i, idź do 3, 3 Czy i = n? Jeśli tak koniec, jeśli nie idź do 4, 4 i 1 + 1, idź do 5, 5 Czy x i > y? Jeśli tak idź do 2, jeśli nie idź do 3. dr inż. Sławomir Koczubiej Programowanie komputerowe 46/298

47 Algorytmy START i 1 Język naturalny. Schemat blokowy. Język formalny. fałsz y x i i = n prawda i i + 1 STOP fałsz x i > y prawda dr inż. Sławomir Koczubiej Programowanie komputerowe 47/298

48 Algorytmy int maxvalue(int array[], int size) { int i, max; Język naturalny. Schemat blokowy. Język formalny, C. max=array[0]; for(i=1; i<size; i++) { if(array[i] > max) max = array[i]; } } return max; dr inż. Sławomir Koczubiej Programowanie komputerowe 48/298

49 Algorytmy function maxvalue(array: TArray, size: integer): integer; var i, max: integer; Język naturalny. Schemat blokowy. Język formalny, Pascal. begin max:=array[1]; for i:=2 to size do if array[i] > max then max:=array[i]; maxvalue:=max; end; dr inż. Sławomir Koczubiej Programowanie komputerowe 49/298

50 Algorytmy Schematy blokowe START Start początek programu STOP Stop koniec programu dr inż. Sławomir Koczubiej Programowanie komputerowe 50/298

51 Algorytmy we Blok wejścia wprowadzanie danych wy Blok wyjścia wyprowadzanie wyników dr inż. Sławomir Koczubiej Programowanie komputerowe 51/298

52 Algorytmy Blok operacyjny przetwarzanie danych prawda fałsz Blok decyzyjny instrukcja warunkowa dr inż. Sławomir Koczubiej Programowanie komputerowe 52/298

53 Algorytmy Pętla powtórz zwarunkiempobloku operacyjnym fałsz prawda prawda fałsz Pętla dopóki z warunkiem przed blokiem operacyjnym dr inż. Sławomir Koczubiej Programowanie komputerowe 53/298

54 Algorytmy Pętla dla z wiadomą liczbą iteracji Algorytmy można podzielić na: algorytmy liniowe, jeśli wykorzystują operacje bezpośredniego następstwa, algorytmy warunkowe, jeśli wykorzystują operacje warunkowe, algorytmy iteracyjne, jeśli wykorzystują pętle. dr inż. Sławomir Koczubiej Programowanie komputerowe 54/298

55 Algorytmy Algorytm szukania wartości minimalnej z trzech START we readln(a) we readln(b) we readln(c) prawda a < b fałsz prawda a < c fałsz prawda b < c fałsz wy writeln(a) wy writeln(c) wy writeln(b) wy writeln(c) STOP dr inż. Sławomir Koczubiej Programowanie komputerowe 55/298

56 Algorytmy Algorytm obliczania pierwiastków równania kwadratowego START d:=b*b-4*a*c prawda we readln(a, b, c) a < 0 fałsz prawda d < 0 fałsz x1:=(-b-sqrt(d))/2*a x2:=(-b+sqrt(d))/2*a wy writeln(x1) d > 0 fałsz prawda wy writeln( blad ) wy writeln( brak ) wy writeln(x2) STOP dr inż. Sławomir Koczubiej Programowanie komputerowe 56/298

57 Algorytmy Algorytm sumowania START we readln(n) suma:=0 for i:=1 to n do we readln(x) suma:=suma + x wy writreln(suma) STOP dr inż. Sławomir Koczubiej Programowanie komputerowe 57/298

58 Algorytmy Algorytm szukania wartości ekstremalnej START we readln(x) prawda x = 0 fałsz x <> 0 fałsz prawda max:=x x > max fałsz we readln(x) prawda max:=x we readln(x) wy writeln('brak') wy writeln(max) STOP dr inż. Sławomir Koczubiej Programowanie komputerowe 58/298

59 Algorytmy Algorytm sortowania przez wybór Jest to chyba najbardziej intuicyjny algorytm sortowania. Polega on na wielokrotnym wyborze minimalnego elementu z coraz krótszego podciągu danych. Przebieg: wybieranie minimum z ciągu elementów na pozycjach od 1 do n i zamienianie go z pierwszym elementem, wybieranie minimum z ciągu elementów na pozycjach od 2 do n i zamienianie go z drugim elementem (po tym kroku elementy na pozycjach od 1 do 2 są uporządkowane), wybieranie minimum z ciągu elementów na pozycjach n 1in i zamienianie z elementem na pozycji n 1 (po tej operacji elementy na pozycjach od 1 do n 1 są uporządkowane, a element na pozycji n jest maksymalny, czyli ciąg elementów na pozycjach od 1 do n jest uporządkowany). dr inż. Sławomir Koczubiej Programowanie komputerowe 59/298

60 Algorytmy START we readln(n) for i:=1 to n do for j:=1 to n do max:=x[j] k:=j for i:=1 to n do we writeln(x[i]) we readln(x[i]) for i:=j + 1 to n do STOP x[i] > max fałsz prawda max:=x[i] k:=j buf:=x[j] x[j]:=x[k] x[k]:=buf dr inż. Sławomir Koczubiej Programowanie komputerowe 60/298

61 Dlaczego Visual Basic (.NET/for Applications)? 1 Informacje ogólne 2 Wprowadzenie do programowania 3 Paradygmat programowania 4 Algorytmy 5 Dlaczego Visual Basic (.NET/for Applications)? 6 Visual Basic for Applications 7 Platforma.NET 8 Visual Basic.NET dr inż. Sławomir Koczubiej Programowanie komputerowe 61/298

62 Dlaczego Visual Basic (.NET/for Applications)? Dla początkujących, problemem jest mnogość dostępnych obecnie języków programowania. Najbardziej klasyczne języki programowania to C i C++, popularne są Java i C#, modny jest Python, JavaScript i Ruby. WbiurachkrólujeVisual Basic i SQL, czy dedykowane do analizy danych R lub do obliczeń numerycznych (analizy danych też) MATLAB. Osoby, które nie będą zawodowo (poważnie?) zajmowały się programowaniem, raczej nie powinny zaczynać nauki od języków takich jak C, C++ czy Java. Służą one raczej do budowania dużych aplikacji niż pisania niewielkich narzędzi lub rozszerzania innych, a ich nauka wymaga zrozumienia wielu aspektów tworzenia i projektowania programowania. dr inż. Sławomir Koczubiej Programowanie komputerowe 62/298

63 Dlaczego Visual Basic (.NET/for Applications)? Visual Basic (.NET/for Applications) jest językiem zaprojektowanym przez Microsoft i używanym właściwie w jego wszystkich produktach. Najczęściej wykorzystywany jest w pakiecie Microsoft Office. Pozwala na automatyzację zadań, pobieranie danych z nietypowych miejsc (plików), łączenie z innymi programami. Visual Basic może być też używany do programowania na platformie.net, więc pozwala na tworzenie także kompletnie niezależnych aplikacji i aplikacji internetowych (działających po stronie serwera). Visual Basic for Applications jest zaimplementowany w programach: ArcGIS, AutoCAD, CATIA. dr inż. Sławomir Koczubiej Programowanie komputerowe 63/298

64 Dlaczego Visual Basic (.NET/for Applications)? TIOBE Index jest wskaźnikiem popularności języków programowania.indeks jest aktualizowany raz w miesiącu. Wartość wskaźnika jest obliczana biorąc pod uwagę liczbę wykwalifikowanych programistów, kursów, wyników popularnych wyszukiwarek internetowych. Indeks nie wskazuje najlepszego języka programowania ani języka, w którym została mapisana większość linii kodu. dr inż. Sławomir Koczubiej Programowanie komputerowe 64/298

65 Dlaczego Visual Basic (.NET/for Applications)? Indeks popularności TIOBE Marzec 2014 Marzec 2013 Język Popularność 1 2 C 17,535% 2 1 Java 16,406% 3 3 Objective-C 12,143% 4 4 C++ 6,313% 5 5 C# 5,572% 6 6 PHP 3,698% 7 7 (Visual) Basic 2,955% 8 8 Python 2,021% 9 11 JavaScript 1,899% Visual Basic.NET 1,862% Perl 1,149% MATLAB 0,688% dr inż. Sławomir Koczubiej Programowanie komputerowe 65/298

66 Dlaczego Visual Basic (.NET/for Applications)? Indeks popularności TIOBE Język C Java Objective-C C C# PHP (Visual) Basic Python JavaScript Perl dr inż. Sławomir Koczubiej Programowanie komputerowe 66/298

67 1 Informacje ogólne 2 Wprowadzenie do programowania 3 Paradygmat programowania 4 Algorytmy 5 Dlaczego Visual Basic (.NET/for Applications)? 6 Visual Basic for Applications 7 Platforma.NET 8 Visual Basic.NET dr inż. Sławomir Koczubiej Programowanie komputerowe 67/298

68 Makra Makra (makropolecenia) są prostymi programami, które przechowują serię poleceń zarejestrowanych przez użytkownika za pomocą rejestratora makr wbudowanego w program lub zaprogramowanych ręcznie. Makra pozwalają na odtworzenie czynności, automatyzację pewnych czynności lub dokonania zmian w dokumentach bez interakcji z użytkownikiem. Makra pisane są zwykle w skryptowych językach programowania wykonywanych przez interpreter wbudowany w aplikacje, w których są uruchamiane. Makra warto tworzyć gdy w programie wykonujemy te same powtarzające się czynności lub gdy program nie oferuje narzędzia do wykonania zamierzonego zadania. dr inż. Sławomir Koczubiej Programowanie komputerowe 68/298

69 W przypadku Excela makra tworzone są w języku Visual Basic for Applications (VBA), który jest wbudowany we wszystkie aplikacje pakietu Microsoft Office. Narzędzia do programowania w VBA (karta Deweloper) nie są domyślnie wyświetlane, aby je włączyć należy zaznaczyć pole wyboru Deweloper wobszarze Karty główne po wybraniu opcji: Plik Opcje Dostosowywanie Wstążki. dr inż. Sławomir Koczubiej Programowanie komputerowe 69/298

70 Wstążka Deweloper. dr inż. Sławomir Koczubiej Programowanie komputerowe 70/298

71 Rejestrowanie makr Odwołania: odwołanie względne, odwołanie bezwzględne. Miejsce przechowania makra: skoroszyt makr osobistych (PERSONAL.XLSB), nowy skoroszyt, ten skoroszyt. dr inż. Sławomir Koczubiej Programowanie komputerowe 71/298

72 Poziom bezpieczeństwa dr inż. Sławomir Koczubiej Programowanie komputerowe 72/298

73 Uruchomienie makra dr inż. Sławomir Koczubiej Programowanie komputerowe 73/298

74 dr inż. Sławomir Koczubiej Programowanie komputerowe 74/298

75 Edytor Visual Basic dr inż. Sławomir Koczubiej Programowanie komputerowe 75/298

76 dr inż. Sławomir Koczubiej Programowanie komputerowe 76/298

77 dr inż. Sławomir Koczubiej Programowanie komputerowe 77/298

78 Zapisywanie skoroszytów z makrami dr inż. Sławomir Koczubiej Programowanie komputerowe 78/298

79 Otwieranie skoroszytów z makrami dr inż. Sławomir Koczubiej Programowanie komputerowe 79/298

80 Obiekty, właściwości, metody W przypadku Excela, przez obiekt będziemy rozumieć zasób kontrolowany przez język Visual Basic. Skoroszyt, arkusz, zakres komórek, wykres to tylko niektóre przykłady. Sam Excel stanowi obiekt aplikację. Zawiera też inne obiekty takie jak skoroszyt czy paski narzędzi. Skoroszyt z kolei zawiera kolejne obiekty takie jak arkusze, wykresy. Takie same lub podobne obiekty stanowią tzw. kolekcje. Kolekcja arkuszy obejmuje wszystkie arkusze w skoroszycie. Najczęściej używanymi kolekcjami są: Worksheets, Sheets (zawierająca arkusze i wykresy), Workbooks, Windows. Pracując z kolekcją, obiektów możemy wykonać te same czynności dla wszystkich obiektów w kolekcji. dr inż. Sławomir Koczubiej Programowanie komputerowe 80/298

81 Każdy obiekt ma pewne cechy charakterystyczne, które noszą nazwy właściwości. Właściwości obiektów można ustawiać lub odczytywać. Na przykład obiekt Workbook ma właściwość Name, natomiast obiekt Range ma właściwości: Column, Font, Formula, Name, Row, Style, Value. W Visual Basic, niektóre właściwości mogą być również obiektami. Zakres komórek Range jest właściwością obiektu Worksheet, ale możemy zmieniać wygląd czcionki zakresu ustawiając właściwość Font, która z kolei ma inne właściwości (z tego wynika, że Range i Font są obiektami). dr inż. Sławomir Koczubiej Programowanie komputerowe 81/298

82 Oprócz właściwości, obiekty posiadają metody. Metoda jest to czynność, którą może wykonać dany obiekt (metoda jest wykonywana na obiekcie). Na przykład, obiekt Range ma metody ClearContents i ClearFormats. Metody mogą mieć opcjonalne parametry, które wpływają na ich zachowanie. Obiekt Workbook ma metodę Close, która zamyka otwarty skoroszyt. Jeśli w skoroszycie są niezapisane zmiany, Excel wyświetli komunikat z pytaniem, czy je zachować na dysku. Aby zamknąć skoroszyt bez zachowania zmian, należy metodę Close uruchomić zparametremsavechanges ustawionym na False. dr inż. Sławomir Koczubiej Programowanie komputerowe 82/298

83 Range Worksheet.Range Workbook.Worksheet.Range Applcation.Workbook.Worksheet.Range Range("A1").ClearContents Workbooks("Zeszyt1.xlsm"). _ Worksheets("Arkusz1"). _ Range("A1"). _ ClearContents dr inż. Sławomir Koczubiej Programowanie komputerowe 83/298

84 Syntaktyka i semantyka Aby ciąg znaków mógł być rozpoznany jako program napisany w danym języku, musi spełniać reguły syntaktyki (składni). Składnia opisuje: rodzaje dostępnych symboli, zasady, według których symbole mogą być łączone w większe struktury. Należy zauważyć, że na etapie przetwarzania składni w ogóle nie jest brane pod uwagę znaczenie poszczególnych symboli. W praktyce kod poprawny składniowo nie musi być poprawny semantycznie. Występuje tu analogia do języków naturalnych. Zdanie Bźdźiągwy się mucioszą! jest poprawne pod względem gramatycznym, lecz nie posiada żadnego znaczenia, ponieważ zostały w nim użyte nieistniejące słowa. dr inż. Sławomir Koczubiej Programowanie komputerowe 84/298

85 Semantyka języka programowania definiuje precyzyjnie znaczenie poszczególnych symboli oraz ich funkcję w programie. Semantykę najczęściej definiuje się słownie, ponieważ większość z jej zagadnień jest trudna lub wręcz niemożliwa do ujęcia w jakikolwiek formalizm. Część błędów semantycznych można wychwycić już w momencie wstępnego przetwarzania kodu programu, np. próbę odwołania się do nieistniejącej funkcji, lecz inne mogą ujawnić się dopiero w trakcie wykonywania. dr inż. Sławomir Koczubiej Programowanie komputerowe 85/298

86 Odwołanie się do właściwości obiektu: Obiekt.Wlasciwosc Range("A1").Value Obiekt.Wlasciwosc(Argumenty) ActiveCell.Offset(columnOffset :=2, rowoffset:=3) dr inż. Sławomir Koczubiej Programowanie komputerowe 86/298

87 Zmiana wartości właściwości: Obiekt.Wlasciwosc = Wartosc Range("A1").Value = 25 Range("A1").Formula = "=1+2*3" ActiveCell.Font.Bold = True ActiveCell.Font.Name = "Times New Roman" dr inż. Sławomir Koczubiej Programowanie komputerowe 87/298

88 Odczytanie wartości właściwości: Zmienna = Obiekt.Wlasciwosc Variable = Range("A1").Value Odwołanie do metody obiektu: Obiekt.Metoda Range("A1").ClearContents dr inż. Sławomir Koczubiej Programowanie komputerowe 88/298

89 Podział długich linii: Selection.PasteSpecial _ Paste := xlvalues, _ Operation := xlmultiply, _ SkipBlanks := False, _ Transpose := False Instrukcja może zawierać 1024 znaki. Użycie znaku kontynuacji wiersza jest dozwolone: przed lub po operatorach &, +, Like, NOT, AND, przed przecinkiem lub po przecinku, przed lub po przypisaniu (:=), przed lub po znaku równości (=). dr inż. Sławomir Koczubiej Programowanie komputerowe 89/298

90 Błędy W trakcie pisania kodu nie da się uniknąć błędów. Błędy mogą wynikać z niepoprawnego wpisania instrukcji, pominięcia kropek, przecinków, nawiasów, etc. Takie błędy noszą nazwę syntaktycznych (składniowych). Edytor Visual Basic automatycznie sprawdza błędy takiego typu w trakcie pisania kodu. dr inż. Sławomir Koczubiej Programowanie komputerowe 90/298

91 dr inż. Sławomir Koczubiej Programowanie komputerowe 91/298

92 Oprócz błędów syntaktycznych, można spotkać jeszcze błędy semantyczne (znaczeniowe, wykonania) i logiczne. Błędy wykonania występują w chwili odtwarzania procedur (programu) i mogą wynikać z próby uruchomienia nieistniejącej procedury, otwarcia nieistniejącego pliku lub złego typowania zmiennych. dr inż. Sławomir Koczubiej Programowanie komputerowe 92/298

93 Błędy logiczne zwykle nie wywołują żadnych komunikatów błędu. Chociaż program jest poprawny pod względem syntaktycznym i semantycznym, nie powoduje żadnych problemów kompilacji i uruchamiania to sam rezultat działania może być błędny. Błędy logiczne powodują otrzymanie wyników innych niż się spodziewano. Są to zwykle błędy bardzo trudne do odnalezienia. dr inż. Sławomir Koczubiej Programowanie komputerowe 93/298

94 Podpowiedzi i przeglądarka obiektów dr inż. Sławomir Koczubiej Programowanie komputerowe 94/298

95 Operacje związane z komórkami Właściwość Range wybranie pojedynczej komórki wybranie zakresu komórek wybranie kilku komórek wybranie kilku komórek i zakresu Range("A1").Select Range("A1:C5").Select Range("A1, B2, C3").Select Range("A1:C5, E7, F9").Select dr inż. Sławomir Koczubiej Programowanie komputerowe 95/298

96 Właściwość Cells wybranie pojedynczej komórki Cells(5, 1).Select Cells(5, "A").Select wybranie zakresu komórek Range(Cells(5, 1), Cells(10, 2)).Select wybranie wszystkich komórek Cells.Select dr inż. Sławomir Koczubiej Programowanie komputerowe 96/298

97 Właściwość Offset wybranie komórki znajdującej się wiersz niżej i trzy kolumny w prawo w stosunku do A1 wybranie komórki znajdującej się wiersz wyżej i jedną kolumnę w lewo w stosunku do E5 Range("A1").Offset(1, 3).Select Range("E5").Offset(-2, -1).Select dr inż. Sławomir Koczubiej Programowanie komputerowe 97/298

98 Komórki skrajne pierwsza komórka w wierszu ActiveCell.End(xlleft).Select ostatnia komórka w wierszu ActiveCell.End(xlright).Select pierwsza komórka w kolumnie ActiveCell.End(xlup).Select ostatnia komórka w kolumnie ActiveCell.End(xldown).Select dr inż. Sławomir Koczubiej Programowanie komputerowe 98/298

99 Przesuwanie, kopiowanie, usuwanie przesuwanie zawartości z komórki A1 do A5 Range("A1").Cut Destination:=Range("A5") kopiowanie zawartości z komórki A1 do A5 Range("A1").Copy Destination:=Range("A5") usuwanie zawartości z komórki A1 Range("A1").Clear dr inż. Sławomir Koczubiej Programowanie komputerowe 99/298

100 Zmienne Zmienna jest konstrukcja programistyczna posiadająca trzy podstawowe atrybuty: symboliczną nazwę, miejsce przechowywania, wartość. Zmienna pozwala w kodzie źródłowym na odwoływanie się przy pomocy nazwy do wartości lub miejsca przechowywania. Nazwa służy do identyfikowania zmiennej w związku z tym często nazywana jest identyfikatorem. Miejsce przechowywania przeważnie znajduje się w pamięci komputera i określane jest przez adres i długość danych. Wartość to zawartość miejsca przechowywania. dr inż. Sławomir Koczubiej Programowanie komputerowe 100/298

101 Zmienna zazwyczaj posiada również czwarty atrybut: typ, określający rodzaj danych przechowywanych w zmiennej i co za tym idzie sposób reprezentacji wartości w miejscu przechowywania. W programie wartość zmiennej może być odczytywana lub zastępowana nową wartością, tak więc wartość zmiennej może zmieniać się w trakcie wykonywania programu, natomiast dwa pierwsze atrybuty (nazwa i miejsce przechowywania) nie zmieniają się w trakcie istnienia zmiennej. W zależności od rodzaju języka typ zmiennej może być stały lub zmienny. Konstrukcją podobną lecz nie pozwalającą na modyfikowanie wartości jest stała. dr inż. Sławomir Koczubiej Programowanie komputerowe 101/298

102 Wjęzykachzestatycznym typowaniem zmienna ma określony typ danych jakie może przechowywać. Jest on wykorzystywany do określenia reprezentacji wartości w pamięci, kontrolowania poprawności operacji wykonywanych na zmiennej (kontrola typów) oraz konwersji danych jednego typu na inny. Wjęzykachztypowaniem dynamicznym typ nie jest atrybutem zmiennej lecz wartości w niej przechowywanej. Zmienna może wtedy w różnych momentach pracy programu przechowywać dane innego typu. dr inż. Sławomir Koczubiej Programowanie komputerowe 102/298

103 Deklaracja zmiennej to stwierdzenie, że dany identyfikator jest zmienną, przeważnie też określa typ zmiennej. W zależności od języka programowania deklaracja może być obligatoryjna, opcjonalna lub nie występować wcale. Definicja oprócz tego, że deklaruje zmienną to przydziela jej pamięć. Podczas definiowania lub deklarowania zmiennej można określić jej dodatkowe atrybuty wpływające na sposób i miejsce alokacji, czas życia, zasięg i inne. dr inż. Sławomir Koczubiej Programowanie komputerowe 103/298

104 Zasięg zmiennej określa gdzie w treści programu zmienna może być wykorzystana, natomiast czas życia zmiennej to okresy w trakcie wykonywania programu gdy zmienna ma przydzieloną pamięć i posiada (niekoniecznie określoną) wartość. Ze względu na zasięg można wyróżnić podstawowe typy zmiennych: globalne obejmujące zasięgiem cały program, lokalne o zasięgu obejmującym pewien blok, podprogram. Podobnie ze zmiennymi w klasie mogą być dostępne: tylko dla danej klasy (zmienna prywatna), dla danej klasy i jej potomków (zmienna chroniona), w całym programie (zmienna publiczna). Zmienne mogą zmieniać swój pierwotny zasięg np. poprzez importowanie/włącznie do zasięgu globalnego modułów, pakietów czy przestrzeni nazw. dr inż. Sławomir Koczubiej Programowanie komputerowe 104/298

105 Ze względu na czas życia i sposób alokacji zmienna może być: statyczna, automatyczna, dynamiczna. Dla zmiennej statycznej pamięć jest rezerwowana w momencie kompilacji lub ładowania programu. Takimi zmiennymi są zmienne globalne, zmienne klasy (współdzielone przez wszystkie obiekty klasy, a nawet dostępne spoza klasy), statyczne zmienne lokalne funkcji (współdzielone pomiędzy poszczególnymi wywołaniami funkcji i zachowujące wartość po zakończeniu). dr inż. Sławomir Koczubiej Programowanie komputerowe 105/298

106 Zmiennej automatycznej pamięć jest automatycznie przydzielana w trakcie działania programu. Są to przeważnie zmienne lokalne podprogramów i ich parametry formalne, znikają po zakończeniu podprogramu. Pamięć dla zmiennej dynamicznej alokowana jest ręcznie w trakcie wykonywania programu przy pomocy specjalnych konstrukcji lub funkcji. W zależności od języka zwalnianie pamięci może być ręczne lub automatyczne, Zazwyczaj nie posiada własnej nazwy, lecz odwoływać się do niej trzeba przy pomocy wskaźnika, referencji lub zmiennej o semantyce referencyjnej. dr inż. Sławomir Koczubiej Programowanie komputerowe 106/298

107 Typy zmiennych w VBA Typ, wielkość, charakterystyka Boolean 2 wartość logiczna True lub False Byte 1 liczba całkowita od 0 do 255 Integer 2 liczba całkowita od do Long 4 liczba całkowita długa od do Single 4 liczba rzeczywista od e+38 do e-45 od e-45 do e+38 Double 8 liczba rzeczywista długa od e+308 do e-324 od e-324 do e+308 dr inż. Sławomir Koczubiej Programowanie komputerowe 107/298

108 Typ, wielkość, charakterystyka Currency 8 liczba całkowita z kropką (skalowana 10000) od -922,337,203,685, do 922,337,203,685, Decimal 12 liczba dziesiętna, ułamek dziesiętny (skalowana potęgami 10) od ± do ± Date 8 data od 01/01/100 do 31/12/9999 String - łańcuch znaków od 0 do (64kB) stałej długości String - łańcuch znaków od 0 do ok. 2 mld. zmiennej długości dr inż. Sławomir Koczubiej Programowanie komputerowe 108/298

109 Typ, wielkość, charakterystyka Object 4 referencja na obiekt Array - tablica Variant - może zawierać wszystkie typy za wyjątkiem łańcucha o stałej długości dr inż. Sławomir Koczubiej Programowanie komputerowe 109/298

110 Deklarowanie zmiennych VBA nie wymaga deklarowania zmiennych (deklarowanie niejawne, domniemanie typu). Można od razu do nazw zmiennych przypisywać wartości. Nie jest to zalecane! W przypadku niedeklarowania zmiennych, VBA nie będzie znał i sprawdzał nazw zmiennych, tylko utworzy nową zmienną jeśli napotka na nową (być może tylko błędnie wpisaną nazwę używanej już zmiennej) nazwę zmiennej. Wszystkie zmienne niedeklarowane bedą miały typ Variant ibędątworzone podczas wykonywania programu, co może wpłynąć na szybkość działania programu. Mogą się też ujawnić błędy związane z niedozwolonymi operacjami dla konkretnych typów. dr inż. Sławomir Koczubiej Programowanie komputerowe 110/298

111 Można wymusić deklarowanie zmiennych (deklarowanie jawne) poleceniem (zalecane): Option Explicit Aby zadeklarować zmienną, należy podać jej nazwę i typ poprzedzonych instrukcją Dim: Option Explicit Dim dataurodzenia As Date Dim imienazwisko As String Dim kwota As Single Dim wiek As Integer Można delkarować wiele zmiennych w jednej instrukcji: Option Explicit Dim dataurodzenia As Date, imienazwisko As String dr inż. Sławomir Koczubiej Programowanie komputerowe 111/298

112 Przypisywanie wartości do zmiennych: Option Explicit Dim dataurodzenia As Date Dim imienazwisko As String Dim kwota As Single Dim wiek As Integer dataurodzenia = #01/03/1999# imienazwisko = "Jan Kowalski" kwota = 3.14 wiek = 21 dr inż. Sławomir Koczubiej Programowanie komputerowe 112/298

113 Do typowania zmiennych można używać znaków Znaki deklaracji typów Integer % Long & Single! Double # String $ Sub obliczwiek() Dim imienazwisko$, wiek% Dim dataurodzenia As Date imienazwisko = "Jan Kowalski" dataurodzenia = #01/03/1999# wiek = Year( Now()) - Year(dataUrodzenia) MsgBox Prompt:=imieNazwisko & " ma " & wiek & " lat." MsgBox(imieNazwisko & " ma " & wiek & " lat.") End Sub dr inż. Sławomir Koczubiej Programowanie komputerowe 113/298

114 Zasięg zmiennych Można deklarować zmienne mające zasięg: procedury, modułu, projektu. Poziom procedury: Option Explicit Sub wyswietlliczbe() Dim liczba As Integer MsgBox Prompt:="Liczba = " & liczba End Sub dr inż. Sławomir Koczubiej Programowanie komputerowe 114/298

115 Poziom modułu: Option Explicit Dim liczba As Integer Sub wyswietlliczbe() MsgBox Prompt:="Liczba = " & liczba End Sub Sub wyswietlliczbeinaczej() MsgBox Prompt:="Liczba wynosi " & liczba End Sub dr inż. Sławomir Koczubiej Programowanie komputerowe 115/298

116 Poziom projektu: Option Explicit Public liczba As Integer Zmienna może być używana we wszystkich modułach projektu (Module1, Module2, itd.). dr inż. Sławomir Koczubiej Programowanie komputerowe 116/298

117 Zmienne obiektowe, statyczne, stałe Zmienna statyczna: Option Explicit Static kosztjednostkowy As Currency Po wyjściu z procedury wartość zmiennej statycznej nie ulega zmianie. Zmienna obiektowa: Option Explicit Dim pweienzakres As Object Set pewienzakres = Worksheet("Arkusz1").Range("A1:C5") dr inż. Sławomir Koczubiej Programowanie komputerowe 117/298

118 Stałe: Option Explicit Public Const sciezkadopliku As String = "c:\files\data.txt" Const znanawartosc = 3.14 Const ulubionykolorindeks = 4 Const wiekemerytalny As Integer = 99 dr inż. Sławomir Koczubiej Programowanie komputerowe 118/298

119 Konwersja typów danych CBool() konweercja na typ Boolean CByte() konweercja na typ Byte CCur() konweercja na typ Currency CDate() konweercja na typ Date CDbl() konweercja na typ Double CDec() konweercja na typ Decimal CInt() konweercja na typ Integer CLng() konweercja na typ Long CSng() konweercja na typ Single CStr() konweercja na typ String CVar() konweercja na typ Variant dr inż. Sławomir Koczubiej Programowanie komputerowe 119/298

120 Dim inta As Integer Dim boola As Boolean Dim sngb As Single Dim intb As Integer Dim dblc As Double Dim strc As String inta = 0 boola = CBool(intA) False sngb = 3.14 intb = CInt(sngB) 3 dblc = strc = CStr(dblC) " " dr inż. Sławomir Koczubiej Programowanie komputerowe 120/298

121 Sprawdzanie typów danych IsArray() czy jest tablicą? IsDate() czy jest datą? IsEmpty() czy jest puste? IsNumeric() czy jest typem numerycznym? IsObject() czy jest obiektem? Dim tablica1(5) As Integer, tablica2(), wynik As Boolean tablica2 = Array(1, 2, 3) wynik = IsArray(tablica1) True wynik = IsArray(tablica2) True dr inż. Sławomir Koczubiej Programowanie komputerowe 121/298

122 Dim zmienna, wynik As Boolean wynik = IsEmpty(zmienna) True zmienna = Null wynik = IsEmpty(zmienna) False zmienna = Empty wynik = IsEmpty(zmienna) True Dim zmienna, wynik As Boolean Dim wartosc As Integer, zakres As Object, wynik As Boolean Set zakres = Worksheet("Arkusz1").Range("A1:C5") wartosc = 3 wynik = IsObject(zakres) True wynik = IsObject(wartosc) False dr inż. Sławomir Koczubiej Programowanie komputerowe 122/298

123 Tablice Tablica jest to kontener danych, w którym poszczególne komórki dostępne są z pomocą pewnych kluczy, które najczęściej przyjmują wartości numeryczne. Tablica zwykle pozwala na przechowywanie wartości tego samego typu. Tablice mogą być jednowymiarowe lub wielowymiarowe. Rozmiar tablicy jest albo ustalony z góry (tablice statyczne), albo może się zmieniać w trakcie wykonywania programu (tablice dynamiczne). W matematyce odpowiednikiem tablicy jednowymiarowej jest ciąg, a tablicy dwuwymiarowej macierz. dr inż. Sławomir Koczubiej Programowanie komputerowe 123/298

124 VBA pozwala na stosowanie jedno- i wielowymiarowych tablic: statycznych, które posiadaja stałą, niezmienną w trakcie działania programu wielkość (liczbę elementów), ustaloną w trakcie deklaracji, dynamicznych, w których można zmieniać wielkość, w trakcie działania programu, wielkość musi być zadeklarowana przed pierwszym użyciem. W VBA można zmieniać sposób numerowania elementów tablic. Deklaracja: Option Base 1 spowoduje, że pierwszy element tablicy będzie miał numer 1, natomiast Option Base 0 spowoduje, że pierwszy element tablicy będzie miał numer 0. dr inż. Sławomir Koczubiej Programowanie komputerowe 124/298

125 Deklarowanie i używanie tablic jednowymiarowych: Option Base 1 Dim napis, trzywioski(3) As String Dim suma, ulubionenumerki(5) As Integer trzywioski(1) trzywioski(2) trzywioski(3) = "Rzepin" = "Pawłów" = "Ambrożów" ulubionenumerki(1) = 3 ulubionenumerki(2) = 7 ulubionenumerki(3) = 9 ulubionenumerki(4) = 13 ulubionenumerki(5) = 21 suma = ulubionenumerki(1) + ulubionenumerki(3) napis = trzywioski(1) & " " & trzywioski(2) dr inż. Sławomir Koczubiej Programowanie komputerowe 125/298

126 Deklarowanie i używanie tablic wielowymiarowych: Option Base 1 Dim sumadiag, macierz(3, 3) As Integer macierz(1, 1) = 1 macierz(1, 2) = 2 macierz(1, 3) = 3 macierz(2, 1) = 4 macierz(2, 2) = 5 macierz(2, 3) = 6 macierz(3, 1) = 7 macierz(3, 2) = 8 macierz(3, 3) = 9 sumadiag = macierz(1, 1) + macierz(2, 2) + macierz(3, 3) dr inż. Sławomir Koczubiej Programowanie komputerowe 126/298

127 Deklarowanie i używanie tablic dynamicznych: Option Base 1 Dim wektor() As Integer Dim macierz(,) As Integer ReDim wektor(3) ReDim macierz(2, 2) wektor(1) = 1 wektor(2) = 2 wektor(3) = 3 macierz(1, 1) = 1 macierz(1, 2) = 2 macierz(2, 1) = 3 macierz(2, 2) = 4 dr inż. Sławomir Koczubiej Programowanie komputerowe 127/298

128 W VBA można zmieniać wielkość tablic: Option Base 1 Dim wektor(2) As Integer ReDim wektor(3) dr inż. Sławomir Koczubiej Programowanie komputerowe 128/298

129 Zmiana wielkości tablicy, powoduje utratę jej zawartości. Jeśli chcemy zachować dotychczasowe wartości, trzeba użyć konstrukcji: Option Base 1 Dim ciag(5) As Integer ciag(1) = 1 ciag(2) = 2 ciag(3) = 3 ciag(4) = 4 ciag(5) = 5 ReDim Preserve ciag(10) ciag = { } ReDim Preserve ciag(3) ciag = {1 2 3} dr inż. Sławomir Koczubiej Programowanie komputerowe 129/298

130 W przypadku tablic wielowymiarowych, można zmieniać tylko ostatni wymiar: Option Base 1 Dim macierz(2, 2) As Integer macierz(1, 1) = 1 macierz(1, 2) = 2 macierz(2, 1) = 3 macierz(2, 2) = 4 ReDim Preserve macierz(2, 5) macierz = { } { } dr inż. Sławomir Koczubiej Programowanie komputerowe 130/298

131 Tablice o nieustalonych rozmiarach można inicjować wartościami za pomocą Array(), tablica musi być typu Variant, lub będzie mieć typ Variant: Option Base 1 Dim cyferki() As Variant Dim literki() deklaracja typu nie jest konieczna cyferki = Array(1, 2, 3, 4, 5) literki = Array("a", "b", "c", "d") dr inż. Sławomir Koczubiej Programowanie komputerowe 131/298

132 Badanie rozmiaru tablicy: Option Base 1 Dim tablica(100, 5 To 10, -3 To 3) As Integer Dim ilow, iup, jlow, jup, klow, kup As Long ilow = LBound(tablica, 1) 1 jlow = LBound(tablica, 2) 5 klow = LBound(tablica, 3) -3 iup = UBound(tablica, 1) 100 jup = UBound(tablica, 2) 10 kup = UBound(tablica, 3) 3 dr inż. Sławomir Koczubiej Programowanie komputerowe 132/298

133 Usuwanie zawartości tablicy: Option Base 1 Dim cyferki(3) As Integer Dim literki(2, 2) As String cyferki(1) = 1 cyferki(2) = 2 cyferki(3) = 3 literki(1, literki(1, literki(2, literki(2, 1) = "a" 2) = "b" 1) = "c" 2) = "d" Erase(cyferki) Erase(literki) dr inż. Sławomir Koczubiej Programowanie komputerowe 133/298

134 Instrukcja przypisania, operatory i wyrażenia arytmetyczne Przypisanie (podstawienie) jest to operacja nadania, umieszczenia, wpisania do określonej L-wartości (jest to wartość, która istnieje dłużej niż przez jedno wyrażenie i można pobrać jej adres, jest nią też zmienna) nowej wartości. Przypisanie może zostać dokonane: instrukcją przypisania, operatorem przypisania, innym operatorem, w inicjalizacji zmiennej, w wywołaniu podprogramu, w wyniku efektów ubocznych, w instrukcji wejścia. dr inż. Sławomir Koczubiej Programowanie komputerowe 134/298

135 Instrukcja przypisania to jedna z podstawowych instrukcji prostych występujących w językach programowania. Zwykle nie zawiera słowa kluczowego, choć istnieją języki programowania wymagające lub zezwalające opcjonalnie na użycie słowa kluczowego. W VBA instrukcją przypisania jest znak równości =. Operator przypisania to operator, który powoduje przypisanie, i zwraca wartość równą wartości przypisanej do L-wartości. Operator przypisania może wystąpić w instrukcji przypisania ale może także wystąpić wewnątrz wyrażeń, tak jak każdy inny operator, gdyż w przeciwieństwie do instrukcji posiada tę właściwość, że zwraca określony rezultat. dr inż. Sławomir Koczubiej Programowanie komputerowe 135/298

136 Operator w programowaniu konstrukcja językowa jednoargumentowa, bądź wieloargumentowa zwracająca wartość. Do podstawowych operatorów, będących elementem większości języków programowania, należą operatory arytmetyczne, relacji (porównania), logicznie, przypisania. Główne cechy opisujące operator to: liczba i typy argumentów, typ wartości zwracanej, wykonywane działanie, priorytet, łączność lub jej brak, umiejscowienie operatora względem operandów. dr inż. Sławomir Koczubiej Programowanie komputerowe 136/298

137 Operator arytmetyczny to operator, który działając na podanych argumentach reprezentujących wartości liczbowe, w wyniku zwraca również wyznaczoną wartość liczbową, realizując podstawowe operacje arytmetyki. To jakie operatory arytmetyczne są dostępne w konkretnym języku programowania zależy od jego składni, a to jakie są zasady ich stosowania, w tym priorytet tych operatorów i kolejność opracowywania argumentów, od przyjętej implementacji języka. Zróżnicowany jest również sposób zapisu operatorów arytmetycznych. Stosuje się zapis, bądź za pomocą symboli (znaku lub znaków nie będących literami), w konwencji zbliżonej do matematycznej, bądź zdecydowanie rzadziej w postaci słów kluczowych. dr inż. Sławomir Koczubiej Programowanie komputerowe 137/298

138 Operatory arytmetyczne realizują następujące operacje arytmetyczne (przykłady): jednoargumentowe: zmiana znaku liczby (wyznaczenie liczby przeciwnej), zachowanie znaku liczby, inkrementacja, dekrementacja, dwuargumentowe: dodawanie, odejmowanie, mnożenie, dzielenie, dzielenie całkowitoliczbowe, reszta z dzielenia całkowitoliczbowego, potęgowanie. dr inż. Sławomir Koczubiej Programowanie komputerowe 138/298

139 Operatory arytmetyczne ˆ potęgowanie * mnożenie / dzielenie (liczba zmiennoprzecinkowa) \ dzielenie całkowitoliczbowe (liczba całkowita) Mod reszta z dzielenia całkowitoliczbowego + dodawanie - odejmowanie, zmiana znaku liczby dr inż. Sławomir Koczubiej Programowanie komputerowe 139/298

140 Wyrażenie arytmetyczne jest to językach programowania dowolne wyrażenie typu liczbowego. Może być ono złożone ze zmiennych, liczb, funkcji, symboli działań (tu: operatorów), itp. Option Explicit Dim wynik As Single wynik = 10 / zależny od typu Option Explicit Dim wynik As Integer wynik = 10 ˆ wynik = 10 * 3 30 wynik = 10 \ 3 3 wynik = 10 Mod 3 1 wynik = wynik = wynik = 5 5 wynik = -wynik -5 dr inż. Sławomir Koczubiej Programowanie komputerowe 140/298

141 Kolejność (priorytety) wykonywania działań jest taka jak w matematyce, można ją regulować za pomocą nawiasów okrągłych. Operatory równoważne wykonywane są od strony lewej do prawej. Wybrane funkcje matematyczne Sin() sinus Cos() cosinus Tan() tangens Atn() arcus tangent Abs() wartość bezwzględna Log() logarytm naturalny Exp() eksponent (e x ) dr inż. Sławomir Koczubiej Programowanie komputerowe 141/298

142 Operator konkatenacji Operatorem konkatenacji (łączenia) są znaki dodawania + i ampersand &. Dim imie, nazwisko, imienazwisko As String imie = "Ambroży" nazwisko = "Kleks" imienazwisko = imie & " " & nazwisko dr inż. Sławomir Koczubiej Programowanie komputerowe 142/298

143 Instrukcja warunkowe, operatory relacji i wyrażenia logiczne Operator relacji jest to operator który działając na podanych argumentach, w wyniku zwraca wartość logiczną, określającą spełnienie bądź nie spełnienie reprezentowanej przez ten operator relacji zachodzącej między argumentami. Wynikiem działania operatora relacji jest więc wartość reprezentująca zgodnie z zasadami obowiązującymi w składni języka programowania jedną z wartości logicznych: prawdę (true) lubfałsz (false). dr inż. Sławomir Koczubiej Programowanie komputerowe 143/298

144 W językach programowania dostępne są operatory, które badają relacje: równości, nierówności, negacji równości, nierówności ostrych, mniejsze, większe, nierówności nieostrych, mniejsze lub równe, większe lub równe, przynależności (zawierania), równoważności. dr inż. Sławomir Koczubiej Programowanie komputerowe 144/298

145 Operatory relacji = czy równe? <> czy różne? > czy większe? < czy mniejsze? >= czy większe lub równe? <= czy mniejsze lub równe? Like czy łańcuchy znaków takie same? Is porównanie zmiennych obiektowych dr inż. Sławomir Koczubiej Programowanie komputerowe 145/298

146 Operatory relacji mogą działać na wszystkich typach danych, jednak najczęściej odnoszą się do danych numerycznych i łańcuchów znaków. Porównanie danych całkowitych nie powinno budzić zastrzeżeń, ponieważ operacje wykonywane są w sposób naturalny. Należy zachować ostrożność przy porównywaniu wartości zmiennoprzecinkowych. Dim pierwsza, druga As Double pierwsza = druga = If pierwsza = druga then MsgBox("Równe!") If Abs(pierwsza - druga) < then MsgBox("Równe!") dr inż. Sławomir Koczubiej Programowanie komputerowe 146/298

147 W przypadku łańcuchów wartość każdej litery w łańcuchu odnosi się do jej pozycji w alfabecie. Oznacza to, że litera A jest mniejsza od litery B, tazaśodc, itd. Wszystkie małe litery mają większą wartość niż ich duże odpowiedniki. Ponadto porównanie łańcuchów następuje kolejno, litera po literze zaczynając od lewej strony do prawej. W przypadku operatora Like może zawierać znaki wieloznaczne:?, *, #. Deklaracja: Option Compare Binary spowoduje, że operator Like będzie rozróżniał wielkość liter, natomiast Option Compare Text spowoduje, że operator Like nie będzie rozróżniał wielkości liter. dr inż. Sławomir Koczubiej Programowanie komputerowe 147/298

148 Operator logiczny to operator, który działając na argumentach reprezentujących wartości logiczne, w wyniku zwraca również wartość logiczną, realizując podstawowe operacje algebry Boole a. Dostępność operatorów logicznych, priorytet i kolejność opracowywania argumentów zależy od przyjętej implementacji języka. Zróżnicowany jest również sposób zapisu operatorów logicznych, stosuje się zapis, bądź w postaci słów kluczowych, bądź symboli (znaku lub znaków nie będących literami). dr inż. Sławomir Koczubiej Programowanie komputerowe 148/298

149 Operatory logiczne realizują następujące operacje logiczne: jednoargumentowe: negacja, dwuargumentowe: koniunkcja, alternatywa, alternatywa wykluczająca, implikacja, ekwiwalencja. dr inż. Sławomir Koczubiej Programowanie komputerowe 149/298

150 Operatory logiczne Not negacja (zaprzeczenie) And koniunkcja Or alternatywa Xor alternatywa wykluczająca dr inż. Sławomir Koczubiej Programowanie komputerowe 150/298

151 Not argument wynik prawda fałsz fałsz prawda And lewy argument prawy argument wynik prawda prawda prawda prawda fałsz fałsz fałsz prawda fałsz fałsz fałsz fałsz dr inż. Sławomir Koczubiej Programowanie komputerowe 151/298

152 Or lewy argument prawy argument wynik prawda prawda prawda prawda fałsz prawda fałsz prawda prawda fałsz fałsz fałsz Xor lewy argument prawy argument wynik prawda prawda fałsz prawda fałsz fałsz fałsz prawda fałsz fałsz fałsz prawda dr inż. Sławomir Koczubiej Programowanie komputerowe 152/298

153 Wyrażenie logiczne jest to językach programowania dowolne wyrażenie zawierające operatory relacji i operatory logiczne, stałe, zmienne logiczne, którego wynik jest typu logicznego (prawda lub fałsz). Wyrażenia logiczne mogą zawierać wyrażenia innego typu, np. arytmetyczne. Dim wynik As Boolean wynik = (5 < 3 * 2) And ("Lech" > "Adam") wynik = (5 <> 3 * 2) Or ("Lech" = "Adam") wynik = Not(2 + 2 = 5) wynik = "Ala ma kota" Like "Ala ma*" dr inż. Sławomir Koczubiej Programowanie komputerowe 153/298

154 Dim liczba As Integer Dim parzysta, zakres, wynik As Boolean liczba = 25 parzysta = (liczba Mod 2) = 0 zakres = ((liczba >= 10) And (liczba <= 20)) wynik = parzysta And zakres dr inż. Sławomir Koczubiej Programowanie komputerowe 154/298

155 Instrukcja warunkowa jest elementem języka programowania, który pozwala na wykonanie różnych obliczeń (zadań) w zależności od tego czy zdefiniowane przez programistę wyrażenie logiczne jest prawdziwe, czy fałszywe. If - Then - End If Dim a As Integer Dim b As Integer a = 1 b = 2 If (a + b) = 3 Then MsgBox("Podwojona suma równa się 6.") End If dr inż. Sławomir Koczubiej Programowanie komputerowe 155/298

156 If - Then - Else - End If Dim utarg As Single Dim premia As Single utarg = If utarg >= Then Else premia = 0.05 * utarg premia = 0 MsgBox("Premii nie będzie!") End If dr inż. Sławomir Koczubiej Programowanie komputerowe 156/298

157 If - Then - ElseIf - Then - Else - End If Dim a, b, c As Integer Dim delta, x0, x1, x2 As Single a = 1 b = 8 c = 2 delta = bˆ2-4 * a * c If delta > 0 Then x1 = (-b - deltaˆ0.5) / (2 * a) x2 = (-b + deltaˆ0.5) / (2 * a) ElseIf delta = 0 Then Else x0 = -b / (2 * a) MsgBox("Brak pierwiastków rzeczywistych.") End If dr inż. Sławomir Koczubiej Programowanie komputerowe 157/298

158 Dim zwierze As String zwierze = InputBox("Zwierzę?") If (zwierze = "Pies") Or (zwierze = "pies") Then MsgBox("Zwierzę to pies!") ElseIf (zwierze = "Kot") Or (zwierze = "kot") Then MsgBox("Zwirzę to kot!") Else MsgBox("Ni to pies, ni to kot...") End If dr inż. Sławomir Koczubiej Programowanie komputerowe 158/298

159 Instrukcja wyboru Instrukcja wyboru jest instrukcją umożliwiającą wybór instrukcji do wykonania spośród wielu opcji. Składnia instrukcji wyboru różni się w zależności od języka programowania, lecz można wyróżnić w niej charakterystyczne elementy: nagłówek instrukcji wyboru słowo kluczowe rozpoczynające instrukcję, nazwa zmiennej lub wyrażenie, na podstawie którego następuje wybór, ciało instrukcji wyboru kolejne instrukcje (bloki instrukcji) podlegające selekcji, poprzedzone frazami zawierającymi wartości, listy lub zakresy porównywane z wyrażeniem (zmienną) z nagłówka instrukcji, opcjonalnie fraza domyślna, wykonywana gdy żadna z fraz nie spełni warunku, koniec instrukcji wyboru. dr inż. Sławomir Koczubiej Programowanie komputerowe 159/298

160 Dim zwierze As String zwierze = InputBox("Zwierzę?") Select Case zwierze Case "Pies" MsgBox("Zwierzę to pies!") Case "Kot" MsgBox("Zwirzę to kot!") Case Else MsgBox("Ni to pies, ni to kot...") End Select dr inż. Sławomir Koczubiej Programowanie komputerowe 160/298

161 Instrukcja z listami: Dim zwierze As String zwierze = InputBox("Zwierzę?") Select Case zwierze Case "Pies", "pies" MsgBox("Zwierzę to pies!") Case "Kot", "kot" MsgBox("Zwirzę to kot!") Case Else MsgBox("Ni to pies, ni to kot...") End Select dr inż. Sławomir Koczubiej Programowanie komputerowe 161/298

162 Instrukcja z przedziałami: Dim strliczba As String Dim intliczba As Integer strliczba = InputBox("Liczba?") intliczba = CInt(strLiczba) Select Case intliczba Case 1 To 9 MsgBox("Liczba dodatnia jednocyfrowa!") Case 10 To 99 MsgBox("Liczba dodatnia dwucyfrowa!") Case 0 MsgBox("Zero to zero.") Case Else MsgBox("Jakaś inna liczba...") End Select dr inż. Sławomir Koczubiej Programowanie komputerowe 162/298

163 Instrukcja z warunkami (Is): Dim strliczba As String Dim intliczba As Integer strliczba = InputBox("Liczba?") intliczba = CInt(strLiczba) Select Case intliczba Case Is <= 50 MsgBox("Liczba jest mniejsza lub równa 50") Case Is 51 MsgBox("Liczba jest równa 51") Case Is > 100 MsgBox("Liczba jest większa od 100") Case Else MsgBox("Liczba jest w przedziale od 52 do 100") End Select dr inż. Sławomir Koczubiej Programowanie komputerowe 163/298

164 Pętle Pętla to jedna z podstawowych konstrukcji programowania strukturalnego (obok instrukcji warunkowej i instrukcji wyboru). Umożliwia cykliczne wykonywanie ciągu instrukcji: określoną liczbę razy (pętla iteracyjna, licznikowa), do momentu zajścia pewnych warunków (pętla repetycyjna, warunkowa), dla każdego elementu kolekcji (pętla foreach, po kolekcji), w nieskończoność. dr inż. Sławomir Koczubiej Programowanie komputerowe 164/298

165 Pętla iteracyjna, to rodzaj pętli, w której następuje wykonanie określonej liczby iteracji. Do kontroli przebiegu wykonania pętli iteracyjnej stosuje się specjalną zmienną, którż nazywa się zmienną sterująca, kontrolną lub licznikową. W ramach pętli przejście do kolejnej iteracji wiąże się ze zmianą wartości zmiennej sterującej o określoną wielkość i sprawdzenie warunku, czy nowa wartość zmiennej sterującej znajduje się nadal w dopuszczalnym zakresie wartości, określonym dla tej zmiennej. dr inż. Sławomir Koczubiej Programowanie komputerowe 165/298

166 Kolejność wykonywania działań jest następująca: przypisanie wartości początkowej do zmiennej sterującej, sprawdzenie, czy wartość zmiennej sterującej mieści się w dopuszczalnym zakresie wartości, tzn. jej wartość jest równa lub mniejsza od wartości granicznej, albo jest równa lub większa od wartości granicznej, w zależności od rodzaju pętli iteracyjnej: jeżeli wartość zmiennej sterującej mieści się w dopuszczalnym zakresie wartości to wykonuje iterację, jeżeli wartość zmiennej sterującej nie mieści się w dopuszczalnym zakresie wartości to kończy wykonywanie pętli, wykonuje iterację, zmienia wartość zmiennej sterującej o zadany krok, wartość ta może być zwiększana lub zmieszana. dr inż. Sławomir Koczubiej Programowanie komputerowe 166/298

167 Zmienna sterująca służy do kontroli przebiegu realizacji pętli iteracyjnej. Przyjmuje ona kolejne wartości z zadanego zakresu zmieniane o określoną wartość kroku. W różnych językach programowania mogą być stawiane określone wymagania i ograniczenia dotyczące zmiennych sterujących. Ograniczenia te mogą dotyczyć takich atrybutów tej zmiennej jak np. dozwolony typ danych, zasięgu. Zmiana wartości zmiennej sterującej może nastąpić: automatycznie, w sposób ukryty, jawnie, w kodzie bloku pętli, o ile dany język programowania dopuszcza taką konstrukcję. Możliwość zmiany wartości zmiennej sterującej jawnie w bloku pętli jest dostępna jedynie w niektórych językach programowania (np. VB i VBA). dr inż. Sławomir Koczubiej Programowanie komputerowe 167/298

168 Ogólniejszą konstrukcją jest pętla repetycyjna (warunkowa), która jest wykonywana, aż do odpowiedniej zmiany warunków. Warunek zawarty w definiowanej pętli jest pewnym wyrażeniem, które najczęściej zwraca wartość typu logicznego (np. VB, VBA). Istnieją języki programowania, w których składnia nie przewiduje takiego typu danych. W językach tych stosuje się wyrażenia zwracające pewną wartość innego typu, która następnie podlega odpowiedniej interpretacji, np. wartość zero może być utożsamiana wartością false typu logicznego, a pozostałe wartości z wartością true. dr inż. Sławomir Koczubiej Programowanie komputerowe 168/298

169 Zapis wyrażenia, oraz typ wartości wyrażenia, zależny jest od składni konkretnego języka programowania. Powszechnym jest zapis wyrażeń kontrolnych analogicznie do zapisu tych wyrażeń dla instrukcji warunkowej. Szczególne znaczenie mają w tym przypadku operatory porównań, choć warunek może zostać wyrażony także całkiem inaczej, np. jako wywołanie funkcji zwracającej wartość logiczną, bądź jako identyfikator zmiennej logicznej, której wcześniej przypisano rezultat ewaluacji wyrażenia warunkowego. Ponadto operator logiczny realizujący operację negacji pozwana na rekompensatę ewentualnego braku pętli powtarzanej przy spełnieniu lub niespełnieniu warunku, gdyż zastosowanie tego operatora do podanego warunku jest równoważne zastosowaniu frazy przeciwnej. dr inż. Sławomir Koczubiej Programowanie komputerowe 169/298

170 Warunki decydujące o kontynuacji lub zaprzestaniu wykonywania pętli mogą być sprawdzane: na początku pętli, przed wykonaniem pierwszej instrukcji zawartej w bloku definiowanej pętli, wewnątrz pętli, w jej bloku, po wykonaniu części instrukcji, na końcu pętli, po wykonaniu wszystkich instrukcji zawartych w bloku definiowanej pętli. Jeżeli warunek jest sprawdzany na początku pętli, to może nastąpić taka sytuacja, że instrukcje zawarte w pętli nigdy nie zostaną wykonane. Będzie to miało miejsce w sytuacji, gdy przy pierwszym wykonaniu warunek nie będzie spełniony. dr inż. Sławomir Koczubiej Programowanie komputerowe 170/298

171 Inaczej jest, gdy warunek jest sprawdzany na końcu pętli. W tym przypadku instrukcje zawarte w pętli zostaną wykonane co najmniej jeden raz. Zwykle spotyka się dwa typowe słowa kluczowych, które stanowią podstawę zapisu instrukcji: while definiuje warunek, który musi być spełniony, aby pętla była wykonywana, until pętla będzie powtarzana dopóki warunek nie stanie się spełniony. dr inż. Sławomir Koczubiej Programowanie komputerowe 171/298

172 Często pożądane jest, aby instrukcje pętli zostały wykonane dla każdego elementu tablicy, kolekcji itp. Oczywiście można to zrobić za pomocą pętli iteracyjnych lub repetycyjnych, ale często szybszym i bardziej przejrzystym sposobem jest użycie pętli typu foreach, która zwalnia programistę z obowiązku ręcznego iterowania po kolekcji. Działanie pętli foreach, polega na powtarzaniu kolejnych iteracji dla wszystkich elementów wybranego kontenera danych, takiego jak, np. tablica, lista, kolekcja, kolejka, itp. dr inż. Sławomir Koczubiej Programowanie komputerowe 172/298

173 Pętla taka automatycznie przed przejściem do wykonania kolejnej iteracji przypisuje zadanej w nagłówku pętli zmiennej sterującej wartość kolejnego elementu. Działanie tej pętli polega na wykonaniu następujących kroków: ustaleni jako bieżący, pierwszego element kontenera danych, jeżeli kontener jest pusty, zakończenie działanie pętli, przypisanie wartość bieżącego elementu do zmiennej sterującej, wykonanie iteracji, sprawdzenie czy istnieje kolejny element w kontenerze: jeżeli istnieje, to ustala jako bieżący kolejny element kontenera i wykonuje iterację, jeżeli nie istnieje to kończy działanie. dr inż. Sławomir Koczubiej Programowanie komputerowe 173/298

174 VBA oferuje dwa rodzaje pętli warunkowych: Pętle: konstrukcja: While warunek Wend, konstrukcja Do Loop: z warunkiem na początku petli: Do While warunek - Loop, Do Until warunek - Loop, z warunkiem na końcu pętli: Do - Loop While warunek, Do - Loop Until warunek. While wykonują się dopóki jest spełniony warunek, Until wykonują się aż zostanie spełniony warunek. dr inż. Sławomir Koczubiej Programowanie komputerowe 174/298

175 Pętla While - Wend: Dim indeks As Integer Dim licznik As Integer indeks = 20 licznik = 0 While indeks > 10 indeks = indeks - 1 licznik = licznik + 1 Wend MsgBox(licznik) licznik = 10 dr inż. Sławomir Koczubiej Programowanie komputerowe 175/298

176 Pętla Do While - Loop: Dim indeks As Integer Dim licznik As Integer indeks = 20 licznik = 0 Do While indeks > 10 indeks = indeks - 1 licznik = licznik + 1 Loop MsgBox(licznik) licznik = 10 dr inż. Sławomir Koczubiej Programowanie komputerowe 176/298

177 Pętla Do Until - Loop: Dim indeks As Integer Dim licznik As Integer indeks = 20 licznik = 0 Do Until indeks > 10 indeks = indeks - 1 licznik = licznik + 1 Loop MsgBox(licznik) licznik = 0 dr inż. Sławomir Koczubiej Programowanie komputerowe 177/298

178 Pętla Do - Loop While: Dim indeks As Integer Dim licznik As Integer indeks = 20 licznik = 0 Do indeks = indeks - 1 licznik = licznik + 1 Loop While indeks > 10 MsgBox(licznik) licznik = 10 dr inż. Sławomir Koczubiej Programowanie komputerowe 178/298

179 Pętla Do - Loop Until: Dim indeks As Integer Dim licznik As Integer indeks = 20 licznik = 0 Do indeks = indeks - 1 licznik = licznik + 1 Loop Until indeks > 10 MsgBox(licznik) licznik = 1 dr inż. Sławomir Koczubiej Programowanie komputerowe 179/298

180 Przerwanie działanie pętli można osiągnąć na pomocą indtrukcji Exit While i Exit Do: Dim indeks As Integer Dim licznik As Integer indeks = 20 licznik = 0 While indeks > 10 indeks = indeks - 1 licznik = licznik + 1 Wend If licznik = 5 Then Exit While MsgBox(licznik) licznik = 5 Działanie peli można przerwać za pomocą kombinacji klawiszy [CTRL + BREAK]. dr inż. Sławomir Koczubiej Programowanie komputerowe 180/298

181 Pętla For - To - Next: Dim i, n As Integer n = 6 For i = 1 To n MsgBox(i) Next i = dr inż. Sławomir Koczubiej Programowanie komputerowe 181/298

182 Pętla For - To - Step - Next: Dim i, n As Integer n = 6 For i = 2 To n Step 2 MsgBox(i) Next i = dr inż. Sławomir Koczubiej Programowanie komputerowe 182/298

183 Pętla For - To - Step - Next: Dim i, n As Integer n = 6 For i = n To 1 Step -2 MsgBox(i) Next i = dr inż. Sławomir Koczubiej Programowanie komputerowe 183/298

184 Pętla For - To - Step - Next: Option Base 1 Dim i, n As Single n = 1.2 For i = 0 To n Step 0.4 MsgBox(i) Next i = Przerwanie działanie pętli można osiągnąć na pomocą indtrukcji Exit For. dr inż. Sławomir Koczubiej Programowanie komputerowe 184/298

185 Pętla For Each - Next: Option Base 1 Dim imie As Variant, lista() lista = Array("Ala", "Ola", "Ela") For Each imie In lista Next MsgBox(imie) dr inż. Sławomir Koczubiej Programowanie komputerowe 185/298

186 Pętla For - To - Next: Dim n As Integer Dim imie As Variant Dim lista() lista = Array("Ala", "Ola", "Ela") n = UBound(lista, 1) For i = 1 To n imie = lista(i) MsgBox(imie) Next dr inż. Sławomir Koczubiej Programowanie komputerowe 186/298

187 Komunikaty Funkcja MsgBox MsgBox(prompt[, buttons] [, title] [, helpfile, context]) Parametry MsgBox prompt treść komunikatu (łańcuch znaków) buttons przyciski komunikatu (łańcuch znaków) title tytuł okna (łańcuch znaków) helpfile plik pomocy kontekstowej (łańcuch znaków) context numer tematu pomocy kontekstowej (wartość numeryczna) dr inż. Sławomir Koczubiej Programowanie komputerowe 187/298

188 Wartości buttons vbokonly 0 tylko przycisk OK vbokcancel 1 przyciski OK i Cancel vbabortretryignore 2 przyciski Abort, Retry i Ignore vbyesnocancel 3 przyciski Yes, No i Cancel vbyesno 4 przyciski Yes i No vbretrycancel 5 przyciski Retry i Cancel vbcritical 16 ikona alarm vbquestion 32 ikona pytanie vbexclamation 48 ikona ostrzegawcza vbinformation 64 ikona informacyjna vbdefaultbutton1 0 przycisk pierwszy jest domyślny vbdefaultbutton2 256 przycisk drugi jest domyślny vbdefaultbutton3 512 przycisk trzeci jest domyślny vbdefaultbutton4 768 przycisk czwarty jest domyślny vbapplicationmodal 0 komunikat modalny dr inż. Sławomir Koczubiej Programowanie komputerowe 188/298

189 Zwracane wartości vbok 1 przycisk OK vbcancel 2 przycisk Cancel vbabort 3 przycisk Abort vbretry 4 przycisk Retry vbignore 5 przycisk Ignore vbyes 6 przycisk Yes vbno 7 przycisk No dr inż. Sławomir Koczubiej Programowanie komputerowe 189/298

190 Dim wynik As Integer wynik = MsgBox("Czy chcesz kontynuować?", _ vbyesno + vbquestion + vbdefaultbutton2) Dim wynik As Integer wynik = MsgBox("Czy chcesz kontynuować?", 292) dr inż. Sławomir Koczubiej Programowanie komputerowe 190/298

191 Dim tytul, komunikat As String Dim styl, wynik As Integer tytul = "Bardzo ważny komunikat" styl = vbyesno + vbcritical + vbdefaultbutton2 komunikat = "Zastanów się dobrze!" & Chr(13) & _ "Czy chcesz to skasować?" wynik = MsgBox(komunikat, styl, tytul) dr inż. Sławomir Koczubiej Programowanie komputerowe 191/298

192 Dim tytul, komunikat As String Dim styl, wynik As Integer tytul = "Bardzo ważny komunikat" styl = vbyesno + vbcritical + vbdefaultbutton2 komunikat = "Zastanów się dobrze!" & Chr(13) & _ "Czy chcesz to skasować?" wynik = MsgBox(komunikat, styl, tytul) If wynik = vbyes Then MsgBox ("Wcisnąłeś Tak!") Else MsgBox ("Wcisnąłeś Nie!") End If dr inż. Sławomir Koczubiej Programowanie komputerowe 192/298

193 Funkcja InputBox InputBox(prompt[, title] [, default] [, xpos] [, ypos] [, helpfile, context]) Parametry MsgBox prompt treść komunikatu (łańcuch znaków) title tytuł okna (łańcuch znaków) default domyślna odpowiedź (łańcuch znaków) xpos odleglość od lewej krawędzi ekranu (wartość numeryczna) ypos odleglość od górnej krawędzi ekranu (wartość numeryczna) helpfile plik pomocy kontekstowej (łańcuch znaków) context numer tematu pomocy kontekstowej (wartość numeryczna) dr inż. Sławomir Koczubiej Programowanie komputerowe 193/298

194 Dim miasto As String miasto = InputBox("Podaj miejsce urodzenia:" & Chr(13) _ & "np.: Rzepin, Pawłów, Ambrożów") dr inż. Sławomir Koczubiej Programowanie komputerowe 194/298

195 Dim tytul, komunikat, wynik, domyslna As String komunikat = "Wpisz wartość między 1 a 3:" tytul = "Bardzo ważny komunikat" domyslna = "1" wynik = InputBox(komunikat, tytul, domyslna, 200, 200) dr inż. Sławomir Koczubiej Programowanie komputerowe 195/298

196 Podprogramy Podprogram termin związany jest z programowaniem proceduralnym. Podprogram to wydzielona część programu wykonująca jakieś operacje. Podprogramy stosuje się, aby uprościć program główny, zwiększyć czytelność kodu. Wartościową cechą podprogramu jest możliwość wielokrotnego jego wywołania. W wielu językach programowania dzieli się podprogramy na funkcje i procedury. Funkcja ma wykonywać obliczenia i zwracać jakąś wartość, nie powinna natomiast mieć żadnego innego wpływu na działanie programu. Procedura natomiast nie zwraca żadnej wartości, zamiast tego wykonuje pewne działania. dr inż. Sławomir Koczubiej Programowanie komputerowe 196/298

197 Przez zwracanie wartości należy rozumieć możliwość użycia wywołania funkcji wewnątrz wyrażenia. Procedury często też zwracają wartości, ale poprzez odpowiednie parametry. Podział ten występuje w językach takich jak Pascal i Visual Basic. Oprócz powyższego podziału, wyróżnić także należy podprogram główny, czyli taki od którego rozpoczyna się wykonywanie skompilowanego programu. W językach programowania zastosowano zasadniczo kilka różnych rozwiązań. Albo zdefiniowana jest w składni odrębna jednostka (program w Pascalu) albostosuje się specjalną dyrektywę języka, informującą aby program łączący dany podprogram wybrał jako podprogram główny (OPTIONS(MAIN) w PL). W języku C i pokrewnych definiuje się zwykłą funkcję lecz o specjalnym identyfikatorze main. dr inż. Sławomir Koczubiej Programowanie komputerowe 197/298

198 W językach programowania stosują różne terminologie i oznaczenia podprogramów: w wielu językach programowania, a szczególnie tych, w których występuje tylko jeden rodzaj podprogramu, np. tylko funkcje, nie ma specjalnego oznaczenia (słowa kluczowego) podprogramu, przykładem jest język C, procedury: procedure, np. Pascal, Ada, Algol, PL, subroutine, np. Fortran, lubwskróconejpostacisub, np. Basic i Visual Basic, part, perform, funkcje: function, np. Pascal,Ada, Visual Basic, procedure... return(), np. PL, Algol. dr inż. Sławomir Koczubiej Programowanie komputerowe 198/298

199 Podprogram może być identyfikowany: przez nazwę identyfikator przypisany do podprogramu w jego deklaracji, jest to najczęściej spotykany przypadek w językach wysokiego poziomu (np.: Ada, C, Visual Basic), przez etykietę (Basic, Visual Basic), przez liczbę literał całkowity (Basic, Visual Basic), przez referencję (adres) w językach wysokiego poziomu takie wskaźniki przechowywane są w zmiennych typu proceduralnego lub wskaźnikowego. dr inż. Sławomir Koczubiej Programowanie komputerowe 199/298

200 Wywołanie podprogramu może być: funkcyjne w wyrażeniu, do którego podprogram zwraca obliczoną wartość, taka forma wywołania dotyczy tylko podprogramów mających cechy funkcji, tzn. zwracających wartość, proceduralne czyli jako instrukcja, poprzez nazwę z listą argumentów, lub po słowie kluczowym. Konkretne implementacje języków często dopuszczają wywołanie funkcji w postaci proceduralnej, tzn. poza wyrażeniami. W tym przypadku zwracana przez podprogram wartość jest ignorowana (Borland Pascal). dr inż. Sławomir Koczubiej Programowanie komputerowe 200/298

201 Podprogram jako samodzielna, wydzielona część algorytmu, zazwyczaj musi komunikować się z otoczeniem. Taką komunikację realizuje się za pomocą: zmiennych globalnych, argumentów (parametrów aktualnych), przypisywanych zdefiniowanym w podprogramie, rezultatów funkcji (wartości zwracanych do miejsca wywołania), pól obiektu (dla metod danego obiektu), innych, rzadko stosowanych lub nie zalecanych (np.: obszarów wspólnych, zmiennych nakładanych). dr inż. Sławomir Koczubiej Programowanie komputerowe 201/298

202 Procedury Procedurę definiuje się używając słów kluczowych Sub i End Sub. Możnaje dodawać w edytorze VB (menu Insert). Makropolecenia rejestrowane w Excelu są właśnie procedurami. dr inż. Sławomir Koczubiej Programowanie komputerowe 202/298

203 Przykład: Sub komunikatbledu() MsgBox("Wystąpił błąd!") End Sub Przekazywanie parametru, typ (Variant): Sub komunikatbledu(numerbledu) MsgBox("Wystąpił błąd nr " & CStr(numerBledu) & "!") End Sub dr inż. Sławomir Koczubiej Programowanie komputerowe 203/298

204 Domyślnie, parametry są przekazywane z modyfikatorem ByRef: Dim numer As Byte numer = 3 komunikatbledu numerbledu:=numer MsgBox(numer) 5 numer = 3 komunikatbledu(numer) MsgBox(numer) 3 Sub komunikatbledu(numerbledu As Byte) komunikatbledu(byref numerbledu As Byte) MsgBox("Wystąpił błąd nr " & CStr(numerBledu) & "!") numerbledu = 5 End Sub dr inż. Sławomir Koczubiej Programowanie komputerowe 204/298

205 Modyfikator ByVal: Dim numer As Byte numer = 3 komunikatbledu numerbledu:=numer MsgBox(numer) 3 numer = 3 komunikatbledu(numer) MsgBox(numer) 3 Sub komunikatbledu(byval numerbledu As Byte) MsgBox("Wystąpił błąd nr " & CStr(numerBledu) & "!") numerbledu = 5 End Sub dr inż. Sławomir Koczubiej Programowanie komputerowe 205/298

206 Funkcje Funkcję definiuje się używając słów kluczowych Function i End Function. Można je dodawać w edytorze VB (menu Insert). Dim wartx, warty, wynik As Integer wartx = 2 warty = 3 wynik = mnozenie(wartx, warty) 6 Function mnozenie(byval warta As Integer, _ ByVal wartb As Integer) As Integer mnozenie = warta * wartb End Function dr inż. Sławomir Koczubiej Programowanie komputerowe 206/298

207 Parametr opcjonalny: Dim wartx, warty, wynik As Integer wartx = 2 warty = 3 wynik = mnozenie(wartx, warty) 6 wynik = mnozenie(wartx, warty, 5) 30 Function mnozenie(byval warta As Integer, _ ByVal wartb As Integer, Optional wartc) As Integer If IsMissing(wartC) Then Else mnozenie = warta * wartb mnozenie = warta * wartb * wartc End If End Function dr inż. Sławomir Koczubiej Programowanie komputerowe 207/298

208 Lista parametrów: Dim wynik As Integer wynik = mnozenie(1, 2) 2 wynik = mnozenie(1, 2, 3) 6 wynik = mnozenie(1, 2, 3, 4) 24 Function mnozenie(paramarray argumenty()) As Integer Dim wartosc As Variant mnozenie = 1 For Each wartosc In argumenty mnozenie = mnozenie * wartosc Next wartosc End Function dr inż. Sławomir Koczubiej Programowanie komputerowe 208/298

209 Tak zdefiniowanych funkcji można używać w arkuszu. dr inż. Sławomir Koczubiej Programowanie komputerowe 209/298

210 Procedura prywatna skoroszytu o nazwie Workbook_Open() będzie automatycznie uruchamiana podczas otwierania arkusza. Private Sub Workbook_Open () MsgBox ("Otwarto arkusz.") End Sub dr inż. Sławomir Koczubiej Programowanie komputerowe 210/298

211 Modyfikatory Podczas omawiania zmiennych wspomniany został modyfikator Public. Przy definiowania zmiennych i podprogramów VBA pozwala na stosownie modyfikatorów: Public, Private, Friend, Static. dr inż. Sławomir Koczubiej Programowanie komputerowe 211/298

212 Modyfikatory Public Private Friend Static podprogram jest dostępny dla wszystkich innych podprogramów zprojektu ogranicza dostęp tylko dla podprogramów z modułu podprogram będzie dostępny w projekcie, ale nie będzie można go używać np. z innego arkusza, (tylko obiekty) wartości zmiennych podprogramu będą przechowywane do następnego wywołania dr inż. Sławomir Koczubiej Programowanie komputerowe 212/298

213 Obsługa błędów Instrukcja On Error pozwala na obsługę błędów zaistniałych w trakcie działania programu. Umieszcza się ją przed blokiem instrukcji, który ma być kontrolowany: Dim warta, wartb, wynik As Single warta = 1 wartb = 0 On Error GoTo bladdzielenia wynik = warta / wartb MsgBox ("wynik = " & wynik) bladdzielenia: MsgBox ("Blad.") dr inż. Sławomir Koczubiej Programowanie komputerowe 213/298

214 Instrukcja On Error zwykle występuje z Exit Sub lub Exit Function, zapobiega to wykonania instrukcji obsługi błędu, jeśli błąd nie wystąpił: Function dzielenie(byval warta As Double, _ ByVal wartb As Double) As Double On Error GoTo bladdzielenia dzielenie = warta / wartb Exit Function bladdzielenia: MsgBox ("Blad.") End Function dr inż. Sławomir Koczubiej Programowanie komputerowe 214/298

215 Instrukcja Resume pozwala na powrót do instrukcji w której wystąpił błąd: Function dzielenie(byval warta As Double, _ ByVal wartb As Double) As Double On Error GoTo bladdzielenia dzielenie = warta / wartb Exit Function bladdzielenia: wartb = 1 Resume End Function dr inż. Sławomir Koczubiej Programowanie komputerowe 215/298

216 Instrukcja występuje jeszcze w wersjach: On Error Resume Next powoduje skok do następnej instrukcji, po instrukcji w której wystąpił błąd, On Error Goto 0 powoduje wyłączenie obsługi błędów, On Error Goto -1 powoduje skok do etykiety określonej w ostatnim wywołaniu On Error Goto. dr inż. Sławomir Koczubiej Programowanie komputerowe 216/298

217 Uwagi Ze względu na ograniczony czas wykładu, nie poruszone zostały następujące, dość ważne zagadnienia: obiektowy charakter VBA (Class Modules), hierarchia obiektów specyficznych dla programu Excel (za wyjątkiem dostępu do komórek arkusza) osoby będące pisać konkretne programy będą musiały skorzystać z pomocy programu lub MSDN, tworzenie i obsługa okien (form), choć VBA na to pozwala podobne zagadnienia będą omawiane przy aplikacjach VB.NET, obsługa plików garść informacji o pracy z plikami przy omawianiu VB.NET, zagadnień związanych z realizacją i uruchamianiem projektów, a w szczególności: krokowego wykonywania programów, pracy z punktami przerwania (Break Points), śledzenia wartości zmiennych (Watch). dr inż. Sławomir Koczubiej Programowanie komputerowe 217/298

218 Platforma.NET 1 Informacje ogólne 2 Wprowadzenie do programowania 3 Paradygmat programowania 4 Algorytmy 5 Dlaczego Visual Basic (.NET/for Applications)? 6 Visual Basic for Applications 7 Platforma.NET 8 Visual Basic.NET dr inż. Sławomir Koczubiej Programowanie komputerowe 218/298

219 Platforma.NET.NET Framework jest w zasadzie częścią systemów operacyjnych z rodziny Windows. Jest to platforma programistyczna obejmująca: The common language runtime (CLR),.NET Framework class library. CLR jest środowiskiem uruchomieniowym aplikacji. Class Library jest rozbudowaną, zorientowaną obiektowo biblioteką klas, które mogą być użyte do tworzenia różnego rodzaju aplikacji: od tekstowych (konsola, CLI) przez graficzne (okienka) do sieciowych (opartych na ASP.NET). dr inż. Sławomir Koczubiej Programowanie komputerowe 219/298

220 Platforma.NET Technologia ta nie jest związana z żadnym konkretnym językiem programowania, a programy mogą być pisane w jednym z wielu języków na przykład: C++/CLI, C#, F#, J#, Visual Basic.NET. Zadaniem platformy.net Framework jest zarządzanie różnymi elementami systemu: kodem aplikacji, pamięcią i zabezpieczeniami. dr inż. Sławomir Koczubiej Programowanie komputerowe 220/298

221 Platforma.NET Aplikacje w obecnie funkcjonujących systemach operacyjnych firmy Microsoft są kompilowane do kodu maszynowego procesora, a z systemem operacyjnym komunikują się poprzez zestaw funkcji, dostarczanych przez system, zwanych WinAPI. Takie rozwiązanie nastręcza wielu problemów a głównymi z nich są: nieprzenośność programów między różnymi procesorami lub niewykorzystywanie przez aplikacje wszystkich możliwości procesora, nieprzenośność aplikacji między wersjami systemu ze względu na różnice w zestawie i działaniu funkcji z API. Microsoft zastosował rozwiązanie podobne do stosowanego w Javie: kompilatory kompilują kod źródłowy do postaci uniwersalnego kodu zwanego kodem pośrednim (CIL), metody klasy są kompilowane do kodu maszynowego w momencie pierwszego wywołania, kolejne wywołania metody prowadzą już bezpośrednio do skompilowanego kodu (kompilacja w locie, just in time), dostępna jest także możliwość skompilowania całego modułu w trakcie instalacji. dr inż. Sławomir Koczubiej Programowanie komputerowe 221/298

222 Platforma.NET Istotną nowością, jaka pojawiła się w platformie.net, jest Common Language Infrastructure. Każdy język programowania, który spełni odpowiednie standardy (głównie tzw. common object model), będzie miał dostęp do bibliotek.net. Obecnie ponad 40 języków programowania jest zgodnych z.net (oprócz wcześniej wymieniowych), np.: COBOL, Delphi.NET, Eiffel, Fortran, Lisp, Nemerle (opracowany przez wrocławskich naukowców), Perl, Python, Smalltalk. dr inż. Sławomir Koczubiej Programowanie komputerowe 222/298

223 Platforma.NET Platforma.NET niesie ze sobą kilka pochodnych technologii. Można tu wymienić ADO.NET, ułatwiający dostęp do baz danych, oraz ASP.NET, służąca do budowania dynamicznych stron WWW. Flagowym środowiskiem programistycznym jest Microsoft VisualStudio, które umożliwia pisanie w kilku językach programowania (ostatnia wersja to Visual Studio 2012 dla Windows 8 z.net ). Środowisko open source rozwija środowisko MonoDevelop, jednak jest ono wciąż we wczesnej fazie rozwoju. Innym środowiskiem zastępczym dla VS jest SharpDevelop. dr inż. Sławomir Koczubiej Programowanie komputerowe 223/298

224 Platforma.NET dr inż. Sławomir Koczubiej Programowanie komputerowe 224/298

225 Visual Basic.NET 1 Informacje ogólne 2 Wprowadzenie do programowania 3 Paradygmat programowania 4 Algorytmy 5 Dlaczego Visual Basic (.NET/for Applications)? 6 Visual Basic for Applications 7 Platforma.NET 8 Visual Basic.NET dr inż. Sławomir Koczubiej Programowanie komputerowe 225/298

226 Visual Basic.NET Środowisko, struktura projektu dr inż. Sławomir Koczubiej Programowanie komputerowe 226/298

227 Visual Basic.NET dr inż. Sławomir Koczubiej Programowanie komputerowe 227/298

228 Visual Basic.NET dr inż. Sławomir Koczubiej Programowanie komputerowe 228/298

229 Visual Basic.NET Domyślnie, nie są pokazywane wszystkie pliki pakietu. Po wciśnięci Show All Files, pokazane zostaną wszystkie pliki i dodatkowo pozycja References zawierająca wszystkie biblioteki.net wykorzystywane w bieżącym projekcie. Większość plików, które domyślnie były ukryte, nie powinna być edytowana. Na ich zawartość wpływają ustawienia projektu, komponenty umieszczone na formie, itd. dr inż. Sławomir Koczubiej Programowanie komputerowe 229/298

230 Visual Basic.NET dr inż. Sławomir Koczubiej Programowanie komputerowe 230/298

231 Visual Basic.NET Plik *.sln (Solution File) globalne informacje o pakiecie (rodzaj kontenera projektów). Pakiet może zawierać projekty wykorzystujące rożne technologie i języki programowania. dr inż. Sławomir Koczubiej Programowanie komputerowe 231/298

232 Visual Basic.NET W pliku *.sln znajduje się linia: Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Kolory", "Kolory\Kolory.vbproj", "{7285D045-C44C-448D-BF9A E738C76}" zawierająca: "Kolory" nazwa pliku pakietu, "Kolory\kolory.vbproj" nazwa podkatalogu z plikami projektu\nazwa projektu VB. Aby zmienić nazwę istniejącego projektu, należy zmienić: nazwę katalogu pakietu, nazwę podkatalogu projektu, nazwę pliku pakietu *.sln, wprowadzić nowe nazwy w pliku pakietu *.sln. dr inż. Sławomir Koczubiej Programowanie komputerowe 232/298

233 Visual Basic.NET Plik *.vbproj plik projektu VB. Plik *.vbproj.user plik konfiguracji środowiska programowania dla projektu. Plik *.resx plik zasobów. dr inż. Sławomir Koczubiej Programowanie komputerowe 233/298

234 Visual Basic.NET Plik *.Designer.vb część kodu klasy formy, widać dziedziczenie z klasy Form zdefiniowanej w przestrzeni nazw System.Windows.Forms. dr inż. Sławomir Koczubiej Programowanie komputerowe 234/298

235 Visual Basic.NET Plik *.vb część kodu klasy formy, zwykle zawiera metody zdarzeniowe dla klasy formy. dr inż. Sławomir Koczubiej Programowanie komputerowe 235/298

236 Visual Basic.NET Plik *.exe skompilowany kod programu, do jego uruchomienia jest potrzebna odpowiednia platforma.net. dr inż. Sławomir Koczubiej Programowanie komputerowe 236/298

237 Visual Basic.NET Kompilowanie, debugowanie, śledzenie Skróty klawiaturowe [F5] [F8] [SHIFT F8] [F9] start i kontynuacja wykonywania programu krokowe wykonywanie programu krokowe wykonywanie programu, procedury i funkcje w jednym kroku wstawianie i usuwanie punktów przerwania (Break Point) dr inż. Sławomir Koczubiej Programowanie komputerowe 237/298

238 Visual Basic.NET dr inż. Sławomir Koczubiej Programowanie komputerowe 238/298

239 Visual Basic.NET dr inż. Sławomir Koczubiej Programowanie komputerowe 239/298

240 Visual Basic.NET Interfejs użytkownika Forma jest podstawowym elementem interfejsu użytkownika aplikacji systemu Windows. Umożliwia komunikację aplikacji z użytkownikiem. W trakcie projektowania interfejsu na formie można umieszczać dowolne obiekty (kontrolki, komponenty przyciski, etykiety, pola tekstowe, menu) oraz przyporządkowywać odpowiedni kod programu jako reakcja na zaistnienie odpowiedniego zdarzenia powiązanego z wybranym obiektem (np. reakcję na naciśnięcie przycisku czy wskazanie opcji w menu). Bazową klasą dla każdej formy jest klasa Form, znajdująca się w przestrzeni nazw System.Windows.Forms. Każda forma posiada: właściwości (pola), metody i zdarzenia. dr inż. Sławomir Koczubiej Programowanie komputerowe 240/298

241 Visual Basic.NET Właściwości formy Name nazwa formy (klasy) AcceptButton domyślny przycisk akceptacji (reakcja na [ENTER]) AutoSize automatyczne dopasowanie do kontekstu BackColor kolor tła CancelButton domyślny przycisk anulowania (reakcja na [ESC]) ControlBox przyciski w pasku tytułowym formy Cursor rodzaj kursora myszy Font rodzaj i krój czcionki ForeColor kolor tekstu i grafiki FormBorderStyle wygląd obramowania formy Icon ikona formy dr inż. Sławomir Koczubiej Programowanie komputerowe 241/298

242 Visual Basic.NET Właściwości formy Location pozycja lewego górnego rogu formy Locked definiuje możliwość zmiany położenia i rozmiarów komponentów MaximizeBox przycisk maksymalizacji na pasku tytułowym formy MaximumSize maksymalny rozmiar formy Menu określa główne menu formy MinimizeBox przyciski minimalizacji formy MinimumSize minimalny rozmiar formy Size rozmiar początkowy formy Text tytuł na pasku tytułowym WindowState stan okna po uruchomieniu aplikacji (zminimalizowany, cały ekran, normalny) dr inż. Sławomir Koczubiej Programowanie komputerowe 242/298

243 Visual Basic.NET Zdarzenia formy Activated Click Deactivate forma jest aktywowana (focus) kliknięcie na formę forma jest deaktywowana (traci focus) DoubleClick podwójne kliknięcie na formę Enter wejście do formy FormClosed po zamknięciu formy FormClosing forma jest zamykana (przed FormClosed) KeyDown naciśnięcie klawisza (przekazywany jest kod klawisza) KeyPress naciśnięcie klawisza (przekazywany jest znak klawisza) dr inż. Sławomir Koczubiej Programowanie komputerowe 243/298

244 Visual Basic.NET Zdarzenia formy KeyUp zwolnienie klawisza (przekazywany jest kod klawisza) Leave opuszczenie formy Load MouseDown MouseMove MouseUp Move Paint Resize ładowanie formy, przed wywołaniem metody Show, używane zwykle do przypisywania wartości początkowych właściwości formy i komponentów naciśnięcie przycisk myszy kursor myszy przesuwany w obrębie formy zwolnienie przycisku myszy przesuwanie formy przerysowanie formy zmienianie rozmiaru formy dr inż. Sławomir Koczubiej Programowanie komputerowe 244/298

245 Visual Basic.NET Metody formy Activate aktywuje formę Close zamyka formę Focus forma odzyskuje focus Hide ukrywa formę Refresh odświeża (odrysowuje) formy Show pokazuje formę ShowDialog pokazuje formę jako modalne okno dialogowe Update odrysowuje widoczną część formy dr inż. Sławomir Koczubiej Programowanie komputerowe 245/298

246 Visual Basic.NET Komponenty Komponenty (kontrolki) to obiekty umieszczane na formie, będące zwykle częścią interfejsu graficznego aplikacji. Grupę komponentów można wybrać trzymając wciśnięty klawisz [SHIFT]. Na formie znajdują się: Button, RadioButton, ComboBox, Label, LinkLabel, ListBox, TextBox, CheckBox. dr inż. Sławomir Koczubiej Programowanie komputerowe 246/298

247 Visual Basic.NET Właściwości komponentów Name nazwa klasy komponentu AutoSize automatyczne dopasowanie do kontekstu BackColor kolor tła Cursor rodzaj kursora myszy Dock rodzaj zakotwiczenia Enabled dostępność komponentu Font czcionka ForeColor kolor tekstu i grafiki Location pozycja lewego górnego rogu komponentu MaximumSize maksymalny rozmiar komponentu Size rozmiar komponentu Text tekst jaki zawiera komponent Visible widoczność komponentu dr inż. Sławomir Koczubiej Programowanie komputerowe 247/298

248 Visual Basic.NET Zdarzenia komponentów Click kliknięcie DoubleClick podwójne kliknięcie CheckedChanged zaznaczenie, odznaczenie KeyDown naciśnięcie klawisza (przekazywany jest kod klawisza) KeyPress naciśnięcie klawisza (przekazywany jest znak klawisza) KeyUp zwolnienie klawisza (przekazywany jest kod klawisza) MouseDown naciśnięcie przycisk myszy MouseMove kursor myszy przesuwany w obrębie formy MouseUp zwolnienie przycisku myszy dr inż. Sławomir Koczubiej Programowanie komputerowe 248/298

249 Visual Basic.NET Metody komponentów Focus komponent odzyskuje focus Hide ukrywa komponent Refresh odświeża (odrysowuje) kontrolkę i pochodne Show pokazuje komponent Update wymusza odświerzenie obrazu komponentu dr inż. Sławomir Koczubiej Programowanie komputerowe 249/298

250 Visual Basic.NET Różnice pomiędzy VBA a VB.NET Brak typu Currency, należy używać typu Decimal. Brak typu Variant, należy używać Object. Nowy typ Char, służący do pechowywania pojedynczych znaków (liczba całkowita bez znaku z zakresu ). Dim znak As Char znak = "A" Brak wyrażenia Set stosowanego do przypisywania referencji. Pierwszy element tablicy zawsze ma numer 0 (brak opcji Option Base), nie można definiować zakresu zmiennej sterującej (-3 To 3). Domyślne Option Explicit On wymuszenie jawnej deklaracji zmiennych. dr inż. Sławomir Koczubiej Programowanie komputerowe 250/298

251 Visual Basic.NET Opcja Option Strict On wymuszenie jawnego typowania zmiennych, wyłączenie niejawnego rzutowania (zalecane, czasami będzie trzeba użyć sufiksów oznaczających konkretny typ danych, np.: 1I - Integer, 1L - Long, 2.55F -Single,2.55R - Double, 2.55D - Decimal, "A"C -Char). Pętlę While kończy się za pomocą End While. Dim indeks, licznik As Integer indeks = 20 licznik = 0 While indeks > 10 indeks = indeks - 1 licznik = licznik + 1 End While dr inż. Sławomir Koczubiej Programowanie komputerowe 251/298

252 Visual Basic.NET Przy podprogramach (metodach) należy obowiązkowo zdefiniować sposób przekazywania parametrów (ByVal, ByRef). Nowy rozkaz Return, zwracający przekazaną wartość i jednocześnie kończący wykonywanie funkcji. Argumenty podprogramów (metod) muszą być podane w nawiasach. Dim wynik As Integer wynik = dodawanie(2, 3) Function dodawanie(byval warta As Integer, _ ByVal wartb As Integer) As Integer Return warta + wartb End Function Pozostałę instrukcje sterujące (If, Select, For, Do) mają taką samą składnię. dr inż. Sławomir Koczubiej Programowanie komputerowe 252/298

253 Visual Basic.NET Nieco inaczej należy rozumieć działanie modyfikatorów metod. Modyfikatory Public metoda dostępna dla wszystkich innych metod Private metoda dostępna tylko dla metod klasy Protected metoda dostępna dla metod klasy i metod klas potomnych Friend metoda dostępna dla klasy i innych metod projektu dr inż. Sławomir Koczubiej Programowanie komputerowe 253/298

254 Visual Basic.NET Kilka nowych możliwości Nowe operatory typu shorthands: potęgowanie: aˆ=b zamiast a = aˆb, mnożenie: a*=b zamiast a = a * b, dzielenie zmiennoprzecinkowe: a/=b zamiast a = a / b, dzielenie całkowitoliczbowe: a\=b zamiast a = a \ b, dodawanie: a+=b zamiast a = a + b, odejmowanie: a-=b zamiast a = a - b, konkatenacja: a&=b zamiast a = a & b. Inicjalizacja zmiennych podczas deklaracji (czyli definicja). Dim n As Integer = 3 Dim k As Integer = 3 * n Dim err1 As String = "Błąd nr 1" dr inż. Sławomir Koczubiej Programowanie komputerowe 254/298

255 Visual Basic.NET Inicjalizacja tablic podczas deklaracji (tylko tablice dynamiczne). Dim wektor() As Integer = {1, 2, 3} Dim macierz(,) As Char = {{"a", "b"}, {"c", "d"}} Proste typy danych są w istocie strukturami, np. typ Integer jest instancją struktury System.Int32. Dlatego zmienne proste mogą posiadać dodatkowe metody. Dim intliczba As Integer = 1 Dim strliczba As String = intliczba.tostring() Dim strmiasto = "Kielce" MessageBox. Show(strMiasto.Substring(0, 3), "Komunikat") Dim tablica As Integer = {{1, 2}, {3, 4}} Dim rozm1 As Integer = tablica.getupperbound (0) Dim rozm2 As Integer = tablica.getupperbound (1) dr inż. Sławomir Koczubiej Programowanie komputerowe 255/298

256 Visual Basic.NET Struktury pozwalają na deklarowanie typów złożonych, zawierających elementy różnego typu. Structure student Dim nazwisko As String Dim imie As String Dim ocena As Decimal End Structure Dim studa, studb As student Dim studenci(9) As student studa.nazwisko studb.nazwisko = "Kowalski" = "Nowak" For i As Integer = 0 To studenci.length - 1 Next studenci(i).ocena = 2.55D dr inż. Sławomir Koczubiej Programowanie komputerowe 256/298

257 Visual Basic.NET Strukturalna obsługa wyjątków Wyjątki są obiektami, które służą do przenoszenia informacji generowanych w szczególnych momentach wykonywania programu. Wyjątek to sygnał, który jest emitowany w sytuacji krytycznej. Sygnał ten należy przechwycić, aby na sytuację krytyczną odpowiednio zareagować. Klasą bazową wszystkich wyjątków jest System.Exception. Wśrodowisku.Net zaimplementowano szereg klas wyjątków, m.in.: ArgumentNullException używany gdy argumentem metody jest Nothing, InvalidCastException błędne rzutowanie typu, OverflowException wystąpienie przepełnienia. Klasy wyjątków posiadają szereg metod i właściwości, m.in.: Message właściwość tylko do odczytu, ustawiana w konstruktorze podczas tworzenia obiektu wyjątku. dr inż. Sławomir Koczubiej Programowanie komputerowe 257/298

258 Visual Basic.NET Dim x As Integer = , y As Integer y = kwadrat(x) MessageBox. Show("Wynik: " & y.tostring, "Komunikat") Function kwadrat(byval arg As Integer) As Integer Dim wart As Integer wart = arg * arg Return wart End Function dr inż. Sławomir Koczubiej Programowanie komputerowe 258/298

259 Visual Basic.NET Wyjątek obsługiwany przez debugger Visual Studio i przez platformę.net (w przypadku uruchomienia skompilowanego programu z GUI). dr inż. Sławomir Koczubiej Programowanie komputerowe 259/298

260 Visual Basic.NET Wyrażenie Try - Catch - End Try służy do przechwytywania wyjątków. WblokuTry umieszcza się kod, w którym mogą pojawić się wyjątki, natomiast obsługę wyjątków umieszcza się w bloku Catch. Dim x As Integer = , y As Integer Try y = kwadrat(x) Catch ex As Exception MessageBox. Show("Błąd: " & End Try ex.message, "Wyjątek") MessageBox. Show("Wynik: " & y.tostring, "Komunikat") dr inż. Sławomir Koczubiej Programowanie komputerowe 260/298

261 Visual Basic.NET Jeśli w programie zostanie wykryty błąd, można samodzielnie zgłosić wyjątek za pomocą Throw. Wykonanie Throw natychmiast kończy podprogram (metodę), w której jest umieszczone. Zakończenie działania metody przez wygenerowanie wyjątku jest przypadkiem specjalnym, wartość zwracana przez przerwaną metodę nie jest określona. Metody zgłaszające wyjątek mogą być wywoływane wewnątrz innych metod. W takich przypadkach wyjątki metod wewnętrznych przerywają działanie metod zewnętrznych. Jeśli zagnieżdżeń wywołań jest więcej, następuje propagacja wyjątku(iprzerywaniametod). Aby zakończyć propagację wyjątku należy go przechwycić. Jeśli się tego nie zrobi, program zakończy się błędem (wyjątek zostanie obsłużony przez platformę.net). dr inż. Sławomir Koczubiej Programowanie komputerowe 261/298

262 Visual Basic.NET Function kwadrat(byval arg As Integer) As Integer Dim maxarg As Integer = Math. Sqrt( Integer.MaxValue) Dim wart As Integer If arg > maxarg Then Throw New Exception("Za duża wartość.") End If wart = arg * arg Return wart End Function dr inż. Sławomir Koczubiej Programowanie komputerowe 262/298

263 Visual Basic.NET Pliki Plik to uporządkowany zbiór danych o skończonej długości, posiadający szereg atrybutów i stanowiący dla użytkownika systemu operacyjnego całość. Nazwa pliku nie jest częścią tego pliku, lecz jest przechowywana w systemie plików. W systemach z rodziny Windows, rozróżnia się pliki: tekstowe dane zapisane w formie kodów ASCII lub innych (Unicode, UTF-8) łącznie z kodami sterującymi urządzeniami (np.: drukarka, terminal, ekran) do których mają być wysłane, binarne pozostałe pliki. dr inż. Sławomir Koczubiej Programowanie komputerowe 263/298

264 Visual Basic.NET Do operacji na plikach na platformie.net wprowadzono przestrzeń nazw System.IO. W przestrzeni tej zawarte są klasy, które pozwalają czytać dane i zapisywać dane do plików fizycznych lub strumieni, manipulować katalogami i plikami. Obiekty System.IO Path Directory, DirectoryInfo File, FileInfo FileStream BinaryReader, BinaryWriter StringReader, StringWriter StreamReader, StreamWriter manipulacje ścieżkami dostępu, nazwami i rozszerzeniami plików obsługa i operacje na katalogach obsługa i operacje na plikach obsługa plików z dostępem swobodnym dostęp do danych binarnych (prymitywnych) strukturalny dostęp do danych zapisanych w ciągu znaków strukturalny dostęp do danych dr inż. Sławomir Koczubiej Programowanie komputerowe 264/298

265 Visual Basic.NET Ścieżka, nazwa, rozszeżenie pliku: Dim filepath As String = "D:\Dane\Plik.txt" Dim filename As String = Path. GetFileName(filePath) Plik.txt Dim fileext As String = Path. GetExtension(filePath).txt Dim filenoext As String = _ Path. GetFileNameWithoutExtension(filePath) Plik Dim filedir As String = Path. GetDirectoryName(filePath) D:\Dane\ dr inż. Sławomir Koczubiej Programowanie komputerowe 265/298

266 Visual Basic.NET Łatwy zapis i odczyt plików tekstowych (łańcuch znaków): Dim filepath, = "D:\Dane\Plik.txt" Dim textfile As String File. WriteAllText(filePath, "Tekst do zapisania.") textfile = File. ReadAllText(filePath) Console. WriteLine(textFile) dr inż. Sławomir Koczubiej Programowanie komputerowe 266/298

267 Visual Basic.NET Łatwy zapis i odczyt plików tekstowych (tablica łańcuchów znaków): Dim filepath As String = "D:\Dane\Plik.txt" Dim textout() As String = {"Jeden", "Dwa", "Trzy"} Dim textin() As String File. WriteAllLines(filePath, textout) textin = File. ReadAllLines(filePath) For Each textline As String In textin Console. WriteLine(textLine) Next dr inż. Sławomir Koczubiej Programowanie komputerowe 267/298

268 Visual Basic.NET Łatwy zapis i odczyt plików binarnych (tablica bajtów): Dim filepath As String = "D:\Dane\Plik.dat" Dim byteout() As Byte = {1, 2, 3, 4, 5} Dim bytein() As Byte File. WriteAllBytes(filePath, byteout) bytein = File. ReadAllBytes(filePath) For Each byteelement As Byte In bytein Console. WriteLine(byteElement.ToString) Next dr inż. Sławomir Koczubiej Programowanie komputerowe 268/298

269 Visual Basic.NET dr inż. Sławomir Koczubiej Programowanie komputerowe 269/298

270 Visual Basic.NET Strumienie i pliki Strumieniem (stream) będziemy nazywać połączenie między nadawcą a odbiorcą w postaci nieprzerwanej sekwencji danych, nie dzielonych na komunikaty. Komunikacja strumieniowa jest realizowana za pomocą buforów pozwalających nadawcy wyprzedzać odbiorcę. Strumienie znajdują zastosowanie przesyłaniu plików i są często podstawą organizowania komunikacji. Klasa FileStream tworzy strumień (obiekt klasy Stream) do pliku i dostarcza metod wykonywania operacji czytania i zapisu. Konstruktory klasy FileStream wymagają podania wartości wyliczenia do ustalania sposobu obsługi pliku. Enumeracje FileStream FileAcces FileMode FileShare określa, czy plik jest tworzony, jeśli nie istnieje i czy zawartość istniejącego pliku jest zachowana lub zastąpioa określa operacje, które można przeprowadzić na pliku określa typ dostępu inne wątów do pliku dr inż. Sławomir Koczubiej Programowanie komputerowe 270/298

271 Visual Basic.NET Enumeracja FileMode Append otwiera plik lub tworzy nowy do dopisywania dnych Create tworzy nowy plik lub zastępuje istniejący CreateNew tworzy nowy plik lub zwraca wyjątek jeśli plik istnieje Open otwiera plik lub zwraca wyjątek jeśli plik nie istnieje OpenOrCreate otwiera plik lub tworzy nowy Truncate otwiera istniejący plik i nadpisuje jego zawartość Enumeracja FileAccess Read można odczytać dane z pliku ReadWrite dane można odczytać i zapisać Write dane można zapisać do pliku dr inż. Sławomir Koczubiej Programowanie komputerowe 271/298

272 Visual Basic.NET Zapis do pliku tekstowego przy pomocy strumieni i WriteLine: Dim i As Integer Dim n As Integer Dim textlines() As String = {"Jeden", "Dwa", "Trzy"} Dim filepath As String = "D:\Dane\Plik.txt" Dim fileoutstream As New FileStream(filePath, FileMode. Create, _ FileAccess. Write) Dim fileoutwriter As New StreamWriter(fileOutStream) n = textlines.length - 1 For i = 0 To n Next fileoutwriter.writeline(textlines(i)) fileoutwriter.close() fileoutstream.close() dr inż. Sławomir Koczubiej Programowanie komputerowe 272/298

273 Visual Basic.NET Odczyt z pliku tekstowego przy pomocy strumieni i ReadLine: Dim n As Integer = 0 Dim textlines(99) As String Dim filepath As String = "D:\Dane\Plik.txt" Dim fileinstream As New FileStream(filePath, FileMode. Open, _ FileAccess. Read) Dim fileinreader As New StreamReader(fileInStream) While fileinreader.peek >= 0 textlines(n) = n = n + 1 fileinreader.readline() End While fileinreader.close() fileinstream.close() For i = 0 To n Next Console. WriteLine(textLines(i)) dr inż. Sławomir Koczubiej Programowanie komputerowe 273/298

274 Visual Basic.NET Zapis danych numerycznych do pliku tekstowego: Dim line As String : Dim i As Integer : Dim n As Integer = 9 Dim valuex(n) As Double : Dim valuey(n) As Double For i = 0 To n valuex(i) = Math. Sin(i * 4 * Math. Atan(1) / n) valuey(i) = Math. Cos(i * 4 * Math. Atan(1) / n) Next Dim filepath As String = "D:\Dane\Plik.txt" Dim fileoutstream As New FileStream(filePath, FileMode. Create, _ FileAccess. Write) Dim fileoutwriter As New StreamWriter(fileOutStream) For i = 0 To n line = (i + 1).ToString & vbtab & valuex(i).tostring & _ vbtab & valuey(i).tostring Chr(9) fileoutwriter.writeline(line) Next fileoutwriter.close() fileoutstream.close() dr inż. Sławomir Koczubiej Programowanie komputerowe 274/298

275 Visual Basic.NET Zapis danych numerycznych do pliku tekstowego: Dim line As String : Dim i As Integer : Dim n As Integer = 9 Dim valuex(n) As Double : Dim valuey(n) As Double For i = 0 To n valuex(i) = Math. Sin(i * 4 * Math. Atan(1) / n) valuey(i) = Math. Cos(i * 4 * Math. Atan(1) / n) Next Dim filepath As String = "D:\Dane\Plik.txt" Dim fileoutstream As New FileStream(filePath, FileMode. Create, _ FileAccess. Write) Dim fileoutwriter As New StreamWriter(fileOutStream) For i = 0 To n line = String. Format("{0,5:D} {1:F} _ {2,12:+0.000e+00;-0.000e+00;0}", i + 1, valuex(i), valuey(i)) fileoutwriter.writeline(line) Next fileoutwriter.close() fileoutstream.close() dr inż. Sławomir Koczubiej Programowanie komputerowe 275/298

276 Visual Basic.NET dr inż. Sławomir Koczubiej Programowanie komputerowe 276/298

277 Visual Basic.NET Odczyt danych numerycznych z pliku tekstowego: Dim line As String : Dim i, n As Integer Dim valuex(99) As Double : Dim valuey(99) As Double Dim delimiters() As Char = {" "c, Chr(9)} Dim filepath As String = "D:\Dane\Plik.txt" Dim fileinstream As New FileStream(filePath, FileMode. Open, _ FileAccess. Read) Dim fileinreader As New StreamReader(fileInStream) While fileinreader.peek >= 0 line = fileinreader.readline() Dim items As String() = line.split(delimiters, _ StringSplitOptions. RemoveEmptyEntries) valuex(n) = CDbl(items(1)) : valuey(n) = CDbl(items(2)) n = n + 1 End While fileinreader.close() fileinstream.close() For i = 0 To n Console. WriteLine("{0}, {1}", valuex(i).tostring, _ valuey(i).tostring) Next dr inż. Sławomir Koczubiej Programowanie komputerowe 277/298

278 Visual Basic.NET dr inż. Sławomir Koczubiej Programowanie komputerowe 278/298

279 Visual Basic.NET Elementy programowania obiektowego Elementy projektowania obiektowego, omówimy na przykładzie klasy Ulamek, będącej podstawową implementacją liczb wymiernych. Klasa będzie miała dwa prywatne pola (niedostępne spoza klasy): prvlicznik i prvmianownik: Public Class Ulamek Private prvlicznik As Integer Private prvmianownik As Integer End Class dr inż. Sławomir Koczubiej Programowanie komputerowe 279/298

280 Visual Basic.NET Zdefiniujmy dwa konstruktory, które będą inicjowały wartości zmiennych prywatnych, jeden będzie bezargumentowy, drugi z parametrem opcjonalnym (drugi konstruktor nie pozwoli nadać zmiennej prvlicznik wartości zero): Public Class Ulamek... Public Sub New() Me.prvLicznik = 1 Me.prvMianownik = 1 End Sub... End Public Sub New( ByVal licznik As Integer, _ Optional ByVal mianownik As Integer = 1) If mianownik = 0 Then mianownik = 1 Me.prvLicznik = licznik Me.prvMianownik = mianownik End Sub Class Możemy już zdefiniować obiekty i nadawać ich polom wartości: Dim Jeden As Ulamek = New Ulamek() Dim Dwa As Ulamek = New Ulamek(2) Dim JedenDwa As Ulamek = New Ulamek(1, 2) dr inż. Sławomir Koczubiej Programowanie komputerowe 280/298

281 Visual Basic.NET Dodajmy metodę, która będzie zwracać wartość ułamka w postaci łańcucha znaków z wykorzystaniem znaku /: Public Class Ulamek... Public Function WyswietlUlamek() As String Return prvlicznik.tostring & " / " & prvmianownik.tostring... End End Function Class Jest to metoda publiczna, można ją wywoływać poza klasą: Console. WriteLine("Metoda WyswietlUlamek, _ ""Jeden.WyswietlUlamek"" => {0} ", Jeden.WyswietlUlamek) Console. WriteLine("Metoda WyswietlUlamek, _ ""Dwa.WyswietlUlamek"" => {0}", Dwa.WyswietlUlamek) Console. WriteLine("Metoda WyswietlUlamek, _ ""JedenDwa.WyswietlUlamek"" => {0}", JedenDwa.WyswietlUlamek) dr inż. Sławomir Koczubiej Programowanie komputerowe 281/298

282 Visual Basic.NET dr inż. Sławomir Koczubiej Programowanie komputerowe 282/298

283 Visual Basic.NET Nasza klasa dziedziczy metodę ToString, którą należy poprawić, dodajmy też nową metodę zwracającą wartość ułamka jako wartość rzeczywistą: Public Class Ulamek... Public Overrides Function ToString() As String Return WyswietlUlamek() End Function Public Function ToDouble() As Double Return prvlicznik / prvmianownik End Function... End Class Przykład: Console. WriteLine("Przesłonięta metoda ToString, _ ""JedenDwa.ToString"" => {0}", JedenDwa.ToString) Console. WriteLine("Metoda ToDouble _ ""JedenDwa.ToDouble"" => {0}", JedenDwa.ToDouble) dr inż. Sławomir Koczubiej Programowanie komputerowe 283/298

284 Visual Basic.NET dr inż. Sławomir Koczubiej Programowanie komputerowe 284/298

Programowanie obiektowe - 1.

Programowanie obiektowe - 1. Programowanie obiektowe - 1 Mariusz.Masewicz@cs.put.poznan.pl Programowanie obiektowe Programowanie obiektowe (ang. object-oriented programming) to metodologia tworzenia programów komputerowych, która

Bardziej szczegółowo

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE Studia podyplomowe dla nauczycieli INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE Przedmiot JĘZYKI PROGRAMOWANIA DEFINICJE I PODSTAWOWE POJĘCIA Autor mgr Sławomir Ciernicki 1/7 Aby

Bardziej szczegółowo

Wykład V. Rzut okiem na języki programowania. Studia Podyplomowe INFORMATYKA Podstawy Informatyki

Wykład V. Rzut okiem na języki programowania. Studia Podyplomowe INFORMATYKA Podstawy Informatyki Studia Podyplomowe INFORMATYKA Podstawy Informatyki Wykład V Rzut okiem na języki programowania 1 Kompilacja vs. interpretacja KOMPILACJA Proces, który przetwarza program zapisany w języku programowania,

Bardziej szczegółowo

Podstawy Programowania Obiektowego

Podstawy Programowania Obiektowego Podstawy Programowania Obiektowego Wprowadzenie do programowania obiektowego. Pojęcie struktury i klasy. Spotkanie 03 Dr inż. Dariusz JĘDRZEJCZYK Tematyka wykładu Idea programowania obiektowego Definicja

Bardziej szczegółowo

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Program, to lista poleceń zapisana w jednym języku programowania zgodnie z obowiązującymi w nim zasadami. Celem programu jest przetwarzanie

Bardziej szczegółowo

Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego. Iwona Kochaoska

Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego. Iwona Kochaoska Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego Iwona Kochaoska Programowanie Obiektowe Programowanie obiektowe (ang. object-oriented programming) - metodyka tworzenia programów komputerowych,

Bardziej szczegółowo

Programowanie komputerów

Programowanie komputerów Programowanie komputerów Wykład 1-2. Podstawowe pojęcia Plan wykładu Omówienie programu wykładów, laboratoriów oraz egzaminu Etapy rozwiązywania problemów dr Helena Dudycz Katedra Technologii Informacyjnych

Bardziej szczegółowo

Visual Basic w programie Excel

Visual Basic w programie Excel Visual Basic w programie Excel Ćwiczenie nr 3 Obiekty, właściwości, metody. Obiekty standardowe, kolekcje standardowe. Dostęp do komórek arkusza. Operacje na standardowych bibliotekach. CEL ĆWICZENIA.

Bardziej szczegółowo

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1 Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja

Bardziej szczegółowo

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

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++ Programowanie Wstęp p do programowania Klasa 3 Lekcja 9 PASCAL & C++ Język programowania Do przedstawiania algorytmów w postaci programów służą języki programowania. Tylko algorytm zapisany w postaci programu

Bardziej szczegółowo

Język programowania. Andrzej Bobyk http://www.alfabeta.lublin.pl. www.alfabeta.lublin.pl/jp/

Język programowania. Andrzej Bobyk http://www.alfabeta.lublin.pl. www.alfabeta.lublin.pl/jp/ Język programowania Andrzej Bobyk http://www.alfabeta.lublin.pl www.alfabeta.lublin.pl/jp/ Literatura K. Reisdorph: Delphi 6 dla każdego. Helion, Gliwice 2001 A. Grażyński, Z. Zarzycki: Delphi 7 dla każdego.

Bardziej szczegółowo

Aplikacje w środowisku VBA. Visual Basic for Aplications

Aplikacje w środowisku VBA. Visual Basic for Aplications Aplikacje w środowisku VBA Visual Basic for Aplications Podstawowe informacje o VBA Visual Basic for Aplications, w skrócie VBA, to język programowania rozwijany przez Microsoft, którego zastosowanie pozwala

Bardziej szczegółowo

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki Object-oriented programming Najpopularniejszy obecnie styl (paradygmat) programowania Rozwinięcie koncepcji programowania strukturalnego

Bardziej szczegółowo

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

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Podstawy VBA cz. 2. Programowanie komputerowe Wydział Zarządzania AGH Katedra Informatyki Stosowanej Podstawy VBA cz. 2 Programowanie 1 Program wykładu Typy danych Wyrażenia Operatory 2 VBA Visual Basic dla aplikacji (VBA) firmy Microsoft jest językiem

Bardziej szczegółowo

Tablice. Jones Stygar na tropie zmiennych

Tablice. Jones Stygar na tropie zmiennych Tablice Jones Stygar na tropie zmiennych Czym jest tablica? Obecnie praktycznie wszystkie języki programowania obsługują tablice. W matematyce odpowiednikiem tablicy jednowymiarowej jest ciąg (lub wektor),

Bardziej szczegółowo

LibreOffice Calc VBA

LibreOffice Calc VBA LibreOffice Calc VBA LibreOffice Calc umożliwia tworzenie własnych funkcji i procedur przy użyciu składni języka VBA. Dostęp do edytora makr: Narzędzia->Makra->Zarządaj makrami->libreoffice Calc Aby rozpocząć

Bardziej szczegółowo

Modelowanie i Programowanie Obiektowe

Modelowanie i Programowanie Obiektowe Modelowanie i Programowanie Obiektowe Wykład I: Wstęp 20 październik 2012 Programowanie obiektowe Metodyka wytwarzania oprogramowania Metodyka Metodyka ustandaryzowane dla wybranego obszaru podejście do

Bardziej szczegółowo

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

Program szkoleniowy. 24 h dydaktycznych (18 h zegarowych) NAZWA SZCZEGÓŁY CZAS Program szkoleniowy Microsoft Excel VBA Poziom Podstawowy 24 h dydaktycznych (18 h zegarowych) NAZWA SZCZEGÓŁY CZAS 1. Nagrywanie makr Procedura nagrywania makra Nadanie odpowiedniej nazwy Przypisanie

Bardziej szczegółowo

Technologie informacyjne - wykład 12 -

Technologie informacyjne - wykład 12 - Zakład Fizyki Budowli i Komputerowych Metod Projektowania Instytut Budownictwa Wydział Budownictwa Lądowego i Wodnego Politechnika Wrocławska Technologie informacyjne - wykład 12 - Prowadzący: Dmochowski

Bardziej szczegółowo

Programowanie w języku Python. Grażyna Koba

Programowanie w języku Python. Grażyna Koba Programowanie w języku Python Grażyna Koba Kilka definicji Program komputerowy to ciąg instrukcji języka programowania, realizujący dany algorytm. Język programowania to zbiór określonych instrukcji i

Bardziej szczegółowo

Wykład 1. Projektowanie efektywnych algorytmów przetwarzania danych w sieciowych systemach usług, rzeczy i multimediów.

Wykład 1. Projektowanie efektywnych algorytmów przetwarzania danych w sieciowych systemach usług, rzeczy i multimediów. Wykład 1. Projektowanie efektywnych algorytmów przetwarzania danych w sieciowych systemach usług, rzeczy i multimediów. Paweł Świątek Agenda 1. Sprawy organizacyjne 2. Zasady zaliczenia 3. Cele kursu 4.

Bardziej szczegółowo

Języki programowania zasady ich tworzenia

Języki programowania zasady ich tworzenia Strona 1 z 18 Języki programowania zasady ich tworzenia Definicja 5 Językami formalnymi nazywamy każdy system, w którym stosując dobrze określone reguły należące do ustalonego zbioru, możemy uzyskać wszystkie

Bardziej szczegółowo

Wykład 8: klasy cz. 4

Wykład 8: klasy cz. 4 Programowanie obiektowe Wykład 8: klasy cz. 4 Dynamiczne tworzenie obiektów klas Składniki statyczne klas Konstruktor i destruktory c.d. 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD

Bardziej szczegółowo

Języki i paradygmaty programowania. I. Wprowadzenie

Języki i paradygmaty programowania. I. Wprowadzenie Języki i paradygmaty programowania I. Wprowadzenie O źródłach wykład został przygotowany w ogromnej części w oparciu o serwis http://wazniak.mimuw.edu.pl/ (zgodnie z licencją serwisu) inne źródła: Wikipedia:

Bardziej szczegółowo

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

Programowanie. Projektowanie funkcje programu tworzenie algorytmu i struktur danych. Programowanie implementacja algorytmu kompilacja programu Programowanie V Dariusz Skibicki Wydział Inżynierii Mechanicznej Uniwersytet Technologiczno-Przyrodniczy im. Jana i Jędrzeja Śniadeckich w Bydgoszczy dariusz.skibicki(at)utp.edu.pl Programowanie Projektowanie

Bardziej szczegółowo

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

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre) Uwagi dotyczące notacji kodu! Wyrazy drukiem prostym -- słowami języka VBA. Wyrazy drukiem pochyłym -- inne fragmenty kodu. Wyrazy w [nawiasach kwadratowych] opcjonalne fragmenty kodu (mogą być, ale nie

Bardziej szczegółowo

Java EE produkcja oprogramowania

Java EE produkcja oprogramowania Java EE produkcja oprogramowania PPJ PODSTAWY PROGRAMOWANIA W JAVIE PODSTAWY JĘZYKA JAVA 1 Warszawa, 2016Z 2 Ogólna charakterystyka języka Java 3 Java 1/2 Język programowania Java został opracowany przez

Bardziej szczegółowo

Programowanie I. O czym będziemy mówili. Plan wykładu nieco dokładniej. Plan wykładu z lotu ptaka. Podstawy programowania w językach. Uwaga!

Programowanie I. O czym będziemy mówili. Plan wykładu nieco dokładniej. Plan wykładu z lotu ptaka. Podstawy programowania w językach. Uwaga! Programowanie I O czym będziemy mówili Podstawy programowania w językach proceduralnym ANSI C obiektowym Java Uwaga! podobieństwa w podstawowej strukturze składniowej (zmienne, operatory, instrukcje sterujące...)

Bardziej szczegółowo

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji. JAVA Java jest wszechstronnym językiem programowania, zorientowanym obiektowo, dostarczającym możliwość uruchamiania apletów oraz samodzielnych aplikacji. Java nie jest typowym kompilatorem. Źródłowy kod

Bardziej szczegółowo

Języki skryptowe w programie Plans

Języki skryptowe w programie Plans Języki skryptowe w programie Plans Warsztaty uŝytkowników programu PLANS Kościelisko 2010 Zalety skryptów Automatyzacja powtarzających się czynności Rozszerzenie moŝliwości programu Budowa własnych algorytmów

Bardziej szczegółowo

Technologie i usługi internetowe cz. 2

Technologie i usługi internetowe cz. 2 Technologie i usługi internetowe cz. 2 Katedra Analizy Nieliniowej, WMiI UŁ Łódź, 15 luty 2014 r. 1 Programowanie obiektowe Programowanie obiektowe (z ang. object-oriented programming), to paradygmat programowania,

Bardziej szczegółowo

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę.

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę. Języki C i C++ to bardzo uniwersalne platformy programistyczne o ogromnych możliwościach. Wykorzystywane są do tworzenia systemów operacyjnych i oprogramowania użytkowego. Dzięki niskiemu poziomowi abstrakcji

Bardziej szczegółowo

Podstawy programowania skrót z wykładów:

Podstawy programowania skrót z wykładów: Podstawy programowania skrót z wykładów: // komentarz jednowierszowy. /* */ komentarz wielowierszowy. # include dyrektywa preprocesora, załączająca biblioteki (pliki nagłówkowe). using namespace

Bardziej szczegółowo

Podstawy programowania. Wprowadzenie

Podstawy programowania. Wprowadzenie Podstawy programowania Wprowadzenie Proces tworzenia programu Sformułowanie problemu funkcje programu zakres i postać danych postać i dokładność wyników Wybór / opracowanie metody rozwiązania znaleźć matematyczne

Bardziej szczegółowo

Definicje. Algorytm to:

Definicje. Algorytm to: Algorytmy Definicje Algorytm to: skończony ciąg operacji na obiektach, ze ściśle ustalonym porządkiem wykonania, dający możliwość realizacji zadania określonej klasy pewien ciąg czynności, który prowadzi

Bardziej szczegółowo

Paradygmaty programowania

Paradygmaty programowania Paradygmaty programowania Jacek Michałowski, Piotr Latanowicz 15 kwietnia 2014 Jacek Michałowski, Piotr Latanowicz () Paradygmaty programowania 15 kwietnia 2014 1 / 12 Zadanie 1 Zadanie 1 Rachunek predykatów

Bardziej szczegółowo

Wprowadzenie. Organizacja pracy i środowisko programistyczne. Mirosław Ochodek

Wprowadzenie. Organizacja pracy i środowisko programistyczne. Mirosław Ochodek Wprowadzenie Organizacja pracy i środowisko programistyczne Mirosław Ochodek Miroslaw.Ochodek@pwsz.pila.pl Miroslaw.Ochodek@cs.put.poznan.pl Dane kontaktowe Mirosław Ochodek E-mail: Miroslaw.Ochodek@pwsz.pila.pl

Bardziej szczegółowo

Algorytm. a programowanie -

Algorytm. a programowanie - Algorytm a programowanie - Program komputerowy: Program komputerowy można rozumieć jako: kod źródłowy - program komputerowy zapisany w pewnym języku programowania, zestaw poszczególnych instrukcji, plik

Bardziej szczegółowo

Programowanie w Javie 1 Wykład i Ćwiczenia 3 Programowanie obiektowe w Javie cd. Płock, 16 października 2013 r.

Programowanie w Javie 1 Wykład i Ćwiczenia 3 Programowanie obiektowe w Javie cd. Płock, 16 października 2013 r. Programowanie w Javie 1 Wykład i Ćwiczenia 3 Programowanie obiektowe w Javie cd. Płock, 16 października 2013 r. Programowanie obiektowe Programowanie obiektowe (z ang. object-oriented programming), to

Bardziej szczegółowo

Materiały do laboratorium MS ACCESS BASIC

Materiały do laboratorium MS ACCESS BASIC Materiały do laboratorium MS ACCESS BASIC Opracowała: Katarzyna Harężlak Access Basic jest językiem programowania wykorzystywanym w celu powiązania obiektów aplikacji w jeden spójny system. PROCEDURY I

Bardziej szczegółowo

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

Zakres tematyczny dotyczący podstaw programowania Microsoft Office Excel za pomocą VBA Zakres tematyczny dotyczący podstaw programowania Microsoft Office Excel za pomocą VBA 1 Rozdział 1 Praca z makropoleceniami Opis: W tym rozdziale kursanci przechodzą przez wprowadzenie do programowania

Bardziej szczegółowo

Język ludzki kod maszynowy

Język ludzki kod maszynowy Język ludzki kod maszynowy poziom wysoki Język ludzki (mowa) Język programowania wysokiego poziomu Jeśli liczba punktów jest większa niż 50, test zostaje zaliczony; w przeciwnym razie testu nie zalicza

Bardziej szczegółowo

Podstawy programowania w języku C

Podstawy programowania w języku C Podstawy programowania w języku C WYKŁAD 1 Proces tworzenia i uruchamiania programów Algorytm, program Algorytm przepis postępowania prowadzący do rozwiązania określonego zadania. Program zapis algorytmu

Bardziej szczegółowo

Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop Spis treści

Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop Spis treści Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop. 2017 Spis treści O autorach 11 Podziękowania 12 Wprowadzenie 13 CZĘŚĆ I ZACZNIJ PROGRAMOWAĆ JUŻ DZIŚ Godzina 1. Praktyczne

Bardziej szczegółowo

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

Program szkolenia VBA (VISUAL BASIC FOR APPLICATIONS) W EXCELU PODSTAWOWY. Program szkolenia VBA (VISUAL BASIC FOR APPLICATIONS) W EXCELU PODSTAWOWY SZKOLENIE JEST DLA OSÓB, KTÓRE: nigdy wcześniej nie programowały lub nie miały styczności z programowaniem od dłuższego czasu,

Bardziej szczegółowo

Algorytmika i Programowanie VBA 1 - podstawy

Algorytmika i Programowanie VBA 1 - podstawy Algorytmika i Programowanie VBA 1 - podstawy Tomasz Sokół ZZI, IL, PW Czas START uruchamianie środowiska VBA w Excelu Alt-F11 lub Narzędzia / Makra / Edytor Visual Basic konfiguracja środowiska VBA przy

Bardziej szczegółowo

Lab 9 Podstawy Programowania

Lab 9 Podstawy Programowania Lab 9 Podstawy Programowania (Kaja.Gutowska@cs.put.poznan.pl) Wszystkie kody/fragmenty kodów dostępne w osobnym pliku.txt. Materiały pomocnicze: Wskaźnik to specjalny rodzaj zmiennej, w której zapisany

Bardziej szczegółowo

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

Program szkolenia VBA (VISUAL BASIC FOR APPLICATIONS) W EXCELU PRZEKROJOWY. Program szkolenia VBA (VISUAL BASIC FOR APPLICATIONS) W EXCELU PRZEKROJOWY SZKOLENIE JEST DLA OSÓB, KTÓRE: chcą podnieść swoje umiejętności pracy w języku VBA do poziomu średniozaawansowanego, nigdy wcześniej

Bardziej szczegółowo

Podstawy Programowania C++

Podstawy Programowania C++ Wykład 3 - podstawowe konstrukcje Instytut Automatyki i Robotyki Warszawa, 2014 Wstęp Plan wykładu Struktura programu, instrukcja przypisania, podstawowe typy danych, zapis i odczyt danych, wyrażenia:

Bardziej szczegółowo

ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia

ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia ZP/ITS/11/2012 Załącznik nr 1a do SIWZ ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia Przedmiotem zamówienia jest: Przygotowanie zajęć dydaktycznych w postaci kursów e-learningowych przeznaczonych

Bardziej szczegółowo

Języki i metodyka programowania

Języki i metodyka programowania Języki i metodyka programowania www.ee.pw.edu.pl/~slawinsm Dr inż. Maciej Sławiński M.Slawinski@ee.pw.edu.pl GE518l Konsultacje: śr. 13 00-13 45 SK201/GE518l pt. 10 15-11 00 GE518l/SK201 Algorytmika Literatura

Bardziej szczegółowo

Programowanie w języku C++ Podstawowe paradygmaty programowania

Programowanie w języku C++ Podstawowe paradygmaty programowania Programowanie w języku C++ Podstawowe paradygmaty programowania Mirosław Głowacki 1 1 Akademia Górniczo-Hutnicza im. Stanisława Staszica w Ktrakowie Wydział Inżynierii Metali i Informatyki Stosowanej Katedra

Bardziej szczegółowo

Programowanie w języku C++ Grażyna Koba

Programowanie w języku C++ Grażyna Koba Programowanie w języku C++ Grażyna Koba Kilka definicji: Program komputerowy to ciąg instrukcji języka programowania, realizujący dany algorytm. Język programowania to zbiór określonych instrukcji i zasad

Bardziej szczegółowo

Myśl w języku Python! : nauka programowania / Allen B. Downey. Gliwice, cop Spis treści

Myśl w języku Python! : nauka programowania / Allen B. Downey. Gliwice, cop Spis treści Myśl w języku Python! : nauka programowania / Allen B. Downey. Gliwice, cop. 2017 Spis treści Przedmowa 11 1. Jak w programie 21 Czym jest program? 21 Uruchamianie interpretera języka Python 22 Pierwszy

Bardziej szczegółowo

Podstawy programowania wykład

Podstawy programowania wykład Podstawy programowania wykład WYDZIAŁ ELEKTRONIKI i INFORMATYKI dr inż. Robert Arsoba Politechnika Koszalińska Wydział Elektroniki i Informatyki POLITECHNIKA KOSZALIŃSKA 2009/2010 1 Materiały do wykładu

Bardziej szczegółowo

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki Turbo Pascal jest językiem wysokiego poziomu, czyli nie jest rozumiany bezpośrednio dla komputera, ale jednocześnie jest wygodny dla programisty,

Bardziej szczegółowo

Wykład 3 Składnia języka C# (cz. 2)

Wykład 3 Składnia języka C# (cz. 2) Wizualne systemy programowania Wykład 3 Składnia języka C# (cz. 2) 1 dr Artur Bartoszewski -Wizualne systemy programowania, sem. III- WYKŁAD Wizualne systemy programowania Metody 2 Metody W C# nie jest

Bardziej szczegółowo

EXCEL POZIOM EXPERT. Konspekt szczegółowy

EXCEL POZIOM EXPERT. Konspekt szczegółowy Przeznaczenie szkolenia Dla osób, których większość pracy to Excel, potrzebujących zróżnicowanej wiedzy i makr do automatyzacji pracy. Osoby przygotowujące pliki dla innych Wersje aplikacji MS EXCEL 2000,

Bardziej szczegółowo

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6 JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM Wykład 6 1 SPECYFIKATOR static Specyfikator static: Specyfikator ten powoduje, że zmienna lokalna definiowana w obrębie danej funkcji nie jest niszczona

Bardziej szczegółowo

Makropolecenia w Excelu

Makropolecenia w Excelu Makropolecenia w Excelu Trochę teorii Makropolecenie w skrócie nazywane makro ma za zadanie automatyczne wykonanie powtarzających się po sobie określonych czynności. Na przykładzie arkusza kalkulacyjnego

Bardziej szczegółowo

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

TABLICA (ang. array) pojedyncza zmienna z wieloma komórkami, w których można zapamiętać wiele wartości tego samego typu danych. Złożone typy danych - TABLICE TABLICA (ang. array) pojedyncza zmienna z wieloma komórkami, w których można zapamiętać wiele wartości tego samego typu danych. * Może przechowywać dowolny typ danych, typ

Bardziej szczegółowo

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016 Wstęp - wykład 0 22 lutego 2016 Historia Simula 67 język zaprojektowany do zastosowan symulacyjnych; Smalltalk 80 pierwszy język w pełni obiektowy; Dodawanie obiektowości do języków imperatywnych: Pascal

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Laboratorium 1. Wstęp do programowania w języku Java. Narzędzia 1. Aby móc tworzyć programy w języku Java, potrzebny jest zestaw narzędzi Java Development Kit, który można ściągnąć

Bardziej szczegółowo

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki Informatyka I Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2019 1 Plan wykładu

Bardziej szczegółowo

Obszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static),

Obszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static), Tworzenie obiektów Dostęp do obiektów jest realizowany przez referencje. Obiekty w języku Java są tworzone poprzez użycie słowa kluczowego new. String lan = new String( Lancuch ); Obszary pamięci w których

Bardziej szczegółowo

INFORMATYKA W SZKOLE. Podyplomowe Studia Pedagogiczne. Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227

INFORMATYKA W SZKOLE. Podyplomowe Studia Pedagogiczne. Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 INFORMATYKA W SZKOLE Dr inż. Grażyna KRUPIŃSKA grazyna@fis.agh.edu.pl D-10 pokój 227 Podyplomowe Studia Pedagogiczne 2 Algorytmy Nazwa algorytm wywodzi się od nazwiska perskiego matematyka Muhamed ibn

Bardziej szczegółowo

Programowanie obiektowo zorientowane. Mirosław Głowacki Wykład w języku C++

Programowanie obiektowo zorientowane. Mirosław Głowacki Wykład w języku C++ Programowanie obiektowo zorientowane Mirosław Głowacki Wykład w języku C++ Literatura B. Meyer, Programowanie zorientowane obiektowo, Helion Gliwice, 2005 J. Grębosz, Symfonia C++ Standard, Oficyna Kallimach,

Bardziej szczegółowo

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

Podstawy programowania. 1. Operacje arytmetyczne Operacja arytmetyczna jest opisywana za pomocą znaku operacji i jednego lub dwóch wyrażeń. Podstawy programowania Programowanie wyrażeń 1. Operacje arytmetyczne Operacja arytmetyczna jest opisywana za pomocą znaku operacji i jednego lub dwóch wyrażeń. W językach programowania są wykorzystywane

Bardziej szczegółowo

Rok akademicki: 2012/2013 Kod: ZIE-1-306-s Punkty ECTS: 3. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

Rok akademicki: 2012/2013 Kod: ZIE-1-306-s Punkty ECTS: 3. Poziom studiów: Studia I stopnia Forma i tryb studiów: - Nazwa modułu: Programowanie obiektowe Rok akademicki: 2012/2013 Kod: ZIE-1-306-s Punkty ECTS: 3 Wydział: Zarządzania Kierunek: Informatyka i Ekonometria Specjalność: - Poziom studiów: Studia I stopnia

Bardziej szczegółowo

Programowanie. Pascal - język programowania wysokiego poziomu. Klasa 2 Lekcja 9 PASCAL

Programowanie. Pascal - język programowania wysokiego poziomu. Klasa 2 Lekcja 9 PASCAL Programowanie Pascal - język programowania wysokiego poziomu Klasa 2 Lekcja 9 PASCAL Język programowania Do przedstawiania algorytmów w postaci programów służą języki programowania. Tylko algorytm zapisany

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

Makra VBA w Excelu dla początkujących

Makra VBA w Excelu dla początkujących Makra VBA w Excelu dla początkujących Informacje o usłudze Numer usługi 2016/10/04/5015/19680 Cena netto 870,00 zł Cena brutto 1 070,10 zł Cena netto za godzinę 62,14 zł Cena brutto za godzinę 76,43 Usługa

Bardziej szczegółowo

Historia modeli programowania

Historia modeli programowania Języki Programowania na Platformie.NET http://kaims.eti.pg.edu.pl/ goluch/ goluch@eti.pg.edu.pl Maszyny z wbudowanym oprogramowaniem Maszyny z wbudowanym oprogramowaniem automatyczne rozwiązywanie problemu

Bardziej szczegółowo

Maxima i Visual Basic w Excelu

Maxima i Visual Basic w Excelu 12 marca 2013 Maxima - zapoznanie z programem Maxima to program - system algebry komputerowej. Podstawowa różnica w stosunku do klasycznych programów obliczeniowych jest możliwość wykonywania obliczeń

Bardziej szczegółowo

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu Programowanie strukturalne Opis ogólny programu w Turbo Pascalu STRUKTURA PROGRAMU W TURBO PASCALU Program nazwa; } nagłówek programu uses nazwy modułów; } blok deklaracji modułów const } blok deklaracji

Bardziej szczegółowo

Informatyka 1. Plan dzisiejszych zajęć. zajęcia nr 1. Elektrotechnika, semestr II rok akademicki 2008/2009

Informatyka 1. Plan dzisiejszych zajęć. zajęcia nr 1. Elektrotechnika, semestr II rok akademicki 2008/2009 Informatyka 1 zajęcia nr 1 Elektrotechnika, semestr II rok akademicki 2008/2009 mgr inż.. Paweł Myszkowski Plan dzisiejszych zajęć 1. Organizacja laboratorium przedmiotu 2. Algorytmy i sposoby ich opisu

Bardziej szczegółowo

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Programowanie obiektowe Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Java P. L. Lemay, Naughton R. Cadenhead Java Podręcznik 2 dla kaŝdego Języka Programowania Java Linki Krzysztof Boone oprogramowania

Bardziej szczegółowo

Technologie cyfrowe. Artur Kalinowski. Zakład Cząstek i Oddziaływań Fundamentalnych Pasteura 5, pokój 4.15

Technologie cyfrowe. Artur Kalinowski. Zakład Cząstek i Oddziaływań Fundamentalnych Pasteura 5, pokój 4.15 Technologie cyfrowe Artur Kalinowski Zakład Cząstek i Oddziaływań Fundamentalnych Pasteura 5, pokój 4.15 Artur.Kalinowski@fuw.edu.pl Semestr letni 2014/2015 Zadanie algorytmiczne: wyszukiwanie dane wejściowe:

Bardziej szczegółowo

LABORATORIUM 6: ARKUSZ MS EXCEL JAKO BAZA DANYCH

LABORATORIUM 6: ARKUSZ MS EXCEL JAKO BAZA DANYCH UNIWERSYTET ZIELONOGÓRSKI INSTYTUT INFORMATYKI I ELEKTROTECHNIKI ZAKŁAD INŻYNIERII KOMPUTEROWEJ Przygotował: dr inż. Janusz Jabłoński LABORATORIUM 6: ARKUSZ MS EXCEL JAKO BAZA DANYCH Jeżeli nie jest potrzebna

Bardziej szczegółowo

PHP: bloki kodu, tablice, obiekty i formularze

PHP: bloki kodu, tablice, obiekty i formularze 1 PHP: bloki kodu, tablice, obiekty i formularze SYSTEMY SIECIOWE Michał Simiński 2 Bloki kodu Blok if-else Switch Pętle Funkcje Blok if-else 3 W PHP blok if i blok if-else wyglądają tak samo i funkcjonują

Bardziej szczegółowo

Podstawy i języki programowania

Podstawy i języki programowania Podstawy i języki programowania Laboratorium 1 - wprowadzenie do przedmiotu mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 16 października 2017 1 / 25 mgr inż. Krzysztof Szwarc Podstawy i

Bardziej szczegółowo

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

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka 1. Kompilacja aplikacji konsolowych w środowisku programistycznym Microsoft Visual Basic. Odszukaj w menu startowym systemu

Bardziej szczegółowo

Visual Basic for Applications. Wstęp

Visual Basic for Applications. Wstęp Visual Basic for Applications Materiały źródłowe: http://www.vbamania.estrefa.pl 2008-01-14 Wstęp Visual Basic for Applications to język programowania, dołączony do wielu aplikacji. Wspierają go między

Bardziej szczegółowo

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

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka 1. Kompilacja aplikacji konsolowych w środowisku programistycznym Microsoft Visual Basic. Odszukaj w menu startowym systemu

Bardziej szczegółowo

Programowanie komputerowe Computer programming

Programowanie komputerowe Computer programming KARTA MODUŁU / KARTA PRZEDMIOTU Kod modułu Nazwa modułu Nazwa modułu w języku angielskim Obowiązuje od roku akademickiego 2015/2016 Programowanie komputerowe Computer programming A. USYTUOWANIE MODUŁU

Bardziej szczegółowo

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02 METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 02 NAJPROSTSZY PROGRAM /* (Prawie) najprostszy przykład programu w C */ /*==================*/ /* Między tymi znaczkami można pisać, co się

Bardziej szczegółowo

Metodyka i Technika Programowania 1

Metodyka i Technika Programowania 1 Metodyka i Technika Programowania 1 Pytania zaliczeniowe z wykładu mgr inż. Leszek Ciopiński Wykład I 1. Wprowadzenie 1.1. Programowanie imperatywne polega na: 1.2. Czy w programowaniu imperatywnym programista

Bardziej szczegółowo

ZASADY PROGRAMOWANIA KOMPUTERÓW

ZASADY PROGRAMOWANIA KOMPUTERÓW POLITECHNIKA WARSZAWSKA Instytut Automatyki i i Robotyki ZASADY PROGRAMOWANIA KOMPUTERÓW Język Język programowania: C/C++ Środowisko programistyczne: C++Builder 6 Wykład 9.. Wskaźniki i i zmienne dynamiczne.

Bardziej szczegółowo

Technologie cyfrowe semestr letni 2018/2019

Technologie cyfrowe semestr letni 2018/2019 Technologie cyfrowe semestr letni 2018/2019 Tomasz Kazimierczuk Wykład 7 (08.04.2019) Wikipedia Programowanie komputerów proces projektowania, tworzenia, testowania i utrzymywania kodu źródłowego programów

Bardziej szczegółowo

Języki i paradygmaty programowania doc. dr inż. Tadeusz Jeleniewski

Języki i paradygmaty programowania doc. dr inż. Tadeusz Jeleniewski Języki i paradygmaty programowania doc. dr inż. Tadeusz Jeleniewski e-mail: t.jeleniewski@neostrada.pl tadeusz.jeleniewski@pwr.wroc.pl http://www.tjeleniewski.wstt.edu.pl Treści kształcenia: Paradygmaty

Bardziej szczegółowo

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

Podstawy programowania w języku Visual Basic dla Aplikacji (VBA) Podstawy programowania w języku Visual Basic dla Aplikacji (VBA) Instrukcje Język Basic został stworzony w 1964 roku przez J.G. Kemeny ego i T.F. Kurtza z Uniwersytetu w Darthmouth (USA). Nazwa Basic jest

Bardziej szczegółowo

Niezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu.

Niezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu. Część XIX C++ w Każda poznana do tej pory zmienna może przechowywać jedną liczbę. Jeśli zaczniemy pisać bardziej rozbudowane programy, okaże się to niewystarczające. Warto więc poznać zmienne, które mogą

Bardziej szczegółowo

Zapisywanie algorytmów w języku programowania

Zapisywanie algorytmów w języku programowania Temat C5 Zapisywanie algorytmów w języku programowania Cele edukacyjne Zrozumienie, na czym polega programowanie. Poznanie sposobu zapisu algorytmu w postaci programu komputerowego. Zrozumienie, na czym

Bardziej szczegółowo

Języki i paradygmaty programowania Wykład 2. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/18

Języki i paradygmaty programowania Wykład 2. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/18 Dariusz Wardowski dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/18 Literatura Języki i paradygmaty programowania Wykład 2 1. C. S. Horstman, G. Cornell, core Java 2 Podstawy, Helion 2003

Bardziej szczegółowo

Podstawy Programowania 2

Podstawy Programowania 2 Podstawy Programowania 2 Laboratorium 7 Instrukcja 6 Object Pascal Opracował: mgr inż. Leszek Ciopiński Wstęp: Programowanie obiektowe a programowanie strukturalne. W programowaniu strukturalnym, któremu

Bardziej szczegółowo

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018 Informatyka I Klasy i obiekty. Podstawy programowania obiektowego dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018 Plan wykładu Pojęcie klasy Deklaracja klasy Pola i metody klasy

Bardziej szczegółowo

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

Program szkolenia PODSTAWY VBA (VISUAL BASIC FOR APPLICATIONS) I FORMULARZE. Program szkolenia PODSTAWY VBA (VISUAL BASIC FOR APPLICATIONS) I FORMULARZE SZKOLENIE JEST DLA OSÓB, KTÓRE: znają program Microsoft Excel na poziomie średniozaawansowanym, chcą poznać ogólne zasady tworzenia

Bardziej szczegółowo

WYKŁAD. Jednostka prowadząca: Wydział Techniczny. Kierunek studiów: Elektronika i telekomunikacja. Nazwa przedmiotu: Język programowania C++

WYKŁAD. Jednostka prowadząca: Wydział Techniczny. Kierunek studiów: Elektronika i telekomunikacja. Nazwa przedmiotu: Język programowania C++ Jednostka prowadząca: Wydział Techniczny Kierunek studiów: Elektronika i telekomunikacja Nazwa przedmiotu: Język programowania C++ Charakter przedmiotu: podstawowy, obowiązkowy Typ studiów: inŝynierskie

Bardziej szczegółowo