SCHEMAT OCENIANIA poziom rozszerzony arkusz I Zadanie TEST Prawidłowa odpowiedź a 54 jeden klucz jest wykorzystywany do szyfrowania i deszyfrowania c 5 d (n 4)/ e licencja umożliwia twórcom programów zachowanie własnych praw i jednocześnie dzielenie się swoimi programami z innymi. 5 Strona z
Zadanie PIRAMIDA Czynność a Poprawne określenie specyfikacji, np. Dane: Licza naturalna n oraz ++ +n licz naturalnych Wynik: Licza naturalna ędąca długością najdłuższej drogi Poprawne opisanie algorytmu, np.: Oliczenia rozpoczynamy od przedostatniego poziomu i posuwamy się poziomami do góry. Na każdym poziomie, w każdym jego polu wpisujemy sumę liczy w tym polu i większej z licz spośród dwóch licz znajdujących się na poziomie o jeden niższym, jedna z nich znajduje się ezpośrednio pod tym polem a druga znajduje się na polu przesuniętym o jedną pozycję w prawo. poprawne określenie miejsca rozpoczęcia oliczeń i kierunku przemieszczania w dalszych oliczeniach, poprawne określenie sposou oliczania sumy w polu na każdym poziomie, jako sumy liczy w tym polu i większej z licz spośród dwóch licz znajdujących się na poziomie o jeden niższym, poprawne określenie indeksów porównywanych elementów w taeli. 8 Poprawne oliczenia, np.: c 7 4=7+7 5 7=5+ 6 =6+6 6 6=6+0 4 0=4+6 9=+6 4 6 5 6 Strona z
Podanie poprawnego algorytmu wyznaczającego najdłuższą drogę, zgodnie ze specyfikacją w punkcie a) i opisem w punkcie ). W tym za: prawidłową konstrukcję podwójnej pętli, prawidłowe wyznaczenie maksimum, zastosowanie talicy dwuwymiarowej. Podanie algorytmu poprawnego (wyznaczającego najdłuższą drogę), lecz niezgodnego ze specyfikacją i opisem. d Program piramida; const n=4; var i,j:integer; t:array[..n,..n] of integer; for j:= to n do for i:= to j do readln(t[i,j]); for j:=n- downto do for i:= to j do if t[i,j+]>t[i+,j+] then t[i,j]:=t[i,j]+t[i,j+] t[i,j]:=t[i,j]+t[i+,j+]; write(t[,]); readln end. (C++) #include <iostream> using namespace std; int main() int n; cin>>n; int pir[n][n]; for (int j=0; j<n; j++) for (int i=0; i<=j;i++) cin >>pir[i][j]; for (int j=n-; j>=0; j--) for (int i=0; i<=j;i++) if (pir[i][j+]>=pir[i+][j+]) pir[i][j]+=pir[i][j+]; pir[i][j]+=pir[i+][j+]; cout<<pir[0][0]; return 0; Strona z
Zadanie CIĄG LICZBOWY Czynność a Poprawnie podanie wartości pierwszych ośmiu elementów ciągu:,,, 4, 4, 9, 8, 6 Poprawne określenie specyfikacji : Dane: licza całkowita n>0 (numer elementu ciągu) Wyniki: licza całkowita (wartość n-tego elementu ciągu) Poprawne zapisanie podanej definicji rekurencyjnej ciągu liczowego w postaci funkcji rekurencyjnej oliczającej n-ty element ciągu w wyranym języku programowania. uwzględnienie warunku parzystości dla numeru elementu przy oliczaniu wartości elementów, których numer jest większy od, poprawne oliczanie wartości elementów. c (C/C++) int olicz (int n) if (n==) return ; if (n==) return ; if (n%==) return olicz(n )*; return *olicz(n )-olicz(n )+; 7 d function olicz (n: integer): integer; if n= then olicz:= if n= then olicz:= if n mod = then olicz:=olicz(n-)* olicz:=*olicz(n-)-olicz(n-)+ Poprawne zapisanie algorytmu nierekurencyjnego oliczającego wartość n-tego elementu ciągu liczowego zdefiniowanego podanym wzorem. Strona 4 z
przypisanie wartości początkowych elementom numer i poza pętlą, prawidłowa konstrukcja pętli, w której oliczane są elementy o numerach większych od oraz uwzględnienie warunku parzystości dla numeru elementu przy oliczaniu wartości elementów, których numer jest większy od, poprawne oliczanie wartości elementów, których numer jest większy od. (C/C++) int olicz (int n) int a=, a=, element; if (n==) return a; if (n==) return a; for (int i=;i<=n;i++) if (i%==) element=a*; element=*a-a+; a=a; a=element; return element; function olicz (n: integer): integer; var a, a, element, i: integer; a:=; a:=; if n= then element:=a if n= then element:=a for i:= to n do if i mod = then element:=a* element:=*a-a+; a:=a; a:=element olicz:=element Strona 5 z