JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 1

Podobne dokumenty
1 Wprowadzenie do algorytmiki

Algorytm. a programowanie -

Wykład IV Algorytmy metody prezentacji i zapisu Rzut oka na język PASCAL

LABORATORIUM 7: Problem komiwojażera (TSP) cz. 2

Algorytmy komputerowe. dr inŝ. Jarosław Forenc

Algorytm. Algorytmy Marek Pudełko

Algorytm. Krótka historia algorytmów

Efektywność algorytmów

Porównanie czasów działania algorytmów sortowania przez wstawianie i scalanie

Wykład I Cyfrowa reprezentacja informacji Algorytmy metody prezentacji i zapisu

Podstawy Informatyki. Sprawność algorytmów

Technologie Informacyjne

Informatyka wprowadzenie do algorytmów (II) dr hab. inż. Mikołaj Morzy

3. Podaj elementy składowe jakie powinna uwzględniać definicja informatyki.

Za pierwszy niebanalny algorytm uważa się algorytm Euklidesa wyszukiwanie NWD dwóch liczb (400 a 300 rok przed narodzeniem Chrystusa).

Definicja algorytmu brzmi:

Algorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny

Wprowadzenie do algorytmiki

INFORMATYKA W SZKOLE. Podyplomowe Studia Pedagogiczne. Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227

Algorytmy i struktury danych

Definicje. Algorytm to:

METODY OPISU ALGORYTMÓW KOMPUTEROWYCH

Technologie informacyjne - wykład 12 -

Programowanie proceduralne INP001210WL rok akademicki 2017/18 semestr letni. Wykład 3. Karol Tarnowski A-1 p.

TEORETYCZNE PODSTAWY INFORMATYKI

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 1. Karol Tarnowski A-1 p.

Informatyka 1. Złożoność obliczeniowa

Technologie cyfrowe. Artur Kalinowski. Zakład Cząstek i Oddziaływań Fundamentalnych Pasteura 5, pokój 4.15

Wprowadzenie do złożoności obliczeniowej

Struktury danych i złozoność obliczeniowa. Prof. dr hab. inż. Jan Magott

Algorytm. Krótka historia algorytmów

Złożoność algorytmów. Wstęp do Informatyki

Algorytmy i schematy blokowe

Wykład z Technologii Informacyjnych. Piotr Mika

Projektowanie i Analiza Algorytmów

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 13. Karol Tarnowski A-1 p.

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Wstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy. Wykład 13. Karol Tarnowski A-1 p.

TEORETYCZNE PODSTAWY INFORMATYKI

Technologie informacyjne Wykład VII-IX

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 7 Algorytmy

Podstawy programowania. Podstawy C# Przykłady algorytmów

Algorytmy i struktury danych

Matematyczne Podstawy Informatyki

Algorytm. Słowo algorytm pochodzi od perskiego matematyka Mohammed ibn Musa al-kowarizimi (Algorismus - łacina) z IX w. ne.

Wykład z Podstaw Informatyki dla I roku BO. Piotr Mika

Podstawy Programowania

Podstawy Informatyki. Algorytmy i ich poprawność

Podstawy i języki programowania

REPREZENTACJA LICZBY, BŁĘDY, ALGORYTMY W OBLICZENIACH

Metodyki i techniki programowania

Matematyka dyskretna. Andrzej Łachwa, UJ, /14

Algorytmy, reprezentacja algorytmów.

Aproksymacja funkcji a regresja symboliczna

PROLOG WSTĘP DO INFORMATYKI. Akademia Górniczo-Hutnicza. Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej.

Struktury danych i złożoność obliczeniowa Wykład 7. Prof. dr hab. inż. Jan Magott

Algorytmy i złożoność obliczeniowa. Wojciech Horzelski

Jeszcze o algorytmach

1. Analiza algorytmów przypomnienie

INFORMATYKA SORTOWANIE DANYCH.

Złożoność Obliczeniowa Algorytmów

POLITECHNIKA OPOLSKA

Informatyka 1. Plan dzisiejszych zajęć. zajęcia nr 1. Elektrotechnika, semestr II rok akademicki 2008/2009

