Rozwiązywanie arkuszy maturalnych z informatyki

Z podanych rozwiązań należy korzystać dopiero po samodzielnym rozwiązaniu danego zadania w celu sprawdzenia poprawności wyniku. Rozwiązania nie są optymalne (nie zostały sprawdzone z kluczem odpowiedzi, ponieważ na dzień dzisiejszy klucz ten nie został jeszcze opublikowany w Internecie).

 

Poziom podstawowy

 

Zadanie 6. Noworodki (10 pkt)

Pliki noworodki.txt oraz mamy.txt zawierają dane o dzieciach i ich matkach.

W pliku noworodki.txt każdy wiersz zawiera następujące informacje o jednym dziecku, rozdzielone znakami odstępu: identyfikator, płeć (c – córka, s – syn), imię, data urodzenia, waga [g], wzrost [cm] oraz identyfikator matki.

Przykład:

 

1 c Agnieszka 20-lis-1999 2450 48 33

 

W pliku mamy.txt każdy wiersz zawiera informacje o jednej kobiecie, rozdzielone znakami odstępu: identyfikator matki, imię, wiek.

Przykład:

 

1 Agata 25

 

Identyfikator matki z pliku noworodki.txt odpowiada identyfikatorowi w pliku mamy.txt.

Wykorzystując dane zawarte w plikach mamy.txt i noworodki.txt oraz dostępne narzędzia informatyczne, wykonaj poniższe polecenia.

  1. Podaj imię i wzrost najwyższego chłopca oraz imię i wzrost najwyższej dziewczynki.
    Uwaga: Jest tylko jeden taki chłopiec i tylko jedna taka dziewczynka.

  2. W którym dniu urodziło się najwięcej dzieci? Podaj datę i liczbę dzieci.
    Uwaga: Jest tylko jeden taki dzień.

  3. Podaj imiona kobiet w wieku poniżej 25 lat, które urodziły dzieci o wadze powyżej 4000 g.

  4. Podaj imiona i daty urodzenia dziewczynek, które odziedziczyły imię po matce.

  5. W pliku noworodki.txt zapisane są informacje o narodzinach bliźniąt. Bliźnięta można rozpoznać po tej samej dacie urodzenia i tym samym identyfikatorze matki. Pamiętaj, że przykładowo Jacek i Agatka oraz Agatka i Jacek to ta sama para. Możesz założyć, że w danych nie ma żadnych trojaczków, czworaczków, itd. Podaj daty, w których urodziły się bliźnięta.

 

