6.53.Giriş-çıxış axınlarnın manipulyatorları C++ dilində axınları formatlaşdırmaq üçün manipulyatorlardan istifadə edilir. Manipulyatorların köməyi ilə aşağıdaki əməliyyatları yerinə yetirmək olar: sahənin enini vermək, dəqiqliyi vermək, sahəni dolduran simvolları vermək, ayırıcı simvolları nəzərdən atmaq, say sisteminə uyğun olaraq ədədlərin əsasını vermək və s.
Tam ədəd əsası 10 olan 10-luq tam ədəd kimi başa düşülür. axında tam ədədi 16-lıq əsasla vermək üçün hex, 8-liklə verilənləri təsvir etmək üçün oct manipulyatorlarından istifadə etmək lazımdır. Yenidən 10 əsasına keçmək üçün dec manipulyatorunu yazmaq lazımdır.
Axında olan ədədlərin əsasını setBase manipulyatoru vasitəsi ilə də dəyişmək olar. SetBase-nın arqumenti 10,8 və 16 ola bilər. Məsələ, SetBase(10)-10-luq əsasa, SetBase(16)-16-lıq əsasa çevirir.
Aşağıdaki proqramda bu manipulyatorlardan istifadə edilməsi qaydası göstərilmişdir. Qeyd edək ki, bu manipulyatorlardan istifadə etdikdə başlıq faylını proqrama qoşmaq lazımdır.
#include #include using namespace std; int main( ) { int n;
6.54.Sürüşkən nöqtəli ədədlərin dəqiqliyinin verilməsi. Eksponensial format Sürüşkən nöqtəli onluq ədədlərinin dəqiqliyini idarə etmək üçün axının setprecision manipulyatorundan və ya precision üzv-funksiyasından istifadə edilir.
Dəqiqlik dedikdə onluq nöqtədən sonraki rəqəmlərin sayı başa düşülür. Dəqiqlik müəyyən olunduqdan sonra yeni dəqiqlik təyin olunana qədər bütün çıxış operatorlarında təsir göstərir. Precision funksiyası arqumentə malik deyildir və dəqiqliyin carı qiymətini qaytarır. Aşağıdaki proqram həm precision funksiyasından, həm də setprecision manipulyatorundan istifadə etməklə 2-ədədinin kvadrat kökünü dəqiqlik 0-dan 9-a qədər dəyişməklə hesablayır.
#include #iclude #include using namespace std; int main( ) { double r=sqrt(2.0); int deg; //Dəqiqlik
cout<<”0-dan 9-a qədər olan dəqiqliklə 2-nin kvadrat kökü”< cout<//qeyd olunmuş ədəd kimi çıxışa
//verilməsini təmin edən manipulyator
//precision funksiyasının tətbiqi
for(deq=0; deq<=9; deq++){ cout.precision(deq); cout< } //setprecision manipulyatorundan istifadə etməklə
for(deq=0;deq<=9;deq++) cout< return 0; }
Setprecision-manipulyatorundan istifadə
1.
1.4
1.41
1.414
1.4142
1.41421
1.414214
1.4142136
1.41421356
1.414213562
Bunlardan əlavə sürüşgən nöqtəli ədədlərin çıxışa verilməsi formatını idarə etmək üçün scientific və fixed manipulyatorlarının da istifadə etmək olar.
Scientific manipulyatoru sürüşkən nöqtəli ədədləri eksponensial formatda çıxışa verir. Fixed manipulyatoru isə sürüşkən nöqtəli ədədləri verilmiş dəqiqliklə qeyd olunmuş nöqtəli ədəd formatında çıxışa verir. Dəqiqlik precision funksiyası və ya setprecision manipulyatoru vasitəsi ilə verilir.
Aşağıdaki proqramda bu manipulyatorların işlədilməsi qaydası nümayış etdirilmişdir. Sürüşkən nöqtəli və eksponensial formatda təsvir edilən ədədlərin formatı müxtəlif kompüterlərdə müxtəlif ola bilər.
#include using namespace std; int main( ) {double x=0.001234567; double y=1.946e9; cout<<”x və y-i susma prinsipinə görə əks olunur:”< < cout<<”x və y-i eksponensial formatda əks olunur:”< < cout<<” x və y-i qeyd olunmuş nöqtəli formatda əks olunur:”< < return 0; } Nəticə:
x və y susma prinsipinə görə əks olunur:
0.00123457 1.946e+009
x və y eksponensial formatda əks olunur:
1.234567e-003 1.946000e+0009
x və y qeyd olunmuş nöqtəli formatda əks olunur:
0.001235 1946000000.000000