Wstęp do informatyki. Maszyna RAM. Schemat logiczny komputera. Maszyna RAM. RAM: szczegóły. Realizacja algorytmu przez komputer

Technologia informacyjna Algorytm Janusz Uriasz

Teraz bajty. Informatyka dla szkół ponadpodstawowych. Zakres rozszerzony. Część 1.

Teoria obliczeń i złożoność obliczeniowa

REPREZENTACJA LICZBY, BŁĘDY, ALGORYTMY W OBLICZENIACH

POLITECHNIKA OPOLSKA

Algorytmy. Programowanie Proceduralne 1

KARTA MODUŁU KSZTAŁCENIA

Metodyki i techniki programowania

Zasady analizy algorytmów

w analizie wyników badań eksperymentalnych, w problemach modelowania zjawisk fizycznych, w analizie obserwacji statystycznych.

Podstawy Programowania. Złożoność obliczeniowa

Wykład I Cyfrowa reprezentacja informacji Algorytmy metody prezentacji i zapisu Tablice (wstęp) Rzut okiem na języki programowania

EGZAMIN - Wersja A. ALGORYTMY I STRUKTURY DANYCH Lisek89 opracowanie kartki od Pani dr E. Koszelew

Podstawy Programowania Algorytmy i programowanie

Komputery, obliczenia, algorytmy Tianhe-2 (MilkyWay-2), system Kylin Linux, Tflops, kw

Podstawy programowania

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015

Opis efektów kształcenia dla modułu zajęć

Podstawy Programowania

Modele Obliczeń. Wykład 1 - Wprowadzenie. Marcin Szczuka. Instytut Matematyki, Uniwersytet Warszawski

Algorytmy komputerowe. dr inż. Jarosław Forenc

Algorytmy. Programowanie Proceduralne 1

Algorytmy i Struktury Danych

Wstęp do informatyki

Zadanie 1 Przygotuj algorytm programu - sortowanie przez wstawianie.

EGZAMIN MATURALNY 2011 INFORMATYKA

1. Informatyka - dyscyplina naukowa i techniczna zajmująca się przetwarzaniem informacji.

Algorytm. Słowo algorytm pochodzi od perskiego matematyka Mohammed ibn Musa al-kowarizimi (Algorismus - łacina) z IX w. ne.

Podstawy Programowania. Złożoność obliczeniowa

Opis problemu i przedstawienie sposobu jego rozwiązania w postaci graficznej. Gimnazjum nr 3 im. Jana Pawła II w Hrubieszowie 1

Piotr Chrząstowski-Wachtel Uniwersytet Warszawski. Al Chwarizmi i trzy algorytmy Euklidesa

Struktury danych i złożoność obliczeniowa Wykład 5. Prof. dr hab. inż. Jan Magott

Wstęp do informatyki- wykład 2

PRZEWODNIK PO PRZEDMIOCIE

ĆWICZENIE 1: Przeszukiwanie grafów cz. 1 strategie ślepe

Struktura danych. Sposób uporządkowania informacji w komputerze.

Transkrypt:

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM Wykład 1 1

MTA s1, sem. III Prowadzący: dr hab. inż. Witold Beluch (p. 149) Instytut Mechaniki i Inżynierii Obliczeniowej konsultacje: plan.polsl.pl wykład: 30h, laboratorium: 30h ZAJĘCIA KOŃCZĄ SIĘ EGZAMINEM Ocena końcowa: E - ocena z egzaminu L - ocena z laboratorium O=0.5 E+0.5 L - obydwie oceny muszą być pozytywne! 2

KRK 3

ZALICZENIE PRZEDMIOTU Wymagania związane z U3: Sprawozdanie w postaci elektronicznej (plik.doc lub.pdf) zawierające: propozycje zadań laboratoryjnych do poszczególnych ćwiczeń. proponowane rozwiązania tychże zadań w postaci kodu źródłowego (możliwego do skompilowania i uruchomienia) pliki.cpp, typowo 1 na zadanie. Szczegóły: W każdej grupie dziekańskiej (wszystkie grupy)!: pierwsze 3 osoby na liście z dziekanatu przygotowują (grupowo) sprawozdanie z propozycjami zadań do Lab2; nie są dopuszczalne grupy jednoosobowe!; następne 3 osoby do Lab3, itd. dotyczy to Lab2-Lab7 oraz Lab8-Lab14 (12 tematów); termin oddania do 14 dni po danym laboratorium; nieoddanie w terminie dodatkowe zadania do zrobienia. 4

