Matura 2017 (maj). Zadania 2. Rekurencja

Matura 2017 (maj). Zadania 2. Rekurencja

Funkcja licz(x) przyjmuje jako argument dodatnią liczbę całkowitą x, natomiast jako wynik daje pewną liczbę całkowitą.

licz(x)
jeżeli x = 1
podaj wynik 1
w przeciwnym przypadku
w ← licz(x div 2)
jeżeli x mod 2 = 1
podaj wynik w+1
w przeciwnym przypadku
podaj wynik
w-1

Uwaga: div – dzielenie całkowite, mod – reszta z dzielenia całkowitego.

Zadanie 1.

Uzupełnij tabelę – podaj wartość licz(x) dla podanych argumentów x.

x licz(x)
11 2
13 2
21 1
32 -4

Obliczenia:

Rekurencja działa na zasadzie wywoływania funkcji dopóki x nie będzie równy 1. Na zielono zaznaczyłem kod który wykona się przy x = 11.

licz(11) 
jeżeli x = 1
podaj wynik 1
w przeciwnym przypadku
w ← licz(x div 2) // w = 11 div 2 = 5
jeżeli x mod 2 = 1
podaj wynik w+1
w przeciwnym przypadku
podaj wynik w-1

Zwróci nam wartość 5, ponieważ teraz w = 11 div 2 = 5. Teraz ponownie wywołujemy funkcje licz(x) z wartością x = 5.

licz(5) 
jeżeli x = 1
podaj wynik 1
w przeciwnym przypadku
w ← licz(x div 2) // w = 5 div 2 = 2
jeżeli x mod 2 = 1
podaj wynik w+1
w przeciwnym przypadku
podaj wynik w-1

Zwróci nam wartość 2, ponieważ teraz w = 5 div 2 = 2. Teraz ponownie wywołujemy funkcje licz(x) z wartością x = 2.

licz(2) 
jeżeli x = 1
podaj wynik 1
w przeciwnym przypadku
w ← licz(x div 2) // w = 2 div 2 = 1
jeżeli x mod 2 = 1
podaj wynik w+1
w przeciwnym przypadku
podaj wynik w-1

Zwróci nam wartość 1, ponieważ teraz w = 2 div 2 = 1. Teraz ponownie wywołujemy funkcje licz(x) z wartością x = 1, ale to już zwróci nam w = 1.

licz(1) 
jeżeli x = 1
podaj wynik 1
w przeciwnym przypadku
w ← licz(x div 2)
jeżeli x mod 2 = 1
podaj wynik w+1
w przeciwnym przypadku
podaj wynik w-1

Musimy wrócić do naszych funkcji licz(x) i wykonać dalszą część kodu, którą zaznaczę kolorem czerwonym, wracamy do funkcji licz(2). Pamiętamy że w = 1.

licz(2) 
jeżeli x = 1
podaj wynik 1
w przeciwnym przypadku
w ← licz(x div 2) // w = 2 div 2 = 1
jeżeli x mod 2 = 1 // 2 mod 2 = 0
podaj wynik w+1
w przeciwnym przypadku
podaj wynik w-1 // w = 1 – 1 = 0

Po wykonaniu tej funkcji w = 0, teraz wracamy do funkcji licz(5). 

licz(5) 
jeżeli x = 1
podaj wynik 1
w przeciwnym przypadku
w ← licz(x div 2) // w = 5 div 2 = 2
jeżeli x mod 2 = 1 // 5 mod 2 = 1
podaj wynik w+1 // w = 0 + 1 = 1
w przeciwnym przypadku
podaj wynik w-1

Po wykonaniu tej funkcji w = 1, teraz wracamy do funkcji licz(11).

licz(11) 
jeżeli x = 1
podaj wynik 1
w przeciwnym przypadku
w ← licz(x div 2) // w = 11 div 2 = 5
jeżeli x mod 2 = 1 // 11 mod 2 = 1
podaj wynik w+1 // w = 1 + 1 = 2
w przeciwnym przypadku
podaj wynik w-1

Po wykonaniu tej funkcji w = 2, teraz już nie mamy w pamięci żadnej funkcji licz(x), to wynik naszej funkcji zwraca wartość 2.

Pozostałe rozwiązania:

Zadanie 2.

Dana jest dodatnia liczba całkowita k. Jaka jest najmniejsza dodatnia liczba całkowita x, dla której obliczanie wartości licz(x) wymaga dokładnie k wywołań funkcji licz, licząc także pierwsze wywołanie licz(x)? Podkreśl prawidłową odpowiedź.

