next up previous
Next: Množica točk Up: Sedemnajste vaje iz računalništva Previous: Tipi v jeziku c

Deklaracija novih podatkovnih tipov s typedef

Nove tipe, se pravi zaloge vrednosti, definiramo s pomočjo ukaza typedef:

typedef <opis> <ime>;

Opis je lahko bolj zapleten oz. lahko je združen iz več opisov.

Tip z imenom celaStevila zgleda takole:

typedef int celaStevila;

Zgoraj smo že omenili, da je opis lahko hkrati združen iz več opisov. Kot primer navedimo merilec krvnega pritiska. Krvni pritisk ponazorimo z dvema številkama. Na primer, zdrav, mlad človek ima krvni pritisk 110/75. Tako zalogo vseh vrednosti meritev krvnega pritiska (tip meritev krvnega pritiska) opišemo z 2 številoma oz. definiramo kot par:

Pritisk: (spodnji, zgornji)
Formalno definiramo pritisk:
  typdef struct {
     int spodnji;
     int zgornji;
  } tPritisk;
Sedaj lahko definiramo posamezne spremeljivke, ki ponazarjajo pritiske posameznih ljudi. Na primer:
  tPritisk TomazevPritisk, JaninPritisk;

  TomazevPritisk.spodnji=80;
  JaninPritisk.zgornji=120;

Točke v večrazsežnostnem prostoru definiramo kot n-terice:

Kot primer si poglejmo definicijo funkcije, ki izračuna razdaljo med 2 točkama v 2D prostoru in vseh pripadajoče ostale definicije:
  typdef struct {
    int x;         /* x - koordinata */
    int y;         /* y - koordinata */
  } t_2DTocka;

  double Razdalja (t_2DTocka a, t_2DTocka b) {
    return sqrt ((ax - bx) * (ax - bx) + (ay - by) * (ay - by));
  } / * Razdalja */

Iz definicije točke lahko izpeljemo definicijo trikotnika v ravnini:

  typdef struct {
    t_2DTocka A;      /* prvo oglisče */
    t_2DTocka B;      /* drugo oglisče */
    t_2DTocka C;      /* tretje oglisče */
  } t_Trikotnik;
In potem funkcija, ki izračuna obseg trikotnika:
   double obseg (t.Trikotnik trik) {

     double obseg;

     obseg = 0;
     obseg += Razdalja (trik.A, trik.B);
     obseg += Razdalja (trik.B, trik.C);
     obseg += Razdalja (trik.C, trik.A);

     return obseg;
  } /* Obseg */



 
next up previous
Next: Množica točk Up: Sedemnajste vaje iz računalništva Previous: Tipi v jeziku c
Andrej Brodnik (Andy)
1999-05-01