ZALICZENIE PRZEDMIOTU Szczegóły cd: Plik ze sprawozdaniem ma zawierać: stronę tytułową, w tym: - numer laboratorium, - tematykę laboratorium, - osoby wykonujące zadania, - grupę dziekańską i rok akademicki, - datę zajęć laboratoryjnych. - pełną i precyzyjną treść zadań, w tym: - co dany program ma robić, - co należy wpisać/przypisać/zainicjalizować, - jakie typy zmiennych (jeśli powinno się podać) są wymagane, - co program ma wypisywać na ekran, - ew. inne wymagania związane z tematyką laboratorium. 5

ZALICZENIE PRZEDMIOTU rok ak. 2016/17 Dotyczy lab. z dnia: 13.10.2016 6

LITERATURA Podstawowa: Dodatkowa: http://xion.org.pl/productions/texts/coding/megatutorial/ Materiały z internetu, własne notatki... 7

LITERATURA dodatkowa: http://wazniak.mimuw.edu.pl 8 8

9

TEMATYKA wykładu 1 Zakres wykładu: o Od problemu do programu; o Algorytmy: o pojęcie algorytmu i przykłady; o cechy algorytmów; o złożoność algorytmów; o zapis algorytmów; o klasyfikacja algorytmów 10

PROGRAMOWANIE Od PROBLEMU do PROGRAMU Problem Algorytmizacja Algorytm Struktury danych Programowanie Kodowanie Program 11

PROGRAMOWANIE Języki programowania o Służą do przedstawiania algorytmów w postaci programów komputerowych. o Tylko algorytm zapisany w postaci programu komputerowego w konkretnym języku programowania może być zrealizowany przez komputer. Struktury danych o Określają sposób uporządkowania informacji w komputerze. o Na strukturach danych operują algorytmy. o np.: tablice (więcej później...) 12

ALGORYTMY Pojęcie algorytmu Abu Abdullah Muhammad ibn Musa al-chuwarizmi Perski matematyk, astronom, geograf i kartograf (ok. 780 - ok. 850). Wikipedia: Urodzony w Chiwie, w latach 813-833 żył w Bagdadzie. Wszystkie jego dzieła zostały napisane po arabsku. Nosił przydomek pana tablic. Dzięki jego pracom na Bliskim Wschodzie zaczęto stosować pochodzące z Indii dziesiętny system liczenia i pozycyjny system zapisu liczb, które wkrótce dotarły do Europy. Cyfry arabskie wyparły cyfry rzymskie w Europie. Jego prace pozwoliły też wprowadzić i wyjaśnić pojęcia zera, ułamków oraz funkcje trygonometryczne sinus i tangens. Jako pierwszy ułożył tablice funkcji sinus i tangens, wprowadził elementy algebry. Termin algebra pochodzi od tytułu jego dzieła Kitāb al-jabr wa'l-muqābala ("Zasady redukcji i przenoszenia"), zaś algorytm od łacińskiej wersji jego nazwiska (Algorismus). 13

ALGORYTMY Algorytm (przykładowe definicje): Skończony, uporządkowany ciąg jasno zdefiniowanych czynności, koniecznych do wykonania pewnego zadania Skończony ciąg czynności, przekształcający zbiór danych wejściowych na zbiór danych wyjściowych (wyników) Przykładowy algorytm ( Noc Naukowców 2014 ): 1) Weź jajka. 2) Rozgrzej patelnię. 3) Rozpuść na patelni masło. 4) Wbij jajka. 5) Dodaj sól. 6) Zawartość patelni mieszaj przez około 3 minuty. 7) Jajecznica gotowa. wynik: dane WE 14

