Algorytmy pomagają rozwiązywać problemy w uporządkowany sposób. Wykorzystujemy je w informatyce, matematyce i codziennym życiu.
Poznaj ich definicję, podział i sposoby przedstawiania oraz drogę od algorytmu do programu komputerowego.
Czym jest algorytm?
Algorytm to uporządkowany i uściślony sposób rozwiązania danego problemu, zawierający szczegółowy opis wykonywanych czynności w skończonej liczbie kroków.
Ważne są dokładność instrukcji i kolejność wykonywania działań. Przed opracowaniem algorytmu należy określić problem, potrzebne dane oraz oczekiwany wynik.
(algorytm)
(np. programu)
Schemat postępowania podczas rozwiązywania problemów za pomocą komputera.
Podział algorytmów
Algorytmy informatyczne
Są przeznaczone do realizacji przez komputer. Dane wejściowe powinny być precyzyjnie określone, a wszystkie operacje dokładnie opisane. W algorytmach deterministycznych te same dane wejściowe prowadzą do tych samych wyników. Przykładem jest obliczanie pola trójkąta.
Algorytmy nieinformatyczne
Opisują czynności wykonywane poza komputerem, na przykład przygotowanie potrawy. Wynik może zależeć od danych wejściowych i warunków wykonania. Polecenie „gotuj przez chwilę” jest mało precyzyjne: różny czas gotowania może dać różną konsystencję potrawy.
Etapy rozwiązywania problemów
- Sformułowanie problemu.
- Określenie danych wejściowych.
- Ustalenie celu, czyli oczekiwanego wyniku.
- Określenie metody rozwiązania — wybór algorytmu.
- Przedstawienie algorytmu w wybranej postaci.
- Analiza poprawności rozwiązania.
- Testowanie rozwiązania dla różnych danych i ocena efektywności przyjętej metody.
Specyfikacja problemu to szczegółowy opis określający dane wejściowe, oczekiwane wyniki oraz związek między danymi a wynikami, czyli warunki, jakie muszą spełniać wyniki.
- Dane wejściowe — informacje potrzebne do wykonania algorytmu.
- Dane wyjściowe — wyniki otrzymane po jego wykonaniu.
Sposoby przedstawiania algorytmów
- Opis słowny.
- Lista kroków.
- Schemat blokowy.
- Program w wybranym języku programowania.
Opis słowny
Opis słowny algorytmu przedstawia wykonywane operacje za pomocą zdań. Może zawierać wyjaśnienie sposobu rozwiązania problemu.
Przykład: pole trójkąta obliczamy, mnożąc długość podstawy przez wysokość opuszczoną na tę podstawę i dzieląc wynik przez dwa.
Lista kroków
Lista kroków algorytmu przedstawia kolejne czynności w uporządkowanych punktach. Ich kolejność musi być zgodna z działaniem algorytmu.
- Rozpocznij algorytm.
- Wprowadź dodatnie wartości podstawy a i wysokości h.
- Zmiennej p przypisz wartość wyrażenia a · h / 2.
- Wyprowadź wynik p.
- Zakończ algorytm.
Przypisanie oznacza nadanie zmiennej wartości. W zapisie p = a * h / 2 wartość wyrażenia po prawej stronie zostaje zapisana w zmiennej p.
Schemat blokowy
Schemat blokowy algorytmu przedstawia operacje za pomocą połączonych figur, czyli bloków. Połączenia określają kolejność i sposób wykonywania operacji.
| Element | Kształt | Znaczenie |
|---|---|---|
| START | Owal | Początek algorytmu. Wychodzi z niego jedno połączenie, żadne do niego nie wchodzi. |
| KONIEC | Owal | Zakończenie algorytmu. Wchodzi do niego jedno połączenie, żadne nie wychodzi. |
| Wprowadzanie danych | Równoległobok | Blok wejścia — pobranie danych. |
| Wyprowadzanie wyników | Równoległobok | Blok wyjścia — przekazanie lub wyświetlenie wyników. |
| Wykonywanie działań | Prostokąt | Blok operacyjny — obliczenia i inne operacje. Ma jedno połączenie wchodzące i jedno wychodzące. |
| Sprawdzanie warunku | Romb | Blok decyzyjny. Jedno połączenie wchodzi, dwa wychodzą: TAK — warunek spełniony; NIE — warunek niespełniony. |
| Łącznik | Małe koło z oznaczeniem | Łączy oddalone części schematu. Oznaczenia w łączonych częściach muszą być takie same. |
| Połączenie | Linia ze strzałką → | Łączy bloki i wskazuje kierunek wykonywania operacji. |
Schemat obliczania pola trójkąta
Zakładamy, że a i h są liczbami dodatnimi.
Na czym polega programowanie?
Aby przedstawić algorytm w postaci programu komputerowego, trzeba zapisać go jako ciąg instrukcji języka programowania. Powstaje wówczas program, czyli kod źródłowy.
Program komputerowy (kod źródłowy) — ciąg instrukcji języka programowania, realizujący algorytm.
Język programowania to specjalny język służący do pisania programów komputerowych. Jest zbiorem określonych instrukcji i zasad.
Podział języków programowania
- Języki wysokiego poziomu — np. Python, C++, Java, Visual Basic.
- Języki niskiego poziomu — np. języki asemblerowe, ściśle związane z architekturą procesora.
Translacja, kompilacja i interpretacja
Poniższe definicje oraz schemat przedstawiają ujęcie podręcznikowe.
Translacja to proces tłumaczenia programu napisanego w języku programowania wysokiego poziomu na język wewnętrzny komputera. Może przebiegać w formie kompilacji lub interpretacji.
Kompilacja — przetłumaczenie programu tworzonego w jednym z języków programowania w całości na język zrozumiały dla procesora, tak by mógł go wykonać komputer. Raz skompilowany program nie wymaga już powtórnej operacji tłumaczenia. Przykładowe języki kompilowane to C++, Pascal.
Interpretacja — tłumaczenie programu tworzonego w jednym z języków programowania instrukcja po instrukcji, tak by komputer mógł wykonać każdą z nich. Tłumaczenie następuje każdorazowo przy uruchomieniu programu. Przykładem języków interpretowanych są języki edukacyjne Logo i Scratch, język Python oraz języki wykorzystywane w tworzeniu stron WWW, np. PHP i JavaScript.
Etapy powstawania programu komputerowego
(kod źródłowy)
(interpretacja lub kompilacja)
(kod wynikowy)
Schemat zgodny z podręcznikiem.
Środowisko programistyczne
Do tworzenia programów służą środowiska programistyczne. Zwykle zawierają edytor kodu źródłowego, narzędzia do uruchamiania programu oraz funkcje ułatwiające wyszukiwanie błędów. Przykładem środowiska do pracy z językiem Python jest IDLE.