Jest to typowe zadanie do rozwiązania przy pomocy relacyjnej bazy danych (zdolny uczeń może oczywiście napisać odpowiedni program w C++ lub w Pascalu, jednakże uważam, że w trakcie matury jest na to zbyt mało czasu). Uruchamiamy MS-Access. W panelu po prawej stronie wybieramy opcję Utwórz nowy plik... (jeśli panel jest niewidoczny, to kliknij ikonę nowego pliku na pasku narzędziowym lub wybierz opcję menu Plik / Nowy...

 

obrazek

 

Panel startowy wymieni się na panel Nowy plik:

 

obrazek

 

Wybierz opcję Pusta baza danych..., bazę zapisz na dysku pod wybraną nazwą (u nas jest to mamy_i_noworodki). Po tych operacjach pojawi się okienko nawigacyjne bazy danych:

 

obrazek

 

Okienko to umożliwia nawigację pomiędzy różnymi obiektami bazy danych. W panelu Obiekty ustaw Tabele, jak na powyższym obrazku. Tabele przechowują dane. W naszym przypadku dane są udostępnione w postaci dwóch plików:

 

mamy.txt o strukturze: Id Imię Wiek

Id  - jest unikalnym numerem rekordu opisującego matkę. Numer ten przyjmiemy jako klucz podstawowy
Imię  - jest jednowyrazowym tekstem
Wiek  - jest liczbą całkowitą

 

noworodki.txt o strukturze: Id Płeć Imię Data Waga Wzrost Matka

Id  - jest unikatowym numerem każdego noworodka - pole to przyjmiemy jako klucz podstawowy
Płeć  - zawiera jedną literę: c - córka, s - syn
Imię  - jest jednowyrazowym tekstem
Data  - jest datą urodzenia noworodka w formacie dd-mm-rrrr
Waga  - jest liczbą całkowitą określającą wagę noworodka w gramach
Wzrost  - jest liczbą całkowitą określającą wzrost noworodka w centymetrach
Matka  - jest numerem rekordu matki dziecka z pliku matki.txt

 

Poszczególne pola w obu plikach są rozdzielone spacjami.

 

Powyższe dane musimy zaimportować do bazy danych MS-Access. Kliknij u góry okna nawigacyjnego narzędzie Nowy lub z menu wybierz opcję Wstaw / Tabela. Pojawi się okienko dialogowe wstawiania nowej tabeli:

 

obrazek

 

W okienku zaznacz opcję Tabela importu i kliknij przycisk OK. Pojawi się okienko importowania pliku:

 

obrazek

 

Na spodzie okienka wybierz opcję Pliki typu: Pliki tekstowe. Następnie wyszukaj na dysku plik mamy.txt, zaznacz go i kliknij przycisk Importuj. Zostanie uruchomiony kreator importu tekstu.

 

obrazek

 

W okienku tym zaznacz pierwszą opcję Ograniczony (poszczególne wiersze tekstu zawierają po trzy pola rozdzielone spacją - nie są wyrównane w kolumnach, dlatego musimy zaznaczyć tę pierwszą opcję) i kliknij przycisk Dalej. Okienko zmieni swoją zawartość:

 

obrazek

 

Teraz musisz poinformować kreatora jak są rozdzielone pola. W tym celu wybierz opcję Odstęp. Wtedy w polu widoku rekordów pojawią się pionowe linie rozdzielające pola rekordów, jak na powyższym obrazku. Kliknij przycisk Dalej. Okienko znów zmieni swoją zawartość:

 

obrazek

 

Tutaj nic nie zmieniasz - dane mają być wstawione do nowej tabeli. Klikasz przycisk Dalej.

 

obrazek

 

W tym oknie określasz nazwy pól oraz ich typy. Oczywiście nazw nie musisz zmieniać, ale wtedy będziesz musiał pamiętać, co zawiera Pole1, Pole2, Pole3... Lepiej jednak zmień te nazwy. Kolejne pola wybieramy klikając w pokazane kolumny. Zastosuj następujące ustawienia dla kolejnych pól:

 

Numer pola Nazwa pola Typ danych Indeksowany
Pole1 Id Liczba całkowita długa Tak (Bez duplikatów)
Pole2 Imię Tekst Nie
Pole3 Wiek Liczba całkowita Nie

 

Gdy nazwiesz wszystkie pola, kliknij przycisk Dalej.

 

obrazek

 

W tym okienku określasz pole klucza podstawowego. Wybierz środkową opcję i ustaw pole Id jako klucz podstawowy. Kliknij przycisk Dalej.

 

obrazek

 

To już ostatnie okienko kreatora importu tekstu. Możesz tutaj wybrać nazwę dla tworzonej tabeli, jednak proponowana nazwa Mamy jest bardzo dobra. Klikasz przycisk Zakończ. Kreator tworzy tabelę Mamy i umieszcza ją w bazie danych. Tabela ta pojawi się w oknie nawigacyjnym dla Tabel:

 

obrazek

 

W identyczny sposób postępujemy przy imporcie pliku noworodki.txt. Nazwy i typy pól są tutaj następujące:

 

Numer pola Nazwa pola Typ danych Indeksowany
Pole1 Id Liczba całkowita długa Tak (Bez duplikatów)
Pole2 Płeć Tekst Nie
Pole3 Imię Tekst Nie
Pole4 Data Data/Godzina Nie
Pole5 Waga Liczba całkowita Nie
Pole6 Wzrost Liczba całkowita Nie
Pole7 Matka Liczba całkowita długa Nie

 

Gdy zakończysz import w bazie danych powinny być dwie tabele: Mamy i Noworodki. Wybierz tabelę Noworodki i kliknij narzędzie:

 

obrazek

 

Znajduje się ono u góry okienka nawigacyjnego. Przejdziemy do okna projektowania tabeli - jest to konieczne, ponieważ musimy połączyć (określić relację) tabelę Noworodki z tabelą Matki.

 

obrazek

 

W oknie tym przejdź do pola Matka, w kolumnie Typ danych kliknij na strzałkę w dół i z listy wybierz opcję Kreator odnośników:

 

obrazek

 

Pojawi się okienko kreatora odnośników - pole Matka zawiera numer rekordu z tabeli Mamy.

 

obrazek

 

Wybierasz pierwszą opcję i klikasz przycisk Dalej.

 

obrazek

 

Klikasz przycisk Dalej.

 

obrazek

 

Tutaj kreator pyta o to, co ma się pojawić w polach Matka tabeli Noworodki zamiast obecnego tam numeru rekordu. Przenieś na prawo pole Imię i kliknij przycisk Dalej.

 

obrazek

 

W tym okienku nic nie musisz ustawiać, po prostu kliknij przycisk Dalej.

 

obrazek

 

Tutaj również nic nie musisz zmieniać, kliknij przycisk Zakończ i zamknij okno Noworodki: Tabela. Dane są przygotowane. Możesz przeglądnąć utworzone przez kreatory tabele, klikając je dwukrotnie w oknie nawigacyjnym:

 

obrazek obrazek

 

Teraz przejdziemy do wyszukiwania rekordów w bazie danych wg podpunktów zadania.

 

  1. Podaj imię i wzrost najwyższego chłopca oraz imię i wzrost najwyższej dziewczynki.
    Uwaga: Jest tylko jeden taki chłopiec i tylko jedna taka dziewczynka.

Przechodzimy do widoku tabeli Noworodki. Klikamy w kolumnę Wzrost i wybieramy narzędzie Sortuj malejąco z paska narzędziowego u góry ekranu:

 

obrazek

 

Spowoduje to posortowanie rekordów w tabeli względem wzrostu dzieci - dzieci najwyższe znajdą się na początku tabeli. Teraz wystarczy odczytać z niej imię oraz wzrost pierwszego chłopca i pierwszej dziewczynki:

 

obrazek

 

a) Oskar 62, Maja 61

 

  1. W którym dniu urodziło się najwięcej dzieci? Podaj datę i liczbę dzieci.
    Uwaga: Jest tylko jeden taki dzień.

