www.amapro.cz & David Bazala [Programování]

Otevře webové stránky AmaPro


Otevře hlavní stránku společnosti AmaPro
Internetové stránky určené pro studenty středních a vysokých odborných škol.


amapro.cz/odkazy Projekt eliminuje vyhledávání klíčových slov na komerčních stránkách a v e-schopech.



Nový projekt AmaPro

 

Double

 

Je standardní příkaz Céčka, který se píše před názvem nové proměnné a říká překladači, aby alokoval v paměti místo pro uložení jednoho necelého čísla typu double. Alokace je provedena pomocí 4 Byte na starších 16-ti bitových PC. Na novějších 32-bitových se již typ double ukládá pomocí rozkladu na 8 Byte. Hodnota proměnné typu double může tedy nabývat necelých kladný a záporných hodnot od 2,22507.10-308 do 1.79769.10+308. Pro bajtový rozklad necelého čísla je použitá speciální metoda určující základní složku, složku pro desetinou část a složku pro exponenciální část.

 

Formát deklarace proměnné

 

double cislo;

 

Nastavuje proměnnou typu double s jedinečným názvem cislo pro programátora a překladač.

 

Co je důležité:

 

Překladač registruje název cislo, který musí být jedinečný. Prezentuje proměnnou double.

Překladač při spuštění programu nechá alokovat 8 adresy ( Byte), kam se budou ukládat od 2,22507.10-308 do 1.79769.10+308.

Překladač zajistí programu požadavek informace o skutečné adrese prvního Byte ze 8 po sobě jdoucích adres.

POZNÁMKA: překladač není správný pojem, neboť při spuštění kompilovaného programu je mimo hru

 

Specifika int:

 

Při výpočtech s double, kdy výsledek by byl mimo rozsah od 2,22507.10-308 do 1.79769.10+308, nastává přetékání jednotlivých bajtů ve složkách (jedná se vlastně o chary), Důsledkem této skutečnosti je výsledek špatný.

Lze vytvořit i pole double, které se deklaruje jako double m3[]={6.1,7.2,8.3};. Pokud neurčíme počet prvků, vypočítá je překladač dle počtu námi zadaných. Pole se skládá z Nx8 Byte po sobě jdoucích adres v paměti, jejíž velikost již nelze zvětšit.

Pokud nezadáme při deklaraci počáteční hodnotu (to ale nemusíme), provede se jen alokace 8 adres v paměti a to bez jejich modifikace. Výsledná hodnota seskládaná z oněch 8 Byte nám dá nedefinovatelnou hodnotu. Proto je dobré již při deklaraci nastavit např. na 0.

Existuje i speciální typ pro double, který je v rozmezí rozsah od 3,3621.10-4932 do 1.18973.10+4932, označován jako long double, který pracuje s 10 Byte.

 

double cislo1;                                      //alokuje a neinicializuje 8 Byte pro int

double cislo2=356.128;                       //alokuje a inicializuje 8 Byte pro int

double cislo3;                                      //alokuje a neinicializuje 8 Byte pro int

double m1[5];                                     //alokuje a neinicializuje 8 x 4 Byte

double m2[]= {1.01,2.02,3.03,4.04,5.05};  //alokuje a inic. Byte(N vypočítá překl.) x 8 Byte

double m3[5]={6.1,7.2,8.3};              //alokuje 5x8 Byte a inicializuje 3 x 8 Byte

cislo3=0.456;                                      //nastavuje již alokované 8 Byte pro int

cout<<cislo1<<endl;                           //náhodné číslo

cout<<cislo2<<endl;                           //356.128

cout<<cislo3<<endl;                           //0.456

cout<<m1[0]<<m1[1]<<m1[2]<<m1[3]<<m1[4]<<endl;  //náhodná čísla

cout<<m2[0]<<m2[1]<<m2[2]<<m2[3]<<m2[4]<<endl;  //1.012.023.034.045.05

cout<<m3[0]<<m3[1]<<m3[2]<<m3[3]<<m3[4]<<endl;  //6.17.28.3nahodná čísla

getchar();                                            //čekání na entr

