<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://www.if.pw.edu.pl/~lgraczyk/wiki/skins/common/feed.css?270"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://www.if.pw.edu.pl/~lgraczyk/wiki/index.php?action=history&amp;feed=atom&amp;title=KADD_2017_Zadanie_1</id>
		<title>KADD 2017 Zadanie 1 - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://www.if.pw.edu.pl/~lgraczyk/wiki/index.php?action=history&amp;feed=atom&amp;title=KADD_2017_Zadanie_1"/>
		<link rel="alternate" type="text/html" href="http://www.if.pw.edu.pl/~lgraczyk/wiki/index.php?title=KADD_2017_Zadanie_1&amp;action=history"/>
		<updated>2026-04-06T11:45:09Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.16.5</generator>

	<entry>
		<id>http://www.if.pw.edu.pl/~lgraczyk/wiki/index.php?title=KADD_2017_Zadanie_1&amp;diff=1673&amp;oldid=prev</id>
		<title>Lgraczyk: Created page with &quot;{| align=&quot;right&quot; | __TOC__ |}  == Dokumentacja == Dokumentacja środowiska ROOT: * strona główna: [https://root.cern.ch/ https://root.cern.ch/] * dokumentacja wersji rozwojowej...&quot;</title>
		<link rel="alternate" type="text/html" href="http://www.if.pw.edu.pl/~lgraczyk/wiki/index.php?title=KADD_2017_Zadanie_1&amp;diff=1673&amp;oldid=prev"/>
				<updated>2017-02-20T09:43:50Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;quot;{| align=&amp;quot;right&amp;quot; | __TOC__ |}  == Dokumentacja == Dokumentacja środowiska ROOT: * strona główna: [https://root.cern.ch/ https://root.cern.ch/] * dokumentacja wersji rozwojowej...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
| __TOC__&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dokumentacja ==&lt;br /&gt;
Dokumentacja środowiska ROOT:&lt;br /&gt;
* strona główna: [https://root.cern.ch/ https://root.cern.ch/]&lt;br /&gt;
* dokumentacja wersji rozwojowej (master): [https://root.cern.ch/doc/master/ https://root.cern.ch/doc/master/]&lt;br /&gt;
* dokumentacja ostatniej wersji stabilnej (6.0.4): [https://root.cern.ch/root/html604/ https://root.cern.ch/root/html604/]&lt;br /&gt;
* dokumentacja wersji zainstalowanej w laboratorium (5.32.00): [https://root.cern.ch/root/html532/ https://root.cern.ch/root/html532/]&lt;br /&gt;
&lt;br /&gt;
== Zadanie ==&lt;br /&gt;
1. Należy napisać makro, które:&lt;br /&gt;
* tworzy obiekt &amp;lt;code&amp;gt;fun1&amp;lt;/code&amp;gt; typu &amp;lt;code&amp;gt;TF1&amp;lt;/code&amp;gt; reprezentujący funkcję &amp;lt;code&amp;gt;sin(x)&amp;lt;/code&amp;gt; (patrz klasa &amp;lt;code&amp;gt;TMath&amp;lt;/code&amp;gt;)&lt;br /&gt;
* tworzy obiekt &amp;lt;code&amp;gt;fun2&amp;lt;/code&amp;gt; typu &amp;lt;code&amp;gt;TF1&amp;lt;/code&amp;gt; reprezentujący funkcję &amp;lt;code&amp;gt;cos(x)&amp;lt;/code&amp;gt;&lt;br /&gt;
* tworzy okno z 4 panelami (rozkład paneli 2x2) - patrz klasa &amp;lt;code&amp;gt;TCanvas&amp;lt;/code&amp;gt; i metoda &amp;lt;code&amp;gt;Divide&amp;lt;/code&amp;gt;&lt;br /&gt;
* rysuje obiekt &amp;lt;code&amp;gt;fun1&amp;lt;/code&amp;gt; na 1 panelu, &amp;lt;code&amp;gt;fun2&amp;lt;/code&amp;gt; na 2 panelu, oraz obie funkcje jednocześnie na 3 panelu&lt;br /&gt;
* zmieni kolor linii funkcji &amp;lt;code&amp;gt;fun2&amp;lt;/code&amp;gt; na niebieski - patrz metoda &amp;lt;code&amp;gt;SetLineColor&amp;lt;/code&amp;gt; i klasa &amp;lt;code&amp;gt;TColor&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
2. Wyobraźmy sobie, że rzucamy niesymetryczną sześcienną kostką do gry. Wyniki podsumowuje poniższa tabelka:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Ilość oczek&lt;br /&gt;
| 1   &lt;br /&gt;
| 2   &lt;br /&gt;
| 3   &lt;br /&gt;
| 4   &lt;br /&gt;
| 5   &lt;br /&gt;
| 6   &lt;br /&gt;
|-&lt;br /&gt;
! Ilość rzutów&lt;br /&gt;
| 2&lt;br /&gt;
| 1&lt;br /&gt;
| 5&lt;br /&gt;
| 4&lt;br /&gt;
| 10&lt;br /&gt;
| 12&lt;br /&gt;
|}&lt;br /&gt;
Modyfikujemy dalej makro:&lt;br /&gt;
* tworzymy histogram (patrz klasa &amp;lt;code&amp;gt;TH1D&amp;lt;/code&amp;gt;) wypełniając kolejne biny (odpowiadające kolejnym ilościom oczek) wartościami z tabelki (ilość rzutów) - histogram należy narysować na panelu 4&lt;br /&gt;
* należy stworzyć wykres - graf (patrz klasa &amp;lt;code&amp;gt;TGraph&amp;lt;/code&amp;gt;) zgodnie z wartościami z tabelki. &lt;br /&gt;
* zmienić styl punktów grafu na kółko (patrz metoda &amp;lt;code&amp;gt;SetMarkerStyle&amp;lt;/code&amp;gt; oraz klasa &amp;lt;code&amp;gt;TAttMarker&amp;lt;/code&amp;gt;)&lt;br /&gt;
* narysować graf w oddzielnym oknie&lt;br /&gt;
&lt;br /&gt;
== Uwagi ==&lt;br /&gt;
* &amp;lt;b&amp;gt;Uwaga!&amp;lt;/b&amp;gt; Aby środowisko ROOT można było uruchomić na własnym koncie użytkownika w laboratorium, należy w pliku &amp;lt;code&amp;gt;$HOME/.bashrc&amp;lt;/code&amp;gt; dopisać następujące linijki (jeśli nie były dodane na zajęciach z PTI):&lt;br /&gt;
  export ROOTSYS=/opt/root&lt;br /&gt;
  export PATH=$PATH:$ROOTSYS/bin&lt;br /&gt;
  export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ROOTSYS/lib &lt;br /&gt;
* środowisko ROOT jest zainstalowane lokalnie na każdym komputerze - nie jest dostępne na serwerze&lt;br /&gt;
* w środowisku ROOT piszemy &amp;lt;b&amp;gt;makra&amp;lt;/b&amp;gt;, które mają rozszerzenie .c, .C, .cpp, lub .cxx&lt;br /&gt;
* makro zawiera w sobie kod w języku C++ interpretowany linijka po linijce&lt;br /&gt;
* w zasadzie nie musimy załączać żadnych bibliotek &lt;br /&gt;
* przykład 1:&lt;br /&gt;
 {&lt;br /&gt;
     double x = 5;&lt;br /&gt;
     cout&amp;lt;&amp;lt;x&amp;lt;&amp;lt;endl;&lt;br /&gt;
 }&lt;br /&gt;
* wywołanie makra: uruchamiamy środowisko (komenda &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt;), wpisujemy &amp;lt;code&amp;gt;.x macro.C&amp;lt;/code&amp;gt;&lt;br /&gt;
* makro może zawierać również &amp;lt;b&amp;gt;funkcje&amp;lt;/b&amp;gt;, przykład 2:&lt;br /&gt;
 int macro()&lt;br /&gt;
 {&lt;br /&gt;
     double x = 5;&lt;br /&gt;
     cout&amp;lt;&amp;lt;x&amp;lt;&amp;lt;endl;&lt;br /&gt;
     return 1;&lt;br /&gt;
 }&lt;br /&gt;
* nazwa makra musi być taka sama jak nazwa funkcji w makrze (by można było je uruchomić komendą &amp;lt;code&amp;gt;.x macro.C&amp;lt;/code&amp;gt;)&lt;br /&gt;
* w makrach może być więcej funkcji - przy standardowym uruchomieniu wywołana zawsze będzie ta funkcja, której nazwa zgadza się z nazwą makra (odpowiednik funkcji &amp;lt;code&amp;gt;main&amp;lt;/code&amp;gt; w standardowym C++)&lt;br /&gt;
&lt;br /&gt;
== Wynik ==&lt;br /&gt;
Wykresy:&lt;br /&gt;
* okno 1&lt;br /&gt;
[[File:lab1_1.png]]&lt;br /&gt;
* okno 2&lt;br /&gt;
[[File:1_2.png]]&lt;/div&gt;</summary>
		<author><name>Lgraczyk</name></author>	</entry>

	</feed>