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

Podobne dokumenty
Visual Basic for Application (VBA)

Visual Basic for Application (VBA)

Visual Basic for Application (VBA)

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Procedury i funkcje. Programowanie komputerowe

Wprowadzenie do programowania w VBA

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

Instrukcje cykliczne (pętle) WHILE...END WHILE

Pętle instrukcje powtórzeo

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

Obliczenia iteracyjne

Programowanie w VB Proste algorytmy sortowania

PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy.

Rekurencja (rekursja)

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Pętle. Programowanie komputerowe

Lab 10. Funkcje w argumentach funkcji metoda Newtona. Synonimy nazw typów danych. Struktury. Tablice struktur.

FUNKCJA REKURENCYJNA. function s(n:integer):integer; begin if (n>1) then s:=n*s(n-1); else s:=1; end;

Podprogramy. Procedury

LibreOffice Calc VBA

Materiały do laboratorium MS ACCESS BASIC

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

Technologia informacyjna programowanie Janusz Uriasz

Informatyka A. Algorytmy

INSTRUKCJA SKOKU GOTO

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

W języku C dostępne są trzy instrukcje, umożliwiające tworzenie pętli: for, while oraz do. for (w1;w2;w3) instrukcja

Funkcje i tablice. Elwira Wachowicz. 23 maja 2013

Metody numeryczne I Równania nieliniowe

Algorytmy i język C++

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

Ten odcinek Akademii PC Kuriera poświęcony zostanie tworzeniu i wykorzystaniu funkcji i procedur w języku Visual Basic.NET.

Tablice. Jones Stygar na tropie zmiennych

Informatyka 1. Wyrażenia i instrukcje, złożoność obliczeniowa

Wstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy. Wykład 5. Karol Tarnowski A-1 p.

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

Podstawy programowania. Wykład: 13. Rekurencja. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Rozwiązywanie równań nieliniowych

Programowanie - wykład 4

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

Algorytmy i struktury danych

Podstawy Programowania C++

1. Nagłówek funkcji: int funkcja(void); wskazuje na to, że ta funkcja. 2. Schemat blokowy przedstawia algorytm obliczania

Zadanie 1. Korale (8 pkt) Rozważamy następującą rekurencyjną procedurę Korale, której parametrem jest dodatnia liczba całkowita n.

Wstęp do programowania

Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk. Wydział Inżynierii Metali i Informatyki Przemysłowej

Visual Basic for Applications. Wstęp

Wstęp do metod numerycznych Rozwiazywanie równań algebraicznych. P. F. Góra

Uwaga: Funkcja zamień(a[j],a[j+s]) zamienia miejscami wartości A[j] oraz A[j+s].

1 Metody rozwiązywania równań nieliniowych. Postawienie problemu

1 Równania nieliniowe

Analiza algorytmów zadania podstawowe

Cw.12 JAVAScript w dokumentach HTML

Rozwiązywanie równań nieliniowych

Algorytmy i struktury danych. Wykład 4

1. Znajdowanie miejsca zerowego funkcji metodą bisekcji.

Wstęp do programowania

Kubatury Gaussa (całka podwójna po trójkącie)

Visual Basic dla AutoCAD

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

Metody numeryczne Wykład 7

METODY NUMERYCZNE. Wykład 4. Numeryczne rozwiązywanie równań nieliniowych z jedną niewiadomą. prof. dr hab.inż. Katarzyna Zakrzewska

Algorytmika i Programowanie VBA 1 - podstawy

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

EGZAMIN MATURALNY Z INFORMATYKI MAJ 2014 POZIOM ROZSZERZONY CZĘŚĆ I WYBRANE: Czas pracy: 90 minut. Liczba punktów do uzyskania: 20 WPISUJE ZDAJĄCY

Algorytm i złożoność obliczeniowa algorytmu

2.Sprawdzanie czy podana liczba naturalna jest pierwsza Liczba pierwsza to liczba podzielna tylko przez 1 i przez siebie.

Metody rozwiązywania równań nieliniowych

Programowanie w Turbo Pascal

Rzut oka na współczesną matematykę spotkanie 3: jak liczy kalkulator i o źródłach chaosu

4.1. Analiza AWN jest dokonywana na poziomie VBA

Funkcje. Deklaracja funkcji. Definicja funkcji. Wykorzystanie funkcji w programie.

Visual Basic: Tablice, sortowanie, r. ak. 2014/2015

