<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Math - Kama Kaczmarek</title>
	<atom:link href="https://kamakaczmarek.net/tag/math/feed/" rel="self" type="application/rss+xml" />
	<link>https://kamakaczmarek.net/tag/math/</link>
	<description>Strona z materiałami dla uczniów i nauczycieli</description>
	<lastBuildDate>Fri, 04 Jun 2021 11:29:13 +0000</lastBuildDate>
	<language>pl-PL</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	
	<item>
		<title>7. JAVA &#8211; klasa Math i przydatne funkcje</title>
		<link>https://kamakaczmarek.net/7-java-klasa-math-i-przydatne-funkcje/</link>
		
		<dc:creator><![CDATA[Kama]]></dc:creator>
		<pubDate>Sat, 24 Apr 2021 17:29:09 +0000</pubDate>
				<category><![CDATA[JAVA]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[klasa]]></category>
		<category><![CDATA[Math]]></category>
		<guid isPermaLink="false">https://kamakaczmarek.net/?p=2577</guid>

					<description><![CDATA[<p>Podczas pisania programów niezbędne jest wykonywanie działań matematycznych, zarówno tych prostych jak i złożonych. Nie musimy za każdym razem samodzielnie pisać funkcji, które będą wykonywały skomplikowane operacje matematyczne, bo zostały one już stworzone i zgrupowane w klasie Math &#8211; możemy z nich korzystać. Niektóre klasy, które chcemy użyć musimy importować do programu. Klasa Math nie [&#8230;]</p>
<p>Artykuł <a href="https://kamakaczmarek.net/7-java-klasa-math-i-przydatne-funkcje/">7. JAVA &#8211; klasa Math i przydatne funkcje</a> pochodzi z serwisu <a href="https://kamakaczmarek.net">Kama Kaczmarek</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Podczas pisania programów niezbędne jest wykonywanie działań matematycznych, zarówno tych prostych jak i złożonych. Nie musimy za każdym razem samodzielnie pisać funkcji, które będą wykonywały skomplikowane operacje matematyczne, bo zostały one już stworzone i zgrupowane w klasie <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Math.html">Math</a> &#8211; możemy z nich korzystać.</p>



<p class="wp-block-paragraph">Niektóre klasy, które chcemy użyć musimy importować do programu. Klasa Math nie wymaga tego od nas, jest załadowana automatycznie, a co za tym idzie możemy od razu korzystać z jej dobrodziejstw.</p>



<p class="wp-block-paragraph">Oto przydatne funkcje:</p>



<h4>&nbsp;</h4>
<h4>Math.<em>abs</em>()</h4>
<p>Wartość bezwzględna (moduł z liczby)</p>
<pre id="block-0ce36a3c-a575-480d-8411-29b88de39d09" class="block-editor-rich-text__editable wp-block-preformatted prettyprint block-editor-block-list__block wp-block is-selected rich-text" tabindex="0" role="group" aria-multiline="true" aria-label="Blok: Tekst formatowany" data-block="0ce36a3c-a575-480d-8411-29b88de39d09" data-type="core/preformatted" data-title="Tekst formatowany" contenteditable="true">System.<em>out</em>.println(Math.<em>abs</em>(-5)); // abs(int a) wyświetli 5<br data-rich-text-line-break="true"/>System.<em>out</em>.println(Math.<em>abs</em>(-1254879L)); // abs(long a) wyświetli 1254879<br data-rich-text-line-break="true"/>System.<em>out</em>.println(Math.<em>abs</em>(-2.548763F)); // abs(float a) wyświetli 2.548763<br data-rich-text-line-break="true"/>System.<em>out</em>.println(Math.<em>abs</em>(-3.54875158874D)); //abs(double a) wyświetli 3.54875158874</pre>
<h4>&nbsp;</h4>
<h4>Math.<em>round</em>()</h4>
<p><span class="dc-title">Zaokrągla liczbę zmiennoprzecinkową</span></p>
<pre class="prettyprint">System.out.println(Math.round(2.123456F)); //round(float a) wyświetli 2<br />System.out.println(Math.round(3.49345678910D)); //round(double a) wyświetli 3</pre>
<p>&nbsp;</p>
<h4>Math.<em>ceil</em>()</h4>
<p>Zaokrągla ułamki w górę</p>
<pre class="prettyprint">System.out.println(Math.ceil(5.12345678910D)); //ceil(double a) wyświetli 6.0<br />System.out.println(Math.ceil(5.52345678910D)); //ceil(double a) wyświetli 6.0</pre>
<h4>&nbsp;</h4>
<h4>Math.<em>floor</em>()</h4>
<p>Zaokrągla ułamki w <span class="dc-title">dół</span></p>
<pre class="prettyprint">System.out.println(Math.floor(5.12345678910D)); //ceil(double a) wyświetli 5.0<br />System.out.println(Math.floor(5.52345678910D)); //ceil(double a) wyświetli 5.0</pre>
<h4>&nbsp;</h4>
<h4>Math.<em>hypot</em>()</h4>
<p>Oblicza długość przeciwprostokątnej trójkąta prostokątnego. <strong>Math.</strong><em><strong>hypot()</strong></em> zwraca długość przeciwprostokątnej trójkąta prostokątnego, o długościach przyprostokątnych x i y, lub odległość punktu o współrzędnych (x, y) od początku układu współrzędnych. Jest to równoważne wyrażeniu sqrt(x*x + y*y).</p>
<pre class="prettyprint">System.out.println(Math.hypot(2.0d, 5.0d)); //hypot(double x, double y) wyświetli 5.385164807134504</pre>
<h4>&nbsp;</h4>
<h4>Math.<em>log</em>()</h4>
<p><span class="dc-title">Logarytm naturalny o podstawie <em>e</em></span>.</p>
<pre class="prettyprint">System.out.println(Math.log(2.0d)); //log(double a) wyświetli 0.6931471805599453</pre>
<h4>Math.<em>log10</em>()</h4>
<p><span class="dc-title">Logarytm naturalny o podstawie <em>10</em></span>.</p>
<pre class="prettyprint">System.out.println(Math.log10(2.0d)); //log(double a) wyświetli 0.3010299956639812</pre>
<h4>Math.<em>log1p</em>()</h4>
<p><span class="dc-title">Logarytm naturalny o podstawie<em> sumy argumentu i 1</em></span>.</p>
<pre class="prettyprint">System.out.println(Math.log1p(2.0d)); //log(double x) wyświetli 1.0986122886681096</pre>
<p>&nbsp;</p>
<h4>Math.<em>PI</em>()</h4>
<p>Korzystanie z liczby PI &#8211; stałej wbudowanej</p>
<pre class="prettyprint">System.out.println(Math.PI); //wyświetli 3.141592653589793</pre>
<h4>&nbsp;</h4>
<h4>Math.<em>pow</em>()</h4>
<p>Potęgowanie &#8211; pierwszy parametr to podstawa, drugi parametr to wykładnik</p>
<pre class="prettyprint">System.out.println(Math.pow(2.0d, 2.0d)); //pow(double a) wyświetli 4.0</pre>
<h4>&nbsp;</h4>
<h4>Math.<em>sqrt</em>()</h4>
<p><span class="dc-title">Pierwiastek kwadratowy.</span></p>
<pre class="prettyprint">System.out.println(Math.sqrt(16.0d)); //sqrt(double a) wyświetli 4.0</pre>
<h4>&nbsp;</h4>
<h4>Math.<em>max</em>() i Math.<em>min</em>()</h4>
<p><span class="dc-title"><em><strong>Math.max()</strong></em> znajduje największą liczbę, a <strong>Math.</strong><em><strong>min()</strong></em> najmniejszą</span>.</p>
<pre class="prettyprint">//<span class="dc-title"><em>Math.max()</em></span><br />System.<em>out</em>.println(Math.<em>max</em>(12, 2)); // <em>max</em>(int a, int b) wyświetli 12<br data-rich-text-line-break="true"/>System.<em>out</em>.println(Math.<em>max</em>(1254879L, 2222222L)); // <em>max</em>(long a, long b) wyświetli 2222222<br data-rich-text-line-break="true"/>System.<em>out</em>.println(Math.<em>max</em>(12.123456f, 2.123456f)); // <em>max</em>(float a, float b) wyświetli 12.123456<br data-rich-text-line-break="true"/>System.<em>out</em>.println(Math.<em>max</em>(12.1234567891011d, 2.1234567891011d)); //<em>max</em>(double a, double b) wyświetli 12.1234567891011<br /><br /><span class="dc-title"><em>//Math.min()<br /></em>System.out.println(Math.<em>min</em>(12,2)); // <em>min</em>(int a, int b) wyświetli 12<br />System.out.println(Math.<em>min</em>(1254879L, 2222222L)); // <em>min</em>(long a, long b) wyświetli 1254879<br />System.out.println(Math.<em>min</em>(12.123456f,2.123456f)); // <em>min</em>(float a, float b) wyświetli 2.123456<br />System.out.println(Math.<em>min</em>(12.1234567891011d,2.1234567891011d)); //min(double a, double b) wyświetli 2.1234567891011</span></pre>
<h3>&nbsp;</h3>
<h3><em><strong>Funkcje trygonometryczne</strong></em></h3>
<h4 class="refpurpose"><span class="refname">Math.<em>toRadians</em>()</span></h4>
<p class="refpurpose"><span class="dc-title">Przelicza stopnie na radiany</span><span class="dc-title">.</span></p>
<pre class="wp-block-preformatted prettyprint prettyprinted"><span class="com"><span class="dc-title">System.out.println(Math.<em>toRadians</em>(60.0d)); //toRadians(double angdeg) wyświetli 1.0471975511965976</span></span></pre>
<h4>&nbsp;</h4>
<h4 class="refpurpose"><span class="refname">Math.<em>toDegrees</em>()</span></h4>
<p class="refpurpose"><span class="dc-title">Przelicza </span><span class="dc-title">radiany na stopnie. </span></p>
<pre class="wp-block-preformatted prettyprint prettyprinted"><span class="com"><span class="dc-title">System.out.println(Math.<em>toDegrees</em>(1.0471975511965976d)); //toDegrees(double angrad) wyświetli 59.99999999999999</span></span></pre>
<h3>&nbsp;</h3>
<h4 class="refpurpose"><span class="refname">Math.</span><em>sin</em>()</h4>
<p><span class="dc-title">Oblicza sinus kąta. Kąt musi zostać podany w radianach.</span><span class="com"><span class="dc-title"><br /></span></span></p>
<pre class="prettyprint">double x = Math.toRadians(60.0d);<br />System.out.println(Math.sin(x));<br /><br />//skrócony zapis<br />System.out.println(Math.sin(Math.toRadians(60)));</pre>
<h4>&nbsp;</h4>
<h4 class="refpurpose"><span class="refname">Math.</span><em>cos</em>()</h4>
<p><span class="dc-title">Oblicza cosinus kąta. Kąt musi zostać podany w radianach.<br /></span></p>
<pre class="prettyprint">double y = Math.toRadians(60.0d);<br />System.out.println(Math.cos(y));<br />System.out.println(Math.cos(Math.toRadians(60)));</pre>
<h4>&nbsp;</h4>
<h4 class="refpurpose"><span class="refname">Math.</span><em>tan</em>()</h4>
<p><span class="dc-title">Oblicza tangens kąta. Kąt musi zostać podany w radianach.<br /></span></p>
<pre class="prettyprint">double z = Math.toRadians(60.0d);<br />System.out.println(Math.tan(z));<br />System.out.println(Math.tan(Math.toRadians(60)));</pre>
<p>&nbsp;</p>
<h3><em><strong>BigInteger oraz BigDecimal &#8211; czyli operujemy na wielkich liczbach<br /></strong></em></h3>
<p>W trakcie pisania programu może okazać się, że potrzebujemy skorzystać z bardzo dużych liczb, których zakres wychodzi poza znane typy danych. Przychodzą nam wtedy z pomocą specjalnie do tego stworzone klasy (klasy, nie typy) &#8211; BigInteger oraz BigDecimal.</p>
<p>Klasy te nie zostały omówione w temacie <a href="https://kamakaczmarek.net/java-typy-danych/">4. JAVA – typy danych</a>, ani w <a href="https://kamakaczmarek.net/6-java-klasa-integer-i-przydatne-funkcje/">6. JAVA – klasa Integer i przydatne funkcje</a>, ponieważ są to specjalne klasy należące do <strong>pakietu math</strong>. Do ich wykorzystania konieczny jest import tego pakietu, a listę możliwych pakietów Javy znajdziecie na stronie <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/module-summary.html">dokumentacji</a>.</p>
<p>Przykład zastosowania takiego rozwiązania poniżej:</p>
<pre class="prettyprint">package com.cku.basics;<br /><br />/*<br />Intellij automatycznie dodaje nam biblioteki<br />import java.math.BigDecimal;<br />import java.math.BigInteger;<br /><br />jeżeli chcemy skrócić zapis możemy zastosować następującą konstrukcję:<br />*/<br />import java.math.*;<br /><br />public class BigNumbers {<br />    public static void main(String[] args) {<br />        //bardzo duże liczby całkowite<br />        BigInteger bigInt = new BigInteger("1234567891011121314151617181920"); //w ten sposób deklarujemy zmienną klasową, która staje się obiektem<br />        bigInt = bigInt.add(new BigInteger("1234567891011121314151617181920")); //po stworzeniu obiektu, po kropce możemy korzystać z metod dla niej przewidzianych - w tym przykładzie wykonamy dodawanie<br />        System.out.println("Wynik dodawania: " + bigInt);<br /><br />        //bardzo duże liczby rzeczywiste<br />        BigDecimal bigDec = new BigDecimal("1234567891011.121314151617181920"); //w ten sposób deklarujemy zmienną klasową, która staje się obiektem<br />        bigDec = bigDec.pow(2); //po stworzeniu obiektu, po kropce możemy korzystać z metod dla niej przewidzianych - w tym przykładzie potęga<br />        System.out.println("Wynik potęgowania: " + bigDec);<br />    }<br />}</pre>
<h4><em>Ćwiczenie:</em></h4>
<p>Stwórz plik, w którym przetestujesz działanie wyżej wymienionych funkcji oraz wyświetl ich działanie z odpowiednimi opisami.</p>
<p>Artykuł <a href="https://kamakaczmarek.net/7-java-klasa-math-i-przydatne-funkcje/">7. JAVA &#8211; klasa Math i przydatne funkcje</a> pochodzi z serwisu <a href="https://kamakaczmarek.net">Kama Kaczmarek</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
