INSTRUKCJA DO ĆWICZENIA 5

Podobne dokumenty
Laboratorium z informatyki sem.iii/ćw. 4 Wydział Transportu PW /19

II Tworzenie klasy Prostokąt dziedziczącej z klasy wątku

PROJEKTOWANIE ABSTRAKCYJNEJ KLASY FIGURA PRZECHOWUJĄCEJ WSPÓLNE CECHY OBIEKTÓW GRAFICZNYCH

4. W konstruktorze klasy Grafika wywołaj metodę określającą rozmiary ramki oraz ustaw kolor tła metodą setbackground():

PWŚG Ćwiczenia 13. Ukończoną pracę należy przesłać na adres lub

Informatyka II. Laboratorium.

Sposób tworzenia tabeli przestawnej pokażę na przykładzie listy krajów z podstawowymi informacjami o nich.

Warsztaty dla nauczycieli

Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com

Java: otwórz okienko. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

PWSG Ćwiczenia 12. Wszystkie ukończone zadania należy wysłać na adres: lub

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem.

Informatyka I. Interfejs GUI wysokiego poziomu. Biblioteka Swing. Programowanie zdarzeniowe. Politechnika Warszawska Wydział Transportu 2018

przedmiot kilka razy, wystarczy kliknąć przycisk Wyczaruj ostatni,

Java Podstawy. Michał Bereta

Praktyczne przykłady wykorzystania GeoGebry podczas lekcji na II etapie edukacyjnym.

Programowanie Obiektowe GUI

Zadanie 3. Praca z tabelami

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

4. Funkcje. Przykłady

Język Java część 2 (przykładowa aplikacja)

Access - Aplikacja. Tworzenie bazy danych w postaci aplikacji

Kompilacja javac prog.java powoduje wyprodukowanie kilku plików o rozszerzeniu.class, m.in. Main.class wykonanie: java Main

etrader Pekao Podręcznik użytkownika Strumieniowanie Excel

2.1. Duszek w labiryncie

Politechnika Gdańska Katedra Optoelektroniki i Systemów Elektronicznych

LibreOffice Calc VBA

Baltie 3. Podręcznik do nauki programowania dla klas I III gimnazjum. Tadeusz Sołtys, Bohumír Soukup

Celem ćwiczenia jest zapoznanie się z podstawowymi funkcjami i pojęciami związanymi ze środowiskiem AutoCAD 2012 w polskiej wersji językowej.

dr inż. Piotr Czapiewski Tworzenie aplikacji w języku Java Laboratorium 1

LIVE Gra w życie. LIVE w JavaScript krok po kroku. ANIMACJA Rozpoczynamy od podstawowego schematu stosowanego w animacji

Cw.12 JAVAScript w dokumentach HTML

Instrukcja wprowadzania graficznych harmonogramów pracy w SZOI Wg stanu na r.

Tworzenie szablonów użytkownika

Adobe InDesign lab.1 Jacek Wiślicki, Paweł Kośla. Spis treści: 1 Podstawy pracy z aplikacją Układ strony... 2.

Pętle. Dodał Administrator niedziela, 14 marzec :27

LABORATORIUM 7 Cel: 1_1

EXCEL. Diagramy i wykresy w arkuszu lekcja numer 6. Instrukcja. dla Gimnazjum 36 - Ryszard Rogacz Strona 20

Rozwiązanie ćwiczenia 8a

Języki i metody programowania Java Lab1 Zofia Kruczkiewicz

Dziedziczenie Dana jest klasa Punkt w pliku o nazwie Punkt.java:

Ćwiczenia nr 4. Arkusz kalkulacyjny i programy do obliczeń statystycznych

Projektowanie aplikacji internetowych laboratorium

- Narzędzie Windows Forms. - Przykładowe aplikacje. Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy

Kierunek: ETI Przedmiot: Programowanie w środowisku RAD - Delphi Rok III Semestr 5. Ćwiczenie 5 Aplikacja wielo-okienkowa

Tworzenie prezentacji w MS PowerPoint

Bazy danych kwerendy (moduł 5) 1. Przekopiuj na dysk F:\ bazę M5KW.mdb z dysku wskazanego przez prowadzącego

