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 | + | 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 28., 00: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;