Komputer jest urządzeniem, które działa na podstawie precyzyjnie określonych przepisów, znanych jako instrukcje programu. Te instrukcje, stworzone przez ludzi, pozwalają komputerowi na rozwiązywanie różnorodnych problemów i wykonywanie różnych zadań. Więcej o działaniu komputerów i ich roli dowiesz się w materiałach:

Czy zdajesz sobie sprawę, że przepisy, które opisują rozwiązania problemów, towarzyszą nam również w życiu codziennym? Kiedy gotujesz, stosujesz przepisy kulinarne, które określają, jakich składników należy użyć i jakie kroki wykonać, aby przygotować smaczne danie. Podobnie, gdy budujesz mebel z zestawu, stosujesz instrukcje montażu, które krok po kroku wskazują, jak złożyć poszczególne elementy, aby uzyskać ostateczny produkt.

Przepisy, czy to w formie programów komputerowych, przepisów kulinarnych czy instrukcji montażu, to narzędzia, które pomagają nam rozwiązywać problemy i wykonywać zadania w sposób zorganizowany i efektywny. Dlatego zrozumienie, jak one działają i jak je tworzyć, może być kluczowym elementem w rozwijaniu naszych umiejętności w różnych dziedzinach życia.

Specyfikacja i algorytmy

Ścisły przepis rozwiązania problemu nazywamy algorytmemalgorytmalgorytmem, każdy algorytm powinien również mieć swoją specyfikację. Jest to precyzyjny opis problemu algorytmicznego, danych wejściowych (danych) oraz danych wyjściowych (wyników).

Mając określony cel i specyfikację, należy przejść do analizy postawionego przed nami problemu, pomyśleć nad najlepszymi znanymi nam sposobami jego rozwiązania i zastanowić się, czy będą one skuteczne. Po wyborze i opracowaniu rozwiązania, na przykład w postaci listy kroków, stworzony algorytm powinno się sprawdzić dla przykładowych danych zgodnych ze specyfikacją. Ostanim etapem jest przejście do jego realizacji, na przykład, w formie programu. W poniższych ćwiczeniach skupimy się na zdefiniowaniu problemu, zapisie jego specyfikacji i analizie. Następnie zapiszemy algorytm rozwiązania problemu w postaci listy kroków. Informacje o tym, jak tworzyć programy na podstawie napisanych wcześniej algorytmów znajdziesz w materiale Od algorytmu do programuD11xliCilOd algorytmu do programu.

Mając zdefiniowany problem, zapiszemy specyfikację. Zapoznaj się z przykładami przedstawionymi poniżej, a następnie wykonaj powiązane ćwiczenia.

Przykład 1

Polecenie:

Dane są trzy liczby naturalne dodatnie. Zapisz specyfikację problemu obliczania iloczynu tych liczb.

Specyfikacja:

Problem: Obliczanie iloczynu trzech liczb naturalnych dodatnich.

Dane:

  • a – liczba naturalna dodatnia

  • b – liczba naturalna dodatnia

  • c – liczba naturalna dodatnia

Wynik:

  • d – liczba naturalna, będąca iloczynem liczb naturalnych abc

Ćwiczenie 1

Na podstawie przykładowej specyfikacji algorytmu, zapisz specyfikację obliczania średniej arytmetycznej pięciu liczb rzeczywistych.

2
Ćwiczenie 2

Stwórz odpowiednią specyfikację dla problemu konstruowania trójkąta równobocznego o boku x. Końcowy trójkąt równoboczny oznacz jako ABC.

Warunkiem jest, aby długość boku konstruowanego trójkąta równobocznego była liczbą naturalną (całkowitą dodatnią).

Jeśli lubisz bawić się klockami Lego lub sklejać różne modele (np. samolotu lub samochodu), to wraz z klockami lub elementami modelu do sklejania znajdziesz książkę (specyfikację) z listą wszystkich klocków oraz instrukcję, opisującą krok po kroku, które klocki (elementy) i w jakiej kolejności należy składać (sklejać), aby otrzymać określony model.

