WDI 1 Zadania z tablic http://ww2.ii.uj.edu.pl/~cyranka/4students.php 5 maja 2014 Uwaga Każde zadanie, gdzie występuje tablica N liczb można wykonać na kilka sposobów (wymieniam poniżej od najłatwiejszego do najtrudniejszego) • N jest stałą, tablica jest wypełniana bezpośrednio w programie liczbami na „sztywno”, • N jest stałą, program wczytuje N liczb do tablicy od użytkownika, • użytkownik podaje rozmiar N , a następnie program wczytuje N liczb do tablicy od użytkownika, • użytkownik podaje rozmiar N , a następnie tablica jest wypełniona losowymi liczbami. Zadania 1. Zaimplementuj program w języku C, który zbada liczbę różnych elementów w pięcioelementowej tablicy 1, 1, 1, 3, 3. Następnie zmień liczby w tablicy i uruchom program jeszcze raz. 2. Niech X będzie N -elementową tablicą liczb całkowitych. Napisz fragment programu w C, który odwróci kolejność wszystkich elementów w tej tablicy. Uwaga: nie można korzystać z dodatkowej tablicy. 3. Dane są dwie tablice U , V typu double[N] reprezentujące dwa wektory. Napisz program w C obliczający iloczyn skalarny U · V . 4. Dana tablica A typu int[N], N > 1, i liczba naturalna k > 1. Napisz program realizujący przesunięcie cykliczne w prawo o k pól, czyli przesuwający zawartość pola A[i] na A[(i+k) mod N] dla każdego i < N . 5. Elementy tablicy A rozmiaru N są liczbami całkowitymi z zakresu 1 . . . 127. Napisz algorytm, który wypisze, ile razy każda z wartości pojawiła się w tej tablicy. 6. Dana jest tablica długości N − 1 (zakładamy, że N jest dużą liczbą), zawierająca wszystkie liczby naturalne z zakresu 1, . . . , N , z wyjątkiem jednej (nie znanej a priori). Podaj szybko działający algorytm wskazujący liczbę, której brakuje w tablicy. 7. (Zadanie o fladze polskiej) Tablica A typu int[N] (N > 0) wypełniona zerami i jedynkami reprezentuje ciąg N urn w których znajdują się żetony białe (0) i czerwone (1). Podaj algorytm działania automatu przestawiającego żetony w urnach tak, by najpierw były żetony czerwone, potem białe. 8. (Zadanie o fladze holenderskiej) Dana jest tablica A typu int[N]. Należy tak poprzestawiać w niej elementy, żeby najpierw były elementy ujemne, potem równe zero, a na końcu dodatnie. 1 9. Napisz funkcję w języku C, int sumuj_wczytane(int N), która wczyta z klawiatury N liczb całkowitych i zwróci ich sumę jako wynik. Najpierw N jest stałą, następnie użyj tej funkcji w programie w C, który najpierw zapyta użytkownika o N , a następnie wywoła sumuj_wczytane dla podanego parametru. 2