Przykład: obliczenie licz(13) wymaga dokładnie 4 wywołań funkcji licz.

A) x = k2
B) x = 2k–1
C) x = k+1
D) x = 2k

Przykład odpowiedzi nr 1:

Najmniejsza dodatnia liczba całkowita x, dla której dokładne będzie k wywołań funkcji licz() jest to liczba sprawdzając od początku jeden (1). Wywołanie funkcji licz(x) z wartością 1 wykona się dokładnie jeden raz, ponieważ: 

licz(1) 
jeżeli x = 1
podaj wynik 1
w przeciwnym przypadku
w ← licz(x div 2) // w = 11 div 2 = 5
jeżeli x mod 2 = 1 // 11 mod 2 = 1
podaj wynik w+1 // w = 1 + 1 = 2
w przeciwnym przypadku
podaj wynik w-1

W funkcji licz(1) wykona się tylko kod zaznaczony zielono i funkcja ta zwróci wynik 1. Następnie musimy sprawdzić dla jakiego k równe jest x, czyli kiedy x = k (1 = k).

Sprawdzamy dla x= 1: 

A)
x = k2
k = 1  ⇒ x = 1 ⇒ 1 = 1
B)
x = 2k–1 
k = 1  ⇒ x = 21-1  ⇒ x = 20  ⇒ 1 = 1 

C)
x = k+1
k = 0  ⇒ x = 0 + 1  ⇒ 1 = 1 (k musi być liczbą dodatnią całkowitą!!! To odpada!!!)
D) 
x = 2k
k = 0  ⇒ x = 20  ⇒ 1 = 1 (k musi być liczbą dodatnią całkowitą!!! To odpada!!!)

Mamy dwie odpowiedzi prawidłowe: A i B. Zastanawiając się, która odpowiedź jest prawidłowa i dlaczego jest to B, doszedłem do wniosku, iż musi to być to związane z liczbą binarną, dlatego postawiłem na odpowiedź B.

Przykład odpowiedzi nr 2 :

Jest to rozwiązanie, gdzie zostało założone, iż do sprawdzenia należy wybrać x ≠ 1. Padło na początek na liczbę x = 2 i tak dla tek liczby funkcja licz(2) wykona się dwa razy.

licz(2) ⇒ wywołań tej funkcji jest dokładnie 2 razy.

licz(2) ⇒ licz(1)

A)
x = k2
k = 2  ⇒ x = 2 ⇒ 2 = 4 ( to odpada ponieważ x = k2 )
B)
x = 2k–1 
k = 2  ⇒ x = 22-1  ⇒ x = 21  ⇒ 2 = 2  (ta odpowiedź jest prawidłowa)

C)
x = k+1
k = 2  ⇒ x = 2 + 1  ⇒ 2 = 3 (równanie to nie jest prawdziwe!!! To odpada!!!)
D) 
x = 2k
k = 2  ⇒ x = 22  ⇒ 2 = 4 (równanie to nie jest prawdziwe!!! To odpada!!!)

Odpowiedź jest prawidłowa, ale nie jest to najmniejsza dodatnia liczba całkowita. Tu moja uwaga, nie wiadomo co miał na myśli autor zadania.

Odpowiedź otrzymałem od Pana Jakuba. Dziękuje!!!

UWAGA!!! Jeśli ktoś ma bardziej racjonalne wyjaśnienie proszę napisać na kontakt@informatyka.dwojka.net. Dziękuję.

Zadanie 3.

Podaj najmniejszą liczbę całkowitą x większą od 100, dla której wynikiem wywołania licz(x) będzie 0.

Odpowiedź:

x = 135

Obliczenia:

W naszym przypadku podany algorytm jest to zamiana liczby dziesiętnej na liczbę binarną. W zadaniu tym należy wziąć po uwagę, kiedy otrzymamy wynik 0 (zero). Będzie to wtedy kiedy ilość zer i jedynej w liczbie binarnej będzie równa sobie. Kolejnym problem jest podanie liczy powyżej 10010, taka liczba zawiera 7 cyfr w zapisie binarnym. Szukamy liczby która w zapisie binarnym będzie miała parzystą ilość liczb, tj. w tym przypadku 8.

100000002 = 12810

Szukana najmniejsza liczba binarna zawierająca 8 cyfr, która składa się z 4 jedynek i 4 zer.

100001112 = 13510

Matura 2015 (maj). Zadanie 1. Problem telewidza