2. Tablice. Tablice jednowymiarowe - wektory. Algorytmy i Struktury Danych

Instrukcje iteracyjne (pętle)

2.1 Funkcje - na przykładzie wyceny europejskiej

Podstawowe algorytmy i ich implementacje w C. Wykład 9

METODY ROZWIĄZYWANIA RÓWNAŃ NIELINIOWYCH

1. Liczby wymierne. x dla x 0 (wartością bezwzględną liczby nieujemnej jest ta sama liczba)

int f(); //f - funkcja zwracająca wartość typu int int (*f)(); //f - wskaźnik do funkcji zwracającej wartość typu int

Numeryczne rozwiązywanie równań i układów równań

1 Wprowadzenie do algorytmiki

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

Metody Numeryczne. Wojciech Szewczuk

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

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

Iteracyjne rozwiązywanie równań

Visual Basic dla Aplikacji

Informatyka I. Wykład 4. Tablice. Dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

Język C część 2. Podejmowanie decyzji w programie. if else. switch

01 grid tablica grid. Copyright 2017, mgr inż. Janusz Bonarowski 1

Automatyzacja plików graficznych

Wstęp do Programowania potok funkcyjny

1. Napisz program, który wyświetli Twoje dane jako napis Witaj, Imię Nazwisko. 2. Napisz program, który wyświetli wizytówkę postaci:

1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość

Podstawy programowania 2. Temat: Funkcje i procedury rekurencyjne. Przygotował: mgr inż. Tomasz Michno

Rozwiązywanie równań nieliniowych i ich układów. Wyznaczanie zer wielomianów.

RÓWNANIA NIELINIOWE Maciej Patan

METODY NUMERYCZNE. Wykład 4. Numeryczne rozwiązywanie równań nieliniowych z jedną niewiadomą. Rozwiązywanie równań nieliniowych z jedną niewiadomą

Funkcje w PL/SQL Funkcja to nazwany blok języka PL/SQL. Jest przechowywana w bazie i musi zwracać wynik. Z reguły, funkcji utworzonych w PL/SQL-u

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

Laboratorium 5 Przybliżone metody rozwiązywania równań nieliniowych

Transkrypt:

Instrukcje pętli przykłady. Odgadywanie hasła. 1) Program pyta o hasło i podaje adres, gdy hasło poprawne lub komunikat o błędnym haśle. Sub Hasla1() Dim wzor_hasla As String Dim haslo As String Dim adres As String wzor_hasla = "XYXY ustalenie wzoru hasła adres = "Wydz. M-E, Wyb. Wyspiańskiego 27" haslo = InputBox("Podaj haslo:") If haslo = wzor_hasla Then MsgBox "Adres:" & adres Else MsgBox "Złe hasło!" End If End Sub

2) Program pyta o hasło i pozwala na trzykrotne zgadywanie: a) bez użycia opcji Exit Sub Hasla3() Dim wzor_hasla As String Dim haslo As String Dim adres As String wzor_hasla = "XYXY" adres = "Wydz. M-E, Wyb. Wyspiańskiego 27" licznik_prob = 0 Do Until (haslo = wzor_hasla) Or (licznik_prob>= 3) haslo = InputBox("Podaj haslo:") licznik_prob = licznik_prob + 1 If haslo <> wzor_hasla Then MsgBox "Złe hasło: do trzech razy sztuka!" End If Loop If haslo = wzor_hasla Then MsgBox adres Else MsgBox "Sorry, blokada!" End If End Sub

b) z użyciem opcji Exit Do Sub Hasla4() Dim wzor_hasla As String Dim haslo As String Dim adres As String wzor_hasla = "XYXY" adres = "Wydz. M-E, Wyb. Wyspiańskiego 27" licznik_prob = 0 Do Until licznik_prob >= 3 haslo = InputBox("Podaj haslo:") licznik_prob = licznik_prob + 1 If haslo = wzor_hasla Then Exit Do MsgBox "Złe hasło: do trzech razy sztuka!" Loop If haslo = wzor_hasla Then MsgBox adres Else MsgBox "Sorry, blokada!" End If End Sub tutaj następuje opuszczenie pętli