Ten podpunkt wymaga zastosowania kwerendy, czyli zapytania do bazy danych, które w odpowiedzi tworzy tabelę rekordów spełniających zadane w kwerendzie kryteria. Nasza kwerenda ma zliczać rekordy tabeli Noworodki, w których pole Data ma taką samą zawartość. Innymi słowy musimy wyszukać duplikaty wg pola Data. W ten sposób otrzymamy dla każdej daty liczbę urodzonych w tym dniu noworodków.

Przejdź do okna nawigacyjnego bazy danych (tabele możesz zamknąć) i wybierz w lewym pasku Kwerendy:

 

obrazek

 

Kliknij u góry okna nawigacyjnego narzędzie Nowy lub wybierz z menu opcję Wstaw / Kwerenda. Pojawi się kreator kwerend:

 

obrazek

 

W okienku kreatora wybierz opcję Kreator kwerend wyszukujących duplikaty i kliknij przycisk OK.

 

obrazek

 

W tym okienku musisz wybrać tabelę, w której kwerenda będzie poszukiwała duplikatów - zaznacz tabelę Noworodki i kliknij przycisk Dalej.

 

obrazek

 

Teraz musisz wskazać kreatorowi pole, które może zawierać duplikaty. Polem tym jest oczywiście Data. Przenieś to pole na prawą stronę i kliknij przycisk Zakończ. Kwerenda zostanie automatycznie uruchomiona i otrzymasz w wyniku tabelę z dwoma kolumnami: datą oraz liczbą powtórzeń tej daty. Kliknij w kolumnę z liczbą powtórzeń i posortuj ją malejąco:

 

obrazek

 

Z pierwszego wiersza tej tabeli odczytujesz odpowiedź:

 

b) 1999-11-20  23

 

  1. Podaj imiona kobiet w wieku poniżej 25 lat, które urodziły dzieci o wadze powyżej 4000 g.