Matura 2015 (maj). Zadanie 1. Problem telewidza

W Problemie telewidza mamy program telewizyjny, zawierający listę filmów emitowanych w różnych stacjach telewizyjnych jednego dnia. Telewidz zamierza obejrzeć jak najwięcej filmów w całości. Jedyne ograniczenie jest takie, że telewidz może oglądać co najwyżej jeden film (stację telewizyjną) jednocześnie. Zakładamy, że jednego dnia wszystkie filmy są różne.

Program telewizyjny emisji filmów w 4 stacjach telewizyjnych:

Telewizja / stacja Film i godziny jego emisji Czas trwania emisji filmu
TV1 film 1: od 9:00 do 12:00
film 2: od 15:00 do 17:00
3 godziny
2 godziny
TV2 film 3: od 11:00 do 16:00 5 godzin
TV3 film 4: od 12:00 do 14:00 2 godziny
TV4 film 5: od 11:30 do 12:30 1 godzina

Dla programu podanego powyżej telewidz jest w stanie obejrzeć aż trzy filmy, np.: film 1, film 4, film 2. Przyjmujemy, że telewidz nie traci w ogóle czasu na przełączanie pomiędzy stacjami (np. o godz. 12:00 z TV1 na TV3). Innymi słowy, czasy emisji filmów 1 i 4 nie kolidują ze sobą.
Rozważ następujący algorytm wyboru filmów do obejrzenia przez telewidza, w którym w kroku 2. stosuje się jedną z czterech strategii opisanych w tabeli 1.

Specyfikacja:

Dane:

T – zbiór filmów z programu telewizyjnego z godzinami emisji i czasami ich trwania,
S – strategia z tabeli 1.

Wynik:

P – zbiór filmów, które obejrzy telewidz.

Algorytm:

Krok 1. Zainicjuj P jako zbiór pusty.
Krok 2. Dopóki T zawiera jakieś filmy, wykonuj:
– stosując strategię S, wybierz ze zbioru T film x i usuń go z T
– dodaj film x do zbioru P
– usuń ze zbioru T wszystkie filmy, których czasy emisji kolidują z czasem emisji filmu x.
Krok 3. Zakończ wykonywanie algorytmu i wypisz wszystkie filmy ze zbioru P.

Tabela 1. Cztery strategie (S) w Problemie telewidza:

Strategia A Wybierz film, który trwa najdłużej, a jeśli jest takich więcej, to wybierz z nich ten, który się najwcześniej kończy. Jeśli jest więcej takich filmów,wybierz dowolny z nich.
Strategia B Wybierz film, który trwa najkrócej, a jeśli jest takich więcej, to wybierz z nich ten, który się najwcześniej kończy. Jeśli jest więcej takich filmów, wybierz dowolny z nich.
Strategia C Wybierz film, który się najwcześniej zaczyna, a jeśli jest takich więcej, to wybierz z nich ten, który się najwcześniej kończy. Jeśli jest więcej takich filmów, wybierz dowolny z nich.
Strategia D Wybierz film, który się najwcześniej kończy, a jeśli jest takich więcej, to wybierz z nich ten, który się najpóźniej zaczyna. Jeśli jest więcej takich filmów, wybierz dowolny z nich.

Przykład:
Dla podanego programu telewizyjnego zastosowanie w kroku 2. strategii A daje wynik P = {film 3}, czyli telewidz obejrzy tylko jeden film.

Zadanie 1.

Dla podanego programu telewizyjnego podaj wyniki wykonywania algorytmu po zastosowaniu strategii B, C i D:

Strategia S Zawartość zbioru P po zakończeniu wykonywania algorytmu
B P = {film 5, film 2}
C P = {film 1, film 4, film 2}
D P = {film 1, film 4, film 2}

Zadanie 2.

Zastosowana strategia S w algorytmie jest optymalna, jeśli dla każdego programu telewizyjnego wynik algorytmu (zbiór P) zawiera największą możliwą liczbę filmów, które może obejrzeć telewidz.

Uwaga:
Strategia A nie jest optymalna, ponieważ telewidz może obejrzeć trzy filmy: film 1, film 4 oraz film 2.

Dla strategii A, B i C podaj w przygotowanych tabelach przykłady programów telewizyjnych, z emisją czterech filmów w dwóch stacjach, będące dowodami, że żadna z tych strategii nie jest optymalna.

