Część teoretyczna Zadanie 1. Oto specyfikacja algorytmu, rozkładającego liczbę N na liczby pierwsze: WE: liczba całkowita N WY: Rozkład N na czynniki pierwsze Zmienna pomocnicza: liczba całkowita k 1. Wczytaj N 2. Przypisz k liczbę 2 3. Sprawdź, czy k<=n Jeśli tak, to idź do punktu 4 Jeśli nie, to koniec programu. 4. Sprawdź, czy k jest podzielnikiem N Jeśli tak, to... oraz... Jeśli nie, to... 5. Idź do punktu 3 a. Wypełnij luki, aby wynik był zgodny ze specyfikacją b. Jaki jest rezultat dla N=1? c. Co by było, gdyby krok nr 2 wyglądał: przypisz k liczbę 1 d. Napisz schemat blokowy algorytmu Zadanie 2. Komputer ma pamięć złożoną z ośmiu komórek K0, K1, K2,..., K7. W każdej komórce można przechować liczbę od 0 do 15. Na komórkach można wykonać następujące polecenia: Zeruj do wszystkich komórek wpisuje zera Wpisz n do Ki wpisuje liczbę n do komórki Ki Dodaj Ki do Kj dodaje liczbę z komórki Ki do Kj i wynik umieszcza w Kj Odwróć Kj zmienia w komórce Kj wszystkie bity z 0 na 1 i na odwrót: z 1 na 0. Jeśli liczba przekroczy 15, to od wyniku odejmujemy 16 i uzyskany wynik wpisujemy do komórki. a. Ile bitów zajmują wszystkie komórki pamięci komputera? - 1 -
b. Procesor wykonał ciąg działań: Wpisz 7 do K0 Wpisz 6 do K1 Wpisz 5 do K2 Wpisz 4 do K3 Wpisz 3 do K4 Wpisz 2 do K5 Wpisz 1 do K6 Wpisz 0 do K7 Ile bitów 0 znajduje się we wszystkich komórkach. Wyjaśnij, jak uzyskałeś ten wynik. c. Następnie komputer wykonał ciąg poleceń: Dodaj K7 do K0 Dodaj K6 do K0 Dodaj K5 do K0 Dodaj K4 do K0 Dodaj K3 do K0 Jaka jest zawartość komórki K0? Wynik podaj w postaci dziesiętnej. d. Procesor wykonał następujące polecenia: Zeruj Wpisz 13 do K0 Odwróć K0 Z kolei procesor wykonał następujący ciąg poleceń: Dodaj K0 do K1 (77 razy) Dodaj K0 do K2 (777 razy) Dodaj K0 do K3 (7777 razy), po czym: Odwróć K1 Odwróć K2 Odwróć K3 Jakie są wartości poniższych komórek: K0 K1 K2 K3-2 -
Część praktyczna Zadanie 3. Porównaj następujące pojęcia (podaj po dwa podobieństwa i dwie różnice): Telefon IRC Fax email Taśma wideo płyta DVD Mysz joystick Drukarka laserowa ploter Klawiatura skaner Wyjaśnij następujące pojęcia: Kompilowany język programowania Interpretowany język programowania Pamięć RAM Piksel Grafika wektorowa Protokół sieciowy Zadanie 4. Na dyskietce znajduje się plik abc.txt, zawierający słowa złożone z liter A, B, C, każde słowo znajduje się w oddzielnej linijce. W pliku tekstowym wynik.txt zapisz odpowiedzi na pytania: a. Z ilu znaków składa się najdłuższe słowo? b. Z ilu znaków składa się najkrótsze słowo? c. Jaka jest łączna długość wszystkich słów? d. Podaj listę słów 10-literowych uporządkowanych alfabetycznie. e. Podaj listę słów nie zawierających litery C i uporządkowanych od najkrótszego do najdłuższego. f. Podaj listę słów zaczynających się od B, nie zawierających frazy BABA i nie dłuższych od 20 znaków. - 3 -
Zadanie 5. Plik punkty.txt zawiera 10000 par współrzędnych punktów na płaszczyźnie z przedziału [-20000, 20000]. Napisz program, który oblicza: a. ile punktów znajduje się wewnątrz koła o środku (0, 0) i promieniu 10000. Napisz wynik. Załącz plik źródłowy.... b. listę punktów leżących na prostej y=x lub y= x. Napisz wynik. Załącz plik źródłowy.... c. Znajdź najmniejszą odległość pomiędzy parami punktów. Napisz wynik z dokładnością do 10-2. Załącz plik źródłowy.... Zadanie 6. Jezioro ma powierzchnię 10 ha i 10 procent jego powierzchni zajmują wodorosty. Każdego dnia przybywa 2 promile wodorostów, a jedna ryba zjada dziennie 0,5 m 2 wodorostów, przy czym w niedziele ryby nie zjadają nic. 1 stycznia 2002r. wpuszczono do jeziora 250 ryb. Co się stanie? a. Dnia... jezioro całkowicie zarośnie wodorostami b. Dnia... jezioro zostanie całkowicie wyczyszczone z wodorostów c. Jezioro nigdy całkowicie nie zarośnie wodorostami, ani nigdy nie zostanie oczyszczone z wodorostów, lecz liczba wodorostów będzie oscylować z okresem... dni. Sporządź wykres zależności liczby wodorostów od daty. Ile minimalnie ryb należy wpuścić do jeziora, by w dniu 1 lutego zostało ono całkowicie oczyszczone z wodorostów? - 4 -
Zadanie 7. W pliku tekstowym zapisane jest 1001 liczb naturalnych, nie większych niż 30000. Każda liczba zapisana jest w oddzielnej linijce i żadna liczba się nie powtarza. Napisz program, który znajduje MEDIANĘ, tzn. taką liczbę, że w opisanym zbiorze jest 500 liczb większych i tyle samo liczb mniejszych. Zadanie 8. Na dyskietce znajdują się dwa pliki tekstowe: Uczniowie.txt oraz Uczen-Opiekun.txt. W pliku Uczniowie.txt zapisana jest lista uczniów - w każdej linijce teko pliku znajduje się identyfikator (numer kolejny) ucznia oraz jego imię i nazwisko. W pliku Uczen-Opiekun.txt zapisane są identyfikatory uczniów oraz imiona i nazwiska ich opiekunów. Każdy uczeń posiada tylko jednego opiekuna, natomiast opiekun może być przypisany do więcej niż jednego ucznia. Twoim zadaniem jest utworzenie pliku tekstowego o nazwie Odpowiedz.txt, zawierającego odpowiedzi na poniższe pytania. a) Jakie jest imię i nazwisko opiekuna ucznia o nazwisku Bartosz Walczak? b) Podaj alfabetyczną listę nazwisk uczennic noszących imię Anna. Zauważ, że niektóre imiona uczniów zapisane są w formie zdrobniałej. c) Podaj alfabetyczną listę nazwisk i imion wszystkich opiekunów (bez powtórzeń). d) Podaj alfabetyczną listę nazwisk i imion uczniów, którymi opiekuje się Jan Nowak. e) Jakie jest imię i nazwisko opiekuna, który opiekuje się największą liczbą uczniów? Podaj tę liczbę. f) Ilu uczniów znajduje się pod opieką kobiet? Jaki to procent wszystkich uczniów? - 5 -