Informatika1-2015/Gyakorlat9

A MathWikiből
(Változatok közti eltérés)
a (Hozzáférés a programhoz)
27. sor: 27. sor:
 
  mod(2,3)
 
  mod(2,3)
 
  2^3
 
  2^3
 +
sqrt(2)
 
  log(2)
 
  log(2)
 
  log(3)
 
  log(3)
36. sor: 37. sor:
  
 
=== Adattípusok ===
 
=== Adattípusok ===
 +
Minden megadott szám lebegőpontos, akkor is, ha véletlenül egész:
 +
1000/9
 +
ans = 111.11
 +
Viszont megadhatjuk, hogy egészekként értelmezze a számokat:
 +
int32(1000)/int32(9)
 +
ans = 111
 +
Egy szám valós, amíg komplexnek nem bizonyul:
 +
sqrt(2)
 +
sqrt(-2)
 +
 +
==== A számábrázolások ====
 +
* <tt>double</tt>: dupla lebegő pontos, 64 bit (8 byte)
 +
** valós: 8 byte
 +
** komplex: 16 byte
 +
* <tt>single</tt>: szimpla lebegő pontos, 32 bit (4 byte)
 +
** valós 4 byte
 +
** komplex: 8 byte
 +
* <tt>int32</tt>: 32 bites kettes komplemens egész (4 byte)
 +
* <tt>int8</tt>: 8 bites kettes komplemens egész: -128..127 (1 byte)
 +
* <tt>uint32</tt>: 32 bites pozitív egész (4 byte)
 +
* <tt>uint8</tt>: 8 bites pozitív egész: 0..255 (1 byte)
 +
A méret nagyon is számít:
 +
log(single(1.0001))
 +
log(double(1.0001))
 +
int32(100+100)
 +
int8(100+100)
 +
 +
=== Változók ===
 
Ahhoz hogy értelmes dolgokat tudjunk számolni, az adatokat ''változókban'' tároljuk.
 
Ahhoz hogy értelmes dolgokat tudjunk számolni, az adatokat ''változókban'' tároljuk.
 
  a=2
 
  a=2
44. sor: 73. sor:
 
  > a/q
 
  > a/q
 
  error: `q' undefined
 
  error: `q' undefined
 +
 +
A kettősponttal (<tt>;</tt>) csendes számolást végezhetünk, ekkor a parancs eredménye nem lesz kiírva:
 +
a=2;
 +
b=3;
 +
a+b
 +
 
A <tt>whos</tt> paranccsal megnézhetjük az aktuálisan tárolt változóinkat.
 
A <tt>whos</tt> paranccsal megnézhetjük az aktuálisan tárolt változóinkat.
 
  > whos
 
  > whos
62. sor: 97. sor:
 
  d=int8(1000)
 
  d=int8(1000)
 
  whos
 
  whos
 
==== A számábrázolások ====
 
* <tt>double</tt>: dupla lebegő pontos, 64 bit (8 byte)
 
* <tt>single</tt>: szimpla lebegő pontos, 32 bit (4 byte)
 
* <tt>int32</tt>: 32 bites kettes komplemens egész (4 byte)
 
* <tt>int8</tt>: 8 bites kettes komplemens egész: -128..127 (1 byte)
 
* <tt>uint32</tt>: 32 bites pozitív egész (4 byte)
 
* <tt>uint8</tt>: 8 bites pozitív egész: 0..255 (1 byte)
 
  
 
==== Komplex számok ====
 
==== Komplex számok ====

A lap 2015. november 2., 19:10-kori változata

Előző gyakorlat - Fel - Következő gyakorlat

Tartalomjegyzék

Octave

Az Octave programmal lehet különböző matematikai számításokat numerikusan elvégezni, a nagytestvérének a MatLab-nak az ingyenes (opensource) változata.

Kezdeti lépések

Hozzáférés a programhoz

Ha otthonról dolgozunk, akkor a következő lehetőségek legalább egyikével éljünk:

A géptermekből Linux-ról futtassuk az Octave-ot

Számológép

Írjuk be az octave parancssorába:

2+3

majd üssünk Enter-t. Ennek hatására:

> 2+3
ans =  5
> _

Próbáljuk ki ezeket is:

2-3
2*3
2/3
floor(2/3)
mod(2,3)
2^3
sqrt(2)
log(2)
log(3)
log(8)/log(2)
exp(1)
pi
cos(pi/2)
(180/pi)*acos(0.5)

Adattípusok

Minden megadott szám lebegőpontos, akkor is, ha véletlenül egész:

1000/9
ans = 111.11

Viszont megadhatjuk, hogy egészekként értelmezze a számokat:

int32(1000)/int32(9)
ans = 111

Egy szám valós, amíg komplexnek nem bizonyul:

sqrt(2)
sqrt(-2)

A számábrázolások

  • double: dupla lebegő pontos, 64 bit (8 byte)
    • valós: 8 byte
    • komplex: 16 byte
  • single: szimpla lebegő pontos, 32 bit (4 byte)
    • valós 4 byte
    • komplex: 8 byte
  • int32: 32 bites kettes komplemens egész (4 byte)
  • int8: 8 bites kettes komplemens egész: -128..127 (1 byte)
  • uint32: 32 bites pozitív egész (4 byte)
  • uint8: 8 bites pozitív egész: 0..255 (1 byte)

A méret nagyon is számít:

log(single(1.0001))
log(double(1.0001))
int32(100+100)
int8(100+100)

Változók

Ahhoz hogy értelmes dolgokat tudjunk számolni, az adatokat változókban tároljuk.

a=2
b=3
a+b

Mindig van egy ans nevű változónak, amiben az utoljára kiszámolt érték található.
Ha nincsen érték adva egy változónak, akkor nem tudunk hivatkozni rá:

> a/q
error: `q' undefined

A kettősponttal (;) csendes számolást végezhetünk, ekkor a parancs eredménye nem lesz kiírva:

a=2;
b=3;
a+b

A whos paranccsal megnézhetjük az aktuálisan tárolt változóinkat.

> whos
Variables in the current scope:
  Attr Name        Size                     Bytes  Class
  ==== ====        ====                     =====  =====
       a           1x1                          8  double
       ans         1x1                          8  double
       b           1x1                          8  double
Total is 3 elements using 24 bytes
> _

Azt tapasztaljuk, hogy a változók mind 1x1-es double típusúak. Próbáljuk ki a következőket:

a=1000
b=single(1000)
c=int32(1000)
d=int8(1000)
whos

Komplex számok

próbáljuk ki:

z=2+3j
whos z

Azt látjuk, hogy z dupla lebegő pontos, de 16 byte-ot foglal, mivel egy komplex szám két valós számmal ábrázolható.

Előző gyakorlat - Fel - Következő gyakorlat

Személyes eszközök