1. Przypisy, indeks i spisy.

Złożoność obliczeniowa zadania, zestaw 2

Aplikacje mobilne. Pliki zasobów, grafiki, menu, podpinanie zdarzeń. dr Tomasz Jach Instytut Informatyki, Uniwersytet Śląski

Ćwiczenie 1: Pierwsze kroki

lekcja 8a Gry komputerowe MasterMind

Informatyka II. Laboratorium Aplikacja okienkowa

Grafika i komunikacja człowiek komputer Laboratorium. Część 2: Graphics

Podstawy informatyki

Podstawy programowania w języku Visual Basic dla Aplikacji (VBA)

Jak ustawić cele kampanii?

Języki i techniki programowania Ćwiczenia 2

Technologie informacyjne

Algorytmy z powrotami. Algorytm minimax

BAZY DANYCH Panel sterujący

Tablice mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011

Programowanie, algorytmy i struktury danych

UONET+ - moduł Sekretariat. Jak wykorzystać wydruki list w formacie XLS do analizy danych uczniów?

Wyszukiwanie i zamawianie artykułów za pośrednictwem strony internetowej

Ćwiczenia 9 - Swing - część 1

Rozwiązanie ćwiczenia 6a

Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania

Dokąd on zmierza? Przemieszczenie i prędkość jako wektory

Opis implementacji: Implementacja przedstawia Grę w życie jako przykład prostej symulacji opartej na automatach.

Zadania domowe. Ćwiczenie 2. Rysowanie obiektów 2-D przy pomocy tworów pierwotnych biblioteki graficznej OpenGL

1. Umieść kursor w miejscu, w którym ma być wprowadzony ozdobny napis. 2. Na karcie Wstawianie w grupie Tekst kliknij przycisk WordArt.

KONSTRUKCJA TRÓJKĄTA 1 KONSTRUKCJA TRÓJKĄTA 2 KONSTRUKCJA CZWOROKĄTA KONSTRUKCJA OKRĘGU KONSTRUKCJA STYCZNYCH

Aplikacje w środowisku Java

Ćwiczenie 3 z Podstaw programowania. Język C++, programy pisane w nieobiektowym stylu programowania. Zofia Kruczkiewicz

Podstawowe części projektu w Javie

JAVA W SUPER EXPRESOWEJ PIGUŁCE

Zadania do wykonania. Rozwiązując poniższe zadania użyj pętlę for.

Cel: Uczeń, przy użyciu programu GeoGebra, stworzy model symetrii osiowej i pozna jej własności

Microsoft.NET: LINQ to SQL, ASP.NET AJAX

Tworzenie infografik za pomocą narzędzia Canva

INSTRUKCJA DO ĆWICZENIA 13. Animacja wielowątkowa w aplikacjach JME. Gra logistyczna.

Sieciowe Technologie Mobilne. Laboratorium 2

WASM AppInventor Lab 3. Rysowanie i animacja po kanwie PODSTAWY PRACY Z KANWAMI

Rysowanie prostych obiektów graficznych przy użyciu biblioteki AWT (Abstract Window Toolkit)

Kurs do wyboru Wstęp do analizy algorytmów Instytut Matematyki i Informatyki UO 2011/2012

Wybieramy File->New->Project Wybieramy aplikację MFC->MFC Application jak na rysunku poniżej:

Wprowadzenie do języka Java

DYNAMICZNE PRZYDZIELANIE PAMIECI

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Grafika Komputerowa Materiały Laboratoryjne

Tak przygotowane pliki należy umieścić w głównym folderze naszego programu. Klub IKS

Podstawy technologii WWW

Zadanie 9. Projektowanie stron dokumentu

KGGiBM GRAFIKA INŻYNIERSKA Rok III, sem. VI, sem IV SN WILiŚ Rok akademicki 2011/2012

Papyrus. Papyrus. Katedra Cybernetyki i Robotyki Politechnika Wrocławska

MS Word Długi dokument. Praca z długim dokumentem. Kinga Sorkowska

Aplikacje internetowe i rozproszone - laboratorium

Transkrypt:

