Struktúrák

 

Több adatot egyszerre tudtunk kezelni a tömbbel. A tömb esetében viszont az adatoknak azonos típusúaknak kell lenniük. Ez nem mindig megfelelő. Ezért vezetjük be a struktúrákat, ahol már különböző típusú adatokat is együtt kezelhetünk.

Lássunk egy egyszerű példát: bevezetünk egy (matematikai) vektort, írunk egy függvényt, amelyik összead két ilyen vektort, majd meghívjuk a függvényt a főprogramban.

 

#include <stdio.h>

#include <stdlib.h>

 

struct vektor{float x; float y;};

struct vektor szum(struct vektor a, struct vektor b){

       struct vektor c;

       c.x = a.x + b.x;

       c.y = a.y + b.y;

       return c;

}

 

int main(int argc, char *argv[])

{

  struct vektor u, v, w;

  u.x = 1;

  u.y = 2;

  v.x = 3;

  v.y = 4;

  w = szum(u, v);

  printf("%fi + %fj + %fi + %fj = %fi + %fj", u.x, u.y, v.x, v.y, w.x, w.y);

  system("PAUSE");

  return 0;

}

 

 

A következő program meghatározza egy vektor hosszát:
hossz
Bonyolítsuk egy kicsit tovább ezt a témát. A következő programmal a vektorokat poláris koordináták segítségével is megadjuk (a vektort az origótól való távolsága és az x tengellyel bezárt szöge jellemzi). Így könnyebben kezelhetjük a forgatás műveletét:
Forgat
A következő programban bevezetünk egy néhány geometriai objektumot: pont, egyenes, kör. Felveszünk egy egyenest és megvizsgáljuk, hogy az egyenes mely pontjai vannak a kör belsejében?
Benne van
A következő programban egy téglalapot adunk meg a bal alsó és jobb felső pontjával. Ezután megállapítjuk egy pontról, hogy benne van-e a téglalapban?
Téglalap