Przejdź do okienka nawigacyjnego bazy danych, wybierz z lewego panelu Kwerendy i kliknij w narzędzie Nowy. W okienku kreatora kwerend wybierz opcję Kreator prostych kwerend i kliknij przycisk OK.

 

obrazek

 

Z tabeli Mamy przenieś do zaznaczonych pół Imię i Wiek. Z tabeli Noworodki przenieś pole Waga. Kliknij przycisk Zakończ. MS-Access uruchomi kwerendę i pokaże nam wszystkie mamy wraz z ich wiekiem oraz wagą urodzonych dzieci. Wybór ten musimy zawęzić do warunków podanych w zadaniu. Kliknij na pasku narzędziowym narzędzie:

 

obrazek

 

Widok tabeli zostanie przełączony na widok projektu kwerendy.

 

obrazek

 

W kolumnach pól Wiek i Waga kasujemy opcję Pokaż - w tabeli wynikowej kwerendy pola te nie będą pokazywane - w zadaniu chodzi jedynie o imiona matek. W kolumnie Wiek dodajemy kryterium <25, a w kolumnie Waga dodajemy kryterium >4000. Uruchamiamy kwerendę za pomocą narzędzia Uruchom:

 

obrazek

 

Wynikowa tabel kwerendy będzie zawierała jedynie imiona kobiet, które spełniają zadane kryteria:

 

obrazek

 

c) Barbara, Maria, Marzena, Eliza, Janina, Paulina

 

  1. Podaj imiona i daty urodzenia dziewczynek, które odziedziczyły imię po matce.

Postępujemy podobnie jak w punkcie c). Wybieramy kreator prostych kwerend, do zapytania przenosimy z tabeli Noworodki pola Imię i Data. Kończymy pracę kreatora i przełączamy się w kwerendzie z widoku tabeli na widok projektu:

 

obrazek

 

W kolumnie pole dodajemy kryterium [Mamy].[Imię], które powoduje wybieranie rekordów z imieniem dziecka takim samym jak imię jego matki. Uruchamiamy kwerendę i otrzymujemy wynik jej pracy:

 

obrazek

 

d) Anna 199-11-21, Wiktoria 1999-11-20

 

  1. W pliku noworodki.txt zapisane są informacje o narodzinach bliźniąt. Bliźnięta można rozpoznać po tej samej dacie urodzenia i tym samym identyfikatorze matki. Pamiętaj, że przykładowo Jacek i Agatka oraz Agatka i Jacek to ta sama para. Możesz założyć, że w danych nie ma żadnych trojaczków, czworaczków, itd. Podaj daty, w których urodziły się bliźnięta.

Tutaj ponownie wykorzystujemy kreator kwerend wyszukujących duplikaty:

 

obrazek

 

Do kwerendy wybieramy tabelę Noworodki i jej pola Data i Matka:

 

obrazek

 

Po uruchomieniu przechodzimy w widok projektu:

 

obrazek

 

Pozostawiamy opcję Pokaż tylko w pierwszej kolumnie. Jeśli teraz uruchomimy kwerendę, to tabela wynikowa będzie zawierała jedynie daty narodzin bliźniąt:

 

obrazek

 

e) 1999-11-19, 1999-11-21, 1999-11-22, 1999-11-23, 1999-12-09, 1999-12-12

 

Podsumowując, w pliku odpowiedzi umieszczamy:

 

a) Oskar 62, Maja 61

b) 1999-11-20  23

c) Barbara, Maria, Marzena, Eliza, Janina, Paulina

d) Anna 199-11-21, Wiktoria 1999-11-20

e) 1999-11-19, 1999-11-21, 1999-11-22, 1999-11-23, 1999-12-09, 1999-12-12

 


   I Liceum Ogólnokształcące   
im. Kazimierza Brodzińskiego
w Tarnowie

©2024 mgr Jerzy Wałaszek

Dokument ten rozpowszechniany jest zgodnie z zasadami licencji
GNU Free Documentation License.

Pytania proszę przesyłać na adres email: i-lo@eduinf.waw.pl

W artykułach serwisu są używane cookies. Jeśli nie chcesz ich otrzymywać,
zablokuj je w swojej przeglądarce.
Informacje dodatkowe