OD UMIEJĘTNOŚCI DO SAMODZIELNOŚCI

Jak sprawdzamy
rozumienie kodu?

Sześć zadań z tablic w JavaScript. Zobacz, jak uczeń przechodzi od prostego warunku do samodzielnego algorytmu.

Podgląd bez wykonywania kodu

To zanonimizowany podgląd rzeczywistego zestawu zadań AMN, z osobnymi przykładami demonstracyjnymi. W tej wersji czytasz polecenia i kryteria; strona nie uruchamia kodu, nie mierzy czasu i nie wystawia wyniku.

Egzamin demonstracyjny AMN. Uzyskany wynik nie jest oficjalną oceną ani podstawą do wydania certyfikatu.

Uczestnik demonstracyjny · bez konta, bez zapisywania odpowiedzi i bez połączenia z bazą uczniów.

Zadania kodowe
6
Czas egzaminu właściwego
50 min
Maksymalna punktacja
100 pkt
Próg zaliczenia
75 pkt
Przejdź do sześciu zadań ↓

JASNY KONTRAKT

Co ma zrobić poprawny program?

Dane i wynik

Tablice mają od 0 do 100 elementów: liczby całkowite od −100 do 100, bez pustych miejsc. Mogą zawierać zero, wartości ujemne i duplikaty. Dodatkowe argumenty liczbowe należą do tego samego zakresu, a low ≤ high.

Nie zmieniaj tablicy wejściowej. Jeśli zadanie wymaga nowej tablicy, utwórz osobny wynik, również wtedy, gdy jego zawartość pozostaje taka sama.

Weryfikacja umiejętności

Liczą się poprawna wartość, właściwy typ wyniku oraz zgodność z warunkami zadania. W egzaminie właściwym każde zadanie ma 10 przypadków sprawdzających i otrzymuje proporcjonalną część punktów. Pusta odpowiedź nie zdobywa punktów.

Prowadzący weryfikuje pracę i ustala ostateczną ocenę. Publiczne przykłady poniżej objaśniają polecenia; nie są zestawem testów egzaminacyjnych ani rozwiązaniami.

TABLICE · WARUNKI · PĘTLE · FUNKCJE

Sześć kroków do własnego rozwiązania

ZADANIE 1 / 6 · 10 PKT · SUGEROWANE 5 MIN

Ile wartości poza przedziałem?

countOutside(values, low, high)

Napisz funkcję, która policzy elementy mniejsze od low lub większe od high. Granice należą do przedziału. Każde wystąpienie licz osobno; zwróć liczbę elementów, nie ich sumę.

Oczekiwany wynik: Liczba (number). Pusta tablica daje 0. Granice low i high mogą być równe.

Nowy przykład demonstracyjny

countOutside([12, -6, 4, 18, 4], 4, 12) → 2

Sprawdzana umiejętność: Warunki logiczne, granice przedziału i zliczanie.

ZADANIE 2 / 6 · 15 PKT · SUGEROWANE 6 MIN

Zmień znaki na nieparzystych indeksach

negateOddPositions(values)

Utwórz nową tablicę tej samej długości. Na indeksach 1, 3, 5 i kolejnych nieparzystych indeksach zmień znak wartości. Elementy na pozostałych indeksach zachowaj. Decyduje indeks, nie parzystość liczby.

Oczekiwany wynik: Nowa tablica liczb (Array<number>), również dla pustego wejścia i jednego elementu. Zero pozostaje zerem.

Nowy przykład demonstracyjny

negateOddPositions([12, -6, 11, -8, 3]) → [12, 6, 11, 8, 3]

Sprawdzana umiejętność: Indeksowanie oraz tworzenie niezależnej tablicy wynikowej.

ZADANIE 3 / 6 · 15 PKT · SUGEROWANE 7 MIN

Napraw wyszukiwanie ostatniego trafienia

lastTargetIndex(values, target)

Popraw podany fragment tak, aby funkcja zwracała największy indeks elementu równego target. Gdy takiego elementu nie ma, zwróć -1. Możesz przepisać całą funkcję, zachowując nazwę i argumenty.

Oczekiwany wynik: Liczba (number). Indeksy zaczynają się od 0; dla pustej tablicy wynikiem jest -1.

Nowy przykład demonstracyjny

lastTargetIndex([6, 11, 6, 11, 6], 6) → 4
Zobacz celowo błędny fragment do poprawienia

Ten fragment jest treścią zadania, a nie jego rozwiązaniem.

function lastTargetIndex(values, target) {
  let result = 0;
  for (let index = 1; index < values.length; index++) {
    if (values[index] === target) return index;
  }
  return result;
}

Sprawdzana umiejętność: Debugowanie, warunek braku trafienia i ostatnie wystąpienie.

ZADANIE 4 / 6 · 20 PKT · SUGEROWANE 8 MIN

Usuń tylko pierwsze wystąpienie

removeFirst(values, target)

Zwróć nową tablicę z pominiętym pierwszym od lewej wystąpieniem target. Pozostałe elementy, także kolejne wystąpienia tej samej wartości, mają zachować kolejność. Gdy nie ma trafienia, zwróć nową kopię całej tablicy.

Oczekiwany wynik: Nowa tablica liczb (Array<number>). Puste wejście daje pustą tablicę. Usunięcie jedynego elementu też daje pustą tablicę.

Nowy przykład demonstracyjny

removeFirst([12, 5, 12, 7, 12], 12) → [5, 12, 7, 12]

Sprawdzana umiejętność: Stan w pętli, selekcja elementów i zachowanie kolejności.

ZADANIE 5 / 6 · 20 PKT · SUGEROWANE 9 MIN

Sumy kolejnych trójek

tripleSums(values)

Oblicz sumę każdej pełnej trójki kolejnych elementów. Początek trójki przesuwaj o jeden indeks, więc sąsiednie trójki nakładają się. Zwróć sumy w kolejności występowania trójek.

Oczekiwany wynik: Nowa tablica liczb (Array<number>). Dla mniej niż 3 elementów zwróć pustą tablicę. Dla n ≥ 3 wynik ma n − 2 elementy.

Nowy przykład demonstracyjny

tripleSums([6, -2, 9, 1, -5]) → [13, 8, 5]

Sprawdzana umiejętność: Praca na sąsiednich indeksach i poprawne granice pętli.

ZADANIE 6 / 6 · 20 PKT · SUGEROWANE 10 MIN

Najdłuższa seria równych wartości

longestEqualRun(values)

Znajdź najdłuższy nieprzerwany fragment równych elementów stojących obok siebie. Zwróć długość serii. Nie łącz wystąpień rozdzielonych inną wartością i nie zwracaj samej wartości ani jej indeksu.

Oczekiwany wynik: Liczba (number). Pusta tablica daje 0, jeden element daje 1. Przy remisie zwróć wspólną długość najdłuższych serii.

Nowy przykład demonstracyjny

longestEqualRun([6, 6, -2, -2, -2, -2, 6]) → 4

Sprawdzana umiejętność: Śledzenie bieżącej serii i zapamiętywanie najlepszego wyniku.

Sugerowane czasy zadań sumują się do 45 minut. Pozostałe 5 minut z limitu 50 minut można wykorzystać na sprawdzenie pracy.

WŁASNE TEMPO. KONKRETNY KIERUNEK.

Najpierw rozumienie.
Potem kolejny krok.

Zakres pracy dobieramy do poziomu ucznia. Porozmawiajmy o tym, co już potrafi i jaki rezultat chciałby osiągnąć.