zaterdag 18 juni 2011

Les2 C++ VARIABELEN

Variabelen

De bouwstenen van een programma zijn de variabelen, zie dit als het materiaal wat we gaan bewerken met ons gereedschap.
Dit werkt als in het ram wordt ruimte gereserveerd, waar  waardes in opgeslagen kunnen worden. Deze geheugen ruimtes zijn voorzien van een adres zodat de opgeslagen waardes weer terug te vinden zijn. Instructies zorgen er dan voor dat deze waardes opgeslagen opgehaald en bewerkt kunnen worden.
Dit ziet er alsvolgt ongeveer zo uit.

 


Een instructie zegt dan bij voorbeeld haal de waarde op die op adres 0001 bewaart wordt tel daarbij op de waarde die op adres 0002 bewaart wordt en bewaar de uitkomst op adres 0003.


Hoe we de waardes (data) erin kunnen opslaan laten we je zo zien eerst moeten we ruimte reserveren voor onze waardes dit noemen we declareren.  Behalve dat we ruimte willen reserveren zullen we ook nog moeten aangeven waarvoor het dient zodat de juiste hoeveelheid ruimte wordt vrijgemaakt.
Dit geven we aan met het type data
Gebruiken we alleen gehele getallen kunnen we  het type int gebruiken.Willen we echter decimale getallen gebruiken hebben we het type float nodig.
En zo zijn er nog enkele types.
Nadat we aangegeven hebben welk type data we willen opslaan  kunnnen we de data ruimte voorzien van een waarde. Dit noemen we  initialiseren. Hiervoor gebruiken we het = teken
wat staat voor assignment operator. Deze zorgt er voor dat de betreffende waarde in de variabele wordt opgeslagen.

#include <iostream>
using namespace std;


void main(void)
{//--------------------begin blok ------------------

//declareer
        int nVariabele1;
        int nVariabele2;

//initialiseer
        nVariabele1 = 10;
        nVariabele2 =  5;

//instructie
        cout << "nVariabele1 = " << nVariabele1 << endl;
        cout << "nVariabele2 = " << nVariabele2 << endl;

}//------------------einde blok ---------------------


Declareer  we mogen zelf kiezen hoe we de variabele noemen
Zolang deze maar uit letters, cijfers en of een underscore bestaat
Dus geen speciale tekens.  
De naam moet met een letter beginnen  of een under score.
En het mag niet een key woord zijn. Zie key woords aan het eind.
Verder wordt er onderscheidt gemaakt tussen hoofdletters en normale karakters
De naam van een variabele noemen we een identifier.

Hier hebben we gekozen voor nVariabele1  aan de n kunnen we dan zien dat het om een integer gaat
Probeer de naam altijd zo te kiezen dat je er aan kunt zien waar deze voor dient.

Int  De waarde die de variabele kan opslaan zijn van het type int integer dit zijn de positieve en negatieve gehele getallen tussen signed: -2147483648 to 2147483647

Initialiseer  nu we de variabele een geheugen plek hebben gegeven kunnen we er een waarde  in opslaan de assignment operator = zal nu de waarde 10 toekennen  aan de variabele.

Instructie  "nVariabele1 = " zal als text naar het console gaan  nVariabele1 toont de opgeslagen waarde.



Op welk adres een waarde wordt opgeslagen kunnen we zien door het & teken voor de variabele te plaatsen &variabele.
Met de sizeof operator kunnen we ook nog zien hoeveel bytes ruimte gereserveert is.


#include <iostream>
using namespace std;

int main()
{ // begin blok main --------------------------------------------------------------------------------

//declareer RAM geheugenruimte reserveren

int         nGetal01;          //variabelen in dit blok noemen we local variabelen
unsigned    nGetal02;
float       nGetal03;
double      nGetal04;
long double nGetal05;


//initialiseer is Waarde(data) toekennen aan de variabelen

nGetal01 = -3;
nGetal02 = 14;
nGetal03 = 0.5;
nGetal04 = 0.00006;
nGetal05 = 10e10;  // is 10 x 10^10

//instructies

cout << "     getal   "<< "adres" << "\t" << "waarde"  << "\t" << "aantal bytes" <<"\n" << endl;
cout << "toon getal01 "<< &nGetal01 << "\t" << nGetal01  << "\t\t" << sizeof(nGetal01) << endl;
cout << "toon getal02 "<< &nGetal02 << "\t" << nGetal02  << "\t\t" << sizeof(nGetal02) << endl;
cout << "toon getal03 "<< &nGetal03 << "\t" << nGetal03  << "\t\t" << sizeof(nGetal03) << endl;
cout << "toon getal04 "<< &nGetal04 << "\t" << nGetal04  << "\t\t" << sizeof(nGetal04) << endl;
cout << "toon getal05 "<< &nGetal05 << "\t" << nGetal05  << "\t\t" << sizeof(nGetal05) <<"\n" << endl;

return 0;

} // einde blok main -----------------------------------------------------------------------------------





Opdracht : Start en eindig het programma een paar keer en let op de toegewezen adressen
             Comment het initialiseren weg
Tip edit ->comment selection

//nGetal01 = -3;
//nGetal02 = 14;
//nGetal03 = 0.5;
//nGetal04 = 0.00006;
//nGetal05 = 10e10;  // is 10 x 1010

         
Je  krijgt een waarschuwing dat de variabelen niet gedefinieerd zijn negeer dit en kijk welke waarde de variabele krijgt.
Dit is niet nul. Vandaar dat het verstandig is altijd een waarde voorzien van een begin waarde. Ook wel bekend als een default waarde.

Met het volgende program kun je het bereik van de waarde van het type int zien.
Maak nu een programma waarmee je, die van bool, float, short, long, double en long double kunt zien.  


#include <iostream>
#include <climits>

using namespace std;

int main(void)
{

    cout << "Size of int types is " << sizeof(int) << " bytes"<< '\n';
    cout << "Signed int min: "<< INT_MIN << " max: "<< INT_MAX << '\n';
    cout << "Unsigned int min: 0 max: "<< UINT_MAX << "\n\n";
    return 0;
}


Nou denk je mischien waarom niet altijd het type double gebruiken dan weet ik zeker dat ik altijd goed zit. Dat klopt echter betekend dat extra geheugen ruimte en meer werk voor de processor waardoor je programma langzamer wordt.
Nu we weten hoe we een programmaatje moeten opstellen kunnen we verder gaan met het uitbreiden hiervan. Door met de variabelen te rekenen en hun waardes te veranderen.

Toets

  1.  wat doet een declaratie
  2.  waarom initialiseren
  3.  wat achterhaal je met een & teken voor een variabele
  4.  waar begint je programma
  5.  wat is het verschil tussen signed en unsigned
  6.  waaraan herken je een statement
  7.  waaruit bestaat een variabele
  8.  wat is het verschil tussen een int en een long double
  9.  kun je een int door een int delen zo ja waarom zo niet waarom niet
10.  kun je nu zonder te spieken zelf een mini program programmeren

KEY WORDS
 

Geen opmerkingen:

Een reactie posten