ALGORYTMY o przepis kucharski zawiera obiekty (składniki), ich początkowe wartości (miary) oraz opis działań dających w efekcie potrawę; o instrukcja montażu mebla, urządzenia, klocków zawiera ryciny obrazujące kolejne fazy powstawania składanego obiektu. Elementy (obiekty składowe) i ich liczba (wartości) są również umieszczane w takiej instrukcji; o zapis nutowy określa wysokości i względne czasy trwania nut i pauz między nimi. Obiekty to określenia instrumentów, dane początkowe to np. metrum czy dynamika poszczególnych części; o opisy dojazdu; o opisy układów choreograficznych; o scenopisy przedstawień; o... Zbiór przepisów kulinarnych Stanisława Czernieckiego Compedium ferculorum albo zebranie potraw, Kraków, 1682 15

ALGORYTMY Pierwsze opisy, które później nazwano algorytmami, dotyczyły rozwiązań zadań matematycznych. Pierwszy nietrywialny i nadal używany algorytm: Algorytm Euklidesa wyznaczania największego wspólnego dzielnika dwóch dodatnich liczb całkowitych (wrócimy do tego...) Euklides (ok. 365 - ok. 300 r. p.n.e.) Grecki matematyk pochodzący z Aten, przez większość życia działający w Aleksandrii. Elementy - traktat arytmetyczny i geometryczny w 13 księgach, podstawa nauki geometrii na świecie przez kilkanaście wieków. 16

ALGORYTMY Cechy algorytmu: o o o o Skończoność Musi zapewnić osiągnięcie rozwiązania w skończonej liczbie kroków (zatem w skończonym czasie). Dokładna liczba kroków nie musi być znana a priori. Komunikat o błędzie lub braku rozwiązania jest jednym z możliwych poprawnych zakończeń realizacji algorytmu. Często - warunek zakończenia (np. kryterium dokładności) by algorytm nie wykonywał się w nieskończoność. o o Kompletność Musi uwzględnić wszystkie możliwe przypadki które mogą wystąpić w trakcie realizacji. Dopuszcza wystąpienia błędów (numerycznych i logicznych ) i posiada system reakcji na nie (komunikaty o błędach, stosowne zakończenie działania). 17

ALGORYTMY o o Jednoznaczność Te same dane wejściowe zawsze te same wyniki działania algorytmu. Jest niezależny od momentu jego uruchomienia, wpływu innych programów, sprzętu, kodowania znaków, itp. Algorytm jest poprawny, jeżeli: o o algorytm zatrzymuje się po skończonej liczbie kroków (posiada własność stopu). dla danych spełniających warunek początkowy (WP), algorytm generuje dane spełniające warunek końcowy (WK). 18

ALGORYTMY Algorytm Euklidesa znajdowania największego wspólnego dzielnika: o gdy mniejsza z liczb jest równa zero, to NWD jest równy drugiej z nich; o gdy obie są dodatnie, to NWD jest równy największemu wspólnemu dzielnikowi ich różnicy oraz mniejszej z nich (84,36) =>(48,36)=>(12,36)=>(36,12)=>(24,12)=>(12,12)=>(0,12)=>(12,0)=>12 zapis w pseudokodzie (o tym później...) http://wazniak.mimuw.edu.pl/index.php?title=wstęp_do_programowania/wstęp_do_algorytmów 19

ALGORYTMY Spróbujmy dobrać złośliwe dane wejściowe, np.: a = 10 30, b = 1 Liczba pętli algorytmu: 10 30 Może istnieć kilka przepisów, które dają te same wyniki: Dla a = 10 30, b = 1 liczba pętli < 150. Tu już nie tak oczywiste będzie dobranie kłopotliwych danych; więcej: http://wazniak.mimuw.edu.pl/index.php?title=wstęp_do_programowania/wstęp_do_algorytmów 20

