Tyto stránky již nejsou udržovány. Obsah je postupně přesouván/aktualizován na adrese chytrosti.marrek.cz.

1/1

Zdrojové soubory z výuky

Na této stránce jsou k dispozici zdrojové soubory, které jsem vytvářel při výkladu během výuky. Nejsou to ukázkové a bezchybné zdrojové soubory. Ba naopak, jsou to pracovní neučesané verze, které vznikaly interaktivně ve výuce, často s cílem ukázat, že "takto se to nemá".

20111201-Thu-struktury.c
   1 /*
   2  * Soubor:  20111201-Thu-struktury.c
   3  * Datum:   01.12.2011 08:27
   4  * Autor:   Marek Nožka, nozka <@t> spseol <d.t> cz
   5  * Licence: GNU/GPL 
   6  * Úloha:   jak se pracuje se struct
   7  ****************************************************/
   8 #define _ISOC99_SOURCE
   9 #define _GNU_SOURCE
  10 #include <stdio.h>
  11 #include <stdlib.h>
  12 
  13 /* ***************    Makra    ******************** */
  14 #define ARREYC 1024
  15 
  16 /* ***************   Funkce    ******************** */
  17 
  18 
  19 /****************************************************
  20  *               Hlavní program.
  21  ****************************************************/
  22 int main(void) {
  23 
  24     int cislo, dalsi_sislo;
  25 
  26     struct {
  27         int vyska;
  28         int vaha;
  29     } pavel, lukas, jan;
  30 /////////////////////////////////////////////////////
  31     struct miry {
  32         int vyska;
  33         int vaha;
  34     } jerony, tomas;
  35 
  36     struct miry ondra;
  37 /////////////////////////////////////////////////////
  38     struct miryy {
  39         int vyska;
  40         int vaha;
  41     } ;
  42 
  43     struct miryy radim, mates;
  44 /////////////////////////////////////////////////////
  45 // operátor typedef definje nové datové typy
  46 
  47     typedef int CELECISLO;
  48     CELECISLO i=20;
  49 /////////////////////////////////////////////////////
  50 //
  51     typedef struct {
  52         int den;
  53         int mesic;
  54         int rok;
  55     } DATNAR;
  56 
  57     typedef struct {
  58         int vyska;
  59         int vaha;
  60         DATNAR datum;
  61     } MIRY;  // velka pismena odlišují jména proměnných a jmnéna datových tipů
  62 
  63     MIRY petr, jirka ;
  64 
  65     petr.vyska = 159;
  66     jirka.datum.den = 5;
  67     jirka.datum.mesic = 12;
  68     jirka.datum.rok = 1992;
  69 /////////////////////////////////////////
  70     MIRY *fred;
  71 
  72     //*(fred.vyska)=181;   // fred.vyska je ukazatel => chyba
  73     fred = &jirka;
  74     (*fred).vyska=181;   // fred je ukazatel a uvnitř je vyska
  75     fred->vyska=181;     // ekvivalentí zápis k předchozímu řádku
  76     printf("%d\n",jirka.vyska);
  77 
  78     // anonynmí paměť
  79     fred = malloc(sizeof(MIRY));
  80     fred->vyska = 193;
  81     fred->datum.rok = 1999;
  82 
  83     printf("%d\n",fred->vyska);
  84     printf("%d\n",(*fred).datum.rok);
  85 
  86 /////////////////////////////////////////
  87 // příklad evidence žáků
  88 
  89     typedef struct {
  90         int prumer;
  91         int vek;
  92         char jmeno[20];
  93         DATNAR datum;
  94     } ZAK;
  95 
  96     ZAK trida[33];
  97 
  98     trida[0].vek=12;
  99     trida[1].vek=14;
 100     trida[2].vek=11;
 101     trida[0].datum.den=28;
 102 
 103     int pole[33];
 104     pole[0]=20
 105 
 106 
 107 ////////////////////////////////////
 108     puts("konec");
 109     return 0;
 110 }
`--> stáhnout

Licence Creative Commons Valid XHTML 1.0 Strict Valid CSS! Antispam.er.cz Blog: Tlapicka.net