Różnice między wybraną wersją a wersją aktualną.
Both sides previous revision Previous revision Next revision | Previous revision | ||
units [2009/04/30 06:40] snowak2 |
units [2009/04/30 06:56] (aktualna) snowak2 |
||
---|---|---|---|
Linia 1: | Linia 1: | ||
====== Biblioteka boost - boost::units ====== | ====== Biblioteka boost - boost::units ====== | ||
- | <code>uwaga. strona w budowie</code> | + | ==== Wprowadzenie ==== |
- | tutaj jakiś opis będzie | + | Biblioteka ta pozwala definiować systemy jednostek, służących do obliczeń ilościowych. Umożliwia prowadzenie obliczeń w jednostkach z różnych systemów, pod warunkiem, że prawa konwersji jednostek zostały zdefiniowane.\\ \\ |
- | ===== przykładowy kod źródłowy: ===== | + | Obliczenia mogą być prowadzone na wartościach reprezentowanych przez zmienne, bez zwracania uwagi na jednostki, ponieważ rachunek jednostkowy będzie przeprowadzony implicite.\\ |
+ | |||
+ | ==== Pomocne źródła ==== | ||
+ | * http://www.boost.org/doc/libs/1_37_0/doc/html/boost_units.html | ||
+ | * http://www.boost.org/doc/libs/1_38_0/doc/html/boost_units/Units.html | ||
+ | |||
+ | ==== przykładowy kod źródłowy: ==== | ||
<code cpp> | <code cpp> | ||
/** | /** | ||
Linia 48: | Linia 54: | ||
#include <boost/mpl/vector.hpp> | #include <boost/mpl/vector.hpp> | ||
- | #include <boost/units/pow.hpp> //definiowanie jednostek skalowanych i potegowanie | + | #include <boost/units/pow.hpp> //definiowanie jednostek skalowanych i potegowanie |
- | #include <boost/units/quantity.hpp> //uzywanie jednostek do obliczeń ilosciowych | + | #include <boost/units/quantity.hpp> //uzywanie jednostek do obliczeń ilosciowych |
- | #include <boost/units/io.hpp> //obsluga base_unit_info | + | #include <boost/units/io.hpp> //obsluga base_unit_info |
- | #include <boost/units/base_dimension.hpp> //definiowanie wymiarow podstawowych jednostek | + | #include <boost/units/base_dimension.hpp> //definiowanie wymiarow podstawowych jednostek |
#include <boost/units/derived_dimension.hpp> //tworzenie jednostek pochodnych od podstawowych | #include <boost/units/derived_dimension.hpp> //tworzenie jednostek pochodnych od podstawowych | ||
- | #include <boost/units/static_constant.hpp> //definiowanie stalych do deklaracji zmiennych | + | #include <boost/units/static_constant.hpp> //definiowanie stalych do deklaracji zmiennych |
- | #include <boost/units/unit.hpp> //podstawowy naglowek | + | #include <boost/units/unit.hpp> //podstawowy naglowek |
- | #include <boost/units/base_unit.hpp> //tworzenie podstawowych jednostek skojarzonych z odpowiednim wymiarem | + | #include <boost/units/base_unit.hpp> //tworzenie podstawowych jednostek skojarzonych z odpowiednim wymiarem |
- | #include <boost/units/make_system.hpp> //tworzenie systemu jednostek | + | #include <boost/units/make_system.hpp> //tworzenie systemu jednostek |
namespace boost { | namespace boost { | ||
Linia 176: | Linia 182: | ||
/** | /** | ||
* Demonstracja obliczeń wykonywanych na jednostkach. | * Demonstracja obliczeń wykonywanych na jednostkach. | ||
- | * Prosze zwrocic uwage na zastosowanie stalych kilograms, seconds, itp. | + | * Prosze zwrocic uwage na zastosowanie stalych "kilograms", "seconds", itp. |
*/ | */ | ||
std::cout << "L = " << L << std::endl | std::cout << "L = " << L << std::endl | ||
Linia 185: | Linia 191: | ||
<< "L*meter = " << L*meter << std::endl | << "L*meter = " << L*meter << std::endl | ||
<< "kilograms*(L/seconds)*(L/seconds) = " | << "kilograms*(L/seconds)*(L/seconds) = " | ||
- | << kilograms*(L/seconds)*(L/seconds) << std::endl | + | << kilograms*(L/seconds)*(L/seconds) << std::endl |
<< "kilograms*(L/seconds)^2 = " | << "kilograms*(L/seconds)^2 = " | ||
- | << kilograms*pow<2>(L/seconds) << std::endl | + | << kilograms*pow<2>(L/seconds) << std::endl |
<< "L^3 = " | << "L^3 = " | ||
- | << pow<3>(L) << std::endl | + | << pow<3>(L) << std::endl |
<< "L^(3/2) = " | << "L^(3/2) = " | ||
- | << pow<static_rational<3,2> >(L) << std::endl | + | << pow<static_rational<3,2> >(L) << std::endl |
<< "2vL = " | << "2vL = " | ||
- | << root<2>(L) << std::endl | + | << root<2>(L) << std::endl |
<< "(3/2)vL = " | << "(3/2)vL = " | ||
- | << root<static_rational<3,2> >(L) << std::endl | + | << root<static_rational<3,2> >(L) << std::endl |
<< std::endl; | << std::endl; | ||
} | } | ||
Linia 201: | Linia 207: | ||
} | } | ||
</code> | </code> | ||
+ | |||
+ | ==== Autor ==== | ||
+ | Stanisław Nowak, I1ISI\\ | ||
+ | snowak2@stud.elka.pw.edu.pl | ||