WDI 1 Zadania z tablic

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