Rachunek_prawdopodobienstwa/Przewodnik_studenta_lab/wstepdoR.ipynb

2044 lines
185 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"cells": [
{
"cell_type": "markdown",
"id": "7f05d56c-1de6-459d-a3b0-2e02d90cff5d",
"metadata": {},
"source": [
"# Bardzo krótkie wprowadzenie do programu R\n",
"\n",
"## Podstawowe informacje\n",
"\n",
"* R - język programowania / pakiet statystyczny.\n",
"* Jest to język darmowy, rozpowszechniany na licencji GNU General Public License (GPL).\n",
"* Jest przydatny szczególnie dla osób zainteresowanych statystyką/analizą danych.\n",
"* R zawiera ponad 10000 pakietów do różnych zastosowań.\n",
"* Program R można pobrać z następującej [strony](https://cran.r-project.org/).\n",
"\n"
]
},
{
"cell_type": "markdown",
"id": "08e52962-d702-40bb-8b4e-d5e91f96fd3f",
"metadata": {},
"source": [
"## RStudio\n",
"\n",
"* R studio - edytor do programu R, ułatwiający pracę z tym programem.\n",
"* dystrybuowany na licencji AGPL v3.\n",
"* w RStudio można też wykonywać kody napisane w Pythonie.\n",
"* RStudio można pobrać z następującej [strony](https://posit.co/products/open-source/rstudio/).\n",
"* Przykładowy wygląd paneli Rstudio zaprezentowany jest poniżej.\n",
"\n",
"\n",
"![RStudio](rstudio.png)"
]
},
{
"cell_type": "markdown",
"id": "eda2cba4-2402-4c02-a6c2-b1d78cd61837",
"metadata": {},
"source": [
"## Pakiety\n",
"\n",
"Aby w pełni korzystać z możliwości R, będziemy wykorzystywać różne gotowe pakiety.\n",
"* Do instalacji pakietu używamy polecenia `install.packages()`.\n",
"* Do załadowania pakietu używamy polecenia `library()`.\n",
"* Jeśli używamy RStudio możemy wyświetlić listę zainstalowanych i załadowanych pakietów (na wcześniej zaprezentowanym rysunku znajduje się ona w prawym dolnym rogu - załadowane pakiety oznaczone są haczykiem). Ponadto, możemy też ładować pakiety klikając na kwadraciki znajdujące się na tej liście przy nazwie odpowiedniego pakietu.\n",
"\n",
"**Uwaga:** Nie wszystkie pakiety są dostępne w wersji online Jupytera. W związku z tym poniższy i kolejne przykłady mogą wymagać przekopiowania instrukcji do RStudio."
]
},
{
"cell_type": "code",
"execution_count": 42,
"id": "8995ee46-f951-4196-9fa1-703ee4710e4d",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"Installing package into /usr/local/lib/R/site-library\n",
"(as lib is unspecified)\n",
"\n",
"Warning message in install.packages(\"gtools\"):\n",
"“'lib = \"/usr/local/lib/R/site-library\"' is not writable”\n"
]
},
{
"ename": "ERROR",
"evalue": "Error in install.packages(\"gtools\"): unable to install packages\n",
"output_type": "error",
"traceback": [
"Error in install.packages(\"gtools\"): unable to install packages\nTraceback:\n",
"1. install.packages(\"gtools\")",
"2. stop(\"unable to install packages\")"
]
}
],
"source": [
"install.packages(\"gtools\")\n",
"library(\"gtools\")"
]
},
{
"cell_type": "markdown",
"id": "987aaa93-8f98-4715-a052-f6d247bf89ef",
"metadata": {},
"source": [
"## Wektory i macierze\n",
"\n",
"Jednym z podstawowych obiektów, które będą nas interesowały w kontekście naszych zajęć są wektory i macierze.\n",
"\n",
"### Definiowanie wektorów\n",
"\n",
"Poniżej przedstawimy kilka podstawowych sposobów definiowania wektorów wraz z przykładami.\n",
"\n",
"* Wektory możemy przypisać do zmiennej używając jednego z operatorów: `=`, `<-`, `->`.\n",
"* Podstawową funkcją służącą do definiowania wektorów jest `c()`, gdzie w nawiasach wpisujemy kolejne elementy wektora. "
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "e4462a8a-bf7f-4abe-b91d-12596c0fe57d",
"metadata": {},
"outputs": [],
"source": [
"a = c(1, 2, -4)\n",
"b = c('as', 'krol', 'dama')"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "d1989341-594b-4b3e-bc64-77f235976565",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<style>\n",
".list-inline {list-style: none; margin:0; padding: 0}\n",
".list-inline>li {display: inline-block}\n",
".list-inline>li:not(:last-child)::after {content: \"\\00b7\"; padding: 0 .5ex}\n",
"</style>\n",
"<ol class=list-inline><li>1</li><li>2</li><li>-4</li></ol>\n"
],
"text/latex": [
"\\begin{enumerate*}\n",
"\\item 1\n",
"\\item 2\n",
"\\item -4\n",
"\\end{enumerate*}\n"
],
"text/markdown": [
"1. 1\n",
"2. 2\n",
"3. -4\n",
"\n",
"\n"
],
"text/plain": [
"[1] 1 2 -4"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"a"
]
},
{
"cell_type": "code",
"execution_count": 45,
"id": "8fa93538-c379-4907-b109-6f7a5fef4421",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<style>\n",
".list-inline {list-style: none; margin:0; padding: 0}\n",
".list-inline>li {display: inline-block}\n",
".list-inline>li:not(:last-child)::after {content: \"\\00b7\"; padding: 0 .5ex}\n",
"</style>\n",
"<ol class=list-inline><li>'as'</li><li>'krol'</li><li>'dama'</li></ol>\n"
],
"text/latex": [
"\\begin{enumerate*}\n",
"\\item 'as'\n",
"\\item 'krol'\n",
"\\item 'dama'\n",
"\\end{enumerate*}\n"
],
"text/markdown": [
"1. 'as'\n",
"2. 'krol'\n",
"3. 'dama'\n",
"\n",
"\n"
],
"text/plain": [
"[1] \"as\" \"krol\" \"dama\""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"b"
]
},
{
"cell_type": "markdown",
"id": "463223a4-571c-448b-98e4-b3b56e7adbaa",
"metadata": {},
"source": [
"* Polecenie `i:j`, gdzie $i,j$ to liczby całkowite, tworzy ciąg arytmetyczny o pierwszym elemencie równym $i$ oraz różnicy równej $1$ (jeśli $j>i$) lub $-1$ (jeśli $j<i$), którego ostatni wyraz nie przekracza $j$.\n",
"* Polecenie `seq(from=i,to=j,by=r)`, gdzie $i,j,r$ to liczby całkowite, tworzy ciąg arytmetyczny o pierwszym elemencie równym $i$ oraz różnicy równej $r$, którego ostatni wyraz nie przekracza $j$."
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "3def41c0-675f-4425-9a91-7968f3eca724",
"metadata": {},
"outputs": [],
"source": [
"c = 2:9\n",
"d = 9:2\n",
"e = seq(2, 9, 3)\n",
"f = seq(10, 1, -1.5)"
]
},
{
"cell_type": "code",
"execution_count": 47,
"id": "c026f39b-bb98-4deb-8bb8-3778a9e2f188",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<style>\n",
".list-inline {list-style: none; margin:0; padding: 0}\n",
".list-inline>li {display: inline-block}\n",
".list-inline>li:not(:last-child)::after {content: \"\\00b7\"; padding: 0 .5ex}\n",
"</style>\n",
"<ol class=list-inline><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li><li>9</li></ol>\n"
],
"text/latex": [
"\\begin{enumerate*}\n",
"\\item 2\n",
"\\item 3\n",
"\\item 4\n",
"\\item 5\n",
"\\item 6\n",
"\\item 7\n",
"\\item 8\n",
"\\item 9\n",
"\\end{enumerate*}\n"
],
"text/markdown": [
"1. 2\n",
"2. 3\n",
"3. 4\n",
"4. 5\n",
"5. 6\n",
"6. 7\n",
"7. 8\n",
"8. 9\n",
"\n",
"\n"
],
"text/plain": [
"[1] 2 3 4 5 6 7 8 9"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"c"
]
},
{
"cell_type": "code",
"execution_count": 48,
"id": "c71d4831-8d80-49e0-9a4b-085911c70070",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<style>\n",
".list-inline {list-style: none; margin:0; padding: 0}\n",
".list-inline>li {display: inline-block}\n",
".list-inline>li:not(:last-child)::after {content: \"\\00b7\"; padding: 0 .5ex}\n",
"</style>\n",
"<ol class=list-inline><li>9</li><li>8</li><li>7</li><li>6</li><li>5</li><li>4</li><li>3</li><li>2</li></ol>\n"
],
"text/latex": [
"\\begin{enumerate*}\n",
"\\item 9\n",
"\\item 8\n",
"\\item 7\n",
"\\item 6\n",
"\\item 5\n",
"\\item 4\n",
"\\item 3\n",
"\\item 2\n",
"\\end{enumerate*}\n"
],
"text/markdown": [
"1. 9\n",
"2. 8\n",
"3. 7\n",
"4. 6\n",
"5. 5\n",
"6. 4\n",
"7. 3\n",
"8. 2\n",
"\n",
"\n"
],
"text/plain": [
"[1] 9 8 7 6 5 4 3 2"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"d"
]
},
{
"cell_type": "code",
"execution_count": 49,
"id": "e15280e7-d101-41dc-bd8e-afc5f9af2142",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<style>\n",
".list-inline {list-style: none; margin:0; padding: 0}\n",
".list-inline>li {display: inline-block}\n",
".list-inline>li:not(:last-child)::after {content: \"\\00b7\"; padding: 0 .5ex}\n",
"</style>\n",
"<ol class=list-inline><li>2</li><li>5</li><li>8</li></ol>\n"
],
"text/latex": [
"\\begin{enumerate*}\n",
"\\item 2\n",
"\\item 5\n",
"\\item 8\n",
"\\end{enumerate*}\n"
],
"text/markdown": [
"1. 2\n",
"2. 5\n",
"3. 8\n",
"\n",
"\n"
],
"text/plain": [
"[1] 2 5 8"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"e"
]
},
{
"cell_type": "code",
"execution_count": 50,
"id": "33d159fc-867b-4752-a52f-3fe36ef5af62",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<style>\n",
".list-inline {list-style: none; margin:0; padding: 0}\n",
".list-inline>li {display: inline-block}\n",
".list-inline>li:not(:last-child)::after {content: \"\\00b7\"; padding: 0 .5ex}\n",
"</style>\n",
"<ol class=list-inline><li>10</li><li>8.5</li><li>7</li><li>5.5</li><li>4</li><li>2.5</li><li>1</li></ol>\n"
],
"text/latex": [
"\\begin{enumerate*}\n",
"\\item 10\n",
"\\item 8.5\n",
"\\item 7\n",
"\\item 5.5\n",
"\\item 4\n",
"\\item 2.5\n",
"\\item 1\n",
"\\end{enumerate*}\n"
],
"text/markdown": [
"1. 10\n",
"2. 8.5\n",
"3. 7\n",
"4. 5.5\n",
"5. 4\n",
"6. 2.5\n",
"7. 1\n",
"\n",
"\n"
],
"text/plain": [
"[1] 10.0 8.5 7.0 5.5 4.0 2.5 1.0"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"f"
]
},
{
"cell_type": "markdown",
"id": "ad18788d-ade0-469a-960d-c2b776509b51",
"metadata": {},
"source": [
"* Polecenie `rep(x,...)` pozwala tworzyć wektory, w których elementy się powtarzają. W tym wypadku `x` jest wektorem elementów, które mają się powtórzyć, a w miejsce kropek wpisujemy informację o tym, ile razy mają się powtórzyć elementy (jeśli wpiszemy tu liczbę $n$, to cały wektor zostanie powtórzony $n$ razy, a jeśli podamy wektor liczb `v` o tej samej długości, co `x`, to każdy element wektora `x` zostanie powtórzony tyle razy, ile wskazuje na to odpowiednia współrzędna wektora `v`)."
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "7919afd8-5745-4cce-a159-f347c9987df7",
"metadata": {},
"outputs": [],
"source": [
"g = rep(c('as', 'krol'), 2)\n",
"h = rep(c('as', 'krol'), c(2, 3))"
]
},
{
"cell_type": "code",
"execution_count": 52,
"id": "28e083ab-fb20-4011-a426-319a32460cfa",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<style>\n",
".list-inline {list-style: none; margin:0; padding: 0}\n",
".list-inline>li {display: inline-block}\n",
".list-inline>li:not(:last-child)::after {content: \"\\00b7\"; padding: 0 .5ex}\n",
"</style>\n",
"<ol class=list-inline><li>'as'</li><li>'krol'</li><li>'as'</li><li>'krol'</li></ol>\n"
],
"text/latex": [
"\\begin{enumerate*}\n",
"\\item 'as'\n",
"\\item 'krol'\n",
"\\item 'as'\n",
"\\item 'krol'\n",
"\\end{enumerate*}\n"
],
"text/markdown": [
"1. 'as'\n",
"2. 'krol'\n",
"3. 'as'\n",
"4. 'krol'\n",
"\n",
"\n"
],
"text/plain": [
"[1] \"as\" \"krol\" \"as\" \"krol\""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"g"
]
},
{
"cell_type": "code",
"execution_count": 53,
"id": "af092b89-e49c-4d55-815f-b0b7bacee3f3",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<style>\n",
".list-inline {list-style: none; margin:0; padding: 0}\n",
".list-inline>li {display: inline-block}\n",
".list-inline>li:not(:last-child)::after {content: \"\\00b7\"; padding: 0 .5ex}\n",
"</style>\n",
"<ol class=list-inline><li>'as'</li><li>'as'</li><li>'krol'</li><li>'krol'</li><li>'krol'</li></ol>\n"
],
"text/latex": [
"\\begin{enumerate*}\n",
"\\item 'as'\n",
"\\item 'as'\n",
"\\item 'krol'\n",
"\\item 'krol'\n",
"\\item 'krol'\n",
"\\end{enumerate*}\n"
],
"text/markdown": [
"1. 'as'\n",
"2. 'as'\n",
"3. 'krol'\n",
"4. 'krol'\n",
"5. 'krol'\n",
"\n",
"\n"
],
"text/plain": [
"[1] \"as\" \"as\" \"krol\" \"krol\" \"krol\""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"h"
]
},
{
"cell_type": "markdown",
"id": "07b9abb0-6076-4a04-8a42-029f13242945",
"metadata": {},
"source": [
"* Istnieje kilka wbudowanych, przydatnych wektorów, np.:\n",
" * `letters`: wektor zawierajacy $26$-literowy alfabet (małe litery);\n",
"\t* `LETTERS`: wektor zawierajacy $26$-literowy alfabet (duże litery);\n",
"\t* `month.name`: wektor zawierający nazwy miesięcy (po angielsku)."
]
},
{
"cell_type": "code",
"execution_count": 54,
"id": "cfae82f1-8c0d-4e46-b711-19be8ada0360",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<style>\n",
".list-inline {list-style: none; margin:0; padding: 0}\n",
".list-inline>li {display: inline-block}\n",
".list-inline>li:not(:last-child)::after {content: \"\\00b7\"; padding: 0 .5ex}\n",
"</style>\n",
"<ol class=list-inline><li>'a'</li><li>'b'</li><li>'c'</li><li>'d'</li><li>'e'</li><li>'f'</li><li>'g'</li><li>'h'</li><li>'i'</li><li>'j'</li><li>'k'</li><li>'l'</li><li>'m'</li><li>'n'</li><li>'o'</li><li>'p'</li><li>'q'</li><li>'r'</li><li>'s'</li><li>'t'</li><li>'u'</li><li>'v'</li><li>'w'</li><li>'x'</li><li>'y'</li><li>'z'</li></ol>\n"
],
"text/latex": [
"\\begin{enumerate*}\n",
"\\item 'a'\n",
"\\item 'b'\n",
"\\item 'c'\n",
"\\item 'd'\n",
"\\item 'e'\n",
"\\item 'f'\n",
"\\item 'g'\n",
"\\item 'h'\n",
"\\item 'i'\n",
"\\item 'j'\n",
"\\item 'k'\n",
"\\item 'l'\n",
"\\item 'm'\n",
"\\item 'n'\n",
"\\item 'o'\n",
"\\item 'p'\n",
"\\item 'q'\n",
"\\item 'r'\n",
"\\item 's'\n",
"\\item 't'\n",
"\\item 'u'\n",
"\\item 'v'\n",
"\\item 'w'\n",
"\\item 'x'\n",
"\\item 'y'\n",
"\\item 'z'\n",
"\\end{enumerate*}\n"
],
"text/markdown": [
"1. 'a'\n",
"2. 'b'\n",
"3. 'c'\n",
"4. 'd'\n",
"5. 'e'\n",
"6. 'f'\n",
"7. 'g'\n",
"8. 'h'\n",
"9. 'i'\n",
"10. 'j'\n",
"11. 'k'\n",
"12. 'l'\n",
"13. 'm'\n",
"14. 'n'\n",
"15. 'o'\n",
"16. 'p'\n",
"17. 'q'\n",
"18. 'r'\n",
"19. 's'\n",
"20. 't'\n",
"21. 'u'\n",
"22. 'v'\n",
"23. 'w'\n",
"24. 'x'\n",
"25. 'y'\n",
"26. 'z'\n",
"\n",
"\n"
],
"text/plain": [
" [1] \"a\" \"b\" \"c\" \"d\" \"e\" \"f\" \"g\" \"h\" \"i\" \"j\" \"k\" \"l\" \"m\" \"n\" \"o\" \"p\" \"q\" \"r\" \"s\"\n",
"[20] \"t\" \"u\" \"v\" \"w\" \"x\" \"y\" \"z\""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"letters"
]
},
{
"cell_type": "code",
"execution_count": 55,
"id": "ffb30915-c2d3-48a9-a813-ba64907c9730",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<style>\n",
".list-inline {list-style: none; margin:0; padding: 0}\n",
".list-inline>li {display: inline-block}\n",
".list-inline>li:not(:last-child)::after {content: \"\\00b7\"; padding: 0 .5ex}\n",
"</style>\n",
"<ol class=list-inline><li>'A'</li><li>'B'</li><li>'C'</li><li>'D'</li><li>'E'</li><li>'F'</li><li>'G'</li><li>'H'</li><li>'I'</li><li>'J'</li><li>'K'</li><li>'L'</li><li>'M'</li><li>'N'</li><li>'O'</li><li>'P'</li><li>'Q'</li><li>'R'</li><li>'S'</li><li>'T'</li><li>'U'</li><li>'V'</li><li>'W'</li><li>'X'</li><li>'Y'</li><li>'Z'</li></ol>\n"
],
"text/latex": [
"\\begin{enumerate*}\n",
"\\item 'A'\n",
"\\item 'B'\n",
"\\item 'C'\n",
"\\item 'D'\n",
"\\item 'E'\n",
"\\item 'F'\n",
"\\item 'G'\n",
"\\item 'H'\n",
"\\item 'I'\n",
"\\item 'J'\n",
"\\item 'K'\n",
"\\item 'L'\n",
"\\item 'M'\n",
"\\item 'N'\n",
"\\item 'O'\n",
"\\item 'P'\n",
"\\item 'Q'\n",
"\\item 'R'\n",
"\\item 'S'\n",
"\\item 'T'\n",
"\\item 'U'\n",
"\\item 'V'\n",
"\\item 'W'\n",
"\\item 'X'\n",
"\\item 'Y'\n",
"\\item 'Z'\n",
"\\end{enumerate*}\n"
],
"text/markdown": [
"1. 'A'\n",
"2. 'B'\n",
"3. 'C'\n",
"4. 'D'\n",
"5. 'E'\n",
"6. 'F'\n",
"7. 'G'\n",
"8. 'H'\n",
"9. 'I'\n",
"10. 'J'\n",
"11. 'K'\n",
"12. 'L'\n",
"13. 'M'\n",
"14. 'N'\n",
"15. 'O'\n",
"16. 'P'\n",
"17. 'Q'\n",
"18. 'R'\n",
"19. 'S'\n",
"20. 'T'\n",
"21. 'U'\n",
"22. 'V'\n",
"23. 'W'\n",
"24. 'X'\n",
"25. 'Y'\n",
"26. 'Z'\n",
"\n",
"\n"
],
"text/plain": [
" [1] \"A\" \"B\" \"C\" \"D\" \"E\" \"F\" \"G\" \"H\" \"I\" \"J\" \"K\" \"L\" \"M\" \"N\" \"O\" \"P\" \"Q\" \"R\" \"S\"\n",
"[20] \"T\" \"U\" \"V\" \"W\" \"X\" \"Y\" \"Z\""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"LETTERS"
]
},
{
"cell_type": "code",
"execution_count": 56,
"id": "db9ffde1-3453-4e97-8f30-c1d95f1f716e",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<style>\n",
".list-inline {list-style: none; margin:0; padding: 0}\n",
".list-inline>li {display: inline-block}\n",
".list-inline>li:not(:last-child)::after {content: \"\\00b7\"; padding: 0 .5ex}\n",
"</style>\n",
"<ol class=list-inline><li>'January'</li><li>'February'</li><li>'March'</li><li>'April'</li><li>'May'</li><li>'June'</li><li>'July'</li><li>'August'</li><li>'September'</li><li>'October'</li><li>'November'</li><li>'December'</li></ol>\n"
],
"text/latex": [
"\\begin{enumerate*}\n",
"\\item 'January'\n",
"\\item 'February'\n",
"\\item 'March'\n",
"\\item 'April'\n",
"\\item 'May'\n",
"\\item 'June'\n",
"\\item 'July'\n",
"\\item 'August'\n",
"\\item 'September'\n",
"\\item 'October'\n",
"\\item 'November'\n",
"\\item 'December'\n",
"\\end{enumerate*}\n"
],
"text/markdown": [
"1. 'January'\n",
"2. 'February'\n",
"3. 'March'\n",
"4. 'April'\n",
"5. 'May'\n",
"6. 'June'\n",
"7. 'July'\n",
"8. 'August'\n",
"9. 'September'\n",
"10. 'October'\n",
"11. 'November'\n",
"12. 'December'\n",
"\n",
"\n"
],
"text/plain": [
" [1] \"January\" \"February\" \"March\" \"April\" \"May\" \"June\" \n",
" [7] \"July\" \"August\" \"September\" \"October\" \"November\" \"December\" "
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"month.name"
]
},
{
"cell_type": "markdown",
"id": "10deab8f-4fb1-4091-ad6c-e5c3acf0a930",
"metadata": {},
"source": [
"### Definiowanie macierzy\n",
"\n",
"Pokażemy teraz, jak możemy definiować macierze.\n",
"\n",
"* Podstawowym poleceniem do generowania macierzy jest `matrix(v, nrow=n, ncol=m, byrow=FALSE)`, gdzie `v` jest wektorem danych do wpisania do macierzy, `nrow` i `ncol` oznaczają odpowiednio liczbę wierszy i kolumn w macierzy, a `byrow` zawiera informację o tym, w jaki sposób elementy wektora `v` mają być wpisywane do macierzy. Jeśli `byrow` ma wartość `TRUE`, to kolejne elementy będą wpisywane w kolejne wiersze macierzy, w przeciwnym przypadku będą wpisywane w kolejnych kolumnach. Nie jest konieczne podawanie zarówno liczby wierszy, jak i kolumn - jeśli podamy tylko jeden wymiar, drugi zostanie wybrany automatycznie tak, aby do macierzy można było wpisać wszystkie elementy wektora `v`. Jeśli iloczyn liczb $n$ i $m$ jest większy niż długość wektora `v`, to w brakujące miejsca są ponownie wstawiane elementy początkowe wektora `v`. Jeśli natomiast ten iloczyn będzie mniejszy od długości wektora `v`, to do macierzy zostaną wpisane tylko początkowe elementy wektora, a pozostałe zostaną zignorowane. W obu przypadkach zostanie wyświetlone ostrzeżenie o braku kompatybilności wymiarów."
]
},
{
"cell_type": "code",
"execution_count": 57,
"id": "0dfa778b-9078-4905-b7ff-be0167b8af63",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"Warning message in matrix(m, nrow = 5):\n",
"“data length [12] is not a sub-multiple or multiple of the number of rows [5]”\n",
"Warning message in matrix(m, nrow = 2, ncol = 3):\n",
"“data length differs from size of matrix: [12 != 2 x 3]”\n"
]
}
],
"source": [
"# Definiujemy macierze, których elementami są nazwy miesięcy\n",
"m = month.name\n",
"\n",
"# Zwróćmy uwagę, że w macierzy M1 nazwy miesięcy wpisywane są kolejno wierszami\n",
"M1 = matrix(m, nrow=3, ncol=4, byrow=TRUE)\n",
"# Natomiast w macierzy M2 nazwy wpisywane są kolejno kolumnami\n",
"M2 = matrix(m, nrow=3, ncol=4, byrow=FALSE)\n",
"\n",
"# W macierzy M3 liczba wierszy nie jest dzielnikiem długości wektora m, więc niektóre elementy tego wektora zostaną wykorzystane wielokrotnie\n",
"M3 = matrix(m, nrow=5)\n",
"# Liczba elementów macierzy M4 jest mniejsza od długości wektora m, więc jego końcowe elementy nie zostaną wykorzystane\n",
"M4 = matrix(m, nrow=2, ncol=3)"
]
},
{
"cell_type": "code",
"execution_count": 58,
"id": "b41572e7-855c-4cee-97aa-68a4861a4046",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<table class=\"dataframe\">\n",
"<caption>A matrix: 3 × 4 of type chr</caption>\n",
"<tbody>\n",
"\t<tr><td>January </td><td>February</td><td>March </td><td>April </td></tr>\n",
"\t<tr><td>May </td><td>June </td><td>July </td><td>August </td></tr>\n",
"\t<tr><td>September</td><td>October </td><td>November</td><td>December</td></tr>\n",
"</tbody>\n",
"</table>\n"
],
"text/latex": [
"A matrix: 3 × 4 of type chr\n",
"\\begin{tabular}{llll}\n",
"\t January & February & March & April \\\\\n",
"\t May & June & July & August \\\\\n",
"\t September & October & November & December\\\\\n",
"\\end{tabular}\n"
],
"text/markdown": [
"\n",
"A matrix: 3 × 4 of type chr\n",
"\n",
"| January | February | March | April |\n",
"| May | June | July | August |\n",
"| September | October | November | December |\n",
"\n"
],
"text/plain": [
" [,1] [,2] [,3] [,4] \n",
"[1,] January February March April \n",
"[2,] May June July August \n",
"[3,] September October November December"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"M1"
]
},
{
"cell_type": "code",
"execution_count": 59,
"id": "e8d16065-e3c8-4485-91ec-cfde30aaaa3e",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<table class=\"dataframe\">\n",
"<caption>A matrix: 3 × 4 of type chr</caption>\n",
"<tbody>\n",
"\t<tr><td>January </td><td>April</td><td>July </td><td>October </td></tr>\n",
"\t<tr><td>February</td><td>May </td><td>August </td><td>November</td></tr>\n",
"\t<tr><td>March </td><td>June </td><td>September</td><td>December</td></tr>\n",
"</tbody>\n",
"</table>\n"
],
"text/latex": [
"A matrix: 3 × 4 of type chr\n",
"\\begin{tabular}{llll}\n",
"\t January & April & July & October \\\\\n",
"\t February & May & August & November\\\\\n",
"\t March & June & September & December\\\\\n",
"\\end{tabular}\n"
],
"text/markdown": [
"\n",
"A matrix: 3 × 4 of type chr\n",
"\n",
"| January | April | July | October |\n",
"| February | May | August | November |\n",
"| March | June | September | December |\n",
"\n"
],
"text/plain": [
" [,1] [,2] [,3] [,4] \n",
"[1,] January April July October \n",
"[2,] February May August November\n",
"[3,] March June September December"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"M2"
]
},
{
"cell_type": "code",
"execution_count": 60,
"id": "f7af34fa-585d-4fc2-bd2d-db9b8c02df94",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<table class=\"dataframe\">\n",
"<caption>A matrix: 5 × 3 of type chr</caption>\n",
"<tbody>\n",
"\t<tr><td>January </td><td>June </td><td>November</td></tr>\n",
"\t<tr><td>February</td><td>July </td><td>December</td></tr>\n",
"\t<tr><td>March </td><td>August </td><td>January </td></tr>\n",
"\t<tr><td>April </td><td>September</td><td>February</td></tr>\n",
"\t<tr><td>May </td><td>October </td><td>March </td></tr>\n",
"</tbody>\n",
"</table>\n"
],
"text/latex": [
"A matrix: 5 × 3 of type chr\n",
"\\begin{tabular}{lll}\n",
"\t January & June & November\\\\\n",
"\t February & July & December\\\\\n",
"\t March & August & January \\\\\n",
"\t April & September & February\\\\\n",
"\t May & October & March \\\\\n",
"\\end{tabular}\n"
],
"text/markdown": [
"\n",
"A matrix: 5 × 3 of type chr\n",
"\n",
"| January | June | November |\n",
"| February | July | December |\n",
"| March | August | January |\n",
"| April | September | February |\n",
"| May | October | March |\n",
"\n"
],
"text/plain": [
" [,1] [,2] [,3] \n",
"[1,] January June November\n",
"[2,] February July December\n",
"[3,] March August January \n",
"[4,] April September February\n",
"[5,] May October March "
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"M3"
]
},
{
"cell_type": "code",
"execution_count": 61,
"id": "34b7a896-840c-4527-93c0-6d331799ece6",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<table class=\"dataframe\">\n",
"<caption>A matrix: 2 × 3 of type chr</caption>\n",
"<tbody>\n",
"\t<tr><td>January </td><td>March</td><td>May </td></tr>\n",
"\t<tr><td>February</td><td>April</td><td>June</td></tr>\n",
"</tbody>\n",
"</table>\n"
],
"text/latex": [
"A matrix: 2 × 3 of type chr\n",
"\\begin{tabular}{lll}\n",
"\t January & March & May \\\\\n",
"\t February & April & June\\\\\n",
"\\end{tabular}\n"
],
"text/markdown": [
"\n",
"A matrix: 2 × 3 of type chr\n",
"\n",
"| January | March | May |\n",
"| February | April | June |\n",
"\n"
],
"text/plain": [
" [,1] [,2] [,3]\n",
"[1,] January March May \n",
"[2,] February April June"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"M4"
]
},
{
"cell_type": "markdown",
"id": "44e0a572-3f98-4db1-a74b-492f73d8f6f7",
"metadata": {},
"source": [
"* Jeśli mamy dany wektor `v` o długości $k$, to możemy zamienić go na macierz dwuwymiarową o wymiarach $n\\times m$ (gdzie $k=n\\cdot m$), używając polecenia `dim(v)=c(n,m)`. Wówczas elementy wektora `v` zostaną wpisane kolejno kolumnami do macierzy. \n",
"* Jeśli mamy dany ciąg wektorów/macierzy, to możemy je połączyć w większy obiekt używając poleceń `rbind` (obiekty będą łaczone wierszowo, tzn. kolejne wektory/macierze będą wpisywane w kolejne wiersze tworzonej tabeli) lub `cbind` (obiekty będą łączone kolumnowo, tzn. kolejne wektory/macierze będą wpisywane w kolejne kolumny tworzonej tabeli)."
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "10e6b05f-e9c6-4e93-aa59-f103b5281b13",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<table class=\"dataframe\">\n",
"<caption>A matrix: 4 × 2 of type int</caption>\n",
"<tbody>\n",
"\t<tr><td>2</td><td>6</td></tr>\n",
"\t<tr><td>3</td><td>7</td></tr>\n",
"\t<tr><td>4</td><td>8</td></tr>\n",
"\t<tr><td>5</td><td>9</td></tr>\n",
"</tbody>\n",
"</table>\n"
],
"text/latex": [
"A matrix: 4 × 2 of type int\n",
"\\begin{tabular}{ll}\n",
"\t 2 & 6\\\\\n",
"\t 3 & 7\\\\\n",
"\t 4 & 8\\\\\n",
"\t 5 & 9\\\\\n",
"\\end{tabular}\n"
],
"text/markdown": [
"\n",
"A matrix: 4 × 2 of type int\n",
"\n",
"| 2 | 6 |\n",
"| 3 | 7 |\n",
"| 4 | 8 |\n",
"| 5 | 9 |\n",
"\n"
],
"text/plain": [
" [,1] [,2]\n",
"[1,] 2 6 \n",
"[2,] 3 7 \n",
"[3,] 4 8 \n",
"[4,] 5 9 "
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"dim(c) = c(4,2)\n",
"c"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "0f4d44ac-cc7d-488e-97dd-f8aa18cd7da6",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<table class=\"dataframe\">\n",
"<caption>A matrix: 2 × 3 of type dbl</caption>\n",
"<tbody>\n",
"\t<tr><th scope=row>a</th><td>1</td><td>2</td><td>-4</td></tr>\n",
"\t<tr><th scope=row>e</th><td>2</td><td>5</td><td> 8</td></tr>\n",
"</tbody>\n",
"</table>\n"
],
"text/latex": [
"A matrix: 2 × 3 of type dbl\n",
"\\begin{tabular}{r|lll}\n",
"\ta & 1 & 2 & -4\\\\\n",
"\te & 2 & 5 & 8\\\\\n",
"\\end{tabular}\n"
],
"text/markdown": [
"\n",
"A matrix: 2 × 3 of type dbl\n",
"\n",
"| a | 1 | 2 | -4 |\n",
"| e | 2 | 5 | 8 |\n",
"\n"
],
"text/plain": [
" [,1] [,2] [,3]\n",
"a 1 2 -4 \n",
"e 2 5 8 "
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"A = rbind(a, e)\n",
"A"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "c01f0693-4ccb-4db5-95ec-de65a2c99395",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<table class=\"dataframe\">\n",
"<caption>A matrix: 3 × 2 of type dbl</caption>\n",
"<thead>\n",
"\t<tr><th scope=col>a</th><th scope=col>e</th></tr>\n",
"</thead>\n",
"<tbody>\n",
"\t<tr><td> 1</td><td>2</td></tr>\n",
"\t<tr><td> 2</td><td>5</td></tr>\n",
"\t<tr><td>-4</td><td>8</td></tr>\n",
"</tbody>\n",
"</table>\n"
],
"text/latex": [
"A matrix: 3 × 2 of type dbl\n",
"\\begin{tabular}{ll}\n",
" a & e\\\\\n",
"\\hline\n",
"\t 1 & 2\\\\\n",
"\t 2 & 5\\\\\n",
"\t -4 & 8\\\\\n",
"\\end{tabular}\n"
],
"text/markdown": [
"\n",
"A matrix: 3 × 2 of type dbl\n",
"\n",
"| a | e |\n",
"|---|---|\n",
"| 1 | 2 |\n",
"| 2 | 5 |\n",
"| -4 | 8 |\n",
"\n"
],
"text/plain": [
" a e\n",
"[1,] 1 2\n",
"[2,] 2 5\n",
"[3,] -4 8"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"B = cbind(a, e)\n",
"B"
]
},
{
"cell_type": "markdown",
"id": "233dc3e1-11a2-4856-88ff-ee433b1e6958",
"metadata": {},
"source": [
"### Odwoływanie się do elementów wektora / macierzy\n",
"\n",
"Pokażemy teraz, w jaki sposób możemy odwoływać się do elementów danego wektora `v`\n",
"\n",
"* `v[i]` - $i$-ty element wektora `v` (wektory indeksowane są od $1$);\n",
"* `v[x]`, gdzie `x` jest wektorem indeksów zwraca elementy wektora `v` o indeksach podanych w wektorze `x`;\n",
"* `v[-i]` - wszystkie elementy wektora `v` poza $i$-tym;\n",
"* `v[-x]`, gdzie `x` jest wektorem indeksów - wszystkie elementy wektora `v` poza tymi, których indeksy są podane w wektorze `x`;\n",
"* do wskazywania podciągu elementów wektora `v` można też używać warunków logicznych."
]
},
{
"cell_type": "code",
"execution_count": 65,
"id": "a7b3fcf7-6bce-45cc-8337-c481b7a39554",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<style>\n",
".list-inline {list-style: none; margin:0; padding: 0}\n",
".list-inline>li {display: inline-block}\n",
".list-inline>li:not(:last-child)::after {content: \"\\00b7\"; padding: 0 .5ex}\n",
"</style>\n",
"<ol class=list-inline><li>10</li><li>8.5</li><li>7</li><li>5.5</li><li>4</li><li>2.5</li><li>1</li></ol>\n"
],
"text/latex": [
"\\begin{enumerate*}\n",
"\\item 10\n",
"\\item 8.5\n",
"\\item 7\n",
"\\item 5.5\n",
"\\item 4\n",
"\\item 2.5\n",
"\\item 1\n",
"\\end{enumerate*}\n"
],
"text/markdown": [
"1. 10\n",
"2. 8.5\n",
"3. 7\n",
"4. 5.5\n",
"5. 4\n",
"6. 2.5\n",
"7. 1\n",
"\n",
"\n"
],
"text/plain": [
"[1] 10.0 8.5 7.0 5.5 4.0 2.5 1.0"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"f"
]
},
{
"cell_type": "code",
"execution_count": 66,
"id": "5f5afe35-59c2-48a7-b0bb-9751bf9e0888",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"7"
],
"text/latex": [
"7"
],
"text/markdown": [
"7"
],
"text/plain": [
"[1] 7"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"f[3]"
]
},
{
"cell_type": "code",
"execution_count": 67,
"id": "2e9931da-d2d3-4840-a08a-b1b68f953a7f",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<style>\n",
".list-inline {list-style: none; margin:0; padding: 0}\n",
".list-inline>li {display: inline-block}\n",
".list-inline>li:not(:last-child)::after {content: \"\\00b7\"; padding: 0 .5ex}\n",
"</style>\n",
"<ol class=list-inline><li>7</li><li>10</li><li>5.5</li><li>7</li></ol>\n"
],
"text/latex": [
"\\begin{enumerate*}\n",
"\\item 7\n",
"\\item 10\n",
"\\item 5.5\n",
"\\item 7\n",
"\\end{enumerate*}\n"
],
"text/markdown": [
"1. 7\n",
"2. 10\n",
"3. 5.5\n",
"4. 7\n",
"\n",
"\n"
],
"text/plain": [
"[1] 7.0 10.0 5.5 7.0"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"f[c(3,1,4,3)]"
]
},
{
"cell_type": "code",
"execution_count": 68,
"id": "7c56154d-7b5c-4267-b640-fa220af94480",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<style>\n",
".list-inline {list-style: none; margin:0; padding: 0}\n",
".list-inline>li {display: inline-block}\n",
".list-inline>li:not(:last-child)::after {content: \"\\00b7\"; padding: 0 .5ex}\n",
"</style>\n",
"<ol class=list-inline><li>10</li><li>8.5</li><li>7</li><li>5.5</li><li>2.5</li><li>1</li></ol>\n"
],
"text/latex": [
"\\begin{enumerate*}\n",
"\\item 10\n",
"\\item 8.5\n",
"\\item 7\n",
"\\item 5.5\n",
"\\item 2.5\n",
"\\item 1\n",
"\\end{enumerate*}\n"
],
"text/markdown": [
"1. 10\n",
"2. 8.5\n",
"3. 7\n",
"4. 5.5\n",
"5. 2.5\n",
"6. 1\n",
"\n",
"\n"
],
"text/plain": [
"[1] 10.0 8.5 7.0 5.5 2.5 1.0"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"f[-5]"
]
},
{
"cell_type": "code",
"execution_count": 69,
"id": "93988d2c-458c-490b-b2da-10281184f949",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<style>\n",
".list-inline {list-style: none; margin:0; padding: 0}\n",
".list-inline>li {display: inline-block}\n",
".list-inline>li:not(:last-child)::after {content: \"\\00b7\"; padding: 0 .5ex}\n",
"</style>\n",
"<ol class=list-inline><li>8.5</li><li>5.5</li><li>2.5</li></ol>\n"
],
"text/latex": [
"\\begin{enumerate*}\n",
"\\item 8.5\n",
"\\item 5.5\n",
"\\item 2.5\n",
"\\end{enumerate*}\n"
],
"text/markdown": [
"1. 8.5\n",
"2. 5.5\n",
"3. 2.5\n",
"\n",
"\n"
],
"text/plain": [
"[1] 8.5 5.5 2.5"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"f[-seq(1,7,2)]"
]
},
{
"cell_type": "code",
"execution_count": 70,
"id": "95a6e8a0-7bb7-4ccd-9fdf-513cd867940b",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<style>\n",
".list-inline {list-style: none; margin:0; padding: 0}\n",
".list-inline>li {display: inline-block}\n",
".list-inline>li:not(:last-child)::after {content: \"\\00b7\"; padding: 0 .5ex}\n",
"</style>\n",
"<ol class=list-inline><li>4</li><li>2.5</li><li>1</li></ol>\n"
],
"text/latex": [
"\\begin{enumerate*}\n",
"\\item 4\n",
"\\item 2.5\n",
"\\item 1\n",
"\\end{enumerate*}\n"
],
"text/markdown": [
"1. 4\n",
"2. 2.5\n",
"3. 1\n",
"\n",
"\n"
],
"text/plain": [
"[1] 4.0 2.5 1.0"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"f[f<5]"
]
},
{
"cell_type": "markdown",
"id": "e0711b80-ccb4-4ea3-916a-ab216f198c53",
"metadata": {},
"source": [
"W przypadku macierzy podajemy po przecinku indeksy interesujących nas wierszy i kolumn, np. polecenie `A[2,3]` zwróci element z drugiego wiersza i trzeciej kolumny. Jeśli przed lub po przecinku nic nie wpiszemy, to zostaną wybrane wszystkie elementy z danej kolumny lub wiersza."
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "d3def94c-3bf3-46eb-99de-4943e811be27",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<table class=\"dataframe\">\n",
"<caption>A matrix: 2 × 3 of type dbl</caption>\n",
"<tbody>\n",
"\t<tr><th scope=row>a</th><td>1</td><td>2</td><td>-4</td></tr>\n",
"\t<tr><th scope=row>e</th><td>2</td><td>5</td><td> 8</td></tr>\n",
"</tbody>\n",
"</table>\n"
],
"text/latex": [
"A matrix: 2 × 3 of type dbl\n",
"\\begin{tabular}{r|lll}\n",
"\ta & 1 & 2 & -4\\\\\n",
"\te & 2 & 5 & 8\\\\\n",
"\\end{tabular}\n"
],
"text/markdown": [
"\n",
"A matrix: 2 × 3 of type dbl\n",
"\n",
"| a | 1 | 2 | -4 |\n",
"| e | 2 | 5 | 8 |\n",
"\n"
],
"text/plain": [
" [,1] [,2] [,3]\n",
"a 1 2 -4 \n",
"e 2 5 8 "
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"A"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "fcd91e12-4a41-40a5-87a9-65e033f0931b",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<strong>e:</strong> 8"
],
"text/latex": [
"\\textbf{e:} 8"
],
"text/markdown": [
"**e:** 8"
],
"text/plain": [
"e \n",
"8 "
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"A[2, 3]"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "0e48fdc3-d997-4969-9387-667c8d40a7b9",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<style>\n",
".dl-inline {width: auto; margin:0; padding: 0}\n",
".dl-inline>dt, .dl-inline>dd {float: none; width: auto; display: inline-block}\n",
".dl-inline>dt::after {content: \":\\0020\"; padding-right: .5ex}\n",
".dl-inline>dt:not(:first-of-type) {padding-left: .5ex}\n",
"</style><dl class=dl-inline><dt>a</dt><dd>2</dd><dt>e</dt><dd>5</dd></dl>\n"
],
"text/latex": [
"\\begin{description*}\n",
"\\item[a] 2\n",
"\\item[e] 5\n",
"\\end{description*}\n"
],
"text/markdown": [
"a\n",
": 2e\n",
": 5\n",
"\n"
],
"text/plain": [
"a e \n",
"2 5 "
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"A[, 2]"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "c642bf34-af05-4181-9491-873a2a5150eb",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<style>\n",
".list-inline {list-style: none; margin:0; padding: 0}\n",
".list-inline>li {display: inline-block}\n",
".list-inline>li:not(:last-child)::after {content: \"\\00b7\"; padding: 0 .5ex}\n",
"</style>\n",
"<ol class=list-inline><li>2</li><li>5</li><li>8</li></ol>\n"
],
"text/latex": [
"\\begin{enumerate*}\n",
"\\item 2\n",
"\\item 5\n",
"\\item 8\n",
"\\end{enumerate*}\n"
],
"text/markdown": [
"1. 2\n",
"2. 5\n",
"3. 8\n",
"\n",
"\n"
],
"text/plain": [
"[1] 2 5 8"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"A[2, ]"
]
},
{
"cell_type": "markdown",
"id": "bec2c9a1-9b1c-47e9-a2d0-c9d628cb25c6",
"metadata": {
"tags": []
},
"source": [
"## Operatory logiczne\n",
"\n",
"* `x==y` - prawda, jeśli `x` jest równe `y`;\n",
"* `x!=y` - prawda, jeśli `x` jest różne od `y`;\n",
"* `x&y` - koniunkcja `x` i `y` (jeśli `x` i `y` są wektorami, to porównywane będą wszystkie odpowiadające sobie współrzędne);\n",
"* `x|y` - alternatywa `x` i `y` (jeśli `x` i `y` są wektorami, to porównywane będą wszystkie odpowiadające sobie współrzędne);\n",
"*`!x` - negacja `x`."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "e6e25597-4bb9-4063-a92a-f98c15a15a5a",
"metadata": {},
"outputs": [],
"source": [
"a = c(1, 0, 0, 1)\n",
"b = c(1, 1, 0, 0)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "7b1015b2-8726-47fe-8907-f4f8e49fa336",
"metadata": {},
"outputs": [],
"source": [
"a&b"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "434dae7b-40a5-4c67-860d-66260160f143",
"metadata": {},
"outputs": [],
"source": [
"a|b"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "d2a46b15-f74f-478f-a05f-b2608910f760",
"metadata": {},
"outputs": [],
"source": [
"!a"
]
},
{
"cell_type": "markdown",
"id": "fa5f6e01-cf64-430c-8793-52745b69455e",
"metadata": {},
"source": [
"## Instrukcja warunkowa i pętle\n",
"\n",
"Poniżej pokażemy na przykładach, jak możemy tworzyć pętle i instrukcje warunkowe.\n",
"\n",
"Instrukcja `if ... else`:\n",
"\n",
"```if (warunek) {instrukcje_1} else {instrukcje2}```\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "30e484d1-b54f-4ba5-bf87-4a05d364bdae",
"metadata": {},
"outputs": [],
"source": [
"# Instrukcja warunkowa porównująca dwie liczby\n",
"a = 5\n",
"b = 3\n",
"if (a>b) {\n",
" print('a jest większe od b')\n",
" } else {\n",
" print('b jest większe lub równe a')\n",
" }"
]
},
{
"cell_type": "markdown",
"id": "bf367e0f-2394-4a52-8025-0b3baf58ff26",
"metadata": {},
"source": [
"Pętla `for`:\n",
"\n",
"```for (iterator in kolekcja) {instrukcje} ```"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "1942d50a-a722-4023-84dc-cb432ec96390",
"metadata": {},
"outputs": [],
"source": [
"# Pętla for wyliczająca kwadraty kolejnych liczb z wektora x\n",
"x = 1:10\n",
"for (i in x) {\n",
" print(i^2)\n",
" }"
]
},
{
"cell_type": "markdown",
"id": "21da6723-af26-4f43-8d46-5ec1f07b9854",
"metadata": {},
"source": [
"Pętla `while`:\n",
"\n",
"```while (warunek) {instrukcje} ```"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "51ee9a79-c0a5-4b6f-9d1d-d6e95919c5e9",
"metadata": {},
"outputs": [],
"source": [
"# Pętla while wyliczająca kwadraty kolejnych liczb z wektora x\n",
"i = 0\n",
"while (i<10) {\n",
" i = i+1\n",
" print(i^2)\n",
" }"
]
},
{
"cell_type": "markdown",
"id": "4cfe04fe-d5ee-440a-bd1b-8a99cc9030d9",
"metadata": {},
"source": [
"## Funkcje\n",
"\n",
"* Funkcje możemy zdefiniować w następujący sposób:\n",
"\n",
"`nazwa<-function(x1, x2, ..., xn) {instrukcje}`,\n",
"\n",
"gdzie $x1,x2,\\ldots, xn$ są argumentami funkcji.\n",
"* Możemy podać dowolną liczbę argumentów, ale każdy z nich powinien mieć unikalną nazwę. Możemy też podać dla nich wartości domyślne, podając wartość po nazwie każdego argumentu: \n",
"\n",
"`function(x1=wartosc1, x2=wartosc2, ..., xn=wartoscn) {instrukcje}`.\n",
"\n",
"* W przypadku, gdy funkcję da się zapisać za pomocą pojedynczej instrukcji, nawiasy klamrowe można pominąć, tzn. stosujemy schemat:\n",
"\n",
"`nazwa<-function(x1, x2, ..., xn) instrukcja`.\n",
"\n",
"* Wynikiem działania funkcji będzie wartość wyznaczona w ostatniej linijce instrukcji lub argument instrukcji `return()`.\n",
"\n",
"* Aby wywołać funkcję należy podać jej nazwę, a następnie w okrągłych nawiasach podać wartości jej argumentów. Jeśli chcemy podać wartości tylko dla wybranych argumentów (a dla pozostałych zastosować wartości domyślne), to powinniśmy podać nazwę argumentu, a następnie po znaku `=` podać jego wartość."
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "943c0244-1d30-484b-beb3-da7912c58918",
"metadata": {},
"outputs": [],
"source": [
"pole<-function(a=2, b=3) a*b\n",
"#definicja funkcji obliczającej pole prostokąta a wymiarach axb"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "b49d0759-b75d-408c-b9d8-0ed6c3e94afb",
"metadata": {},
"outputs": [],
"source": [
"pole() #zwraca pole prostokąta o domyślnych wymiarach tzn. 2x3"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "6136a35d-3813-46e2-b1ac-7184d5a9bf1f",
"metadata": {},
"outputs": [],
"source": [
"pole(3, 4) #zwraca pole prostokąta o wymiarach 3x4"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "c3838a75-6cb6-4c44-af70-d7456917fd87",
"metadata": {},
"outputs": [],
"source": [
"pole(b=5) #zwraca pole prostokąta o wymiarach 2x5"
]
},
{
"cell_type": "markdown",
"id": "a59d8644-3521-46c7-9ca1-fd563da5f000",
"metadata": {},
"source": [
"## Wykresy i diagramy\n",
"\n",
"Program R oferuje bardzo szerokie możliwości wizualizacji danych. Podstawowa funkcja generująca wykresy to:\n",
"\n",
"`plot(x ,y, ...)`,\n",
"\n",
"gdzie `x` i `y` to wektory zawierające odpowiednio pierwsze i drugie współrzędne punktów, które chcemy umieścić na wykresie. Jeśli podamy tylko wektor `y`, to domyślnie zostanie przyjęte, że wektor `x` to kolejne liczby naturalne od $1$ do $n$, gdzie $n$ to długość wektora `y`. W miejscu '...' możemy podawać najróżniejsze parametry związane z wyglądem wykresu. Wśród najważniejszych opcji, które możemy zdefiniować są:\n",
"\n",
"* `type` - kontroluje typ wykresu. Przykładowe opcje to:\n",
" * `p` - wykres punktowy (jest to opcja domyślna),\n",
" * `l` - wykres liniowy,\n",
" * `b`, `o` - wykresy liniowo-punktowe (różnica polega na sposobie łączenia punktów z liniami).\n",
"* `xlim`, `ylim` - pozwalają ustalić graniczne wartości odpowiednio na osi $OX$ i $OY$ wykresu,\n",
"* `main` - pozwala dodać główny tytuł do wykresu,\n",
"* `sub` - pozwala dodać podpis / podtytuł do wykresu,\n",
"* `xlab`, `ylab` - pozwalają dodać nazwy osi,\n",
"* `col` - pozwala ustalić kolory punktów / linii umieszczanych na wykresie. Jako argumenty możemy podawać nazwy kolorów (np. `blue`) lub liczby naturalne,\n",
"* `pch` - pozwala ustalić typ (kształt) punktów używanych na wykresie. Poniżej przedstawiono $25$ podstawowych typów punktów, wraz z odpowiadającymi im numerami,\n",
"![Typ punktów](punktyR.png)\n",
"* `cex` - pozwala ustalić wielkość punktów,\n",
"* `lty` - pozwala ustalić typ linii (dla wykresów liniowych). Typ można podać słownie lub za pomocą odpowiedniej liczby naturalnej. Podstawowe typy linii to (po nazwie podajemy też przypisaną jej liczbę naturalną):\n",
" * `solid` (1) - linia ciągła (jest to opcja domyślna),\n",
" * `dashed` (2) - linia kreskowana,\n",
" * `dotted` (3) - linia kropkowana.\n",
"* `lwd` - pozwala ustalić szerokość linii. \n"
]
},
{
"cell_type": "code",
"execution_count": 104,
"id": "a0431b47-a9b2-4a8f-ad64-e2dcc4a87dac",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA0gAAANICAIAAAByhViMAAAACXBIWXMAABJ0AAASdAHeZh94\nAAAgAElEQVR4nOzdd4AU9cHw8dnjKr1JEwEBKYqCHVEREwsKPooFUWN7IraYx54oAfURAxY0\najCoxBjsxhgVxDxGY40FE0VUiiASCwiK0pGDu9v3j32eec87uMbd7d3vPp+/7mZnZ3/Mzt5+\nmZ2ZTSSTyQgAgPovI90DAACgegg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBA\nCDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCA\nQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsA\ngEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOyjfnDlz\nEluTlZXVq1ev4cOHz5gxIy0Du+CCC1IjOfjgg8uY7ZRTTknNdswxx1TXQz///PPxevj222+r\na7H1WgWfDiLrCmqMsIOqKygoWLRo0cyZM//jP/5j1KhR6R4OBKioqOiY//P666+nezhQ12Wm\newAQiMcff3z48OE/+clP0j0QCEoymXz22WdTP3t9QbnssYPKueOOOwoKCgoKCrZs2fLvf//7\n2muvjW+aMGFCGgcGAMIOKqfR/8nMzOzatet111131FFHpW5atGhRQUFBeocHIVm0aNHbb79d\n/NdZs2atX78+jUOCOk7YwfYaNGhQ6oeCgoLPPvssiqL//u//Th0Yvssuu0RR9NRTT+255569\ne/eOoujbb7/d6nkYscLCwrPPPjv1c2Zm5qpVq4o/1nHHHZe66fDDD9/WeO655554affff38Z\nI9+yZcv9999/6KGHduvWLTc3t0uXLgceeOCdd95Z+o3zk08+GTly5A477NCuXbvjjjvu6aef\nLnuxt91227HHHtu9e/cWLVoMGjTo3HPP/fDDD+MZhgwZUvpkjhtuuCEe9ooVK1IT33777Xji\nm2++uT1rJi0PGm3t6Shj80iZM2fOOeecs/feezdt2rRnz54nn3zym2++WWKxyWTyqaeeGjp0\naI8ePfLy8nr06HH44Yc/+OCD5f7XYvTo0alHP/TQQzds2HDppZd27tw5Ly+vX79+N9xwQ35+\n/rZmLj79vvvuS03PysqKJxb/dxUVFd1666277bZbXl5et27djj/++AULFpQ9sK2uqzFjxhx0\n0EHxDOPGjRs4cODcuXPjKXVzY4N0SgLlef/99+OXzOTJk0vcOn78+PjWr7/+OplMXnfddalf\ne/bs+dBDDyUSiSiKunXrlkwmV65cWfZLsqCg4IUXXoh/feSRR+IH2rx5c7NmzVLTp06dmkwm\nzz///NSvBx10UGqeF198MTPzf4+dveGGG1IT4xM7jjrqqOuuu27Dhg3JZHLTpk0DBw7c6hh2\n3333devWxY/78ssvt27dusQ8J510UvzzypUr45k/+OCDPfbYo/Qys7Kyrr322qKiomQyOXHi\nxNTE1q1bp6Ykk8nhw4fHM8+YMSM18fbbb09NadmyZaXWTGm18KAVfDrK2DySyeRtt92WnZ1d\negX+4he/iIddVFR07LHHlp4niqK99tqr+HNX2jnnnBMPsngzpeyxxx4ff/xx6ZmHDBlSfCG/\n//3vU9MzMzPjifG/q0ePHqecckqJJefk5MyZMyeeuYLr6sQTTyz9b3z77bdTt9bZjQ3SSNhB\n+coOu2HDhqVuat68eWpK/A7Xvn37Nm3apH5OvXOvWbNm6A8Vr6ucnJzCwsKCgoIOHTqkppx6\n6qnxA73yyivx+9a3336bLPXu+PHHH7dq1So15YILLojvGIddqiHWr1+fTCavuuqq+HH79Olz\nyCGHtG/fPp5yzTXXpO77zTffxG9jURR16NChadOmJd5H47DbuHFj9+7d4+ldunTZd999c3Jy\n4il/+MMfksnk7Nmz4ykLFixI3XeHHXaIJ44dOzY1Me6Dk046KZlMVnzNlFYLD1rBp6OMzeP5\n55+PxzNo0KCzzz573333jadMmjQptYQ77rgjntirV6/jjz9+4MCBqSc3iqKzzjprq2sgJW61\n1PyJRKJbt25xUUVRdNhhh5WeuVJhFy+/Y8eOxZd85JFHxjNXcF2l1n+8hMceeyyeXpc3Nkgj\nYQfl21bYLVu2rPjuuvgdsfg7XHZ29gUXXDB16tTi/+mPbdmy5cc//nE884MPPpiafvHFF6em\ntGrVasuWLamJcYodffTRqSnF3x2/++671Ed7URSNGDGisLAwfpTjjjsufiu65ZZbUhP79u2b\nmjhu3Lh4zvh4waFDh6amXHrppakpTZo0mT59emrMv/zlL6Ni4rAbO3ZsakpGRsZ9990Xr6V9\n9tknNb1t27bfffddUVFR/JaZevf99NNPU7+mauOII45I3Td+546XVsE1U1otPGgFn45tbR4F\nBQW77rpranpcG8XXatOmTVMlET9Np59+ejzb3XffnZpYfNdUaXGrRVG0xx57/Pvf/04mk6tW\nrTriiCPi6W+99VaJmSsbdiNGjPjmm2+SyeTKlSvjNo3/51PxdZXcdtjV5Y0N0kjYQfmKh10Z\n3njjjdT8xd/h/vKXv5Sx5HPPPTee81e/+lU8fdasWfH0V199NTVxzz33TE154IEHUlPid8f9\n9tsvPgpq0KBB33//fbyoCy+8MF7UsGHDUhOLiooe+z+pN+BkMrl27drBgwen5txnn31SE+Pd\ndfE+vBKDiYqFXZ8+fVJTiu/hSCaTH374Ybw/KbVCzjzzzNSv55xzTjKZfOSRR+IRRlHUsmXL\noqKir7/+On6IL7/8slJrZqtq+kEr8nQkt715fPTRR6mJGRkZq1atiqevXbs23u/16KOPJpPJ\nvffeO/XrjjvuOGXKlM8//zyZTG7cuPGV/xNXSGnFw+7dd9+Npy9fvjwvLy81ffz48SVmrlTY\nZWdnF/84+MEHHyy9qVRwXSW3HXZ1fGODdHHyBFSDRCJx1VVXxWdRxJo1azZixIht3eu22267\n9957Uz+fcMIJxXf+7bfffj169Ej9nLqI14oVK1J9mZOTU/r4qnfeeefll19O/ZyZmZmbmxvf\n9Lvf/a5JkybxOOMfTj755BNOOKFz585TpkwZOXLkgAEDdthhh9dee634YpcuXbpu3brUz8cf\nf3zxm0ofRLV58+ZPPvlkqzP369cv3iUzf/78KIqGDh2a+jV1WkDqHbRDhw4jR46Momj16tWp\n8x9T8+yxxx477rhj1dZMcbX2oGU8HcWV2Dzi0wuKiopatWoVH8jfvHnzOG5S8xx99NGpX5cu\nXXrBBRd06dKld+/el19+eWr32CGHHFL8A9Bt2Wmnnfbaa6/41/bt28cb8MKFC8u9exk6d+5c\n/PP6eIdZFEWlz+2o4Loqoe5vbJAuwg62S+fOnY855piZM2fGx2gX165du23d8dlnn73yyitT\nP++1114PPPBAXF0pp556auqH1PeVPf/888lkMoqio48+unnz5mUM6bXXXnv88cfjX6dNm7bV\nbxJ7//33+/fvf9BBB11zzTV//vOfN2zYcNxxx8Wf8aV8/PHH8c/xu13KzjvvXGKBS5cujd+2\nS8wcRVHnzp1TP6Q+CDv88MMzMjKiKJo/f/6qVatSb6uDBg3af//9U7PNmjUrfq+N35hTqrxm\n0vKgJZ6O4kpsHqlTqsv23XffRVE0duzYMWPGFD+jZeHChVOmTDnxxBM7duwY704rW6dOnUpM\niZ+1+ETRqkmt5FiJDbsMZayrEur+xgbpIuygckqcPPHFF19Mnz69RA/FtvWWNmfOnFNOOaWo\nqCiKok6dOk2fPr1x48Yl5onfURYsWLB48eL4sPqTTz55q8vcdddd99tvv9TPV1555caNG1M/\nn3HGGaVnzs/PP+GEE+bNmxdF0ahRo7766qtFixY99thjAwYMKD5b8f0uX331VfGb4j15sR13\n3DHeUbRs2bISty5dujT1w0477RRFUZs2bVKHXiWTyVdffTV1hPugQYN69erVokWLKIreeeed\n+AJmJVZvZddMrDYfdFtPR3ElNo/UmomiqGXLlv/YhksuuSSKouzs7F//+tcrVqx49dVXr7rq\nqv79+8cLWbt2bYnrfWzL8uXLtzWlZ8+eJW5K1UwNqci6KqHub2yQLsIOatvy5cuPOeaY1LXi\n8vLynnnmmdK7HKIo6tOnT3w0zzPPPPO3v/0tiqLGjRsXv1JDrF27ds8///xtt92W+vWLL764\n8cYbyxjDnDlz4kPIr7/++vh82BJBEH+kFUXRU089VfymmTNnllhmdnZ2/LlViZnnzZu3aNGi\n1M+77bZb6od418jvfve71OXTDjjggEQikXoPfuutt/75z39GUdS0adMDDzyw+NIqtWZKqJ0H\nrezTkRJfym7t2rUDBgw4sJhevXr17NmzZ8+eHTp0WL9+/dy5c+fOnfvxxx8PHjx44sSJ77//\nfvHzeJLJZEW+U/Xzzz+fM2dO/OvKlSvjq+XFh681atQo9cO3335b/L4lKn97VG1d1YuNDdKj\nlo/pg/qo7MudlFb8QmUlbtq4cWN8kmAikXjiiSfKWM4tt9ySmjP+1Ozkk08uPkPpi4HFx/3k\n5uYuWbIkNTG+3Mnw4cNTU4pfo+uPf/xjauKMGTPifUjxyRNx2zVt2vR//ud/kslkUVFR8ctt\nRMWOiL/66qtTUzIyMqZNm5aa+NVXX8X/5JYtW6Yu9ZdMJt96663iC8nOzt60aVMymRwzZkzx\n6ccee2wV1sy21OiDVvDp2NbmsXnz5vgD7ssuuyyeHl9lOiMjY968ecU/H//b3/4Wz7ZixYr4\nYh/PPffcttZA8ZMn9txzz9SJAmvWrIn3VOXl5cVnD8TfkpdIJJ5++unUxBdffLFly5ap6Vs9\neaLEv+vFF1+MH3H58uWVWlfJH548EZ+vmqwPGxukhbCD8lVj2N10003xolq2bDm8lPhSW8lk\n8osvvihxuNJTTz1VfGml3x3nzZsX72U5/vjjUxNLh93y5cuLL7l///6777578U8G+/Xrl5oz\nvohGSufOnePrjcXisNuwYUO3bt3i6T169Bg0aFB8rmX0wwu6FhYWFj9KbODAganpJb7W4u67\n7y69hstdM9tSow9awaejjM3jySefjBc+YMCAs88+e5999okfdPTo0anZ4o9KGzVqNHjw4FNP\nPXXYsGHxIV/t2rVbu3btttZAievYZWRk7LLLLsUvifzLX/4ynvmll14q/u/t0KFDiWe/GsNu\nq+sqJe7Irl27XnTRRZ9++mmyPmxskBbCDspXjWFX4iKupcVX1U8ZMmRIfFPz5s1LXAyi9Ltj\n8oe7ZF588cXk1sIuWewCdbHu3bvH57pmZmZ++OGHyWRy06ZNhxxySOlxFj8ho/g3T8yePTv+\n/Ku4rKyssWPHlri+WvEDleJ9VCUOmSq+86bia6YMNfegFXw6ytg8ksnk2LFj474p7vTTTy8o\nKEjNM3/+/PjKxiXk5ubGF+bYqng8xc8eiJ100kmpLyaJlT73s0mTJhdddFHq52oMu62uq5TU\n6aux+DVS9zc2qH2OsYM6LT52O4qi4447riIXg7juuuvi/RYXX3zxtr48dNKkSXfeeecee+zR\npEmTvfba67LLLps9e3acgAUFBffdd18URTk5Oa+88sqTTz45cuTInXfeuW3btkcdddQjjzxS\n/PJ4xQ0YMOC99967+eabhw8f3q1bt2bNmu2///4//elP//Wvf40fP77E6QLFz0A84IADUj90\n7NgxPquxT58+xffKFFeFNZOWB63g0xEbP378a6+9dtppp/Xr1y8vL2+XXXY54YQTXnvttQce\neCAOvj59+ixevPj2228fPHhw9+7d8/Ly2rZtu9dee11yySWLFy+OL0ZYtuzs7BdeeOGiiy7q\n2LFjTk7Orrvu+pvf/Obxxx8vcR7PE088MXHixD333LNJkyatW7ceMWLEP//5zxIn2VSXba2r\nu+6668wzz+zYsWNeXl6fPn3iayvW/Y0Nal8iWZPnOgHb6bvvvmvbtm3qdTpz5sz4AmakZc0E\n8HSMHj06dT2UIUOGxBeQo2wBPO80HPbYQZ2WuoJ/FEWtW7c+/PDD0z2cOiQta8bT0TB53qlH\nyr86OZAWa9asWbNmTXwo0gknnJCVlZXeIdURaVkzno6GyfNOvSPsoI7q1q3b6tWr41/PO++8\nNA6mTknLmvF0NEyed+odYQd1XaNGjSZOnBh/7zuxtKyZ+v507L333qlS2er5pGxLfX/eaTic\nPAF11L333rtmzZqOHTsOHjy4S5cu6R5OHZKWNePpaJg879Q7wg4AIBDOigUACISwAwAIhLAD\nAAiEsAMACISwAwAIhLADAAiEsAMACISwAwAIhLADAAiEsAMACISwAwAIhLADAAiEsAMACISw\nAwAIhLADAAiEsAMACISwAwAIhLADAAiEsAMACISwAwAIhLADAAiEsAMACISwAwAIhLADAAiE\nsAMACISwAwAIhLADAAiEsAMACISwAwAIhLADAAiEsAMACISwAwAIRGa6B1A/zJkzp6CgIN2j\nAADqhMzMzP79+6d7FFsh7Mr3r3/9a9999033KACAOuSf//znPvvsk+5RlCTsyrd58+YoivLz\n87Ozs9M9FgAgzTZv3pyTk5PKg7rGMXYAAIEQdgAAgRB2AACBEHYAAIEQdgAAgRB2AACBEHYA\nAIEQdgAAgRB2AACBEHYAAIEQdgAAgRB2AACBEHYAAIHITPcAAAjBnM2bNxYlq2VRA3Ky8xKJ\nalkUNDTCDoDttSWZPOvrbwujaDuDrCCZ3JhM3tm29eF5udU1NmhQhB0A2ysrkfhps6aPb9jw\n1w7tm2ZUve3Gfbd69ubNP1J1UFUhHGO3atWqoqKidI8CoEE7p3nT7ETivnXrq7yE+Zu3PLVh\n49UtWzSqxmFBA1Ofwm7Tpk2TJ0/+z//8zwkTJixatCiKoqeffnrHHXds3bp1ixYtjjvuuGXL\nlqV7jAANVG4icVmL5n9Yt/7zgoKqLWHC6jWH5uUemJtTvQODBqXefBS7evXqAw88cN68ealf\n77zzzueee27UqFE5OTmHHnroN99888wzz7z99tvz589v1apVeocK0DAd3Tjv0fUbbl299o62\nrSt73+c2fj9n85YZHXaoiYFBw1Fv9tj9+te/njdv3mWXXfbBBx+88MILzZo1Gzx4cPv27efP\nn//SSy99+OGHjz766IoVK37961+ne6QADVQiin7VssWL3296c1N+pe64KZm8dc3as5s16ZpZ\nb3Y3QN1Ub15Czz333MCBA2+99dYoinbfffc77rhj2LBhv/rVrzp16pSaYdSoUffcc8/f//73\nSi22qKjotddeKyjzg4O5c+dWedgADUrf7KwRTRpPXL3m6Q7tKn6o3H3r1ucnk6ObNavBkUHD\nUG/CbsmSJWeeeWb8a//+/aMo6tmzZ/F5+vbtO23atEot9rPPPhs5cmTZYZefnx9F0ZYtW7Kz\nsyu1cIAG6NIWzY9a/vUT6zeMatqkIvMvLyy8b+36a1q12J7TaYGUehN2HTt2TJ0wkdK6devz\nzz+/V69exef5+uuvGzduXKnF7rzzzl9//XXZ89xzzz3nn39+Mlk9F94ECFubRhnnNW96+5p1\nQxvntcwo/4CfSavXds/K/I8mlfvrDWxVvTnGbt99933ttddmzJiR+jUvL2/KlCmp/XYpixcv\nfu655/bbb780DRCA/3VG0yatMjKmrF1X7pzvb978143fX92yRb15N4K6rd68lCZMmJCVlXXs\nscfus88+zz77bPGbPvroo4svvnjvvffetGnTlVdema4RApCSlUhc0bL5w+s2LNpS1oEuRVE0\nYdWa4Y3z9s5xoAtUj3oTdt27d58zZ86IESO+/PLLzz77rPhNb7zxxp133pmbm/v4448PGTIk\nTQME4P/7cV7uAbk5E1evKWOepzZsXLSl4JKWzWttVBC8enOMXRRFPXv2fPLJJ6MoKvE9E4cd\ndtgbb7yx7777ZmVlpWloAJR0VcsWx6345tXvNx2yta8I25BM3rFm3bnNm3Zs5JsmoNrUp7CL\nZfzwaNwePXr06NEjXYMBYKt6ZGWOatJ4wuq1B+TmZCdKnvE6Zc26RlF0drOmaRkbhKrefBQL\nQL3z8xbN1hUVPbx+Q4npnxcUPLh+w1Utm+eWCj5gewg7AGpK84yMn7VodteadSsLf3AIzU2r\n1/bLzjqicV66BgahEnYA1KBRTZvsmJl555q18ZS3N+W/8v2mMS1b2FkH1U7YAVCDGkXR1S2b\nP7lh40ebt0RRVBhFE1evPalp492yne4G1U/YAVCzBubmHJqXO3H1mmQUPbp+w7LCgouau8QJ\n1AhhB0CN+2XLFh9t3vKn9RvuWrPuoubN2jby7gM1wksLgBq3U2ajM5o1+e9Va1plZJzatEm6\nhwPBEnYA1IbzmzfrmZX5q1YtslziBGpMvbxAMQD1TpNEYnqHdukeBQTOHjsAgEAIOwCAQAg7\nAIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAI\nOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBA\nCDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCA\nQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsA\ngEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7\nAIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAI\nOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBA\nCDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCA\nQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsA\ngEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7\nAIBACDsAgEAIOwCAQAg7AIBACDuAinps3sbH5m1M9yiAqij89unCb59O9yhqXGa6BwBQP9z3\nwYab3l4bRdGGguRP92iS7uEAlVO4+oUoihq1OS7dA6lZwg6gfH/4YMNNb6+ddGjLrEaJS15c\ntbkwecGeTdM9KICShB1AOf7wwYYb31476dCW/7FLXhRF0WGtLnlxVRRF2g6oaxxjB1CWklUX\nRUd1z739sFa3/3PdlNnr0zs2oIQtSyflLzo7Sm6uxH2Sm/MXnb1l6aQaG1StEnYA21S66lK0\nHdRNmW2OK1r3dv7CsyradsnN+QvPKlr3dmabETU8tFoi7AC27v5tVF1K3HZ3azuoMxK5PXN3\nfbZow/v5H58WFeWXM3dyc/6i/yxa/25O36cTuT1qZYA1TtgBbMX9H2yYuO2qS0m13W3aDuqS\nRG6P3F1nFG2cm7/wJ2W1Xarq1v0zZ9fpGXm9a3GANav+hd3XX3/98ccfFxQUlL5p5cqVS5cu\nrf0hAYFJVd0tZVZdylHdc+/QdlDHlN92gVZdVL/C7v333+/fv3/79u379Omz0047TZs2rcQM\np59+eufOndMyNiAYcdUdW17VpWg7qIPKartwqy6qR5c7Wbx48QEHHLB58+bDDjssOzv7pZde\nOuusszZs2HDhhReme2hAOCpbdSlHdc+NDmt18Yuroig63zVQoG5Itd2mecfkL/xJTq+H/ndq\n0FUX1aM9dmPHjs3Pz3/22WdfeOGFmTNnfv755z179rz88ss//vjjdA8NCETVqi7Ffjuog36w\n3y5ZGEVFYVddVI/CbtasWUccccRRRx2V+nWHHXaYOXNmIpG48sor0zswIAzbU3Up2g7qoLjt\nCte+Vrjm9bCrLqpHH8WuXLnyxz/+cfEpvXr1uuKKK8aPH//6668ffPDBVVvskiVL9t9//62e\nihHLz8+PoiiZTFbtIYC6793lm294c+24A5tXuepSjuqeu+KA5uPfWLtvx+y9O2RX1/CAMhSt\nezv/41OjqMy36WRhsnBdFEWJRs3y5w4tc3mJnN6PZDQbWJ1DrEX1Juz69+//5ptvlpj4y1/+\n8o9//OMFF1zw3nvvZWdX5W9o165d//SnP5Udds8+++wdd9yRSCSqsHygXtitbdYBO2b/8YMN\nR+yc26lpoyovZ9n6wj9+sOGAHbN3a5tVjcMDypDRZED2LveXFXbJgi1LJyXXvxdFiUTeLlmd\nr4oSZbxCExlNBtTAMGtJvQm7gw8+eOLEiT//+c8nTZqUk5OTmtikSZO777572LBhZ5555v33\n31+FxWZkZAwZMqTseRYvXlyFJQP1SG5m4vdHtT73f1ad/PS3jxzbZqdmVWm7r9YXnjb9245N\nG907tHVupv8KQm3JyG3U4pBt3prcnL/oP5ObljRqdUQiyihc/6+C5ffm9HooysipxSHWnnpz\njN0111xz8MEHT548eYcddjjmmGPi6UcfffS4ceMee+yxnj17vvvuu2kcIVCv5WYm7h3aaueW\nmac+8+0X6wore/ev1heeOv3bDk0a3Xd068ZZqg7qhmLnwCYatYgaNavQtYvrs3oTdrm5udOn\nT7/qqqt23HHHTz/9tPhN119//R//+MemTZt+88036RoeEIAqt52qg7poa1c2qej3UtRb9Sbs\noihq2bLlxIkT58+fP3fu3BI3nXnmmfPnz1+yZMmLL76YlrEBYahC26k6qIu2ffMSxuwAACAA\nSURBVL26sNuuPoVd2RKJRLdu3UqcOQtQWZVqO1UHdVF5VyEOuO3CCTuA6lLBtlN1UBdV7Lsl\nQm07YQewFeW2naqDuqgy3xgWZNsJO4CtK6PtVB3UTVu+vKVo/bs5uz5bwe+WSOT2yOn7TNHG\nj7YsvbWmx1Y7hB3ANm217VQd1FmZHc7J7fdyRt4uFb9LRt4uuf1ezuzw05obVW0SdgBlKdF2\nqg7qskRW+0R2h0rfK7tDIqt9TYyn9tWbb54ASJfczMQ9Q1uN/ut3p0//Noqizs0bTT2qdZ7v\nlgDqHnvsAMqXl5mYelTrri0yu7bIVHVQHyWy2iay2qZ7FDXOHjuACsnLTEwb3jrdowCqKKvL\nf6d7CLXBHjsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsA\ngEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7\nAIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAI\nOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBA\nCDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCA\nQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsA\ngEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7\nAIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAI\nOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBA\nCDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCA\nQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACLvaNn369OnTp6d7FABAgDLT\nPYCGZeXKlWeddVYURQsXLmzbtm26hwMABMUeu1p1zTXXdOjQoUOHDtdcc026xwIAhMYeu9oz\nd+7cqVOnzpgxIzMzc+jQoeeff/4ee+yR7kEBAOEQdrXn0ksvHTp06NChQ6MoGjp06CWXXPLS\nSy+le1AAQDh8FFtLnnzyyVdffXXSpEmpX2+//fY333zzL3/5S3pHRZBWb/nuqeWPFCQLKnWv\nFfnLZqz4Uw0NCYDaIexqQ35+/lVXXfVf//VfvXv3Tk3p2bPnRRdddMUVV2zatCm9YyM8ySj5\n+ncv/u7fN1e87ZbnL71p8dgvN31WowMDoKYJu9pw6623rl27duzYscUnXnvttd9///1vfvOb\ndI2KULXKavPLHjd89v3i3y6ZUJDcUu78y/OX3bx4XJe8nUd3uaQWhgdAzRF2NW7FihU33XTT\nr3/96xYtWhSf3qxZs+uvv37ChAnLli1L19gIVfucTr/oMf7LTZ/9dsnEsttuef6ymxeP7ZK3\n80XdrspMZNXaCAGoCcKuxv3iF7/o0aPH2WefXfqmn/70p3369BkzZkztj4rgVaTtVB1AYMoP\nu2nTpq1du7YWhhKkd99996GHHrr99tsbNWpU+taMjIw77rjjwQcfnDVrVu2PjeCV3XaqDiA8\n5YfdWWed1b59+xNOOOGJJ574/vvva2FMwUgmkxdffPFJJ500ePDgbc0zaNCgE0888ZJLLkkm\nk7U5NhqIbbWdqgMIUvlhd9ddd+2///5PP/30yJEj27Vrd/rpp8+cOXPLlvKPyOahhx567733\nbrzxxrJnmzRp0gcffPDwww/XzqhoaEq3naoDCFX5YXfhhRe+8sorS5cunTx58t577/3II48M\nHz68Q4cO55577ssvv1xUVFQLo6yPNm7cOHbs2F/84hfdunUre86ddtrpiiuuuOqqq9avX18r\nQ6PBKd52Szd9ruoAQpWo7CeAy5cvf/LJJ//0pz/94x//KCoq6tix48iRI0855ZT999+/hoYY\nRdHkyZPHjRtXwZlXrVpV8SWvWrVq7NixBQVlXe5r/vz5r7/++rp165o2bVrxJY8dO3batGkL\nFixo0qRJuTN///33ffv2Pf3008ePH1/xh4BKWZG/bOInYzYWbujbrN/Pu41RdQBVs3nz5pyc\nnDfeeGPQoEHpHktJlT4rtkOHDgcddNCPfvSjrl27RlH01Vdf3XHHHQMHDuzdu/eTTz5ZAyOM\noigaOnToGWec8f33369evbqwsLBzmWpoDJXy+eef/+Y3v7n55psrUnVRFOXl5U2YMGHSpElL\nliyp6bHRYCWjKIqSiUTC8ZwAoaroHruCgoLXX3/9mWeeefrppz/77LMoijp27Hjssccef/zx\nbdq0efjhh++9994NGza88847++yzTw2N9fnnnx86dOjw4cNnzJhRQw+xVffcc8/5559fqT12\nJ5544rJly954441EIlHBuySTyUMOOaR9+/ZPPPFEVUcK2xQfVzey45m3fvrfnXO7/nznq+20\nA6iCurzHLrPcOZ588slnnnnm2WefTX3E2aNHjyuuuOL4448fOHBgXC177bXXT37yk7322uvJ\nJ5+subA78sgje/XqVUMLr0Yvv/zyU0899dZbb1W86qIoSiQSt99++7777vvCCy8cfvjhNTc8\nGqASZ0v8osf4mxeP++2SidoOIDDlh92JJ54YRVH//v0vvvjiESNG7LHHHludrUePHm3btm3T\npk01D/CH9t13340bN9boQ2ynwsLCSy+99Kyzztpvv/0qe9+99trrzDPPvPTSS99///3MzPKf\nGqiI0ufAps6l0HYA4Sm/HiZNmjRixIju3buXPVvz5s2/+eabahrVNj300EM1/RDbaerUqZ9+\n+ulf//rXqt194sSJvXv3vu+++84777zqHRgN07aubKLtAIJU/skTl19+eblVR8rq1auvueaa\nsWPHduzYsWpLaN++/dVXXz1mzJjvvvuuesdGA1T29eoq/n2yANQXPu+rThMmTFi5cuW8efO2\nZ39bfn7+qlWrbrzxxptvvrkax0ZDU5GrENtvBxCYSl/uhDLsvvvuo0ePzsnJ2Z6F5OTkjB49\nevfdd6+uUdEAVfy7Jey3AwiJPXbV6fTTTz/99NPTPQoaulVbvr158dhueT0v7PaLzET5r/H2\nOZ2u7HH9zYvHTf389gu6XlkLIwSghgg7CE0iShzc+rBj2o+sSNWldMjZ8Zc9bnhn9T9qdGAA\n1DRhB6FpmdV6RIdTK3uv9jmdjmk/sibGA0CtcYwdAEAghB0AQCCEHQBAIIQdAEAghB0AQCCE\nHQBAIIQdAEAghB0AQCCEHQBAIIQdAEAghB0AQCCEHQBAIIQdAEAghB0AQCCEHQBAIIQdAEAg\nhB0AQCCEHQBAIIQdAEAghB0AQCCEHQBAIIQdAEAghB0AQCCEHQBAIIQdAEAghB0AQCCEHQBA\nIIQdAEAghB0AQCCEHQBAIIQdAEAghB0AQCCEHQBAIIQdAEAghB0AQCCEHQBAIIQdAEAghB0A\nQCCEHQBAIIQdAEAghB0AQCCEHQBAIIQdAEAghB0AQCCEHQBAIIQdAEAghB0AQCCEHQBAIIQd\nAEAghB0AQCCEHQBAIIQdAEAghB0AQCCEHQBAIIQdAEAghB0AQCCEHQBAIIQdAEAghB0AQCCE\nHQBAIIQdAEAghB0AQCCEHQBAIIQdAEAghB0AQCCEHQBAIIQdAEAghB0AQCCEHQBAIIQdAEAg\nhB0AQCCEHQBAIIQdAEAghB0AQCCEHQBAIIQdAEAghB0AQCCEHQBAIIQdAEAghB0AQCCEHQBA\nIIQdAEAghB0AQCCEHQBAIIQdAEAghB0AQCCEHQBAIIQdAEAghB0AQCCEHQBAIIQdAEAghB0A\nQCCEHQBAIIQdAEAghB0AQCCEHQBAIIQdAEAghB0AQCCEHQBAIIQdAEAghB0AQCCEHQBAIIQd\nAEAghB0AQCCEHQBAIIQdAEAghB0AQCCEHQBAIIQdAEAghB0AQCCEHQBAIIQdAEAghB0AQCCE\nHQBAIIQdAEAghB0AQCCEHQBAIIQdAEAghB0AQCCEHfXMlxddl7/o3+keBQDURcKOeqZw1dqi\ntevTPQoAqIuEHQBAIIQdAEAghB0AQCCEHQBAIIQdAEAghB0AQCAy0z2AKlq7du26desyMjLa\nt2+fkSFPAQDq2x67jz766Mwzz+zYsWOLFi06d+7cqVOn7Ozszp07n3rqqW+88Ua6RwcAkE71\naY/dz3/+87vuuiuZTHbs2HH//fdv06ZNFEXffffdl19++eijjz766KPnnHPO1KlT0z1MAID0\nqDdh97vf/W7y5MlHHnnkxIkT99xzzxK3zp07d/z48b///e/79u172WWXpWWEAADpVW/C7uGH\nH+7du/ezzz6bmbmVMe+2226PPvrosmXL/vKXv1Qq7IqKil577bWCgoIy5pk/f36lh0vlFaxc\ntWXZ1+XPV1S0+d9fRllZZc+V0SQvp0eX6hkZANQT9SbsPvrooxEjRmy16lISicTBBx981113\nVWqxn3322ciRI8sOu/z8/CiKkslkpZZMZa177pV1f3+r3NmSWwrW/OWFKLNR2bM1at5kx99e\nW01DA4D6od6EXb9+/WbNmlVYWNio0Tbf0d96661+/fpVarE777zz11+Xs5fonnvuOf/88xOJ\nRKWWTGW1OmNEqzNGlDvbZ6ddtsNlZ+ftXbknGgAagnpzVuxpp522YMGCY4455sMPPyx968KF\nC0877bSXX3752GOPrf2xAQDUBfVmj92FF1744Ycf3n333X/961932mmnrl27tm7dOpFIrFq1\n6osvvliyZEkURWedddYVV1yR7pECAKRHvQm7KIqmTJly3nnn3XzzzS+88MI//vGP1MRGjRq1\na9fulFNOOe+88w455JD0jhAAII3qU9hFUTRgwIBHHnkkiqLVq1evW7cuKyurXbt2vnkCACCq\nd2EXa9myZcuWLdM9CgCAOsS+LgCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIO+qZ5kce\nnNV1x3SPAgDqovp6HTsarFZnjEj3EACgjrLHDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQwg4A\nIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIO\nACAQwg4AIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQwg4AIBDC\nDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQ\nwg4AIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQwg4AIBDCDgAg\nEMIOACAQwg4AIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQwg4A\nIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIO\nACAQwg4AIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQwg4AIBDC\nDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQ\nwg4AIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQwg4AIBDCDgAg\nEMIOACAQwg4AIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQwg4A\nIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQmekeAADwv1Y9seLf58zNaJIRZSQqfq/k5qIo\nSgz4ekiNjYt6Q9gBQF2RyEsko2QiM6PzxF2yOuVU5C5r//bt13d9EWXV9NCoH4QdANQVicyM\njJxGTQ9suXTcJ7s8t1dunyZlz//tA8u+/t0Xbc7p9N3Dy2tnhNRxjrEDgLokEe08rV+T/Vss\nOvq9TQs2lDHjtw8s+/znCzrf2qvFEW1rbXTUccIOAOqWRHZGuW0XV90O53Su5eFRl9WPj2In\nT548bty4Cs68atWqGh0MANS0VNstOfOjRUe/V/ozWVXHttSPsBs6dOiiRYvuueee/Pz8Zs2a\nde3aNd0jAoCata22U3WUoX6EXc+ePe+4446jjz566NChhxxyyIwZM9I9IgCocaXbTtVRtvp0\njN2RRx7Zq1evdI8CAGpP8ePtlt+0RNVRtvqxxy627777bty4sRoXuGTJkv3337+goKCMefLz\n86MoSiQqca1IAKguqbb7+Ef/+mr8p+2v2lnVUYZ6FnYPPfRQ9S6wa9euf/rTn8oOu7lz515y\nySVZWS7+CEB6fPfY8u8/XJ+7R9Nv/7C09Ynty72+HQ1WPQu7apeRkTFkyJCy52ncuHGtjAUA\ntiI+rq7tGZ22dZ4spNSnY+wAoKEpfrZERa5vRwNXv8Nu5syZJ510UrpHAQA1ovQ5sNqOstXv\nsPvkk0/+/Oc/p3sUAFD9tnVlE21HGep32AFAkMq+Xp22Y1uEHQDULRW5CnHxttv85abaHB51\nmbADgDokWZCs4FWI47b76rrFUVHtjI66rn5f7mT06NGjRo1K9ygAoHps+WJTMr8oo3HGsusW\nL7tucYXuk0wWbihMFLmKPlFU38OucePGLjIHQDBan9YpysrI6ZpbqXslC5JF68q60j4NR/0O\nOwAISUbjjLZndUr3KKjHHGMHABAIYQcAEAhhBwAQCGEHABAIYQcAEAhhBwAQCGEHABAIYQcA\nEAhhBwAQCGEHABAIYQcAEAjfFVu+7OzsKIpycnLSPRAAoK5I5UFdk0gmk+keQz0wZ86cgoKC\nalnU2LFjN27cOHr06GpZWgN0zjnnXHTRRQMGDEj3QOql999/f/Lkyb///e/TPZD6aurUqVEU\nef1Wmdfv9vD63U5Tp05t3LjxDTfcUC1Ly8zM7N+/f7UsqnoJu9p29tlnR1F0//33p3sg9VXT\npk0ff/zxYcOGpXsg9dLMmTNPPvnk9evXp3sg9ZXX73by+t0eXr/bqYG8fh1jBwAQCGEHABAI\nYQcAEAhhBwAQCGEHABAIYQcAEAhhBwAQCGEHABAIYQcAEAjfFVvb6uZXy9Uj2dnZ1mGVWXvb\nydrbTrbA7WHtbacGsvZ8pVhtW7VqVRRFrVq1SvdA6qt///vfXbp0yciws7kqioqKPv/8827d\nuqV7IPWV1+928vrdHl6/26mBvH6FHQBAIPy3CQAgEMIOACAQwg4AIBDCDgAgEMIOACAQwg4A\nIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQwo667pNPPpk8eXK6\nR1GPWYFAg9LA/+gJuxqUn5//q1/9avDgwS1atOjRo8epp566ePHicu81ZcqUgw46qGXLlgcd\ndNCUKVNqYZx13G9/+9tx48ZVZM6ddtopUUoF7xuwiq/AyOb3Q5VdG7bAqEqbkK0uZpOrFg39\nj16SmrF69eqDDz44iqJdd931nHPOOeKIIxKJRF5e3uzZs8u41/nnnx9FUe/evc8444xevXpF\nUXTRRRfV2pjroL/97W85OTktW7Ysd86NGzcmEolOnToN+aH77ruvFsZZZ1V8BSZtfj9U2bVh\nC0xWaROy1cVsctXCHz1hV1OuvvrqKIp+9rOfxVNmzpyZkZHRv3//bd1l9uzZURQNHTp0y5Yt\nyWRyy5YtqRz88MMPa2PEdcxpp53Wu3fv1H8/KvIS/eCDD6IoGj9+fC2MrV6o7Aq0+RVXhbVh\nC6zCSrPVxWxy288fvRRhV1P69OnTrFmzTZs2FZ942GGHRVG0YsWKrd7llFNOiaJozpw58ZR3\n3303iqIzzjijZsdaJ40YMWL48OHDhw9v1qxZRV6if/7zn6MoeuKJJ2phbPVCZVegza+4KqwN\nW2AVVpqtLmaT237+6KUkkslk9X2uy/+32267de/efcaMGcUnDhs27LnnnluwYEH8v4ridthh\nh9zc3C+++KL4xE6dOiWTya+++qpmh1uH7b777l9++eWqVavKnu3GG2+8+uqr33nnnYULFy5a\ntKhz586DBg3adddda2eQdVkFV6DNr7gqrA1bYBVWmq0uZpOrRg38j15mugcQrLlz55aY8s03\n37z00kvt27fv0aNH6flXr169cuXKAw88sMT0Ll26zJo1a926dc2aNaupsQZh0aJFURQNGzbs\nm2++SU3JyMj42c9+dtttt2Vm2s7LYfMrrmpro4FvgVVYaba6mE2u9gW8+TkrtpYsXLhw0KBB\nmzZtuvHGG7f6klu3bl0URW3atCkxPTVl7dq1tTDIem3hwoVRFP34xz/+4IMP1q1b949//GPv\nvff+7W9/e9ttt6V7aPWAza+4qq2NBr4FVmGl2epiNrnaF/DmJ+q318aNG6dOnRr/2rNnz2HD\nhhWfYcOGDTfffPMtt9ySTCYnT5581llnbXU5WVlZURQlEomt3pqREWaCl7v2Km7ChAkFBQWH\nHnpo6tcDDzzwueee69Wr1/jx46+44gorsGwNc/OLtrECq7Y2GuYWGKvCSmuwW11pNrnaF/Lm\nl7aj+0KxfPny4uvzxBNPLH7rc88916VLlyiKhg8fvmDBgjKWU1hY2KhRo8GDB5eYPnDgwEaN\nGhUWFlb/0OuAstdeSr9+/Sp44nppJ554YhRFCxcu3L5h1l3VtQIb5uaX3MYKrMa1EfwWGKvC\nSmuwW11pNrnq1cD/6Nljt73at2+f3MYJKNdee+3111+/2267vfrqq4MHDy57ORkZGe3atfvy\nyy9LTF+6dGmHDh3q9/8etq2MtVctUjvVt2zZUnMPkV7VtQIb5uYXbWMFVuPaCH4LjFVhpTXY\nra40m1ztC3jzq8dDr+OmTZt2/fXXjxo16r333iu36lKGDBny6aefpg6bSJk7d+4XX3xRwbs3\nZPPmzevbt++YMWNKTJ8zZ05OTk7qspOUzeZXXGXXhi0wqtImZKuL2eRqX7CbX3p3GIaqqKio\nd+/eO+644/fff7+teTZv3rxy5cpVq1bFU1555ZUoin7yk5/ECzn55JOjKHr99ddrfMR12FZ3\nqpdYe4WFhTvttFNeXt4777wTz3PfffdFUXTuuefW3ljrpIqswKTN74fKXRu2wNIqu9IqcpeG\nwyZXjRr4Hz1hVyOWLFkSRdEOO+wwdGu++eabZDL54osvRlE0YMCA4ndMnVrxox/9aMyYMan/\nNPz0pz9N0z+irtjqS7T02nvllVdat26dlZU1YsSICy64IHUSe9++fYu/jBumCq7ApM3vh8pe\nG7bArarsSiv3Lg2KTa66NPA/esKuRvz9738vYy/pl19+mdzGRlZUVHTTTTcNGjSoefPmgwYN\nSp1L28BV/CX62WefnX322f369WvatOk+++wzbty4MvaYNhwVX4E2v+LKXhu2wK2qwkqz1cVs\nctWlgf/R880TAACBcPIEAEAghB0AQCCEHQBAIIQdAEAghB0AQCCEHQBAIIQdAEAghB0AQCCE\nHQBAIIQdAEAghB0AQCCEHQBAIIQdAEAghB0AQCCEHQBAIIQdAEAghB0AQCCEHQBAIIQdAEAg\nhB0AQCCEHQBAIIQdAEAghB0AQCCEHQBAIIQdAEAghB0AQCCEHQBAIIQdAEAghB0AQCCEHQBA\nIIQdAEAghB0AQCCEHQBAIIQdAEAghB0AQCCEHQBAIIQdQFnmzp2bk5Nz6KGHxlO2bNmy++67\nt2nTZvny5WkcGEBpwg6gLLvtttuYMWNeeeWV+++/PzXllltu+eijj+68884OHTqkd2wAJSSS\nyWS6xwBQp23evHnvvfdetmzZggUL1qxZs/vuux9++OHTp09P97gAShJ2AOWbNWvWoEGDRo0a\ntXz58tmzZ8+dO7djx47pHhRASZnpHgBAPbD//vtffPHFv/nNb6IoeuCBB1QdUDfZYwdQIZ98\n8skuu+zSpEmTZcuWNW/ePN3DAdgKJ08AVMjll1+enZ29YcOGq6++Ot1jAdg6YQdQvocffnj6\n9Ok33njjiSeeOGXKlDfffDPdIwLYCh/FApRjxYoVu+22W7du3WbNmrVixYq+fft27tx59uzZ\n2dnZ6R4awA/YYwdQjgsvvHD16tX33ntvo0aNOnXqNGHChHnz5t14443pHhdASfbYAZTl8ccf\nHzVq1OWXXz5p0qTUlKKiogMOOGDOnDmzZ8/u27dveocHUJywAwAIhI9iAQACIewAAAIh7AAA\nAiHsAAACIewAAAIh7AAAAiHsAAACIewAAAIh7KBBW7x4caKUzMzMnXfe+fjjj//ggw+2eq9p\n06YlEonjjjtu8+bNtTzgGnLwwQfvtNNO1bKo0aNHJxKJDRs2VMvSakLfvn333HPPKtwxvOcd\nwpOZ7gHA/2vv/oOarP8AgL83GD9kczA2HTIGAkoRQw8JHGhgDKETjgIqKy0NIUEIu4uwrisD\nj+vUM67L/hI5kOCMgiT0TgGBYU08tIKSGCI/EtIA0QEbG2PP94/Pffd9GmMsXH0r36+/eD7P\nZ8/e789zwtvneT6fB/3/eXh4xMTEGDfVavVPP/1UW1v79ddfKxSK0NBQeufbt2+/8cYbzzzz\nzOnTp1kslsmhtFqtk5MTAExNTbm4uPwFwSPbamhoyMjI+Oijj55++ml6u+XzjhD6m8DCDiEE\n69atO3XqFL2Foqg333zz2LFjBw4caGxspO/Kz8+XyWSVlZX29vgLxIzD1sAK2QAAC7RJREFU\nhw8fPHhw2bJl/+9AlkitVg8MDMy/4ojnHaF/BPz3iRAyg8FgvPfee8eOHfv+++9NdpWVlVn4\noKOj4+3btwHAQmWj0+kcHBxsEifd9PT03+EaoZubm5ub24Mfh6IovV7/gNfGbDjUls87Quhv\nAp+xQwiZx+VynZ2d6VduVCrV66+/vm7dOg6HExoamp+fr9FojHudnZ3JI3pCoVAoFDKZTAaD\nsWbNGrI3PT3dzc3tl19+2bJli5OTk6Ojo0QiOXnyJP0b5+bmioqKpFIph8NZvXp1Tk7Or7/+\naiHC3bt3e3h46PX6nJwcDodTUVFhTZwAoFQqU1NTvby8RCLRc889NzAwQN9rTITOmAgADA0N\nvfzyy4GBgc7OzmKxODU19YcffjDuNXnG7o8mJRAI0tPTS0tLhUKhg4ODt7f3888/f/PmTWOH\nxMREDodD/4hWq2UwGDt37rR+qOkuXrzo7OwcFBQ0NjYWGxtL7sDu2LGDwWCMj49bHs+oqCgm\nkzk2NkY21Wo1i8ViMBjNzc3G4z/66KNOTk5qtdpC1gghW8Erdggh83p7ezUaTXh4ONm8c+dO\nZGRkX19fZGTkCy+8cPXq1cOHD587d06hULDZbAAoLCycm5szfryzs7OysnLVqlXGltnZ2W3b\ntk1OTubm5ur1+vLy8rS0NC6Xm5KSAgA6nS42NlYul4eGhr744otKpfKTTz6pq6tra2sTi8UW\n4szOzq6pqUlMTJRIJNbEqVAo4uPjJycno6KivLy8WlpapFKpo6Oj8YCWE7l+/Xp4ePjs7GxC\nQoJMJuvv7z9z5kxzc3NXVxc9WWJpSV28eLGkpMTHx+eVV17p7++vrq5uaGhobGwMCQmxfMqs\nHGo6hUKRlJQkEokaGxv5fH5eXl5gYODHH3+ckZERERHBZrMtj2dcXJxcLpfL5cnJyQDQ3t6u\n1+sBQC6Xb9myBQB+++23n3/+WSaT/XPvTSP0D0MhhB5iN27cAID4+Hh6o1qtvnLlSnh4uL29\n/YULF0hjVlYWABQXFxu75efnA0BBQcH8w05MTPj6+rq6uvb19ZGWPXv2AIBEIpmYmCAtly5d\nAoDt27eTzeLiYgAoLCw0HoTc+0tJSVko+F27dtnZ2UkkkrGxMWPjonGGhYUxmcza2lqyqVKp\nNm3aBAAikciaRHJycgDg7Nmzxj7Hjx8HgPLycnqmU1NTS0uKz+cDwFNPPaXRaEhLVVUVAMTE\nxJDNhIQENptN/8jMzAwA7Nixgx6AhaF+5JFH1q9fT1HUd9995+rq6u3tPTg4aDzaV199BQAV\nFRXWjGdHRwcA5OTkkF0FBQUsFovH4xmjra6uBoAjR44slC9CyLawsEPooUYKO7PYbHZzczPp\nRh7VCgoKMhgMxs/OzMwIhcJVq1aZHNNgMCQkJDAYjLq6OmMjqTZOnz5N78lms2UyGflZLBb7\n+/vPzc3RO0ilUgcHh+npabPB79q1y+SYi8ZJCpFnn32WfpwrV66YLezMJtLa2lpRUUGP89y5\nc/TSh17YLSEpPp/PZDKVSiW9cdu2bQDQ09NDWV3YWRhqUth1d3cLBAIej3fjxg16T3pht+h4\nGgwGgUAgkUjIrq1bt27cuDE5OdnFxWV2dpb6bx3c1dVlNlmEkM3hrViEkOlyJ7Ozs9evX+/q\n6srPz29sbORwOIODgzqdLjo6msFgGLs5OjpGRETU1NSYzFo4dOhQfX3922+/nZiYaPJFGzZs\noG+ShVEAYHp6emhoSCqVkqtT9A46na6vr4/cZjWLfoNy0Th7enoAID4+nn6Exx9/XCAQzD+y\n2USeeOIJANBqtUqlcmBgoLu7u6SkxGxgS05KLBbTH+kjAZ89e1apVK5du3aBYTC10FATo6Oj\nMplsdHTUzs7OwpJ71pz32NjYqqqqsbExHo93+fLljIwMLy+vmpqaa9euhYWFtba2enp6BgUF\nWRk2QugBYWGHEDKz3AkAZGdnHz9+/OTJk7m5ucPDwwAgFApN+nh4eADA8PCwseA4f/78wYMH\nn3zyycLCwvlf5OrqajaAwcFBAFAoFAqFYv7eqakpC8GvXLnS+POicZKJC/MfhhOJRKOjo/SW\nhRJRq9W5ubmfffaZRqOxt7f39fVdu3atUqm0YVLz4/f09ASAoaGhhT4y30JDTQwPD4vF4k8/\n/TQrKys7O1suly/UzWw89PMeFxdXWVkpl8t9fX1VKlVkZOTq1asBoK2tbc2aNV1dXbt377Y+\nbITQA8JZsQgh81577TUAIMudkErozp07Jn1IC/kzDwCDg4MvvfSSh4dHVVWVnZ2d9d9FirN9\n+/aZvbMglUotfJbJ/N/vsUXjJK+XmD8vdWJigr5pIZHk5OSSkpL9+/d3dnbOzMz09PS8++67\ntk1qfvxkBZn5BRZhufA1y83NrampKTMzMyEhoa2trbKy0mw3a8771q1bGQxGS0sLeZIvMjIy\nODjYzc2tra2tra2NoiiT66MIoT8VFnYIIfNWrFgBAPfv3wcAHx8fFovV2tpK76DT6RQKhVAo\nJKtvzMzMpKSkqFSqzz//nHzWeu7u7u7u7u3t7SbtR48eff/9960/zqJxkiuL58+fp3fo7++n\nXwyzkMj9+/ebmpqSk5OLiookEgmp+VQqlW2TGhwc7Ovro7dcuHABAAICAsgmeXzNuJe+2IqV\nvL29/f39AaC4uNjR0TEvL29ycnJ+N2vOu1AoDA4Obmlp+eabbwICAgQCAYPB2Lx586VLl1pa\nWuzs7GQy2R8NDyG0ZFjYIYTMMxgMAED+3rNYrFdffbWzs5PMACUKCgqGh4czMzPJZnZ29tWr\nV48ePRoREbGEr9u7d29HR0dRUZGxpby8PC8vz8L0jvkWjXP9+vUbN26srq6uq6sje2dmZnJy\nckiyiyYyNzen1+vv3btnbLl79+6hQ4fgv8Nlk6QMBkNubq5WqyWbX3755ZkzZyIjIx977DEA\n4PF4Wq2WXB4DAI1G84dqXxN+fn55eXkjIyMmd5zJ22CtOe8AEBcX9+OPPzY0NJD5xQAQFRU1\nPj5+6tSpsLAwmyzXjBCy1p83LwMh9PdndrkTgqwoKxKJdDodRVEjIyM+Pj4AEB0dnZWVRda3\nCw4OJtM/6+vrAWDlypVHjhw5+ntk0Q0yVZO+LglFUXw+3zhVU6VSkUfsN2zYkJWVlZSUZGdn\n5+npeevWrYWCJ7NiSQBGluOkKOrbb79dvnw5k8mMjY1NS0vz8/Njs9mbNm0is2IXTSQuLg4A\npFLpO++8k5GRwefzybyT4ODg+vp66vezYpeQFJ/PF4lEPB7P398/LS1NJpMxGAwul9ve3k46\n1NbWAgCXy92/f/9bb70VEBDg7OzM4XBMZsVaGGrjcifE9PS0WCxmsVjd3d0URZGrg6GhoYWF\nhdPT04uOJ0VRTU1N5A9KaWkpaSGzjwHggw8+WChThNCfAQs7hB5qFgo7iqICAwMB4MMPPySb\n9+7d27dvn0QicXFxCQkJOXDggHGttRMnTiz0v0eymsai1QZFURqNJj8/PyQkZNmyZf7+/pmZ\nmSMjIxaCN1vYWY6T6OnpSU1NFYvFQqEwOTn52rVre/fuJYXdoomMj4+TzsuXL9+8eXNZWRlF\nUVlZWVwud8+ePdTvC7slJMXn86Ojo3t7e5OSkoRCoUgkSk1N7e3tpfcpLS0NCgoiiyrzeLz6\n+np/f/8lF3YURX3xxRcAQDpoNJqdO3e6u7vzeLy7d+9aM55arZZMizau0qLX67lcLgBcvnzZ\nQrIIIZtjULQHNRBCCD2g9PT0EydOTE1NLe3FtQKBICgoiP5KroUYDIZbt255eHg84PtkEUL/\nJrjcCUII2RL9dWR/KiaTafllawihhxBOnkAIIZu5efNmR0eHg4MD/eWzCCH0l8HCDiGEbKOs\nrMzPz6+rq2v79u329ku8H7JixQoej2fbwBBCDw98xg4hhGyju7u7oaEhMDAwJiaG/g4uhBD6\ny2BhhxBCCCH0L4G3YhFCCCGE/iX+A4DHDnGG1E/PAAAAAElFTkSuQmCC",
"text/plain": [
"Plot with title “Przykładowy wykres punktowy”"
]
},
"metadata": {
"image/png": {
"height": 420,
"width": 420
}
},
"output_type": "display_data"
}
],
"source": [
"#Zaczniemy od narysowania prostego wykresu punktowego\n",
"x = seq(-2, 1, 0.5)\n",
"y = c(1, 0, 1, 2, 3, -1, 2)\n",
"plot(x, y, pch=2:8, cex=2, col=1:7, main='Przykładowy wykres punktowy', sub='Różne rodzaje punktów')"
]
},
{
"cell_type": "code",
"execution_count": 105,
"id": "6ba01a91-0629-498c-8ff7-e06026049f28",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\ncOHCTJ55wIAB9iNfeeUVe/+GDRvs/TExMdbOBg0aWHtmz55t7bGbROPGjdu0aWONmzZtevHi\nRfupBg0aZD9Vx44drZ3p6enz/sv6g+1yuc6ePduyZUvrkbfeequ1056us+fwMoSRW7GrXbu2\ntcd9+sTlcm3dutWeT7LekD59+lib/fv3d7lcc+bMsRNKKlGiRHp6+rFjx+yX+OOPP67rnbkq\nT79odj4O17W/Htu2bbN2BgYGnjp1yt5/9uxZe55s7ty5LperYcOG1maFChWmTp164MABl8t1\n4cKFVf9lV5wr5aDYBQcHux/e/fjjj6/86K/6DD7+fQD8AidPAAYEBAS8+OKL9lkUtqJFiz7w\nwAPX+q0JEya8//771rhLly7uk3+NGzeuUaOGNV66dKmko0ePWv2yQIECV66v+umnn1auXGmN\ng4KCChYsaP9oypQphQsXtnPag+7du3fp0qVixYpTp07t1q1bdHR0mTJlVq9e7f60CQkJ586d\ns8YPPvig+4+uXHSVnJy8Z8+eqz64Xr169vRVXFycpPbt21ub1mkB1p/nsLCwbt26STp9+vTu\n3bvtv9mRkZEVKlTI2TvjzmsvmsnH4S7D18M+HSE9Pb1kyZL2WQLFihWzT4mwHnPPPfdYmwkJ\nCY8//njlypVr1ao1ZMgQazqtVatW7gdMb1zFihXdj7/bs2uSMjlXw/e/D4BfoNgBXlWxYsVO\nnTotW7bMXgDuLjQ09Fq/uHTp0qFDh1rjW265Zfbs2Xbrsjz00EPWwLpf2bfffutyuSTdc889\nxYoVyyTS6tWr58+fb2/OmjXrqncS27x5c1RUVPPmzYcPH/75558nJSV17tzZPsZn2blzpz22\n/5RaqlWrluEJExIS7D/zGR4sqWLFitbAOsrWrl27wMBASXFxcadOnbL+Zjdt2rRJkybWwzZs\n2GD/Ibf/6lty/M4YedEMH4e7DF8P65TqzJ08eVLSsGHDXn75ZfczWnbt2jV16tSuXbuWK1fu\nww8/zPJ5rov1ptkyfFGvxfe/D4BfoNgBnpXh5ImDBw9+9dVXGfqQ7Vp/AmNjY3v27Jmeni6p\nfPnyX331VaFChTI8xv5z9dtvv+3du9deVt+9e/erPmfdunUbN25sjYcOHXrhwgVr3Lt37ysf\nfPny5S5duuzYsUNSjx49Dh8+vHv37nnz5kVHR7s/zH2e5vDhw+4/smfybBUqVLAnig4dOpTh\n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\ny7DR2Ots7HLB5+Ldj6tigyQjIyMlJSUnJ+eZZ5656FfuzJkzkuLj48973Xrl9OnTQWgypGVk\nZEi69dZbN27ceObMmVWrVrVs2fL555+fNWuW6dZCALufr7JtjTDfA8uw0djrbOxywefi3Y9Q\nX15ZWVmvvvqqPWzcuHHXrl1933Du3LkZM2Y8++yzXq939uzZgwcPvuhyKlSoIMnj8Vz0pxER\n7ozgl916JTdt2rSCgoJbbrnFGrZr1+7TTz+9/vrrp0yZMmHCBDZg8cJz99MlNmDZtkZ47oG2\nMmy0sN3rLsQuF3xu3v2Mze5zi0OHDvluz969e/v+9NNPP61Xr56kbt26bd++vZjlFBYWRkZG\nduzY8bzX27RpExkZWVhY6P/WHaD4rWdJSEgo4YXrF+rdu7ekjIyM8rXpXP7agOG5+3kvsQH9\nuDVcvwfayrDRwnavuxC7nH+F+S89jtiVV82aNb2XuADliSeeeOqpp5o3b75ixYqOHTsWv5yI\niIgaNWocOHDgvNd/+umnWrVqhfZfD5dWzNbzC+ugen5+fuBWYZa/NmB47n66xAb049Zw/R5o\nK8NGC9u97kLscsHn4t0vhFt3uDfffPOpp57q16/fd999d9lUZ+nUqdOPP/5oTZuwbNmyZf/+\n/SX8eDjbunVr06ZNJ02adN7r6enpFStWtG47ieKx+/kq7dZgD1SZdiH2Ohu7XPC5dvcze8DQ\nrYqKipo0aXLNNddkZ2df6j15eXnHjh3LzMy0X0lLS5M0cOBAeyF9+/aV9OWXXwa8Ywe76EH1\n87ZeYWFh3bp1K1eu/O2339rvmTt3rqThw4cHr1dHKskG9LL7/dJltwZ74IVKu9FK8pHwwS7n\nR2H+S49gFxC7d++WVL169S4Xc/ToUa/X+/nnn0tKTk72/aB1aUXnzp0nTZpk/dEwZMgQQ/8R\nTnHRr+iFWy8tLa1atWoVKlTo0aPHH/7wB+si9qZNm/p+jcNTCTegl93vl4rfGuyBF1XajXbZ\nj4QVdjl/CfNfegS7gFi2bFkxR0kPHDjgvcROVlRUNH369JSUlKpVq6akpFjX0oa5kn9F9+7d\n+8ADDyQkJMTExNx0002PP/54MUdMw0fJNyC7n6/itwZ74EWVYaOx19nY5fwlzH/p8eQJAAAA\nl+DiCQAAAJcg2AEAALgEwQ4AAMAlCHYAAAAuQbADAABwCYIdAACASxDsAAAAXIJgBwAA4BIE\nOwAAAJcg2AEAALgEwQ4AAMAlCHYAAAAuQbADAABwCYIdAACASxDsAAAAXIJgBwAA4BIEOwAA\nAJcg2AEAALgEwQ4AAMAlCHYAAAAuQbADAABwCYIdAACASxDsAAAAXIJgBwAA4BIEOwAAAJcg\n2AEAALgEwQ4AAMAlCHYAAAAuQbADAABwCYIdAACASxDsAAAAXIJgBwAA4BIEOwAAAJcg2AGA\nsyxdurRBgwYfffSR6UYAhB6CHQA4S1ZW1p49e86dO2e6EQChh2AHwIUCkYqys7P9vsy8vDy/\nLxNAOCPYAQgN+/btGzRoULNmzSpXrlyvXr3evXunp6fbP33ggQdq165dUFAwZsyY2NjYd955\nx3r92LFjv//976+99tprr732gQceOH78ePXq1YcNG2b9tHv37rGxsb5ryc3N9Xg89913nzUc\nNmzYVVdd9fXXX19//fVVqlSpUaNGz549Dx8+fPTo0aFDh1533XVVq1bt3Lnzxo0bfRdSWFg4\nbdq0tm3bxsbGNmjQYMyYMQcPHrR/ai1z//79t9xyS6VKlSpWrJiYmPj6669bP/3Nb35z9913\nSxo4cKDH4zl+/PjMmTM9Hs8HH3zgu4oXXnjB4/G89dZbftm2AFyDYAcgBGzdurV58+bvv/9+\ns2bNhg0blpSU9PHHH3fu3Pnnn3/2fdvo0aMXLlzYvXv3xMRESYcOHWrTps3bb7+dmJjYqVOn\nzz77rFWrVllZWaVadXZ2dteuXePj4ydNmpSYmPjhhx926dIlNTV17dq199xzT/v27ZcvX373\n3XcXFBRY78/Ly+vcufNjjz1WUFDQv3//+vXrz549u02bNvv27bOXmZ+f37Vr1z179owdO3b4\n8OH79u0bMmTIv//9b0l//OMfH3roIUnDhw+fN29eTExMjx49JJ035W7RokUVK1a0IiAA/JcX\nABxvzJgxkj755BP7lRdeeEHSW2+9ZQ0HDx4cGRmZmJh47Nix8z714YcfWsOff/65fv36koYO\nHWq90q1bt5iYGN8V5eTkSBo4cKA1HDp0qKQ+ffoUFhZar9StW1dSampqbm6u9cpvf/tbSVu3\nbrWGf//73yVNmTLFXuabb74pqVevXr7LTExMzMzMtF5ZtWqVpH79+llDK8O988479hKSkpKq\nVauWn59vDQ8ePBgREdGzZ8/SbkYArscROwAhoHfv3u+8806XLl3sVxo0aCDpxIkT9iuFhYWT\nJ0+Oj4+3hrm5ua+88kpKSop9WKt27drjx48vw9r//Oc/R0T832/Lrl27SpowYUJ0dLT1Smpq\nqm8ns2bNaty48aRJk+yPDxo0qG3btosXL/Y9WDh58uS4uDirbteuXUxMzLFjxy7VQI8ePU6c\nOPHll19aw3//+99FRUX9+vUrw38LAHeLMt0AAFxex44dJeXm5mZkZOzZs2fbtm1z58698G03\n3nijXe/evTs3NzclJcX3DW3bti3D2q2jdBYrjTVq1Mh+pVKlSnZ97ty5ffv2tW3bdsGCBb5L\nqFSpUl5e3q5du6xzxJJatmx53huKaaBHjx5PPvnkxx9/fMstt0hatGhRTExMt27dyvDfAsDd\nCHYAQkBWVtbYsWPffffd7OzsqKiohg0bXn/99RkZGee9rWbNmnZtzWmrXr267xtq1KhRhrV7\nPJ7zXrEP4J1n7969ktasWbNmzZoLf3r27Fm7tg/XlUSLFi0aNWr00Ucf/f3vfz906NCXX37Z\nv3//ypUrl3wJAMIEp2IBhICePXvOnTt33LhxGzduzMnJ2bFjx+TJky98m2/eskLeeec3iznd\nafHNXmVgrXTUqFEXnftStuOFlh49euzduzc9PZ3zsACKQbAD4HSnTp1atmxZz549p02blpiY\nGBkZKen06dPFf6px48YRERHffPON74vnDSVZVyTYQ99bqJRBfHx8fHz8hWv529/+9sQTT5Rn\nyT179pT00Ucfvf/++9WqVbv99tvLszQAbkWwA+B0hYWFBQUFJ0+etF85ceLE1KlTJRUVFV3q\nU1dcccXgwYNXrlz56aefWq8cPnx45syZvu+pVq1abm6udVGqpOzs7HLGL0kjRoxYt27dtGnT\n7FfeeuutP/7xjzt37izVcs67d3GbNm1q16795ptvrlq1qlevXhUqVChnnwBciWAHwOmqVat2\nxx13LFu2LCUl5bHHHnvwwQebNGliJZt58+Z98sknl/rgtGnT6tSpc/fdd/fs2XPo0KE33HBD\nkyZNJFWsWNF6g3WLuO7du48fP37ixIk33HDD+vXrz7tlcWlNnDgxISHhscceu+mmm0aNGnX3\n3Xf//ve/v+aaa2bMmFHCJVSpUkXSiy++OHXqVPtCWo/Hc9ddd+3evbuoqOjee+8tT4cAXIxg\nByAEzJ8/f8SIEfv37589e/a2bdtmzpz5+eefjxw5cu/evefduddXzZo1169ff88993z11Vdf\nffXVkCFDnn76aUkxMTHWG+6+++433nijbt26L7300owZM44ePbpo0SLfKzDKIDY2du3atRMn\nTvR6vfPmzduyZcvw4cPXrl17zTXXlHAJHTp0uO+++3bv3v3cc8/l5ubar1tnY2vXrm3dYAUA\nLuTxnVwCAG6ybt26SpUqJSQk2K989tlnd9555yuvvGI/VcxSVFR04MCB2rVrO/kU53fffdey\nZcuxY8da90AGgAtxxA6Aa40dO7Zly5b79++3hl6v95VXXqlcubJ1BtZXREREvXr1nJzqJL37\n7ruSOA8LoBgcsQPgWosXL77rrrsaN27co0eP+Pj4JUuWLFu27E9/+tP06dNNt1Y6p0+f3rVr\nV8eOHa+++uodO3aYbgeAcxHsALjZkiVLpk2btmnTpoiIiISEhCFDhgwcONB0U6VWvXr1Y8eO\neTyeRYsW9erVy3Q7AJyLYAcATvfss88eP368d+/eN910k+leADgawQ4AAMAluHgCAADAJQh2\nAAAALkGwAwAAcAmCHQAAgEsQ7AAAAFyCYAcAAOASBDsAAACXINgBAAC4BMEOAADAJQh2AAAA\nLkGwAwAAcAmCHQAAgEsQ7AAAAFyCYAcAAOASBDsAAACXINgBAAC4BMEOAADAJQh2AAAALkGw\nAwAAcAmCHQAAgEsQ7AAAAFyCYAcAAOASBDsAAACXINgBAAC4BMEOAADAJf4fhj4XvdCFQ2MA\nAAAASUVORK5CYII=",
"text/plain": [
"Plot with title “Przykładowy wykres liniowy”"
]
},
"metadata": {
"image/png": {
"height": 420,
"width": 420
}
},
"output_type": "display_data"
}
],
"source": [
"# Jeśli zmienimy typ wykresu na liniowy, to podane punkty zostaną połączone łamaną\n",
"plot(x, y, type='l', lty='dashed', lwd=3, col='green', main='Przykładowy wykres liniowy', xlab='argumenty', ylab='wartosci')"
]
},
{
"cell_type": "markdown",
"id": "94255033-2084-45e9-bd6c-d10e46a098e8",
"metadata": {},
"source": [
"Jeśli chcemy narysować wykres funkcji, dla której znamy wzór, możemy też zastosować następujące polecenie:\n",
"\n",
"`curve(f, from=NULL, to=NULL, n, add=FALSE, ...)`,\n",
"\n",
"gdzie:\n",
"\n",
"* `f` - nazwa lub wzór funkcji,\n",
"* `from`, `to` - minimalny i maksymalny argument, dla których będzie obliczana wartość funkcji,\n",
"* `n` - liczba naturalna, która oznacza liczbę punktów, w których będzie obliczana wartość funkcji. Punkty te są rozmieszczone równomiernie w dziedzinie,\n",
"* `add` - przyjmuje wartość `TRUE`, jeśli wykres ma być dorysowany do wcześniej istniejących wykresów i `FALSE` w przeciwnym przypadku.\n",
"\n",
"Podobnie, jak w przypadku polecenia `plot` w miejscu `...` można wpisać wiele różnych parametrów kontrolujących wygląd wykresu."
]
},
{
"cell_type": "code",
"execution_count": 120,
"id": "472084d6-7c92-4b9a-b710-772b2f571252",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\nNL7//vv64/r6+tatW9fDw0MfGTt2rHbfW7duma7eKFiwYI4cORJ8tOnF7uHDhyVLltTHixUr\nVq1aNX0PJxH5/vvvjUbj4cOH9ZFTp05p982fP78+OHr0aG1Q//ju2LGjNrJp0yZ9soCAgD59\n+lSrVk0fmT59elJvYpof1OJvRzKLh5nPbubMmfqgj49Pu3btatasqb25ItK7d+9UxU7s5MmT\nu3fvLlasmDblK6+8snv37suXLxvTWuw0BoPB09NT72oi0rRpU31iM1+927dv618zsmTJUrly\n5f/973/6DJs0aaJNZqlip8mePXu2bNkkkXz58ple/eijj7S7m/nHZbrnxooVK/RHN3MxUBjS\n/KXLnPfLnE9F8xcny2YzXWz0x/Xw8ND/3ESkT58+yS9OyHgUO6QgqWJ37do109V1jRo10sZN\nP4CcnZ0HDhz4zTffmH531MXGxjZs2FCfePHixdr40KFDtZE8efLExsZqg/oHcYsWLbQR0/8L\n79y5o23aE5G2bdtqH4WaoKAg/cNr2rRp2qCfn582OGbMGH1KfX/BZs2aaSNvvfWWNpI9e/b1\n69drmd977z3TTzq92I0ePVobcXBw+O677/RXqWrVqtp4vnz57ty5Ex8fr3/yalXvwoUL+oem\n6UeqXhO1ucXFxZUtW1Yb0XuY6ePmyJEjqbKS5ge1+NuR1OJh/rPT36aePXvqk+n//eirJM2M\nnRT9MFjTMGkudm3btr1165bRaIyIiNBriv5dyPxX780339SXpePHj2uDpmcaOnHihNGixW7M\nmDFPnjyJiooaPHiwPlisWDHt68GxY8f0rzpt27bV7m7mH1dSncnMxUBhSKPZS5eZ75eppD4V\nzV+cLJvNtNjVqlXrypUrRqPxwoUL3t7e2mD58uWTX5yQ8Sh2SIFpsUvGnj17tOlNP4B++umn\nZObcr18/fcoPPvhAH9+3b58+vmPHDm1Q/za5aNEibUT/v7B69er6ZpeAgIBHjx7psxo0aJA+\nq5YtW2qD8fHxK/6lfT4ajcb79+8HBgZqU1atWlUb1FfX6d/gE4QRk2KnVwHTL8pGo/H48eP6\nF1ztBenVq5d29fXXXzcajcuWLdMTikju3Lnj4+Nv3rypP8Rff/1lNBrDwsK0qw4ODnfv3tXn\nf//+ff2L+/Lly5N6tdP2oJZ9O4xJLx7mP7sqVapoVwsXLjxnzhxtXdrDhw+3/0v7z8zM2Emx\nYLFzdnY23bi/ePHixAuPma9e8eLFtZtGjhxpOt6kSZNSpUqVKlVKe4ksVezy58+v10r9m4CI\nzJw5U5+4W7du2qC2rtH8P67ndibzFwOFIY1mL11mvl+mkvpUNH9xsmw202J35swZfbKpU6dq\ng1mzZjXCynAeO7wog8Hw3nvv6UdR6Nzc3Nq2bZvUvT777LN58+Zpl9u3b2+68q969ere3t7n\nz58XkQ0bNgQGBt64cUPrly4uLon3r9q/f79+2cnJKWvWrPrVr776Knv27FFRUfLvqintQufO\nnePi4vbt2zdnzpzjx4+fOXPm1KlTCU5Ce/Xq1QcPHmiX27VrZ3pT165dTTduikhMTMy5c+ee\nO3H58uVLly595swZETl58mTbtm2bNWu2cOFCEdH2B9c+iAsWLNipU6eQkJDIyMizZ89q04tI\nhQoVChcuLCL6/tHx8fH6droEktklP20PKhZ9O0wlWDzMf3YtWrQ4dOiQiFy9enXgwIEi4uPj\n07Bhw4YNGzZv3lzfHpfa2OmnSJEiplvw9VWnIpL4QPJkXr3o6OjLly9rl/UKojHdfGlBxYoV\nc3B4eoCd6dHBpUqV0i8nOGrYzD+upKRhIc/4kGLe0pWG9yuZT0VdiotTOmVzdXXVVySLiL4Z\nl5MhWCGOikXaFSlSpHXr1iEhIfq++aYKFCiQ1B03bNgwYsQI7XLlypUXLVpkutOGiOjfsLXz\nxG7atMloNIpIixYtkj/9xM6dO1euXKlfXbhw4XN/SezIkSMVK1asXbv22LFjV61aFRUVFRQU\npG+I0Zw+fVq/rLccTYkSJRLM8OrVq/oHXIKJRaRIkSLaBW2NQuPGjbX/ik6ePHn37l2tYwUE\nBNSoUUObbN++ffrX7mbNmmkXtIOOk3fnzp2kbkrbg2os9XaYSrB4mP/sRo8ePWrUKNMjWs6c\nOTNnzpwOHTp4enrqK89eJLZl6bVDk2BRT0aCV09bN6ldTuaPy4KSipr8CVPM+eNKShoW8owP\nqUlx6Urt+5Xip6LGnMXJ4tkk0etp/mKMjEexQyokOHjiypUr69evT+rTMKm//KNHj3bt2lU7\n6VShQoXWr1+feK9n/YPp1KlT58+f179Edu7c+bnzLFu2bPXq1bXLI0aMePjwoXb5lVdeSTzx\n48eP27dvf+LECRHp0qXL33//ffbs2RUrVlSqVMl0MtOvxQlOlKCvydMVLlxY31R07dq1BLfq\n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\nfADB5cuXc+TI8ejRI31k586dW7duNZ3m1q1befLkyZEjx5MnT/7++28RadOmTYL5tGjRQkSu\nXbuWYoy33npLW+wXLVqkD8bGxs6ePfvs2bP6SHx8/Jw5c0wPyDAajf/888/YsWNdXV2zZs06\ne/ZsbTAqKupzExs2bDDzuacBB0+Y79EjY5MmRkdHY8+exvPnVacBYHes+eAJVjlAmTVr1jRr\n1ixr1qz6SJ1EP+GUL1++hg0brlq16vz5897e3o6Ojnfv3k0wzZ07dxwdHT08PFJ8xEGDBs2Y\nMSN79uxt2rTRB52cnN747+pJg8EwYMAA05FffvllwIABly9fbtWq1fTp0/XDXR88eDBs2DB9\nsg4dOrTkt+KtgMEgVavKjBlisn8mAGQKbIqFMgm2wyZF29IaGxvr4OBQoECBxAciXL16tWDB\ngg5mnFh2+PDhzs7OUVFR2klMzDRu3LgWLVq4ubnt2LEjODhYb3Ui4uHhYfo96ccffzR/trCs\ny5fl3Lmnl11cZOJEWh2AzIhiBzVu3769b98+bSuq5sSJE35+fqNGjUow5dGjR11cXLRTFter\nV+/ChQvarnia8PDwK1eumHMW4qVLl65fv37KlCkdOnSYM2fOXvOODlm4cOFHH33UpUuXP/74\nw/xzHSMj3bolb70lPj7y318hAYDMiGIHNdavX1+nTh39eAUR8fX11XZZO3DggD74/fffh4aG\n9urVSztSoX///iIyYcIE7Vaj0ahdHjRoUPIPd+PGjaFDh1apUmXIkCEzZ850c3Pr27dvTExM\n8vcyGo2TJ08uXLjw/PnztVOcwKpERcnUqVK6tGzcKIsXy/TpqgMBgGrsYwc1Em+HdXBwWLx4\ncbt27WrVqtWqVauCBQseO3Zsz549fn5+U6dO1aapW7du7969FyxYcO3atZo1a+7evXvnzp2v\nvfaafia8pAwaNCgyMnLevHmOjo6FChWaNGnS4MGDp0yZop27LimXLl06ffp0/vz5n7vJePHi\nxfny5Uvl84YlVasmDx7Ip59K797y7zlzACBTo9hBgaioqC1btpiecERTt27dw4cPjx8//sCB\nA5s3b/b19R0zZsyoUaNMD7D4/vvv/fz81q1bN3v27PLly0+bNu2dd95J/uFWrlz5008/DR8+\nXPtFWhEZOHDgokWLJk2a1LFjRz8/v6TueOHCBRG5devWxo0bE9+qHRUFhVaskNKlhV/iBQCd\n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\nv7569eoffvhh9+7d8fHxnp6enTp16tq1a40aNdIpoojMnj17zJgxZk589+5d8+d89+7d0aNH\nx8XFJTPNyZMnd+3a9eDBgxyczEPkp5+kUyf58Udp21Z1FAAAVIiJiXFxcdmzZ09AQIDqLAml\n+qjYggUL1q5dOyIi4sqVKxcvXvz7779nzpw5c+ZMHx+fSZMmtW/fPj1SNmvW7OzZs3Pnzn38\n+LGbm1vx4sXT41Fgjps3ZfZsWh0AwKZMmSKPH8u4capzpDtz19jFxcXt2rVr3bp1a9euvXTp\nkoh4enq2adOmXbt27u7uS5cunTdvXlRU1P79+6tWrZpOWTdt2tSsWbNWrVoFBwen00M819y5\ncwcMGMAaOwAAbNLy5dK3r6xaJc2aWWR+tr3GbvXq1evWrduwYYO2idPb2/udd95p165dzZo1\nDQaDNk3lypV79OhRuXLl1atXp1+xa9q0qY+PTzrNHAAA2KeXX5ZataRYMdU5MkLKxa5Dhw4i\nUrFixaFDh7Zt27ZChQrPnczb2ztfvnzu7u4WDvhf1apVe/jwYbo+BBKLjZURI2TwYClVSnUU\nAADMFBEhISHSq5dkzy7Zs6tOk0FSLnbTp09v27ZtyZIlk58sZ86ct27dslCqJC1ZsiS9HwKJ\nDRok69fLe++pzgEAgJnu3ZNatcTdXXr1Uh0lQ6Vc7IYPH54BOWC1PvlEliyRrVvF01N1FAAA\nzOTkJD17yrBhqnNktJTPY4fM7KefZNQo+e47eekl1VEAADDH9esiItmzy+jRkvmOeqTYIUm3\nb0vPnvLRR9Ktm+ooAACY49tvpWhROXFCdQ5lUn0eO2QeefLI+vXSsKHqHAAAmGnNGvn6aylb\nVnUOZSh2SJKDA60OAGBTQkJUJ1CMTbF4jsePVScAAMBMDx5Ihw7yww+qc1gFih0SeuMNadlS\ndQgAAMz03nsSFibp+Zv1NoRNsfiPGTPk229l40bVOQAAMNPHH0vWrJItm+ocVoE1dnjml19k\nxAj5/nupX191FAAAkrdzp/z4o4hI3ry0Oh3FDk9dviw9e8qIEdK9u+ooAAAkb9s2adRILlxQ\nncPqsCkWTy1fLhUqyIQJqnMAAJAiLy/54QcJClKdw+qwxg5PvfeebN0qTlR9AIDVio2VY8dE\nREqUoNU9F/+NA/9v784DbKz7Po5/zqzINPZ17MvYRwnJNmVtUE9FlqnMw20pQ4qK5BYpU9rI\nkqToLkskWRprSIpujIkhy2DC2MJYhzEz5/ljzqMiazPnd851vV9/nes60/GZI3M+8/1dCwDA\nG6Smql077dun3btNR/FcTOzs7vRpHT9uOgQAADd06pTy5dPy5aZzeDSKna2lpallS736qukc\nAADcULFimjNHZcuazuHRKHa2NmiQ9u7V4MGmcwAAcC3z5qlQIR08aDqHd+AYO/tauFBjxyo2\nViVKmI4CAMC1REerf3+VLGk6h3eg2NnUb78pKkqvvKIWLUxHAQDgOvbvl8NhOoTXYCnWpr74\nQnffraFDTecAAOBqZ87oX//Szz9LotXdEoqdTQ0erKVL5etrOgcAAFeLitKaNSpWzHQO78NS\nLAAA8DCjRqloUQUHm87hfZjY2UtKCletAwB4quXLXcuvlSvT6m4Pxc5GLl5U8+bcDRYA4JGm\nT1fr1tq2zXQO78ZSrI0MGKADBzRokOkcAABcrXRpff212rUzncO7UezsYvZsffihlizhUFQA\ngCc5c0bHjql8eTVqZDqKFbAUawu7d+tf/9KIEWrWzHQUAAAu279f9epp4EDTOayDYmcLX36p\nhg1ZhAUAeJjfftO992rqVNM5rIOlWFt4+WXTCQAA+LPMTPn4qGFDNWxoOoqlMLEDAABu5HRq\n8GBVrGg6hzUxsQMAAG6UmKipU/Xpp6ZzWBMTOytbtEiVK5sOAQDAn1WsqEOH1Lq16RzWRLGz\nrHPnFB2thx82nQMAAEk//6xmzXT6tOkcFkexs6zBg+V0atgw0zkAAEhP1wMPqEwZ5c1rOorF\ncYydNf33v5owQfPm8S8IAOAB/PyUkKAyZUznsD4mdtbUp486dVLbtqZzAADs7Px5vfKKDh6U\nRKtzD4qdNQ0cqLFjTYcAANjcQw9p+nTTIeyFpVhrevxx0wkAAHjpJd19twoWNJ3DRpjYAQCA\nbLV0qfbvl6QWLWh1bkaxs5QVK7RypekQAAA7e+sttWmjbdtM57Apip11HD2qjh0VH286BwDA\nzkqU0JIlatXKdA6b4hg763juOZUooT59TOcAANjQoUPy91ehQnriCdNRbI2JnUUsXqyZMzVp\nkvz9TUcBANjNmjWqUUOTJpnOAYqdJZw7p6efVt++atDAdBQAgA3t3Kk+fTRokOkcYCnWEhIT\nVaSIRo40nQMAYCuZmUpPV0CAunc3HQUuTOysoFYtrV/P3cMAAG505IgaN1bPnqZz4C8odgAA\n4NYtX67AQL3xhukc+AuKnXdLTzedAABgT5GR+u47lShhOgf+gmLnxS5cUIUKWrbMdA4AgE1k\nZOiFF/TYY6Zz4Jo4ecKLffyxzp3TvfeazgEAsIklSzR1qr780nQOXBPFzltduqS339Zzzyko\nyHQUAIBNRETo4EEFBJjOgWtiKdZbTZ2qlBTuMwEAyHmzZ6tLF9djWp1no9h5pYwMxcSoXz/l\ny2c6CgDA2jZvVufOqlPHdA7cFJZivZLTqdat9dxzpnMAACwvLEyJiSpTxnQO3BQmdl7Jz0/j\nxyt/ftM5AABWlZCg6GhlZsrhoNV5EYodAAD4qyNHdO+9OnpUPvQEL8NSrPdJS+PQVQBATipc\nWPPnKzzcdA7cMpq4l1mwQOXLmw4BALCk48f1+utKS5OPj+6/Xw6H6UC4ZRQ7LzNihB5+2HQI\nAID1XLigunX11VfKyDAdBbePpVhvsmiR4uM1e7bpHAAA6wkM1IgRevRR5c5tOgpuHxM7bzJq\nlJ56SmXLms4BALCMS5f06ae6cEEOh554QnnymA6Ef4SJndf47jutW6epU03nAABYSfPm2rFD\nERHKlct0FGQDJnZeI29ejR6tihVN5wAAWMkjj2jjRhUtajoHsgcTO69Rr57q1TMdAgBgDYsX\nKzxcuXKpf3/TUZCdmNgBAGAzUVF69FElJZnOgexHsfMC6emcew4AyD4VKuinnxQaajoHsh/F\nzgt06KBhw0yHAAB4u02bdOGCJA0dqrAw02mQIyh2nm7zZn3zDRclBgD8M8OGqV49xcebzoGc\nRbHzdCNHqlUr1a1rOgcAwKtduqTYWNWvbzoHchZnxXq07dv19ddavdp0DgCAl9qzRyVLKjBQ\nb7xhOgrcgYmdR3vjDTVtqkaNTOcAAHijCRNUpQrjAVthYufRatfWc8+ZDgEA8FJ792rqVLVs\naToH3Idi59EGDDCdAADgdQ4dUqFC8vfX6NGmo8DdWIoFAMBCvvhCFSpo0SLTOWAGxQ4AAAvZ\nsEFvv63/+R/TOWAGS7Eeql07tW+vrl1N5wAAeIUTJxQUJH9/vfee6SgwiYmdJ8rM1OrVCg42\nnQMA4BW+/lply+qrr0zngHkUO0+0fbvOnNE995jOAQDwCqtXa8gQdexoOgfMYynWE23YoKJF\nFRJiOgcAwJOdOqU77pCfn95/33QUeAomdp5o40buIQYAuK6FC1W2rGbONJ0DnoVi54mSkrib\nHwDgupYt0/PPq3Nn0zngWViK9USff67cuU2HAAB4oMvLr2PGmI4CT8TEzhMFBcmPyg0AuMKC\nBSy/4voodgAAeInlyzVggLp0MZ0Dnou5kMc5elRBQSzFAgD+X0qK8uZl+RU3g4mdx3n0UU2a\nZDoEAMBDzJunsmU1a5bpHPAOFDvPkp6uTZtUubLpHAAAD7FqlQYN4uxX3CSWYj3L1q1KTdXd\nd5vOAQAw6+hR5c8vf38uPoxbwsTOs2zcqJAQFStmOgcAwKDp01WunObNM50D3odi51k2buQW\nsQBge//9r2Ji1L696RzwPizFepxWrUwnAAAY8dtvKlZMAQF67z3TUeCtmNh5lgkT1Lu36RAA\nAPebMEGVKmnZMtM54N0odgAAeIC9ezVlitq0MZ0D3o2lWAAAzNm2TRUqKDBQo0ebjgIrYGLn\nQTZsUFKS6RAAALcZPly1amn9etM5YB0UOw/y9NP68kvTIQAAbpOWpgUL1KSJ6RywDoqdp0hL\n05YtCgsznQMAkNNWr1ZqqiS9/roefNB0GlgKxc5T/PKLLl7UXXeZzgEAyFHduqllS+3aZToH\nrIli5yk2bFC5cipc2HQOAECOKl9eP/2kWrVM54A1Uew8xcaNqlPHdAgAQE5IT9fMma7l11de\n4Y7gyDlc7sRT1Kql0qVNhwAAZDunU82aKSFB993HD3rkNIqdp+jb13QCAEBOcDjUvr2mT1fJ\nkqajwPpYigUAIAecOqV33tGFC5LUty+tDu5BsQMAILulpuquu/Txx7p40XQU2AvFziPMmaMf\nfzQdAgCQXXLl0htvaONGBQebjgJ7odh5hNdf19q1pkMAAP6h7dvVv7/S0+VwqFMn5cljOhBs\nh2Jn3oULSkjgWicA4OWSk3XPPdq7Vw6H6SiwL86KNW/zZqWnc1UjAPByxYtr+XI1aGA6B2yN\niZ15GzaoYkXly2c6BwDgNsydq86dJcnhoNXBOIqdeZs3M64DAO+0aZM6dlSNGqZzAC4sxZrX\nvr3y5zcdAgBwG+66SwcOqGhR0zkAF4qdea1bm04AALh5aWkaOlQJCVq4UA4HrQ4ehWIHAMCt\nWL5cn3+uTz81nQP4GxQ7AABugtOptDQFBioiQgcPmk4D/D1OnjBs9GhNn246BADg+pKS1LCh\nIiNN5wBugGJn2NSpOnLEdAgAwPWtW6dixTRmjOkcwA2wFGvS2bPasYN7TgCApzp0SA6HihVT\nx47q2NF0GuDGmNiZFBcnp1N33WU6BwDgagsWqGpVjR1rOgdwC5jYmbRhg6pUUVCQ6RwAgKud\nP6/hwxUdbToHcAsodiYlJLAOCwAe5ptvVL26KlZk7RXeiGJn0osvKlcu0yEAAJf176+JE/XV\nV6pY0XQU4HZQ7EyqXNl0AgDAnz34oLp3V82apnMAt4mTJwAA9nbsmPr1086dktSqFa0OXo1i\nBwCwt/Bwff+98uQxnQPIBizFGtOnj0JCNHiw6RwAYHNz56p8efn7m84BZAMmdsYsW8aFTgDA\nkNmzVauWDh+WpNBQWh0sg2JnxqlTSkzkWicAYMK5c+rZU48+qiJFTEcBshlLsWZs2iSHQ2Fh\npnMAgK38/rsKFdIdd+jkSdNRgBzBxM6MDRtUvTqH6gKAu5w6pXbtVK2a6RxAzqLYmZGUpPr1\nTYcAAPv4/XcFBGjVKtM5gJzFUqwZb70lh8N0CACwvH37tHev7r9fFSroq69MpwFyHBM7M/Lk\nUe7cpkMAgLWtWKEaNTR1qukcgPswsQMAWFSpUpo8WZ06mc4BuA/FzoBTp+Tjw0XsACAHpKXp\n3XdVrpw6dlTlytyTG3bjrUuxp0+fPnjw4KFDhzIzM01nuWVPP61XXzUdAgAs6cUX9e67yp/f\ndA7ADC8rdlu3bu3atWvx4sWDg4NDQkJKlCgREBAQEhLSpUuXtWvXmk53s9atU6VKpkMAgCUN\nHaqdO9WypekcgBneVOz69u1bq1atzz77zOFw1K9fPyIiIiIiom7dug6HY8aMGY0aNerRo4fp\njDd24oT27dM995jOAQCWsXSpypfXvHmSVLCg8uUzHQgwxmuOsZswYcK4ceNatWo1atSou+66\n64pnExISXnvttY8//rhq1arPP/+8kYQ3acMG+furZk3TOQDAMsaN0yOPqFUr0zkA87ym2H3x\nxRehoaELFy708/ubzNWrV58xY0ZycvLcuXNvqdhlZmZ+//336enp1/ma7du333Lca9u4UTVq\nKDAwG18SAOzH6dTatbrvPvn4aP5802kAT+E1xW7r1q2PPPLI37a6LA6Ho3HjxuPHj7+ll01K\nSnr88cevX+wuXrwoyel03tIrX0tGhlq3zpZXAgC7SkvTgw9q3Trt2KGQENNpAA/iNcWuRo0a\n69evz8jI8PX1vdbX/PTTTzVq1Lilly1XrtzRo0ev/zWTJk3q3bu3I5vuFPHKK9nyMgBgYz4+\nathQkyfT6oAreM3JE5GRkb/++mu7du22bNly9bM7d+6MjIxcuXLlww8/7P5sAAB3WLvW9cux\nn59GjFD58qYDAR7HayZ2zzzzzJYtWz788MPY2NhSpUqVKVOmQIECDofj5MmT+/fv37t3r6So\nqKiBAweaTgoAyAE//qgmTdSrl+kcgEfzmmInaeLEib169XrrrbeWLVv2ww8/ZO309fUtUqRI\n586de/Xq1bRpU7MJAQA5pW5dbdmiatVM5wA8mjcVO0m1a9eePn26pJSUlDNnzvj7+xcpUsTH\nx2sWlAEAt2DfPvXsqZAQffKJ/P1pdcANeVmxuyxfvnz5uAQlAFjbt9/K319DhpjOAXgNZl0A\nAA+zfr0OH5akZ57RokWqUMF0IMBrUOwAAJ5kwADdd5/+/0BqALfEW5diAQDWVK+efvpJ9eqZ\nzgF4JSZ2AADTNmzQ44+7ll87dqTVAbeNYgcAMCo1VY0by8dHd95pOgrg9ViKBQCY4HTq+HEV\nKqTcuZWcrPz5TQcCrICJHQDA7Q4cUKNGatjQtUmrA7IJxQ4A4HbHj6tKFS1dajoHYDUsxQIA\n3MLp1BdfqEABRUQoLExTppgOBFgQEzsAgFu89JJ69dLJk6ZzAFZGsQMAuEXfvtq1S5GRpnMA\nVkaxAwDkmKlTVbiwVqyQpFKlVKKE6UCAxVHsAAA5Zs4cvfiimjY1nQOwC06eAABkq4MHtWiR\nevaUpIULTacB7IWJHQAg++zYoSpV9Mknysw0HQWwI4odACD7lCmjmTP144/y4fMFMIB/eACA\nf2b3brVurV69JClXLrVpQ6sDTOHfHgDgn/n2WwUEaOBA0zkAUOwAALchPV2ff66DByWpXz/N\nn69KlUxnAkCxAwDchmbNFB2t/ftN5wDwF1zuBABw6/79b9WqpcKFTecA8BdM7AAANyE1Vf36\nqXhxZWRIUrNmtDrAA1HsAAA34bfftGmTPvlEvr6mowC4JpZiAQDXNm+eAgIUEaHQUP3wg+k0\nAG6AiR0A4BpefVUdO2rfPtM5ANwsJnYAgL86f1558khS9+7q2lXlypkOBOBmMbEDAPzJiBEq\nVEirV0tSqVK0OsC7UOwAAH+SmKgpU9SkiekcAG4HS7EAYG9Op+bO1Y8/6p13JGnaNNOBANw+\nJnYAYG/ffqvISN1xh+kcALIBEzsAsKXEROXNq6JF9eCDSk5WgQKmAwHIBkzsAMB+Xn9dVapo\nxgxJ8vGh1QGWwcQOAOynShUtWqSWLU3nAJDNmNgBgA1kZmrMGFWrpqNHJemxx2h1gCVR7ADA\nBo4d06RJ6tVLhQubjgIgB7EUCwDWNX++0tLUvr2KFtW2babTAMhxTOwAwKJiYtShg5KSTOcA\n4D4UOwCwlsREpadLUvfu2r1bAwaYDgTAfSh2AGAhnTurUiWtWydJhQurVCnTgQC4FcfYAYCF\nVKumdetUr57pHADMoNgBgDc7flxDhigpSbGxkjR0qOlAAExiKRYAvNnatdqyRQMHms4BwCNQ\n7ADA2xw/ruHDtXGjJD30kNauVbNmpjMB8AgsxQKAt2nVSmfO6KGHTOcA4HEodgDgDVJStGmT\nHnhAkhYsUOHC8uMHOIAr8XMBADzepk1q3lzFiyshQZKKFzcdCICH4hg7APBUqamuSw2XLq3x\n4xUXZzoQAE9HsQMAj/ThhwoJ0dixklSokDp3VkCA6UwAPB1LsQDgkVJS9Prr6tbNdA4A3oRi\nBwCe4cIFxcRo4UKtWyc/Pw0aZDoQAO/DUiwAeIZff9XXX6tPH053BXDb+PEBAOYcPqz331ej\nRmrbVrVrKz7edCAA3o2JHQCY062bFixQgQKmcwCwCCZ2AOBeu3crNlbR0XI4NHeuAgLkw+/Y\nALIHP00AwI02blSVKpozRxkZkpQrF60OQDbiBwoA5LwNG7R/vySFhWnjRq1ezRkSAHICxQ4A\ncliPHqpXT4sXS5Kfn8LCTAcCYFkUOwDIARkZ2r3b9TgyUlu3qkcPo4EA2AJrAQCQ3XbsUNu2\nOnlSx47J4VB4uOlAAOyCiR0AZJNz51ynROTNq549tX27HA7TmQDYC8UOALJDTIyKF9fkyZJU\nsqReeEGFC5vOBMB2WIoFgOzgcGjCBHXqZDoHAFuj2AHAbdmzR08/rX37tGOHJL30kulAAMBS\nLADcniNHFBKiL780nQMA/kCxA4CbNm6cypdXbKwkNWigKVO4KB0Aj0KxA4CbtmaNevfm8iUA\nPBbH2AHAte3YocGD5eur2bMladYs04EA4HoodgBwbRs2yM+PEyMAeAuWYgHgTzIyNHKkKlfW\nzp2SFBmpL79UnTqmYwHATaHYAcCfnDunlSsVHa3y5U1HAYBbRrEDYHurVqlJE73yiiTdeadW\nrFC/fvLjSBUA3odiB8D21q5VjRrq3t10DgD4p/iVFID9/P67BgzQihXau1f+/hoyxHQgAMge\nTOwA2EZmpuvB0aM6f15Tpsjf32ggAMhmFDsA9vD66ypSRF98IUnVqmn2bLVqZToTAGQzih0A\n68rI0OnTrsenT2vUKLVvbzQQAOQsjrEDYFGLF6t3b5Uvr+++k6Q33zQdCAByHBM7ABbidGrr\nVtfjO+5Qv36uW4EBgD0wsQNgFceOqUkT7dmjXbtUurQaN1bjxqYzAYBbMbED4M2cTq1cqT17\nJOnOO9W/v/buVenSpmMBgBkUOwDe7JFH1LKlVq2SpMBA9eqlEiUMRwIAcyh2ALxKZqYWLdKk\nSa7N4cOVlKRu3YxmAgBPQbED4FUmT9Zjj2nbNtdmWBgjOgC4jGIHwOPNmKH27XXggCR166Yj\nRzRmjOlMAOCJKHYAPNuxYxo8WIULKzhYkvz9XQ8AAFeh2AHwPJ9/rho19M47klS4sPbt08SJ\nCgoyHQsAPB3FDoBnuHBB+/e7Hu/apfbt9dRTRgMBgPfhAsUAPMA33ygqSpUq6eefJWn4cNOB\nAMArMbEDYEhioiZMUGqqJFWpovHjtXKl6UwA4N2Y2AEwYe9ehYaqenW1b6/cuRUaqtBQ05kA\nwOsxsQPgLkuXqkMHLVwoSeXKac8excerSBHTsQDAOih2AHJSRobOn3c9/uAD5cqlKlVcm9zR\nFQCyG0uxAHLMzJl6/nndc4/mz5ekBQtMBwIAi2NiByBb/fKLpkxxPS5aVP/+t6ZNMxoIAGyE\nYgcg+6xYobAwTZ2q9HRJuv9+9e6t/PlNxwIAu6DYAfgHnE69/bbuu0+bNklSeLj279eaNfLj\nMA8AMIBiB+DWJSbq998l6eJFLV+uFi1UqZIk+foqJMRsNACwM4odgFv05JOqWFGTJ0tSrlxa\nvFjDh3MjVwDwBCyXALiR5GR99JF8fPTvf0vSM8/oxRdVs6bpWACAKzGxA/B3nE4lJ7sez5ql\nb75RqVKuzQYNaHUA4JkodgCuEh+vUqVUubIuXpSk555TXJz+939NxwIA3ADFDoAkaf589eyp\nvXslqWRJjRyp3bsVGGg6FgDgFlDsABs7dMh1v6/Tp9Wvn06dUu7jsWdIAAATn0lEQVTcklSo\nkKKiVKyY2XQAgFtFsQPs6vHHVbKkPvpIku68U/v2adYsyhwAeDWKHWAb8fF6+mm9+aZrs1s3\nrV+vZ581mgkAkJ0odoCl7duntWtdj7/5Rr/9prAw12br1qpbVw6HqWgAgGzHdewA6/rsM3Xt\nqvr1tW6dJNdV6AAA1sXEDrCQQ4f02GMqXVrHj0vSI49oyxZXqwMA2ADFDvByK1dq0CD99psk\nZWQoJETjxqlgQUkKClKNGmbTAQDciaVYwNs4nfrlF5Upo3z5dPasOnVSrVrKyJCkkBCNGWM6\nHwDAGCZ2gLdp0EC1a2vuXEnKm1dHjmjZMpUrZzoWAMA8ih3g8SZMUGio+vd3bU6cqAMH1K2b\n0UwAAE/EUizgebZv15QpCgrSsGGSFBysp5/W44+7nr3rLoPRAACejGIHeIC0NK1cqSNH9NRT\nkrR6teLjFRnpevbyAwAAroulWMCQ06f13/+6Hs+apYcf1pdfujZ799ayZYqKMpQMAOCtKHaA\nG50963qwcaMKFNADD7guOPfkkzp3TgsXGowGALAAih3gFsePq1o1BQVpwwZJCgvT+vX6/XfX\nBeck+foaTAcAsAaKHZAznE516aKSJTV/viQFB2vIEG3apHvukSQ/P9Wpo8BAsxkBABZDsQOy\nz5tvqlEjffaZJDkcql1bMTFq1kyS/PwUGckJrQCAHMVZscA/MGeOZs7U/ferTx9JunBBLVqo\ncWPXsy++aDAaAMCGKHbArVi9WtOmqXJlDRokSTt2qFAh1anjejbrsnMAABhCsQOua9MmTZ6s\n4GDFxEjSL7/o/HlVrep6dsgQg9EAALgCxQ74q23bNHasLl3SlCmS9OuvOnpU9eu7nu3bV337\nGkwHAMB1UOxge7t367XXdPSoFiyQn58OHtTx47r/ftezXbqoSxej+QAAuFkUO9jPnj3q21f7\n92v1auXPr7Nn5eOjdu3k5ydJLVqoRQvTEQEAuB0UO1hUZqYOH1bx4nI49NtvatdOiYmKj1eF\nCgoMVFiYunRRcLAk1a6tTz81HRcAgGxAsYNVJCVp+3Y1aqS8eXX4sEJDdfq01q9XvXoqVEjP\nPKOKFVW+vCSVLKk33jAdFwCA7Eexg9eaN09xcYqMVOXKOntWlSvL31+xsWrcWEWLauFChYSo\nXDlJypNHvXqZjgsAQI7jzhPwbKmpysx0PX7xRYWHa9EiScrI0Guvac0anTolSXnz6uhRnTnj\nujiww6HGjV2tDgAA26DYwZPs2KHp07Vrl2uzYUPlyaP333dtBgYqPFzVq0uSr682btR336lu\nXdezwcFyONyeGAAAD8JSLNzuyBEFBSlPHkkaN05LluixxxQVJUlPPaWkJL32mipVkqR33pH0\nx/1VX3vNRFwAALwGxQ45bNUqrVqlunXVpo0ktWmjb79VdLQ++ECSUlNVseIfN3JYv/4v/+29\n97o3KwAA3s07it24ceOGDh16k1988uTJHA2DK23apDVrVKWKWrWSpGef1ccfq2NHffKJJC1a\npJ9/Vpkyri8eP17nzqliRdfmCy+YSAwAgDV5R7Fr3br1rl27Jk2adPHixaCgoDKXWwJySHq6\nDh5U3rwqWFCS1qxRbKxCQ9W1qyQNHKjx49WmjebMkaQvv1RsrLp0cRW77t3VooXuvtv1UqNH\n/+WVy5Z12zcBAIDdeEexq1ix4pgxYyIiIlq3bt20adMFCxaYTuSF0tOVnKygIOXPL0nbt2vV\nKpUu7VohnTpV06apdm29954k9euniRPVsqWWLJGkuDjFxalIEddL9eihBx5Q7dquzZgYxcT8\n8QfVqqVatdz1XQEAgD9401mxrVq1qly5sukUOe/kSaWluR5fvKg9e3R5cfn4cS1fru3bXZvb\nt2vSJC1c6NpcvFg9e+qtt1ybH3ygSpX+uM/pSy+pTBk9/LBrc/58jR3r6m2SSpdWkyZ/3Err\nzTeVmKj5812b/fopNlb9+7s2Q0MVEaESJbLxmwYAAP+cNxU7SXXr1vX398/GF9y7d2+RIkUK\nXNfzzz8vyZFdl9IYOVIFCqh1a9fmq6/K4VB4uGvz5ZdVoICaNnVtDhumChX04IOuzffeU4sW\nio52bS5bpjFj/ih2qalKTVXu3K7Npk31wgvq08e1OWKEEhMVG+vafOklbd+usWNdmw88oOHD\nFRHh2gwKUvnyCgzMnm8ZAAC4hcPpdJrOYFJmZub333+fnp5+na9JSEjo37//xYsXAwICsuGP\nPHRICQkqUULVqknSkSPaskWlSik0VJJSUpSYqGLFVLKkJF28qIMHVbiwgoKy4Y8GAAD/WFpa\nWmBg4Nq1a++77z7TWa7kHcfY5RwfH5/wy9Oya8iTdcW17FK8uIoX/2OzaFEVLfrHZr58qlPn\nj83AQNftTQEAAG7Ey5ZiAQAAcC3eXewWLVrUoUMH0ykAAAA8gncXu927d8/JupQaAACA7Xl3\nsQMAAMBlFDsAAACLoNgBAABYhHcXux49ehw+fNh0CgAAAI/g3dexy5MnTzZfZA4AAMBreffE\nDgAAAJdR7AAAACyCYgcAAGARFDsAAACLoNgBAABYBMUOAADAIih2AAAAFkGxAwAAsAiKHQAA\ngEVQ7AAAACyCYgcAAGARFDsAAACL8DMdwAsEBARICgwMNB0EAAB4iqx64GkcTqfTdAYvEB8f\nn56eni0v9corr5w/f75Hjx7Z8mq4VZMnT5bE+28K779ZvP9m8f6bNXny5Dx58owcOTJbXs3P\nzy8sLCxbXip7MbG7Kdn4l1esWDFJTzzxRHa9IG7JihUrxPtvDu+/Wbz/ZvH+m5X1/tepU8d0\nkJzFMXYAAAAWQbEDAACwCIodAACARVDsAAAALIJiBwAAYBEUOwAAAIug2AEAAFgExQ4AAMAi\nKHYAAAAWwZ0n3M0zby1nH7z/ZvH+m8X7bxbvv1k2ef+5V6y7nTx5UlL+/PlNB7Ep3n+zeP/N\n4v03i/ffLJu8/xQ7AAAAi+AYOwAAAIug2AEAAFgExQ4AAMAiKHYAAAAWQbEDAACwCIodAACA\nRVDsAAAALIJiBwAAYBEUOwAAAIug2AEAAFgExQ4AAMAiKHYAAAAWQbEDAACwCIodAACARVDs\nALjb2bNnp02bduDAAdNBAFjZ7t27x40bZzqFu1Hs3GrixImNGjXKly9fo0aNJk6caDqOvVy8\neHHIkCFNmjQJDg6uUKFCly5dEhMTTYeyqb59+0ZFRcXHx5sOYi9r1qxp3rx5cHBwiRIlOnbs\nyP//7nTixIkBAwZUr179jjvuqF69+oABA06ePGk6lPV98MEHQ4cO/dunrPxx7IS79O7dW1Jo\naOhTTz1VuXJlSdHR0aZD2UVKSkrjxo0lVatW7V//+lfLli0dDkfu3Lnj4uJMR7Od2bNnZ/3w\nWbhwoeksNjJz5syAgIASJUp06dLl4Ycf9vX1LViwYFJSkulctnDixIny5ctLCg8P79mzZ9Om\nTSVVrFgxJSXFdDQrW7p0aWBgYL58+a5+ytofxxQ7N4mLi5PUunXrS5cuOZ3OS5cuZXWLLVu2\nmI5mC4MHD5bUp0+fy3sWLVrk4+MTFhZmMJUNHThwoECBAnnz5qXYuVNSUpKfn1/9+vUvN4nJ\nkydL6tq1q9FcdvHyyy9LGj9+/OU977//vqRhw4aZC2VlkZGRoaGhWb9AXl3sLP9xzFKsm7z1\n1luS3nzzTT8/P0l+fn6jRo1yOp2jR482Hc0Wvv7666CgoHfeeefynoiIiAceeCA+Pv7o0aMG\ng9mK0+l86qmngoOD+/XrZzqLvYwZMyY9Pf39998PDg7O2tO9e/f33nvv3nvvNRvMJrKOOujQ\nocPlPVmPORohh5w/f75SpUpt27YNCgq6+lnLfxz7mQ5gF8uWLQsJCalVq9blPXfffXfx4sWX\nLl1qMJV9+Pj4NG3aNDAw8M87AwICJJ08ebJIkSKGctnLO++8s2rVqtWrV69du9Z0FnuZOXNm\nqVKl/lzjHA5H//79DUaylXr16i1atGj58uWdO3fO2rNixYqs/UZzWdbcuXOzHtSsWfPqk7Qs\n/3HMxM4dUlJSfv/99zJlylyxv3Tp0ocPHz5z5oyRVLaSkJCwYMGCP+85duzYd999V7Ro0QoV\nKphKZSubN28eMmTISy+91KhRI9NZ7OXs2bPJyclly5aNj49/6KGHihYtWrp06Q4dOuzevdt0\nNLt49tlnw8PDu3bt2qVLl1dffbVLly7dunVr3rx5dHS06Wi2Y4ePYyZ27pD1/0rBggWv2J+1\n5/Tp0387LkbO2blzZ5s2bS5cuDBx4sSsaTxyVGpqamRkZLVq1V599VXTWWwnJSVFUnJycqNG\njcqVK9e2bdvk5OS5c+d+++23q1evvueee0wHtL7g4OAnn3zyhx9+mDFjRtYef3//rl278pPf\n/ezwcczEzh38/f0lORyOv33Wx4e/Bfc5d+7csGHDateufeDAgXHjxkVFRZlOZAsvvPDCnj17\nPv/886zlb7jTpUuXJCUmJkZHR8fHx0+ZMiU2NnbJkiWpqak9e/Y0nc4WYmJiunfvHhERER8f\nf+7cuc2bN7ds2fLJJ5989913TUezHTt8HFvhe/B8RYoU8fX1vfqqRSdOnPD19S1atKiRVDYU\nGxtbrVq1ESNGNGvWbPPmzX369DGdyBZWrFgxfvz4UaNGVa9e3XQWO8qTJ4+kggULjhw58vLn\nWfPmzVu0aBEXF8fJQzntxIkTw4cPr1q16pw5c2rVqpUnT56wsLC5c+dWqlRp6NChp0+fNh3Q\nXuzwcUyxcwcfH58iRYpcfQjnwYMHixUrZo1fETzfsGHDIiIigoKCVq9evWDBgssnwyOnbd68\nWdJzzz3n+H+DBg2S1LZtW4fDMWXKFNMBLa5w4cK5cuUqV66cr6/vn/dnXVmN+3/ktB07dly4\ncCE8PDxrVpQlICCgadOm58+f37lzp8FsNmSHj2OOLnKT8PDwGTNm7Ny5M+taiJISEhL2799/\n+SQp5Khp06aNGDGiU6dO06ZNYzXQzcLCwrIuB3pZXFzc+vXrH3zwwTJlylSpUsVUMJvw8fEJ\nDw//8ccfL1y4kCtXrsv7t2/f7uPjw284OS3rOP3k5OQr9h86dOjys3An638cG76Onm2sWrVK\n0hNPPJG1mZmZ2bFjR0lr1qwxG8wOMjMzQ0NDS5YsmZqaajoLnE6nMyYmRlyg2I2WLFkiqU+f\nPhkZGVl7Zs2aJalt27Zmg9lEWFiYr6/v0qVLL++JjY318fGpW7euwVR2UKNGjasvUGz5j2Mm\ndm7StGnTqKioqVOnJicn33vvvT/88MP333/fvXt3Lv3gBklJSTt27ChcuPAjjzxy9bP/+c9/\nChUq5P5UgNu0bNkyKipq/Pjx33//fYMGDfbu3bts2bLixYtb7RaZnuo///lPw4YNW7Vq1bJl\ny/Lly+/atWvFihV33nnnZ599ZjqaHVn+45hi5z6ffPJJ1apVv/nmm3HjxtWoUWP06NEDBw40\nHcoW9uzZI+nYsWOLFy+++tmLFy+6PRHgbp9++mmNGjXmzZs3Y8aMUqVKRUdHjxgxIn/+/KZz\n2ULNmjV37NgxbNiwtWvXrlmzpmzZsj179hw+fLg1DtX3Rtb+OHY4nU7TGQAAAJANrHACCAAA\nAESxAwAAsAyKHQAAgEVQ7AAAACyCYgcAAGARFDsAAACLoNgBAABYBMUOAADAIih2AAAAFkGx\nAwAAsAiKHQAAgEVQ7AAAACyCYgcAAGARFDsAAACLoNgBAABYBMUOAADAIih2AAAAFkGxAwAA\nsAiKHQAAgEVQ7AAAACyCYgcAAGARFDsAAACLoNgBAABYBMUOAADAIih2AAAAFkGxAwAAsAiK\nHQAAgEVQ7AAAACyCYgcAAGARFDsAAACLoNgBAABYBMUOAADAIih2AAAAFkGxAwAAsAiKHQAA\ngEVQ7AAAACyCYgcA15OQkBAYGHj//fdf3nPp0qWaNWsWLFjw8OHDBoMBwNUodgBwPdWrV3/5\n5ZdXrVr16aefZu0ZPXr01q1bx44dW6xYMbPZAOAKDqfTaToDAHi0tLS0OnXqJCcn//rrr6dO\nnapZs2aLFi3mz59vOhcAXIliBwA3tn79+vvuu69Tp06HDx+Oi4tLSEgoXry46VAAcCU/0wEA\nwAvUr1//2Weffe+99yR99tlntDoAnomJHQDclN27d1eqVOmOO+5ITk6+8847TccBgL/ByRMA\ncFMGDBgQEBBw7ty5wYMHm84CAH+PYgcAN/bFF1/Mnz8/Jiamffv2EydO/PHHH00nAoC/wVIs\nANzAkSNHqlevXrZs2fXr1x85cqRq1aohISFxcXEBAQGmowHAXzCxA4AbeOaZZ1JSUj766CNf\nX98SJUq88cYb27Zti4mJMZ0LAK7ExA4ArmfWrFmdOnUaMGDA22+/nbUnMzOzQYMG8fHxcXFx\nVatWNRsPAP6MYgcAAGARLMUCAABYBMUOAADAIih2AAAAFkGxAwAAsAiKHQAAgEVQ7AAAACyC\nYgcAAGARFDsAAACLoNgBAABYBMUOAADAIih2AAAAFkGxAwAAsAiKHQAAgEVQ7AAAACyCYgcA\nAGARFDsAAACLoNgBAABYBMUOAADAIih2AAAAFkGxAwAAsAiKHQAAgEVQ7AAAACyCYgcAAGAR\nFDsAAACLoNgBAABYBMUOAADAIih2AAAAFkGxAwAAsAiKHQAAgEVQ7AAAACzi/wC6ewlHWJil\npwAAAABJRU5ErkJggg==",
"text/plain": [
"Plot with title “Przykładowe wykresy funkcji matematycznych”"
]
},
"metadata": {
"image/png": {
"height": 420,
"width": 420
}
},
"output_type": "display_data"
}
],
"source": [
"# Narysujemy wykres funkcji pierwiastek z x na przedziale [0, 10]\n",
"curve(sqrt, from=0, to=10, n=50, col='blue', lty=2, ylim=c(-1,3), main='Przykładowe wykresy funkcji matematycznych', ylab='y')\n",
"\n",
"# Następnie dorysujemy wykres funkcji f(x) = 1/50*x^2-1\n",
"curve(1/50*x^2-1, from=0, to=10, col='red', lty=3, add=TRUE)\n",
"legend(0, 2.5, c('sqrt(x)', '1/50*x^2-1'), col=c('blue', 'red'), lty=c(2,3))"
]
},
{
"cell_type": "markdown",
"id": "37a17b8d-bbb3-487f-a1f7-fb2159c2a2b4",
"metadata": {},
"source": [
"W R możemy też stworzyć wykresy słupkowe. Służy do tego następujące polecenie:\n",
"\n",
"`barplot(height, names.arg=NULL, horiz=FALSE, ...)`,\n",
"\n",
"gdzie `height` oznacza wysokość kolejnych słupków, a `names.arg` etykiety kolejnych słupków. Jeśli `horiz` ma wartość `TRUE`, słupki rysowane są poziomo, w przeciwnym przypadku słupki rysowane są pionowe. Ponownie możemy też podać wiele innych argumentów wpływających na wygląd wykresu."
]
},
{
"cell_type": "code",
"execution_count": 128,
"id": "4ef6a173-0772-4c1d-a63f-e571de4042aa",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA0gAAANICAIAAAByhViMAAAACXBIWXMAABJ0AAASdAHeZh94\nAAAgAElEQVR4nO3dd5wU9cH48bmDO0GqVFEQlKpwUiKKIKBJbCg2rBAfsESsvxhSLBErCQlP\nYsRgxWASVDTGikgUo48Ng2kSQKRZEAuiHEWkHbe/P/aVeW3uYNk97tjbr+/3X3ezc3PfnZ2d\n/dzs7FxBIpGIAADIf4W5HgAAANVD2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEA\nBELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgB\nAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELY\nAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABKJurgcAAJADK1as\nWLlyZRRFbdu2bd26da6HUz3y9YjdypUrC/5j7Nixaea85557krM1atRotw2vsksuuSQ5jIED\nB+ZwGBW88cYbRUVFRUVF559/fprZ1qxZ06xZs6Kiov79+2/atGm3DS+Hqv0u15LtMCv5OObK\ncngvUndTle255569evW65pprvvrqqxoaQC15BHfb3m/u3LnbXdVFRUVdunQ58cQTp0+fXqMD\n2HXPPfdcPOwvvvgi18PJyK6POastpHq36iFDhhxyyCFnnXVW3brhHOfK17CjWkyYMKGsrKxf\nv3533313mtnuvPPO0tLSvffe+7HHHqtXr95uG14OfQ3vMrvZxo0b586d+/Of/7xfv35bt27N\n9XBCVlZWtmTJkhkzZpx00klnn312rodDbfHss8/OmzevSZMm06dPb968edUWUl5ePvQ/Xn31\n1eodYdUIu6+vRYsWPfXUUx07dnziiSeKi4t3NNvGjRsnTpzYoEGDp59+uk2bNrtzhLnyNbzL\n5NC8efNuu+22XI/i6+KRRx554IEHcj0KaoUJEybUqVPnj3/844EHHljlhSQSiWf+4+OPP67G\n4VVZ+GF30UUXlZWVlZWVrVmzJtdjqV0WLlx4wQUXPPPMMy1atEg/20knnfToo4/27t17t40t\nt2riLufjdpiPY661rr322rL/2Lp16xdffHHnnXfGtz799NM5HFuQJk6cGK/t999//4Ybbohv\n+tnPfpbDgbGLqmu/tGnTpnPOOWfmzJnHHHNMdY2tlgjnTeUdKSgoqFOnTq5HURudcsopp5xy\nyk5n69Onz+TJk3fDeGqPmrjL+bgd5uOYa63CwsLUldmsWbNLLrnkkUceefnll6MoWrBgQe6G\nFqY6derEK7x9+/Y33njjm2++OXPmzCiKlixZUlZWFtI5VV8r1bVfqlev3ujRo3dxIUuWLPns\ns89Sv50zZ0737t0bNmy4i0veFeEfsUtzomVpaelVV131rW99q0WLFm3atDnqqKN+/etfxye7\nfPHFF2lOfC4oKNi2bVu8qLlz51544YXf+MY3GjZs2KlTp7POOmv27Nk7GtKqVau+973v9enT\np0GDBj179vz1r3+dSCRSZ7jpppuSv6Jz587l5eW/+tWvunfvXr9+/Q4dOpx22mnvvPNO5WVu\n3br11ltvPfnkkw844IAmTZr079//oosumjdvXuU5E4nEE088cdxxx3Xs2LF+/fodO3Y8+uij\np06dWlZWltX6Se+rr766+uqrDz744EaNGh199NELFy6MH4jDDz98u/c0iqInnniid+/eXbt2\njaLou9/9bvKmo446KnXJv/3tb+MTouOJqTNv2LDh+9//ftu2bevXr9+jR49x48Zt3rw5kzHv\n9C4feeSRyd8ydOjQ+EfGjRsXbxLJT1dFUfTXv/41npjcEmrJdpjVppVmzDvd3qq8rs4777zk\n13Xr1i0tLU39paecckrypqOPPjrDtVfZ5MmTe/bsueeee+6///7nn3/++++/v6M5q7D+s9W+\nffvkFwUFBfHErVu33n///UcddVSHDh3q1au33377DRgw4Pbbb//yyy8r/Hj13vesnnFV2EdV\nEG9dBQUF999/f7YDqIL+/fsnvygrK/vggw+itPufKIMHYld2CElLly4988wzW7Zs2apVq1NO\nOeXJJ59MM/4Md/JV2Blm/vJRQ2NOtdPXxzT7perdAUYZvFxee+21RxxxRDz/2LFj+/Xrt2DB\ngl3ZNjLfA+xQIj99+umn8V247rrr0swZfyygYcOGqdP/8pe/7LPPPpVXSNeuXVeuXJlIJD7/\n/PP0q66srCy5qFtvvXW756j9+Mc/Li8vT85z8cUXJyeWlJR06dKlwpzDhg376quv4rHdeOON\nyekdO3Y855xzKsy8xx57zJ07N/W+/Pvf/z744IMrD6CoqOiGG26Ix5BIJMrLy08++eTt3p0+\n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\nZx52W7ZsGT9+fO/evRs0aNCsWbNTTz317bffTn8duyOPPHLdunWXX355mzZt9thjj4MOOujX\nv/51hdWbRoZ3OT7CH0VR6ntz8ae9unXrVuFHasl2WC1hl8hme6vCuoql/m+G//mf/9nuPDt9\nyGpt2CVSLgBWWFiY3F9v27bt9ttvP/jggxs0aNCnT58xY8asXbv2qaeeipdz5ZVX1tx9z/wZ\nt+tht2LFivj4Tffu3ZOXBMt8ANtVjWGX1QNR5Y38scceO/PMM/fff/8WLVocf/zxDz30UOo5\n8qmRlMj4SVeFnWHmT+caGnNWr49p9kvVuwNMZPxyuWrVqpEjR7Zp06Z+/frdunVbsGBBfFO2\n20ZWG96OFCRq8gNQELv++uuTp52eccYZf/zjH6t34d/97neTe/8jjzwyvlAW+W716tUtWrRI\n7qNmzJgRX1YK2BE7Q76On4qlRl1++eWdO3fu3Llzv379Nm7cmJxYVlYWnwPRq1ev3I2OfJK8\nNHwURc2aNYv/uRAAaQg7qlnXrl2XLl26dOnSOXPmfOc733n++ednzZp1/PHHJ68b3qRJk/ja\ns7Aja9euXb58efwGzbBhw4qKinI7JIC88HW8QDE16rLLLnv11VcfffTRKIoef/zxxx9/PL6p\nQYMGv/vd71I/KgXb1aFDhzVr1sTfjh49OoeDAcgjwo5qVlhY+Mc//vEvf/nL7bffvmTJkg8+\n+KBx48b7779///79f/zjH1fXvw6r4Bvf+EayA7b7ISzyV506dcaPHx//N24gPTtDfHgCqHXu\nvffetWvXtmnTZtCgQen/yzAAqYQdAEAgfHgCACAQwg4AIBDCDgAgEMIOACAQwg4AIBDCDgAg\nEMIOACAQwg4AIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQwg4A\nIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIO\nACAQwg4AIBDCDgAgEMIOACAQwg4AIBB1cz0ACN8XX3zx/vvv53oUpLPffvu1bNky16MA2FUF\niUQi12OAwH3nO9958MEHcz0K0jnllFOeeOKJXI8CYFc5Ygc1bsuWLQeetX+/aw7O9UDYvr/f\n9vaWz7bkehQA1cA5dgAAgRB2AACBEHYAAIEQdgAAgRB2AACBEHYAAIEQdgAAgRB2AACBEHYA\nAIEQdgAAgRB2AACBEHYAAIEQdgAAgRB2AACBEHYAAIEQdgAAgRB2AACBEHYAAIEQdgAAgRB2\nAACBEHYAAIEQdgAAgRB2AACBEHYAAIEQdgAAgRB2AACBEHYAAIEQdgAAgRB2AACBEHYAAIEQ\ndgAAgRB2AACBEHYAAIEQdgAAgRB2AACBEHYAAIEQdgAAgRB2AACBEHYAAIEQdgAAgRB2AACB\nEHYAAIEQdgAAgRB2AACBEHYAAIEQdgAAgRB2AACBEHYAAIEQdgAAgRB2AACBEHYAAIEQdgAA\ngRB2AACBEHYAAIEQdgAAgRB2AACBEHYAAIEQdgAAgRB2AACBEHYAAIEQdgAAgRB2AACBEHYA\nAIEQdgAAgRB2AACBEHYAAIEQdgAAgRB2AACBEHYAAIEQdgAAgRB2AACBEHYAAIEQdgAAgRB2\nAACBqJvrAQAE6LHHHnv++edzPQrSOfHEE4cOHVqNC3zooYdefvnlalwg1W7YsGHHHHNMrkdR\ns4QdQPWbMmXKrH8sKt73oFwPhO3b8uG80tLS6g27e++996+ffFrcuXM1LpNqtGnu3C1btgg7\nAKqiQc9jm516Xa5HwfZ9/vBPoujLal9soxNObPH9MdW+WKrFJz/4fq6HsDs4xw4AIBDCDgAg\nEMIOACAQwg4AIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQwg4A\nIBB1cz2AKlq3bt369esLCwtbt25dWChPAQDy7Yjd/PnzR44c2aZNmyZNmrRt23afffYpLi5u\n27bt8OHDX3/99VyPDgAgl/LpiN0VV1xxxx13JBKJNm3aHHbYYc2bN4+iaPXq1StWrJg2bdq0\nadMuvPDCyZMn53qYAAC5kTdhd+edd06aNOnYY48dP3587969K9y6YMGCW2655b777jvwwAPH\njBmTkxECAORW3rwV++CDD3bt2vWZZ56pXHVRFHXv3n3atGkDBw58/PHHd//YAABqg7wJu/nz\n5/fr169u3R0eYiwoKBg4cOD8+fN356gAAGqPvAm7Hj16zJkzZ9u2bWnmeeONN3r06LHbhgQA\nUKvkTdiNGDHinXfeGTp06Lx58yrfunjx4hEjRrz00ksnn3zy7h8bAEBtkDcfnrj00kvnzZt3\n9913z5w5s127du3bt2/WrFlBQUFpaemHH3743nvvRVE0atSoH/7wh7keKQBAbhpj13MAABuw\nSURBVORN2EVRdNddd40ePXrChAmzZs167bXXkhPr1KnTqlWrc845Z/To0YMHD67CYjds2LBl\ny5b08+yxxx577rlnFRYOALDb5FPYRVHUq1evhx56KIqiNWvWrF+/vqioqFWrVrvynyeWLVvW\npUuX8vLy9LMVFBRs2bIlzUc3AAByLv9K5bPPPistLe3YsWPTpk0r3PT5559v3rx53333zXxp\nHTt2fOutt9Ifsfv3v/99/vnn7zT+AAByK5/C7q233ho5cuS///3vKIr23nvvn//85yNHjkyd\n4dxzz/3zn/+cSCSyWmxJSUn6GTZv3pztUAEAdr+8Cbtly5YdfvjhW7Zs+fa3v11cXPziiy+O\nGjVqw4YNl156aa6HBgBQK+TN5U6uu+66zZs3P/PMM7NmzZoxY8by5cs7der0gx/8YNGiRbke\nGgBArZA3YTdnzpxjjjnm+OOPT37bsmXLGTNmFBQU/OhHP8rtwAAAaom8CbvPP/+8Xbt2qVO6\ndOnywx/+cPr06a+++mquRgUAUHvkTdj17Nlz9uzZFSZeddVV7dq1u+SSS3Z6IToAgODlTdgN\nHDjw7bffvuKKK1I/o9qgQYO77757wYIFI0eO3LRpUw6HBwCQc3kTdtdff/3AgQMnTZrUsmXL\noUOHxtOHDBkyduzYhx9+uFOnTv/4xz9yOEIAgNzKm7CrV6/e008/ffXVV++7777vvvtu6k03\n33zz7373u4YNG65atSpXwwMAyLm8Cbsoipo2bTp+/PiFCxcuWLCgwk0jR45cuHDhe++998IL\nL+RkbAAAOZc3FyjeqYKCgg4dOnTo0CHXAwEAyI18OmIHAEAawg4AIBDCDgAgEMIOACAQwg4A\nIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIO\nACAQwg4AIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQwg4AIBDC\nDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQwg4AIBDCDgAgEMIOACAQ\nwg4AIBB1cz2Ar50bb7zx9ttvz/UoSOeUU06ZMmVKrkcBAFkTdrvbBx980KO44eguvXM9ELbv\n8eWL3n333VyPAgCqQtjlQOt6DQa0apfrUbB9f//i0y9yPQYAqBrn2AEABELYAQAEQtgBAARC\n2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAE\nQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEA\nBELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgB\nAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELY\nAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC\n2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAASibq4HsEvKy8uXLVu2devWLl261K2b3/cF\nAGAX5c0Ru7Fjx06ZMiX+tqysbMKECU2aNOnSpUv37t0bNmw4evTotWvX5nCEAAC5lTdhN27c\nuKlTp8bfjhkz5qqrrioqKjr99NNHjx7du3fve++9t3///ps3b87hIAEAcigv375csGDBpEmT\nDj300GeffbZ58+bJiVOmTLngggt+9rOf3XTTTbkdHgBATuTNEbtUs2fPTiQSt912W1x1URSd\nf/75AwYMmDlzZg4HBgCQQ3kZditWrIiiqKSkpML0kpKSd955JxcjAgDIvbwMu86dO0dR9MEH\nH1SY/umnn3bo0CEHAwIAqAXyKewWL148bty4P/3pT127dm3ZsuW4ceNSb/3b3/42Y8aMvn37\n5mp4AAC5lTcfnmjXrt2KFSvGjh0bT3n44Ycvuuiio446Koqia665ZuLEiY0bN77xxhtzNkQA\ngJzKm7Bbvnz5xo0bly5dunjx4iVLlixZsmTx4sXxRYmffPLJFi1aTJ06tV27drkdJwBAruRN\n2EVRVL9+/ZKSksqfmYii6LHHHuvWrVthYdbvLG/btm3GjBnpr363aNGibBcLALD75VPYpXHQ\nQQdV7Qc//PDD0aNHpw+7srKyKIoSiUTVfgUAwO4RSNhVWYcOHT755JP088yePXvAgAEFBQW7\nZ0gAAFWTT5+KBQAgDWEHABCI/HgrdtKkSakXOkmvtLS0RgcDAFA75UfYHXfccUuWLLnnnns2\nb97cqFGj9u3b53pEAAC1Tn6EXadOnSZOnDhkyJDjjjtu8ODB06dPz/WIAABqnXw6x+7YY4/t\n0qVLrkcBAFBL5VPYRVHUt2/foqKiXI8CAKA2yo+3YmMPPPBArocAAFBL5dkROwAAdkTYAQAE\nQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEA\nBELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgB\nAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELY\nAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC\n2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAE\nQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEA\nBELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgB\nAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELY\nAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC\n2AEABELYAQAEQtgBAARC2AEABELYAQAEQtgBAARC2AEABELYAQAEom6uB1BF69atW79+fWFh\nYevWrQsL5SkAQL4dsZs/f/7IkSPbtGnTpEmTtm3b7rPPPsXFxW3bth0+fPjrr7+e69EBAORS\nPh2xu+KKK+64445EItGmTZvDDjusefPmURStXr16xYoV06ZNmzZt2oUXXjh58uRcDxMAIDfy\nJuzuvPPOSZMmHXvssePHj+/du3eFWxcsWHDLLbfcd999Bx544JgxY3IyQgCA3Mqbt2IffPDB\nrl27PvPMM5WrLoqi7t27T5s2beDAgY8//vjuHxsAQG2QN2E3f/78fv361a27w0OMBQUFAwcO\nnD9//u4cFQBA7ZE3YdejR485c+Zs27YtzTxvvPFGjx49dtuQAABqlbwJuxEjRrzzzjtDhw6d\nN29e5VsXL148YsSIl1566eSTT979YwMAqA3y5sMTl1566bx58+6+++6ZM2e2a9euffv2zZo1\nKygoKC0t/fDDD997770oikaNGvXDH/4w1yMFAMiNvAm7KIruuuuu0aNHT5gwYdasWa+99lpy\nYp06dVq1anXOOeeMHj168ODBuR0hAEAO5VPYRVHUq1evhx56KIqiNWvWrF+/vqioqFWrVrvy\nnyfWrFkzduzYLVu2pJln5cqVVV4+AMBuk2dhF2vatGnTpk13fTnbtm1bu3btpk2b0syzfv36\nXf9FAAA1LV/Drro0b978D3/4Q/p5Zs+e/eKLL+6e8QAAVFnefCoWAID0hB0AQCDy463YSZMm\njR07NsOZS0tLa3QwAAC1U36E3XHHHbdkyZJ77rln8+bNjRo1at++fa5HBABQ6+RH2HXq1Gni\nxIlDhgw57rjjBg8ePH369FyPCACg1smnc+yOPfbYLl265HoUAAC1VD6FXRRFffv2LSoqyvUo\nAABqo/x4Kzb2wAMP5HoIAAC1VJ4dsQMAYEeEHQBAIIQdAEAghB0AQCCEHQBAIIQdAEAghB0A\nQCCEHQBAIIQdAEAghB0AQCCEHQBAIIQdAEAghB0AQCCEHQBAIIQdAEAghB0AQCCEHQBAIIQd\nAEAghB0AQCCEHQBAIIQdAEAghB0AQCCEHQBAIIQdAEAghB0AQCCEHQBAIIQdAEAghB0AQCCE\nHQBAIIQdAEAghB0AQCCEHQBAIIQdAEAghB0AQCCEHQBAIIQdAEAghB0AQCCEHQBAIIQdAEAg\nhB0AQCCEHQBAIIQdAEAghB0AQCCEHQBAIIQdAEAghB0AQCCEHQBAIIQdAEAghB0AQCCEHQBA\nIIQdAEAghB0AQCCEHQBAIIQdAEAghB0AQCCEHQBAIIQdAEAghB0AQCCEHQBAIIQdAEAghB0A\nQCCEHQBAIIQdAEAghB0AQCCEHQBAIIQdAEAghB0AQCCEHQBAIIQdAEAghB0AQCCEHQBAIIQd\nAEAghB0AQCCEHQBAIIQdAEAghB0AQCCEHQBAIIQdAEAghB0AQCCEHQBAIIQdAEAghB0AQCCE\nHQBAIIQdAEAghB0AQCCEHQBAIIQdAEAghB0AQCCEHQBAIIQdAEAghB0AQCCEHQBAIIQdAEAg\nhB0AQCCEHQBAIIQdAEAghB0AQCCEHQBAIIQdAEAghB0AQCCEHQBAIIQdAEAghB0AQCCEHQBA\nIIQdAEAghB0AQCCEHQBAIIQdAEAghB0AQCCEHQBAIIQdAEAghB0AQCDq5noAu6S8vHzZsmVb\nt27t0qVL3br5fV8AAHZR3hyxGzt27JQpU+Jvy8rKJkyY0KRJky5dunTv3r1hw4ajR49eu3Zt\nDkcIAJBbeRN248aNmzp1avztmDFjrrrqqqKiotNPP3306NG9e/e+9957+/fvv3nz5hwOEgAg\nh/Ly7csFCxZMmjTp0EMPffbZZ5s3b56cOGXKlAsuuOBnP/vZTTfdlNvhAQDkRN4csUs1e/bs\nRCJx2223xVUXRdH5558/YMCAmTNn5nBgAAA5lJdH7FasWBFFUUlJSYXpJSUlDz74YFaLWr58\n+THHHLN169Y082zatCmKokQikeUwAQB2q7wMu86dO0dR9MEHH3Tv3j11+qefftqhQ4esFtWm\nTZuf/OQnGzduTDPPsmXLJkyYUFBQkP1IAQB2n3wKu8WLF48bN65bt25du3Zt2bLluHHjpk2b\nFt/6t7/9bcaMGeeee25WyywqKtrpj8yePXvChAlVGTEAwG6UN2HXrl27FStWjB07Np7y8MMP\nX3TRRUcddVQURddcc83EiRMbN25844035myIAAA5lTdht3z58o0bNy5dunTx4sVLlixZsmTJ\n4sWL44sSP/nkky1atJg6dWq7du1yO04AgFzJm7CLoqh+/folJSWVPzMRRdFjjz3WrVu3wsK8\n/JAvAEC1yKewS+Oggw7K9RAAAHLMIS4AgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsA\ngEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7\nAIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAI\nOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBA\nCDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCA\nQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsA\ngEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7\nAIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAI\nOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBA\nCDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCA\nQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsA\ngEAIOwCAQNTN9QCqaN26devXry8sLGzdunVhoTwFAMi3I3bz588fOXJkmzZtmjRp0rZt2332\n2ae4uLht27bDhw9//fXXcz06AIBcyqcjdldcccUdd9yRSCTatGlz2GGHNW/ePIqi1atXr1ix\nYtq0adOmTbvwwgsnT56c62ECAORG3oTdnXfeOWnSpGOPPXb8+PG9e/eucOuCBQtuueWW++67\n78ADDxwzZkxORggAkFt5E3YPPvhg165dn3nmmbp1tzPm7t27T5s27eOPP3788cezDbvly5eX\nlZWlmeHjjz/Obqw7s6Fs6/IN66p3mVSXtVs2R1H9al/sli+3rl+xodoXS7XYsn5rTSy2/Kt1\nWz//oCaWzK4r37iuJk5G2rZ27dblHvRaqnzDhqjBnrkeRY3Lm7CbP3/+qaeeut2qSyooKBg4\ncOAdd9yR1WKXLVvWuXPnRCKRfraCgoLq+ohG48aNf/fRspkfLauWpVEThh44tHoX2Lhx42WP\nrlg2Y0X1LpZq1PvsftW7wMaNG6979oF1rz1QvYulGjUuuaCaF9i4cemU+0qn3Fe9i6UaNf5/\n/y/XQ6hxBTttmlpiwIABq1evnj9/fp06dXY0zze/+c0tW7a89tprWS153bp127ZtSz9PeXl5\n8pS+XVdWVrZ+/fpqWRQ1pEGDBsXFxdW4wK1bt3755ZfVuECqXcOGDYuKiqpxgR702q/aH/Qt\nW7Zs2ODAfK3WqFGjNEeIwpA3d2/EiBGXXXbZ0KFDf/GLX5SUlFS4dfHixTfddNNLL700YcKE\nbJfcuHHjahpjRurWrbvXXnvtzt9IzhUVFXnQv2486F9DxcXF1fs3IVRB3hyxi6Lokksuufvu\nu6MoateuXfv27Zs1a1ZQUFBaWvrhhx++9957URSNGjVqypQpBQUFuR4pAEAO5FPYRVH01ltv\nTZgwYdasWZ9//nlySp06dVq1anXkkUeOHj168ODBuR0eAEAO5VnYxdasWbN+/fqioqJWrVr5\nzxMAAFH+hh0AABU41gUAEAhhBwAQCGEHABAIYQcAEAhhBwAQCGEHABAIYQcAEAhhBwAQCGEH\nABAIYQcAEAhhBwAQCGEHABAIYQcAEAhhBwAQCGEHABAIYQcAEAhhBwAQCGEHABAIYQcAEAhh\nBwAQCGEHABAIYQcAEAhhBwAQCGEHABAIYQcAEAhhBwAQCGEHABAIYQcAEAhhx65aunTppEmT\ncj0KatZOH2WbQWA8oF9DHvQwCDt21W9+85uxY8fmehTUrJ0+yjaDwOzoAd28efNPfvKTQYMG\nNWnSpGPHjsOHD1+2bNnuHx41YUcP+nvvvTd8+PDOnTs3aNCgpKTkxz/+8dq1a3f/8MhQQSKR\nyPUYyGOzZs0aOnRo/fr1S0tLcz0WaspOH2WbQWB29ICuXbt26NChr7766kEHHdS/f//ly5fP\nmjWrXr16s2fP7tWrV65GS7XY0YO+dOnSXr16bd68edCgQV26dPnXv/41Z86c7t27//3vf69X\nr16uRks6CaiSESNGdO3aNbkVNW3aNNfDoUbs9FG2GQQm/QN6zTXXRFF02WWXxVNmzJhRWFjY\ns2fP3TtMqlP6B33YsGEFBQVPP/10POX73/9+FEW/+c1vdu8wyZS3Yqmir776qnPnzieeeGKj\nRo1yPRZqyk4fZZtBYNI/oE888USjRo1+9atfxVOGDBnyzW9+c+7cuZ999tluHCbVKf2D/tpr\nr/Xp02fo0KHxlPPOOy+Kon/+85+7b4hko26uB0C+evzxx5NflJSUrFixIreDoYbs9FG2GQQm\n/QNaWFg4ePDgPfbYI3VicXFxFEWlpaWtWrXaPYOkeqV50MvLy8eOHdu+ffvUiStXroyiqFOn\nTrtthGRF2AGQkQULFlSYsmrVqhdffLF169YdO3bMyZCoUYWFhZdddlny640bN5aWls6dO/d7\n3/te69atzzjjjNyOjR0RdgBUxeLFi0844YRNmzbddddddet6NQncmDFj7r777iiKGjRo8Mor\nr3Tu3DnXI2L7nGMHQHY2bNhwww039OrVa8WKFZMmTRo1alSuR0SNu/jiix955JGf/vSnzZs3\n79+//1NPPZXrEbF9/sYCIAszZ868+OKLly9ffuKJJ/7yl7+MP1BJ2Hr27NmzZ88oikaNGtWt\nW7fLLrvs5JNPzvWg2A5H7ADI1A033DBkyJBGjRq9/PLL06dPV3VhW7Zs2T333DN//vzUifvs\ns88hhxzy0UcfuW5l7STsAMjI73//+5tvvvnss8/+5z//OWjQoFwPhxq3cuXKiy++ePLkyRWm\nr1q1qmHDhk2aNMnJqEhP2AGwc4lEYvz48fvuu+/999+fvMQJwevbt2+rVq1+//vfv/vuu/HE\nRx55ZP78+d/61rcKCyVEbeQcOwB27oMPPli0aFHLli1PPfXUyrdOnTq1RYsWu39U1KiioqLf\n/OY3Z599dklJyZAhQ1q1arVw4cKXXnqpdevWd9xxR65Hx/YJOwB2LnnMZtWqVX/+858r37p5\n8+bdPiJ2hzPPPLNly5YTJkx46aWXNm7c2Llz5zFjxlx33XV77bVXrofG9hUkEolcjwEAgGrg\nDXIAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCA\nQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsA\ngEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7\nAIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAI\nOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBA\nCDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCA\nQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsAgEAIOwCAQAg7AIBACDsA\ngEAIOwCAQAg7AIBA/H+2XKe38K38fAAAAABJRU5ErkJggg==",
"text/plain": [
"Plot with title “Liczebność grup ćwiczeniowych z Rachunku Prawdopodobieństwa”"
]
},
"metadata": {
"image/png": {
"height": 420,
"width": 420
}
},
"output_type": "display_data"
}
],
"source": [
"# Narysujmy wykres słupkowy przedstawiający liczebności grup ćwiczeniowych z Rachunku Prawdopodobieństwa\n",
"licz = c(18, 24, 21, 21)\n",
"grupy = c(1, 11, 12, 13)\n",
"barplot(licz, names.arg=grupy, col=10:13, main='Liczebność grup ćwiczeniowych z Rachunku Prawdopodobieństwa')"
]
},
{
"cell_type": "markdown",
"id": "b6f63bf3-7328-400c-8024-588b81b45124",
"metadata": {},
"source": [
"## Literatura\n",
"\n",
"* Marek Gągolewski, *Programowanie w języku R. Analiza danych, obliczenia, symulacje.* Wydawnictwo Naukowe PWN 2014. \n",
"* Przemysław Biecek, *Przewodnik po pakiecie R*, GiS, 2017 (pierwsze rodziały tej książki są dostępne na [stronie autora](http://www.biecek.pl/R/PrzewodnikPoPakiecieRWydanieIVinternet.pdf)).\n",
"* Wiele użytecznych materiałów można też znaleźć na następującej [stronie](https://cran.r-project.org).\n",
"\tW szczególności, można znaleźć tam [krótkie wprowadzenie do R w języku polskim](https://cran.r-project.org/doc/contrib/wprowadzenie\\_do\\_R.pdf)."
]
}
],
"metadata": {
"kernelspec": {
"display_name": "R",
"language": "R",
"name": "ir"
},
"language_info": {
"codemirror_mode": "r",
"file_extension": ".r",
"mimetype": "text/x-r-source",
"name": "R",
"pygments_lexer": "r",
"version": "4.2.1"
}
},
"nbformat": 4,
"nbformat_minor": 5
}