1 / 12

Premenné

Premenné. Random Access Memory (RAM) pamäť s priamym prístupom – operačná pamäť.

sheng
Download Presentation

Premenné

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Premenné

  2. Random Access Memory (RAM)pamäť s priamym prístupom – operačná pamäť Je ústredným pamäťovým priestorom počítača a počas riešenia konkrétnej úlohy musí byť v nej uložený program a údaje, s ktorými program pracuje. Nie je to však pamäť na dlhodobé ukladanie údajov, pretože vypnutím počítača sa celý obsah pamäte RAM stratí. Technicky je pamäť riešená ako polovodičový integrovaný obvod – dnes s extrémne vysokou hustotou integrácie. Elementárnym prvkom pamäti je taká mikroštruktúra, ktorá je schopná zotrvať vo dvoch diskrétnych stavoch – a teda uchovať jednu binárnu hodnotu {0, 1} – jeden bit. Zaužívalo sa aj tento pamäťový element nazývať bitom.

  3. Zobrazenie údajov v pamäti RAM 0000 b7 b6 b5 b4 b3 b2 b1 b0 0001 Jeden bit je veľmi malý pamäťový priestor – ako základný adresovateľný prvok sa používa 8-bitová usporiadaná skupina: ktorú nazývame slabika (byte [bajt] ). Slabiky sú usporiadané lineárne za sebou a každá má svojou jedinečnú adresu. Adresy zvyčajne vyjadrujeme v 16-kovej sústave, v nakreslenom príklade je veľkosť pamäti : FFFFH + 1H = 65536 8-bitových slabík. Dnes sú už bežným štandardom počítače s operačnou (RAM) pamäťou 4 GB a viac. (4 GB + 1 = 4 294 967 296) 0002 0003 0004 0005 b7 b6 b5 b4 b3 b2 b1 b0 0006 0007 0008 0009 000A 000B 000C 000D 000E 000F 0010 0011 0012 0013 • • • • • • FFFA FFFB FFFC FFFD FFFE FFFF

  4. Čo sa zmestí do jednej slabiky? Odpoveď je na prvý pohľad veľmi jednoduchá - nič iné, ako 256 (=28) kombinácií núl (0) a jednotiek (1) 00000000 To, že vieme do pamäti zapísať ako celé čísla, tak aj čísla 00000001 s pohyblivou rádovou čiarkou, kladné aj záporné čísla, 00000010 texty a inštrukcie programu je vecou 00000011 00000100 interpretácie obsahu slabiky. 00000101 00000110 "Najprirodzenejšia" interpretácia považuje slabiku priamo 00000111 za celé číslo (integer) zapísané v dvojkovej sústave a rozsah 00001000 hodnôt týchto čísel v desiatkovej sústave je 0 … 255.  11111100 Je to veľmi malý rozsah a jazyk C++ spravidla nepoužíva 11111101 jednu slabiku na ukladanie celočíselných hodnôt. 11111110 11111111

  5. Typy premenných a počet obsadených slabík Jazyk C++ pozná štyri základné typy premenných (boolean,character,integer a floating). Kompilátor im pri deklarácii priradí pevný počet slabík v operačnej pamäti. znakové premenné (char) [1], (wchar_t) [2] logické premenné (bool) [1] kompilátor premenné s pohyblivou rádovou bodkou (float) [4], (double) [8] celočíselné premenné (integer) short [2], int [4], long [4], longlong [8]

  6. Kde v pamäti sú naše údaje? Každý program pre PC pracuje s údajmi (data), ktoré musia byť v priebehu výpočtu v operačnej pamäti. Programátor rozhodne, v akom formáte ich uloží do počítača, aby sa v priebehu výpočtu napríklad nestrácala presnosť výsledkov.Údaje sa ukladajú do premenných. Každá premenná má svoje meno a typ. Jazyk C++ je benevolentný pri voľbe mien (identifikátorov) premenných, zakázané sú iba tzv. kľúčové slová, nesmú sa používať žiadne zvláštne znaky (s výnimkou podčiarkovníka) – teda ani napr. medzera. Identifikátor musí začínať písmenom. Treba rešpektovať skutočnosť, že C++ je citlivé na veľké/malé písmená. Je výhodné ako identifikátory voliť zmysluplné názvy, ktoré napovedajú o obsahu tej-ktorej premennej.

  7. Deklarácie premenných y y0 r M  Úloha: (r, ) sú polárne súradnice bodu M v rovine. Určte jeho pravouhlé súradnice (x0, y0)! Programátor: • nalistuje v učebnici transformačné vzťahy: x0 = r . cos ; y0 = r. sin  • vidí, že bude musieť pridať knižnicu: #include<cmath> • konštatuje, že bude potrebovať uložiť do pamäti štyri hodnoty (r, , x0, y0), zvolí názvy premenných (r, fi, x, y) a po úvahe sa rozhodne pre všetky premenné zvoliť typ float[4 slabiky] • kompilátoru oznámi svoje rozhodnutie deklaráciou premenných: float r = 10, fi = /3, x = 0, y = 0; • v deklarácii môže premenným priradiť aj počiatočné hodnoty • deklarácia premennej musí predchádzať jej prvému použitiu! x0 x

  8. Deklarácie premenných Kompilátor: • požiadavku vytvoriť premennú typu float s menom "r" realizuje tak, že do tzv. alokačnej tabuľky zapíše meno premennej, jej typ a vyhľadá v časti pamäti, do ktorej ukladá údaje, súvislú 4-slabičnú oblasť, ktorú rezervuje a počiatočnú adresu tejto oblasti tiež uloží do alokačnej tabuľky.

  9. Deklarácie premenných • od tohto okamžiku, každá odvolávka na premennú "r" znamená, že kompilátor v alokačnej tabuľke vyhľadá meno "r", zistí, že premenná s týmto menom je typu float, od zaznamenanej počiatočnej adresy (1000H) vyberie štyri slabiky a vráti ich volajúcemu miestu v programe ako hodnotu premennej "r" • podobne pre premenné fi, x, y pozná správnu adresu, od ktorej štyri nasledujúce slabiky obsahujú ich hodnotu • napíše výkonnú časť programu (čo sa iba budeme učiť)

  10. Deklarácie premenných • #include <iostream> • #include <cmath> • #define PI 3.14159 • usingnamespacestd; • intmain() • { • float r = 10, fi = PI/3., x, y; • x = r * sin(fi); • y = r * cos(fi); • cout << "Polarnesuradnice" << endl; • cout << "r = " << r << "\tfi = " << fi << endl << endl; • cout << "Pravouhlesuradnice" << endl; • cout << "x = " << x << "\ty = " << y << endl; • return 0; • }

  11. Zhrnutie – deklarácie premenných • Údaje, s ktorými bude program riešiť zadanú úlohu sa ukladajú do súvislej oblasti operačnej pamäti; • Technicky je premenná práve táto alokovaná oblasť v pamäti (napr. 4 slabiky), v ktorých je uložená okamžitá hodnota konkrétnej premennej; • pevný počet slabík, ktoré kompilátor priradí jednotlivým premenným, závisí od typu premennej (char, bool, short, int, long, longlong, float , double); • Každá premenná použitá v programe musí mať svoju deklaráciu, ktorou oznámime kompilátoru typ a meno premennej; meno sa tak stáva symbolickou adresou príslušnej premennej (jej fyzická adresa je v alokačnej tabuľke); • Deklarácia premennej musí predchádzať jej prvé použitie!

  12. Zhrnutie – deklarácie premenných • Príklady deklarácií: Reálne je premenná vytvorená intpocetStudentov; až vtedy, keď jej prvý krát priradíme short i, j, k; hodnotu (čo nazývame inicializácia) bool ona1_on0; pocetStudentov = 36; char znak, pismeno; i = 7; j = 4; k = 0; float pi; ona1_on0 = 1; písmeno = ´A´; pi = 3.14159; • Deklaráciu a inicializáciu možno spojiť: float pi = 3.14159; Rovnítko (=) je operátorom priradenia – hodnota výrazu na pravej strane sa priradí premennej na ľavej strane.

More Related