c) z wykorzystanie pętli For oraz opcji Exit For Sub Hasla5() Dim wzor_hasla As String Dim haslo As String Dim adres As String wzor_hasla = "XYXY" adres = "Wydz. M-E, Wyb. Wyspiańskiego 27" For licznik_prob = 1 To 3 haslo = InputBox("Podaj haslo:") If haslo = wzor_hasla Then Exit For MsgBox "Złe hasło: do trzech razy sztuka!" Next If haslo = wzor_hasla Then MsgBox adres Else MsgBox "Sorry, blokada!" End If End Sub

Przykłady algorytmów iteracyjnych i rekurencyjnych 1) Funkcja silnia a) definicja iteracyjna: Opis funkcji w VBA do tej definicji: Function Silnia_It(n) As Integer Dim Il As Integer Il = 1 For i = 2 To n Il = Il * i Next i Silnia_It = Il End Function

b) definicja rekurencyjna: Opis funkcji do definicji rekurencyjnej: Function Silnia_Rek(n) As Integer If n = 0 Then Silnia_Rek = 1 Else Silnia_Rek = Silnia_Rek(n - 1) * n End If End Function

2) Największy Wspólny Dzielnik według algorytmu Euklidesa: Przy założeniu, że a>b NWD(a,b)=NWD(b,a mod b) Powtarzać do momentu, gdy b=0. Wówczas NWD(a,b)=a a) iteracyjnie: Function NWD_It(ByVal a, ByVal b) As Integer Dim c As Integer Do Until b = 0 c = a Mod b a = b b = c Loop NWD_It = a End Function Uwaga! Zwróć uwagę na parametry funkcji!

b) NWD rekurencyjnie: Function NWD_Rek(ByVal a, ByVal b) As Integer If b = 0 Then NWD_Rek = a Else NWD_Rek = NWP_Rek(b, a Mod b) End If End Function

c) Dodatkowo obliczenie Najmniejszej Wspólnej Wielokrotności: Function NWW(a, b) As Integer NWW = a * b / NWD_It(a, b) End Function

Przekazywanie parametrów do procedury Przekazywanie argumentów przez referencję Przekazana jest sama zmienna jako argument procedury. Jeżeli wywołana procedura zmienia wartość argumentu, ta zmiana pozostanie, kiedy sterowanie powróci do procedury wywołującej. Aby określić, że argument będzie przekazywany przez referencję w nagłówku Sub wywoływanej procedury należy zadeklarować zmienną ze słowem ByRef. Ponieważ jest to domyślny sposób przekazywania parametrów, można słowo ByRef ominąć.

Przekazywanie parametrów do procedury Przekazywanie argumentów przez wartość Przekazana zostaje kopia zmiennej jako argument procedury. Jeżeli wywołana procedura zmienia argument, ta zmiana nie pozostanie, kiedy sterowanie powróci do procedury wywołującej. Aby określić, że argument ma być przekazany przez wartość w nagłówku Sub wywoływanej procedury, należy użyć słowa kluczowego ByVal, aby zadeklarować zmienną.

Kryteria zakończenia algorytmów obliczeniowych. Dokładność obliczeń. Przykład 1: Obliczanie wartości funkcji z rozwinięcia w szereg (wzory Taylora): Zauważmy, że n-ty wyraz tego szeregu można policzyć następująco:

Korzystając z tego, formułujemy algorytm: a) zadając z góry ilość kroków, tzn. ilość sumowanych wyrazów: Sub exponenta_for() x = InputBox("x=") n = InputBox("Ile wyrazów?") s = 0 w = 1 For i = 1 To n s = s + w w = w * x / i Next i MsgBox "e_do_" & x & "=" & s End Sub

b) żądając określonej dokładności: Sub exponenta_eps() Dim eps As Single x = InputBox("x=") eps = InputBox("Z jaką dokładnością?") i = 1 s = 0: w = 1 Do Until w < eps s = s + w w = w * x / i i = i + 1 Loop MsgBox "e_do_" & x & "=" & s MsgBox "ilość kroków=" & i End Sub dokładność

Przykład 2: Podobne obliczenia (ze wzorów Taylora) dla funkcji trygonometrycznych: a) sin(x) Sub mo_sin() x = InputBox("x=") n = InputBox("Ile wyrazów?") s = 0 w = x For i = 1 To n s = s + w w = -w * x ^ 2 / ((2 * i) * (2 * i + 1)) Next i MsgBox "sin_" & x & "=" & s End Sub

