Kurs maturalny z języka angielskiego!
kurs-maturalny-jezyk-angielski

PROGRAMOWANIE I ALGORYTMY

Zajęcia maturalne z informatyki
Olimpiada Informatyczna Juniorów
    Prowadzący: Marcin Kasprowicz
  • właściciel serwisu algorytm.edu.pl
  • wrzesień 2024 — start zajęć
  • czytaj więcej

Lista kroków


Lista kroków jest w pełni honorowanym, na maturze z informatyki w części pisemnej, sposobem przedstawiania algorytmów. Jest to alternatywa dla osób, którym język programowania sprawia problemy. Niestety na części praktycznej nie ma możliwości korzystania z tej metody.

Lista kroków polega na wypisaniu kolejnych kroków algorytmu w postaci listy np. numerowanej. Kolejne zagnieżdżone bloki należące do instrukcji if czy for opisujemy wprowadzając następne poziomy numeracji np. pierwszy poziom będzie miał numery 1, 2, 3, ..., ale blok należący do kroku trzeciego będzie numerowany następująco: 3.1, 3.2, 3.3, ..., a blok należący do kroku 3.2 numerujemy 3.2.1, 3.2.2, 3.2.3, ... itd. Możesz zastosować konwencję używaną w języku Python polegającą na wydzielaniu kolejnych bloków wprowadzając odpowiedznie wcięcia np.:

Inicjuj zmienne a i b.
Wczytaj wartość zmiennej a
Wczytaj wartość zmiennej b
Jeśli a jest większe od b to
	wypisz tekst: "Pierwsza liczba jest większa od drugiej"
w przeciwnym wypadku
	Jeśli a równe b to
		wypisz tekst: "Podane liczby są równe"
	w przeciwnym wypadku
		wypisz tekst: "Druga liczba jest większa od pierwszej"

Na co musisz zwrócić uwagę?

Tworząc iteracje (pętle), nie możesz zapisać jej zbyt ogólnikowo np.

1. Wykonaj 10 przejść pętli.

Prawidłowy zapis to:

1. Ustaw zmienną i na 0.
2. Dopóki i < 10 wykonuj kroki 2.1 oraz 2.2.
2.1. [jakieś instrukcje].
2.2. Zwiększ zmienną i o jeden.

To samo dotyczy poruszania się po indeksach tablicy:

Zbyt ogólnikowy zapis:

1. Przejdź przez wszystkie elementy tablicy i je zsumuj.

Prawidłowy zapis to:

1. Ustaw zmienną i na 1.
2. Zapisz wartość komórki tablicy o indeksie 0 do zmiennej Suma.
3. Wykonuj kroki 3.1 oraz 3.2, dopóki wartość zmiennej i jest mniejsze od 10.
3.1. Zwiększ zmienną Suma o wartość komórki o indeksie i.
3.2. Zwiększ wartość zmiennej i o jeden.
4. ...

Przykład 1

Wyznacz większą liczbę z podanych na wejściu dwóch liczb całkowitych.

0. Inicjuj zmienne a i b
1. Wczytaj wartość do zmiennej a.
2. Wczytaj wartość do zmiennej b.
3. Jeśli a jest większe od b, wykonaj krok 3.1, w przeciwnym razie wykonaj krok 3.2.
3.1. Wypisz wartość zmiennej a.
3.2. Wypisz wartość zmiennej b.

Przykład 2

Wyznacz silnię z podanej liczby naturalnej n.

0. Zainicjuj zmienną i, n oraz silnia.
1. Wczytaj liczbę do zmiennej n.
2. Ustaw wartość zmiennej silnia na 1.
3. Ustaw wartość zmiennej i na 2.
4. Dopóki i jest nie większe niż n, wykonuj kroki 4.1 oraz 4.2.
4.1. Do zmiennej silnia przypisz wartość iloczynu zmiennych silnia oraz i (silnia*i).
4.2 Zwiększ wartość zmiennej i o jeden.
5. Wypisz wartość zmiennej silnia.

Przykład 3

Wykonaj sortowanie bąbelkowe zbioru n liczb całkowitych.

0. Zainicjuj zmienną n.
1. Wczytaj liczbę do zmiennej n.
2. Zainicjuj tablicę tab[1..n] (o indeksach od 1 do n).
3. Zainicjuj zmienną i i ustaw ją na 1 (numer pierwszej komórki tablicy)
4. Dopóki i jest mniejsze od n - 1 wykonuj kroki 4.1 oraz 4.2.
4.1. Zainicjuj zmienną j i ustaw ją na wartość i + 1.
4.2. Dopóki j jest mniejsze lub równe n, wykonuj krok 4.2.1 oraz 4.2.2.
4.2.1. Jeśli tab[j - 1] jest większe niż tab[j] wykonuj kroki 4.2.1.1 - 4.2.1.3.
4.2.1.1. Inicjuj zmienną pom i przypisz do niej wartość tab[j].
4.2.1.2. Do tab[j] przypisz wartość zmiennej tab[j - 1].
4.2.1.3. Do tab[j - 1] przypisz wartość zmiennej pom.
4.2.2. Inkrementuj wartość zmiennej j (równoważny zapis: zwiększ wartość zmiennej j o jeden).
5. Przypisz do zmiennej i wartość 1.
6. Dopóki i jest mniejsze lub równe n, wykonuj kroki 6.1 oraz 6.2
6.1. Wypisz wartość tab[i]
6.2. Inkrementuj wartość zmiennej i (zwiększ wartość zmiennej i o jeden).