Dla każdej strategii i podanego dla niej programu telewizyjnego podaj wynik działania algorytmu oraz przykład ilustrujący, że telewidz może obejrzeć więcej filmów, jeżeli nie używa tej strategii.

Wskazówka. Podaj takie godziny emisji czterech filmów, aby telewidz był w stanie obejrzeć np. trzy lub więcej filmów, podczas gdy zastosowanie algorytmu z odpowiednią strategią daje rozwiązanie zawierające co najwyżej dwa filmy.

Dowód dla strategii A:

Telewizja / stacja Film i godziny jego emisji Czas trwania emisji filmu
TV1 film 1 (od …………………. do ………………….),
film 2 (od …………………. do ………………….)
………………….
………………….
TV2 film 3 (od …………………. do ………………….),
film 4 (od …………………. do ………………….)
………………….
………………….

Wynik działania algorytmu przy zastosowaniu strategii A:

P

Liczniejszy zbiór filmów, które może obejrzeć widz:

Z

Dowód dla strategii B:

Telewizja / stacja Film i godziny jego emisji Czas trwania emisji filmu
TV1 film 1 (od …………………. do ………………….),
film 2 (od …………………. do ………………….)
………………….
………………….
TV2 film 3 (od …………………. do ………………….),
film 4 (od …………………. do ………………….)
………………….
………………….

Wynik działania algorytmu przy zastosowaniu strategii B:

P

Liczniejszy zbiór filmów, które może obejrzeć widz:

Z

Dowód dla strategii C:

Telewizja / stacja Film i godziny jego emisji Czas trwania emisji filmu
TV1 film 1 (od …………………. do ………………….),
film 2 (od …………………. do ………………….)
………………….
………………….
TV2 film 3 (od …………………. do ………………….),
film 4 (od …………………. do ………………….)
………………….
………………….

Wynik działania algorytmu przy zastosowaniu strategii C:

P

Liczniejszy zbiór filmów, które może obejrzeć widz:

Z

 

Kurs PHP – Lekcja 02

Kurs PHP.
Składnia skryptu PHP.

 

Przypomnienie!!!
Poprzednio napisaliśmy swój pierwszy skrypt w php. Oto on:

<?php echo 'Witam na kursie PHP.'; ?>

Dowiedzieliśmy się również, że aby wykonywać polecenia języka PHP potrzebujesz zainstalowanego i uruchomione interpretera (czyli XAMPP’a).


UWAGA!!!
Aby wykonywać skrypt php musi on znajdować się w pliku z rozszerzeniem .php, NIE .html.


Składnia skryptu PHP.

Uruchom więc XAMPP’a i w folderze c:\xampp\www\KursPHP utwórz folder „lekcja02″. Następnie otwórz nowy plik w wybranym przez siebie edytorze i zapisz go w folderze lekcja02 jako plik index.php.

Możesz więc stworzyć sobie domyślną konstrukcję strony HTML czyli: <!DOCTYPE … <html><head> etc. ale aby wykonywać skrypty php na stronie musi mieć ona rozszerzenie .php.

Jak wygląda składnia zobaczyłeś w poprzedniej lekcji, ale dla przypomnienia, aby wykonać jakiekolwiek polecenie w języku PHP musi ono znajdować się pomiędzy znakiem rozpoczęcia i zamknięcia:

<!DOCTYPE html>
<html>
<head>
</head>
<body>
<!-- tutaj nie możesz wykonać skryptu php -->
<?php
  // tutaj zostanie wykonany skrypt php
?>
<!-- tutaj nie możesz wykonać skryptu php -->
<?php
  // tutaj znów możesz pisać w języku php
?>
</body>
</html>

Komentarze w PHP.

Komentarze w języku php możesz stosować na 3 sposoby.

1 sposób:

<?php   
// tutaj możesz dodać komentarz jedno linijny
?>

2 sposób:

<?php   
# tutaj możesz dodać komentarz jedno linijny
?>

3 sposób:

<?php   
/* 
tutaj możesz pisać wiele linii komentarza
kolejna linia i kolejna aż do zamknięcia komentarza
*/
?>

Integracja PHP z HTML.

Skrypty php możesz wykonywać w dowolnym miejscu całego dokumentu .php np. :

  • przed deklaracją doctype,
  • w sekcji head,
  • body,
  • nawet po znaczniku kończącym </html>
  • można powiedzieć w dowolnym miejscu dokumentu
  • możesz wstawiać również bardzo małe fragmenty kodu php wewnątrz znaczników html, przykład (zapisz plik w folderze c:\xampp\www\KursPHP\lekcja02 jako index.php):
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<div id="<?php #dowolny skrypt ?>">
</div>
<a href="<?php echo 'http://google.com'; ?>">google</a>
</body>
</html>