INSTRUKCJA DO ĆWICZENIA 5 Kontynuacja tworzenia aplikacje umożliwiających oszacowanie szukanych wartości przez symulację doświadczenia losowego, z ilustracją graficzną jego wyników. Zadanie wykonamy dla przykładów szacowania następujących wartości: 1. Prawdopodobieństwa trafienia do tarczy przez trzech strzelców. 2. Wartości oczekiwanej liczby trafień do tarczy. 3. Prawdopodobieństwo wylosowania dokładnie 3 liczb parzystych w lotto. 4. Prawdopodobieństwo, że z odcinków o losowych długościach można zbudować trójkąt. Przykład 1 Trzej strzelcy strzelają do tarczy oddając po jednym strzale. Prawdopodobieństwo trafienia dla pierwszego strzelca wynosi 0.7, dla drugiego 0.5, a dla trzeciego 0.6. Oszacować prawdopodobieństwo trafienia do tarczy przez wszystkich trzech strzelców. 1. Utwórz projekt wykorzystujący pakiet Swing. Projektowi nadaj nazwę Projekt51, a klasie głównej nazwę Strzelcy. 2. Nadaj ramce tytuł Strzelcy i na ramce umieść komponenty jak na rysunku obok: obszar jtextarea1 z opisem zadania dwa przyciski o tytułach Losuj i Restart tabelę jtable1 o 1 wierszu i 4 kolumnach; tytułami kolumn są kolejno Liczba strzałów, Liczba sukcesów, Oszacowanie wyniku, Wartość teoretyczna (odpowiednio określ właściwość model komponentu jtable1) Lewą górną część ramki pozostaw pustą, programowo utworzymy w niej panel, a na panelu umieścimy ilustrację graficzną doświadczenia. 3. Pod nagłówkiem klasy Strzelcy zadeklaruj pola: long lstrzałów, lsukcesów; final double W = 0.21; // wartość teoretyczna wyniku double wynik = 0; // oszacowanie wyniku double[] p = {0.7, 0.5, 0.6; //prawdopodobieństwa trafień kolejnych strzelców boolean[] s = new boolean[3]; // trafienia strzelców Color[] kolor = {Color.red, Color.blue, Color.green; //kolory przypisane kolejnym strzelcom 4. Ustal rozmiar ramki na 500x500 za pomocą metody setsize() 5. Utwórz metodę losowanie() która dla każdego z 3 graczy losuje liczbę rzeczywistą z przedziału [0, 1] i umieszcza w tablicy s wartość true albo false zależnie od tego czy strzelec trafił do tarczy s[i] = r.nextdouble() < p[i]; 6. Uzupełnij metodę losowanie o instrukcje sprawdzające czy doświadczenie losowe zakończyło się sukcesem oraz obliczające częstość tego sukcesu ( tu sukces oznacza, że każdy gracz musi trafić do tarczy). if (s[0] && s[1] && s[2]) //wszyscy strzelcy trafili do tarczy { lsukcesów++; jbutton1.setbackground(color.green); else { wynik = (double) lsukcesów / lstrzałów; // oszacowanie wyniku 7. Utwórz metodę start(), która określa stan początkowy dla serii losowań: lstrzałów = lsukcesów = 0; jtable1.setvalueat(0, 0, 0); jtable1.setvalueat(0, 0, 1); jtable1.setvalueat(null, 0, 2); // zerowanie liczników // usunięcie oszacowania wyniku s[i] = false; 8. Na końcu konstruktora klasy Strzelcy dopisz wywołanie metody start() oraz dodaj instrukcję wpisującą teoretyczną wartość wyniku do ostatniej komórki tabeli: start(); jtable1.setvalueat(w, 0, 3); // wartość teoretyczna do porównania Materiały do użytku wewnętrznego strona 1