Zapis algorytmu (przepisu) w postaci kolejnych kroków nazywamy listą kroków. Lista kroków jest listą numerowaną, w której każdy krok algorytmu ma swój numer. Algorytm zawsze jest realizowany w skończonej liczbie kroków.

Każdy algorytm powinien posiadać następujące cechy:

  • Poprawność – dla danych zgodnych ze specyfikacją zostanie zwrócony poprawny wynik.

  • Jednoznaczność – te same dane, dają ten sam wynik.

  • Uniwersalność – algorytm ma służyć do rozwiązania pewniej grupy zadań, a nie pojedynczego przypadku.

  • Efektywność – powinien prowadzić do rozwiązania w jak najmniejszej liczbie kroków.

  • Skończoność – algorytm powinien zakończyć działanie po skończonym czasie lub liczbie kroków.

Jak już zostało wspomniane, postawiony problem nie zawsze musi być matematyczny, a dotyczyć może prostych czynności z życia codziennego, tak, jak w poniższym przykładzie.

Przykład 2

Polecenie:

Zapisz w postaci listy kroków sposób wiązania sznurówek metodą z uszami króliczka, która polega na tworzeniu pętelek na sznurówkach i związywaniu ich ze sobą.

Specyfikacja:

Problem: wiązanie sznurówek metodą z uszami króliczka.

Dane: Sznurówka na bucie.

Wynik: Zasznurowane buty.

Lista kroków:

  1. Skrzyżuj sznurówki, tak aby powstała litera X.

  2. Jedną ze sznurówek owiń wokół drugiej, przekładając ją pod literką X.

  3. Pociągnij za sznurówki, aby zacieśnić wiązanie - w ten sposób powstaje pierwszy supełek.

  4. Na każdej części sznurówki utwórz pętelkę, tzw. uszy króliczka.

  5. Skrzyżuj dwie pętelki ze sobą, po czym jedną z nich owiń wokół drugiej tak, aby powstał kolejny supełek.

  6. Pociągnij za uszy króliczka, aby zaciągnąć supełek i zabezpieczyć wiązanie.

1
Ćwiczenie 3

Przeanalizuj problem, a następnie opisz proces konstruowania trójkąta równobocznego o boku długości p. Na podstawie powyżej przedstawionej przykładowej listy kroków, podaj przepis, który pozwoli osiągnąć zamierzony cel. Opis powinien być na tyle szczegółowy, aby osoba nieobeznana z tematem bez problemu mogła go zrozumieć i powtórzyć czynność.

R1TdIGXeuNAAV
Notes.
Źródło: GroMar, licencja: CC BY 3.0.
Przykład 3

Na matematyce uczysz się o działaniach arytmetycznych na liczbach naturalnych. Może znasz metodę mnożenia dowolnej liczby od 1 do 10 przez 9 z wykorzystaniem palców obu rąk?

R9lwcjbr68nKZ
Mnożenie w pamięci liczby od 1 do 10 przez 9 na palcach
Źródło: Janusz Wierzbicki, Maciej Borowiecki, licencja: CC BY 3.0.
3
Ćwiczenie 4

Zapisz algorytm mnożenia w pamięci dowolnej liczby od 1 do 10 (nazwijmy ją x) przez 9 wraz ze specyfikacją. Algorytm zapisz w postaci listy kroków, a następnie przetestuj go podstawiając pod x wybrane przez siebie liczby.

RexUMRkOPqbTh
(Uzupełnij).
Notes.
Źródło: GroMar, licencja: CC BY 3.0.
1
Ćwiczenie 5

Przeanalizuj problem, podaj specyfikację i zapisz w postaci listy kroków algorytm na rysowanie kwadratu o długości boku równej x.

3
Ćwiczenie 6

Przeanalizuj problem, podaj specyfikację i zapisz w postaci listy kroków co najmniej dwa różne algorytmy rysowania poniższej figury. Bok mniejszego kwadratu określ jako x, a otrzymaną figurę oznacz jako Fx.

R11NpmdTGibT9
Kwadrat się z mniejszych kwadratów.
Źródło: Janusz Wierzbicki, Maciej Borowiecki, licencja: CC BY 3.0.
algorytm