Argumentami procedury sym (a, b) są dwie nieujemne liczby całkowite a i b. Wywołanie tej procedury spowoduje wypisanie pewnego ciągu liczb całkowitych.
sym(a, b)
jeżeli a ≠ 0
sym(a – 1, b + 1)
wypisz a * b
sym(a – 1, b + 1)
Zadanie 2.1. (0–2)
Uzupełnij tabelę – podaj wynik działania procedury sym (a, b) dla wskazanych argumentów a i b.
a | b | sym(a, b) |
3 | 1 | 3 4 3 3 3 4 3 |
4 | 2 | 5 8 5 9 5 8 5 8 5 8 5 9 5 8 5 |
3 | 3 | |
4 | 1 |
Zadanie 2.2. (0–3)
Uzupełnij tabelę – podaj długość ciągu liczbowego otrzymanego w wyniku wywołania procedury sym (a, b) dla wskazanych argumentów a i b.a | b | sym(a, b) |
3 | 2 | 7 |
4 | 4 | 15 |
5 | 1 | |
6 | 6 | |
10 | 2020 |
Wypełnia egzaminator |
Nr zadania | 2.1 | 2.2 |
Maks. liczba pkt. | 2 | 3 | |
Uzyskana liczba pkt. |
Poprawna odpowiedź
Zasady oceniania
2 pkt – za poprawną odpowiedź.
1 pkt – za poprawną odpowiedź w jednym wierszu.
0 pkt – za podanie odpowiedzi niepoprawnej albo brak odpowiedzi.
a | b | sym(a, b) |
3 | 1 | 3 4 3 3 3 4 3 |
4 | 2 | 5 8 5 9 5 8 5 8 5 8 5 9 5 8 5 |
3 | 3 | 5 8 5 9 5 8 5 |
4 | 1 | 4 6 4 6 4 6 4 4 4 6 4 6 4 6 4 |
Zasady oceniania
3 pkt – za poprawną odpowiedź we wszystkich wierszach.
2 pkt – za poprawną odpowiedź w dwóch wierszach.
1 pkt – za poprawną odpowiedź w jednym wierszu.
0 pkt – za podanie odpowiedzi niepoprawnej albo brak odpowiedzi.
a | b | sym(a, b) |
3 | 2 | 7 |
4 | 4 | 15 |
5 | 1 | 31 |
6 | 6 | 63 |
10 | 2020 | 1023 |
Algorytm w C++
#include <iostream>
using namespace std;
void sym(int a, int b)
{
if(a!=0)
{
sym(a-1, b+1);
cout<< a*b;
sym(a-1, b+1);
}
}
int main()
{
sym(4,1);
return 0;
}
Algorytm w Java
public class Symmetry {
public static void sym(int a, int b) {
if (a != 0) {
sym(a - 1, b + 1);
System.out.print(a * b + " ");
sym(a - 1, b + 1);
}
}
public static void main(String[] args) {
sym(4, 1);
}
}
Algorytm w Python
def sym(a, b):
if a != 0:
sym(a - 1, b + 1)
print(a * b, end="")
sym(a - 1, b + 1)
sym(4, 1)