{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "

Algorytmy i programowanie (2024L)

\n", "

Moduł math

\n", "

\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Moduły w Pythonie\n", "\n", "Moduły w języku Python to po prostu biblioteki zawierające kod, który może zostać dodany do naszego programu za pomocą polecenia ```import```, po którym podajemy nazwę modułu, który chcemy dołączyć. Sam moduł jest plikiem z rozszerzeniem .py, w którym znajduje się kod. Python oferuje wiele wbudowanych modułów, takich jak:\n", " - ```math``` (funkcje matematyczne),\n", " - ```cmath``` (funkcje matematyczna dla liczb zespolonych),\n", " - ```string``` (operacje na łańcuchach znaków),\n", " - ```datetime```, ```time``` (moduły do obsługi czasu),\n", " - ```itertools``` (tworzenie różnego rodzaju iteratorów, np. permutacji),\n", " - ```random``` (generator liczb pseudolosowych).\n", "\n", "Listę pozostałych modułów można znaleźć tutaj https://docs.python.org/3/py-modindex.html.\n", "\n", "Dostępnych jest również wiele innych gotowych bibliotek, jednak aby móc z nich korzystać musimy je wcześniej zainstalować na swoim urządzeniu." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Moduł math\n", "\n", "Moduł ```math``` dostarcza nam wielu funkcji matematycznych. Aby móc z niego korzystać, musimy na początek w naszym programie umieścić komendę ```import math```. Następnie, aby wywołać funkcję zdefiniowaną w tym module piszemy najpierw nazwę modułu, po niej kropkę i dopiero wtedy nazwę interesującej nas funkcji. " ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "16\n", "720\n", "14400\n" ] } ], "source": [ "import math\n", "print(math.gcd(144, 80)) # gcd = greatest common divisor czyli NWD\n", "print(math.lcm(144, 80)) # lcm = least common multiple czyli NWW\n", "print(math.prod([1, 4, 9, 16, 25])) # zwraca iloczyn liczb na liście" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Pełną listę funkcji, które dostarcza moduł math można znaleźć tutaj https://docs.python.org/3/library/math.html#module-math.\n", "\n", "Funkcje w pakiecie ```math``` zazwyczaj zwracają liczbę typu ```float```." ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "8103.083927575384\n", "2.1972245773362196\n", "2.0\n", "3.169925001442312\n", "0.9542425094393249\n", "729.0\n", "3.0\n" ] } ], "source": [ "x = 9\n", "y = 3\n", "print(math.exp(x)) # e^x\n", "print(math.log(x)) # logarytm naturalny z x\n", "print(math.log(x, y)) # logarytm o podstawie y z x\n", "print(math.log2(x)) # logarytm o podstawie 2 z x\n", "print(math.log10(x)) # logarytm o podstawie 10 z x\n", "print(math.pow(x, y)) # x^y\n", "print(math.sqrt(x)) # pierwiastek kwadratowy z x" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Funkcje trygonometryczne**\n", "\n", "Moduł ```math``` dostarcza również funkcje trygonometryczne takie jak ```math.sin```, ```math.cos```, ```math.tan```, ```math.asin```, ```math.acos```, ```math.atan```, przy czym należy pamiętać, że argumenty pierwszych trzech funkcji i wartości zwracane przez ostatnie trzy podawane są w radianach. Aby przekonwertować radiany na stopnie możemy posłużyć się funkcją ```math.degrees```, z kolei funkcja ```math.radians``` zamienia stopnie na radiany." ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.49999999999999994\n", "0.8660254037844386\n", "1.0\n" ] } ], "source": [ "alfa = 30\n", "beta = 60\n", "gamma = 90\n", "print(math.sin(math.radians(alfa)))\n", "print(math.sin(math.radians(beta)))\n", "print(math.sin(math.radians(gamma)))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Zadanie 1.** Napisz program, który obliczy kąty w trójkącie o bokach długości $3$, $4$ i $5$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Zadanie 2.** Napisz program, który obliczy kąty w trójkącie o bokach długości $6$, $7$ i $10$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Stałe w module Math**\n", "\n", "Poza funkcjami matematycznymi, pakiet ```math``` udostępnia nam również klasyczne stałe matematyczne takie jak ```math.pi``` oraz ```math.e```, przy czym dokładność obydwu stałych jest ograniczona dokładnością typu float." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Zadanie 3.** Napisz program, który policzy pole i objętość kuli o zadanym promieniu." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Zadanie 4.** Jedna z definicji liczby $e$ mówi, że jest to wartość graniczna wyrażenia $\\left(1+\\frac1{n}\\right)^n$ przy $n$ zmierzającym do nieskończoności. Napisz program, który wyznaczy najmniejszą wartość $n$ taką, że wyrażenie $e-\\left(1+\\frac{1}{n}\\right)^n$ będzie mniejsze niż $10^{-m}$ dla zadanej liczby naturalnej $m$." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.9" } }, "nbformat": 4, "nbformat_minor": 5 }