ALGORYTMY Złożoność algorytmu: Ilość zasobów komputerowych niezbędna do wykonania algorytmu. Mierzona wymaganiami czasowymi T i pamięciowymi S. W jakich jednostkach? o o Dla złożoności czasowej: wykonanie jednej tzw. operacji dominującej (złożoność czasowa powinna być określana w oderwaniu od możliwości sprzętowych czy języka programowania). Dla złożoności pamięciowej: zwykle słowo pamięci maszyny. Operacja dominująca to np.: dla sortowania: porównanie 2 elementów w ciągu wejściowym, dla wyznaczania wartości wielomianu operacje +, -, /, *. dla znajdowania najkrótszej drogi przejście między dwoma węzłami (miastami). 21

ALGORYTMY Rzędy złożoności (najczęściej spotykane): o 1 stała; o log n logarytmiczna; o n liniowa; o n log n liniowo-logarytmiczna; o n 2 kwadratowa; o n c wielomianowa; o 2 n, n! wykładnicza. n wielkość danych algorytmu, np.: - dla sortowania liczba elementów w ciągu wejściowym; - dla wyznaczania wartości wielomianu jego stopień; - dla znajdowania najkrótszej drogi liczba węzłów. Na złożoność czasową składają się dwie wartości: o złożoność pesymistyczna (taka, która charakteryzuje najgorszy przypadek); o złożoność oczekiwana (dla typowych danych wejściowych). 22

ALGORYTMY Np. sortowanie n obiektów: o o o sprawdzenie wszystkich możliwości: O(n!) wykładnicza; algorytm bąbelkowy: O(n 2 ) kwadratowa; algorytm szybki - O(n log n) - liniowo-logarytmiczna. O(. ) patrz: następny slajd... Dopiero znalezienie algorytmu o niższym rzędzie złożoności jest istotnym ulepszeniem rozwiązania danego zadania algorytmicznego. Najlepszym sposobem przyspieszania komputerów jest obarczanie ich mniejszą liczbą działań (szybszymi algorytmami). [Ralf Gomory, IBM] 23

ALGORYTMY Notacja O(. ): Mówimy, że funkcja f(n) złożoności algorytmu jest co najwyżej rzędu O(g(n)) i zapisujemy: f(n) =O(g(n)) jeśli istnieją: stała rzeczywista c > 0 oraz stała naturalna n 0 takie, że dla każdego n n 0 zachodzi nierówność: np.: n 2 + 2n = O(n 2 ) gdyż dla każdego naturalnego n: Inne notacje: f(n) c g(n) n 2 + 2n 3n 2 - f(n) = (g(n)) f jest co najmniej rzędu g - f(n) = (g(n)) f jest dokładnie rzędu g 24

ALGORYTMY Np.: jeśli jedna operacja trwa 1 ms: Typ złożoności Oznaczenie n 10 50 100 logarytmiczna logn 0.000003 s 0.000006 s 0.000007 s liniowa n 0.00001 s 0.00005 s 0.0001 s liniowologarytmiczna n logn 0.00003 s 0.0003 s 0.0007 s kwadratowa n 2 0.0001 s 0.0025 s 0.01 s wielomianowa n k ; k=3 0.001 s 0.008 s 1 s wykładnicza 2 n 0.001 s 35.6 lat 4 10 16 lat wykładnicza n! 3.6 s 2.6 10 68 lat 3 10 144 lat 25

ALGORYTMY Cykl Eulera (zadanie łatwe ): cykl w grafie, który przechodzi przez każdą krawędź niezorientowanego grafu dokładnie jeden raz (przez węzły może przechodzić wielokrotnie). Cykl Hamiltona (zadanie trudne ): cykl w grafie, w którym każdy wierzchołek grafu występuje dokładnie jeden raz. (znalezienie cyklu Hamiltona o minimalnej sumie wag krawędzi jest równoważne rozwiązaniu problemu komiwojażera). William R. Hamilton (1805-1865): 26

ALGORYTMY Zadanie (problem) komiwojażera Znajdź najkrótszą drogę między danymi miastami (węzłami), przy czym: o należy odwiedzić wszystkie miasta; o każde miasto można odwiedzić tylko jeden raz; o należy wrócić do miasta początkowego; o kolejność odwiedzanych miast jest dowolna. 4 miasta: 3 możliwości 9 miast: 20 160 możliwości 10 miast: 181 440 możliwości... Liczba możliwych tras: n 2 1! jeśli 100 miast 1 minuta, to: 101 ok. 2 godzin 102 7 dni 103 2 lata... 27

