1. Która z podanych liczb jest największą, a która najmniejszą? Notacja rzymska: MCMXCVIII Liczba binarna: 1100101001 Liczba ósemkowa: 51323 Liczba szesnastkowa: 8AF 2. Co dokładnie oznaczają podane kody liczbowe? 64.233.183.99 212.77.100.101 213.180.130.200 212.58.240.120 3. Liczby naturalne uporządkowane są w nieskończonej tabeli jak pokazano na rysunku: Zapisać algorytm (w formie schematu blokowego, pseudokodu lub w dowolnym języku programowania), który znajduje liczbę K dla podanych współrzędnych (i, j) algorytm, który dla dowolnej liczby K zwróci jej współrzędne (i, j) w opisanej tabeli. 4. Przy zakupach hurtowych opakowanie z 10 płyt DVD kosztuje 18 zł, z 25 płyt – 34 zł, a cena detaliczna jednej płyty wynosi 2,5 zł. Opracować algorytm podejmowania decyzji o ilości kupowanych płyt N, jeśli na zakup możemy wykorzystać dowolną kwotę X zł. Uwaga: różnica pomiędzy zaplanowaną kwotą X a ceną zakupu nie powinna przekroczyć 2,5 zł. 5. Do naczynia wlewane są trzy neutralne wobec siebie ciecze o kolorach: czerwonym, zielonym i niebieskim. W wyniku zmieszania powstaje ciecz jednokolorowa. Napisać program, który będzie w stanie przewidywać kolor mieszanki w zależności od objętościowych proporcji mieszanych cieczy. Jaki wynik mieszania można przewidywać przy proporcji 1:1:1? 6. Dany jest ułamek właściwy w postaci dwóch liczb naturalnych: L (licznik) oraz M (mianownik). Podać w dowolnej formie (algorytm, kod programu) sposób jego skracania do ułamka nieskracalnego (np. L=60, M=84, 60/84=5/7). 7. Obecnie obowiązujący kalendarz gregoriański ustala lata przestępne co 4 (tak jak w kalendarzu juliańskim), ale dodatkowo wprowadza zasady, że lata podzielne przez 100 nie będą przestępne, z wyjątkiem tych podzielnych przez 400 (np. lata 1600 i 2000 były przestępne, a 1700, 1800 i 1900 nie). Podać w postaci tylko jednego wyrażenia logicznego test sprawdzający, czy podany rok był/będzie rokiem przestępnym Zaleca się użycie operatora reszty z dzielenia całkowitego (mod). 8. Arkusz kalkulacyjny Excel posiada funkcję do zamiany liczb na notację rzymską (RZYMSKIE). Opisać dowolny sposób wyznaczenia, która z liczb (od 1 do 3999) w zapisie rzymskim posiada największą ilość znaków (np. 1789: MDCCLXXXIX składa się z 10 znaków). 9. Automat wydaje resztę używając monet od 5 zł do 1 gr (9 nominałów). Opracować algorytm do rozdzielenia dowolnej kwoty tak, aby liczba wydanych monet była jak najmniejsza. 10. Plac przy pewnej fabryce samochodów posiada 640 miejsc parkingowych rozmieszczonych w 8 rzędach po 80 pojazdów w każdym. Firma produkuje 4 różne wersje pojazdów, z których każda dostępna jest w jednym z 8 kolorów nadwozia. Zaproponować sposób przechowywania informacji o rodzajach pojazdów stojących na parkingu tak, aby utworzona struktura danych zajmowała jak najmniej pamięci. 11. Zadano tablicę {Ai} (na przykład: 2; 0,4; 3,14; -1,57; 11; 7,34; -2,6; 0; 5; -1). Należy wyznaczyć tablicę {Yi}, której elementy oblicza się ze wzoru: Yi = cos(Ai) oraz zliczyć ile elementów L tablicy {Yi} należy do przedziału [0;1]. Rozwiązanie zadania można przedstawić w postaci algorytmu lub w postaci kodu w dowolnym języku programowania. Jaką wartość L zwróci algorytm dla przykładowej macierzy? 12. Haker próbuje odszukać hasło dostępu do serwera metodą „Brute-Force”. Hasło składa się z czterech cyfr, serwer obsługuje do 10 zapytań na sekundę. Ile maksymalnie czasu będzie potrzebował haker, aby mieć dostęp do serwera? Jak zmieni się maksymalny czas ataku, jeśli administrator zabezpieczy serwer hasłem złożonym z pięciu cyfr? 13. Zaproponować algorytm, który wyznaczy wszystkie trzycyfrowe liczby równe sumie silni własnych cyfr. 14. Przeanalizować poniższy kod i ustalić które elementy macierzy mrx są zliczane oraz mają wpływ na wynikową wartość S. Odpowiedź zilustrować. uses crt; const N = 4; var mrx : array[1..N, 1..N] of integer; i, j, k, S : integer; begin clrscr; for i := 1 to N do for j := 1 to N do readln(mrx[i, j]); k := N; S := 0; for i := 1 to N do begin for j := k to N do S := S + mrx[i, j]; k := k - 1; end; writeln(' S = ', S); readkey; end. 15. Obliczyć wartość zmiennej logicznej Y, jeśli: A = false (0), B =true (1), C =true (1). Y = (not(A and B) or C) xor not(A and C or not(B)) xor (B and C and not(A)) 16. Podany niżej wzór matematyczny zapisany np. w języku C++ posiada kilka błędów. Wskaż je oraz zaproponuj prawidłowy zapis tego wzoru. sin 2 3,5 1012 cos 2 sqrt(sin*sin(alfa)/3.5E+12*cos(2beta) 17. Liczbę Eulera (e, podstawa logarytmu naturalnego) można wyznaczyć ze wzoru: 1 1 1 1 1 e ... 0! 1! 2! 3! i 0 i! Podać dowolny sposób (algorytm lub kod programu) wyznaczenia w przybliżeniu tej liczby na podstawie podanego wzoru. 18. Dane są trzy dowolne długości boków: a, b, c. Jak można sprawdzić, czy mogą one utworzyć trójkąt? A jeśli to jest trójkąt, to czy jest to trójkąt prostokątny? 19. Rozszyfruj wiadomość: NRG FHCDUD. Opisz przynajmniej jeden bardziej złożony sposób szyfrowania wiadomości. 20. Zmienna x została zadeklarowana jako liczba typu całkowitego. Która z poniższych instrukcji warunkowych nie pasuje do pozostałych? a) Jeżeli x > 5 to wykonaj instrukcję B w przeciwnym wypadku wykonaj instrukcję A b) Jeżeli x ≥ 5 to wykonaj instrukcję B w przeciwnym wypadku wykonaj instrukcję A c) Jeżeli x ≤ 5 to wykonaj instrukcję A w przeciwnym wypadku wykonaj instrukcję B d) Jeżeli x < 6 to wykonaj instrukcję A w przeciwnym wypadku wykonaj instrukcję B 21. Komunikat, który program wysyła do użytkownika ma formę: „W ubiegłym miesiącu sprzedano N komputerów na łączną kwotę X złotych. Plan sprzedaży wykonano w Y procentach”. W związku z tym, że wartości N, X, Y nie są z góry znane, należy tak zaplanować instrukcję drukowania, aby końcówki wyrazów „komputer”, „złoty” i „procent” były dobierane poprawnie do tych wartości (np. „1 komputer”, „2 komputery” oraz „7 komputerów”). Podać fragment kodu, który realizuje to zadanie? 22. Zgodnie z prawem Moore'a moc obliczeniowa komputerów podwaja się co 18 miesięcy. Według Dongarra wydajność superkomputerów zwiększa się dwukrotnie co 14 miesięcy. Każda kolejna wersja oprogramowania firmy M działa 1,5 razy wolniej od poprzedniej. Jak często firma M powinna wypuszczać na rynek nowe wersje swojego oprogramowania, tak by użytkownicy nie zauważyli spowolnienia pracy z systemem? 23. W tabeli podano koszty przewozu ładunku pomiędzy sąsiednie stacje kolejowe A, B, C, D, E. A B C D Е A 1 4 1 B 1 3 C 4 2 D 3 Е 1 2 Jaki jest plan rozmieszczenia stacji kolejowych? Ile wynosi minimalny koszt przewozu pomiędzy stacjami E i D? Odpowiedź zilustrować. 24. Podwójna pętla wypełnia macierz B: for n:=1 to 7 do for k:=1 to 7 do B[n, k]:=k–n; Ile komórek macierzy będzie zawierać wartości dodatnie? 25. Udowodnić, że w pamięci 16-bitowego komputera z pamięcią 128 KB w dowolnym momencie czasu można odnaleźć dwie komórki, które będą zawierały identyczne wartości liczbowe (binarne). Czy dane stwierdzenie jest poprawne w stosunku do komputera 32bitowego z pamięcią 512 MB? 26. Poniższa plansza zawiera n*m pól. Podać w dowolnej formie przepis na poruszanie się po planszy wg zaznaczonego schematu (po spirali). 1 m 1 … n 27. Scharakteryzować i porównać pojęcia STOS i KOLEJKA. Czym różnią się te dwie struktury danych? 28. W oknie aktywnej aplikacji znajduje się obiekt złożony z prostokąta i dwóch półokręgów po bokach, umieszczony zgodnie z rysunkiem. Podać sposób określenia, czy dowolny punkt o współrzędnych (x, y) znajduje się wewnątrz tego obiektu. (30, 30) (80, 50) 29. Trzy zagnieżdżone pętlę wypisują na ekranie pewne rozwiązania: for i:=1 to 6 do for j:=i+1 to 7 do for k:=j+1 to 8 do write(i, j, k); Ile kombinacji zostanie wyświetlonych? Jaki matematyczny przypadek rozwiązuje powyższy kod? 30. Czym różnią się kompilatory od interpreterów? 31. Z n prętów o długościach l1, l2, …, ln należy wyciąć m detali o długościach d1, d2, …, dm tak, aby uzyskać jak najmniejszy odpad materiału. Odpad jest sumą długości niewykorzystanych części prętów, z których wycina się choć jeden detal. Należy opracować algorytm (w formie schematu blokowego, pseudokodu lub programu zapisanego w dowolnym języku programowania), który wskaże najlepszy plan rozcięcia prętów (określi jaki detal należy wyciąć z jakiego pręta) i obliczy odpad jaki powstanie w wyniku takiego rozcięcia. Długości prętów i detali są różne. 32. Wiadomo, że kolejne liczby Ti oblicza się według następującego wzoru: T0 = 1, T1 = 1, a Ti = 2* Ti-2 + Ti-1 dla i=2,3,... Napisać algorytm (w formie schematu blokowego, pseudokodu lub programu zapisanego w dowolnym języku programowania), który dla dowolnej liczby N określi taką największą liczbę W, że T0 + T1 + … + TW <= N2 i znajdzie w tym ciągu takie pary liczb Ti oraz Tk (i <=W, k<=W), że różnią się one od siebie nie więcej niż o N. 33. Opracować algorytm (w formie schematu blokowego, pseudokodu, lub programu zapisanego w dowolnym języku programowania), który dla dowolnej liczby naturalnej nieparzystej N większej od 3 utworzy tablicę o N wierszach i N kolumnach wypełnioną kolejnymi liczbami całkowitymi od 1 do N2 tak, że w środku tabeli (środkowa kolumna i środkowy wiersz) znajdzie się wartość 1, a kolejne liczby zostaną wpisane po spirali zgodnie z ruchem wskazówek, według poniższego schematu: 7→ 8→ 9→ ↓ ↑ 6 ↑ 5 1→ Środek tabeli ↓ ←4 ←3 2 Poniżej podano przykładowe wypełnienie tabeli dla N=5: 21 20 19 18 17 22 7 6 5 16 23 8 1 4 15 24 9 2 3 14 25 10 11 12 13