9. Dla przycisku Losuj utwórz metodę obsługi zdarzenia actionperformed o treści: lstrzałów++; jtable1.setvalueat(lstrzałów, 0, 0); jtable1.setvalueat(wynik, 0, 2); // wpisanie do tabeli oszacowania wyniku 10. Dla przycisku Restart utwórz metodę obsługi zdarzenia actionperformed, w jej treści wywołaj metodę start() 11. Uruchom aplikację i sprawdź działania przycisków. 12. W celu graficznego zilustrowania pojedynczego doświadczenia utwórz klasę wewnętrzną o nazwie PanelGraficzny dziedzicząca z klasy JPanel zawierającą metodę paintcomponent o następujące treści: protected void paintcomponent(graphics g) { g.setcolor(color.pink); g.filloval(0, 0, 200, 200);//zarys tarczy g.setcolor(color.black); g.drawoval(0, 0, 200, 200);//zarys tarczy if (s[i]) { //rysowanie śladu kuli, gdy jest trafienie //d, a losowe współrzędne biegunowe punktu trafienia //x, y - współrzędne środka punktu trafienia double d = 90 * r.nextdouble(); double a = 2 * Math.PI * r.nextdouble(); int x = 100 + (int) (d * Math.sin(a)); int y = 100 + (int) (d * Math.cos(a)); g.setcolor(kolor[i]); g.filloval(x - 10, y - 10, 20, 20); 13. Pod nagłówkiem klasy Strzelcy zadeklaruj i utwórz obiekt klasy PanelGraficzny o nazwie panel. 14. W konstruktorze klasy głównej dodaj obiekt panel do ramki i za pomocą metody setbounds() ustal jego rozmiary i położenie tak, by miał rozmiar 205x205 i znajdował się w lewym górnym rogu ramki. 15. Aby po każdym kliknięciu przycisku Losuj nastąpiło odświeżenie grafiki, dodaj na końcu metody obsługującej to zdarzenie instrukcję: panel.repaint(); 16. Analogiczną instrukcję dodaj na końcu metody start() 17. Uruchom aplikację i zaobserwuj przebieg losowania. Przykład 2. Szacowanie wartości oczekiwanej. Szacowanie wartości oczekiwanej liczby trafień strzelców z przykładu 1 1. Kliknij prawym przyciskiem myszy na nazwie projektu i za pomocą opcji copy skopiuj Projekt51 na Projekt52. Zmień nazwę klasy głównej na StrzelcyW. W następnych krokach tak zmodyfikujemy Projekt52, by szacować wartość oczekiwaną liczby trafień. 2. Zmień wartość teoretyczną szacowanej wielkości W na 1.8, oraz zmień w tabeli tytuł liczba sukcesów na suma trafień 3. Pod nagłówkiem klasy zadeklaruj zmienną całkowitą suma, która posłuży do zliczania liczby wszystkich trafień do tarczy. 4. W metodzie losowanie() usuń całą instrukcję if związaną z wyznaczeniem liczby sukcesów; W pętli for dodaj instrukcję zwiększająca zmienną suma o jeden w przypadku, gdy strzelec trafi do tarczy. 5. W metodzie obsługującej kliknięcie przycisku Losuj, w metodzie losowanie() oraz w metodzie start() zastąp zmienną lsukcesów zmienną suma. 6. Uruchom aplikację, wielokrotnie wykonaj doświadczenie losowe i zaobserwuj zmiany szacowanej wartości. Przykład 3 Losowanie bez zwracania W grze lotto losujemy 6 liczb z 49. Oszacować prawdopodobieństwo, że dokładnie 3 z wylosowanych liczb są parzyste. Wartość teoretyczna prawdopodobieństwa to 0,33. 1. Utwórz projekt wykorzystujący pakiet Swing. Projektowi nadaj nazwę Projekt53, a klasie głównej nazwę Lotto. 2. Nadaj ramce tytuł Losowanie bez zwracania i w dolnej części ramki umieść komponenty jak na rysunku obok: Materiały do użytku wewnętrznego strona 2

