Elementy programowania Wyższa Szkoła Języków Obcych w Poznaniu mgr Monika Wachowska
Plan wykładu Algorytmy Instrukcje Zapis algorytmu – schematy blokowe Tablice Języki programowania Środowisko pracy Edytora VBA Makrodefinicje w Excelu VB – opis języka
Algorytmy
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.
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.
Algorytm – etapy postępowania Sformułowanie zadania Określenie danych wejściowych Określenie celu i wyniku Poszukiwanie metody rozwiązania problemu (czyli algorytmu) Przedstawienie algorytmu Analiza poprawności Testowanie rozwiązania dla różnych danych
Prezentacja algorytmu Słowna Lista kroków Schemat blokowy Drzewo algorytmu
Lista kroków algorytmu Przedstawienie algorytmu w punktach, np.: Rozpocznij algorytm Wprowadź wartości trzech liczb: a, b,c Oblicz wartość wyrażenia Suma := a+b+c Oblicz wartość wyrażenia Srednia := S/3 Wyprowadź wynik: Srednia Zakończ algorytm schematy
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,
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.
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.
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.
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. Wyprowadź wartość: max. Zakończ algorytm.
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)).
Przykład iteracji w dodawaniu liczb (tutaj trzech liczb) Zacznij algorytm Suma równa zero. Wprowadź pierwszą liczbę. Do poprzedniego wyniku sumy dodaj wprowadzoną liczbę. Wprowadź drugą liczbę. Wprowadź trzecią liczbę. Wyprowadź wynik sumy. Zakończ algorytm.
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.
Wykonuj instrukcję A dokładnie n razy 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.
Przykład algorytmu z pętlą (obliczenie sumy siedmiu dowolnych liczb) 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. Jeśli nie jest to siódma liczba, wróć do kroku 3. Wyprowadź wynik: Suma. Zakończ algorytm.
Schematy blokowe
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,
Prezentacja graficzna Podstawowe bloki Blok, w którym wykonywane są różne operacje, m.in. obliczenia. Ma jedno połączenie wchodzące i jedno wychodzące. W jednym bloku można wpisać więcej niż jedną operację. Wykonywanie działań Skrzynka operacyjna Może nazywać się KONIEC. Do skrzynki wchodzi jedno połączenie; w jednym schemacie może być więcej takich bloków. Zakończenie algorytmu Ze skrzynki tej wychodzi tylko jedno połączenie. W jednym schemacie jest tylko jeden taki blok. Początek algorytmu Skrzynka graniczna Uwagi Opis operacji Rodzaj bloku Prezentacja graficzna START STOP max:=a
Prezentacja graficzna Skrzynka wyjścia 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 jest spełniony). Sprawdzanie warunków Skrzynka warunkowa Wyprowadzanie (pisanie, drukowanie) wyników Ma jedno połączenie wchodzące i jedno wychodzące. Wprowadzanie danych Skrzynka wejścia Uwagi Opis operacji Rodzaj bloku Prezentacja graficzna Podaj a,b Pisz Suma czy a=0? tak nie
Skrzynka warunkowa w skrzynce wpisujemy warunek logiczny, stosując znaki: = - równy < > - różny < - mniejszy > - większy <= - mniejszy lub równy >= - większy lub równy np.: a <> 3 (a > 5) lub (a <= 20) (a < 5) OR (a <= 20) (a <= 3) and (a >= 7) czy a > 0? nie Dodatnie Ujemne tak
Przykłady schematów blokowych Start Podaj a Podaj b Podaj c Suma:= a + b + c Srednia:= S / 3 Pisz Srednia Stop Start Podaj a, b, c Srednia:= (a + b + c) / 3 Pisz Srednia Stop algorytm
Algorytm sumujący N kolejnych liczb (czyli liczby od 1 do N) – algorytm z pętlą Start Podaj N S := 0 L := N Pisz S Stop czy L > 0 Tak S := S + L L := L - 1 Nie Czynności (kroki) wykonywane w pętli
Stop Start Podaj a i := i + 1 S := S + a Pisz S czy i = 10 Nie Tak S := 0 i := 0 czy a > 5 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ń