Programy

Wybierz program, aby zobaczyć wszystkie dostępne lekcje

Word Excel PowerPoint Scratch GIMP Canva Python Pivot Animator
Google Inne

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.

Problem
↓
Sposób rozwiązania
(algorytm)
↓
Wybór narzędzia
(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

  1. Sformułowanie problemu.
  2. Określenie danych wejściowych.
  3. Ustalenie celu, czyli oczekiwanego wyniku.
  4. Określenie metody rozwiązania — wybór algorytmu.
  5. Przedstawienie algorytmu w wybranej postaci.
  6. Analiza poprawności rozwiązania.
  7. 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.

  1. Rozpocznij algorytm.
  2. Wprowadź dodatnie wartości podstawy a i wysokości h.
  3. Zmiennej p przypisz wartość wyrażenia a · h / 2.
  4. Wyprowadź wynik p.
  5. 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.

START
↓
Wprowadź (a, h)
↓
p = a · h / 2
↓
Wyprowadź (p)
↓
KONIEC

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

Algorytm
↓
Program komputerowy
(kod źródłowy)
↓
Translacja
(interpretacja lub kompilacja)
↓
Program komputerowy
(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.