Daje to naprawdę duże możliwości bo możesz na samym początku dokumentu wywołać skrypt, który zdecyduje czy strona ma się dalej ładować czy nie.

Co w efekcie jeśli sprawdzisz kod źródłowy uruchomionej strony będzie wyglądało następująco, możesz sprawdzić poprzez wyświetlenia źródła strony w przeglądarce internetowej:

<!DOCTYPE html> 
<html> 
<head> 
</head> 
<body> 
<div id=""> 
</div> 
<a href="http://google.com">google</a> 
</body> 
</html>

Uruchomienie skryptu możesz zobaczyć przechodząc do przeglądarki, wpisz localhost (musisz mieć włączonego XAMPP’a)
i kliknij poniżej Your Projects w KursPHP i w lekcja02.


UWAGA!!!
Zauważ również jedną bardzo ważną rzecz.
PHP to kod wykonywany po stronie serwera.
Czyli wszystko co wpiszesz pomiędzy znacznikami <?php ?> nie będzie widoczne w żaden sposób dla użytkowników.


Widoczne są tylko elementy, które poprzedzisz funkcją odpowiadającą za wyświetlanie tekstu. Taką bardzo popularną funkcją jest użyta wcześniej funkcja echo. Jeśli chcesz wyświetlić jakiś fragment tekstu przy pomocy php wywołujesz więc funkcję echo a następnie w cudzysłowie wpisujesz wybrany tekst. Działanie funkcji echo kończysz średnikiem – ; Budowa przypomina lekko css gdzie mamy cechę następnie wartość cechy i również kończymy ją średnikiem.

Matura 2018 (maj). Zadanie 6. Centrum danych

Matura 2018 (maj). Zadanie 6. Centrum danych

Pewna firma utrzymuje centrum danych, w którym znajduje się kilkaset pracujących komputerów. Specjalny zespół pracowników odpowiada za wykrywanie i usuwanie awarii komputerów. Pliki komputery.txt, awarie.txt oraz naprawy.txt zawierają dane niezbędne do wykonania zadania.

Plik komputery.txt zawiera opisy maszyn znajdujących się w centrum w 2015 roku, każdy wiersz tego pliku zawiera kolejno:

  • numer komputera (unikatową liczbę całkowitą) – Numer_komputera,
  • sekcję, w której znajduje się komputer (sekcje oznaczone są wielkimi literami alfabetu
    angielskiego: A, B, C, …) – Sekcja.
  • pojemność dysku twardego (liczoną w gigabajtach, liczba całkowita) – Pojemnosc_dysku.

Przykład:

Numer_komputeraSekcjaPojemnosc_dysku
1R700
2N130
3E300

Plik awarie.txt zawiera informację o awariach komputerów w 2015 roku. Każdy wiersz tego pliku zawiera kolejno:

  • unikatowy numer zgłoszenia awarii – Numer_zgloszenia,
  • numer komputera, który uległ awarii – Numer_komputera,
  • datę i godzinę wystąpienia awarii z dokładnością do sekundy – Czas_awarii,
  • priorytet zgłoszenia – liczbę całkowitą określającą w skali od 1 do 10, jak krytyczna jest
    awaria – Priorytet.

Przykład:

Numer_zgloszeniaNumer_komputeraCzas_awariiPriorytet
13652015-01-01 04:40:558
22492015-01-01 06:08:243
33122015-01-01 06:33:434

W pliku naprawy.txt zapisane zostały raporty z prac, jakie wykonał zespół w 2015 roku.

Każdy wiersz tego pliku zawiera kolejno:

  • numer zgłoszenia, którego dotyczyła naprawa (mogło zdarzyć się, że jedno zgłoszenie awarii wymagało kilku napraw) – Numer_zgloszenia,
  • datę i godzinę zakończenia naprawy z dokładnością do sekundy – Czas_naprawy,
  • rodzaj naprawy (słowo restart oznacza ponowne uruchomienie komputera, wymiana –
    wymianę jednego z podzespołów komputera) – Rodzaj.

Przykład:

Numer_zgloszeniaCzas_naprawyRodzaj
22015-01-01 20:08:15restart
72015-01-02 16:30:15restart
42015-01-02 19:37:03wymiana