Przykład 2: Podobne obliczenia (ze wzorów Taylora) dla funkcji trygonometrycznych: b) cos(x): Sub mo_cos() x = InputBox("x=") n = InputBox("Ile wyrazów?") s = 0 w = 1 For i = 1 To n s = s + w w = -w * x ^ 2 / ((2 * i) * (2 * i - 1)) Next i MsgBox "cos_x=" & s End Sub

Metoda Newtona Przykład programu dla wielomianu 3-go stopnia. Porównanie z algorytmem w Excelu. Zadaniem metody jest znalezienie pierwiastka równania zadanej funkcji ciągłej f: w przedziale [a,b]. A zatem znalezienie takiego x, że

Metoda Newtona 1) W przedziale a, b znajduje się dokładnie jeden pierwiastek. 2) Funkcja ma różne znaki na krańcach przedziału, tj. f(a) f(b)<0 3) Pierwsza i druga pochodna funkcji mają stały znak w tym przedziale. W pierwszym kroku metody wybierany jest punkt startowy x 1 (zazwyczaj jest to wartość a, b, 0 lub 1), z którego następnie wyprowadzana jest styczna w f(x 1 ) Kolejne przybliżenia są dane rekurencyjnym wzorem: x k+1 = x k - f(x k) f (x k )

Algorytm, znajdujący miejsca zerowe wielomianu 3-stopnia metodą Newtona oraz potrzebne do tego opisy funkcji i pochodnej. Function wiel3(a, b, c, d, x) wiel3 = a * x ^ 3 + b * x ^ 2 + c * x + d End Function Function Poch(a, b, c, x) Poch = 3 * a * x ^ 2 + 2 * b * x + c End Function

Metoda Newtona - algorytm Sub MetodaNewtona() Dim eps As Single 'Wczytywanie współczynników wielomianu a = InputBox("a=") b = InputBox("b=") c = InputBox("c=") d = InputBox("d=") 'Określanie dokładności obliczeń eps = 0.000001

Metoda Newtona algorytm cd. x0 = -10 'Pierwsze przybliżenie f = wiel3(a, b, c, d, x0) f1 = Poch(a, b, c, x0) x1 = x0 - f / f1 'Proces iteracji Do Until Abs(f) < eps x0 = x1 f = wiel3(a, b, c, d, x0) f1 = Poch(a, b, c, x0) x1 = x0 - f / f1 Loop MsgBox "miejsce zerowe=" & x1 End Sub

Zagnieżdżanie pętli na przykładzie algorytmu sortowania. Przykład: Ustawianie rosnąco wyrazów ciągu: Public Sub SortLiczb() Dim a(100) As Integer 'Deklaracja zmiennej tablicowej jednowymiarowej Cells.Clear n = InputBox("Ile elementów ma ciąg? ") 'Generowanie losowe elementów ciągu, 'zapamiętywanie ich w zmiennej tablicowej oraz wyświetlanie For i = 1 To n a(i) = Int(Rnd * 100) Cells(1, i) = a(i) Next i

'Sortowanie For i = 1 To n For j = i To n If a(j) < a(i) Then 'Tu znowu zamiana zmiennych miejscami z = a(i) a(i) = a(j) a(j) = z End If Next j Next i 'Wyświetlenie ciągu uporządkowanego For i = 1 To n Cells(3, i) = a(i) Next i End Sub

Tablice - Arrays Tablica jest zbiorem zmiennych tego samego typu danych. Jest ona stosowana do zgrupowania razem zmiennych zależnych. Na przykład: można stworzyć tablicę 100 liczb całkowitych w celu przechowywania numerów identyfikacyjnych ID 100 urzędników jakiegoś przedsiębiorstwa, zamiast tworzenia 100 niezależnych zmiennych można stworzyć tablicę 10 stringów, aby przechować 10 różnych komunikatów, które mogą być wyświetlone za pomocą okienka dialogowego.

Tablice - Arrays Deklarowanie tablic Aby zadeklarować tablicę należy użyć słowa kluczowego Dim, Public, Private lub Static. Tablica jest deklarowana podobnie jak zwykła zmienna; pod nazwą zmiennej w deklaracji zmiennej podaje się rozmiar tablicy. Tablice statyczne mają z góry określony rozmiar, który należy podać podczas deklaracji. Tablice dynamiczne mają nieokreślony rozmiar, który może być wielokrotnie zmieniany w czasie wykonywania programu przy pomocy rozkazu ReDim.