JavaBlock – zanim zaczniemy programować… (Wstęp)
Co to jest algorytm ?
Algortym – opis kolejnych czynności, które należy wykonać aby rozwiązać problem.
Algorytm możemy prezentować za pomocą:
- listy kroków
- opisu słownego
- schematu blokowego
- języka programowania
Algorytm musi być:
- poprawny tzn. dla każdego poprawnego zestawu danych, po wykonaniu skończonej liczby czynności, prowadzi do poprawnych wyników,
- jednoznaczny tzn. w każdym wypadku jego zastosowania, dla tych samych danych uzyskamy ten sam wynik,
- szczegółowy tzn. aby wykonawca algorytmu rozumiał opisane czynności i umiał je wykonać.
- uniwersalny tzn. aby służył do rozwiązywania pewnej grupy zadań, a nie tylko jednego konkretnego zadania.
Specyfikacja algorytmu
opisanie problemu przez podanie danych wejściowych oraz wyjściowych algorytmu. W specyfikacji podajemy również warunki, jakie powinny spełniać dane i wyniki.
Schemat blokowy
Schemat blokowy to graficzne przedstawienie algorytmu tzn. zbioru operacji i powiązań między nimi, uwzględniający kolejność ich wykonywania.
JavaBlock
JavaBlock (pogromca Eli)- darmowy program do tworzenia i analizowania schematów blokowych. W początkowej nauce programowania godny polecenia. Do pobrania tutaj
Główne elementy schematu
Tworzenie schematu blokowego w JavaBlock
- usuwamy połączenie 2 bloków (prawy klik na bloku i „usuń połączenia”),
- bloki łączymy, klikając w początkowy ptrzytrzymując ctr i klikając w następy blok,
- w bloku przetwarzania możemy nadawać wartość początkową, np. ile=0, deklarować zmienną, np. var ile=0 (aby móc śledzić jej zmiany w oknie „zmienne”) oraz zmienieć wartości np. n=ile/2,
- blok „wejścia/wyjścia” rozróżniamy polem wyboru „wczytaj” lub „wypisz”, określamy nazwę zmiennej, jej typ, w polu „wiadomość” podajemy komunikat dla użytkownika,
- w bloku decyzyjnym do sprawdzania równości używamy „==”
- działanie schematu sprawdzamy, naciskając „uruchom” i tryb: krokowy lub automatyczny.
Podstawowe operatory w JavaBlock
+ | Dodawanie |
– | Odejmowanie |
* | Mnożenie |
/ | Dzielenie |
div | Dzielenie całkowite |
% | Reszta z dzielenia |
== | Porównanie |
!= | Różne |
&& | Spójnik logiczny (i) |
|| | zny (lub) |
Więcej
Przykład nr 1
W programie JavaBlock zbudować schemat blokowy algorytmu obliczającego sumę dwóch liczb całkowitych. Określ specyfikację tego algorytmu.
Rozwiązanie
Specyfikacja:
Dane wejściowe:
Na wejściu dostajemy dwie liczby całkowite a, b
Dane wyjściowe:
Jedna liczba całkowita suma będąca sumą dwóch pobranych liczb.
Zapis algorytmu w postaci schematu blokowego w programie JavaBlock
Najczęściej algorytmy mają bardziej rozbudowaną strukturę. Zazwyczaj występują w nich instrukcje, których wykonanie uzależnione jest od spełnienia pewnego warunku lub też spełnienie pewnego warunku powoduje wykonanie jednej instrukcji, a niespełnienie go – innej. Taką instrukcję nazywamy instrukcją warunkową.
Przykład nr 2 – (sytuacja warunkowa)
W programie JavaBlock zbudować schemat blokowy algorytmu obliczającego polę prostokąta o zadanych dwóch bokach. Zastanów się nad specyfikacją algorytmu, aby algorytm był jak najbardziej uniwersalny.
Rozwiązanie
Specyfikacja:
Dane wejściowe:
Dwie liczby rzeczywiste a i b będące bokami prostokąta.
Dane wyjściowe:
Liczba rzeczywista pole określająca pole prostokąta o zadanych dwóch bokach lub informacja „nie istnieje taki prostokąt”.
Zapis algorytmu w postaci schematu blokowego w programie JavaBlock
Algorytm iteracyjny – rodzaj algorytmu i programu, w których wielokrotnie wykonuje się pewne instrukcje, dopóki nie zostanie spełniony określony warunek,
iteratio – powtarzanie, działanie w pętli
Przykład nr 3 (algorytm iteracyjny)
W programie JavaBlock zbudować schemat blokowy algorytmu obliczającego sumę liczb parzystych w przedziale <1; 10>. Określ specyfikację tego algorytmu.
Rozwiązanie
Specyfikacja:Dane wejściowe:
Algorytm nie pobiera od użytkownika danych wejściowych.
Dane wyjściowe:
Liczba całkowita „suma” będąca sumą liczba parzystych w przedziale domkniętym <1; 10>
Zapis algorytmu w postaci schematu blokowego w programie JavaBlock
Przykład nr 4 (iteracja z wartownikiem)
Przykładowy algorytm korzysta z elementu zwanego wartownikiem. Wartość tego elementu jest znana użytkownikowi. Jej wprowadzenie kończy działanie algorytmu.
Za pomocą programu JavaBlock zbudować algorytm obliczający średnią arytmetyczną wprowadzonych liczb. Wprowadzenie liczby niedodatniej kończy wprowadzanie danych.Specyfikacja:
Dane wejściowe:
x, … – Liczby całkowite pobrane od użytkownika (wartownikiem jest dowolna liczba niedodatnia)
Wynik:
Liczba rzeczywista „srednia” będąca srednią wprowadzonych liczb.
Rozwiązanie
Schemat blokowy:
Przykład nr 5 (tablice)
Zbudować schemat blokowy algorytmu wyszukiwania podanego przez użytkownika elementu w tablicy liczb. Specyfikacja
Dane wejściowe:
a[i] – nieuporządkowana 5-elementowa tablica (tab).
x – poszukiwany element w tablicy.
Dane wyjściowe:
Położenie (indeks – i) elementu x w tablicy lub informacja o braku elementu.