Info2/2008tavasz/kuka

A MathWikiből
(Változatok közti eltérés)
82. sor: 82. sor:
 
=== Állapottér, állapotgép (automata) ===
 
=== Állapottér, állapotgép (automata) ===
  
Ld. [http://www.fsz.bme.hu/~szebi/slides/C7/sld033.htm Szeberényi György] anyagában.
+
Ld. Szeberényi Imre [http://www.fsz.bme.hu/~szebi/slides/c5_gy_sz.pdf egyik] vagy
 +
[http://www.fsz.bme.hu/~szebi/slides/C7/sld033.htm másik] anyagában.

A lap 2008. március 27., 23:52-kori változata

Tartalomjegyzék

6. előadás (2008-03-28)

Ami az eddigiekből kimaradt

Felsorolások (enumerátorok), az enum adattípus

enum típusazonosító {felsorolás} változók;

enum hetkoznap {hetfo, kedd, szerda, csutortok, pentek};
enum Boolean {true, false} elment=false;
...
enum hetkoznap fogorvos=szerda;
fogorvos=pentek;
...
elment=true;

Automatikusan 0-tól sorszámozódó int típusok. Az érték megválasztható:

enum t_vegu_szamjegyek {ot=5, hat, het};

típusazonosító nélküli egyszer használatos felsorolások:

enum {tegnap, ma, holnap} mikor=ma;
...
mikor=holnap;

typedef -- típus definiálása

Definiáljuk a Gauss-egészek struktúráját:

struct Gauss_egesz {
  int x;
  int y;
} a, b;

Legyen egy ilyen típusunk:

typedef struct Gauss_egesz GEtipus;
GEtipus a, b;

vagy összeolvasztva:

typedef struct Gauss_egesz {
  int x;
  int y;
} GEtipus;
GEtipus a, b;


esetszétválasztás (switch/case/default)

Az if-else csak kétfelé elágazást enged, a switch többfelé:

switch(ch) {
  case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': 
    printf("decimális");
    break;
  case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': 
    printf("hexadecimális");
    break;
  default:
    print("nem számjegy");
}

Feltételes kifejezés

a feltételes művelet ternér művelet, azaz 3 argumentuma van.

feltétel ? kifejezés_1 : kifejezés_2

Például:

z = x<y ? x : y;

Ami a következő kóddal ekvivalens:

if(x<y)
  z = x;
else
  z = y;

Állapottér, állapotgép (automata)

Ld. Szeberényi Imre egyik vagy másik anyagában.

Személyes eszközök