Dane w wierszach plików są oddzielone znakami tabulacji, pierwszy wiersz pliku jest wierszem nagłówkowym.

Za pomocą dostępnych narzędzi informatycznych podaj odpowiedzi do poniższych zadań, zapisz je w pliku wyniki.txt, a każdą z nich poprzedź numerem odpowiedniego zadania.

Pobieranie danych do programu:

Pobieranie danych z pliku tekstowego do tabeli w Access’ie wykonujemy zgodnie z poniżej przedstawionymi krokami.

Krok 1. 
Pobieramy z pliku tekstowego dane do tabeli wybierając z menu Dane zewnętrzne -> Plik tekstowy.

Krok 2.
Wskazujemy, gdzie znajduje się plik tekstowy. Te czynności powtarzamy tyle razy ile jest plików tekstowych.

Krok 3.
Ustalamy w jaki sposób są wpisane dane do pliku tekstowego.

Krok 4.
Wybieramy znak rozdzielający pola oraz zaznaczamy pierwszy wiersz zawiera nazwy pól.

Krok 5.
Wybieramy odpowiednie typy dla każdej kolumny (dla każdego pola) w tabeli. Należy pamiętać, że konieczne jest wybrania typu dla pola daty.

Krok 6. 
Wybieramy pole dla którego ma być ustawiony klucz podstawowy.

Krok 7.
Podajemy nazwę tabeli pod jaką ma być zapisana w naszej bazie.

Krok 8. 
Ustawienie relacji dla nowo utworzonych tabel w naszej bazie. Pamiętaj, że powinno się wymuszać więzy integralności.

Zadanie 1.

Znajdź 10 najczęstszych rodzajów dysków (czyli 10 najczęściej występujących pojemności) wśród komputerów w centrum. Dla każdej ze znalezionych pojemności podaj liczbę komputerów z takim dyskiem. Posortuj zestawienie nierosnąco względem liczby komputerów z dyskiem o danej pojemności.

Rozwiązanie:

Tworzymy kwerendę która będzie zawierała jedną tabelę komputery, z której wybieramy dwukrotnie pole Pojemnosc_dysku. Wykonujemy Sumy dla pola Pojemnosc_dysku, wybieramy funkcję policz, aby policzyć ile razy występuje dany rodzaj dysku. Ostatnimi elementami zakonczenia zadania jest sortowanie wystąpień dysku Malejąco, oraz ograniczenie występowań dysku do ilości 10 rekordów.

Wyniki działania kwerendy jest następujący:

Na zakończenie zapisujemy kwerendę jako Zadanie 1.

Odpowiedź:

PojemnośćLiczba
300173
20031
50031
80029
70028
60026
40020
29011
16010
22010

Zadanie 2.

Znajdź wszystkie komputery w sekcji A, w których trzeba było przynajmniej dziesięciokrotnie wymieniać podzespoły. Podaj ich numery, a także liczbę wymian podzespołów dla każdego z nich.

Rozwiązanie:

Odpowiedź:

Numer komputeraIlość wymian podzespołów
4211
12311
17112
20212

Zadanie 3.

Pewnego dnia nastąpiła awaria wszystkich komputerów w jednej z sekcji. Podaj datę awarii oraz symbol sekcji, w której nastąpiła awaria.

Rozwiązanie:

Odpowiedź:

Dniem awarii wszystkich komputerów był dzień 23-12, a było to w sekcji Q.

Zadanie 4.

Znajdź awarię, której usunięcie trwało najdłużej (czas liczymy od wystąpienia awarii do momentu zakończenia ostatniej z napraw, jakiej ta awaria wymagała). Podaj numer ogłoszenia, czas wystąpienia awarii i czas zakończenia ostatniej naprawy.

Rozwiązanie:

Odpowiedź:

Podaj numer ogłoszenia: 2087
Czas wystąpienia awarii: 2015-11-05 12:38:46
Czas zakończenia ostatniej naprawy: 2015-11-13 12:38:32

Zadanie 5.

Podaj liczbę komputerów, które nie uległy żadnej awarii o priorytecie większym lub równym 8 (wliczamy w to też komputery, które w ogóle nie uległy awarii).

Rozwiązanie:

Rozwiązanie zadania 5 w SQL:

SELECT 500-Count(*) AS Ilosc_komputerow
FROM (SELECT DISTINCT Numer_Komputera From Awarie WHERE Priorytet >= 8);

Rozwiązanie podane przez Pana Mateusza.

Odpowiedź:

Ilość komputerów: 149.