Tablice Prowadzący: Łukasz Dunaj, strona kółka: atinea.pl/kolko Tablica to struktura danych, która jest po prostu zbiorem zmiennych. Zamiast tworzyć kilkaset zmiennych wystarczy stworzyć jedną tablicę, która będzie miała tyle komórek ile chcemy. Tablice można porównać do osi liczbowej. Aby odwołać się do jakiegoś elementu, wystarczy podać jedną współrzędną. Należy tu wyraźnie podkreślić, że numerowanie tablic w NL zaczyna się od 0! Podstawowe operacje wykonywane na tablicach: var t = []; var tab = [2, 3, 4]; tab[2]; tab[0] = 42; array::len(tab); array::push(ref tab, 5); array::pop(ref tab); stworzenie pustej tablicy stworzenie tablicy o elementach 2, 3, 4 zwraca trzeci element z tablicy tab wstawia 42 jako pierwszy element tablicy zwraca liczbę elementów tablicy wstawienie 5 na koniec tablicy usuwa ostatni element z tablicy Uruchom poniższy program i zobacz jak wykonuje kolejne instrukcje i wypisuje kolejne wyniki na konsolę. use console; use array; def test::main() { console::print('Podaj n: '); var n = console::readln(); var tab = []; rep var i (n) { console::print('Podaj liczbę: '); var k = console::readln(); array::push(ref tab, k); } rep var i (n) { console::print(tab[i]); console::println(); } } Zadania Zadanie 1 Zapytaj użytkownika o liczbę n, a następnie o n liczb. Potem wypisz te liczby w odwrotnej kolejności, np.: Ile liczb: 3 Podaj liczbę: 7 Podaj liczbę: 2 Podaj liczbę: 5 5 2 7 Zadanie 2 Zapytaj użytkownika o liczbę n, a następnie wypisz sumy częściowe, czyli zaczynając od zera wyniki dodawania kolejnych liczb, np.: Ile liczb: 4 Podaj liczbę: Podaj liczbę: Podaj liczbę: Podaj liczbę: 0+7=7 7+2=9 9+5=14 14+8=22 7 2 5 8 Zadanie 3 Zapytaj użytkownika o liczbę n, a następnie o n liczb. Potem wypisz sumę tych liczb, jako wyrażenie i jego wynik, np.: Ile liczb: 3 Podaj liczbę: 7 Podaj liczbę: 2 Podaj liczbę: 5 7+2+5=14 Zadanie 4 Zapytaj użytkownika o liczbę n, a następnie o n liczb. Potem wypisz ile razy wystąpiła liczba 1, np.: Ile liczb: 4 Podaj liczbę: Podaj liczbę: Podaj liczbę: Podaj liczbę: Jedynek: 2 7 1 5 1 Zadanie 5 Zapytaj użytkownika o liczbę n, a następnie o n liczb. Potem wypisz w kolejnych wierszach tyle gwiazdek ile wynosi kolejna liczba, np.: Ile liczb: 3 Podaj liczbę: 7 Podaj liczbę: 2 Podaj liczbę: 5 ******* ** ***** Zadanie 6 Zapytaj użytkownika o liczbę n, a następnie o n liczb. Potem wypisz największą z nich, np.: Ile liczb: 4 Podaj liczbę: 7 Podaj liczbę: 2 Podaj liczbę: 7 Podaj liczbę: 5 Największa: 7 Zadanie 7 Zapytaj użytkownika o liczbę n, a następnie o n liczb. Potem wypisz najmniejszą i ile razy ona występuje, np.: Ile liczb: 5 Podaj liczbę: 7 Podaj liczbę: 5 Podaj liczbę: 7 Podaj liczbę: 12 Podaj liczbę: 5 Najmniejsza: 5 Powtórzeń: 2 Zadanie 8 Zapytaj użytkownika o liczbę n, a następnie o n liczb. Potem wypisz drugą największą, chyba, że wszystkie liczby są takie same, wtedy program wypisze tę wartość. Przykład 1: Ile liczb: 5 Podaj liczbę: 7 Podaj liczbę: 5 Podaj liczbę: 7 Podaj liczbę: 12 Podaj liczbę: 3 Druga największa: 7 Przykład 2: Ile liczb: 3 Podaj liczbę: 42 Podaj liczbę: 42 Podaj liczbę: 42 Druga największa: 42 Zadanie 9 Zapytaj użytkownika o liczbę n, a następnie o n liczb. Potem wypisz te liczby, a przy największych postaw gwiazdki. Jeśli jest kilka liczb największych to postaw gwiazdkę przy każdej z nich, np.: Ile liczb: 4 Podaj liczbę: Podaj liczbę: Podaj liczbę: Podaj liczbę: 7* 2 7* 5 7 2 7 5 Zadanie 10 Zapytaj użytkownika o liczbę n, a następnie o n liczb. Potem wypisz te liczby, a przy pierwszej największej postaw gwiazdkę. Zaznacz tylko pierwszą największą liczbę, np.: Ile liczb: 4 Podaj liczbę: Podaj liczbę: Podaj liczbę: Podaj liczbę: 7* 2 7 5 7 2 7 5 Zadanie 11 Zapytaj użytkownika o liczbę n, a następnie o n liczb. Potem wypisz te liczby, a przy ostatniej największej postaw gwiazdkę. Zaznacz tylko ostatnią największą liczbę, np.: Ile liczb: 4 Podaj liczbę: Podaj liczbę: Podaj liczbę: Podaj liczbę: 7 2 7 2 7 5 7* 5 Zadanie 12 Zapytaj użytkownika o liczbę n, a następnie o n liczb. Potem wypisz te liczby, a jeśli dana liczba została już wcześniej wypisana, to postaw przy niej gwiazdkę. Np. Ile liczb: 6 Podaj liczbę: Podaj liczbę: Podaj liczbę: Podaj liczbę: Podaj liczbę: Podaj liczbę: 7 2 7* 5 2* 7* 7 2 7 5 2 7 Zadanie 13 Zapytaj użytkownika o liczbę n, a następnie o n liczb. Następnie sprawdź czy istnieją dwie liczby, które w sumie dają 100. W wyniku wypisz: "NIE" jeśli nie istnieją takie liczby, lub sumę liczb z tej tablicy, które dają 100. Jeśli istnieje kilka rozwiązań to wypisz takie, w którym pierwszy składnik sumy występuje najwcześniej w tablicy. Uwaga - nie możesz dwa razy użyć tej samej liczby. Np.: Ile liczb: 4 Podaj liczbę: Podaj liczbę: Podaj liczbę: Podaj liczbę: 51+49=100 51 50 50 49 Uwaga: rozwiązania 49+51 i 50+50 byłyby niepoprawne, gdyż 51 występuje w tablicy wcześniej niż 49 i 50. Ile liczb: 2 Podaj liczbę: 49 Podaj liczbę: 50 NIE Ile liczb: 2 Podaj liczbę: 50 Podaj liczbę: 50 50+50=100 Zadanie 14 Zapytaj użytkownika o liczbę n, a następnie o n liczb. Następnie wypisz te liczby, bez wypisywania powtarzających się. Np.: Ile liczb: 5 Podaj liczbę: Podaj liczbę: Podaj liczbę: Podaj liczbę: Podaj liczbę: 5 8 7 5 8 8 5 7 Zadanie 15 Mówimy, że tablica jest posortowana rosnąco, jeśli każdy kolejny element jest większy lub równy od poprzedniego. Np. [1, 2, 5] jest posortowana rosnąco, a [1, 5, 2] nie. Zapytaj użytkownika o liczbę n, a następnie o n liczb. Następnie sprawdź czy podane liczby są posortowane i wypisz TAK jeśli są lub NIE jeśli nie są. Np.: Ile liczb: 3 Podaj liczbę: 1 Podaj liczbę: 2 Podaj liczbę: 5 TAK Ile liczb: 3 Podaj liczbę: 1 Podaj liczbę: 5 Podaj liczbę: 2 NIE Pytanie dodatkowe - czy do rozwiązania tego zadania potrzebna jest tablica? Zadanie 16 Zapytaj użytkownika o liczbę n, a następnie o n liczb. Następnie zamień pierwszą najmniejszą liczbę z pierwszą największą liczbą i wypisz te liczby. Np.: Ile liczb: 6 Podaj liczbę: Podaj liczbę: Podaj liczbę: Podaj liczbę: Podaj liczbę: Podaj liczbę: 8 5 7 8 5 8 6 7 5 5 8 6 Zadanie 17 Zapytaj użytkownika o liczbę n, a następnie o n liczb. Następnie policz ile najwięcej razy występuje ta sama liczba. Np.: Ile liczb: 10 Podaj liczbę: 5 Podaj liczbę: 7 Podaj liczbę: 7 Podaj liczbę: 8 Podaj liczbę: 5 Podaj liczbę: 8 Podaj liczbę: 6 Podaj liczbę: 4 Podaj liczbę: 8 Podaj liczbę: 5 Najwięcej powtórzeń: 3 Zadanie 18 Zapytaj użytkownika o liczbę n, a następnie o n liczb. Potem wypisz sumy pierwszej i ostatniej, drugiej i przedostatniej, itd. aż do sumy ostatniej i pierwszej, np.: Ile liczb: 5 Podaj liczbę: Podaj liczbę: Podaj liczbę: Podaj liczbę: Podaj liczbę: 7+8=15 2+3=5 5+5=10 3+2=5 8+7=15 7 2 5 3 8