Elementy programowania Wyższa Szkoła Języków Obcych w Poznaniu mgr Monika Wachowska 1 Plan wykładu • • • • • • • • Algorytmy Instrukcje Zapis algorytmu – schematy blokowe Tablice Języki programowania Środowisko pracy Edytora VBA Makrodefinicje w Excelu VB – opis języka 2 Algorytmy 3 Algorytm - definicja Algorytm jest przepisem opisującym krok po kroku rozwiązanie zadania lub osiągnięcie jakiegoś celu. Zawiera opis danych, opis wyników oraz plan działania. Plan ten można przestawić w postaci ciągu czynności, które muszą być wykonane w określonej kolejności. Opis czynności występujących w algorytmie nazywamy instrukcjami. 4 Cechy algorytmu Algorytm musi być: • poprawny – dla każdego poprawnego zestawu danych, po wykonaniu skończonej liczby czynności, prowadzi do poprawnych wyników, • jednoznaczny – w każdym przypadku jego zastosowania dla tych samych danych uzyskamy ten sam wynik, • szczegółowy – aby wykonawca algorytmu rozumiał opisane czynności i potrafił je wykonać, • uniwersalny – aby służył do rozwiązywania pewnej grupy zadań, a nie tylko jednego konkretnego przypadku zadania. 5 Algorytm – etapy postępowania 1. 2. 3. 4. Sformułowanie zadania Określenie danych wejściowych Określenie celu i wyniku Poszukiwanie metody rozwiązania problemu (czyli algorytmu) 5. Przedstawienie algorytmu 6. Analiza poprawności 7. Testowanie rozwiązania dla różnych danych 6 Prezentacja algorytmu • Słowna • Lista kroków • Schemat blokowy • Drzewo algorytmu 7 Lista kroków algorytmu Przedstawienie algorytmu w punktach, np.: 1. Rozpocznij algorytm 2. Wprowadź wartości trzech liczb: a, b,c 3. Oblicz wartość wyrażenia Suma := a+b+c 4. Oblicz wartość wyrażenia Srednia := S/3 5. Wyprowadź wynik: Srednia 6. Zakończ algorytm schematy 8 Algorytm liniowy (sekwencyjny) • ciąg instrukcji wykonywanych jedna po drugiej w kolejności, jaka wynika z ich następstwa w zapisie algorytmu (sekwencyjnie), • opisy nie zależą od żadnych warunków, 9 Inny przykład algorytmu liniowego Algorytm gotowania jajka na miękko: Krok 1. Włóż jajko do gotującej się wody. Krok 2. Zanotuj czas początkowy t0. Krok 3. Oczytaj czas aktualny t. Krok 4. Oblicz t = t - t0. Krok 5. Jeśli t < 3 min., to przejdź do kroku 3. Krok 6. Wyjmij jajko z gotującej się wody. Zakończ algorytm. 10 Algorytm z warunkami • może zawierać kilka alternatywnych wariantów działań, • wybór działania zależy od spełnienia (bądź niespełnienia) warunku. Instrukcje, których wykonanie uzależnione jest od spełnienia pewnego warunku lub też którego spełnienie powoduje wykonanie jednej instrukcji, a niespełnienie innej – nazywamy instrukcjami warunkowymi. 11 Postaci instrukcji warunkowej Jeśli spełniony jest warunek W, wykonaj instrukcję A. Jeśli spełniony jest warunek W, to wykonaj instrukcję A; w przeciwnym razie wykonaj instrukcję B. 12 Przykład instrukcji warunkowej w algorytmie Algorytm w postaci listy kroków określania, która z dwóch liczb jest większa: • Zacznij algorytm. • Wprowadź wartości: a i b. • Sprawdź czy a jest większe od b. Jeśli tak, to przyjmij max:=a, w przeciwnym wypadku max:=b. 4. Wyprowadź wartość: max. 5. Zakończ algorytm. 13 Iteracja (powtarzalność) • wielokrotne powtarzanie tego samego ciągu operacji, • powtarzające się ciągi operacji zapisujemy tylko raz stosując tzw. pętlę (z pętlą mamy do czynienia, gdy w pewnym kroku algorytmu wracamy do jednego z wcześniejszych kroków (co powoduje, że kroki te mogą zostać wykonane wiele razy)). 14 Przykład iteracji w dodawaniu liczb (tutaj trzech liczb) 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Zacznij algorytm Suma równa zero. Wprowadź pierwszą liczbę. Do poprzedniego wyniku sumy dodaj wprowadzoną liczbę. Wprowadź drugą liczbę. Do poprzedniego wyniku sumy dodaj wprowadzoną liczbę. Wprowadź trzecią liczbę. Do poprzedniego wyniku sumy dodaj wprowadzoną liczbę. Wyprowadź wynik sumy. Zakończ algorytm. 15 Sposoby zakończenia iteracji • liczba powtórzeń określona z góry – sposób zakończenia iteracji można określić wprowadzając tzw. licznik, za pomocą którego są odliczane kroki iteracji (należy dodatkowo sprawdzać, czy licznik osiągnął już podaną wielkość), np. zsumuj 10 dowolnych liczb; • liczba powtórzeń zależna od warunku, np. sumuj liczby tak długo, aż nie zostanie podane zero. 16 Postać pętli Liczba powtórzeń określona z góry (n powtórzeń): Wykonuj instrukcję A dokładnie n razy Liczba powtórzeń zależy od warunku W: Powtarzaj wykonywanie instrukcji A aż do spełnienia warunku W. 17 Przykład algorytmu z pętlą (obliczenie sumy siedmiu dowolnych liczb) 1. 2. 3. 4. Zacznij algorytm. Wartości zmiennej Suma przypisz zero: Suma:=0. Wprowadź liczbę i zapamiętaj ją w zmiennej a. Do wyniku sumy dodaj wprowadzoną liczbę: Suma:=Suma+a. 5. Jeśli nie jest to siódma liczba, wróć do kroku 3. 6. Wyprowadź wynik: Suma. 7. Zakończ algorytm. 18 Schematy blokowe 19 Schemat blokowy • graficzny zapis algorytmu rozwiązania zadania, przedstawiający opis i kolejność wykonywania czynności realizujących danych algorytm, • poszczególne operacje przedstawione są za pomocą odpowiednio połączonych skrzynek (klocków, bloków); połączenia określają kolejność i sposób wykonywania operacji, 20 Podstawowe bloki Prezentacja graficzna Rodzaj bloku START Skrzynka graniczna STOP max:=a Skrzynka operacyjna Opis operacji Uwagi Początek algorytmu Ze skrzynki tej wychodzi tylko jedno połączenie. W jednym schemacie jest tylko jeden taki blok. Może nazywać się KONIEC. Do Zakończenie skrzynki wchodzi jedno algorytmu połączenie; w jednym schemacie może być więcej takich bloków. Blok, w którym wykonywane są różne operacje, m.in. obliczenia. Wykonywanie Ma jedno połączenie wchodzące i działań jedno wychodzące. W jednym bloku można wpisać więcej niż 21 jedną operację. Prezentacja graficzna Rodzaj bloku Opis operacji Podaj a,b Skrzynka wejścia Wprowadzanie danych Skrzynka wyjścia Pisz Suma tak czy a=0? nie Skrzynka warunkowa Wyprowadzanie (pisanie, drukowanie) wyników Sprawdzanie warunków Uwagi Ma jedno połączenie wchodzące i jedno wychodzące. Do bloku wchodzi jedno połączenie. Ze skrzynki wychodzą dwa połączenia: jedno oznaczone „tak” (gdy warunek jest spełniony), a drugie „nie” (gdy warunek nie 22 jest spełniony). Skrzynka warunkowa w skrzynce wpisujemy warunek logiczny, stosując znaki: = - równy <> - różny < - mniejszy > - większy nie czy a > 0? <= - mniejszy lub równy >= - większy lub równy tak np.: a <> 3 Dodatnie (a > 5) lub (a <= 20) (a < 5) OR (a <= 20) (a <= 3) and (a >= 7) Ujemne 23 Przykłady schematów blokowych Start Start Podaj a Podaj b Podaj a, b, c Podaj c Srednia:= (a + b + c) / 3 Suma:= a + b + c Srednia:= S / 3 Pisz Srednia Pisz Srednia Stop Stop algorytm 24 Algorytm sumujący N kolejnych liczb (czyli liczby od 1 do N) – algorytm z pętlą Start Podaj N S := 0 L := N Czynności (kroki) wykonywane w pętli czy L > 0 Tak S := S + L L := L - 1 Nie Pisz S Stop 25 Start Algorytm sumujący tylko liczby większe od 5 spośród dziesięciu wprowadzonych – przykład algorytmu z pętlą z określoną liczbą powtórzeń S := 0 i := 0 Podaj a i := i + 1 Nie czy a > 5 Tak S := S + a Nie czy i = 10 Tak Pisz S Stop 26