Rekordy: ALGORYTMY o rok 1954: 49 miast o rok 1980: 318 miast o rok 1998: 13 509 miast w USA o rok 2001: 15 112 miast w Niemczech o rok 2004: 24 978 miast w Szwecji Jak sprawdzić, czy nie istnieje krótsza trasa? http://www.math.uwaterloo.ca/tsp/index.html 28

ALGORYTMY Np.: Znaleźć najkrótszą trasę dla Bardzo Ważnego Polityka (BWP) przez wszystkie miasta wojewódzkie. o start: Warszawa. 15! o możliwości jest: 2 o podział administracyjny 1975-1998: 48! 2 29 29

Na superkomputerze o mocy 1 PFLOPS o o ALGORYTMY 15!/2 => ok. 0.005 sek. 48!/2 => ok. 1.5*10 38 lat FLOPS (ang. FLoating point Operations Per Second) liczba operacji zmiennoprzecinkowych na sekundę. PFLOPS petaflops: 10 15 FLOPS Prometheus (27.04.2015) - 1.7 PFLOPS informatyka w pierwszej + 30 na świecie 30 30

ALGORYTMY Poszukuje się skutecznych algorytmów przybliżonych szukania rozwiązań, jak np. metody inteligencji obliczeniowej (algorytmy ewolucyjne, sztuczne systemy immunologiczne, algorytmy mrówkowe itp.). ale to już temat na zupełnie inny wykład... 31

ZAPIS ALGORYTMU 1. Opis słowny (zwykle jako lista kroków) - proste zdania (lub równoważniki zdań) w trybie rozkazującym. 1) Weź jajka. 2) Rozgrzej patelnię.... Dla algorytmu Euklidesa np.: 32

ZAPIS ALGORYTMU 2. Zapis graficzny (schemat blokowy, sieć działań) o zestaw symbolicznych elementów odpowiadających czynnościom; o elementarne czynności oznaczone blokami (węzły), kolejność wyznaczona przez linie łączące węzły; o struktura algorytmu niezależna od maszyny i rodzaju kodowania liczb; o można w ten sposób zapisać każdy algorytm; o każdy algorytm można zapisać za pomocą różnych schematów blokowych 33

ZAPIS ALGORYTMU Reguły tworzenia: o Schemat blokowy składa się z bloków połączonych zorientowanymi liniami; o Bloki obrazują ciąg operacji; o Zawsze wykonywane są albo wszystkie instrukcje w bloku albo żadna; o Dalsze operacje nie zależą od poprzednich wariantów, chyba że zależności te zostały przekazane za pomocą danych; o Kolejność wykonania operacji jest ściśle określona przez zorientowane linie łączące poszczególne bloki; o Do każdego bloku może prowadzić co najwyżej jedna linia; o Linie mogą się łączyć ale nie mogą się rozdzielać (bez bloku decyzyjnego). 34

ZAPIS ALGORYTMU Bloki (nie wszystkie...): - blok startu jedno WY oznaczające początek algorytmu start - blok stopu jedno WE oznaczające koniec algorytmu stop - blok operacyjny (obliczeniowy) jedno WE i jedno WY: realizacja elementarnej czynności operacja - blok decyzyjny (warunkowy) jedno WE i dwa (lub więcej) WY: miejsce rozgałęziania programu w zależności od spełnienia warunku warunek wartość 2 wartość 1 - blok wejścia-wyjścia jedno WE i jedno WY: miejsce wymiany danych ze światem zewnętrznym dane 35

ZAPIS ALGORYTMU Dla algorytmu Euklidesa np.: 36

ZAPIS ALGORYTMU Każdy algorytm można zapisać za pomocą różnych schematów blokowych: za: Witold Marańda, Politechnika Łódzka, Algorytmy i struktury danych, http://neo.dmcs.pl/aisd/ 37

ZAPIS ALGORYTMU A B? Optymalizacja schematu blokowego polega na znalezieniu schematu najlepszego dla określonego kryterium (rozmiaru, szybkości, możliwości rozbudowy). 38