Tablice - Atinea

advertisement
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
Download