return 0;                                              //opuštění konzolové aplikace

 

Program deklaruje tři proměnné typu double a tři množiny prvků double. Cislo1 a cislo3 jsou pouze alokovány, tedy bez modifikace jejích 8 Byte, které double popisují. Což následně cout převede na obrazovku jako nějaké číslo. Cislo2 alokuje v paměti 8Byte a ještě je nastaví dle přepočtu např. 0/0 - 45/128 - 1/0 - 235/45. Za běhu programu je cislo3 nastaveno na hodnotu 0,456, což způsobí nastavení 4Byte na např. 0/0 - 0/0 - 73/29 - 0/0. Při deklaraci množiny m1 je zadán parametr 5, který říká překladači aby dimenzoval pole pro 5 double, což představuje 5x8Byte. Dojde k alokaci paměti a to bez modifikace obsahů paměťových buněk. Cout potom vypíše náhodná desetinná čísla na obrazovku. Deklarace množiny m2 je provedena bez zadání parametru, ale je uveden výčet hodnot double. Dle jejich počtu překladač automaticky vypočte potřebné místo pro alokaci paměti. To pak již nelze zvětšit. Uvedené hodnoty také modifikují alokovanou paměť. Cout vypíše námi uvedené hodnoty double. Deklarace množiny m3 je dána výčtem prvků a počtem prvků 5. Překladač alokuje paměť pro 5 double, ale modifikuje pouze 3x8 Byte. Počet uvedených prvků nesmí být větší než počet deklarovaných. Do cout vstupuje ukazatel na první Byte pro jednotlivé double. Cout ví, že je na 32-ti bitovém PC a že pro správnou interpretaci hodnoty double použije ještě následující 7 Byte, které dle standardně definovaného pořádku mu poskytnou informace o desetinné složce či exponentu.

 

 

 



Abecední seznam všech článků Vyhledání pojmů ve článcích




Popis HTML formátu
Velikost textu, barva textu, rozvržení stránky, obrázky, barva pozadí se zapisuje pomocí HTML příkazů.
stranky/html_tag
Mikroprocesory IV.
Varianty návrhu číslicových řídících systémů realizovaných jako sekvenční obvody.
programovani/procesory_4
Zapojení kabelů
Popis vývodů a křížení různých propojovacích kabelů
konektory.php
CSS html vlasnosti
Přehled CSS vlastností pro tvorbu webu
datove_zdroje/stranky/css
Weby o programování
Odkazy na velké servery o programování a vývoji SW
odkazy/programovani
Odkazník o programování
Rejstřík klíčových slov pro programování ve vyhledávačích.
programovani/programovani.php
Hybridní počítače
Počítače, jejichž základem je standardní analogová počítací síť.
knihy/hybridni_pocitace
Databáze ikon
Ikony a malé obrázky pro tlačítka či jiné použití
datove_zdroje/icony/icony.php
Programování PHP
Články o programování webových stránek pomocí PHP.
internet/katalog_programovani_php
Otevře stránky Fulltextové vyhledávání na celém serveru
Digitalizované odborné knihy
Velká encyklopedie pojmů a zkratek
Česko - anglicko - německý technický slovník
Klasický katalog firem, služeb a stránek
OnLine překladač  vět a textů (nepoužívá Google)
Stránky pro chvíle oddechu od studia, relaxace
Katalog českých firem dle technologií
Internetový odkazník
Otevře hlavní stranu pro oddíl programování




 Wikipedie   Seznam stránek   Kapitoly témat   Významné servery   Klíčová slova 








Otevře hlavní stranu společnosti AmaPro

Všechna práva vyhrazena. Určeno jen pro osobní využití. Bez předchozího písemného souhlasu správce www.amapro.cz je zakázána jakákoli další publikace, přetištění nebo distribuce jakéhokoli materiálu nebo části materiálu zveřejněného na www.amapro.cz a to včetně šíření prostřednictvím elektronické pošty. Články, jejichž přímým autorem není amapro.cz lze publikovat pouze se souhlasem jejich majitelů či administrátoru příslušného webu.