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 | ||