3. Pod nagłówkiem klasy głównej zadeklaruj zmienne: long lgier, lsukcesów; double wynik; double W=0.33; int[] liczby = new int[6]; // wylosowane liczby 4. Ustal rozmiar ramki na 600x400 za pomocą metody setsize() 5. Utwórz metodę losowanie() która umieszcza na liście dynamicznej LK 49 kolejnych liczb całkowitych (Elementami listy muszą być obiekty klasy Integer). int s = 0; // licznik wylosowanych parzystych liczb List< Integer> LK = new ArrayList<>(); for (int i = 1; i <= 49; i++) { LK.add(i); 6. Uzupełnij powyższą metodę o losowanie 6 liczb z listy LK i umieszczenie ich w tablicy liczby; wylosowane liczby są następnie usuwane z listy LK; sprawdzana jest również parzystość wylosowanej liczby. int n = r.nextint(lk.size()); liczby[i] = LK.get(n); LK.remove(n); if (liczby[i] % 2 == 0) { s++; 7. Dopisz na końcu metody losowanie() instrukcje sprawdzające czy doświadczenie losowe zakończyło się sukcesem oraz obliczające prawdopodobieństwo tego sukcesu. (sukces oznacza wylosowanie 3 parzystych liczb): if (s == 3) { lsukcesów++; jbutton1.setbackground(color.green); else { wynik = (double) lsukcesów / lgier; 8. Utwórz metodę start(), która określa stan początkowy dla serii losowań: lgier = lsukcesów = 0; jtable1.setvalueat(0, 0, 0); jtable1.setvalueat(0, 0, 1); jtable1.setvalueat(null, 0, 2); liczby[i] = 0; // zerowanie liczników // usunięcie oszacowania wyniku 9. Na końcu konstruktora klasy Lotto dopisz wywołanie metody start() oraz dodaj instrukcję wpisującą teoretyczną wartość wyniku do ostatniej komórki tabeli: start(); jtable1.setvalueat(w, 0, 3); // wartość teoretyczna do porównania 10. Dla przycisku Losuj utwórz metodę obsługi zdarzenia actionperformed o treści: lgier++; jtable1.setvalueat(lgier, 0, 0); jtable1.setvalueat(wynik, 0, 2); 11. Dla przycisku Restart utwórz metodę obsługi zdarzenia actionperformed, w jej treści wywołaj metodę start() 12. Uruchom aplikację i sprawdź działania przycisków.. 13. W celu graficznego zilustrowania pojedynczego doświadczenia utwórz klasę wewnętrzną o nazwie PanelGraficzny dziedzicząca z klasy JPanel zawierającą metodę paintcomponent() o następujące treści: Materiały do użytku wewnętrznego strona 3

