Matura z informatyki - rozwiązania zadań

Matura 2016

Matura 2016 - Zadanie 1

Do pobrania:

Arkusz - cz.1

Klucz odpowiedzi

 

matura z informatyki 2016 - rozwiązania

Zadanie 1.1. (0–1)

Zbadaj, które z następujących par liczb (a, b) są liczbami skojarzonymi, i wypełnij poniższą tabelę:
 
a b dzielniki a
(mniejsze od a)
dzielniki b
(mniejsze od b)
suma
dzielników
a
suma
dzielników
b
skojarzone
TAK/NIE
 78   64  1,2,3,6,13,26,39 1,2,4,8,16,32 90 63 NIE
 20   21  1,2,4,5,10 1,3,7  23 12 NIE
 75   48   1,3,5,15,25 1,2,3,4,6,8,12,16,24 49 76 TAK
 
 
Obliczenia:

Przykład 1.
a = 20;
Dzielniki a to: 1,2,4,5,10.
Suma dzielników: 1+2+4+5+10 = 22
b = 21;
Dzielniki b to: 1,3,7.
Suma dzielników: 1+3+7 = 11

Sprawdzenie:
a + 1 = suma dzielników b ?
21 ≠ 11
i
b + 1 = suma dzielników a ?
22 = 22

Przykład 2.
a = 75;
Dzielniki a to: 1,3,5,15,25.
Suma dzielników: 1+3+5+15+25 = 49
b = 48;
Dzielniki b to: 1,2,3,4,6,8,12,16,24.
Suma dzielników: 1+2+3+4+6+8+12+16+24 = 76

Sprawdzenie:
a + 1 = suma dzielników b ?
76 = 76
i
b + 1 = suma dzielników a ?
49 = 49

Zadanie 1.2. (0–4)

Dana jest liczba całkowita a większa od 1. Ułóż i zapisz w wybranej przez siebie notacji algorytm, który znajdzie i wypisze liczbę b skojarzoną z a lub komunikat „NIE”, jeśli taka liczba nie istnieje.
W zapisie algorytmu możesz korzystać tylko z następujących operacji arytmetycznych: dodawania, odejmowania, mnożenia, dzielenia całkowitego i obliczania reszty z dzielenia.

Uwaga:
Przy ocenie algorytmu będzie brana pod uwagę liczba operacji arytmetycznych wykonywanych przez Twój algorytm.

Specyfikacja:
Dane: Liczba całkowita a > 1.
Wynik: Liczba całkowita b skojarzona z a lub komunikat „NIE”, jeśli taka liczba nie istnieje.

Algorytm:

#include <iostream>
using namespace std;

int main()
{
    cout << "Matura 2016 - Zadanie 1.2" << endl;
    int a, b;
    cout << "Podaj a = ";
    cin >> a;

    int sumaA = 0;

    for (int i = 1; i < a; i++) {
        if (a % i == 0) {
            sumaA += i;
        }
    }

    b = sumaA - 1;
    int sumaB = 0;

    for (int i = 1; i < b; i++) {
        if (b % i == 0) {
            sumaB += i;
        }
    }

    if (sumaB == a + 1) {
        cout << "Liczba skojarzona z liczba " << a << " to liczba " << b << endl;
    }
    else
        cout << "NIE" << endl;

    return 0;
}

 

Miejsce na obliczenia.

 klucz = A[1]
w = 1
n = 6
Tablica A = [4,6,3,5,2,1]

Działanie funkcji przestaw (A)

-------------------------------------------
| w | warunek | Tablica | Zamiana |
-------------------------------------------
| 1 | 1 | {4,6,3,5,2,1} | brak |
-------------------------------------------
| 1 | 2 | {3,6,4,5,2,1} | 4 z 3 |
-------------------------------------------
| 2 | 3 | {3,6,4,5,2,1} | brak |
-------------------------------------------
| 2 | 4 | {3,2,4,5,6,1} | 6 z 2 |
-------------------------------------------
| 3 | 5 | {3,2,1,5,6,4} | 4 z 1 |
-------------------------------------------

 

Zadanie 2.2. (0–1)

Podaj przykład siedmioelementowej tablicy A, dla której funkcja przestaw(A) dokładnie 5 razy wykona zamień.

Miejsce na obliczenia.

Tablica musi zawierać pięć takich elementów, które są dokładnie mniejsze od klucza, tj. od pierwszego elementu tablicy, zaś pozostałe muszą być większe od klucza. 
Przykładem takiej tablicy jest: 10,1,2,3,4,5,12.

Odp. A = 10,1,2,3,4,5,12;

 

Zadanie 2.3. (0–3)

Tablica A[1..100] zawiera wszystkie liczby całkowite z przedziału <1, 100> w następującej kolejności:

A = [10, 20, 30, ..., 100, 9, 19, 29, ..., 99, 8, 18, 28, ..., 98, ...., 1, 11, 21, ..., 91].

(najpierw rosnąco wszystkie liczby kończące się na 0, potem rosnąco liczby kończące się na 9, potem na 8 itd.)

Podaj wartość zmiennej w oraz wartości trzech pierwszych elementów tablicy A (A[1], A[2], A[3]), po wykonaniu funkcji przestaw(A).

Miejsce na obliczenia.

Zostaną przeniesione wszystkie mniejsze liczby od klucza, czyli od liczby 10. Będą to liczby 9,8,7,6,5,4,3,2,1, w takiej kolejności jaką podałem. Idąc tą drogą element A[1] = 9, A[2] = 8, A[3] = 7, itd. Wartość zmiennej w jest równa ilości działania funkcji zamian, czyli 10.

Odp.:

w = 10
A[1] = 9
A[2] = 8
A[2] = 7

© 2023 MaturaInformatyka.pl || Kontakt: admin(malpa)maturainformatyka.pl

Search