protected void paintcomponent(graphics g) { g.clearrect(0, 0, getwidth(), getheight()); int d = 30; // średnica kuli g.drawrect(10, 10, d * 6, 40); if (liczby[i] % 2 == 0) { g.setcolor(color.green); else { g.setcolor(color.yellow); if (liczby[i] == 0) { g.setcolor(color.white); g.filloval(d * i + 10, 15, d, d); g.setcolor(color.black); g.drawoval(d * i + 10, 15, d, d); if (liczby[i] > 0) { g.drawstring("" + liczby[i], d * i + 10 + 10, d + 5); 14. Pod nagłówkiem klasy Lotto zadeklaruj i utwórz obiekt klasy PanelGraficzny o nazwie panel. 15. W konstruktorze klasy głównej, dodaj obiekt panel do ramki i za pomocą metody setbounds() ustal jego rozmiary i położenie tak, by miał rozmiar 200x60 i żeby lewy górny róg panelu znajdował się w punkcie(100,100). 16. Aby po każdym kliknięciu przycisku Losuj nastąpiło odświeżenie grafiki, dodaj na końcu metody obsługującej to zdarzenie instrukcję: panel.repaint(); 17. Analogiczną instrukcje dodaj na końcu metody start() 18. Uruchom aplikację i zaobserwuj przebieg losowania. Przykład 4 Odcinek o długości L dzielimy w sposób losowy na trzy części. Oszacować prawdopodobieństwo, że z powstałych odcinków L1, L2, L3 można zbudować trójkąt. Warunek na utworzenie trójkąta z trzech odcinków o długościach odpowiednio L1, L2, L3 jest następujący: L1 + L2 > L3 i L1 + L3 > L2 i L2 + L3 > L1 1. Utwórz nowy projekt o nazwie Projekt54, klasę główną nazwij Odcinki. 2. Nadaj ramce tytuł Symulacja doświadczenia losowego i umieść na ramce komponenty jak na rysunku obok. W tabeli jtable2 będą wyświetlane wyniki pojedynczego doświadczenia (wylosowane punkty, długości trzech części odcinka). W tabeli jtable1 wyświetlimy wyniki serii doświadczeń i oszacowanie prawdopodobieństwa. 3. Pod nagłówkiem klasy Odcinki zadeklaruj następujące pola: long ldoświadczeń, lsukcesów; final double w = 0.25; // wartość teoretyczna wyniku double wynik = 0; // oszacowanie wyniku double L = 100; // długość odcinka, który dzielimy na 3 części double d1, d2, d3; // długości odcinków po podziale 4. W klasie Odcinki zdefiniuj metodę losowanie() w której umieścimy algorytm losowego podziału odcinka, zliczanie sukcesów oraz częstość sukcesu będącą szacowaniem szukanej wartości prawdopodobieństwa. double x1 = L * r.nextdouble(); //losowy punkt na odcinku o długości L double x2 = L * r.nextdouble();//losowy punkt na odcinku o długości L // wyznaczanie długości odcinków d1 = Math.min(x1, x2); d2 = Math.abs(x2 - x1); d3 = L - (d1 + d2); jtable2.setvalueat(x1, 0, 0); jtable2.setvalueat(x2, 0, 1); Materiały do użytku wewnętrznego strona 4

jtable2.setvalueat(d1, 0, 2); jtable2.setvalueat(d2, 0, 3); jtable2.setvalueat(d3, 0, 4); if (d1 + d2 > d3 && d1 + d3 > d2 && d2 + d3 > d1) { //warunek sukcesu lsukcesów++; jtable2.setbackground(color.yellow); else { jtable2.setbackground(color.white); wynik = (double) lsukcesów / ldoświadczeń; 5. Utwórz w klasie Odcinki metodę start(), która określa stan początkowy dla serii losowań: ldoświadczeń = lsukcesów = 0; //zerowanie liczników jtable1.setvalueat(0, 0, i); jtable1.setvalueat(w, 0, 3);//wartość teoretyczna do porównania 6. Wywołaj tą metodę w konstruktorze klasy głównej oraz w metodzie obsługi zdarzenia actionperformed dla przycisku Restart 7. Dla przycisku Losuj utwórz metodę obsługi zdarzenia actionperformed o treści: ldoświadczeń++; jtable1.setvalueat(ldoświadczeń, 0, 0); jtable1.setvalueat(wynik, 0, 2); 8. Uruchom aplikację i sprawdź działanie przycisków 9. Po wykonaniu całej instrukcji ćwiczenia, zaproponuj graficzną ilustrację doświadczenia, jako zadanie do samodzielnego wykonania. Wskazówka Jednym ze sposobów graficznej ilustracji doświadczenia może być wykreślenie na panelu kół o promieniach d1 i d3 i o środkach odpowiednio w punktach x1 i x2. Jeśli koła się przecinają, to oznacza, że można z uzyskanych odcinków zbudować trójkąt. Dodatkowo można go wykreślić korzystając z metody fillpolygon(), tak jak na rysunku. Przykładowe zadania na kolokwium 1 Opracować program umożliwiający ilustrację graficzną doświadczenia losowego i oszacowanie szukanej wartości 1. W lotto losujemy 6 liczb z 49.Oszacować prawdopodobieństwo, że wszystkie wylosowane liczby są mniejsze od 30 2. W windzie ośmiopiętrowego domu jedzie 5 pasażerów. Każdy z nich może wysiąść na każdym piętrze z jednakowym prawdopodobieństwem. Oszacować prawdopodobieństwo, że wszyscy wysiądą na różnych piętrach. 3. Z portfela w którym jest 5 banknotów po 20 zł, 3 po 50, i 2 banknoty po 100 zł wybieramy losowo 3 banknoty. Oszacować wartość oczekiwaną łącznej wartości wylosowanych banknotów. 4. W 3 komórkach rozmieszczamy w sposób losowy 4 różne cząstki tak długo aż dokładnie jedna komórka pozostanie pusta. Oszacować wartość oczekiwaną liczby losowań Materiały do użytku wewnętrznego strona 5